; LLVM IR from aws/s2n-tls :: tests/unit (s2n_client_key_share_extension_pq_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_kem_preferences = type { i8, ptr, i8, ptr, i8 }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_signature_preferences = type { i8, ptr }
%struct.s2n_ecc_preferences = type { i8, ptr }
%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_kem_group = type { ptr, i16, ptr, ptr, i8 }
%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_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_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_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_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_kem = type { ptr, i32, i16, i16, i16, i16, i16, ptr, ptr, ptr }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [97 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@kem_preferences_all = external constant %struct.s2n_kem_preferences, align 8
@cipher_preferences_test_all_tls13 = external constant %struct.s2n_cipher_preferences, align 8
@s2n_signature_preferences_20200207 = external constant %struct.s2n_signature_preferences, align 8
@s2n_ecc_preferences_20200310 = external constant %struct.s2n_ecc_preferences, align 8
@.str.8 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [83 x i8], align 1
@s2n_client_key_share_extension = external constant %struct.s2n_extension_type, align 8
@.str.15 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [54 x i8], align 1
@ALL_SUPPORTED_KEM_GROUPS = external global [8 x ptr], align 16
@.str.25 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [87 x i8], align 1
@hello_retry_req_random = external global [32 x i8], align 16
@.str.66 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [161 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [92 x i8], align 1
@s2n_x25519_mlkem_768 = external constant %struct.s2n_kem_group, align 8
@.str.161 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main() #0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca %struct.s2n_kem_preferences, align 8
  %9 = alloca %struct.s2n_security_policy, align 8
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca %struct.s2n_stuffer, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i16, align 2
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i16, align 2
  %27 = alloca i16, align 2
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i64, align 8
  %36 = alloca [8 x ptr], align 16
  %37 = alloca i64, align 8
  %38 = alloca %struct.s2n_kem_preferences, align 8
  %39 = alloca %struct.s2n_security_policy, align 8
  %40 = alloca ptr, align 8
  %41 = alloca i32, align 4
  %42 = alloca ptr, align 8
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca ptr, align 8
  %51 = alloca i32, align 4
  %52 = alloca %struct.s2n_stuffer, align 8
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i16, align 2
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i16, align 2
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i16, align 2
  %72 = alloca i16, align 2
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i16, align 2
  %76 = alloca i16, align 2
  %77 = alloca i16, align 2
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i16, align 2
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i16, align 2
  %86 = alloca i16, align 2
  %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 %struct.s2n_result, align 4
  %95 = alloca i32, align 4
  %96 = alloca ptr, align 8
  %97 = alloca i32, align 4
  %98 = alloca ptr, align 8
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca ptr, align 8
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca %struct.s2n_stuffer, align 8
  %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 i8, align 1
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca ptr, align 8
  %114 = alloca i32, align 4
  %115 = alloca ptr, align 8
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i16, align 2
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i16, align 2
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i16, align 2
  %129 = alloca i16, align 2
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i16, align 2
  %133 = alloca i16, align 2
  %134 = alloca i16, align 2
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i16, align 2
  %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 i32, align 4
  %146 = alloca ptr, align 8
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca ptr, align 8
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca %struct.s2n_stuffer, align 8
  %153 = alloca %struct.s2n_stuffer, align 8
  %154 = alloca i32, align 4
  %155 = alloca i32, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca i32, align 4
  %162 = alloca i16, align 2
  %163 = alloca i16, align 2
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca i32, align 4
  %169 = alloca i16, align 2
  %170 = alloca i16, align 2
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca i16, align 2
  %176 = alloca i16, align 2
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i16, align 2
  %182 = alloca i16, align 2
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca ptr, align 8
  %187 = alloca i32, align 4
  %188 = alloca i32, align 4
  %189 = alloca ptr, align 8
  %190 = alloca ptr, align 8
  %191 = alloca i32, align 4
  %192 = alloca i32, align 4
  %193 = alloca i32, align 4
  %194 = alloca i16, align 2
  %195 = alloca i32, align 4
  %196 = alloca i32, align 4
  %197 = alloca i32, align 4
  %198 = alloca ptr, align 8
  %199 = alloca ptr, align 8
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i16, align 2
  %203 = alloca i16, align 2
  %204 = alloca i32, align 4
  %205 = alloca i32, align 4
  %206 = alloca i32, align 4
  %207 = alloca i32, align 4
  %208 = alloca ptr, align 8
  %209 = alloca ptr, align 8
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca i32, align 4
  %214 = alloca i32, align 4
  %215 = alloca i32, align 4
  %216 = alloca i32, align 4
  %217 = alloca ptr, align 8
  %218 = alloca i32, align 4
  %219 = alloca %struct.s2n_result, align 4
  %220 = alloca i32, align 4
  %221 = alloca %struct.s2n_stuffer, align 8
  %222 = alloca %struct.s2n_result, align 4
  %223 = alloca i32, align 4
  %224 = alloca i32, align 4
  %225 = alloca i32, align 4
  %226 = alloca ptr, align 8
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca ptr, align 8
  %230 = alloca i32, align 4
  %231 = alloca i32, align 4
  %232 = alloca ptr, align 8
  %233 = alloca i32, align 4
  %234 = alloca i32, align 4
  %235 = alloca ptr, align 8
  %236 = alloca i32, align 4
  %237 = alloca i32, align 4
  %238 = alloca i32, align 4
  %239 = alloca i32, align 4
  %240 = alloca i32, align 4
  %241 = alloca i32, align 4
  %242 = alloca i32, align 4
  %243 = alloca i32, align 4
  %244 = alloca i32, align 4
  %245 = alloca i64, align 8
  %246 = alloca [8 x ptr], align 16
  %247 = alloca i64, align 8
  %248 = alloca %struct.s2n_kem_preferences, align 8
  %249 = alloca %struct.s2n_security_policy, align 8
  %250 = alloca ptr, align 8
  %251 = alloca ptr, align 8
  %252 = alloca i32, align 4
  %253 = alloca i32, align 4
  %254 = alloca %struct.s2n_result, align 4
  %255 = alloca i32, align 4
  %256 = alloca %struct.s2n_stuffer, align 8
  %257 = alloca i32, align 4
  %258 = alloca i32, align 4
  %259 = alloca %struct.s2n_blob, align 8
  %260 = alloca i32, align 4
  %261 = alloca i32, align 4
  %262 = alloca i32, align 4
  %263 = alloca ptr, align 8
  %264 = alloca i32, align 4
  %265 = alloca i32, align 4
  %266 = alloca ptr, align 8
  %267 = alloca ptr, align 8
  %268 = alloca i32, align 4
  %269 = alloca i32, align 4
  %270 = alloca i32, align 4
  %271 = alloca ptr, align 8
  %272 = alloca i32, align 4
  %273 = alloca i32, align 4
  %274 = alloca ptr, align 8
  %275 = alloca ptr, align 8
  %276 = alloca i32, align 4
  %277 = alloca i32, align 4
  %278 = alloca i32, align 4
  %279 = alloca ptr, align 8
  %280 = alloca i32, align 4
  %281 = alloca i32, align 4
  %282 = alloca i32, align 4
  %283 = alloca i32, align 4
  %284 = alloca i32, align 4
  %285 = alloca i32, align 4
  %286 = alloca i32, align 4
  %287 = alloca i32, align 4
  %288 = alloca %struct.s2n_result, align 4
  %289 = alloca i32, align 4
  %290 = alloca ptr, align 8
  %291 = alloca i32, align 4
  %292 = alloca %struct.s2n_result, align 4
  %293 = alloca i32, align 4
  %294 = alloca ptr, align 8
  %295 = alloca i32, align 4
  %296 = alloca i32, align 4
  %297 = alloca %struct.s2n_result, align 4
  %298 = alloca i32, align 4
  %299 = alloca i32, align 4
  %300 = alloca ptr, align 8
  %301 = alloca ptr, align 8
  %302 = alloca i32, align 4
  %303 = alloca i32, align 4
  %304 = alloca i32, align 4
  %305 = alloca [2 x %struct.s2n_kem_group_params], align 16
  %306 = alloca %struct.s2n_stuffer, align 8
  %307 = alloca i32, align 4
  %308 = alloca %struct.s2n_stuffer_reservation, align 8
  %309 = alloca i32, align 4
  %310 = alloca i32, align 4
  %311 = alloca i32, align 4
  %312 = alloca i32, align 4
  %313 = alloca i32, align 4
  %314 = alloca i32, align 4
  %315 = alloca i32, align 4
  %316 = alloca ptr, align 8
  %317 = alloca i32, align 4
  %318 = alloca i32, align 4
  %319 = alloca i32, align 4
  %320 = alloca i64, align 8
  %321 = alloca i32, align 4
  %322 = alloca i32, align 4
  %323 = alloca i32, align 4
  %324 = alloca %struct.s2n_result, align 4
  %325 = alloca i32, align 4
  %326 = alloca ptr, align 8
  %327 = alloca i32, align 4
  %328 = alloca %struct.s2n_result, align 4
  %329 = alloca i32, align 4
  %330 = alloca i32, align 4
  %331 = alloca ptr, align 8
  %332 = alloca i32, align 4
  %333 = alloca i32, align 4
  %334 = alloca %struct.s2n_result, align 4
  %335 = alloca i32, align 4
  %336 = alloca i32, align 4
  %337 = alloca ptr, align 8
  %338 = alloca i32, align 4
  %339 = alloca %struct.s2n_kem_group_params, align 8
  %340 = alloca %struct.s2n_stuffer, align 8
  %341 = alloca i32, align 4
  %342 = alloca %struct.s2n_stuffer_reservation, align 8
  %343 = alloca i32, align 4
  %344 = alloca i32, align 4
  %345 = alloca i32, align 4
  %346 = alloca i32, align 4
  %347 = alloca i32, align 4
  %348 = alloca i32, align 4
  %349 = alloca ptr, align 8
  %350 = alloca i32, align 4
  %351 = alloca i32, align 4
  %352 = alloca i32, align 4
  %353 = alloca i32, align 4
  %354 = alloca i32, align 4
  %355 = alloca i32, align 4
  %356 = alloca %struct.s2n_result, align 4
  %357 = alloca i32, align 4
  %358 = alloca ptr, align 8
  %359 = alloca i32, align 4
  %360 = alloca %struct.s2n_result, align 4
  %361 = alloca i32, align 4
  %362 = alloca i32, align 4
  %363 = alloca ptr, align 8
  %364 = alloca i32, align 4
  %365 = alloca i32, align 4
  %366 = alloca %struct.s2n_result, align 4
  %367 = alloca i32, align 4
  %368 = alloca i32, align 4
  %369 = alloca ptr, align 8
  %370 = alloca ptr, align 8
  %371 = alloca i32, align 4
  %372 = alloca i32, align 4
  %373 = alloca i32, align 4
  %374 = alloca [2 x %struct.s2n_kem_group_params], align 16
  %375 = alloca %struct.s2n_stuffer, align 8
  %376 = alloca i32, align 4
  %377 = alloca %struct.s2n_stuffer_reservation, align 8
  %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 ptr, align 8
  %386 = alloca i32, align 4
  %387 = alloca i32, align 4
  %388 = alloca i32, align 4
  %389 = alloca i64, align 8
  %390 = alloca i32, align 4
  %391 = alloca i32, align 4
  %392 = alloca i32, align 4
  %393 = alloca %struct.s2n_result, align 4
  %394 = alloca i32, align 4
  %395 = alloca ptr, align 8
  %396 = alloca i32, align 4
  %397 = alloca i32, align 4
  %398 = alloca %struct.s2n_result, align 4
  %399 = alloca i32, align 4
  %400 = alloca %struct.s2n_stuffer, align 8
  %401 = alloca i32, align 4
  %402 = alloca ptr, align 8
  %403 = alloca i32, align 4
  %404 = alloca i32, align 4
  %405 = alloca %struct.s2n_result, align 4
  %406 = alloca i32, align 4
  %407 = alloca i32, align 4
  %408 = alloca ptr, align 8
  %409 = alloca ptr, align 8
  %410 = alloca i32, align 4
  %411 = alloca i32, align 4
  %412 = alloca i32, align 4
  %413 = alloca [2 x %struct.s2n_kem_group_params], align 16
  %414 = alloca %struct.s2n_stuffer_reservation, align 8
  %415 = alloca i32, align 4
  %416 = alloca i32, align 4
  %417 = alloca i64, 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 i32, align 4
  %424 = alloca ptr, align 8
  %425 = alloca ptr, align 8
  %426 = alloca i32, align 4
  %427 = alloca i32, align 4
  %428 = alloca i32, align 4
  %429 = alloca i64, align 8
  %430 = alloca i32, align 4
  %431 = alloca i32, align 4
  %432 = alloca i32, align 4
  %433 = alloca %struct.s2n_result, align 4
  %434 = alloca i32, align 4
  %435 = alloca ptr, align 8
  %436 = alloca i32, align 4
  %437 = alloca i32, align 4
  %438 = alloca %struct.s2n_result, align 4
  %439 = alloca i32, align 4
  %440 = alloca %struct.s2n_stuffer, align 8
  %441 = alloca i32, align 4
  %442 = alloca ptr, align 8
  %443 = alloca i32, align 4
  %444 = alloca i32, align 4
  %445 = alloca %struct.s2n_result, align 4
  %446 = alloca i32, align 4
  %447 = alloca i32, align 4
  %448 = alloca ptr, align 8
  %449 = alloca ptr, align 8
  %450 = alloca i32, align 4
  %451 = alloca i32, align 4
  %452 = alloca i32, align 4
  %453 = alloca [2 x %struct.s2n_kem_group_params], align 16
  %454 = alloca %struct.s2n_stuffer_reservation, align 8
  %455 = alloca i32, align 4
  %456 = alloca i32, align 4
  %457 = alloca i32, align 4
  %458 = alloca i64, align 8
  %459 = alloca i32, align 4
  %460 = alloca i32, align 4
  %461 = alloca i32, align 4
  %462 = alloca i32, align 4
  %463 = alloca i32, align 4
  %464 = alloca ptr, align 8
  %465 = alloca i32, align 4
  %466 = alloca i32, align 4
  %467 = alloca i32, align 4
  %468 = alloca i64, 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
  store i32 0, ptr %1, align 4
  br label %474

474:                                              ; preds = %0
  br label %475

475:                                              ; preds = %474
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %476 = load ptr, ptr @stdout, align 8, !tbaa !9
  %477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %476, ptr noundef @.str, ptr noundef @.str.1) #11
  %478 = load ptr, ptr @stdout, align 8, !tbaa !9
  %479 = call i32 @fflush(ptr noundef %478)
  br label %480

480:                                              ; preds = %475
  %481 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %482 = icmp eq i32 %481, -1
  br i1 %482, label %483, label %534

483:                                              ; preds = %480
  br label %484

484:                                              ; preds = %483
  br label %485

485:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #11
  %486 = call ptr @__errno_location() #12
  %487 = load i32, ptr %486, align 4, !tbaa !5
  store i32 %487, ptr %2, align 4, !tbaa !5
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = call i32 @s2n_print_stacktrace(ptr noundef %488)
  %490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %491 = trunc i8 %490 to i1
  br i1 %491, label %492, label %514

492:                                              ; preds = %485
  %493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %494 = call i32 @fileno(ptr noundef %493) #11
  %495 = call i32 @isatty(i32 noundef %494) #11
  %496 = icmp ne i32 %495, 0
  br i1 %496, label %497, label %514

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

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

531:                                              ; preds = %514, %497
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #11
  br label %532

532:                                              ; preds = %531
  call void @exit(i32 noundef 1) #13
  unreachable

533:                                              ; No predecessors!
  br label %534

534:                                              ; preds = %533, %480
  br label %535

535:                                              ; preds = %534
  br label %536

536:                                              ; preds = %535
  %537 = load i32, ptr @test_count, align 4, !tbaa !5
  %538 = add nsw i32 %537, 1
  store i32 %538, ptr @test_count, align 4, !tbaa !5
  %539 = call i32 @s2n_enable_atexit()
  %540 = icmp eq i32 %539, -1
  br i1 %540, label %541, label %592

541:                                              ; preds = %536
  br label %542

542:                                              ; preds = %541
  br label %543

543:                                              ; preds = %542
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #11
  %544 = call ptr @__errno_location() #12
  %545 = load i32, ptr %544, align 4, !tbaa !5
  store i32 %545, ptr %3, align 4, !tbaa !5
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = call i32 @s2n_print_stacktrace(ptr noundef %546)
  %548 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %549 = trunc i8 %548 to i1
  br i1 %549, label %550, label %572

550:                                              ; preds = %543
  %551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %552 = call i32 @fileno(ptr noundef %551) #11
  %553 = call i32 @isatty(i32 noundef %552) #11
  %554 = icmp ne i32 %553, 0
  br i1 %554, label %555, label %572

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

572:                                              ; preds = %550, %543
  %573 = load i32, ptr %3, align 4, !tbaa !5
  %574 = call ptr @__errno_location() #12
  store i32 %573, ptr %574, align 4, !tbaa !5
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = load i32, ptr @test_count, align 4, !tbaa !5
  %577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %578 = load i32, ptr %577, align 4, !tbaa !5
  %579 = call ptr @s2n_strerror(i32 noundef %578, ptr noundef @.str.4)
  %580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %581 = load i32, ptr %580, align 4, !tbaa !5
  %582 = call ptr @s2n_strerror_debug(i32 noundef %581, ptr noundef @.str.4)
  %583 = call ptr @__errno_location() #12
  %584 = load i32, ptr %583, align 4, !tbaa !5
  %585 = call ptr @strerror(i32 noundef %584) #11
  %586 = call ptr @__errno_location() #12
  %587 = load i32, ptr %586, align 4, !tbaa !5
  %588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %575, ptr noundef @.str.5, i32 noundef %576, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 43, ptr noundef %579, ptr noundef %582, ptr noundef %585, i32 noundef %587) #11
  br label %589

589:                                              ; preds = %572, %555
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #11
  br label %590

590:                                              ; preds = %589
  call void @exit(i32 noundef 1) #13
  unreachable

591:                                              ; No predecessors!
  br label %592

592:                                              ; preds = %591, %536
  br label %593

593:                                              ; preds = %592
  br label %594

594:                                              ; preds = %593
  br label %595

595:                                              ; preds = %594
  %596 = call i32 @s2n_init()
  %597 = icmp eq i32 %596, -1
  br i1 %597, label %598, label %649

598:                                              ; preds = %595
  br label %599

599:                                              ; preds = %598
  br label %600

600:                                              ; preds = %599
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #11
  %601 = call ptr @__errno_location() #12
  %602 = load i32, ptr %601, align 4, !tbaa !5
  store i32 %602, ptr %4, align 4, !tbaa !5
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = call i32 @s2n_print_stacktrace(ptr noundef %603)
  %605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %606 = trunc i8 %605 to i1
  br i1 %606, label %607, label %629

607:                                              ; preds = %600
  %608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %609 = call i32 @fileno(ptr noundef %608) #11
  %610 = call i32 @isatty(i32 noundef %609) #11
  %611 = icmp ne i32 %610, 0
  br i1 %611, label %612, label %629

612:                                              ; preds = %607
  %613 = load i32, ptr %4, align 4, !tbaa !5
  %614 = call ptr @__errno_location() #12
  store i32 %613, ptr %614, align 4, !tbaa !5
  %615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %616 = load i32, ptr @test_count, align 4, !tbaa !5
  %617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call ptr @s2n_strerror(i32 noundef %618, ptr noundef @.str.4)
  %620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = call ptr @s2n_strerror_debug(i32 noundef %621, ptr noundef @.str.4)
  %623 = call ptr @__errno_location() #12
  %624 = load i32, ptr %623, align 4, !tbaa !5
  %625 = call ptr @strerror(i32 noundef %624) #11
  %626 = call ptr @__errno_location() #12
  %627 = load i32, ptr %626, align 4, !tbaa !5
  %628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %615, ptr noundef @.str.2, i32 noundef %616, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 43, ptr noundef %619, ptr noundef %622, ptr noundef %625, i32 noundef %627) #11
  br label %646

629:                                              ; preds = %607, %600
  %630 = load i32, ptr %4, align 4, !tbaa !5
  %631 = call ptr @__errno_location() #12
  store i32 %630, ptr %631, align 4, !tbaa !5
  %632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %633 = load i32, ptr @test_count, align 4, !tbaa !5
  %634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = call ptr @s2n_strerror(i32 noundef %635, ptr noundef @.str.4)
  %637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror_debug(i32 noundef %638, ptr noundef @.str.4)
  %640 = call ptr @__errno_location() #12
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = call ptr @strerror(i32 noundef %641) #11
  %643 = call ptr @__errno_location() #12
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %632, ptr noundef @.str.5, i32 noundef %633, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 43, ptr noundef %636, ptr noundef %639, ptr noundef %642, i32 noundef %644) #11
  br label %646

646:                                              ; preds = %629, %612
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #11
  br label %647

647:                                              ; preds = %646
  call void @exit(i32 noundef 1) #13
  unreachable

648:                                              ; No predecessors!
  br label %649

649:                                              ; preds = %648, %595
  br label %650

650:                                              ; preds = %649
  br label %651

651:                                              ; preds = %650
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #11
  store i32 0, ptr %5, align 4, !tbaa !5
  br label %652

652:                                              ; preds = %20458, %651
  %653 = load i32, ptr %5, align 4, !tbaa !5
  %654 = icmp slt i32 %653, 2
  br i1 %654, label %656, label %655

655:                                              ; preds = %652
  store i32 24, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #11
  br label %20461

656:                                              ; preds = %652
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %657 = load i32, ptr %5, align 4, !tbaa !5
  %658 = icmp ne i32 %657, 0
  %659 = zext i1 %658 to i64
  %660 = select i1 %658, i32 0, i32 5
  store i32 %660, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %8) #11
  call void @llvm.memset.p0.i64(ptr align 8 %8, i8 0, i64 40, i1 false)
  %661 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %8, i32 0, i32 0
  %662 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %8, i32 0, i32 1
  %663 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %8, i32 0, i32 2
  %664 = load i8, ptr getelementptr inbounds (%struct.s2n_kem_preferences, ptr @kem_preferences_all, i32 0, i32 2), align 8, !tbaa !15
  store i8 %664, ptr %663, align 8, !tbaa !15
  %665 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %8, i32 0, i32 3
  %666 = load ptr, ptr getelementptr inbounds (%struct.s2n_kem_preferences, ptr @kem_preferences_all, i32 0, i32 3), align 8, !tbaa !17
  store ptr %666, ptr %665, align 8, !tbaa !17
  %667 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %8, i32 0, i32 4
  %668 = load i32, ptr %7, align 4, !tbaa !5
  %669 = trunc i32 %668 to i8
  store i8 %669, ptr %667, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 64, ptr %9) #11
  %670 = getelementptr inbounds %struct.s2n_security_policy, ptr %9, i32 0, i32 0
  store i8 30, ptr %670, align 8, !tbaa !19
  %671 = getelementptr inbounds %struct.s2n_security_policy, ptr %9, i32 0, i32 1
  store ptr @cipher_preferences_test_all_tls13, ptr %671, align 8, !tbaa !21
  %672 = getelementptr inbounds %struct.s2n_security_policy, ptr %9, i32 0, i32 2
  store ptr %8, ptr %672, align 8, !tbaa !22
  %673 = getelementptr inbounds %struct.s2n_security_policy, ptr %9, i32 0, i32 3
  store ptr @s2n_signature_preferences_20200207, ptr %673, align 8, !tbaa !23
  %674 = getelementptr inbounds %struct.s2n_security_policy, ptr %9, i32 0, i32 4
  store ptr null, ptr %674, align 8, !tbaa !24
  %675 = getelementptr inbounds %struct.s2n_security_policy, ptr %9, i32 0, i32 5
  store ptr @s2n_ecc_preferences_20200310, ptr %675, align 8, !tbaa !25
  %676 = getelementptr inbounds %struct.s2n_security_policy, ptr %9, i32 0, i32 6
  store ptr null, ptr %676, align 8, !tbaa !26
  %677 = getelementptr inbounds %struct.s2n_security_policy, ptr %9, i32 0, i32 7
  store i8 0, ptr %677, align 8, !tbaa !27
  %678 = getelementptr inbounds %struct.s2n_security_policy, ptr %9, i32 0, i32 8
  call void @llvm.memset.p0.i64(ptr align 1 %678, i8 0, i64 2, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #11
  store i32 0, ptr %10, align 4, !tbaa !5
  %679 = call zeroext i1 @s2n_pq_is_enabled()
  br i1 %679, label %1759, label %680

680:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #11
  store ptr null, ptr %11, align 8, !tbaa !9
  br label %681

681:                                              ; preds = %680
  %682 = load i32, ptr @test_count, align 4, !tbaa !5
  %683 = add nsw i32 %682, 1
  store i32 %683, ptr @test_count, align 4, !tbaa !5
  %684 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %684, ptr %11, align 8, !tbaa !9
  %685 = icmp eq ptr %684, null
  br i1 %685, label %686, label %739

686:                                              ; preds = %681
  br label %687

687:                                              ; preds = %686
  br label %688

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

695:                                              ; preds = %688
  %696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %697 = call i32 @fileno(ptr noundef %696) #11
  %698 = call i32 @isatty(i32 noundef %697) #11
  %699 = icmp ne i32 %698, 0
  br i1 %699, label %700, label %717

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

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

734:                                              ; preds = %717, %700
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  br label %735

735:                                              ; preds = %734
  br label %736

736:                                              ; preds = %735
  call void @exit(i32 noundef 1) #13
  unreachable

737:                                              ; No predecessors!
  br label %738

738:                                              ; preds = %737
  br label %739

739:                                              ; preds = %738, %681
  br label %740

740:                                              ; preds = %739
  br label %741

741:                                              ; preds = %740
  %742 = load ptr, ptr %11, align 8, !tbaa !9
  %743 = getelementptr inbounds %struct.s2n_connection, ptr %742, i32 0, i32 2
  store ptr %9, ptr %743, align 8, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #11
  store ptr null, ptr %13, align 8, !tbaa !9
  br label %744

744:                                              ; preds = %741
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = load ptr, ptr %11, align 8, !tbaa !9
  %748 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %747, ptr noundef %13)
  %749 = icmp eq i32 %748, -1
  br i1 %749, label %750, label %803

750:                                              ; preds = %744
  br label %751

751:                                              ; preds = %750
  br label %752

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

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

764:                                              ; preds = %759
  %765 = load i32, ptr %14, align 4, !tbaa !5
  %766 = call ptr @__errno_location() #12
  store i32 %765, ptr %766, align 4, !tbaa !5
  %767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %768 = load i32, ptr @test_count, align 4, !tbaa !5
  %769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %770 = load i32, ptr %769, align 4, !tbaa !5
  %771 = call ptr @s2n_strerror(i32 noundef %770, ptr noundef @.str.4)
  %772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %773 = load i32, ptr %772, align 4, !tbaa !5
  %774 = call ptr @s2n_strerror_debug(i32 noundef %773, ptr noundef @.str.4)
  %775 = call ptr @__errno_location() #12
  %776 = load i32, ptr %775, align 4, !tbaa !5
  %777 = call ptr @strerror(i32 noundef %776) #11
  %778 = call ptr @__errno_location() #12
  %779 = load i32, ptr %778, align 4, !tbaa !5
  %780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %767, ptr noundef @.str.2, i32 noundef %768, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 74, ptr noundef %771, ptr noundef %774, ptr noundef %777, i32 noundef %779) #11
  br label %798

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

798:                                              ; preds = %781, %764
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %799

799:                                              ; preds = %798
  br label %800

800:                                              ; preds = %799
  call void @exit(i32 noundef 1) #13
  unreachable

801:                                              ; No predecessors!
  br label %802

802:                                              ; preds = %801
  br label %803

803:                                              ; preds = %802, %744
  br label %804

804:                                              ; preds = %803
  br label %805

805:                                              ; preds = %804
  br label %806

806:                                              ; preds = %805
  %807 = load i32, ptr @test_count, align 4, !tbaa !5
  %808 = add nsw i32 %807, 1
  store i32 %808, ptr @test_count, align 4, !tbaa !5
  %809 = load ptr, ptr %13, align 8, !tbaa !9
  %810 = icmp eq ptr %809, null
  br i1 %810, label %811, label %864

811:                                              ; preds = %806
  br label %812

812:                                              ; preds = %811
  br label %813

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

820:                                              ; preds = %813
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = call i32 @fileno(ptr noundef %821) #11
  %823 = call i32 @isatty(i32 noundef %822) #11
  %824 = icmp ne i32 %823, 0
  br i1 %824, label %825, label %842

825:                                              ; preds = %820
  %826 = load i32, ptr %15, align 4, !tbaa !5
  %827 = call ptr @__errno_location() #12
  store i32 %826, ptr %827, align 4, !tbaa !5
  %828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %829 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %831, ptr noundef @.str.4)
  %833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %834 = load i32, ptr %833, align 4, !tbaa !5
  %835 = call ptr @s2n_strerror_debug(i32 noundef %834, ptr noundef @.str.4)
  %836 = call ptr @__errno_location() #12
  %837 = load i32, ptr %836, align 4, !tbaa !5
  %838 = call ptr @strerror(i32 noundef %837) #11
  %839 = call ptr @__errno_location() #12
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %828, ptr noundef @.str.2, i32 noundef %829, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 75, ptr noundef %832, ptr noundef %835, ptr noundef %838, i32 noundef %840) #11
  br label %859

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

859:                                              ; preds = %842, %825
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %860

860:                                              ; preds = %859
  br label %861

861:                                              ; preds = %860
  call void @exit(i32 noundef 1) #13
  unreachable

862:                                              ; No predecessors!
  br label %863

863:                                              ; preds = %862
  br label %864

864:                                              ; preds = %863, %806
  br label %865

865:                                              ; preds = %864
  br label %866

866:                                              ; preds = %865
  br label %867

867:                                              ; preds = %866
  %868 = load i32, ptr @test_count, align 4, !tbaa !5
  %869 = add nsw i32 %868, 1
  store i32 %869, ptr @test_count, align 4, !tbaa !5
  %870 = load ptr, ptr %13, align 8, !tbaa !9
  %871 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %870, i32 0, i32 2
  %872 = load i8, ptr %871, align 8, !tbaa !15
  %873 = zext i8 %872 to i32
  %874 = icmp eq i32 %873, 8
  br i1 %874, label %928, label %875

875:                                              ; preds = %867
  br label %876

876:                                              ; preds = %875
  br label %877

877:                                              ; preds = %876
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  %878 = call ptr @__errno_location() #12
  %879 = load i32, ptr %878, align 4, !tbaa !5
  store i32 %879, ptr %16, align 4, !tbaa !5
  %880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %881 = call i32 @s2n_print_stacktrace(ptr noundef %880)
  %882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %883 = trunc i8 %882 to i1
  br i1 %883, label %884, label %906

884:                                              ; preds = %877
  %885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %886 = call i32 @fileno(ptr noundef %885) #11
  %887 = call i32 @isatty(i32 noundef %886) #11
  %888 = icmp ne i32 %887, 0
  br i1 %888, label %889, label %906

889:                                              ; preds = %884
  %890 = load i32, ptr %16, align 4, !tbaa !5
  %891 = call ptr @__errno_location() #12
  store i32 %890, ptr %891, align 4, !tbaa !5
  %892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %893 = load i32, ptr @test_count, align 4, !tbaa !5
  %894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %895 = load i32, ptr %894, align 4, !tbaa !5
  %896 = call ptr @s2n_strerror(i32 noundef %895, ptr noundef @.str.4)
  %897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %898 = load i32, ptr %897, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror_debug(i32 noundef %898, ptr noundef @.str.4)
  %900 = call ptr @__errno_location() #12
  %901 = load i32, ptr %900, align 4, !tbaa !5
  %902 = call ptr @strerror(i32 noundef %901) #11
  %903 = call ptr @__errno_location() #12
  %904 = load i32, ptr %903, align 4, !tbaa !5
  %905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %892, ptr noundef @.str.2, i32 noundef %893, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 76, ptr noundef %896, ptr noundef %899, ptr noundef %902, i32 noundef %904) #11
  br label %923

906:                                              ; preds = %884, %877
  %907 = load i32, ptr %16, align 4, !tbaa !5
  %908 = call ptr @__errno_location() #12
  store i32 %907, ptr %908, align 4, !tbaa !5
  %909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %910 = load i32, ptr @test_count, align 4, !tbaa !5
  %911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %912 = load i32, ptr %911, align 4, !tbaa !5
  %913 = call ptr @s2n_strerror(i32 noundef %912, ptr noundef @.str.4)
  %914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %915 = load i32, ptr %914, align 4, !tbaa !5
  %916 = call ptr @s2n_strerror_debug(i32 noundef %915, ptr noundef @.str.4)
  %917 = call ptr @__errno_location() #12
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %919 = call ptr @strerror(i32 noundef %918) #11
  %920 = call ptr @__errno_location() #12
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %909, ptr noundef @.str.5, i32 noundef %910, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 76, ptr noundef %913, ptr noundef %916, ptr noundef %919, i32 noundef %921) #11
  br label %923

923:                                              ; preds = %906, %889
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %924

924:                                              ; preds = %923
  br label %925

925:                                              ; preds = %924
  call void @exit(i32 noundef 1) #13
  unreachable

926:                                              ; No predecessors!
  br label %927

927:                                              ; preds = %926
  br label %928

928:                                              ; preds = %927, %867
  br label %929

929:                                              ; preds = %928
  br label %930

930:                                              ; preds = %929
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #11
  store ptr null, ptr %17, align 8, !tbaa !9
  br label %931

931:                                              ; preds = %930
  %932 = load i32, ptr @test_count, align 4, !tbaa !5
  %933 = add nsw i32 %932, 1
  store i32 %933, ptr @test_count, align 4, !tbaa !5
  %934 = load ptr, ptr %11, align 8, !tbaa !9
  %935 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %934, ptr noundef %17)
  %936 = icmp eq i32 %935, -1
  br i1 %936, label %937, label %990

937:                                              ; preds = %931
  br label %938

938:                                              ; preds = %937
  br label %939

939:                                              ; preds = %938
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  %940 = call ptr @__errno_location() #12
  %941 = load i32, ptr %940, align 4, !tbaa !5
  store i32 %941, ptr %18, align 4, !tbaa !5
  %942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %943 = call i32 @s2n_print_stacktrace(ptr noundef %942)
  %944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %945 = trunc i8 %944 to i1
  br i1 %945, label %946, label %968

946:                                              ; preds = %939
  %947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %948 = call i32 @fileno(ptr noundef %947) #11
  %949 = call i32 @isatty(i32 noundef %948) #11
  %950 = icmp ne i32 %949, 0
  br i1 %950, label %951, label %968

951:                                              ; preds = %946
  %952 = load i32, ptr %18, align 4, !tbaa !5
  %953 = call ptr @__errno_location() #12
  store i32 %952, ptr %953, align 4, !tbaa !5
  %954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %955 = load i32, ptr @test_count, align 4, !tbaa !5
  %956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %957 = load i32, ptr %956, align 4, !tbaa !5
  %958 = call ptr @s2n_strerror(i32 noundef %957, ptr noundef @.str.4)
  %959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = call ptr @s2n_strerror_debug(i32 noundef %960, ptr noundef @.str.4)
  %962 = call ptr @__errno_location() #12
  %963 = load i32, ptr %962, align 4, !tbaa !5
  %964 = call ptr @strerror(i32 noundef %963) #11
  %965 = call ptr @__errno_location() #12
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %954, ptr noundef @.str.2, i32 noundef %955, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 79, ptr noundef %958, ptr noundef %961, ptr noundef %964, i32 noundef %966) #11
  br label %985

968:                                              ; preds = %946, %939
  %969 = load i32, ptr %18, align 4, !tbaa !5
  %970 = call ptr @__errno_location() #12
  store i32 %969, ptr %970, align 4, !tbaa !5
  %971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %972 = load i32, ptr @test_count, align 4, !tbaa !5
  %973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %974 = load i32, ptr %973, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror(i32 noundef %974, ptr noundef @.str.4)
  %976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = call ptr @s2n_strerror_debug(i32 noundef %977, ptr noundef @.str.4)
  %979 = call ptr @__errno_location() #12
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call ptr @strerror(i32 noundef %980) #11
  %982 = call ptr @__errno_location() #12
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %971, ptr noundef @.str.5, i32 noundef %972, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 79, ptr noundef %975, ptr noundef %978, ptr noundef %981, i32 noundef %983) #11
  br label %985

985:                                              ; preds = %968, %951
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %986

986:                                              ; preds = %985
  br label %987

987:                                              ; preds = %986
  call void @exit(i32 noundef 1) #13
  unreachable

988:                                              ; No predecessors!
  br label %989

989:                                              ; preds = %988
  br label %990

990:                                              ; preds = %989, %931
  br label %991

991:                                              ; preds = %990
  br label %992

992:                                              ; preds = %991
  br label %993

993:                                              ; preds = %992
  %994 = load i32, ptr @test_count, align 4, !tbaa !5
  %995 = add nsw i32 %994, 1
  store i32 %995, ptr @test_count, align 4, !tbaa !5
  %996 = load ptr, ptr %17, align 8, !tbaa !9
  %997 = icmp eq ptr %996, null
  br i1 %997, label %998, label %1051

998:                                              ; preds = %993
  br label %999

999:                                              ; preds = %998
  br label %1000

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

1007:                                             ; preds = %1000
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = call i32 @fileno(ptr noundef %1008) #11
  %1010 = call i32 @isatty(i32 noundef %1009) #11
  %1011 = icmp ne i32 %1010, 0
  br i1 %1011, label %1012, label %1029

1012:                                             ; preds = %1007
  %1013 = load i32, ptr %19, align 4, !tbaa !5
  %1014 = call ptr @__errno_location() #12
  store i32 %1013, ptr %1014, align 4, !tbaa !5
  %1015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1016 = load i32, ptr @test_count, align 4, !tbaa !5
  %1017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1018 = load i32, ptr %1017, align 4, !tbaa !5
  %1019 = call ptr @s2n_strerror(i32 noundef %1018, ptr noundef @.str.4)
  %1020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1021 = load i32, ptr %1020, align 4, !tbaa !5
  %1022 = call ptr @s2n_strerror_debug(i32 noundef %1021, ptr noundef @.str.4)
  %1023 = call ptr @__errno_location() #12
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call ptr @strerror(i32 noundef %1024) #11
  %1026 = call ptr @__errno_location() #12
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1015, ptr noundef @.str.2, i32 noundef %1016, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1019, ptr noundef %1022, ptr noundef %1025, i32 noundef %1027) #11
  br label %1046

1029:                                             ; preds = %1007, %1000
  %1030 = load i32, ptr %19, align 4, !tbaa !5
  %1031 = call ptr @__errno_location() #12
  store i32 %1030, ptr %1031, align 4, !tbaa !5
  %1032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1033 = load i32, ptr @test_count, align 4, !tbaa !5
  %1034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1035 = load i32, ptr %1034, align 4, !tbaa !5
  %1036 = call ptr @s2n_strerror(i32 noundef %1035, ptr noundef @.str.4)
  %1037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1038 = load i32, ptr %1037, align 4, !tbaa !5
  %1039 = call ptr @s2n_strerror_debug(i32 noundef %1038, ptr noundef @.str.4)
  %1040 = call ptr @__errno_location() #12
  %1041 = load i32, ptr %1040, align 4, !tbaa !5
  %1042 = call ptr @strerror(i32 noundef %1041) #11
  %1043 = call ptr @__errno_location() #12
  %1044 = load i32, ptr %1043, align 4, !tbaa !5
  %1045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1032, ptr noundef @.str.5, i32 noundef %1033, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1036, ptr noundef %1039, ptr noundef %1042, i32 noundef %1044) #11
  br label %1046

1046:                                             ; preds = %1029, %1012
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  br label %1047

1047:                                             ; preds = %1046
  br label %1048

1048:                                             ; preds = %1047
  call void @exit(i32 noundef 1) #13
  unreachable

1049:                                             ; No predecessors!
  br label %1050

1050:                                             ; preds = %1049
  br label %1051

1051:                                             ; preds = %1050, %993
  br label %1052

1052:                                             ; preds = %1051
  br label %1053

1053:                                             ; preds = %1052
  call void @llvm.lifetime.start.p0(i64 40, ptr %20) #11
  call void @llvm.memset.p0.i64(ptr align 8 %20, i8 0, i64 40, i1 false)
  br label %1054

1054:                                             ; preds = %1053
  %1055 = load i32, ptr @test_count, align 4, !tbaa !5
  %1056 = add nsw i32 %1055, 1
  store i32 %1056, ptr @test_count, align 4, !tbaa !5
  %1057 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %20, i32 noundef 1024)
  %1058 = icmp eq i32 %1057, -1
  br i1 %1058, label %1059, label %1112

1059:                                             ; preds = %1054
  br label %1060

1060:                                             ; preds = %1059
  br label %1061

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

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

1073:                                             ; preds = %1068
  %1074 = load i32, ptr %21, align 4, !tbaa !5
  %1075 = call ptr @__errno_location() #12
  store i32 %1074, ptr %1075, 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 @.str.4)
  %1081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror_debug(i32 noundef %1082, ptr noundef @.str.4)
  %1084 = call ptr @__errno_location() #12
  %1085 = load i32, ptr %1084, align 4, !tbaa !5
  %1086 = call ptr @strerror(i32 noundef %1085) #11
  %1087 = call ptr @__errno_location() #12
  %1088 = load i32, ptr %1087, align 4, !tbaa !5
  %1089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1076, ptr noundef @.str.2, i32 noundef %1077, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1080, ptr noundef %1083, ptr noundef %1086, i32 noundef %1088) #11
  br label %1107

1090:                                             ; preds = %1068, %1061
  %1091 = load i32, ptr %21, align 4, !tbaa !5
  %1092 = call ptr @__errno_location() #12
  store i32 %1091, ptr %1092, align 4, !tbaa !5
  %1093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1094 = load i32, ptr @test_count, align 4, !tbaa !5
  %1095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = call ptr @s2n_strerror(i32 noundef %1096, ptr noundef @.str.4)
  %1098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1099 = load i32, ptr %1098, align 4, !tbaa !5
  %1100 = call ptr @s2n_strerror_debug(i32 noundef %1099, ptr noundef @.str.4)
  %1101 = call ptr @__errno_location() #12
  %1102 = load i32, ptr %1101, align 4, !tbaa !5
  %1103 = call ptr @strerror(i32 noundef %1102) #11
  %1104 = call ptr @__errno_location() #12
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  %1106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1093, ptr noundef @.str.5, i32 noundef %1094, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1097, ptr noundef %1100, ptr noundef %1103, i32 noundef %1105) #11
  br label %1107

1107:                                             ; preds = %1090, %1073
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %1108

1108:                                             ; preds = %1107
  br label %1109

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

1110:                                             ; No predecessors!
  br label %1111

1111:                                             ; preds = %1110
  br label %1112

1112:                                             ; preds = %1111, %1054
  br label %1113

1113:                                             ; preds = %1112
  br label %1114

1114:                                             ; preds = %1113
  br label %1115

1115:                                             ; preds = %1114
  %1116 = load i32, ptr @test_count, align 4, !tbaa !5
  %1117 = add nsw i32 %1116, 1
  store i32 %1117, ptr @test_count, align 4, !tbaa !5
  %1118 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !55
  %1119 = load ptr, ptr %11, align 8, !tbaa !9
  %1120 = call i32 %1118(ptr noundef %1119, ptr noundef %20)
  %1121 = icmp eq i32 %1120, -1
  br i1 %1121, label %1122, label %1175

1122:                                             ; preds = %1115
  br label %1123

1123:                                             ; preds = %1122
  br label %1124

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

1131:                                             ; preds = %1124
  %1132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1133 = call i32 @fileno(ptr noundef %1132) #11
  %1134 = call i32 @isatty(i32 noundef %1133) #11
  %1135 = icmp ne i32 %1134, 0
  br i1 %1135, label %1136, label %1153

1136:                                             ; preds = %1131
  %1137 = load i32, ptr %22, align 4, !tbaa !5
  %1138 = call ptr @__errno_location() #12
  store i32 %1137, ptr %1138, align 4, !tbaa !5
  %1139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1140 = load i32, ptr @test_count, align 4, !tbaa !5
  %1141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1142 = load i32, ptr %1141, align 4, !tbaa !5
  %1143 = call ptr @s2n_strerror(i32 noundef %1142, ptr noundef @.str.4)
  %1144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1145 = load i32, ptr %1144, align 4, !tbaa !5
  %1146 = call ptr @s2n_strerror_debug(i32 noundef %1145, ptr noundef @.str.4)
  %1147 = call ptr @__errno_location() #12
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  %1149 = call ptr @strerror(i32 noundef %1148) #11
  %1150 = call ptr @__errno_location() #12
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1139, ptr noundef @.str.2, i32 noundef %1140, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1143, ptr noundef %1146, ptr noundef %1149, i32 noundef %1151) #11
  br label %1170

1153:                                             ; preds = %1131, %1124
  %1154 = load i32, ptr %22, align 4, !tbaa !5
  %1155 = call ptr @__errno_location() #12
  store i32 %1154, ptr %1155, align 4, !tbaa !5
  %1156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1157 = load i32, ptr @test_count, align 4, !tbaa !5
  %1158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1159 = load i32, ptr %1158, align 4, !tbaa !5
  %1160 = call ptr @s2n_strerror(i32 noundef %1159, ptr noundef @.str.4)
  %1161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1162 = load i32, ptr %1161, align 4, !tbaa !5
  %1163 = call ptr @s2n_strerror_debug(i32 noundef %1162, ptr noundef @.str.4)
  %1164 = call ptr @__errno_location() #12
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = call ptr @strerror(i32 noundef %1165) #11
  %1167 = call ptr @__errno_location() #12
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  %1169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1156, ptr noundef @.str.5, i32 noundef %1157, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1160, ptr noundef %1163, ptr noundef %1166, i32 noundef %1168) #11
  br label %1170

1170:                                             ; preds = %1153, %1136
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %1171

1171:                                             ; preds = %1170
  br label %1172

1172:                                             ; preds = %1171
  call void @exit(i32 noundef 1) #13
  unreachable

1173:                                             ; No predecessors!
  br label %1174

1174:                                             ; preds = %1173
  br label %1175

1175:                                             ; preds = %1174, %1115
  br label %1176

1176:                                             ; preds = %1175
  br label %1177

1177:                                             ; preds = %1176
  call void @llvm.lifetime.start.p0(i64 2, ptr %23) #11
  store i16 0, ptr %23, align 2, !tbaa !57
  br label %1178

1178:                                             ; preds = %1177
  %1179 = load i32, ptr @test_count, align 4, !tbaa !5
  %1180 = add nsw i32 %1179, 1
  store i32 %1180, ptr @test_count, align 4, !tbaa !5
  %1181 = call i32 @s2n_stuffer_read_uint16(ptr noundef %20, ptr noundef %23)
  %1182 = icmp eq i32 %1181, -1
  br i1 %1182, label %1183, label %1236

1183:                                             ; preds = %1178
  br label %1184

1184:                                             ; preds = %1183
  br label %1185

1185:                                             ; preds = %1184
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %1186 = call ptr @__errno_location() #12
  %1187 = load i32, ptr %1186, align 4, !tbaa !5
  store i32 %1187, ptr %24, 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) #11
  %1195 = call i32 @isatty(i32 noundef %1194) #11
  %1196 = icmp ne i32 %1195, 0
  br i1 %1196, label %1197, label %1214

1197:                                             ; preds = %1192
  %1198 = load i32, ptr %24, align 4, !tbaa !5
  %1199 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %1208 = call ptr @__errno_location() #12
  %1209 = load i32, ptr %1208, align 4, !tbaa !5
  %1210 = call ptr @strerror(i32 noundef %1209) #11
  %1211 = call ptr @__errno_location() #12
  %1212 = load i32, ptr %1211, align 4, !tbaa !5
  %1213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1200, ptr noundef @.str.2, i32 noundef %1201, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1204, ptr noundef %1207, ptr noundef %1210, i32 noundef %1212) #11
  br label %1231

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

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

1232:                                             ; preds = %1231
  br label %1233

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

1234:                                             ; No predecessors!
  br label %1235

1235:                                             ; preds = %1234
  br label %1236

1236:                                             ; preds = %1235, %1178
  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 i16, ptr %23, align 2, !tbaa !57
  %1243 = zext i16 %1242 to i32
  %1244 = getelementptr inbounds %struct.s2n_stuffer, ptr %20, i32 0, i32 2
  %1245 = load i32, ptr %1244, align 4, !tbaa !58
  %1246 = getelementptr inbounds %struct.s2n_stuffer, ptr %20, i32 0, i32 1
  %1247 = load i32, ptr %1246, align 8, !tbaa !59
  %1248 = sub i32 %1245, %1247
  %1249 = icmp eq i32 %1243, %1248
  br i1 %1249, label %1303, label %1250

1250:                                             ; preds = %1239
  br label %1251

1251:                                             ; preds = %1250
  br label %1252

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

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

1264:                                             ; preds = %1259
  %1265 = load i32, ptr %25, align 4, !tbaa !5
  %1266 = call ptr @__errno_location() #12
  store i32 %1265, ptr %1266, align 4, !tbaa !5
  %1267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1268 = load i32, ptr @test_count, align 4, !tbaa !5
  %1269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror(i32 noundef %1270, ptr noundef @.str.4)
  %1272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  %1274 = call ptr @s2n_strerror_debug(i32 noundef %1273, ptr noundef @.str.4)
  %1275 = call ptr @__errno_location() #12
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call ptr @strerror(i32 noundef %1276) #11
  %1278 = call ptr @__errno_location() #12
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1267, ptr noundef @.str.2, i32 noundef %1268, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1271, ptr noundef %1274, ptr noundef %1277, i32 noundef %1279) #11
  br label %1298

1281:                                             ; preds = %1259, %1252
  %1282 = load i32, ptr %25, align 4, !tbaa !5
  %1283 = call ptr @__errno_location() #12
  store i32 %1282, ptr %1283, align 4, !tbaa !5
  %1284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1285 = load i32, ptr @test_count, align 4, !tbaa !5
  %1286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  %1288 = call ptr @s2n_strerror(i32 noundef %1287, ptr noundef @.str.4)
  %1289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1290 = load i32, ptr %1289, align 4, !tbaa !5
  %1291 = call ptr @s2n_strerror_debug(i32 noundef %1290, ptr noundef @.str.4)
  %1292 = call ptr @__errno_location() #12
  %1293 = load i32, ptr %1292, align 4, !tbaa !5
  %1294 = call ptr @strerror(i32 noundef %1293) #11
  %1295 = call ptr @__errno_location() #12
  %1296 = load i32, ptr %1295, align 4, !tbaa !5
  %1297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1284, ptr noundef @.str.5, i32 noundef %1285, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1288, ptr noundef %1291, ptr noundef %1294, i32 noundef %1296) #11
  br label %1298

1298:                                             ; preds = %1281, %1264
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  br label %1299

1299:                                             ; preds = %1298
  br label %1300

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

1301:                                             ; No predecessors!
  br label %1302

1302:                                             ; preds = %1301
  br label %1303

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

1304:                                             ; preds = %1303
  br label %1305

1305:                                             ; preds = %1304
  call void @llvm.lifetime.start.p0(i64 2, ptr %26) #11
  store i16 0, ptr %26, align 2, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 2, ptr %27) #11
  store i16 0, ptr %27, align 2, !tbaa !57
  br label %1306

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

1311:                                             ; preds = %1306
  br label %1312

1312:                                             ; preds = %1311
  br label %1313

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

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

1325:                                             ; preds = %1320
  %1326 = load i32, ptr %28, align 4, !tbaa !5
  %1327 = call ptr @__errno_location() #12
  store i32 %1326, ptr %1327, align 4, !tbaa !5
  %1328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1329 = load i32, ptr @test_count, align 4, !tbaa !5
  %1330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1331 = load i32, ptr %1330, align 4, !tbaa !5
  %1332 = call ptr @s2n_strerror(i32 noundef %1331, ptr noundef @.str.4)
  %1333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1334 = load i32, ptr %1333, align 4, !tbaa !5
  %1335 = call ptr @s2n_strerror_debug(i32 noundef %1334, ptr noundef @.str.4)
  %1336 = call ptr @__errno_location() #12
  %1337 = load i32, ptr %1336, align 4, !tbaa !5
  %1338 = call ptr @strerror(i32 noundef %1337) #11
  %1339 = call ptr @__errno_location() #12
  %1340 = load i32, ptr %1339, align 4, !tbaa !5
  %1341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1328, ptr noundef @.str.2, i32 noundef %1329, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1332, ptr noundef %1335, ptr noundef %1338, i32 noundef %1340) #11
  br label %1359

1342:                                             ; preds = %1320, %1313
  %1343 = load i32, ptr %28, align 4, !tbaa !5
  %1344 = call ptr @__errno_location() #12
  store i32 %1343, ptr %1344, align 4, !tbaa !5
  %1345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1346 = load i32, ptr @test_count, align 4, !tbaa !5
  %1347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call ptr @s2n_strerror(i32 noundef %1348, ptr noundef @.str.4)
  %1350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  %1352 = call ptr @s2n_strerror_debug(i32 noundef %1351, ptr noundef @.str.4)
  %1353 = call ptr @__errno_location() #12
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = call ptr @strerror(i32 noundef %1354) #11
  %1356 = call ptr @__errno_location() #12
  %1357 = load i32, ptr %1356, align 4, !tbaa !5
  %1358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1345, ptr noundef @.str.5, i32 noundef %1346, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1349, ptr noundef %1352, ptr noundef %1355, i32 noundef %1357) #11
  br label %1359

1359:                                             ; preds = %1342, %1325
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %1360

1360:                                             ; preds = %1359
  br label %1361

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

1362:                                             ; No predecessors!
  br label %1363

1363:                                             ; preds = %1362
  br label %1364

1364:                                             ; preds = %1363, %1306
  br label %1365

1365:                                             ; preds = %1364
  br label %1366

1366:                                             ; preds = %1365
  br label %1367

1367:                                             ; preds = %1366
  %1368 = load i32, ptr @test_count, align 4, !tbaa !5
  %1369 = add nsw i32 %1368, 1
  store i32 %1369, ptr @test_count, align 4, !tbaa !5
  %1370 = load i16, ptr %26, align 2, !tbaa !57
  %1371 = zext i16 %1370 to i32
  %1372 = load ptr, ptr %17, align 8, !tbaa !9
  %1373 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %1372, i32 0, i32 1
  %1374 = load ptr, ptr %1373, align 8, !tbaa !60
  %1375 = getelementptr inbounds ptr, ptr %1374, i64 0
  %1376 = load ptr, ptr %1375, align 8, !tbaa !9
  %1377 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %1376, i32 0, i32 0
  %1378 = load i16, ptr %1377, align 8, !tbaa !62
  %1379 = zext i16 %1378 to i32
  %1380 = icmp eq i32 %1371, %1379
  br i1 %1380, label %1434, label %1381

1381:                                             ; preds = %1367
  br label %1382

1382:                                             ; preds = %1381
  br label %1383

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

1390:                                             ; preds = %1383
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = call i32 @fileno(ptr noundef %1391) #11
  %1393 = call i32 @isatty(i32 noundef %1392) #11
  %1394 = icmp ne i32 %1393, 0
  br i1 %1394, label %1395, label %1412

1395:                                             ; preds = %1390
  %1396 = load i32, ptr %29, align 4, !tbaa !5
  %1397 = call ptr @__errno_location() #12
  store i32 %1396, ptr %1397, align 4, !tbaa !5
  %1398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1399 = load i32, ptr @test_count, align 4, !tbaa !5
  %1400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1401 = load i32, ptr %1400, align 4, !tbaa !5
  %1402 = call ptr @s2n_strerror(i32 noundef %1401, ptr noundef @.str.4)
  %1403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1404 = load i32, ptr %1403, align 4, !tbaa !5
  %1405 = call ptr @s2n_strerror_debug(i32 noundef %1404, ptr noundef @.str.4)
  %1406 = call ptr @__errno_location() #12
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call ptr @strerror(i32 noundef %1407) #11
  %1409 = call ptr @__errno_location() #12
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1398, ptr noundef @.str.2, i32 noundef %1399, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1402, ptr noundef %1405, ptr noundef %1408, i32 noundef %1410) #11
  br label %1429

1412:                                             ; preds = %1390, %1383
  %1413 = load i32, ptr %29, align 4, !tbaa !5
  %1414 = call ptr @__errno_location() #12
  store i32 %1413, ptr %1414, align 4, !tbaa !5
  %1415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1416 = load i32, ptr @test_count, align 4, !tbaa !5
  %1417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1418 = load i32, ptr %1417, align 4, !tbaa !5
  %1419 = call ptr @s2n_strerror(i32 noundef %1418, ptr noundef @.str.4)
  %1420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call ptr @s2n_strerror_debug(i32 noundef %1421, ptr noundef @.str.4)
  %1423 = call ptr @__errno_location() #12
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call ptr @strerror(i32 noundef %1424) #11
  %1426 = call ptr @__errno_location() #12
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1415, ptr noundef @.str.5, i32 noundef %1416, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1419, ptr noundef %1422, ptr noundef %1425, i32 noundef %1427) #11
  br label %1429

1429:                                             ; preds = %1412, %1395
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %1430

1430:                                             ; preds = %1429
  br label %1431

1431:                                             ; preds = %1430
  call void @exit(i32 noundef 1) #13
  unreachable

1432:                                             ; No predecessors!
  br label %1433

1433:                                             ; preds = %1432
  br label %1434

1434:                                             ; preds = %1433, %1367
  br label %1435

1435:                                             ; preds = %1434
  br label %1436

1436:                                             ; preds = %1435
  br label %1437

1437:                                             ; preds = %1436
  %1438 = load i32, ptr @test_count, align 4, !tbaa !5
  %1439 = add nsw i32 %1438, 1
  store i32 %1439, ptr @test_count, align 4, !tbaa !5
  %1440 = call i32 @s2n_stuffer_read_uint16(ptr noundef %20, ptr noundef %27)
  %1441 = icmp eq i32 %1440, -1
  br i1 %1441, label %1442, label %1495

1442:                                             ; preds = %1437
  br label %1443

1443:                                             ; preds = %1442
  br label %1444

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

1451:                                             ; preds = %1444
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = call i32 @fileno(ptr noundef %1452) #11
  %1454 = call i32 @isatty(i32 noundef %1453) #11
  %1455 = icmp ne i32 %1454, 0
  br i1 %1455, label %1456, label %1473

1456:                                             ; preds = %1451
  %1457 = load i32, ptr %30, align 4, !tbaa !5
  %1458 = call ptr @__errno_location() #12
  store i32 %1457, ptr %1458, align 4, !tbaa !5
  %1459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1460 = load i32, ptr @test_count, align 4, !tbaa !5
  %1461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1462 = load i32, ptr %1461, align 4, !tbaa !5
  %1463 = call ptr @s2n_strerror(i32 noundef %1462, ptr noundef @.str.4)
  %1464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1465 = load i32, ptr %1464, align 4, !tbaa !5
  %1466 = call ptr @s2n_strerror_debug(i32 noundef %1465, ptr noundef @.str.4)
  %1467 = call ptr @__errno_location() #12
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = call ptr @strerror(i32 noundef %1468) #11
  %1470 = call ptr @__errno_location() #12
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1459, ptr noundef @.str.2, i32 noundef %1460, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1463, ptr noundef %1466, ptr noundef %1469, i32 noundef %1471) #11
  br label %1490

1473:                                             ; preds = %1451, %1444
  %1474 = load i32, ptr %30, align 4, !tbaa !5
  %1475 = call ptr @__errno_location() #12
  store i32 %1474, ptr %1475, align 4, !tbaa !5
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = load i32, ptr @test_count, align 4, !tbaa !5
  %1478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1479 = load i32, ptr %1478, align 4, !tbaa !5
  %1480 = call ptr @s2n_strerror(i32 noundef %1479, ptr noundef @.str.4)
  %1481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1482 = load i32, ptr %1481, align 4, !tbaa !5
  %1483 = call ptr @s2n_strerror_debug(i32 noundef %1482, ptr noundef @.str.4)
  %1484 = call ptr @__errno_location() #12
  %1485 = load i32, ptr %1484, align 4, !tbaa !5
  %1486 = call ptr @strerror(i32 noundef %1485) #11
  %1487 = call ptr @__errno_location() #12
  %1488 = load i32, ptr %1487, align 4, !tbaa !5
  %1489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1476, ptr noundef @.str.5, i32 noundef %1477, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1480, ptr noundef %1483, ptr noundef %1486, i32 noundef %1488) #11
  br label %1490

1490:                                             ; preds = %1473, %1456
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %1491

1491:                                             ; preds = %1490
  br label %1492

1492:                                             ; preds = %1491
  call void @exit(i32 noundef 1) #13
  unreachable

1493:                                             ; No predecessors!
  br label %1494

1494:                                             ; preds = %1493
  br label %1495

1495:                                             ; preds = %1494, %1437
  br label %1496

1496:                                             ; preds = %1495
  br label %1497

1497:                                             ; preds = %1496
  br label %1498

1498:                                             ; preds = %1497
  %1499 = load i32, ptr @test_count, align 4, !tbaa !5
  %1500 = add nsw i32 %1499, 1
  store i32 %1500, ptr @test_count, align 4, !tbaa !5
  %1501 = load i16, ptr %27, align 2, !tbaa !57
  %1502 = zext i16 %1501 to i32
  %1503 = load ptr, ptr %17, align 8, !tbaa !9
  %1504 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %1503, i32 0, i32 1
  %1505 = load ptr, ptr %1504, align 8, !tbaa !60
  %1506 = getelementptr inbounds ptr, ptr %1505, i64 0
  %1507 = load ptr, ptr %1506, align 8, !tbaa !9
  %1508 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %1507, i32 0, i32 3
  %1509 = load i8, ptr %1508, align 8, !tbaa !64
  %1510 = zext i8 %1509 to i32
  %1511 = icmp eq i32 %1502, %1510
  br i1 %1511, label %1565, label %1512

1512:                                             ; preds = %1498
  br label %1513

1513:                                             ; preds = %1512
  br label %1514

1514:                                             ; preds = %1513
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #11
  %1515 = call ptr @__errno_location() #12
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  store i32 %1516, ptr %31, align 4, !tbaa !5
  %1517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1518 = call i32 @s2n_print_stacktrace(ptr noundef %1517)
  %1519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1520 = trunc i8 %1519 to i1
  br i1 %1520, label %1521, label %1543

1521:                                             ; preds = %1514
  %1522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1523 = call i32 @fileno(ptr noundef %1522) #11
  %1524 = call i32 @isatty(i32 noundef %1523) #11
  %1525 = icmp ne i32 %1524, 0
  br i1 %1525, label %1526, label %1543

1526:                                             ; preds = %1521
  %1527 = load i32, ptr %31, align 4, !tbaa !5
  %1528 = call ptr @__errno_location() #12
  store i32 %1527, ptr %1528, align 4, !tbaa !5
  %1529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1530 = load i32, ptr @test_count, align 4, !tbaa !5
  %1531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1532 = load i32, ptr %1531, align 4, !tbaa !5
  %1533 = call ptr @s2n_strerror(i32 noundef %1532, ptr noundef @.str.4)
  %1534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1535 = load i32, ptr %1534, align 4, !tbaa !5
  %1536 = call ptr @s2n_strerror_debug(i32 noundef %1535, ptr noundef @.str.4)
  %1537 = call ptr @__errno_location() #12
  %1538 = load i32, ptr %1537, align 4, !tbaa !5
  %1539 = call ptr @strerror(i32 noundef %1538) #11
  %1540 = call ptr @__errno_location() #12
  %1541 = load i32, ptr %1540, align 4, !tbaa !5
  %1542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1529, ptr noundef @.str.2, i32 noundef %1530, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1533, ptr noundef %1536, ptr noundef %1539, i32 noundef %1541) #11
  br label %1560

1543:                                             ; preds = %1521, %1514
  %1544 = load i32, ptr %31, align 4, !tbaa !5
  %1545 = call ptr @__errno_location() #12
  store i32 %1544, ptr %1545, align 4, !tbaa !5
  %1546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1547 = load i32, ptr @test_count, align 4, !tbaa !5
  %1548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1549 = load i32, ptr %1548, align 4, !tbaa !5
  %1550 = call ptr @s2n_strerror(i32 noundef %1549, ptr noundef @.str.4)
  %1551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1552 = load i32, ptr %1551, align 4, !tbaa !5
  %1553 = call ptr @s2n_strerror_debug(i32 noundef %1552, ptr noundef @.str.4)
  %1554 = call ptr @__errno_location() #12
  %1555 = load i32, ptr %1554, align 4, !tbaa !5
  %1556 = call ptr @strerror(i32 noundef %1555) #11
  %1557 = call ptr @__errno_location() #12
  %1558 = load i32, ptr %1557, align 4, !tbaa !5
  %1559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1546, ptr noundef @.str.5, i32 noundef %1547, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1550, ptr noundef %1553, ptr noundef %1556, i32 noundef %1558) #11
  br label %1560

1560:                                             ; preds = %1543, %1526
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %1561

1561:                                             ; preds = %1560
  br label %1562

1562:                                             ; preds = %1561
  call void @exit(i32 noundef 1) #13
  unreachable

1563:                                             ; No predecessors!
  br label %1564

1564:                                             ; preds = %1563
  br label %1565

1565:                                             ; preds = %1564, %1498
  br label %1566

1566:                                             ; preds = %1565
  br label %1567

1567:                                             ; preds = %1566
  br label %1568

1568:                                             ; preds = %1567
  %1569 = load i32, ptr @test_count, align 4, !tbaa !5
  %1570 = add nsw i32 %1569, 1
  store i32 %1570, ptr @test_count, align 4, !tbaa !5
  %1571 = load i16, ptr %27, align 2, !tbaa !57
  %1572 = zext i16 %1571 to i32
  %1573 = call i32 @s2n_stuffer_skip_read(ptr noundef %20, i32 noundef %1572)
  %1574 = icmp eq i32 %1573, -1
  br i1 %1574, label %1575, label %1628

1575:                                             ; preds = %1568
  br label %1576

1576:                                             ; preds = %1575
  br label %1577

1577:                                             ; preds = %1576
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  %1578 = call ptr @__errno_location() #12
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  store i32 %1579, ptr %32, align 4, !tbaa !5
  %1580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1581 = call i32 @s2n_print_stacktrace(ptr noundef %1580)
  %1582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1583 = trunc i8 %1582 to i1
  br i1 %1583, label %1584, label %1606

1584:                                             ; preds = %1577
  %1585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1586 = call i32 @fileno(ptr noundef %1585) #11
  %1587 = call i32 @isatty(i32 noundef %1586) #11
  %1588 = icmp ne i32 %1587, 0
  br i1 %1588, label %1589, label %1606

1589:                                             ; preds = %1584
  %1590 = load i32, ptr %32, align 4, !tbaa !5
  %1591 = call ptr @__errno_location() #12
  store i32 %1590, ptr %1591, align 4, !tbaa !5
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = load i32, ptr @test_count, align 4, !tbaa !5
  %1594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1595 = load i32, ptr %1594, align 4, !tbaa !5
  %1596 = call ptr @s2n_strerror(i32 noundef %1595, ptr noundef @.str.4)
  %1597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1598 = load i32, ptr %1597, align 4, !tbaa !5
  %1599 = call ptr @s2n_strerror_debug(i32 noundef %1598, ptr noundef @.str.4)
  %1600 = call ptr @__errno_location() #12
  %1601 = load i32, ptr %1600, align 4, !tbaa !5
  %1602 = call ptr @strerror(i32 noundef %1601) #11
  %1603 = call ptr @__errno_location() #12
  %1604 = load i32, ptr %1603, align 4, !tbaa !5
  %1605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1592, ptr noundef @.str.2, i32 noundef %1593, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1596, ptr noundef %1599, ptr noundef %1602, i32 noundef %1604) #11
  br label %1623

1606:                                             ; preds = %1584, %1577
  %1607 = load i32, ptr %32, align 4, !tbaa !5
  %1608 = call ptr @__errno_location() #12
  store i32 %1607, ptr %1608, align 4, !tbaa !5
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = load i32, ptr @test_count, align 4, !tbaa !5
  %1611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = call ptr @s2n_strerror(i32 noundef %1612, ptr noundef @.str.4)
  %1614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1615 = load i32, ptr %1614, align 4, !tbaa !5
  %1616 = call ptr @s2n_strerror_debug(i32 noundef %1615, ptr noundef @.str.4)
  %1617 = call ptr @__errno_location() #12
  %1618 = load i32, ptr %1617, align 4, !tbaa !5
  %1619 = call ptr @strerror(i32 noundef %1618) #11
  %1620 = call ptr @__errno_location() #12
  %1621 = load i32, ptr %1620, align 4, !tbaa !5
  %1622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1609, ptr noundef @.str.5, i32 noundef %1610, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1613, ptr noundef %1616, ptr noundef %1619, i32 noundef %1621) #11
  br label %1623

1623:                                             ; preds = %1606, %1589
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1624

1624:                                             ; preds = %1623
  br label %1625

1625:                                             ; preds = %1624
  call void @exit(i32 noundef 1) #13
  unreachable

1626:                                             ; No predecessors!
  br label %1627

1627:                                             ; preds = %1626
  br label %1628

1628:                                             ; preds = %1627, %1568
  br label %1629

1629:                                             ; preds = %1628
  br label %1630

1630:                                             ; preds = %1629
  br label %1631

1631:                                             ; preds = %1630
  %1632 = load i32, ptr @test_count, align 4, !tbaa !5
  %1633 = add nsw i32 %1632, 1
  store i32 %1633, ptr @test_count, align 4, !tbaa !5
  %1634 = getelementptr inbounds %struct.s2n_stuffer, ptr %20, i32 0, i32 2
  %1635 = load i32, ptr %1634, align 4, !tbaa !58
  %1636 = getelementptr inbounds %struct.s2n_stuffer, ptr %20, i32 0, i32 1
  %1637 = load i32, ptr %1636, align 8, !tbaa !59
  %1638 = sub i32 %1635, %1637
  %1639 = icmp eq i32 %1638, 0
  br i1 %1639, label %1693, label %1640

1640:                                             ; preds = %1631
  br label %1641

1641:                                             ; preds = %1640
  br label %1642

1642:                                             ; preds = %1641
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  %1643 = call ptr @__errno_location() #12
  %1644 = load i32, ptr %1643, align 4, !tbaa !5
  store i32 %1644, ptr %33, align 4, !tbaa !5
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = call i32 @s2n_print_stacktrace(ptr noundef %1645)
  %1647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1648 = trunc i8 %1647 to i1
  br i1 %1648, label %1649, label %1671

1649:                                             ; preds = %1642
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = call i32 @fileno(ptr noundef %1650) #11
  %1652 = call i32 @isatty(i32 noundef %1651) #11
  %1653 = icmp ne i32 %1652, 0
  br i1 %1653, label %1654, label %1671

1654:                                             ; preds = %1649
  %1655 = load i32, ptr %33, align 4, !tbaa !5
  %1656 = call ptr @__errno_location() #12
  store i32 %1655, ptr %1656, align 4, !tbaa !5
  %1657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1658 = load i32, ptr @test_count, align 4, !tbaa !5
  %1659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1660 = load i32, ptr %1659, align 4, !tbaa !5
  %1661 = call ptr @s2n_strerror(i32 noundef %1660, ptr noundef @.str.4)
  %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_debug(i32 noundef %1663, ptr noundef @.str.4)
  %1665 = call ptr @__errno_location() #12
  %1666 = load i32, ptr %1665, align 4, !tbaa !5
  %1667 = call ptr @strerror(i32 noundef %1666) #11
  %1668 = call ptr @__errno_location() #12
  %1669 = load i32, ptr %1668, align 4, !tbaa !5
  %1670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1657, ptr noundef @.str.2, i32 noundef %1658, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1661, ptr noundef %1664, ptr noundef %1667, i32 noundef %1669) #11
  br label %1688

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

1688:                                             ; preds = %1671, %1654
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1689

1689:                                             ; preds = %1688
  br label %1690

1690:                                             ; preds = %1689
  call void @exit(i32 noundef 1) #13
  unreachable

1691:                                             ; No predecessors!
  br label %1692

1692:                                             ; preds = %1691
  br label %1693

1693:                                             ; preds = %1692, %1631
  br label %1694

1694:                                             ; preds = %1693
  br label %1695

1695:                                             ; preds = %1694
  br label %1696

1696:                                             ; preds = %1695
  %1697 = load i32, ptr @test_count, align 4, !tbaa !5
  %1698 = add nsw i32 %1697, 1
  store i32 %1698, ptr @test_count, align 4, !tbaa !5
  %1699 = load ptr, ptr %11, align 8, !tbaa !9
  %1700 = call i32 @s2n_connection_free(ptr noundef %1699)
  %1701 = icmp eq i32 %1700, -1
  br i1 %1701, label %1702, label %1755

1702:                                             ; preds = %1696
  br label %1703

1703:                                             ; preds = %1702
  br label %1704

1704:                                             ; preds = %1703
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  %1705 = call ptr @__errno_location() #12
  %1706 = load i32, ptr %1705, align 4, !tbaa !5
  store i32 %1706, ptr %34, align 4, !tbaa !5
  %1707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1708 = call i32 @s2n_print_stacktrace(ptr noundef %1707)
  %1709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1710 = trunc i8 %1709 to i1
  br i1 %1710, label %1711, label %1733

1711:                                             ; preds = %1704
  %1712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1713 = call i32 @fileno(ptr noundef %1712) #11
  %1714 = call i32 @isatty(i32 noundef %1713) #11
  %1715 = icmp ne i32 %1714, 0
  br i1 %1715, label %1716, label %1733

1716:                                             ; preds = %1711
  %1717 = load i32, ptr %34, align 4, !tbaa !5
  %1718 = call ptr @__errno_location() #12
  store i32 %1717, ptr %1718, 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 @.str.4)
  %1724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1725 = load i32, ptr %1724, align 4, !tbaa !5
  %1726 = call ptr @s2n_strerror_debug(i32 noundef %1725, ptr noundef @.str.4)
  %1727 = call ptr @__errno_location() #12
  %1728 = load i32, ptr %1727, align 4, !tbaa !5
  %1729 = call ptr @strerror(i32 noundef %1728) #11
  %1730 = call ptr @__errno_location() #12
  %1731 = load i32, ptr %1730, align 4, !tbaa !5
  %1732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1719, ptr noundef @.str.2, i32 noundef %1720, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1723, ptr noundef %1726, ptr noundef %1729, i32 noundef %1731) #11
  br label %1750

1733:                                             ; preds = %1711, %1704
  %1734 = load i32, ptr %34, align 4, !tbaa !5
  %1735 = call ptr @__errno_location() #12
  store i32 %1734, ptr %1735, align 4, !tbaa !5
  %1736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1737 = load i32, ptr @test_count, align 4, !tbaa !5
  %1738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1739 = load i32, ptr %1738, align 4, !tbaa !5
  %1740 = call ptr @s2n_strerror(i32 noundef %1739, ptr noundef @.str.4)
  %1741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1742 = load i32, ptr %1741, align 4, !tbaa !5
  %1743 = call ptr @s2n_strerror_debug(i32 noundef %1742, ptr noundef @.str.4)
  %1744 = call ptr @__errno_location() #12
  %1745 = load i32, ptr %1744, align 4, !tbaa !5
  %1746 = call ptr @strerror(i32 noundef %1745) #11
  %1747 = call ptr @__errno_location() #12
  %1748 = load i32, ptr %1747, align 4, !tbaa !5
  %1749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1736, ptr noundef @.str.5, i32 noundef %1737, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1740, ptr noundef %1743, ptr noundef %1746, i32 noundef %1748) #11
  br label %1750

1750:                                             ; preds = %1733, %1716
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1751

1751:                                             ; preds = %1750
  br label %1752

1752:                                             ; preds = %1751
  call void @exit(i32 noundef 1) #13
  unreachable

1753:                                             ; No predecessors!
  br label %1754

1754:                                             ; preds = %1753
  br label %1755

1755:                                             ; preds = %1754, %1696
  br label %1756

1756:                                             ; preds = %1755
  br label %1757

1757:                                             ; preds = %1756
  call void @llvm.lifetime.end.p0(i64 2, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %23) #11
  %1758 = call i32 @s2n_stuffer_free(ptr noundef %20)
  call void @llvm.lifetime.end.p0(i64 40, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #11
  br label %1759

1759:                                             ; preds = %1757, %656
  %1760 = call zeroext i1 @s2n_pq_is_enabled()
  br i1 %1760, label %1761, label %9472

1761:                                             ; preds = %1759
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #11
  store i64 0, ptr %35, align 8, !tbaa !65
  br label %1762

1762:                                             ; preds = %9468, %1761
  %1763 = load i64, ptr %35, align 8, !tbaa !65
  %1764 = icmp ult i64 %1763, 8
  br i1 %1764, label %1766, label %1765

1765:                                             ; preds = %1762
  store i32 129, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #11
  br label %9471

1766:                                             ; preds = %1762
  call void @llvm.lifetime.start.p0(i64 64, ptr %36) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #11
  store i64 0, ptr %37, align 8, !tbaa !65
  br label %1767

1767:                                             ; preds = %1780, %1766
  %1768 = load i64, ptr %37, align 8, !tbaa !65
  %1769 = icmp ult i64 %1768, 8
  br i1 %1769, label %1771, label %1770

1770:                                             ; preds = %1767
  store i32 132, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #11
  br label %1783

1771:                                             ; preds = %1767
  %1772 = load i64, ptr %37, align 8, !tbaa !65
  %1773 = load i64, ptr %35, align 8, !tbaa !65
  %1774 = add i64 %1772, %1773
  %1775 = urem i64 %1774, 8
  %1776 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %1775
  %1777 = load ptr, ptr %1776, align 8, !tbaa !9
  %1778 = load i64, ptr %37, align 8, !tbaa !65
  %1779 = getelementptr inbounds [8 x ptr], ptr %36, i64 0, i64 %1778
  store ptr %1777, ptr %1779, align 8, !tbaa !9
  br label %1780

1780:                                             ; preds = %1771
  %1781 = load i64, ptr %37, align 8, !tbaa !65
  %1782 = add i64 %1781, 1
  store i64 %1782, ptr %37, align 8, !tbaa !65
  br label %1767, !llvm.loop !66

1783:                                             ; preds = %1770
  call void @llvm.lifetime.start.p0(i64 40, ptr %38) #11
  call void @llvm.memset.p0.i64(ptr align 8 %38, i8 0, i64 40, i1 false)
  %1784 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %38, i32 0, i32 0
  %1785 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %38, i32 0, i32 1
  %1786 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %38, i32 0, i32 2
  store i8 8, ptr %1786, align 8, !tbaa !15
  %1787 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %38, i32 0, i32 3
  %1788 = getelementptr inbounds [8 x ptr], ptr %36, i64 0, i64 0
  store ptr %1788, ptr %1787, align 8, !tbaa !17
  %1789 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %38, i32 0, i32 4
  %1790 = load i32, ptr %7, align 4, !tbaa !5
  %1791 = trunc i32 %1790 to i8
  store i8 %1791, ptr %1789, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 64, ptr %39) #11
  %1792 = getelementptr inbounds %struct.s2n_security_policy, ptr %39, i32 0, i32 0
  store i8 30, ptr %1792, align 8, !tbaa !19
  %1793 = getelementptr inbounds %struct.s2n_security_policy, ptr %39, i32 0, i32 1
  store ptr @cipher_preferences_test_all_tls13, ptr %1793, align 8, !tbaa !21
  %1794 = getelementptr inbounds %struct.s2n_security_policy, ptr %39, i32 0, i32 2
  store ptr %38, ptr %1794, align 8, !tbaa !22
  %1795 = getelementptr inbounds %struct.s2n_security_policy, ptr %39, i32 0, i32 3
  store ptr @s2n_signature_preferences_20200207, ptr %1795, align 8, !tbaa !23
  %1796 = getelementptr inbounds %struct.s2n_security_policy, ptr %39, i32 0, i32 4
  store ptr null, ptr %1796, align 8, !tbaa !24
  %1797 = getelementptr inbounds %struct.s2n_security_policy, ptr %39, i32 0, i32 5
  store ptr @s2n_ecc_preferences_20200310, ptr %1797, align 8, !tbaa !25
  %1798 = getelementptr inbounds %struct.s2n_security_policy, ptr %39, i32 0, i32 6
  store ptr null, ptr %1798, align 8, !tbaa !26
  %1799 = getelementptr inbounds %struct.s2n_security_policy, ptr %39, i32 0, i32 7
  store i8 0, ptr %1799, align 8, !tbaa !27
  %1800 = getelementptr inbounds %struct.s2n_security_policy, ptr %39, i32 0, i32 8
  call void @llvm.memset.p0.i64(ptr align 1 %1800, i8 0, i64 2, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #11
  store ptr null, ptr %40, align 8, !tbaa !9
  br label %1801

1801:                                             ; preds = %1783
  %1802 = load i32, ptr @test_count, align 4, !tbaa !5
  %1803 = add nsw i32 %1802, 1
  store i32 %1803, ptr @test_count, align 4, !tbaa !5
  %1804 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1804, ptr %40, align 8, !tbaa !9
  %1805 = icmp eq ptr %1804, null
  br i1 %1805, label %1806, label %1859

1806:                                             ; preds = %1801
  br label %1807

1807:                                             ; preds = %1806
  br label %1808

1808:                                             ; preds = %1807
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #11
  %1809 = call ptr @__errno_location() #12
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  store i32 %1810, ptr %41, align 4, !tbaa !5
  %1811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1812 = call i32 @s2n_print_stacktrace(ptr noundef %1811)
  %1813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1814 = trunc i8 %1813 to i1
  br i1 %1814, label %1815, label %1837

1815:                                             ; preds = %1808
  %1816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1817 = call i32 @fileno(ptr noundef %1816) #11
  %1818 = call i32 @isatty(i32 noundef %1817) #11
  %1819 = icmp ne i32 %1818, 0
  br i1 %1819, label %1820, label %1837

1820:                                             ; preds = %1815
  %1821 = load i32, ptr %41, align 4, !tbaa !5
  %1822 = call ptr @__errno_location() #12
  store i32 %1821, ptr %1822, align 4, !tbaa !5
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = load i32, ptr @test_count, align 4, !tbaa !5
  %1825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1826 = load i32, ptr %1825, align 4, !tbaa !5
  %1827 = call ptr @s2n_strerror(i32 noundef %1826, ptr noundef @.str.4)
  %1828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1829 = load i32, ptr %1828, align 4, !tbaa !5
  %1830 = call ptr @s2n_strerror_debug(i32 noundef %1829, ptr noundef @.str.4)
  %1831 = call ptr @__errno_location() #12
  %1832 = load i32, ptr %1831, align 4, !tbaa !5
  %1833 = call ptr @strerror(i32 noundef %1832) #11
  %1834 = call ptr @__errno_location() #12
  %1835 = load i32, ptr %1834, align 4, !tbaa !5
  %1836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1823, ptr noundef @.str.2, i32 noundef %1824, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 138, ptr noundef %1827, ptr noundef %1830, ptr noundef %1833, i32 noundef %1835) #11
  br label %1854

1837:                                             ; preds = %1815, %1808
  %1838 = load i32, ptr %41, align 4, !tbaa !5
  %1839 = call ptr @__errno_location() #12
  store i32 %1838, ptr %1839, align 4, !tbaa !5
  %1840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1841 = load i32, ptr @test_count, align 4, !tbaa !5
  %1842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1843 = load i32, ptr %1842, align 4, !tbaa !5
  %1844 = call ptr @s2n_strerror(i32 noundef %1843, ptr noundef @.str.4)
  %1845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1846 = load i32, ptr %1845, align 4, !tbaa !5
  %1847 = call ptr @s2n_strerror_debug(i32 noundef %1846, ptr noundef @.str.4)
  %1848 = call ptr @__errno_location() #12
  %1849 = load i32, ptr %1848, align 4, !tbaa !5
  %1850 = call ptr @strerror(i32 noundef %1849) #11
  %1851 = call ptr @__errno_location() #12
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  %1853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1840, ptr noundef @.str.5, i32 noundef %1841, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 138, ptr noundef %1844, ptr noundef %1847, ptr noundef %1850, i32 noundef %1852) #11
  br label %1854

1854:                                             ; preds = %1837, %1820
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1855

1855:                                             ; preds = %1854
  br label %1856

1856:                                             ; preds = %1855
  call void @exit(i32 noundef 1) #13
  unreachable

1857:                                             ; No predecessors!
  br label %1858

1858:                                             ; preds = %1857
  br label %1859

1859:                                             ; preds = %1858, %1801
  br label %1860

1860:                                             ; preds = %1859
  br label %1861

1861:                                             ; preds = %1860
  %1862 = load ptr, ptr %40, align 8, !tbaa !9
  %1863 = getelementptr inbounds %struct.s2n_connection, ptr %1862, i32 0, i32 2
  store ptr %39, ptr %1863, align 8, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #11
  store ptr null, ptr %42, align 8, !tbaa !9
  br label %1864

1864:                                             ; preds = %1861
  %1865 = load i32, ptr @test_count, align 4, !tbaa !5
  %1866 = add nsw i32 %1865, 1
  store i32 %1866, ptr @test_count, align 4, !tbaa !5
  %1867 = load ptr, ptr %40, align 8, !tbaa !9
  %1868 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %1867, ptr noundef %42)
  %1869 = icmp eq i32 %1868, -1
  br i1 %1869, label %1870, label %1923

1870:                                             ; preds = %1864
  br label %1871

1871:                                             ; preds = %1870
  br label %1872

1872:                                             ; preds = %1871
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  %1873 = call ptr @__errno_location() #12
  %1874 = load i32, ptr %1873, align 4, !tbaa !5
  store i32 %1874, ptr %43, align 4, !tbaa !5
  %1875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1876 = call i32 @s2n_print_stacktrace(ptr noundef %1875)
  %1877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1878 = trunc i8 %1877 to i1
  br i1 %1878, label %1879, label %1901

1879:                                             ; preds = %1872
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = call i32 @fileno(ptr noundef %1880) #11
  %1882 = call i32 @isatty(i32 noundef %1881) #11
  %1883 = icmp ne i32 %1882, 0
  br i1 %1883, label %1884, label %1901

1884:                                             ; preds = %1879
  %1885 = load i32, ptr %43, align 4, !tbaa !5
  %1886 = call ptr @__errno_location() #12
  store i32 %1885, ptr %1886, align 4, !tbaa !5
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = load i32, ptr @test_count, align 4, !tbaa !5
  %1889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1890 = load i32, ptr %1889, align 4, !tbaa !5
  %1891 = call ptr @s2n_strerror(i32 noundef %1890, ptr noundef @.str.4)
  %1892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1893 = load i32, ptr %1892, align 4, !tbaa !5
  %1894 = call ptr @s2n_strerror_debug(i32 noundef %1893, ptr noundef @.str.4)
  %1895 = call ptr @__errno_location() #12
  %1896 = load i32, ptr %1895, align 4, !tbaa !5
  %1897 = call ptr @strerror(i32 noundef %1896) #11
  %1898 = call ptr @__errno_location() #12
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  %1900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1887, ptr noundef @.str.2, i32 noundef %1888, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 142, ptr noundef %1891, ptr noundef %1894, ptr noundef %1897, i32 noundef %1899) #11
  br label %1918

1901:                                             ; preds = %1879, %1872
  %1902 = load i32, ptr %43, align 4, !tbaa !5
  %1903 = call ptr @__errno_location() #12
  store i32 %1902, ptr %1903, align 4, !tbaa !5
  %1904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1905 = load i32, ptr @test_count, align 4, !tbaa !5
  %1906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1907 = load i32, ptr %1906, align 4, !tbaa !5
  %1908 = call ptr @s2n_strerror(i32 noundef %1907, ptr noundef @.str.4)
  %1909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1910 = load i32, ptr %1909, align 4, !tbaa !5
  %1911 = call ptr @s2n_strerror_debug(i32 noundef %1910, ptr noundef @.str.4)
  %1912 = call ptr @__errno_location() #12
  %1913 = load i32, ptr %1912, align 4, !tbaa !5
  %1914 = call ptr @strerror(i32 noundef %1913) #11
  %1915 = call ptr @__errno_location() #12
  %1916 = load i32, ptr %1915, align 4, !tbaa !5
  %1917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1904, ptr noundef @.str.5, i32 noundef %1905, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 142, ptr noundef %1908, ptr noundef %1911, ptr noundef %1914, i32 noundef %1916) #11
  br label %1918

1918:                                             ; preds = %1901, %1884
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1919

1919:                                             ; preds = %1918
  br label %1920

1920:                                             ; preds = %1919
  call void @exit(i32 noundef 1) #13
  unreachable

1921:                                             ; No predecessors!
  br label %1922

1922:                                             ; preds = %1921
  br label %1923

1923:                                             ; preds = %1922, %1864
  br label %1924

1924:                                             ; preds = %1923
  br label %1925

1925:                                             ; preds = %1924
  br label %1926

1926:                                             ; preds = %1925
  %1927 = load i32, ptr @test_count, align 4, !tbaa !5
  %1928 = add nsw i32 %1927, 1
  store i32 %1928, ptr @test_count, align 4, !tbaa !5
  %1929 = load ptr, ptr %42, align 8, !tbaa !9
  %1930 = icmp eq ptr %1929, null
  br i1 %1930, label %1931, label %1984

1931:                                             ; preds = %1926
  br label %1932

1932:                                             ; preds = %1931
  br label %1933

1933:                                             ; preds = %1932
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  %1934 = call ptr @__errno_location() #12
  %1935 = load i32, ptr %1934, align 4, !tbaa !5
  store i32 %1935, ptr %44, align 4, !tbaa !5
  %1936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1937 = call i32 @s2n_print_stacktrace(ptr noundef %1936)
  %1938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1939 = trunc i8 %1938 to i1
  br i1 %1939, label %1940, label %1962

1940:                                             ; preds = %1933
  %1941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1942 = call i32 @fileno(ptr noundef %1941) #11
  %1943 = call i32 @isatty(i32 noundef %1942) #11
  %1944 = icmp ne i32 %1943, 0
  br i1 %1944, label %1945, label %1962

1945:                                             ; preds = %1940
  %1946 = load i32, ptr %44, align 4, !tbaa !5
  %1947 = call ptr @__errno_location() #12
  store i32 %1946, ptr %1947, align 4, !tbaa !5
  %1948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1949 = load i32, ptr @test_count, align 4, !tbaa !5
  %1950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1951 = load i32, ptr %1950, align 4, !tbaa !5
  %1952 = call ptr @s2n_strerror(i32 noundef %1951, ptr noundef @.str.4)
  %1953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1954 = load i32, ptr %1953, align 4, !tbaa !5
  %1955 = call ptr @s2n_strerror_debug(i32 noundef %1954, ptr noundef @.str.4)
  %1956 = call ptr @__errno_location() #12
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  %1958 = call ptr @strerror(i32 noundef %1957) #11
  %1959 = call ptr @__errno_location() #12
  %1960 = load i32, ptr %1959, align 4, !tbaa !5
  %1961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1948, ptr noundef @.str.2, i32 noundef %1949, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 143, ptr noundef %1952, ptr noundef %1955, ptr noundef %1958, i32 noundef %1960) #11
  br label %1979

1962:                                             ; preds = %1940, %1933
  %1963 = load i32, ptr %44, align 4, !tbaa !5
  %1964 = call ptr @__errno_location() #12
  store i32 %1963, ptr %1964, align 4, !tbaa !5
  %1965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1966 = load i32, ptr @test_count, align 4, !tbaa !5
  %1967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1968 = load i32, ptr %1967, align 4, !tbaa !5
  %1969 = call ptr @s2n_strerror(i32 noundef %1968, ptr noundef @.str.4)
  %1970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1971 = load i32, ptr %1970, align 4, !tbaa !5
  %1972 = call ptr @s2n_strerror_debug(i32 noundef %1971, ptr noundef @.str.4)
  %1973 = call ptr @__errno_location() #12
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call ptr @strerror(i32 noundef %1974) #11
  %1976 = call ptr @__errno_location() #12
  %1977 = load i32, ptr %1976, align 4, !tbaa !5
  %1978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1965, ptr noundef @.str.5, i32 noundef %1966, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 143, ptr noundef %1969, ptr noundef %1972, ptr noundef %1975, i32 noundef %1977) #11
  br label %1979

1979:                                             ; preds = %1962, %1945
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1980

1980:                                             ; preds = %1979
  br label %1981

1981:                                             ; preds = %1980
  call void @exit(i32 noundef 1) #13
  unreachable

1982:                                             ; No predecessors!
  br label %1983

1983:                                             ; preds = %1982
  br label %1984

1984:                                             ; preds = %1983, %1926
  br label %1985

1985:                                             ; preds = %1984
  br label %1986

1986:                                             ; preds = %1985
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #11
  store ptr null, ptr %45, align 8, !tbaa !9
  br label %1987

1987:                                             ; preds = %1986
  %1988 = load i32, ptr @test_count, align 4, !tbaa !5
  %1989 = add nsw i32 %1988, 1
  store i32 %1989, ptr @test_count, align 4, !tbaa !5
  %1990 = load ptr, ptr %40, align 8, !tbaa !9
  %1991 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %1990, ptr noundef %45)
  %1992 = icmp eq i32 %1991, -1
  br i1 %1992, label %1993, label %2046

1993:                                             ; preds = %1987
  br label %1994

1994:                                             ; preds = %1993
  br label %1995

1995:                                             ; preds = %1994
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #11
  %1996 = call ptr @__errno_location() #12
  %1997 = load i32, ptr %1996, align 4, !tbaa !5
  store i32 %1997, ptr %46, align 4, !tbaa !5
  %1998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1999 = call i32 @s2n_print_stacktrace(ptr noundef %1998)
  %2000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2001 = trunc i8 %2000 to i1
  br i1 %2001, label %2002, label %2024

2002:                                             ; preds = %1995
  %2003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2004 = call i32 @fileno(ptr noundef %2003) #11
  %2005 = call i32 @isatty(i32 noundef %2004) #11
  %2006 = icmp ne i32 %2005, 0
  br i1 %2006, label %2007, label %2024

2007:                                             ; preds = %2002
  %2008 = load i32, ptr %46, align 4, !tbaa !5
  %2009 = call ptr @__errno_location() #12
  store i32 %2008, ptr %2009, align 4, !tbaa !5
  %2010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2011 = load i32, ptr @test_count, align 4, !tbaa !5
  %2012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2013 = load i32, ptr %2012, align 4, !tbaa !5
  %2014 = call ptr @s2n_strerror(i32 noundef %2013, ptr noundef @.str.4)
  %2015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2016 = load i32, ptr %2015, align 4, !tbaa !5
  %2017 = call ptr @s2n_strerror_debug(i32 noundef %2016, ptr noundef @.str.4)
  %2018 = call ptr @__errno_location() #12
  %2019 = load i32, ptr %2018, align 4, !tbaa !5
  %2020 = call ptr @strerror(i32 noundef %2019) #11
  %2021 = call ptr @__errno_location() #12
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  %2023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2010, ptr noundef @.str.2, i32 noundef %2011, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 146, ptr noundef %2014, ptr noundef %2017, ptr noundef %2020, i32 noundef %2022) #11
  br label %2041

2024:                                             ; preds = %2002, %1995
  %2025 = load i32, ptr %46, align 4, !tbaa !5
  %2026 = call ptr @__errno_location() #12
  store i32 %2025, ptr %2026, align 4, !tbaa !5
  %2027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2028 = load i32, ptr @test_count, align 4, !tbaa !5
  %2029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2030 = load i32, ptr %2029, align 4, !tbaa !5
  %2031 = call ptr @s2n_strerror(i32 noundef %2030, ptr noundef @.str.4)
  %2032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2033 = load i32, ptr %2032, align 4, !tbaa !5
  %2034 = call ptr @s2n_strerror_debug(i32 noundef %2033, ptr noundef @.str.4)
  %2035 = call ptr @__errno_location() #12
  %2036 = load i32, ptr %2035, align 4, !tbaa !5
  %2037 = call ptr @strerror(i32 noundef %2036) #11
  %2038 = call ptr @__errno_location() #12
  %2039 = load i32, ptr %2038, align 4, !tbaa !5
  %2040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2027, ptr noundef @.str.5, i32 noundef %2028, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 146, ptr noundef %2031, ptr noundef %2034, ptr noundef %2037, i32 noundef %2039) #11
  br label %2041

2041:                                             ; preds = %2024, %2007
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %2042

2042:                                             ; preds = %2041
  br label %2043

2043:                                             ; preds = %2042
  call void @exit(i32 noundef 1) #13
  unreachable

2044:                                             ; No predecessors!
  br label %2045

2045:                                             ; preds = %2044
  br label %2046

2046:                                             ; preds = %2045, %1987
  br label %2047

2047:                                             ; preds = %2046
  br label %2048

2048:                                             ; preds = %2047
  br label %2049

2049:                                             ; preds = %2048
  %2050 = load i32, ptr @test_count, align 4, !tbaa !5
  %2051 = add nsw i32 %2050, 1
  store i32 %2051, ptr @test_count, align 4, !tbaa !5
  %2052 = load ptr, ptr %45, align 8, !tbaa !9
  %2053 = icmp eq ptr %2052, null
  br i1 %2053, label %2054, label %2107

2054:                                             ; preds = %2049
  br label %2055

2055:                                             ; preds = %2054
  br label %2056

2056:                                             ; preds = %2055
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #11
  %2057 = call ptr @__errno_location() #12
  %2058 = load i32, ptr %2057, align 4, !tbaa !5
  store i32 %2058, ptr %47, align 4, !tbaa !5
  %2059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2060 = call i32 @s2n_print_stacktrace(ptr noundef %2059)
  %2061 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2062 = trunc i8 %2061 to i1
  br i1 %2062, label %2063, label %2085

2063:                                             ; preds = %2056
  %2064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2065 = call i32 @fileno(ptr noundef %2064) #11
  %2066 = call i32 @isatty(i32 noundef %2065) #11
  %2067 = icmp ne i32 %2066, 0
  br i1 %2067, label %2068, label %2085

2068:                                             ; preds = %2063
  %2069 = load i32, ptr %47, align 4, !tbaa !5
  %2070 = call ptr @__errno_location() #12
  store i32 %2069, ptr %2070, align 4, !tbaa !5
  %2071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2072 = load i32, ptr @test_count, align 4, !tbaa !5
  %2073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2074 = load i32, ptr %2073, align 4, !tbaa !5
  %2075 = call ptr @s2n_strerror(i32 noundef %2074, ptr noundef @.str.4)
  %2076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2077 = load i32, ptr %2076, align 4, !tbaa !5
  %2078 = call ptr @s2n_strerror_debug(i32 noundef %2077, ptr noundef @.str.4)
  %2079 = call ptr @__errno_location() #12
  %2080 = load i32, ptr %2079, align 4, !tbaa !5
  %2081 = call ptr @strerror(i32 noundef %2080) #11
  %2082 = call ptr @__errno_location() #12
  %2083 = load i32, ptr %2082, align 4, !tbaa !5
  %2084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2071, ptr noundef @.str.2, i32 noundef %2072, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2075, ptr noundef %2078, ptr noundef %2081, i32 noundef %2083) #11
  br label %2102

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

2102:                                             ; preds = %2085, %2068
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %2103

2103:                                             ; preds = %2102
  br label %2104

2104:                                             ; preds = %2103
  call void @exit(i32 noundef 1) #13
  unreachable

2105:                                             ; No predecessors!
  br label %2106

2106:                                             ; preds = %2105
  br label %2107

2107:                                             ; preds = %2106, %2049
  br label %2108

2108:                                             ; preds = %2107
  br label %2109

2109:                                             ; preds = %2108
  br label %2110

2110:                                             ; preds = %2109
  %2111 = load i32, ptr @test_count, align 4, !tbaa !5
  %2112 = add nsw i32 %2111, 1
  store i32 %2112, ptr @test_count, align 4, !tbaa !5
  %2113 = load ptr, ptr %45, align 8, !tbaa !9
  %2114 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %2113, i32 0, i32 2
  %2115 = load i8, ptr %2114, align 8, !tbaa !15
  %2116 = zext i8 %2115 to i32
  %2117 = icmp eq i32 %2116, 8
  br i1 %2117, label %2171, label %2118

2118:                                             ; preds = %2110
  br label %2119

2119:                                             ; preds = %2118
  br label %2120

2120:                                             ; preds = %2119
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %2121 = call ptr @__errno_location() #12
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  store i32 %2122, ptr %48, align 4, !tbaa !5
  %2123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2124 = call i32 @s2n_print_stacktrace(ptr noundef %2123)
  %2125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2126 = trunc i8 %2125 to i1
  br i1 %2126, label %2127, label %2149

2127:                                             ; preds = %2120
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = call i32 @fileno(ptr noundef %2128) #11
  %2130 = call i32 @isatty(i32 noundef %2129) #11
  %2131 = icmp ne i32 %2130, 0
  br i1 %2131, label %2132, label %2149

2132:                                             ; preds = %2127
  %2133 = load i32, ptr %48, align 4, !tbaa !5
  %2134 = call ptr @__errno_location() #12
  store i32 %2133, ptr %2134, align 4, !tbaa !5
  %2135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2136 = load i32, ptr @test_count, align 4, !tbaa !5
  %2137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2138 = load i32, ptr %2137, align 4, !tbaa !5
  %2139 = call ptr @s2n_strerror(i32 noundef %2138, ptr noundef @.str.4)
  %2140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2141 = load i32, ptr %2140, align 4, !tbaa !5
  %2142 = call ptr @s2n_strerror_debug(i32 noundef %2141, ptr noundef @.str.4)
  %2143 = call ptr @__errno_location() #12
  %2144 = load i32, ptr %2143, align 4, !tbaa !5
  %2145 = call ptr @strerror(i32 noundef %2144) #11
  %2146 = call ptr @__errno_location() #12
  %2147 = load i32, ptr %2146, align 4, !tbaa !5
  %2148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2135, ptr noundef @.str.2, i32 noundef %2136, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2139, ptr noundef %2142, ptr noundef %2145, i32 noundef %2147) #11
  br label %2166

2149:                                             ; preds = %2127, %2120
  %2150 = load i32, ptr %48, align 4, !tbaa !5
  %2151 = call ptr @__errno_location() #12
  store i32 %2150, ptr %2151, align 4, !tbaa !5
  %2152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2153 = load i32, ptr @test_count, align 4, !tbaa !5
  %2154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2155 = load i32, ptr %2154, align 4, !tbaa !5
  %2156 = call ptr @s2n_strerror(i32 noundef %2155, ptr noundef @.str.4)
  %2157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2158 = load i32, ptr %2157, align 4, !tbaa !5
  %2159 = call ptr @s2n_strerror_debug(i32 noundef %2158, ptr noundef @.str.4)
  %2160 = call ptr @__errno_location() #12
  %2161 = load i32, ptr %2160, align 4, !tbaa !5
  %2162 = call ptr @strerror(i32 noundef %2161) #11
  %2163 = call ptr @__errno_location() #12
  %2164 = load i32, ptr %2163, align 4, !tbaa !5
  %2165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2152, ptr noundef @.str.5, i32 noundef %2153, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2156, ptr noundef %2159, ptr noundef %2162, i32 noundef %2164) #11
  br label %2166

2166:                                             ; preds = %2149, %2132
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %2167

2167:                                             ; preds = %2166
  br label %2168

2168:                                             ; preds = %2167
  call void @exit(i32 noundef 1) #13
  unreachable

2169:                                             ; No predecessors!
  br label %2170

2170:                                             ; preds = %2169
  br label %2171

2171:                                             ; preds = %2170, %2110
  br label %2172

2172:                                             ; preds = %2171
  br label %2173

2173:                                             ; preds = %2172
  br label %2174

2174:                                             ; preds = %2173
  %2175 = load i32, ptr @test_count, align 4, !tbaa !5
  %2176 = add nsw i32 %2175, 1
  store i32 %2176, ptr @test_count, align 4, !tbaa !5
  %2177 = getelementptr inbounds [8 x ptr], ptr %36, i64 0, i64 0
  %2178 = load ptr, ptr %2177, align 16, !tbaa !9
  %2179 = load ptr, ptr %45, align 8, !tbaa !9
  %2180 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %2179, i32 0, i32 3
  %2181 = load ptr, ptr %2180, align 8, !tbaa !17
  %2182 = getelementptr inbounds ptr, ptr %2181, i64 0
  %2183 = load ptr, ptr %2182, align 8, !tbaa !9
  %2184 = icmp eq ptr %2178, %2183
  br i1 %2184, label %2238, label %2185

2185:                                             ; preds = %2174
  br label %2186

2186:                                             ; preds = %2185
  br label %2187

2187:                                             ; preds = %2186
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %2188 = call ptr @__errno_location() #12
  %2189 = load i32, ptr %2188, align 4, !tbaa !5
  store i32 %2189, ptr %49, 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) #11
  %2197 = call i32 @isatty(i32 noundef %2196) #11
  %2198 = icmp ne i32 %2197, 0
  br i1 %2198, label %2199, label %2216

2199:                                             ; preds = %2194
  %2200 = load i32, ptr %49, align 4, !tbaa !5
  %2201 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %2210 = call ptr @__errno_location() #12
  %2211 = load i32, ptr %2210, align 4, !tbaa !5
  %2212 = call ptr @strerror(i32 noundef %2211) #11
  %2213 = call ptr @__errno_location() #12
  %2214 = load i32, ptr %2213, align 4, !tbaa !5
  %2215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2202, ptr noundef @.str.2, i32 noundef %2203, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 149, ptr noundef %2206, ptr noundef %2209, ptr noundef %2212, i32 noundef %2214) #11
  br label %2233

2216:                                             ; preds = %2194, %2187
  %2217 = load i32, ptr %49, align 4, !tbaa !5
  %2218 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %2227 = call ptr @__errno_location() #12
  %2228 = load i32, ptr %2227, align 4, !tbaa !5
  %2229 = call ptr @strerror(i32 noundef %2228) #11
  %2230 = call ptr @__errno_location() #12
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  %2232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2219, ptr noundef @.str.5, i32 noundef %2220, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 149, ptr noundef %2223, ptr noundef %2226, ptr noundef %2229, i32 noundef %2231) #11
  br label %2233

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

2234:                                             ; preds = %2233
  br label %2235

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

2236:                                             ; No predecessors!
  br label %2237

2237:                                             ; preds = %2236
  br label %2238

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

2239:                                             ; preds = %2238
  br label %2240

2240:                                             ; preds = %2239
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #11
  %2241 = load ptr, ptr %45, align 8, !tbaa !9
  %2242 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %2241, i32 0, i32 3
  %2243 = load ptr, ptr %2242, align 8, !tbaa !17
  %2244 = getelementptr inbounds ptr, ptr %2243, i64 0
  %2245 = load ptr, ptr %2244, align 8, !tbaa !9
  store ptr %2245, ptr %50, align 8, !tbaa !9
  %2246 = load ptr, ptr %50, align 8, !tbaa !9
  %2247 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %2246)
  br i1 %2247, label %2311, label %2248

2248:                                             ; preds = %2240
  br label %2249

2249:                                             ; preds = %2248
  %2250 = load i32, ptr @test_count, align 4, !tbaa !5
  %2251 = add nsw i32 %2250, 1
  store i32 %2251, ptr @test_count, align 4, !tbaa !5
  %2252 = load ptr, ptr %40, align 8, !tbaa !9
  %2253 = call i32 @s2n_connection_free(ptr noundef %2252)
  %2254 = icmp eq i32 %2253, -1
  br i1 %2254, label %2255, label %2308

2255:                                             ; preds = %2249
  br label %2256

2256:                                             ; preds = %2255
  br label %2257

2257:                                             ; preds = %2256
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #11
  %2258 = call ptr @__errno_location() #12
  %2259 = load i32, ptr %2258, align 4, !tbaa !5
  store i32 %2259, ptr %51, 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) #11
  %2267 = call i32 @isatty(i32 noundef %2266) #11
  %2268 = icmp ne i32 %2267, 0
  br i1 %2268, label %2269, label %2286

2269:                                             ; preds = %2264
  %2270 = load i32, ptr %51, align 4, !tbaa !5
  %2271 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %2280 = call ptr @__errno_location() #12
  %2281 = load i32, ptr %2280, align 4, !tbaa !5
  %2282 = call ptr @strerror(i32 noundef %2281) #11
  %2283 = call ptr @__errno_location() #12
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  %2285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2272, ptr noundef @.str.2, i32 noundef %2273, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 154, ptr noundef %2276, ptr noundef %2279, ptr noundef %2282, i32 noundef %2284) #11
  br label %2303

2286:                                             ; preds = %2264, %2257
  %2287 = load i32, ptr %51, align 4, !tbaa !5
  %2288 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %2297 = call ptr @__errno_location() #12
  %2298 = load i32, ptr %2297, align 4, !tbaa !5
  %2299 = call ptr @strerror(i32 noundef %2298) #11
  %2300 = call ptr @__errno_location() #12
  %2301 = load i32, ptr %2300, align 4, !tbaa !5
  %2302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2289, ptr noundef @.str.5, i32 noundef %2290, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 154, ptr noundef %2293, ptr noundef %2296, ptr noundef %2299, i32 noundef %2301) #11
  br label %2303

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

2304:                                             ; preds = %2303
  br label %2305

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

2306:                                             ; No predecessors!
  br label %2307

2307:                                             ; preds = %2306
  br label %2308

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

2309:                                             ; preds = %2308
  br label %2310

2310:                                             ; preds = %2309
  store i32 131, ptr %6, align 4
  br label %4257

2311:                                             ; preds = %2240
  call void @llvm.lifetime.start.p0(i64 40, ptr %52) #11
  call void @llvm.memset.p0.i64(ptr align 8 %52, i8 0, i64 40, i1 false)
  br label %2312

2312:                                             ; preds = %2311
  %2313 = load i32, ptr @test_count, align 4, !tbaa !5
  %2314 = add nsw i32 %2313, 1
  store i32 %2314, ptr @test_count, align 4, !tbaa !5
  %2315 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %52, i32 noundef 4096)
  %2316 = icmp eq i32 %2315, -1
  br i1 %2316, label %2317, label %2370

2317:                                             ; preds = %2312
  br label %2318

2318:                                             ; preds = %2317
  br label %2319

2319:                                             ; preds = %2318
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #11
  %2320 = call ptr @__errno_location() #12
  %2321 = load i32, ptr %2320, align 4, !tbaa !5
  store i32 %2321, ptr %53, align 4, !tbaa !5
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = call i32 @s2n_print_stacktrace(ptr noundef %2322)
  %2324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2325 = trunc i8 %2324 to i1
  br i1 %2325, label %2326, label %2348

2326:                                             ; preds = %2319
  %2327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2328 = call i32 @fileno(ptr noundef %2327) #11
  %2329 = call i32 @isatty(i32 noundef %2328) #11
  %2330 = icmp ne i32 %2329, 0
  br i1 %2330, label %2331, label %2348

2331:                                             ; preds = %2326
  %2332 = load i32, ptr %53, align 4, !tbaa !5
  %2333 = call ptr @__errno_location() #12
  store i32 %2332, ptr %2333, align 4, !tbaa !5
  %2334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2335 = load i32, ptr @test_count, align 4, !tbaa !5
  %2336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2337 = load i32, ptr %2336, align 4, !tbaa !5
  %2338 = call ptr @s2n_strerror(i32 noundef %2337, ptr noundef @.str.4)
  %2339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2340 = load i32, ptr %2339, align 4, !tbaa !5
  %2341 = call ptr @s2n_strerror_debug(i32 noundef %2340, ptr noundef @.str.4)
  %2342 = call ptr @__errno_location() #12
  %2343 = load i32, ptr %2342, align 4, !tbaa !5
  %2344 = call ptr @strerror(i32 noundef %2343) #11
  %2345 = call ptr @__errno_location() #12
  %2346 = load i32, ptr %2345, align 4, !tbaa !5
  %2347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2334, ptr noundef @.str.2, i32 noundef %2335, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 159, ptr noundef %2338, ptr noundef %2341, ptr noundef %2344, i32 noundef %2346) #11
  br label %2365

2348:                                             ; preds = %2326, %2319
  %2349 = load i32, ptr %53, align 4, !tbaa !5
  %2350 = call ptr @__errno_location() #12
  store i32 %2349, ptr %2350, align 4, !tbaa !5
  %2351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2352 = load i32, ptr @test_count, align 4, !tbaa !5
  %2353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2354 = load i32, ptr %2353, align 4, !tbaa !5
  %2355 = call ptr @s2n_strerror(i32 noundef %2354, ptr noundef @.str.4)
  %2356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2357 = load i32, ptr %2356, align 4, !tbaa !5
  %2358 = call ptr @s2n_strerror_debug(i32 noundef %2357, ptr noundef @.str.4)
  %2359 = call ptr @__errno_location() #12
  %2360 = load i32, ptr %2359, align 4, !tbaa !5
  %2361 = call ptr @strerror(i32 noundef %2360) #11
  %2362 = call ptr @__errno_location() #12
  %2363 = load i32, ptr %2362, align 4, !tbaa !5
  %2364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2351, ptr noundef @.str.5, i32 noundef %2352, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 159, ptr noundef %2355, ptr noundef %2358, ptr noundef %2361, i32 noundef %2363) #11
  br label %2365

2365:                                             ; preds = %2348, %2331
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %2366

2366:                                             ; preds = %2365
  br label %2367

2367:                                             ; preds = %2366
  call void @exit(i32 noundef 1) #13
  unreachable

2368:                                             ; No predecessors!
  br label %2369

2369:                                             ; preds = %2368
  br label %2370

2370:                                             ; preds = %2369, %2312
  br label %2371

2371:                                             ; preds = %2370
  br label %2372

2372:                                             ; preds = %2371
  br label %2373

2373:                                             ; preds = %2372
  %2374 = load i32, ptr @test_count, align 4, !tbaa !5
  %2375 = add nsw i32 %2374, 1
  store i32 %2375, ptr @test_count, align 4, !tbaa !5
  %2376 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !55
  %2377 = load ptr, ptr %40, align 8, !tbaa !9
  %2378 = call i32 %2376(ptr noundef %2377, ptr noundef %52)
  %2379 = icmp eq i32 %2378, -1
  br i1 %2379, label %2380, label %2433

2380:                                             ; preds = %2373
  br label %2381

2381:                                             ; preds = %2380
  br label %2382

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

2389:                                             ; preds = %2382
  %2390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2391 = call i32 @fileno(ptr noundef %2390) #11
  %2392 = call i32 @isatty(i32 noundef %2391) #11
  %2393 = icmp ne i32 %2392, 0
  br i1 %2393, label %2394, label %2411

2394:                                             ; preds = %2389
  %2395 = load i32, ptr %54, align 4, !tbaa !5
  %2396 = call ptr @__errno_location() #12
  store i32 %2395, ptr %2396, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = load i32, ptr @test_count, align 4, !tbaa !5
  %2399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2400 = load i32, ptr %2399, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror(i32 noundef %2400, ptr noundef @.str.4)
  %2402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2403 = load i32, ptr %2402, align 4, !tbaa !5
  %2404 = call ptr @s2n_strerror_debug(i32 noundef %2403, ptr noundef @.str.4)
  %2405 = call ptr @__errno_location() #12
  %2406 = load i32, ptr %2405, align 4, !tbaa !5
  %2407 = call ptr @strerror(i32 noundef %2406) #11
  %2408 = call ptr @__errno_location() #12
  %2409 = load i32, ptr %2408, align 4, !tbaa !5
  %2410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2397, ptr noundef @.str.2, i32 noundef %2398, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 160, ptr noundef %2401, ptr noundef %2404, ptr noundef %2407, i32 noundef %2409) #11
  br label %2428

2411:                                             ; preds = %2389, %2382
  %2412 = load i32, ptr %54, align 4, !tbaa !5
  %2413 = call ptr @__errno_location() #12
  store i32 %2412, ptr %2413, align 4, !tbaa !5
  %2414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2415 = load i32, ptr @test_count, align 4, !tbaa !5
  %2416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2417 = load i32, ptr %2416, align 4, !tbaa !5
  %2418 = call ptr @s2n_strerror(i32 noundef %2417, ptr noundef @.str.4)
  %2419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2420 = load i32, ptr %2419, align 4, !tbaa !5
  %2421 = call ptr @s2n_strerror_debug(i32 noundef %2420, ptr noundef @.str.4)
  %2422 = call ptr @__errno_location() #12
  %2423 = load i32, ptr %2422, align 4, !tbaa !5
  %2424 = call ptr @strerror(i32 noundef %2423) #11
  %2425 = call ptr @__errno_location() #12
  %2426 = load i32, ptr %2425, align 4, !tbaa !5
  %2427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2414, ptr noundef @.str.5, i32 noundef %2415, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 160, ptr noundef %2418, ptr noundef %2421, ptr noundef %2424, i32 noundef %2426) #11
  br label %2428

2428:                                             ; preds = %2411, %2394
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %2429

2429:                                             ; preds = %2428
  br label %2430

2430:                                             ; preds = %2429
  call void @exit(i32 noundef 1) #13
  unreachable

2431:                                             ; No predecessors!
  br label %2432

2432:                                             ; preds = %2431
  br label %2433

2433:                                             ; preds = %2432, %2373
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

2435:                                             ; preds = %2434
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #11
  %2436 = load ptr, ptr %40, align 8, !tbaa !9
  %2437 = getelementptr inbounds %struct.s2n_connection, ptr %2436, i32 0, i32 31
  %2438 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %2437, i32 0, i32 5
  store ptr %2438, ptr %55, align 8, !tbaa !9
  br label %2439

2439:                                             ; preds = %2435
  %2440 = load i32, ptr @test_count, align 4, !tbaa !5
  %2441 = add nsw i32 %2440, 1
  store i32 %2441, ptr @test_count, align 4, !tbaa !5
  %2442 = load ptr, ptr %55, align 8, !tbaa !9
  %2443 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %2442, i32 0, i32 0
  %2444 = load ptr, ptr %2443, align 8, !tbaa !68
  %2445 = load ptr, ptr %50, align 8, !tbaa !9
  %2446 = icmp eq ptr %2444, %2445
  br i1 %2446, label %2500, label %2447

2447:                                             ; preds = %2439
  br label %2448

2448:                                             ; preds = %2447
  br label %2449

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

2456:                                             ; preds = %2449
  %2457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2458 = call i32 @fileno(ptr noundef %2457) #11
  %2459 = call i32 @isatty(i32 noundef %2458) #11
  %2460 = icmp ne i32 %2459, 0
  br i1 %2460, label %2461, label %2478

2461:                                             ; preds = %2456
  %2462 = load i32, ptr %56, align 4, !tbaa !5
  %2463 = call ptr @__errno_location() #12
  store i32 %2462, ptr %2463, align 4, !tbaa !5
  %2464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2465 = load i32, ptr @test_count, align 4, !tbaa !5
  %2466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2467 = load i32, ptr %2466, align 4, !tbaa !5
  %2468 = call ptr @s2n_strerror(i32 noundef %2467, ptr noundef @.str.4)
  %2469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2470 = load i32, ptr %2469, align 4, !tbaa !5
  %2471 = call ptr @s2n_strerror_debug(i32 noundef %2470, ptr noundef @.str.4)
  %2472 = call ptr @__errno_location() #12
  %2473 = load i32, ptr %2472, align 4, !tbaa !5
  %2474 = call ptr @strerror(i32 noundef %2473) #11
  %2475 = call ptr @__errno_location() #12
  %2476 = load i32, ptr %2475, align 4, !tbaa !5
  %2477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2464, ptr noundef @.str.2, i32 noundef %2465, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2468, ptr noundef %2471, ptr noundef %2474, i32 noundef %2476) #11
  br label %2495

2478:                                             ; preds = %2456, %2449
  %2479 = load i32, ptr %56, align 4, !tbaa !5
  %2480 = call ptr @__errno_location() #12
  store i32 %2479, ptr %2480, align 4, !tbaa !5
  %2481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2482 = load i32, ptr @test_count, align 4, !tbaa !5
  %2483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  %2485 = call ptr @s2n_strerror(i32 noundef %2484, ptr noundef @.str.4)
  %2486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2487 = load i32, ptr %2486, align 4, !tbaa !5
  %2488 = call ptr @s2n_strerror_debug(i32 noundef %2487, ptr noundef @.str.4)
  %2489 = call ptr @__errno_location() #12
  %2490 = load i32, ptr %2489, align 4, !tbaa !5
  %2491 = call ptr @strerror(i32 noundef %2490) #11
  %2492 = call ptr @__errno_location() #12
  %2493 = load i32, ptr %2492, align 4, !tbaa !5
  %2494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2481, ptr noundef @.str.5, i32 noundef %2482, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2485, ptr noundef %2488, ptr noundef %2491, i32 noundef %2493) #11
  br label %2495

2495:                                             ; preds = %2478, %2461
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %2496

2496:                                             ; preds = %2495
  br label %2497

2497:                                             ; preds = %2496
  call void @exit(i32 noundef 1) #13
  unreachable

2498:                                             ; No predecessors!
  br label %2499

2499:                                             ; preds = %2498
  br label %2500

2500:                                             ; preds = %2499, %2439
  br label %2501

2501:                                             ; preds = %2500
  br label %2502

2502:                                             ; preds = %2501
  br label %2503

2503:                                             ; preds = %2502
  %2504 = load i32, ptr @test_count, align 4, !tbaa !5
  %2505 = add nsw i32 %2504, 1
  store i32 %2505, ptr @test_count, align 4, !tbaa !5
  %2506 = load ptr, ptr %55, align 8, !tbaa !9
  %2507 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %2506, i32 0, i32 1
  %2508 = getelementptr inbounds %struct.s2n_kem_params, ptr %2507, i32 0, i32 0
  %2509 = load ptr, ptr %2508, align 8, !tbaa !69
  %2510 = load ptr, ptr %50, align 8, !tbaa !9
  %2511 = getelementptr inbounds %struct.s2n_kem_group, ptr %2510, i32 0, i32 3
  %2512 = load ptr, ptr %2511, align 8, !tbaa !70
  %2513 = icmp eq ptr %2509, %2512
  br i1 %2513, label %2567, label %2514

2514:                                             ; preds = %2503
  br label %2515

2515:                                             ; preds = %2514
  br label %2516

2516:                                             ; preds = %2515
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %2517 = call ptr @__errno_location() #12
  %2518 = load i32, ptr %2517, align 4, !tbaa !5
  store i32 %2518, ptr %57, align 4, !tbaa !5
  %2519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2520 = call i32 @s2n_print_stacktrace(ptr noundef %2519)
  %2521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2522 = trunc i8 %2521 to i1
  br i1 %2522, label %2523, label %2545

2523:                                             ; preds = %2516
  %2524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2525 = call i32 @fileno(ptr noundef %2524) #11
  %2526 = call i32 @isatty(i32 noundef %2525) #11
  %2527 = icmp ne i32 %2526, 0
  br i1 %2527, label %2528, label %2545

2528:                                             ; preds = %2523
  %2529 = load i32, ptr %57, align 4, !tbaa !5
  %2530 = call ptr @__errno_location() #12
  store i32 %2529, ptr %2530, align 4, !tbaa !5
  %2531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2532 = load i32, ptr @test_count, align 4, !tbaa !5
  %2533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2534 = load i32, ptr %2533, align 4, !tbaa !5
  %2535 = call ptr @s2n_strerror(i32 noundef %2534, ptr noundef @.str.4)
  %2536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2537 = load i32, ptr %2536, align 4, !tbaa !5
  %2538 = call ptr @s2n_strerror_debug(i32 noundef %2537, ptr noundef @.str.4)
  %2539 = call ptr @__errno_location() #12
  %2540 = load i32, ptr %2539, align 4, !tbaa !5
  %2541 = call ptr @strerror(i32 noundef %2540) #11
  %2542 = call ptr @__errno_location() #12
  %2543 = load i32, ptr %2542, align 4, !tbaa !5
  %2544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2531, ptr noundef @.str.2, i32 noundef %2532, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2535, ptr noundef %2538, ptr noundef %2541, i32 noundef %2543) #11
  br label %2562

2545:                                             ; preds = %2523, %2516
  %2546 = load i32, ptr %57, align 4, !tbaa !5
  %2547 = call ptr @__errno_location() #12
  store i32 %2546, ptr %2547, align 4, !tbaa !5
  %2548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2549 = load i32, ptr @test_count, align 4, !tbaa !5
  %2550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2551 = load i32, ptr %2550, align 4, !tbaa !5
  %2552 = call ptr @s2n_strerror(i32 noundef %2551, ptr noundef @.str.4)
  %2553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2554 = load i32, ptr %2553, align 4, !tbaa !5
  %2555 = call ptr @s2n_strerror_debug(i32 noundef %2554, ptr noundef @.str.4)
  %2556 = call ptr @__errno_location() #12
  %2557 = load i32, ptr %2556, align 4, !tbaa !5
  %2558 = call ptr @strerror(i32 noundef %2557) #11
  %2559 = call ptr @__errno_location() #12
  %2560 = load i32, ptr %2559, align 4, !tbaa !5
  %2561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2548, ptr noundef @.str.5, i32 noundef %2549, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2552, ptr noundef %2555, ptr noundef %2558, i32 noundef %2560) #11
  br label %2562

2562:                                             ; preds = %2545, %2528
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2563

2563:                                             ; preds = %2562
  br label %2564

2564:                                             ; preds = %2563
  call void @exit(i32 noundef 1) #13
  unreachable

2565:                                             ; No predecessors!
  br label %2566

2566:                                             ; preds = %2565
  br label %2567

2567:                                             ; preds = %2566, %2503
  br label %2568

2568:                                             ; preds = %2567
  br label %2569

2569:                                             ; preds = %2568
  br label %2570

2570:                                             ; preds = %2569
  %2571 = load i32, ptr @test_count, align 4, !tbaa !5
  %2572 = add nsw i32 %2571, 1
  store i32 %2572, ptr @test_count, align 4, !tbaa !5
  %2573 = load ptr, ptr %55, align 8, !tbaa !9
  %2574 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %2573, i32 0, i32 1
  %2575 = getelementptr inbounds %struct.s2n_kem_params, ptr %2574, i32 0, i32 2
  %2576 = getelementptr inbounds %struct.s2n_blob, ptr %2575, i32 0, i32 0
  %2577 = load ptr, ptr %2576, align 8, !tbaa !72
  %2578 = icmp eq ptr %2577, null
  br i1 %2578, label %2579, label %2632

2579:                                             ; preds = %2570
  br label %2580

2580:                                             ; preds = %2579
  br label %2581

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

2588:                                             ; preds = %2581
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = call i32 @fileno(ptr noundef %2589) #11
  %2591 = call i32 @isatty(i32 noundef %2590) #11
  %2592 = icmp ne i32 %2591, 0
  br i1 %2592, label %2593, label %2610

2593:                                             ; preds = %2588
  %2594 = load i32, ptr %58, align 4, !tbaa !5
  %2595 = call ptr @__errno_location() #12
  store i32 %2594, ptr %2595, align 4, !tbaa !5
  %2596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2597 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2599, ptr noundef @.str.4)
  %2601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = call ptr @s2n_strerror_debug(i32 noundef %2602, ptr noundef @.str.4)
  %2604 = call ptr @__errno_location() #12
  %2605 = load i32, ptr %2604, align 4, !tbaa !5
  %2606 = call ptr @strerror(i32 noundef %2605) #11
  %2607 = call ptr @__errno_location() #12
  %2608 = load i32, ptr %2607, align 4, !tbaa !5
  %2609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2596, ptr noundef @.str.2, i32 noundef %2597, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 167, ptr noundef %2600, ptr noundef %2603, ptr noundef %2606, i32 noundef %2608) #11
  br label %2627

2610:                                             ; preds = %2588, %2581
  %2611 = load i32, ptr %58, align 4, !tbaa !5
  %2612 = call ptr @__errno_location() #12
  store i32 %2611, ptr %2612, 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 @.str.4)
  %2618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2619 = load i32, ptr %2618, align 4, !tbaa !5
  %2620 = call ptr @s2n_strerror_debug(i32 noundef %2619, ptr noundef @.str.4)
  %2621 = call ptr @__errno_location() #12
  %2622 = load i32, ptr %2621, align 4, !tbaa !5
  %2623 = call ptr @strerror(i32 noundef %2622) #11
  %2624 = call ptr @__errno_location() #12
  %2625 = load i32, ptr %2624, align 4, !tbaa !5
  %2626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2613, ptr noundef @.str.5, i32 noundef %2614, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 167, ptr noundef %2617, ptr noundef %2620, ptr noundef %2623, i32 noundef %2625) #11
  br label %2627

2627:                                             ; preds = %2610, %2593
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %2628

2628:                                             ; preds = %2627
  br label %2629

2629:                                             ; preds = %2628
  call void @exit(i32 noundef 1) #13
  unreachable

2630:                                             ; No predecessors!
  br label %2631

2631:                                             ; preds = %2630
  br label %2632

2632:                                             ; preds = %2631, %2570
  br label %2633

2633:                                             ; preds = %2632
  br label %2634

2634:                                             ; preds = %2633
  br label %2635

2635:                                             ; preds = %2634
  %2636 = load i32, ptr @test_count, align 4, !tbaa !5
  %2637 = add nsw i32 %2636, 1
  store i32 %2637, ptr @test_count, align 4, !tbaa !5
  %2638 = load ptr, ptr %55, align 8, !tbaa !9
  %2639 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %2638, i32 0, i32 1
  %2640 = getelementptr inbounds %struct.s2n_kem_params, ptr %2639, i32 0, i32 2
  %2641 = getelementptr inbounds %struct.s2n_blob, ptr %2640, i32 0, i32 1
  %2642 = load i32, ptr %2641, align 8, !tbaa !73
  %2643 = load ptr, ptr %50, align 8, !tbaa !9
  %2644 = getelementptr inbounds %struct.s2n_kem_group, ptr %2643, i32 0, i32 3
  %2645 = load ptr, ptr %2644, align 8, !tbaa !70
  %2646 = getelementptr inbounds %struct.s2n_kem, ptr %2645, i32 0, i32 4
  %2647 = load i16, ptr %2646, align 8, !tbaa !74
  %2648 = zext i16 %2647 to i32
  %2649 = icmp eq i32 %2642, %2648
  br i1 %2649, label %2703, label %2650

2650:                                             ; preds = %2635
  br label %2651

2651:                                             ; preds = %2650
  br label %2652

2652:                                             ; preds = %2651
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  %2653 = call ptr @__errno_location() #12
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  store i32 %2654, ptr %59, align 4, !tbaa !5
  %2655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2656 = call i32 @s2n_print_stacktrace(ptr noundef %2655)
  %2657 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2658 = trunc i8 %2657 to i1
  br i1 %2658, label %2659, label %2681

2659:                                             ; preds = %2652
  %2660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2661 = call i32 @fileno(ptr noundef %2660) #11
  %2662 = call i32 @isatty(i32 noundef %2661) #11
  %2663 = icmp ne i32 %2662, 0
  br i1 %2663, label %2664, label %2681

2664:                                             ; preds = %2659
  %2665 = load i32, ptr %59, align 4, !tbaa !5
  %2666 = call ptr @__errno_location() #12
  store i32 %2665, ptr %2666, align 4, !tbaa !5
  %2667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2668 = load i32, ptr @test_count, align 4, !tbaa !5
  %2669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call ptr @s2n_strerror(i32 noundef %2670, ptr noundef @.str.4)
  %2672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2673 = load i32, ptr %2672, align 4, !tbaa !5
  %2674 = call ptr @s2n_strerror_debug(i32 noundef %2673, ptr noundef @.str.4)
  %2675 = call ptr @__errno_location() #12
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  %2677 = call ptr @strerror(i32 noundef %2676) #11
  %2678 = call ptr @__errno_location() #12
  %2679 = load i32, ptr %2678, align 4, !tbaa !5
  %2680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2667, ptr noundef @.str.2, i32 noundef %2668, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 168, ptr noundef %2671, ptr noundef %2674, ptr noundef %2677, i32 noundef %2679) #11
  br label %2698

2681:                                             ; preds = %2659, %2652
  %2682 = load i32, ptr %59, align 4, !tbaa !5
  %2683 = call ptr @__errno_location() #12
  store i32 %2682, ptr %2683, align 4, !tbaa !5
  %2684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2685 = load i32, ptr @test_count, align 4, !tbaa !5
  %2686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2687 = load i32, ptr %2686, align 4, !tbaa !5
  %2688 = call ptr @s2n_strerror(i32 noundef %2687, ptr noundef @.str.4)
  %2689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2690 = load i32, ptr %2689, align 4, !tbaa !5
  %2691 = call ptr @s2n_strerror_debug(i32 noundef %2690, ptr noundef @.str.4)
  %2692 = call ptr @__errno_location() #12
  %2693 = load i32, ptr %2692, align 4, !tbaa !5
  %2694 = call ptr @strerror(i32 noundef %2693) #11
  %2695 = call ptr @__errno_location() #12
  %2696 = load i32, ptr %2695, align 4, !tbaa !5
  %2697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2684, ptr noundef @.str.5, i32 noundef %2685, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 168, ptr noundef %2688, ptr noundef %2691, ptr noundef %2694, i32 noundef %2696) #11
  br label %2698

2698:                                             ; preds = %2681, %2664
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2699

2699:                                             ; preds = %2698
  br label %2700

2700:                                             ; preds = %2699
  call void @exit(i32 noundef 1) #13
  unreachable

2701:                                             ; No predecessors!
  br label %2702

2702:                                             ; preds = %2701
  br label %2703

2703:                                             ; preds = %2702, %2635
  br label %2704

2704:                                             ; preds = %2703
  br label %2705

2705:                                             ; preds = %2704
  br label %2706

2706:                                             ; preds = %2705
  %2707 = load i32, ptr @test_count, align 4, !tbaa !5
  %2708 = add nsw i32 %2707, 1
  store i32 %2708, ptr @test_count, align 4, !tbaa !5
  %2709 = load ptr, ptr %55, align 8, !tbaa !9
  %2710 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %2709, i32 0, i32 2
  %2711 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %2710, i32 0, i32 0
  %2712 = load ptr, ptr %2711, align 8, !tbaa !76
  %2713 = load ptr, ptr %50, align 8, !tbaa !9
  %2714 = getelementptr inbounds %struct.s2n_kem_group, ptr %2713, i32 0, i32 2
  %2715 = load ptr, ptr %2714, align 8, !tbaa !77
  %2716 = icmp eq ptr %2712, %2715
  br i1 %2716, label %2770, label %2717

2717:                                             ; preds = %2706
  br label %2718

2718:                                             ; preds = %2717
  br label %2719

2719:                                             ; preds = %2718
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  %2720 = call ptr @__errno_location() #12
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  store i32 %2721, ptr %60, align 4, !tbaa !5
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = call i32 @s2n_print_stacktrace(ptr noundef %2722)
  %2724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2725 = trunc i8 %2724 to i1
  br i1 %2725, label %2726, label %2748

2726:                                             ; preds = %2719
  %2727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2728 = call i32 @fileno(ptr noundef %2727) #11
  %2729 = call i32 @isatty(i32 noundef %2728) #11
  %2730 = icmp ne i32 %2729, 0
  br i1 %2730, label %2731, label %2748

2731:                                             ; preds = %2726
  %2732 = load i32, ptr %60, align 4, !tbaa !5
  %2733 = call ptr @__errno_location() #12
  store i32 %2732, ptr %2733, align 4, !tbaa !5
  %2734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2735 = load i32, ptr @test_count, align 4, !tbaa !5
  %2736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2737 = load i32, ptr %2736, align 4, !tbaa !5
  %2738 = call ptr @s2n_strerror(i32 noundef %2737, ptr noundef @.str.4)
  %2739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2740 = load i32, ptr %2739, align 4, !tbaa !5
  %2741 = call ptr @s2n_strerror_debug(i32 noundef %2740, ptr noundef @.str.4)
  %2742 = call ptr @__errno_location() #12
  %2743 = load i32, ptr %2742, align 4, !tbaa !5
  %2744 = call ptr @strerror(i32 noundef %2743) #11
  %2745 = call ptr @__errno_location() #12
  %2746 = load i32, ptr %2745, align 4, !tbaa !5
  %2747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2734, ptr noundef @.str.2, i32 noundef %2735, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 169, ptr noundef %2738, ptr noundef %2741, ptr noundef %2744, i32 noundef %2746) #11
  br label %2765

2748:                                             ; preds = %2726, %2719
  %2749 = load i32, ptr %60, align 4, !tbaa !5
  %2750 = call ptr @__errno_location() #12
  store i32 %2749, ptr %2750, align 4, !tbaa !5
  %2751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2752 = load i32, ptr @test_count, align 4, !tbaa !5
  %2753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2754 = load i32, ptr %2753, align 4, !tbaa !5
  %2755 = call ptr @s2n_strerror(i32 noundef %2754, ptr noundef @.str.4)
  %2756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2757 = load i32, ptr %2756, align 4, !tbaa !5
  %2758 = call ptr @s2n_strerror_debug(i32 noundef %2757, ptr noundef @.str.4)
  %2759 = call ptr @__errno_location() #12
  %2760 = load i32, ptr %2759, align 4, !tbaa !5
  %2761 = call ptr @strerror(i32 noundef %2760) #11
  %2762 = call ptr @__errno_location() #12
  %2763 = load i32, ptr %2762, align 4, !tbaa !5
  %2764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2751, ptr noundef @.str.5, i32 noundef %2752, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 169, ptr noundef %2755, ptr noundef %2758, ptr noundef %2761, i32 noundef %2763) #11
  br label %2765

2765:                                             ; preds = %2748, %2731
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %2766

2766:                                             ; preds = %2765
  br label %2767

2767:                                             ; preds = %2766
  call void @exit(i32 noundef 1) #13
  unreachable

2768:                                             ; No predecessors!
  br label %2769

2769:                                             ; preds = %2768
  br label %2770

2770:                                             ; preds = %2769, %2706
  br label %2771

2771:                                             ; preds = %2770
  br label %2772

2772:                                             ; preds = %2771
  br label %2773

2773:                                             ; preds = %2772
  %2774 = load i32, ptr @test_count, align 4, !tbaa !5
  %2775 = add nsw i32 %2774, 1
  store i32 %2775, ptr @test_count, align 4, !tbaa !5
  %2776 = load ptr, ptr %55, align 8, !tbaa !9
  %2777 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %2776, i32 0, i32 2
  %2778 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %2777, i32 0, i32 1
  %2779 = load ptr, ptr %2778, align 8, !tbaa !78
  %2780 = icmp eq ptr %2779, null
  br i1 %2780, label %2781, label %2834

2781:                                             ; preds = %2773
  br label %2782

2782:                                             ; preds = %2781
  br label %2783

2783:                                             ; preds = %2782
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  %2784 = call ptr @__errno_location() #12
  %2785 = load i32, ptr %2784, align 4, !tbaa !5
  store i32 %2785, ptr %61, align 4, !tbaa !5
  %2786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2787 = call i32 @s2n_print_stacktrace(ptr noundef %2786)
  %2788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2789 = trunc i8 %2788 to i1
  br i1 %2789, label %2790, label %2812

2790:                                             ; preds = %2783
  %2791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2792 = call i32 @fileno(ptr noundef %2791) #11
  %2793 = call i32 @isatty(i32 noundef %2792) #11
  %2794 = icmp ne i32 %2793, 0
  br i1 %2794, label %2795, label %2812

2795:                                             ; preds = %2790
  %2796 = load i32, ptr %61, align 4, !tbaa !5
  %2797 = call ptr @__errno_location() #12
  store i32 %2796, ptr %2797, align 4, !tbaa !5
  %2798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2799 = load i32, ptr @test_count, align 4, !tbaa !5
  %2800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2801 = load i32, ptr %2800, align 4, !tbaa !5
  %2802 = call ptr @s2n_strerror(i32 noundef %2801, ptr noundef @.str.4)
  %2803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2804 = load i32, ptr %2803, align 4, !tbaa !5
  %2805 = call ptr @s2n_strerror_debug(i32 noundef %2804, ptr noundef @.str.4)
  %2806 = call ptr @__errno_location() #12
  %2807 = load i32, ptr %2806, align 4, !tbaa !5
  %2808 = call ptr @strerror(i32 noundef %2807) #11
  %2809 = call ptr @__errno_location() #12
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2798, ptr noundef @.str.2, i32 noundef %2799, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 170, ptr noundef %2802, ptr noundef %2805, ptr noundef %2808, i32 noundef %2810) #11
  br label %2829

2812:                                             ; preds = %2790, %2783
  %2813 = load i32, ptr %61, align 4, !tbaa !5
  %2814 = call ptr @__errno_location() #12
  store i32 %2813, ptr %2814, align 4, !tbaa !5
  %2815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2816 = load i32, ptr @test_count, align 4, !tbaa !5
  %2817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2818 = load i32, ptr %2817, align 4, !tbaa !5
  %2819 = call ptr @s2n_strerror(i32 noundef %2818, ptr noundef @.str.4)
  %2820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2821 = load i32, ptr %2820, align 4, !tbaa !5
  %2822 = call ptr @s2n_strerror_debug(i32 noundef %2821, ptr noundef @.str.4)
  %2823 = call ptr @__errno_location() #12
  %2824 = load i32, ptr %2823, align 4, !tbaa !5
  %2825 = call ptr @strerror(i32 noundef %2824) #11
  %2826 = call ptr @__errno_location() #12
  %2827 = load i32, ptr %2826, align 4, !tbaa !5
  %2828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2815, ptr noundef @.str.5, i32 noundef %2816, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 170, ptr noundef %2819, ptr noundef %2822, ptr noundef %2825, i32 noundef %2827) #11
  br label %2829

2829:                                             ; preds = %2812, %2795
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2830

2830:                                             ; preds = %2829
  br label %2831

2831:                                             ; preds = %2830
  call void @exit(i32 noundef 1) #13
  unreachable

2832:                                             ; No predecessors!
  br label %2833

2833:                                             ; preds = %2832
  br label %2834

2834:                                             ; preds = %2833, %2773
  br label %2835

2835:                                             ; preds = %2834
  br label %2836

2836:                                             ; preds = %2835
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #11
  %2837 = load ptr, ptr %40, align 8, !tbaa !9
  %2838 = getelementptr inbounds %struct.s2n_connection, ptr %2837, i32 0, i32 31
  %2839 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %2838, i32 0, i32 3
  store ptr %2839, ptr %62, align 8, !tbaa !9
  br label %2840

2840:                                             ; preds = %2836
  %2841 = load i32, ptr @test_count, align 4, !tbaa !5
  %2842 = add nsw i32 %2841, 1
  store i32 %2842, ptr @test_count, align 4, !tbaa !5
  %2843 = load ptr, ptr %62, align 8, !tbaa !9
  %2844 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %2843, i32 0, i32 0
  %2845 = load ptr, ptr %2844, align 8, !tbaa !79
  %2846 = load ptr, ptr %42, align 8, !tbaa !9
  %2847 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %2846, i32 0, i32 1
  %2848 = load ptr, ptr %2847, align 8, !tbaa !60
  %2849 = getelementptr inbounds ptr, ptr %2848, i64 0
  %2850 = load ptr, ptr %2849, align 8, !tbaa !9
  %2851 = icmp eq ptr %2845, %2850
  br i1 %2851, label %2905, label %2852

2852:                                             ; preds = %2840
  br label %2853

2853:                                             ; preds = %2852
  br label %2854

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

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

2866:                                             ; preds = %2861
  %2867 = load i32, ptr %63, align 4, !tbaa !5
  %2868 = call ptr @__errno_location() #12
  store i32 %2867, ptr %2868, align 4, !tbaa !5
  %2869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2870 = load i32, ptr @test_count, align 4, !tbaa !5
  %2871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2872 = load i32, ptr %2871, align 4, !tbaa !5
  %2873 = call ptr @s2n_strerror(i32 noundef %2872, ptr noundef @.str.4)
  %2874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2875 = load i32, ptr %2874, align 4, !tbaa !5
  %2876 = call ptr @s2n_strerror_debug(i32 noundef %2875, ptr noundef @.str.4)
  %2877 = call ptr @__errno_location() #12
  %2878 = load i32, ptr %2877, align 4, !tbaa !5
  %2879 = call ptr @strerror(i32 noundef %2878) #11
  %2880 = call ptr @__errno_location() #12
  %2881 = load i32, ptr %2880, align 4, !tbaa !5
  %2882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2869, ptr noundef @.str.2, i32 noundef %2870, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 173, ptr noundef %2873, ptr noundef %2876, ptr noundef %2879, i32 noundef %2881) #11
  br label %2900

2883:                                             ; preds = %2861, %2854
  %2884 = load i32, ptr %63, align 4, !tbaa !5
  %2885 = call ptr @__errno_location() #12
  store i32 %2884, ptr %2885, align 4, !tbaa !5
  %2886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2887 = load i32, ptr @test_count, align 4, !tbaa !5
  %2888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2889 = load i32, ptr %2888, align 4, !tbaa !5
  %2890 = call ptr @s2n_strerror(i32 noundef %2889, ptr noundef @.str.4)
  %2891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2892 = load i32, ptr %2891, align 4, !tbaa !5
  %2893 = call ptr @s2n_strerror_debug(i32 noundef %2892, ptr noundef @.str.4)
  %2894 = call ptr @__errno_location() #12
  %2895 = load i32, ptr %2894, align 4, !tbaa !5
  %2896 = call ptr @strerror(i32 noundef %2895) #11
  %2897 = call ptr @__errno_location() #12
  %2898 = load i32, ptr %2897, align 4, !tbaa !5
  %2899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2886, ptr noundef @.str.5, i32 noundef %2887, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 173, ptr noundef %2890, ptr noundef %2893, ptr noundef %2896, i32 noundef %2898) #11
  br label %2900

2900:                                             ; preds = %2883, %2866
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %2901

2901:                                             ; preds = %2900
  br label %2902

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

2903:                                             ; No predecessors!
  br label %2904

2904:                                             ; preds = %2903
  br label %2905

2905:                                             ; preds = %2904, %2840
  br label %2906

2906:                                             ; preds = %2905
  br label %2907

2907:                                             ; preds = %2906
  br label %2908

2908:                                             ; preds = %2907
  %2909 = load i32, ptr @test_count, align 4, !tbaa !5
  %2910 = add nsw i32 %2909, 1
  store i32 %2910, ptr @test_count, align 4, !tbaa !5
  %2911 = load ptr, ptr %62, align 8, !tbaa !9
  %2912 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %2911, i32 0, i32 1
  %2913 = load ptr, ptr %2912, align 8, !tbaa !80
  %2914 = icmp eq ptr %2913, null
  br i1 %2914, label %2915, label %2968

2915:                                             ; preds = %2908
  br label %2916

2916:                                             ; preds = %2915
  br label %2917

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

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

2929:                                             ; preds = %2924
  %2930 = load i32, ptr %64, align 4, !tbaa !5
  %2931 = call ptr @__errno_location() #12
  store i32 %2930, ptr %2931, align 4, !tbaa !5
  %2932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2933 = load i32, ptr @test_count, align 4, !tbaa !5
  %2934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2935 = load i32, ptr %2934, align 4, !tbaa !5
  %2936 = call ptr @s2n_strerror(i32 noundef %2935, ptr noundef @.str.4)
  %2937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2938 = load i32, ptr %2937, align 4, !tbaa !5
  %2939 = call ptr @s2n_strerror_debug(i32 noundef %2938, ptr noundef @.str.4)
  %2940 = call ptr @__errno_location() #12
  %2941 = load i32, ptr %2940, align 4, !tbaa !5
  %2942 = call ptr @strerror(i32 noundef %2941) #11
  %2943 = call ptr @__errno_location() #12
  %2944 = load i32, ptr %2943, align 4, !tbaa !5
  %2945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2932, ptr noundef @.str.2, i32 noundef %2933, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 174, ptr noundef %2936, ptr noundef %2939, ptr noundef %2942, i32 noundef %2944) #11
  br label %2963

2946:                                             ; preds = %2924, %2917
  %2947 = load i32, ptr %64, align 4, !tbaa !5
  %2948 = call ptr @__errno_location() #12
  store i32 %2947, ptr %2948, align 4, !tbaa !5
  %2949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2950 = load i32, ptr @test_count, align 4, !tbaa !5
  %2951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2952 = load i32, ptr %2951, align 4, !tbaa !5
  %2953 = call ptr @s2n_strerror(i32 noundef %2952, ptr noundef @.str.4)
  %2954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2955 = load i32, ptr %2954, align 4, !tbaa !5
  %2956 = call ptr @s2n_strerror_debug(i32 noundef %2955, ptr noundef @.str.4)
  %2957 = call ptr @__errno_location() #12
  %2958 = load i32, ptr %2957, align 4, !tbaa !5
  %2959 = call ptr @strerror(i32 noundef %2958) #11
  %2960 = call ptr @__errno_location() #12
  %2961 = load i32, ptr %2960, align 4, !tbaa !5
  %2962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2949, ptr noundef @.str.5, i32 noundef %2950, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 174, ptr noundef %2953, ptr noundef %2956, ptr noundef %2959, i32 noundef %2961) #11
  br label %2963

2963:                                             ; preds = %2946, %2929
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %2964

2964:                                             ; preds = %2963
  br label %2965

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

2966:                                             ; No predecessors!
  br label %2967

2967:                                             ; preds = %2966
  br label %2968

2968:                                             ; preds = %2967, %2908
  br label %2969

2969:                                             ; preds = %2968
  br label %2970

2970:                                             ; preds = %2969
  call void @llvm.lifetime.start.p0(i64 2, ptr %65) #11
  store i16 0, ptr %65, align 2, !tbaa !57
  br label %2971

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

2976:                                             ; preds = %2971
  br label %2977

2977:                                             ; preds = %2976
  br label %2978

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

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

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

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

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

3025:                                             ; preds = %3024
  br label %3026

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

3027:                                             ; No predecessors!
  br label %3028

3028:                                             ; preds = %3027
  br label %3029

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

3030:                                             ; preds = %3029
  br label %3031

3031:                                             ; preds = %3030
  br label %3032

3032:                                             ; preds = %3031
  %3033 = load i32, ptr @test_count, align 4, !tbaa !5
  %3034 = add nsw i32 %3033, 1
  store i32 %3034, ptr @test_count, align 4, !tbaa !5
  %3035 = load i16, ptr %65, align 2, !tbaa !57
  %3036 = zext i16 %3035 to i32
  %3037 = getelementptr inbounds %struct.s2n_stuffer, ptr %52, i32 0, i32 2
  %3038 = load i32, ptr %3037, align 4, !tbaa !58
  %3039 = getelementptr inbounds %struct.s2n_stuffer, ptr %52, i32 0, i32 1
  %3040 = load i32, ptr %3039, align 8, !tbaa !59
  %3041 = sub i32 %3038, %3040
  %3042 = icmp eq i32 %3036, %3041
  br i1 %3042, label %3096, label %3043

3043:                                             ; preds = %3032
  br label %3044

3044:                                             ; preds = %3043
  br label %3045

3045:                                             ; preds = %3044
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %3046 = call ptr @__errno_location() #12
  %3047 = load i32, ptr %3046, align 4, !tbaa !5
  store i32 %3047, ptr %67, align 4, !tbaa !5
  %3048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3049 = call i32 @s2n_print_stacktrace(ptr noundef %3048)
  %3050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3051 = trunc i8 %3050 to i1
  br i1 %3051, label %3052, label %3074

3052:                                             ; preds = %3045
  %3053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3054 = call i32 @fileno(ptr noundef %3053) #11
  %3055 = call i32 @isatty(i32 noundef %3054) #11
  %3056 = icmp ne i32 %3055, 0
  br i1 %3056, label %3057, label %3074

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

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

3091:                                             ; preds = %3074, %3057
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %3092

3092:                                             ; preds = %3091
  br label %3093

3093:                                             ; preds = %3092
  call void @exit(i32 noundef 1) #13
  unreachable

3094:                                             ; No predecessors!
  br label %3095

3095:                                             ; preds = %3094
  br label %3096

3096:                                             ; preds = %3095, %3032
  br label %3097

3097:                                             ; preds = %3096
  br label %3098

3098:                                             ; preds = %3097
  call void @llvm.lifetime.start.p0(i64 2, ptr %68) #11
  store i16 0, ptr %68, align 2, !tbaa !57
  br label %3099

3099:                                             ; preds = %3098
  %3100 = load i32, ptr @test_count, align 4, !tbaa !5
  %3101 = add nsw i32 %3100, 1
  store i32 %3101, ptr @test_count, align 4, !tbaa !5
  %3102 = call i32 @s2n_stuffer_read_uint16(ptr noundef %52, ptr noundef %68)
  %3103 = icmp eq i32 %3102, -1
  br i1 %3103, label %3104, label %3157

3104:                                             ; preds = %3099
  br label %3105

3105:                                             ; preds = %3104
  br label %3106

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

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

3118:                                             ; preds = %3113
  %3119 = load i32, ptr %69, align 4, !tbaa !5
  %3120 = call ptr @__errno_location() #12
  store i32 %3119, ptr %3120, align 4, !tbaa !5
  %3121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3122 = load i32, ptr @test_count, align 4, !tbaa !5
  %3123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3124 = load i32, ptr %3123, align 4, !tbaa !5
  %3125 = call ptr @s2n_strerror(i32 noundef %3124, ptr noundef @.str.4)
  %3126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3127 = load i32, ptr %3126, align 4, !tbaa !5
  %3128 = call ptr @s2n_strerror_debug(i32 noundef %3127, ptr noundef @.str.4)
  %3129 = call ptr @__errno_location() #12
  %3130 = load i32, ptr %3129, align 4, !tbaa !5
  %3131 = call ptr @strerror(i32 noundef %3130) #11
  %3132 = call ptr @__errno_location() #12
  %3133 = load i32, ptr %3132, align 4, !tbaa !5
  %3134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3121, ptr noundef @.str.2, i32 noundef %3122, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3125, ptr noundef %3128, ptr noundef %3131, i32 noundef %3133) #11
  br label %3152

3135:                                             ; preds = %3113, %3106
  %3136 = load i32, ptr %69, align 4, !tbaa !5
  %3137 = call ptr @__errno_location() #12
  store i32 %3136, ptr %3137, align 4, !tbaa !5
  %3138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3139 = load i32, ptr @test_count, align 4, !tbaa !5
  %3140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3141 = load i32, ptr %3140, align 4, !tbaa !5
  %3142 = call ptr @s2n_strerror(i32 noundef %3141, ptr noundef @.str.4)
  %3143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3144 = load i32, ptr %3143, align 4, !tbaa !5
  %3145 = call ptr @s2n_strerror_debug(i32 noundef %3144, ptr noundef @.str.4)
  %3146 = call ptr @__errno_location() #12
  %3147 = load i32, ptr %3146, align 4, !tbaa !5
  %3148 = call ptr @strerror(i32 noundef %3147) #11
  %3149 = call ptr @__errno_location() #12
  %3150 = load i32, ptr %3149, align 4, !tbaa !5
  %3151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3138, ptr noundef @.str.5, i32 noundef %3139, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3142, ptr noundef %3145, ptr noundef %3148, i32 noundef %3150) #11
  br label %3152

3152:                                             ; preds = %3135, %3118
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %3153

3153:                                             ; preds = %3152
  br label %3154

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

3155:                                             ; No predecessors!
  br label %3156

3156:                                             ; preds = %3155
  br label %3157

3157:                                             ; preds = %3156, %3099
  br label %3158

3158:                                             ; preds = %3157
  br label %3159

3159:                                             ; preds = %3158
  br label %3160

3160:                                             ; preds = %3159
  %3161 = load i32, ptr @test_count, align 4, !tbaa !5
  %3162 = add nsw i32 %3161, 1
  store i32 %3162, ptr @test_count, align 4, !tbaa !5
  %3163 = load i16, ptr %68, align 2, !tbaa !57
  %3164 = zext i16 %3163 to i32
  %3165 = load ptr, ptr %45, align 8, !tbaa !9
  %3166 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %3165, i32 0, i32 3
  %3167 = load ptr, ptr %3166, align 8, !tbaa !17
  %3168 = getelementptr inbounds ptr, ptr %3167, i64 0
  %3169 = load ptr, ptr %3168, align 8, !tbaa !9
  %3170 = getelementptr inbounds %struct.s2n_kem_group, ptr %3169, i32 0, i32 1
  %3171 = load i16, ptr %3170, align 8, !tbaa !81
  %3172 = zext i16 %3171 to i32
  %3173 = icmp eq i32 %3164, %3172
  br i1 %3173, label %3227, label %3174

3174:                                             ; preds = %3160
  br label %3175

3175:                                             ; preds = %3174
  br label %3176

3176:                                             ; preds = %3175
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %3177 = call ptr @__errno_location() #12
  %3178 = load i32, ptr %3177, align 4, !tbaa !5
  store i32 %3178, ptr %70, align 4, !tbaa !5
  %3179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3180 = call i32 @s2n_print_stacktrace(ptr noundef %3179)
  %3181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3182 = trunc i8 %3181 to i1
  br i1 %3182, label %3183, label %3205

3183:                                             ; preds = %3176
  %3184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3185 = call i32 @fileno(ptr noundef %3184) #11
  %3186 = call i32 @isatty(i32 noundef %3185) #11
  %3187 = icmp ne i32 %3186, 0
  br i1 %3187, label %3188, label %3205

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

3205:                                             ; preds = %3183, %3176
  %3206 = load i32, ptr %70, align 4, !tbaa !5
  %3207 = call ptr @__errno_location() #12
  store i32 %3206, ptr %3207, align 4, !tbaa !5
  %3208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3209 = load i32, ptr @test_count, align 4, !tbaa !5
  %3210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3211 = load i32, ptr %3210, align 4, !tbaa !5
  %3212 = call ptr @s2n_strerror(i32 noundef %3211, ptr noundef @.str.4)
  %3213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3214 = load i32, ptr %3213, align 4, !tbaa !5
  %3215 = call ptr @s2n_strerror_debug(i32 noundef %3214, ptr noundef @.str.4)
  %3216 = call ptr @__errno_location() #12
  %3217 = load i32, ptr %3216, align 4, !tbaa !5
  %3218 = call ptr @strerror(i32 noundef %3217) #11
  %3219 = call ptr @__errno_location() #12
  %3220 = load i32, ptr %3219, align 4, !tbaa !5
  %3221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3208, ptr noundef @.str.5, i32 noundef %3209, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 186, ptr noundef %3212, ptr noundef %3215, ptr noundef %3218, i32 noundef %3220) #11
  br label %3222

3222:                                             ; preds = %3205, %3188
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %3223

3223:                                             ; preds = %3222
  br label %3224

3224:                                             ; preds = %3223
  call void @exit(i32 noundef 1) #13
  unreachable

3225:                                             ; No predecessors!
  br label %3226

3226:                                             ; preds = %3225
  br label %3227

3227:                                             ; preds = %3226, %3160
  br label %3228

3228:                                             ; preds = %3227
  br label %3229

3229:                                             ; preds = %3228
  call void @llvm.lifetime.start.p0(i64 2, ptr %71) #11
  store i16 0, ptr %71, align 2, !tbaa !57
  %3230 = load i32, ptr %5, align 4, !tbaa !5
  %3231 = icmp ne i32 %3230, 0
  br i1 %3231, label %3232, label %3249

3232:                                             ; preds = %3229
  %3233 = load ptr, ptr %50, align 8, !tbaa !9
  %3234 = getelementptr inbounds %struct.s2n_kem_group, ptr %3233, i32 0, i32 2
  %3235 = load ptr, ptr %3234, align 8, !tbaa !77
  %3236 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %3235, i32 0, i32 3
  %3237 = load i8, ptr %3236, align 8, !tbaa !64
  %3238 = zext i8 %3237 to i32
  %3239 = add nsw i32 2, %3238
  %3240 = add nsw i32 %3239, 2
  %3241 = load ptr, ptr %50, align 8, !tbaa !9
  %3242 = getelementptr inbounds %struct.s2n_kem_group, ptr %3241, i32 0, i32 3
  %3243 = load ptr, ptr %3242, align 8, !tbaa !70
  %3244 = getelementptr inbounds %struct.s2n_kem, ptr %3243, i32 0, i32 3
  %3245 = load i16, ptr %3244, align 2, !tbaa !82
  %3246 = zext i16 %3245 to i32
  %3247 = add nsw i32 %3240, %3246
  %3248 = trunc i32 %3247 to i16
  store i16 %3248, ptr %71, align 2, !tbaa !57
  br label %3264

3249:                                             ; preds = %3229
  %3250 = load ptr, ptr %50, align 8, !tbaa !9
  %3251 = getelementptr inbounds %struct.s2n_kem_group, ptr %3250, i32 0, i32 2
  %3252 = load ptr, ptr %3251, align 8, !tbaa !77
  %3253 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %3252, i32 0, i32 3
  %3254 = load i8, ptr %3253, align 8, !tbaa !64
  %3255 = zext i8 %3254 to i32
  %3256 = load ptr, ptr %50, align 8, !tbaa !9
  %3257 = getelementptr inbounds %struct.s2n_kem_group, ptr %3256, i32 0, i32 3
  %3258 = load ptr, ptr %3257, align 8, !tbaa !70
  %3259 = getelementptr inbounds %struct.s2n_kem, ptr %3258, i32 0, i32 3
  %3260 = load i16, ptr %3259, align 2, !tbaa !82
  %3261 = zext i16 %3260 to i32
  %3262 = add nsw i32 %3255, %3261
  %3263 = trunc i32 %3262 to i16
  store i16 %3263, ptr %71, align 2, !tbaa !57
  br label %3264

3264:                                             ; preds = %3249, %3232
  call void @llvm.lifetime.start.p0(i64 2, ptr %72) #11
  store i16 0, ptr %72, align 2, !tbaa !57
  br label %3265

3265:                                             ; preds = %3264
  %3266 = load i32, ptr @test_count, align 4, !tbaa !5
  %3267 = add nsw i32 %3266, 1
  store i32 %3267, ptr @test_count, align 4, !tbaa !5
  %3268 = call i32 @s2n_stuffer_read_uint16(ptr noundef %52, ptr noundef %72)
  %3269 = icmp eq i32 %3268, -1
  br i1 %3269, label %3270, label %3323

3270:                                             ; preds = %3265
  br label %3271

3271:                                             ; preds = %3270
  br label %3272

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

3279:                                             ; preds = %3272
  %3280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3281 = call i32 @fileno(ptr noundef %3280) #11
  %3282 = call i32 @isatty(i32 noundef %3281) #11
  %3283 = icmp ne i32 %3282, 0
  br i1 %3283, label %3284, label %3301

3284:                                             ; preds = %3279
  %3285 = load i32, ptr %73, align 4, !tbaa !5
  %3286 = call ptr @__errno_location() #12
  store i32 %3285, ptr %3286, align 4, !tbaa !5
  %3287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3288 = load i32, ptr @test_count, align 4, !tbaa !5
  %3289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3290 = load i32, ptr %3289, align 4, !tbaa !5
  %3291 = call ptr @s2n_strerror(i32 noundef %3290, ptr noundef @.str.4)
  %3292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3293 = load i32, ptr %3292, align 4, !tbaa !5
  %3294 = call ptr @s2n_strerror_debug(i32 noundef %3293, ptr noundef @.str.4)
  %3295 = call ptr @__errno_location() #12
  %3296 = load i32, ptr %3295, align 4, !tbaa !5
  %3297 = call ptr @strerror(i32 noundef %3296) #11
  %3298 = call ptr @__errno_location() #12
  %3299 = load i32, ptr %3298, align 4, !tbaa !5
  %3300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3287, ptr noundef @.str.2, i32 noundef %3288, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 200, ptr noundef %3291, ptr noundef %3294, ptr noundef %3297, i32 noundef %3299) #11
  br label %3318

3301:                                             ; preds = %3279, %3272
  %3302 = load i32, ptr %73, align 4, !tbaa !5
  %3303 = call ptr @__errno_location() #12
  store i32 %3302, ptr %3303, align 4, !tbaa !5
  %3304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3305 = load i32, ptr @test_count, align 4, !tbaa !5
  %3306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3307 = load i32, ptr %3306, align 4, !tbaa !5
  %3308 = call ptr @s2n_strerror(i32 noundef %3307, ptr noundef @.str.4)
  %3309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3310 = load i32, ptr %3309, align 4, !tbaa !5
  %3311 = call ptr @s2n_strerror_debug(i32 noundef %3310, ptr noundef @.str.4)
  %3312 = call ptr @__errno_location() #12
  %3313 = load i32, ptr %3312, align 4, !tbaa !5
  %3314 = call ptr @strerror(i32 noundef %3313) #11
  %3315 = call ptr @__errno_location() #12
  %3316 = load i32, ptr %3315, align 4, !tbaa !5
  %3317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3304, ptr noundef @.str.5, i32 noundef %3305, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 200, ptr noundef %3308, ptr noundef %3311, ptr noundef %3314, i32 noundef %3316) #11
  br label %3318

3318:                                             ; preds = %3301, %3284
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %3319

3319:                                             ; preds = %3318
  br label %3320

3320:                                             ; preds = %3319
  call void @exit(i32 noundef 1) #13
  unreachable

3321:                                             ; No predecessors!
  br label %3322

3322:                                             ; preds = %3321
  br label %3323

3323:                                             ; preds = %3322, %3265
  br label %3324

3324:                                             ; preds = %3323
  br label %3325

3325:                                             ; preds = %3324
  br label %3326

3326:                                             ; preds = %3325
  %3327 = load i32, ptr @test_count, align 4, !tbaa !5
  %3328 = add nsw i32 %3327, 1
  store i32 %3328, ptr @test_count, align 4, !tbaa !5
  %3329 = load i16, ptr %72, align 2, !tbaa !57
  %3330 = zext i16 %3329 to i32
  %3331 = load i16, ptr %71, align 2, !tbaa !57
  %3332 = zext i16 %3331 to i32
  %3333 = icmp eq i32 %3330, %3332
  br i1 %3333, label %3387, label %3334

3334:                                             ; preds = %3326
  br label %3335

3335:                                             ; preds = %3334
  br label %3336

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

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

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

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

3382:                                             ; preds = %3365, %3348
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %3383

3383:                                             ; preds = %3382
  br label %3384

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

3385:                                             ; No predecessors!
  br label %3386

3386:                                             ; preds = %3385
  br label %3387

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

3388:                                             ; preds = %3387
  br label %3389

3389:                                             ; preds = %3388
  call void @llvm.lifetime.start.p0(i64 2, ptr %75) #11
  %3390 = load ptr, ptr %50, align 8, !tbaa !9
  %3391 = getelementptr inbounds %struct.s2n_kem_group, ptr %3390, i32 0, i32 2
  %3392 = load ptr, ptr %3391, align 8, !tbaa !77
  %3393 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %3392, i32 0, i32 3
  %3394 = load i8, ptr %3393, align 8, !tbaa !64
  %3395 = zext i8 %3394 to i16
  store i16 %3395, ptr %75, align 2, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 2, ptr %76) #11
  %3396 = load ptr, ptr %50, align 8, !tbaa !9
  %3397 = getelementptr inbounds %struct.s2n_kem_group, ptr %3396, i32 0, i32 3
  %3398 = load ptr, ptr %3397, align 8, !tbaa !70
  %3399 = getelementptr inbounds %struct.s2n_kem, ptr %3398, i32 0, i32 3
  %3400 = load i16, ptr %3399, align 2, !tbaa !82
  store i16 %3400, ptr %76, align 2, !tbaa !57
  %3401 = load ptr, ptr %55, align 8, !tbaa !9
  %3402 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %3401, i32 0, i32 0
  %3403 = load ptr, ptr %3402, align 8, !tbaa !68
  %3404 = getelementptr inbounds %struct.s2n_kem_group, ptr %3403, i32 0, i32 4
  %3405 = load i8, ptr %3404, align 8, !tbaa !83, !range !13, !noundef !14
  %3406 = trunc i8 %3405 to i1
  br i1 %3406, label %3407, label %3419

3407:                                             ; preds = %3389
  %3408 = load ptr, ptr %50, align 8, !tbaa !9
  %3409 = getelementptr inbounds %struct.s2n_kem_group, ptr %3408, i32 0, i32 3
  %3410 = load ptr, ptr %3409, align 8, !tbaa !70
  %3411 = getelementptr inbounds %struct.s2n_kem, ptr %3410, i32 0, i32 3
  %3412 = load i16, ptr %3411, align 2, !tbaa !82
  store i16 %3412, ptr %75, align 2, !tbaa !57
  %3413 = load ptr, ptr %50, align 8, !tbaa !9
  %3414 = getelementptr inbounds %struct.s2n_kem_group, ptr %3413, i32 0, i32 2
  %3415 = load ptr, ptr %3414, align 8, !tbaa !77
  %3416 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %3415, i32 0, i32 3
  %3417 = load i8, ptr %3416, align 8, !tbaa !64
  %3418 = zext i8 %3417 to i16
  store i16 %3418, ptr %76, align 2, !tbaa !57
  br label %3419

3419:                                             ; preds = %3407, %3389
  %3420 = load i32, ptr %5, align 4, !tbaa !5
  %3421 = icmp ne i32 %3420, 0
  br i1 %3421, label %3422, label %3548

3422:                                             ; preds = %3419
  call void @llvm.lifetime.start.p0(i64 2, ptr %77) #11
  store i16 0, ptr %77, align 2, !tbaa !57
  br label %3423

3423:                                             ; preds = %3422
  %3424 = load i32, ptr @test_count, align 4, !tbaa !5
  %3425 = add nsw i32 %3424, 1
  store i32 %3425, ptr @test_count, align 4, !tbaa !5
  %3426 = call i32 @s2n_stuffer_read_uint16(ptr noundef %52, ptr noundef %77)
  %3427 = icmp eq i32 %3426, -1
  br i1 %3427, label %3428, label %3481

3428:                                             ; preds = %3423
  br label %3429

3429:                                             ; preds = %3428
  br label %3430

3430:                                             ; preds = %3429
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #11
  %3431 = call ptr @__errno_location() #12
  %3432 = load i32, ptr %3431, align 4, !tbaa !5
  store i32 %3432, ptr %78, align 4, !tbaa !5
  %3433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3434 = call i32 @s2n_print_stacktrace(ptr noundef %3433)
  %3435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3436 = trunc i8 %3435 to i1
  br i1 %3436, label %3437, label %3459

3437:                                             ; preds = %3430
  %3438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3439 = call i32 @fileno(ptr noundef %3438) #11
  %3440 = call i32 @isatty(i32 noundef %3439) #11
  %3441 = icmp ne i32 %3440, 0
  br i1 %3441, label %3442, label %3459

3442:                                             ; preds = %3437
  %3443 = load i32, ptr %78, align 4, !tbaa !5
  %3444 = call ptr @__errno_location() #12
  store i32 %3443, ptr %3444, align 4, !tbaa !5
  %3445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3446 = load i32, ptr @test_count, align 4, !tbaa !5
  %3447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3448 = load i32, ptr %3447, align 4, !tbaa !5
  %3449 = call ptr @s2n_strerror(i32 noundef %3448, ptr noundef @.str.4)
  %3450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3451 = load i32, ptr %3450, align 4, !tbaa !5
  %3452 = call ptr @s2n_strerror_debug(i32 noundef %3451, ptr noundef @.str.4)
  %3453 = call ptr @__errno_location() #12
  %3454 = load i32, ptr %3453, align 4, !tbaa !5
  %3455 = call ptr @strerror(i32 noundef %3454) #11
  %3456 = call ptr @__errno_location() #12
  %3457 = load i32, ptr %3456, align 4, !tbaa !5
  %3458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3445, ptr noundef @.str.2, i32 noundef %3446, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 213, ptr noundef %3449, ptr noundef %3452, ptr noundef %3455, i32 noundef %3457) #11
  br label %3476

3459:                                             ; preds = %3437, %3430
  %3460 = load i32, ptr %78, align 4, !tbaa !5
  %3461 = call ptr @__errno_location() #12
  store i32 %3460, ptr %3461, align 4, !tbaa !5
  %3462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3463 = load i32, ptr @test_count, align 4, !tbaa !5
  %3464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3465 = load i32, ptr %3464, align 4, !tbaa !5
  %3466 = call ptr @s2n_strerror(i32 noundef %3465, ptr noundef @.str.4)
  %3467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3468 = load i32, ptr %3467, align 4, !tbaa !5
  %3469 = call ptr @s2n_strerror_debug(i32 noundef %3468, ptr noundef @.str.4)
  %3470 = call ptr @__errno_location() #12
  %3471 = load i32, ptr %3470, align 4, !tbaa !5
  %3472 = call ptr @strerror(i32 noundef %3471) #11
  %3473 = call ptr @__errno_location() #12
  %3474 = load i32, ptr %3473, align 4, !tbaa !5
  %3475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3462, ptr noundef @.str.5, i32 noundef %3463, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 213, ptr noundef %3466, ptr noundef %3469, ptr noundef %3472, i32 noundef %3474) #11
  br label %3476

3476:                                             ; preds = %3459, %3442
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %3477

3477:                                             ; preds = %3476
  br label %3478

3478:                                             ; preds = %3477
  call void @exit(i32 noundef 1) #13
  unreachable

3479:                                             ; No predecessors!
  br label %3480

3480:                                             ; preds = %3479
  br label %3481

3481:                                             ; preds = %3480, %3423
  br label %3482

3482:                                             ; preds = %3481
  br label %3483

3483:                                             ; preds = %3482
  br label %3484

3484:                                             ; preds = %3483
  %3485 = load i32, ptr @test_count, align 4, !tbaa !5
  %3486 = add nsw i32 %3485, 1
  store i32 %3486, ptr @test_count, align 4, !tbaa !5
  %3487 = load i16, ptr %77, align 2, !tbaa !57
  %3488 = zext i16 %3487 to i32
  %3489 = load i16, ptr %75, align 2, !tbaa !57
  %3490 = zext i16 %3489 to i32
  %3491 = icmp eq i32 %3488, %3490
  br i1 %3491, label %3545, label %3492

3492:                                             ; preds = %3484
  br label %3493

3493:                                             ; preds = %3492
  br label %3494

3494:                                             ; preds = %3493
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  %3495 = call ptr @__errno_location() #12
  %3496 = load i32, ptr %3495, align 4, !tbaa !5
  store i32 %3496, ptr %79, align 4, !tbaa !5
  %3497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3498 = call i32 @s2n_print_stacktrace(ptr noundef %3497)
  %3499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3500 = trunc i8 %3499 to i1
  br i1 %3500, label %3501, label %3523

3501:                                             ; preds = %3494
  %3502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3503 = call i32 @fileno(ptr noundef %3502) #11
  %3504 = call i32 @isatty(i32 noundef %3503) #11
  %3505 = icmp ne i32 %3504, 0
  br i1 %3505, label %3506, label %3523

3506:                                             ; preds = %3501
  %3507 = load i32, ptr %79, align 4, !tbaa !5
  %3508 = call ptr @__errno_location() #12
  store i32 %3507, ptr %3508, align 4, !tbaa !5
  %3509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3510 = load i32, ptr @test_count, align 4, !tbaa !5
  %3511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3512 = load i32, ptr %3511, align 4, !tbaa !5
  %3513 = call ptr @s2n_strerror(i32 noundef %3512, ptr noundef @.str.4)
  %3514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3515 = load i32, ptr %3514, align 4, !tbaa !5
  %3516 = call ptr @s2n_strerror_debug(i32 noundef %3515, ptr noundef @.str.4)
  %3517 = call ptr @__errno_location() #12
  %3518 = load i32, ptr %3517, align 4, !tbaa !5
  %3519 = call ptr @strerror(i32 noundef %3518) #11
  %3520 = call ptr @__errno_location() #12
  %3521 = load i32, ptr %3520, align 4, !tbaa !5
  %3522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3509, ptr noundef @.str.2, i32 noundef %3510, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 214, ptr noundef %3513, ptr noundef %3516, ptr noundef %3519, i32 noundef %3521) #11
  br label %3540

3523:                                             ; preds = %3501, %3494
  %3524 = load i32, ptr %79, align 4, !tbaa !5
  %3525 = call ptr @__errno_location() #12
  store i32 %3524, ptr %3525, align 4, !tbaa !5
  %3526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3527 = load i32, ptr @test_count, align 4, !tbaa !5
  %3528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3529 = load i32, ptr %3528, align 4, !tbaa !5
  %3530 = call ptr @s2n_strerror(i32 noundef %3529, ptr noundef @.str.4)
  %3531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3532 = load i32, ptr %3531, align 4, !tbaa !5
  %3533 = call ptr @s2n_strerror_debug(i32 noundef %3532, ptr noundef @.str.4)
  %3534 = call ptr @__errno_location() #12
  %3535 = load i32, ptr %3534, align 4, !tbaa !5
  %3536 = call ptr @strerror(i32 noundef %3535) #11
  %3537 = call ptr @__errno_location() #12
  %3538 = load i32, ptr %3537, align 4, !tbaa !5
  %3539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3526, ptr noundef @.str.5, i32 noundef %3527, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 214, ptr noundef %3530, ptr noundef %3533, ptr noundef %3536, i32 noundef %3538) #11
  br label %3540

3540:                                             ; preds = %3523, %3506
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %3541

3541:                                             ; preds = %3540
  br label %3542

3542:                                             ; preds = %3541
  call void @exit(i32 noundef 1) #13
  unreachable

3543:                                             ; No predecessors!
  br label %3544

3544:                                             ; preds = %3543
  br label %3545

3545:                                             ; preds = %3544, %3484
  br label %3546

3546:                                             ; preds = %3545
  br label %3547

3547:                                             ; preds = %3546
  call void @llvm.lifetime.end.p0(i64 2, ptr %77) #11
  br label %3548

3548:                                             ; preds = %3547, %3419
  br label %3549

3549:                                             ; preds = %3548
  %3550 = load i32, ptr @test_count, align 4, !tbaa !5
  %3551 = add nsw i32 %3550, 1
  store i32 %3551, ptr @test_count, align 4, !tbaa !5
  %3552 = load i16, ptr %75, align 2, !tbaa !57
  %3553 = zext i16 %3552 to i32
  %3554 = call i32 @s2n_stuffer_skip_read(ptr noundef %52, i32 noundef %3553)
  %3555 = icmp eq i32 %3554, -1
  br i1 %3555, label %3556, label %3609

3556:                                             ; preds = %3549
  br label %3557

3557:                                             ; preds = %3556
  br label %3558

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

3565:                                             ; preds = %3558
  %3566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3567 = call i32 @fileno(ptr noundef %3566) #11
  %3568 = call i32 @isatty(i32 noundef %3567) #11
  %3569 = icmp ne i32 %3568, 0
  br i1 %3569, label %3570, label %3587

3570:                                             ; preds = %3565
  %3571 = load i32, ptr %80, align 4, !tbaa !5
  %3572 = call ptr @__errno_location() #12
  store i32 %3571, ptr %3572, align 4, !tbaa !5
  %3573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3574 = load i32, ptr @test_count, align 4, !tbaa !5
  %3575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3576 = load i32, ptr %3575, align 4, !tbaa !5
  %3577 = call ptr @s2n_strerror(i32 noundef %3576, ptr noundef @.str.4)
  %3578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3579 = load i32, ptr %3578, align 4, !tbaa !5
  %3580 = call ptr @s2n_strerror_debug(i32 noundef %3579, ptr noundef @.str.4)
  %3581 = call ptr @__errno_location() #12
  %3582 = load i32, ptr %3581, align 4, !tbaa !5
  %3583 = call ptr @strerror(i32 noundef %3582) #11
  %3584 = call ptr @__errno_location() #12
  %3585 = load i32, ptr %3584, align 4, !tbaa !5
  %3586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3573, ptr noundef @.str.2, i32 noundef %3574, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 216, ptr noundef %3577, ptr noundef %3580, ptr noundef %3583, i32 noundef %3585) #11
  br label %3604

3587:                                             ; preds = %3565, %3558
  %3588 = load i32, ptr %80, align 4, !tbaa !5
  %3589 = call ptr @__errno_location() #12
  store i32 %3588, ptr %3589, align 4, !tbaa !5
  %3590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3591 = load i32, ptr @test_count, align 4, !tbaa !5
  %3592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3593 = load i32, ptr %3592, align 4, !tbaa !5
  %3594 = call ptr @s2n_strerror(i32 noundef %3593, ptr noundef @.str.4)
  %3595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3596 = load i32, ptr %3595, align 4, !tbaa !5
  %3597 = call ptr @s2n_strerror_debug(i32 noundef %3596, ptr noundef @.str.4)
  %3598 = call ptr @__errno_location() #12
  %3599 = load i32, ptr %3598, align 4, !tbaa !5
  %3600 = call ptr @strerror(i32 noundef %3599) #11
  %3601 = call ptr @__errno_location() #12
  %3602 = load i32, ptr %3601, align 4, !tbaa !5
  %3603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3590, ptr noundef @.str.5, i32 noundef %3591, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 216, ptr noundef %3594, ptr noundef %3597, ptr noundef %3600, i32 noundef %3602) #11
  br label %3604

3604:                                             ; preds = %3587, %3570
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %3605

3605:                                             ; preds = %3604
  br label %3606

3606:                                             ; preds = %3605
  call void @exit(i32 noundef 1) #13
  unreachable

3607:                                             ; No predecessors!
  br label %3608

3608:                                             ; preds = %3607
  br label %3609

3609:                                             ; preds = %3608, %3549
  br label %3610

3610:                                             ; preds = %3609
  br label %3611

3611:                                             ; preds = %3610
  %3612 = load i32, ptr %5, align 4, !tbaa !5
  %3613 = icmp ne i32 %3612, 0
  br i1 %3613, label %3614, label %3740

3614:                                             ; preds = %3611
  call void @llvm.lifetime.start.p0(i64 2, ptr %81) #11
  store i16 0, ptr %81, align 2, !tbaa !57
  br label %3615

3615:                                             ; preds = %3614
  %3616 = load i32, ptr @test_count, align 4, !tbaa !5
  %3617 = add nsw i32 %3616, 1
  store i32 %3617, ptr @test_count, align 4, !tbaa !5
  %3618 = call i32 @s2n_stuffer_read_uint16(ptr noundef %52, ptr noundef %81)
  %3619 = icmp eq i32 %3618, -1
  br i1 %3619, label %3620, label %3673

3620:                                             ; preds = %3615
  br label %3621

3621:                                             ; preds = %3620
  br label %3622

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

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

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

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

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

3669:                                             ; preds = %3668
  br label %3670

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

3671:                                             ; No predecessors!
  br label %3672

3672:                                             ; preds = %3671
  br label %3673

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

3674:                                             ; preds = %3673
  br label %3675

3675:                                             ; preds = %3674
  br label %3676

3676:                                             ; preds = %3675
  %3677 = load i32, ptr @test_count, align 4, !tbaa !5
  %3678 = add nsw i32 %3677, 1
  store i32 %3678, ptr @test_count, align 4, !tbaa !5
  %3679 = load i16, ptr %81, align 2, !tbaa !57
  %3680 = zext i16 %3679 to i32
  %3681 = load i16, ptr %76, align 2, !tbaa !57
  %3682 = zext i16 %3681 to i32
  %3683 = icmp eq i32 %3680, %3682
  br i1 %3683, label %3737, label %3684

3684:                                             ; preds = %3676
  br label %3685

3685:                                             ; preds = %3684
  br label %3686

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

3693:                                             ; preds = %3686
  %3694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3695 = call i32 @fileno(ptr noundef %3694) #11
  %3696 = call i32 @isatty(i32 noundef %3695) #11
  %3697 = icmp ne i32 %3696, 0
  br i1 %3697, label %3698, label %3715

3698:                                             ; preds = %3693
  %3699 = load i32, ptr %83, align 4, !tbaa !5
  %3700 = call ptr @__errno_location() #12
  store i32 %3699, ptr %3700, align 4, !tbaa !5
  %3701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3702 = load i32, ptr @test_count, align 4, !tbaa !5
  %3703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3704 = load i32, ptr %3703, align 4, !tbaa !5
  %3705 = call ptr @s2n_strerror(i32 noundef %3704, ptr noundef @.str.4)
  %3706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call ptr @s2n_strerror_debug(i32 noundef %3707, ptr noundef @.str.4)
  %3709 = call ptr @__errno_location() #12
  %3710 = load i32, ptr %3709, align 4, !tbaa !5
  %3711 = call ptr @strerror(i32 noundef %3710) #11
  %3712 = call ptr @__errno_location() #12
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  %3714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3701, ptr noundef @.str.2, i32 noundef %3702, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 221, ptr noundef %3705, ptr noundef %3708, ptr noundef %3711, i32 noundef %3713) #11
  br label %3732

3715:                                             ; preds = %3693, %3686
  %3716 = load i32, ptr %83, align 4, !tbaa !5
  %3717 = call ptr @__errno_location() #12
  store i32 %3716, ptr %3717, align 4, !tbaa !5
  %3718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3719 = load i32, ptr @test_count, align 4, !tbaa !5
  %3720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3721 = load i32, ptr %3720, align 4, !tbaa !5
  %3722 = call ptr @s2n_strerror(i32 noundef %3721, ptr noundef @.str.4)
  %3723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror_debug(i32 noundef %3724, ptr noundef @.str.4)
  %3726 = call ptr @__errno_location() #12
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call ptr @strerror(i32 noundef %3727) #11
  %3729 = call ptr @__errno_location() #12
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3718, ptr noundef @.str.5, i32 noundef %3719, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 221, ptr noundef %3722, ptr noundef %3725, ptr noundef %3728, i32 noundef %3730) #11
  br label %3732

3732:                                             ; preds = %3715, %3698
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %3733

3733:                                             ; preds = %3732
  br label %3734

3734:                                             ; preds = %3733
  call void @exit(i32 noundef 1) #13
  unreachable

3735:                                             ; No predecessors!
  br label %3736

3736:                                             ; preds = %3735
  br label %3737

3737:                                             ; preds = %3736, %3676
  br label %3738

3738:                                             ; preds = %3737
  br label %3739

3739:                                             ; preds = %3738
  call void @llvm.lifetime.end.p0(i64 2, ptr %81) #11
  br label %3740

3740:                                             ; preds = %3739, %3611
  br label %3741

3741:                                             ; preds = %3740
  %3742 = load i32, ptr @test_count, align 4, !tbaa !5
  %3743 = add nsw i32 %3742, 1
  store i32 %3743, ptr @test_count, align 4, !tbaa !5
  %3744 = load i16, ptr %76, align 2, !tbaa !57
  %3745 = zext i16 %3744 to i32
  %3746 = call i32 @s2n_stuffer_skip_read(ptr noundef %52, i32 noundef %3745)
  %3747 = icmp eq i32 %3746, -1
  br i1 %3747, label %3748, label %3801

3748:                                             ; preds = %3741
  br label %3749

3749:                                             ; preds = %3748
  br label %3750

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

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

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

3779:                                             ; preds = %3757, %3750
  %3780 = load i32, ptr %84, align 4, !tbaa !5
  %3781 = call ptr @__errno_location() #12
  store i32 %3780, ptr %3781, align 4, !tbaa !5
  %3782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3783 = load i32, ptr @test_count, align 4, !tbaa !5
  %3784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3785 = load i32, ptr %3784, align 4, !tbaa !5
  %3786 = call ptr @s2n_strerror(i32 noundef %3785, ptr noundef @.str.4)
  %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_debug(i32 noundef %3788, ptr noundef @.str.4)
  %3790 = call ptr @__errno_location() #12
  %3791 = load i32, ptr %3790, align 4, !tbaa !5
  %3792 = call ptr @strerror(i32 noundef %3791) #11
  %3793 = call ptr @__errno_location() #12
  %3794 = load i32, ptr %3793, align 4, !tbaa !5
  %3795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3782, ptr noundef @.str.5, i32 noundef %3783, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 223, ptr noundef %3786, ptr noundef %3789, ptr noundef %3792, i32 noundef %3794) #11
  br label %3796

3796:                                             ; preds = %3779, %3762
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  br label %3797

3797:                                             ; preds = %3796
  br label %3798

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

3799:                                             ; No predecessors!
  br label %3800

3800:                                             ; preds = %3799
  br label %3801

3801:                                             ; preds = %3800, %3741
  br label %3802

3802:                                             ; preds = %3801
  br label %3803

3803:                                             ; preds = %3802
  call void @llvm.lifetime.start.p0(i64 2, ptr %85) #11
  store i16 0, ptr %85, align 2, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 2, ptr %86) #11
  store i16 0, ptr %86, align 2, !tbaa !57
  br label %3804

3804:                                             ; preds = %3803
  %3805 = load i32, ptr @test_count, align 4, !tbaa !5
  %3806 = add nsw i32 %3805, 1
  store i32 %3806, ptr @test_count, align 4, !tbaa !5
  %3807 = call i32 @s2n_stuffer_read_uint16(ptr noundef %52, ptr noundef %85)
  %3808 = icmp eq i32 %3807, -1
  br i1 %3808, label %3809, label %3862

3809:                                             ; preds = %3804
  br label %3810

3810:                                             ; preds = %3809
  br label %3811

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

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

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

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

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

3858:                                             ; preds = %3857
  br label %3859

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

3860:                                             ; No predecessors!
  br label %3861

3861:                                             ; preds = %3860
  br label %3862

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

3863:                                             ; preds = %3862
  br label %3864

3864:                                             ; preds = %3863
  br label %3865

3865:                                             ; preds = %3864
  %3866 = load i32, ptr @test_count, align 4, !tbaa !5
  %3867 = add nsw i32 %3866, 1
  store i32 %3867, ptr @test_count, align 4, !tbaa !5
  %3868 = load i16, ptr %85, align 2, !tbaa !57
  %3869 = zext i16 %3868 to i32
  %3870 = load ptr, ptr %42, align 8, !tbaa !9
  %3871 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %3870, i32 0, i32 1
  %3872 = load ptr, ptr %3871, align 8, !tbaa !60
  %3873 = getelementptr inbounds ptr, ptr %3872, i64 0
  %3874 = load ptr, ptr %3873, align 8, !tbaa !9
  %3875 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %3874, i32 0, i32 0
  %3876 = load i16, ptr %3875, align 8, !tbaa !62
  %3877 = zext i16 %3876 to i32
  %3878 = icmp eq i32 %3869, %3877
  br i1 %3878, label %3932, label %3879

3879:                                             ; preds = %3865
  br label %3880

3880:                                             ; preds = %3879
  br label %3881

3881:                                             ; preds = %3880
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %3882 = call ptr @__errno_location() #12
  %3883 = load i32, ptr %3882, align 4, !tbaa !5
  store i32 %3883, ptr %88, align 4, !tbaa !5
  %3884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3885 = call i32 @s2n_print_stacktrace(ptr noundef %3884)
  %3886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3887 = trunc i8 %3886 to i1
  br i1 %3887, label %3888, label %3910

3888:                                             ; preds = %3881
  %3889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3890 = call i32 @fileno(ptr noundef %3889) #11
  %3891 = call i32 @isatty(i32 noundef %3890) #11
  %3892 = icmp ne i32 %3891, 0
  br i1 %3892, label %3893, label %3910

3893:                                             ; preds = %3888
  %3894 = load i32, ptr %88, align 4, !tbaa !5
  %3895 = call ptr @__errno_location() #12
  store i32 %3894, ptr %3895, align 4, !tbaa !5
  %3896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3897 = load i32, ptr @test_count, align 4, !tbaa !5
  %3898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3899 = load i32, ptr %3898, align 4, !tbaa !5
  %3900 = call ptr @s2n_strerror(i32 noundef %3899, ptr noundef @.str.4)
  %3901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  %3903 = call ptr @s2n_strerror_debug(i32 noundef %3902, ptr noundef @.str.4)
  %3904 = call ptr @__errno_location() #12
  %3905 = load i32, ptr %3904, align 4, !tbaa !5
  %3906 = call ptr @strerror(i32 noundef %3905) #11
  %3907 = call ptr @__errno_location() #12
  %3908 = load i32, ptr %3907, align 4, !tbaa !5
  %3909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3896, ptr noundef @.str.2, i32 noundef %3897, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 228, ptr noundef %3900, ptr noundef %3903, ptr noundef %3906, i32 noundef %3908) #11
  br label %3927

3910:                                             ; preds = %3888, %3881
  %3911 = load i32, ptr %88, align 4, !tbaa !5
  %3912 = call ptr @__errno_location() #12
  store i32 %3911, ptr %3912, align 4, !tbaa !5
  %3913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3914 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3916, ptr noundef @.str.4)
  %3918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3919 = load i32, ptr %3918, align 4, !tbaa !5
  %3920 = call ptr @s2n_strerror_debug(i32 noundef %3919, ptr noundef @.str.4)
  %3921 = call ptr @__errno_location() #12
  %3922 = load i32, ptr %3921, align 4, !tbaa !5
  %3923 = call ptr @strerror(i32 noundef %3922) #11
  %3924 = call ptr @__errno_location() #12
  %3925 = load i32, ptr %3924, align 4, !tbaa !5
  %3926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3913, ptr noundef @.str.5, i32 noundef %3914, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 228, ptr noundef %3917, ptr noundef %3920, ptr noundef %3923, i32 noundef %3925) #11
  br label %3927

3927:                                             ; preds = %3910, %3893
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %3928

3928:                                             ; preds = %3927
  br label %3929

3929:                                             ; preds = %3928
  call void @exit(i32 noundef 1) #13
  unreachable

3930:                                             ; No predecessors!
  br label %3931

3931:                                             ; preds = %3930
  br label %3932

3932:                                             ; preds = %3931, %3865
  br label %3933

3933:                                             ; preds = %3932
  br label %3934

3934:                                             ; preds = %3933
  br label %3935

3935:                                             ; preds = %3934
  %3936 = load i32, ptr @test_count, align 4, !tbaa !5
  %3937 = add nsw i32 %3936, 1
  store i32 %3937, ptr @test_count, align 4, !tbaa !5
  %3938 = call i32 @s2n_stuffer_read_uint16(ptr noundef %52, ptr noundef %86)
  %3939 = icmp eq i32 %3938, -1
  br i1 %3939, label %3940, label %3993

3940:                                             ; preds = %3935
  br label %3941

3941:                                             ; preds = %3940
  br label %3942

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

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

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

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

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

3989:                                             ; preds = %3988
  br label %3990

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

3991:                                             ; No predecessors!
  br label %3992

3992:                                             ; preds = %3991
  br label %3993

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

3994:                                             ; preds = %3993
  br label %3995

3995:                                             ; preds = %3994
  br label %3996

3996:                                             ; preds = %3995
  %3997 = load i32, ptr @test_count, align 4, !tbaa !5
  %3998 = add nsw i32 %3997, 1
  store i32 %3998, ptr @test_count, align 4, !tbaa !5
  %3999 = load i16, ptr %86, align 2, !tbaa !57
  %4000 = zext i16 %3999 to i32
  %4001 = load ptr, ptr %42, align 8, !tbaa !9
  %4002 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %4001, i32 0, i32 1
  %4003 = load ptr, ptr %4002, align 8, !tbaa !60
  %4004 = getelementptr inbounds ptr, ptr %4003, i64 0
  %4005 = load ptr, ptr %4004, align 8, !tbaa !9
  %4006 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %4005, i32 0, i32 3
  %4007 = load i8, ptr %4006, align 8, !tbaa !64
  %4008 = zext i8 %4007 to i32
  %4009 = icmp eq i32 %4000, %4008
  br i1 %4009, label %4063, label %4010

4010:                                             ; preds = %3996
  br label %4011

4011:                                             ; preds = %4010
  br label %4012

4012:                                             ; preds = %4011
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %4013 = call ptr @__errno_location() #12
  %4014 = load i32, ptr %4013, align 4, !tbaa !5
  store i32 %4014, ptr %90, align 4, !tbaa !5
  %4015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4016 = call i32 @s2n_print_stacktrace(ptr noundef %4015)
  %4017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4018 = trunc i8 %4017 to i1
  br i1 %4018, label %4019, label %4041

4019:                                             ; preds = %4012
  %4020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4021 = call i32 @fileno(ptr noundef %4020) #11
  %4022 = call i32 @isatty(i32 noundef %4021) #11
  %4023 = icmp ne i32 %4022, 0
  br i1 %4023, label %4024, label %4041

4024:                                             ; preds = %4019
  %4025 = load i32, ptr %90, align 4, !tbaa !5
  %4026 = call ptr @__errno_location() #12
  store i32 %4025, ptr %4026, align 4, !tbaa !5
  %4027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4028 = load i32, ptr @test_count, align 4, !tbaa !5
  %4029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4030 = load i32, ptr %4029, align 4, !tbaa !5
  %4031 = call ptr @s2n_strerror(i32 noundef %4030, ptr noundef @.str.4)
  %4032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4033 = load i32, ptr %4032, align 4, !tbaa !5
  %4034 = call ptr @s2n_strerror_debug(i32 noundef %4033, ptr noundef @.str.4)
  %4035 = call ptr @__errno_location() #12
  %4036 = load i32, ptr %4035, align 4, !tbaa !5
  %4037 = call ptr @strerror(i32 noundef %4036) #11
  %4038 = call ptr @__errno_location() #12
  %4039 = load i32, ptr %4038, align 4, !tbaa !5
  %4040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4027, ptr noundef @.str.2, i32 noundef %4028, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 230, ptr noundef %4031, ptr noundef %4034, ptr noundef %4037, i32 noundef %4039) #11
  br label %4058

4041:                                             ; preds = %4019, %4012
  %4042 = load i32, ptr %90, align 4, !tbaa !5
  %4043 = call ptr @__errno_location() #12
  store i32 %4042, ptr %4043, align 4, !tbaa !5
  %4044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4045 = load i32, ptr @test_count, align 4, !tbaa !5
  %4046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4047 = load i32, ptr %4046, align 4, !tbaa !5
  %4048 = call ptr @s2n_strerror(i32 noundef %4047, ptr noundef @.str.4)
  %4049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4050 = load i32, ptr %4049, align 4, !tbaa !5
  %4051 = call ptr @s2n_strerror_debug(i32 noundef %4050, ptr noundef @.str.4)
  %4052 = call ptr @__errno_location() #12
  %4053 = load i32, ptr %4052, align 4, !tbaa !5
  %4054 = call ptr @strerror(i32 noundef %4053) #11
  %4055 = call ptr @__errno_location() #12
  %4056 = load i32, ptr %4055, align 4, !tbaa !5
  %4057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4044, ptr noundef @.str.5, i32 noundef %4045, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 230, ptr noundef %4048, ptr noundef %4051, ptr noundef %4054, i32 noundef %4056) #11
  br label %4058

4058:                                             ; preds = %4041, %4024
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %4059

4059:                                             ; preds = %4058
  br label %4060

4060:                                             ; preds = %4059
  call void @exit(i32 noundef 1) #13
  unreachable

4061:                                             ; No predecessors!
  br label %4062

4062:                                             ; preds = %4061
  br label %4063

4063:                                             ; preds = %4062, %3996
  br label %4064

4064:                                             ; preds = %4063
  br label %4065

4065:                                             ; preds = %4064
  br label %4066

4066:                                             ; preds = %4065
  %4067 = load i32, ptr @test_count, align 4, !tbaa !5
  %4068 = add nsw i32 %4067, 1
  store i32 %4068, ptr @test_count, align 4, !tbaa !5
  %4069 = load i16, ptr %86, align 2, !tbaa !57
  %4070 = zext i16 %4069 to i32
  %4071 = call i32 @s2n_stuffer_skip_read(ptr noundef %52, i32 noundef %4070)
  %4072 = icmp eq i32 %4071, -1
  br i1 %4072, label %4073, label %4126

4073:                                             ; preds = %4066
  br label %4074

4074:                                             ; preds = %4073
  br label %4075

4075:                                             ; preds = %4074
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %4076 = call ptr @__errno_location() #12
  %4077 = load i32, ptr %4076, align 4, !tbaa !5
  store i32 %4077, ptr %91, align 4, !tbaa !5
  %4078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4079 = call i32 @s2n_print_stacktrace(ptr noundef %4078)
  %4080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4081 = trunc i8 %4080 to i1
  br i1 %4081, label %4082, label %4104

4082:                                             ; preds = %4075
  %4083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4084 = call i32 @fileno(ptr noundef %4083) #11
  %4085 = call i32 @isatty(i32 noundef %4084) #11
  %4086 = icmp ne i32 %4085, 0
  br i1 %4086, label %4087, label %4104

4087:                                             ; preds = %4082
  %4088 = load i32, ptr %91, align 4, !tbaa !5
  %4089 = call ptr @__errno_location() #12
  store i32 %4088, ptr %4089, align 4, !tbaa !5
  %4090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4091 = load i32, ptr @test_count, align 4, !tbaa !5
  %4092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4093 = load i32, ptr %4092, align 4, !tbaa !5
  %4094 = call ptr @s2n_strerror(i32 noundef %4093, ptr noundef @.str.4)
  %4095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4096 = load i32, ptr %4095, align 4, !tbaa !5
  %4097 = call ptr @s2n_strerror_debug(i32 noundef %4096, ptr noundef @.str.4)
  %4098 = call ptr @__errno_location() #12
  %4099 = load i32, ptr %4098, align 4, !tbaa !5
  %4100 = call ptr @strerror(i32 noundef %4099) #11
  %4101 = call ptr @__errno_location() #12
  %4102 = load i32, ptr %4101, align 4, !tbaa !5
  %4103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4090, ptr noundef @.str.2, i32 noundef %4091, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 231, ptr noundef %4094, ptr noundef %4097, ptr noundef %4100, i32 noundef %4102) #11
  br label %4121

4104:                                             ; preds = %4082, %4075
  %4105 = load i32, ptr %91, align 4, !tbaa !5
  %4106 = call ptr @__errno_location() #12
  store i32 %4105, ptr %4106, align 4, !tbaa !5
  %4107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4108 = load i32, ptr @test_count, align 4, !tbaa !5
  %4109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call ptr @s2n_strerror(i32 noundef %4110, ptr noundef @.str.4)
  %4112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4113 = load i32, ptr %4112, align 4, !tbaa !5
  %4114 = call ptr @s2n_strerror_debug(i32 noundef %4113, ptr noundef @.str.4)
  %4115 = call ptr @__errno_location() #12
  %4116 = load i32, ptr %4115, align 4, !tbaa !5
  %4117 = call ptr @strerror(i32 noundef %4116) #11
  %4118 = call ptr @__errno_location() #12
  %4119 = load i32, ptr %4118, align 4, !tbaa !5
  %4120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4107, ptr noundef @.str.5, i32 noundef %4108, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 231, ptr noundef %4111, ptr noundef %4114, ptr noundef %4117, i32 noundef %4119) #11
  br label %4121

4121:                                             ; preds = %4104, %4087
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %4122

4122:                                             ; preds = %4121
  br label %4123

4123:                                             ; preds = %4122
  call void @exit(i32 noundef 1) #13
  unreachable

4124:                                             ; No predecessors!
  br label %4125

4125:                                             ; preds = %4124
  br label %4126

4126:                                             ; preds = %4125, %4066
  br label %4127

4127:                                             ; preds = %4126
  br label %4128

4128:                                             ; preds = %4127
  br label %4129

4129:                                             ; preds = %4128
  %4130 = load i32, ptr @test_count, align 4, !tbaa !5
  %4131 = add nsw i32 %4130, 1
  store i32 %4131, ptr @test_count, align 4, !tbaa !5
  %4132 = getelementptr inbounds %struct.s2n_stuffer, ptr %52, i32 0, i32 2
  %4133 = load i32, ptr %4132, align 4, !tbaa !58
  %4134 = getelementptr inbounds %struct.s2n_stuffer, ptr %52, i32 0, i32 1
  %4135 = load i32, ptr %4134, align 8, !tbaa !59
  %4136 = sub i32 %4133, %4135
  %4137 = icmp eq i32 %4136, 0
  br i1 %4137, label %4191, label %4138

4138:                                             ; preds = %4129
  br label %4139

4139:                                             ; preds = %4138
  br label %4140

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

4147:                                             ; preds = %4140
  %4148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4149 = call i32 @fileno(ptr noundef %4148) #11
  %4150 = call i32 @isatty(i32 noundef %4149) #11
  %4151 = icmp ne i32 %4150, 0
  br i1 %4151, label %4152, label %4169

4152:                                             ; preds = %4147
  %4153 = load i32, ptr %92, align 4, !tbaa !5
  %4154 = call ptr @__errno_location() #12
  store i32 %4153, ptr %4154, align 4, !tbaa !5
  %4155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4156 = load i32, ptr @test_count, align 4, !tbaa !5
  %4157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4158 = load i32, ptr %4157, align 4, !tbaa !5
  %4159 = call ptr @s2n_strerror(i32 noundef %4158, ptr noundef @.str.4)
  %4160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4161 = load i32, ptr %4160, align 4, !tbaa !5
  %4162 = call ptr @s2n_strerror_debug(i32 noundef %4161, ptr noundef @.str.4)
  %4163 = call ptr @__errno_location() #12
  %4164 = load i32, ptr %4163, align 4, !tbaa !5
  %4165 = call ptr @strerror(i32 noundef %4164) #11
  %4166 = call ptr @__errno_location() #12
  %4167 = load i32, ptr %4166, align 4, !tbaa !5
  %4168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4155, ptr noundef @.str.2, i32 noundef %4156, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 234, ptr noundef %4159, ptr noundef %4162, ptr noundef %4165, i32 noundef %4167) #11
  br label %4186

4169:                                             ; preds = %4147, %4140
  %4170 = load i32, ptr %92, align 4, !tbaa !5
  %4171 = call ptr @__errno_location() #12
  store i32 %4170, ptr %4171, align 4, !tbaa !5
  %4172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4173 = load i32, ptr @test_count, align 4, !tbaa !5
  %4174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4175 = load i32, ptr %4174, align 4, !tbaa !5
  %4176 = call ptr @s2n_strerror(i32 noundef %4175, ptr noundef @.str.4)
  %4177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4178 = load i32, ptr %4177, align 4, !tbaa !5
  %4179 = call ptr @s2n_strerror_debug(i32 noundef %4178, ptr noundef @.str.4)
  %4180 = call ptr @__errno_location() #12
  %4181 = load i32, ptr %4180, align 4, !tbaa !5
  %4182 = call ptr @strerror(i32 noundef %4181) #11
  %4183 = call ptr @__errno_location() #12
  %4184 = load i32, ptr %4183, align 4, !tbaa !5
  %4185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4172, ptr noundef @.str.5, i32 noundef %4173, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 234, ptr noundef %4176, ptr noundef %4179, ptr noundef %4182, i32 noundef %4184) #11
  br label %4186

4186:                                             ; preds = %4169, %4152
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %4187

4187:                                             ; preds = %4186
  br label %4188

4188:                                             ; preds = %4187
  call void @exit(i32 noundef 1) #13
  unreachable

4189:                                             ; No predecessors!
  br label %4190

4190:                                             ; preds = %4189
  br label %4191

4191:                                             ; preds = %4190, %4129
  br label %4192

4192:                                             ; preds = %4191
  br label %4193

4193:                                             ; preds = %4192
  br label %4194

4194:                                             ; preds = %4193
  %4195 = load i32, ptr @test_count, align 4, !tbaa !5
  %4196 = add nsw i32 %4195, 1
  store i32 %4196, ptr @test_count, align 4, !tbaa !5
  %4197 = load ptr, ptr %40, align 8, !tbaa !9
  %4198 = call i32 @s2n_connection_free(ptr noundef %4197)
  %4199 = icmp eq i32 %4198, -1
  br i1 %4199, label %4200, label %4253

4200:                                             ; preds = %4194
  br label %4201

4201:                                             ; preds = %4200
  br label %4202

4202:                                             ; preds = %4201
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #11
  %4203 = call ptr @__errno_location() #12
  %4204 = load i32, ptr %4203, align 4, !tbaa !5
  store i32 %4204, ptr %93, align 4, !tbaa !5
  %4205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4206 = call i32 @s2n_print_stacktrace(ptr noundef %4205)
  %4207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4208 = trunc i8 %4207 to i1
  br i1 %4208, label %4209, label %4231

4209:                                             ; preds = %4202
  %4210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4211 = call i32 @fileno(ptr noundef %4210) #11
  %4212 = call i32 @isatty(i32 noundef %4211) #11
  %4213 = icmp ne i32 %4212, 0
  br i1 %4213, label %4214, label %4231

4214:                                             ; preds = %4209
  %4215 = load i32, ptr %93, align 4, !tbaa !5
  %4216 = call ptr @__errno_location() #12
  store i32 %4215, ptr %4216, align 4, !tbaa !5
  %4217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4218 = load i32, ptr @test_count, align 4, !tbaa !5
  %4219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4220 = load i32, ptr %4219, align 4, !tbaa !5
  %4221 = call ptr @s2n_strerror(i32 noundef %4220, ptr noundef @.str.4)
  %4222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4223 = load i32, ptr %4222, align 4, !tbaa !5
  %4224 = call ptr @s2n_strerror_debug(i32 noundef %4223, ptr noundef @.str.4)
  %4225 = call ptr @__errno_location() #12
  %4226 = load i32, ptr %4225, align 4, !tbaa !5
  %4227 = call ptr @strerror(i32 noundef %4226) #11
  %4228 = call ptr @__errno_location() #12
  %4229 = load i32, ptr %4228, align 4, !tbaa !5
  %4230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4217, ptr noundef @.str.2, i32 noundef %4218, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 236, ptr noundef %4221, ptr noundef %4224, ptr noundef %4227, i32 noundef %4229) #11
  br label %4248

4231:                                             ; preds = %4209, %4202
  %4232 = load i32, ptr %93, align 4, !tbaa !5
  %4233 = call ptr @__errno_location() #12
  store i32 %4232, ptr %4233, align 4, !tbaa !5
  %4234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4235 = load i32, ptr @test_count, align 4, !tbaa !5
  %4236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4237 = load i32, ptr %4236, align 4, !tbaa !5
  %4238 = call ptr @s2n_strerror(i32 noundef %4237, ptr noundef @.str.4)
  %4239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4240 = load i32, ptr %4239, align 4, !tbaa !5
  %4241 = call ptr @s2n_strerror_debug(i32 noundef %4240, ptr noundef @.str.4)
  %4242 = call ptr @__errno_location() #12
  %4243 = load i32, ptr %4242, align 4, !tbaa !5
  %4244 = call ptr @strerror(i32 noundef %4243) #11
  %4245 = call ptr @__errno_location() #12
  %4246 = load i32, ptr %4245, align 4, !tbaa !5
  %4247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4234, ptr noundef @.str.5, i32 noundef %4235, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 236, ptr noundef %4238, ptr noundef %4241, ptr noundef %4244, i32 noundef %4246) #11
  br label %4248

4248:                                             ; preds = %4231, %4214
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %4249

4249:                                             ; preds = %4248
  br label %4250

4250:                                             ; preds = %4249
  call void @exit(i32 noundef 1) #13
  unreachable

4251:                                             ; No predecessors!
  br label %4252

4252:                                             ; preds = %4251
  br label %4253

4253:                                             ; preds = %4252, %4194
  br label %4254

4254:                                             ; preds = %4253
  br label %4255

4255:                                             ; preds = %4254
  call void @llvm.lifetime.end.p0(i64 2, ptr %86) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %85) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %76) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %75) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %72) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %71) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %68) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %65) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  %4256 = call i32 @s2n_stuffer_free(ptr noundef %52)
  call void @llvm.lifetime.end.p0(i64 40, ptr %52) #11
  store i32 0, ptr %6, align 4
  br label %4257

4257:                                             ; preds = %4255, %2310
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  %4258 = load i32, ptr %6, align 4
  switch i32 %4258, label %9465 [
    i32 0, label %4259
  ]

4259:                                             ; preds = %4257
  br label %4260

4260:                                             ; preds = %4259
  %4261 = load i32, ptr @test_count, align 4, !tbaa !5
  %4262 = add nsw i32 %4261, 1
  store i32 %4262, ptr @test_count, align 4, !tbaa !5
  %4263 = getelementptr inbounds %struct.s2n_security_policy, ptr %9, i32 0, i32 2
  %4264 = load ptr, ptr %4263, align 8, !tbaa !22
  %4265 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %4264, ptr noundef %10)
  %4266 = getelementptr inbounds %struct.s2n_result, ptr %94, i32 0, i32 0
  store i32 %4265, ptr %4266, align 4
  %4267 = getelementptr inbounds %struct.s2n_result, ptr %94, i32 0, i32 0
  %4268 = load i32, ptr %4267, align 4
  %4269 = call zeroext i1 @s2n_result_is_ok(i32 %4268)
  br i1 %4269, label %4323, label %4270

4270:                                             ; preds = %4260
  br label %4271

4271:                                             ; preds = %4270
  br label %4272

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

4279:                                             ; preds = %4272
  %4280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4281 = call i32 @fileno(ptr noundef %4280) #11
  %4282 = call i32 @isatty(i32 noundef %4281) #11
  %4283 = icmp ne i32 %4282, 0
  br i1 %4283, label %4284, label %4301

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

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

4318:                                             ; preds = %4301, %4284
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %4319

4319:                                             ; preds = %4318
  br label %4320

4320:                                             ; preds = %4319
  call void @exit(i32 noundef 1) #13
  unreachable

4321:                                             ; No predecessors!
  br label %4322

4322:                                             ; preds = %4321
  br label %4323

4323:                                             ; preds = %4322, %4260
  br label %4324

4324:                                             ; preds = %4323
  br label %4325

4325:                                             ; preds = %4324
  %4326 = load i32, ptr %10, align 4, !tbaa !5
  %4327 = icmp uge i32 %4326, 2
  br i1 %4327, label %4328, label %6492

4328:                                             ; preds = %4325
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #11
  store ptr null, ptr %96, align 8, !tbaa !9
  br label %4329

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

4334:                                             ; preds = %4329
  br label %4335

4335:                                             ; preds = %4334
  br label %4336

4336:                                             ; preds = %4335
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #11
  %4337 = call ptr @__errno_location() #12
  %4338 = load i32, ptr %4337, align 4, !tbaa !5
  store i32 %4338, ptr %97, 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) #11
  %4346 = call i32 @isatty(i32 noundef %4345) #11
  %4347 = icmp ne i32 %4346, 0
  br i1 %4347, label %4348, label %4365

4348:                                             ; preds = %4343
  %4349 = load i32, ptr %97, align 4, !tbaa !5
  %4350 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %4359 = call ptr @__errno_location() #12
  %4360 = load i32, ptr %4359, align 4, !tbaa !5
  %4361 = call ptr @strerror(i32 noundef %4360) #11
  %4362 = call ptr @__errno_location() #12
  %4363 = load i32, ptr %4362, align 4, !tbaa !5
  %4364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4351, ptr noundef @.str.2, i32 noundef %4352, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 244, ptr noundef %4355, ptr noundef %4358, ptr noundef %4361, i32 noundef %4363) #11
  br label %4382

4365:                                             ; preds = %4343, %4336
  %4366 = load i32, ptr %97, align 4, !tbaa !5
  %4367 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %4376 = call ptr @__errno_location() #12
  %4377 = load i32, ptr %4376, align 4, !tbaa !5
  %4378 = call ptr @strerror(i32 noundef %4377) #11
  %4379 = call ptr @__errno_location() #12
  %4380 = load i32, ptr %4379, align 4, !tbaa !5
  %4381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4368, ptr noundef @.str.5, i32 noundef %4369, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 244, ptr noundef %4372, ptr noundef %4375, ptr noundef %4378, i32 noundef %4380) #11
  br label %4382

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

4383:                                             ; preds = %4382
  br label %4384

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

4385:                                             ; No predecessors!
  br label %4386

4386:                                             ; preds = %4385
  br label %4387

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

4388:                                             ; preds = %4387
  br label %4389

4389:                                             ; preds = %4388
  %4390 = load ptr, ptr %96, align 8, !tbaa !9
  %4391 = getelementptr inbounds %struct.s2n_connection, ptr %4390, i32 0, i32 2
  store ptr %39, ptr %4391, align 8, !tbaa !28
  %4392 = load ptr, ptr %96, align 8, !tbaa !9
  %4393 = getelementptr inbounds %struct.s2n_connection, ptr %4392, i32 0, i32 23
  store i8 34, ptr %4393, align 4, !tbaa !84
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #11
  store ptr null, ptr %98, align 8, !tbaa !9
  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 = load ptr, ptr %96, align 8, !tbaa !9
  %4398 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %4397, ptr noundef %98)
  %4399 = icmp eq i32 %4398, -1
  br i1 %4399, label %4400, label %4453

4400:                                             ; preds = %4394
  br label %4401

4401:                                             ; preds = %4400
  br label %4402

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

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

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

4431:                                             ; preds = %4409, %4402
  %4432 = load i32, ptr %99, align 4, !tbaa !5
  %4433 = call ptr @__errno_location() #12
  store i32 %4432, ptr %4433, align 4, !tbaa !5
  %4434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4435 = load i32, ptr @test_count, align 4, !tbaa !5
  %4436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4437 = load i32, ptr %4436, align 4, !tbaa !5
  %4438 = call ptr @s2n_strerror(i32 noundef %4437, ptr noundef @.str.4)
  %4439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4440 = load i32, ptr %4439, align 4, !tbaa !5
  %4441 = call ptr @s2n_strerror_debug(i32 noundef %4440, ptr noundef @.str.4)
  %4442 = call ptr @__errno_location() #12
  %4443 = load i32, ptr %4442, align 4, !tbaa !5
  %4444 = call ptr @strerror(i32 noundef %4443) #11
  %4445 = call ptr @__errno_location() #12
  %4446 = load i32, ptr %4445, align 4, !tbaa !5
  %4447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4434, ptr noundef @.str.5, i32 noundef %4435, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 249, ptr noundef %4438, ptr noundef %4441, ptr noundef %4444, i32 noundef %4446) #11
  br label %4448

4448:                                             ; preds = %4431, %4414
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  br label %4449

4449:                                             ; preds = %4448
  br label %4450

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

4451:                                             ; No predecessors!
  br label %4452

4452:                                             ; preds = %4451
  br label %4453

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

4454:                                             ; preds = %4453
  br label %4455

4455:                                             ; preds = %4454
  br label %4456

4456:                                             ; preds = %4455
  %4457 = load i32, ptr @test_count, align 4, !tbaa !5
  %4458 = add nsw i32 %4457, 1
  store i32 %4458, ptr @test_count, align 4, !tbaa !5
  %4459 = load ptr, ptr %98, align 8, !tbaa !9
  %4460 = icmp eq ptr %4459, null
  br i1 %4460, label %4461, label %4514

4461:                                             ; preds = %4456
  br label %4462

4462:                                             ; preds = %4461
  br label %4463

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

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

4475:                                             ; preds = %4470
  %4476 = load i32, ptr %100, align 4, !tbaa !5
  %4477 = call ptr @__errno_location() #12
  store i32 %4476, ptr %4477, align 4, !tbaa !5
  %4478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4479 = load i32, ptr @test_count, align 4, !tbaa !5
  %4480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4481 = load i32, ptr %4480, align 4, !tbaa !5
  %4482 = call ptr @s2n_strerror(i32 noundef %4481, ptr noundef @.str.4)
  %4483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4484 = load i32, ptr %4483, align 4, !tbaa !5
  %4485 = call ptr @s2n_strerror_debug(i32 noundef %4484, ptr noundef @.str.4)
  %4486 = call ptr @__errno_location() #12
  %4487 = load i32, ptr %4486, align 4, !tbaa !5
  %4488 = call ptr @strerror(i32 noundef %4487) #11
  %4489 = call ptr @__errno_location() #12
  %4490 = load i32, ptr %4489, align 4, !tbaa !5
  %4491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4478, ptr noundef @.str.2, i32 noundef %4479, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 250, ptr noundef %4482, ptr noundef %4485, ptr noundef %4488, i32 noundef %4490) #11
  br label %4509

4492:                                             ; preds = %4470, %4463
  %4493 = load i32, ptr %100, align 4, !tbaa !5
  %4494 = call ptr @__errno_location() #12
  store i32 %4493, ptr %4494, align 4, !tbaa !5
  %4495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4496 = load i32, ptr @test_count, align 4, !tbaa !5
  %4497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4498 = load i32, ptr %4497, align 4, !tbaa !5
  %4499 = call ptr @s2n_strerror(i32 noundef %4498, ptr noundef @.str.4)
  %4500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4501 = load i32, ptr %4500, align 4, !tbaa !5
  %4502 = call ptr @s2n_strerror_debug(i32 noundef %4501, ptr noundef @.str.4)
  %4503 = call ptr @__errno_location() #12
  %4504 = load i32, ptr %4503, align 4, !tbaa !5
  %4505 = call ptr @strerror(i32 noundef %4504) #11
  %4506 = call ptr @__errno_location() #12
  %4507 = load i32, ptr %4506, align 4, !tbaa !5
  %4508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4495, ptr noundef @.str.5, i32 noundef %4496, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 250, ptr noundef %4499, ptr noundef %4502, ptr noundef %4505, i32 noundef %4507) #11
  br label %4509

4509:                                             ; preds = %4492, %4475
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  br label %4510

4510:                                             ; preds = %4509
  br label %4511

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

4512:                                             ; No predecessors!
  br label %4513

4513:                                             ; preds = %4512
  br label %4514

4514:                                             ; preds = %4513, %4456
  br label %4515

4515:                                             ; preds = %4514
  br label %4516

4516:                                             ; preds = %4515
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #11
  store ptr null, ptr %101, align 8, !tbaa !9
  br label %4517

4517:                                             ; preds = %4516
  %4518 = load i32, ptr @test_count, align 4, !tbaa !5
  %4519 = add nsw i32 %4518, 1
  store i32 %4519, ptr @test_count, align 4, !tbaa !5
  %4520 = load ptr, ptr %96, align 8, !tbaa !9
  %4521 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %4520, ptr noundef %101)
  %4522 = icmp eq i32 %4521, -1
  br i1 %4522, label %4523, label %4576

4523:                                             ; preds = %4517
  br label %4524

4524:                                             ; preds = %4523
  br label %4525

4525:                                             ; preds = %4524
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #11
  %4526 = call ptr @__errno_location() #12
  %4527 = load i32, ptr %4526, align 4, !tbaa !5
  store i32 %4527, ptr %102, 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) #11
  %4535 = call i32 @isatty(i32 noundef %4534) #11
  %4536 = icmp ne i32 %4535, 0
  br i1 %4536, label %4537, label %4554

4537:                                             ; preds = %4532
  %4538 = load i32, ptr %102, align 4, !tbaa !5
  %4539 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %4548 = call ptr @__errno_location() #12
  %4549 = load i32, ptr %4548, align 4, !tbaa !5
  %4550 = call ptr @strerror(i32 noundef %4549) #11
  %4551 = call ptr @__errno_location() #12
  %4552 = load i32, ptr %4551, align 4, !tbaa !5
  %4553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4540, ptr noundef @.str.2, i32 noundef %4541, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 253, ptr noundef %4544, ptr noundef %4547, ptr noundef %4550, i32 noundef %4552) #11
  br label %4571

4554:                                             ; preds = %4532, %4525
  %4555 = load i32, ptr %102, align 4, !tbaa !5
  %4556 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %4565 = call ptr @__errno_location() #12
  %4566 = load i32, ptr %4565, align 4, !tbaa !5
  %4567 = call ptr @strerror(i32 noundef %4566) #11
  %4568 = call ptr @__errno_location() #12
  %4569 = load i32, ptr %4568, align 4, !tbaa !5
  %4570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4557, ptr noundef @.str.5, i32 noundef %4558, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 253, ptr noundef %4561, ptr noundef %4564, ptr noundef %4567, i32 noundef %4569) #11
  br label %4571

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

4572:                                             ; preds = %4571
  br label %4573

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

4574:                                             ; No predecessors!
  br label %4575

4575:                                             ; preds = %4574
  br label %4576

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

4577:                                             ; preds = %4576
  br label %4578

4578:                                             ; preds = %4577
  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 = load ptr, ptr %101, align 8, !tbaa !9
  %4583 = icmp eq ptr %4582, null
  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 %103) #11
  %4587 = call ptr @__errno_location() #12
  %4588 = load i32, ptr %4587, align 4, !tbaa !5
  store i32 %4588, ptr %103, 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) #11
  %4596 = call i32 @isatty(i32 noundef %4595) #11
  %4597 = icmp ne i32 %4596, 0
  br i1 %4597, label %4598, label %4615

4598:                                             ; preds = %4593
  %4599 = load i32, ptr %103, align 4, !tbaa !5
  %4600 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %4609 = call ptr @__errno_location() #12
  %4610 = load i32, ptr %4609, align 4, !tbaa !5
  %4611 = call ptr @strerror(i32 noundef %4610) #11
  %4612 = call ptr @__errno_location() #12
  %4613 = load i32, ptr %4612, align 4, !tbaa !5
  %4614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4601, ptr noundef @.str.2, i32 noundef %4602, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 254, ptr noundef %4605, ptr noundef %4608, ptr noundef %4611, i32 noundef %4613) #11
  br label %4632

4615:                                             ; preds = %4593, %4586
  %4616 = load i32, ptr %103, align 4, !tbaa !5
  %4617 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %4626 = call ptr @__errno_location() #12
  %4627 = load i32, ptr %4626, align 4, !tbaa !5
  %4628 = call ptr @strerror(i32 noundef %4627) #11
  %4629 = call ptr @__errno_location() #12
  %4630 = load i32, ptr %4629, align 4, !tbaa !5
  %4631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4618, ptr noundef @.str.5, i32 noundef %4619, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 254, ptr noundef %4622, ptr noundef %4625, ptr noundef %4628, i32 noundef %4630) #11
  br label %4632

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

4633:                                             ; preds = %4632
  br label %4634

4634:                                             ; preds = %4633
  call void @exit(i32 noundef 1) #13
  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
  call void @llvm.lifetime.start.p0(i64 40, ptr %104) #11
  call void @llvm.memset.p0.i64(ptr align 8 %104, i8 0, i64 40, i1 false)
  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 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %104, i32 noundef 4096)
  %4644 = icmp eq i32 %4643, -1
  br i1 %4644, label %4645, label %4698

4645:                                             ; preds = %4640
  br label %4646

4646:                                             ; preds = %4645
  br label %4647

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

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

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

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

4693:                                             ; preds = %4676, %4659
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %4694

4694:                                             ; preds = %4693
  br label %4695

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

4696:                                             ; No predecessors!
  br label %4697

4697:                                             ; preds = %4696
  br label %4698

4698:                                             ; preds = %4697, %4640
  br label %4699

4699:                                             ; preds = %4698
  br label %4700

4700:                                             ; preds = %4699
  br label %4701

4701:                                             ; preds = %4700
  %4702 = load i32, ptr @test_count, align 4, !tbaa !5
  %4703 = add nsw i32 %4702, 1
  store i32 %4703, ptr @test_count, align 4, !tbaa !5
  %4704 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !55
  %4705 = load ptr, ptr %96, align 8, !tbaa !9
  %4706 = call i32 %4704(ptr noundef %4705, ptr noundef %104)
  %4707 = icmp eq i32 %4706, -1
  br i1 %4707, label %4708, label %4761

4708:                                             ; preds = %4701
  br label %4709

4709:                                             ; preds = %4708
  br label %4710

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

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

4722:                                             ; preds = %4717
  %4723 = load i32, ptr %106, align 4, !tbaa !5
  %4724 = call ptr @__errno_location() #12
  store i32 %4723, ptr %4724, align 4, !tbaa !5
  %4725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4726 = load i32, ptr @test_count, align 4, !tbaa !5
  %4727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4728 = load i32, ptr %4727, align 4, !tbaa !5
  %4729 = call ptr @s2n_strerror(i32 noundef %4728, ptr noundef @.str.4)
  %4730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4731 = load i32, ptr %4730, align 4, !tbaa !5
  %4732 = call ptr @s2n_strerror_debug(i32 noundef %4731, ptr noundef @.str.4)
  %4733 = call ptr @__errno_location() #12
  %4734 = load i32, ptr %4733, align 4, !tbaa !5
  %4735 = call ptr @strerror(i32 noundef %4734) #11
  %4736 = call ptr @__errno_location() #12
  %4737 = load i32, ptr %4736, align 4, !tbaa !5
  %4738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4725, ptr noundef @.str.2, i32 noundef %4726, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 259, ptr noundef %4729, ptr noundef %4732, ptr noundef %4735, i32 noundef %4737) #11
  br label %4756

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

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

4757:                                             ; preds = %4756
  br label %4758

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

4759:                                             ; No predecessors!
  br label %4760

4760:                                             ; preds = %4759
  br label %4761

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

4762:                                             ; preds = %4761
  br label %4763

4763:                                             ; preds = %4762
  br label %4764

4764:                                             ; preds = %4763
  %4765 = load i32, ptr @test_count, align 4, !tbaa !5
  %4766 = add nsw i32 %4765, 1
  store i32 %4766, ptr @test_count, align 4, !tbaa !5
  %4767 = call i32 @s2n_stuffer_wipe(ptr noundef %104)
  %4768 = icmp eq i32 %4767, -1
  br i1 %4768, label %4769, label %4822

4769:                                             ; preds = %4764
  br label %4770

4770:                                             ; preds = %4769
  br label %4771

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

4778:                                             ; preds = %4771
  %4779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4780 = call i32 @fileno(ptr noundef %4779) #11
  %4781 = call i32 @isatty(i32 noundef %4780) #11
  %4782 = icmp ne i32 %4781, 0
  br i1 %4782, label %4783, label %4800

4783:                                             ; preds = %4778
  %4784 = load i32, ptr %107, align 4, !tbaa !5
  %4785 = call ptr @__errno_location() #12
  store i32 %4784, ptr %4785, align 4, !tbaa !5
  %4786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4787 = load i32, ptr @test_count, align 4, !tbaa !5
  %4788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4789 = load i32, ptr %4788, align 4, !tbaa !5
  %4790 = call ptr @s2n_strerror(i32 noundef %4789, ptr noundef @.str.4)
  %4791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4792 = load i32, ptr %4791, align 4, !tbaa !5
  %4793 = call ptr @s2n_strerror_debug(i32 noundef %4792, ptr noundef @.str.4)
  %4794 = call ptr @__errno_location() #12
  %4795 = load i32, ptr %4794, align 4, !tbaa !5
  %4796 = call ptr @strerror(i32 noundef %4795) #11
  %4797 = call ptr @__errno_location() #12
  %4798 = load i32, ptr %4797, align 4, !tbaa !5
  %4799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4786, ptr noundef @.str.2, i32 noundef %4787, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 260, ptr noundef %4790, ptr noundef %4793, ptr noundef %4796, i32 noundef %4798) #11
  br label %4817

4800:                                             ; preds = %4778, %4771
  %4801 = load i32, ptr %107, align 4, !tbaa !5
  %4802 = call ptr @__errno_location() #12
  store i32 %4801, ptr %4802, align 4, !tbaa !5
  %4803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4804 = load i32, ptr @test_count, align 4, !tbaa !5
  %4805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4806 = load i32, ptr %4805, align 4, !tbaa !5
  %4807 = call ptr @s2n_strerror(i32 noundef %4806, ptr noundef @.str.4)
  %4808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4809 = load i32, ptr %4808, align 4, !tbaa !5
  %4810 = call ptr @s2n_strerror_debug(i32 noundef %4809, ptr noundef @.str.4)
  %4811 = call ptr @__errno_location() #12
  %4812 = load i32, ptr %4811, align 4, !tbaa !5
  %4813 = call ptr @strerror(i32 noundef %4812) #11
  %4814 = call ptr @__errno_location() #12
  %4815 = load i32, ptr %4814, align 4, !tbaa !5
  %4816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4803, ptr noundef @.str.5, i32 noundef %4804, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 260, ptr noundef %4807, ptr noundef %4810, ptr noundef %4813, i32 noundef %4815) #11
  br label %4817

4817:                                             ; preds = %4800, %4783
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %4818

4818:                                             ; preds = %4817
  br label %4819

4819:                                             ; preds = %4818
  call void @exit(i32 noundef 1) #13
  unreachable

4820:                                             ; No predecessors!
  br label %4821

4821:                                             ; preds = %4820
  br label %4822

4822:                                             ; preds = %4821, %4764
  br label %4823

4823:                                             ; preds = %4822
  br label %4824

4824:                                             ; preds = %4823
  br label %4825

4825:                                             ; preds = %4824
  %4826 = load i32, ptr @test_count, align 4, !tbaa !5
  %4827 = add nsw i32 %4826, 1
  store i32 %4827, ptr @test_count, align 4, !tbaa !5
  %4828 = load ptr, ptr %96, align 8, !tbaa !9
  %4829 = getelementptr inbounds %struct.s2n_connection, ptr %4828, i32 0, i32 31
  %4830 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4829, i32 0, i32 5
  %4831 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %4830, i32 0, i32 1
  %4832 = getelementptr inbounds %struct.s2n_kem_params, ptr %4831, i32 0, i32 2
  %4833 = getelementptr inbounds %struct.s2n_blob, ptr %4832, i32 0, i32 0
  %4834 = load ptr, ptr %4833, align 8, !tbaa !85
  %4835 = icmp eq ptr %4834, null
  br i1 %4835, label %4836, label %4889

4836:                                             ; preds = %4825
  br label %4837

4837:                                             ; preds = %4836
  br label %4838

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

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

4850:                                             ; preds = %4845
  %4851 = load i32, ptr %108, align 4, !tbaa !5
  %4852 = call ptr @__errno_location() #12
  store i32 %4851, ptr %4852, align 4, !tbaa !5
  %4853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4854 = load i32, ptr @test_count, align 4, !tbaa !5
  %4855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4856 = load i32, ptr %4855, align 4, !tbaa !5
  %4857 = call ptr @s2n_strerror(i32 noundef %4856, ptr noundef @.str.4)
  %4858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4859 = load i32, ptr %4858, align 4, !tbaa !5
  %4860 = call ptr @s2n_strerror_debug(i32 noundef %4859, ptr noundef @.str.4)
  %4861 = call ptr @__errno_location() #12
  %4862 = load i32, ptr %4861, align 4, !tbaa !5
  %4863 = call ptr @strerror(i32 noundef %4862) #11
  %4864 = call ptr @__errno_location() #12
  %4865 = load i32, ptr %4864, align 4, !tbaa !5
  %4866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4853, ptr noundef @.str.2, i32 noundef %4854, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 262, ptr noundef %4857, ptr noundef %4860, ptr noundef %4863, i32 noundef %4865) #11
  br label %4884

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

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

4885:                                             ; preds = %4884
  br label %4886

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

4887:                                             ; No predecessors!
  br label %4888

4888:                                             ; preds = %4887
  br label %4889

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

4890:                                             ; preds = %4889
  br label %4891

4891:                                             ; preds = %4890
  br label %4892

4892:                                             ; preds = %4891
  %4893 = load i32, ptr @test_count, align 4, !tbaa !5
  %4894 = add nsw i32 %4893, 1
  store i32 %4894, ptr @test_count, align 4, !tbaa !5
  %4895 = load ptr, ptr %96, align 8, !tbaa !9
  %4896 = getelementptr inbounds %struct.s2n_connection, ptr %4895, i32 0, i32 31
  %4897 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4896, i32 0, i32 5
  %4898 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %4897, i32 0, i32 2
  %4899 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4898, i32 0, i32 1
  %4900 = load ptr, ptr %4899, align 8, !tbaa !86
  %4901 = icmp eq ptr %4900, null
  br i1 %4901, label %4902, label %4955

4902:                                             ; preds = %4892
  br label %4903

4903:                                             ; preds = %4902
  br label %4904

4904:                                             ; preds = %4903
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  %4905 = call ptr @__errno_location() #12
  %4906 = load i32, ptr %4905, align 4, !tbaa !5
  store i32 %4906, ptr %109, align 4, !tbaa !5
  %4907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4908 = call i32 @s2n_print_stacktrace(ptr noundef %4907)
  %4909 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4910 = trunc i8 %4909 to i1
  br i1 %4910, label %4911, label %4933

4911:                                             ; preds = %4904
  %4912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4913 = call i32 @fileno(ptr noundef %4912) #11
  %4914 = call i32 @isatty(i32 noundef %4913) #11
  %4915 = icmp ne i32 %4914, 0
  br i1 %4915, label %4916, label %4933

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

4933:                                             ; preds = %4911, %4904
  %4934 = load i32, ptr %109, align 4, !tbaa !5
  %4935 = call ptr @__errno_location() #12
  store i32 %4934, ptr %4935, align 4, !tbaa !5
  %4936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4937 = load i32, ptr @test_count, align 4, !tbaa !5
  %4938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4939 = load i32, ptr %4938, align 4, !tbaa !5
  %4940 = call ptr @s2n_strerror(i32 noundef %4939, ptr noundef @.str.4)
  %4941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4942 = load i32, ptr %4941, align 4, !tbaa !5
  %4943 = call ptr @s2n_strerror_debug(i32 noundef %4942, ptr noundef @.str.4)
  %4944 = call ptr @__errno_location() #12
  %4945 = load i32, ptr %4944, align 4, !tbaa !5
  %4946 = call ptr @strerror(i32 noundef %4945) #11
  %4947 = call ptr @__errno_location() #12
  %4948 = load i32, ptr %4947, align 4, !tbaa !5
  %4949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4936, ptr noundef @.str.5, i32 noundef %4937, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 263, ptr noundef %4940, ptr noundef %4943, ptr noundef %4946, i32 noundef %4948) #11
  br label %4950

4950:                                             ; preds = %4933, %4916
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %4951

4951:                                             ; preds = %4950
  br label %4952

4952:                                             ; preds = %4951
  call void @exit(i32 noundef 1) #13
  unreachable

4953:                                             ; No predecessors!
  br label %4954

4954:                                             ; preds = %4953
  br label %4955

4955:                                             ; preds = %4954, %4892
  br label %4956

4956:                                             ; preds = %4955
  br label %4957

4957:                                             ; preds = %4956
  %4958 = load ptr, ptr %96, align 8, !tbaa !9
  %4959 = getelementptr inbounds %struct.s2n_connection, ptr %4958, i32 0, i32 52
  %4960 = getelementptr inbounds %struct.s2n_handshake, ptr %4959, i32 0, i32 6
  store i32 16, ptr %4960, align 4, !tbaa !87
  %4961 = load ptr, ptr %96, align 8, !tbaa !9
  %4962 = getelementptr inbounds %struct.s2n_connection, ptr %4961, i32 0, i32 52
  %4963 = getelementptr inbounds %struct.s2n_handshake, ptr %4962, i32 0, i32 7
  store i32 1, ptr %4963, align 8, !tbaa !88
  %4964 = load ptr, ptr %96, align 8, !tbaa !9
  %4965 = getelementptr inbounds %struct.s2n_connection, ptr %4964, i32 0, i32 25
  store i8 1, ptr %4965, align 2, !tbaa !89
  call void @llvm.lifetime.start.p0(i64 1, ptr %110) #11
  store i8 0, ptr %110, align 1, !tbaa !90
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #11
  %4966 = load ptr, ptr %101, align 8, !tbaa !9
  %4967 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %4966, i32 0, i32 2
  %4968 = load i8, ptr %4967, align 8, !tbaa !15
  %4969 = zext i8 %4968 to i32
  %4970 = sub nsw i32 %4969, 1
  store i32 %4970, ptr %111, align 4, !tbaa !5
  br label %4971

4971:                                             ; preds = %4988, %4957
  %4972 = load i32, ptr %111, align 4, !tbaa !5
  %4973 = icmp sgt i32 %4972, 0
  br i1 %4973, label %4975, label %4974

4974:                                             ; preds = %4971
  store i32 423, ptr %6, align 4
  br label %4991

4975:                                             ; preds = %4971
  %4976 = load ptr, ptr %101, align 8, !tbaa !9
  %4977 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %4976, i32 0, i32 3
  %4978 = load ptr, ptr %4977, align 8, !tbaa !17
  %4979 = load i32, ptr %111, align 4, !tbaa !5
  %4980 = sext i32 %4979 to i64
  %4981 = getelementptr inbounds ptr, ptr %4978, i64 %4980
  %4982 = load ptr, ptr %4981, align 8, !tbaa !9
  %4983 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %4982)
  br i1 %4983, label %4984, label %4987

4984:                                             ; preds = %4975
  %4985 = load i32, ptr %111, align 4, !tbaa !5
  %4986 = trunc i32 %4985 to i8
  store i8 %4986, ptr %110, align 1, !tbaa !90
  store i32 423, ptr %6, align 4
  br label %4991

4987:                                             ; preds = %4975
  br label %4988

4988:                                             ; preds = %4987
  %4989 = load i32, ptr %111, align 4, !tbaa !5
  %4990 = add nsw i32 %4989, -1
  store i32 %4990, ptr %111, align 4, !tbaa !5
  br label %4971, !llvm.loop !91

4991:                                             ; preds = %4984, %4974
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  br label %4992

4992:                                             ; preds = %4991
  br label %4993

4993:                                             ; preds = %4992
  %4994 = load i32, ptr @test_count, align 4, !tbaa !5
  %4995 = add nsw i32 %4994, 1
  store i32 %4995, ptr @test_count, align 4, !tbaa !5
  %4996 = load i8, ptr %110, align 1, !tbaa !90
  %4997 = zext i8 %4996 to i32
  %4998 = icmp eq i32 %4997, 0
  br i1 %4998, label %4999, label %5052

4999:                                             ; preds = %4993
  br label %5000

5000:                                             ; preds = %4999
  br label %5001

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

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

5013:                                             ; preds = %5008
  %5014 = load i32, ptr %112, align 4, !tbaa !5
  %5015 = call ptr @__errno_location() #12
  store i32 %5014, ptr %5015, align 4, !tbaa !5
  %5016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5017 = load i32, ptr @test_count, align 4, !tbaa !5
  %5018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5019 = load i32, ptr %5018, align 4, !tbaa !5
  %5020 = call ptr @s2n_strerror(i32 noundef %5019, ptr noundef @.str.4)
  %5021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5022 = load i32, ptr %5021, align 4, !tbaa !5
  %5023 = call ptr @s2n_strerror_debug(i32 noundef %5022, ptr noundef @.str.4)
  %5024 = call ptr @__errno_location() #12
  %5025 = load i32, ptr %5024, align 4, !tbaa !5
  %5026 = call ptr @strerror(i32 noundef %5025) #11
  %5027 = call ptr @__errno_location() #12
  %5028 = load i32, ptr %5027, align 4, !tbaa !5
  %5029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5016, ptr noundef @.str.2, i32 noundef %5017, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 277, ptr noundef %5020, ptr noundef %5023, ptr noundef %5026, i32 noundef %5028) #11
  br label %5047

5030:                                             ; preds = %5008, %5001
  %5031 = load i32, ptr %112, align 4, !tbaa !5
  %5032 = call ptr @__errno_location() #12
  store i32 %5031, ptr %5032, align 4, !tbaa !5
  %5033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5034 = load i32, ptr @test_count, align 4, !tbaa !5
  %5035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5036 = load i32, ptr %5035, align 4, !tbaa !5
  %5037 = call ptr @s2n_strerror(i32 noundef %5036, ptr noundef @.str.4)
  %5038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5039 = load i32, ptr %5038, align 4, !tbaa !5
  %5040 = call ptr @s2n_strerror_debug(i32 noundef %5039, ptr noundef @.str.4)
  %5041 = call ptr @__errno_location() #12
  %5042 = load i32, ptr %5041, align 4, !tbaa !5
  %5043 = call ptr @strerror(i32 noundef %5042) #11
  %5044 = call ptr @__errno_location() #12
  %5045 = load i32, ptr %5044, align 4, !tbaa !5
  %5046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5033, ptr noundef @.str.5, i32 noundef %5034, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 277, ptr noundef %5037, ptr noundef %5040, ptr noundef %5043, i32 noundef %5045) #11
  br label %5047

5047:                                             ; preds = %5030, %5013
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %5048

5048:                                             ; preds = %5047
  br label %5049

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

5050:                                             ; No predecessors!
  br label %5051

5051:                                             ; preds = %5050
  br label %5052

5052:                                             ; preds = %5051, %4993
  br label %5053

5053:                                             ; preds = %5052
  br label %5054

5054:                                             ; preds = %5053
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #11
  %5055 = load ptr, ptr %101, align 8, !tbaa !9
  %5056 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %5055, i32 0, i32 3
  %5057 = load ptr, ptr %5056, align 8, !tbaa !17
  %5058 = load i8, ptr %110, align 1, !tbaa !90
  %5059 = zext i8 %5058 to i64
  %5060 = getelementptr inbounds ptr, ptr %5057, i64 %5059
  %5061 = load ptr, ptr %5060, align 8, !tbaa !9
  store ptr %5061, ptr %113, align 8, !tbaa !9
  %5062 = load ptr, ptr %113, align 8, !tbaa !9
  %5063 = load ptr, ptr %96, align 8, !tbaa !9
  %5064 = getelementptr inbounds %struct.s2n_connection, ptr %5063, i32 0, i32 31
  %5065 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5064, i32 0, i32 4
  %5066 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %5065, i32 0, i32 0
  store ptr %5062, ptr %5066, align 8, !tbaa !92
  br label %5067

5067:                                             ; preds = %5054
  %5068 = load i32, ptr @test_count, align 4, !tbaa !5
  %5069 = add nsw i32 %5068, 1
  store i32 %5069, ptr @test_count, align 4, !tbaa !5
  %5070 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !55
  %5071 = load ptr, ptr %96, align 8, !tbaa !9
  %5072 = call i32 %5070(ptr noundef %5071, ptr noundef %104)
  %5073 = icmp eq i32 %5072, -1
  br i1 %5073, label %5074, label %5127

5074:                                             ; preds = %5067
  br label %5075

5075:                                             ; preds = %5074
  br label %5076

5076:                                             ; preds = %5075
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #11
  %5077 = call ptr @__errno_location() #12
  %5078 = load i32, ptr %5077, align 4, !tbaa !5
  store i32 %5078, ptr %114, align 4, !tbaa !5
  %5079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5080 = call i32 @s2n_print_stacktrace(ptr noundef %5079)
  %5081 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5082 = trunc i8 %5081 to i1
  br i1 %5082, label %5083, label %5105

5083:                                             ; preds = %5076
  %5084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5085 = call i32 @fileno(ptr noundef %5084) #11
  %5086 = call i32 @isatty(i32 noundef %5085) #11
  %5087 = icmp ne i32 %5086, 0
  br i1 %5087, label %5088, label %5105

5088:                                             ; preds = %5083
  %5089 = load i32, ptr %114, align 4, !tbaa !5
  %5090 = call ptr @__errno_location() #12
  store i32 %5089, ptr %5090, align 4, !tbaa !5
  %5091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5092 = load i32, ptr @test_count, align 4, !tbaa !5
  %5093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5094 = load i32, ptr %5093, align 4, !tbaa !5
  %5095 = call ptr @s2n_strerror(i32 noundef %5094, ptr noundef @.str.4)
  %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_debug(i32 noundef %5097, ptr noundef @.str.4)
  %5099 = call ptr @__errno_location() #12
  %5100 = load i32, ptr %5099, align 4, !tbaa !5
  %5101 = call ptr @strerror(i32 noundef %5100) #11
  %5102 = call ptr @__errno_location() #12
  %5103 = load i32, ptr %5102, align 4, !tbaa !5
  %5104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5091, ptr noundef @.str.2, i32 noundef %5092, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 281, ptr noundef %5095, ptr noundef %5098, ptr noundef %5101, i32 noundef %5103) #11
  br label %5122

5105:                                             ; preds = %5083, %5076
  %5106 = load i32, ptr %114, align 4, !tbaa !5
  %5107 = call ptr @__errno_location() #12
  store i32 %5106, ptr %5107, align 4, !tbaa !5
  %5108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5109 = load i32, ptr @test_count, align 4, !tbaa !5
  %5110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5111 = load i32, ptr %5110, align 4, !tbaa !5
  %5112 = call ptr @s2n_strerror(i32 noundef %5111, ptr noundef @.str.4)
  %5113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5114 = load i32, ptr %5113, align 4, !tbaa !5
  %5115 = call ptr @s2n_strerror_debug(i32 noundef %5114, ptr noundef @.str.4)
  %5116 = call ptr @__errno_location() #12
  %5117 = load i32, ptr %5116, align 4, !tbaa !5
  %5118 = call ptr @strerror(i32 noundef %5117) #11
  %5119 = call ptr @__errno_location() #12
  %5120 = load i32, ptr %5119, align 4, !tbaa !5
  %5121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5108, ptr noundef @.str.5, i32 noundef %5109, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 281, ptr noundef %5112, ptr noundef %5115, ptr noundef %5118, i32 noundef %5120) #11
  br label %5122

5122:                                             ; preds = %5105, %5088
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %5123

5123:                                             ; preds = %5122
  br label %5124

5124:                                             ; preds = %5123
  call void @exit(i32 noundef 1) #13
  unreachable

5125:                                             ; No predecessors!
  br label %5126

5126:                                             ; preds = %5125
  br label %5127

5127:                                             ; preds = %5126, %5067
  br label %5128

5128:                                             ; preds = %5127
  br label %5129

5129:                                             ; preds = %5128
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #11
  %5130 = load ptr, ptr %96, align 8, !tbaa !9
  %5131 = getelementptr inbounds %struct.s2n_connection, ptr %5130, i32 0, i32 31
  %5132 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5131, i32 0, i32 5
  store ptr %5132, ptr %115, align 8, !tbaa !9
  br label %5133

5133:                                             ; preds = %5129
  %5134 = load i32, ptr @test_count, align 4, !tbaa !5
  %5135 = add nsw i32 %5134, 1
  store i32 %5135, ptr @test_count, align 4, !tbaa !5
  %5136 = load ptr, ptr %115, align 8, !tbaa !9
  %5137 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %5136, i32 0, i32 0
  %5138 = load ptr, ptr %5137, align 8, !tbaa !68
  %5139 = load ptr, ptr %113, align 8, !tbaa !9
  %5140 = icmp eq ptr %5138, %5139
  br i1 %5140, label %5194, label %5141

5141:                                             ; preds = %5133
  br label %5142

5142:                                             ; preds = %5141
  br label %5143

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

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

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

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

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

5190:                                             ; preds = %5189
  br label %5191

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

5192:                                             ; No predecessors!
  br label %5193

5193:                                             ; preds = %5192
  br label %5194

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

5195:                                             ; preds = %5194
  br label %5196

5196:                                             ; preds = %5195
  br label %5197

5197:                                             ; preds = %5196
  %5198 = load i32, ptr @test_count, align 4, !tbaa !5
  %5199 = add nsw i32 %5198, 1
  store i32 %5199, ptr @test_count, align 4, !tbaa !5
  %5200 = load ptr, ptr %115, align 8, !tbaa !9
  %5201 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %5200, i32 0, i32 1
  %5202 = getelementptr inbounds %struct.s2n_kem_params, ptr %5201, i32 0, i32 0
  %5203 = load ptr, ptr %5202, align 8, !tbaa !69
  %5204 = load ptr, ptr %113, align 8, !tbaa !9
  %5205 = getelementptr inbounds %struct.s2n_kem_group, ptr %5204, i32 0, i32 3
  %5206 = load ptr, ptr %5205, align 8, !tbaa !70
  %5207 = icmp eq ptr %5203, %5206
  br i1 %5207, label %5261, label %5208

5208:                                             ; preds = %5197
  br label %5209

5209:                                             ; preds = %5208
  br label %5210

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

5217:                                             ; preds = %5210
  %5218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5219 = call i32 @fileno(ptr noundef %5218) #11
  %5220 = call i32 @isatty(i32 noundef %5219) #11
  %5221 = icmp ne i32 %5220, 0
  br i1 %5221, label %5222, label %5239

5222:                                             ; preds = %5217
  %5223 = load i32, ptr %117, align 4, !tbaa !5
  %5224 = call ptr @__errno_location() #12
  store i32 %5223, ptr %5224, align 4, !tbaa !5
  %5225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5226 = load i32, ptr @test_count, align 4, !tbaa !5
  %5227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5228 = load i32, ptr %5227, align 4, !tbaa !5
  %5229 = call ptr @s2n_strerror(i32 noundef %5228, ptr noundef @.str.4)
  %5230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5231 = load i32, ptr %5230, align 4, !tbaa !5
  %5232 = call ptr @s2n_strerror_debug(i32 noundef %5231, ptr noundef @.str.4)
  %5233 = call ptr @__errno_location() #12
  %5234 = load i32, ptr %5233, align 4, !tbaa !5
  %5235 = call ptr @strerror(i32 noundef %5234) #11
  %5236 = call ptr @__errno_location() #12
  %5237 = load i32, ptr %5236, align 4, !tbaa !5
  %5238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5225, ptr noundef @.str.2, i32 noundef %5226, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 286, ptr noundef %5229, ptr noundef %5232, ptr noundef %5235, i32 noundef %5237) #11
  br label %5256

5239:                                             ; preds = %5217, %5210
  %5240 = load i32, ptr %117, align 4, !tbaa !5
  %5241 = call ptr @__errno_location() #12
  store i32 %5240, ptr %5241, align 4, !tbaa !5
  %5242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5243 = load i32, ptr @test_count, align 4, !tbaa !5
  %5244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5245 = load i32, ptr %5244, align 4, !tbaa !5
  %5246 = call ptr @s2n_strerror(i32 noundef %5245, ptr noundef @.str.4)
  %5247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5248 = load i32, ptr %5247, align 4, !tbaa !5
  %5249 = call ptr @s2n_strerror_debug(i32 noundef %5248, ptr noundef @.str.4)
  %5250 = call ptr @__errno_location() #12
  %5251 = load i32, ptr %5250, align 4, !tbaa !5
  %5252 = call ptr @strerror(i32 noundef %5251) #11
  %5253 = call ptr @__errno_location() #12
  %5254 = load i32, ptr %5253, align 4, !tbaa !5
  %5255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5242, ptr noundef @.str.5, i32 noundef %5243, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 286, ptr noundef %5246, ptr noundef %5249, ptr noundef %5252, i32 noundef %5254) #11
  br label %5256

5256:                                             ; preds = %5239, %5222
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %5257

5257:                                             ; preds = %5256
  br label %5258

5258:                                             ; preds = %5257
  call void @exit(i32 noundef 1) #13
  unreachable

5259:                                             ; No predecessors!
  br label %5260

5260:                                             ; preds = %5259
  br label %5261

5261:                                             ; preds = %5260, %5197
  br label %5262

5262:                                             ; preds = %5261
  br label %5263

5263:                                             ; preds = %5262
  br label %5264

5264:                                             ; preds = %5263
  %5265 = load i32, ptr @test_count, align 4, !tbaa !5
  %5266 = add nsw i32 %5265, 1
  store i32 %5266, ptr @test_count, align 4, !tbaa !5
  %5267 = load ptr, ptr %115, align 8, !tbaa !9
  %5268 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %5267, i32 0, i32 1
  %5269 = getelementptr inbounds %struct.s2n_kem_params, ptr %5268, i32 0, i32 2
  %5270 = getelementptr inbounds %struct.s2n_blob, ptr %5269, i32 0, i32 0
  %5271 = load ptr, ptr %5270, align 8, !tbaa !72
  %5272 = icmp eq ptr %5271, null
  br i1 %5272, label %5273, label %5326

5273:                                             ; preds = %5264
  br label %5274

5274:                                             ; preds = %5273
  br label %5275

5275:                                             ; preds = %5274
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  %5276 = call ptr @__errno_location() #12
  %5277 = load i32, ptr %5276, align 4, !tbaa !5
  store i32 %5277, ptr %118, align 4, !tbaa !5
  %5278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5279 = call i32 @s2n_print_stacktrace(ptr noundef %5278)
  %5280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5281 = trunc i8 %5280 to i1
  br i1 %5281, label %5282, label %5304

5282:                                             ; preds = %5275
  %5283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5284 = call i32 @fileno(ptr noundef %5283) #11
  %5285 = call i32 @isatty(i32 noundef %5284) #11
  %5286 = icmp ne i32 %5285, 0
  br i1 %5286, label %5287, label %5304

5287:                                             ; preds = %5282
  %5288 = load i32, ptr %118, align 4, !tbaa !5
  %5289 = call ptr @__errno_location() #12
  store i32 %5288, ptr %5289, align 4, !tbaa !5
  %5290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5291 = load i32, ptr @test_count, align 4, !tbaa !5
  %5292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5293 = load i32, ptr %5292, align 4, !tbaa !5
  %5294 = call ptr @s2n_strerror(i32 noundef %5293, ptr noundef @.str.4)
  %5295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5296 = load i32, ptr %5295, align 4, !tbaa !5
  %5297 = call ptr @s2n_strerror_debug(i32 noundef %5296, ptr noundef @.str.4)
  %5298 = call ptr @__errno_location() #12
  %5299 = load i32, ptr %5298, align 4, !tbaa !5
  %5300 = call ptr @strerror(i32 noundef %5299) #11
  %5301 = call ptr @__errno_location() #12
  %5302 = load i32, ptr %5301, align 4, !tbaa !5
  %5303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5290, ptr noundef @.str.2, i32 noundef %5291, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 287, ptr noundef %5294, ptr noundef %5297, ptr noundef %5300, i32 noundef %5302) #11
  br label %5321

5304:                                             ; preds = %5282, %5275
  %5305 = load i32, ptr %118, align 4, !tbaa !5
  %5306 = call ptr @__errno_location() #12
  store i32 %5305, ptr %5306, align 4, !tbaa !5
  %5307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5308 = load i32, ptr @test_count, align 4, !tbaa !5
  %5309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5310 = load i32, ptr %5309, align 4, !tbaa !5
  %5311 = call ptr @s2n_strerror(i32 noundef %5310, ptr noundef @.str.4)
  %5312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5313 = load i32, ptr %5312, align 4, !tbaa !5
  %5314 = call ptr @s2n_strerror_debug(i32 noundef %5313, ptr noundef @.str.4)
  %5315 = call ptr @__errno_location() #12
  %5316 = load i32, ptr %5315, align 4, !tbaa !5
  %5317 = call ptr @strerror(i32 noundef %5316) #11
  %5318 = call ptr @__errno_location() #12
  %5319 = load i32, ptr %5318, align 4, !tbaa !5
  %5320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5307, ptr noundef @.str.5, i32 noundef %5308, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 287, ptr noundef %5311, ptr noundef %5314, ptr noundef %5317, i32 noundef %5319) #11
  br label %5321

5321:                                             ; preds = %5304, %5287
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %5322

5322:                                             ; preds = %5321
  br label %5323

5323:                                             ; preds = %5322
  call void @exit(i32 noundef 1) #13
  unreachable

5324:                                             ; No predecessors!
  br label %5325

5325:                                             ; preds = %5324
  br label %5326

5326:                                             ; preds = %5325, %5264
  br label %5327

5327:                                             ; preds = %5326
  br label %5328

5328:                                             ; preds = %5327
  br label %5329

5329:                                             ; preds = %5328
  %5330 = load i32, ptr @test_count, align 4, !tbaa !5
  %5331 = add nsw i32 %5330, 1
  store i32 %5331, ptr @test_count, align 4, !tbaa !5
  %5332 = load ptr, ptr %115, align 8, !tbaa !9
  %5333 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %5332, i32 0, i32 1
  %5334 = getelementptr inbounds %struct.s2n_kem_params, ptr %5333, i32 0, i32 2
  %5335 = getelementptr inbounds %struct.s2n_blob, ptr %5334, i32 0, i32 1
  %5336 = load i32, ptr %5335, align 8, !tbaa !73
  %5337 = load ptr, ptr %113, align 8, !tbaa !9
  %5338 = getelementptr inbounds %struct.s2n_kem_group, ptr %5337, i32 0, i32 3
  %5339 = load ptr, ptr %5338, align 8, !tbaa !70
  %5340 = getelementptr inbounds %struct.s2n_kem, ptr %5339, i32 0, i32 4
  %5341 = load i16, ptr %5340, align 8, !tbaa !74
  %5342 = zext i16 %5341 to i32
  %5343 = icmp eq i32 %5336, %5342
  br i1 %5343, label %5397, label %5344

5344:                                             ; preds = %5329
  br label %5345

5345:                                             ; preds = %5344
  br label %5346

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

5353:                                             ; preds = %5346
  %5354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5355 = call i32 @fileno(ptr noundef %5354) #11
  %5356 = call i32 @isatty(i32 noundef %5355) #11
  %5357 = icmp ne i32 %5356, 0
  br i1 %5357, label %5358, label %5375

5358:                                             ; preds = %5353
  %5359 = load i32, ptr %119, align 4, !tbaa !5
  %5360 = call ptr @__errno_location() #12
  store i32 %5359, ptr %5360, align 4, !tbaa !5
  %5361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5362 = load i32, ptr @test_count, align 4, !tbaa !5
  %5363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5364 = load i32, ptr %5363, align 4, !tbaa !5
  %5365 = call ptr @s2n_strerror(i32 noundef %5364, ptr noundef @.str.4)
  %5366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5367 = load i32, ptr %5366, align 4, !tbaa !5
  %5368 = call ptr @s2n_strerror_debug(i32 noundef %5367, ptr noundef @.str.4)
  %5369 = call ptr @__errno_location() #12
  %5370 = load i32, ptr %5369, align 4, !tbaa !5
  %5371 = call ptr @strerror(i32 noundef %5370) #11
  %5372 = call ptr @__errno_location() #12
  %5373 = load i32, ptr %5372, align 4, !tbaa !5
  %5374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5361, ptr noundef @.str.2, i32 noundef %5362, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 288, ptr noundef %5365, ptr noundef %5368, ptr noundef %5371, i32 noundef %5373) #11
  br label %5392

5375:                                             ; preds = %5353, %5346
  %5376 = load i32, ptr %119, align 4, !tbaa !5
  %5377 = call ptr @__errno_location() #12
  store i32 %5376, ptr %5377, align 4, !tbaa !5
  %5378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5379 = load i32, ptr @test_count, align 4, !tbaa !5
  %5380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5381 = load i32, ptr %5380, align 4, !tbaa !5
  %5382 = call ptr @s2n_strerror(i32 noundef %5381, ptr noundef @.str.4)
  %5383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5384 = load i32, ptr %5383, align 4, !tbaa !5
  %5385 = call ptr @s2n_strerror_debug(i32 noundef %5384, ptr noundef @.str.4)
  %5386 = call ptr @__errno_location() #12
  %5387 = load i32, ptr %5386, align 4, !tbaa !5
  %5388 = call ptr @strerror(i32 noundef %5387) #11
  %5389 = call ptr @__errno_location() #12
  %5390 = load i32, ptr %5389, align 4, !tbaa !5
  %5391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5378, ptr noundef @.str.5, i32 noundef %5379, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 288, ptr noundef %5382, ptr noundef %5385, ptr noundef %5388, i32 noundef %5390) #11
  br label %5392

5392:                                             ; preds = %5375, %5358
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %5393

5393:                                             ; preds = %5392
  br label %5394

5394:                                             ; preds = %5393
  call void @exit(i32 noundef 1) #13
  unreachable

5395:                                             ; No predecessors!
  br label %5396

5396:                                             ; preds = %5395
  br label %5397

5397:                                             ; preds = %5396, %5329
  br label %5398

5398:                                             ; preds = %5397
  br label %5399

5399:                                             ; preds = %5398
  br label %5400

5400:                                             ; preds = %5399
  %5401 = load i32, ptr @test_count, align 4, !tbaa !5
  %5402 = add nsw i32 %5401, 1
  store i32 %5402, ptr @test_count, align 4, !tbaa !5
  %5403 = load ptr, ptr %115, align 8, !tbaa !9
  %5404 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %5403, i32 0, i32 2
  %5405 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %5404, i32 0, i32 0
  %5406 = load ptr, ptr %5405, align 8, !tbaa !76
  %5407 = load ptr, ptr %113, align 8, !tbaa !9
  %5408 = getelementptr inbounds %struct.s2n_kem_group, ptr %5407, i32 0, i32 2
  %5409 = load ptr, ptr %5408, align 8, !tbaa !77
  %5410 = icmp eq ptr %5406, %5409
  br i1 %5410, label %5464, label %5411

5411:                                             ; preds = %5400
  br label %5412

5412:                                             ; preds = %5411
  br label %5413

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

5420:                                             ; preds = %5413
  %5421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5422 = call i32 @fileno(ptr noundef %5421) #11
  %5423 = call i32 @isatty(i32 noundef %5422) #11
  %5424 = icmp ne i32 %5423, 0
  br i1 %5424, label %5425, label %5442

5425:                                             ; preds = %5420
  %5426 = load i32, ptr %120, align 4, !tbaa !5
  %5427 = call ptr @__errno_location() #12
  store i32 %5426, ptr %5427, align 4, !tbaa !5
  %5428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5429 = load i32, ptr @test_count, align 4, !tbaa !5
  %5430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5431 = load i32, ptr %5430, align 4, !tbaa !5
  %5432 = call ptr @s2n_strerror(i32 noundef %5431, ptr noundef @.str.4)
  %5433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5434 = load i32, ptr %5433, align 4, !tbaa !5
  %5435 = call ptr @s2n_strerror_debug(i32 noundef %5434, ptr noundef @.str.4)
  %5436 = call ptr @__errno_location() #12
  %5437 = load i32, ptr %5436, align 4, !tbaa !5
  %5438 = call ptr @strerror(i32 noundef %5437) #11
  %5439 = call ptr @__errno_location() #12
  %5440 = load i32, ptr %5439, align 4, !tbaa !5
  %5441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5428, ptr noundef @.str.2, i32 noundef %5429, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 289, ptr noundef %5432, ptr noundef %5435, ptr noundef %5438, i32 noundef %5440) #11
  br label %5459

5442:                                             ; preds = %5420, %5413
  %5443 = load i32, ptr %120, align 4, !tbaa !5
  %5444 = call ptr @__errno_location() #12
  store i32 %5443, ptr %5444, align 4, !tbaa !5
  %5445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5446 = load i32, ptr @test_count, align 4, !tbaa !5
  %5447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5448 = load i32, ptr %5447, align 4, !tbaa !5
  %5449 = call ptr @s2n_strerror(i32 noundef %5448, ptr noundef @.str.4)
  %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_debug(i32 noundef %5451, ptr noundef @.str.4)
  %5453 = call ptr @__errno_location() #12
  %5454 = load i32, ptr %5453, align 4, !tbaa !5
  %5455 = call ptr @strerror(i32 noundef %5454) #11
  %5456 = call ptr @__errno_location() #12
  %5457 = load i32, ptr %5456, align 4, !tbaa !5
  %5458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5445, ptr noundef @.str.5, i32 noundef %5446, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 289, ptr noundef %5449, ptr noundef %5452, ptr noundef %5455, i32 noundef %5457) #11
  br label %5459

5459:                                             ; preds = %5442, %5425
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %5460

5460:                                             ; preds = %5459
  br label %5461

5461:                                             ; preds = %5460
  call void @exit(i32 noundef 1) #13
  unreachable

5462:                                             ; No predecessors!
  br label %5463

5463:                                             ; preds = %5462
  br label %5464

5464:                                             ; preds = %5463, %5400
  br label %5465

5465:                                             ; preds = %5464
  br label %5466

5466:                                             ; preds = %5465
  br label %5467

5467:                                             ; preds = %5466
  %5468 = load i32, ptr @test_count, align 4, !tbaa !5
  %5469 = add nsw i32 %5468, 1
  store i32 %5469, ptr @test_count, align 4, !tbaa !5
  %5470 = load ptr, ptr %115, align 8, !tbaa !9
  %5471 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %5470, i32 0, i32 2
  %5472 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %5471, i32 0, i32 1
  %5473 = load ptr, ptr %5472, align 8, !tbaa !78
  %5474 = icmp eq ptr %5473, null
  br i1 %5474, label %5475, label %5528

5475:                                             ; preds = %5467
  br label %5476

5476:                                             ; preds = %5475
  br label %5477

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

5484:                                             ; preds = %5477
  %5485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5486 = call i32 @fileno(ptr noundef %5485) #11
  %5487 = call i32 @isatty(i32 noundef %5486) #11
  %5488 = icmp ne i32 %5487, 0
  br i1 %5488, label %5489, label %5506

5489:                                             ; preds = %5484
  %5490 = load i32, ptr %121, align 4, !tbaa !5
  %5491 = call ptr @__errno_location() #12
  store i32 %5490, ptr %5491, align 4, !tbaa !5
  %5492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5493 = load i32, ptr @test_count, align 4, !tbaa !5
  %5494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5495 = load i32, ptr %5494, align 4, !tbaa !5
  %5496 = call ptr @s2n_strerror(i32 noundef %5495, ptr noundef @.str.4)
  %5497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5498 = load i32, ptr %5497, align 4, !tbaa !5
  %5499 = call ptr @s2n_strerror_debug(i32 noundef %5498, ptr noundef @.str.4)
  %5500 = call ptr @__errno_location() #12
  %5501 = load i32, ptr %5500, align 4, !tbaa !5
  %5502 = call ptr @strerror(i32 noundef %5501) #11
  %5503 = call ptr @__errno_location() #12
  %5504 = load i32, ptr %5503, align 4, !tbaa !5
  %5505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5492, ptr noundef @.str.2, i32 noundef %5493, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 290, ptr noundef %5496, ptr noundef %5499, ptr noundef %5502, i32 noundef %5504) #11
  br label %5523

5506:                                             ; preds = %5484, %5477
  %5507 = load i32, ptr %121, align 4, !tbaa !5
  %5508 = call ptr @__errno_location() #12
  store i32 %5507, ptr %5508, align 4, !tbaa !5
  %5509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5510 = load i32, ptr @test_count, align 4, !tbaa !5
  %5511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5512 = load i32, ptr %5511, align 4, !tbaa !5
  %5513 = call ptr @s2n_strerror(i32 noundef %5512, ptr noundef @.str.4)
  %5514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5515 = load i32, ptr %5514, align 4, !tbaa !5
  %5516 = call ptr @s2n_strerror_debug(i32 noundef %5515, ptr noundef @.str.4)
  %5517 = call ptr @__errno_location() #12
  %5518 = load i32, ptr %5517, align 4, !tbaa !5
  %5519 = call ptr @strerror(i32 noundef %5518) #11
  %5520 = call ptr @__errno_location() #12
  %5521 = load i32, ptr %5520, align 4, !tbaa !5
  %5522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5509, ptr noundef @.str.5, i32 noundef %5510, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 290, ptr noundef %5513, ptr noundef %5516, ptr noundef %5519, i32 noundef %5521) #11
  br label %5523

5523:                                             ; preds = %5506, %5489
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #11
  br label %5524

5524:                                             ; preds = %5523
  br label %5525

5525:                                             ; preds = %5524
  call void @exit(i32 noundef 1) #13
  unreachable

5526:                                             ; No predecessors!
  br label %5527

5527:                                             ; preds = %5526
  br label %5528

5528:                                             ; preds = %5527, %5467
  br label %5529

5529:                                             ; preds = %5528
  br label %5530

5530:                                             ; preds = %5529
  call void @llvm.lifetime.start.p0(i64 2, ptr %122) #11
  store i16 0, ptr %122, align 2, !tbaa !57
  br label %5531

5531:                                             ; preds = %5530
  %5532 = load i32, ptr @test_count, align 4, !tbaa !5
  %5533 = add nsw i32 %5532, 1
  store i32 %5533, ptr @test_count, align 4, !tbaa !5
  %5534 = call i32 @s2n_stuffer_read_uint16(ptr noundef %104, ptr noundef %122)
  %5535 = icmp eq i32 %5534, -1
  br i1 %5535, label %5536, label %5589

5536:                                             ; preds = %5531
  br label %5537

5537:                                             ; preds = %5536
  br label %5538

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

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

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

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

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

5585:                                             ; preds = %5584
  br label %5586

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

5587:                                             ; No predecessors!
  br label %5588

5588:                                             ; preds = %5587
  br label %5589

5589:                                             ; preds = %5588, %5531
  br label %5590

5590:                                             ; preds = %5589
  br label %5591

5591:                                             ; preds = %5590
  br label %5592

5592:                                             ; preds = %5591
  %5593 = load i32, ptr @test_count, align 4, !tbaa !5
  %5594 = add nsw i32 %5593, 1
  store i32 %5594, ptr @test_count, align 4, !tbaa !5
  %5595 = load i16, ptr %122, align 2, !tbaa !57
  %5596 = zext i16 %5595 to i32
  %5597 = getelementptr inbounds %struct.s2n_stuffer, ptr %104, i32 0, i32 2
  %5598 = load i32, ptr %5597, align 4, !tbaa !58
  %5599 = getelementptr inbounds %struct.s2n_stuffer, ptr %104, i32 0, i32 1
  %5600 = load i32, ptr %5599, align 8, !tbaa !59
  %5601 = sub i32 %5598, %5600
  %5602 = icmp eq i32 %5596, %5601
  br i1 %5602, label %5656, label %5603

5603:                                             ; preds = %5592
  br label %5604

5604:                                             ; preds = %5603
  br label %5605

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

5612:                                             ; preds = %5605
  %5613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5614 = call i32 @fileno(ptr noundef %5613) #11
  %5615 = call i32 @isatty(i32 noundef %5614) #11
  %5616 = icmp ne i32 %5615, 0
  br i1 %5616, label %5617, label %5634

5617:                                             ; preds = %5612
  %5618 = load i32, ptr %124, align 4, !tbaa !5
  %5619 = call ptr @__errno_location() #12
  store i32 %5618, ptr %5619, align 4, !tbaa !5
  %5620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5621 = load i32, ptr @test_count, align 4, !tbaa !5
  %5622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5623 = load i32, ptr %5622, align 4, !tbaa !5
  %5624 = call ptr @s2n_strerror(i32 noundef %5623, ptr noundef @.str.4)
  %5625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5626 = load i32, ptr %5625, align 4, !tbaa !5
  %5627 = call ptr @s2n_strerror_debug(i32 noundef %5626, ptr noundef @.str.4)
  %5628 = call ptr @__errno_location() #12
  %5629 = load i32, ptr %5628, align 4, !tbaa !5
  %5630 = call ptr @strerror(i32 noundef %5629) #11
  %5631 = call ptr @__errno_location() #12
  %5632 = load i32, ptr %5631, align 4, !tbaa !5
  %5633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5620, ptr noundef @.str.2, i32 noundef %5621, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 296, ptr noundef %5624, ptr noundef %5627, ptr noundef %5630, i32 noundef %5632) #11
  br label %5651

5634:                                             ; preds = %5612, %5605
  %5635 = load i32, ptr %124, align 4, !tbaa !5
  %5636 = call ptr @__errno_location() #12
  store i32 %5635, ptr %5636, align 4, !tbaa !5
  %5637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5638 = load i32, ptr @test_count, align 4, !tbaa !5
  %5639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5640 = load i32, ptr %5639, align 4, !tbaa !5
  %5641 = call ptr @s2n_strerror(i32 noundef %5640, ptr noundef @.str.4)
  %5642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5643 = load i32, ptr %5642, align 4, !tbaa !5
  %5644 = call ptr @s2n_strerror_debug(i32 noundef %5643, ptr noundef @.str.4)
  %5645 = call ptr @__errno_location() #12
  %5646 = load i32, ptr %5645, align 4, !tbaa !5
  %5647 = call ptr @strerror(i32 noundef %5646) #11
  %5648 = call ptr @__errno_location() #12
  %5649 = load i32, ptr %5648, align 4, !tbaa !5
  %5650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5637, ptr noundef @.str.5, i32 noundef %5638, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 296, ptr noundef %5641, ptr noundef %5644, ptr noundef %5647, i32 noundef %5649) #11
  br label %5651

5651:                                             ; preds = %5634, %5617
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #11
  br label %5652

5652:                                             ; preds = %5651
  br label %5653

5653:                                             ; preds = %5652
  call void @exit(i32 noundef 1) #13
  unreachable

5654:                                             ; No predecessors!
  br label %5655

5655:                                             ; preds = %5654
  br label %5656

5656:                                             ; preds = %5655, %5592
  br label %5657

5657:                                             ; preds = %5656
  br label %5658

5658:                                             ; preds = %5657
  call void @llvm.lifetime.start.p0(i64 2, ptr %125) #11
  store i16 0, ptr %125, align 2, !tbaa !57
  br label %5659

5659:                                             ; preds = %5658
  %5660 = load i32, ptr @test_count, align 4, !tbaa !5
  %5661 = add nsw i32 %5660, 1
  store i32 %5661, ptr @test_count, align 4, !tbaa !5
  %5662 = call i32 @s2n_stuffer_read_uint16(ptr noundef %104, ptr noundef %125)
  %5663 = icmp eq i32 %5662, -1
  br i1 %5663, label %5664, label %5717

5664:                                             ; preds = %5659
  br label %5665

5665:                                             ; preds = %5664
  br label %5666

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

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

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

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

5712:                                             ; preds = %5695, %5678
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %5713

5713:                                             ; preds = %5712
  br label %5714

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

5715:                                             ; No predecessors!
  br label %5716

5716:                                             ; preds = %5715
  br label %5717

5717:                                             ; preds = %5716, %5659
  br label %5718

5718:                                             ; preds = %5717
  br label %5719

5719:                                             ; preds = %5718
  br label %5720

5720:                                             ; preds = %5719
  %5721 = load i32, ptr @test_count, align 4, !tbaa !5
  %5722 = add nsw i32 %5721, 1
  store i32 %5722, ptr @test_count, align 4, !tbaa !5
  %5723 = load i16, ptr %125, align 2, !tbaa !57
  %5724 = zext i16 %5723 to i32
  %5725 = load ptr, ptr %101, align 8, !tbaa !9
  %5726 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %5725, i32 0, i32 3
  %5727 = load ptr, ptr %5726, align 8, !tbaa !17
  %5728 = load i8, ptr %110, align 1, !tbaa !90
  %5729 = zext i8 %5728 to i64
  %5730 = getelementptr inbounds ptr, ptr %5727, i64 %5729
  %5731 = load ptr, ptr %5730, align 8, !tbaa !9
  %5732 = getelementptr inbounds %struct.s2n_kem_group, ptr %5731, i32 0, i32 1
  %5733 = load i16, ptr %5732, align 8, !tbaa !81
  %5734 = zext i16 %5733 to i32
  %5735 = icmp eq i32 %5724, %5734
  br i1 %5735, label %5789, label %5736

5736:                                             ; preds = %5720
  br label %5737

5737:                                             ; preds = %5736
  br label %5738

5738:                                             ; preds = %5737
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #11
  %5739 = call ptr @__errno_location() #12
  %5740 = load i32, ptr %5739, align 4, !tbaa !5
  store i32 %5740, ptr %127, align 4, !tbaa !5
  %5741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5742 = call i32 @s2n_print_stacktrace(ptr noundef %5741)
  %5743 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5744 = trunc i8 %5743 to i1
  br i1 %5744, label %5745, label %5767

5745:                                             ; preds = %5738
  %5746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5747 = call i32 @fileno(ptr noundef %5746) #11
  %5748 = call i32 @isatty(i32 noundef %5747) #11
  %5749 = icmp ne i32 %5748, 0
  br i1 %5749, label %5750, label %5767

5750:                                             ; preds = %5745
  %5751 = load i32, ptr %127, align 4, !tbaa !5
  %5752 = call ptr @__errno_location() #12
  store i32 %5751, ptr %5752, align 4, !tbaa !5
  %5753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5754 = load i32, ptr @test_count, align 4, !tbaa !5
  %5755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5756 = load i32, ptr %5755, align 4, !tbaa !5
  %5757 = call ptr @s2n_strerror(i32 noundef %5756, ptr noundef @.str.4)
  %5758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5759 = load i32, ptr %5758, align 4, !tbaa !5
  %5760 = call ptr @s2n_strerror_debug(i32 noundef %5759, ptr noundef @.str.4)
  %5761 = call ptr @__errno_location() #12
  %5762 = load i32, ptr %5761, align 4, !tbaa !5
  %5763 = call ptr @strerror(i32 noundef %5762) #11
  %5764 = call ptr @__errno_location() #12
  %5765 = load i32, ptr %5764, align 4, !tbaa !5
  %5766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5753, ptr noundef @.str.2, i32 noundef %5754, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 302, ptr noundef %5757, ptr noundef %5760, ptr noundef %5763, i32 noundef %5765) #11
  br label %5784

5767:                                             ; preds = %5745, %5738
  %5768 = load i32, ptr %127, align 4, !tbaa !5
  %5769 = call ptr @__errno_location() #12
  store i32 %5768, ptr %5769, align 4, !tbaa !5
  %5770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5771 = load i32, ptr @test_count, align 4, !tbaa !5
  %5772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5773 = load i32, ptr %5772, align 4, !tbaa !5
  %5774 = call ptr @s2n_strerror(i32 noundef %5773, ptr noundef @.str.4)
  %5775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5776 = load i32, ptr %5775, align 4, !tbaa !5
  %5777 = call ptr @s2n_strerror_debug(i32 noundef %5776, ptr noundef @.str.4)
  %5778 = call ptr @__errno_location() #12
  %5779 = load i32, ptr %5778, align 4, !tbaa !5
  %5780 = call ptr @strerror(i32 noundef %5779) #11
  %5781 = call ptr @__errno_location() #12
  %5782 = load i32, ptr %5781, align 4, !tbaa !5
  %5783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5770, ptr noundef @.str.5, i32 noundef %5771, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 302, ptr noundef %5774, ptr noundef %5777, ptr noundef %5780, i32 noundef %5782) #11
  br label %5784

5784:                                             ; preds = %5767, %5750
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %5785

5785:                                             ; preds = %5784
  br label %5786

5786:                                             ; preds = %5785
  call void @exit(i32 noundef 1) #13
  unreachable

5787:                                             ; No predecessors!
  br label %5788

5788:                                             ; preds = %5787
  br label %5789

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

5790:                                             ; preds = %5789
  br label %5791

5791:                                             ; preds = %5790
  call void @llvm.lifetime.start.p0(i64 2, ptr %128) #11
  store i16 0, ptr %128, align 2, !tbaa !57
  %5792 = load i32, ptr %5, align 4, !tbaa !5
  %5793 = icmp ne i32 %5792, 0
  br i1 %5793, label %5794, label %5811

5794:                                             ; preds = %5791
  %5795 = load ptr, ptr %113, align 8, !tbaa !9
  %5796 = getelementptr inbounds %struct.s2n_kem_group, ptr %5795, i32 0, i32 2
  %5797 = load ptr, ptr %5796, align 8, !tbaa !77
  %5798 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %5797, i32 0, i32 3
  %5799 = load i8, ptr %5798, align 8, !tbaa !64
  %5800 = zext i8 %5799 to i32
  %5801 = add nsw i32 2, %5800
  %5802 = add nsw i32 %5801, 2
  %5803 = load ptr, ptr %113, align 8, !tbaa !9
  %5804 = getelementptr inbounds %struct.s2n_kem_group, ptr %5803, i32 0, i32 3
  %5805 = load ptr, ptr %5804, align 8, !tbaa !70
  %5806 = getelementptr inbounds %struct.s2n_kem, ptr %5805, i32 0, i32 3
  %5807 = load i16, ptr %5806, align 2, !tbaa !82
  %5808 = zext i16 %5807 to i32
  %5809 = add nsw i32 %5802, %5808
  %5810 = trunc i32 %5809 to i16
  store i16 %5810, ptr %128, align 2, !tbaa !57
  br label %5826

5811:                                             ; preds = %5791
  %5812 = load ptr, ptr %113, align 8, !tbaa !9
  %5813 = getelementptr inbounds %struct.s2n_kem_group, ptr %5812, i32 0, i32 2
  %5814 = load ptr, ptr %5813, align 8, !tbaa !77
  %5815 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %5814, i32 0, i32 3
  %5816 = load i8, ptr %5815, align 8, !tbaa !64
  %5817 = zext i8 %5816 to i32
  %5818 = load ptr, ptr %113, align 8, !tbaa !9
  %5819 = getelementptr inbounds %struct.s2n_kem_group, ptr %5818, i32 0, i32 3
  %5820 = load ptr, ptr %5819, align 8, !tbaa !70
  %5821 = getelementptr inbounds %struct.s2n_kem, ptr %5820, i32 0, i32 3
  %5822 = load i16, ptr %5821, align 2, !tbaa !82
  %5823 = zext i16 %5822 to i32
  %5824 = add nsw i32 %5817, %5823
  %5825 = trunc i32 %5824 to i16
  store i16 %5825, ptr %128, align 2, !tbaa !57
  br label %5826

5826:                                             ; preds = %5811, %5794
  call void @llvm.lifetime.start.p0(i64 2, ptr %129) #11
  store i16 0, ptr %129, align 2, !tbaa !57
  br label %5827

5827:                                             ; preds = %5826
  %5828 = load i32, ptr @test_count, align 4, !tbaa !5
  %5829 = add nsw i32 %5828, 1
  store i32 %5829, ptr @test_count, align 4, !tbaa !5
  %5830 = call i32 @s2n_stuffer_read_uint16(ptr noundef %104, ptr noundef %129)
  %5831 = icmp eq i32 %5830, -1
  br i1 %5831, label %5832, label %5885

5832:                                             ; preds = %5827
  br label %5833

5833:                                             ; preds = %5832
  br label %5834

5834:                                             ; preds = %5833
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #11
  %5835 = call ptr @__errno_location() #12
  %5836 = load i32, ptr %5835, align 4, !tbaa !5
  store i32 %5836, ptr %130, align 4, !tbaa !5
  %5837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5838 = call i32 @s2n_print_stacktrace(ptr noundef %5837)
  %5839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5840 = trunc i8 %5839 to i1
  br i1 %5840, label %5841, label %5863

5841:                                             ; preds = %5834
  %5842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5843 = call i32 @fileno(ptr noundef %5842) #11
  %5844 = call i32 @isatty(i32 noundef %5843) #11
  %5845 = icmp ne i32 %5844, 0
  br i1 %5845, label %5846, label %5863

5846:                                             ; preds = %5841
  %5847 = load i32, ptr %130, align 4, !tbaa !5
  %5848 = call ptr @__errno_location() #12
  store i32 %5847, ptr %5848, align 4, !tbaa !5
  %5849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5850 = load i32, ptr @test_count, align 4, !tbaa !5
  %5851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5852 = load i32, ptr %5851, align 4, !tbaa !5
  %5853 = call ptr @s2n_strerror(i32 noundef %5852, ptr noundef @.str.4)
  %5854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5855 = load i32, ptr %5854, align 4, !tbaa !5
  %5856 = call ptr @s2n_strerror_debug(i32 noundef %5855, ptr noundef @.str.4)
  %5857 = call ptr @__errno_location() #12
  %5858 = load i32, ptr %5857, align 4, !tbaa !5
  %5859 = call ptr @strerror(i32 noundef %5858) #11
  %5860 = call ptr @__errno_location() #12
  %5861 = load i32, ptr %5860, align 4, !tbaa !5
  %5862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5849, ptr noundef @.str.2, i32 noundef %5850, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 316, ptr noundef %5853, ptr noundef %5856, ptr noundef %5859, i32 noundef %5861) #11
  br label %5880

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

5880:                                             ; preds = %5863, %5846
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %5881

5881:                                             ; preds = %5880
  br label %5882

5882:                                             ; preds = %5881
  call void @exit(i32 noundef 1) #13
  unreachable

5883:                                             ; No predecessors!
  br label %5884

5884:                                             ; preds = %5883
  br label %5885

5885:                                             ; preds = %5884, %5827
  br label %5886

5886:                                             ; preds = %5885
  br label %5887

5887:                                             ; preds = %5886
  br label %5888

5888:                                             ; preds = %5887
  %5889 = load i32, ptr @test_count, align 4, !tbaa !5
  %5890 = add nsw i32 %5889, 1
  store i32 %5890, ptr @test_count, align 4, !tbaa !5
  %5891 = load i16, ptr %129, align 2, !tbaa !57
  %5892 = zext i16 %5891 to i32
  %5893 = load i16, ptr %128, align 2, !tbaa !57
  %5894 = zext i16 %5893 to i32
  %5895 = icmp eq i32 %5892, %5894
  br i1 %5895, label %5949, label %5896

5896:                                             ; preds = %5888
  br label %5897

5897:                                             ; preds = %5896
  br label %5898

5898:                                             ; preds = %5897
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #11
  %5899 = call ptr @__errno_location() #12
  %5900 = load i32, ptr %5899, align 4, !tbaa !5
  store i32 %5900, ptr %131, align 4, !tbaa !5
  %5901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5902 = call i32 @s2n_print_stacktrace(ptr noundef %5901)
  %5903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5904 = trunc i8 %5903 to i1
  br i1 %5904, label %5905, label %5927

5905:                                             ; preds = %5898
  %5906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5907 = call i32 @fileno(ptr noundef %5906) #11
  %5908 = call i32 @isatty(i32 noundef %5907) #11
  %5909 = icmp ne i32 %5908, 0
  br i1 %5909, label %5910, label %5927

5910:                                             ; preds = %5905
  %5911 = load i32, ptr %131, align 4, !tbaa !5
  %5912 = call ptr @__errno_location() #12
  store i32 %5911, ptr %5912, align 4, !tbaa !5
  %5913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5914 = load i32, ptr @test_count, align 4, !tbaa !5
  %5915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5916 = load i32, ptr %5915, align 4, !tbaa !5
  %5917 = call ptr @s2n_strerror(i32 noundef %5916, ptr noundef @.str.4)
  %5918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5919 = load i32, ptr %5918, align 4, !tbaa !5
  %5920 = call ptr @s2n_strerror_debug(i32 noundef %5919, ptr noundef @.str.4)
  %5921 = call ptr @__errno_location() #12
  %5922 = load i32, ptr %5921, align 4, !tbaa !5
  %5923 = call ptr @strerror(i32 noundef %5922) #11
  %5924 = call ptr @__errno_location() #12
  %5925 = load i32, ptr %5924, align 4, !tbaa !5
  %5926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5913, ptr noundef @.str.2, i32 noundef %5914, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 317, ptr noundef %5917, ptr noundef %5920, ptr noundef %5923, i32 noundef %5925) #11
  br label %5944

5927:                                             ; preds = %5905, %5898
  %5928 = load i32, ptr %131, align 4, !tbaa !5
  %5929 = call ptr @__errno_location() #12
  store i32 %5928, ptr %5929, align 4, !tbaa !5
  %5930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5931 = load i32, ptr @test_count, align 4, !tbaa !5
  %5932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5933 = load i32, ptr %5932, align 4, !tbaa !5
  %5934 = call ptr @s2n_strerror(i32 noundef %5933, ptr noundef @.str.4)
  %5935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5936 = load i32, ptr %5935, align 4, !tbaa !5
  %5937 = call ptr @s2n_strerror_debug(i32 noundef %5936, ptr noundef @.str.4)
  %5938 = call ptr @__errno_location() #12
  %5939 = load i32, ptr %5938, align 4, !tbaa !5
  %5940 = call ptr @strerror(i32 noundef %5939) #11
  %5941 = call ptr @__errno_location() #12
  %5942 = load i32, ptr %5941, align 4, !tbaa !5
  %5943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5930, ptr noundef @.str.5, i32 noundef %5931, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 317, ptr noundef %5934, ptr noundef %5937, ptr noundef %5940, i32 noundef %5942) #11
  br label %5944

5944:                                             ; preds = %5927, %5910
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %5945

5945:                                             ; preds = %5944
  br label %5946

5946:                                             ; preds = %5945
  call void @exit(i32 noundef 1) #13
  unreachable

5947:                                             ; No predecessors!
  br label %5948

5948:                                             ; preds = %5947
  br label %5949

5949:                                             ; preds = %5948, %5888
  br label %5950

5950:                                             ; preds = %5949
  br label %5951

5951:                                             ; preds = %5950
  call void @llvm.lifetime.start.p0(i64 2, ptr %132) #11
  %5952 = load ptr, ptr %113, align 8, !tbaa !9
  %5953 = getelementptr inbounds %struct.s2n_kem_group, ptr %5952, i32 0, i32 2
  %5954 = load ptr, ptr %5953, align 8, !tbaa !77
  %5955 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %5954, i32 0, i32 3
  %5956 = load i8, ptr %5955, align 8, !tbaa !64
  %5957 = zext i8 %5956 to i16
  store i16 %5957, ptr %132, align 2, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 2, ptr %133) #11
  %5958 = load ptr, ptr %113, align 8, !tbaa !9
  %5959 = getelementptr inbounds %struct.s2n_kem_group, ptr %5958, i32 0, i32 3
  %5960 = load ptr, ptr %5959, align 8, !tbaa !70
  %5961 = getelementptr inbounds %struct.s2n_kem, ptr %5960, i32 0, i32 3
  %5962 = load i16, ptr %5961, align 2, !tbaa !82
  store i16 %5962, ptr %133, align 2, !tbaa !57
  %5963 = load ptr, ptr %113, align 8, !tbaa !9
  %5964 = getelementptr inbounds %struct.s2n_kem_group, ptr %5963, i32 0, i32 4
  %5965 = load i8, ptr %5964, align 8, !tbaa !83, !range !13, !noundef !14
  %5966 = trunc i8 %5965 to i1
  br i1 %5966, label %5967, label %5979

5967:                                             ; preds = %5951
  %5968 = load ptr, ptr %113, align 8, !tbaa !9
  %5969 = getelementptr inbounds %struct.s2n_kem_group, ptr %5968, i32 0, i32 3
  %5970 = load ptr, ptr %5969, align 8, !tbaa !70
  %5971 = getelementptr inbounds %struct.s2n_kem, ptr %5970, i32 0, i32 3
  %5972 = load i16, ptr %5971, align 2, !tbaa !82
  store i16 %5972, ptr %132, align 2, !tbaa !57
  %5973 = load ptr, ptr %113, align 8, !tbaa !9
  %5974 = getelementptr inbounds %struct.s2n_kem_group, ptr %5973, i32 0, i32 2
  %5975 = load ptr, ptr %5974, align 8, !tbaa !77
  %5976 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %5975, i32 0, i32 3
  %5977 = load i8, ptr %5976, align 8, !tbaa !64
  %5978 = zext i8 %5977 to i16
  store i16 %5978, ptr %133, align 2, !tbaa !57
  br label %5979

5979:                                             ; preds = %5967, %5951
  %5980 = load i32, ptr %5, align 4, !tbaa !5
  %5981 = icmp ne i32 %5980, 0
  br i1 %5981, label %5982, label %6108

5982:                                             ; preds = %5979
  call void @llvm.lifetime.start.p0(i64 2, ptr %134) #11
  store i16 0, ptr %134, align 2, !tbaa !57
  br label %5983

5983:                                             ; preds = %5982
  %5984 = load i32, ptr @test_count, align 4, !tbaa !5
  %5985 = add nsw i32 %5984, 1
  store i32 %5985, ptr @test_count, align 4, !tbaa !5
  %5986 = call i32 @s2n_stuffer_read_uint16(ptr noundef %104, ptr noundef %134)
  %5987 = icmp eq i32 %5986, -1
  br i1 %5987, label %5988, label %6041

5988:                                             ; preds = %5983
  br label %5989

5989:                                             ; preds = %5988
  br label %5990

5990:                                             ; preds = %5989
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #11
  %5991 = call ptr @__errno_location() #12
  %5992 = load i32, ptr %5991, align 4, !tbaa !5
  store i32 %5992, ptr %135, align 4, !tbaa !5
  %5993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5994 = call i32 @s2n_print_stacktrace(ptr noundef %5993)
  %5995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5996 = trunc i8 %5995 to i1
  br i1 %5996, label %5997, label %6019

5997:                                             ; preds = %5990
  %5998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5999 = call i32 @fileno(ptr noundef %5998) #11
  %6000 = call i32 @isatty(i32 noundef %5999) #11
  %6001 = icmp ne i32 %6000, 0
  br i1 %6001, label %6002, label %6019

6002:                                             ; preds = %5997
  %6003 = load i32, ptr %135, align 4, !tbaa !5
  %6004 = call ptr @__errno_location() #12
  store i32 %6003, ptr %6004, align 4, !tbaa !5
  %6005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6006 = load i32, ptr @test_count, align 4, !tbaa !5
  %6007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6008 = load i32, ptr %6007, align 4, !tbaa !5
  %6009 = call ptr @s2n_strerror(i32 noundef %6008, ptr noundef @.str.4)
  %6010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6011 = load i32, ptr %6010, align 4, !tbaa !5
  %6012 = call ptr @s2n_strerror_debug(i32 noundef %6011, ptr noundef @.str.4)
  %6013 = call ptr @__errno_location() #12
  %6014 = load i32, ptr %6013, align 4, !tbaa !5
  %6015 = call ptr @strerror(i32 noundef %6014) #11
  %6016 = call ptr @__errno_location() #12
  %6017 = load i32, ptr %6016, align 4, !tbaa !5
  %6018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6005, ptr noundef @.str.2, i32 noundef %6006, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 329, ptr noundef %6009, ptr noundef %6012, ptr noundef %6015, i32 noundef %6017) #11
  br label %6036

6019:                                             ; preds = %5997, %5990
  %6020 = load i32, ptr %135, align 4, !tbaa !5
  %6021 = call ptr @__errno_location() #12
  store i32 %6020, ptr %6021, align 4, !tbaa !5
  %6022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6023 = load i32, ptr @test_count, align 4, !tbaa !5
  %6024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6025 = load i32, ptr %6024, align 4, !tbaa !5
  %6026 = call ptr @s2n_strerror(i32 noundef %6025, ptr noundef @.str.4)
  %6027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6028 = load i32, ptr %6027, align 4, !tbaa !5
  %6029 = call ptr @s2n_strerror_debug(i32 noundef %6028, ptr noundef @.str.4)
  %6030 = call ptr @__errno_location() #12
  %6031 = load i32, ptr %6030, align 4, !tbaa !5
  %6032 = call ptr @strerror(i32 noundef %6031) #11
  %6033 = call ptr @__errno_location() #12
  %6034 = load i32, ptr %6033, align 4, !tbaa !5
  %6035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6022, ptr noundef @.str.5, i32 noundef %6023, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 329, ptr noundef %6026, ptr noundef %6029, ptr noundef %6032, i32 noundef %6034) #11
  br label %6036

6036:                                             ; preds = %6019, %6002
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %6037

6037:                                             ; preds = %6036
  br label %6038

6038:                                             ; preds = %6037
  call void @exit(i32 noundef 1) #13
  unreachable

6039:                                             ; No predecessors!
  br label %6040

6040:                                             ; preds = %6039
  br label %6041

6041:                                             ; preds = %6040, %5983
  br label %6042

6042:                                             ; preds = %6041
  br label %6043

6043:                                             ; preds = %6042
  br label %6044

6044:                                             ; preds = %6043
  %6045 = load i32, ptr @test_count, align 4, !tbaa !5
  %6046 = add nsw i32 %6045, 1
  store i32 %6046, ptr @test_count, align 4, !tbaa !5
  %6047 = load i16, ptr %134, align 2, !tbaa !57
  %6048 = zext i16 %6047 to i32
  %6049 = load i16, ptr %132, align 2, !tbaa !57
  %6050 = zext i16 %6049 to i32
  %6051 = icmp eq i32 %6048, %6050
  br i1 %6051, label %6105, label %6052

6052:                                             ; preds = %6044
  br label %6053

6053:                                             ; preds = %6052
  br label %6054

6054:                                             ; preds = %6053
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #11
  %6055 = call ptr @__errno_location() #12
  %6056 = load i32, ptr %6055, align 4, !tbaa !5
  store i32 %6056, ptr %136, align 4, !tbaa !5
  %6057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6058 = call i32 @s2n_print_stacktrace(ptr noundef %6057)
  %6059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6060 = trunc i8 %6059 to i1
  br i1 %6060, label %6061, label %6083

6061:                                             ; preds = %6054
  %6062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6063 = call i32 @fileno(ptr noundef %6062) #11
  %6064 = call i32 @isatty(i32 noundef %6063) #11
  %6065 = icmp ne i32 %6064, 0
  br i1 %6065, label %6066, label %6083

6066:                                             ; preds = %6061
  %6067 = load i32, ptr %136, align 4, !tbaa !5
  %6068 = call ptr @__errno_location() #12
  store i32 %6067, ptr %6068, align 4, !tbaa !5
  %6069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6070 = load i32, ptr @test_count, align 4, !tbaa !5
  %6071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6072 = load i32, ptr %6071, align 4, !tbaa !5
  %6073 = call ptr @s2n_strerror(i32 noundef %6072, ptr noundef @.str.4)
  %6074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6075 = load i32, ptr %6074, align 4, !tbaa !5
  %6076 = call ptr @s2n_strerror_debug(i32 noundef %6075, ptr noundef @.str.4)
  %6077 = call ptr @__errno_location() #12
  %6078 = load i32, ptr %6077, align 4, !tbaa !5
  %6079 = call ptr @strerror(i32 noundef %6078) #11
  %6080 = call ptr @__errno_location() #12
  %6081 = load i32, ptr %6080, align 4, !tbaa !5
  %6082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6069, ptr noundef @.str.2, i32 noundef %6070, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 330, ptr noundef %6073, ptr noundef %6076, ptr noundef %6079, i32 noundef %6081) #11
  br label %6100

6083:                                             ; preds = %6061, %6054
  %6084 = load i32, ptr %136, align 4, !tbaa !5
  %6085 = call ptr @__errno_location() #12
  store i32 %6084, ptr %6085, align 4, !tbaa !5
  %6086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6087 = load i32, ptr @test_count, align 4, !tbaa !5
  %6088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6089 = load i32, ptr %6088, align 4, !tbaa !5
  %6090 = call ptr @s2n_strerror(i32 noundef %6089, ptr noundef @.str.4)
  %6091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6092 = load i32, ptr %6091, align 4, !tbaa !5
  %6093 = call ptr @s2n_strerror_debug(i32 noundef %6092, ptr noundef @.str.4)
  %6094 = call ptr @__errno_location() #12
  %6095 = load i32, ptr %6094, align 4, !tbaa !5
  %6096 = call ptr @strerror(i32 noundef %6095) #11
  %6097 = call ptr @__errno_location() #12
  %6098 = load i32, ptr %6097, align 4, !tbaa !5
  %6099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6086, ptr noundef @.str.5, i32 noundef %6087, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 330, ptr noundef %6090, ptr noundef %6093, ptr noundef %6096, i32 noundef %6098) #11
  br label %6100

6100:                                             ; preds = %6083, %6066
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #11
  br label %6101

6101:                                             ; preds = %6100
  br label %6102

6102:                                             ; preds = %6101
  call void @exit(i32 noundef 1) #13
  unreachable

6103:                                             ; No predecessors!
  br label %6104

6104:                                             ; preds = %6103
  br label %6105

6105:                                             ; preds = %6104, %6044
  br label %6106

6106:                                             ; preds = %6105
  br label %6107

6107:                                             ; preds = %6106
  call void @llvm.lifetime.end.p0(i64 2, ptr %134) #11
  br label %6108

6108:                                             ; preds = %6107, %5979
  br label %6109

6109:                                             ; preds = %6108
  %6110 = load i32, ptr @test_count, align 4, !tbaa !5
  %6111 = add nsw i32 %6110, 1
  store i32 %6111, ptr @test_count, align 4, !tbaa !5
  %6112 = load i16, ptr %132, align 2, !tbaa !57
  %6113 = zext i16 %6112 to i32
  %6114 = call i32 @s2n_stuffer_skip_read(ptr noundef %104, i32 noundef %6113)
  %6115 = icmp eq i32 %6114, -1
  br i1 %6115, label %6116, label %6169

6116:                                             ; preds = %6109
  br label %6117

6117:                                             ; preds = %6116
  br label %6118

6118:                                             ; preds = %6117
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #11
  %6119 = call ptr @__errno_location() #12
  %6120 = load i32, ptr %6119, align 4, !tbaa !5
  store i32 %6120, ptr %137, align 4, !tbaa !5
  %6121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6122 = call i32 @s2n_print_stacktrace(ptr noundef %6121)
  %6123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6124 = trunc i8 %6123 to i1
  br i1 %6124, label %6125, label %6147

6125:                                             ; preds = %6118
  %6126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6127 = call i32 @fileno(ptr noundef %6126) #11
  %6128 = call i32 @isatty(i32 noundef %6127) #11
  %6129 = icmp ne i32 %6128, 0
  br i1 %6129, label %6130, label %6147

6130:                                             ; preds = %6125
  %6131 = load i32, ptr %137, align 4, !tbaa !5
  %6132 = call ptr @__errno_location() #12
  store i32 %6131, ptr %6132, align 4, !tbaa !5
  %6133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6134 = load i32, ptr @test_count, align 4, !tbaa !5
  %6135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6136 = load i32, ptr %6135, align 4, !tbaa !5
  %6137 = call ptr @s2n_strerror(i32 noundef %6136, ptr noundef @.str.4)
  %6138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6139 = load i32, ptr %6138, align 4, !tbaa !5
  %6140 = call ptr @s2n_strerror_debug(i32 noundef %6139, ptr noundef @.str.4)
  %6141 = call ptr @__errno_location() #12
  %6142 = load i32, ptr %6141, align 4, !tbaa !5
  %6143 = call ptr @strerror(i32 noundef %6142) #11
  %6144 = call ptr @__errno_location() #12
  %6145 = load i32, ptr %6144, align 4, !tbaa !5
  %6146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6133, ptr noundef @.str.2, i32 noundef %6134, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 332, ptr noundef %6137, ptr noundef %6140, ptr noundef %6143, i32 noundef %6145) #11
  br label %6164

6147:                                             ; preds = %6125, %6118
  %6148 = load i32, ptr %137, align 4, !tbaa !5
  %6149 = call ptr @__errno_location() #12
  store i32 %6148, ptr %6149, align 4, !tbaa !5
  %6150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6151 = load i32, ptr @test_count, align 4, !tbaa !5
  %6152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6153 = load i32, ptr %6152, align 4, !tbaa !5
  %6154 = call ptr @s2n_strerror(i32 noundef %6153, ptr noundef @.str.4)
  %6155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6156 = load i32, ptr %6155, align 4, !tbaa !5
  %6157 = call ptr @s2n_strerror_debug(i32 noundef %6156, ptr noundef @.str.4)
  %6158 = call ptr @__errno_location() #12
  %6159 = load i32, ptr %6158, align 4, !tbaa !5
  %6160 = call ptr @strerror(i32 noundef %6159) #11
  %6161 = call ptr @__errno_location() #12
  %6162 = load i32, ptr %6161, align 4, !tbaa !5
  %6163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6150, ptr noundef @.str.5, i32 noundef %6151, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 332, ptr noundef %6154, ptr noundef %6157, ptr noundef %6160, i32 noundef %6162) #11
  br label %6164

6164:                                             ; preds = %6147, %6130
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #11
  br label %6165

6165:                                             ; preds = %6164
  br label %6166

6166:                                             ; preds = %6165
  call void @exit(i32 noundef 1) #13
  unreachable

6167:                                             ; No predecessors!
  br label %6168

6168:                                             ; preds = %6167
  br label %6169

6169:                                             ; preds = %6168, %6109
  br label %6170

6170:                                             ; preds = %6169
  br label %6171

6171:                                             ; preds = %6170
  %6172 = load i32, ptr %5, align 4, !tbaa !5
  %6173 = icmp ne i32 %6172, 0
  br i1 %6173, label %6174, label %6300

6174:                                             ; preds = %6171
  call void @llvm.lifetime.start.p0(i64 2, ptr %138) #11
  store i16 0, ptr %138, align 2, !tbaa !57
  br label %6175

6175:                                             ; preds = %6174
  %6176 = load i32, ptr @test_count, align 4, !tbaa !5
  %6177 = add nsw i32 %6176, 1
  store i32 %6177, ptr @test_count, align 4, !tbaa !5
  %6178 = call i32 @s2n_stuffer_read_uint16(ptr noundef %104, ptr noundef %138)
  %6179 = icmp eq i32 %6178, -1
  br i1 %6179, label %6180, label %6233

6180:                                             ; preds = %6175
  br label %6181

6181:                                             ; preds = %6180
  br label %6182

6182:                                             ; preds = %6181
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #11
  %6183 = call ptr @__errno_location() #12
  %6184 = load i32, ptr %6183, align 4, !tbaa !5
  store i32 %6184, ptr %139, align 4, !tbaa !5
  %6185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6186 = call i32 @s2n_print_stacktrace(ptr noundef %6185)
  %6187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6188 = trunc i8 %6187 to i1
  br i1 %6188, label %6189, label %6211

6189:                                             ; preds = %6182
  %6190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6191 = call i32 @fileno(ptr noundef %6190) #11
  %6192 = call i32 @isatty(i32 noundef %6191) #11
  %6193 = icmp ne i32 %6192, 0
  br i1 %6193, label %6194, label %6211

6194:                                             ; preds = %6189
  %6195 = load i32, ptr %139, align 4, !tbaa !5
  %6196 = call ptr @__errno_location() #12
  store i32 %6195, ptr %6196, align 4, !tbaa !5
  %6197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6198 = load i32, ptr @test_count, align 4, !tbaa !5
  %6199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6200 = load i32, ptr %6199, align 4, !tbaa !5
  %6201 = call ptr @s2n_strerror(i32 noundef %6200, ptr noundef @.str.4)
  %6202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6203 = load i32, ptr %6202, align 4, !tbaa !5
  %6204 = call ptr @s2n_strerror_debug(i32 noundef %6203, ptr noundef @.str.4)
  %6205 = call ptr @__errno_location() #12
  %6206 = load i32, ptr %6205, align 4, !tbaa !5
  %6207 = call ptr @strerror(i32 noundef %6206) #11
  %6208 = call ptr @__errno_location() #12
  %6209 = load i32, ptr %6208, align 4, !tbaa !5
  %6210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6197, ptr noundef @.str.2, i32 noundef %6198, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 336, ptr noundef %6201, ptr noundef %6204, ptr noundef %6207, i32 noundef %6209) #11
  br label %6228

6211:                                             ; preds = %6189, %6182
  %6212 = load i32, ptr %139, align 4, !tbaa !5
  %6213 = call ptr @__errno_location() #12
  store i32 %6212, ptr %6213, align 4, !tbaa !5
  %6214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6215 = load i32, ptr @test_count, align 4, !tbaa !5
  %6216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6217 = load i32, ptr %6216, align 4, !tbaa !5
  %6218 = call ptr @s2n_strerror(i32 noundef %6217, ptr noundef @.str.4)
  %6219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6220 = load i32, ptr %6219, align 4, !tbaa !5
  %6221 = call ptr @s2n_strerror_debug(i32 noundef %6220, ptr noundef @.str.4)
  %6222 = call ptr @__errno_location() #12
  %6223 = load i32, ptr %6222, align 4, !tbaa !5
  %6224 = call ptr @strerror(i32 noundef %6223) #11
  %6225 = call ptr @__errno_location() #12
  %6226 = load i32, ptr %6225, align 4, !tbaa !5
  %6227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6214, ptr noundef @.str.5, i32 noundef %6215, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 336, ptr noundef %6218, ptr noundef %6221, ptr noundef %6224, i32 noundef %6226) #11
  br label %6228

6228:                                             ; preds = %6211, %6194
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %6229

6229:                                             ; preds = %6228
  br label %6230

6230:                                             ; preds = %6229
  call void @exit(i32 noundef 1) #13
  unreachable

6231:                                             ; No predecessors!
  br label %6232

6232:                                             ; preds = %6231
  br label %6233

6233:                                             ; preds = %6232, %6175
  br label %6234

6234:                                             ; preds = %6233
  br label %6235

6235:                                             ; preds = %6234
  br label %6236

6236:                                             ; preds = %6235
  %6237 = load i32, ptr @test_count, align 4, !tbaa !5
  %6238 = add nsw i32 %6237, 1
  store i32 %6238, ptr @test_count, align 4, !tbaa !5
  %6239 = load i16, ptr %138, align 2, !tbaa !57
  %6240 = zext i16 %6239 to i32
  %6241 = load i16, ptr %133, align 2, !tbaa !57
  %6242 = zext i16 %6241 to i32
  %6243 = icmp eq i32 %6240, %6242
  br i1 %6243, label %6297, label %6244

6244:                                             ; preds = %6236
  br label %6245

6245:                                             ; preds = %6244
  br label %6246

6246:                                             ; preds = %6245
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #11
  %6247 = call ptr @__errno_location() #12
  %6248 = load i32, ptr %6247, align 4, !tbaa !5
  store i32 %6248, ptr %140, align 4, !tbaa !5
  %6249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6250 = call i32 @s2n_print_stacktrace(ptr noundef %6249)
  %6251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6252 = trunc i8 %6251 to i1
  br i1 %6252, label %6253, label %6275

6253:                                             ; preds = %6246
  %6254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6255 = call i32 @fileno(ptr noundef %6254) #11
  %6256 = call i32 @isatty(i32 noundef %6255) #11
  %6257 = icmp ne i32 %6256, 0
  br i1 %6257, label %6258, label %6275

6258:                                             ; preds = %6253
  %6259 = load i32, ptr %140, align 4, !tbaa !5
  %6260 = call ptr @__errno_location() #12
  store i32 %6259, ptr %6260, align 4, !tbaa !5
  %6261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6262 = load i32, ptr @test_count, align 4, !tbaa !5
  %6263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6264 = load i32, ptr %6263, align 4, !tbaa !5
  %6265 = call ptr @s2n_strerror(i32 noundef %6264, ptr noundef @.str.4)
  %6266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6267 = load i32, ptr %6266, align 4, !tbaa !5
  %6268 = call ptr @s2n_strerror_debug(i32 noundef %6267, ptr noundef @.str.4)
  %6269 = call ptr @__errno_location() #12
  %6270 = load i32, ptr %6269, align 4, !tbaa !5
  %6271 = call ptr @strerror(i32 noundef %6270) #11
  %6272 = call ptr @__errno_location() #12
  %6273 = load i32, ptr %6272, align 4, !tbaa !5
  %6274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6261, ptr noundef @.str.2, i32 noundef %6262, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 337, ptr noundef %6265, ptr noundef %6268, ptr noundef %6271, i32 noundef %6273) #11
  br label %6292

6275:                                             ; preds = %6253, %6246
  %6276 = load i32, ptr %140, align 4, !tbaa !5
  %6277 = call ptr @__errno_location() #12
  store i32 %6276, ptr %6277, align 4, !tbaa !5
  %6278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6279 = load i32, ptr @test_count, align 4, !tbaa !5
  %6280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6281 = load i32, ptr %6280, align 4, !tbaa !5
  %6282 = call ptr @s2n_strerror(i32 noundef %6281, ptr noundef @.str.4)
  %6283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6284 = load i32, ptr %6283, align 4, !tbaa !5
  %6285 = call ptr @s2n_strerror_debug(i32 noundef %6284, ptr noundef @.str.4)
  %6286 = call ptr @__errno_location() #12
  %6287 = load i32, ptr %6286, align 4, !tbaa !5
  %6288 = call ptr @strerror(i32 noundef %6287) #11
  %6289 = call ptr @__errno_location() #12
  %6290 = load i32, ptr %6289, align 4, !tbaa !5
  %6291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6278, ptr noundef @.str.5, i32 noundef %6279, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 337, ptr noundef %6282, ptr noundef %6285, ptr noundef %6288, i32 noundef %6290) #11
  br label %6292

6292:                                             ; preds = %6275, %6258
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %6293

6293:                                             ; preds = %6292
  br label %6294

6294:                                             ; preds = %6293
  call void @exit(i32 noundef 1) #13
  unreachable

6295:                                             ; No predecessors!
  br label %6296

6296:                                             ; preds = %6295
  br label %6297

6297:                                             ; preds = %6296, %6236
  br label %6298

6298:                                             ; preds = %6297
  br label %6299

6299:                                             ; preds = %6298
  call void @llvm.lifetime.end.p0(i64 2, ptr %138) #11
  br label %6300

6300:                                             ; preds = %6299, %6171
  br label %6301

6301:                                             ; preds = %6300
  %6302 = load i32, ptr @test_count, align 4, !tbaa !5
  %6303 = add nsw i32 %6302, 1
  store i32 %6303, ptr @test_count, align 4, !tbaa !5
  %6304 = load i16, ptr %133, align 2, !tbaa !57
  %6305 = zext i16 %6304 to i32
  %6306 = call i32 @s2n_stuffer_skip_read(ptr noundef %104, i32 noundef %6305)
  %6307 = icmp eq i32 %6306, -1
  br i1 %6307, label %6308, label %6361

6308:                                             ; preds = %6301
  br label %6309

6309:                                             ; preds = %6308
  br label %6310

6310:                                             ; preds = %6309
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %6311 = call ptr @__errno_location() #12
  %6312 = load i32, ptr %6311, align 4, !tbaa !5
  store i32 %6312, ptr %141, align 4, !tbaa !5
  %6313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6314 = call i32 @s2n_print_stacktrace(ptr noundef %6313)
  %6315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6316 = trunc i8 %6315 to i1
  br i1 %6316, label %6317, label %6339

6317:                                             ; preds = %6310
  %6318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6319 = call i32 @fileno(ptr noundef %6318) #11
  %6320 = call i32 @isatty(i32 noundef %6319) #11
  %6321 = icmp ne i32 %6320, 0
  br i1 %6321, label %6322, label %6339

6322:                                             ; preds = %6317
  %6323 = load i32, ptr %141, align 4, !tbaa !5
  %6324 = call ptr @__errno_location() #12
  store i32 %6323, ptr %6324, align 4, !tbaa !5
  %6325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6326 = load i32, ptr @test_count, align 4, !tbaa !5
  %6327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6328 = load i32, ptr %6327, align 4, !tbaa !5
  %6329 = call ptr @s2n_strerror(i32 noundef %6328, ptr noundef @.str.4)
  %6330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6331 = load i32, ptr %6330, align 4, !tbaa !5
  %6332 = call ptr @s2n_strerror_debug(i32 noundef %6331, ptr noundef @.str.4)
  %6333 = call ptr @__errno_location() #12
  %6334 = load i32, ptr %6333, align 4, !tbaa !5
  %6335 = call ptr @strerror(i32 noundef %6334) #11
  %6336 = call ptr @__errno_location() #12
  %6337 = load i32, ptr %6336, align 4, !tbaa !5
  %6338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6325, ptr noundef @.str.2, i32 noundef %6326, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 339, ptr noundef %6329, ptr noundef %6332, ptr noundef %6335, i32 noundef %6337) #11
  br label %6356

6339:                                             ; preds = %6317, %6310
  %6340 = load i32, ptr %141, align 4, !tbaa !5
  %6341 = call ptr @__errno_location() #12
  store i32 %6340, ptr %6341, align 4, !tbaa !5
  %6342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6343 = load i32, ptr @test_count, align 4, !tbaa !5
  %6344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6345 = load i32, ptr %6344, align 4, !tbaa !5
  %6346 = call ptr @s2n_strerror(i32 noundef %6345, ptr noundef @.str.4)
  %6347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6348 = load i32, ptr %6347, align 4, !tbaa !5
  %6349 = call ptr @s2n_strerror_debug(i32 noundef %6348, ptr noundef @.str.4)
  %6350 = call ptr @__errno_location() #12
  %6351 = load i32, ptr %6350, align 4, !tbaa !5
  %6352 = call ptr @strerror(i32 noundef %6351) #11
  %6353 = call ptr @__errno_location() #12
  %6354 = load i32, ptr %6353, align 4, !tbaa !5
  %6355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6342, ptr noundef @.str.5, i32 noundef %6343, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 339, ptr noundef %6346, ptr noundef %6349, ptr noundef %6352, i32 noundef %6354) #11
  br label %6356

6356:                                             ; preds = %6339, %6322
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %6357

6357:                                             ; preds = %6356
  br label %6358

6358:                                             ; preds = %6357
  call void @exit(i32 noundef 1) #13
  unreachable

6359:                                             ; No predecessors!
  br label %6360

6360:                                             ; preds = %6359
  br label %6361

6361:                                             ; preds = %6360, %6301
  br label %6362

6362:                                             ; preds = %6361
  br label %6363

6363:                                             ; preds = %6362
  br label %6364

6364:                                             ; preds = %6363
  %6365 = load i32, ptr @test_count, align 4, !tbaa !5
  %6366 = add nsw i32 %6365, 1
  store i32 %6366, ptr @test_count, align 4, !tbaa !5
  %6367 = getelementptr inbounds %struct.s2n_stuffer, ptr %104, i32 0, i32 2
  %6368 = load i32, ptr %6367, align 4, !tbaa !58
  %6369 = getelementptr inbounds %struct.s2n_stuffer, ptr %104, i32 0, i32 1
  %6370 = load i32, ptr %6369, align 8, !tbaa !59
  %6371 = sub i32 %6368, %6370
  %6372 = icmp eq i32 %6371, 0
  br i1 %6372, label %6426, label %6373

6373:                                             ; preds = %6364
  br label %6374

6374:                                             ; preds = %6373
  br label %6375

6375:                                             ; preds = %6374
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #11
  %6376 = call ptr @__errno_location() #12
  %6377 = load i32, ptr %6376, align 4, !tbaa !5
  store i32 %6377, ptr %142, align 4, !tbaa !5
  %6378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6379 = call i32 @s2n_print_stacktrace(ptr noundef %6378)
  %6380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6381 = trunc i8 %6380 to i1
  br i1 %6381, label %6382, label %6404

6382:                                             ; preds = %6375
  %6383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6384 = call i32 @fileno(ptr noundef %6383) #11
  %6385 = call i32 @isatty(i32 noundef %6384) #11
  %6386 = icmp ne i32 %6385, 0
  br i1 %6386, label %6387, label %6404

6387:                                             ; preds = %6382
  %6388 = load i32, ptr %142, align 4, !tbaa !5
  %6389 = call ptr @__errno_location() #12
  store i32 %6388, ptr %6389, align 4, !tbaa !5
  %6390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6391 = load i32, ptr @test_count, align 4, !tbaa !5
  %6392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6393 = load i32, ptr %6392, align 4, !tbaa !5
  %6394 = call ptr @s2n_strerror(i32 noundef %6393, ptr noundef @.str.4)
  %6395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6396 = load i32, ptr %6395, align 4, !tbaa !5
  %6397 = call ptr @s2n_strerror_debug(i32 noundef %6396, ptr noundef @.str.4)
  %6398 = call ptr @__errno_location() #12
  %6399 = load i32, ptr %6398, align 4, !tbaa !5
  %6400 = call ptr @strerror(i32 noundef %6399) #11
  %6401 = call ptr @__errno_location() #12
  %6402 = load i32, ptr %6401, align 4, !tbaa !5
  %6403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6390, ptr noundef @.str.2, i32 noundef %6391, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 342, ptr noundef %6394, ptr noundef %6397, ptr noundef %6400, i32 noundef %6402) #11
  br label %6421

6404:                                             ; preds = %6382, %6375
  %6405 = load i32, ptr %142, align 4, !tbaa !5
  %6406 = call ptr @__errno_location() #12
  store i32 %6405, ptr %6406, align 4, !tbaa !5
  %6407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6408 = load i32, ptr @test_count, align 4, !tbaa !5
  %6409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6410 = load i32, ptr %6409, align 4, !tbaa !5
  %6411 = call ptr @s2n_strerror(i32 noundef %6410, ptr noundef @.str.4)
  %6412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6413 = load i32, ptr %6412, align 4, !tbaa !5
  %6414 = call ptr @s2n_strerror_debug(i32 noundef %6413, ptr noundef @.str.4)
  %6415 = call ptr @__errno_location() #12
  %6416 = load i32, ptr %6415, align 4, !tbaa !5
  %6417 = call ptr @strerror(i32 noundef %6416) #11
  %6418 = call ptr @__errno_location() #12
  %6419 = load i32, ptr %6418, align 4, !tbaa !5
  %6420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6407, ptr noundef @.str.5, i32 noundef %6408, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 342, ptr noundef %6411, ptr noundef %6414, ptr noundef %6417, i32 noundef %6419) #11
  br label %6421

6421:                                             ; preds = %6404, %6387
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #11
  br label %6422

6422:                                             ; preds = %6421
  br label %6423

6423:                                             ; preds = %6422
  call void @exit(i32 noundef 1) #13
  unreachable

6424:                                             ; No predecessors!
  br label %6425

6425:                                             ; preds = %6424
  br label %6426

6426:                                             ; preds = %6425, %6364
  br label %6427

6427:                                             ; preds = %6426
  br label %6428

6428:                                             ; preds = %6427
  br label %6429

6429:                                             ; preds = %6428
  %6430 = load i32, ptr @test_count, align 4, !tbaa !5
  %6431 = add nsw i32 %6430, 1
  store i32 %6431, ptr @test_count, align 4, !tbaa !5
  %6432 = load ptr, ptr %96, align 8, !tbaa !9
  %6433 = call i32 @s2n_connection_free(ptr noundef %6432)
  %6434 = icmp eq i32 %6433, -1
  br i1 %6434, label %6435, label %6488

6435:                                             ; preds = %6429
  br label %6436

6436:                                             ; preds = %6435
  br label %6437

6437:                                             ; preds = %6436
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #11
  %6438 = call ptr @__errno_location() #12
  %6439 = load i32, ptr %6438, align 4, !tbaa !5
  store i32 %6439, ptr %143, align 4, !tbaa !5
  %6440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6441 = call i32 @s2n_print_stacktrace(ptr noundef %6440)
  %6442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6443 = trunc i8 %6442 to i1
  br i1 %6443, label %6444, label %6466

6444:                                             ; preds = %6437
  %6445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6446 = call i32 @fileno(ptr noundef %6445) #11
  %6447 = call i32 @isatty(i32 noundef %6446) #11
  %6448 = icmp ne i32 %6447, 0
  br i1 %6448, label %6449, label %6466

6449:                                             ; preds = %6444
  %6450 = load i32, ptr %143, align 4, !tbaa !5
  %6451 = call ptr @__errno_location() #12
  store i32 %6450, ptr %6451, align 4, !tbaa !5
  %6452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6453 = load i32, ptr @test_count, align 4, !tbaa !5
  %6454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6455 = load i32, ptr %6454, align 4, !tbaa !5
  %6456 = call ptr @s2n_strerror(i32 noundef %6455, ptr noundef @.str.4)
  %6457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6458 = load i32, ptr %6457, align 4, !tbaa !5
  %6459 = call ptr @s2n_strerror_debug(i32 noundef %6458, ptr noundef @.str.4)
  %6460 = call ptr @__errno_location() #12
  %6461 = load i32, ptr %6460, align 4, !tbaa !5
  %6462 = call ptr @strerror(i32 noundef %6461) #11
  %6463 = call ptr @__errno_location() #12
  %6464 = load i32, ptr %6463, align 4, !tbaa !5
  %6465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6452, ptr noundef @.str.2, i32 noundef %6453, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 344, ptr noundef %6456, ptr noundef %6459, ptr noundef %6462, i32 noundef %6464) #11
  br label %6483

6466:                                             ; preds = %6444, %6437
  %6467 = load i32, ptr %143, align 4, !tbaa !5
  %6468 = call ptr @__errno_location() #12
  store i32 %6467, ptr %6468, align 4, !tbaa !5
  %6469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6470 = load i32, ptr @test_count, align 4, !tbaa !5
  %6471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6472 = load i32, ptr %6471, align 4, !tbaa !5
  %6473 = call ptr @s2n_strerror(i32 noundef %6472, ptr noundef @.str.4)
  %6474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6475 = load i32, ptr %6474, align 4, !tbaa !5
  %6476 = call ptr @s2n_strerror_debug(i32 noundef %6475, ptr noundef @.str.4)
  %6477 = call ptr @__errno_location() #12
  %6478 = load i32, ptr %6477, align 4, !tbaa !5
  %6479 = call ptr @strerror(i32 noundef %6478) #11
  %6480 = call ptr @__errno_location() #12
  %6481 = load i32, ptr %6480, align 4, !tbaa !5
  %6482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6469, ptr noundef @.str.5, i32 noundef %6470, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 344, ptr noundef %6473, ptr noundef %6476, ptr noundef %6479, i32 noundef %6481) #11
  br label %6483

6483:                                             ; preds = %6466, %6449
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #11
  br label %6484

6484:                                             ; preds = %6483
  br label %6485

6485:                                             ; preds = %6484
  call void @exit(i32 noundef 1) #13
  unreachable

6486:                                             ; No predecessors!
  br label %6487

6487:                                             ; preds = %6486
  br label %6488

6488:                                             ; preds = %6487, %6429
  br label %6489

6489:                                             ; preds = %6488
  br label %6490

6490:                                             ; preds = %6489
  call void @llvm.lifetime.end.p0(i64 2, ptr %133) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %132) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %129) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %128) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %125) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %122) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %110) #11
  %6491 = call i32 @s2n_stuffer_free(ptr noundef %104)
  call void @llvm.lifetime.end.p0(i64 40, ptr %104) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #11
  br label %6492

6492:                                             ; preds = %6490, %4325
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #11
  %6493 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6493, ptr %144, align 8, !tbaa !9
  %6494 = load ptr, ptr %144, align 8, !tbaa !9
  %6495 = getelementptr inbounds %struct.s2n_connection, ptr %6494, i32 0, i32 2
  store ptr %39, ptr %6495, align 8, !tbaa !28
  br label %6496

6496:                                             ; preds = %6492
  %6497 = load i32, ptr @test_count, align 4, !tbaa !5
  %6498 = add nsw i32 %6497, 1
  store i32 %6498, ptr @test_count, align 4, !tbaa !5
  %6499 = load ptr, ptr %144, align 8, !tbaa !9
  %6500 = icmp eq ptr %6499, null
  br i1 %6500, label %6501, label %6554

6501:                                             ; preds = %6496
  br label %6502

6502:                                             ; preds = %6501
  br label %6503

6503:                                             ; preds = %6502
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #11
  %6504 = call ptr @__errno_location() #12
  %6505 = load i32, ptr %6504, align 4, !tbaa !5
  store i32 %6505, ptr %145, align 4, !tbaa !5
  %6506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6507 = call i32 @s2n_print_stacktrace(ptr noundef %6506)
  %6508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6509 = trunc i8 %6508 to i1
  br i1 %6509, label %6510, label %6532

6510:                                             ; preds = %6503
  %6511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6512 = call i32 @fileno(ptr noundef %6511) #11
  %6513 = call i32 @isatty(i32 noundef %6512) #11
  %6514 = icmp ne i32 %6513, 0
  br i1 %6514, label %6515, label %6532

6515:                                             ; preds = %6510
  %6516 = load i32, ptr %145, align 4, !tbaa !5
  %6517 = call ptr @__errno_location() #12
  store i32 %6516, ptr %6517, align 4, !tbaa !5
  %6518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6519 = load i32, ptr @test_count, align 4, !tbaa !5
  %6520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6521 = load i32, ptr %6520, align 4, !tbaa !5
  %6522 = call ptr @s2n_strerror(i32 noundef %6521, ptr noundef @.str.4)
  %6523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6524 = load i32, ptr %6523, align 4, !tbaa !5
  %6525 = call ptr @s2n_strerror_debug(i32 noundef %6524, ptr noundef @.str.4)
  %6526 = call ptr @__errno_location() #12
  %6527 = load i32, ptr %6526, align 4, !tbaa !5
  %6528 = call ptr @strerror(i32 noundef %6527) #11
  %6529 = call ptr @__errno_location() #12
  %6530 = load i32, ptr %6529, align 4, !tbaa !5
  %6531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6518, ptr noundef @.str.2, i32 noundef %6519, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 351, ptr noundef %6522, ptr noundef %6525, ptr noundef %6528, i32 noundef %6530) #11
  br label %6549

6532:                                             ; preds = %6510, %6503
  %6533 = load i32, ptr %145, align 4, !tbaa !5
  %6534 = call ptr @__errno_location() #12
  store i32 %6533, ptr %6534, align 4, !tbaa !5
  %6535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6536 = load i32, ptr @test_count, align 4, !tbaa !5
  %6537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6538 = load i32, ptr %6537, align 4, !tbaa !5
  %6539 = call ptr @s2n_strerror(i32 noundef %6538, ptr noundef @.str.4)
  %6540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6541 = load i32, ptr %6540, align 4, !tbaa !5
  %6542 = call ptr @s2n_strerror_debug(i32 noundef %6541, ptr noundef @.str.4)
  %6543 = call ptr @__errno_location() #12
  %6544 = load i32, ptr %6543, align 4, !tbaa !5
  %6545 = call ptr @strerror(i32 noundef %6544) #11
  %6546 = call ptr @__errno_location() #12
  %6547 = load i32, ptr %6546, align 4, !tbaa !5
  %6548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6535, ptr noundef @.str.5, i32 noundef %6536, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 351, ptr noundef %6539, ptr noundef %6542, ptr noundef %6545, i32 noundef %6547) #11
  br label %6549

6549:                                             ; preds = %6532, %6515
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #11
  br label %6550

6550:                                             ; preds = %6549
  br label %6551

6551:                                             ; preds = %6550
  call void @exit(i32 noundef 1) #13
  unreachable

6552:                                             ; No predecessors!
  br label %6553

6553:                                             ; preds = %6552
  br label %6554

6554:                                             ; preds = %6553, %6496
  br label %6555

6555:                                             ; preds = %6554
  br label %6556

6556:                                             ; preds = %6555
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #11
  store ptr null, ptr %146, align 8, !tbaa !9
  br label %6557

6557:                                             ; preds = %6556
  %6558 = load i32, ptr @test_count, align 4, !tbaa !5
  %6559 = add nsw i32 %6558, 1
  store i32 %6559, ptr @test_count, align 4, !tbaa !5
  %6560 = load ptr, ptr %144, align 8, !tbaa !9
  %6561 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %6560, ptr noundef %146)
  %6562 = icmp eq i32 %6561, -1
  br i1 %6562, label %6563, label %6616

6563:                                             ; preds = %6557
  br label %6564

6564:                                             ; preds = %6563
  br label %6565

6565:                                             ; preds = %6564
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #11
  %6566 = call ptr @__errno_location() #12
  %6567 = load i32, ptr %6566, align 4, !tbaa !5
  store i32 %6567, ptr %147, align 4, !tbaa !5
  %6568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6569 = call i32 @s2n_print_stacktrace(ptr noundef %6568)
  %6570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6571 = trunc i8 %6570 to i1
  br i1 %6571, label %6572, label %6594

6572:                                             ; preds = %6565
  %6573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6574 = call i32 @fileno(ptr noundef %6573) #11
  %6575 = call i32 @isatty(i32 noundef %6574) #11
  %6576 = icmp ne i32 %6575, 0
  br i1 %6576, label %6577, label %6594

6577:                                             ; preds = %6572
  %6578 = load i32, ptr %147, align 4, !tbaa !5
  %6579 = call ptr @__errno_location() #12
  store i32 %6578, ptr %6579, align 4, !tbaa !5
  %6580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6581 = load i32, ptr @test_count, align 4, !tbaa !5
  %6582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6583 = load i32, ptr %6582, align 4, !tbaa !5
  %6584 = call ptr @s2n_strerror(i32 noundef %6583, ptr noundef @.str.4)
  %6585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6586 = load i32, ptr %6585, align 4, !tbaa !5
  %6587 = call ptr @s2n_strerror_debug(i32 noundef %6586, ptr noundef @.str.4)
  %6588 = call ptr @__errno_location() #12
  %6589 = load i32, ptr %6588, align 4, !tbaa !5
  %6590 = call ptr @strerror(i32 noundef %6589) #11
  %6591 = call ptr @__errno_location() #12
  %6592 = load i32, ptr %6591, align 4, !tbaa !5
  %6593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6580, ptr noundef @.str.2, i32 noundef %6581, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 354, ptr noundef %6584, ptr noundef %6587, ptr noundef %6590, i32 noundef %6592) #11
  br label %6611

6594:                                             ; preds = %6572, %6565
  %6595 = load i32, ptr %147, align 4, !tbaa !5
  %6596 = call ptr @__errno_location() #12
  store i32 %6595, ptr %6596, align 4, !tbaa !5
  %6597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6598 = load i32, ptr @test_count, align 4, !tbaa !5
  %6599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6600 = load i32, ptr %6599, align 4, !tbaa !5
  %6601 = call ptr @s2n_strerror(i32 noundef %6600, ptr noundef @.str.4)
  %6602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6603 = load i32, ptr %6602, align 4, !tbaa !5
  %6604 = call ptr @s2n_strerror_debug(i32 noundef %6603, ptr noundef @.str.4)
  %6605 = call ptr @__errno_location() #12
  %6606 = load i32, ptr %6605, align 4, !tbaa !5
  %6607 = call ptr @strerror(i32 noundef %6606) #11
  %6608 = call ptr @__errno_location() #12
  %6609 = load i32, ptr %6608, align 4, !tbaa !5
  %6610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6597, ptr noundef @.str.5, i32 noundef %6598, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 354, ptr noundef %6601, ptr noundef %6604, ptr noundef %6607, i32 noundef %6609) #11
  br label %6611

6611:                                             ; preds = %6594, %6577
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #11
  br label %6612

6612:                                             ; preds = %6611
  br label %6613

6613:                                             ; preds = %6612
  call void @exit(i32 noundef 1) #13
  unreachable

6614:                                             ; No predecessors!
  br label %6615

6615:                                             ; preds = %6614
  br label %6616

6616:                                             ; preds = %6615, %6557
  br label %6617

6617:                                             ; preds = %6616
  br label %6618

6618:                                             ; preds = %6617
  br label %6619

6619:                                             ; preds = %6618
  %6620 = load i32, ptr @test_count, align 4, !tbaa !5
  %6621 = add nsw i32 %6620, 1
  store i32 %6621, ptr @test_count, align 4, !tbaa !5
  %6622 = load ptr, ptr %146, align 8, !tbaa !9
  %6623 = icmp eq ptr %6622, null
  br i1 %6623, label %6624, label %6677

6624:                                             ; preds = %6619
  br label %6625

6625:                                             ; preds = %6624
  br label %6626

6626:                                             ; preds = %6625
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #11
  %6627 = call ptr @__errno_location() #12
  %6628 = load i32, ptr %6627, align 4, !tbaa !5
  store i32 %6628, ptr %148, align 4, !tbaa !5
  %6629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6630 = call i32 @s2n_print_stacktrace(ptr noundef %6629)
  %6631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6632 = trunc i8 %6631 to i1
  br i1 %6632, label %6633, label %6655

6633:                                             ; preds = %6626
  %6634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6635 = call i32 @fileno(ptr noundef %6634) #11
  %6636 = call i32 @isatty(i32 noundef %6635) #11
  %6637 = icmp ne i32 %6636, 0
  br i1 %6637, label %6638, label %6655

6638:                                             ; preds = %6633
  %6639 = load i32, ptr %148, align 4, !tbaa !5
  %6640 = call ptr @__errno_location() #12
  store i32 %6639, ptr %6640, align 4, !tbaa !5
  %6641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6642 = load i32, ptr @test_count, align 4, !tbaa !5
  %6643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6644 = load i32, ptr %6643, align 4, !tbaa !5
  %6645 = call ptr @s2n_strerror(i32 noundef %6644, ptr noundef @.str.4)
  %6646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6647 = load i32, ptr %6646, align 4, !tbaa !5
  %6648 = call ptr @s2n_strerror_debug(i32 noundef %6647, ptr noundef @.str.4)
  %6649 = call ptr @__errno_location() #12
  %6650 = load i32, ptr %6649, align 4, !tbaa !5
  %6651 = call ptr @strerror(i32 noundef %6650) #11
  %6652 = call ptr @__errno_location() #12
  %6653 = load i32, ptr %6652, align 4, !tbaa !5
  %6654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6641, ptr noundef @.str.2, i32 noundef %6642, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 355, ptr noundef %6645, ptr noundef %6648, ptr noundef %6651, i32 noundef %6653) #11
  br label %6672

6655:                                             ; preds = %6633, %6626
  %6656 = load i32, ptr %148, align 4, !tbaa !5
  %6657 = call ptr @__errno_location() #12
  store i32 %6656, ptr %6657, align 4, !tbaa !5
  %6658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6659 = load i32, ptr @test_count, align 4, !tbaa !5
  %6660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6661 = load i32, ptr %6660, align 4, !tbaa !5
  %6662 = call ptr @s2n_strerror(i32 noundef %6661, ptr noundef @.str.4)
  %6663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6664 = load i32, ptr %6663, align 4, !tbaa !5
  %6665 = call ptr @s2n_strerror_debug(i32 noundef %6664, ptr noundef @.str.4)
  %6666 = call ptr @__errno_location() #12
  %6667 = load i32, ptr %6666, align 4, !tbaa !5
  %6668 = call ptr @strerror(i32 noundef %6667) #11
  %6669 = call ptr @__errno_location() #12
  %6670 = load i32, ptr %6669, align 4, !tbaa !5
  %6671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6658, ptr noundef @.str.5, i32 noundef %6659, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 355, ptr noundef %6662, ptr noundef %6665, ptr noundef %6668, i32 noundef %6670) #11
  br label %6672

6672:                                             ; preds = %6655, %6638
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  br label %6673

6673:                                             ; preds = %6672
  br label %6674

6674:                                             ; preds = %6673
  call void @exit(i32 noundef 1) #13
  unreachable

6675:                                             ; No predecessors!
  br label %6676

6676:                                             ; preds = %6675
  br label %6677

6677:                                             ; preds = %6676, %6619
  br label %6678

6678:                                             ; preds = %6677
  br label %6679

6679:                                             ; preds = %6678
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #11
  store ptr null, ptr %149, align 8, !tbaa !9
  br label %6680

6680:                                             ; preds = %6679
  %6681 = load i32, ptr @test_count, align 4, !tbaa !5
  %6682 = add nsw i32 %6681, 1
  store i32 %6682, ptr @test_count, align 4, !tbaa !5
  %6683 = load ptr, ptr %144, align 8, !tbaa !9
  %6684 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %6683, ptr noundef %149)
  %6685 = icmp eq i32 %6684, -1
  br i1 %6685, label %6686, label %6739

6686:                                             ; preds = %6680
  br label %6687

6687:                                             ; preds = %6686
  br label %6688

6688:                                             ; preds = %6687
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #11
  %6689 = call ptr @__errno_location() #12
  %6690 = load i32, ptr %6689, align 4, !tbaa !5
  store i32 %6690, ptr %150, align 4, !tbaa !5
  %6691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6692 = call i32 @s2n_print_stacktrace(ptr noundef %6691)
  %6693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6694 = trunc i8 %6693 to i1
  br i1 %6694, label %6695, label %6717

6695:                                             ; preds = %6688
  %6696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6697 = call i32 @fileno(ptr noundef %6696) #11
  %6698 = call i32 @isatty(i32 noundef %6697) #11
  %6699 = icmp ne i32 %6698, 0
  br i1 %6699, label %6700, label %6717

6700:                                             ; preds = %6695
  %6701 = load i32, ptr %150, align 4, !tbaa !5
  %6702 = call ptr @__errno_location() #12
  store i32 %6701, ptr %6702, align 4, !tbaa !5
  %6703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6704 = load i32, ptr @test_count, align 4, !tbaa !5
  %6705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6706 = load i32, ptr %6705, align 4, !tbaa !5
  %6707 = call ptr @s2n_strerror(i32 noundef %6706, ptr noundef @.str.4)
  %6708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6709 = load i32, ptr %6708, align 4, !tbaa !5
  %6710 = call ptr @s2n_strerror_debug(i32 noundef %6709, ptr noundef @.str.4)
  %6711 = call ptr @__errno_location() #12
  %6712 = load i32, ptr %6711, align 4, !tbaa !5
  %6713 = call ptr @strerror(i32 noundef %6712) #11
  %6714 = call ptr @__errno_location() #12
  %6715 = load i32, ptr %6714, align 4, !tbaa !5
  %6716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6703, ptr noundef @.str.2, i32 noundef %6704, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 358, ptr noundef %6707, ptr noundef %6710, ptr noundef %6713, i32 noundef %6715) #11
  br label %6734

6717:                                             ; preds = %6695, %6688
  %6718 = load i32, ptr %150, align 4, !tbaa !5
  %6719 = call ptr @__errno_location() #12
  store i32 %6718, ptr %6719, align 4, !tbaa !5
  %6720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6721 = load i32, ptr @test_count, align 4, !tbaa !5
  %6722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6723 = load i32, ptr %6722, align 4, !tbaa !5
  %6724 = call ptr @s2n_strerror(i32 noundef %6723, ptr noundef @.str.4)
  %6725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6726 = load i32, ptr %6725, align 4, !tbaa !5
  %6727 = call ptr @s2n_strerror_debug(i32 noundef %6726, ptr noundef @.str.4)
  %6728 = call ptr @__errno_location() #12
  %6729 = load i32, ptr %6728, align 4, !tbaa !5
  %6730 = call ptr @strerror(i32 noundef %6729) #11
  %6731 = call ptr @__errno_location() #12
  %6732 = load i32, ptr %6731, align 4, !tbaa !5
  %6733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6720, ptr noundef @.str.5, i32 noundef %6721, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 358, ptr noundef %6724, ptr noundef %6727, ptr noundef %6730, i32 noundef %6732) #11
  br label %6734

6734:                                             ; preds = %6717, %6700
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #11
  br label %6735

6735:                                             ; preds = %6734
  br label %6736

6736:                                             ; preds = %6735
  call void @exit(i32 noundef 1) #13
  unreachable

6737:                                             ; No predecessors!
  br label %6738

6738:                                             ; preds = %6737
  br label %6739

6739:                                             ; preds = %6738, %6680
  br label %6740

6740:                                             ; preds = %6739
  br label %6741

6741:                                             ; preds = %6740
  br label %6742

6742:                                             ; preds = %6741
  %6743 = load i32, ptr @test_count, align 4, !tbaa !5
  %6744 = add nsw i32 %6743, 1
  store i32 %6744, ptr @test_count, align 4, !tbaa !5
  %6745 = load ptr, ptr %149, align 8, !tbaa !9
  %6746 = icmp eq ptr %6745, null
  br i1 %6746, label %6747, label %6800

6747:                                             ; preds = %6742
  br label %6748

6748:                                             ; preds = %6747
  br label %6749

6749:                                             ; preds = %6748
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #11
  %6750 = call ptr @__errno_location() #12
  %6751 = load i32, ptr %6750, align 4, !tbaa !5
  store i32 %6751, ptr %151, align 4, !tbaa !5
  %6752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6753 = call i32 @s2n_print_stacktrace(ptr noundef %6752)
  %6754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6755 = trunc i8 %6754 to i1
  br i1 %6755, label %6756, label %6778

6756:                                             ; preds = %6749
  %6757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6758 = call i32 @fileno(ptr noundef %6757) #11
  %6759 = call i32 @isatty(i32 noundef %6758) #11
  %6760 = icmp ne i32 %6759, 0
  br i1 %6760, label %6761, label %6778

6761:                                             ; preds = %6756
  %6762 = load i32, ptr %151, align 4, !tbaa !5
  %6763 = call ptr @__errno_location() #12
  store i32 %6762, ptr %6763, align 4, !tbaa !5
  %6764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6765 = load i32, ptr @test_count, align 4, !tbaa !5
  %6766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6767 = load i32, ptr %6766, align 4, !tbaa !5
  %6768 = call ptr @s2n_strerror(i32 noundef %6767, ptr noundef @.str.4)
  %6769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6770 = load i32, ptr %6769, align 4, !tbaa !5
  %6771 = call ptr @s2n_strerror_debug(i32 noundef %6770, ptr noundef @.str.4)
  %6772 = call ptr @__errno_location() #12
  %6773 = load i32, ptr %6772, align 4, !tbaa !5
  %6774 = call ptr @strerror(i32 noundef %6773) #11
  %6775 = call ptr @__errno_location() #12
  %6776 = load i32, ptr %6775, align 4, !tbaa !5
  %6777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6764, ptr noundef @.str.2, i32 noundef %6765, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 359, ptr noundef %6768, ptr noundef %6771, ptr noundef %6774, i32 noundef %6776) #11
  br label %6795

6778:                                             ; preds = %6756, %6749
  %6779 = load i32, ptr %151, align 4, !tbaa !5
  %6780 = call ptr @__errno_location() #12
  store i32 %6779, ptr %6780, align 4, !tbaa !5
  %6781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6782 = load i32, ptr @test_count, align 4, !tbaa !5
  %6783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6784 = load i32, ptr %6783, align 4, !tbaa !5
  %6785 = call ptr @s2n_strerror(i32 noundef %6784, ptr noundef @.str.4)
  %6786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6787 = load i32, ptr %6786, align 4, !tbaa !5
  %6788 = call ptr @s2n_strerror_debug(i32 noundef %6787, ptr noundef @.str.4)
  %6789 = call ptr @__errno_location() #12
  %6790 = load i32, ptr %6789, align 4, !tbaa !5
  %6791 = call ptr @strerror(i32 noundef %6790) #11
  %6792 = call ptr @__errno_location() #12
  %6793 = load i32, ptr %6792, align 4, !tbaa !5
  %6794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6781, ptr noundef @.str.5, i32 noundef %6782, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 359, ptr noundef %6785, ptr noundef %6788, ptr noundef %6791, i32 noundef %6793) #11
  br label %6795

6795:                                             ; preds = %6778, %6761
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #11
  br label %6796

6796:                                             ; preds = %6795
  br label %6797

6797:                                             ; preds = %6796
  call void @exit(i32 noundef 1) #13
  unreachable

6798:                                             ; No predecessors!
  br label %6799

6799:                                             ; preds = %6798
  br label %6800

6800:                                             ; preds = %6799, %6742
  br label %6801

6801:                                             ; preds = %6800
  br label %6802

6802:                                             ; preds = %6801
  call void @llvm.lifetime.start.p0(i64 40, ptr %152) #11
  call void @llvm.memset.p0.i64(ptr align 8 %152, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %153) #11
  call void @llvm.memset.p0.i64(ptr align 8 %153, i8 0, i64 40, i1 false)
  br label %6803

6803:                                             ; preds = %6802
  %6804 = load i32, ptr @test_count, align 4, !tbaa !5
  %6805 = add nsw i32 %6804, 1
  store i32 %6805, ptr @test_count, align 4, !tbaa !5
  %6806 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %152, i32 noundef 4096)
  %6807 = icmp eq i32 %6806, -1
  br i1 %6807, label %6808, label %6861

6808:                                             ; preds = %6803
  br label %6809

6809:                                             ; preds = %6808
  br label %6810

6810:                                             ; preds = %6809
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #11
  %6811 = call ptr @__errno_location() #12
  %6812 = load i32, ptr %6811, align 4, !tbaa !5
  store i32 %6812, ptr %154, align 4, !tbaa !5
  %6813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6814 = call i32 @s2n_print_stacktrace(ptr noundef %6813)
  %6815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6816 = trunc i8 %6815 to i1
  br i1 %6816, label %6817, label %6839

6817:                                             ; preds = %6810
  %6818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6819 = call i32 @fileno(ptr noundef %6818) #11
  %6820 = call i32 @isatty(i32 noundef %6819) #11
  %6821 = icmp ne i32 %6820, 0
  br i1 %6821, label %6822, label %6839

6822:                                             ; preds = %6817
  %6823 = load i32, ptr %154, align 4, !tbaa !5
  %6824 = call ptr @__errno_location() #12
  store i32 %6823, ptr %6824, align 4, !tbaa !5
  %6825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6826 = load i32, ptr @test_count, align 4, !tbaa !5
  %6827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6828 = load i32, ptr %6827, align 4, !tbaa !5
  %6829 = call ptr @s2n_strerror(i32 noundef %6828, ptr noundef @.str.4)
  %6830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6831 = load i32, ptr %6830, align 4, !tbaa !5
  %6832 = call ptr @s2n_strerror_debug(i32 noundef %6831, ptr noundef @.str.4)
  %6833 = call ptr @__errno_location() #12
  %6834 = load i32, ptr %6833, align 4, !tbaa !5
  %6835 = call ptr @strerror(i32 noundef %6834) #11
  %6836 = call ptr @__errno_location() #12
  %6837 = load i32, ptr %6836, align 4, !tbaa !5
  %6838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6825, ptr noundef @.str.2, i32 noundef %6826, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 362, ptr noundef %6829, ptr noundef %6832, ptr noundef %6835, i32 noundef %6837) #11
  br label %6856

6839:                                             ; preds = %6817, %6810
  %6840 = load i32, ptr %154, align 4, !tbaa !5
  %6841 = call ptr @__errno_location() #12
  store i32 %6840, ptr %6841, align 4, !tbaa !5
  %6842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6843 = load i32, ptr @test_count, align 4, !tbaa !5
  %6844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6845 = load i32, ptr %6844, align 4, !tbaa !5
  %6846 = call ptr @s2n_strerror(i32 noundef %6845, ptr noundef @.str.4)
  %6847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6848 = load i32, ptr %6847, align 4, !tbaa !5
  %6849 = call ptr @s2n_strerror_debug(i32 noundef %6848, ptr noundef @.str.4)
  %6850 = call ptr @__errno_location() #12
  %6851 = load i32, ptr %6850, align 4, !tbaa !5
  %6852 = call ptr @strerror(i32 noundef %6851) #11
  %6853 = call ptr @__errno_location() #12
  %6854 = load i32, ptr %6853, align 4, !tbaa !5
  %6855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6842, ptr noundef @.str.5, i32 noundef %6843, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 362, ptr noundef %6846, ptr noundef %6849, ptr noundef %6852, i32 noundef %6854) #11
  br label %6856

6856:                                             ; preds = %6839, %6822
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #11
  br label %6857

6857:                                             ; preds = %6856
  br label %6858

6858:                                             ; preds = %6857
  call void @exit(i32 noundef 1) #13
  unreachable

6859:                                             ; No predecessors!
  br label %6860

6860:                                             ; preds = %6859
  br label %6861

6861:                                             ; preds = %6860, %6803
  br label %6862

6862:                                             ; preds = %6861
  br label %6863

6863:                                             ; preds = %6862
  br label %6864

6864:                                             ; preds = %6863
  %6865 = load i32, ptr @test_count, align 4, !tbaa !5
  %6866 = add nsw i32 %6865, 1
  store i32 %6866, ptr @test_count, align 4, !tbaa !5
  %6867 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %153, i32 noundef 4096)
  %6868 = icmp eq i32 %6867, -1
  br i1 %6868, label %6869, label %6922

6869:                                             ; preds = %6864
  br label %6870

6870:                                             ; preds = %6869
  br label %6871

6871:                                             ; preds = %6870
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #11
  %6872 = call ptr @__errno_location() #12
  %6873 = load i32, ptr %6872, align 4, !tbaa !5
  store i32 %6873, ptr %155, align 4, !tbaa !5
  %6874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6875 = call i32 @s2n_print_stacktrace(ptr noundef %6874)
  %6876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6877 = trunc i8 %6876 to i1
  br i1 %6877, label %6878, label %6900

6878:                                             ; preds = %6871
  %6879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6880 = call i32 @fileno(ptr noundef %6879) #11
  %6881 = call i32 @isatty(i32 noundef %6880) #11
  %6882 = icmp ne i32 %6881, 0
  br i1 %6882, label %6883, label %6900

6883:                                             ; preds = %6878
  %6884 = load i32, ptr %155, align 4, !tbaa !5
  %6885 = call ptr @__errno_location() #12
  store i32 %6884, ptr %6885, align 4, !tbaa !5
  %6886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6887 = load i32, ptr @test_count, align 4, !tbaa !5
  %6888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6889 = load i32, ptr %6888, align 4, !tbaa !5
  %6890 = call ptr @s2n_strerror(i32 noundef %6889, ptr noundef @.str.4)
  %6891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6892 = load i32, ptr %6891, align 4, !tbaa !5
  %6893 = call ptr @s2n_strerror_debug(i32 noundef %6892, ptr noundef @.str.4)
  %6894 = call ptr @__errno_location() #12
  %6895 = load i32, ptr %6894, align 4, !tbaa !5
  %6896 = call ptr @strerror(i32 noundef %6895) #11
  %6897 = call ptr @__errno_location() #12
  %6898 = load i32, ptr %6897, align 4, !tbaa !5
  %6899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6886, ptr noundef @.str.2, i32 noundef %6887, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 363, ptr noundef %6890, ptr noundef %6893, ptr noundef %6896, i32 noundef %6898) #11
  br label %6917

6900:                                             ; preds = %6878, %6871
  %6901 = load i32, ptr %155, align 4, !tbaa !5
  %6902 = call ptr @__errno_location() #12
  store i32 %6901, ptr %6902, align 4, !tbaa !5
  %6903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6904 = load i32, ptr @test_count, align 4, !tbaa !5
  %6905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6906 = load i32, ptr %6905, align 4, !tbaa !5
  %6907 = call ptr @s2n_strerror(i32 noundef %6906, ptr noundef @.str.4)
  %6908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6909 = load i32, ptr %6908, align 4, !tbaa !5
  %6910 = call ptr @s2n_strerror_debug(i32 noundef %6909, ptr noundef @.str.4)
  %6911 = call ptr @__errno_location() #12
  %6912 = load i32, ptr %6911, align 4, !tbaa !5
  %6913 = call ptr @strerror(i32 noundef %6912) #11
  %6914 = call ptr @__errno_location() #12
  %6915 = load i32, ptr %6914, align 4, !tbaa !5
  %6916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6903, ptr noundef @.str.5, i32 noundef %6904, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 363, ptr noundef %6907, ptr noundef %6910, ptr noundef %6913, i32 noundef %6915) #11
  br label %6917

6917:                                             ; preds = %6900, %6883
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #11
  br label %6918

6918:                                             ; preds = %6917
  br label %6919

6919:                                             ; preds = %6918
  call void @exit(i32 noundef 1) #13
  unreachable

6920:                                             ; No predecessors!
  br label %6921

6921:                                             ; preds = %6920
  br label %6922

6922:                                             ; preds = %6921, %6864
  br label %6923

6923:                                             ; preds = %6922
  br label %6924

6924:                                             ; preds = %6923
  br label %6925

6925:                                             ; preds = %6924
  %6926 = load i32, ptr @test_count, align 4, !tbaa !5
  %6927 = add nsw i32 %6926, 1
  store i32 %6927, ptr @test_count, align 4, !tbaa !5
  %6928 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !55
  %6929 = load ptr, ptr %144, align 8, !tbaa !9
  %6930 = call i32 %6928(ptr noundef %6929, ptr noundef %152)
  %6931 = icmp eq i32 %6930, -1
  br i1 %6931, label %6932, label %6985

6932:                                             ; preds = %6925
  br label %6933

6933:                                             ; preds = %6932
  br label %6934

6934:                                             ; preds = %6933
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #11
  %6935 = call ptr @__errno_location() #12
  %6936 = load i32, ptr %6935, align 4, !tbaa !5
  store i32 %6936, ptr %156, align 4, !tbaa !5
  %6937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6938 = call i32 @s2n_print_stacktrace(ptr noundef %6937)
  %6939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6940 = trunc i8 %6939 to i1
  br i1 %6940, label %6941, label %6963

6941:                                             ; preds = %6934
  %6942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6943 = call i32 @fileno(ptr noundef %6942) #11
  %6944 = call i32 @isatty(i32 noundef %6943) #11
  %6945 = icmp ne i32 %6944, 0
  br i1 %6945, label %6946, label %6963

6946:                                             ; preds = %6941
  %6947 = load i32, ptr %156, align 4, !tbaa !5
  %6948 = call ptr @__errno_location() #12
  store i32 %6947, ptr %6948, align 4, !tbaa !5
  %6949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6950 = load i32, ptr @test_count, align 4, !tbaa !5
  %6951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6952 = load i32, ptr %6951, align 4, !tbaa !5
  %6953 = call ptr @s2n_strerror(i32 noundef %6952, ptr noundef @.str.4)
  %6954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6955 = load i32, ptr %6954, align 4, !tbaa !5
  %6956 = call ptr @s2n_strerror_debug(i32 noundef %6955, ptr noundef @.str.4)
  %6957 = call ptr @__errno_location() #12
  %6958 = load i32, ptr %6957, align 4, !tbaa !5
  %6959 = call ptr @strerror(i32 noundef %6958) #11
  %6960 = call ptr @__errno_location() #12
  %6961 = load i32, ptr %6960, align 4, !tbaa !5
  %6962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6949, ptr noundef @.str.2, i32 noundef %6950, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 365, ptr noundef %6953, ptr noundef %6956, ptr noundef %6959, i32 noundef %6961) #11
  br label %6980

6963:                                             ; preds = %6941, %6934
  %6964 = load i32, ptr %156, align 4, !tbaa !5
  %6965 = call ptr @__errno_location() #12
  store i32 %6964, ptr %6965, align 4, !tbaa !5
  %6966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6967 = load i32, ptr @test_count, align 4, !tbaa !5
  %6968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6969 = load i32, ptr %6968, align 4, !tbaa !5
  %6970 = call ptr @s2n_strerror(i32 noundef %6969, ptr noundef @.str.4)
  %6971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6972 = load i32, ptr %6971, align 4, !tbaa !5
  %6973 = call ptr @s2n_strerror_debug(i32 noundef %6972, ptr noundef @.str.4)
  %6974 = call ptr @__errno_location() #12
  %6975 = load i32, ptr %6974, align 4, !tbaa !5
  %6976 = call ptr @strerror(i32 noundef %6975) #11
  %6977 = call ptr @__errno_location() #12
  %6978 = load i32, ptr %6977, align 4, !tbaa !5
  %6979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6966, ptr noundef @.str.5, i32 noundef %6967, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 365, ptr noundef %6970, ptr noundef %6973, ptr noundef %6976, i32 noundef %6978) #11
  br label %6980

6980:                                             ; preds = %6963, %6946
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %6981

6981:                                             ; preds = %6980
  br label %6982

6982:                                             ; preds = %6981
  call void @exit(i32 noundef 1) #13
  unreachable

6983:                                             ; No predecessors!
  br label %6984

6984:                                             ; preds = %6983
  br label %6985

6985:                                             ; preds = %6984, %6925
  br label %6986

6986:                                             ; preds = %6985
  br label %6987

6987:                                             ; preds = %6986
  %6988 = load ptr, ptr %144, align 8, !tbaa !9
  %6989 = getelementptr inbounds %struct.s2n_connection, ptr %6988, i32 0, i32 31
  %6990 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6989, i32 0, i32 5
  %6991 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %6990, i32 0, i32 0
  %6992 = load ptr, ptr %6991, align 8, !tbaa !93
  %6993 = load ptr, ptr %144, align 8, !tbaa !9
  %6994 = getelementptr inbounds %struct.s2n_connection, ptr %6993, i32 0, i32 31
  %6995 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6994, i32 0, i32 4
  %6996 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %6995, i32 0, i32 0
  store ptr %6992, ptr %6996, align 8, !tbaa !92
  %6997 = load ptr, ptr %144, align 8, !tbaa !9
  %6998 = getelementptr inbounds %struct.s2n_connection, ptr %6997, i32 0, i32 31
  %6999 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6998, i32 0, i32 5
  %7000 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %6999, i32 0, i32 2
  %7001 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %7000, i32 0, i32 0
  %7002 = load ptr, ptr %7001, align 8, !tbaa !94
  %7003 = load ptr, ptr %144, align 8, !tbaa !9
  %7004 = getelementptr inbounds %struct.s2n_connection, ptr %7003, i32 0, i32 31
  %7005 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7004, i32 0, i32 4
  %7006 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %7005, i32 0, i32 2
  %7007 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %7006, i32 0, i32 0
  store ptr %7002, ptr %7007, align 8, !tbaa !95
  br label %7008

7008:                                             ; preds = %6987
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #11
  store i32 32, ptr %157, align 4, !tbaa !5
  %7009 = load i32, ptr %157, align 4, !tbaa !5
  %7010 = icmp ne i32 %7009, 0
  br i1 %7010, label %7011, label %7073

7011:                                             ; preds = %7008
  %7012 = load ptr, ptr %144, align 8, !tbaa !9
  %7013 = getelementptr inbounds %struct.s2n_connection, ptr %7012, i32 0, i32 32
  %7014 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %7013, i32 0, i32 13
  %7015 = getelementptr inbounds [32 x i8], ptr %7014, i64 0, i64 0
  %7016 = load i32, ptr %157, align 4, !tbaa !5
  %7017 = sext i32 %7016 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 2 %7015, ptr align 16 @hello_retry_req_random, i64 %7017, i1 false)
  %7018 = icmp eq ptr %7015, null
  br i1 %7018, label %7019, label %7072

7019:                                             ; preds = %7011
  br label %7020

7020:                                             ; preds = %7019
  br label %7021

7021:                                             ; preds = %7020
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #11
  %7022 = call ptr @__errno_location() #12
  %7023 = load i32, ptr %7022, align 4, !tbaa !5
  store i32 %7023, ptr %158, align 4, !tbaa !5
  %7024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7025 = call i32 @s2n_print_stacktrace(ptr noundef %7024)
  %7026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7027 = trunc i8 %7026 to i1
  br i1 %7027, label %7028, label %7050

7028:                                             ; preds = %7021
  %7029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7030 = call i32 @fileno(ptr noundef %7029) #11
  %7031 = call i32 @isatty(i32 noundef %7030) #11
  %7032 = icmp ne i32 %7031, 0
  br i1 %7032, label %7033, label %7050

7033:                                             ; preds = %7028
  %7034 = load i32, ptr %158, align 4, !tbaa !5
  %7035 = call ptr @__errno_location() #12
  store i32 %7034, ptr %7035, align 4, !tbaa !5
  %7036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7037 = load i32, ptr @test_count, align 4, !tbaa !5
  %7038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7039 = load i32, ptr %7038, align 4, !tbaa !5
  %7040 = call ptr @s2n_strerror(i32 noundef %7039, ptr noundef @.str.4)
  %7041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7042 = load i32, ptr %7041, align 4, !tbaa !5
  %7043 = call ptr @s2n_strerror_debug(i32 noundef %7042, ptr noundef @.str.4)
  %7044 = call ptr @__errno_location() #12
  %7045 = load i32, ptr %7044, align 4, !tbaa !5
  %7046 = call ptr @strerror(i32 noundef %7045) #11
  %7047 = call ptr @__errno_location() #12
  %7048 = load i32, ptr %7047, align 4, !tbaa !5
  %7049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7036, ptr noundef @.str.2, i32 noundef %7037, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 372, ptr noundef %7040, ptr noundef %7043, ptr noundef %7046, i32 noundef %7048) #11
  br label %7067

7050:                                             ; preds = %7028, %7021
  %7051 = load i32, ptr %158, align 4, !tbaa !5
  %7052 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %7061 = call ptr @__errno_location() #12
  %7062 = load i32, ptr %7061, align 4, !tbaa !5
  %7063 = call ptr @strerror(i32 noundef %7062) #11
  %7064 = call ptr @__errno_location() #12
  %7065 = load i32, ptr %7064, align 4, !tbaa !5
  %7066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7053, ptr noundef @.str.5, i32 noundef %7054, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 372, ptr noundef %7057, ptr noundef %7060, ptr noundef %7063, i32 noundef %7065) #11
  br label %7067

7067:                                             ; preds = %7050, %7033
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #11
  br label %7068

7068:                                             ; preds = %7067
  br label %7069

7069:                                             ; preds = %7068
  call void @exit(i32 noundef 1) #13
  unreachable

7070:                                             ; No predecessors!
  br label %7071

7071:                                             ; preds = %7070
  br label %7072

7072:                                             ; preds = %7071, %7011
  br label %7073

7073:                                             ; preds = %7072, %7008
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %7074

7074:                                             ; preds = %7073
  br label %7075

7075:                                             ; preds = %7074
  br label %7076

7076:                                             ; preds = %7075
  %7077 = load i32, ptr @test_count, align 4, !tbaa !5
  %7078 = add nsw i32 %7077, 1
  store i32 %7078, ptr @test_count, align 4, !tbaa !5
  %7079 = load ptr, ptr %144, align 8, !tbaa !9
  %7080 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %7079, i8 noundef zeroext 34)
  %7081 = icmp eq i32 %7080, -1
  br i1 %7081, label %7082, label %7135

7082:                                             ; preds = %7076
  br label %7083

7083:                                             ; preds = %7082
  br label %7084

7084:                                             ; preds = %7083
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #11
  %7085 = call ptr @__errno_location() #12
  %7086 = load i32, ptr %7085, align 4, !tbaa !5
  store i32 %7086, ptr %159, align 4, !tbaa !5
  %7087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7088 = call i32 @s2n_print_stacktrace(ptr noundef %7087)
  %7089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7090 = trunc i8 %7089 to i1
  br i1 %7090, label %7091, label %7113

7091:                                             ; preds = %7084
  %7092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7093 = call i32 @fileno(ptr noundef %7092) #11
  %7094 = call i32 @isatty(i32 noundef %7093) #11
  %7095 = icmp ne i32 %7094, 0
  br i1 %7095, label %7096, label %7113

7096:                                             ; preds = %7091
  %7097 = load i32, ptr %159, align 4, !tbaa !5
  %7098 = call ptr @__errno_location() #12
  store i32 %7097, ptr %7098, align 4, !tbaa !5
  %7099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7100 = load i32, ptr @test_count, align 4, !tbaa !5
  %7101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7102 = load i32, ptr %7101, align 4, !tbaa !5
  %7103 = call ptr @s2n_strerror(i32 noundef %7102, ptr noundef @.str.4)
  %7104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7105 = load i32, ptr %7104, align 4, !tbaa !5
  %7106 = call ptr @s2n_strerror_debug(i32 noundef %7105, ptr noundef @.str.4)
  %7107 = call ptr @__errno_location() #12
  %7108 = load i32, ptr %7107, align 4, !tbaa !5
  %7109 = call ptr @strerror(i32 noundef %7108) #11
  %7110 = call ptr @__errno_location() #12
  %7111 = load i32, ptr %7110, align 4, !tbaa !5
  %7112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7099, ptr noundef @.str.2, i32 noundef %7100, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 373, ptr noundef %7103, ptr noundef %7106, ptr noundef %7109, i32 noundef %7111) #11
  br label %7130

7113:                                             ; preds = %7091, %7084
  %7114 = load i32, ptr %159, align 4, !tbaa !5
  %7115 = call ptr @__errno_location() #12
  store i32 %7114, ptr %7115, align 4, !tbaa !5
  %7116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7117 = load i32, ptr @test_count, align 4, !tbaa !5
  %7118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7119 = load i32, ptr %7118, align 4, !tbaa !5
  %7120 = call ptr @s2n_strerror(i32 noundef %7119, ptr noundef @.str.4)
  %7121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7122 = load i32, ptr %7121, align 4, !tbaa !5
  %7123 = call ptr @s2n_strerror_debug(i32 noundef %7122, ptr noundef @.str.4)
  %7124 = call ptr @__errno_location() #12
  %7125 = load i32, ptr %7124, align 4, !tbaa !5
  %7126 = call ptr @strerror(i32 noundef %7125) #11
  %7127 = call ptr @__errno_location() #12
  %7128 = load i32, ptr %7127, align 4, !tbaa !5
  %7129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7116, ptr noundef @.str.5, i32 noundef %7117, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 373, ptr noundef %7120, ptr noundef %7123, ptr noundef %7126, i32 noundef %7128) #11
  br label %7130

7130:                                             ; preds = %7113, %7096
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #11
  br label %7131

7131:                                             ; preds = %7130
  br label %7132

7132:                                             ; preds = %7131
  call void @exit(i32 noundef 1) #13
  unreachable

7133:                                             ; No predecessors!
  br label %7134

7134:                                             ; preds = %7133
  br label %7135

7135:                                             ; preds = %7134, %7076
  br label %7136

7136:                                             ; preds = %7135
  br label %7137

7137:                                             ; preds = %7136
  br label %7138

7138:                                             ; preds = %7137
  %7139 = load i32, ptr @test_count, align 4, !tbaa !5
  %7140 = add nsw i32 %7139, 1
  store i32 %7140, ptr @test_count, align 4, !tbaa !5
  %7141 = load ptr, ptr %144, align 8, !tbaa !9
  %7142 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef %7141)
  %7143 = icmp eq i32 %7142, -1
  br i1 %7143, label %7144, label %7197

7144:                                             ; preds = %7138
  br label %7145

7145:                                             ; preds = %7144
  br label %7146

7146:                                             ; preds = %7145
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #11
  %7147 = call ptr @__errno_location() #12
  %7148 = load i32, ptr %7147, align 4, !tbaa !5
  store i32 %7148, ptr %160, align 4, !tbaa !5
  %7149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7150 = call i32 @s2n_print_stacktrace(ptr noundef %7149)
  %7151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7152 = trunc i8 %7151 to i1
  br i1 %7152, label %7153, label %7175

7153:                                             ; preds = %7146
  %7154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7155 = call i32 @fileno(ptr noundef %7154) #11
  %7156 = call i32 @isatty(i32 noundef %7155) #11
  %7157 = icmp ne i32 %7156, 0
  br i1 %7157, label %7158, label %7175

7158:                                             ; preds = %7153
  %7159 = load i32, ptr %160, align 4, !tbaa !5
  %7160 = call ptr @__errno_location() #12
  store i32 %7159, ptr %7160, align 4, !tbaa !5
  %7161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7162 = load i32, ptr @test_count, align 4, !tbaa !5
  %7163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7164 = load i32, ptr %7163, align 4, !tbaa !5
  %7165 = call ptr @s2n_strerror(i32 noundef %7164, ptr noundef @.str.4)
  %7166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7167 = load i32, ptr %7166, align 4, !tbaa !5
  %7168 = call ptr @s2n_strerror_debug(i32 noundef %7167, ptr noundef @.str.4)
  %7169 = call ptr @__errno_location() #12
  %7170 = load i32, ptr %7169, align 4, !tbaa !5
  %7171 = call ptr @strerror(i32 noundef %7170) #11
  %7172 = call ptr @__errno_location() #12
  %7173 = load i32, ptr %7172, align 4, !tbaa !5
  %7174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7161, ptr noundef @.str.2, i32 noundef %7162, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 374, ptr noundef %7165, ptr noundef %7168, ptr noundef %7171, i32 noundef %7173) #11
  br label %7192

7175:                                             ; preds = %7153, %7146
  %7176 = load i32, ptr %160, align 4, !tbaa !5
  %7177 = call ptr @__errno_location() #12
  store i32 %7176, ptr %7177, align 4, !tbaa !5
  %7178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7179 = load i32, ptr @test_count, align 4, !tbaa !5
  %7180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7181 = load i32, ptr %7180, align 4, !tbaa !5
  %7182 = call ptr @s2n_strerror(i32 noundef %7181, ptr noundef @.str.4)
  %7183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7184 = load i32, ptr %7183, align 4, !tbaa !5
  %7185 = call ptr @s2n_strerror_debug(i32 noundef %7184, ptr noundef @.str.4)
  %7186 = call ptr @__errno_location() #12
  %7187 = load i32, ptr %7186, align 4, !tbaa !5
  %7188 = call ptr @strerror(i32 noundef %7187) #11
  %7189 = call ptr @__errno_location() #12
  %7190 = load i32, ptr %7189, align 4, !tbaa !5
  %7191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7178, ptr noundef @.str.5, i32 noundef %7179, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 374, ptr noundef %7182, ptr noundef %7185, ptr noundef %7188, i32 noundef %7190) #11
  br label %7192

7192:                                             ; preds = %7175, %7158
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #11
  br label %7193

7193:                                             ; preds = %7192
  br label %7194

7194:                                             ; preds = %7193
  call void @exit(i32 noundef 1) #13
  unreachable

7195:                                             ; No predecessors!
  br label %7196

7196:                                             ; preds = %7195
  br label %7197

7197:                                             ; preds = %7196, %7138
  br label %7198

7198:                                             ; preds = %7197
  br label %7199

7199:                                             ; preds = %7198
  %7200 = load ptr, ptr %144, align 8, !tbaa !9
  %7201 = getelementptr inbounds %struct.s2n_connection, ptr %7200, i32 0, i32 89
  store i32 4, ptr %7201, align 8, !tbaa !96
  br label %7202

7202:                                             ; preds = %7199
  %7203 = load i32, ptr @test_count, align 4, !tbaa !5
  %7204 = add nsw i32 %7203, 1
  store i32 %7204, ptr @test_count, align 4, !tbaa !5
  %7205 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !55
  %7206 = load ptr, ptr %144, align 8, !tbaa !9
  %7207 = call i32 %7205(ptr noundef %7206, ptr noundef %153)
  %7208 = icmp eq i32 %7207, -1
  br i1 %7208, label %7209, label %7262

7209:                                             ; preds = %7202
  br label %7210

7210:                                             ; preds = %7209
  br label %7211

7211:                                             ; preds = %7210
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #11
  %7212 = call ptr @__errno_location() #12
  %7213 = load i32, ptr %7212, align 4, !tbaa !5
  store i32 %7213, ptr %161, align 4, !tbaa !5
  %7214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7215 = call i32 @s2n_print_stacktrace(ptr noundef %7214)
  %7216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7217 = trunc i8 %7216 to i1
  br i1 %7217, label %7218, label %7240

7218:                                             ; preds = %7211
  %7219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7220 = call i32 @fileno(ptr noundef %7219) #11
  %7221 = call i32 @isatty(i32 noundef %7220) #11
  %7222 = icmp ne i32 %7221, 0
  br i1 %7222, label %7223, label %7240

7223:                                             ; preds = %7218
  %7224 = load i32, ptr %161, align 4, !tbaa !5
  %7225 = call ptr @__errno_location() #12
  store i32 %7224, ptr %7225, align 4, !tbaa !5
  %7226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7227 = load i32, ptr @test_count, align 4, !tbaa !5
  %7228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7229 = load i32, ptr %7228, align 4, !tbaa !5
  %7230 = call ptr @s2n_strerror(i32 noundef %7229, ptr noundef @.str.4)
  %7231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7232 = load i32, ptr %7231, align 4, !tbaa !5
  %7233 = call ptr @s2n_strerror_debug(i32 noundef %7232, ptr noundef @.str.4)
  %7234 = call ptr @__errno_location() #12
  %7235 = load i32, ptr %7234, align 4, !tbaa !5
  %7236 = call ptr @strerror(i32 noundef %7235) #11
  %7237 = call ptr @__errno_location() #12
  %7238 = load i32, ptr %7237, align 4, !tbaa !5
  %7239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7226, ptr noundef @.str.2, i32 noundef %7227, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 377, ptr noundef %7230, ptr noundef %7233, ptr noundef %7236, i32 noundef %7238) #11
  br label %7257

7240:                                             ; preds = %7218, %7211
  %7241 = load i32, ptr %161, align 4, !tbaa !5
  %7242 = call ptr @__errno_location() #12
  store i32 %7241, ptr %7242, align 4, !tbaa !5
  %7243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7244 = load i32, ptr @test_count, align 4, !tbaa !5
  %7245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7246 = load i32, ptr %7245, align 4, !tbaa !5
  %7247 = call ptr @s2n_strerror(i32 noundef %7246, ptr noundef @.str.4)
  %7248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7249 = load i32, ptr %7248, align 4, !tbaa !5
  %7250 = call ptr @s2n_strerror_debug(i32 noundef %7249, ptr noundef @.str.4)
  %7251 = call ptr @__errno_location() #12
  %7252 = load i32, ptr %7251, align 4, !tbaa !5
  %7253 = call ptr @strerror(i32 noundef %7252) #11
  %7254 = call ptr @__errno_location() #12
  %7255 = load i32, ptr %7254, align 4, !tbaa !5
  %7256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7243, ptr noundef @.str.5, i32 noundef %7244, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 377, ptr noundef %7247, ptr noundef %7250, ptr noundef %7253, i32 noundef %7255) #11
  br label %7257

7257:                                             ; preds = %7240, %7223
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #11
  br label %7258

7258:                                             ; preds = %7257
  br label %7259

7259:                                             ; preds = %7258
  call void @exit(i32 noundef 1) #13
  unreachable

7260:                                             ; No predecessors!
  br label %7261

7261:                                             ; preds = %7260
  br label %7262

7262:                                             ; preds = %7261, %7202
  br label %7263

7263:                                             ; preds = %7262
  br label %7264

7264:                                             ; preds = %7263
  call void @llvm.lifetime.start.p0(i64 2, ptr %162) #11
  store i16 0, ptr %162, align 2, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 2, ptr %163) #11
  store i16 0, ptr %163, align 2, !tbaa !57
  br label %7265

7265:                                             ; preds = %7264
  %7266 = load i32, ptr @test_count, align 4, !tbaa !5
  %7267 = add nsw i32 %7266, 1
  store i32 %7267, ptr @test_count, align 4, !tbaa !5
  %7268 = call i32 @s2n_stuffer_read_uint16(ptr noundef %152, ptr noundef %162)
  %7269 = icmp eq i32 %7268, -1
  br i1 %7269, label %7270, label %7323

7270:                                             ; preds = %7265
  br label %7271

7271:                                             ; preds = %7270
  br label %7272

7272:                                             ; preds = %7271
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #11
  %7273 = call ptr @__errno_location() #12
  %7274 = load i32, ptr %7273, align 4, !tbaa !5
  store i32 %7274, ptr %164, align 4, !tbaa !5
  %7275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7276 = call i32 @s2n_print_stacktrace(ptr noundef %7275)
  %7277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7278 = trunc i8 %7277 to i1
  br i1 %7278, label %7279, label %7301

7279:                                             ; preds = %7272
  %7280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7281 = call i32 @fileno(ptr noundef %7280) #11
  %7282 = call i32 @isatty(i32 noundef %7281) #11
  %7283 = icmp ne i32 %7282, 0
  br i1 %7283, label %7284, label %7301

7284:                                             ; preds = %7279
  %7285 = load i32, ptr %164, align 4, !tbaa !5
  %7286 = call ptr @__errno_location() #12
  store i32 %7285, ptr %7286, align 4, !tbaa !5
  %7287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7288 = load i32, ptr @test_count, align 4, !tbaa !5
  %7289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7290 = load i32, ptr %7289, align 4, !tbaa !5
  %7291 = call ptr @s2n_strerror(i32 noundef %7290, ptr noundef @.str.4)
  %7292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7293 = load i32, ptr %7292, align 4, !tbaa !5
  %7294 = call ptr @s2n_strerror_debug(i32 noundef %7293, ptr noundef @.str.4)
  %7295 = call ptr @__errno_location() #12
  %7296 = load i32, ptr %7295, align 4, !tbaa !5
  %7297 = call ptr @strerror(i32 noundef %7296) #11
  %7298 = call ptr @__errno_location() #12
  %7299 = load i32, ptr %7298, align 4, !tbaa !5
  %7300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7287, ptr noundef @.str.2, i32 noundef %7288, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 382, ptr noundef %7291, ptr noundef %7294, ptr noundef %7297, i32 noundef %7299) #11
  br label %7318

7301:                                             ; preds = %7279, %7272
  %7302 = load i32, ptr %164, align 4, !tbaa !5
  %7303 = call ptr @__errno_location() #12
  store i32 %7302, ptr %7303, align 4, !tbaa !5
  %7304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7305 = load i32, ptr @test_count, align 4, !tbaa !5
  %7306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7307 = load i32, ptr %7306, align 4, !tbaa !5
  %7308 = call ptr @s2n_strerror(i32 noundef %7307, ptr noundef @.str.4)
  %7309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7310 = load i32, ptr %7309, align 4, !tbaa !5
  %7311 = call ptr @s2n_strerror_debug(i32 noundef %7310, ptr noundef @.str.4)
  %7312 = call ptr @__errno_location() #12
  %7313 = load i32, ptr %7312, align 4, !tbaa !5
  %7314 = call ptr @strerror(i32 noundef %7313) #11
  %7315 = call ptr @__errno_location() #12
  %7316 = load i32, ptr %7315, align 4, !tbaa !5
  %7317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7304, ptr noundef @.str.5, i32 noundef %7305, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 382, ptr noundef %7308, ptr noundef %7311, ptr noundef %7314, i32 noundef %7316) #11
  br label %7318

7318:                                             ; preds = %7301, %7284
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %7319

7319:                                             ; preds = %7318
  br label %7320

7320:                                             ; preds = %7319
  call void @exit(i32 noundef 1) #13
  unreachable

7321:                                             ; No predecessors!
  br label %7322

7322:                                             ; preds = %7321
  br label %7323

7323:                                             ; preds = %7322, %7265
  br label %7324

7324:                                             ; preds = %7323
  br label %7325

7325:                                             ; preds = %7324
  br label %7326

7326:                                             ; preds = %7325
  %7327 = load i32, ptr @test_count, align 4, !tbaa !5
  %7328 = add nsw i32 %7327, 1
  store i32 %7328, ptr @test_count, align 4, !tbaa !5
  %7329 = call i32 @s2n_stuffer_read_uint16(ptr noundef %153, ptr noundef %163)
  %7330 = icmp eq i32 %7329, -1
  br i1 %7330, label %7331, label %7384

7331:                                             ; preds = %7326
  br label %7332

7332:                                             ; preds = %7331
  br label %7333

7333:                                             ; preds = %7332
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #11
  %7334 = call ptr @__errno_location() #12
  %7335 = load i32, ptr %7334, align 4, !tbaa !5
  store i32 %7335, ptr %165, align 4, !tbaa !5
  %7336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7337 = call i32 @s2n_print_stacktrace(ptr noundef %7336)
  %7338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7339 = trunc i8 %7338 to i1
  br i1 %7339, label %7340, label %7362

7340:                                             ; preds = %7333
  %7341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7342 = call i32 @fileno(ptr noundef %7341) #11
  %7343 = call i32 @isatty(i32 noundef %7342) #11
  %7344 = icmp ne i32 %7343, 0
  br i1 %7344, label %7345, label %7362

7345:                                             ; preds = %7340
  %7346 = load i32, ptr %165, align 4, !tbaa !5
  %7347 = call ptr @__errno_location() #12
  store i32 %7346, ptr %7347, align 4, !tbaa !5
  %7348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7349 = load i32, ptr @test_count, align 4, !tbaa !5
  %7350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7351 = load i32, ptr %7350, align 4, !tbaa !5
  %7352 = call ptr @s2n_strerror(i32 noundef %7351, ptr noundef @.str.4)
  %7353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7354 = load i32, ptr %7353, align 4, !tbaa !5
  %7355 = call ptr @s2n_strerror_debug(i32 noundef %7354, ptr noundef @.str.4)
  %7356 = call ptr @__errno_location() #12
  %7357 = load i32, ptr %7356, align 4, !tbaa !5
  %7358 = call ptr @strerror(i32 noundef %7357) #11
  %7359 = call ptr @__errno_location() #12
  %7360 = load i32, ptr %7359, align 4, !tbaa !5
  %7361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7348, ptr noundef @.str.2, i32 noundef %7349, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 383, ptr noundef %7352, ptr noundef %7355, ptr noundef %7358, i32 noundef %7360) #11
  br label %7379

7362:                                             ; preds = %7340, %7333
  %7363 = load i32, ptr %165, align 4, !tbaa !5
  %7364 = call ptr @__errno_location() #12
  store i32 %7363, ptr %7364, align 4, !tbaa !5
  %7365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7366 = load i32, ptr @test_count, align 4, !tbaa !5
  %7367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7368 = load i32, ptr %7367, align 4, !tbaa !5
  %7369 = call ptr @s2n_strerror(i32 noundef %7368, ptr noundef @.str.4)
  %7370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7371 = load i32, ptr %7370, align 4, !tbaa !5
  %7372 = call ptr @s2n_strerror_debug(i32 noundef %7371, ptr noundef @.str.4)
  %7373 = call ptr @__errno_location() #12
  %7374 = load i32, ptr %7373, align 4, !tbaa !5
  %7375 = call ptr @strerror(i32 noundef %7374) #11
  %7376 = call ptr @__errno_location() #12
  %7377 = load i32, ptr %7376, align 4, !tbaa !5
  %7378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7365, ptr noundef @.str.5, i32 noundef %7366, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 383, ptr noundef %7369, ptr noundef %7372, ptr noundef %7375, i32 noundef %7377) #11
  br label %7379

7379:                                             ; preds = %7362, %7345
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #11
  br label %7380

7380:                                             ; preds = %7379
  br label %7381

7381:                                             ; preds = %7380
  call void @exit(i32 noundef 1) #13
  unreachable

7382:                                             ; No predecessors!
  br label %7383

7383:                                             ; preds = %7382
  br label %7384

7384:                                             ; preds = %7383, %7326
  br label %7385

7385:                                             ; preds = %7384
  br label %7386

7386:                                             ; preds = %7385
  br label %7387

7387:                                             ; preds = %7386
  %7388 = load i32, ptr @test_count, align 4, !tbaa !5
  %7389 = add nsw i32 %7388, 1
  store i32 %7389, ptr @test_count, align 4, !tbaa !5
  %7390 = load i16, ptr %162, align 2, !tbaa !57
  %7391 = zext i16 %7390 to i32
  %7392 = getelementptr inbounds %struct.s2n_stuffer, ptr %152, i32 0, i32 2
  %7393 = load i32, ptr %7392, align 4, !tbaa !58
  %7394 = getelementptr inbounds %struct.s2n_stuffer, ptr %152, i32 0, i32 1
  %7395 = load i32, ptr %7394, align 8, !tbaa !59
  %7396 = sub i32 %7393, %7395
  %7397 = icmp eq i32 %7391, %7396
  br i1 %7397, label %7451, label %7398

7398:                                             ; preds = %7387
  br label %7399

7399:                                             ; preds = %7398
  br label %7400

7400:                                             ; preds = %7399
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #11
  %7401 = call ptr @__errno_location() #12
  %7402 = load i32, ptr %7401, align 4, !tbaa !5
  store i32 %7402, ptr %166, align 4, !tbaa !5
  %7403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7404 = call i32 @s2n_print_stacktrace(ptr noundef %7403)
  %7405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7406 = trunc i8 %7405 to i1
  br i1 %7406, label %7407, label %7429

7407:                                             ; preds = %7400
  %7408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7409 = call i32 @fileno(ptr noundef %7408) #11
  %7410 = call i32 @isatty(i32 noundef %7409) #11
  %7411 = icmp ne i32 %7410, 0
  br i1 %7411, label %7412, label %7429

7412:                                             ; preds = %7407
  %7413 = load i32, ptr %166, align 4, !tbaa !5
  %7414 = call ptr @__errno_location() #12
  store i32 %7413, ptr %7414, align 4, !tbaa !5
  %7415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7416 = load i32, ptr @test_count, align 4, !tbaa !5
  %7417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7418 = load i32, ptr %7417, align 4, !tbaa !5
  %7419 = call ptr @s2n_strerror(i32 noundef %7418, ptr noundef @.str.4)
  %7420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7421 = load i32, ptr %7420, align 4, !tbaa !5
  %7422 = call ptr @s2n_strerror_debug(i32 noundef %7421, ptr noundef @.str.4)
  %7423 = call ptr @__errno_location() #12
  %7424 = load i32, ptr %7423, align 4, !tbaa !5
  %7425 = call ptr @strerror(i32 noundef %7424) #11
  %7426 = call ptr @__errno_location() #12
  %7427 = load i32, ptr %7426, align 4, !tbaa !5
  %7428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7415, ptr noundef @.str.2, i32 noundef %7416, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 384, ptr noundef %7419, ptr noundef %7422, ptr noundef %7425, i32 noundef %7427) #11
  br label %7446

7429:                                             ; preds = %7407, %7400
  %7430 = load i32, ptr %166, align 4, !tbaa !5
  %7431 = call ptr @__errno_location() #12
  store i32 %7430, ptr %7431, align 4, !tbaa !5
  %7432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7433 = load i32, ptr @test_count, align 4, !tbaa !5
  %7434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7435 = load i32, ptr %7434, align 4, !tbaa !5
  %7436 = call ptr @s2n_strerror(i32 noundef %7435, ptr noundef @.str.4)
  %7437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7438 = load i32, ptr %7437, align 4, !tbaa !5
  %7439 = call ptr @s2n_strerror_debug(i32 noundef %7438, ptr noundef @.str.4)
  %7440 = call ptr @__errno_location() #12
  %7441 = load i32, ptr %7440, align 4, !tbaa !5
  %7442 = call ptr @strerror(i32 noundef %7441) #11
  %7443 = call ptr @__errno_location() #12
  %7444 = load i32, ptr %7443, align 4, !tbaa !5
  %7445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7432, ptr noundef @.str.5, i32 noundef %7433, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 384, ptr noundef %7436, ptr noundef %7439, ptr noundef %7442, i32 noundef %7444) #11
  br label %7446

7446:                                             ; preds = %7429, %7412
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #11
  br label %7447

7447:                                             ; preds = %7446
  br label %7448

7448:                                             ; preds = %7447
  call void @exit(i32 noundef 1) #13
  unreachable

7449:                                             ; No predecessors!
  br label %7450

7450:                                             ; preds = %7449
  br label %7451

7451:                                             ; preds = %7450, %7387
  br label %7452

7452:                                             ; preds = %7451
  br label %7453

7453:                                             ; preds = %7452
  br label %7454

7454:                                             ; preds = %7453
  %7455 = load i32, ptr @test_count, align 4, !tbaa !5
  %7456 = add nsw i32 %7455, 1
  store i32 %7456, ptr @test_count, align 4, !tbaa !5
  %7457 = load i16, ptr %163, align 2, !tbaa !57
  %7458 = zext i16 %7457 to i32
  %7459 = getelementptr inbounds %struct.s2n_stuffer, ptr %153, i32 0, i32 2
  %7460 = load i32, ptr %7459, align 4, !tbaa !58
  %7461 = getelementptr inbounds %struct.s2n_stuffer, ptr %153, i32 0, i32 1
  %7462 = load i32, ptr %7461, align 8, !tbaa !59
  %7463 = sub i32 %7460, %7462
  %7464 = icmp eq i32 %7458, %7463
  br i1 %7464, label %7518, label %7465

7465:                                             ; preds = %7454
  br label %7466

7466:                                             ; preds = %7465
  br label %7467

7467:                                             ; preds = %7466
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #11
  %7468 = call ptr @__errno_location() #12
  %7469 = load i32, ptr %7468, align 4, !tbaa !5
  store i32 %7469, ptr %167, align 4, !tbaa !5
  %7470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7471 = call i32 @s2n_print_stacktrace(ptr noundef %7470)
  %7472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7473 = trunc i8 %7472 to i1
  br i1 %7473, label %7474, label %7496

7474:                                             ; preds = %7467
  %7475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7476 = call i32 @fileno(ptr noundef %7475) #11
  %7477 = call i32 @isatty(i32 noundef %7476) #11
  %7478 = icmp ne i32 %7477, 0
  br i1 %7478, label %7479, label %7496

7479:                                             ; preds = %7474
  %7480 = load i32, ptr %167, align 4, !tbaa !5
  %7481 = call ptr @__errno_location() #12
  store i32 %7480, ptr %7481, align 4, !tbaa !5
  %7482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7483 = load i32, ptr @test_count, align 4, !tbaa !5
  %7484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7485 = load i32, ptr %7484, align 4, !tbaa !5
  %7486 = call ptr @s2n_strerror(i32 noundef %7485, ptr noundef @.str.4)
  %7487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7488 = load i32, ptr %7487, align 4, !tbaa !5
  %7489 = call ptr @s2n_strerror_debug(i32 noundef %7488, ptr noundef @.str.4)
  %7490 = call ptr @__errno_location() #12
  %7491 = load i32, ptr %7490, align 4, !tbaa !5
  %7492 = call ptr @strerror(i32 noundef %7491) #11
  %7493 = call ptr @__errno_location() #12
  %7494 = load i32, ptr %7493, align 4, !tbaa !5
  %7495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7482, ptr noundef @.str.2, i32 noundef %7483, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 385, ptr noundef %7486, ptr noundef %7489, ptr noundef %7492, i32 noundef %7494) #11
  br label %7513

7496:                                             ; preds = %7474, %7467
  %7497 = load i32, ptr %167, align 4, !tbaa !5
  %7498 = call ptr @__errno_location() #12
  store i32 %7497, ptr %7498, align 4, !tbaa !5
  %7499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7500 = load i32, ptr @test_count, align 4, !tbaa !5
  %7501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7502 = load i32, ptr %7501, align 4, !tbaa !5
  %7503 = call ptr @s2n_strerror(i32 noundef %7502, ptr noundef @.str.4)
  %7504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7505 = load i32, ptr %7504, align 4, !tbaa !5
  %7506 = call ptr @s2n_strerror_debug(i32 noundef %7505, ptr noundef @.str.4)
  %7507 = call ptr @__errno_location() #12
  %7508 = load i32, ptr %7507, align 4, !tbaa !5
  %7509 = call ptr @strerror(i32 noundef %7508) #11
  %7510 = call ptr @__errno_location() #12
  %7511 = load i32, ptr %7510, align 4, !tbaa !5
  %7512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7499, ptr noundef @.str.5, i32 noundef %7500, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 385, ptr noundef %7503, ptr noundef %7506, ptr noundef %7509, i32 noundef %7511) #11
  br label %7513

7513:                                             ; preds = %7496, %7479
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #11
  br label %7514

7514:                                             ; preds = %7513
  br label %7515

7515:                                             ; preds = %7514
  call void @exit(i32 noundef 1) #13
  unreachable

7516:                                             ; No predecessors!
  br label %7517

7517:                                             ; preds = %7516
  br label %7518

7518:                                             ; preds = %7517, %7454
  br label %7519

7519:                                             ; preds = %7518
  br label %7520

7520:                                             ; preds = %7519
  br label %7521

7521:                                             ; preds = %7520
  %7522 = load i32, ptr @test_count, align 4, !tbaa !5
  %7523 = add nsw i32 %7522, 1
  store i32 %7523, ptr @test_count, align 4, !tbaa !5
  %7524 = load i16, ptr %163, align 2, !tbaa !57
  %7525 = zext i16 %7524 to i32
  %7526 = load i16, ptr %162, align 2, !tbaa !57
  %7527 = zext i16 %7526 to i32
  %7528 = icmp slt i32 %7525, %7527
  br i1 %7528, label %7582, label %7529

7529:                                             ; preds = %7521
  br label %7530

7530:                                             ; preds = %7529
  br label %7531

7531:                                             ; preds = %7530
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #11
  %7532 = call ptr @__errno_location() #12
  %7533 = load i32, ptr %7532, align 4, !tbaa !5
  store i32 %7533, ptr %168, align 4, !tbaa !5
  %7534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7535 = call i32 @s2n_print_stacktrace(ptr noundef %7534)
  %7536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7537 = trunc i8 %7536 to i1
  br i1 %7537, label %7538, label %7560

7538:                                             ; preds = %7531
  %7539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7540 = call i32 @fileno(ptr noundef %7539) #11
  %7541 = call i32 @isatty(i32 noundef %7540) #11
  %7542 = icmp ne i32 %7541, 0
  br i1 %7542, label %7543, label %7560

7543:                                             ; preds = %7538
  %7544 = load i32, ptr %168, align 4, !tbaa !5
  %7545 = call ptr @__errno_location() #12
  store i32 %7544, ptr %7545, align 4, !tbaa !5
  %7546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7547 = load i32, ptr @test_count, align 4, !tbaa !5
  %7548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7549 = load i32, ptr %7548, align 4, !tbaa !5
  %7550 = call ptr @s2n_strerror(i32 noundef %7549, ptr noundef @.str.4)
  %7551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7552 = load i32, ptr %7551, align 4, !tbaa !5
  %7553 = call ptr @s2n_strerror_debug(i32 noundef %7552, ptr noundef @.str.4)
  %7554 = call ptr @__errno_location() #12
  %7555 = load i32, ptr %7554, align 4, !tbaa !5
  %7556 = call ptr @strerror(i32 noundef %7555) #11
  %7557 = call ptr @__errno_location() #12
  %7558 = load i32, ptr %7557, align 4, !tbaa !5
  %7559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7546, ptr noundef @.str.2, i32 noundef %7547, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 386, ptr noundef %7550, ptr noundef %7553, ptr noundef %7556, i32 noundef %7558) #11
  br label %7577

7560:                                             ; preds = %7538, %7531
  %7561 = load i32, ptr %168, align 4, !tbaa !5
  %7562 = call ptr @__errno_location() #12
  store i32 %7561, ptr %7562, align 4, !tbaa !5
  %7563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7564 = load i32, ptr @test_count, align 4, !tbaa !5
  %7565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7566 = load i32, ptr %7565, align 4, !tbaa !5
  %7567 = call ptr @s2n_strerror(i32 noundef %7566, ptr noundef @.str.4)
  %7568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7569 = load i32, ptr %7568, align 4, !tbaa !5
  %7570 = call ptr @s2n_strerror_debug(i32 noundef %7569, ptr noundef @.str.4)
  %7571 = call ptr @__errno_location() #12
  %7572 = load i32, ptr %7571, align 4, !tbaa !5
  %7573 = call ptr @strerror(i32 noundef %7572) #11
  %7574 = call ptr @__errno_location() #12
  %7575 = load i32, ptr %7574, align 4, !tbaa !5
  %7576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7563, ptr noundef @.str.5, i32 noundef %7564, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 386, ptr noundef %7567, ptr noundef %7570, ptr noundef %7573, i32 noundef %7575) #11
  br label %7577

7577:                                             ; preds = %7560, %7543
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #11
  br label %7578

7578:                                             ; preds = %7577
  br label %7579

7579:                                             ; preds = %7578
  call void @exit(i32 noundef 1) #13
  unreachable

7580:                                             ; No predecessors!
  br label %7581

7581:                                             ; preds = %7580
  br label %7582

7582:                                             ; preds = %7581, %7521
  br label %7583

7583:                                             ; preds = %7582
  br label %7584

7584:                                             ; preds = %7583
  call void @llvm.lifetime.start.p0(i64 2, ptr %169) #11
  store i16 0, ptr %169, align 2, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 2, ptr %170) #11
  store i16 0, ptr %170, align 2, !tbaa !57
  br label %7585

7585:                                             ; preds = %7584
  %7586 = load i32, ptr @test_count, align 4, !tbaa !5
  %7587 = add nsw i32 %7586, 1
  store i32 %7587, ptr @test_count, align 4, !tbaa !5
  %7588 = call i32 @s2n_stuffer_read_uint16(ptr noundef %152, ptr noundef %169)
  %7589 = icmp eq i32 %7588, -1
  br i1 %7589, label %7590, label %7643

7590:                                             ; preds = %7585
  br label %7591

7591:                                             ; preds = %7590
  br label %7592

7592:                                             ; preds = %7591
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %7593 = call ptr @__errno_location() #12
  %7594 = load i32, ptr %7593, align 4, !tbaa !5
  store i32 %7594, ptr %171, align 4, !tbaa !5
  %7595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7596 = call i32 @s2n_print_stacktrace(ptr noundef %7595)
  %7597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7598 = trunc i8 %7597 to i1
  br i1 %7598, label %7599, label %7621

7599:                                             ; preds = %7592
  %7600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7601 = call i32 @fileno(ptr noundef %7600) #11
  %7602 = call i32 @isatty(i32 noundef %7601) #11
  %7603 = icmp ne i32 %7602, 0
  br i1 %7603, label %7604, label %7621

7604:                                             ; preds = %7599
  %7605 = load i32, ptr %171, align 4, !tbaa !5
  %7606 = call ptr @__errno_location() #12
  store i32 %7605, ptr %7606, align 4, !tbaa !5
  %7607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7608 = load i32, ptr @test_count, align 4, !tbaa !5
  %7609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7610 = load i32, ptr %7609, align 4, !tbaa !5
  %7611 = call ptr @s2n_strerror(i32 noundef %7610, ptr noundef @.str.4)
  %7612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7613 = load i32, ptr %7612, align 4, !tbaa !5
  %7614 = call ptr @s2n_strerror_debug(i32 noundef %7613, ptr noundef @.str.4)
  %7615 = call ptr @__errno_location() #12
  %7616 = load i32, ptr %7615, align 4, !tbaa !5
  %7617 = call ptr @strerror(i32 noundef %7616) #11
  %7618 = call ptr @__errno_location() #12
  %7619 = load i32, ptr %7618, align 4, !tbaa !5
  %7620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7607, ptr noundef @.str.2, i32 noundef %7608, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 391, ptr noundef %7611, ptr noundef %7614, ptr noundef %7617, i32 noundef %7619) #11
  br label %7638

7621:                                             ; preds = %7599, %7592
  %7622 = load i32, ptr %171, align 4, !tbaa !5
  %7623 = call ptr @__errno_location() #12
  store i32 %7622, ptr %7623, align 4, !tbaa !5
  %7624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7625 = load i32, ptr @test_count, align 4, !tbaa !5
  %7626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7627 = load i32, ptr %7626, align 4, !tbaa !5
  %7628 = call ptr @s2n_strerror(i32 noundef %7627, ptr noundef @.str.4)
  %7629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7630 = load i32, ptr %7629, align 4, !tbaa !5
  %7631 = call ptr @s2n_strerror_debug(i32 noundef %7630, ptr noundef @.str.4)
  %7632 = call ptr @__errno_location() #12
  %7633 = load i32, ptr %7632, align 4, !tbaa !5
  %7634 = call ptr @strerror(i32 noundef %7633) #11
  %7635 = call ptr @__errno_location() #12
  %7636 = load i32, ptr %7635, align 4, !tbaa !5
  %7637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7624, ptr noundef @.str.5, i32 noundef %7625, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 391, ptr noundef %7628, ptr noundef %7631, ptr noundef %7634, i32 noundef %7636) #11
  br label %7638

7638:                                             ; preds = %7621, %7604
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %7639

7639:                                             ; preds = %7638
  br label %7640

7640:                                             ; preds = %7639
  call void @exit(i32 noundef 1) #13
  unreachable

7641:                                             ; No predecessors!
  br label %7642

7642:                                             ; preds = %7641
  br label %7643

7643:                                             ; preds = %7642, %7585
  br label %7644

7644:                                             ; preds = %7643
  br label %7645

7645:                                             ; preds = %7644
  br label %7646

7646:                                             ; preds = %7645
  %7647 = load i32, ptr @test_count, align 4, !tbaa !5
  %7648 = add nsw i32 %7647, 1
  store i32 %7648, ptr @test_count, align 4, !tbaa !5
  %7649 = call i32 @s2n_stuffer_read_uint16(ptr noundef %153, ptr noundef %170)
  %7650 = icmp eq i32 %7649, -1
  br i1 %7650, label %7651, label %7704

7651:                                             ; preds = %7646
  br label %7652

7652:                                             ; preds = %7651
  br label %7653

7653:                                             ; preds = %7652
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #11
  %7654 = call ptr @__errno_location() #12
  %7655 = load i32, ptr %7654, align 4, !tbaa !5
  store i32 %7655, ptr %172, align 4, !tbaa !5
  %7656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7657 = call i32 @s2n_print_stacktrace(ptr noundef %7656)
  %7658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7659 = trunc i8 %7658 to i1
  br i1 %7659, label %7660, label %7682

7660:                                             ; preds = %7653
  %7661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7662 = call i32 @fileno(ptr noundef %7661) #11
  %7663 = call i32 @isatty(i32 noundef %7662) #11
  %7664 = icmp ne i32 %7663, 0
  br i1 %7664, label %7665, label %7682

7665:                                             ; preds = %7660
  %7666 = load i32, ptr %172, align 4, !tbaa !5
  %7667 = call ptr @__errno_location() #12
  store i32 %7666, ptr %7667, align 4, !tbaa !5
  %7668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7669 = load i32, ptr @test_count, align 4, !tbaa !5
  %7670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7671 = load i32, ptr %7670, align 4, !tbaa !5
  %7672 = call ptr @s2n_strerror(i32 noundef %7671, ptr noundef @.str.4)
  %7673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7674 = load i32, ptr %7673, align 4, !tbaa !5
  %7675 = call ptr @s2n_strerror_debug(i32 noundef %7674, ptr noundef @.str.4)
  %7676 = call ptr @__errno_location() #12
  %7677 = load i32, ptr %7676, align 4, !tbaa !5
  %7678 = call ptr @strerror(i32 noundef %7677) #11
  %7679 = call ptr @__errno_location() #12
  %7680 = load i32, ptr %7679, align 4, !tbaa !5
  %7681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7668, ptr noundef @.str.2, i32 noundef %7669, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 392, ptr noundef %7672, ptr noundef %7675, ptr noundef %7678, i32 noundef %7680) #11
  br label %7699

7682:                                             ; preds = %7660, %7653
  %7683 = load i32, ptr %172, align 4, !tbaa !5
  %7684 = call ptr @__errno_location() #12
  store i32 %7683, ptr %7684, align 4, !tbaa !5
  %7685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7686 = load i32, ptr @test_count, align 4, !tbaa !5
  %7687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7688 = load i32, ptr %7687, align 4, !tbaa !5
  %7689 = call ptr @s2n_strerror(i32 noundef %7688, ptr noundef @.str.4)
  %7690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7691 = load i32, ptr %7690, align 4, !tbaa !5
  %7692 = call ptr @s2n_strerror_debug(i32 noundef %7691, ptr noundef @.str.4)
  %7693 = call ptr @__errno_location() #12
  %7694 = load i32, ptr %7693, align 4, !tbaa !5
  %7695 = call ptr @strerror(i32 noundef %7694) #11
  %7696 = call ptr @__errno_location() #12
  %7697 = load i32, ptr %7696, align 4, !tbaa !5
  %7698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7685, ptr noundef @.str.5, i32 noundef %7686, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 392, ptr noundef %7689, ptr noundef %7692, ptr noundef %7695, i32 noundef %7697) #11
  br label %7699

7699:                                             ; preds = %7682, %7665
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %7700

7700:                                             ; preds = %7699
  br label %7701

7701:                                             ; preds = %7700
  call void @exit(i32 noundef 1) #13
  unreachable

7702:                                             ; No predecessors!
  br label %7703

7703:                                             ; preds = %7702
  br label %7704

7704:                                             ; preds = %7703, %7646
  br label %7705

7705:                                             ; preds = %7704
  br label %7706

7706:                                             ; preds = %7705
  br label %7707

7707:                                             ; preds = %7706
  %7708 = load i32, ptr @test_count, align 4, !tbaa !5
  %7709 = add nsw i32 %7708, 1
  store i32 %7709, ptr @test_count, align 4, !tbaa !5
  %7710 = load i16, ptr %169, align 2, !tbaa !57
  %7711 = zext i16 %7710 to i32
  %7712 = load ptr, ptr %144, align 8, !tbaa !9
  %7713 = getelementptr inbounds %struct.s2n_connection, ptr %7712, i32 0, i32 31
  %7714 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7713, i32 0, i32 4
  %7715 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %7714, i32 0, i32 0
  %7716 = load ptr, ptr %7715, align 8, !tbaa !92
  %7717 = getelementptr inbounds %struct.s2n_kem_group, ptr %7716, i32 0, i32 1
  %7718 = load i16, ptr %7717, align 8, !tbaa !81
  %7719 = zext i16 %7718 to i32
  %7720 = icmp eq i32 %7711, %7719
  br i1 %7720, label %7774, label %7721

7721:                                             ; preds = %7707
  br label %7722

7722:                                             ; preds = %7721
  br label %7723

7723:                                             ; preds = %7722
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  %7724 = call ptr @__errno_location() #12
  %7725 = load i32, ptr %7724, align 4, !tbaa !5
  store i32 %7725, ptr %173, align 4, !tbaa !5
  %7726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7727 = call i32 @s2n_print_stacktrace(ptr noundef %7726)
  %7728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7729 = trunc i8 %7728 to i1
  br i1 %7729, label %7730, label %7752

7730:                                             ; preds = %7723
  %7731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7732 = call i32 @fileno(ptr noundef %7731) #11
  %7733 = call i32 @isatty(i32 noundef %7732) #11
  %7734 = icmp ne i32 %7733, 0
  br i1 %7734, label %7735, label %7752

7735:                                             ; preds = %7730
  %7736 = load i32, ptr %173, align 4, !tbaa !5
  %7737 = call ptr @__errno_location() #12
  store i32 %7736, ptr %7737, align 4, !tbaa !5
  %7738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7739 = load i32, ptr @test_count, align 4, !tbaa !5
  %7740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7741 = load i32, ptr %7740, align 4, !tbaa !5
  %7742 = call ptr @s2n_strerror(i32 noundef %7741, ptr noundef @.str.4)
  %7743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7744 = load i32, ptr %7743, align 4, !tbaa !5
  %7745 = call ptr @s2n_strerror_debug(i32 noundef %7744, ptr noundef @.str.4)
  %7746 = call ptr @__errno_location() #12
  %7747 = load i32, ptr %7746, align 4, !tbaa !5
  %7748 = call ptr @strerror(i32 noundef %7747) #11
  %7749 = call ptr @__errno_location() #12
  %7750 = load i32, ptr %7749, align 4, !tbaa !5
  %7751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7738, ptr noundef @.str.2, i32 noundef %7739, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 393, ptr noundef %7742, ptr noundef %7745, ptr noundef %7748, i32 noundef %7750) #11
  br label %7769

7752:                                             ; preds = %7730, %7723
  %7753 = load i32, ptr %173, align 4, !tbaa !5
  %7754 = call ptr @__errno_location() #12
  store i32 %7753, ptr %7754, align 4, !tbaa !5
  %7755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7756 = load i32, ptr @test_count, align 4, !tbaa !5
  %7757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7758 = load i32, ptr %7757, align 4, !tbaa !5
  %7759 = call ptr @s2n_strerror(i32 noundef %7758, ptr noundef @.str.4)
  %7760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7761 = load i32, ptr %7760, align 4, !tbaa !5
  %7762 = call ptr @s2n_strerror_debug(i32 noundef %7761, ptr noundef @.str.4)
  %7763 = call ptr @__errno_location() #12
  %7764 = load i32, ptr %7763, align 4, !tbaa !5
  %7765 = call ptr @strerror(i32 noundef %7764) #11
  %7766 = call ptr @__errno_location() #12
  %7767 = load i32, ptr %7766, align 4, !tbaa !5
  %7768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7755, ptr noundef @.str.5, i32 noundef %7756, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 393, ptr noundef %7759, ptr noundef %7762, ptr noundef %7765, i32 noundef %7767) #11
  br label %7769

7769:                                             ; preds = %7752, %7735
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %7770

7770:                                             ; preds = %7769
  br label %7771

7771:                                             ; preds = %7770
  call void @exit(i32 noundef 1) #13
  unreachable

7772:                                             ; No predecessors!
  br label %7773

7773:                                             ; preds = %7772
  br label %7774

7774:                                             ; preds = %7773, %7707
  br label %7775

7775:                                             ; preds = %7774
  br label %7776

7776:                                             ; preds = %7775
  br label %7777

7777:                                             ; preds = %7776
  %7778 = load i32, ptr @test_count, align 4, !tbaa !5
  %7779 = add nsw i32 %7778, 1
  store i32 %7779, ptr @test_count, align 4, !tbaa !5
  %7780 = load i16, ptr %169, align 2, !tbaa !57
  %7781 = zext i16 %7780 to i32
  %7782 = load i16, ptr %170, align 2, !tbaa !57
  %7783 = zext i16 %7782 to i32
  %7784 = icmp eq i32 %7781, %7783
  br i1 %7784, label %7838, label %7785

7785:                                             ; preds = %7777
  br label %7786

7786:                                             ; preds = %7785
  br label %7787

7787:                                             ; preds = %7786
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #11
  %7788 = call ptr @__errno_location() #12
  %7789 = load i32, ptr %7788, align 4, !tbaa !5
  store i32 %7789, ptr %174, align 4, !tbaa !5
  %7790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7791 = call i32 @s2n_print_stacktrace(ptr noundef %7790)
  %7792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7793 = trunc i8 %7792 to i1
  br i1 %7793, label %7794, label %7816

7794:                                             ; preds = %7787
  %7795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7796 = call i32 @fileno(ptr noundef %7795) #11
  %7797 = call i32 @isatty(i32 noundef %7796) #11
  %7798 = icmp ne i32 %7797, 0
  br i1 %7798, label %7799, label %7816

7799:                                             ; preds = %7794
  %7800 = load i32, ptr %174, align 4, !tbaa !5
  %7801 = call ptr @__errno_location() #12
  store i32 %7800, ptr %7801, align 4, !tbaa !5
  %7802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7803 = load i32, ptr @test_count, align 4, !tbaa !5
  %7804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7805 = load i32, ptr %7804, align 4, !tbaa !5
  %7806 = call ptr @s2n_strerror(i32 noundef %7805, ptr noundef @.str.4)
  %7807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7808 = load i32, ptr %7807, align 4, !tbaa !5
  %7809 = call ptr @s2n_strerror_debug(i32 noundef %7808, ptr noundef @.str.4)
  %7810 = call ptr @__errno_location() #12
  %7811 = load i32, ptr %7810, align 4, !tbaa !5
  %7812 = call ptr @strerror(i32 noundef %7811) #11
  %7813 = call ptr @__errno_location() #12
  %7814 = load i32, ptr %7813, align 4, !tbaa !5
  %7815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7802, ptr noundef @.str.2, i32 noundef %7803, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 394, ptr noundef %7806, ptr noundef %7809, ptr noundef %7812, i32 noundef %7814) #11
  br label %7833

7816:                                             ; preds = %7794, %7787
  %7817 = load i32, ptr %174, align 4, !tbaa !5
  %7818 = call ptr @__errno_location() #12
  store i32 %7817, ptr %7818, align 4, !tbaa !5
  %7819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7820 = load i32, ptr @test_count, align 4, !tbaa !5
  %7821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7822 = load i32, ptr %7821, align 4, !tbaa !5
  %7823 = call ptr @s2n_strerror(i32 noundef %7822, ptr noundef @.str.4)
  %7824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7825 = load i32, ptr %7824, align 4, !tbaa !5
  %7826 = call ptr @s2n_strerror_debug(i32 noundef %7825, ptr noundef @.str.4)
  %7827 = call ptr @__errno_location() #12
  %7828 = load i32, ptr %7827, align 4, !tbaa !5
  %7829 = call ptr @strerror(i32 noundef %7828) #11
  %7830 = call ptr @__errno_location() #12
  %7831 = load i32, ptr %7830, align 4, !tbaa !5
  %7832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7819, ptr noundef @.str.5, i32 noundef %7820, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 394, ptr noundef %7823, ptr noundef %7826, ptr noundef %7829, i32 noundef %7831) #11
  br label %7833

7833:                                             ; preds = %7816, %7799
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #11
  br label %7834

7834:                                             ; preds = %7833
  br label %7835

7835:                                             ; preds = %7834
  call void @exit(i32 noundef 1) #13
  unreachable

7836:                                             ; No predecessors!
  br label %7837

7837:                                             ; preds = %7836
  br label %7838

7838:                                             ; preds = %7837, %7777
  br label %7839

7839:                                             ; preds = %7838
  br label %7840

7840:                                             ; preds = %7839
  call void @llvm.lifetime.start.p0(i64 2, ptr %175) #11
  store i16 0, ptr %175, align 2, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 2, ptr %176) #11
  store i16 0, ptr %176, align 2, !tbaa !57
  br label %7841

7841:                                             ; preds = %7840
  %7842 = load i32, ptr @test_count, align 4, !tbaa !5
  %7843 = add nsw i32 %7842, 1
  store i32 %7843, ptr @test_count, align 4, !tbaa !5
  %7844 = call i32 @s2n_stuffer_read_uint16(ptr noundef %152, ptr noundef %175)
  %7845 = icmp eq i32 %7844, -1
  br i1 %7845, label %7846, label %7899

7846:                                             ; preds = %7841
  br label %7847

7847:                                             ; preds = %7846
  br label %7848

7848:                                             ; preds = %7847
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  %7849 = call ptr @__errno_location() #12
  %7850 = load i32, ptr %7849, align 4, !tbaa !5
  store i32 %7850, ptr %177, align 4, !tbaa !5
  %7851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7852 = call i32 @s2n_print_stacktrace(ptr noundef %7851)
  %7853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7854 = trunc i8 %7853 to i1
  br i1 %7854, label %7855, label %7877

7855:                                             ; preds = %7848
  %7856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7857 = call i32 @fileno(ptr noundef %7856) #11
  %7858 = call i32 @isatty(i32 noundef %7857) #11
  %7859 = icmp ne i32 %7858, 0
  br i1 %7859, label %7860, label %7877

7860:                                             ; preds = %7855
  %7861 = load i32, ptr %177, align 4, !tbaa !5
  %7862 = call ptr @__errno_location() #12
  store i32 %7861, ptr %7862, align 4, !tbaa !5
  %7863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7864 = load i32, ptr @test_count, align 4, !tbaa !5
  %7865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7866 = load i32, ptr %7865, align 4, !tbaa !5
  %7867 = call ptr @s2n_strerror(i32 noundef %7866, ptr noundef @.str.4)
  %7868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7869 = load i32, ptr %7868, align 4, !tbaa !5
  %7870 = call ptr @s2n_strerror_debug(i32 noundef %7869, ptr noundef @.str.4)
  %7871 = call ptr @__errno_location() #12
  %7872 = load i32, ptr %7871, align 4, !tbaa !5
  %7873 = call ptr @strerror(i32 noundef %7872) #11
  %7874 = call ptr @__errno_location() #12
  %7875 = load i32, ptr %7874, align 4, !tbaa !5
  %7876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7863, ptr noundef @.str.2, i32 noundef %7864, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 400, ptr noundef %7867, ptr noundef %7870, ptr noundef %7873, i32 noundef %7875) #11
  br label %7894

7877:                                             ; preds = %7855, %7848
  %7878 = load i32, ptr %177, align 4, !tbaa !5
  %7879 = call ptr @__errno_location() #12
  store i32 %7878, ptr %7879, align 4, !tbaa !5
  %7880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7881 = load i32, ptr @test_count, align 4, !tbaa !5
  %7882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7883 = load i32, ptr %7882, align 4, !tbaa !5
  %7884 = call ptr @s2n_strerror(i32 noundef %7883, ptr noundef @.str.4)
  %7885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7886 = load i32, ptr %7885, align 4, !tbaa !5
  %7887 = call ptr @s2n_strerror_debug(i32 noundef %7886, ptr noundef @.str.4)
  %7888 = call ptr @__errno_location() #12
  %7889 = load i32, ptr %7888, align 4, !tbaa !5
  %7890 = call ptr @strerror(i32 noundef %7889) #11
  %7891 = call ptr @__errno_location() #12
  %7892 = load i32, ptr %7891, align 4, !tbaa !5
  %7893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7880, ptr noundef @.str.5, i32 noundef %7881, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 400, ptr noundef %7884, ptr noundef %7887, ptr noundef %7890, i32 noundef %7892) #11
  br label %7894

7894:                                             ; preds = %7877, %7860
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #11
  br label %7895

7895:                                             ; preds = %7894
  br label %7896

7896:                                             ; preds = %7895
  call void @exit(i32 noundef 1) #13
  unreachable

7897:                                             ; No predecessors!
  br label %7898

7898:                                             ; preds = %7897
  br label %7899

7899:                                             ; preds = %7898, %7841
  br label %7900

7900:                                             ; preds = %7899
  br label %7901

7901:                                             ; preds = %7900
  br label %7902

7902:                                             ; preds = %7901
  %7903 = load i32, ptr @test_count, align 4, !tbaa !5
  %7904 = add nsw i32 %7903, 1
  store i32 %7904, ptr @test_count, align 4, !tbaa !5
  %7905 = call i32 @s2n_stuffer_read_uint16(ptr noundef %153, ptr noundef %176)
  %7906 = icmp eq i32 %7905, -1
  br i1 %7906, label %7907, label %7960

7907:                                             ; preds = %7902
  br label %7908

7908:                                             ; preds = %7907
  br label %7909

7909:                                             ; preds = %7908
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #11
  %7910 = call ptr @__errno_location() #12
  %7911 = load i32, ptr %7910, align 4, !tbaa !5
  store i32 %7911, ptr %178, align 4, !tbaa !5
  %7912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7913 = call i32 @s2n_print_stacktrace(ptr noundef %7912)
  %7914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7915 = trunc i8 %7914 to i1
  br i1 %7915, label %7916, label %7938

7916:                                             ; preds = %7909
  %7917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7918 = call i32 @fileno(ptr noundef %7917) #11
  %7919 = call i32 @isatty(i32 noundef %7918) #11
  %7920 = icmp ne i32 %7919, 0
  br i1 %7920, label %7921, label %7938

7921:                                             ; preds = %7916
  %7922 = load i32, ptr %178, align 4, !tbaa !5
  %7923 = call ptr @__errno_location() #12
  store i32 %7922, ptr %7923, align 4, !tbaa !5
  %7924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7925 = load i32, ptr @test_count, align 4, !tbaa !5
  %7926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7927 = load i32, ptr %7926, align 4, !tbaa !5
  %7928 = call ptr @s2n_strerror(i32 noundef %7927, ptr noundef @.str.4)
  %7929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7930 = load i32, ptr %7929, align 4, !tbaa !5
  %7931 = call ptr @s2n_strerror_debug(i32 noundef %7930, ptr noundef @.str.4)
  %7932 = call ptr @__errno_location() #12
  %7933 = load i32, ptr %7932, align 4, !tbaa !5
  %7934 = call ptr @strerror(i32 noundef %7933) #11
  %7935 = call ptr @__errno_location() #12
  %7936 = load i32, ptr %7935, align 4, !tbaa !5
  %7937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7924, ptr noundef @.str.2, i32 noundef %7925, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 401, ptr noundef %7928, ptr noundef %7931, ptr noundef %7934, i32 noundef %7936) #11
  br label %7955

7938:                                             ; preds = %7916, %7909
  %7939 = load i32, ptr %178, align 4, !tbaa !5
  %7940 = call ptr @__errno_location() #12
  store i32 %7939, ptr %7940, align 4, !tbaa !5
  %7941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7942 = load i32, ptr @test_count, align 4, !tbaa !5
  %7943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7944 = load i32, ptr %7943, align 4, !tbaa !5
  %7945 = call ptr @s2n_strerror(i32 noundef %7944, ptr noundef @.str.4)
  %7946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7947 = load i32, ptr %7946, align 4, !tbaa !5
  %7948 = call ptr @s2n_strerror_debug(i32 noundef %7947, ptr noundef @.str.4)
  %7949 = call ptr @__errno_location() #12
  %7950 = load i32, ptr %7949, align 4, !tbaa !5
  %7951 = call ptr @strerror(i32 noundef %7950) #11
  %7952 = call ptr @__errno_location() #12
  %7953 = load i32, ptr %7952, align 4, !tbaa !5
  %7954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7941, ptr noundef @.str.5, i32 noundef %7942, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 401, ptr noundef %7945, ptr noundef %7948, ptr noundef %7951, i32 noundef %7953) #11
  br label %7955

7955:                                             ; preds = %7938, %7921
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #11
  br label %7956

7956:                                             ; preds = %7955
  br label %7957

7957:                                             ; preds = %7956
  call void @exit(i32 noundef 1) #13
  unreachable

7958:                                             ; No predecessors!
  br label %7959

7959:                                             ; preds = %7958
  br label %7960

7960:                                             ; preds = %7959, %7902
  br label %7961

7961:                                             ; preds = %7960
  br label %7962

7962:                                             ; preds = %7961
  br label %7963

7963:                                             ; preds = %7962
  %7964 = load i32, ptr @test_count, align 4, !tbaa !5
  %7965 = add nsw i32 %7964, 1
  store i32 %7965, ptr @test_count, align 4, !tbaa !5
  %7966 = load i16, ptr %175, align 2, !tbaa !57
  %7967 = zext i16 %7966 to i32
  %7968 = getelementptr inbounds %struct.s2n_stuffer, ptr %152, i32 0, i32 2
  %7969 = load i32, ptr %7968, align 4, !tbaa !58
  %7970 = getelementptr inbounds %struct.s2n_stuffer, ptr %152, i32 0, i32 1
  %7971 = load i32, ptr %7970, align 8, !tbaa !59
  %7972 = sub i32 %7969, %7971
  %7973 = icmp ult i32 %7967, %7972
  br i1 %7973, label %8027, label %7974

7974:                                             ; preds = %7963
  br label %7975

7975:                                             ; preds = %7974
  br label %7976

7976:                                             ; preds = %7975
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #11
  %7977 = call ptr @__errno_location() #12
  %7978 = load i32, ptr %7977, align 4, !tbaa !5
  store i32 %7978, ptr %179, align 4, !tbaa !5
  %7979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7980 = call i32 @s2n_print_stacktrace(ptr noundef %7979)
  %7981 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7982 = trunc i8 %7981 to i1
  br i1 %7982, label %7983, label %8005

7983:                                             ; preds = %7976
  %7984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7985 = call i32 @fileno(ptr noundef %7984) #11
  %7986 = call i32 @isatty(i32 noundef %7985) #11
  %7987 = icmp ne i32 %7986, 0
  br i1 %7987, label %7988, label %8005

7988:                                             ; preds = %7983
  %7989 = load i32, ptr %179, align 4, !tbaa !5
  %7990 = call ptr @__errno_location() #12
  store i32 %7989, ptr %7990, align 4, !tbaa !5
  %7991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7992 = load i32, ptr @test_count, align 4, !tbaa !5
  %7993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7994 = load i32, ptr %7993, align 4, !tbaa !5
  %7995 = call ptr @s2n_strerror(i32 noundef %7994, ptr noundef @.str.4)
  %7996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7997 = load i32, ptr %7996, align 4, !tbaa !5
  %7998 = call ptr @s2n_strerror_debug(i32 noundef %7997, ptr noundef @.str.4)
  %7999 = call ptr @__errno_location() #12
  %8000 = load i32, ptr %7999, align 4, !tbaa !5
  %8001 = call ptr @strerror(i32 noundef %8000) #11
  %8002 = call ptr @__errno_location() #12
  %8003 = load i32, ptr %8002, align 4, !tbaa !5
  %8004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7991, ptr noundef @.str.2, i32 noundef %7992, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 402, ptr noundef %7995, ptr noundef %7998, ptr noundef %8001, i32 noundef %8003) #11
  br label %8022

8005:                                             ; preds = %7983, %7976
  %8006 = load i32, ptr %179, align 4, !tbaa !5
  %8007 = call ptr @__errno_location() #12
  store i32 %8006, ptr %8007, align 4, !tbaa !5
  %8008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8009 = load i32, ptr @test_count, align 4, !tbaa !5
  %8010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8011 = load i32, ptr %8010, align 4, !tbaa !5
  %8012 = call ptr @s2n_strerror(i32 noundef %8011, ptr noundef @.str.4)
  %8013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8014 = load i32, ptr %8013, align 4, !tbaa !5
  %8015 = call ptr @s2n_strerror_debug(i32 noundef %8014, ptr noundef @.str.4)
  %8016 = call ptr @__errno_location() #12
  %8017 = load i32, ptr %8016, align 4, !tbaa !5
  %8018 = call ptr @strerror(i32 noundef %8017) #11
  %8019 = call ptr @__errno_location() #12
  %8020 = load i32, ptr %8019, align 4, !tbaa !5
  %8021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8008, ptr noundef @.str.5, i32 noundef %8009, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 402, ptr noundef %8012, ptr noundef %8015, ptr noundef %8018, i32 noundef %8020) #11
  br label %8022

8022:                                             ; preds = %8005, %7988
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #11
  br label %8023

8023:                                             ; preds = %8022
  br label %8024

8024:                                             ; preds = %8023
  call void @exit(i32 noundef 1) #13
  unreachable

8025:                                             ; No predecessors!
  br label %8026

8026:                                             ; preds = %8025
  br label %8027

8027:                                             ; preds = %8026, %7963
  br label %8028

8028:                                             ; preds = %8027
  br label %8029

8029:                                             ; preds = %8028
  br label %8030

8030:                                             ; preds = %8029
  %8031 = load i32, ptr @test_count, align 4, !tbaa !5
  %8032 = add nsw i32 %8031, 1
  store i32 %8032, ptr @test_count, align 4, !tbaa !5
  %8033 = load i16, ptr %176, align 2, !tbaa !57
  %8034 = zext i16 %8033 to i32
  %8035 = getelementptr inbounds %struct.s2n_stuffer, ptr %153, i32 0, i32 2
  %8036 = load i32, ptr %8035, align 4, !tbaa !58
  %8037 = getelementptr inbounds %struct.s2n_stuffer, ptr %153, i32 0, i32 1
  %8038 = load i32, ptr %8037, align 8, !tbaa !59
  %8039 = sub i32 %8036, %8038
  %8040 = icmp eq i32 %8034, %8039
  br i1 %8040, label %8094, label %8041

8041:                                             ; preds = %8030
  br label %8042

8042:                                             ; preds = %8041
  br label %8043

8043:                                             ; preds = %8042
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %8044 = call ptr @__errno_location() #12
  %8045 = load i32, ptr %8044, align 4, !tbaa !5
  store i32 %8045, ptr %180, align 4, !tbaa !5
  %8046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8047 = call i32 @s2n_print_stacktrace(ptr noundef %8046)
  %8048 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8049 = trunc i8 %8048 to i1
  br i1 %8049, label %8050, label %8072

8050:                                             ; preds = %8043
  %8051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8052 = call i32 @fileno(ptr noundef %8051) #11
  %8053 = call i32 @isatty(i32 noundef %8052) #11
  %8054 = icmp ne i32 %8053, 0
  br i1 %8054, label %8055, label %8072

8055:                                             ; preds = %8050
  %8056 = load i32, ptr %180, align 4, !tbaa !5
  %8057 = call ptr @__errno_location() #12
  store i32 %8056, ptr %8057, align 4, !tbaa !5
  %8058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8059 = load i32, ptr @test_count, align 4, !tbaa !5
  %8060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8061 = load i32, ptr %8060, align 4, !tbaa !5
  %8062 = call ptr @s2n_strerror(i32 noundef %8061, ptr noundef @.str.4)
  %8063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8064 = load i32, ptr %8063, align 4, !tbaa !5
  %8065 = call ptr @s2n_strerror_debug(i32 noundef %8064, ptr noundef @.str.4)
  %8066 = call ptr @__errno_location() #12
  %8067 = load i32, ptr %8066, align 4, !tbaa !5
  %8068 = call ptr @strerror(i32 noundef %8067) #11
  %8069 = call ptr @__errno_location() #12
  %8070 = load i32, ptr %8069, align 4, !tbaa !5
  %8071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8058, ptr noundef @.str.2, i32 noundef %8059, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 403, ptr noundef %8062, ptr noundef %8065, ptr noundef %8068, i32 noundef %8070) #11
  br label %8089

8072:                                             ; preds = %8050, %8043
  %8073 = load i32, ptr %180, align 4, !tbaa !5
  %8074 = call ptr @__errno_location() #12
  store i32 %8073, ptr %8074, align 4, !tbaa !5
  %8075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8076 = load i32, ptr @test_count, align 4, !tbaa !5
  %8077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8078 = load i32, ptr %8077, align 4, !tbaa !5
  %8079 = call ptr @s2n_strerror(i32 noundef %8078, ptr noundef @.str.4)
  %8080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8081 = load i32, ptr %8080, align 4, !tbaa !5
  %8082 = call ptr @s2n_strerror_debug(i32 noundef %8081, ptr noundef @.str.4)
  %8083 = call ptr @__errno_location() #12
  %8084 = load i32, ptr %8083, align 4, !tbaa !5
  %8085 = call ptr @strerror(i32 noundef %8084) #11
  %8086 = call ptr @__errno_location() #12
  %8087 = load i32, ptr %8086, align 4, !tbaa !5
  %8088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8075, ptr noundef @.str.5, i32 noundef %8076, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 403, ptr noundef %8079, ptr noundef %8082, ptr noundef %8085, i32 noundef %8087) #11
  br label %8089

8089:                                             ; preds = %8072, %8055
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %8090

8090:                                             ; preds = %8089
  br label %8091

8091:                                             ; preds = %8090
  call void @exit(i32 noundef 1) #13
  unreachable

8092:                                             ; No predecessors!
  br label %8093

8093:                                             ; preds = %8092
  br label %8094

8094:                                             ; preds = %8093, %8030
  br label %8095

8095:                                             ; preds = %8094
  br label %8096

8096:                                             ; preds = %8095
  %8097 = load i32, ptr %5, align 4, !tbaa !5
  %8098 = icmp ne i32 %8097, 0
  br i1 %8098, label %8099, label %8286

8099:                                             ; preds = %8096
  call void @llvm.lifetime.start.p0(i64 2, ptr %181) #11
  store i16 0, ptr %181, align 2, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 2, ptr %182) #11
  store i16 0, ptr %182, align 2, !tbaa !57
  br label %8100

8100:                                             ; preds = %8099
  %8101 = load i32, ptr @test_count, align 4, !tbaa !5
  %8102 = add nsw i32 %8101, 1
  store i32 %8102, ptr @test_count, align 4, !tbaa !5
  %8103 = call i32 @s2n_stuffer_read_uint16(ptr noundef %152, ptr noundef %181)
  %8104 = icmp eq i32 %8103, -1
  br i1 %8104, label %8105, label %8158

8105:                                             ; preds = %8100
  br label %8106

8106:                                             ; preds = %8105
  br label %8107

8107:                                             ; preds = %8106
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #11
  %8108 = call ptr @__errno_location() #12
  %8109 = load i32, ptr %8108, align 4, !tbaa !5
  store i32 %8109, ptr %183, align 4, !tbaa !5
  %8110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8111 = call i32 @s2n_print_stacktrace(ptr noundef %8110)
  %8112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8113 = trunc i8 %8112 to i1
  br i1 %8113, label %8114, label %8136

8114:                                             ; preds = %8107
  %8115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8116 = call i32 @fileno(ptr noundef %8115) #11
  %8117 = call i32 @isatty(i32 noundef %8116) #11
  %8118 = icmp ne i32 %8117, 0
  br i1 %8118, label %8119, label %8136

8119:                                             ; preds = %8114
  %8120 = load i32, ptr %183, align 4, !tbaa !5
  %8121 = call ptr @__errno_location() #12
  store i32 %8120, ptr %8121, align 4, !tbaa !5
  %8122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8123 = load i32, ptr @test_count, align 4, !tbaa !5
  %8124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8125 = load i32, ptr %8124, align 4, !tbaa !5
  %8126 = call ptr @s2n_strerror(i32 noundef %8125, ptr noundef @.str.4)
  %8127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8128 = load i32, ptr %8127, align 4, !tbaa !5
  %8129 = call ptr @s2n_strerror_debug(i32 noundef %8128, ptr noundef @.str.4)
  %8130 = call ptr @__errno_location() #12
  %8131 = load i32, ptr %8130, align 4, !tbaa !5
  %8132 = call ptr @strerror(i32 noundef %8131) #11
  %8133 = call ptr @__errno_location() #12
  %8134 = load i32, ptr %8133, align 4, !tbaa !5
  %8135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8122, ptr noundef @.str.2, i32 noundef %8123, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 409, ptr noundef %8126, ptr noundef %8129, ptr noundef %8132, i32 noundef %8134) #11
  br label %8153

8136:                                             ; preds = %8114, %8107
  %8137 = load i32, ptr %183, align 4, !tbaa !5
  %8138 = call ptr @__errno_location() #12
  store i32 %8137, ptr %8138, align 4, !tbaa !5
  %8139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8140 = load i32, ptr @test_count, align 4, !tbaa !5
  %8141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8142 = load i32, ptr %8141, align 4, !tbaa !5
  %8143 = call ptr @s2n_strerror(i32 noundef %8142, ptr noundef @.str.4)
  %8144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8145 = load i32, ptr %8144, align 4, !tbaa !5
  %8146 = call ptr @s2n_strerror_debug(i32 noundef %8145, ptr noundef @.str.4)
  %8147 = call ptr @__errno_location() #12
  %8148 = load i32, ptr %8147, align 4, !tbaa !5
  %8149 = call ptr @strerror(i32 noundef %8148) #11
  %8150 = call ptr @__errno_location() #12
  %8151 = load i32, ptr %8150, align 4, !tbaa !5
  %8152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8139, ptr noundef @.str.5, i32 noundef %8140, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 409, ptr noundef %8143, ptr noundef %8146, ptr noundef %8149, i32 noundef %8151) #11
  br label %8153

8153:                                             ; preds = %8136, %8119
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #11
  br label %8154

8154:                                             ; preds = %8153
  br label %8155

8155:                                             ; preds = %8154
  call void @exit(i32 noundef 1) #13
  unreachable

8156:                                             ; No predecessors!
  br label %8157

8157:                                             ; preds = %8156
  br label %8158

8158:                                             ; preds = %8157, %8100
  br label %8159

8159:                                             ; preds = %8158
  br label %8160

8160:                                             ; preds = %8159
  br label %8161

8161:                                             ; preds = %8160
  %8162 = load i32, ptr @test_count, align 4, !tbaa !5
  %8163 = add nsw i32 %8162, 1
  store i32 %8163, ptr @test_count, align 4, !tbaa !5
  %8164 = call i32 @s2n_stuffer_read_uint16(ptr noundef %153, ptr noundef %182)
  %8165 = icmp eq i32 %8164, -1
  br i1 %8165, label %8166, label %8219

8166:                                             ; preds = %8161
  br label %8167

8167:                                             ; preds = %8166
  br label %8168

8168:                                             ; preds = %8167
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #11
  %8169 = call ptr @__errno_location() #12
  %8170 = load i32, ptr %8169, align 4, !tbaa !5
  store i32 %8170, ptr %184, align 4, !tbaa !5
  %8171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8172 = call i32 @s2n_print_stacktrace(ptr noundef %8171)
  %8173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8174 = trunc i8 %8173 to i1
  br i1 %8174, label %8175, label %8197

8175:                                             ; preds = %8168
  %8176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8177 = call i32 @fileno(ptr noundef %8176) #11
  %8178 = call i32 @isatty(i32 noundef %8177) #11
  %8179 = icmp ne i32 %8178, 0
  br i1 %8179, label %8180, label %8197

8180:                                             ; preds = %8175
  %8181 = load i32, ptr %184, align 4, !tbaa !5
  %8182 = call ptr @__errno_location() #12
  store i32 %8181, ptr %8182, align 4, !tbaa !5
  %8183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8184 = load i32, ptr @test_count, align 4, !tbaa !5
  %8185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8186 = load i32, ptr %8185, align 4, !tbaa !5
  %8187 = call ptr @s2n_strerror(i32 noundef %8186, ptr noundef @.str.4)
  %8188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8189 = load i32, ptr %8188, align 4, !tbaa !5
  %8190 = call ptr @s2n_strerror_debug(i32 noundef %8189, ptr noundef @.str.4)
  %8191 = call ptr @__errno_location() #12
  %8192 = load i32, ptr %8191, align 4, !tbaa !5
  %8193 = call ptr @strerror(i32 noundef %8192) #11
  %8194 = call ptr @__errno_location() #12
  %8195 = load i32, ptr %8194, align 4, !tbaa !5
  %8196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8183, ptr noundef @.str.2, i32 noundef %8184, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 410, ptr noundef %8187, ptr noundef %8190, ptr noundef %8193, i32 noundef %8195) #11
  br label %8214

8197:                                             ; preds = %8175, %8168
  %8198 = load i32, ptr %184, align 4, !tbaa !5
  %8199 = call ptr @__errno_location() #12
  store i32 %8198, ptr %8199, align 4, !tbaa !5
  %8200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8201 = load i32, ptr @test_count, align 4, !tbaa !5
  %8202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8203 = load i32, ptr %8202, align 4, !tbaa !5
  %8204 = call ptr @s2n_strerror(i32 noundef %8203, ptr noundef @.str.4)
  %8205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8206 = load i32, ptr %8205, align 4, !tbaa !5
  %8207 = call ptr @s2n_strerror_debug(i32 noundef %8206, ptr noundef @.str.4)
  %8208 = call ptr @__errno_location() #12
  %8209 = load i32, ptr %8208, align 4, !tbaa !5
  %8210 = call ptr @strerror(i32 noundef %8209) #11
  %8211 = call ptr @__errno_location() #12
  %8212 = load i32, ptr %8211, align 4, !tbaa !5
  %8213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8200, ptr noundef @.str.5, i32 noundef %8201, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 410, ptr noundef %8204, ptr noundef %8207, ptr noundef %8210, i32 noundef %8212) #11
  br label %8214

8214:                                             ; preds = %8197, %8180
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #11
  br label %8215

8215:                                             ; preds = %8214
  br label %8216

8216:                                             ; preds = %8215
  call void @exit(i32 noundef 1) #13
  unreachable

8217:                                             ; No predecessors!
  br label %8218

8218:                                             ; preds = %8217
  br label %8219

8219:                                             ; preds = %8218, %8161
  br label %8220

8220:                                             ; preds = %8219
  br label %8221

8221:                                             ; preds = %8220
  br label %8222

8222:                                             ; preds = %8221
  %8223 = load i32, ptr @test_count, align 4, !tbaa !5
  %8224 = add nsw i32 %8223, 1
  store i32 %8224, ptr @test_count, align 4, !tbaa !5
  %8225 = load i16, ptr %181, align 2, !tbaa !57
  %8226 = zext i16 %8225 to i32
  %8227 = load i16, ptr %182, align 2, !tbaa !57
  %8228 = zext i16 %8227 to i32
  %8229 = icmp eq i32 %8226, %8228
  br i1 %8229, label %8283, label %8230

8230:                                             ; preds = %8222
  br label %8231

8231:                                             ; preds = %8230
  br label %8232

8232:                                             ; preds = %8231
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #11
  %8233 = call ptr @__errno_location() #12
  %8234 = load i32, ptr %8233, align 4, !tbaa !5
  store i32 %8234, ptr %185, align 4, !tbaa !5
  %8235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8236 = call i32 @s2n_print_stacktrace(ptr noundef %8235)
  %8237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8238 = trunc i8 %8237 to i1
  br i1 %8238, label %8239, label %8261

8239:                                             ; preds = %8232
  %8240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8241 = call i32 @fileno(ptr noundef %8240) #11
  %8242 = call i32 @isatty(i32 noundef %8241) #11
  %8243 = icmp ne i32 %8242, 0
  br i1 %8243, label %8244, label %8261

8244:                                             ; preds = %8239
  %8245 = load i32, ptr %185, align 4, !tbaa !5
  %8246 = call ptr @__errno_location() #12
  store i32 %8245, ptr %8246, align 4, !tbaa !5
  %8247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8248 = load i32, ptr @test_count, align 4, !tbaa !5
  %8249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8250 = load i32, ptr %8249, align 4, !tbaa !5
  %8251 = call ptr @s2n_strerror(i32 noundef %8250, ptr noundef @.str.4)
  %8252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8253 = load i32, ptr %8252, align 4, !tbaa !5
  %8254 = call ptr @s2n_strerror_debug(i32 noundef %8253, ptr noundef @.str.4)
  %8255 = call ptr @__errno_location() #12
  %8256 = load i32, ptr %8255, align 4, !tbaa !5
  %8257 = call ptr @strerror(i32 noundef %8256) #11
  %8258 = call ptr @__errno_location() #12
  %8259 = load i32, ptr %8258, align 4, !tbaa !5
  %8260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8247, ptr noundef @.str.2, i32 noundef %8248, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 411, ptr noundef %8251, ptr noundef %8254, ptr noundef %8257, i32 noundef %8259) #11
  br label %8278

8261:                                             ; preds = %8239, %8232
  %8262 = load i32, ptr %185, align 4, !tbaa !5
  %8263 = call ptr @__errno_location() #12
  store i32 %8262, ptr %8263, align 4, !tbaa !5
  %8264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8265 = load i32, ptr @test_count, align 4, !tbaa !5
  %8266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8267 = load i32, ptr %8266, align 4, !tbaa !5
  %8268 = call ptr @s2n_strerror(i32 noundef %8267, ptr noundef @.str.4)
  %8269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8270 = load i32, ptr %8269, align 4, !tbaa !5
  %8271 = call ptr @s2n_strerror_debug(i32 noundef %8270, ptr noundef @.str.4)
  %8272 = call ptr @__errno_location() #12
  %8273 = load i32, ptr %8272, align 4, !tbaa !5
  %8274 = call ptr @strerror(i32 noundef %8273) #11
  %8275 = call ptr @__errno_location() #12
  %8276 = load i32, ptr %8275, align 4, !tbaa !5
  %8277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8264, ptr noundef @.str.5, i32 noundef %8265, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 411, ptr noundef %8268, ptr noundef %8271, ptr noundef %8274, i32 noundef %8276) #11
  br label %8278

8278:                                             ; preds = %8261, %8244
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #11
  br label %8279

8279:                                             ; preds = %8278
  br label %8280

8280:                                             ; preds = %8279
  call void @exit(i32 noundef 1) #13
  unreachable

8281:                                             ; No predecessors!
  br label %8282

8282:                                             ; preds = %8281
  br label %8283

8283:                                             ; preds = %8282, %8222
  br label %8284

8284:                                             ; preds = %8283
  br label %8285

8285:                                             ; preds = %8284
  call void @llvm.lifetime.end.p0(i64 2, ptr %182) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %181) #11
  br label %8286

8286:                                             ; preds = %8285, %8096
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #11
  %8287 = load ptr, ptr %144, align 8, !tbaa !9
  %8288 = getelementptr inbounds %struct.s2n_connection, ptr %8287, i32 0, i32 31
  %8289 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %8288, i32 0, i32 5
  store ptr %8289, ptr %186, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %8290 = load ptr, ptr %186, align 8, !tbaa !9
  %8291 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %8290, i32 0, i32 2
  %8292 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %8291, i32 0, i32 0
  %8293 = load ptr, ptr %8292, align 8, !tbaa !76
  %8294 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %8293, i32 0, i32 3
  %8295 = load i8, ptr %8294, align 8, !tbaa !64
  %8296 = zext i8 %8295 to i32
  store i32 %8296, ptr %187, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #11
  %8297 = load ptr, ptr %186, align 8, !tbaa !9
  %8298 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %8297, i32 0, i32 0
  %8299 = load ptr, ptr %8298, align 8, !tbaa !68
  %8300 = getelementptr inbounds %struct.s2n_kem_group, ptr %8299, i32 0, i32 3
  %8301 = load ptr, ptr %8300, align 8, !tbaa !70
  %8302 = getelementptr inbounds %struct.s2n_kem, ptr %8301, i32 0, i32 3
  %8303 = load i16, ptr %8302, align 2, !tbaa !82
  %8304 = zext i16 %8303 to i32
  store i32 %8304, ptr %188, align 4, !tbaa !5
  %8305 = load ptr, ptr %186, align 8, !tbaa !9
  %8306 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %8305, i32 0, i32 0
  %8307 = load ptr, ptr %8306, align 8, !tbaa !68
  %8308 = getelementptr inbounds %struct.s2n_kem_group, ptr %8307, i32 0, i32 4
  %8309 = load i8, ptr %8308, align 8, !tbaa !83, !range !13, !noundef !14
  %8310 = trunc i8 %8309 to i1
  br i1 %8310, label %8703, label %8311

8311:                                             ; preds = %8286
  call void @llvm.lifetime.start.p0(i64 8, ptr %189) #11
  store ptr null, ptr %189, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %190) #11
  store ptr null, ptr %190, align 8, !tbaa !9
  br label %8312

8312:                                             ; preds = %8311
  %8313 = load i32, ptr @test_count, align 4, !tbaa !5
  %8314 = add nsw i32 %8313, 1
  store i32 %8314, ptr @test_count, align 4, !tbaa !5
  %8315 = load i32, ptr %187, align 4, !tbaa !5
  %8316 = call ptr @s2n_stuffer_raw_read(ptr noundef %152, i32 noundef %8315)
  store ptr %8316, ptr %189, align 8, !tbaa !9
  %8317 = icmp eq ptr %8316, null
  br i1 %8317, label %8318, label %8371

8318:                                             ; preds = %8312
  br label %8319

8319:                                             ; preds = %8318
  br label %8320

8320:                                             ; preds = %8319
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #11
  %8321 = call ptr @__errno_location() #12
  %8322 = load i32, ptr %8321, align 4, !tbaa !5
  store i32 %8322, ptr %191, align 4, !tbaa !5
  %8323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8324 = call i32 @s2n_print_stacktrace(ptr noundef %8323)
  %8325 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8326 = trunc i8 %8325 to i1
  br i1 %8326, label %8327, label %8349

8327:                                             ; preds = %8320
  %8328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8329 = call i32 @fileno(ptr noundef %8328) #11
  %8330 = call i32 @isatty(i32 noundef %8329) #11
  %8331 = icmp ne i32 %8330, 0
  br i1 %8331, label %8332, label %8349

8332:                                             ; preds = %8327
  %8333 = load i32, ptr %191, align 4, !tbaa !5
  %8334 = call ptr @__errno_location() #12
  store i32 %8333, ptr %8334, align 4, !tbaa !5
  %8335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8336 = load i32, ptr @test_count, align 4, !tbaa !5
  %8337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8338 = load i32, ptr %8337, align 4, !tbaa !5
  %8339 = call ptr @s2n_strerror(i32 noundef %8338, ptr noundef @.str.4)
  %8340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8341 = load i32, ptr %8340, align 4, !tbaa !5
  %8342 = call ptr @s2n_strerror_debug(i32 noundef %8341, ptr noundef @.str.4)
  %8343 = call ptr @__errno_location() #12
  %8344 = load i32, ptr %8343, align 4, !tbaa !5
  %8345 = call ptr @strerror(i32 noundef %8344) #11
  %8346 = call ptr @__errno_location() #12
  %8347 = load i32, ptr %8346, align 4, !tbaa !5
  %8348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8335, ptr noundef @.str.2, i32 noundef %8336, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 422, ptr noundef %8339, ptr noundef %8342, ptr noundef %8345, i32 noundef %8347) #11
  br label %8366

8349:                                             ; preds = %8327, %8320
  %8350 = load i32, ptr %191, align 4, !tbaa !5
  %8351 = call ptr @__errno_location() #12
  store i32 %8350, ptr %8351, align 4, !tbaa !5
  %8352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8353 = load i32, ptr @test_count, align 4, !tbaa !5
  %8354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8355 = load i32, ptr %8354, align 4, !tbaa !5
  %8356 = call ptr @s2n_strerror(i32 noundef %8355, ptr noundef @.str.4)
  %8357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8358 = load i32, ptr %8357, align 4, !tbaa !5
  %8359 = call ptr @s2n_strerror_debug(i32 noundef %8358, ptr noundef @.str.4)
  %8360 = call ptr @__errno_location() #12
  %8361 = load i32, ptr %8360, align 4, !tbaa !5
  %8362 = call ptr @strerror(i32 noundef %8361) #11
  %8363 = call ptr @__errno_location() #12
  %8364 = load i32, ptr %8363, align 4, !tbaa !5
  %8365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8352, ptr noundef @.str.5, i32 noundef %8353, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 422, ptr noundef %8356, ptr noundef %8359, ptr noundef %8362, i32 noundef %8364) #11
  br label %8366

8366:                                             ; preds = %8349, %8332
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #11
  br label %8367

8367:                                             ; preds = %8366
  br label %8368

8368:                                             ; preds = %8367
  call void @exit(i32 noundef 1) #13
  unreachable

8369:                                             ; No predecessors!
  br label %8370

8370:                                             ; preds = %8369
  br label %8371

8371:                                             ; preds = %8370, %8312
  br label %8372

8372:                                             ; preds = %8371
  br label %8373

8373:                                             ; preds = %8372
  br label %8374

8374:                                             ; preds = %8373
  %8375 = load i32, ptr @test_count, align 4, !tbaa !5
  %8376 = add nsw i32 %8375, 1
  store i32 %8376, ptr @test_count, align 4, !tbaa !5
  %8377 = load i32, ptr %187, align 4, !tbaa !5
  %8378 = call ptr @s2n_stuffer_raw_read(ptr noundef %153, i32 noundef %8377)
  store ptr %8378, ptr %190, align 8, !tbaa !9
  %8379 = icmp eq ptr %8378, null
  br i1 %8379, label %8380, label %8433

8380:                                             ; preds = %8374
  br label %8381

8381:                                             ; preds = %8380
  br label %8382

8382:                                             ; preds = %8381
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #11
  %8383 = call ptr @__errno_location() #12
  %8384 = load i32, ptr %8383, align 4, !tbaa !5
  store i32 %8384, ptr %192, align 4, !tbaa !5
  %8385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8386 = call i32 @s2n_print_stacktrace(ptr noundef %8385)
  %8387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8388 = trunc i8 %8387 to i1
  br i1 %8388, label %8389, label %8411

8389:                                             ; preds = %8382
  %8390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8391 = call i32 @fileno(ptr noundef %8390) #11
  %8392 = call i32 @isatty(i32 noundef %8391) #11
  %8393 = icmp ne i32 %8392, 0
  br i1 %8393, label %8394, label %8411

8394:                                             ; preds = %8389
  %8395 = load i32, ptr %192, align 4, !tbaa !5
  %8396 = call ptr @__errno_location() #12
  store i32 %8395, ptr %8396, align 4, !tbaa !5
  %8397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8398 = load i32, ptr @test_count, align 4, !tbaa !5
  %8399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8400 = load i32, ptr %8399, align 4, !tbaa !5
  %8401 = call ptr @s2n_strerror(i32 noundef %8400, ptr noundef @.str.4)
  %8402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8403 = load i32, ptr %8402, align 4, !tbaa !5
  %8404 = call ptr @s2n_strerror_debug(i32 noundef %8403, ptr noundef @.str.4)
  %8405 = call ptr @__errno_location() #12
  %8406 = load i32, ptr %8405, align 4, !tbaa !5
  %8407 = call ptr @strerror(i32 noundef %8406) #11
  %8408 = call ptr @__errno_location() #12
  %8409 = load i32, ptr %8408, align 4, !tbaa !5
  %8410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8397, ptr noundef @.str.2, i32 noundef %8398, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 423, ptr noundef %8401, ptr noundef %8404, ptr noundef %8407, i32 noundef %8409) #11
  br label %8428

8411:                                             ; preds = %8389, %8382
  %8412 = load i32, ptr %192, align 4, !tbaa !5
  %8413 = call ptr @__errno_location() #12
  store i32 %8412, ptr %8413, align 4, !tbaa !5
  %8414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8415 = load i32, ptr @test_count, align 4, !tbaa !5
  %8416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8417 = load i32, ptr %8416, align 4, !tbaa !5
  %8418 = call ptr @s2n_strerror(i32 noundef %8417, ptr noundef @.str.4)
  %8419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8420 = load i32, ptr %8419, align 4, !tbaa !5
  %8421 = call ptr @s2n_strerror_debug(i32 noundef %8420, ptr noundef @.str.4)
  %8422 = call ptr @__errno_location() #12
  %8423 = load i32, ptr %8422, align 4, !tbaa !5
  %8424 = call ptr @strerror(i32 noundef %8423) #11
  %8425 = call ptr @__errno_location() #12
  %8426 = load i32, ptr %8425, align 4, !tbaa !5
  %8427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8414, ptr noundef @.str.5, i32 noundef %8415, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 423, ptr noundef %8418, ptr noundef %8421, ptr noundef %8424, i32 noundef %8426) #11
  br label %8428

8428:                                             ; preds = %8411, %8394
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #11
  br label %8429

8429:                                             ; preds = %8428
  br label %8430

8430:                                             ; preds = %8429
  call void @exit(i32 noundef 1) #13
  unreachable

8431:                                             ; No predecessors!
  br label %8432

8432:                                             ; preds = %8431
  br label %8433

8433:                                             ; preds = %8432, %8374
  br label %8434

8434:                                             ; preds = %8433
  br label %8435

8435:                                             ; preds = %8434
  br label %8436

8436:                                             ; preds = %8435
  %8437 = load i32, ptr %187, align 4, !tbaa !5
  %8438 = icmp ne i32 %8437, 0
  br i1 %8438, label %8439, label %8505

8439:                                             ; preds = %8436
  br label %8440

8440:                                             ; preds = %8439
  %8441 = load i32, ptr @test_count, align 4, !tbaa !5
  %8442 = add nsw i32 %8441, 1
  store i32 %8442, ptr @test_count, align 4, !tbaa !5
  %8443 = load ptr, ptr %189, align 8, !tbaa !9
  %8444 = load ptr, ptr %190, align 8, !tbaa !9
  %8445 = load i32, ptr %187, align 4, !tbaa !5
  %8446 = sext i32 %8445 to i64
  %8447 = call i32 @memcmp(ptr noundef %8443, ptr noundef %8444, i64 noundef %8446) #14
  %8448 = icmp eq i32 %8447, 0
  br i1 %8448, label %8502, label %8449

8449:                                             ; preds = %8440
  br label %8450

8450:                                             ; preds = %8449
  br label %8451

8451:                                             ; preds = %8450
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #11
  %8452 = call ptr @__errno_location() #12
  %8453 = load i32, ptr %8452, align 4, !tbaa !5
  store i32 %8453, ptr %193, align 4, !tbaa !5
  %8454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8455 = call i32 @s2n_print_stacktrace(ptr noundef %8454)
  %8456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8457 = trunc i8 %8456 to i1
  br i1 %8457, label %8458, label %8480

8458:                                             ; preds = %8451
  %8459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8460 = call i32 @fileno(ptr noundef %8459) #11
  %8461 = call i32 @isatty(i32 noundef %8460) #11
  %8462 = icmp ne i32 %8461, 0
  br i1 %8462, label %8463, label %8480

8463:                                             ; preds = %8458
  %8464 = load i32, ptr %193, align 4, !tbaa !5
  %8465 = call ptr @__errno_location() #12
  store i32 %8464, ptr %8465, align 4, !tbaa !5
  %8466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8467 = load i32, ptr @test_count, align 4, !tbaa !5
  %8468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8469 = load i32, ptr %8468, align 4, !tbaa !5
  %8470 = call ptr @s2n_strerror(i32 noundef %8469, ptr noundef @.str.4)
  %8471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8472 = load i32, ptr %8471, align 4, !tbaa !5
  %8473 = call ptr @s2n_strerror_debug(i32 noundef %8472, ptr noundef @.str.4)
  %8474 = call ptr @__errno_location() #12
  %8475 = load i32, ptr %8474, align 4, !tbaa !5
  %8476 = call ptr @strerror(i32 noundef %8475) #11
  %8477 = call ptr @__errno_location() #12
  %8478 = load i32, ptr %8477, align 4, !tbaa !5
  %8479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8466, ptr noundef @.str.2, i32 noundef %8467, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 424, ptr noundef %8470, ptr noundef %8473, ptr noundef %8476, i32 noundef %8478) #11
  br label %8497

8480:                                             ; preds = %8458, %8451
  %8481 = load i32, ptr %193, align 4, !tbaa !5
  %8482 = call ptr @__errno_location() #12
  store i32 %8481, ptr %8482, align 4, !tbaa !5
  %8483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8484 = load i32, ptr @test_count, align 4, !tbaa !5
  %8485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8486 = load i32, ptr %8485, align 4, !tbaa !5
  %8487 = call ptr @s2n_strerror(i32 noundef %8486, ptr noundef @.str.4)
  %8488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8489 = load i32, ptr %8488, align 4, !tbaa !5
  %8490 = call ptr @s2n_strerror_debug(i32 noundef %8489, ptr noundef @.str.4)
  %8491 = call ptr @__errno_location() #12
  %8492 = load i32, ptr %8491, align 4, !tbaa !5
  %8493 = call ptr @strerror(i32 noundef %8492) #11
  %8494 = call ptr @__errno_location() #12
  %8495 = load i32, ptr %8494, align 4, !tbaa !5
  %8496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8483, ptr noundef @.str.5, i32 noundef %8484, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 424, ptr noundef %8487, ptr noundef %8490, ptr noundef %8493, i32 noundef %8495) #11
  br label %8497

8497:                                             ; preds = %8480, %8463
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #11
  br label %8498

8498:                                             ; preds = %8497
  br label %8499

8499:                                             ; preds = %8498
  call void @exit(i32 noundef 1) #13
  unreachable

8500:                                             ; No predecessors!
  br label %8501

8501:                                             ; preds = %8500
  br label %8502

8502:                                             ; preds = %8501, %8440
  br label %8503

8503:                                             ; preds = %8502
  br label %8504

8504:                                             ; preds = %8503
  br label %8505

8505:                                             ; preds = %8504, %8436
  br label %8506

8506:                                             ; preds = %8505
  br label %8507

8507:                                             ; preds = %8506
  %8508 = load i32, ptr %5, align 4, !tbaa !5
  %8509 = icmp ne i32 %8508, 0
  br i1 %8509, label %8510, label %8702

8510:                                             ; preds = %8507
  call void @llvm.lifetime.start.p0(i64 2, ptr %194) #11
  store i16 0, ptr %194, align 2, !tbaa !57
  br label %8511

8511:                                             ; preds = %8510
  %8512 = load i32, ptr @test_count, align 4, !tbaa !5
  %8513 = add nsw i32 %8512, 1
  store i32 %8513, ptr @test_count, align 4, !tbaa !5
  %8514 = call i32 @s2n_stuffer_read_uint16(ptr noundef %153, ptr noundef %194)
  %8515 = icmp eq i32 %8514, -1
  br i1 %8515, label %8516, label %8569

8516:                                             ; preds = %8511
  br label %8517

8517:                                             ; preds = %8516
  br label %8518

8518:                                             ; preds = %8517
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #11
  %8519 = call ptr @__errno_location() #12
  %8520 = load i32, ptr %8519, align 4, !tbaa !5
  store i32 %8520, ptr %195, align 4, !tbaa !5
  %8521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8522 = call i32 @s2n_print_stacktrace(ptr noundef %8521)
  %8523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8524 = trunc i8 %8523 to i1
  br i1 %8524, label %8525, label %8547

8525:                                             ; preds = %8518
  %8526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8527 = call i32 @fileno(ptr noundef %8526) #11
  %8528 = call i32 @isatty(i32 noundef %8527) #11
  %8529 = icmp ne i32 %8528, 0
  br i1 %8529, label %8530, label %8547

8530:                                             ; preds = %8525
  %8531 = load i32, ptr %195, align 4, !tbaa !5
  %8532 = call ptr @__errno_location() #12
  store i32 %8531, ptr %8532, align 4, !tbaa !5
  %8533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8534 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8536, ptr noundef @.str.4)
  %8538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8539 = load i32, ptr %8538, align 4, !tbaa !5
  %8540 = call ptr @s2n_strerror_debug(i32 noundef %8539, ptr noundef @.str.4)
  %8541 = call ptr @__errno_location() #12
  %8542 = load i32, ptr %8541, align 4, !tbaa !5
  %8543 = call ptr @strerror(i32 noundef %8542) #11
  %8544 = call ptr @__errno_location() #12
  %8545 = load i32, ptr %8544, align 4, !tbaa !5
  %8546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8533, ptr noundef @.str.2, i32 noundef %8534, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 430, ptr noundef %8537, ptr noundef %8540, ptr noundef %8543, i32 noundef %8545) #11
  br label %8564

8547:                                             ; preds = %8525, %8518
  %8548 = load i32, ptr %195, align 4, !tbaa !5
  %8549 = call ptr @__errno_location() #12
  store i32 %8548, ptr %8549, align 4, !tbaa !5
  %8550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8551 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8553, ptr noundef @.str.4)
  %8555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8556 = load i32, ptr %8555, align 4, !tbaa !5
  %8557 = call ptr @s2n_strerror_debug(i32 noundef %8556, ptr noundef @.str.4)
  %8558 = call ptr @__errno_location() #12
  %8559 = load i32, ptr %8558, align 4, !tbaa !5
  %8560 = call ptr @strerror(i32 noundef %8559) #11
  %8561 = call ptr @__errno_location() #12
  %8562 = load i32, ptr %8561, align 4, !tbaa !5
  %8563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8550, ptr noundef @.str.5, i32 noundef %8551, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 430, ptr noundef %8554, ptr noundef %8557, ptr noundef %8560, i32 noundef %8562) #11
  br label %8564

8564:                                             ; preds = %8547, %8530
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #11
  br label %8565

8565:                                             ; preds = %8564
  br label %8566

8566:                                             ; preds = %8565
  call void @exit(i32 noundef 1) #13
  unreachable

8567:                                             ; No predecessors!
  br label %8568

8568:                                             ; preds = %8567
  br label %8569

8569:                                             ; preds = %8568, %8511
  br label %8570

8570:                                             ; preds = %8569
  br label %8571

8571:                                             ; preds = %8570
  br label %8572

8572:                                             ; preds = %8571
  %8573 = load i32, ptr @test_count, align 4, !tbaa !5
  %8574 = add nsw i32 %8573, 1
  store i32 %8574, ptr @test_count, align 4, !tbaa !5
  %8575 = load i16, ptr %194, align 2, !tbaa !57
  %8576 = zext i16 %8575 to i32
  %8577 = load i32, ptr %188, align 4, !tbaa !5
  %8578 = icmp eq i32 %8576, %8577
  br i1 %8578, label %8632, label %8579

8579:                                             ; preds = %8572
  br label %8580

8580:                                             ; preds = %8579
  br label %8581

8581:                                             ; preds = %8580
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #11
  %8582 = call ptr @__errno_location() #12
  %8583 = load i32, ptr %8582, align 4, !tbaa !5
  store i32 %8583, ptr %196, align 4, !tbaa !5
  %8584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8585 = call i32 @s2n_print_stacktrace(ptr noundef %8584)
  %8586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8587 = trunc i8 %8586 to i1
  br i1 %8587, label %8588, label %8610

8588:                                             ; preds = %8581
  %8589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8590 = call i32 @fileno(ptr noundef %8589) #11
  %8591 = call i32 @isatty(i32 noundef %8590) #11
  %8592 = icmp ne i32 %8591, 0
  br i1 %8592, label %8593, label %8610

8593:                                             ; preds = %8588
  %8594 = load i32, ptr %196, align 4, !tbaa !5
  %8595 = call ptr @__errno_location() #12
  store i32 %8594, ptr %8595, align 4, !tbaa !5
  %8596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8597 = load i32, ptr @test_count, align 4, !tbaa !5
  %8598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8599 = load i32, ptr %8598, align 4, !tbaa !5
  %8600 = call ptr @s2n_strerror(i32 noundef %8599, ptr noundef @.str.4)
  %8601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8602 = load i32, ptr %8601, align 4, !tbaa !5
  %8603 = call ptr @s2n_strerror_debug(i32 noundef %8602, ptr noundef @.str.4)
  %8604 = call ptr @__errno_location() #12
  %8605 = load i32, ptr %8604, align 4, !tbaa !5
  %8606 = call ptr @strerror(i32 noundef %8605) #11
  %8607 = call ptr @__errno_location() #12
  %8608 = load i32, ptr %8607, align 4, !tbaa !5
  %8609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8596, ptr noundef @.str.2, i32 noundef %8597, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 431, ptr noundef %8600, ptr noundef %8603, ptr noundef %8606, i32 noundef %8608) #11
  br label %8627

8610:                                             ; preds = %8588, %8581
  %8611 = load i32, ptr %196, align 4, !tbaa !5
  %8612 = call ptr @__errno_location() #12
  store i32 %8611, ptr %8612, align 4, !tbaa !5
  %8613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8614 = load i32, ptr @test_count, align 4, !tbaa !5
  %8615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8616 = load i32, ptr %8615, align 4, !tbaa !5
  %8617 = call ptr @s2n_strerror(i32 noundef %8616, ptr noundef @.str.4)
  %8618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8619 = load i32, ptr %8618, align 4, !tbaa !5
  %8620 = call ptr @s2n_strerror_debug(i32 noundef %8619, ptr noundef @.str.4)
  %8621 = call ptr @__errno_location() #12
  %8622 = load i32, ptr %8621, align 4, !tbaa !5
  %8623 = call ptr @strerror(i32 noundef %8622) #11
  %8624 = call ptr @__errno_location() #12
  %8625 = load i32, ptr %8624, align 4, !tbaa !5
  %8626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8613, ptr noundef @.str.5, i32 noundef %8614, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 431, ptr noundef %8617, ptr noundef %8620, ptr noundef %8623, i32 noundef %8625) #11
  br label %8627

8627:                                             ; preds = %8610, %8593
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #11
  br label %8628

8628:                                             ; preds = %8627
  br label %8629

8629:                                             ; preds = %8628
  call void @exit(i32 noundef 1) #13
  unreachable

8630:                                             ; No predecessors!
  br label %8631

8631:                                             ; preds = %8630
  br label %8632

8632:                                             ; preds = %8631, %8572
  br label %8633

8633:                                             ; preds = %8632
  br label %8634

8634:                                             ; preds = %8633
  br label %8635

8635:                                             ; preds = %8634
  %8636 = load i32, ptr @test_count, align 4, !tbaa !5
  %8637 = add nsw i32 %8636, 1
  store i32 %8637, ptr @test_count, align 4, !tbaa !5
  %8638 = load i16, ptr %194, align 2, !tbaa !57
  %8639 = zext i16 %8638 to i32
  %8640 = getelementptr inbounds %struct.s2n_stuffer, ptr %153, i32 0, i32 2
  %8641 = load i32, ptr %8640, align 4, !tbaa !58
  %8642 = getelementptr inbounds %struct.s2n_stuffer, ptr %153, i32 0, i32 1
  %8643 = load i32, ptr %8642, align 8, !tbaa !59
  %8644 = sub i32 %8641, %8643
  %8645 = icmp eq i32 %8639, %8644
  br i1 %8645, label %8699, label %8646

8646:                                             ; preds = %8635
  br label %8647

8647:                                             ; preds = %8646
  br label %8648

8648:                                             ; preds = %8647
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #11
  %8649 = call ptr @__errno_location() #12
  %8650 = load i32, ptr %8649, align 4, !tbaa !5
  store i32 %8650, ptr %197, align 4, !tbaa !5
  %8651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8652 = call i32 @s2n_print_stacktrace(ptr noundef %8651)
  %8653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8654 = trunc i8 %8653 to i1
  br i1 %8654, label %8655, label %8677

8655:                                             ; preds = %8648
  %8656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8657 = call i32 @fileno(ptr noundef %8656) #11
  %8658 = call i32 @isatty(i32 noundef %8657) #11
  %8659 = icmp ne i32 %8658, 0
  br i1 %8659, label %8660, label %8677

8660:                                             ; preds = %8655
  %8661 = load i32, ptr %197, align 4, !tbaa !5
  %8662 = call ptr @__errno_location() #12
  store i32 %8661, ptr %8662, align 4, !tbaa !5
  %8663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8664 = load i32, ptr @test_count, align 4, !tbaa !5
  %8665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8666 = load i32, ptr %8665, align 4, !tbaa !5
  %8667 = call ptr @s2n_strerror(i32 noundef %8666, ptr noundef @.str.4)
  %8668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8669 = load i32, ptr %8668, align 4, !tbaa !5
  %8670 = call ptr @s2n_strerror_debug(i32 noundef %8669, ptr noundef @.str.4)
  %8671 = call ptr @__errno_location() #12
  %8672 = load i32, ptr %8671, align 4, !tbaa !5
  %8673 = call ptr @strerror(i32 noundef %8672) #11
  %8674 = call ptr @__errno_location() #12
  %8675 = load i32, ptr %8674, align 4, !tbaa !5
  %8676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8663, ptr noundef @.str.2, i32 noundef %8664, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 432, ptr noundef %8667, ptr noundef %8670, ptr noundef %8673, i32 noundef %8675) #11
  br label %8694

8677:                                             ; preds = %8655, %8648
  %8678 = load i32, ptr %197, align 4, !tbaa !5
  %8679 = call ptr @__errno_location() #12
  store i32 %8678, ptr %8679, align 4, !tbaa !5
  %8680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8681 = load i32, ptr @test_count, align 4, !tbaa !5
  %8682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8683 = load i32, ptr %8682, align 4, !tbaa !5
  %8684 = call ptr @s2n_strerror(i32 noundef %8683, ptr noundef @.str.4)
  %8685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8686 = load i32, ptr %8685, align 4, !tbaa !5
  %8687 = call ptr @s2n_strerror_debug(i32 noundef %8686, ptr noundef @.str.4)
  %8688 = call ptr @__errno_location() #12
  %8689 = load i32, ptr %8688, align 4, !tbaa !5
  %8690 = call ptr @strerror(i32 noundef %8689) #11
  %8691 = call ptr @__errno_location() #12
  %8692 = load i32, ptr %8691, align 4, !tbaa !5
  %8693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8680, ptr noundef @.str.5, i32 noundef %8681, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 432, ptr noundef %8684, ptr noundef %8687, ptr noundef %8690, i32 noundef %8692) #11
  br label %8694

8694:                                             ; preds = %8677, %8660
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #11
  br label %8695

8695:                                             ; preds = %8694
  br label %8696

8696:                                             ; preds = %8695
  call void @exit(i32 noundef 1) #13
  unreachable

8697:                                             ; No predecessors!
  br label %8698

8698:                                             ; preds = %8697
  br label %8699

8699:                                             ; preds = %8698, %8635
  br label %8700

8700:                                             ; preds = %8699
  br label %8701

8701:                                             ; preds = %8700
  call void @llvm.lifetime.end.p0(i64 2, ptr %194) #11
  br label %8702

8702:                                             ; preds = %8701, %8507
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #11
  br label %9280

8703:                                             ; preds = %8286
  call void @llvm.lifetime.start.p0(i64 8, ptr %198) #11
  store ptr null, ptr %198, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %199) #11
  store ptr null, ptr %199, align 8, !tbaa !9
  br label %8704

8704:                                             ; preds = %8703
  %8705 = load i32, ptr @test_count, align 4, !tbaa !5
  %8706 = add nsw i32 %8705, 1
  store i32 %8706, ptr @test_count, align 4, !tbaa !5
  %8707 = load i32, ptr %188, align 4, !tbaa !5
  %8708 = call ptr @s2n_stuffer_raw_read(ptr noundef %152, i32 noundef %8707)
  store ptr %8708, ptr %198, align 8, !tbaa !9
  %8709 = icmp eq ptr %8708, null
  br i1 %8709, label %8710, label %8763

8710:                                             ; preds = %8704
  br label %8711

8711:                                             ; preds = %8710
  br label %8712

8712:                                             ; preds = %8711
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  %8713 = call ptr @__errno_location() #12
  %8714 = load i32, ptr %8713, align 4, !tbaa !5
  store i32 %8714, ptr %200, align 4, !tbaa !5
  %8715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8716 = call i32 @s2n_print_stacktrace(ptr noundef %8715)
  %8717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8718 = trunc i8 %8717 to i1
  br i1 %8718, label %8719, label %8741

8719:                                             ; preds = %8712
  %8720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8721 = call i32 @fileno(ptr noundef %8720) #11
  %8722 = call i32 @isatty(i32 noundef %8721) #11
  %8723 = icmp ne i32 %8722, 0
  br i1 %8723, label %8724, label %8741

8724:                                             ; preds = %8719
  %8725 = load i32, ptr %200, align 4, !tbaa !5
  %8726 = call ptr @__errno_location() #12
  store i32 %8725, ptr %8726, align 4, !tbaa !5
  %8727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8728 = load i32, ptr @test_count, align 4, !tbaa !5
  %8729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8730 = load i32, ptr %8729, align 4, !tbaa !5
  %8731 = call ptr @s2n_strerror(i32 noundef %8730, ptr noundef @.str.4)
  %8732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8733 = load i32, ptr %8732, align 4, !tbaa !5
  %8734 = call ptr @s2n_strerror_debug(i32 noundef %8733, ptr noundef @.str.4)
  %8735 = call ptr @__errno_location() #12
  %8736 = load i32, ptr %8735, align 4, !tbaa !5
  %8737 = call ptr @strerror(i32 noundef %8736) #11
  %8738 = call ptr @__errno_location() #12
  %8739 = load i32, ptr %8738, align 4, !tbaa !5
  %8740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8727, ptr noundef @.str.2, i32 noundef %8728, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 436, ptr noundef %8731, ptr noundef %8734, ptr noundef %8737, i32 noundef %8739) #11
  br label %8758

8741:                                             ; preds = %8719, %8712
  %8742 = load i32, ptr %200, align 4, !tbaa !5
  %8743 = call ptr @__errno_location() #12
  store i32 %8742, ptr %8743, align 4, !tbaa !5
  %8744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8745 = load i32, ptr @test_count, align 4, !tbaa !5
  %8746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8747 = load i32, ptr %8746, align 4, !tbaa !5
  %8748 = call ptr @s2n_strerror(i32 noundef %8747, ptr noundef @.str.4)
  %8749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8750 = load i32, ptr %8749, align 4, !tbaa !5
  %8751 = call ptr @s2n_strerror_debug(i32 noundef %8750, ptr noundef @.str.4)
  %8752 = call ptr @__errno_location() #12
  %8753 = load i32, ptr %8752, align 4, !tbaa !5
  %8754 = call ptr @strerror(i32 noundef %8753) #11
  %8755 = call ptr @__errno_location() #12
  %8756 = load i32, ptr %8755, align 4, !tbaa !5
  %8757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8744, ptr noundef @.str.5, i32 noundef %8745, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 436, ptr noundef %8748, ptr noundef %8751, ptr noundef %8754, i32 noundef %8756) #11
  br label %8758

8758:                                             ; preds = %8741, %8724
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  br label %8759

8759:                                             ; preds = %8758
  br label %8760

8760:                                             ; preds = %8759
  call void @exit(i32 noundef 1) #13
  unreachable

8761:                                             ; No predecessors!
  br label %8762

8762:                                             ; preds = %8761
  br label %8763

8763:                                             ; preds = %8762, %8704
  br label %8764

8764:                                             ; preds = %8763
  br label %8765

8765:                                             ; preds = %8764
  br label %8766

8766:                                             ; preds = %8765
  %8767 = load i32, ptr @test_count, align 4, !tbaa !5
  %8768 = add nsw i32 %8767, 1
  store i32 %8768, ptr @test_count, align 4, !tbaa !5
  %8769 = load i32, ptr %188, align 4, !tbaa !5
  %8770 = call ptr @s2n_stuffer_raw_read(ptr noundef %153, i32 noundef %8769)
  store ptr %8770, ptr %199, align 8, !tbaa !9
  %8771 = icmp eq ptr %8770, null
  br i1 %8771, label %8772, label %8825

8772:                                             ; preds = %8766
  br label %8773

8773:                                             ; preds = %8772
  br label %8774

8774:                                             ; preds = %8773
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  %8775 = call ptr @__errno_location() #12
  %8776 = load i32, ptr %8775, align 4, !tbaa !5
  store i32 %8776, ptr %201, align 4, !tbaa !5
  %8777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8778 = call i32 @s2n_print_stacktrace(ptr noundef %8777)
  %8779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8780 = trunc i8 %8779 to i1
  br i1 %8780, label %8781, label %8803

8781:                                             ; preds = %8774
  %8782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8783 = call i32 @fileno(ptr noundef %8782) #11
  %8784 = call i32 @isatty(i32 noundef %8783) #11
  %8785 = icmp ne i32 %8784, 0
  br i1 %8785, label %8786, label %8803

8786:                                             ; preds = %8781
  %8787 = load i32, ptr %201, align 4, !tbaa !5
  %8788 = call ptr @__errno_location() #12
  store i32 %8787, ptr %8788, align 4, !tbaa !5
  %8789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8790 = load i32, ptr @test_count, align 4, !tbaa !5
  %8791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8792 = load i32, ptr %8791, align 4, !tbaa !5
  %8793 = call ptr @s2n_strerror(i32 noundef %8792, ptr noundef @.str.4)
  %8794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8795 = load i32, ptr %8794, align 4, !tbaa !5
  %8796 = call ptr @s2n_strerror_debug(i32 noundef %8795, ptr noundef @.str.4)
  %8797 = call ptr @__errno_location() #12
  %8798 = load i32, ptr %8797, align 4, !tbaa !5
  %8799 = call ptr @strerror(i32 noundef %8798) #11
  %8800 = call ptr @__errno_location() #12
  %8801 = load i32, ptr %8800, align 4, !tbaa !5
  %8802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8789, ptr noundef @.str.2, i32 noundef %8790, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 437, ptr noundef %8793, ptr noundef %8796, ptr noundef %8799, i32 noundef %8801) #11
  br label %8820

8803:                                             ; preds = %8781, %8774
  %8804 = load i32, ptr %201, align 4, !tbaa !5
  %8805 = call ptr @__errno_location() #12
  store i32 %8804, ptr %8805, align 4, !tbaa !5
  %8806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8807 = load i32, ptr @test_count, align 4, !tbaa !5
  %8808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8809 = load i32, ptr %8808, align 4, !tbaa !5
  %8810 = call ptr @s2n_strerror(i32 noundef %8809, ptr noundef @.str.4)
  %8811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8812 = load i32, ptr %8811, align 4, !tbaa !5
  %8813 = call ptr @s2n_strerror_debug(i32 noundef %8812, ptr noundef @.str.4)
  %8814 = call ptr @__errno_location() #12
  %8815 = load i32, ptr %8814, align 4, !tbaa !5
  %8816 = call ptr @strerror(i32 noundef %8815) #11
  %8817 = call ptr @__errno_location() #12
  %8818 = load i32, ptr %8817, align 4, !tbaa !5
  %8819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8806, ptr noundef @.str.5, i32 noundef %8807, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 437, ptr noundef %8810, ptr noundef %8813, ptr noundef %8816, i32 noundef %8818) #11
  br label %8820

8820:                                             ; preds = %8803, %8786
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  br label %8821

8821:                                             ; preds = %8820
  br label %8822

8822:                                             ; preds = %8821
  call void @exit(i32 noundef 1) #13
  unreachable

8823:                                             ; No predecessors!
  br label %8824

8824:                                             ; preds = %8823
  br label %8825

8825:                                             ; preds = %8824, %8766
  br label %8826

8826:                                             ; preds = %8825
  br label %8827

8827:                                             ; preds = %8826
  %8828 = load i32, ptr %5, align 4, !tbaa !5
  %8829 = icmp ne i32 %8828, 0
  br i1 %8829, label %8830, label %9017

8830:                                             ; preds = %8827
  call void @llvm.lifetime.start.p0(i64 2, ptr %202) #11
  store i16 0, ptr %202, align 2, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 2, ptr %203) #11
  store i16 0, ptr %203, align 2, !tbaa !57
  br label %8831

8831:                                             ; preds = %8830
  %8832 = load i32, ptr @test_count, align 4, !tbaa !5
  %8833 = add nsw i32 %8832, 1
  store i32 %8833, ptr @test_count, align 4, !tbaa !5
  %8834 = call i32 @s2n_stuffer_read_uint16(ptr noundef %152, ptr noundef %202)
  %8835 = icmp eq i32 %8834, -1
  br i1 %8835, label %8836, label %8889

8836:                                             ; preds = %8831
  br label %8837

8837:                                             ; preds = %8836
  br label %8838

8838:                                             ; preds = %8837
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #11
  %8839 = call ptr @__errno_location() #12
  %8840 = load i32, ptr %8839, align 4, !tbaa !5
  store i32 %8840, ptr %204, align 4, !tbaa !5
  %8841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8842 = call i32 @s2n_print_stacktrace(ptr noundef %8841)
  %8843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8844 = trunc i8 %8843 to i1
  br i1 %8844, label %8845, label %8867

8845:                                             ; preds = %8838
  %8846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8847 = call i32 @fileno(ptr noundef %8846) #11
  %8848 = call i32 @isatty(i32 noundef %8847) #11
  %8849 = icmp ne i32 %8848, 0
  br i1 %8849, label %8850, label %8867

8850:                                             ; preds = %8845
  %8851 = load i32, ptr %204, align 4, !tbaa !5
  %8852 = call ptr @__errno_location() #12
  store i32 %8851, ptr %8852, align 4, !tbaa !5
  %8853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8854 = load i32, ptr @test_count, align 4, !tbaa !5
  %8855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8856 = load i32, ptr %8855, align 4, !tbaa !5
  %8857 = call ptr @s2n_strerror(i32 noundef %8856, ptr noundef @.str.4)
  %8858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8859 = load i32, ptr %8858, align 4, !tbaa !5
  %8860 = call ptr @s2n_strerror_debug(i32 noundef %8859, ptr noundef @.str.4)
  %8861 = call ptr @__errno_location() #12
  %8862 = load i32, ptr %8861, align 4, !tbaa !5
  %8863 = call ptr @strerror(i32 noundef %8862) #11
  %8864 = call ptr @__errno_location() #12
  %8865 = load i32, ptr %8864, align 4, !tbaa !5
  %8866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8853, ptr noundef @.str.2, i32 noundef %8854, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 444, ptr noundef %8857, ptr noundef %8860, ptr noundef %8863, i32 noundef %8865) #11
  br label %8884

8867:                                             ; preds = %8845, %8838
  %8868 = load i32, ptr %204, align 4, !tbaa !5
  %8869 = call ptr @__errno_location() #12
  store i32 %8868, ptr %8869, align 4, !tbaa !5
  %8870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8871 = load i32, ptr @test_count, align 4, !tbaa !5
  %8872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8873 = load i32, ptr %8872, align 4, !tbaa !5
  %8874 = call ptr @s2n_strerror(i32 noundef %8873, ptr noundef @.str.4)
  %8875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8876 = load i32, ptr %8875, align 4, !tbaa !5
  %8877 = call ptr @s2n_strerror_debug(i32 noundef %8876, ptr noundef @.str.4)
  %8878 = call ptr @__errno_location() #12
  %8879 = load i32, ptr %8878, align 4, !tbaa !5
  %8880 = call ptr @strerror(i32 noundef %8879) #11
  %8881 = call ptr @__errno_location() #12
  %8882 = load i32, ptr %8881, align 4, !tbaa !5
  %8883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8870, ptr noundef @.str.5, i32 noundef %8871, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 444, ptr noundef %8874, ptr noundef %8877, ptr noundef %8880, i32 noundef %8882) #11
  br label %8884

8884:                                             ; preds = %8867, %8850
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #11
  br label %8885

8885:                                             ; preds = %8884
  br label %8886

8886:                                             ; preds = %8885
  call void @exit(i32 noundef 1) #13
  unreachable

8887:                                             ; No predecessors!
  br label %8888

8888:                                             ; preds = %8887
  br label %8889

8889:                                             ; preds = %8888, %8831
  br label %8890

8890:                                             ; preds = %8889
  br label %8891

8891:                                             ; preds = %8890
  br label %8892

8892:                                             ; preds = %8891
  %8893 = load i32, ptr @test_count, align 4, !tbaa !5
  %8894 = add nsw i32 %8893, 1
  store i32 %8894, ptr @test_count, align 4, !tbaa !5
  %8895 = call i32 @s2n_stuffer_read_uint16(ptr noundef %153, ptr noundef %203)
  %8896 = icmp eq i32 %8895, -1
  br i1 %8896, label %8897, label %8950

8897:                                             ; preds = %8892
  br label %8898

8898:                                             ; preds = %8897
  br label %8899

8899:                                             ; preds = %8898
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #11
  %8900 = call ptr @__errno_location() #12
  %8901 = load i32, ptr %8900, align 4, !tbaa !5
  store i32 %8901, ptr %205, align 4, !tbaa !5
  %8902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8903 = call i32 @s2n_print_stacktrace(ptr noundef %8902)
  %8904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8905 = trunc i8 %8904 to i1
  br i1 %8905, label %8906, label %8928

8906:                                             ; preds = %8899
  %8907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8908 = call i32 @fileno(ptr noundef %8907) #11
  %8909 = call i32 @isatty(i32 noundef %8908) #11
  %8910 = icmp ne i32 %8909, 0
  br i1 %8910, label %8911, label %8928

8911:                                             ; preds = %8906
  %8912 = load i32, ptr %205, align 4, !tbaa !5
  %8913 = call ptr @__errno_location() #12
  store i32 %8912, ptr %8913, align 4, !tbaa !5
  %8914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8915 = load i32, ptr @test_count, align 4, !tbaa !5
  %8916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8917 = load i32, ptr %8916, align 4, !tbaa !5
  %8918 = call ptr @s2n_strerror(i32 noundef %8917, ptr noundef @.str.4)
  %8919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8920 = load i32, ptr %8919, align 4, !tbaa !5
  %8921 = call ptr @s2n_strerror_debug(i32 noundef %8920, ptr noundef @.str.4)
  %8922 = call ptr @__errno_location() #12
  %8923 = load i32, ptr %8922, align 4, !tbaa !5
  %8924 = call ptr @strerror(i32 noundef %8923) #11
  %8925 = call ptr @__errno_location() #12
  %8926 = load i32, ptr %8925, align 4, !tbaa !5
  %8927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8914, ptr noundef @.str.2, i32 noundef %8915, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 445, ptr noundef %8918, ptr noundef %8921, ptr noundef %8924, i32 noundef %8926) #11
  br label %8945

8928:                                             ; preds = %8906, %8899
  %8929 = load i32, ptr %205, align 4, !tbaa !5
  %8930 = call ptr @__errno_location() #12
  store i32 %8929, ptr %8930, align 4, !tbaa !5
  %8931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8932 = load i32, ptr @test_count, align 4, !tbaa !5
  %8933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8934 = load i32, ptr %8933, align 4, !tbaa !5
  %8935 = call ptr @s2n_strerror(i32 noundef %8934, ptr noundef @.str.4)
  %8936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8937 = load i32, ptr %8936, align 4, !tbaa !5
  %8938 = call ptr @s2n_strerror_debug(i32 noundef %8937, ptr noundef @.str.4)
  %8939 = call ptr @__errno_location() #12
  %8940 = load i32, ptr %8939, align 4, !tbaa !5
  %8941 = call ptr @strerror(i32 noundef %8940) #11
  %8942 = call ptr @__errno_location() #12
  %8943 = load i32, ptr %8942, align 4, !tbaa !5
  %8944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8931, ptr noundef @.str.5, i32 noundef %8932, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 445, ptr noundef %8935, ptr noundef %8938, ptr noundef %8941, i32 noundef %8943) #11
  br label %8945

8945:                                             ; preds = %8928, %8911
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #11
  br label %8946

8946:                                             ; preds = %8945
  br label %8947

8947:                                             ; preds = %8946
  call void @exit(i32 noundef 1) #13
  unreachable

8948:                                             ; No predecessors!
  br label %8949

8949:                                             ; preds = %8948
  br label %8950

8950:                                             ; preds = %8949, %8892
  br label %8951

8951:                                             ; preds = %8950
  br label %8952

8952:                                             ; preds = %8951
  br label %8953

8953:                                             ; preds = %8952
  %8954 = load i32, ptr @test_count, align 4, !tbaa !5
  %8955 = add nsw i32 %8954, 1
  store i32 %8955, ptr @test_count, align 4, !tbaa !5
  %8956 = load i16, ptr %202, align 2, !tbaa !57
  %8957 = zext i16 %8956 to i32
  %8958 = load i16, ptr %203, align 2, !tbaa !57
  %8959 = zext i16 %8958 to i32
  %8960 = icmp eq i32 %8957, %8959
  br i1 %8960, label %9014, label %8961

8961:                                             ; preds = %8953
  br label %8962

8962:                                             ; preds = %8961
  br label %8963

8963:                                             ; preds = %8962
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #11
  %8964 = call ptr @__errno_location() #12
  %8965 = load i32, ptr %8964, align 4, !tbaa !5
  store i32 %8965, ptr %206, align 4, !tbaa !5
  %8966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8967 = call i32 @s2n_print_stacktrace(ptr noundef %8966)
  %8968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8969 = trunc i8 %8968 to i1
  br i1 %8969, label %8970, label %8992

8970:                                             ; preds = %8963
  %8971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8972 = call i32 @fileno(ptr noundef %8971) #11
  %8973 = call i32 @isatty(i32 noundef %8972) #11
  %8974 = icmp ne i32 %8973, 0
  br i1 %8974, label %8975, label %8992

8975:                                             ; preds = %8970
  %8976 = load i32, ptr %206, align 4, !tbaa !5
  %8977 = call ptr @__errno_location() #12
  store i32 %8976, ptr %8977, align 4, !tbaa !5
  %8978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8979 = load i32, ptr @test_count, align 4, !tbaa !5
  %8980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8981 = load i32, ptr %8980, align 4, !tbaa !5
  %8982 = call ptr @s2n_strerror(i32 noundef %8981, ptr noundef @.str.4)
  %8983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8984 = load i32, ptr %8983, align 4, !tbaa !5
  %8985 = call ptr @s2n_strerror_debug(i32 noundef %8984, ptr noundef @.str.4)
  %8986 = call ptr @__errno_location() #12
  %8987 = load i32, ptr %8986, align 4, !tbaa !5
  %8988 = call ptr @strerror(i32 noundef %8987) #11
  %8989 = call ptr @__errno_location() #12
  %8990 = load i32, ptr %8989, align 4, !tbaa !5
  %8991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8978, ptr noundef @.str.2, i32 noundef %8979, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 446, ptr noundef %8982, ptr noundef %8985, ptr noundef %8988, i32 noundef %8990) #11
  br label %9009

8992:                                             ; preds = %8970, %8963
  %8993 = load i32, ptr %206, align 4, !tbaa !5
  %8994 = call ptr @__errno_location() #12
  store i32 %8993, ptr %8994, align 4, !tbaa !5
  %8995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8996 = load i32, ptr @test_count, align 4, !tbaa !5
  %8997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8998 = load i32, ptr %8997, align 4, !tbaa !5
  %8999 = call ptr @s2n_strerror(i32 noundef %8998, ptr noundef @.str.4)
  %9000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9001 = load i32, ptr %9000, align 4, !tbaa !5
  %9002 = call ptr @s2n_strerror_debug(i32 noundef %9001, ptr noundef @.str.4)
  %9003 = call ptr @__errno_location() #12
  %9004 = load i32, ptr %9003, align 4, !tbaa !5
  %9005 = call ptr @strerror(i32 noundef %9004) #11
  %9006 = call ptr @__errno_location() #12
  %9007 = load i32, ptr %9006, align 4, !tbaa !5
  %9008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8995, ptr noundef @.str.5, i32 noundef %8996, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 446, ptr noundef %8999, ptr noundef %9002, ptr noundef %9005, i32 noundef %9007) #11
  br label %9009

9009:                                             ; preds = %8992, %8975
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #11
  br label %9010

9010:                                             ; preds = %9009
  br label %9011

9011:                                             ; preds = %9010
  call void @exit(i32 noundef 1) #13
  unreachable

9012:                                             ; No predecessors!
  br label %9013

9013:                                             ; preds = %9012
  br label %9014

9014:                                             ; preds = %9013, %8953
  br label %9015

9015:                                             ; preds = %9014
  br label %9016

9016:                                             ; preds = %9015
  call void @llvm.lifetime.end.p0(i64 2, ptr %203) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %202) #11
  br label %9017

9017:                                             ; preds = %9016, %8827
  br label %9018

9018:                                             ; preds = %9017
  %9019 = load i32, ptr @test_count, align 4, !tbaa !5
  %9020 = add nsw i32 %9019, 1
  store i32 %9020, ptr @test_count, align 4, !tbaa !5
  %9021 = load i32, ptr %187, align 4, !tbaa !5
  %9022 = getelementptr inbounds %struct.s2n_stuffer, ptr %153, i32 0, i32 2
  %9023 = load i32, ptr %9022, align 4, !tbaa !58
  %9024 = getelementptr inbounds %struct.s2n_stuffer, ptr %153, i32 0, i32 1
  %9025 = load i32, ptr %9024, align 8, !tbaa !59
  %9026 = sub i32 %9023, %9025
  %9027 = icmp eq i32 %9021, %9026
  br i1 %9027, label %9081, label %9028

9028:                                             ; preds = %9018
  br label %9029

9029:                                             ; preds = %9028
  br label %9030

9030:                                             ; preds = %9029
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #11
  %9031 = call ptr @__errno_location() #12
  %9032 = load i32, ptr %9031, align 4, !tbaa !5
  store i32 %9032, ptr %207, align 4, !tbaa !5
  %9033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9034 = call i32 @s2n_print_stacktrace(ptr noundef %9033)
  %9035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9036 = trunc i8 %9035 to i1
  br i1 %9036, label %9037, label %9059

9037:                                             ; preds = %9030
  %9038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9039 = call i32 @fileno(ptr noundef %9038) #11
  %9040 = call i32 @isatty(i32 noundef %9039) #11
  %9041 = icmp ne i32 %9040, 0
  br i1 %9041, label %9042, label %9059

9042:                                             ; preds = %9037
  %9043 = load i32, ptr %207, align 4, !tbaa !5
  %9044 = call ptr @__errno_location() #12
  store i32 %9043, ptr %9044, align 4, !tbaa !5
  %9045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9046 = load i32, ptr @test_count, align 4, !tbaa !5
  %9047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9048 = load i32, ptr %9047, align 4, !tbaa !5
  %9049 = call ptr @s2n_strerror(i32 noundef %9048, ptr noundef @.str.4)
  %9050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9051 = load i32, ptr %9050, align 4, !tbaa !5
  %9052 = call ptr @s2n_strerror_debug(i32 noundef %9051, ptr noundef @.str.4)
  %9053 = call ptr @__errno_location() #12
  %9054 = load i32, ptr %9053, align 4, !tbaa !5
  %9055 = call ptr @strerror(i32 noundef %9054) #11
  %9056 = call ptr @__errno_location() #12
  %9057 = load i32, ptr %9056, align 4, !tbaa !5
  %9058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9045, ptr noundef @.str.2, i32 noundef %9046, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 448, ptr noundef %9049, ptr noundef %9052, ptr noundef %9055, i32 noundef %9057) #11
  br label %9076

9059:                                             ; preds = %9037, %9030
  %9060 = load i32, ptr %207, align 4, !tbaa !5
  %9061 = call ptr @__errno_location() #12
  store i32 %9060, ptr %9061, align 4, !tbaa !5
  %9062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9063 = load i32, ptr @test_count, align 4, !tbaa !5
  %9064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9065 = load i32, ptr %9064, align 4, !tbaa !5
  %9066 = call ptr @s2n_strerror(i32 noundef %9065, ptr noundef @.str.4)
  %9067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9068 = load i32, ptr %9067, align 4, !tbaa !5
  %9069 = call ptr @s2n_strerror_debug(i32 noundef %9068, ptr noundef @.str.4)
  %9070 = call ptr @__errno_location() #12
  %9071 = load i32, ptr %9070, align 4, !tbaa !5
  %9072 = call ptr @strerror(i32 noundef %9071) #11
  %9073 = call ptr @__errno_location() #12
  %9074 = load i32, ptr %9073, align 4, !tbaa !5
  %9075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9062, ptr noundef @.str.5, i32 noundef %9063, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 448, ptr noundef %9066, ptr noundef %9069, ptr noundef %9072, i32 noundef %9074) #11
  br label %9076

9076:                                             ; preds = %9059, %9042
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #11
  br label %9077

9077:                                             ; preds = %9076
  br label %9078

9078:                                             ; preds = %9077
  call void @exit(i32 noundef 1) #13
  unreachable

9079:                                             ; No predecessors!
  br label %9080

9080:                                             ; preds = %9079
  br label %9081

9081:                                             ; preds = %9080, %9018
  br label %9082

9082:                                             ; preds = %9081
  br label %9083

9083:                                             ; preds = %9082
  call void @llvm.lifetime.start.p0(i64 8, ptr %208) #11
  store ptr null, ptr %208, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #11
  store ptr null, ptr %209, align 8, !tbaa !9
  br label %9084

9084:                                             ; preds = %9083
  %9085 = load i32, ptr @test_count, align 4, !tbaa !5
  %9086 = add nsw i32 %9085, 1
  store i32 %9086, ptr @test_count, align 4, !tbaa !5
  %9087 = load i32, ptr %187, align 4, !tbaa !5
  %9088 = call ptr @s2n_stuffer_raw_read(ptr noundef %152, i32 noundef %9087)
  store ptr %9088, ptr %208, align 8, !tbaa !9
  %9089 = icmp eq ptr %9088, null
  br i1 %9089, label %9090, label %9143

9090:                                             ; preds = %9084
  br label %9091

9091:                                             ; preds = %9090
  br label %9092

9092:                                             ; preds = %9091
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #11
  %9093 = call ptr @__errno_location() #12
  %9094 = load i32, ptr %9093, align 4, !tbaa !5
  store i32 %9094, ptr %210, align 4, !tbaa !5
  %9095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9096 = call i32 @s2n_print_stacktrace(ptr noundef %9095)
  %9097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9098 = trunc i8 %9097 to i1
  br i1 %9098, label %9099, label %9121

9099:                                             ; preds = %9092
  %9100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9101 = call i32 @fileno(ptr noundef %9100) #11
  %9102 = call i32 @isatty(i32 noundef %9101) #11
  %9103 = icmp ne i32 %9102, 0
  br i1 %9103, label %9104, label %9121

9104:                                             ; preds = %9099
  %9105 = load i32, ptr %210, align 4, !tbaa !5
  %9106 = call ptr @__errno_location() #12
  store i32 %9105, ptr %9106, align 4, !tbaa !5
  %9107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9108 = load i32, ptr @test_count, align 4, !tbaa !5
  %9109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9110 = load i32, ptr %9109, align 4, !tbaa !5
  %9111 = call ptr @s2n_strerror(i32 noundef %9110, ptr noundef @.str.4)
  %9112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9113 = load i32, ptr %9112, align 4, !tbaa !5
  %9114 = call ptr @s2n_strerror_debug(i32 noundef %9113, ptr noundef @.str.4)
  %9115 = call ptr @__errno_location() #12
  %9116 = load i32, ptr %9115, align 4, !tbaa !5
  %9117 = call ptr @strerror(i32 noundef %9116) #11
  %9118 = call ptr @__errno_location() #12
  %9119 = load i32, ptr %9118, align 4, !tbaa !5
  %9120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9107, ptr noundef @.str.2, i32 noundef %9108, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 450, ptr noundef %9111, ptr noundef %9114, ptr noundef %9117, i32 noundef %9119) #11
  br label %9138

9121:                                             ; preds = %9099, %9092
  %9122 = load i32, ptr %210, align 4, !tbaa !5
  %9123 = call ptr @__errno_location() #12
  store i32 %9122, ptr %9123, align 4, !tbaa !5
  %9124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9125 = load i32, ptr @test_count, align 4, !tbaa !5
  %9126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9127 = load i32, ptr %9126, align 4, !tbaa !5
  %9128 = call ptr @s2n_strerror(i32 noundef %9127, ptr noundef @.str.4)
  %9129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9130 = load i32, ptr %9129, align 4, !tbaa !5
  %9131 = call ptr @s2n_strerror_debug(i32 noundef %9130, ptr noundef @.str.4)
  %9132 = call ptr @__errno_location() #12
  %9133 = load i32, ptr %9132, align 4, !tbaa !5
  %9134 = call ptr @strerror(i32 noundef %9133) #11
  %9135 = call ptr @__errno_location() #12
  %9136 = load i32, ptr %9135, align 4, !tbaa !5
  %9137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9124, ptr noundef @.str.5, i32 noundef %9125, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 450, ptr noundef %9128, ptr noundef %9131, ptr noundef %9134, i32 noundef %9136) #11
  br label %9138

9138:                                             ; preds = %9121, %9104
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %9139

9139:                                             ; preds = %9138
  br label %9140

9140:                                             ; preds = %9139
  call void @exit(i32 noundef 1) #13
  unreachable

9141:                                             ; No predecessors!
  br label %9142

9142:                                             ; preds = %9141
  br label %9143

9143:                                             ; preds = %9142, %9084
  br label %9144

9144:                                             ; preds = %9143
  br label %9145

9145:                                             ; preds = %9144
  br label %9146

9146:                                             ; preds = %9145
  %9147 = load i32, ptr @test_count, align 4, !tbaa !5
  %9148 = add nsw i32 %9147, 1
  store i32 %9148, ptr @test_count, align 4, !tbaa !5
  %9149 = load i32, ptr %187, align 4, !tbaa !5
  %9150 = call ptr @s2n_stuffer_raw_read(ptr noundef %153, i32 noundef %9149)
  store ptr %9150, ptr %209, align 8, !tbaa !9
  %9151 = icmp eq ptr %9150, null
  br i1 %9151, label %9152, label %9205

9152:                                             ; preds = %9146
  br label %9153

9153:                                             ; preds = %9152
  br label %9154

9154:                                             ; preds = %9153
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #11
  %9155 = call ptr @__errno_location() #12
  %9156 = load i32, ptr %9155, align 4, !tbaa !5
  store i32 %9156, ptr %211, align 4, !tbaa !5
  %9157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9158 = call i32 @s2n_print_stacktrace(ptr noundef %9157)
  %9159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9160 = trunc i8 %9159 to i1
  br i1 %9160, label %9161, label %9183

9161:                                             ; preds = %9154
  %9162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9163 = call i32 @fileno(ptr noundef %9162) #11
  %9164 = call i32 @isatty(i32 noundef %9163) #11
  %9165 = icmp ne i32 %9164, 0
  br i1 %9165, label %9166, label %9183

9166:                                             ; preds = %9161
  %9167 = load i32, ptr %211, align 4, !tbaa !5
  %9168 = call ptr @__errno_location() #12
  store i32 %9167, ptr %9168, align 4, !tbaa !5
  %9169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9170 = load i32, ptr @test_count, align 4, !tbaa !5
  %9171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9172 = load i32, ptr %9171, align 4, !tbaa !5
  %9173 = call ptr @s2n_strerror(i32 noundef %9172, ptr noundef @.str.4)
  %9174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9175 = load i32, ptr %9174, align 4, !tbaa !5
  %9176 = call ptr @s2n_strerror_debug(i32 noundef %9175, ptr noundef @.str.4)
  %9177 = call ptr @__errno_location() #12
  %9178 = load i32, ptr %9177, align 4, !tbaa !5
  %9179 = call ptr @strerror(i32 noundef %9178) #11
  %9180 = call ptr @__errno_location() #12
  %9181 = load i32, ptr %9180, align 4, !tbaa !5
  %9182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9169, ptr noundef @.str.2, i32 noundef %9170, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 451, ptr noundef %9173, ptr noundef %9176, ptr noundef %9179, i32 noundef %9181) #11
  br label %9200

9183:                                             ; preds = %9161, %9154
  %9184 = load i32, ptr %211, align 4, !tbaa !5
  %9185 = call ptr @__errno_location() #12
  store i32 %9184, ptr %9185, align 4, !tbaa !5
  %9186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9187 = load i32, ptr @test_count, align 4, !tbaa !5
  %9188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9189 = load i32, ptr %9188, align 4, !tbaa !5
  %9190 = call ptr @s2n_strerror(i32 noundef %9189, ptr noundef @.str.4)
  %9191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9192 = load i32, ptr %9191, align 4, !tbaa !5
  %9193 = call ptr @s2n_strerror_debug(i32 noundef %9192, ptr noundef @.str.4)
  %9194 = call ptr @__errno_location() #12
  %9195 = load i32, ptr %9194, align 4, !tbaa !5
  %9196 = call ptr @strerror(i32 noundef %9195) #11
  %9197 = call ptr @__errno_location() #12
  %9198 = load i32, ptr %9197, align 4, !tbaa !5
  %9199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9186, ptr noundef @.str.5, i32 noundef %9187, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 451, ptr noundef %9190, ptr noundef %9193, ptr noundef %9196, i32 noundef %9198) #11
  br label %9200

9200:                                             ; preds = %9183, %9166
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #11
  br label %9201

9201:                                             ; preds = %9200
  br label %9202

9202:                                             ; preds = %9201
  call void @exit(i32 noundef 1) #13
  unreachable

9203:                                             ; No predecessors!
  br label %9204

9204:                                             ; preds = %9203
  br label %9205

9205:                                             ; preds = %9204, %9146
  br label %9206

9206:                                             ; preds = %9205
  br label %9207

9207:                                             ; preds = %9206
  br label %9208

9208:                                             ; preds = %9207
  %9209 = load i32, ptr %187, align 4, !tbaa !5
  %9210 = icmp ne i32 %9209, 0
  br i1 %9210, label %9211, label %9277

9211:                                             ; preds = %9208
  br label %9212

9212:                                             ; preds = %9211
  %9213 = load i32, ptr @test_count, align 4, !tbaa !5
  %9214 = add nsw i32 %9213, 1
  store i32 %9214, ptr @test_count, align 4, !tbaa !5
  %9215 = load ptr, ptr %208, align 8, !tbaa !9
  %9216 = load ptr, ptr %209, align 8, !tbaa !9
  %9217 = load i32, ptr %187, align 4, !tbaa !5
  %9218 = sext i32 %9217 to i64
  %9219 = call i32 @memcmp(ptr noundef %9215, ptr noundef %9216, i64 noundef %9218) #14
  %9220 = icmp eq i32 %9219, 0
  br i1 %9220, label %9274, label %9221

9221:                                             ; preds = %9212
  br label %9222

9222:                                             ; preds = %9221
  br label %9223

9223:                                             ; preds = %9222
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #11
  %9224 = call ptr @__errno_location() #12
  %9225 = load i32, ptr %9224, align 4, !tbaa !5
  store i32 %9225, ptr %212, align 4, !tbaa !5
  %9226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9227 = call i32 @s2n_print_stacktrace(ptr noundef %9226)
  %9228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9229 = trunc i8 %9228 to i1
  br i1 %9229, label %9230, label %9252

9230:                                             ; preds = %9223
  %9231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9232 = call i32 @fileno(ptr noundef %9231) #11
  %9233 = call i32 @isatty(i32 noundef %9232) #11
  %9234 = icmp ne i32 %9233, 0
  br i1 %9234, label %9235, label %9252

9235:                                             ; preds = %9230
  %9236 = load i32, ptr %212, align 4, !tbaa !5
  %9237 = call ptr @__errno_location() #12
  store i32 %9236, ptr %9237, align 4, !tbaa !5
  %9238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9239 = load i32, ptr @test_count, align 4, !tbaa !5
  %9240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9241 = load i32, ptr %9240, align 4, !tbaa !5
  %9242 = call ptr @s2n_strerror(i32 noundef %9241, ptr noundef @.str.4)
  %9243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9244 = load i32, ptr %9243, align 4, !tbaa !5
  %9245 = call ptr @s2n_strerror_debug(i32 noundef %9244, ptr noundef @.str.4)
  %9246 = call ptr @__errno_location() #12
  %9247 = load i32, ptr %9246, align 4, !tbaa !5
  %9248 = call ptr @strerror(i32 noundef %9247) #11
  %9249 = call ptr @__errno_location() #12
  %9250 = load i32, ptr %9249, align 4, !tbaa !5
  %9251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9238, ptr noundef @.str.2, i32 noundef %9239, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 452, ptr noundef %9242, ptr noundef %9245, ptr noundef %9248, i32 noundef %9250) #11
  br label %9269

9252:                                             ; preds = %9230, %9223
  %9253 = load i32, ptr %212, align 4, !tbaa !5
  %9254 = call ptr @__errno_location() #12
  store i32 %9253, ptr %9254, align 4, !tbaa !5
  %9255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9256 = load i32, ptr @test_count, align 4, !tbaa !5
  %9257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9258 = load i32, ptr %9257, align 4, !tbaa !5
  %9259 = call ptr @s2n_strerror(i32 noundef %9258, ptr noundef @.str.4)
  %9260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9261 = load i32, ptr %9260, align 4, !tbaa !5
  %9262 = call ptr @s2n_strerror_debug(i32 noundef %9261, ptr noundef @.str.4)
  %9263 = call ptr @__errno_location() #12
  %9264 = load i32, ptr %9263, align 4, !tbaa !5
  %9265 = call ptr @strerror(i32 noundef %9264) #11
  %9266 = call ptr @__errno_location() #12
  %9267 = load i32, ptr %9266, align 4, !tbaa !5
  %9268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9255, ptr noundef @.str.5, i32 noundef %9256, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 452, ptr noundef %9259, ptr noundef %9262, ptr noundef %9265, i32 noundef %9267) #11
  br label %9269

9269:                                             ; preds = %9252, %9235
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #11
  br label %9270

9270:                                             ; preds = %9269
  br label %9271

9271:                                             ; preds = %9270
  call void @exit(i32 noundef 1) #13
  unreachable

9272:                                             ; No predecessors!
  br label %9273

9273:                                             ; preds = %9272
  br label %9274

9274:                                             ; preds = %9273, %9212
  br label %9275

9275:                                             ; preds = %9274
  br label %9276

9276:                                             ; preds = %9275
  br label %9277

9277:                                             ; preds = %9276, %9208
  br label %9278

9278:                                             ; preds = %9277
  br label %9279

9279:                                             ; preds = %9278
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #11
  br label %9280

9280:                                             ; preds = %9279, %8702
  br label %9281

9281:                                             ; preds = %9280
  %9282 = load i32, ptr @test_count, align 4, !tbaa !5
  %9283 = add nsw i32 %9282, 1
  store i32 %9283, ptr @test_count, align 4, !tbaa !5
  %9284 = call i32 @s2n_stuffer_free(ptr noundef %152)
  %9285 = icmp eq i32 %9284, -1
  br i1 %9285, label %9286, label %9339

9286:                                             ; preds = %9281
  br label %9287

9287:                                             ; preds = %9286
  br label %9288

9288:                                             ; preds = %9287
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #11
  %9289 = call ptr @__errno_location() #12
  %9290 = load i32, ptr %9289, align 4, !tbaa !5
  store i32 %9290, ptr %213, align 4, !tbaa !5
  %9291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9292 = call i32 @s2n_print_stacktrace(ptr noundef %9291)
  %9293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9294 = trunc i8 %9293 to i1
  br i1 %9294, label %9295, label %9317

9295:                                             ; preds = %9288
  %9296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9297 = call i32 @fileno(ptr noundef %9296) #11
  %9298 = call i32 @isatty(i32 noundef %9297) #11
  %9299 = icmp ne i32 %9298, 0
  br i1 %9299, label %9300, label %9317

9300:                                             ; preds = %9295
  %9301 = load i32, ptr %213, align 4, !tbaa !5
  %9302 = call ptr @__errno_location() #12
  store i32 %9301, ptr %9302, align 4, !tbaa !5
  %9303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9304 = load i32, ptr @test_count, align 4, !tbaa !5
  %9305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9306 = load i32, ptr %9305, align 4, !tbaa !5
  %9307 = call ptr @s2n_strerror(i32 noundef %9306, ptr noundef @.str.4)
  %9308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9309 = load i32, ptr %9308, align 4, !tbaa !5
  %9310 = call ptr @s2n_strerror_debug(i32 noundef %9309, ptr noundef @.str.4)
  %9311 = call ptr @__errno_location() #12
  %9312 = load i32, ptr %9311, align 4, !tbaa !5
  %9313 = call ptr @strerror(i32 noundef %9312) #11
  %9314 = call ptr @__errno_location() #12
  %9315 = load i32, ptr %9314, align 4, !tbaa !5
  %9316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9303, ptr noundef @.str.2, i32 noundef %9304, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 455, ptr noundef %9307, ptr noundef %9310, ptr noundef %9313, i32 noundef %9315) #11
  br label %9334

9317:                                             ; preds = %9295, %9288
  %9318 = load i32, ptr %213, align 4, !tbaa !5
  %9319 = call ptr @__errno_location() #12
  store i32 %9318, ptr %9319, align 4, !tbaa !5
  %9320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9321 = load i32, ptr @test_count, align 4, !tbaa !5
  %9322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9323 = load i32, ptr %9322, align 4, !tbaa !5
  %9324 = call ptr @s2n_strerror(i32 noundef %9323, ptr noundef @.str.4)
  %9325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9326 = load i32, ptr %9325, align 4, !tbaa !5
  %9327 = call ptr @s2n_strerror_debug(i32 noundef %9326, ptr noundef @.str.4)
  %9328 = call ptr @__errno_location() #12
  %9329 = load i32, ptr %9328, align 4, !tbaa !5
  %9330 = call ptr @strerror(i32 noundef %9329) #11
  %9331 = call ptr @__errno_location() #12
  %9332 = load i32, ptr %9331, align 4, !tbaa !5
  %9333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9320, ptr noundef @.str.5, i32 noundef %9321, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 455, ptr noundef %9324, ptr noundef %9327, ptr noundef %9330, i32 noundef %9332) #11
  br label %9334

9334:                                             ; preds = %9317, %9300
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #11
  br label %9335

9335:                                             ; preds = %9334
  br label %9336

9336:                                             ; preds = %9335
  call void @exit(i32 noundef 1) #13
  unreachable

9337:                                             ; No predecessors!
  br label %9338

9338:                                             ; preds = %9337
  br label %9339

9339:                                             ; preds = %9338, %9281
  br label %9340

9340:                                             ; preds = %9339
  br label %9341

9341:                                             ; preds = %9340
  br label %9342

9342:                                             ; preds = %9341
  %9343 = load i32, ptr @test_count, align 4, !tbaa !5
  %9344 = add nsw i32 %9343, 1
  store i32 %9344, ptr @test_count, align 4, !tbaa !5
  %9345 = call i32 @s2n_stuffer_free(ptr noundef %153)
  %9346 = icmp eq i32 %9345, -1
  br i1 %9346, label %9347, label %9400

9347:                                             ; preds = %9342
  br label %9348

9348:                                             ; preds = %9347
  br label %9349

9349:                                             ; preds = %9348
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #11
  %9350 = call ptr @__errno_location() #12
  %9351 = load i32, ptr %9350, align 4, !tbaa !5
  store i32 %9351, ptr %214, align 4, !tbaa !5
  %9352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9353 = call i32 @s2n_print_stacktrace(ptr noundef %9352)
  %9354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9355 = trunc i8 %9354 to i1
  br i1 %9355, label %9356, label %9378

9356:                                             ; preds = %9349
  %9357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9358 = call i32 @fileno(ptr noundef %9357) #11
  %9359 = call i32 @isatty(i32 noundef %9358) #11
  %9360 = icmp ne i32 %9359, 0
  br i1 %9360, label %9361, label %9378

9361:                                             ; preds = %9356
  %9362 = load i32, ptr %214, align 4, !tbaa !5
  %9363 = call ptr @__errno_location() #12
  store i32 %9362, ptr %9363, align 4, !tbaa !5
  %9364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9365 = load i32, ptr @test_count, align 4, !tbaa !5
  %9366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9367 = load i32, ptr %9366, align 4, !tbaa !5
  %9368 = call ptr @s2n_strerror(i32 noundef %9367, ptr noundef @.str.4)
  %9369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9370 = load i32, ptr %9369, align 4, !tbaa !5
  %9371 = call ptr @s2n_strerror_debug(i32 noundef %9370, ptr noundef @.str.4)
  %9372 = call ptr @__errno_location() #12
  %9373 = load i32, ptr %9372, align 4, !tbaa !5
  %9374 = call ptr @strerror(i32 noundef %9373) #11
  %9375 = call ptr @__errno_location() #12
  %9376 = load i32, ptr %9375, align 4, !tbaa !5
  %9377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9364, ptr noundef @.str.2, i32 noundef %9365, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 456, ptr noundef %9368, ptr noundef %9371, ptr noundef %9374, i32 noundef %9376) #11
  br label %9395

9378:                                             ; preds = %9356, %9349
  %9379 = load i32, ptr %214, align 4, !tbaa !5
  %9380 = call ptr @__errno_location() #12
  store i32 %9379, ptr %9380, align 4, !tbaa !5
  %9381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9382 = load i32, ptr @test_count, align 4, !tbaa !5
  %9383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9384 = load i32, ptr %9383, align 4, !tbaa !5
  %9385 = call ptr @s2n_strerror(i32 noundef %9384, ptr noundef @.str.4)
  %9386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9387 = load i32, ptr %9386, align 4, !tbaa !5
  %9388 = call ptr @s2n_strerror_debug(i32 noundef %9387, ptr noundef @.str.4)
  %9389 = call ptr @__errno_location() #12
  %9390 = load i32, ptr %9389, align 4, !tbaa !5
  %9391 = call ptr @strerror(i32 noundef %9390) #11
  %9392 = call ptr @__errno_location() #12
  %9393 = load i32, ptr %9392, align 4, !tbaa !5
  %9394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9381, ptr noundef @.str.5, i32 noundef %9382, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 456, ptr noundef %9385, ptr noundef %9388, ptr noundef %9391, i32 noundef %9393) #11
  br label %9395

9395:                                             ; preds = %9378, %9361
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #11
  br label %9396

9396:                                             ; preds = %9395
  br label %9397

9397:                                             ; preds = %9396
  call void @exit(i32 noundef 1) #13
  unreachable

9398:                                             ; No predecessors!
  br label %9399

9399:                                             ; preds = %9398
  br label %9400

9400:                                             ; preds = %9399, %9342
  br label %9401

9401:                                             ; preds = %9400
  br label %9402

9402:                                             ; preds = %9401
  br label %9403

9403:                                             ; preds = %9402
  %9404 = load i32, ptr @test_count, align 4, !tbaa !5
  %9405 = add nsw i32 %9404, 1
  store i32 %9405, ptr @test_count, align 4, !tbaa !5
  %9406 = load ptr, ptr %144, align 8, !tbaa !9
  %9407 = call i32 @s2n_connection_free(ptr noundef %9406)
  %9408 = icmp eq i32 %9407, -1
  br i1 %9408, label %9409, label %9462

9409:                                             ; preds = %9403
  br label %9410

9410:                                             ; preds = %9409
  br label %9411

9411:                                             ; preds = %9410
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #11
  %9412 = call ptr @__errno_location() #12
  %9413 = load i32, ptr %9412, align 4, !tbaa !5
  store i32 %9413, ptr %215, align 4, !tbaa !5
  %9414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9415 = call i32 @s2n_print_stacktrace(ptr noundef %9414)
  %9416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9417 = trunc i8 %9416 to i1
  br i1 %9417, label %9418, label %9440

9418:                                             ; preds = %9411
  %9419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9420 = call i32 @fileno(ptr noundef %9419) #11
  %9421 = call i32 @isatty(i32 noundef %9420) #11
  %9422 = icmp ne i32 %9421, 0
  br i1 %9422, label %9423, label %9440

9423:                                             ; preds = %9418
  %9424 = load i32, ptr %215, align 4, !tbaa !5
  %9425 = call ptr @__errno_location() #12
  store i32 %9424, ptr %9425, align 4, !tbaa !5
  %9426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9427 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9429, ptr noundef @.str.4)
  %9431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9432 = load i32, ptr %9431, align 4, !tbaa !5
  %9433 = call ptr @s2n_strerror_debug(i32 noundef %9432, ptr noundef @.str.4)
  %9434 = call ptr @__errno_location() #12
  %9435 = load i32, ptr %9434, align 4, !tbaa !5
  %9436 = call ptr @strerror(i32 noundef %9435) #11
  %9437 = call ptr @__errno_location() #12
  %9438 = load i32, ptr %9437, align 4, !tbaa !5
  %9439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9426, ptr noundef @.str.2, i32 noundef %9427, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 457, ptr noundef %9430, ptr noundef %9433, ptr noundef %9436, i32 noundef %9438) #11
  br label %9457

9440:                                             ; preds = %9418, %9411
  %9441 = load i32, ptr %215, align 4, !tbaa !5
  %9442 = call ptr @__errno_location() #12
  store i32 %9441, ptr %9442, align 4, !tbaa !5
  %9443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9444 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9446, ptr noundef @.str.4)
  %9448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9449 = load i32, ptr %9448, align 4, !tbaa !5
  %9450 = call ptr @s2n_strerror_debug(i32 noundef %9449, ptr noundef @.str.4)
  %9451 = call ptr @__errno_location() #12
  %9452 = load i32, ptr %9451, align 4, !tbaa !5
  %9453 = call ptr @strerror(i32 noundef %9452) #11
  %9454 = call ptr @__errno_location() #12
  %9455 = load i32, ptr %9454, align 4, !tbaa !5
  %9456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9443, ptr noundef @.str.5, i32 noundef %9444, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 457, ptr noundef %9447, ptr noundef %9450, ptr noundef %9453, i32 noundef %9455) #11
  br label %9457

9457:                                             ; preds = %9440, %9423
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #11
  br label %9458

9458:                                             ; preds = %9457
  br label %9459

9459:                                             ; preds = %9458
  call void @exit(i32 noundef 1) #13
  unreachable

9460:                                             ; No predecessors!
  br label %9461

9461:                                             ; preds = %9460
  br label %9462

9462:                                             ; preds = %9461, %9403
  br label %9463

9463:                                             ; preds = %9462
  br label %9464

9464:                                             ; preds = %9463
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %176) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %175) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %170) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %169) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %163) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %162) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %153) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %152) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #11
  store i32 0, ptr %6, align 4
  br label %9465

9465:                                             ; preds = %9464, %4257
  call void @llvm.lifetime.end.p0(i64 64, ptr %39) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %38) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %36) #11
  %9466 = load i32, ptr %6, align 4
  switch i32 %9466, label %20610 [
    i32 0, label %9467
    i32 131, label %9468
  ]

9467:                                             ; preds = %9465
  br label %9468

9468:                                             ; preds = %9467, %9465
  %9469 = load i64, ptr %35, align 8, !tbaa !65
  %9470 = add i64 %9469, 1
  store i64 %9470, ptr %35, align 8, !tbaa !65
  br label %1762, !llvm.loop !97

9471:                                             ; preds = %1765
  br label %9472

9472:                                             ; preds = %9471, %1759
  br label %9473

9473:                                             ; preds = %9472
  %9474 = load i32, ptr @test_count, align 4, !tbaa !5
  %9475 = add nsw i32 %9474, 1
  store i32 %9475, ptr @test_count, align 4, !tbaa !5
  %9476 = call i32 (...) @s2n_enable_tls13_in_test()
  %9477 = icmp eq i32 %9476, -1
  br i1 %9477, label %9478, label %9531

9478:                                             ; preds = %9473
  br label %9479

9479:                                             ; preds = %9478
  br label %9480

9480:                                             ; preds = %9479
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #11
  %9481 = call ptr @__errno_location() #12
  %9482 = load i32, ptr %9481, align 4, !tbaa !5
  store i32 %9482, ptr %216, align 4, !tbaa !5
  %9483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9484 = call i32 @s2n_print_stacktrace(ptr noundef %9483)
  %9485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9486 = trunc i8 %9485 to i1
  br i1 %9486, label %9487, label %9509

9487:                                             ; preds = %9480
  %9488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9489 = call i32 @fileno(ptr noundef %9488) #11
  %9490 = call i32 @isatty(i32 noundef %9489) #11
  %9491 = icmp ne i32 %9490, 0
  br i1 %9491, label %9492, label %9509

9492:                                             ; preds = %9487
  %9493 = load i32, ptr %216, align 4, !tbaa !5
  %9494 = call ptr @__errno_location() #12
  store i32 %9493, ptr %9494, align 4, !tbaa !5
  %9495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9496 = load i32, ptr @test_count, align 4, !tbaa !5
  %9497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9498 = load i32, ptr %9497, align 4, !tbaa !5
  %9499 = call ptr @s2n_strerror(i32 noundef %9498, ptr noundef @.str.4)
  %9500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9501 = load i32, ptr %9500, align 4, !tbaa !5
  %9502 = call ptr @s2n_strerror_debug(i32 noundef %9501, ptr noundef @.str.4)
  %9503 = call ptr @__errno_location() #12
  %9504 = load i32, ptr %9503, align 4, !tbaa !5
  %9505 = call ptr @strerror(i32 noundef %9504) #11
  %9506 = call ptr @__errno_location() #12
  %9507 = load i32, ptr %9506, align 4, !tbaa !5
  %9508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9495, ptr noundef @.str.2, i32 noundef %9496, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 465, ptr noundef %9499, ptr noundef %9502, ptr noundef %9505, i32 noundef %9507) #11
  br label %9526

9509:                                             ; preds = %9487, %9480
  %9510 = load i32, ptr %216, align 4, !tbaa !5
  %9511 = call ptr @__errno_location() #12
  store i32 %9510, ptr %9511, align 4, !tbaa !5
  %9512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9513 = load i32, ptr @test_count, align 4, !tbaa !5
  %9514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9515 = load i32, ptr %9514, align 4, !tbaa !5
  %9516 = call ptr @s2n_strerror(i32 noundef %9515, ptr noundef @.str.4)
  %9517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9518 = load i32, ptr %9517, align 4, !tbaa !5
  %9519 = call ptr @s2n_strerror_debug(i32 noundef %9518, ptr noundef @.str.4)
  %9520 = call ptr @__errno_location() #12
  %9521 = load i32, ptr %9520, align 4, !tbaa !5
  %9522 = call ptr @strerror(i32 noundef %9521) #11
  %9523 = call ptr @__errno_location() #12
  %9524 = load i32, ptr %9523, align 4, !tbaa !5
  %9525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9512, ptr noundef @.str.5, i32 noundef %9513, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 465, ptr noundef %9516, ptr noundef %9519, ptr noundef %9522, i32 noundef %9524) #11
  br label %9526

9526:                                             ; preds = %9509, %9492
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #11
  br label %9527

9527:                                             ; preds = %9526
  br label %9528

9528:                                             ; preds = %9527
  call void @exit(i32 noundef 1) #13
  unreachable

9529:                                             ; No predecessors!
  br label %9530

9530:                                             ; preds = %9529
  br label %9531

9531:                                             ; preds = %9530, %9473
  br label %9532

9532:                                             ; preds = %9531
  br label %9533

9533:                                             ; preds = %9532
  %9534 = call zeroext i1 @s2n_pq_is_enabled()
  br i1 %9534, label %10810, label %9535

9535:                                             ; preds = %9533
  call void @llvm.lifetime.start.p0(i64 8, ptr %217) #11
  store ptr null, ptr %217, align 8, !tbaa !9
  br label %9536

9536:                                             ; preds = %9535
  %9537 = load i32, ptr @test_count, align 4, !tbaa !5
  %9538 = add nsw i32 %9537, 1
  store i32 %9538, ptr @test_count, align 4, !tbaa !5
  %9539 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9539, ptr %217, align 8, !tbaa !9
  %9540 = icmp eq ptr %9539, null
  br i1 %9540, label %9541, label %9594

9541:                                             ; preds = %9536
  br label %9542

9542:                                             ; preds = %9541
  br label %9543

9543:                                             ; preds = %9542
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #11
  %9544 = call ptr @__errno_location() #12
  %9545 = load i32, ptr %9544, align 4, !tbaa !5
  store i32 %9545, ptr %218, align 4, !tbaa !5
  %9546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9547 = call i32 @s2n_print_stacktrace(ptr noundef %9546)
  %9548 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9549 = trunc i8 %9548 to i1
  br i1 %9549, label %9550, label %9572

9550:                                             ; preds = %9543
  %9551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9552 = call i32 @fileno(ptr noundef %9551) #11
  %9553 = call i32 @isatty(i32 noundef %9552) #11
  %9554 = icmp ne i32 %9553, 0
  br i1 %9554, label %9555, label %9572

9555:                                             ; preds = %9550
  %9556 = load i32, ptr %218, align 4, !tbaa !5
  %9557 = call ptr @__errno_location() #12
  store i32 %9556, ptr %9557, align 4, !tbaa !5
  %9558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9559 = load i32, ptr @test_count, align 4, !tbaa !5
  %9560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9561 = load i32, ptr %9560, align 4, !tbaa !5
  %9562 = call ptr @s2n_strerror(i32 noundef %9561, ptr noundef @.str.4)
  %9563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9564 = load i32, ptr %9563, align 4, !tbaa !5
  %9565 = call ptr @s2n_strerror_debug(i32 noundef %9564, ptr noundef @.str.4)
  %9566 = call ptr @__errno_location() #12
  %9567 = load i32, ptr %9566, align 4, !tbaa !5
  %9568 = call ptr @strerror(i32 noundef %9567) #11
  %9569 = call ptr @__errno_location() #12
  %9570 = load i32, ptr %9569, align 4, !tbaa !5
  %9571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9558, ptr noundef @.str.2, i32 noundef %9559, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 470, ptr noundef %9562, ptr noundef %9565, ptr noundef %9568, i32 noundef %9570) #11
  br label %9589

9572:                                             ; preds = %9550, %9543
  %9573 = load i32, ptr %218, align 4, !tbaa !5
  %9574 = call ptr @__errno_location() #12
  store i32 %9573, ptr %9574, align 4, !tbaa !5
  %9575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9576 = load i32, ptr @test_count, align 4, !tbaa !5
  %9577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9578 = load i32, ptr %9577, align 4, !tbaa !5
  %9579 = call ptr @s2n_strerror(i32 noundef %9578, ptr noundef @.str.4)
  %9580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9581 = load i32, ptr %9580, align 4, !tbaa !5
  %9582 = call ptr @s2n_strerror_debug(i32 noundef %9581, ptr noundef @.str.4)
  %9583 = call ptr @__errno_location() #12
  %9584 = load i32, ptr %9583, align 4, !tbaa !5
  %9585 = call ptr @strerror(i32 noundef %9584) #11
  %9586 = call ptr @__errno_location() #12
  %9587 = load i32, ptr %9586, align 4, !tbaa !5
  %9588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9575, ptr noundef @.str.5, i32 noundef %9576, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 470, ptr noundef %9579, ptr noundef %9582, ptr noundef %9585, i32 noundef %9587) #11
  br label %9589

9589:                                             ; preds = %9572, %9555
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #11
  br label %9590

9590:                                             ; preds = %9589
  br label %9591

9591:                                             ; preds = %9590
  call void @exit(i32 noundef 1) #13
  unreachable

9592:                                             ; No predecessors!
  br label %9593

9593:                                             ; preds = %9592
  br label %9594

9594:                                             ; preds = %9593, %9536
  br label %9595

9595:                                             ; preds = %9594
  br label %9596

9596:                                             ; preds = %9595
  %9597 = load ptr, ptr %217, align 8, !tbaa !9
  %9598 = getelementptr inbounds %struct.s2n_connection, ptr %9597, i32 0, i32 23
  store i8 34, ptr %9598, align 4, !tbaa !84
  %9599 = load ptr, ptr %217, align 8, !tbaa !9
  %9600 = getelementptr inbounds %struct.s2n_connection, ptr %9599, i32 0, i32 2
  store ptr %9, ptr %9600, align 8, !tbaa !28
  br label %9601

9601:                                             ; preds = %9596
  %9602 = load i32, ptr @test_count, align 4, !tbaa !5
  %9603 = add nsw i32 %9602, 1
  store i32 %9603, ptr @test_count, align 4, !tbaa !5
  %9604 = load ptr, ptr %217, align 8, !tbaa !9
  %9605 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %9604)
  %9606 = getelementptr inbounds %struct.s2n_result, ptr %219, i32 0, i32 0
  store i32 %9605, ptr %9606, align 4
  %9607 = getelementptr inbounds %struct.s2n_result, ptr %219, i32 0, i32 0
  %9608 = load i32, ptr %9607, align 4
  %9609 = call zeroext i1 @s2n_result_is_ok(i32 %9608)
  br i1 %9609, label %9663, label %9610

9610:                                             ; preds = %9601
  br label %9611

9611:                                             ; preds = %9610
  br label %9612

9612:                                             ; preds = %9611
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #11
  %9613 = call ptr @__errno_location() #12
  %9614 = load i32, ptr %9613, align 4, !tbaa !5
  store i32 %9614, ptr %220, align 4, !tbaa !5
  %9615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9616 = call i32 @s2n_print_stacktrace(ptr noundef %9615)
  %9617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9618 = trunc i8 %9617 to i1
  br i1 %9618, label %9619, label %9641

9619:                                             ; preds = %9612
  %9620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9621 = call i32 @fileno(ptr noundef %9620) #11
  %9622 = call i32 @isatty(i32 noundef %9621) #11
  %9623 = icmp ne i32 %9622, 0
  br i1 %9623, label %9624, label %9641

9624:                                             ; preds = %9619
  %9625 = load i32, ptr %220, align 4, !tbaa !5
  %9626 = call ptr @__errno_location() #12
  store i32 %9625, ptr %9626, align 4, !tbaa !5
  %9627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9628 = load i32, ptr @test_count, align 4, !tbaa !5
  %9629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9630 = load i32, ptr %9629, align 4, !tbaa !5
  %9631 = call ptr @s2n_strerror(i32 noundef %9630, ptr noundef @.str.4)
  %9632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9633 = load i32, ptr %9632, align 4, !tbaa !5
  %9634 = call ptr @s2n_strerror_debug(i32 noundef %9633, ptr noundef @.str.4)
  %9635 = call ptr @__errno_location() #12
  %9636 = load i32, ptr %9635, align 4, !tbaa !5
  %9637 = call ptr @strerror(i32 noundef %9636) #11
  %9638 = call ptr @__errno_location() #12
  %9639 = load i32, ptr %9638, align 4, !tbaa !5
  %9640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9627, ptr noundef @.str.2, i32 noundef %9628, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 473, ptr noundef %9631, ptr noundef %9634, ptr noundef %9637, i32 noundef %9639) #11
  br label %9658

9641:                                             ; preds = %9619, %9612
  %9642 = load i32, ptr %220, align 4, !tbaa !5
  %9643 = call ptr @__errno_location() #12
  store i32 %9642, ptr %9643, align 4, !tbaa !5
  %9644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9645 = load i32, ptr @test_count, align 4, !tbaa !5
  %9646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9647 = load i32, ptr %9646, align 4, !tbaa !5
  %9648 = call ptr @s2n_strerror(i32 noundef %9647, ptr noundef @.str.4)
  %9649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9650 = load i32, ptr %9649, align 4, !tbaa !5
  %9651 = call ptr @s2n_strerror_debug(i32 noundef %9650, ptr noundef @.str.4)
  %9652 = call ptr @__errno_location() #12
  %9653 = load i32, ptr %9652, align 4, !tbaa !5
  %9654 = call ptr @strerror(i32 noundef %9653) #11
  %9655 = call ptr @__errno_location() #12
  %9656 = load i32, ptr %9655, align 4, !tbaa !5
  %9657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9644, ptr noundef @.str.5, i32 noundef %9645, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 473, ptr noundef %9648, ptr noundef %9651, ptr noundef %9654, i32 noundef %9656) #11
  br label %9658

9658:                                             ; preds = %9641, %9624
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #11
  br label %9659

9659:                                             ; preds = %9658
  br label %9660

9660:                                             ; preds = %9659
  call void @exit(i32 noundef 1) #13
  unreachable

9661:                                             ; No predecessors!
  br label %9662

9662:                                             ; preds = %9661
  br label %9663

9663:                                             ; preds = %9662, %9601
  br label %9664

9664:                                             ; preds = %9663
  br label %9665

9665:                                             ; preds = %9664
  call void @llvm.lifetime.start.p0(i64 40, ptr %221) #11
  call void @llvm.memset.p0.i64(ptr align 8 %221, i8 0, i64 40, i1 false)
  br label %9666

9666:                                             ; preds = %9665
  %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_stuffer_alloc_from_hex(ptr noundef %221, ptr noundef @.str.100)
  %9670 = getelementptr inbounds %struct.s2n_result, ptr %222, i32 0, i32 0
  store i32 %9669, ptr %9670, align 4
  %9671 = getelementptr inbounds %struct.s2n_result, ptr %222, i32 0, i32 0
  %9672 = load i32, ptr %9671, align 4
  %9673 = call zeroext i1 @s2n_result_is_ok(i32 %9672)
  br i1 %9673, label %9727, label %9674

9674:                                             ; preds = %9666
  br label %9675

9675:                                             ; preds = %9674
  br label %9676

9676:                                             ; preds = %9675
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #11
  %9677 = call ptr @__errno_location() #12
  %9678 = load i32, ptr %9677, align 4, !tbaa !5
  store i32 %9678, ptr %223, align 4, !tbaa !5
  %9679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9680 = call i32 @s2n_print_stacktrace(ptr noundef %9679)
  %9681 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9682 = trunc i8 %9681 to i1
  br i1 %9682, label %9683, label %9705

9683:                                             ; preds = %9676
  %9684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9685 = call i32 @fileno(ptr noundef %9684) #11
  %9686 = call i32 @isatty(i32 noundef %9685) #11
  %9687 = icmp ne i32 %9686, 0
  br i1 %9687, label %9688, label %9705

9688:                                             ; preds = %9683
  %9689 = load i32, ptr %223, align 4, !tbaa !5
  %9690 = call ptr @__errno_location() #12
  store i32 %9689, ptr %9690, align 4, !tbaa !5
  %9691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9692 = load i32, ptr @test_count, align 4, !tbaa !5
  %9693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9694 = load i32, ptr %9693, align 4, !tbaa !5
  %9695 = call ptr @s2n_strerror(i32 noundef %9694, ptr noundef @.str.4)
  %9696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9697 = load i32, ptr %9696, align 4, !tbaa !5
  %9698 = call ptr @s2n_strerror_debug(i32 noundef %9697, ptr noundef @.str.4)
  %9699 = call ptr @__errno_location() #12
  %9700 = load i32, ptr %9699, align 4, !tbaa !5
  %9701 = call ptr @strerror(i32 noundef %9700) #11
  %9702 = call ptr @__errno_location() #12
  %9703 = load i32, ptr %9702, align 4, !tbaa !5
  %9704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9691, ptr noundef @.str.2, i32 noundef %9692, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 492, ptr noundef %9695, ptr noundef %9698, ptr noundef %9701, i32 noundef %9703) #11
  br label %9722

9705:                                             ; preds = %9683, %9676
  %9706 = load i32, ptr %223, align 4, !tbaa !5
  %9707 = call ptr @__errno_location() #12
  store i32 %9706, ptr %9707, align 4, !tbaa !5
  %9708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9709 = load i32, ptr @test_count, align 4, !tbaa !5
  %9710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9711 = load i32, ptr %9710, align 4, !tbaa !5
  %9712 = call ptr @s2n_strerror(i32 noundef %9711, ptr noundef @.str.4)
  %9713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9714 = load i32, ptr %9713, align 4, !tbaa !5
  %9715 = call ptr @s2n_strerror_debug(i32 noundef %9714, ptr noundef @.str.4)
  %9716 = call ptr @__errno_location() #12
  %9717 = load i32, ptr %9716, align 4, !tbaa !5
  %9718 = call ptr @strerror(i32 noundef %9717) #11
  %9719 = call ptr @__errno_location() #12
  %9720 = load i32, ptr %9719, align 4, !tbaa !5
  %9721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9708, ptr noundef @.str.5, i32 noundef %9709, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 492, ptr noundef %9712, ptr noundef %9715, ptr noundef %9718, i32 noundef %9720) #11
  br label %9722

9722:                                             ; preds = %9705, %9688
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #11
  br label %9723

9723:                                             ; preds = %9722
  br label %9724

9724:                                             ; preds = %9723
  call void @exit(i32 noundef 1) #13
  unreachable

9725:                                             ; No predecessors!
  br label %9726

9726:                                             ; preds = %9725
  br label %9727

9727:                                             ; preds = %9726, %9666
  br label %9728

9728:                                             ; preds = %9727
  br label %9729

9729:                                             ; preds = %9728
  br label %9730

9730:                                             ; preds = %9729
  %9731 = load i32, ptr @test_count, align 4, !tbaa !5
  %9732 = add nsw i32 %9731, 1
  store i32 %9732, ptr @test_count, align 4, !tbaa !5
  %9733 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !98
  %9734 = load ptr, ptr %217, align 8, !tbaa !9
  %9735 = call i32 %9733(ptr noundef %9734, ptr noundef %221)
  %9736 = icmp eq i32 %9735, -1
  br i1 %9736, label %9737, label %9790

9737:                                             ; preds = %9730
  br label %9738

9738:                                             ; preds = %9737
  br label %9739

9739:                                             ; preds = %9738
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #11
  %9740 = call ptr @__errno_location() #12
  %9741 = load i32, ptr %9740, align 4, !tbaa !5
  store i32 %9741, ptr %224, align 4, !tbaa !5
  %9742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9743 = call i32 @s2n_print_stacktrace(ptr noundef %9742)
  %9744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9745 = trunc i8 %9744 to i1
  br i1 %9745, label %9746, label %9768

9746:                                             ; preds = %9739
  %9747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9748 = call i32 @fileno(ptr noundef %9747) #11
  %9749 = call i32 @isatty(i32 noundef %9748) #11
  %9750 = icmp ne i32 %9749, 0
  br i1 %9750, label %9751, label %9768

9751:                                             ; preds = %9746
  %9752 = load i32, ptr %224, align 4, !tbaa !5
  %9753 = call ptr @__errno_location() #12
  store i32 %9752, ptr %9753, align 4, !tbaa !5
  %9754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9755 = load i32, ptr @test_count, align 4, !tbaa !5
  %9756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9757 = load i32, ptr %9756, align 4, !tbaa !5
  %9758 = call ptr @s2n_strerror(i32 noundef %9757, ptr noundef @.str.4)
  %9759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9760 = load i32, ptr %9759, align 4, !tbaa !5
  %9761 = call ptr @s2n_strerror_debug(i32 noundef %9760, ptr noundef @.str.4)
  %9762 = call ptr @__errno_location() #12
  %9763 = load i32, ptr %9762, align 4, !tbaa !5
  %9764 = call ptr @strerror(i32 noundef %9763) #11
  %9765 = call ptr @__errno_location() #12
  %9766 = load i32, ptr %9765, align 4, !tbaa !5
  %9767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9754, ptr noundef @.str.2, i32 noundef %9755, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 494, ptr noundef %9758, ptr noundef %9761, ptr noundef %9764, i32 noundef %9766) #11
  br label %9785

9768:                                             ; preds = %9746, %9739
  %9769 = load i32, ptr %224, align 4, !tbaa !5
  %9770 = call ptr @__errno_location() #12
  store i32 %9769, ptr %9770, align 4, !tbaa !5
  %9771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9772 = load i32, ptr @test_count, align 4, !tbaa !5
  %9773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9774 = load i32, ptr %9773, align 4, !tbaa !5
  %9775 = call ptr @s2n_strerror(i32 noundef %9774, ptr noundef @.str.4)
  %9776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9777 = load i32, ptr %9776, align 4, !tbaa !5
  %9778 = call ptr @s2n_strerror_debug(i32 noundef %9777, ptr noundef @.str.4)
  %9779 = call ptr @__errno_location() #12
  %9780 = load i32, ptr %9779, align 4, !tbaa !5
  %9781 = call ptr @strerror(i32 noundef %9780) #11
  %9782 = call ptr @__errno_location() #12
  %9783 = load i32, ptr %9782, align 4, !tbaa !5
  %9784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9771, ptr noundef @.str.5, i32 noundef %9772, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 494, ptr noundef %9775, ptr noundef %9778, ptr noundef %9781, i32 noundef %9783) #11
  br label %9785

9785:                                             ; preds = %9768, %9751
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #11
  br label %9786

9786:                                             ; preds = %9785
  br label %9787

9787:                                             ; preds = %9786
  call void @exit(i32 noundef 1) #13
  unreachable

9788:                                             ; No predecessors!
  br label %9789

9789:                                             ; preds = %9788
  br label %9790

9790:                                             ; preds = %9789, %9730
  br label %9791

9791:                                             ; preds = %9790
  br label %9792

9792:                                             ; preds = %9791
  br label %9793

9793:                                             ; preds = %9792
  %9794 = load i32, ptr @test_count, align 4, !tbaa !5
  %9795 = add nsw i32 %9794, 1
  store i32 %9795, ptr @test_count, align 4, !tbaa !5
  %9796 = getelementptr inbounds %struct.s2n_stuffer, ptr %221, i32 0, i32 2
  %9797 = load i32, ptr %9796, align 4, !tbaa !58
  %9798 = getelementptr inbounds %struct.s2n_stuffer, ptr %221, i32 0, i32 1
  %9799 = load i32, ptr %9798, align 8, !tbaa !59
  %9800 = sub i32 %9797, %9799
  %9801 = icmp eq i32 %9800, 0
  br i1 %9801, label %9855, label %9802

9802:                                             ; preds = %9793
  br label %9803

9803:                                             ; preds = %9802
  br label %9804

9804:                                             ; preds = %9803
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #11
  %9805 = call ptr @__errno_location() #12
  %9806 = load i32, ptr %9805, align 4, !tbaa !5
  store i32 %9806, ptr %225, align 4, !tbaa !5
  %9807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9808 = call i32 @s2n_print_stacktrace(ptr noundef %9807)
  %9809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9810 = trunc i8 %9809 to i1
  br i1 %9810, label %9811, label %9833

9811:                                             ; preds = %9804
  %9812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9813 = call i32 @fileno(ptr noundef %9812) #11
  %9814 = call i32 @isatty(i32 noundef %9813) #11
  %9815 = icmp ne i32 %9814, 0
  br i1 %9815, label %9816, label %9833

9816:                                             ; preds = %9811
  %9817 = load i32, ptr %225, align 4, !tbaa !5
  %9818 = call ptr @__errno_location() #12
  store i32 %9817, ptr %9818, align 4, !tbaa !5
  %9819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9820 = load i32, ptr @test_count, align 4, !tbaa !5
  %9821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9822 = load i32, ptr %9821, align 4, !tbaa !5
  %9823 = call ptr @s2n_strerror(i32 noundef %9822, ptr noundef @.str.4)
  %9824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9825 = load i32, ptr %9824, align 4, !tbaa !5
  %9826 = call ptr @s2n_strerror_debug(i32 noundef %9825, ptr noundef @.str.4)
  %9827 = call ptr @__errno_location() #12
  %9828 = load i32, ptr %9827, align 4, !tbaa !5
  %9829 = call ptr @strerror(i32 noundef %9828) #11
  %9830 = call ptr @__errno_location() #12
  %9831 = load i32, ptr %9830, align 4, !tbaa !5
  %9832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9819, ptr noundef @.str.2, i32 noundef %9820, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 497, ptr noundef %9823, ptr noundef %9826, ptr noundef %9829, i32 noundef %9831) #11
  br label %9850

9833:                                             ; preds = %9811, %9804
  %9834 = load i32, ptr %225, align 4, !tbaa !5
  %9835 = call ptr @__errno_location() #12
  store i32 %9834, ptr %9835, align 4, !tbaa !5
  %9836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9837 = load i32, ptr @test_count, align 4, !tbaa !5
  %9838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9839 = load i32, ptr %9838, align 4, !tbaa !5
  %9840 = call ptr @s2n_strerror(i32 noundef %9839, ptr noundef @.str.4)
  %9841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9842 = load i32, ptr %9841, align 4, !tbaa !5
  %9843 = call ptr @s2n_strerror_debug(i32 noundef %9842, ptr noundef @.str.4)
  %9844 = call ptr @__errno_location() #12
  %9845 = load i32, ptr %9844, align 4, !tbaa !5
  %9846 = call ptr @strerror(i32 noundef %9845) #11
  %9847 = call ptr @__errno_location() #12
  %9848 = load i32, ptr %9847, align 4, !tbaa !5
  %9849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9836, ptr noundef @.str.5, i32 noundef %9837, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 497, ptr noundef %9840, ptr noundef %9843, ptr noundef %9846, i32 noundef %9848) #11
  br label %9850

9850:                                             ; preds = %9833, %9816
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #11
  br label %9851

9851:                                             ; preds = %9850
  br label %9852

9852:                                             ; preds = %9851
  call void @exit(i32 noundef 1) #13
  unreachable

9853:                                             ; No predecessors!
  br label %9854

9854:                                             ; preds = %9853
  br label %9855

9855:                                             ; preds = %9854, %9793
  br label %9856

9856:                                             ; preds = %9855
  br label %9857

9857:                                             ; preds = %9856
  call void @llvm.lifetime.start.p0(i64 8, ptr %226) #11
  store ptr null, ptr %226, align 8, !tbaa !9
  br label %9858

9858:                                             ; preds = %9857
  %9859 = load i32, ptr @test_count, align 4, !tbaa !5
  %9860 = add nsw i32 %9859, 1
  store i32 %9860, ptr @test_count, align 4, !tbaa !5
  %9861 = load ptr, ptr %217, align 8, !tbaa !9
  %9862 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %9861, ptr noundef %226)
  %9863 = icmp eq i32 %9862, -1
  br i1 %9863, label %9864, label %9917

9864:                                             ; preds = %9858
  br label %9865

9865:                                             ; preds = %9864
  br label %9866

9866:                                             ; preds = %9865
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #11
  %9867 = call ptr @__errno_location() #12
  %9868 = load i32, ptr %9867, align 4, !tbaa !5
  store i32 %9868, ptr %227, align 4, !tbaa !5
  %9869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9870 = call i32 @s2n_print_stacktrace(ptr noundef %9869)
  %9871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9872 = trunc i8 %9871 to i1
  br i1 %9872, label %9873, label %9895

9873:                                             ; preds = %9866
  %9874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9875 = call i32 @fileno(ptr noundef %9874) #11
  %9876 = call i32 @isatty(i32 noundef %9875) #11
  %9877 = icmp ne i32 %9876, 0
  br i1 %9877, label %9878, label %9895

9878:                                             ; preds = %9873
  %9879 = load i32, ptr %227, align 4, !tbaa !5
  %9880 = call ptr @__errno_location() #12
  store i32 %9879, ptr %9880, align 4, !tbaa !5
  %9881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9882 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9884, ptr noundef @.str.4)
  %9886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9887 = load i32, ptr %9886, align 4, !tbaa !5
  %9888 = call ptr @s2n_strerror_debug(i32 noundef %9887, ptr noundef @.str.4)
  %9889 = call ptr @__errno_location() #12
  %9890 = load i32, ptr %9889, align 4, !tbaa !5
  %9891 = call ptr @strerror(i32 noundef %9890) #11
  %9892 = call ptr @__errno_location() #12
  %9893 = load i32, ptr %9892, align 4, !tbaa !5
  %9894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9881, ptr noundef @.str.2, i32 noundef %9882, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 501, ptr noundef %9885, ptr noundef %9888, ptr noundef %9891, i32 noundef %9893) #11
  br label %9912

9895:                                             ; preds = %9873, %9866
  %9896 = load i32, ptr %227, align 4, !tbaa !5
  %9897 = call ptr @__errno_location() #12
  store i32 %9896, ptr %9897, align 4, !tbaa !5
  %9898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9899 = load i32, ptr @test_count, align 4, !tbaa !5
  %9900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9901 = load i32, ptr %9900, align 4, !tbaa !5
  %9902 = call ptr @s2n_strerror(i32 noundef %9901, ptr noundef @.str.4)
  %9903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9904 = load i32, ptr %9903, align 4, !tbaa !5
  %9905 = call ptr @s2n_strerror_debug(i32 noundef %9904, ptr noundef @.str.4)
  %9906 = call ptr @__errno_location() #12
  %9907 = load i32, ptr %9906, align 4, !tbaa !5
  %9908 = call ptr @strerror(i32 noundef %9907) #11
  %9909 = call ptr @__errno_location() #12
  %9910 = load i32, ptr %9909, align 4, !tbaa !5
  %9911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9898, ptr noundef @.str.5, i32 noundef %9899, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 501, ptr noundef %9902, ptr noundef %9905, ptr noundef %9908, i32 noundef %9910) #11
  br label %9912

9912:                                             ; preds = %9895, %9878
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #11
  br label %9913

9913:                                             ; preds = %9912
  br label %9914

9914:                                             ; preds = %9913
  call void @exit(i32 noundef 1) #13
  unreachable

9915:                                             ; No predecessors!
  br label %9916

9916:                                             ; preds = %9915
  br label %9917

9917:                                             ; preds = %9916, %9858
  br label %9918

9918:                                             ; preds = %9917
  br label %9919

9919:                                             ; preds = %9918
  br label %9920

9920:                                             ; preds = %9919
  %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 = load ptr, ptr %226, align 8, !tbaa !9
  %9924 = icmp eq ptr %9923, null
  br i1 %9924, label %9925, label %9978

9925:                                             ; preds = %9920
  br label %9926

9926:                                             ; preds = %9925
  br label %9927

9927:                                             ; preds = %9926
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #11
  %9928 = call ptr @__errno_location() #12
  %9929 = load i32, ptr %9928, align 4, !tbaa !5
  store i32 %9929, ptr %228, align 4, !tbaa !5
  %9930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9931 = call i32 @s2n_print_stacktrace(ptr noundef %9930)
  %9932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9933 = trunc i8 %9932 to i1
  br i1 %9933, label %9934, label %9956

9934:                                             ; preds = %9927
  %9935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9936 = call i32 @fileno(ptr noundef %9935) #11
  %9937 = call i32 @isatty(i32 noundef %9936) #11
  %9938 = icmp ne i32 %9937, 0
  br i1 %9938, label %9939, label %9956

9939:                                             ; preds = %9934
  %9940 = load i32, ptr %228, align 4, !tbaa !5
  %9941 = call ptr @__errno_location() #12
  store i32 %9940, ptr %9941, align 4, !tbaa !5
  %9942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9943 = load i32, ptr @test_count, align 4, !tbaa !5
  %9944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9945 = load i32, ptr %9944, align 4, !tbaa !5
  %9946 = call ptr @s2n_strerror(i32 noundef %9945, ptr noundef @.str.4)
  %9947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9948 = load i32, ptr %9947, align 4, !tbaa !5
  %9949 = call ptr @s2n_strerror_debug(i32 noundef %9948, ptr noundef @.str.4)
  %9950 = call ptr @__errno_location() #12
  %9951 = load i32, ptr %9950, align 4, !tbaa !5
  %9952 = call ptr @strerror(i32 noundef %9951) #11
  %9953 = call ptr @__errno_location() #12
  %9954 = load i32, ptr %9953, align 4, !tbaa !5
  %9955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9942, ptr noundef @.str.2, i32 noundef %9943, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 502, ptr noundef %9946, ptr noundef %9949, ptr noundef %9952, i32 noundef %9954) #11
  br label %9973

9956:                                             ; preds = %9934, %9927
  %9957 = load i32, ptr %228, align 4, !tbaa !5
  %9958 = call ptr @__errno_location() #12
  store i32 %9957, ptr %9958, align 4, !tbaa !5
  %9959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9960 = load i32, ptr @test_count, align 4, !tbaa !5
  %9961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9962 = load i32, ptr %9961, align 4, !tbaa !5
  %9963 = call ptr @s2n_strerror(i32 noundef %9962, ptr noundef @.str.4)
  %9964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9965 = load i32, ptr %9964, align 4, !tbaa !5
  %9966 = call ptr @s2n_strerror_debug(i32 noundef %9965, ptr noundef @.str.4)
  %9967 = call ptr @__errno_location() #12
  %9968 = load i32, ptr %9967, align 4, !tbaa !5
  %9969 = call ptr @strerror(i32 noundef %9968) #11
  %9970 = call ptr @__errno_location() #12
  %9971 = load i32, ptr %9970, align 4, !tbaa !5
  %9972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9959, ptr noundef @.str.5, i32 noundef %9960, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 502, ptr noundef %9963, ptr noundef %9966, ptr noundef %9969, i32 noundef %9971) #11
  br label %9973

9973:                                             ; preds = %9956, %9939
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #11
  br label %9974

9974:                                             ; preds = %9973
  br label %9975

9975:                                             ; preds = %9974
  call void @exit(i32 noundef 1) #13
  unreachable

9976:                                             ; No predecessors!
  br label %9977

9977:                                             ; preds = %9976
  br label %9978

9978:                                             ; preds = %9977, %9920
  br label %9979

9979:                                             ; preds = %9978
  br label %9980

9980:                                             ; preds = %9979
  call void @llvm.lifetime.start.p0(i64 8, ptr %229) #11
  %9981 = load ptr, ptr %217, align 8, !tbaa !9
  %9982 = getelementptr inbounds %struct.s2n_connection, ptr %9981, i32 0, i32 31
  %9983 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9982, i32 0, i32 3
  store ptr %9983, ptr %229, align 8, !tbaa !9
  br label %9984

9984:                                             ; preds = %9980
  %9985 = load i32, ptr @test_count, align 4, !tbaa !5
  %9986 = add nsw i32 %9985, 1
  store i32 %9986, ptr @test_count, align 4, !tbaa !5
  %9987 = load ptr, ptr %229, align 8, !tbaa !9
  %9988 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %9987, i32 0, i32 0
  %9989 = load ptr, ptr %9988, align 8, !tbaa !79
  %9990 = icmp eq ptr %9989, null
  br i1 %9990, label %10044, label %9991

9991:                                             ; preds = %9984
  br label %9992

9992:                                             ; preds = %9991
  br label %9993

9993:                                             ; preds = %9992
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #11
  %9994 = call ptr @__errno_location() #12
  %9995 = load i32, ptr %9994, align 4, !tbaa !5
  store i32 %9995, ptr %230, align 4, !tbaa !5
  %9996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9997 = call i32 @s2n_print_stacktrace(ptr noundef %9996)
  %9998 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9999 = trunc i8 %9998 to i1
  br i1 %9999, label %10000, label %10022

10000:                                            ; preds = %9993
  %10001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10002 = call i32 @fileno(ptr noundef %10001) #11
  %10003 = call i32 @isatty(i32 noundef %10002) #11
  %10004 = icmp ne i32 %10003, 0
  br i1 %10004, label %10005, label %10022

10005:                                            ; preds = %10000
  %10006 = load i32, ptr %230, align 4, !tbaa !5
  %10007 = call ptr @__errno_location() #12
  store i32 %10006, ptr %10007, align 4, !tbaa !5
  %10008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10009 = load i32, ptr @test_count, align 4, !tbaa !5
  %10010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10011 = load i32, ptr %10010, align 4, !tbaa !5
  %10012 = call ptr @s2n_strerror(i32 noundef %10011, ptr noundef @.str.4)
  %10013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10014 = load i32, ptr %10013, align 4, !tbaa !5
  %10015 = call ptr @s2n_strerror_debug(i32 noundef %10014, ptr noundef @.str.4)
  %10016 = call ptr @__errno_location() #12
  %10017 = load i32, ptr %10016, align 4, !tbaa !5
  %10018 = call ptr @strerror(i32 noundef %10017) #11
  %10019 = call ptr @__errno_location() #12
  %10020 = load i32, ptr %10019, align 4, !tbaa !5
  %10021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10008, ptr noundef @.str.2, i32 noundef %10009, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 505, ptr noundef %10012, ptr noundef %10015, ptr noundef %10018, i32 noundef %10020) #11
  br label %10039

10022:                                            ; preds = %10000, %9993
  %10023 = load i32, ptr %230, align 4, !tbaa !5
  %10024 = call ptr @__errno_location() #12
  store i32 %10023, ptr %10024, align 4, !tbaa !5
  %10025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10026 = load i32, ptr @test_count, align 4, !tbaa !5
  %10027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10028 = load i32, ptr %10027, align 4, !tbaa !5
  %10029 = call ptr @s2n_strerror(i32 noundef %10028, ptr noundef @.str.4)
  %10030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10031 = load i32, ptr %10030, align 4, !tbaa !5
  %10032 = call ptr @s2n_strerror_debug(i32 noundef %10031, ptr noundef @.str.4)
  %10033 = call ptr @__errno_location() #12
  %10034 = load i32, ptr %10033, align 4, !tbaa !5
  %10035 = call ptr @strerror(i32 noundef %10034) #11
  %10036 = call ptr @__errno_location() #12
  %10037 = load i32, ptr %10036, align 4, !tbaa !5
  %10038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10025, ptr noundef @.str.5, i32 noundef %10026, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 505, ptr noundef %10029, ptr noundef %10032, ptr noundef %10035, i32 noundef %10037) #11
  br label %10039

10039:                                            ; preds = %10022, %10005
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #11
  br label %10040

10040:                                            ; preds = %10039
  br label %10041

10041:                                            ; preds = %10040
  call void @exit(i32 noundef 1) #13
  unreachable

10042:                                            ; No predecessors!
  br label %10043

10043:                                            ; preds = %10042
  br label %10044

10044:                                            ; preds = %10043, %9984
  br label %10045

10045:                                            ; preds = %10044
  br label %10046

10046:                                            ; preds = %10045
  br label %10047

10047:                                            ; preds = %10046
  %10048 = load i32, ptr @test_count, align 4, !tbaa !5
  %10049 = add nsw i32 %10048, 1
  store i32 %10049, ptr @test_count, align 4, !tbaa !5
  %10050 = load ptr, ptr %229, align 8, !tbaa !9
  %10051 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %10050, i32 0, i32 1
  %10052 = load ptr, ptr %10051, align 8, !tbaa !80
  %10053 = icmp eq ptr %10052, null
  br i1 %10053, label %10107, label %10054

10054:                                            ; preds = %10047
  br label %10055

10055:                                            ; preds = %10054
  br label %10056

10056:                                            ; preds = %10055
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #11
  %10057 = call ptr @__errno_location() #12
  %10058 = load i32, ptr %10057, align 4, !tbaa !5
  store i32 %10058, ptr %231, align 4, !tbaa !5
  %10059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10060 = call i32 @s2n_print_stacktrace(ptr noundef %10059)
  %10061 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10062 = trunc i8 %10061 to i1
  br i1 %10062, label %10063, label %10085

10063:                                            ; preds = %10056
  %10064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10065 = call i32 @fileno(ptr noundef %10064) #11
  %10066 = call i32 @isatty(i32 noundef %10065) #11
  %10067 = icmp ne i32 %10066, 0
  br i1 %10067, label %10068, label %10085

10068:                                            ; preds = %10063
  %10069 = load i32, ptr %231, align 4, !tbaa !5
  %10070 = call ptr @__errno_location() #12
  store i32 %10069, ptr %10070, align 4, !tbaa !5
  %10071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10072 = load i32, ptr @test_count, align 4, !tbaa !5
  %10073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10074 = load i32, ptr %10073, align 4, !tbaa !5
  %10075 = call ptr @s2n_strerror(i32 noundef %10074, ptr noundef @.str.4)
  %10076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10077 = load i32, ptr %10076, align 4, !tbaa !5
  %10078 = call ptr @s2n_strerror_debug(i32 noundef %10077, ptr noundef @.str.4)
  %10079 = call ptr @__errno_location() #12
  %10080 = load i32, ptr %10079, align 4, !tbaa !5
  %10081 = call ptr @strerror(i32 noundef %10080) #11
  %10082 = call ptr @__errno_location() #12
  %10083 = load i32, ptr %10082, align 4, !tbaa !5
  %10084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10071, ptr noundef @.str.2, i32 noundef %10072, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 506, ptr noundef %10075, ptr noundef %10078, ptr noundef %10081, i32 noundef %10083) #11
  br label %10102

10085:                                            ; preds = %10063, %10056
  %10086 = load i32, ptr %231, align 4, !tbaa !5
  %10087 = call ptr @__errno_location() #12
  store i32 %10086, ptr %10087, align 4, !tbaa !5
  %10088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10089 = load i32, ptr @test_count, align 4, !tbaa !5
  %10090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10091 = load i32, ptr %10090, align 4, !tbaa !5
  %10092 = call ptr @s2n_strerror(i32 noundef %10091, ptr noundef @.str.4)
  %10093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10094 = load i32, ptr %10093, align 4, !tbaa !5
  %10095 = call ptr @s2n_strerror_debug(i32 noundef %10094, ptr noundef @.str.4)
  %10096 = call ptr @__errno_location() #12
  %10097 = load i32, ptr %10096, align 4, !tbaa !5
  %10098 = call ptr @strerror(i32 noundef %10097) #11
  %10099 = call ptr @__errno_location() #12
  %10100 = load i32, ptr %10099, align 4, !tbaa !5
  %10101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10088, ptr noundef @.str.5, i32 noundef %10089, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 506, ptr noundef %10092, ptr noundef %10095, ptr noundef %10098, i32 noundef %10100) #11
  br label %10102

10102:                                            ; preds = %10085, %10068
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #11
  br label %10103

10103:                                            ; preds = %10102
  br label %10104

10104:                                            ; preds = %10103
  call void @exit(i32 noundef 1) #13
  unreachable

10105:                                            ; No predecessors!
  br label %10106

10106:                                            ; preds = %10105
  br label %10107

10107:                                            ; preds = %10106, %10047
  br label %10108

10108:                                            ; preds = %10107
  br label %10109

10109:                                            ; preds = %10108
  call void @llvm.lifetime.start.p0(i64 8, ptr %232) #11
  store ptr null, ptr %232, align 8, !tbaa !9
  br label %10110

10110:                                            ; preds = %10109
  %10111 = load i32, ptr @test_count, align 4, !tbaa !5
  %10112 = add nsw i32 %10111, 1
  store i32 %10112, ptr @test_count, align 4, !tbaa !5
  %10113 = load ptr, ptr %217, align 8, !tbaa !9
  %10114 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %10113, ptr noundef %232)
  %10115 = icmp eq i32 %10114, -1
  br i1 %10115, label %10116, label %10169

10116:                                            ; preds = %10110
  br label %10117

10117:                                            ; preds = %10116
  br label %10118

10118:                                            ; preds = %10117
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #11
  %10119 = call ptr @__errno_location() #12
  %10120 = load i32, ptr %10119, align 4, !tbaa !5
  store i32 %10120, ptr %233, align 4, !tbaa !5
  %10121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10122 = call i32 @s2n_print_stacktrace(ptr noundef %10121)
  %10123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10124 = trunc i8 %10123 to i1
  br i1 %10124, label %10125, label %10147

10125:                                            ; preds = %10118
  %10126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10127 = call i32 @fileno(ptr noundef %10126) #11
  %10128 = call i32 @isatty(i32 noundef %10127) #11
  %10129 = icmp ne i32 %10128, 0
  br i1 %10129, label %10130, label %10147

10130:                                            ; preds = %10125
  %10131 = load i32, ptr %233, align 4, !tbaa !5
  %10132 = call ptr @__errno_location() #12
  store i32 %10131, ptr %10132, align 4, !tbaa !5
  %10133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10134 = load i32, ptr @test_count, align 4, !tbaa !5
  %10135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10136 = load i32, ptr %10135, align 4, !tbaa !5
  %10137 = call ptr @s2n_strerror(i32 noundef %10136, ptr noundef @.str.4)
  %10138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10139 = load i32, ptr %10138, align 4, !tbaa !5
  %10140 = call ptr @s2n_strerror_debug(i32 noundef %10139, ptr noundef @.str.4)
  %10141 = call ptr @__errno_location() #12
  %10142 = load i32, ptr %10141, align 4, !tbaa !5
  %10143 = call ptr @strerror(i32 noundef %10142) #11
  %10144 = call ptr @__errno_location() #12
  %10145 = load i32, ptr %10144, align 4, !tbaa !5
  %10146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10133, ptr noundef @.str.2, i32 noundef %10134, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 509, ptr noundef %10137, ptr noundef %10140, ptr noundef %10143, i32 noundef %10145) #11
  br label %10164

10147:                                            ; preds = %10125, %10118
  %10148 = load i32, ptr %233, align 4, !tbaa !5
  %10149 = call ptr @__errno_location() #12
  store i32 %10148, ptr %10149, align 4, !tbaa !5
  %10150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10151 = load i32, ptr @test_count, align 4, !tbaa !5
  %10152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10153 = load i32, ptr %10152, align 4, !tbaa !5
  %10154 = call ptr @s2n_strerror(i32 noundef %10153, ptr noundef @.str.4)
  %10155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10156 = load i32, ptr %10155, align 4, !tbaa !5
  %10157 = call ptr @s2n_strerror_debug(i32 noundef %10156, ptr noundef @.str.4)
  %10158 = call ptr @__errno_location() #12
  %10159 = load i32, ptr %10158, align 4, !tbaa !5
  %10160 = call ptr @strerror(i32 noundef %10159) #11
  %10161 = call ptr @__errno_location() #12
  %10162 = load i32, ptr %10161, align 4, !tbaa !5
  %10163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10150, ptr noundef @.str.5, i32 noundef %10151, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 509, ptr noundef %10154, ptr noundef %10157, ptr noundef %10160, i32 noundef %10162) #11
  br label %10164

10164:                                            ; preds = %10147, %10130
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #11
  br label %10165

10165:                                            ; preds = %10164
  br label %10166

10166:                                            ; preds = %10165
  call void @exit(i32 noundef 1) #13
  unreachable

10167:                                            ; No predecessors!
  br label %10168

10168:                                            ; preds = %10167
  br label %10169

10169:                                            ; preds = %10168, %10110
  br label %10170

10170:                                            ; preds = %10169
  br label %10171

10171:                                            ; preds = %10170
  br label %10172

10172:                                            ; preds = %10171
  %10173 = load i32, ptr @test_count, align 4, !tbaa !5
  %10174 = add nsw i32 %10173, 1
  store i32 %10174, ptr @test_count, align 4, !tbaa !5
  %10175 = load ptr, ptr %232, align 8, !tbaa !9
  %10176 = icmp eq ptr %10175, null
  br i1 %10176, label %10177, label %10230

10177:                                            ; preds = %10172
  br label %10178

10178:                                            ; preds = %10177
  br label %10179

10179:                                            ; preds = %10178
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #11
  %10180 = call ptr @__errno_location() #12
  %10181 = load i32, ptr %10180, align 4, !tbaa !5
  store i32 %10181, ptr %234, align 4, !tbaa !5
  %10182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10183 = call i32 @s2n_print_stacktrace(ptr noundef %10182)
  %10184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10185 = trunc i8 %10184 to i1
  br i1 %10185, label %10186, label %10208

10186:                                            ; preds = %10179
  %10187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10188 = call i32 @fileno(ptr noundef %10187) #11
  %10189 = call i32 @isatty(i32 noundef %10188) #11
  %10190 = icmp ne i32 %10189, 0
  br i1 %10190, label %10191, label %10208

10191:                                            ; preds = %10186
  %10192 = load i32, ptr %234, align 4, !tbaa !5
  %10193 = call ptr @__errno_location() #12
  store i32 %10192, ptr %10193, align 4, !tbaa !5
  %10194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10195 = load i32, ptr @test_count, align 4, !tbaa !5
  %10196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10197 = load i32, ptr %10196, align 4, !tbaa !5
  %10198 = call ptr @s2n_strerror(i32 noundef %10197, ptr noundef @.str.4)
  %10199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10200 = load i32, ptr %10199, align 4, !tbaa !5
  %10201 = call ptr @s2n_strerror_debug(i32 noundef %10200, ptr noundef @.str.4)
  %10202 = call ptr @__errno_location() #12
  %10203 = load i32, ptr %10202, align 4, !tbaa !5
  %10204 = call ptr @strerror(i32 noundef %10203) #11
  %10205 = call ptr @__errno_location() #12
  %10206 = load i32, ptr %10205, align 4, !tbaa !5
  %10207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10194, ptr noundef @.str.2, i32 noundef %10195, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 510, ptr noundef %10198, ptr noundef %10201, ptr noundef %10204, i32 noundef %10206) #11
  br label %10225

10208:                                            ; preds = %10186, %10179
  %10209 = load i32, ptr %234, align 4, !tbaa !5
  %10210 = call ptr @__errno_location() #12
  store i32 %10209, ptr %10210, align 4, !tbaa !5
  %10211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10212 = load i32, ptr @test_count, align 4, !tbaa !5
  %10213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10214 = load i32, ptr %10213, align 4, !tbaa !5
  %10215 = call ptr @s2n_strerror(i32 noundef %10214, ptr noundef @.str.4)
  %10216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10217 = load i32, ptr %10216, align 4, !tbaa !5
  %10218 = call ptr @s2n_strerror_debug(i32 noundef %10217, ptr noundef @.str.4)
  %10219 = call ptr @__errno_location() #12
  %10220 = load i32, ptr %10219, align 4, !tbaa !5
  %10221 = call ptr @strerror(i32 noundef %10220) #11
  %10222 = call ptr @__errno_location() #12
  %10223 = load i32, ptr %10222, align 4, !tbaa !5
  %10224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10211, ptr noundef @.str.5, i32 noundef %10212, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 510, ptr noundef %10215, ptr noundef %10218, ptr noundef %10221, i32 noundef %10223) #11
  br label %10225

10225:                                            ; preds = %10208, %10191
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #11
  br label %10226

10226:                                            ; preds = %10225
  br label %10227

10227:                                            ; preds = %10226
  call void @exit(i32 noundef 1) #13
  unreachable

10228:                                            ; No predecessors!
  br label %10229

10229:                                            ; preds = %10228
  br label %10230

10230:                                            ; preds = %10229, %10172
  br label %10231

10231:                                            ; preds = %10230
  br label %10232

10232:                                            ; preds = %10231
  call void @llvm.lifetime.start.p0(i64 8, ptr %235) #11
  %10233 = load ptr, ptr %217, align 8, !tbaa !9
  %10234 = getelementptr inbounds %struct.s2n_connection, ptr %10233, i32 0, i32 31
  %10235 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10234, i32 0, i32 5
  store ptr %10235, ptr %235, align 8, !tbaa !9
  br label %10236

10236:                                            ; preds = %10232
  %10237 = load i32, ptr @test_count, align 4, !tbaa !5
  %10238 = add nsw i32 %10237, 1
  store i32 %10238, ptr @test_count, align 4, !tbaa !5
  %10239 = load ptr, ptr %235, align 8, !tbaa !9
  %10240 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %10239, i32 0, i32 0
  %10241 = load ptr, ptr %10240, align 8, !tbaa !68
  %10242 = icmp eq ptr %10241, null
  br i1 %10242, label %10296, label %10243

10243:                                            ; preds = %10236
  br label %10244

10244:                                            ; preds = %10243
  br label %10245

10245:                                            ; preds = %10244
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #11
  %10246 = call ptr @__errno_location() #12
  %10247 = load i32, ptr %10246, align 4, !tbaa !5
  store i32 %10247, ptr %236, align 4, !tbaa !5
  %10248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10249 = call i32 @s2n_print_stacktrace(ptr noundef %10248)
  %10250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10251 = trunc i8 %10250 to i1
  br i1 %10251, label %10252, label %10274

10252:                                            ; preds = %10245
  %10253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10254 = call i32 @fileno(ptr noundef %10253) #11
  %10255 = call i32 @isatty(i32 noundef %10254) #11
  %10256 = icmp ne i32 %10255, 0
  br i1 %10256, label %10257, label %10274

10257:                                            ; preds = %10252
  %10258 = load i32, ptr %236, align 4, !tbaa !5
  %10259 = call ptr @__errno_location() #12
  store i32 %10258, ptr %10259, align 4, !tbaa !5
  %10260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10261 = load i32, ptr @test_count, align 4, !tbaa !5
  %10262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10263 = load i32, ptr %10262, align 4, !tbaa !5
  %10264 = call ptr @s2n_strerror(i32 noundef %10263, ptr noundef @.str.4)
  %10265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10266 = load i32, ptr %10265, align 4, !tbaa !5
  %10267 = call ptr @s2n_strerror_debug(i32 noundef %10266, ptr noundef @.str.4)
  %10268 = call ptr @__errno_location() #12
  %10269 = load i32, ptr %10268, align 4, !tbaa !5
  %10270 = call ptr @strerror(i32 noundef %10269) #11
  %10271 = call ptr @__errno_location() #12
  %10272 = load i32, ptr %10271, align 4, !tbaa !5
  %10273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10260, ptr noundef @.str.2, i32 noundef %10261, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 513, ptr noundef %10264, ptr noundef %10267, ptr noundef %10270, i32 noundef %10272) #11
  br label %10291

10274:                                            ; preds = %10252, %10245
  %10275 = load i32, ptr %236, align 4, !tbaa !5
  %10276 = call ptr @__errno_location() #12
  store i32 %10275, ptr %10276, align 4, !tbaa !5
  %10277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10278 = load i32, ptr @test_count, align 4, !tbaa !5
  %10279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10280 = load i32, ptr %10279, align 4, !tbaa !5
  %10281 = call ptr @s2n_strerror(i32 noundef %10280, ptr noundef @.str.4)
  %10282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10283 = load i32, ptr %10282, align 4, !tbaa !5
  %10284 = call ptr @s2n_strerror_debug(i32 noundef %10283, ptr noundef @.str.4)
  %10285 = call ptr @__errno_location() #12
  %10286 = load i32, ptr %10285, align 4, !tbaa !5
  %10287 = call ptr @strerror(i32 noundef %10286) #11
  %10288 = call ptr @__errno_location() #12
  %10289 = load i32, ptr %10288, align 4, !tbaa !5
  %10290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10277, ptr noundef @.str.5, i32 noundef %10278, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 513, ptr noundef %10281, ptr noundef %10284, ptr noundef %10287, i32 noundef %10289) #11
  br label %10291

10291:                                            ; preds = %10274, %10257
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #11
  br label %10292

10292:                                            ; preds = %10291
  br label %10293

10293:                                            ; preds = %10292
  call void @exit(i32 noundef 1) #13
  unreachable

10294:                                            ; No predecessors!
  br label %10295

10295:                                            ; preds = %10294
  br label %10296

10296:                                            ; preds = %10295, %10236
  br label %10297

10297:                                            ; preds = %10296
  br label %10298

10298:                                            ; preds = %10297
  br label %10299

10299:                                            ; preds = %10298
  %10300 = load i32, ptr @test_count, align 4, !tbaa !5
  %10301 = add nsw i32 %10300, 1
  store i32 %10301, ptr @test_count, align 4, !tbaa !5
  %10302 = load ptr, ptr %235, align 8, !tbaa !9
  %10303 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %10302, i32 0, i32 2
  %10304 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %10303, i32 0, i32 0
  %10305 = load ptr, ptr %10304, align 8, !tbaa !76
  %10306 = icmp eq ptr %10305, null
  br i1 %10306, label %10360, label %10307

10307:                                            ; preds = %10299
  br label %10308

10308:                                            ; preds = %10307
  br label %10309

10309:                                            ; preds = %10308
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #11
  %10310 = call ptr @__errno_location() #12
  %10311 = load i32, ptr %10310, align 4, !tbaa !5
  store i32 %10311, ptr %237, align 4, !tbaa !5
  %10312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10313 = call i32 @s2n_print_stacktrace(ptr noundef %10312)
  %10314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10315 = trunc i8 %10314 to i1
  br i1 %10315, label %10316, label %10338

10316:                                            ; preds = %10309
  %10317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10318 = call i32 @fileno(ptr noundef %10317) #11
  %10319 = call i32 @isatty(i32 noundef %10318) #11
  %10320 = icmp ne i32 %10319, 0
  br i1 %10320, label %10321, label %10338

10321:                                            ; preds = %10316
  %10322 = load i32, ptr %237, align 4, !tbaa !5
  %10323 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %10332 = call ptr @__errno_location() #12
  %10333 = load i32, ptr %10332, align 4, !tbaa !5
  %10334 = call ptr @strerror(i32 noundef %10333) #11
  %10335 = call ptr @__errno_location() #12
  %10336 = load i32, ptr %10335, align 4, !tbaa !5
  %10337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10324, ptr noundef @.str.2, i32 noundef %10325, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 514, ptr noundef %10328, ptr noundef %10331, ptr noundef %10334, i32 noundef %10336) #11
  br label %10355

10338:                                            ; preds = %10316, %10309
  %10339 = load i32, ptr %237, align 4, !tbaa !5
  %10340 = call ptr @__errno_location() #12
  store i32 %10339, ptr %10340, align 4, !tbaa !5
  %10341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10342 = load i32, ptr @test_count, align 4, !tbaa !5
  %10343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10344 = load i32, ptr %10343, align 4, !tbaa !5
  %10345 = call ptr @s2n_strerror(i32 noundef %10344, ptr noundef @.str.4)
  %10346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10347 = load i32, ptr %10346, align 4, !tbaa !5
  %10348 = call ptr @s2n_strerror_debug(i32 noundef %10347, ptr noundef @.str.4)
  %10349 = call ptr @__errno_location() #12
  %10350 = load i32, ptr %10349, align 4, !tbaa !5
  %10351 = call ptr @strerror(i32 noundef %10350) #11
  %10352 = call ptr @__errno_location() #12
  %10353 = load i32, ptr %10352, align 4, !tbaa !5
  %10354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10341, ptr noundef @.str.5, i32 noundef %10342, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 514, ptr noundef %10345, ptr noundef %10348, ptr noundef %10351, i32 noundef %10353) #11
  br label %10355

10355:                                            ; preds = %10338, %10321
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #11
  br label %10356

10356:                                            ; preds = %10355
  br label %10357

10357:                                            ; preds = %10356
  call void @exit(i32 noundef 1) #13
  unreachable

10358:                                            ; No predecessors!
  br label %10359

10359:                                            ; preds = %10358
  br label %10360

10360:                                            ; preds = %10359, %10299
  br label %10361

10361:                                            ; preds = %10360
  br label %10362

10362:                                            ; preds = %10361
  br label %10363

10363:                                            ; preds = %10362
  %10364 = load i32, ptr @test_count, align 4, !tbaa !5
  %10365 = add nsw i32 %10364, 1
  store i32 %10365, ptr @test_count, align 4, !tbaa !5
  %10366 = load ptr, ptr %235, align 8, !tbaa !9
  %10367 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %10366, i32 0, i32 2
  %10368 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %10367, i32 0, i32 1
  %10369 = load ptr, ptr %10368, align 8, !tbaa !78
  %10370 = icmp eq ptr %10369, null
  br i1 %10370, label %10424, label %10371

10371:                                            ; preds = %10363
  br label %10372

10372:                                            ; preds = %10371
  br label %10373

10373:                                            ; preds = %10372
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #11
  %10374 = call ptr @__errno_location() #12
  %10375 = load i32, ptr %10374, align 4, !tbaa !5
  store i32 %10375, ptr %238, align 4, !tbaa !5
  %10376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10377 = call i32 @s2n_print_stacktrace(ptr noundef %10376)
  %10378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10379 = trunc i8 %10378 to i1
  br i1 %10379, label %10380, label %10402

10380:                                            ; preds = %10373
  %10381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10382 = call i32 @fileno(ptr noundef %10381) #11
  %10383 = call i32 @isatty(i32 noundef %10382) #11
  %10384 = icmp ne i32 %10383, 0
  br i1 %10384, label %10385, label %10402

10385:                                            ; preds = %10380
  %10386 = load i32, ptr %238, align 4, !tbaa !5
  %10387 = call ptr @__errno_location() #12
  store i32 %10386, ptr %10387, align 4, !tbaa !5
  %10388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10389 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %10391, ptr noundef @.str.4)
  %10393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10394 = load i32, ptr %10393, align 4, !tbaa !5
  %10395 = call ptr @s2n_strerror_debug(i32 noundef %10394, ptr noundef @.str.4)
  %10396 = call ptr @__errno_location() #12
  %10397 = load i32, ptr %10396, align 4, !tbaa !5
  %10398 = call ptr @strerror(i32 noundef %10397) #11
  %10399 = call ptr @__errno_location() #12
  %10400 = load i32, ptr %10399, align 4, !tbaa !5
  %10401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10388, ptr noundef @.str.2, i32 noundef %10389, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 515, ptr noundef %10392, ptr noundef %10395, ptr noundef %10398, i32 noundef %10400) #11
  br label %10419

10402:                                            ; preds = %10380, %10373
  %10403 = load i32, ptr %238, align 4, !tbaa !5
  %10404 = call ptr @__errno_location() #12
  store i32 %10403, ptr %10404, align 4, !tbaa !5
  %10405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10406 = load i32, ptr @test_count, align 4, !tbaa !5
  %10407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10408 = load i32, ptr %10407, align 4, !tbaa !5
  %10409 = call ptr @s2n_strerror(i32 noundef %10408, ptr noundef @.str.4)
  %10410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10411 = load i32, ptr %10410, align 4, !tbaa !5
  %10412 = call ptr @s2n_strerror_debug(i32 noundef %10411, ptr noundef @.str.4)
  %10413 = call ptr @__errno_location() #12
  %10414 = load i32, ptr %10413, align 4, !tbaa !5
  %10415 = call ptr @strerror(i32 noundef %10414) #11
  %10416 = call ptr @__errno_location() #12
  %10417 = load i32, ptr %10416, align 4, !tbaa !5
  %10418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10405, ptr noundef @.str.5, i32 noundef %10406, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 515, ptr noundef %10409, ptr noundef %10412, ptr noundef %10415, i32 noundef %10417) #11
  br label %10419

10419:                                            ; preds = %10402, %10385
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #11
  br label %10420

10420:                                            ; preds = %10419
  br label %10421

10421:                                            ; preds = %10420
  call void @exit(i32 noundef 1) #13
  unreachable

10422:                                            ; No predecessors!
  br label %10423

10423:                                            ; preds = %10422
  br label %10424

10424:                                            ; preds = %10423, %10363
  br label %10425

10425:                                            ; preds = %10424
  br label %10426

10426:                                            ; preds = %10425
  br label %10427

10427:                                            ; preds = %10426
  %10428 = load i32, ptr @test_count, align 4, !tbaa !5
  %10429 = add nsw i32 %10428, 1
  store i32 %10429, ptr @test_count, align 4, !tbaa !5
  %10430 = load ptr, ptr %235, align 8, !tbaa !9
  %10431 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %10430, i32 0, i32 1
  %10432 = getelementptr inbounds %struct.s2n_kem_params, ptr %10431, i32 0, i32 0
  %10433 = load ptr, ptr %10432, align 8, !tbaa !69
  %10434 = icmp eq ptr %10433, null
  br i1 %10434, label %10488, label %10435

10435:                                            ; preds = %10427
  br label %10436

10436:                                            ; preds = %10435
  br label %10437

10437:                                            ; preds = %10436
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #11
  %10438 = call ptr @__errno_location() #12
  %10439 = load i32, ptr %10438, align 4, !tbaa !5
  store i32 %10439, ptr %239, align 4, !tbaa !5
  %10440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10441 = call i32 @s2n_print_stacktrace(ptr noundef %10440)
  %10442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10443 = trunc i8 %10442 to i1
  br i1 %10443, label %10444, label %10466

10444:                                            ; preds = %10437
  %10445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10446 = call i32 @fileno(ptr noundef %10445) #11
  %10447 = call i32 @isatty(i32 noundef %10446) #11
  %10448 = icmp ne i32 %10447, 0
  br i1 %10448, label %10449, label %10466

10449:                                            ; preds = %10444
  %10450 = load i32, ptr %239, align 4, !tbaa !5
  %10451 = call ptr @__errno_location() #12
  store i32 %10450, ptr %10451, align 4, !tbaa !5
  %10452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10453 = load i32, ptr @test_count, align 4, !tbaa !5
  %10454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10455 = load i32, ptr %10454, align 4, !tbaa !5
  %10456 = call ptr @s2n_strerror(i32 noundef %10455, ptr noundef @.str.4)
  %10457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10458 = load i32, ptr %10457, align 4, !tbaa !5
  %10459 = call ptr @s2n_strerror_debug(i32 noundef %10458, ptr noundef @.str.4)
  %10460 = call ptr @__errno_location() #12
  %10461 = load i32, ptr %10460, align 4, !tbaa !5
  %10462 = call ptr @strerror(i32 noundef %10461) #11
  %10463 = call ptr @__errno_location() #12
  %10464 = load i32, ptr %10463, align 4, !tbaa !5
  %10465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10452, ptr noundef @.str.2, i32 noundef %10453, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 516, ptr noundef %10456, ptr noundef %10459, ptr noundef %10462, i32 noundef %10464) #11
  br label %10483

10466:                                            ; preds = %10444, %10437
  %10467 = load i32, ptr %239, align 4, !tbaa !5
  %10468 = call ptr @__errno_location() #12
  store i32 %10467, ptr %10468, align 4, !tbaa !5
  %10469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10470 = load i32, ptr @test_count, align 4, !tbaa !5
  %10471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10472 = load i32, ptr %10471, align 4, !tbaa !5
  %10473 = call ptr @s2n_strerror(i32 noundef %10472, ptr noundef @.str.4)
  %10474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10475 = load i32, ptr %10474, align 4, !tbaa !5
  %10476 = call ptr @s2n_strerror_debug(i32 noundef %10475, ptr noundef @.str.4)
  %10477 = call ptr @__errno_location() #12
  %10478 = load i32, ptr %10477, align 4, !tbaa !5
  %10479 = call ptr @strerror(i32 noundef %10478) #11
  %10480 = call ptr @__errno_location() #12
  %10481 = load i32, ptr %10480, align 4, !tbaa !5
  %10482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10469, ptr noundef @.str.5, i32 noundef %10470, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 516, ptr noundef %10473, ptr noundef %10476, ptr noundef %10479, i32 noundef %10481) #11
  br label %10483

10483:                                            ; preds = %10466, %10449
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #11
  br label %10484

10484:                                            ; preds = %10483
  br label %10485

10485:                                            ; preds = %10484
  call void @exit(i32 noundef 1) #13
  unreachable

10486:                                            ; No predecessors!
  br label %10487

10487:                                            ; preds = %10486
  br label %10488

10488:                                            ; preds = %10487, %10427
  br label %10489

10489:                                            ; preds = %10488
  br label %10490

10490:                                            ; preds = %10489
  br label %10491

10491:                                            ; preds = %10490
  %10492 = load i32, ptr @test_count, align 4, !tbaa !5
  %10493 = add nsw i32 %10492, 1
  store i32 %10493, ptr @test_count, align 4, !tbaa !5
  %10494 = load ptr, ptr %235, align 8, !tbaa !9
  %10495 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %10494, i32 0, i32 1
  %10496 = getelementptr inbounds %struct.s2n_kem_params, ptr %10495, i32 0, i32 1
  %10497 = getelementptr inbounds %struct.s2n_blob, ptr %10496, i32 0, i32 0
  %10498 = load ptr, ptr %10497, align 8, !tbaa !99
  %10499 = icmp eq ptr %10498, null
  br i1 %10499, label %10553, label %10500

10500:                                            ; preds = %10491
  br label %10501

10501:                                            ; preds = %10500
  br label %10502

10502:                                            ; preds = %10501
  call void @llvm.lifetime.start.p0(i64 4, ptr %240) #11
  %10503 = call ptr @__errno_location() #12
  %10504 = load i32, ptr %10503, align 4, !tbaa !5
  store i32 %10504, ptr %240, align 4, !tbaa !5
  %10505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10506 = call i32 @s2n_print_stacktrace(ptr noundef %10505)
  %10507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10508 = trunc i8 %10507 to i1
  br i1 %10508, label %10509, label %10531

10509:                                            ; preds = %10502
  %10510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10511 = call i32 @fileno(ptr noundef %10510) #11
  %10512 = call i32 @isatty(i32 noundef %10511) #11
  %10513 = icmp ne i32 %10512, 0
  br i1 %10513, label %10514, label %10531

10514:                                            ; preds = %10509
  %10515 = load i32, ptr %240, align 4, !tbaa !5
  %10516 = call ptr @__errno_location() #12
  store i32 %10515, ptr %10516, align 4, !tbaa !5
  %10517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10518 = load i32, ptr @test_count, align 4, !tbaa !5
  %10519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10520 = load i32, ptr %10519, align 4, !tbaa !5
  %10521 = call ptr @s2n_strerror(i32 noundef %10520, ptr noundef @.str.4)
  %10522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10523 = load i32, ptr %10522, align 4, !tbaa !5
  %10524 = call ptr @s2n_strerror_debug(i32 noundef %10523, ptr noundef @.str.4)
  %10525 = call ptr @__errno_location() #12
  %10526 = load i32, ptr %10525, align 4, !tbaa !5
  %10527 = call ptr @strerror(i32 noundef %10526) #11
  %10528 = call ptr @__errno_location() #12
  %10529 = load i32, ptr %10528, align 4, !tbaa !5
  %10530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10517, ptr noundef @.str.2, i32 noundef %10518, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 517, ptr noundef %10521, ptr noundef %10524, ptr noundef %10527, i32 noundef %10529) #11
  br label %10548

10531:                                            ; preds = %10509, %10502
  %10532 = load i32, ptr %240, align 4, !tbaa !5
  %10533 = call ptr @__errno_location() #12
  store i32 %10532, ptr %10533, align 4, !tbaa !5
  %10534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10535 = load i32, ptr @test_count, align 4, !tbaa !5
  %10536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10537 = load i32, ptr %10536, align 4, !tbaa !5
  %10538 = call ptr @s2n_strerror(i32 noundef %10537, ptr noundef @.str.4)
  %10539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10540 = load i32, ptr %10539, align 4, !tbaa !5
  %10541 = call ptr @s2n_strerror_debug(i32 noundef %10540, ptr noundef @.str.4)
  %10542 = call ptr @__errno_location() #12
  %10543 = load i32, ptr %10542, align 4, !tbaa !5
  %10544 = call ptr @strerror(i32 noundef %10543) #11
  %10545 = call ptr @__errno_location() #12
  %10546 = load i32, ptr %10545, align 4, !tbaa !5
  %10547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10534, ptr noundef @.str.5, i32 noundef %10535, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 517, ptr noundef %10538, ptr noundef %10541, ptr noundef %10544, i32 noundef %10546) #11
  br label %10548

10548:                                            ; preds = %10531, %10514
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #11
  br label %10549

10549:                                            ; preds = %10548
  br label %10550

10550:                                            ; preds = %10549
  call void @exit(i32 noundef 1) #13
  unreachable

10551:                                            ; No predecessors!
  br label %10552

10552:                                            ; preds = %10551
  br label %10553

10553:                                            ; preds = %10552, %10491
  br label %10554

10554:                                            ; preds = %10553
  br label %10555

10555:                                            ; preds = %10554
  br label %10556

10556:                                            ; preds = %10555
  %10557 = load i32, ptr @test_count, align 4, !tbaa !5
  %10558 = add nsw i32 %10557, 1
  store i32 %10558, ptr @test_count, align 4, !tbaa !5
  %10559 = load ptr, ptr %235, align 8, !tbaa !9
  %10560 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %10559, i32 0, i32 1
  %10561 = getelementptr inbounds %struct.s2n_kem_params, ptr %10560, i32 0, i32 1
  %10562 = getelementptr inbounds %struct.s2n_blob, ptr %10561, i32 0, i32 1
  %10563 = load i32, ptr %10562, align 8, !tbaa !100
  %10564 = icmp eq i32 %10563, 0
  br i1 %10564, label %10618, label %10565

10565:                                            ; preds = %10556
  br label %10566

10566:                                            ; preds = %10565
  br label %10567

10567:                                            ; preds = %10566
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #11
  %10568 = call ptr @__errno_location() #12
  %10569 = load i32, ptr %10568, align 4, !tbaa !5
  store i32 %10569, ptr %241, align 4, !tbaa !5
  %10570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10571 = call i32 @s2n_print_stacktrace(ptr noundef %10570)
  %10572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10573 = trunc i8 %10572 to i1
  br i1 %10573, label %10574, label %10596

10574:                                            ; preds = %10567
  %10575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10576 = call i32 @fileno(ptr noundef %10575) #11
  %10577 = call i32 @isatty(i32 noundef %10576) #11
  %10578 = icmp ne i32 %10577, 0
  br i1 %10578, label %10579, label %10596

10579:                                            ; preds = %10574
  %10580 = load i32, ptr %241, align 4, !tbaa !5
  %10581 = call ptr @__errno_location() #12
  store i32 %10580, ptr %10581, align 4, !tbaa !5
  %10582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10583 = load i32, ptr @test_count, align 4, !tbaa !5
  %10584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10585 = load i32, ptr %10584, align 4, !tbaa !5
  %10586 = call ptr @s2n_strerror(i32 noundef %10585, ptr noundef @.str.4)
  %10587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10588 = load i32, ptr %10587, align 4, !tbaa !5
  %10589 = call ptr @s2n_strerror_debug(i32 noundef %10588, ptr noundef @.str.4)
  %10590 = call ptr @__errno_location() #12
  %10591 = load i32, ptr %10590, align 4, !tbaa !5
  %10592 = call ptr @strerror(i32 noundef %10591) #11
  %10593 = call ptr @__errno_location() #12
  %10594 = load i32, ptr %10593, align 4, !tbaa !5
  %10595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10582, ptr noundef @.str.2, i32 noundef %10583, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 518, ptr noundef %10586, ptr noundef %10589, ptr noundef %10592, i32 noundef %10594) #11
  br label %10613

10596:                                            ; preds = %10574, %10567
  %10597 = load i32, ptr %241, align 4, !tbaa !5
  %10598 = call ptr @__errno_location() #12
  store i32 %10597, ptr %10598, align 4, !tbaa !5
  %10599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10600 = load i32, ptr @test_count, align 4, !tbaa !5
  %10601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10602 = load i32, ptr %10601, align 4, !tbaa !5
  %10603 = call ptr @s2n_strerror(i32 noundef %10602, ptr noundef @.str.4)
  %10604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10605 = load i32, ptr %10604, align 4, !tbaa !5
  %10606 = call ptr @s2n_strerror_debug(i32 noundef %10605, ptr noundef @.str.4)
  %10607 = call ptr @__errno_location() #12
  %10608 = load i32, ptr %10607, align 4, !tbaa !5
  %10609 = call ptr @strerror(i32 noundef %10608) #11
  %10610 = call ptr @__errno_location() #12
  %10611 = load i32, ptr %10610, align 4, !tbaa !5
  %10612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10599, ptr noundef @.str.5, i32 noundef %10600, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 518, ptr noundef %10603, ptr noundef %10606, ptr noundef %10609, i32 noundef %10611) #11
  br label %10613

10613:                                            ; preds = %10596, %10579
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #11
  br label %10614

10614:                                            ; preds = %10613
  br label %10615

10615:                                            ; preds = %10614
  call void @exit(i32 noundef 1) #13
  unreachable

10616:                                            ; No predecessors!
  br label %10617

10617:                                            ; preds = %10616
  br label %10618

10618:                                            ; preds = %10617, %10556
  br label %10619

10619:                                            ; preds = %10618
  br label %10620

10620:                                            ; preds = %10619
  br label %10621

10621:                                            ; preds = %10620
  %10622 = load i32, ptr @test_count, align 4, !tbaa !5
  %10623 = add nsw i32 %10622, 1
  store i32 %10623, ptr @test_count, align 4, !tbaa !5
  %10624 = load ptr, ptr %235, align 8, !tbaa !9
  %10625 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %10624, i32 0, i32 1
  %10626 = getelementptr inbounds %struct.s2n_kem_params, ptr %10625, i32 0, i32 1
  %10627 = getelementptr inbounds %struct.s2n_blob, ptr %10626, i32 0, i32 2
  %10628 = load i32, ptr %10627, align 4, !tbaa !101
  %10629 = icmp eq i32 %10628, 0
  br i1 %10629, label %10683, label %10630

10630:                                            ; preds = %10621
  br label %10631

10631:                                            ; preds = %10630
  br label %10632

10632:                                            ; preds = %10631
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #11
  %10633 = call ptr @__errno_location() #12
  %10634 = load i32, ptr %10633, align 4, !tbaa !5
  store i32 %10634, ptr %242, align 4, !tbaa !5
  %10635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10636 = call i32 @s2n_print_stacktrace(ptr noundef %10635)
  %10637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10638 = trunc i8 %10637 to i1
  br i1 %10638, label %10639, label %10661

10639:                                            ; preds = %10632
  %10640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10641 = call i32 @fileno(ptr noundef %10640) #11
  %10642 = call i32 @isatty(i32 noundef %10641) #11
  %10643 = icmp ne i32 %10642, 0
  br i1 %10643, label %10644, label %10661

10644:                                            ; preds = %10639
  %10645 = load i32, ptr %242, align 4, !tbaa !5
  %10646 = call ptr @__errno_location() #12
  store i32 %10645, ptr %10646, align 4, !tbaa !5
  %10647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10648 = load i32, ptr @test_count, align 4, !tbaa !5
  %10649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10650 = load i32, ptr %10649, align 4, !tbaa !5
  %10651 = call ptr @s2n_strerror(i32 noundef %10650, ptr noundef @.str.4)
  %10652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10653 = load i32, ptr %10652, align 4, !tbaa !5
  %10654 = call ptr @s2n_strerror_debug(i32 noundef %10653, ptr noundef @.str.4)
  %10655 = call ptr @__errno_location() #12
  %10656 = load i32, ptr %10655, align 4, !tbaa !5
  %10657 = call ptr @strerror(i32 noundef %10656) #11
  %10658 = call ptr @__errno_location() #12
  %10659 = load i32, ptr %10658, align 4, !tbaa !5
  %10660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10647, ptr noundef @.str.2, i32 noundef %10648, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 519, ptr noundef %10651, ptr noundef %10654, ptr noundef %10657, i32 noundef %10659) #11
  br label %10678

10661:                                            ; preds = %10639, %10632
  %10662 = load i32, ptr %242, align 4, !tbaa !5
  %10663 = call ptr @__errno_location() #12
  store i32 %10662, ptr %10663, align 4, !tbaa !5
  %10664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10665 = load i32, ptr @test_count, align 4, !tbaa !5
  %10666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10667 = load i32, ptr %10666, align 4, !tbaa !5
  %10668 = call ptr @s2n_strerror(i32 noundef %10667, ptr noundef @.str.4)
  %10669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10670 = load i32, ptr %10669, align 4, !tbaa !5
  %10671 = call ptr @s2n_strerror_debug(i32 noundef %10670, ptr noundef @.str.4)
  %10672 = call ptr @__errno_location() #12
  %10673 = load i32, ptr %10672, align 4, !tbaa !5
  %10674 = call ptr @strerror(i32 noundef %10673) #11
  %10675 = call ptr @__errno_location() #12
  %10676 = load i32, ptr %10675, align 4, !tbaa !5
  %10677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10664, ptr noundef @.str.5, i32 noundef %10665, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 519, ptr noundef %10668, ptr noundef %10671, ptr noundef %10674, i32 noundef %10676) #11
  br label %10678

10678:                                            ; preds = %10661, %10644
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #11
  br label %10679

10679:                                            ; preds = %10678
  br label %10680

10680:                                            ; preds = %10679
  call void @exit(i32 noundef 1) #13
  unreachable

10681:                                            ; No predecessors!
  br label %10682

10682:                                            ; preds = %10681
  br label %10683

10683:                                            ; preds = %10682, %10621
  br label %10684

10684:                                            ; preds = %10683
  br label %10685

10685:                                            ; preds = %10684
  br label %10686

10686:                                            ; preds = %10685
  %10687 = load i32, ptr @test_count, align 4, !tbaa !5
  %10688 = add nsw i32 %10687, 1
  store i32 %10688, ptr @test_count, align 4, !tbaa !5
  %10689 = load ptr, ptr %217, align 8, !tbaa !9
  %10690 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef %10689)
  br i1 %10690, label %10744, label %10691

10691:                                            ; preds = %10686
  br label %10692

10692:                                            ; preds = %10691
  br label %10693

10693:                                            ; preds = %10692
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #11
  %10694 = call ptr @__errno_location() #12
  %10695 = load i32, ptr %10694, align 4, !tbaa !5
  store i32 %10695, ptr %243, align 4, !tbaa !5
  %10696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10697 = call i32 @s2n_print_stacktrace(ptr noundef %10696)
  %10698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10699 = trunc i8 %10698 to i1
  br i1 %10699, label %10700, label %10722

10700:                                            ; preds = %10693
  %10701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10702 = call i32 @fileno(ptr noundef %10701) #11
  %10703 = call i32 @isatty(i32 noundef %10702) #11
  %10704 = icmp ne i32 %10703, 0
  br i1 %10704, label %10705, label %10722

10705:                                            ; preds = %10700
  %10706 = load i32, ptr %243, align 4, !tbaa !5
  %10707 = call ptr @__errno_location() #12
  store i32 %10706, ptr %10707, align 4, !tbaa !5
  %10708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10709 = load i32, ptr @test_count, align 4, !tbaa !5
  %10710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10711 = load i32, ptr %10710, align 4, !tbaa !5
  %10712 = call ptr @s2n_strerror(i32 noundef %10711, ptr noundef @.str.4)
  %10713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10714 = load i32, ptr %10713, align 4, !tbaa !5
  %10715 = call ptr @s2n_strerror_debug(i32 noundef %10714, ptr noundef @.str.4)
  %10716 = call ptr @__errno_location() #12
  %10717 = load i32, ptr %10716, align 4, !tbaa !5
  %10718 = call ptr @strerror(i32 noundef %10717) #11
  %10719 = call ptr @__errno_location() #12
  %10720 = load i32, ptr %10719, align 4, !tbaa !5
  %10721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10708, ptr noundef @.str.2, i32 noundef %10709, ptr noundef @.str.115, ptr noundef @.str.1, i32 noundef 522, ptr noundef %10712, ptr noundef %10715, ptr noundef %10718, i32 noundef %10720) #11
  br label %10739

10722:                                            ; preds = %10700, %10693
  %10723 = load i32, ptr %243, align 4, !tbaa !5
  %10724 = call ptr @__errno_location() #12
  store i32 %10723, ptr %10724, align 4, !tbaa !5
  %10725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10726 = load i32, ptr @test_count, align 4, !tbaa !5
  %10727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10728 = load i32, ptr %10727, align 4, !tbaa !5
  %10729 = call ptr @s2n_strerror(i32 noundef %10728, ptr noundef @.str.4)
  %10730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10731 = load i32, ptr %10730, align 4, !tbaa !5
  %10732 = call ptr @s2n_strerror_debug(i32 noundef %10731, ptr noundef @.str.4)
  %10733 = call ptr @__errno_location() #12
  %10734 = load i32, ptr %10733, align 4, !tbaa !5
  %10735 = call ptr @strerror(i32 noundef %10734) #11
  %10736 = call ptr @__errno_location() #12
  %10737 = load i32, ptr %10736, align 4, !tbaa !5
  %10738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10725, ptr noundef @.str.5, i32 noundef %10726, ptr noundef @.str.115, ptr noundef @.str.1, i32 noundef 522, ptr noundef %10729, ptr noundef %10732, ptr noundef %10735, i32 noundef %10737) #11
  br label %10739

10739:                                            ; preds = %10722, %10705
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #11
  br label %10740

10740:                                            ; preds = %10739
  br label %10741

10741:                                            ; preds = %10740
  call void @exit(i32 noundef 1) #13
  unreachable

10742:                                            ; No predecessors!
  br label %10743

10743:                                            ; preds = %10742
  br label %10744

10744:                                            ; preds = %10743, %10686
  br label %10745

10745:                                            ; preds = %10744
  br label %10746

10746:                                            ; preds = %10745
  br label %10747

10747:                                            ; preds = %10746
  %10748 = load i32, ptr @test_count, align 4, !tbaa !5
  %10749 = add nsw i32 %10748, 1
  store i32 %10749, ptr @test_count, align 4, !tbaa !5
  %10750 = load ptr, ptr %217, align 8, !tbaa !9
  %10751 = call i32 @s2n_connection_free(ptr noundef %10750)
  %10752 = icmp eq i32 %10751, -1
  br i1 %10752, label %10753, label %10806

10753:                                            ; preds = %10747
  br label %10754

10754:                                            ; preds = %10753
  br label %10755

10755:                                            ; preds = %10754
  call void @llvm.lifetime.start.p0(i64 4, ptr %244) #11
  %10756 = call ptr @__errno_location() #12
  %10757 = load i32, ptr %10756, align 4, !tbaa !5
  store i32 %10757, ptr %244, align 4, !tbaa !5
  %10758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10759 = call i32 @s2n_print_stacktrace(ptr noundef %10758)
  %10760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10761 = trunc i8 %10760 to i1
  br i1 %10761, label %10762, label %10784

10762:                                            ; preds = %10755
  %10763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10764 = call i32 @fileno(ptr noundef %10763) #11
  %10765 = call i32 @isatty(i32 noundef %10764) #11
  %10766 = icmp ne i32 %10765, 0
  br i1 %10766, label %10767, label %10784

10767:                                            ; preds = %10762
  %10768 = load i32, ptr %244, align 4, !tbaa !5
  %10769 = call ptr @__errno_location() #12
  store i32 %10768, ptr %10769, align 4, !tbaa !5
  %10770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10771 = load i32, ptr @test_count, align 4, !tbaa !5
  %10772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10773 = load i32, ptr %10772, align 4, !tbaa !5
  %10774 = call ptr @s2n_strerror(i32 noundef %10773, ptr noundef @.str.4)
  %10775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10776 = load i32, ptr %10775, align 4, !tbaa !5
  %10777 = call ptr @s2n_strerror_debug(i32 noundef %10776, ptr noundef @.str.4)
  %10778 = call ptr @__errno_location() #12
  %10779 = load i32, ptr %10778, align 4, !tbaa !5
  %10780 = call ptr @strerror(i32 noundef %10779) #11
  %10781 = call ptr @__errno_location() #12
  %10782 = load i32, ptr %10781, align 4, !tbaa !5
  %10783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10770, ptr noundef @.str.2, i32 noundef %10771, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 524, ptr noundef %10774, ptr noundef %10777, ptr noundef %10780, i32 noundef %10782) #11
  br label %10801

10784:                                            ; preds = %10762, %10755
  %10785 = load i32, ptr %244, align 4, !tbaa !5
  %10786 = call ptr @__errno_location() #12
  store i32 %10785, ptr %10786, align 4, !tbaa !5
  %10787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10788 = load i32, ptr @test_count, align 4, !tbaa !5
  %10789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10790 = load i32, ptr %10789, align 4, !tbaa !5
  %10791 = call ptr @s2n_strerror(i32 noundef %10790, ptr noundef @.str.4)
  %10792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10793 = load i32, ptr %10792, align 4, !tbaa !5
  %10794 = call ptr @s2n_strerror_debug(i32 noundef %10793, ptr noundef @.str.4)
  %10795 = call ptr @__errno_location() #12
  %10796 = load i32, ptr %10795, align 4, !tbaa !5
  %10797 = call ptr @strerror(i32 noundef %10796) #11
  %10798 = call ptr @__errno_location() #12
  %10799 = load i32, ptr %10798, align 4, !tbaa !5
  %10800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10787, ptr noundef @.str.5, i32 noundef %10788, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 524, ptr noundef %10791, ptr noundef %10794, ptr noundef %10797, i32 noundef %10799) #11
  br label %10801

10801:                                            ; preds = %10784, %10767
  call void @llvm.lifetime.end.p0(i64 4, ptr %244) #11
  br label %10802

10802:                                            ; preds = %10801
  br label %10803

10803:                                            ; preds = %10802
  call void @exit(i32 noundef 1) #13
  unreachable

10804:                                            ; No predecessors!
  br label %10805

10805:                                            ; preds = %10804
  br label %10806

10806:                                            ; preds = %10805, %10747
  br label %10807

10807:                                            ; preds = %10806
  br label %10808

10808:                                            ; preds = %10807
  call void @llvm.lifetime.end.p0(i64 8, ptr %235) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %232) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %229) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #11
  %10809 = call i32 @s2n_stuffer_free(ptr noundef %221)
  call void @llvm.lifetime.end.p0(i64 40, ptr %221) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %217) #11
  br label %10810

10810:                                            ; preds = %10808, %9533
  %10811 = call zeroext i1 @s2n_pq_is_enabled()
  br i1 %10811, label %10812, label %20457

10812:                                            ; preds = %10810
  call void @llvm.lifetime.start.p0(i64 8, ptr %245) #11
  store i64 0, ptr %245, align 8, !tbaa !65
  br label %10813

10813:                                            ; preds = %12559, %10812
  %10814 = load i64, ptr %245, align 8, !tbaa !65
  %10815 = icmp ult i64 %10814, 8
  br i1 %10815, label %10817, label %10816

10816:                                            ; preds = %10813
  store i32 964, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %245) #11
  br label %12562

10817:                                            ; preds = %10813
  call void @llvm.lifetime.start.p0(i64 64, ptr %246) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %247) #11
  store i64 0, ptr %247, align 8, !tbaa !65
  br label %10818

10818:                                            ; preds = %10831, %10817
  %10819 = load i64, ptr %247, align 8, !tbaa !65
  %10820 = icmp ult i64 %10819, 8
  br i1 %10820, label %10822, label %10821

10821:                                            ; preds = %10818
  store i32 967, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %247) #11
  br label %10834

10822:                                            ; preds = %10818
  %10823 = load i64, ptr %247, align 8, !tbaa !65
  %10824 = load i64, ptr %245, align 8, !tbaa !65
  %10825 = add i64 %10823, %10824
  %10826 = urem i64 %10825, 8
  %10827 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %10826
  %10828 = load ptr, ptr %10827, align 8, !tbaa !9
  %10829 = load i64, ptr %247, align 8, !tbaa !65
  %10830 = getelementptr inbounds [8 x ptr], ptr %246, i64 0, i64 %10829
  store ptr %10828, ptr %10830, align 8, !tbaa !9
  br label %10831

10831:                                            ; preds = %10822
  %10832 = load i64, ptr %247, align 8, !tbaa !65
  %10833 = add i64 %10832, 1
  store i64 %10833, ptr %247, align 8, !tbaa !65
  br label %10818, !llvm.loop !102

10834:                                            ; preds = %10821
  %10835 = getelementptr inbounds [8 x ptr], ptr %246, i64 0, i64 0
  %10836 = load ptr, ptr %10835, align 16, !tbaa !9
  %10837 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %10836)
  br i1 %10837, label %10839, label %10838

10838:                                            ; preds = %10834
  store i32 966, ptr %6, align 4
  br label %12556

10839:                                            ; preds = %10834
  call void @llvm.lifetime.start.p0(i64 40, ptr %248) #11
  call void @llvm.memset.p0.i64(ptr align 8 %248, i8 0, i64 40, i1 false)
  %10840 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %248, i32 0, i32 0
  %10841 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %248, i32 0, i32 1
  %10842 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %248, i32 0, i32 2
  store i8 8, ptr %10842, align 8, !tbaa !15
  %10843 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %248, i32 0, i32 3
  %10844 = getelementptr inbounds [8 x ptr], ptr %246, i64 0, i64 0
  store ptr %10844, ptr %10843, align 8, !tbaa !17
  %10845 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %248, i32 0, i32 4
  %10846 = load i32, ptr %7, align 4, !tbaa !5
  %10847 = trunc i32 %10846 to i8
  store i8 %10847, ptr %10845, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 64, ptr %249) #11
  %10848 = getelementptr inbounds %struct.s2n_security_policy, ptr %249, i32 0, i32 0
  store i8 30, ptr %10848, align 8, !tbaa !19
  %10849 = getelementptr inbounds %struct.s2n_security_policy, ptr %249, i32 0, i32 1
  store ptr @cipher_preferences_test_all_tls13, ptr %10849, align 8, !tbaa !21
  %10850 = getelementptr inbounds %struct.s2n_security_policy, ptr %249, i32 0, i32 2
  store ptr %248, ptr %10850, align 8, !tbaa !22
  %10851 = getelementptr inbounds %struct.s2n_security_policy, ptr %249, i32 0, i32 3
  store ptr @s2n_signature_preferences_20200207, ptr %10851, align 8, !tbaa !23
  %10852 = getelementptr inbounds %struct.s2n_security_policy, ptr %249, i32 0, i32 4
  store ptr null, ptr %10852, align 8, !tbaa !24
  %10853 = getelementptr inbounds %struct.s2n_security_policy, ptr %249, i32 0, i32 5
  store ptr @s2n_ecc_preferences_20200310, ptr %10853, align 8, !tbaa !25
  %10854 = getelementptr inbounds %struct.s2n_security_policy, ptr %249, i32 0, i32 6
  store ptr null, ptr %10854, align 8, !tbaa !26
  %10855 = getelementptr inbounds %struct.s2n_security_policy, ptr %249, i32 0, i32 7
  store i8 0, ptr %10855, align 8, !tbaa !27
  %10856 = getelementptr inbounds %struct.s2n_security_policy, ptr %249, i32 0, i32 8
  call void @llvm.memset.p0.i64(ptr align 1 %10856, i8 0, i64 2, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %250) #11
  store ptr null, ptr %250, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %251) #11
  store ptr null, ptr %251, align 8, !tbaa !9
  br label %10857

10857:                                            ; preds = %10839
  %10858 = load i32, ptr @test_count, align 4, !tbaa !5
  %10859 = add nsw i32 %10858, 1
  store i32 %10859, ptr @test_count, align 4, !tbaa !5
  %10860 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %10860, ptr %250, align 8, !tbaa !9
  %10861 = icmp eq ptr %10860, null
  br i1 %10861, label %10862, label %10915

10862:                                            ; preds = %10857
  br label %10863

10863:                                            ; preds = %10862
  br label %10864

10864:                                            ; preds = %10863
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #11
  %10865 = call ptr @__errno_location() #12
  %10866 = load i32, ptr %10865, align 4, !tbaa !5
  store i32 %10866, ptr %252, align 4, !tbaa !5
  %10867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10868 = call i32 @s2n_print_stacktrace(ptr noundef %10867)
  %10869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10870 = trunc i8 %10869 to i1
  br i1 %10870, label %10871, label %10893

10871:                                            ; preds = %10864
  %10872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10873 = call i32 @fileno(ptr noundef %10872) #11
  %10874 = call i32 @isatty(i32 noundef %10873) #11
  %10875 = icmp ne i32 %10874, 0
  br i1 %10875, label %10876, label %10893

10876:                                            ; preds = %10871
  %10877 = load i32, ptr %252, align 4, !tbaa !5
  %10878 = call ptr @__errno_location() #12
  store i32 %10877, ptr %10878, align 4, !tbaa !5
  %10879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10880 = load i32, ptr @test_count, align 4, !tbaa !5
  %10881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10882 = load i32, ptr %10881, align 4, !tbaa !5
  %10883 = call ptr @s2n_strerror(i32 noundef %10882, ptr noundef @.str.4)
  %10884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10885 = load i32, ptr %10884, align 4, !tbaa !5
  %10886 = call ptr @s2n_strerror_debug(i32 noundef %10885, ptr noundef @.str.4)
  %10887 = call ptr @__errno_location() #12
  %10888 = load i32, ptr %10887, align 4, !tbaa !5
  %10889 = call ptr @strerror(i32 noundef %10888) #11
  %10890 = call ptr @__errno_location() #12
  %10891 = load i32, ptr %10890, align 4, !tbaa !5
  %10892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10879, ptr noundef @.str.2, i32 noundef %10880, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 563, ptr noundef %10883, ptr noundef %10886, ptr noundef %10889, i32 noundef %10891) #11
  br label %10910

10893:                                            ; preds = %10871, %10864
  %10894 = load i32, ptr %252, align 4, !tbaa !5
  %10895 = call ptr @__errno_location() #12
  store i32 %10894, ptr %10895, align 4, !tbaa !5
  %10896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10897 = load i32, ptr @test_count, align 4, !tbaa !5
  %10898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10899 = load i32, ptr %10898, align 4, !tbaa !5
  %10900 = call ptr @s2n_strerror(i32 noundef %10899, ptr noundef @.str.4)
  %10901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10902 = load i32, ptr %10901, align 4, !tbaa !5
  %10903 = call ptr @s2n_strerror_debug(i32 noundef %10902, ptr noundef @.str.4)
  %10904 = call ptr @__errno_location() #12
  %10905 = load i32, ptr %10904, align 4, !tbaa !5
  %10906 = call ptr @strerror(i32 noundef %10905) #11
  %10907 = call ptr @__errno_location() #12
  %10908 = load i32, ptr %10907, align 4, !tbaa !5
  %10909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10896, ptr noundef @.str.5, i32 noundef %10897, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 563, ptr noundef %10900, ptr noundef %10903, ptr noundef %10906, i32 noundef %10908) #11
  br label %10910

10910:                                            ; preds = %10893, %10876
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #11
  br label %10911

10911:                                            ; preds = %10910
  br label %10912

10912:                                            ; preds = %10911
  call void @exit(i32 noundef 1) #13
  unreachable

10913:                                            ; No predecessors!
  br label %10914

10914:                                            ; preds = %10913
  br label %10915

10915:                                            ; preds = %10914, %10857
  br label %10916

10916:                                            ; preds = %10915
  br label %10917

10917:                                            ; preds = %10916
  %10918 = load ptr, ptr %250, align 8, !tbaa !9
  %10919 = getelementptr inbounds %struct.s2n_connection, ptr %10918, i32 0, i32 2
  store ptr %249, ptr %10919, align 8, !tbaa !28
  br label %10920

10920:                                            ; preds = %10917
  %10921 = load i32, ptr @test_count, align 4, !tbaa !5
  %10922 = add nsw i32 %10921, 1
  store i32 %10922, ptr @test_count, align 4, !tbaa !5
  %10923 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %10923, ptr %251, align 8, !tbaa !9
  %10924 = icmp eq ptr %10923, null
  br i1 %10924, label %10925, label %10978

10925:                                            ; preds = %10920
  br label %10926

10926:                                            ; preds = %10925
  br label %10927

10927:                                            ; preds = %10926
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #11
  %10928 = call ptr @__errno_location() #12
  %10929 = load i32, ptr %10928, align 4, !tbaa !5
  store i32 %10929, ptr %253, align 4, !tbaa !5
  %10930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10931 = call i32 @s2n_print_stacktrace(ptr noundef %10930)
  %10932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10933 = trunc i8 %10932 to i1
  br i1 %10933, label %10934, label %10956

10934:                                            ; preds = %10927
  %10935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10936 = call i32 @fileno(ptr noundef %10935) #11
  %10937 = call i32 @isatty(i32 noundef %10936) #11
  %10938 = icmp ne i32 %10937, 0
  br i1 %10938, label %10939, label %10956

10939:                                            ; preds = %10934
  %10940 = load i32, ptr %253, align 4, !tbaa !5
  %10941 = call ptr @__errno_location() #12
  store i32 %10940, ptr %10941, align 4, !tbaa !5
  %10942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10943 = load i32, ptr @test_count, align 4, !tbaa !5
  %10944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10945 = load i32, ptr %10944, align 4, !tbaa !5
  %10946 = call ptr @s2n_strerror(i32 noundef %10945, ptr noundef @.str.4)
  %10947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10948 = load i32, ptr %10947, align 4, !tbaa !5
  %10949 = call ptr @s2n_strerror_debug(i32 noundef %10948, ptr noundef @.str.4)
  %10950 = call ptr @__errno_location() #12
  %10951 = load i32, ptr %10950, align 4, !tbaa !5
  %10952 = call ptr @strerror(i32 noundef %10951) #11
  %10953 = call ptr @__errno_location() #12
  %10954 = load i32, ptr %10953, align 4, !tbaa !5
  %10955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10942, ptr noundef @.str.2, i32 noundef %10943, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 566, ptr noundef %10946, ptr noundef %10949, ptr noundef %10952, i32 noundef %10954) #11
  br label %10973

10956:                                            ; preds = %10934, %10927
  %10957 = load i32, ptr %253, align 4, !tbaa !5
  %10958 = call ptr @__errno_location() #12
  store i32 %10957, ptr %10958, align 4, !tbaa !5
  %10959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10960 = load i32, ptr @test_count, align 4, !tbaa !5
  %10961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10962 = load i32, ptr %10961, align 4, !tbaa !5
  %10963 = call ptr @s2n_strerror(i32 noundef %10962, ptr noundef @.str.4)
  %10964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10965 = load i32, ptr %10964, align 4, !tbaa !5
  %10966 = call ptr @s2n_strerror_debug(i32 noundef %10965, ptr noundef @.str.4)
  %10967 = call ptr @__errno_location() #12
  %10968 = load i32, ptr %10967, align 4, !tbaa !5
  %10969 = call ptr @strerror(i32 noundef %10968) #11
  %10970 = call ptr @__errno_location() #12
  %10971 = load i32, ptr %10970, align 4, !tbaa !5
  %10972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10959, ptr noundef @.str.5, i32 noundef %10960, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 566, ptr noundef %10963, ptr noundef %10966, ptr noundef %10969, i32 noundef %10971) #11
  br label %10973

10973:                                            ; preds = %10956, %10939
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #11
  br label %10974

10974:                                            ; preds = %10973
  br label %10975

10975:                                            ; preds = %10974
  call void @exit(i32 noundef 1) #13
  unreachable

10976:                                            ; No predecessors!
  br label %10977

10977:                                            ; preds = %10976
  br label %10978

10978:                                            ; preds = %10977, %10920
  br label %10979

10979:                                            ; preds = %10978
  br label %10980

10980:                                            ; preds = %10979
  %10981 = load ptr, ptr %251, align 8, !tbaa !9
  %10982 = getelementptr inbounds %struct.s2n_connection, ptr %10981, i32 0, i32 23
  store i8 34, ptr %10982, align 4, !tbaa !84
  %10983 = load ptr, ptr %251, align 8, !tbaa !9
  %10984 = getelementptr inbounds %struct.s2n_connection, ptr %10983, i32 0, i32 2
  store ptr %9, ptr %10984, align 8, !tbaa !28
  br label %10985

10985:                                            ; preds = %10980
  %10986 = load i32, ptr @test_count, align 4, !tbaa !5
  %10987 = add nsw i32 %10986, 1
  store i32 %10987, ptr @test_count, align 4, !tbaa !5
  %10988 = load ptr, ptr %251, align 8, !tbaa !9
  %10989 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %10988)
  %10990 = getelementptr inbounds %struct.s2n_result, ptr %254, i32 0, i32 0
  store i32 %10989, ptr %10990, align 4
  %10991 = getelementptr inbounds %struct.s2n_result, ptr %254, i32 0, i32 0
  %10992 = load i32, ptr %10991, align 4
  %10993 = call zeroext i1 @s2n_result_is_ok(i32 %10992)
  br i1 %10993, label %11047, label %10994

10994:                                            ; preds = %10985
  br label %10995

10995:                                            ; preds = %10994
  br label %10996

10996:                                            ; preds = %10995
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #11
  %10997 = call ptr @__errno_location() #12
  %10998 = load i32, ptr %10997, align 4, !tbaa !5
  store i32 %10998, ptr %255, align 4, !tbaa !5
  %10999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11000 = call i32 @s2n_print_stacktrace(ptr noundef %10999)
  %11001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11002 = trunc i8 %11001 to i1
  br i1 %11002, label %11003, label %11025

11003:                                            ; preds = %10996
  %11004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11005 = call i32 @fileno(ptr noundef %11004) #11
  %11006 = call i32 @isatty(i32 noundef %11005) #11
  %11007 = icmp ne i32 %11006, 0
  br i1 %11007, label %11008, label %11025

11008:                                            ; preds = %11003
  %11009 = load i32, ptr %255, align 4, !tbaa !5
  %11010 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %11019 = call ptr @__errno_location() #12
  %11020 = load i32, ptr %11019, align 4, !tbaa !5
  %11021 = call ptr @strerror(i32 noundef %11020) #11
  %11022 = call ptr @__errno_location() #12
  %11023 = load i32, ptr %11022, align 4, !tbaa !5
  %11024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11011, ptr noundef @.str.2, i32 noundef %11012, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 570, ptr noundef %11015, ptr noundef %11018, ptr noundef %11021, i32 noundef %11023) #11
  br label %11042

11025:                                            ; preds = %11003, %10996
  %11026 = load i32, ptr %255, align 4, !tbaa !5
  %11027 = call ptr @__errno_location() #12
  store i32 %11026, ptr %11027, align 4, !tbaa !5
  %11028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11029 = load i32, ptr @test_count, align 4, !tbaa !5
  %11030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11031 = load i32, ptr %11030, align 4, !tbaa !5
  %11032 = call ptr @s2n_strerror(i32 noundef %11031, ptr noundef @.str.4)
  %11033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11034 = load i32, ptr %11033, align 4, !tbaa !5
  %11035 = call ptr @s2n_strerror_debug(i32 noundef %11034, ptr noundef @.str.4)
  %11036 = call ptr @__errno_location() #12
  %11037 = load i32, ptr %11036, align 4, !tbaa !5
  %11038 = call ptr @strerror(i32 noundef %11037) #11
  %11039 = call ptr @__errno_location() #12
  %11040 = load i32, ptr %11039, align 4, !tbaa !5
  %11041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11028, ptr noundef @.str.5, i32 noundef %11029, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 570, ptr noundef %11032, ptr noundef %11035, ptr noundef %11038, i32 noundef %11040) #11
  br label %11042

11042:                                            ; preds = %11025, %11008
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #11
  br label %11043

11043:                                            ; preds = %11042
  br label %11044

11044:                                            ; preds = %11043
  call void @exit(i32 noundef 1) #13
  unreachable

11045:                                            ; No predecessors!
  br label %11046

11046:                                            ; preds = %11045
  br label %11047

11047:                                            ; preds = %11046, %10985
  br label %11048

11048:                                            ; preds = %11047
  br label %11049

11049:                                            ; preds = %11048
  call void @llvm.lifetime.start.p0(i64 40, ptr %256) #11
  call void @llvm.memset.p0.i64(ptr align 8 %256, i8 0, i64 40, i1 false)
  br label %11050

11050:                                            ; preds = %11049
  %11051 = load i32, ptr @test_count, align 4, !tbaa !5
  %11052 = add nsw i32 %11051, 1
  store i32 %11052, ptr @test_count, align 4, !tbaa !5
  %11053 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %256, i32 noundef 8192)
  %11054 = icmp eq i32 %11053, -1
  br i1 %11054, label %11055, label %11108

11055:                                            ; preds = %11050
  br label %11056

11056:                                            ; preds = %11055
  br label %11057

11057:                                            ; preds = %11056
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #11
  %11058 = call ptr @__errno_location() #12
  %11059 = load i32, ptr %11058, align 4, !tbaa !5
  store i32 %11059, ptr %257, align 4, !tbaa !5
  %11060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11061 = call i32 @s2n_print_stacktrace(ptr noundef %11060)
  %11062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11063 = trunc i8 %11062 to i1
  br i1 %11063, label %11064, label %11086

11064:                                            ; preds = %11057
  %11065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11066 = call i32 @fileno(ptr noundef %11065) #11
  %11067 = call i32 @isatty(i32 noundef %11066) #11
  %11068 = icmp ne i32 %11067, 0
  br i1 %11068, label %11069, label %11086

11069:                                            ; preds = %11064
  %11070 = load i32, ptr %257, align 4, !tbaa !5
  %11071 = call ptr @__errno_location() #12
  store i32 %11070, ptr %11071, align 4, !tbaa !5
  %11072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11073 = load i32, ptr @test_count, align 4, !tbaa !5
  %11074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11075 = load i32, ptr %11074, align 4, !tbaa !5
  %11076 = call ptr @s2n_strerror(i32 noundef %11075, ptr noundef @.str.4)
  %11077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11078 = load i32, ptr %11077, align 4, !tbaa !5
  %11079 = call ptr @s2n_strerror_debug(i32 noundef %11078, ptr noundef @.str.4)
  %11080 = call ptr @__errno_location() #12
  %11081 = load i32, ptr %11080, align 4, !tbaa !5
  %11082 = call ptr @strerror(i32 noundef %11081) #11
  %11083 = call ptr @__errno_location() #12
  %11084 = load i32, ptr %11083, align 4, !tbaa !5
  %11085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11072, ptr noundef @.str.2, i32 noundef %11073, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 573, ptr noundef %11076, ptr noundef %11079, ptr noundef %11082, i32 noundef %11084) #11
  br label %11103

11086:                                            ; preds = %11064, %11057
  %11087 = load i32, ptr %257, align 4, !tbaa !5
  %11088 = call ptr @__errno_location() #12
  store i32 %11087, ptr %11088, align 4, !tbaa !5
  %11089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11090 = load i32, ptr @test_count, align 4, !tbaa !5
  %11091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11092 = load i32, ptr %11091, align 4, !tbaa !5
  %11093 = call ptr @s2n_strerror(i32 noundef %11092, ptr noundef @.str.4)
  %11094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11095 = load i32, ptr %11094, align 4, !tbaa !5
  %11096 = call ptr @s2n_strerror_debug(i32 noundef %11095, ptr noundef @.str.4)
  %11097 = call ptr @__errno_location() #12
  %11098 = load i32, ptr %11097, align 4, !tbaa !5
  %11099 = call ptr @strerror(i32 noundef %11098) #11
  %11100 = call ptr @__errno_location() #12
  %11101 = load i32, ptr %11100, align 4, !tbaa !5
  %11102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11089, ptr noundef @.str.5, i32 noundef %11090, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 573, ptr noundef %11093, ptr noundef %11096, ptr noundef %11099, i32 noundef %11101) #11
  br label %11103

11103:                                            ; preds = %11086, %11069
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #11
  br label %11104

11104:                                            ; preds = %11103
  br label %11105

11105:                                            ; preds = %11104
  call void @exit(i32 noundef 1) #13
  unreachable

11106:                                            ; No predecessors!
  br label %11107

11107:                                            ; preds = %11106
  br label %11108

11108:                                            ; preds = %11107, %11050
  br label %11109

11109:                                            ; preds = %11108
  br label %11110

11110:                                            ; preds = %11109
  br label %11111

11111:                                            ; preds = %11110
  %11112 = load i32, ptr @test_count, align 4, !tbaa !5
  %11113 = add nsw i32 %11112, 1
  store i32 %11113, ptr @test_count, align 4, !tbaa !5
  %11114 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 3), align 8, !tbaa !55
  %11115 = load ptr, ptr %250, align 8, !tbaa !9
  %11116 = call i32 %11114(ptr noundef %11115, ptr noundef %256)
  %11117 = icmp eq i32 %11116, -1
  br i1 %11117, label %11118, label %11171

11118:                                            ; preds = %11111
  br label %11119

11119:                                            ; preds = %11118
  br label %11120

11120:                                            ; preds = %11119
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #11
  %11121 = call ptr @__errno_location() #12
  %11122 = load i32, ptr %11121, align 4, !tbaa !5
  store i32 %11122, ptr %258, align 4, !tbaa !5
  %11123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11124 = call i32 @s2n_print_stacktrace(ptr noundef %11123)
  %11125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11126 = trunc i8 %11125 to i1
  br i1 %11126, label %11127, label %11149

11127:                                            ; preds = %11120
  %11128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11129 = call i32 @fileno(ptr noundef %11128) #11
  %11130 = call i32 @isatty(i32 noundef %11129) #11
  %11131 = icmp ne i32 %11130, 0
  br i1 %11131, label %11132, label %11149

11132:                                            ; preds = %11127
  %11133 = load i32, ptr %258, align 4, !tbaa !5
  %11134 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %11143 = call ptr @__errno_location() #12
  %11144 = load i32, ptr %11143, align 4, !tbaa !5
  %11145 = call ptr @strerror(i32 noundef %11144) #11
  %11146 = call ptr @__errno_location() #12
  %11147 = load i32, ptr %11146, align 4, !tbaa !5
  %11148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11135, ptr noundef @.str.2, i32 noundef %11136, ptr noundef @.str.119, ptr noundef @.str.1, i32 noundef 575, ptr noundef %11139, ptr noundef %11142, ptr noundef %11145, i32 noundef %11147) #11
  br label %11166

11149:                                            ; preds = %11127, %11120
  %11150 = load i32, ptr %258, align 4, !tbaa !5
  %11151 = call ptr @__errno_location() #12
  store i32 %11150, ptr %11151, align 4, !tbaa !5
  %11152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11153 = load i32, ptr @test_count, align 4, !tbaa !5
  %11154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11155 = load i32, ptr %11154, align 4, !tbaa !5
  %11156 = call ptr @s2n_strerror(i32 noundef %11155, ptr noundef @.str.4)
  %11157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11158 = load i32, ptr %11157, align 4, !tbaa !5
  %11159 = call ptr @s2n_strerror_debug(i32 noundef %11158, ptr noundef @.str.4)
  %11160 = call ptr @__errno_location() #12
  %11161 = load i32, ptr %11160, align 4, !tbaa !5
  %11162 = call ptr @strerror(i32 noundef %11161) #11
  %11163 = call ptr @__errno_location() #12
  %11164 = load i32, ptr %11163, align 4, !tbaa !5
  %11165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11152, ptr noundef @.str.5, i32 noundef %11153, ptr noundef @.str.119, ptr noundef @.str.1, i32 noundef 575, ptr noundef %11156, ptr noundef %11159, ptr noundef %11162, i32 noundef %11164) #11
  br label %11166

11166:                                            ; preds = %11149, %11132
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #11
  br label %11167

11167:                                            ; preds = %11166
  br label %11168

11168:                                            ; preds = %11167
  call void @exit(i32 noundef 1) #13
  unreachable

11169:                                            ; No predecessors!
  br label %11170

11170:                                            ; preds = %11169
  br label %11171

11171:                                            ; preds = %11170, %11111
  br label %11172

11172:                                            ; preds = %11171
  br label %11173

11173:                                            ; preds = %11172
  call void @llvm.lifetime.start.p0(i64 24, ptr %259) #11
  call void @llvm.memset.p0.i64(ptr align 8 %259, i8 0, i64 24, i1 false)
  br label %11174

11174:                                            ; preds = %11173
  %11175 = load i32, ptr @test_count, align 4, !tbaa !5
  %11176 = add nsw i32 %11175, 1
  store i32 %11176, ptr @test_count, align 4, !tbaa !5
  %11177 = load ptr, ptr %250, align 8, !tbaa !9
  %11178 = getelementptr inbounds %struct.s2n_connection, ptr %11177, i32 0, i32 31
  %11179 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11178, i32 0, i32 5
  %11180 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %11179, i32 0, i32 0
  %11181 = load ptr, ptr %11180, align 8, !tbaa !93
  %11182 = load i32, ptr %5, align 4, !tbaa !5
  %11183 = icmp ne i32 %11182, 0
  %11184 = call i32 @s2n_copy_pq_share(ptr noundef %256, ptr noundef %259, ptr noundef %11181, i1 noundef zeroext %11183)
  %11185 = icmp eq i32 %11184, -1
  br i1 %11185, label %11186, label %11239

11186:                                            ; preds = %11174
  br label %11187

11187:                                            ; preds = %11186
  br label %11188

11188:                                            ; preds = %11187
  call void @llvm.lifetime.start.p0(i64 4, ptr %260) #11
  %11189 = call ptr @__errno_location() #12
  %11190 = load i32, ptr %11189, align 4, !tbaa !5
  store i32 %11190, ptr %260, align 4, !tbaa !5
  %11191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11192 = call i32 @s2n_print_stacktrace(ptr noundef %11191)
  %11193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11194 = trunc i8 %11193 to i1
  br i1 %11194, label %11195, label %11217

11195:                                            ; preds = %11188
  %11196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11197 = call i32 @fileno(ptr noundef %11196) #11
  %11198 = call i32 @isatty(i32 noundef %11197) #11
  %11199 = icmp ne i32 %11198, 0
  br i1 %11199, label %11200, label %11217

11200:                                            ; preds = %11195
  %11201 = load i32, ptr %260, align 4, !tbaa !5
  %11202 = call ptr @__errno_location() #12
  store i32 %11201, ptr %11202, align 4, !tbaa !5
  %11203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11204 = load i32, ptr @test_count, align 4, !tbaa !5
  %11205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11206 = load i32, ptr %11205, align 4, !tbaa !5
  %11207 = call ptr @s2n_strerror(i32 noundef %11206, ptr noundef @.str.4)
  %11208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11209 = load i32, ptr %11208, align 4, !tbaa !5
  %11210 = call ptr @s2n_strerror_debug(i32 noundef %11209, ptr noundef @.str.4)
  %11211 = call ptr @__errno_location() #12
  %11212 = load i32, ptr %11211, align 4, !tbaa !5
  %11213 = call ptr @strerror(i32 noundef %11212) #11
  %11214 = call ptr @__errno_location() #12
  %11215 = load i32, ptr %11214, align 4, !tbaa !5
  %11216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11203, ptr noundef @.str.2, i32 noundef %11204, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 581, ptr noundef %11207, ptr noundef %11210, ptr noundef %11213, i32 noundef %11215) #11
  br label %11234

11217:                                            ; preds = %11195, %11188
  %11218 = load i32, ptr %260, align 4, !tbaa !5
  %11219 = call ptr @__errno_location() #12
  store i32 %11218, ptr %11219, align 4, !tbaa !5
  %11220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11221 = load i32, ptr @test_count, align 4, !tbaa !5
  %11222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11223 = load i32, ptr %11222, align 4, !tbaa !5
  %11224 = call ptr @s2n_strerror(i32 noundef %11223, ptr noundef @.str.4)
  %11225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11226 = load i32, ptr %11225, align 4, !tbaa !5
  %11227 = call ptr @s2n_strerror_debug(i32 noundef %11226, ptr noundef @.str.4)
  %11228 = call ptr @__errno_location() #12
  %11229 = load i32, ptr %11228, align 4, !tbaa !5
  %11230 = call ptr @strerror(i32 noundef %11229) #11
  %11231 = call ptr @__errno_location() #12
  %11232 = load i32, ptr %11231, align 4, !tbaa !5
  %11233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11220, ptr noundef @.str.5, i32 noundef %11221, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 581, ptr noundef %11224, ptr noundef %11227, ptr noundef %11230, i32 noundef %11232) #11
  br label %11234

11234:                                            ; preds = %11217, %11200
  call void @llvm.lifetime.end.p0(i64 4, ptr %260) #11
  br label %11235

11235:                                            ; preds = %11234
  br label %11236

11236:                                            ; preds = %11235
  call void @exit(i32 noundef 1) #13
  unreachable

11237:                                            ; No predecessors!
  br label %11238

11238:                                            ; preds = %11237
  br label %11239

11239:                                            ; preds = %11238, %11174
  br label %11240

11240:                                            ; preds = %11239
  br label %11241

11241:                                            ; preds = %11240
  br label %11242

11242:                                            ; preds = %11241
  %11243 = load i32, ptr @test_count, align 4, !tbaa !5
  %11244 = add nsw i32 %11243, 1
  store i32 %11244, ptr @test_count, align 4, !tbaa !5
  %11245 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !98
  %11246 = load ptr, ptr %251, align 8, !tbaa !9
  %11247 = call i32 %11245(ptr noundef %11246, ptr noundef %256)
  %11248 = icmp eq i32 %11247, -1
  br i1 %11248, label %11249, label %11302

11249:                                            ; preds = %11242
  br label %11250

11250:                                            ; preds = %11249
  br label %11251

11251:                                            ; preds = %11250
  call void @llvm.lifetime.start.p0(i64 4, ptr %261) #11
  %11252 = call ptr @__errno_location() #12
  %11253 = load i32, ptr %11252, align 4, !tbaa !5
  store i32 %11253, ptr %261, align 4, !tbaa !5
  %11254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11255 = call i32 @s2n_print_stacktrace(ptr noundef %11254)
  %11256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11257 = trunc i8 %11256 to i1
  br i1 %11257, label %11258, label %11280

11258:                                            ; preds = %11251
  %11259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11260 = call i32 @fileno(ptr noundef %11259) #11
  %11261 = call i32 @isatty(i32 noundef %11260) #11
  %11262 = icmp ne i32 %11261, 0
  br i1 %11262, label %11263, label %11280

11263:                                            ; preds = %11258
  %11264 = load i32, ptr %261, align 4, !tbaa !5
  %11265 = call ptr @__errno_location() #12
  store i32 %11264, ptr %11265, align 4, !tbaa !5
  %11266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11267 = load i32, ptr @test_count, align 4, !tbaa !5
  %11268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11269 = load i32, ptr %11268, align 4, !tbaa !5
  %11270 = call ptr @s2n_strerror(i32 noundef %11269, ptr noundef @.str.4)
  %11271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11272 = load i32, ptr %11271, align 4, !tbaa !5
  %11273 = call ptr @s2n_strerror_debug(i32 noundef %11272, ptr noundef @.str.4)
  %11274 = call ptr @__errno_location() #12
  %11275 = load i32, ptr %11274, align 4, !tbaa !5
  %11276 = call ptr @strerror(i32 noundef %11275) #11
  %11277 = call ptr @__errno_location() #12
  %11278 = load i32, ptr %11277, align 4, !tbaa !5
  %11279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11266, ptr noundef @.str.2, i32 noundef %11267, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 583, ptr noundef %11270, ptr noundef %11273, ptr noundef %11276, i32 noundef %11278) #11
  br label %11297

11280:                                            ; preds = %11258, %11251
  %11281 = load i32, ptr %261, align 4, !tbaa !5
  %11282 = call ptr @__errno_location() #12
  store i32 %11281, ptr %11282, align 4, !tbaa !5
  %11283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11284 = load i32, ptr @test_count, align 4, !tbaa !5
  %11285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11286 = load i32, ptr %11285, align 4, !tbaa !5
  %11287 = call ptr @s2n_strerror(i32 noundef %11286, ptr noundef @.str.4)
  %11288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11289 = load i32, ptr %11288, align 4, !tbaa !5
  %11290 = call ptr @s2n_strerror_debug(i32 noundef %11289, ptr noundef @.str.4)
  %11291 = call ptr @__errno_location() #12
  %11292 = load i32, ptr %11291, align 4, !tbaa !5
  %11293 = call ptr @strerror(i32 noundef %11292) #11
  %11294 = call ptr @__errno_location() #12
  %11295 = load i32, ptr %11294, align 4, !tbaa !5
  %11296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11283, ptr noundef @.str.5, i32 noundef %11284, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 583, ptr noundef %11287, ptr noundef %11290, ptr noundef %11293, i32 noundef %11295) #11
  br label %11297

11297:                                            ; preds = %11280, %11263
  call void @llvm.lifetime.end.p0(i64 4, ptr %261) #11
  br label %11298

11298:                                            ; preds = %11297
  br label %11299

11299:                                            ; preds = %11298
  call void @exit(i32 noundef 1) #13
  unreachable

11300:                                            ; No predecessors!
  br label %11301

11301:                                            ; preds = %11300
  br label %11302

11302:                                            ; preds = %11301, %11242
  br label %11303

11303:                                            ; preds = %11302
  br label %11304

11304:                                            ; preds = %11303
  br label %11305

11305:                                            ; preds = %11304
  %11306 = load i32, ptr @test_count, align 4, !tbaa !5
  %11307 = add nsw i32 %11306, 1
  store i32 %11307, ptr @test_count, align 4, !tbaa !5
  %11308 = getelementptr inbounds %struct.s2n_stuffer, ptr %256, i32 0, i32 2
  %11309 = load i32, ptr %11308, align 4, !tbaa !58
  %11310 = getelementptr inbounds %struct.s2n_stuffer, ptr %256, i32 0, i32 1
  %11311 = load i32, ptr %11310, align 8, !tbaa !59
  %11312 = sub i32 %11309, %11311
  %11313 = icmp eq i32 %11312, 0
  br i1 %11313, label %11367, label %11314

11314:                                            ; preds = %11305
  br label %11315

11315:                                            ; preds = %11314
  br label %11316

11316:                                            ; preds = %11315
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #11
  %11317 = call ptr @__errno_location() #12
  %11318 = load i32, ptr %11317, align 4, !tbaa !5
  store i32 %11318, ptr %262, align 4, !tbaa !5
  %11319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11320 = call i32 @s2n_print_stacktrace(ptr noundef %11319)
  %11321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11322 = trunc i8 %11321 to i1
  br i1 %11322, label %11323, label %11345

11323:                                            ; preds = %11316
  %11324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11325 = call i32 @fileno(ptr noundef %11324) #11
  %11326 = call i32 @isatty(i32 noundef %11325) #11
  %11327 = icmp ne i32 %11326, 0
  br i1 %11327, label %11328, label %11345

11328:                                            ; preds = %11323
  %11329 = load i32, ptr %262, align 4, !tbaa !5
  %11330 = call ptr @__errno_location() #12
  store i32 %11329, ptr %11330, align 4, !tbaa !5
  %11331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11332 = load i32, ptr @test_count, align 4, !tbaa !5
  %11333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11334 = load i32, ptr %11333, align 4, !tbaa !5
  %11335 = call ptr @s2n_strerror(i32 noundef %11334, ptr noundef @.str.4)
  %11336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11337 = load i32, ptr %11336, align 4, !tbaa !5
  %11338 = call ptr @s2n_strerror_debug(i32 noundef %11337, ptr noundef @.str.4)
  %11339 = call ptr @__errno_location() #12
  %11340 = load i32, ptr %11339, align 4, !tbaa !5
  %11341 = call ptr @strerror(i32 noundef %11340) #11
  %11342 = call ptr @__errno_location() #12
  %11343 = load i32, ptr %11342, align 4, !tbaa !5
  %11344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11331, ptr noundef @.str.2, i32 noundef %11332, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 586, ptr noundef %11335, ptr noundef %11338, ptr noundef %11341, i32 noundef %11343) #11
  br label %11362

11345:                                            ; preds = %11323, %11316
  %11346 = load i32, ptr %262, align 4, !tbaa !5
  %11347 = call ptr @__errno_location() #12
  store i32 %11346, ptr %11347, align 4, !tbaa !5
  %11348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11349 = load i32, ptr @test_count, align 4, !tbaa !5
  %11350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11351 = load i32, ptr %11350, align 4, !tbaa !5
  %11352 = call ptr @s2n_strerror(i32 noundef %11351, ptr noundef @.str.4)
  %11353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11354 = load i32, ptr %11353, align 4, !tbaa !5
  %11355 = call ptr @s2n_strerror_debug(i32 noundef %11354, ptr noundef @.str.4)
  %11356 = call ptr @__errno_location() #12
  %11357 = load i32, ptr %11356, align 4, !tbaa !5
  %11358 = call ptr @strerror(i32 noundef %11357) #11
  %11359 = call ptr @__errno_location() #12
  %11360 = load i32, ptr %11359, align 4, !tbaa !5
  %11361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11348, ptr noundef @.str.5, i32 noundef %11349, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 586, ptr noundef %11352, ptr noundef %11355, ptr noundef %11358, i32 noundef %11360) #11
  br label %11362

11362:                                            ; preds = %11345, %11328
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #11
  br label %11363

11363:                                            ; preds = %11362
  br label %11364

11364:                                            ; preds = %11363
  call void @exit(i32 noundef 1) #13
  unreachable

11365:                                            ; No predecessors!
  br label %11366

11366:                                            ; preds = %11365
  br label %11367

11367:                                            ; preds = %11366, %11305
  br label %11368

11368:                                            ; preds = %11367
  br label %11369

11369:                                            ; preds = %11368
  call void @llvm.lifetime.start.p0(i64 8, ptr %263) #11
  store ptr null, ptr %263, align 8, !tbaa !9
  br label %11370

11370:                                            ; preds = %11369
  %11371 = load i32, ptr @test_count, align 4, !tbaa !5
  %11372 = add nsw i32 %11371, 1
  store i32 %11372, ptr @test_count, align 4, !tbaa !5
  %11373 = load ptr, ptr %251, align 8, !tbaa !9
  %11374 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %11373, ptr noundef %263)
  %11375 = icmp eq i32 %11374, -1
  br i1 %11375, label %11376, label %11429

11376:                                            ; preds = %11370
  br label %11377

11377:                                            ; preds = %11376
  br label %11378

11378:                                            ; preds = %11377
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #11
  %11379 = call ptr @__errno_location() #12
  %11380 = load i32, ptr %11379, align 4, !tbaa !5
  store i32 %11380, ptr %264, align 4, !tbaa !5
  %11381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11382 = call i32 @s2n_print_stacktrace(ptr noundef %11381)
  %11383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11384 = trunc i8 %11383 to i1
  br i1 %11384, label %11385, label %11407

11385:                                            ; preds = %11378
  %11386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11387 = call i32 @fileno(ptr noundef %11386) #11
  %11388 = call i32 @isatty(i32 noundef %11387) #11
  %11389 = icmp ne i32 %11388, 0
  br i1 %11389, label %11390, label %11407

11390:                                            ; preds = %11385
  %11391 = load i32, ptr %264, align 4, !tbaa !5
  %11392 = call ptr @__errno_location() #12
  store i32 %11391, ptr %11392, align 4, !tbaa !5
  %11393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11394 = load i32, ptr @test_count, align 4, !tbaa !5
  %11395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11396 = load i32, ptr %11395, align 4, !tbaa !5
  %11397 = call ptr @s2n_strerror(i32 noundef %11396, ptr noundef @.str.4)
  %11398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11399 = load i32, ptr %11398, align 4, !tbaa !5
  %11400 = call ptr @s2n_strerror_debug(i32 noundef %11399, ptr noundef @.str.4)
  %11401 = call ptr @__errno_location() #12
  %11402 = load i32, ptr %11401, align 4, !tbaa !5
  %11403 = call ptr @strerror(i32 noundef %11402) #11
  %11404 = call ptr @__errno_location() #12
  %11405 = load i32, ptr %11404, align 4, !tbaa !5
  %11406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11393, ptr noundef @.str.2, i32 noundef %11394, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 589, ptr noundef %11397, ptr noundef %11400, ptr noundef %11403, i32 noundef %11405) #11
  br label %11424

11407:                                            ; preds = %11385, %11378
  %11408 = load i32, ptr %264, align 4, !tbaa !5
  %11409 = call ptr @__errno_location() #12
  store i32 %11408, ptr %11409, align 4, !tbaa !5
  %11410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11411 = load i32, ptr @test_count, align 4, !tbaa !5
  %11412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11413 = load i32, ptr %11412, align 4, !tbaa !5
  %11414 = call ptr @s2n_strerror(i32 noundef %11413, ptr noundef @.str.4)
  %11415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11416 = load i32, ptr %11415, align 4, !tbaa !5
  %11417 = call ptr @s2n_strerror_debug(i32 noundef %11416, ptr noundef @.str.4)
  %11418 = call ptr @__errno_location() #12
  %11419 = load i32, ptr %11418, align 4, !tbaa !5
  %11420 = call ptr @strerror(i32 noundef %11419) #11
  %11421 = call ptr @__errno_location() #12
  %11422 = load i32, ptr %11421, align 4, !tbaa !5
  %11423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11410, ptr noundef @.str.5, i32 noundef %11411, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 589, ptr noundef %11414, ptr noundef %11417, ptr noundef %11420, i32 noundef %11422) #11
  br label %11424

11424:                                            ; preds = %11407, %11390
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #11
  br label %11425

11425:                                            ; preds = %11424
  br label %11426

11426:                                            ; preds = %11425
  call void @exit(i32 noundef 1) #13
  unreachable

11427:                                            ; No predecessors!
  br label %11428

11428:                                            ; preds = %11427
  br label %11429

11429:                                            ; preds = %11428, %11370
  br label %11430

11430:                                            ; preds = %11429
  br label %11431

11431:                                            ; preds = %11430
  br label %11432

11432:                                            ; preds = %11431
  %11433 = load i32, ptr @test_count, align 4, !tbaa !5
  %11434 = add nsw i32 %11433, 1
  store i32 %11434, ptr @test_count, align 4, !tbaa !5
  %11435 = load ptr, ptr %263, align 8, !tbaa !9
  %11436 = icmp eq ptr %11435, null
  br i1 %11436, label %11437, label %11490

11437:                                            ; preds = %11432
  br label %11438

11438:                                            ; preds = %11437
  br label %11439

11439:                                            ; preds = %11438
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #11
  %11440 = call ptr @__errno_location() #12
  %11441 = load i32, ptr %11440, align 4, !tbaa !5
  store i32 %11441, ptr %265, align 4, !tbaa !5
  %11442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11443 = call i32 @s2n_print_stacktrace(ptr noundef %11442)
  %11444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11445 = trunc i8 %11444 to i1
  br i1 %11445, label %11446, label %11468

11446:                                            ; preds = %11439
  %11447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11448 = call i32 @fileno(ptr noundef %11447) #11
  %11449 = call i32 @isatty(i32 noundef %11448) #11
  %11450 = icmp ne i32 %11449, 0
  br i1 %11450, label %11451, label %11468

11451:                                            ; preds = %11446
  %11452 = load i32, ptr %265, align 4, !tbaa !5
  %11453 = call ptr @__errno_location() #12
  store i32 %11452, ptr %11453, align 4, !tbaa !5
  %11454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11455 = load i32, ptr @test_count, align 4, !tbaa !5
  %11456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11457 = load i32, ptr %11456, align 4, !tbaa !5
  %11458 = call ptr @s2n_strerror(i32 noundef %11457, ptr noundef @.str.4)
  %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_debug(i32 noundef %11460, ptr noundef @.str.4)
  %11462 = call ptr @__errno_location() #12
  %11463 = load i32, ptr %11462, align 4, !tbaa !5
  %11464 = call ptr @strerror(i32 noundef %11463) #11
  %11465 = call ptr @__errno_location() #12
  %11466 = load i32, ptr %11465, align 4, !tbaa !5
  %11467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11454, ptr noundef @.str.2, i32 noundef %11455, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 590, ptr noundef %11458, ptr noundef %11461, ptr noundef %11464, i32 noundef %11466) #11
  br label %11485

11468:                                            ; preds = %11446, %11439
  %11469 = load i32, ptr %265, align 4, !tbaa !5
  %11470 = call ptr @__errno_location() #12
  store i32 %11469, ptr %11470, align 4, !tbaa !5
  %11471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11472 = load i32, ptr @test_count, align 4, !tbaa !5
  %11473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11474 = load i32, ptr %11473, align 4, !tbaa !5
  %11475 = call ptr @s2n_strerror(i32 noundef %11474, ptr noundef @.str.4)
  %11476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11477 = load i32, ptr %11476, align 4, !tbaa !5
  %11478 = call ptr @s2n_strerror_debug(i32 noundef %11477, ptr noundef @.str.4)
  %11479 = call ptr @__errno_location() #12
  %11480 = load i32, ptr %11479, align 4, !tbaa !5
  %11481 = call ptr @strerror(i32 noundef %11480) #11
  %11482 = call ptr @__errno_location() #12
  %11483 = load i32, ptr %11482, align 4, !tbaa !5
  %11484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11471, ptr noundef @.str.5, i32 noundef %11472, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 590, ptr noundef %11475, ptr noundef %11478, ptr noundef %11481, i32 noundef %11483) #11
  br label %11485

11485:                                            ; preds = %11468, %11451
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #11
  br label %11486

11486:                                            ; preds = %11485
  br label %11487

11487:                                            ; preds = %11486
  call void @exit(i32 noundef 1) #13
  unreachable

11488:                                            ; No predecessors!
  br label %11489

11489:                                            ; preds = %11488
  br label %11490

11490:                                            ; preds = %11489, %11432
  br label %11491

11491:                                            ; preds = %11490
  br label %11492

11492:                                            ; preds = %11491
  call void @llvm.lifetime.start.p0(i64 8, ptr %266) #11
  %11493 = load ptr, ptr %250, align 8, !tbaa !9
  %11494 = getelementptr inbounds %struct.s2n_connection, ptr %11493, i32 0, i32 31
  %11495 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11494, i32 0, i32 3
  store ptr %11495, ptr %266, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %267) #11
  %11496 = load ptr, ptr %251, align 8, !tbaa !9
  %11497 = getelementptr inbounds %struct.s2n_connection, ptr %11496, i32 0, i32 31
  %11498 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11497, i32 0, i32 3
  store ptr %11498, ptr %267, align 8, !tbaa !9
  br label %11499

11499:                                            ; preds = %11492
  %11500 = load i32, ptr @test_count, align 4, !tbaa !5
  %11501 = add nsw i32 %11500, 1
  store i32 %11501, ptr @test_count, align 4, !tbaa !5
  %11502 = load ptr, ptr %267, align 8, !tbaa !9
  %11503 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11502, i32 0, i32 0
  %11504 = load ptr, ptr %11503, align 8, !tbaa !79
  %11505 = icmp eq ptr %11504, null
  br i1 %11505, label %11506, label %11559

11506:                                            ; preds = %11499
  br label %11507

11507:                                            ; preds = %11506
  br label %11508

11508:                                            ; preds = %11507
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #11
  %11509 = call ptr @__errno_location() #12
  %11510 = load i32, ptr %11509, align 4, !tbaa !5
  store i32 %11510, ptr %268, align 4, !tbaa !5
  %11511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11512 = call i32 @s2n_print_stacktrace(ptr noundef %11511)
  %11513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11514 = trunc i8 %11513 to i1
  br i1 %11514, label %11515, label %11537

11515:                                            ; preds = %11508
  %11516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11517 = call i32 @fileno(ptr noundef %11516) #11
  %11518 = call i32 @isatty(i32 noundef %11517) #11
  %11519 = icmp ne i32 %11518, 0
  br i1 %11519, label %11520, label %11537

11520:                                            ; preds = %11515
  %11521 = load i32, ptr %268, align 4, !tbaa !5
  %11522 = call ptr @__errno_location() #12
  store i32 %11521, ptr %11522, align 4, !tbaa !5
  %11523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11524 = load i32, ptr @test_count, align 4, !tbaa !5
  %11525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11526 = load i32, ptr %11525, align 4, !tbaa !5
  %11527 = call ptr @s2n_strerror(i32 noundef %11526, ptr noundef @.str.4)
  %11528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11529 = load i32, ptr %11528, align 4, !tbaa !5
  %11530 = call ptr @s2n_strerror_debug(i32 noundef %11529, ptr noundef @.str.4)
  %11531 = call ptr @__errno_location() #12
  %11532 = load i32, ptr %11531, align 4, !tbaa !5
  %11533 = call ptr @strerror(i32 noundef %11532) #11
  %11534 = call ptr @__errno_location() #12
  %11535 = load i32, ptr %11534, align 4, !tbaa !5
  %11536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11523, ptr noundef @.str.2, i32 noundef %11524, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 595, ptr noundef %11527, ptr noundef %11530, ptr noundef %11533, i32 noundef %11535) #11
  br label %11554

11537:                                            ; preds = %11515, %11508
  %11538 = load i32, ptr %268, align 4, !tbaa !5
  %11539 = call ptr @__errno_location() #12
  store i32 %11538, ptr %11539, align 4, !tbaa !5
  %11540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11541 = load i32, ptr @test_count, align 4, !tbaa !5
  %11542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11543 = load i32, ptr %11542, align 4, !tbaa !5
  %11544 = call ptr @s2n_strerror(i32 noundef %11543, ptr noundef @.str.4)
  %11545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11546 = load i32, ptr %11545, align 4, !tbaa !5
  %11547 = call ptr @s2n_strerror_debug(i32 noundef %11546, ptr noundef @.str.4)
  %11548 = call ptr @__errno_location() #12
  %11549 = load i32, ptr %11548, align 4, !tbaa !5
  %11550 = call ptr @strerror(i32 noundef %11549) #11
  %11551 = call ptr @__errno_location() #12
  %11552 = load i32, ptr %11551, align 4, !tbaa !5
  %11553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11540, ptr noundef @.str.5, i32 noundef %11541, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 595, ptr noundef %11544, ptr noundef %11547, ptr noundef %11550, i32 noundef %11552) #11
  br label %11554

11554:                                            ; preds = %11537, %11520
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #11
  br label %11555

11555:                                            ; preds = %11554
  br label %11556

11556:                                            ; preds = %11555
  call void @exit(i32 noundef 1) #13
  unreachable

11557:                                            ; No predecessors!
  br label %11558

11558:                                            ; preds = %11557
  br label %11559

11559:                                            ; preds = %11558, %11499
  br label %11560

11560:                                            ; preds = %11559
  br label %11561

11561:                                            ; preds = %11560
  br label %11562

11562:                                            ; preds = %11561
  %11563 = load i32, ptr @test_count, align 4, !tbaa !5
  %11564 = add nsw i32 %11563, 1
  store i32 %11564, ptr @test_count, align 4, !tbaa !5
  %11565 = load ptr, ptr %267, align 8, !tbaa !9
  %11566 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11565, i32 0, i32 1
  %11567 = load ptr, ptr %11566, align 8, !tbaa !80
  %11568 = icmp eq ptr %11567, null
  br i1 %11568, label %11569, label %11622

11569:                                            ; preds = %11562
  br label %11570

11570:                                            ; preds = %11569
  br label %11571

11571:                                            ; preds = %11570
  call void @llvm.lifetime.start.p0(i64 4, ptr %269) #11
  %11572 = call ptr @__errno_location() #12
  %11573 = load i32, ptr %11572, align 4, !tbaa !5
  store i32 %11573, ptr %269, align 4, !tbaa !5
  %11574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11575 = call i32 @s2n_print_stacktrace(ptr noundef %11574)
  %11576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11577 = trunc i8 %11576 to i1
  br i1 %11577, label %11578, label %11600

11578:                                            ; preds = %11571
  %11579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11580 = call i32 @fileno(ptr noundef %11579) #11
  %11581 = call i32 @isatty(i32 noundef %11580) #11
  %11582 = icmp ne i32 %11581, 0
  br i1 %11582, label %11583, label %11600

11583:                                            ; preds = %11578
  %11584 = load i32, ptr %269, align 4, !tbaa !5
  %11585 = call ptr @__errno_location() #12
  store i32 %11584, ptr %11585, align 4, !tbaa !5
  %11586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11587 = load i32, ptr @test_count, align 4, !tbaa !5
  %11588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11589 = load i32, ptr %11588, align 4, !tbaa !5
  %11590 = call ptr @s2n_strerror(i32 noundef %11589, ptr noundef @.str.4)
  %11591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11592 = load i32, ptr %11591, align 4, !tbaa !5
  %11593 = call ptr @s2n_strerror_debug(i32 noundef %11592, ptr noundef @.str.4)
  %11594 = call ptr @__errno_location() #12
  %11595 = load i32, ptr %11594, align 4, !tbaa !5
  %11596 = call ptr @strerror(i32 noundef %11595) #11
  %11597 = call ptr @__errno_location() #12
  %11598 = load i32, ptr %11597, align 4, !tbaa !5
  %11599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11586, ptr noundef @.str.2, i32 noundef %11587, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 596, ptr noundef %11590, ptr noundef %11593, ptr noundef %11596, i32 noundef %11598) #11
  br label %11617

11600:                                            ; preds = %11578, %11571
  %11601 = load i32, ptr %269, align 4, !tbaa !5
  %11602 = call ptr @__errno_location() #12
  store i32 %11601, ptr %11602, align 4, !tbaa !5
  %11603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11604 = load i32, ptr @test_count, align 4, !tbaa !5
  %11605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11606 = load i32, ptr %11605, align 4, !tbaa !5
  %11607 = call ptr @s2n_strerror(i32 noundef %11606, ptr noundef @.str.4)
  %11608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11609 = load i32, ptr %11608, align 4, !tbaa !5
  %11610 = call ptr @s2n_strerror_debug(i32 noundef %11609, ptr noundef @.str.4)
  %11611 = call ptr @__errno_location() #12
  %11612 = load i32, ptr %11611, align 4, !tbaa !5
  %11613 = call ptr @strerror(i32 noundef %11612) #11
  %11614 = call ptr @__errno_location() #12
  %11615 = load i32, ptr %11614, align 4, !tbaa !5
  %11616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11603, ptr noundef @.str.5, i32 noundef %11604, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 596, ptr noundef %11607, ptr noundef %11610, ptr noundef %11613, i32 noundef %11615) #11
  br label %11617

11617:                                            ; preds = %11600, %11583
  call void @llvm.lifetime.end.p0(i64 4, ptr %269) #11
  br label %11618

11618:                                            ; preds = %11617
  br label %11619

11619:                                            ; preds = %11618
  call void @exit(i32 noundef 1) #13
  unreachable

11620:                                            ; No predecessors!
  br label %11621

11621:                                            ; preds = %11620
  br label %11622

11622:                                            ; preds = %11621, %11562
  br label %11623

11623:                                            ; preds = %11622
  br label %11624

11624:                                            ; preds = %11623
  br label %11625

11625:                                            ; preds = %11624
  %11626 = load i32, ptr @test_count, align 4, !tbaa !5
  %11627 = add nsw i32 %11626, 1
  store i32 %11627, ptr @test_count, align 4, !tbaa !5
  %11628 = load ptr, ptr %267, align 8, !tbaa !9
  %11629 = load ptr, ptr %266, align 8, !tbaa !9
  %11630 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef %11628, ptr noundef %11629)
  %11631 = icmp ne i32 %11630, 0
  br i1 %11631, label %11685, label %11632

11632:                                            ; preds = %11625
  br label %11633

11633:                                            ; preds = %11632
  br label %11634

11634:                                            ; preds = %11633
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #11
  %11635 = call ptr @__errno_location() #12
  %11636 = load i32, ptr %11635, align 4, !tbaa !5
  store i32 %11636, ptr %270, align 4, !tbaa !5
  %11637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11638 = call i32 @s2n_print_stacktrace(ptr noundef %11637)
  %11639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11640 = trunc i8 %11639 to i1
  br i1 %11640, label %11641, label %11663

11641:                                            ; preds = %11634
  %11642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11643 = call i32 @fileno(ptr noundef %11642) #11
  %11644 = call i32 @isatty(i32 noundef %11643) #11
  %11645 = icmp ne i32 %11644, 0
  br i1 %11645, label %11646, label %11663

11646:                                            ; preds = %11641
  %11647 = load i32, ptr %270, align 4, !tbaa !5
  %11648 = call ptr @__errno_location() #12
  store i32 %11647, ptr %11648, align 4, !tbaa !5
  %11649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11650 = load i32, ptr @test_count, align 4, !tbaa !5
  %11651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11652 = load i32, ptr %11651, align 4, !tbaa !5
  %11653 = call ptr @s2n_strerror(i32 noundef %11652, ptr noundef @.str.4)
  %11654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11655 = load i32, ptr %11654, align 4, !tbaa !5
  %11656 = call ptr @s2n_strerror_debug(i32 noundef %11655, ptr noundef @.str.4)
  %11657 = call ptr @__errno_location() #12
  %11658 = load i32, ptr %11657, align 4, !tbaa !5
  %11659 = call ptr @strerror(i32 noundef %11658) #11
  %11660 = call ptr @__errno_location() #12
  %11661 = load i32, ptr %11660, align 4, !tbaa !5
  %11662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11649, ptr noundef @.str.2, i32 noundef %11650, ptr noundef @.str.123, ptr noundef @.str.1, i32 noundef 597, ptr noundef %11653, ptr noundef %11656, ptr noundef %11659, i32 noundef %11661) #11
  br label %11680

11663:                                            ; preds = %11641, %11634
  %11664 = load i32, ptr %270, align 4, !tbaa !5
  %11665 = call ptr @__errno_location() #12
  store i32 %11664, ptr %11665, align 4, !tbaa !5
  %11666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11667 = load i32, ptr @test_count, align 4, !tbaa !5
  %11668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11669 = load i32, ptr %11668, align 4, !tbaa !5
  %11670 = call ptr @s2n_strerror(i32 noundef %11669, ptr noundef @.str.4)
  %11671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11672 = load i32, ptr %11671, align 4, !tbaa !5
  %11673 = call ptr @s2n_strerror_debug(i32 noundef %11672, ptr noundef @.str.4)
  %11674 = call ptr @__errno_location() #12
  %11675 = load i32, ptr %11674, align 4, !tbaa !5
  %11676 = call ptr @strerror(i32 noundef %11675) #11
  %11677 = call ptr @__errno_location() #12
  %11678 = load i32, ptr %11677, align 4, !tbaa !5
  %11679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11666, ptr noundef @.str.5, i32 noundef %11667, ptr noundef @.str.123, ptr noundef @.str.1, i32 noundef 597, ptr noundef %11670, ptr noundef %11673, ptr noundef %11676, i32 noundef %11678) #11
  br label %11680

11680:                                            ; preds = %11663, %11646
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #11
  br label %11681

11681:                                            ; preds = %11680
  br label %11682

11682:                                            ; preds = %11681
  call void @exit(i32 noundef 1) #13
  unreachable

11683:                                            ; No predecessors!
  br label %11684

11684:                                            ; preds = %11683
  br label %11685

11685:                                            ; preds = %11684, %11625
  br label %11686

11686:                                            ; preds = %11685
  br label %11687

11687:                                            ; preds = %11686
  call void @llvm.lifetime.start.p0(i64 8, ptr %271) #11
  store ptr null, ptr %271, align 8, !tbaa !9
  br label %11688

11688:                                            ; preds = %11687
  %11689 = load i32, ptr @test_count, align 4, !tbaa !5
  %11690 = add nsw i32 %11689, 1
  store i32 %11690, ptr @test_count, align 4, !tbaa !5
  %11691 = load ptr, ptr %251, align 8, !tbaa !9
  %11692 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %11691, ptr noundef %271)
  %11693 = icmp eq i32 %11692, -1
  br i1 %11693, label %11694, label %11747

11694:                                            ; preds = %11688
  br label %11695

11695:                                            ; preds = %11694
  br label %11696

11696:                                            ; preds = %11695
  call void @llvm.lifetime.start.p0(i64 4, ptr %272) #11
  %11697 = call ptr @__errno_location() #12
  %11698 = load i32, ptr %11697, align 4, !tbaa !5
  store i32 %11698, ptr %272, align 4, !tbaa !5
  %11699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11700 = call i32 @s2n_print_stacktrace(ptr noundef %11699)
  %11701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11702 = trunc i8 %11701 to i1
  br i1 %11702, label %11703, label %11725

11703:                                            ; preds = %11696
  %11704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11705 = call i32 @fileno(ptr noundef %11704) #11
  %11706 = call i32 @isatty(i32 noundef %11705) #11
  %11707 = icmp ne i32 %11706, 0
  br i1 %11707, label %11708, label %11725

11708:                                            ; preds = %11703
  %11709 = load i32, ptr %272, align 4, !tbaa !5
  %11710 = call ptr @__errno_location() #12
  store i32 %11709, ptr %11710, align 4, !tbaa !5
  %11711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11712 = load i32, ptr @test_count, align 4, !tbaa !5
  %11713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11714 = load i32, ptr %11713, align 4, !tbaa !5
  %11715 = call ptr @s2n_strerror(i32 noundef %11714, ptr noundef @.str.4)
  %11716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11717 = load i32, ptr %11716, align 4, !tbaa !5
  %11718 = call ptr @s2n_strerror_debug(i32 noundef %11717, ptr noundef @.str.4)
  %11719 = call ptr @__errno_location() #12
  %11720 = load i32, ptr %11719, align 4, !tbaa !5
  %11721 = call ptr @strerror(i32 noundef %11720) #11
  %11722 = call ptr @__errno_location() #12
  %11723 = load i32, ptr %11722, align 4, !tbaa !5
  %11724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11711, ptr noundef @.str.2, i32 noundef %11712, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 600, ptr noundef %11715, ptr noundef %11718, ptr noundef %11721, i32 noundef %11723) #11
  br label %11742

11725:                                            ; preds = %11703, %11696
  %11726 = load i32, ptr %272, align 4, !tbaa !5
  %11727 = call ptr @__errno_location() #12
  store i32 %11726, ptr %11727, align 4, !tbaa !5
  %11728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11729 = load i32, ptr @test_count, align 4, !tbaa !5
  %11730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11731 = load i32, ptr %11730, align 4, !tbaa !5
  %11732 = call ptr @s2n_strerror(i32 noundef %11731, ptr noundef @.str.4)
  %11733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11734 = load i32, ptr %11733, align 4, !tbaa !5
  %11735 = call ptr @s2n_strerror_debug(i32 noundef %11734, ptr noundef @.str.4)
  %11736 = call ptr @__errno_location() #12
  %11737 = load i32, ptr %11736, align 4, !tbaa !5
  %11738 = call ptr @strerror(i32 noundef %11737) #11
  %11739 = call ptr @__errno_location() #12
  %11740 = load i32, ptr %11739, align 4, !tbaa !5
  %11741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11728, ptr noundef @.str.5, i32 noundef %11729, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 600, ptr noundef %11732, ptr noundef %11735, ptr noundef %11738, i32 noundef %11740) #11
  br label %11742

11742:                                            ; preds = %11725, %11708
  call void @llvm.lifetime.end.p0(i64 4, ptr %272) #11
  br label %11743

11743:                                            ; preds = %11742
  br label %11744

11744:                                            ; preds = %11743
  call void @exit(i32 noundef 1) #13
  unreachable

11745:                                            ; No predecessors!
  br label %11746

11746:                                            ; preds = %11745
  br label %11747

11747:                                            ; preds = %11746, %11688
  br label %11748

11748:                                            ; preds = %11747
  br label %11749

11749:                                            ; preds = %11748
  br label %11750

11750:                                            ; preds = %11749
  %11751 = load i32, ptr @test_count, align 4, !tbaa !5
  %11752 = add nsw i32 %11751, 1
  store i32 %11752, ptr @test_count, align 4, !tbaa !5
  %11753 = load ptr, ptr %271, align 8, !tbaa !9
  %11754 = icmp eq ptr %11753, null
  br i1 %11754, label %11755, label %11808

11755:                                            ; preds = %11750
  br label %11756

11756:                                            ; preds = %11755
  br label %11757

11757:                                            ; preds = %11756
  call void @llvm.lifetime.start.p0(i64 4, ptr %273) #11
  %11758 = call ptr @__errno_location() #12
  %11759 = load i32, ptr %11758, align 4, !tbaa !5
  store i32 %11759, ptr %273, align 4, !tbaa !5
  %11760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11761 = call i32 @s2n_print_stacktrace(ptr noundef %11760)
  %11762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11763 = trunc i8 %11762 to i1
  br i1 %11763, label %11764, label %11786

11764:                                            ; preds = %11757
  %11765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11766 = call i32 @fileno(ptr noundef %11765) #11
  %11767 = call i32 @isatty(i32 noundef %11766) #11
  %11768 = icmp ne i32 %11767, 0
  br i1 %11768, label %11769, label %11786

11769:                                            ; preds = %11764
  %11770 = load i32, ptr %273, align 4, !tbaa !5
  %11771 = call ptr @__errno_location() #12
  store i32 %11770, ptr %11771, align 4, !tbaa !5
  %11772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11773 = load i32, ptr @test_count, align 4, !tbaa !5
  %11774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11775 = load i32, ptr %11774, align 4, !tbaa !5
  %11776 = call ptr @s2n_strerror(i32 noundef %11775, ptr noundef @.str.4)
  %11777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11778 = load i32, ptr %11777, align 4, !tbaa !5
  %11779 = call ptr @s2n_strerror_debug(i32 noundef %11778, ptr noundef @.str.4)
  %11780 = call ptr @__errno_location() #12
  %11781 = load i32, ptr %11780, align 4, !tbaa !5
  %11782 = call ptr @strerror(i32 noundef %11781) #11
  %11783 = call ptr @__errno_location() #12
  %11784 = load i32, ptr %11783, align 4, !tbaa !5
  %11785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11772, ptr noundef @.str.2, i32 noundef %11773, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 601, ptr noundef %11776, ptr noundef %11779, ptr noundef %11782, i32 noundef %11784) #11
  br label %11803

11786:                                            ; preds = %11764, %11757
  %11787 = load i32, ptr %273, align 4, !tbaa !5
  %11788 = call ptr @__errno_location() #12
  store i32 %11787, ptr %11788, align 4, !tbaa !5
  %11789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11790 = load i32, ptr @test_count, align 4, !tbaa !5
  %11791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11792 = load i32, ptr %11791, align 4, !tbaa !5
  %11793 = call ptr @s2n_strerror(i32 noundef %11792, ptr noundef @.str.4)
  %11794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11795 = load i32, ptr %11794, align 4, !tbaa !5
  %11796 = call ptr @s2n_strerror_debug(i32 noundef %11795, ptr noundef @.str.4)
  %11797 = call ptr @__errno_location() #12
  %11798 = load i32, ptr %11797, align 4, !tbaa !5
  %11799 = call ptr @strerror(i32 noundef %11798) #11
  %11800 = call ptr @__errno_location() #12
  %11801 = load i32, ptr %11800, align 4, !tbaa !5
  %11802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11789, ptr noundef @.str.5, i32 noundef %11790, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 601, ptr noundef %11793, ptr noundef %11796, ptr noundef %11799, i32 noundef %11801) #11
  br label %11803

11803:                                            ; preds = %11786, %11769
  call void @llvm.lifetime.end.p0(i64 4, ptr %273) #11
  br label %11804

11804:                                            ; preds = %11803
  br label %11805

11805:                                            ; preds = %11804
  call void @exit(i32 noundef 1) #13
  unreachable

11806:                                            ; No predecessors!
  br label %11807

11807:                                            ; preds = %11806
  br label %11808

11808:                                            ; preds = %11807, %11750
  br label %11809

11809:                                            ; preds = %11808
  br label %11810

11810:                                            ; preds = %11809
  call void @llvm.lifetime.start.p0(i64 8, ptr %274) #11
  %11811 = load ptr, ptr %250, align 8, !tbaa !9
  %11812 = getelementptr inbounds %struct.s2n_connection, ptr %11811, i32 0, i32 31
  %11813 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11812, i32 0, i32 5
  store ptr %11813, ptr %274, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %275) #11
  %11814 = load ptr, ptr %251, align 8, !tbaa !9
  %11815 = getelementptr inbounds %struct.s2n_connection, ptr %11814, i32 0, i32 31
  %11816 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11815, i32 0, i32 5
  store ptr %11816, ptr %275, align 8, !tbaa !9
  br label %11817

11817:                                            ; preds = %11810
  %11818 = load i32, ptr @test_count, align 4, !tbaa !5
  %11819 = add nsw i32 %11818, 1
  store i32 %11819, ptr @test_count, align 4, !tbaa !5
  %11820 = load ptr, ptr %275, align 8, !tbaa !9
  %11821 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %11820, i32 0, i32 2
  %11822 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11821, i32 0, i32 0
  %11823 = load ptr, ptr %11822, align 8, !tbaa !76
  %11824 = load ptr, ptr %274, align 8, !tbaa !9
  %11825 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %11824, i32 0, i32 2
  %11826 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11825, i32 0, i32 0
  %11827 = load ptr, ptr %11826, align 8, !tbaa !76
  %11828 = icmp eq ptr %11823, %11827
  br i1 %11828, label %11882, label %11829

11829:                                            ; preds = %11817
  br label %11830

11830:                                            ; preds = %11829
  br label %11831

11831:                                            ; preds = %11830
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #11
  %11832 = call ptr @__errno_location() #12
  %11833 = load i32, ptr %11832, align 4, !tbaa !5
  store i32 %11833, ptr %276, align 4, !tbaa !5
  %11834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11835 = call i32 @s2n_print_stacktrace(ptr noundef %11834)
  %11836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11837 = trunc i8 %11836 to i1
  br i1 %11837, label %11838, label %11860

11838:                                            ; preds = %11831
  %11839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11840 = call i32 @fileno(ptr noundef %11839) #11
  %11841 = call i32 @isatty(i32 noundef %11840) #11
  %11842 = icmp ne i32 %11841, 0
  br i1 %11842, label %11843, label %11860

11843:                                            ; preds = %11838
  %11844 = load i32, ptr %276, align 4, !tbaa !5
  %11845 = call ptr @__errno_location() #12
  store i32 %11844, ptr %11845, align 4, !tbaa !5
  %11846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11847 = load i32, ptr @test_count, align 4, !tbaa !5
  %11848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11849 = load i32, ptr %11848, align 4, !tbaa !5
  %11850 = call ptr @s2n_strerror(i32 noundef %11849, ptr noundef @.str.4)
  %11851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11852 = load i32, ptr %11851, align 4, !tbaa !5
  %11853 = call ptr @s2n_strerror_debug(i32 noundef %11852, ptr noundef @.str.4)
  %11854 = call ptr @__errno_location() #12
  %11855 = load i32, ptr %11854, align 4, !tbaa !5
  %11856 = call ptr @strerror(i32 noundef %11855) #11
  %11857 = call ptr @__errno_location() #12
  %11858 = load i32, ptr %11857, align 4, !tbaa !5
  %11859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11846, ptr noundef @.str.2, i32 noundef %11847, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 609, ptr noundef %11850, ptr noundef %11853, ptr noundef %11856, i32 noundef %11858) #11
  br label %11877

11860:                                            ; preds = %11838, %11831
  %11861 = load i32, ptr %276, align 4, !tbaa !5
  %11862 = call ptr @__errno_location() #12
  store i32 %11861, ptr %11862, align 4, !tbaa !5
  %11863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11864 = load i32, ptr @test_count, align 4, !tbaa !5
  %11865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11866 = load i32, ptr %11865, align 4, !tbaa !5
  %11867 = call ptr @s2n_strerror(i32 noundef %11866, ptr noundef @.str.4)
  %11868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11869 = load i32, ptr %11868, align 4, !tbaa !5
  %11870 = call ptr @s2n_strerror_debug(i32 noundef %11869, ptr noundef @.str.4)
  %11871 = call ptr @__errno_location() #12
  %11872 = load i32, ptr %11871, align 4, !tbaa !5
  %11873 = call ptr @strerror(i32 noundef %11872) #11
  %11874 = call ptr @__errno_location() #12
  %11875 = load i32, ptr %11874, align 4, !tbaa !5
  %11876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11863, ptr noundef @.str.5, i32 noundef %11864, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 609, ptr noundef %11867, ptr noundef %11870, ptr noundef %11873, i32 noundef %11875) #11
  br label %11877

11877:                                            ; preds = %11860, %11843
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #11
  br label %11878

11878:                                            ; preds = %11877
  br label %11879

11879:                                            ; preds = %11878
  call void @exit(i32 noundef 1) #13
  unreachable

11880:                                            ; No predecessors!
  br label %11881

11881:                                            ; preds = %11880
  br label %11882

11882:                                            ; preds = %11881, %11817
  br label %11883

11883:                                            ; preds = %11882
  br label %11884

11884:                                            ; preds = %11883
  br label %11885

11885:                                            ; preds = %11884
  %11886 = load i32, ptr @test_count, align 4, !tbaa !5
  %11887 = add nsw i32 %11886, 1
  store i32 %11887, ptr @test_count, align 4, !tbaa !5
  %11888 = load ptr, ptr %275, align 8, !tbaa !9
  %11889 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %11888, i32 0, i32 2
  %11890 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11889, i32 0, i32 1
  %11891 = load ptr, ptr %11890, align 8, !tbaa !78
  %11892 = icmp eq ptr %11891, null
  br i1 %11892, label %11893, label %11946

11893:                                            ; preds = %11885
  br label %11894

11894:                                            ; preds = %11893
  br label %11895

11895:                                            ; preds = %11894
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #11
  %11896 = call ptr @__errno_location() #12
  %11897 = load i32, ptr %11896, align 4, !tbaa !5
  store i32 %11897, ptr %277, align 4, !tbaa !5
  %11898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11899 = call i32 @s2n_print_stacktrace(ptr noundef %11898)
  %11900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11901 = trunc i8 %11900 to i1
  br i1 %11901, label %11902, label %11924

11902:                                            ; preds = %11895
  %11903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11904 = call i32 @fileno(ptr noundef %11903) #11
  %11905 = call i32 @isatty(i32 noundef %11904) #11
  %11906 = icmp ne i32 %11905, 0
  br i1 %11906, label %11907, label %11924

11907:                                            ; preds = %11902
  %11908 = load i32, ptr %277, align 4, !tbaa !5
  %11909 = call ptr @__errno_location() #12
  store i32 %11908, ptr %11909, align 4, !tbaa !5
  %11910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11911 = load i32, ptr @test_count, align 4, !tbaa !5
  %11912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11913 = load i32, ptr %11912, align 4, !tbaa !5
  %11914 = call ptr @s2n_strerror(i32 noundef %11913, ptr noundef @.str.4)
  %11915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11916 = load i32, ptr %11915, align 4, !tbaa !5
  %11917 = call ptr @s2n_strerror_debug(i32 noundef %11916, ptr noundef @.str.4)
  %11918 = call ptr @__errno_location() #12
  %11919 = load i32, ptr %11918, align 4, !tbaa !5
  %11920 = call ptr @strerror(i32 noundef %11919) #11
  %11921 = call ptr @__errno_location() #12
  %11922 = load i32, ptr %11921, align 4, !tbaa !5
  %11923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11910, ptr noundef @.str.2, i32 noundef %11911, ptr noundef @.str.125, ptr noundef @.str.1, i32 noundef 610, ptr noundef %11914, ptr noundef %11917, ptr noundef %11920, i32 noundef %11922) #11
  br label %11941

11924:                                            ; preds = %11902, %11895
  %11925 = load i32, ptr %277, align 4, !tbaa !5
  %11926 = call ptr @__errno_location() #12
  store i32 %11925, ptr %11926, align 4, !tbaa !5
  %11927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11928 = load i32, ptr @test_count, align 4, !tbaa !5
  %11929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11930 = load i32, ptr %11929, align 4, !tbaa !5
  %11931 = call ptr @s2n_strerror(i32 noundef %11930, ptr noundef @.str.4)
  %11932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11933 = load i32, ptr %11932, align 4, !tbaa !5
  %11934 = call ptr @s2n_strerror_debug(i32 noundef %11933, ptr noundef @.str.4)
  %11935 = call ptr @__errno_location() #12
  %11936 = load i32, ptr %11935, align 4, !tbaa !5
  %11937 = call ptr @strerror(i32 noundef %11936) #11
  %11938 = call ptr @__errno_location() #12
  %11939 = load i32, ptr %11938, align 4, !tbaa !5
  %11940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11927, ptr noundef @.str.5, i32 noundef %11928, ptr noundef @.str.125, ptr noundef @.str.1, i32 noundef 610, ptr noundef %11931, ptr noundef %11934, ptr noundef %11937, i32 noundef %11939) #11
  br label %11941

11941:                                            ; preds = %11924, %11907
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #11
  br label %11942

11942:                                            ; preds = %11941
  br label %11943

11943:                                            ; preds = %11942
  call void @exit(i32 noundef 1) #13
  unreachable

11944:                                            ; No predecessors!
  br label %11945

11945:                                            ; preds = %11944
  br label %11946

11946:                                            ; preds = %11945, %11885
  br label %11947

11947:                                            ; preds = %11946
  br label %11948

11948:                                            ; preds = %11947
  br label %11949

11949:                                            ; preds = %11948
  %11950 = load i32, ptr @test_count, align 4, !tbaa !5
  %11951 = add nsw i32 %11950, 1
  store i32 %11951, ptr @test_count, align 4, !tbaa !5
  %11952 = load ptr, ptr %275, align 8, !tbaa !9
  %11953 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %11952, i32 0, i32 2
  %11954 = load ptr, ptr %274, align 8, !tbaa !9
  %11955 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %11954, i32 0, i32 2
  %11956 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef %11953, ptr noundef %11955)
  %11957 = icmp ne i32 %11956, 0
  br i1 %11957, label %12011, label %11958

11958:                                            ; preds = %11949
  br label %11959

11959:                                            ; preds = %11958
  br label %11960

11960:                                            ; preds = %11959
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #11
  %11961 = call ptr @__errno_location() #12
  %11962 = load i32, ptr %11961, align 4, !tbaa !5
  store i32 %11962, ptr %278, align 4, !tbaa !5
  %11963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11964 = call i32 @s2n_print_stacktrace(ptr noundef %11963)
  %11965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11966 = trunc i8 %11965 to i1
  br i1 %11966, label %11967, label %11989

11967:                                            ; preds = %11960
  %11968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11969 = call i32 @fileno(ptr noundef %11968) #11
  %11970 = call i32 @isatty(i32 noundef %11969) #11
  %11971 = icmp ne i32 %11970, 0
  br i1 %11971, label %11972, label %11989

11972:                                            ; preds = %11967
  %11973 = load i32, ptr %278, align 4, !tbaa !5
  %11974 = call ptr @__errno_location() #12
  store i32 %11973, ptr %11974, align 4, !tbaa !5
  %11975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11976 = load i32, ptr @test_count, align 4, !tbaa !5
  %11977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11978 = load i32, ptr %11977, align 4, !tbaa !5
  %11979 = call ptr @s2n_strerror(i32 noundef %11978, ptr noundef @.str.4)
  %11980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11981 = load i32, ptr %11980, align 4, !tbaa !5
  %11982 = call ptr @s2n_strerror_debug(i32 noundef %11981, ptr noundef @.str.4)
  %11983 = call ptr @__errno_location() #12
  %11984 = load i32, ptr %11983, align 4, !tbaa !5
  %11985 = call ptr @strerror(i32 noundef %11984) #11
  %11986 = call ptr @__errno_location() #12
  %11987 = load i32, ptr %11986, align 4, !tbaa !5
  %11988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11975, ptr noundef @.str.2, i32 noundef %11976, ptr noundef @.str.126, ptr noundef @.str.1, i32 noundef 611, ptr noundef %11979, ptr noundef %11982, ptr noundef %11985, i32 noundef %11987) #11
  br label %12006

11989:                                            ; preds = %11967, %11960
  %11990 = load i32, ptr %278, align 4, !tbaa !5
  %11991 = call ptr @__errno_location() #12
  store i32 %11990, ptr %11991, align 4, !tbaa !5
  %11992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11993 = load i32, ptr @test_count, align 4, !tbaa !5
  %11994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11995 = load i32, ptr %11994, align 4, !tbaa !5
  %11996 = call ptr @s2n_strerror(i32 noundef %11995, ptr noundef @.str.4)
  %11997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11998 = load i32, ptr %11997, align 4, !tbaa !5
  %11999 = call ptr @s2n_strerror_debug(i32 noundef %11998, ptr noundef @.str.4)
  %12000 = call ptr @__errno_location() #12
  %12001 = load i32, ptr %12000, align 4, !tbaa !5
  %12002 = call ptr @strerror(i32 noundef %12001) #11
  %12003 = call ptr @__errno_location() #12
  %12004 = load i32, ptr %12003, align 4, !tbaa !5
  %12005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11992, ptr noundef @.str.5, i32 noundef %11993, ptr noundef @.str.126, ptr noundef @.str.1, i32 noundef 611, ptr noundef %11996, ptr noundef %11999, ptr noundef %12002, i32 noundef %12004) #11
  br label %12006

12006:                                            ; preds = %11989, %11972
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #11
  br label %12007

12007:                                            ; preds = %12006
  br label %12008

12008:                                            ; preds = %12007
  call void @exit(i32 noundef 1) #13
  unreachable

12009:                                            ; No predecessors!
  br label %12010

12010:                                            ; preds = %12009
  br label %12011

12011:                                            ; preds = %12010, %11949
  br label %12012

12012:                                            ; preds = %12011
  br label %12013

12013:                                            ; preds = %12012
  call void @llvm.lifetime.start.p0(i64 8, ptr %279) #11
  %12014 = call ptr @s2n_kem_preferences_get_highest_priority_group(ptr noundef %248)
  store ptr %12014, ptr %279, align 8, !tbaa !9
  br label %12015

12015:                                            ; preds = %12013
  %12016 = load i32, ptr @test_count, align 4, !tbaa !5
  %12017 = add nsw i32 %12016, 1
  store i32 %12017, ptr @test_count, align 4, !tbaa !5
  %12018 = load ptr, ptr %279, align 8, !tbaa !9
  %12019 = icmp eq ptr %12018, null
  br i1 %12019, label %12020, label %12073

12020:                                            ; preds = %12015
  br label %12021

12021:                                            ; preds = %12020
  br label %12022

12022:                                            ; preds = %12021
  call void @llvm.lifetime.start.p0(i64 4, ptr %280) #11
  %12023 = call ptr @__errno_location() #12
  %12024 = load i32, ptr %12023, align 4, !tbaa !5
  store i32 %12024, ptr %280, align 4, !tbaa !5
  %12025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12026 = call i32 @s2n_print_stacktrace(ptr noundef %12025)
  %12027 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12028 = trunc i8 %12027 to i1
  br i1 %12028, label %12029, label %12051

12029:                                            ; preds = %12022
  %12030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12031 = call i32 @fileno(ptr noundef %12030) #11
  %12032 = call i32 @isatty(i32 noundef %12031) #11
  %12033 = icmp ne i32 %12032, 0
  br i1 %12033, label %12034, label %12051

12034:                                            ; preds = %12029
  %12035 = load i32, ptr %280, align 4, !tbaa !5
  %12036 = call ptr @__errno_location() #12
  store i32 %12035, ptr %12036, align 4, !tbaa !5
  %12037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12038 = load i32, ptr @test_count, align 4, !tbaa !5
  %12039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12040 = load i32, ptr %12039, align 4, !tbaa !5
  %12041 = call ptr @s2n_strerror(i32 noundef %12040, ptr noundef @.str.4)
  %12042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12043 = load i32, ptr %12042, align 4, !tbaa !5
  %12044 = call ptr @s2n_strerror_debug(i32 noundef %12043, ptr noundef @.str.4)
  %12045 = call ptr @__errno_location() #12
  %12046 = load i32, ptr %12045, align 4, !tbaa !5
  %12047 = call ptr @strerror(i32 noundef %12046) #11
  %12048 = call ptr @__errno_location() #12
  %12049 = load i32, ptr %12048, align 4, !tbaa !5
  %12050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12037, ptr noundef @.str.2, i32 noundef %12038, ptr noundef @.str.127, ptr noundef @.str.1, i32 noundef 614, ptr noundef %12041, ptr noundef %12044, ptr noundef %12047, i32 noundef %12049) #11
  br label %12068

12051:                                            ; preds = %12029, %12022
  %12052 = load i32, ptr %280, align 4, !tbaa !5
  %12053 = call ptr @__errno_location() #12
  store i32 %12052, ptr %12053, align 4, !tbaa !5
  %12054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12055 = load i32, ptr @test_count, align 4, !tbaa !5
  %12056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12057 = load i32, ptr %12056, align 4, !tbaa !5
  %12058 = call ptr @s2n_strerror(i32 noundef %12057, ptr noundef @.str.4)
  %12059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12060 = load i32, ptr %12059, align 4, !tbaa !5
  %12061 = call ptr @s2n_strerror_debug(i32 noundef %12060, ptr noundef @.str.4)
  %12062 = call ptr @__errno_location() #12
  %12063 = load i32, ptr %12062, align 4, !tbaa !5
  %12064 = call ptr @strerror(i32 noundef %12063) #11
  %12065 = call ptr @__errno_location() #12
  %12066 = load i32, ptr %12065, align 4, !tbaa !5
  %12067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12054, ptr noundef @.str.5, i32 noundef %12055, ptr noundef @.str.127, ptr noundef @.str.1, i32 noundef 614, ptr noundef %12058, ptr noundef %12061, ptr noundef %12064, i32 noundef %12066) #11
  br label %12068

12068:                                            ; preds = %12051, %12034
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #11
  br label %12069

12069:                                            ; preds = %12068
  br label %12070

12070:                                            ; preds = %12069
  call void @exit(i32 noundef 1) #13
  unreachable

12071:                                            ; No predecessors!
  br label %12072

12072:                                            ; preds = %12071
  br label %12073

12073:                                            ; preds = %12072, %12015
  br label %12074

12074:                                            ; preds = %12073
  br label %12075

12075:                                            ; preds = %12074
  br label %12076

12076:                                            ; preds = %12075
  %12077 = load i32, ptr @test_count, align 4, !tbaa !5
  %12078 = add nsw i32 %12077, 1
  store i32 %12078, ptr @test_count, align 4, !tbaa !5
  %12079 = load ptr, ptr %275, align 8, !tbaa !9
  %12080 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %12079, i32 0, i32 1
  %12081 = getelementptr inbounds %struct.s2n_kem_params, ptr %12080, i32 0, i32 0
  %12082 = load ptr, ptr %12081, align 8, !tbaa !69
  %12083 = load ptr, ptr %279, align 8, !tbaa !9
  %12084 = getelementptr inbounds %struct.s2n_kem_group, ptr %12083, i32 0, i32 3
  %12085 = load ptr, ptr %12084, align 8, !tbaa !70
  %12086 = icmp eq ptr %12082, %12085
  br i1 %12086, label %12140, label %12087

12087:                                            ; preds = %12076
  br label %12088

12088:                                            ; preds = %12087
  br label %12089

12089:                                            ; preds = %12088
  call void @llvm.lifetime.start.p0(i64 4, ptr %281) #11
  %12090 = call ptr @__errno_location() #12
  %12091 = load i32, ptr %12090, align 4, !tbaa !5
  store i32 %12091, ptr %281, align 4, !tbaa !5
  %12092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12093 = call i32 @s2n_print_stacktrace(ptr noundef %12092)
  %12094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12095 = trunc i8 %12094 to i1
  br i1 %12095, label %12096, label %12118

12096:                                            ; preds = %12089
  %12097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12098 = call i32 @fileno(ptr noundef %12097) #11
  %12099 = call i32 @isatty(i32 noundef %12098) #11
  %12100 = icmp ne i32 %12099, 0
  br i1 %12100, label %12101, label %12118

12101:                                            ; preds = %12096
  %12102 = load i32, ptr %281, align 4, !tbaa !5
  %12103 = call ptr @__errno_location() #12
  store i32 %12102, ptr %12103, align 4, !tbaa !5
  %12104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12105 = load i32, ptr @test_count, align 4, !tbaa !5
  %12106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12107 = load i32, ptr %12106, align 4, !tbaa !5
  %12108 = call ptr @s2n_strerror(i32 noundef %12107, ptr noundef @.str.4)
  %12109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12110 = load i32, ptr %12109, align 4, !tbaa !5
  %12111 = call ptr @s2n_strerror_debug(i32 noundef %12110, ptr noundef @.str.4)
  %12112 = call ptr @__errno_location() #12
  %12113 = load i32, ptr %12112, align 4, !tbaa !5
  %12114 = call ptr @strerror(i32 noundef %12113) #11
  %12115 = call ptr @__errno_location() #12
  %12116 = load i32, ptr %12115, align 4, !tbaa !5
  %12117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12104, ptr noundef @.str.2, i32 noundef %12105, ptr noundef @.str.128, ptr noundef @.str.1, i32 noundef 615, ptr noundef %12108, ptr noundef %12111, ptr noundef %12114, i32 noundef %12116) #11
  br label %12135

12118:                                            ; preds = %12096, %12089
  %12119 = load i32, ptr %281, align 4, !tbaa !5
  %12120 = call ptr @__errno_location() #12
  store i32 %12119, ptr %12120, align 4, !tbaa !5
  %12121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12122 = load i32, ptr @test_count, align 4, !tbaa !5
  %12123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12124 = load i32, ptr %12123, align 4, !tbaa !5
  %12125 = call ptr @s2n_strerror(i32 noundef %12124, ptr noundef @.str.4)
  %12126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12127 = load i32, ptr %12126, align 4, !tbaa !5
  %12128 = call ptr @s2n_strerror_debug(i32 noundef %12127, ptr noundef @.str.4)
  %12129 = call ptr @__errno_location() #12
  %12130 = load i32, ptr %12129, align 4, !tbaa !5
  %12131 = call ptr @strerror(i32 noundef %12130) #11
  %12132 = call ptr @__errno_location() #12
  %12133 = load i32, ptr %12132, align 4, !tbaa !5
  %12134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12121, ptr noundef @.str.5, i32 noundef %12122, ptr noundef @.str.128, ptr noundef @.str.1, i32 noundef 615, ptr noundef %12125, ptr noundef %12128, ptr noundef %12131, i32 noundef %12133) #11
  br label %12135

12135:                                            ; preds = %12118, %12101
  call void @llvm.lifetime.end.p0(i64 4, ptr %281) #11
  br label %12136

12136:                                            ; preds = %12135
  br label %12137

12137:                                            ; preds = %12136
  call void @exit(i32 noundef 1) #13
  unreachable

12138:                                            ; No predecessors!
  br label %12139

12139:                                            ; preds = %12138
  br label %12140

12140:                                            ; preds = %12139, %12076
  br label %12141

12141:                                            ; preds = %12140
  br label %12142

12142:                                            ; preds = %12141
  br label %12143

12143:                                            ; preds = %12142
  %12144 = load i32, ptr @test_count, align 4, !tbaa !5
  %12145 = add nsw i32 %12144, 1
  store i32 %12145, ptr @test_count, align 4, !tbaa !5
  %12146 = load ptr, ptr %275, align 8, !tbaa !9
  %12147 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %12146, i32 0, i32 1
  %12148 = getelementptr inbounds %struct.s2n_kem_params, ptr %12147, i32 0, i32 1
  %12149 = getelementptr inbounds %struct.s2n_blob, ptr %12148, i32 0, i32 0
  %12150 = load ptr, ptr %12149, align 8, !tbaa !99
  %12151 = icmp eq ptr %12150, null
  br i1 %12151, label %12152, label %12205

12152:                                            ; preds = %12143
  br label %12153

12153:                                            ; preds = %12152
  br label %12154

12154:                                            ; preds = %12153
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #11
  %12155 = call ptr @__errno_location() #12
  %12156 = load i32, ptr %12155, align 4, !tbaa !5
  store i32 %12156, ptr %282, align 4, !tbaa !5
  %12157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12158 = call i32 @s2n_print_stacktrace(ptr noundef %12157)
  %12159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12160 = trunc i8 %12159 to i1
  br i1 %12160, label %12161, label %12183

12161:                                            ; preds = %12154
  %12162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12163 = call i32 @fileno(ptr noundef %12162) #11
  %12164 = call i32 @isatty(i32 noundef %12163) #11
  %12165 = icmp ne i32 %12164, 0
  br i1 %12165, label %12166, label %12183

12166:                                            ; preds = %12161
  %12167 = load i32, ptr %282, align 4, !tbaa !5
  %12168 = call ptr @__errno_location() #12
  store i32 %12167, ptr %12168, align 4, !tbaa !5
  %12169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12170 = load i32, ptr @test_count, align 4, !tbaa !5
  %12171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12172 = load i32, ptr %12171, align 4, !tbaa !5
  %12173 = call ptr @s2n_strerror(i32 noundef %12172, ptr noundef @.str.4)
  %12174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12175 = load i32, ptr %12174, align 4, !tbaa !5
  %12176 = call ptr @s2n_strerror_debug(i32 noundef %12175, ptr noundef @.str.4)
  %12177 = call ptr @__errno_location() #12
  %12178 = load i32, ptr %12177, align 4, !tbaa !5
  %12179 = call ptr @strerror(i32 noundef %12178) #11
  %12180 = call ptr @__errno_location() #12
  %12181 = load i32, ptr %12180, align 4, !tbaa !5
  %12182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12169, ptr noundef @.str.2, i32 noundef %12170, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 616, ptr noundef %12173, ptr noundef %12176, ptr noundef %12179, i32 noundef %12181) #11
  br label %12200

12183:                                            ; preds = %12161, %12154
  %12184 = load i32, ptr %282, align 4, !tbaa !5
  %12185 = call ptr @__errno_location() #12
  store i32 %12184, ptr %12185, align 4, !tbaa !5
  %12186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12187 = load i32, ptr @test_count, align 4, !tbaa !5
  %12188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12189 = load i32, ptr %12188, align 4, !tbaa !5
  %12190 = call ptr @s2n_strerror(i32 noundef %12189, ptr noundef @.str.4)
  %12191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12192 = load i32, ptr %12191, align 4, !tbaa !5
  %12193 = call ptr @s2n_strerror_debug(i32 noundef %12192, ptr noundef @.str.4)
  %12194 = call ptr @__errno_location() #12
  %12195 = load i32, ptr %12194, align 4, !tbaa !5
  %12196 = call ptr @strerror(i32 noundef %12195) #11
  %12197 = call ptr @__errno_location() #12
  %12198 = load i32, ptr %12197, align 4, !tbaa !5
  %12199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12186, ptr noundef @.str.5, i32 noundef %12187, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 616, ptr noundef %12190, ptr noundef %12193, ptr noundef %12196, i32 noundef %12198) #11
  br label %12200

12200:                                            ; preds = %12183, %12166
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #11
  br label %12201

12201:                                            ; preds = %12200
  br label %12202

12202:                                            ; preds = %12201
  call void @exit(i32 noundef 1) #13
  unreachable

12203:                                            ; No predecessors!
  br label %12204

12204:                                            ; preds = %12203
  br label %12205

12205:                                            ; preds = %12204, %12143
  br label %12206

12206:                                            ; preds = %12205
  br label %12207

12207:                                            ; preds = %12206
  br label %12208

12208:                                            ; preds = %12207
  %12209 = load i32, ptr @test_count, align 4, !tbaa !5
  %12210 = add nsw i32 %12209, 1
  store i32 %12210, ptr @test_count, align 4, !tbaa !5
  %12211 = load ptr, ptr %275, align 8, !tbaa !9
  %12212 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %12211, i32 0, i32 1
  %12213 = getelementptr inbounds %struct.s2n_kem_params, ptr %12212, i32 0, i32 1
  %12214 = getelementptr inbounds %struct.s2n_blob, ptr %12213, i32 0, i32 1
  %12215 = load i32, ptr %12214, align 8, !tbaa !100
  %12216 = load ptr, ptr %279, align 8, !tbaa !9
  %12217 = getelementptr inbounds %struct.s2n_kem_group, ptr %12216, i32 0, i32 3
  %12218 = load ptr, ptr %12217, align 8, !tbaa !70
  %12219 = getelementptr inbounds %struct.s2n_kem, ptr %12218, i32 0, i32 3
  %12220 = load i16, ptr %12219, align 2, !tbaa !82
  %12221 = zext i16 %12220 to i32
  %12222 = icmp eq i32 %12215, %12221
  br i1 %12222, label %12276, label %12223

12223:                                            ; preds = %12208
  br label %12224

12224:                                            ; preds = %12223
  br label %12225

12225:                                            ; preds = %12224
  call void @llvm.lifetime.start.p0(i64 4, ptr %283) #11
  %12226 = call ptr @__errno_location() #12
  %12227 = load i32, ptr %12226, align 4, !tbaa !5
  store i32 %12227, ptr %283, align 4, !tbaa !5
  %12228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12229 = call i32 @s2n_print_stacktrace(ptr noundef %12228)
  %12230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12231 = trunc i8 %12230 to i1
  br i1 %12231, label %12232, label %12254

12232:                                            ; preds = %12225
  %12233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12234 = call i32 @fileno(ptr noundef %12233) #11
  %12235 = call i32 @isatty(i32 noundef %12234) #11
  %12236 = icmp ne i32 %12235, 0
  br i1 %12236, label %12237, label %12254

12237:                                            ; preds = %12232
  %12238 = load i32, ptr %283, align 4, !tbaa !5
  %12239 = call ptr @__errno_location() #12
  store i32 %12238, ptr %12239, align 4, !tbaa !5
  %12240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12241 = load i32, ptr @test_count, align 4, !tbaa !5
  %12242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12243 = load i32, ptr %12242, align 4, !tbaa !5
  %12244 = call ptr @s2n_strerror(i32 noundef %12243, ptr noundef @.str.4)
  %12245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12246 = load i32, ptr %12245, align 4, !tbaa !5
  %12247 = call ptr @s2n_strerror_debug(i32 noundef %12246, ptr noundef @.str.4)
  %12248 = call ptr @__errno_location() #12
  %12249 = load i32, ptr %12248, align 4, !tbaa !5
  %12250 = call ptr @strerror(i32 noundef %12249) #11
  %12251 = call ptr @__errno_location() #12
  %12252 = load i32, ptr %12251, align 4, !tbaa !5
  %12253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12240, ptr noundef @.str.2, i32 noundef %12241, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 617, ptr noundef %12244, ptr noundef %12247, ptr noundef %12250, i32 noundef %12252) #11
  br label %12271

12254:                                            ; preds = %12232, %12225
  %12255 = load i32, ptr %283, align 4, !tbaa !5
  %12256 = call ptr @__errno_location() #12
  store i32 %12255, ptr %12256, align 4, !tbaa !5
  %12257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12258 = load i32, ptr @test_count, align 4, !tbaa !5
  %12259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12260 = load i32, ptr %12259, align 4, !tbaa !5
  %12261 = call ptr @s2n_strerror(i32 noundef %12260, ptr noundef @.str.4)
  %12262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12263 = load i32, ptr %12262, align 4, !tbaa !5
  %12264 = call ptr @s2n_strerror_debug(i32 noundef %12263, ptr noundef @.str.4)
  %12265 = call ptr @__errno_location() #12
  %12266 = load i32, ptr %12265, align 4, !tbaa !5
  %12267 = call ptr @strerror(i32 noundef %12266) #11
  %12268 = call ptr @__errno_location() #12
  %12269 = load i32, ptr %12268, align 4, !tbaa !5
  %12270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12257, ptr noundef @.str.5, i32 noundef %12258, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 617, ptr noundef %12261, ptr noundef %12264, ptr noundef %12267, i32 noundef %12269) #11
  br label %12271

12271:                                            ; preds = %12254, %12237
  call void @llvm.lifetime.end.p0(i64 4, ptr %283) #11
  br label %12272

12272:                                            ; preds = %12271
  br label %12273

12273:                                            ; preds = %12272
  call void @exit(i32 noundef 1) #13
  unreachable

12274:                                            ; No predecessors!
  br label %12275

12275:                                            ; preds = %12274
  br label %12276

12276:                                            ; preds = %12275, %12208
  br label %12277

12277:                                            ; preds = %12276
  br label %12278

12278:                                            ; preds = %12277
  br label %12279

12279:                                            ; preds = %12278
  %12280 = load ptr, ptr %274, align 8, !tbaa !9
  %12281 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %12280, i32 0, i32 0
  %12282 = load ptr, ptr %12281, align 8, !tbaa !68
  %12283 = getelementptr inbounds %struct.s2n_kem_group, ptr %12282, i32 0, i32 3
  %12284 = load ptr, ptr %12283, align 8, !tbaa !70
  %12285 = getelementptr inbounds %struct.s2n_kem, ptr %12284, i32 0, i32 3
  %12286 = load i16, ptr %12285, align 2, !tbaa !82
  %12287 = zext i16 %12286 to i32
  %12288 = icmp ne i32 %12287, 0
  br i1 %12288, label %12289, label %12366

12289:                                            ; preds = %12279
  br label %12290

12290:                                            ; preds = %12289
  %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 %275, align 8, !tbaa !9
  %12294 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %12293, i32 0, i32 1
  %12295 = getelementptr inbounds %struct.s2n_kem_params, ptr %12294, i32 0, i32 1
  %12296 = getelementptr inbounds %struct.s2n_blob, ptr %12295, i32 0, i32 0
  %12297 = load ptr, ptr %12296, align 8, !tbaa !99
  %12298 = getelementptr inbounds %struct.s2n_blob, ptr %259, i32 0, i32 0
  %12299 = load ptr, ptr %12298, align 8, !tbaa !103
  %12300 = load ptr, ptr %274, align 8, !tbaa !9
  %12301 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %12300, i32 0, i32 0
  %12302 = load ptr, ptr %12301, align 8, !tbaa !68
  %12303 = getelementptr inbounds %struct.s2n_kem_group, ptr %12302, i32 0, i32 3
  %12304 = load ptr, ptr %12303, align 8, !tbaa !70
  %12305 = getelementptr inbounds %struct.s2n_kem, ptr %12304, i32 0, i32 3
  %12306 = load i16, ptr %12305, align 2, !tbaa !82
  %12307 = zext i16 %12306 to i64
  %12308 = call i32 @memcmp(ptr noundef %12297, ptr noundef %12299, i64 noundef %12307) #14
  %12309 = icmp eq i32 %12308, 0
  br i1 %12309, label %12363, label %12310

12310:                                            ; preds = %12290
  br label %12311

12311:                                            ; preds = %12310
  br label %12312

12312:                                            ; preds = %12311
  call void @llvm.lifetime.start.p0(i64 4, ptr %284) #11
  %12313 = call ptr @__errno_location() #12
  %12314 = load i32, ptr %12313, align 4, !tbaa !5
  store i32 %12314, ptr %284, align 4, !tbaa !5
  %12315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12316 = call i32 @s2n_print_stacktrace(ptr noundef %12315)
  %12317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12318 = trunc i8 %12317 to i1
  br i1 %12318, label %12319, label %12341

12319:                                            ; preds = %12312
  %12320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12321 = call i32 @fileno(ptr noundef %12320) #11
  %12322 = call i32 @isatty(i32 noundef %12321) #11
  %12323 = icmp ne i32 %12322, 0
  br i1 %12323, label %12324, label %12341

12324:                                            ; preds = %12319
  %12325 = load i32, ptr %284, align 4, !tbaa !5
  %12326 = call ptr @__errno_location() #12
  store i32 %12325, ptr %12326, align 4, !tbaa !5
  %12327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12328 = load i32, ptr @test_count, align 4, !tbaa !5
  %12329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12330 = load i32, ptr %12329, align 4, !tbaa !5
  %12331 = call ptr @s2n_strerror(i32 noundef %12330, ptr noundef @.str.4)
  %12332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12333 = load i32, ptr %12332, align 4, !tbaa !5
  %12334 = call ptr @s2n_strerror_debug(i32 noundef %12333, ptr noundef @.str.4)
  %12335 = call ptr @__errno_location() #12
  %12336 = load i32, ptr %12335, align 4, !tbaa !5
  %12337 = call ptr @strerror(i32 noundef %12336) #11
  %12338 = call ptr @__errno_location() #12
  %12339 = load i32, ptr %12338, align 4, !tbaa !5
  %12340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12327, ptr noundef @.str.2, i32 noundef %12328, ptr noundef @.str.131, ptr noundef @.str.1, i32 noundef 619, ptr noundef %12331, ptr noundef %12334, ptr noundef %12337, i32 noundef %12339) #11
  br label %12358

12341:                                            ; preds = %12319, %12312
  %12342 = load i32, ptr %284, align 4, !tbaa !5
  %12343 = call ptr @__errno_location() #12
  store i32 %12342, ptr %12343, align 4, !tbaa !5
  %12344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12345 = load i32, ptr @test_count, align 4, !tbaa !5
  %12346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12347 = load i32, ptr %12346, align 4, !tbaa !5
  %12348 = call ptr @s2n_strerror(i32 noundef %12347, ptr noundef @.str.4)
  %12349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12350 = load i32, ptr %12349, align 4, !tbaa !5
  %12351 = call ptr @s2n_strerror_debug(i32 noundef %12350, ptr noundef @.str.4)
  %12352 = call ptr @__errno_location() #12
  %12353 = load i32, ptr %12352, align 4, !tbaa !5
  %12354 = call ptr @strerror(i32 noundef %12353) #11
  %12355 = call ptr @__errno_location() #12
  %12356 = load i32, ptr %12355, align 4, !tbaa !5
  %12357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12344, ptr noundef @.str.5, i32 noundef %12345, ptr noundef @.str.131, ptr noundef @.str.1, i32 noundef 619, ptr noundef %12348, ptr noundef %12351, ptr noundef %12354, i32 noundef %12356) #11
  br label %12358

12358:                                            ; preds = %12341, %12324
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #11
  br label %12359

12359:                                            ; preds = %12358
  br label %12360

12360:                                            ; preds = %12359
  call void @exit(i32 noundef 1) #13
  unreachable

12361:                                            ; No predecessors!
  br label %12362

12362:                                            ; preds = %12361
  br label %12363

12363:                                            ; preds = %12362, %12290
  br label %12364

12364:                                            ; preds = %12363
  br label %12365

12365:                                            ; preds = %12364
  br label %12366

12366:                                            ; preds = %12365, %12279
  br label %12367

12367:                                            ; preds = %12366
  br label %12368

12368:                                            ; preds = %12367
  br label %12369

12369:                                            ; preds = %12368
  %12370 = load i32, ptr @test_count, align 4, !tbaa !5
  %12371 = add nsw i32 %12370, 1
  store i32 %12371, ptr @test_count, align 4, !tbaa !5
  %12372 = load ptr, ptr %251, align 8, !tbaa !9
  %12373 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef %12372)
  br i1 %12373, label %12374, label %12427

12374:                                            ; preds = %12369
  br label %12375

12375:                                            ; preds = %12374
  br label %12376

12376:                                            ; preds = %12375
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #11
  %12377 = call ptr @__errno_location() #12
  %12378 = load i32, ptr %12377, align 4, !tbaa !5
  store i32 %12378, ptr %285, align 4, !tbaa !5
  %12379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12380 = call i32 @s2n_print_stacktrace(ptr noundef %12379)
  %12381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12382 = trunc i8 %12381 to i1
  br i1 %12382, label %12383, label %12405

12383:                                            ; preds = %12376
  %12384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12385 = call i32 @fileno(ptr noundef %12384) #11
  %12386 = call i32 @isatty(i32 noundef %12385) #11
  %12387 = icmp ne i32 %12386, 0
  br i1 %12387, label %12388, label %12405

12388:                                            ; preds = %12383
  %12389 = load i32, ptr %285, align 4, !tbaa !5
  %12390 = call ptr @__errno_location() #12
  store i32 %12389, ptr %12390, align 4, !tbaa !5
  %12391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12392 = load i32, ptr @test_count, align 4, !tbaa !5
  %12393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12394 = load i32, ptr %12393, align 4, !tbaa !5
  %12395 = call ptr @s2n_strerror(i32 noundef %12394, ptr noundef @.str.4)
  %12396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12397 = load i32, ptr %12396, align 4, !tbaa !5
  %12398 = call ptr @s2n_strerror_debug(i32 noundef %12397, ptr noundef @.str.4)
  %12399 = call ptr @__errno_location() #12
  %12400 = load i32, ptr %12399, align 4, !tbaa !5
  %12401 = call ptr @strerror(i32 noundef %12400) #11
  %12402 = call ptr @__errno_location() #12
  %12403 = load i32, ptr %12402, align 4, !tbaa !5
  %12404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12391, ptr noundef @.str.2, i32 noundef %12392, ptr noundef @.str.132, ptr noundef @.str.1, i32 noundef 622, ptr noundef %12395, ptr noundef %12398, ptr noundef %12401, i32 noundef %12403) #11
  br label %12422

12405:                                            ; preds = %12383, %12376
  %12406 = load i32, ptr %285, align 4, !tbaa !5
  %12407 = call ptr @__errno_location() #12
  store i32 %12406, ptr %12407, align 4, !tbaa !5
  %12408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12409 = load i32, ptr @test_count, align 4, !tbaa !5
  %12410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12411 = load i32, ptr %12410, align 4, !tbaa !5
  %12412 = call ptr @s2n_strerror(i32 noundef %12411, ptr noundef @.str.4)
  %12413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12414 = load i32, ptr %12413, align 4, !tbaa !5
  %12415 = call ptr @s2n_strerror_debug(i32 noundef %12414, ptr noundef @.str.4)
  %12416 = call ptr @__errno_location() #12
  %12417 = load i32, ptr %12416, align 4, !tbaa !5
  %12418 = call ptr @strerror(i32 noundef %12417) #11
  %12419 = call ptr @__errno_location() #12
  %12420 = load i32, ptr %12419, align 4, !tbaa !5
  %12421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12408, ptr noundef @.str.5, i32 noundef %12409, ptr noundef @.str.132, ptr noundef @.str.1, i32 noundef 622, ptr noundef %12412, ptr noundef %12415, ptr noundef %12418, i32 noundef %12420) #11
  br label %12422

12422:                                            ; preds = %12405, %12388
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #11
  br label %12423

12423:                                            ; preds = %12422
  br label %12424

12424:                                            ; preds = %12423
  call void @exit(i32 noundef 1) #13
  unreachable

12425:                                            ; No predecessors!
  br label %12426

12426:                                            ; preds = %12425
  br label %12427

12427:                                            ; preds = %12426, %12369
  br label %12428

12428:                                            ; preds = %12427
  br label %12429

12429:                                            ; preds = %12428
  br label %12430

12430:                                            ; preds = %12429
  %12431 = load i32, ptr @test_count, align 4, !tbaa !5
  %12432 = add nsw i32 %12431, 1
  store i32 %12432, ptr @test_count, align 4, !tbaa !5
  %12433 = load ptr, ptr %250, align 8, !tbaa !9
  %12434 = call i32 @s2n_connection_free(ptr noundef %12433)
  %12435 = icmp eq i32 %12434, -1
  br i1 %12435, label %12436, label %12489

12436:                                            ; preds = %12430
  br label %12437

12437:                                            ; preds = %12436
  br label %12438

12438:                                            ; preds = %12437
  call void @llvm.lifetime.start.p0(i64 4, ptr %286) #11
  %12439 = call ptr @__errno_location() #12
  %12440 = load i32, ptr %12439, align 4, !tbaa !5
  store i32 %12440, ptr %286, align 4, !tbaa !5
  %12441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12442 = call i32 @s2n_print_stacktrace(ptr noundef %12441)
  %12443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12444 = trunc i8 %12443 to i1
  br i1 %12444, label %12445, label %12467

12445:                                            ; preds = %12438
  %12446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12447 = call i32 @fileno(ptr noundef %12446) #11
  %12448 = call i32 @isatty(i32 noundef %12447) #11
  %12449 = icmp ne i32 %12448, 0
  br i1 %12449, label %12450, label %12467

12450:                                            ; preds = %12445
  %12451 = load i32, ptr %286, align 4, !tbaa !5
  %12452 = call ptr @__errno_location() #12
  store i32 %12451, ptr %12452, align 4, !tbaa !5
  %12453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12454 = load i32, ptr @test_count, align 4, !tbaa !5
  %12455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12456 = load i32, ptr %12455, align 4, !tbaa !5
  %12457 = call ptr @s2n_strerror(i32 noundef %12456, ptr noundef @.str.4)
  %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_debug(i32 noundef %12459, ptr noundef @.str.4)
  %12461 = call ptr @__errno_location() #12
  %12462 = load i32, ptr %12461, align 4, !tbaa !5
  %12463 = call ptr @strerror(i32 noundef %12462) #11
  %12464 = call ptr @__errno_location() #12
  %12465 = load i32, ptr %12464, align 4, !tbaa !5
  %12466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12453, ptr noundef @.str.2, i32 noundef %12454, ptr noundef @.str.133, ptr noundef @.str.1, i32 noundef 624, ptr noundef %12457, ptr noundef %12460, ptr noundef %12463, i32 noundef %12465) #11
  br label %12484

12467:                                            ; preds = %12445, %12438
  %12468 = load i32, ptr %286, align 4, !tbaa !5
  %12469 = call ptr @__errno_location() #12
  store i32 %12468, ptr %12469, align 4, !tbaa !5
  %12470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12471 = load i32, ptr @test_count, align 4, !tbaa !5
  %12472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12473 = load i32, ptr %12472, align 4, !tbaa !5
  %12474 = call ptr @s2n_strerror(i32 noundef %12473, ptr noundef @.str.4)
  %12475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12476 = load i32, ptr %12475, align 4, !tbaa !5
  %12477 = call ptr @s2n_strerror_debug(i32 noundef %12476, ptr noundef @.str.4)
  %12478 = call ptr @__errno_location() #12
  %12479 = load i32, ptr %12478, align 4, !tbaa !5
  %12480 = call ptr @strerror(i32 noundef %12479) #11
  %12481 = call ptr @__errno_location() #12
  %12482 = load i32, ptr %12481, align 4, !tbaa !5
  %12483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12470, ptr noundef @.str.5, i32 noundef %12471, ptr noundef @.str.133, ptr noundef @.str.1, i32 noundef 624, ptr noundef %12474, ptr noundef %12477, ptr noundef %12480, i32 noundef %12482) #11
  br label %12484

12484:                                            ; preds = %12467, %12450
  call void @llvm.lifetime.end.p0(i64 4, ptr %286) #11
  br label %12485

12485:                                            ; preds = %12484
  br label %12486

12486:                                            ; preds = %12485
  call void @exit(i32 noundef 1) #13
  unreachable

12487:                                            ; No predecessors!
  br label %12488

12488:                                            ; preds = %12487
  br label %12489

12489:                                            ; preds = %12488, %12430
  br label %12490

12490:                                            ; preds = %12489
  br label %12491

12491:                                            ; preds = %12490
  br label %12492

12492:                                            ; preds = %12491
  %12493 = load i32, ptr @test_count, align 4, !tbaa !5
  %12494 = add nsw i32 %12493, 1
  store i32 %12494, ptr @test_count, align 4, !tbaa !5
  %12495 = load ptr, ptr %251, align 8, !tbaa !9
  %12496 = call i32 @s2n_connection_free(ptr noundef %12495)
  %12497 = icmp eq i32 %12496, -1
  br i1 %12497, label %12498, label %12551

12498:                                            ; preds = %12492
  br label %12499

12499:                                            ; preds = %12498
  br label %12500

12500:                                            ; preds = %12499
  call void @llvm.lifetime.start.p0(i64 4, ptr %287) #11
  %12501 = call ptr @__errno_location() #12
  %12502 = load i32, ptr %12501, align 4, !tbaa !5
  store i32 %12502, ptr %287, align 4, !tbaa !5
  %12503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12504 = call i32 @s2n_print_stacktrace(ptr noundef %12503)
  %12505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12506 = trunc i8 %12505 to i1
  br i1 %12506, label %12507, label %12529

12507:                                            ; preds = %12500
  %12508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12509 = call i32 @fileno(ptr noundef %12508) #11
  %12510 = call i32 @isatty(i32 noundef %12509) #11
  %12511 = icmp ne i32 %12510, 0
  br i1 %12511, label %12512, label %12529

12512:                                            ; preds = %12507
  %12513 = load i32, ptr %287, align 4, !tbaa !5
  %12514 = call ptr @__errno_location() #12
  store i32 %12513, ptr %12514, align 4, !tbaa !5
  %12515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12516 = load i32, ptr @test_count, align 4, !tbaa !5
  %12517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12518 = load i32, ptr %12517, align 4, !tbaa !5
  %12519 = call ptr @s2n_strerror(i32 noundef %12518, ptr noundef @.str.4)
  %12520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12521 = load i32, ptr %12520, align 4, !tbaa !5
  %12522 = call ptr @s2n_strerror_debug(i32 noundef %12521, ptr noundef @.str.4)
  %12523 = call ptr @__errno_location() #12
  %12524 = load i32, ptr %12523, align 4, !tbaa !5
  %12525 = call ptr @strerror(i32 noundef %12524) #11
  %12526 = call ptr @__errno_location() #12
  %12527 = load i32, ptr %12526, align 4, !tbaa !5
  %12528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12515, ptr noundef @.str.2, i32 noundef %12516, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 625, ptr noundef %12519, ptr noundef %12522, ptr noundef %12525, i32 noundef %12527) #11
  br label %12546

12529:                                            ; preds = %12507, %12500
  %12530 = load i32, ptr %287, align 4, !tbaa !5
  %12531 = call ptr @__errno_location() #12
  store i32 %12530, ptr %12531, align 4, !tbaa !5
  %12532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12533 = load i32, ptr @test_count, align 4, !tbaa !5
  %12534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12535 = load i32, ptr %12534, align 4, !tbaa !5
  %12536 = call ptr @s2n_strerror(i32 noundef %12535, ptr noundef @.str.4)
  %12537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12538 = load i32, ptr %12537, align 4, !tbaa !5
  %12539 = call ptr @s2n_strerror_debug(i32 noundef %12538, ptr noundef @.str.4)
  %12540 = call ptr @__errno_location() #12
  %12541 = load i32, ptr %12540, align 4, !tbaa !5
  %12542 = call ptr @strerror(i32 noundef %12541) #11
  %12543 = call ptr @__errno_location() #12
  %12544 = load i32, ptr %12543, align 4, !tbaa !5
  %12545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12532, ptr noundef @.str.5, i32 noundef %12533, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 625, ptr noundef %12536, ptr noundef %12539, ptr noundef %12542, i32 noundef %12544) #11
  br label %12546

12546:                                            ; preds = %12529, %12512
  call void @llvm.lifetime.end.p0(i64 4, ptr %287) #11
  br label %12547

12547:                                            ; preds = %12546
  br label %12548

12548:                                            ; preds = %12547
  call void @exit(i32 noundef 1) #13
  unreachable

12549:                                            ; No predecessors!
  br label %12550

12550:                                            ; preds = %12549
  br label %12551

12551:                                            ; preds = %12550, %12492
  br label %12552

12552:                                            ; preds = %12551
  br label %12553

12553:                                            ; preds = %12552
  call void @llvm.lifetime.end.p0(i64 8, ptr %279) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %275) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %274) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %271) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %267) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %266) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %263) #11
  %12554 = call i32 @s2n_free(ptr noundef %259)
  call void @llvm.lifetime.end.p0(i64 24, ptr %259) #11
  %12555 = call i32 @s2n_stuffer_free(ptr noundef %256)
  call void @llvm.lifetime.end.p0(i64 40, ptr %256) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %251) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %249) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %248) #11
  store i32 0, ptr %6, align 4
  br label %12556

12556:                                            ; preds = %12553, %10838
  call void @llvm.lifetime.end.p0(i64 64, ptr %246) #11
  %12557 = load i32, ptr %6, align 4
  switch i32 %12557, label %20610 [
    i32 0, label %12558
    i32 966, label %12559
  ]

12558:                                            ; preds = %12556
  br label %12559

12559:                                            ; preds = %12558, %12556
  %12560 = load i64, ptr %245, align 8, !tbaa !65
  %12561 = add i64 %12560, 1
  store i64 %12561, ptr %245, align 8, !tbaa !65
  br label %10813, !llvm.loop !104

12562:                                            ; preds = %10816
  br label %12563

12563:                                            ; preds = %12562
  %12564 = load i32, ptr @test_count, align 4, !tbaa !5
  %12565 = add nsw i32 %12564, 1
  store i32 %12565, ptr @test_count, align 4, !tbaa !5
  %12566 = getelementptr inbounds %struct.s2n_security_policy, ptr %9, i32 0, i32 2
  %12567 = load ptr, ptr %12566, align 8, !tbaa !22
  %12568 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %12567, ptr noundef %10)
  %12569 = getelementptr inbounds %struct.s2n_result, ptr %288, i32 0, i32 0
  store i32 %12568, ptr %12569, align 4
  %12570 = getelementptr inbounds %struct.s2n_result, ptr %288, i32 0, i32 0
  %12571 = load i32, ptr %12570, align 4
  %12572 = call zeroext i1 @s2n_result_is_ok(i32 %12571)
  br i1 %12572, label %12626, label %12573

12573:                                            ; preds = %12563
  br label %12574

12574:                                            ; preds = %12573
  br label %12575

12575:                                            ; preds = %12574
  call void @llvm.lifetime.start.p0(i64 4, ptr %289) #11
  %12576 = call ptr @__errno_location() #12
  %12577 = load i32, ptr %12576, align 4, !tbaa !5
  store i32 %12577, ptr %289, align 4, !tbaa !5
  %12578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12579 = call i32 @s2n_print_stacktrace(ptr noundef %12578)
  %12580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12581 = trunc i8 %12580 to i1
  br i1 %12581, label %12582, label %12604

12582:                                            ; preds = %12575
  %12583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12584 = call i32 @fileno(ptr noundef %12583) #11
  %12585 = call i32 @isatty(i32 noundef %12584) #11
  %12586 = icmp ne i32 %12585, 0
  br i1 %12586, label %12587, label %12604

12587:                                            ; preds = %12582
  %12588 = load i32, ptr %289, align 4, !tbaa !5
  %12589 = call ptr @__errno_location() #12
  store i32 %12588, ptr %12589, align 4, !tbaa !5
  %12590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12591 = load i32, ptr @test_count, align 4, !tbaa !5
  %12592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12593 = load i32, ptr %12592, align 4, !tbaa !5
  %12594 = call ptr @s2n_strerror(i32 noundef %12593, ptr noundef @.str.4)
  %12595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12596 = load i32, ptr %12595, align 4, !tbaa !5
  %12597 = call ptr @s2n_strerror_debug(i32 noundef %12596, ptr noundef @.str.4)
  %12598 = call ptr @__errno_location() #12
  %12599 = load i32, ptr %12598, align 4, !tbaa !5
  %12600 = call ptr @strerror(i32 noundef %12599) #11
  %12601 = call ptr @__errno_location() #12
  %12602 = load i32, ptr %12601, align 4, !tbaa !5
  %12603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12590, ptr noundef @.str.2, i32 noundef %12591, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 632, ptr noundef %12594, ptr noundef %12597, ptr noundef %12600, i32 noundef %12602) #11
  br label %12621

12604:                                            ; preds = %12582, %12575
  %12605 = load i32, ptr %289, align 4, !tbaa !5
  %12606 = call ptr @__errno_location() #12
  store i32 %12605, ptr %12606, align 4, !tbaa !5
  %12607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12608 = load i32, ptr @test_count, align 4, !tbaa !5
  %12609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12610 = load i32, ptr %12609, align 4, !tbaa !5
  %12611 = call ptr @s2n_strerror(i32 noundef %12610, ptr noundef @.str.4)
  %12612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12613 = load i32, ptr %12612, align 4, !tbaa !5
  %12614 = call ptr @s2n_strerror_debug(i32 noundef %12613, ptr noundef @.str.4)
  %12615 = call ptr @__errno_location() #12
  %12616 = load i32, ptr %12615, align 4, !tbaa !5
  %12617 = call ptr @strerror(i32 noundef %12616) #11
  %12618 = call ptr @__errno_location() #12
  %12619 = load i32, ptr %12618, align 4, !tbaa !5
  %12620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12607, ptr noundef @.str.5, i32 noundef %12608, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 632, ptr noundef %12611, ptr noundef %12614, ptr noundef %12617, i32 noundef %12619) #11
  br label %12621

12621:                                            ; preds = %12604, %12587
  call void @llvm.lifetime.end.p0(i64 4, ptr %289) #11
  br label %12622

12622:                                            ; preds = %12621
  br label %12623

12623:                                            ; preds = %12622
  call void @exit(i32 noundef 1) #13
  unreachable

12624:                                            ; No predecessors!
  br label %12625

12625:                                            ; preds = %12624
  br label %12626

12626:                                            ; preds = %12625, %12563
  br label %12627

12627:                                            ; preds = %12626
  br label %12628

12628:                                            ; preds = %12627
  %12629 = load i32, ptr %10, align 4, !tbaa !5
  %12630 = icmp uge i32 %12629, 2
  br i1 %12630, label %12631, label %14108

12631:                                            ; preds = %12628
  call void @llvm.lifetime.start.p0(i64 8, ptr %290) #11
  %12632 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %12632, ptr %290, align 8, !tbaa !9
  br label %12633

12633:                                            ; preds = %12631
  %12634 = load i32, ptr @test_count, align 4, !tbaa !5
  %12635 = add nsw i32 %12634, 1
  store i32 %12635, ptr @test_count, align 4, !tbaa !5
  %12636 = load ptr, ptr %290, align 8, !tbaa !9
  %12637 = icmp eq ptr %12636, null
  br i1 %12637, label %12638, label %12691

12638:                                            ; preds = %12633
  br label %12639

12639:                                            ; preds = %12638
  br label %12640

12640:                                            ; preds = %12639
  call void @llvm.lifetime.start.p0(i64 4, ptr %291) #11
  %12641 = call ptr @__errno_location() #12
  %12642 = load i32, ptr %12641, align 4, !tbaa !5
  store i32 %12642, ptr %291, align 4, !tbaa !5
  %12643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12644 = call i32 @s2n_print_stacktrace(ptr noundef %12643)
  %12645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12646 = trunc i8 %12645 to i1
  br i1 %12646, label %12647, label %12669

12647:                                            ; preds = %12640
  %12648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12649 = call i32 @fileno(ptr noundef %12648) #11
  %12650 = call i32 @isatty(i32 noundef %12649) #11
  %12651 = icmp ne i32 %12650, 0
  br i1 %12651, label %12652, label %12669

12652:                                            ; preds = %12647
  %12653 = load i32, ptr %291, align 4, !tbaa !5
  %12654 = call ptr @__errno_location() #12
  store i32 %12653, ptr %12654, align 4, !tbaa !5
  %12655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12656 = load i32, ptr @test_count, align 4, !tbaa !5
  %12657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12658 = load i32, ptr %12657, align 4, !tbaa !5
  %12659 = call ptr @s2n_strerror(i32 noundef %12658, ptr noundef @.str.4)
  %12660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12661 = load i32, ptr %12660, align 4, !tbaa !5
  %12662 = call ptr @s2n_strerror_debug(i32 noundef %12661, ptr noundef @.str.4)
  %12663 = call ptr @__errno_location() #12
  %12664 = load i32, ptr %12663, align 4, !tbaa !5
  %12665 = call ptr @strerror(i32 noundef %12664) #11
  %12666 = call ptr @__errno_location() #12
  %12667 = load i32, ptr %12666, align 4, !tbaa !5
  %12668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12655, ptr noundef @.str.2, i32 noundef %12656, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 635, ptr noundef %12659, ptr noundef %12662, ptr noundef %12665, i32 noundef %12667) #11
  br label %12686

12669:                                            ; preds = %12647, %12640
  %12670 = load i32, ptr %291, align 4, !tbaa !5
  %12671 = call ptr @__errno_location() #12
  store i32 %12670, ptr %12671, align 4, !tbaa !5
  %12672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12673 = load i32, ptr @test_count, align 4, !tbaa !5
  %12674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12675 = load i32, ptr %12674, align 4, !tbaa !5
  %12676 = call ptr @s2n_strerror(i32 noundef %12675, ptr noundef @.str.4)
  %12677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12678 = load i32, ptr %12677, align 4, !tbaa !5
  %12679 = call ptr @s2n_strerror_debug(i32 noundef %12678, ptr noundef @.str.4)
  %12680 = call ptr @__errno_location() #12
  %12681 = load i32, ptr %12680, align 4, !tbaa !5
  %12682 = call ptr @strerror(i32 noundef %12681) #11
  %12683 = call ptr @__errno_location() #12
  %12684 = load i32, ptr %12683, align 4, !tbaa !5
  %12685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12672, ptr noundef @.str.5, i32 noundef %12673, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 635, ptr noundef %12676, ptr noundef %12679, ptr noundef %12682, i32 noundef %12684) #11
  br label %12686

12686:                                            ; preds = %12669, %12652
  call void @llvm.lifetime.end.p0(i64 4, ptr %291) #11
  br label %12687

12687:                                            ; preds = %12686
  br label %12688

12688:                                            ; preds = %12687
  call void @exit(i32 noundef 1) #13
  unreachable

12689:                                            ; No predecessors!
  br label %12690

12690:                                            ; preds = %12689
  br label %12691

12691:                                            ; preds = %12690, %12633
  br label %12692

12692:                                            ; preds = %12691
  br label %12693

12693:                                            ; preds = %12692
  %12694 = load ptr, ptr %290, align 8, !tbaa !9
  %12695 = getelementptr inbounds %struct.s2n_connection, ptr %12694, i32 0, i32 23
  store i8 34, ptr %12695, align 4, !tbaa !84
  %12696 = load ptr, ptr %290, align 8, !tbaa !9
  %12697 = getelementptr inbounds %struct.s2n_connection, ptr %12696, i32 0, i32 2
  store ptr %9, ptr %12697, align 8, !tbaa !28
  br label %12698

12698:                                            ; preds = %12693
  %12699 = load i32, ptr @test_count, align 4, !tbaa !5
  %12700 = add nsw i32 %12699, 1
  store i32 %12700, ptr @test_count, align 4, !tbaa !5
  %12701 = load ptr, ptr %290, align 8, !tbaa !9
  %12702 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %12701)
  %12703 = getelementptr inbounds %struct.s2n_result, ptr %292, i32 0, i32 0
  store i32 %12702, ptr %12703, align 4
  %12704 = getelementptr inbounds %struct.s2n_result, ptr %292, i32 0, i32 0
  %12705 = load i32, ptr %12704, align 4
  %12706 = call zeroext i1 @s2n_result_is_ok(i32 %12705)
  br i1 %12706, label %12760, label %12707

12707:                                            ; preds = %12698
  br label %12708

12708:                                            ; preds = %12707
  br label %12709

12709:                                            ; preds = %12708
  call void @llvm.lifetime.start.p0(i64 4, ptr %293) #11
  %12710 = call ptr @__errno_location() #12
  %12711 = load i32, ptr %12710, align 4, !tbaa !5
  store i32 %12711, ptr %293, align 4, !tbaa !5
  %12712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12713 = call i32 @s2n_print_stacktrace(ptr noundef %12712)
  %12714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12715 = trunc i8 %12714 to i1
  br i1 %12715, label %12716, label %12738

12716:                                            ; preds = %12709
  %12717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12718 = call i32 @fileno(ptr noundef %12717) #11
  %12719 = call i32 @isatty(i32 noundef %12718) #11
  %12720 = icmp ne i32 %12719, 0
  br i1 %12720, label %12721, label %12738

12721:                                            ; preds = %12716
  %12722 = load i32, ptr %293, align 4, !tbaa !5
  %12723 = call ptr @__errno_location() #12
  store i32 %12722, ptr %12723, align 4, !tbaa !5
  %12724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12725 = load i32, ptr @test_count, align 4, !tbaa !5
  %12726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12727 = load i32, ptr %12726, align 4, !tbaa !5
  %12728 = call ptr @s2n_strerror(i32 noundef %12727, ptr noundef @.str.4)
  %12729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12730 = load i32, ptr %12729, align 4, !tbaa !5
  %12731 = call ptr @s2n_strerror_debug(i32 noundef %12730, ptr noundef @.str.4)
  %12732 = call ptr @__errno_location() #12
  %12733 = load i32, ptr %12732, align 4, !tbaa !5
  %12734 = call ptr @strerror(i32 noundef %12733) #11
  %12735 = call ptr @__errno_location() #12
  %12736 = load i32, ptr %12735, align 4, !tbaa !5
  %12737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12724, ptr noundef @.str.2, i32 noundef %12725, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 638, ptr noundef %12728, ptr noundef %12731, ptr noundef %12734, i32 noundef %12736) #11
  br label %12755

12738:                                            ; preds = %12716, %12709
  %12739 = load i32, ptr %293, align 4, !tbaa !5
  %12740 = call ptr @__errno_location() #12
  store i32 %12739, ptr %12740, align 4, !tbaa !5
  %12741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12742 = load i32, ptr @test_count, align 4, !tbaa !5
  %12743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12744 = load i32, ptr %12743, align 4, !tbaa !5
  %12745 = call ptr @s2n_strerror(i32 noundef %12744, ptr noundef @.str.4)
  %12746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12747 = load i32, ptr %12746, align 4, !tbaa !5
  %12748 = call ptr @s2n_strerror_debug(i32 noundef %12747, ptr noundef @.str.4)
  %12749 = call ptr @__errno_location() #12
  %12750 = load i32, ptr %12749, align 4, !tbaa !5
  %12751 = call ptr @strerror(i32 noundef %12750) #11
  %12752 = call ptr @__errno_location() #12
  %12753 = load i32, ptr %12752, align 4, !tbaa !5
  %12754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12741, ptr noundef @.str.5, i32 noundef %12742, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 638, ptr noundef %12745, ptr noundef %12748, ptr noundef %12751, i32 noundef %12753) #11
  br label %12755

12755:                                            ; preds = %12738, %12721
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #11
  br label %12756

12756:                                            ; preds = %12755
  br label %12757

12757:                                            ; preds = %12756
  call void @exit(i32 noundef 1) #13
  unreachable

12758:                                            ; No predecessors!
  br label %12759

12759:                                            ; preds = %12758
  br label %12760

12760:                                            ; preds = %12759, %12698
  br label %12761

12761:                                            ; preds = %12760
  br label %12762

12762:                                            ; preds = %12761
  call void @llvm.lifetime.start.p0(i64 8, ptr %294) #11
  store ptr null, ptr %294, align 8, !tbaa !9
  br label %12763

12763:                                            ; preds = %12762
  %12764 = load i32, ptr @test_count, align 4, !tbaa !5
  %12765 = add nsw i32 %12764, 1
  store i32 %12765, ptr @test_count, align 4, !tbaa !5
  %12766 = load ptr, ptr %290, align 8, !tbaa !9
  %12767 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %12766, ptr noundef %294)
  %12768 = icmp eq i32 %12767, -1
  br i1 %12768, label %12769, label %12822

12769:                                            ; preds = %12763
  br label %12770

12770:                                            ; preds = %12769
  br label %12771

12771:                                            ; preds = %12770
  call void @llvm.lifetime.start.p0(i64 4, ptr %295) #11
  %12772 = call ptr @__errno_location() #12
  %12773 = load i32, ptr %12772, align 4, !tbaa !5
  store i32 %12773, ptr %295, align 4, !tbaa !5
  %12774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12775 = call i32 @s2n_print_stacktrace(ptr noundef %12774)
  %12776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12777 = trunc i8 %12776 to i1
  br i1 %12777, label %12778, label %12800

12778:                                            ; preds = %12771
  %12779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12780 = call i32 @fileno(ptr noundef %12779) #11
  %12781 = call i32 @isatty(i32 noundef %12780) #11
  %12782 = icmp ne i32 %12781, 0
  br i1 %12782, label %12783, label %12800

12783:                                            ; preds = %12778
  %12784 = load i32, ptr %295, align 4, !tbaa !5
  %12785 = call ptr @__errno_location() #12
  store i32 %12784, ptr %12785, align 4, !tbaa !5
  %12786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12787 = load i32, ptr @test_count, align 4, !tbaa !5
  %12788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12789 = load i32, ptr %12788, align 4, !tbaa !5
  %12790 = call ptr @s2n_strerror(i32 noundef %12789, ptr noundef @.str.4)
  %12791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12792 = load i32, ptr %12791, align 4, !tbaa !5
  %12793 = call ptr @s2n_strerror_debug(i32 noundef %12792, ptr noundef @.str.4)
  %12794 = call ptr @__errno_location() #12
  %12795 = load i32, ptr %12794, align 4, !tbaa !5
  %12796 = call ptr @strerror(i32 noundef %12795) #11
  %12797 = call ptr @__errno_location() #12
  %12798 = load i32, ptr %12797, align 4, !tbaa !5
  %12799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12786, ptr noundef @.str.2, i32 noundef %12787, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 641, ptr noundef %12790, ptr noundef %12793, ptr noundef %12796, i32 noundef %12798) #11
  br label %12817

12800:                                            ; preds = %12778, %12771
  %12801 = load i32, ptr %295, align 4, !tbaa !5
  %12802 = call ptr @__errno_location() #12
  store i32 %12801, ptr %12802, align 4, !tbaa !5
  %12803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12804 = load i32, ptr @test_count, align 4, !tbaa !5
  %12805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12806 = load i32, ptr %12805, align 4, !tbaa !5
  %12807 = call ptr @s2n_strerror(i32 noundef %12806, ptr noundef @.str.4)
  %12808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12809 = load i32, ptr %12808, align 4, !tbaa !5
  %12810 = call ptr @s2n_strerror_debug(i32 noundef %12809, ptr noundef @.str.4)
  %12811 = call ptr @__errno_location() #12
  %12812 = load i32, ptr %12811, align 4, !tbaa !5
  %12813 = call ptr @strerror(i32 noundef %12812) #11
  %12814 = call ptr @__errno_location() #12
  %12815 = load i32, ptr %12814, align 4, !tbaa !5
  %12816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12803, ptr noundef @.str.5, i32 noundef %12804, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 641, ptr noundef %12807, ptr noundef %12810, ptr noundef %12813, i32 noundef %12815) #11
  br label %12817

12817:                                            ; preds = %12800, %12783
  call void @llvm.lifetime.end.p0(i64 4, ptr %295) #11
  br label %12818

12818:                                            ; preds = %12817
  br label %12819

12819:                                            ; preds = %12818
  call void @exit(i32 noundef 1) #13
  unreachable

12820:                                            ; No predecessors!
  br label %12821

12821:                                            ; preds = %12820
  br label %12822

12822:                                            ; preds = %12821, %12763
  br label %12823

12823:                                            ; preds = %12822
  br label %12824

12824:                                            ; preds = %12823
  br label %12825

12825:                                            ; preds = %12824
  %12826 = load i32, ptr @test_count, align 4, !tbaa !5
  %12827 = add nsw i32 %12826, 1
  store i32 %12827, ptr @test_count, align 4, !tbaa !5
  %12828 = load ptr, ptr %294, align 8, !tbaa !9
  %12829 = icmp eq ptr %12828, null
  br i1 %12829, label %12830, label %12883

12830:                                            ; preds = %12825
  br label %12831

12831:                                            ; preds = %12830
  br label %12832

12832:                                            ; preds = %12831
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #11
  %12833 = call ptr @__errno_location() #12
  %12834 = load i32, ptr %12833, align 4, !tbaa !5
  store i32 %12834, ptr %296, align 4, !tbaa !5
  %12835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12836 = call i32 @s2n_print_stacktrace(ptr noundef %12835)
  %12837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12838 = trunc i8 %12837 to i1
  br i1 %12838, label %12839, label %12861

12839:                                            ; preds = %12832
  %12840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12841 = call i32 @fileno(ptr noundef %12840) #11
  %12842 = call i32 @isatty(i32 noundef %12841) #11
  %12843 = icmp ne i32 %12842, 0
  br i1 %12843, label %12844, label %12861

12844:                                            ; preds = %12839
  %12845 = load i32, ptr %296, align 4, !tbaa !5
  %12846 = call ptr @__errno_location() #12
  store i32 %12845, ptr %12846, align 4, !tbaa !5
  %12847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12848 = load i32, ptr @test_count, align 4, !tbaa !5
  %12849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12850 = load i32, ptr %12849, align 4, !tbaa !5
  %12851 = call ptr @s2n_strerror(i32 noundef %12850, ptr noundef @.str.4)
  %12852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12853 = load i32, ptr %12852, align 4, !tbaa !5
  %12854 = call ptr @s2n_strerror_debug(i32 noundef %12853, ptr noundef @.str.4)
  %12855 = call ptr @__errno_location() #12
  %12856 = load i32, ptr %12855, align 4, !tbaa !5
  %12857 = call ptr @strerror(i32 noundef %12856) #11
  %12858 = call ptr @__errno_location() #12
  %12859 = load i32, ptr %12858, align 4, !tbaa !5
  %12860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12847, ptr noundef @.str.2, i32 noundef %12848, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 642, ptr noundef %12851, ptr noundef %12854, ptr noundef %12857, i32 noundef %12859) #11
  br label %12878

12861:                                            ; preds = %12839, %12832
  %12862 = load i32, ptr %296, align 4, !tbaa !5
  %12863 = call ptr @__errno_location() #12
  store i32 %12862, ptr %12863, align 4, !tbaa !5
  %12864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12865 = load i32, ptr @test_count, align 4, !tbaa !5
  %12866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12867 = load i32, ptr %12866, align 4, !tbaa !5
  %12868 = call ptr @s2n_strerror(i32 noundef %12867, ptr noundef @.str.4)
  %12869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12870 = load i32, ptr %12869, align 4, !tbaa !5
  %12871 = call ptr @s2n_strerror_debug(i32 noundef %12870, ptr noundef @.str.4)
  %12872 = call ptr @__errno_location() #12
  %12873 = load i32, ptr %12872, align 4, !tbaa !5
  %12874 = call ptr @strerror(i32 noundef %12873) #11
  %12875 = call ptr @__errno_location() #12
  %12876 = load i32, ptr %12875, align 4, !tbaa !5
  %12877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12864, ptr noundef @.str.5, i32 noundef %12865, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 642, ptr noundef %12868, ptr noundef %12871, ptr noundef %12874, i32 noundef %12876) #11
  br label %12878

12878:                                            ; preds = %12861, %12844
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #11
  br label %12879

12879:                                            ; preds = %12878
  br label %12880

12880:                                            ; preds = %12879
  call void @exit(i32 noundef 1) #13
  unreachable

12881:                                            ; No predecessors!
  br label %12882

12882:                                            ; preds = %12881
  br label %12883

12883:                                            ; preds = %12882, %12825
  br label %12884

12884:                                            ; preds = %12883
  br label %12885

12885:                                            ; preds = %12884
  br label %12886

12886:                                            ; preds = %12885
  %12887 = load i32, ptr @test_count, align 4, !tbaa !5
  %12888 = add nsw i32 %12887, 1
  store i32 %12888, ptr @test_count, align 4, !tbaa !5
  %12889 = load ptr, ptr %294, align 8, !tbaa !9
  %12890 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %12889, ptr noundef %10)
  %12891 = getelementptr inbounds %struct.s2n_result, ptr %297, i32 0, i32 0
  store i32 %12890, ptr %12891, align 4
  %12892 = getelementptr inbounds %struct.s2n_result, ptr %297, i32 0, i32 0
  %12893 = load i32, ptr %12892, align 4
  %12894 = call zeroext i1 @s2n_result_is_ok(i32 %12893)
  br i1 %12894, label %12948, label %12895

12895:                                            ; preds = %12886
  br label %12896

12896:                                            ; preds = %12895
  br label %12897

12897:                                            ; preds = %12896
  call void @llvm.lifetime.start.p0(i64 4, ptr %298) #11
  %12898 = call ptr @__errno_location() #12
  %12899 = load i32, ptr %12898, align 4, !tbaa !5
  store i32 %12899, ptr %298, align 4, !tbaa !5
  %12900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12901 = call i32 @s2n_print_stacktrace(ptr noundef %12900)
  %12902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12903 = trunc i8 %12902 to i1
  br i1 %12903, label %12904, label %12926

12904:                                            ; preds = %12897
  %12905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12906 = call i32 @fileno(ptr noundef %12905) #11
  %12907 = call i32 @isatty(i32 noundef %12906) #11
  %12908 = icmp ne i32 %12907, 0
  br i1 %12908, label %12909, label %12926

12909:                                            ; preds = %12904
  %12910 = load i32, ptr %298, align 4, !tbaa !5
  %12911 = call ptr @__errno_location() #12
  store i32 %12910, ptr %12911, align 4, !tbaa !5
  %12912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12913 = load i32, ptr @test_count, align 4, !tbaa !5
  %12914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12915 = load i32, ptr %12914, align 4, !tbaa !5
  %12916 = call ptr @s2n_strerror(i32 noundef %12915, ptr noundef @.str.4)
  %12917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12918 = load i32, ptr %12917, align 4, !tbaa !5
  %12919 = call ptr @s2n_strerror_debug(i32 noundef %12918, ptr noundef @.str.4)
  %12920 = call ptr @__errno_location() #12
  %12921 = load i32, ptr %12920, align 4, !tbaa !5
  %12922 = call ptr @strerror(i32 noundef %12921) #11
  %12923 = call ptr @__errno_location() #12
  %12924 = load i32, ptr %12923, align 4, !tbaa !5
  %12925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12912, ptr noundef @.str.2, i32 noundef %12913, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 643, ptr noundef %12916, ptr noundef %12919, ptr noundef %12922, i32 noundef %12924) #11
  br label %12943

12926:                                            ; preds = %12904, %12897
  %12927 = load i32, ptr %298, align 4, !tbaa !5
  %12928 = call ptr @__errno_location() #12
  store i32 %12927, ptr %12928, align 4, !tbaa !5
  %12929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12930 = load i32, ptr @test_count, align 4, !tbaa !5
  %12931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12932 = load i32, ptr %12931, align 4, !tbaa !5
  %12933 = call ptr @s2n_strerror(i32 noundef %12932, ptr noundef @.str.4)
  %12934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12935 = load i32, ptr %12934, align 4, !tbaa !5
  %12936 = call ptr @s2n_strerror_debug(i32 noundef %12935, ptr noundef @.str.4)
  %12937 = call ptr @__errno_location() #12
  %12938 = load i32, ptr %12937, align 4, !tbaa !5
  %12939 = call ptr @strerror(i32 noundef %12938) #11
  %12940 = call ptr @__errno_location() #12
  %12941 = load i32, ptr %12940, align 4, !tbaa !5
  %12942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12929, ptr noundef @.str.5, i32 noundef %12930, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 643, ptr noundef %12933, ptr noundef %12936, ptr noundef %12939, i32 noundef %12941) #11
  br label %12943

12943:                                            ; preds = %12926, %12909
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #11
  br label %12944

12944:                                            ; preds = %12943
  br label %12945

12945:                                            ; preds = %12944
  call void @exit(i32 noundef 1) #13
  unreachable

12946:                                            ; No predecessors!
  br label %12947

12947:                                            ; preds = %12946
  br label %12948

12948:                                            ; preds = %12947, %12886
  br label %12949

12949:                                            ; preds = %12948
  br label %12950

12950:                                            ; preds = %12949
  br label %12951

12951:                                            ; preds = %12950
  %12952 = load i32, ptr @test_count, align 4, !tbaa !5
  %12953 = add nsw i32 %12952, 1
  store i32 %12953, ptr @test_count, align 4, !tbaa !5
  %12954 = load i32, ptr %10, align 4, !tbaa !5
  %12955 = icmp uge i32 %12954, 2
  br i1 %12955, label %13009, label %12956

12956:                                            ; preds = %12951
  br label %12957

12957:                                            ; preds = %12956
  br label %12958

12958:                                            ; preds = %12957
  call void @llvm.lifetime.start.p0(i64 4, ptr %299) #11
  %12959 = call ptr @__errno_location() #12
  %12960 = load i32, ptr %12959, align 4, !tbaa !5
  store i32 %12960, ptr %299, align 4, !tbaa !5
  %12961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12962 = call i32 @s2n_print_stacktrace(ptr noundef %12961)
  %12963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12964 = trunc i8 %12963 to i1
  br i1 %12964, label %12965, label %12987

12965:                                            ; preds = %12958
  %12966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12967 = call i32 @fileno(ptr noundef %12966) #11
  %12968 = call i32 @isatty(i32 noundef %12967) #11
  %12969 = icmp ne i32 %12968, 0
  br i1 %12969, label %12970, label %12987

12970:                                            ; preds = %12965
  %12971 = load i32, ptr %299, align 4, !tbaa !5
  %12972 = call ptr @__errno_location() #12
  store i32 %12971, ptr %12972, align 4, !tbaa !5
  %12973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12974 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %12976, ptr noundef @.str.4)
  %12978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12979 = load i32, ptr %12978, align 4, !tbaa !5
  %12980 = call ptr @s2n_strerror_debug(i32 noundef %12979, ptr noundef @.str.4)
  %12981 = call ptr @__errno_location() #12
  %12982 = load i32, ptr %12981, align 4, !tbaa !5
  %12983 = call ptr @strerror(i32 noundef %12982) #11
  %12984 = call ptr @__errno_location() #12
  %12985 = load i32, ptr %12984, align 4, !tbaa !5
  %12986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12973, ptr noundef @.str.2, i32 noundef %12974, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 644, ptr noundef %12977, ptr noundef %12980, ptr noundef %12983, i32 noundef %12985) #11
  br label %13004

12987:                                            ; preds = %12965, %12958
  %12988 = load i32, ptr %299, align 4, !tbaa !5
  %12989 = call ptr @__errno_location() #12
  store i32 %12988, ptr %12989, align 4, !tbaa !5
  %12990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12991 = load i32, ptr @test_count, align 4, !tbaa !5
  %12992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12993 = load i32, ptr %12992, align 4, !tbaa !5
  %12994 = call ptr @s2n_strerror(i32 noundef %12993, ptr noundef @.str.4)
  %12995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12996 = load i32, ptr %12995, align 4, !tbaa !5
  %12997 = call ptr @s2n_strerror_debug(i32 noundef %12996, ptr noundef @.str.4)
  %12998 = call ptr @__errno_location() #12
  %12999 = load i32, ptr %12998, align 4, !tbaa !5
  %13000 = call ptr @strerror(i32 noundef %12999) #11
  %13001 = call ptr @__errno_location() #12
  %13002 = load i32, ptr %13001, align 4, !tbaa !5
  %13003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12990, ptr noundef @.str.5, i32 noundef %12991, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 644, ptr noundef %12994, ptr noundef %12997, ptr noundef %13000, i32 noundef %13002) #11
  br label %13004

13004:                                            ; preds = %12987, %12970
  call void @llvm.lifetime.end.p0(i64 4, ptr %299) #11
  br label %13005

13005:                                            ; preds = %13004
  br label %13006

13006:                                            ; preds = %13005
  call void @exit(i32 noundef 1) #13
  unreachable

13007:                                            ; No predecessors!
  br label %13008

13008:                                            ; preds = %13007
  br label %13009

13009:                                            ; preds = %13008, %12951
  br label %13010

13010:                                            ; preds = %13009
  br label %13011

13011:                                            ; preds = %13010
  call void @llvm.lifetime.start.p0(i64 8, ptr %300) #11
  store ptr null, ptr %300, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %301) #11
  store ptr null, ptr %301, align 8, !tbaa !9
  br label %13012

13012:                                            ; preds = %13011
  %13013 = load i32, ptr @test_count, align 4, !tbaa !5
  %13014 = add nsw i32 %13013, 1
  store i32 %13014, ptr @test_count, align 4, !tbaa !5
  %13015 = load ptr, ptr %294, align 8, !tbaa !9
  %13016 = call i32 @s2n_get_two_highest_piority_kem_groups(ptr noundef %13015, ptr noundef %300, ptr noundef %301)
  %13017 = icmp eq i32 %13016, -1
  br i1 %13017, label %13018, label %13071

13018:                                            ; preds = %13012
  br label %13019

13019:                                            ; preds = %13018
  br label %13020

13020:                                            ; preds = %13019
  call void @llvm.lifetime.start.p0(i64 4, ptr %302) #11
  %13021 = call ptr @__errno_location() #12
  %13022 = load i32, ptr %13021, align 4, !tbaa !5
  store i32 %13022, ptr %302, align 4, !tbaa !5
  %13023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13024 = call i32 @s2n_print_stacktrace(ptr noundef %13023)
  %13025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13026 = trunc i8 %13025 to i1
  br i1 %13026, label %13027, label %13049

13027:                                            ; preds = %13020
  %13028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13029 = call i32 @fileno(ptr noundef %13028) #11
  %13030 = call i32 @isatty(i32 noundef %13029) #11
  %13031 = icmp ne i32 %13030, 0
  br i1 %13031, label %13032, label %13049

13032:                                            ; preds = %13027
  %13033 = load i32, ptr %302, align 4, !tbaa !5
  %13034 = call ptr @__errno_location() #12
  store i32 %13033, ptr %13034, align 4, !tbaa !5
  %13035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13036 = load i32, ptr @test_count, align 4, !tbaa !5
  %13037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13038 = load i32, ptr %13037, align 4, !tbaa !5
  %13039 = call ptr @s2n_strerror(i32 noundef %13038, ptr noundef @.str.4)
  %13040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13041 = load i32, ptr %13040, align 4, !tbaa !5
  %13042 = call ptr @s2n_strerror_debug(i32 noundef %13041, ptr noundef @.str.4)
  %13043 = call ptr @__errno_location() #12
  %13044 = load i32, ptr %13043, align 4, !tbaa !5
  %13045 = call ptr @strerror(i32 noundef %13044) #11
  %13046 = call ptr @__errno_location() #12
  %13047 = load i32, ptr %13046, align 4, !tbaa !5
  %13048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13035, ptr noundef @.str.2, i32 noundef %13036, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 649, ptr noundef %13039, ptr noundef %13042, ptr noundef %13045, i32 noundef %13047) #11
  br label %13066

13049:                                            ; preds = %13027, %13020
  %13050 = load i32, ptr %302, align 4, !tbaa !5
  %13051 = call ptr @__errno_location() #12
  store i32 %13050, ptr %13051, align 4, !tbaa !5
  %13052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13053 = load i32, ptr @test_count, align 4, !tbaa !5
  %13054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13055 = load i32, ptr %13054, align 4, !tbaa !5
  %13056 = call ptr @s2n_strerror(i32 noundef %13055, ptr noundef @.str.4)
  %13057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13058 = load i32, ptr %13057, align 4, !tbaa !5
  %13059 = call ptr @s2n_strerror_debug(i32 noundef %13058, ptr noundef @.str.4)
  %13060 = call ptr @__errno_location() #12
  %13061 = load i32, ptr %13060, align 4, !tbaa !5
  %13062 = call ptr @strerror(i32 noundef %13061) #11
  %13063 = call ptr @__errno_location() #12
  %13064 = load i32, ptr %13063, align 4, !tbaa !5
  %13065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13052, ptr noundef @.str.5, i32 noundef %13053, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 649, ptr noundef %13056, ptr noundef %13059, ptr noundef %13062, i32 noundef %13064) #11
  br label %13066

13066:                                            ; preds = %13049, %13032
  call void @llvm.lifetime.end.p0(i64 4, ptr %302) #11
  br label %13067

13067:                                            ; preds = %13066
  br label %13068

13068:                                            ; preds = %13067
  call void @exit(i32 noundef 1) #13
  unreachable

13069:                                            ; No predecessors!
  br label %13070

13070:                                            ; preds = %13069
  br label %13071

13071:                                            ; preds = %13070, %13012
  br label %13072

13072:                                            ; preds = %13071
  br label %13073

13073:                                            ; preds = %13072
  br label %13074

13074:                                            ; preds = %13073
  %13075 = load i32, ptr @test_count, align 4, !tbaa !5
  %13076 = add nsw i32 %13075, 1
  store i32 %13076, ptr @test_count, align 4, !tbaa !5
  %13077 = load ptr, ptr %300, align 8, !tbaa !9
  %13078 = icmp eq ptr %13077, null
  br i1 %13078, label %13079, label %13132

13079:                                            ; preds = %13074
  br label %13080

13080:                                            ; preds = %13079
  br label %13081

13081:                                            ; preds = %13080
  call void @llvm.lifetime.start.p0(i64 4, ptr %303) #11
  %13082 = call ptr @__errno_location() #12
  %13083 = load i32, ptr %13082, align 4, !tbaa !5
  store i32 %13083, ptr %303, align 4, !tbaa !5
  %13084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13085 = call i32 @s2n_print_stacktrace(ptr noundef %13084)
  %13086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13087 = trunc i8 %13086 to i1
  br i1 %13087, label %13088, label %13110

13088:                                            ; preds = %13081
  %13089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13090 = call i32 @fileno(ptr noundef %13089) #11
  %13091 = call i32 @isatty(i32 noundef %13090) #11
  %13092 = icmp ne i32 %13091, 0
  br i1 %13092, label %13093, label %13110

13093:                                            ; preds = %13088
  %13094 = load i32, ptr %303, align 4, !tbaa !5
  %13095 = call ptr @__errno_location() #12
  store i32 %13094, ptr %13095, align 4, !tbaa !5
  %13096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13097 = load i32, ptr @test_count, align 4, !tbaa !5
  %13098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13099 = load i32, ptr %13098, align 4, !tbaa !5
  %13100 = call ptr @s2n_strerror(i32 noundef %13099, ptr noundef @.str.4)
  %13101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13102 = load i32, ptr %13101, align 4, !tbaa !5
  %13103 = call ptr @s2n_strerror_debug(i32 noundef %13102, ptr noundef @.str.4)
  %13104 = call ptr @__errno_location() #12
  %13105 = load i32, ptr %13104, align 4, !tbaa !5
  %13106 = call ptr @strerror(i32 noundef %13105) #11
  %13107 = call ptr @__errno_location() #12
  %13108 = load i32, ptr %13107, align 4, !tbaa !5
  %13109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13096, ptr noundef @.str.2, i32 noundef %13097, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 650, ptr noundef %13100, ptr noundef %13103, ptr noundef %13106, i32 noundef %13108) #11
  br label %13127

13110:                                            ; preds = %13088, %13081
  %13111 = load i32, ptr %303, align 4, !tbaa !5
  %13112 = call ptr @__errno_location() #12
  store i32 %13111, ptr %13112, align 4, !tbaa !5
  %13113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13114 = load i32, ptr @test_count, align 4, !tbaa !5
  %13115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13116 = load i32, ptr %13115, align 4, !tbaa !5
  %13117 = call ptr @s2n_strerror(i32 noundef %13116, ptr noundef @.str.4)
  %13118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13119 = load i32, ptr %13118, align 4, !tbaa !5
  %13120 = call ptr @s2n_strerror_debug(i32 noundef %13119, ptr noundef @.str.4)
  %13121 = call ptr @__errno_location() #12
  %13122 = load i32, ptr %13121, align 4, !tbaa !5
  %13123 = call ptr @strerror(i32 noundef %13122) #11
  %13124 = call ptr @__errno_location() #12
  %13125 = load i32, ptr %13124, align 4, !tbaa !5
  %13126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13113, ptr noundef @.str.5, i32 noundef %13114, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 650, ptr noundef %13117, ptr noundef %13120, ptr noundef %13123, i32 noundef %13125) #11
  br label %13127

13127:                                            ; preds = %13110, %13093
  call void @llvm.lifetime.end.p0(i64 4, ptr %303) #11
  br label %13128

13128:                                            ; preds = %13127
  br label %13129

13129:                                            ; preds = %13128
  call void @exit(i32 noundef 1) #13
  unreachable

13130:                                            ; No predecessors!
  br label %13131

13131:                                            ; preds = %13130
  br label %13132

13132:                                            ; preds = %13131, %13074
  br label %13133

13133:                                            ; preds = %13132
  br label %13134

13134:                                            ; preds = %13133
  br label %13135

13135:                                            ; preds = %13134
  %13136 = load i32, ptr @test_count, align 4, !tbaa !5
  %13137 = add nsw i32 %13136, 1
  store i32 %13137, ptr @test_count, align 4, !tbaa !5
  %13138 = load ptr, ptr %301, align 8, !tbaa !9
  %13139 = icmp eq ptr %13138, null
  br i1 %13139, label %13140, label %13193

13140:                                            ; preds = %13135
  br label %13141

13141:                                            ; preds = %13140
  br label %13142

13142:                                            ; preds = %13141
  call void @llvm.lifetime.start.p0(i64 4, ptr %304) #11
  %13143 = call ptr @__errno_location() #12
  %13144 = load i32, ptr %13143, align 4, !tbaa !5
  store i32 %13144, ptr %304, align 4, !tbaa !5
  %13145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13146 = call i32 @s2n_print_stacktrace(ptr noundef %13145)
  %13147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13148 = trunc i8 %13147 to i1
  br i1 %13148, label %13149, label %13171

13149:                                            ; preds = %13142
  %13150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13151 = call i32 @fileno(ptr noundef %13150) #11
  %13152 = call i32 @isatty(i32 noundef %13151) #11
  %13153 = icmp ne i32 %13152, 0
  br i1 %13153, label %13154, label %13171

13154:                                            ; preds = %13149
  %13155 = load i32, ptr %304, align 4, !tbaa !5
  %13156 = call ptr @__errno_location() #12
  store i32 %13155, ptr %13156, align 4, !tbaa !5
  %13157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13158 = load i32, ptr @test_count, align 4, !tbaa !5
  %13159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13160 = load i32, ptr %13159, align 4, !tbaa !5
  %13161 = call ptr @s2n_strerror(i32 noundef %13160, ptr noundef @.str.4)
  %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_debug(i32 noundef %13163, ptr noundef @.str.4)
  %13165 = call ptr @__errno_location() #12
  %13166 = load i32, ptr %13165, align 4, !tbaa !5
  %13167 = call ptr @strerror(i32 noundef %13166) #11
  %13168 = call ptr @__errno_location() #12
  %13169 = load i32, ptr %13168, align 4, !tbaa !5
  %13170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13157, ptr noundef @.str.2, i32 noundef %13158, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 651, ptr noundef %13161, ptr noundef %13164, ptr noundef %13167, i32 noundef %13169) #11
  br label %13188

13171:                                            ; preds = %13149, %13142
  %13172 = load i32, ptr %304, align 4, !tbaa !5
  %13173 = call ptr @__errno_location() #12
  store i32 %13172, ptr %13173, align 4, !tbaa !5
  %13174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13175 = load i32, ptr @test_count, align 4, !tbaa !5
  %13176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13177 = load i32, ptr %13176, align 4, !tbaa !5
  %13178 = call ptr @s2n_strerror(i32 noundef %13177, ptr noundef @.str.4)
  %13179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13180 = load i32, ptr %13179, align 4, !tbaa !5
  %13181 = call ptr @s2n_strerror_debug(i32 noundef %13180, ptr noundef @.str.4)
  %13182 = call ptr @__errno_location() #12
  %13183 = load i32, ptr %13182, align 4, !tbaa !5
  %13184 = call ptr @strerror(i32 noundef %13183) #11
  %13185 = call ptr @__errno_location() #12
  %13186 = load i32, ptr %13185, align 4, !tbaa !5
  %13187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13174, ptr noundef @.str.5, i32 noundef %13175, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 651, ptr noundef %13178, ptr noundef %13181, ptr noundef %13184, i32 noundef %13186) #11
  br label %13188

13188:                                            ; preds = %13171, %13154
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #11
  br label %13189

13189:                                            ; preds = %13188
  br label %13190

13190:                                            ; preds = %13189
  call void @exit(i32 noundef 1) #13
  unreachable

13191:                                            ; No predecessors!
  br label %13192

13192:                                            ; preds = %13191
  br label %13193

13193:                                            ; preds = %13192, %13135
  br label %13194

13194:                                            ; preds = %13193
  br label %13195

13195:                                            ; preds = %13194
  call void @llvm.lifetime.start.p0(i64 224, ptr %305) #11
  call void @llvm.memset.p0.i64(ptr align 16 %305, i8 0, i64 224, i1 false)
  %13196 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %305, i32 0, i32 0
  %13197 = load ptr, ptr %300, align 8, !tbaa !9
  store ptr %13197, ptr %13196, align 16, !tbaa !68
  %13198 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %305, i32 0, i32 1
  %13199 = getelementptr inbounds %struct.s2n_kem_params, ptr %13198, i32 0, i32 0
  %13200 = getelementptr inbounds %struct.s2n_kem_params, ptr %13198, i32 0, i32 1
  %13201 = getelementptr inbounds %struct.s2n_kem_params, ptr %13198, i32 0, i32 2
  %13202 = getelementptr inbounds %struct.s2n_kem_params, ptr %13198, i32 0, i32 3
  %13203 = getelementptr inbounds %struct.s2n_kem_params, ptr %13198, i32 0, i32 4
  %13204 = load i32, ptr %5, align 4, !tbaa !5
  %13205 = icmp ne i32 %13204, 0
  %13206 = zext i1 %13205 to i8
  store i8 %13206, ptr %13203, align 8, !tbaa !105
  %13207 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %305, i32 0, i32 2
  %13208 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %305, i64 1
  %13209 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %13208, i32 0, i32 0
  %13210 = load ptr, ptr %301, align 8, !tbaa !9
  store ptr %13210, ptr %13209, align 16, !tbaa !68
  %13211 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %13208, i32 0, i32 1
  %13212 = getelementptr inbounds %struct.s2n_kem_params, ptr %13211, i32 0, i32 0
  %13213 = getelementptr inbounds %struct.s2n_kem_params, ptr %13211, i32 0, i32 1
  %13214 = getelementptr inbounds %struct.s2n_kem_params, ptr %13211, i32 0, i32 2
  %13215 = getelementptr inbounds %struct.s2n_kem_params, ptr %13211, i32 0, i32 3
  %13216 = getelementptr inbounds %struct.s2n_kem_params, ptr %13211, i32 0, i32 4
  %13217 = load i32, ptr %5, align 4, !tbaa !5
  %13218 = icmp ne i32 %13217, 0
  %13219 = zext i1 %13218 to i8
  store i8 %13219, ptr %13216, align 8, !tbaa !105
  %13220 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %13208, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 40, ptr %306) #11
  call void @llvm.memset.p0.i64(ptr align 8 %306, i8 0, i64 40, i1 false)
  br label %13221

13221:                                            ; preds = %13195
  %13222 = load i32, ptr @test_count, align 4, !tbaa !5
  %13223 = add nsw i32 %13222, 1
  store i32 %13223, ptr @test_count, align 4, !tbaa !5
  %13224 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %306, i32 noundef 8192)
  %13225 = icmp eq i32 %13224, -1
  br i1 %13225, label %13226, label %13279

13226:                                            ; preds = %13221
  br label %13227

13227:                                            ; preds = %13226
  br label %13228

13228:                                            ; preds = %13227
  call void @llvm.lifetime.start.p0(i64 4, ptr %307) #11
  %13229 = call ptr @__errno_location() #12
  %13230 = load i32, ptr %13229, align 4, !tbaa !5
  store i32 %13230, ptr %307, align 4, !tbaa !5
  %13231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13232 = call i32 @s2n_print_stacktrace(ptr noundef %13231)
  %13233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13234 = trunc i8 %13233 to i1
  br i1 %13234, label %13235, label %13257

13235:                                            ; preds = %13228
  %13236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13237 = call i32 @fileno(ptr noundef %13236) #11
  %13238 = call i32 @isatty(i32 noundef %13237) #11
  %13239 = icmp ne i32 %13238, 0
  br i1 %13239, label %13240, label %13257

13240:                                            ; preds = %13235
  %13241 = load i32, ptr %307, align 4, !tbaa !5
  %13242 = call ptr @__errno_location() #12
  store i32 %13241, ptr %13242, align 4, !tbaa !5
  %13243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13244 = load i32, ptr @test_count, align 4, !tbaa !5
  %13245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13246 = load i32, ptr %13245, align 4, !tbaa !5
  %13247 = call ptr @s2n_strerror(i32 noundef %13246, ptr noundef @.str.4)
  %13248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13249 = load i32, ptr %13248, align 4, !tbaa !5
  %13250 = call ptr @s2n_strerror_debug(i32 noundef %13249, ptr noundef @.str.4)
  %13251 = call ptr @__errno_location() #12
  %13252 = load i32, ptr %13251, align 4, !tbaa !5
  %13253 = call ptr @strerror(i32 noundef %13252) #11
  %13254 = call ptr @__errno_location() #12
  %13255 = load i32, ptr %13254, align 4, !tbaa !5
  %13256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13243, ptr noundef @.str.2, i32 noundef %13244, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 659, ptr noundef %13247, ptr noundef %13250, ptr noundef %13253, i32 noundef %13255) #11
  br label %13274

13257:                                            ; preds = %13235, %13228
  %13258 = load i32, ptr %307, align 4, !tbaa !5
  %13259 = call ptr @__errno_location() #12
  store i32 %13258, ptr %13259, align 4, !tbaa !5
  %13260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13261 = load i32, ptr @test_count, align 4, !tbaa !5
  %13262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13263 = load i32, ptr %13262, align 4, !tbaa !5
  %13264 = call ptr @s2n_strerror(i32 noundef %13263, ptr noundef @.str.4)
  %13265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13266 = load i32, ptr %13265, align 4, !tbaa !5
  %13267 = call ptr @s2n_strerror_debug(i32 noundef %13266, ptr noundef @.str.4)
  %13268 = call ptr @__errno_location() #12
  %13269 = load i32, ptr %13268, align 4, !tbaa !5
  %13270 = call ptr @strerror(i32 noundef %13269) #11
  %13271 = call ptr @__errno_location() #12
  %13272 = load i32, ptr %13271, align 4, !tbaa !5
  %13273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13260, ptr noundef @.str.5, i32 noundef %13261, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 659, ptr noundef %13264, ptr noundef %13267, ptr noundef %13270, i32 noundef %13272) #11
  br label %13274

13274:                                            ; preds = %13257, %13240
  call void @llvm.lifetime.end.p0(i64 4, ptr %307) #11
  br label %13275

13275:                                            ; preds = %13274
  br label %13276

13276:                                            ; preds = %13275
  call void @exit(i32 noundef 1) #13
  unreachable

13277:                                            ; No predecessors!
  br label %13278

13278:                                            ; preds = %13277
  br label %13279

13279:                                            ; preds = %13278, %13221
  br label %13280

13280:                                            ; preds = %13279
  br label %13281

13281:                                            ; preds = %13280
  call void @llvm.lifetime.start.p0(i64 16, ptr %308) #11
  call void @llvm.memset.p0.i64(ptr align 8 %308, i8 0, i64 16, i1 false)
  br label %13282

13282:                                            ; preds = %13281
  %13283 = load i32, ptr @test_count, align 4, !tbaa !5
  %13284 = add nsw i32 %13283, 1
  store i32 %13284, ptr @test_count, align 4, !tbaa !5
  %13285 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %306, ptr noundef %308)
  %13286 = icmp eq i32 %13285, -1
  br i1 %13286, label %13287, label %13340

13287:                                            ; preds = %13282
  br label %13288

13288:                                            ; preds = %13287
  br label %13289

13289:                                            ; preds = %13288
  call void @llvm.lifetime.start.p0(i64 4, ptr %309) #11
  %13290 = call ptr @__errno_location() #12
  %13291 = load i32, ptr %13290, align 4, !tbaa !5
  store i32 %13291, ptr %309, align 4, !tbaa !5
  %13292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13293 = call i32 @s2n_print_stacktrace(ptr noundef %13292)
  %13294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13295 = trunc i8 %13294 to i1
  br i1 %13295, label %13296, label %13318

13296:                                            ; preds = %13289
  %13297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13298 = call i32 @fileno(ptr noundef %13297) #11
  %13299 = call i32 @isatty(i32 noundef %13298) #11
  %13300 = icmp ne i32 %13299, 0
  br i1 %13300, label %13301, label %13318

13301:                                            ; preds = %13296
  %13302 = load i32, ptr %309, align 4, !tbaa !5
  %13303 = call ptr @__errno_location() #12
  store i32 %13302, ptr %13303, align 4, !tbaa !5
  %13304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13305 = load i32, ptr @test_count, align 4, !tbaa !5
  %13306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13307 = load i32, ptr %13306, align 4, !tbaa !5
  %13308 = call ptr @s2n_strerror(i32 noundef %13307, ptr noundef @.str.4)
  %13309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13310 = load i32, ptr %13309, align 4, !tbaa !5
  %13311 = call ptr @s2n_strerror_debug(i32 noundef %13310, ptr noundef @.str.4)
  %13312 = call ptr @__errno_location() #12
  %13313 = load i32, ptr %13312, align 4, !tbaa !5
  %13314 = call ptr @strerror(i32 noundef %13313) #11
  %13315 = call ptr @__errno_location() #12
  %13316 = load i32, ptr %13315, align 4, !tbaa !5
  %13317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13304, ptr noundef @.str.2, i32 noundef %13305, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 662, ptr noundef %13308, ptr noundef %13311, ptr noundef %13314, i32 noundef %13316) #11
  br label %13335

13318:                                            ; preds = %13296, %13289
  %13319 = load i32, ptr %309, align 4, !tbaa !5
  %13320 = call ptr @__errno_location() #12
  store i32 %13319, ptr %13320, align 4, !tbaa !5
  %13321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13322 = load i32, ptr @test_count, align 4, !tbaa !5
  %13323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13324 = load i32, ptr %13323, align 4, !tbaa !5
  %13325 = call ptr @s2n_strerror(i32 noundef %13324, ptr noundef @.str.4)
  %13326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13327 = load i32, ptr %13326, align 4, !tbaa !5
  %13328 = call ptr @s2n_strerror_debug(i32 noundef %13327, ptr noundef @.str.4)
  %13329 = call ptr @__errno_location() #12
  %13330 = load i32, ptr %13329, align 4, !tbaa !5
  %13331 = call ptr @strerror(i32 noundef %13330) #11
  %13332 = call ptr @__errno_location() #12
  %13333 = load i32, ptr %13332, align 4, !tbaa !5
  %13334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13321, ptr noundef @.str.5, i32 noundef %13322, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 662, ptr noundef %13325, ptr noundef %13328, ptr noundef %13331, i32 noundef %13333) #11
  br label %13335

13335:                                            ; preds = %13318, %13301
  call void @llvm.lifetime.end.p0(i64 4, ptr %309) #11
  br label %13336

13336:                                            ; preds = %13335
  br label %13337

13337:                                            ; preds = %13336
  call void @exit(i32 noundef 1) #13
  unreachable

13338:                                            ; No predecessors!
  br label %13339

13339:                                            ; preds = %13338
  br label %13340

13340:                                            ; preds = %13339, %13282
  br label %13341

13341:                                            ; preds = %13340
  br label %13342

13342:                                            ; preds = %13341
  br label %13343

13343:                                            ; preds = %13342
  %13344 = load i32, ptr @test_count, align 4, !tbaa !5
  %13345 = add nsw i32 %13344, 1
  store i32 %13345, ptr @test_count, align 4, !tbaa !5
  %13346 = getelementptr inbounds [2 x %struct.s2n_kem_group_params], ptr %305, i64 0, i64 1
  %13347 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef %306, ptr noundef %13346)
  %13348 = icmp eq i32 %13347, -1
  br i1 %13348, label %13349, label %13402

13349:                                            ; preds = %13343
  br label %13350

13350:                                            ; preds = %13349
  br label %13351

13351:                                            ; preds = %13350
  call void @llvm.lifetime.start.p0(i64 4, ptr %310) #11
  %13352 = call ptr @__errno_location() #12
  %13353 = load i32, ptr %13352, align 4, !tbaa !5
  store i32 %13353, ptr %310, align 4, !tbaa !5
  %13354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13355 = call i32 @s2n_print_stacktrace(ptr noundef %13354)
  %13356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13357 = trunc i8 %13356 to i1
  br i1 %13357, label %13358, label %13380

13358:                                            ; preds = %13351
  %13359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13360 = call i32 @fileno(ptr noundef %13359) #11
  %13361 = call i32 @isatty(i32 noundef %13360) #11
  %13362 = icmp ne i32 %13361, 0
  br i1 %13362, label %13363, label %13380

13363:                                            ; preds = %13358
  %13364 = load i32, ptr %310, align 4, !tbaa !5
  %13365 = call ptr @__errno_location() #12
  store i32 %13364, ptr %13365, align 4, !tbaa !5
  %13366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13367 = load i32, ptr @test_count, align 4, !tbaa !5
  %13368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13369 = load i32, ptr %13368, align 4, !tbaa !5
  %13370 = call ptr @s2n_strerror(i32 noundef %13369, ptr noundef @.str.4)
  %13371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13372 = load i32, ptr %13371, align 4, !tbaa !5
  %13373 = call ptr @s2n_strerror_debug(i32 noundef %13372, ptr noundef @.str.4)
  %13374 = call ptr @__errno_location() #12
  %13375 = load i32, ptr %13374, align 4, !tbaa !5
  %13376 = call ptr @strerror(i32 noundef %13375) #11
  %13377 = call ptr @__errno_location() #12
  %13378 = load i32, ptr %13377, align 4, !tbaa !5
  %13379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13366, ptr noundef @.str.2, i32 noundef %13367, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 663, ptr noundef %13370, ptr noundef %13373, ptr noundef %13376, i32 noundef %13378) #11
  br label %13397

13380:                                            ; preds = %13358, %13351
  %13381 = load i32, ptr %310, align 4, !tbaa !5
  %13382 = call ptr @__errno_location() #12
  store i32 %13381, ptr %13382, align 4, !tbaa !5
  %13383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13384 = load i32, ptr @test_count, align 4, !tbaa !5
  %13385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13386 = load i32, ptr %13385, align 4, !tbaa !5
  %13387 = call ptr @s2n_strerror(i32 noundef %13386, ptr noundef @.str.4)
  %13388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13389 = load i32, ptr %13388, align 4, !tbaa !5
  %13390 = call ptr @s2n_strerror_debug(i32 noundef %13389, ptr noundef @.str.4)
  %13391 = call ptr @__errno_location() #12
  %13392 = load i32, ptr %13391, align 4, !tbaa !5
  %13393 = call ptr @strerror(i32 noundef %13392) #11
  %13394 = call ptr @__errno_location() #12
  %13395 = load i32, ptr %13394, align 4, !tbaa !5
  %13396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13383, ptr noundef @.str.5, i32 noundef %13384, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 663, ptr noundef %13387, ptr noundef %13390, ptr noundef %13393, i32 noundef %13395) #11
  br label %13397

13397:                                            ; preds = %13380, %13363
  call void @llvm.lifetime.end.p0(i64 4, ptr %310) #11
  br label %13398

13398:                                            ; preds = %13397
  br label %13399

13399:                                            ; preds = %13398
  call void @exit(i32 noundef 1) #13
  unreachable

13400:                                            ; No predecessors!
  br label %13401

13401:                                            ; preds = %13400
  br label %13402

13402:                                            ; preds = %13401, %13343
  br label %13403

13403:                                            ; preds = %13402
  br label %13404

13404:                                            ; preds = %13403
  br label %13405

13405:                                            ; preds = %13404
  %13406 = load i32, ptr @test_count, align 4, !tbaa !5
  %13407 = add nsw i32 %13406, 1
  store i32 %13407, ptr @test_count, align 4, !tbaa !5
  %13408 = getelementptr inbounds [2 x %struct.s2n_kem_group_params], ptr %305, i64 0, i64 0
  %13409 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef %306, ptr noundef %13408)
  %13410 = icmp eq i32 %13409, -1
  br i1 %13410, label %13411, label %13464

13411:                                            ; preds = %13405
  br label %13412

13412:                                            ; preds = %13411
  br label %13413

13413:                                            ; preds = %13412
  call void @llvm.lifetime.start.p0(i64 4, ptr %311) #11
  %13414 = call ptr @__errno_location() #12
  %13415 = load i32, ptr %13414, align 4, !tbaa !5
  store i32 %13415, ptr %311, align 4, !tbaa !5
  %13416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13417 = call i32 @s2n_print_stacktrace(ptr noundef %13416)
  %13418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13419 = trunc i8 %13418 to i1
  br i1 %13419, label %13420, label %13442

13420:                                            ; preds = %13413
  %13421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13422 = call i32 @fileno(ptr noundef %13421) #11
  %13423 = call i32 @isatty(i32 noundef %13422) #11
  %13424 = icmp ne i32 %13423, 0
  br i1 %13424, label %13425, label %13442

13425:                                            ; preds = %13420
  %13426 = load i32, ptr %311, align 4, !tbaa !5
  %13427 = call ptr @__errno_location() #12
  store i32 %13426, ptr %13427, align 4, !tbaa !5
  %13428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13429 = load i32, ptr @test_count, align 4, !tbaa !5
  %13430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13431 = load i32, ptr %13430, align 4, !tbaa !5
  %13432 = call ptr @s2n_strerror(i32 noundef %13431, ptr noundef @.str.4)
  %13433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13434 = load i32, ptr %13433, align 4, !tbaa !5
  %13435 = call ptr @s2n_strerror_debug(i32 noundef %13434, ptr noundef @.str.4)
  %13436 = call ptr @__errno_location() #12
  %13437 = load i32, ptr %13436, align 4, !tbaa !5
  %13438 = call ptr @strerror(i32 noundef %13437) #11
  %13439 = call ptr @__errno_location() #12
  %13440 = load i32, ptr %13439, align 4, !tbaa !5
  %13441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13428, ptr noundef @.str.2, i32 noundef %13429, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 664, ptr noundef %13432, ptr noundef %13435, ptr noundef %13438, i32 noundef %13440) #11
  br label %13459

13442:                                            ; preds = %13420, %13413
  %13443 = load i32, ptr %311, align 4, !tbaa !5
  %13444 = call ptr @__errno_location() #12
  store i32 %13443, ptr %13444, align 4, !tbaa !5
  %13445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13446 = load i32, ptr @test_count, align 4, !tbaa !5
  %13447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13448 = load i32, ptr %13447, align 4, !tbaa !5
  %13449 = call ptr @s2n_strerror(i32 noundef %13448, ptr noundef @.str.4)
  %13450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13451 = load i32, ptr %13450, align 4, !tbaa !5
  %13452 = call ptr @s2n_strerror_debug(i32 noundef %13451, ptr noundef @.str.4)
  %13453 = call ptr @__errno_location() #12
  %13454 = load i32, ptr %13453, align 4, !tbaa !5
  %13455 = call ptr @strerror(i32 noundef %13454) #11
  %13456 = call ptr @__errno_location() #12
  %13457 = load i32, ptr %13456, align 4, !tbaa !5
  %13458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13445, ptr noundef @.str.5, i32 noundef %13446, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 664, ptr noundef %13449, ptr noundef %13452, ptr noundef %13455, i32 noundef %13457) #11
  br label %13459

13459:                                            ; preds = %13442, %13425
  call void @llvm.lifetime.end.p0(i64 4, ptr %311) #11
  br label %13460

13460:                                            ; preds = %13459
  br label %13461

13461:                                            ; preds = %13460
  call void @exit(i32 noundef 1) #13
  unreachable

13462:                                            ; No predecessors!
  br label %13463

13463:                                            ; preds = %13462
  br label %13464

13464:                                            ; preds = %13463, %13405
  br label %13465

13465:                                            ; preds = %13464
  br label %13466

13466:                                            ; preds = %13465
  br label %13467

13467:                                            ; preds = %13466
  %13468 = load i32, ptr @test_count, align 4, !tbaa !5
  %13469 = add nsw i32 %13468, 1
  store i32 %13469, ptr @test_count, align 4, !tbaa !5
  %13470 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %308)
  %13471 = icmp eq i32 %13470, -1
  br i1 %13471, label %13472, label %13525

13472:                                            ; preds = %13467
  br label %13473

13473:                                            ; preds = %13472
  br label %13474

13474:                                            ; preds = %13473
  call void @llvm.lifetime.start.p0(i64 4, ptr %312) #11
  %13475 = call ptr @__errno_location() #12
  %13476 = load i32, ptr %13475, align 4, !tbaa !5
  store i32 %13476, ptr %312, align 4, !tbaa !5
  %13477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13478 = call i32 @s2n_print_stacktrace(ptr noundef %13477)
  %13479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13480 = trunc i8 %13479 to i1
  br i1 %13480, label %13481, label %13503

13481:                                            ; preds = %13474
  %13482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13483 = call i32 @fileno(ptr noundef %13482) #11
  %13484 = call i32 @isatty(i32 noundef %13483) #11
  %13485 = icmp ne i32 %13484, 0
  br i1 %13485, label %13486, label %13503

13486:                                            ; preds = %13481
  %13487 = load i32, ptr %312, align 4, !tbaa !5
  %13488 = call ptr @__errno_location() #12
  store i32 %13487, ptr %13488, align 4, !tbaa !5
  %13489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13490 = load i32, ptr @test_count, align 4, !tbaa !5
  %13491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13492 = load i32, ptr %13491, align 4, !tbaa !5
  %13493 = call ptr @s2n_strerror(i32 noundef %13492, ptr noundef @.str.4)
  %13494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13495 = load i32, ptr %13494, align 4, !tbaa !5
  %13496 = call ptr @s2n_strerror_debug(i32 noundef %13495, ptr noundef @.str.4)
  %13497 = call ptr @__errno_location() #12
  %13498 = load i32, ptr %13497, align 4, !tbaa !5
  %13499 = call ptr @strerror(i32 noundef %13498) #11
  %13500 = call ptr @__errno_location() #12
  %13501 = load i32, ptr %13500, align 4, !tbaa !5
  %13502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13489, ptr noundef @.str.2, i32 noundef %13490, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 665, ptr noundef %13493, ptr noundef %13496, ptr noundef %13499, i32 noundef %13501) #11
  br label %13520

13503:                                            ; preds = %13481, %13474
  %13504 = load i32, ptr %312, align 4, !tbaa !5
  %13505 = call ptr @__errno_location() #12
  store i32 %13504, ptr %13505, align 4, !tbaa !5
  %13506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13507 = load i32, ptr @test_count, align 4, !tbaa !5
  %13508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13509 = load i32, ptr %13508, align 4, !tbaa !5
  %13510 = call ptr @s2n_strerror(i32 noundef %13509, ptr noundef @.str.4)
  %13511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13512 = load i32, ptr %13511, align 4, !tbaa !5
  %13513 = call ptr @s2n_strerror_debug(i32 noundef %13512, ptr noundef @.str.4)
  %13514 = call ptr @__errno_location() #12
  %13515 = load i32, ptr %13514, align 4, !tbaa !5
  %13516 = call ptr @strerror(i32 noundef %13515) #11
  %13517 = call ptr @__errno_location() #12
  %13518 = load i32, ptr %13517, align 4, !tbaa !5
  %13519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13506, ptr noundef @.str.5, i32 noundef %13507, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 665, ptr noundef %13510, ptr noundef %13513, ptr noundef %13516, i32 noundef %13518) #11
  br label %13520

13520:                                            ; preds = %13503, %13486
  call void @llvm.lifetime.end.p0(i64 4, ptr %312) #11
  br label %13521

13521:                                            ; preds = %13520
  br label %13522

13522:                                            ; preds = %13521
  call void @exit(i32 noundef 1) #13
  unreachable

13523:                                            ; No predecessors!
  br label %13524

13524:                                            ; preds = %13523
  br label %13525

13525:                                            ; preds = %13524, %13467
  br label %13526

13526:                                            ; preds = %13525
  br label %13527

13527:                                            ; preds = %13526
  br label %13528

13528:                                            ; preds = %13527
  %13529 = load i32, ptr @test_count, align 4, !tbaa !5
  %13530 = add nsw i32 %13529, 1
  store i32 %13530, ptr @test_count, align 4, !tbaa !5
  %13531 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !98
  %13532 = load ptr, ptr %290, align 8, !tbaa !9
  %13533 = call i32 %13531(ptr noundef %13532, ptr noundef %306)
  %13534 = icmp eq i32 %13533, -1
  br i1 %13534, label %13535, label %13588

13535:                                            ; preds = %13528
  br label %13536

13536:                                            ; preds = %13535
  br label %13537

13537:                                            ; preds = %13536
  call void @llvm.lifetime.start.p0(i64 4, ptr %313) #11
  %13538 = call ptr @__errno_location() #12
  %13539 = load i32, ptr %13538, align 4, !tbaa !5
  store i32 %13539, ptr %313, align 4, !tbaa !5
  %13540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13541 = call i32 @s2n_print_stacktrace(ptr noundef %13540)
  %13542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13543 = trunc i8 %13542 to i1
  br i1 %13543, label %13544, label %13566

13544:                                            ; preds = %13537
  %13545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13546 = call i32 @fileno(ptr noundef %13545) #11
  %13547 = call i32 @isatty(i32 noundef %13546) #11
  %13548 = icmp ne i32 %13547, 0
  br i1 %13548, label %13549, label %13566

13549:                                            ; preds = %13544
  %13550 = load i32, ptr %313, align 4, !tbaa !5
  %13551 = call ptr @__errno_location() #12
  store i32 %13550, ptr %13551, align 4, !tbaa !5
  %13552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13553 = load i32, ptr @test_count, align 4, !tbaa !5
  %13554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13555 = load i32, ptr %13554, align 4, !tbaa !5
  %13556 = call ptr @s2n_strerror(i32 noundef %13555, ptr noundef @.str.4)
  %13557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13558 = load i32, ptr %13557, align 4, !tbaa !5
  %13559 = call ptr @s2n_strerror_debug(i32 noundef %13558, ptr noundef @.str.4)
  %13560 = call ptr @__errno_location() #12
  %13561 = load i32, ptr %13560, align 4, !tbaa !5
  %13562 = call ptr @strerror(i32 noundef %13561) #11
  %13563 = call ptr @__errno_location() #12
  %13564 = load i32, ptr %13563, align 4, !tbaa !5
  %13565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13552, ptr noundef @.str.2, i32 noundef %13553, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 667, ptr noundef %13556, ptr noundef %13559, ptr noundef %13562, i32 noundef %13564) #11
  br label %13583

13566:                                            ; preds = %13544, %13537
  %13567 = load i32, ptr %313, align 4, !tbaa !5
  %13568 = call ptr @__errno_location() #12
  store i32 %13567, ptr %13568, align 4, !tbaa !5
  %13569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13570 = load i32, ptr @test_count, align 4, !tbaa !5
  %13571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13572 = load i32, ptr %13571, align 4, !tbaa !5
  %13573 = call ptr @s2n_strerror(i32 noundef %13572, ptr noundef @.str.4)
  %13574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13575 = load i32, ptr %13574, align 4, !tbaa !5
  %13576 = call ptr @s2n_strerror_debug(i32 noundef %13575, ptr noundef @.str.4)
  %13577 = call ptr @__errno_location() #12
  %13578 = load i32, ptr %13577, align 4, !tbaa !5
  %13579 = call ptr @strerror(i32 noundef %13578) #11
  %13580 = call ptr @__errno_location() #12
  %13581 = load i32, ptr %13580, align 4, !tbaa !5
  %13582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13569, ptr noundef @.str.5, i32 noundef %13570, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 667, ptr noundef %13573, ptr noundef %13576, ptr noundef %13579, i32 noundef %13581) #11
  br label %13583

13583:                                            ; preds = %13566, %13549
  call void @llvm.lifetime.end.p0(i64 4, ptr %313) #11
  br label %13584

13584:                                            ; preds = %13583
  br label %13585

13585:                                            ; preds = %13584
  call void @exit(i32 noundef 1) #13
  unreachable

13586:                                            ; No predecessors!
  br label %13587

13587:                                            ; preds = %13586
  br label %13588

13588:                                            ; preds = %13587, %13528
  br label %13589

13589:                                            ; preds = %13588
  br label %13590

13590:                                            ; preds = %13589
  br label %13591

13591:                                            ; preds = %13590
  %13592 = load i32, ptr @test_count, align 4, !tbaa !5
  %13593 = add nsw i32 %13592, 1
  store i32 %13593, ptr @test_count, align 4, !tbaa !5
  %13594 = getelementptr inbounds %struct.s2n_stuffer, ptr %306, i32 0, i32 2
  %13595 = load i32, ptr %13594, align 4, !tbaa !58
  %13596 = getelementptr inbounds %struct.s2n_stuffer, ptr %306, i32 0, i32 1
  %13597 = load i32, ptr %13596, align 8, !tbaa !59
  %13598 = sub i32 %13595, %13597
  %13599 = icmp eq i32 %13598, 0
  br i1 %13599, label %13653, label %13600

13600:                                            ; preds = %13591
  br label %13601

13601:                                            ; preds = %13600
  br label %13602

13602:                                            ; preds = %13601
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #11
  %13603 = call ptr @__errno_location() #12
  %13604 = load i32, ptr %13603, align 4, !tbaa !5
  store i32 %13604, ptr %314, align 4, !tbaa !5
  %13605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13606 = call i32 @s2n_print_stacktrace(ptr noundef %13605)
  %13607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13608 = trunc i8 %13607 to i1
  br i1 %13608, label %13609, label %13631

13609:                                            ; preds = %13602
  %13610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13611 = call i32 @fileno(ptr noundef %13610) #11
  %13612 = call i32 @isatty(i32 noundef %13611) #11
  %13613 = icmp ne i32 %13612, 0
  br i1 %13613, label %13614, label %13631

13614:                                            ; preds = %13609
  %13615 = load i32, ptr %314, align 4, !tbaa !5
  %13616 = call ptr @__errno_location() #12
  store i32 %13615, ptr %13616, align 4, !tbaa !5
  %13617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13618 = load i32, ptr @test_count, align 4, !tbaa !5
  %13619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13620 = load i32, ptr %13619, align 4, !tbaa !5
  %13621 = call ptr @s2n_strerror(i32 noundef %13620, ptr noundef @.str.4)
  %13622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13623 = load i32, ptr %13622, align 4, !tbaa !5
  %13624 = call ptr @s2n_strerror_debug(i32 noundef %13623, ptr noundef @.str.4)
  %13625 = call ptr @__errno_location() #12
  %13626 = load i32, ptr %13625, align 4, !tbaa !5
  %13627 = call ptr @strerror(i32 noundef %13626) #11
  %13628 = call ptr @__errno_location() #12
  %13629 = load i32, ptr %13628, align 4, !tbaa !5
  %13630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13617, ptr noundef @.str.2, i32 noundef %13618, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 668, ptr noundef %13621, ptr noundef %13624, ptr noundef %13627, i32 noundef %13629) #11
  br label %13648

13631:                                            ; preds = %13609, %13602
  %13632 = load i32, ptr %314, align 4, !tbaa !5
  %13633 = call ptr @__errno_location() #12
  store i32 %13632, ptr %13633, align 4, !tbaa !5
  %13634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13635 = load i32, ptr @test_count, align 4, !tbaa !5
  %13636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13637 = load i32, ptr %13636, align 4, !tbaa !5
  %13638 = call ptr @s2n_strerror(i32 noundef %13637, ptr noundef @.str.4)
  %13639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13640 = load i32, ptr %13639, align 4, !tbaa !5
  %13641 = call ptr @s2n_strerror_debug(i32 noundef %13640, ptr noundef @.str.4)
  %13642 = call ptr @__errno_location() #12
  %13643 = load i32, ptr %13642, align 4, !tbaa !5
  %13644 = call ptr @strerror(i32 noundef %13643) #11
  %13645 = call ptr @__errno_location() #12
  %13646 = load i32, ptr %13645, align 4, !tbaa !5
  %13647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13634, ptr noundef @.str.5, i32 noundef %13635, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 668, ptr noundef %13638, ptr noundef %13641, ptr noundef %13644, i32 noundef %13646) #11
  br label %13648

13648:                                            ; preds = %13631, %13614
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #11
  br label %13649

13649:                                            ; preds = %13648
  br label %13650

13650:                                            ; preds = %13649
  call void @exit(i32 noundef 1) #13
  unreachable

13651:                                            ; No predecessors!
  br label %13652

13652:                                            ; preds = %13651
  br label %13653

13653:                                            ; preds = %13652, %13591
  br label %13654

13654:                                            ; preds = %13653
  br label %13655

13655:                                            ; preds = %13654
  br label %13656

13656:                                            ; preds = %13655
  %13657 = load i32, ptr @test_count, align 4, !tbaa !5
  %13658 = add nsw i32 %13657, 1
  store i32 %13658, ptr @test_count, align 4, !tbaa !5
  %13659 = load ptr, ptr %290, align 8, !tbaa !9
  %13660 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %13659, i32 noundef 16)
  br i1 %13660, label %13661, label %13714

13661:                                            ; preds = %13656
  br label %13662

13662:                                            ; preds = %13661
  br label %13663

13663:                                            ; preds = %13662
  call void @llvm.lifetime.start.p0(i64 4, ptr %315) #11
  %13664 = call ptr @__errno_location() #12
  %13665 = load i32, ptr %13664, align 4, !tbaa !5
  store i32 %13665, ptr %315, align 4, !tbaa !5
  %13666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13667 = call i32 @s2n_print_stacktrace(ptr noundef %13666)
  %13668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13669 = trunc i8 %13668 to i1
  br i1 %13669, label %13670, label %13692

13670:                                            ; preds = %13663
  %13671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13672 = call i32 @fileno(ptr noundef %13671) #11
  %13673 = call i32 @isatty(i32 noundef %13672) #11
  %13674 = icmp ne i32 %13673, 0
  br i1 %13674, label %13675, label %13692

13675:                                            ; preds = %13670
  %13676 = load i32, ptr %315, align 4, !tbaa !5
  %13677 = call ptr @__errno_location() #12
  store i32 %13676, ptr %13677, align 4, !tbaa !5
  %13678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13679 = load i32, ptr @test_count, align 4, !tbaa !5
  %13680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13681 = load i32, ptr %13680, align 4, !tbaa !5
  %13682 = call ptr @s2n_strerror(i32 noundef %13681, ptr noundef @.str.4)
  %13683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13684 = load i32, ptr %13683, align 4, !tbaa !5
  %13685 = call ptr @s2n_strerror_debug(i32 noundef %13684, ptr noundef @.str.4)
  %13686 = call ptr @__errno_location() #12
  %13687 = load i32, ptr %13686, align 4, !tbaa !5
  %13688 = call ptr @strerror(i32 noundef %13687) #11
  %13689 = call ptr @__errno_location() #12
  %13690 = load i32, ptr %13689, align 4, !tbaa !5
  %13691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13678, ptr noundef @.str.2, i32 noundef %13679, ptr noundef @.str.145, ptr noundef @.str.1, i32 noundef 671, ptr noundef %13682, ptr noundef %13685, ptr noundef %13688, i32 noundef %13690) #11
  br label %13709

13692:                                            ; preds = %13670, %13663
  %13693 = load i32, ptr %315, align 4, !tbaa !5
  %13694 = call ptr @__errno_location() #12
  store i32 %13693, ptr %13694, align 4, !tbaa !5
  %13695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13696 = load i32, ptr @test_count, align 4, !tbaa !5
  %13697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13698 = load i32, ptr %13697, align 4, !tbaa !5
  %13699 = call ptr @s2n_strerror(i32 noundef %13698, ptr noundef @.str.4)
  %13700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13701 = load i32, ptr %13700, align 4, !tbaa !5
  %13702 = call ptr @s2n_strerror_debug(i32 noundef %13701, ptr noundef @.str.4)
  %13703 = call ptr @__errno_location() #12
  %13704 = load i32, ptr %13703, align 4, !tbaa !5
  %13705 = call ptr @strerror(i32 noundef %13704) #11
  %13706 = call ptr @__errno_location() #12
  %13707 = load i32, ptr %13706, align 4, !tbaa !5
  %13708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13695, ptr noundef @.str.5, i32 noundef %13696, ptr noundef @.str.145, ptr noundef @.str.1, i32 noundef 671, ptr noundef %13699, ptr noundef %13702, ptr noundef %13705, i32 noundef %13707) #11
  br label %13709

13709:                                            ; preds = %13692, %13675
  call void @llvm.lifetime.end.p0(i64 4, ptr %315) #11
  br label %13710

13710:                                            ; preds = %13709
  br label %13711

13711:                                            ; preds = %13710
  call void @exit(i32 noundef 1) #13
  unreachable

13712:                                            ; No predecessors!
  br label %13713

13713:                                            ; preds = %13712
  br label %13714

13714:                                            ; preds = %13713, %13656
  br label %13715

13715:                                            ; preds = %13714
  br label %13716

13716:                                            ; preds = %13715
  call void @llvm.lifetime.start.p0(i64 8, ptr %316) #11
  %13717 = load ptr, ptr %290, align 8, !tbaa !9
  %13718 = getelementptr inbounds %struct.s2n_connection, ptr %13717, i32 0, i32 31
  %13719 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %13718, i32 0, i32 5
  store ptr %13719, ptr %316, align 8, !tbaa !9
  br label %13720

13720:                                            ; preds = %13716
  %13721 = load i32, ptr @test_count, align 4, !tbaa !5
  %13722 = add nsw i32 %13721, 1
  store i32 %13722, ptr @test_count, align 4, !tbaa !5
  %13723 = load ptr, ptr %316, align 8, !tbaa !9
  %13724 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %13723, i32 0, i32 0
  %13725 = load ptr, ptr %13724, align 8, !tbaa !68
  %13726 = load ptr, ptr %300, align 8, !tbaa !9
  %13727 = icmp eq ptr %13725, %13726
  br i1 %13727, label %13781, label %13728

13728:                                            ; preds = %13720
  br label %13729

13729:                                            ; preds = %13728
  br label %13730

13730:                                            ; preds = %13729
  call void @llvm.lifetime.start.p0(i64 4, ptr %317) #11
  %13731 = call ptr @__errno_location() #12
  %13732 = load i32, ptr %13731, align 4, !tbaa !5
  store i32 %13732, ptr %317, align 4, !tbaa !5
  %13733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13734 = call i32 @s2n_print_stacktrace(ptr noundef %13733)
  %13735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13736 = trunc i8 %13735 to i1
  br i1 %13736, label %13737, label %13759

13737:                                            ; preds = %13730
  %13738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13739 = call i32 @fileno(ptr noundef %13738) #11
  %13740 = call i32 @isatty(i32 noundef %13739) #11
  %13741 = icmp ne i32 %13740, 0
  br i1 %13741, label %13742, label %13759

13742:                                            ; preds = %13737
  %13743 = load i32, ptr %317, align 4, !tbaa !5
  %13744 = call ptr @__errno_location() #12
  store i32 %13743, ptr %13744, align 4, !tbaa !5
  %13745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13746 = load i32, ptr @test_count, align 4, !tbaa !5
  %13747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13748 = load i32, ptr %13747, align 4, !tbaa !5
  %13749 = call ptr @s2n_strerror(i32 noundef %13748, ptr noundef @.str.4)
  %13750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13751 = load i32, ptr %13750, align 4, !tbaa !5
  %13752 = call ptr @s2n_strerror_debug(i32 noundef %13751, ptr noundef @.str.4)
  %13753 = call ptr @__errno_location() #12
  %13754 = load i32, ptr %13753, align 4, !tbaa !5
  %13755 = call ptr @strerror(i32 noundef %13754) #11
  %13756 = call ptr @__errno_location() #12
  %13757 = load i32, ptr %13756, align 4, !tbaa !5
  %13758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13745, ptr noundef @.str.2, i32 noundef %13746, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 675, ptr noundef %13749, ptr noundef %13752, ptr noundef %13755, i32 noundef %13757) #11
  br label %13776

13759:                                            ; preds = %13737, %13730
  %13760 = load i32, ptr %317, align 4, !tbaa !5
  %13761 = call ptr @__errno_location() #12
  store i32 %13760, ptr %13761, align 4, !tbaa !5
  %13762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13763 = load i32, ptr @test_count, align 4, !tbaa !5
  %13764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13765 = load i32, ptr %13764, align 4, !tbaa !5
  %13766 = call ptr @s2n_strerror(i32 noundef %13765, ptr noundef @.str.4)
  %13767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13768 = load i32, ptr %13767, align 4, !tbaa !5
  %13769 = call ptr @s2n_strerror_debug(i32 noundef %13768, ptr noundef @.str.4)
  %13770 = call ptr @__errno_location() #12
  %13771 = load i32, ptr %13770, align 4, !tbaa !5
  %13772 = call ptr @strerror(i32 noundef %13771) #11
  %13773 = call ptr @__errno_location() #12
  %13774 = load i32, ptr %13773, align 4, !tbaa !5
  %13775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13762, ptr noundef @.str.5, i32 noundef %13763, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 675, ptr noundef %13766, ptr noundef %13769, ptr noundef %13772, i32 noundef %13774) #11
  br label %13776

13776:                                            ; preds = %13759, %13742
  call void @llvm.lifetime.end.p0(i64 4, ptr %317) #11
  br label %13777

13777:                                            ; preds = %13776
  br label %13778

13778:                                            ; preds = %13777
  call void @exit(i32 noundef 1) #13
  unreachable

13779:                                            ; No predecessors!
  br label %13780

13780:                                            ; preds = %13779
  br label %13781

13781:                                            ; preds = %13780, %13720
  br label %13782

13782:                                            ; preds = %13781
  br label %13783

13783:                                            ; preds = %13782
  br label %13784

13784:                                            ; preds = %13783
  %13785 = load i32, ptr @test_count, align 4, !tbaa !5
  %13786 = add nsw i32 %13785, 1
  store i32 %13786, ptr @test_count, align 4, !tbaa !5
  %13787 = load ptr, ptr %316, align 8, !tbaa !9
  %13788 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %13787, i32 0, i32 1
  %13789 = getelementptr inbounds %struct.s2n_kem_params, ptr %13788, i32 0, i32 1
  %13790 = getelementptr inbounds %struct.s2n_blob, ptr %13789, i32 0, i32 0
  %13791 = load ptr, ptr %13790, align 8, !tbaa !99
  %13792 = icmp eq ptr %13791, null
  br i1 %13792, label %13793, label %13846

13793:                                            ; preds = %13784
  br label %13794

13794:                                            ; preds = %13793
  br label %13795

13795:                                            ; preds = %13794
  call void @llvm.lifetime.start.p0(i64 4, ptr %318) #11
  %13796 = call ptr @__errno_location() #12
  %13797 = load i32, ptr %13796, align 4, !tbaa !5
  store i32 %13797, ptr %318, align 4, !tbaa !5
  %13798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13799 = call i32 @s2n_print_stacktrace(ptr noundef %13798)
  %13800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13801 = trunc i8 %13800 to i1
  br i1 %13801, label %13802, label %13824

13802:                                            ; preds = %13795
  %13803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13804 = call i32 @fileno(ptr noundef %13803) #11
  %13805 = call i32 @isatty(i32 noundef %13804) #11
  %13806 = icmp ne i32 %13805, 0
  br i1 %13806, label %13807, label %13824

13807:                                            ; preds = %13802
  %13808 = load i32, ptr %318, align 4, !tbaa !5
  %13809 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %13818 = call ptr @__errno_location() #12
  %13819 = load i32, ptr %13818, align 4, !tbaa !5
  %13820 = call ptr @strerror(i32 noundef %13819) #11
  %13821 = call ptr @__errno_location() #12
  %13822 = load i32, ptr %13821, align 4, !tbaa !5
  %13823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13810, ptr noundef @.str.2, i32 noundef %13811, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 676, ptr noundef %13814, ptr noundef %13817, ptr noundef %13820, i32 noundef %13822) #11
  br label %13841

13824:                                            ; preds = %13802, %13795
  %13825 = load i32, ptr %318, align 4, !tbaa !5
  %13826 = call ptr @__errno_location() #12
  store i32 %13825, ptr %13826, align 4, !tbaa !5
  %13827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13828 = load i32, ptr @test_count, align 4, !tbaa !5
  %13829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13830 = load i32, ptr %13829, align 4, !tbaa !5
  %13831 = call ptr @s2n_strerror(i32 noundef %13830, ptr noundef @.str.4)
  %13832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13833 = load i32, ptr %13832, align 4, !tbaa !5
  %13834 = call ptr @s2n_strerror_debug(i32 noundef %13833, ptr noundef @.str.4)
  %13835 = call ptr @__errno_location() #12
  %13836 = load i32, ptr %13835, align 4, !tbaa !5
  %13837 = call ptr @strerror(i32 noundef %13836) #11
  %13838 = call ptr @__errno_location() #12
  %13839 = load i32, ptr %13838, align 4, !tbaa !5
  %13840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13827, ptr noundef @.str.5, i32 noundef %13828, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 676, ptr noundef %13831, ptr noundef %13834, ptr noundef %13837, i32 noundef %13839) #11
  br label %13841

13841:                                            ; preds = %13824, %13807
  call void @llvm.lifetime.end.p0(i64 4, ptr %318) #11
  br label %13842

13842:                                            ; preds = %13841
  br label %13843

13843:                                            ; preds = %13842
  call void @exit(i32 noundef 1) #13
  unreachable

13844:                                            ; No predecessors!
  br label %13845

13845:                                            ; preds = %13844
  br label %13846

13846:                                            ; preds = %13845, %13784
  br label %13847

13847:                                            ; preds = %13846
  br label %13848

13848:                                            ; preds = %13847
  br label %13849

13849:                                            ; preds = %13848
  %13850 = load i32, ptr @test_count, align 4, !tbaa !5
  %13851 = add nsw i32 %13850, 1
  store i32 %13851, ptr @test_count, align 4, !tbaa !5
  %13852 = load ptr, ptr %316, align 8, !tbaa !9
  %13853 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %13852, i32 0, i32 2
  %13854 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %13853, i32 0, i32 1
  %13855 = load ptr, ptr %13854, align 8, !tbaa !78
  %13856 = icmp eq ptr %13855, null
  br i1 %13856, label %13857, label %13910

13857:                                            ; preds = %13849
  br label %13858

13858:                                            ; preds = %13857
  br label %13859

13859:                                            ; preds = %13858
  call void @llvm.lifetime.start.p0(i64 4, ptr %319) #11
  %13860 = call ptr @__errno_location() #12
  %13861 = load i32, ptr %13860, align 4, !tbaa !5
  store i32 %13861, ptr %319, align 4, !tbaa !5
  %13862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13863 = call i32 @s2n_print_stacktrace(ptr noundef %13862)
  %13864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13865 = trunc i8 %13864 to i1
  br i1 %13865, label %13866, label %13888

13866:                                            ; preds = %13859
  %13867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13868 = call i32 @fileno(ptr noundef %13867) #11
  %13869 = call i32 @isatty(i32 noundef %13868) #11
  %13870 = icmp ne i32 %13869, 0
  br i1 %13870, label %13871, label %13888

13871:                                            ; preds = %13866
  %13872 = load i32, ptr %319, align 4, !tbaa !5
  %13873 = call ptr @__errno_location() #12
  store i32 %13872, ptr %13873, align 4, !tbaa !5
  %13874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13875 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %13877, ptr noundef @.str.4)
  %13879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13880 = load i32, ptr %13879, align 4, !tbaa !5
  %13881 = call ptr @s2n_strerror_debug(i32 noundef %13880, ptr noundef @.str.4)
  %13882 = call ptr @__errno_location() #12
  %13883 = load i32, ptr %13882, align 4, !tbaa !5
  %13884 = call ptr @strerror(i32 noundef %13883) #11
  %13885 = call ptr @__errno_location() #12
  %13886 = load i32, ptr %13885, align 4, !tbaa !5
  %13887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13874, ptr noundef @.str.2, i32 noundef %13875, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 677, ptr noundef %13878, ptr noundef %13881, ptr noundef %13884, i32 noundef %13886) #11
  br label %13905

13888:                                            ; preds = %13866, %13859
  %13889 = load i32, ptr %319, align 4, !tbaa !5
  %13890 = call ptr @__errno_location() #12
  store i32 %13889, ptr %13890, align 4, !tbaa !5
  %13891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13892 = load i32, ptr @test_count, align 4, !tbaa !5
  %13893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13894 = load i32, ptr %13893, align 4, !tbaa !5
  %13895 = call ptr @s2n_strerror(i32 noundef %13894, ptr noundef @.str.4)
  %13896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13897 = load i32, ptr %13896, align 4, !tbaa !5
  %13898 = call ptr @s2n_strerror_debug(i32 noundef %13897, ptr noundef @.str.4)
  %13899 = call ptr @__errno_location() #12
  %13900 = load i32, ptr %13899, align 4, !tbaa !5
  %13901 = call ptr @strerror(i32 noundef %13900) #11
  %13902 = call ptr @__errno_location() #12
  %13903 = load i32, ptr %13902, align 4, !tbaa !5
  %13904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13891, ptr noundef @.str.5, i32 noundef %13892, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 677, ptr noundef %13895, ptr noundef %13898, ptr noundef %13901, i32 noundef %13903) #11
  br label %13905

13905:                                            ; preds = %13888, %13871
  call void @llvm.lifetime.end.p0(i64 4, ptr %319) #11
  br label %13906

13906:                                            ; preds = %13905
  br label %13907

13907:                                            ; preds = %13906
  call void @exit(i32 noundef 1) #13
  unreachable

13908:                                            ; No predecessors!
  br label %13909

13909:                                            ; preds = %13908
  br label %13910

13910:                                            ; preds = %13909, %13849
  br label %13911

13911:                                            ; preds = %13910
  br label %13912

13912:                                            ; preds = %13911
  call void @llvm.lifetime.start.p0(i64 8, ptr %320) #11
  store i64 0, ptr %320, align 8, !tbaa !65
  br label %13913

13913:                                            ; preds = %13981, %13912
  %13914 = load i64, ptr %320, align 8, !tbaa !65
  %13915 = icmp ult i64 %13914, 2
  br i1 %13915, label %13917, label %13916

13916:                                            ; preds = %13913
  store i32 1254, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %320) #11
  br label %13984

13917:                                            ; preds = %13913
  br label %13918

13918:                                            ; preds = %13917
  %13919 = load i32, ptr @test_count, align 4, !tbaa !5
  %13920 = add nsw i32 %13919, 1
  store i32 %13920, ptr @test_count, align 4, !tbaa !5
  %13921 = load i64, ptr %320, align 8, !tbaa !65
  %13922 = getelementptr inbounds [2 x %struct.s2n_kem_group_params], ptr %305, i64 0, i64 %13921
  %13923 = call i32 @s2n_kem_group_free(ptr noundef %13922)
  %13924 = icmp eq i32 %13923, -1
  br i1 %13924, label %13925, label %13978

13925:                                            ; preds = %13918
  br label %13926

13926:                                            ; preds = %13925
  br label %13927

13927:                                            ; preds = %13926
  call void @llvm.lifetime.start.p0(i64 4, ptr %321) #11
  %13928 = call ptr @__errno_location() #12
  %13929 = load i32, ptr %13928, align 4, !tbaa !5
  store i32 %13929, ptr %321, align 4, !tbaa !5
  %13930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13931 = call i32 @s2n_print_stacktrace(ptr noundef %13930)
  %13932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13933 = trunc i8 %13932 to i1
  br i1 %13933, label %13934, label %13956

13934:                                            ; preds = %13927
  %13935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13936 = call i32 @fileno(ptr noundef %13935) #11
  %13937 = call i32 @isatty(i32 noundef %13936) #11
  %13938 = icmp ne i32 %13937, 0
  br i1 %13938, label %13939, label %13956

13939:                                            ; preds = %13934
  %13940 = load i32, ptr %321, align 4, !tbaa !5
  %13941 = call ptr @__errno_location() #12
  store i32 %13940, ptr %13941, align 4, !tbaa !5
  %13942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13943 = load i32, ptr @test_count, align 4, !tbaa !5
  %13944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13945 = load i32, ptr %13944, align 4, !tbaa !5
  %13946 = call ptr @s2n_strerror(i32 noundef %13945, ptr noundef @.str.4)
  %13947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13948 = load i32, ptr %13947, align 4, !tbaa !5
  %13949 = call ptr @s2n_strerror_debug(i32 noundef %13948, ptr noundef @.str.4)
  %13950 = call ptr @__errno_location() #12
  %13951 = load i32, ptr %13950, align 4, !tbaa !5
  %13952 = call ptr @strerror(i32 noundef %13951) #11
  %13953 = call ptr @__errno_location() #12
  %13954 = load i32, ptr %13953, align 4, !tbaa !5
  %13955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13942, ptr noundef @.str.2, i32 noundef %13943, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 680, ptr noundef %13946, ptr noundef %13949, ptr noundef %13952, i32 noundef %13954) #11
  br label %13973

13956:                                            ; preds = %13934, %13927
  %13957 = load i32, ptr %321, align 4, !tbaa !5
  %13958 = call ptr @__errno_location() #12
  store i32 %13957, ptr %13958, align 4, !tbaa !5
  %13959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13960 = load i32, ptr @test_count, align 4, !tbaa !5
  %13961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13962 = load i32, ptr %13961, align 4, !tbaa !5
  %13963 = call ptr @s2n_strerror(i32 noundef %13962, ptr noundef @.str.4)
  %13964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13965 = load i32, ptr %13964, align 4, !tbaa !5
  %13966 = call ptr @s2n_strerror_debug(i32 noundef %13965, ptr noundef @.str.4)
  %13967 = call ptr @__errno_location() #12
  %13968 = load i32, ptr %13967, align 4, !tbaa !5
  %13969 = call ptr @strerror(i32 noundef %13968) #11
  %13970 = call ptr @__errno_location() #12
  %13971 = load i32, ptr %13970, align 4, !tbaa !5
  %13972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13959, ptr noundef @.str.5, i32 noundef %13960, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 680, ptr noundef %13963, ptr noundef %13966, ptr noundef %13969, i32 noundef %13971) #11
  br label %13973

13973:                                            ; preds = %13956, %13939
  call void @llvm.lifetime.end.p0(i64 4, ptr %321) #11
  br label %13974

13974:                                            ; preds = %13973
  br label %13975

13975:                                            ; preds = %13974
  call void @exit(i32 noundef 1) #13
  unreachable

13976:                                            ; No predecessors!
  br label %13977

13977:                                            ; preds = %13976
  br label %13978

13978:                                            ; preds = %13977, %13918
  br label %13979

13979:                                            ; preds = %13978
  br label %13980

13980:                                            ; preds = %13979
  br label %13981

13981:                                            ; preds = %13980
  %13982 = load i64, ptr %320, align 8, !tbaa !65
  %13983 = add i64 %13982, 1
  store i64 %13983, ptr %320, align 8, !tbaa !65
  br label %13913, !llvm.loop !106

13984:                                            ; preds = %13916
  br label %13985

13985:                                            ; preds = %13984
  %13986 = load i32, ptr @test_count, align 4, !tbaa !5
  %13987 = add nsw i32 %13986, 1
  store i32 %13987, ptr @test_count, align 4, !tbaa !5
  %13988 = call i32 @s2n_stuffer_free(ptr noundef %306)
  %13989 = icmp eq i32 %13988, -1
  br i1 %13989, label %13990, label %14043

13990:                                            ; preds = %13985
  br label %13991

13991:                                            ; preds = %13990
  br label %13992

13992:                                            ; preds = %13991
  call void @llvm.lifetime.start.p0(i64 4, ptr %322) #11
  %13993 = call ptr @__errno_location() #12
  %13994 = load i32, ptr %13993, align 4, !tbaa !5
  store i32 %13994, ptr %322, align 4, !tbaa !5
  %13995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13996 = call i32 @s2n_print_stacktrace(ptr noundef %13995)
  %13997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13998 = trunc i8 %13997 to i1
  br i1 %13998, label %13999, label %14021

13999:                                            ; preds = %13992
  %14000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14001 = call i32 @fileno(ptr noundef %14000) #11
  %14002 = call i32 @isatty(i32 noundef %14001) #11
  %14003 = icmp ne i32 %14002, 0
  br i1 %14003, label %14004, label %14021

14004:                                            ; preds = %13999
  %14005 = load i32, ptr %322, align 4, !tbaa !5
  %14006 = call ptr @__errno_location() #12
  store i32 %14005, ptr %14006, align 4, !tbaa !5
  %14007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14008 = load i32, ptr @test_count, align 4, !tbaa !5
  %14009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14010 = load i32, ptr %14009, align 4, !tbaa !5
  %14011 = call ptr @s2n_strerror(i32 noundef %14010, ptr noundef @.str.4)
  %14012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14013 = load i32, ptr %14012, align 4, !tbaa !5
  %14014 = call ptr @s2n_strerror_debug(i32 noundef %14013, ptr noundef @.str.4)
  %14015 = call ptr @__errno_location() #12
  %14016 = load i32, ptr %14015, align 4, !tbaa !5
  %14017 = call ptr @strerror(i32 noundef %14016) #11
  %14018 = call ptr @__errno_location() #12
  %14019 = load i32, ptr %14018, align 4, !tbaa !5
  %14020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14007, ptr noundef @.str.2, i32 noundef %14008, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 682, ptr noundef %14011, ptr noundef %14014, ptr noundef %14017, i32 noundef %14019) #11
  br label %14038

14021:                                            ; preds = %13999, %13992
  %14022 = load i32, ptr %322, align 4, !tbaa !5
  %14023 = call ptr @__errno_location() #12
  store i32 %14022, ptr %14023, align 4, !tbaa !5
  %14024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14025 = load i32, ptr @test_count, align 4, !tbaa !5
  %14026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14027 = load i32, ptr %14026, align 4, !tbaa !5
  %14028 = call ptr @s2n_strerror(i32 noundef %14027, ptr noundef @.str.4)
  %14029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14030 = load i32, ptr %14029, align 4, !tbaa !5
  %14031 = call ptr @s2n_strerror_debug(i32 noundef %14030, ptr noundef @.str.4)
  %14032 = call ptr @__errno_location() #12
  %14033 = load i32, ptr %14032, align 4, !tbaa !5
  %14034 = call ptr @strerror(i32 noundef %14033) #11
  %14035 = call ptr @__errno_location() #12
  %14036 = load i32, ptr %14035, align 4, !tbaa !5
  %14037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14024, ptr noundef @.str.5, i32 noundef %14025, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 682, ptr noundef %14028, ptr noundef %14031, ptr noundef %14034, i32 noundef %14036) #11
  br label %14038

14038:                                            ; preds = %14021, %14004
  call void @llvm.lifetime.end.p0(i64 4, ptr %322) #11
  br label %14039

14039:                                            ; preds = %14038
  br label %14040

14040:                                            ; preds = %14039
  call void @exit(i32 noundef 1) #13
  unreachable

14041:                                            ; No predecessors!
  br label %14042

14042:                                            ; preds = %14041
  br label %14043

14043:                                            ; preds = %14042, %13985
  br label %14044

14044:                                            ; preds = %14043
  br label %14045

14045:                                            ; preds = %14044
  br label %14046

14046:                                            ; preds = %14045
  %14047 = load i32, ptr @test_count, align 4, !tbaa !5
  %14048 = add nsw i32 %14047, 1
  store i32 %14048, ptr @test_count, align 4, !tbaa !5
  %14049 = load ptr, ptr %290, align 8, !tbaa !9
  %14050 = call i32 @s2n_connection_free(ptr noundef %14049)
  %14051 = icmp eq i32 %14050, -1
  br i1 %14051, label %14052, label %14105

14052:                                            ; preds = %14046
  br label %14053

14053:                                            ; preds = %14052
  br label %14054

14054:                                            ; preds = %14053
  call void @llvm.lifetime.start.p0(i64 4, ptr %323) #11
  %14055 = call ptr @__errno_location() #12
  %14056 = load i32, ptr %14055, align 4, !tbaa !5
  store i32 %14056, ptr %323, align 4, !tbaa !5
  %14057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14058 = call i32 @s2n_print_stacktrace(ptr noundef %14057)
  %14059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14060 = trunc i8 %14059 to i1
  br i1 %14060, label %14061, label %14083

14061:                                            ; preds = %14054
  %14062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14063 = call i32 @fileno(ptr noundef %14062) #11
  %14064 = call i32 @isatty(i32 noundef %14063) #11
  %14065 = icmp ne i32 %14064, 0
  br i1 %14065, label %14066, label %14083

14066:                                            ; preds = %14061
  %14067 = load i32, ptr %323, align 4, !tbaa !5
  %14068 = call ptr @__errno_location() #12
  store i32 %14067, ptr %14068, align 4, !tbaa !5
  %14069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14070 = load i32, ptr @test_count, align 4, !tbaa !5
  %14071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14072 = load i32, ptr %14071, align 4, !tbaa !5
  %14073 = call ptr @s2n_strerror(i32 noundef %14072, ptr noundef @.str.4)
  %14074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14075 = load i32, ptr %14074, align 4, !tbaa !5
  %14076 = call ptr @s2n_strerror_debug(i32 noundef %14075, ptr noundef @.str.4)
  %14077 = call ptr @__errno_location() #12
  %14078 = load i32, ptr %14077, align 4, !tbaa !5
  %14079 = call ptr @strerror(i32 noundef %14078) #11
  %14080 = call ptr @__errno_location() #12
  %14081 = load i32, ptr %14080, align 4, !tbaa !5
  %14082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14069, ptr noundef @.str.2, i32 noundef %14070, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 683, ptr noundef %14073, ptr noundef %14076, ptr noundef %14079, i32 noundef %14081) #11
  br label %14100

14083:                                            ; preds = %14061, %14054
  %14084 = load i32, ptr %323, align 4, !tbaa !5
  %14085 = call ptr @__errno_location() #12
  store i32 %14084, ptr %14085, align 4, !tbaa !5
  %14086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14087 = load i32, ptr @test_count, align 4, !tbaa !5
  %14088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14089 = load i32, ptr %14088, align 4, !tbaa !5
  %14090 = call ptr @s2n_strerror(i32 noundef %14089, ptr noundef @.str.4)
  %14091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14092 = load i32, ptr %14091, align 4, !tbaa !5
  %14093 = call ptr @s2n_strerror_debug(i32 noundef %14092, ptr noundef @.str.4)
  %14094 = call ptr @__errno_location() #12
  %14095 = load i32, ptr %14094, align 4, !tbaa !5
  %14096 = call ptr @strerror(i32 noundef %14095) #11
  %14097 = call ptr @__errno_location() #12
  %14098 = load i32, ptr %14097, align 4, !tbaa !5
  %14099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14086, ptr noundef @.str.5, i32 noundef %14087, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 683, ptr noundef %14090, ptr noundef %14093, ptr noundef %14096, i32 noundef %14098) #11
  br label %14100

14100:                                            ; preds = %14083, %14066
  call void @llvm.lifetime.end.p0(i64 4, ptr %323) #11
  br label %14101

14101:                                            ; preds = %14100
  br label %14102

14102:                                            ; preds = %14101
  call void @exit(i32 noundef 1) #13
  unreachable

14103:                                            ; No predecessors!
  br label %14104

14104:                                            ; preds = %14103
  br label %14105

14105:                                            ; preds = %14104, %14046
  br label %14106

14106:                                            ; preds = %14105
  br label %14107

14107:                                            ; preds = %14106
  call void @llvm.lifetime.end.p0(i64 8, ptr %316) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %308) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %306) #11
  call void @llvm.lifetime.end.p0(i64 224, ptr %305) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %301) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %300) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %294) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %290) #11
  br label %14108

14108:                                            ; preds = %14107, %12628
  br label %14109

14109:                                            ; preds = %14108
  %14110 = load i32, ptr @test_count, align 4, !tbaa !5
  %14111 = add nsw i32 %14110, 1
  store i32 %14111, ptr @test_count, align 4, !tbaa !5
  %14112 = getelementptr inbounds %struct.s2n_security_policy, ptr %9, i32 0, i32 2
  %14113 = load ptr, ptr %14112, align 8, !tbaa !22
  %14114 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %14113, ptr noundef %10)
  %14115 = getelementptr inbounds %struct.s2n_result, ptr %324, i32 0, i32 0
  store i32 %14114, ptr %14115, align 4
  %14116 = getelementptr inbounds %struct.s2n_result, ptr %324, i32 0, i32 0
  %14117 = load i32, ptr %14116, align 4
  %14118 = call zeroext i1 @s2n_result_is_ok(i32 %14117)
  br i1 %14118, label %14172, label %14119

14119:                                            ; preds = %14109
  br label %14120

14120:                                            ; preds = %14119
  br label %14121

14121:                                            ; preds = %14120
  call void @llvm.lifetime.start.p0(i64 4, ptr %325) #11
  %14122 = call ptr @__errno_location() #12
  %14123 = load i32, ptr %14122, align 4, !tbaa !5
  store i32 %14123, ptr %325, align 4, !tbaa !5
  %14124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14125 = call i32 @s2n_print_stacktrace(ptr noundef %14124)
  %14126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14127 = trunc i8 %14126 to i1
  br i1 %14127, label %14128, label %14150

14128:                                            ; preds = %14121
  %14129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14130 = call i32 @fileno(ptr noundef %14129) #11
  %14131 = call i32 @isatty(i32 noundef %14130) #11
  %14132 = icmp ne i32 %14131, 0
  br i1 %14132, label %14133, label %14150

14133:                                            ; preds = %14128
  %14134 = load i32, ptr %325, align 4, !tbaa !5
  %14135 = call ptr @__errno_location() #12
  store i32 %14134, ptr %14135, align 4, !tbaa !5
  %14136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14137 = load i32, ptr @test_count, align 4, !tbaa !5
  %14138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14139 = load i32, ptr %14138, align 4, !tbaa !5
  %14140 = call ptr @s2n_strerror(i32 noundef %14139, ptr noundef @.str.4)
  %14141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14142 = load i32, ptr %14141, align 4, !tbaa !5
  %14143 = call ptr @s2n_strerror_debug(i32 noundef %14142, ptr noundef @.str.4)
  %14144 = call ptr @__errno_location() #12
  %14145 = load i32, ptr %14144, align 4, !tbaa !5
  %14146 = call ptr @strerror(i32 noundef %14145) #11
  %14147 = call ptr @__errno_location() #12
  %14148 = load i32, ptr %14147, align 4, !tbaa !5
  %14149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14136, ptr noundef @.str.2, i32 noundef %14137, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 690, ptr noundef %14140, ptr noundef %14143, ptr noundef %14146, i32 noundef %14148) #11
  br label %14167

14150:                                            ; preds = %14128, %14121
  %14151 = load i32, ptr %325, align 4, !tbaa !5
  %14152 = call ptr @__errno_location() #12
  store i32 %14151, ptr %14152, align 4, !tbaa !5
  %14153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14154 = load i32, ptr @test_count, align 4, !tbaa !5
  %14155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14156 = load i32, ptr %14155, align 4, !tbaa !5
  %14157 = call ptr @s2n_strerror(i32 noundef %14156, ptr noundef @.str.4)
  %14158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14159 = load i32, ptr %14158, align 4, !tbaa !5
  %14160 = call ptr @s2n_strerror_debug(i32 noundef %14159, ptr noundef @.str.4)
  %14161 = call ptr @__errno_location() #12
  %14162 = load i32, ptr %14161, align 4, !tbaa !5
  %14163 = call ptr @strerror(i32 noundef %14162) #11
  %14164 = call ptr @__errno_location() #12
  %14165 = load i32, ptr %14164, align 4, !tbaa !5
  %14166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14153, ptr noundef @.str.5, i32 noundef %14154, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 690, ptr noundef %14157, ptr noundef %14160, ptr noundef %14163, i32 noundef %14165) #11
  br label %14167

14167:                                            ; preds = %14150, %14133
  call void @llvm.lifetime.end.p0(i64 4, ptr %325) #11
  br label %14168

14168:                                            ; preds = %14167
  br label %14169

14169:                                            ; preds = %14168
  call void @exit(i32 noundef 1) #13
  unreachable

14170:                                            ; No predecessors!
  br label %14171

14171:                                            ; preds = %14170
  br label %14172

14172:                                            ; preds = %14171, %14109
  br label %14173

14173:                                            ; preds = %14172
  br label %14174

14174:                                            ; preds = %14173
  %14175 = load i32, ptr %10, align 4, !tbaa !5
  %14176 = icmp uge i32 %14175, 2
  br i1 %14176, label %14177, label %15481

14177:                                            ; preds = %14174
  call void @llvm.lifetime.start.p0(i64 8, ptr %326) #11
  %14178 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %14178, ptr %326, align 8, !tbaa !9
  br label %14179

14179:                                            ; preds = %14177
  %14180 = load i32, ptr @test_count, align 4, !tbaa !5
  %14181 = add nsw i32 %14180, 1
  store i32 %14181, ptr @test_count, align 4, !tbaa !5
  %14182 = load ptr, ptr %326, align 8, !tbaa !9
  %14183 = icmp eq ptr %14182, null
  br i1 %14183, label %14184, label %14237

14184:                                            ; preds = %14179
  br label %14185

14185:                                            ; preds = %14184
  br label %14186

14186:                                            ; preds = %14185
  call void @llvm.lifetime.start.p0(i64 4, ptr %327) #11
  %14187 = call ptr @__errno_location() #12
  %14188 = load i32, ptr %14187, align 4, !tbaa !5
  store i32 %14188, ptr %327, align 4, !tbaa !5
  %14189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14190 = call i32 @s2n_print_stacktrace(ptr noundef %14189)
  %14191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14192 = trunc i8 %14191 to i1
  br i1 %14192, label %14193, label %14215

14193:                                            ; preds = %14186
  %14194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14195 = call i32 @fileno(ptr noundef %14194) #11
  %14196 = call i32 @isatty(i32 noundef %14195) #11
  %14197 = icmp ne i32 %14196, 0
  br i1 %14197, label %14198, label %14215

14198:                                            ; preds = %14193
  %14199 = load i32, ptr %327, align 4, !tbaa !5
  %14200 = call ptr @__errno_location() #12
  store i32 %14199, ptr %14200, align 4, !tbaa !5
  %14201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14202 = load i32, ptr @test_count, align 4, !tbaa !5
  %14203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14204 = load i32, ptr %14203, align 4, !tbaa !5
  %14205 = call ptr @s2n_strerror(i32 noundef %14204, ptr noundef @.str.4)
  %14206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14207 = load i32, ptr %14206, align 4, !tbaa !5
  %14208 = call ptr @s2n_strerror_debug(i32 noundef %14207, ptr noundef @.str.4)
  %14209 = call ptr @__errno_location() #12
  %14210 = load i32, ptr %14209, align 4, !tbaa !5
  %14211 = call ptr @strerror(i32 noundef %14210) #11
  %14212 = call ptr @__errno_location() #12
  %14213 = load i32, ptr %14212, align 4, !tbaa !5
  %14214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14201, ptr noundef @.str.2, i32 noundef %14202, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 693, ptr noundef %14205, ptr noundef %14208, ptr noundef %14211, i32 noundef %14213) #11
  br label %14232

14215:                                            ; preds = %14193, %14186
  %14216 = load i32, ptr %327, align 4, !tbaa !5
  %14217 = call ptr @__errno_location() #12
  store i32 %14216, ptr %14217, align 4, !tbaa !5
  %14218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14219 = load i32, ptr @test_count, align 4, !tbaa !5
  %14220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14221 = load i32, ptr %14220, align 4, !tbaa !5
  %14222 = call ptr @s2n_strerror(i32 noundef %14221, ptr noundef @.str.4)
  %14223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14224 = load i32, ptr %14223, align 4, !tbaa !5
  %14225 = call ptr @s2n_strerror_debug(i32 noundef %14224, ptr noundef @.str.4)
  %14226 = call ptr @__errno_location() #12
  %14227 = load i32, ptr %14226, align 4, !tbaa !5
  %14228 = call ptr @strerror(i32 noundef %14227) #11
  %14229 = call ptr @__errno_location() #12
  %14230 = load i32, ptr %14229, align 4, !tbaa !5
  %14231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14218, ptr noundef @.str.5, i32 noundef %14219, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 693, ptr noundef %14222, ptr noundef %14225, ptr noundef %14228, i32 noundef %14230) #11
  br label %14232

14232:                                            ; preds = %14215, %14198
  call void @llvm.lifetime.end.p0(i64 4, ptr %327) #11
  br label %14233

14233:                                            ; preds = %14232
  br label %14234

14234:                                            ; preds = %14233
  call void @exit(i32 noundef 1) #13
  unreachable

14235:                                            ; No predecessors!
  br label %14236

14236:                                            ; preds = %14235
  br label %14237

14237:                                            ; preds = %14236, %14179
  br label %14238

14238:                                            ; preds = %14237
  br label %14239

14239:                                            ; preds = %14238
  %14240 = load ptr, ptr %326, align 8, !tbaa !9
  %14241 = getelementptr inbounds %struct.s2n_connection, ptr %14240, i32 0, i32 23
  store i8 34, ptr %14241, align 4, !tbaa !84
  %14242 = load ptr, ptr %326, align 8, !tbaa !9
  %14243 = getelementptr inbounds %struct.s2n_connection, ptr %14242, i32 0, i32 2
  store ptr %9, ptr %14243, align 8, !tbaa !28
  br label %14244

14244:                                            ; preds = %14239
  %14245 = load i32, ptr @test_count, align 4, !tbaa !5
  %14246 = add nsw i32 %14245, 1
  store i32 %14246, ptr @test_count, align 4, !tbaa !5
  %14247 = load ptr, ptr %326, align 8, !tbaa !9
  %14248 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %14247)
  %14249 = getelementptr inbounds %struct.s2n_result, ptr %328, i32 0, i32 0
  store i32 %14248, ptr %14249, align 4
  %14250 = getelementptr inbounds %struct.s2n_result, ptr %328, i32 0, i32 0
  %14251 = load i32, ptr %14250, align 4
  %14252 = call zeroext i1 @s2n_result_is_ok(i32 %14251)
  br i1 %14252, label %14306, label %14253

14253:                                            ; preds = %14244
  br label %14254

14254:                                            ; preds = %14253
  br label %14255

14255:                                            ; preds = %14254
  call void @llvm.lifetime.start.p0(i64 4, ptr %329) #11
  %14256 = call ptr @__errno_location() #12
  %14257 = load i32, ptr %14256, align 4, !tbaa !5
  store i32 %14257, ptr %329, align 4, !tbaa !5
  %14258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14259 = call i32 @s2n_print_stacktrace(ptr noundef %14258)
  %14260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14261 = trunc i8 %14260 to i1
  br i1 %14261, label %14262, label %14284

14262:                                            ; preds = %14255
  %14263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14264 = call i32 @fileno(ptr noundef %14263) #11
  %14265 = call i32 @isatty(i32 noundef %14264) #11
  %14266 = icmp ne i32 %14265, 0
  br i1 %14266, label %14267, label %14284

14267:                                            ; preds = %14262
  %14268 = load i32, ptr %329, align 4, !tbaa !5
  %14269 = call ptr @__errno_location() #12
  store i32 %14268, ptr %14269, align 4, !tbaa !5
  %14270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14271 = load i32, ptr @test_count, align 4, !tbaa !5
  %14272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14273 = load i32, ptr %14272, align 4, !tbaa !5
  %14274 = call ptr @s2n_strerror(i32 noundef %14273, ptr noundef @.str.4)
  %14275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14276 = load i32, ptr %14275, align 4, !tbaa !5
  %14277 = call ptr @s2n_strerror_debug(i32 noundef %14276, ptr noundef @.str.4)
  %14278 = call ptr @__errno_location() #12
  %14279 = load i32, ptr %14278, align 4, !tbaa !5
  %14280 = call ptr @strerror(i32 noundef %14279) #11
  %14281 = call ptr @__errno_location() #12
  %14282 = load i32, ptr %14281, align 4, !tbaa !5
  %14283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14270, ptr noundef @.str.2, i32 noundef %14271, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 698, ptr noundef %14274, ptr noundef %14277, ptr noundef %14280, i32 noundef %14282) #11
  br label %14301

14284:                                            ; preds = %14262, %14255
  %14285 = load i32, ptr %329, align 4, !tbaa !5
  %14286 = call ptr @__errno_location() #12
  store i32 %14285, ptr %14286, align 4, !tbaa !5
  %14287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14288 = load i32, ptr @test_count, align 4, !tbaa !5
  %14289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14290 = load i32, ptr %14289, align 4, !tbaa !5
  %14291 = call ptr @s2n_strerror(i32 noundef %14290, ptr noundef @.str.4)
  %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_debug(i32 noundef %14293, ptr noundef @.str.4)
  %14295 = call ptr @__errno_location() #12
  %14296 = load i32, ptr %14295, align 4, !tbaa !5
  %14297 = call ptr @strerror(i32 noundef %14296) #11
  %14298 = call ptr @__errno_location() #12
  %14299 = load i32, ptr %14298, align 4, !tbaa !5
  %14300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14287, ptr noundef @.str.5, i32 noundef %14288, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 698, ptr noundef %14291, ptr noundef %14294, ptr noundef %14297, i32 noundef %14299) #11
  br label %14301

14301:                                            ; preds = %14284, %14267
  call void @llvm.lifetime.end.p0(i64 4, ptr %329) #11
  br label %14302

14302:                                            ; preds = %14301
  br label %14303

14303:                                            ; preds = %14302
  call void @exit(i32 noundef 1) #13
  unreachable

14304:                                            ; No predecessors!
  br label %14305

14305:                                            ; preds = %14304
  br label %14306

14306:                                            ; preds = %14305, %14244
  br label %14307

14307:                                            ; preds = %14306
  br label %14308

14308:                                            ; preds = %14307
  call void @llvm.lifetime.start.p0(i64 4, ptr %330) #11
  store i32 0, ptr %330, align 4, !tbaa !5
  br label %14309

14309:                                            ; preds = %14340, %14308
  %14310 = load i32, ptr %330, align 4, !tbaa !5
  %14311 = sext i32 %14310 to i64
  %14312 = icmp ult i64 %14311, 8
  br i1 %14312, label %14314, label %14313

14313:                                            ; preds = %14309
  store i32 1293, ptr %6, align 4
  br label %14343

14314:                                            ; preds = %14309
  %14315 = load ptr, ptr %326, align 8, !tbaa !9
  %14316 = getelementptr inbounds %struct.s2n_connection, ptr %14315, i32 0, i32 31
  %14317 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14316, i32 0, i32 6
  %14318 = load i32, ptr %330, align 4, !tbaa !5
  %14319 = sext i32 %14318 to i64
  %14320 = getelementptr inbounds [8 x ptr], ptr %14317, i64 0, i64 %14319
  %14321 = load ptr, ptr %14320, align 8, !tbaa !9
  %14322 = icmp ne ptr %14321, null
  br i1 %14322, label %14323, label %14339

14323:                                            ; preds = %14314
  %14324 = load ptr, ptr %326, align 8, !tbaa !9
  %14325 = getelementptr inbounds %struct.s2n_connection, ptr %14324, i32 0, i32 31
  %14326 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14325, i32 0, i32 6
  %14327 = load i32, ptr %330, align 4, !tbaa !5
  %14328 = sext i32 %14327 to i64
  %14329 = getelementptr inbounds [8 x ptr], ptr %14326, i64 0, i64 %14328
  %14330 = load ptr, ptr %14329, align 8, !tbaa !9
  %14331 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %14330)
  br i1 %14331, label %14332, label %14339

14332:                                            ; preds = %14323
  %14333 = load ptr, ptr %326, align 8, !tbaa !9
  %14334 = getelementptr inbounds %struct.s2n_connection, ptr %14333, i32 0, i32 31
  %14335 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14334, i32 0, i32 6
  %14336 = load i32, ptr %330, align 4, !tbaa !5
  %14337 = sext i32 %14336 to i64
  %14338 = getelementptr inbounds [8 x ptr], ptr %14335, i64 0, i64 %14337
  store ptr null, ptr %14338, align 8, !tbaa !9
  store i32 1293, ptr %6, align 4
  br label %14343

14339:                                            ; preds = %14323, %14314
  br label %14340

14340:                                            ; preds = %14339
  %14341 = load i32, ptr %330, align 4, !tbaa !5
  %14342 = add nsw i32 %14341, 1
  store i32 %14342, ptr %330, align 4, !tbaa !5
  br label %14309, !llvm.loop !107

14343:                                            ; preds = %14332, %14313
  call void @llvm.lifetime.end.p0(i64 4, ptr %330) #11
  br label %14344

14344:                                            ; preds = %14343
  call void @llvm.lifetime.start.p0(i64 8, ptr %331) #11
  store ptr null, ptr %331, align 8, !tbaa !9
  br label %14345

14345:                                            ; preds = %14344
  %14346 = load i32, ptr @test_count, align 4, !tbaa !5
  %14347 = add nsw i32 %14346, 1
  store i32 %14347, ptr @test_count, align 4, !tbaa !5
  %14348 = load ptr, ptr %326, align 8, !tbaa !9
  %14349 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %14348, ptr noundef %331)
  %14350 = icmp eq i32 %14349, -1
  br i1 %14350, label %14351, label %14404

14351:                                            ; preds = %14345
  br label %14352

14352:                                            ; preds = %14351
  br label %14353

14353:                                            ; preds = %14352
  call void @llvm.lifetime.start.p0(i64 4, ptr %332) #11
  %14354 = call ptr @__errno_location() #12
  %14355 = load i32, ptr %14354, align 4, !tbaa !5
  store i32 %14355, ptr %332, align 4, !tbaa !5
  %14356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14357 = call i32 @s2n_print_stacktrace(ptr noundef %14356)
  %14358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14359 = trunc i8 %14358 to i1
  br i1 %14359, label %14360, label %14382

14360:                                            ; preds = %14353
  %14361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14362 = call i32 @fileno(ptr noundef %14361) #11
  %14363 = call i32 @isatty(i32 noundef %14362) #11
  %14364 = icmp ne i32 %14363, 0
  br i1 %14364, label %14365, label %14382

14365:                                            ; preds = %14360
  %14366 = load i32, ptr %332, align 4, !tbaa !5
  %14367 = call ptr @__errno_location() #12
  store i32 %14366, ptr %14367, align 4, !tbaa !5
  %14368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14369 = load i32, ptr @test_count, align 4, !tbaa !5
  %14370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14371 = load i32, ptr %14370, align 4, !tbaa !5
  %14372 = call ptr @s2n_strerror(i32 noundef %14371, ptr noundef @.str.4)
  %14373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14374 = load i32, ptr %14373, align 4, !tbaa !5
  %14375 = call ptr @s2n_strerror_debug(i32 noundef %14374, ptr noundef @.str.4)
  %14376 = call ptr @__errno_location() #12
  %14377 = load i32, ptr %14376, align 4, !tbaa !5
  %14378 = call ptr @strerror(i32 noundef %14377) #11
  %14379 = call ptr @__errno_location() #12
  %14380 = load i32, ptr %14379, align 4, !tbaa !5
  %14381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14368, ptr noundef @.str.2, i32 noundef %14369, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 708, ptr noundef %14372, ptr noundef %14375, ptr noundef %14378, i32 noundef %14380) #11
  br label %14399

14382:                                            ; preds = %14360, %14353
  %14383 = load i32, ptr %332, align 4, !tbaa !5
  %14384 = call ptr @__errno_location() #12
  store i32 %14383, ptr %14384, align 4, !tbaa !5
  %14385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14386 = load i32, ptr @test_count, align 4, !tbaa !5
  %14387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14388 = load i32, ptr %14387, align 4, !tbaa !5
  %14389 = call ptr @s2n_strerror(i32 noundef %14388, ptr noundef @.str.4)
  %14390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14391 = load i32, ptr %14390, align 4, !tbaa !5
  %14392 = call ptr @s2n_strerror_debug(i32 noundef %14391, ptr noundef @.str.4)
  %14393 = call ptr @__errno_location() #12
  %14394 = load i32, ptr %14393, align 4, !tbaa !5
  %14395 = call ptr @strerror(i32 noundef %14394) #11
  %14396 = call ptr @__errno_location() #12
  %14397 = load i32, ptr %14396, align 4, !tbaa !5
  %14398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14385, ptr noundef @.str.5, i32 noundef %14386, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 708, ptr noundef %14389, ptr noundef %14392, ptr noundef %14395, i32 noundef %14397) #11
  br label %14399

14399:                                            ; preds = %14382, %14365
  call void @llvm.lifetime.end.p0(i64 4, ptr %332) #11
  br label %14400

14400:                                            ; preds = %14399
  br label %14401

14401:                                            ; preds = %14400
  call void @exit(i32 noundef 1) #13
  unreachable

14402:                                            ; No predecessors!
  br label %14403

14403:                                            ; preds = %14402
  br label %14404

14404:                                            ; preds = %14403, %14345
  br label %14405

14405:                                            ; preds = %14404
  br label %14406

14406:                                            ; preds = %14405
  br label %14407

14407:                                            ; preds = %14406
  %14408 = load i32, ptr @test_count, align 4, !tbaa !5
  %14409 = add nsw i32 %14408, 1
  store i32 %14409, ptr @test_count, align 4, !tbaa !5
  %14410 = load ptr, ptr %331, align 8, !tbaa !9
  %14411 = icmp eq ptr %14410, null
  br i1 %14411, label %14412, label %14465

14412:                                            ; preds = %14407
  br label %14413

14413:                                            ; preds = %14412
  br label %14414

14414:                                            ; preds = %14413
  call void @llvm.lifetime.start.p0(i64 4, ptr %333) #11
  %14415 = call ptr @__errno_location() #12
  %14416 = load i32, ptr %14415, align 4, !tbaa !5
  store i32 %14416, ptr %333, align 4, !tbaa !5
  %14417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14418 = call i32 @s2n_print_stacktrace(ptr noundef %14417)
  %14419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14420 = trunc i8 %14419 to i1
  br i1 %14420, label %14421, label %14443

14421:                                            ; preds = %14414
  %14422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14423 = call i32 @fileno(ptr noundef %14422) #11
  %14424 = call i32 @isatty(i32 noundef %14423) #11
  %14425 = icmp ne i32 %14424, 0
  br i1 %14425, label %14426, label %14443

14426:                                            ; preds = %14421
  %14427 = load i32, ptr %333, align 4, !tbaa !5
  %14428 = call ptr @__errno_location() #12
  store i32 %14427, ptr %14428, align 4, !tbaa !5
  %14429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14430 = load i32, ptr @test_count, align 4, !tbaa !5
  %14431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14432 = load i32, ptr %14431, align 4, !tbaa !5
  %14433 = call ptr @s2n_strerror(i32 noundef %14432, ptr noundef @.str.4)
  %14434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14435 = load i32, ptr %14434, align 4, !tbaa !5
  %14436 = call ptr @s2n_strerror_debug(i32 noundef %14435, ptr noundef @.str.4)
  %14437 = call ptr @__errno_location() #12
  %14438 = load i32, ptr %14437, align 4, !tbaa !5
  %14439 = call ptr @strerror(i32 noundef %14438) #11
  %14440 = call ptr @__errno_location() #12
  %14441 = load i32, ptr %14440, align 4, !tbaa !5
  %14442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14429, ptr noundef @.str.2, i32 noundef %14430, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 709, ptr noundef %14433, ptr noundef %14436, ptr noundef %14439, i32 noundef %14441) #11
  br label %14460

14443:                                            ; preds = %14421, %14414
  %14444 = load i32, ptr %333, align 4, !tbaa !5
  %14445 = call ptr @__errno_location() #12
  store i32 %14444, ptr %14445, align 4, !tbaa !5
  %14446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14447 = load i32, ptr @test_count, align 4, !tbaa !5
  %14448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14449 = load i32, ptr %14448, align 4, !tbaa !5
  %14450 = call ptr @s2n_strerror(i32 noundef %14449, ptr noundef @.str.4)
  %14451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14452 = load i32, ptr %14451, align 4, !tbaa !5
  %14453 = call ptr @s2n_strerror_debug(i32 noundef %14452, ptr noundef @.str.4)
  %14454 = call ptr @__errno_location() #12
  %14455 = load i32, ptr %14454, align 4, !tbaa !5
  %14456 = call ptr @strerror(i32 noundef %14455) #11
  %14457 = call ptr @__errno_location() #12
  %14458 = load i32, ptr %14457, align 4, !tbaa !5
  %14459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14446, ptr noundef @.str.5, i32 noundef %14447, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 709, ptr noundef %14450, ptr noundef %14453, ptr noundef %14456, i32 noundef %14458) #11
  br label %14460

14460:                                            ; preds = %14443, %14426
  call void @llvm.lifetime.end.p0(i64 4, ptr %333) #11
  br label %14461

14461:                                            ; preds = %14460
  br label %14462

14462:                                            ; preds = %14461
  call void @exit(i32 noundef 1) #13
  unreachable

14463:                                            ; No predecessors!
  br label %14464

14464:                                            ; preds = %14463
  br label %14465

14465:                                            ; preds = %14464, %14407
  br label %14466

14466:                                            ; preds = %14465
  br label %14467

14467:                                            ; preds = %14466
  br label %14468

14468:                                            ; preds = %14467
  %14469 = load i32, ptr @test_count, align 4, !tbaa !5
  %14470 = add nsw i32 %14469, 1
  store i32 %14470, ptr @test_count, align 4, !tbaa !5
  %14471 = load ptr, ptr %331, align 8, !tbaa !9
  %14472 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %14471, ptr noundef %10)
  %14473 = getelementptr inbounds %struct.s2n_result, ptr %334, i32 0, i32 0
  store i32 %14472, ptr %14473, align 4
  %14474 = getelementptr inbounds %struct.s2n_result, ptr %334, i32 0, i32 0
  %14475 = load i32, ptr %14474, align 4
  %14476 = call zeroext i1 @s2n_result_is_ok(i32 %14475)
  br i1 %14476, label %14530, label %14477

14477:                                            ; preds = %14468
  br label %14478

14478:                                            ; preds = %14477
  br label %14479

14479:                                            ; preds = %14478
  call void @llvm.lifetime.start.p0(i64 4, ptr %335) #11
  %14480 = call ptr @__errno_location() #12
  %14481 = load i32, ptr %14480, align 4, !tbaa !5
  store i32 %14481, ptr %335, align 4, !tbaa !5
  %14482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14483 = call i32 @s2n_print_stacktrace(ptr noundef %14482)
  %14484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14485 = trunc i8 %14484 to i1
  br i1 %14485, label %14486, label %14508

14486:                                            ; preds = %14479
  %14487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14488 = call i32 @fileno(ptr noundef %14487) #11
  %14489 = call i32 @isatty(i32 noundef %14488) #11
  %14490 = icmp ne i32 %14489, 0
  br i1 %14490, label %14491, label %14508

14491:                                            ; preds = %14486
  %14492 = load i32, ptr %335, align 4, !tbaa !5
  %14493 = call ptr @__errno_location() #12
  store i32 %14492, ptr %14493, align 4, !tbaa !5
  %14494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14495 = load i32, ptr @test_count, align 4, !tbaa !5
  %14496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14497 = load i32, ptr %14496, align 4, !tbaa !5
  %14498 = call ptr @s2n_strerror(i32 noundef %14497, ptr noundef @.str.4)
  %14499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14500 = load i32, ptr %14499, align 4, !tbaa !5
  %14501 = call ptr @s2n_strerror_debug(i32 noundef %14500, ptr noundef @.str.4)
  %14502 = call ptr @__errno_location() #12
  %14503 = load i32, ptr %14502, align 4, !tbaa !5
  %14504 = call ptr @strerror(i32 noundef %14503) #11
  %14505 = call ptr @__errno_location() #12
  %14506 = load i32, ptr %14505, align 4, !tbaa !5
  %14507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14494, ptr noundef @.str.2, i32 noundef %14495, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 710, ptr noundef %14498, ptr noundef %14501, ptr noundef %14504, i32 noundef %14506) #11
  br label %14525

14508:                                            ; preds = %14486, %14479
  %14509 = load i32, ptr %335, align 4, !tbaa !5
  %14510 = call ptr @__errno_location() #12
  store i32 %14509, ptr %14510, align 4, !tbaa !5
  %14511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14512 = load i32, ptr @test_count, align 4, !tbaa !5
  %14513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14514 = load i32, ptr %14513, align 4, !tbaa !5
  %14515 = call ptr @s2n_strerror(i32 noundef %14514, ptr noundef @.str.4)
  %14516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14517 = load i32, ptr %14516, align 4, !tbaa !5
  %14518 = call ptr @s2n_strerror_debug(i32 noundef %14517, ptr noundef @.str.4)
  %14519 = call ptr @__errno_location() #12
  %14520 = load i32, ptr %14519, align 4, !tbaa !5
  %14521 = call ptr @strerror(i32 noundef %14520) #11
  %14522 = call ptr @__errno_location() #12
  %14523 = load i32, ptr %14522, align 4, !tbaa !5
  %14524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14511, ptr noundef @.str.5, i32 noundef %14512, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 710, ptr noundef %14515, ptr noundef %14518, ptr noundef %14521, i32 noundef %14523) #11
  br label %14525

14525:                                            ; preds = %14508, %14491
  call void @llvm.lifetime.end.p0(i64 4, ptr %335) #11
  br label %14526

14526:                                            ; preds = %14525
  br label %14527

14527:                                            ; preds = %14526
  call void @exit(i32 noundef 1) #13
  unreachable

14528:                                            ; No predecessors!
  br label %14529

14529:                                            ; preds = %14528
  br label %14530

14530:                                            ; preds = %14529, %14468
  br label %14531

14531:                                            ; preds = %14530
  br label %14532

14532:                                            ; preds = %14531
  br label %14533

14533:                                            ; preds = %14532
  %14534 = load i32, ptr @test_count, align 4, !tbaa !5
  %14535 = add nsw i32 %14534, 1
  store i32 %14535, ptr @test_count, align 4, !tbaa !5
  %14536 = load i32, ptr %10, align 4, !tbaa !5
  %14537 = icmp uge i32 %14536, 2
  br i1 %14537, label %14591, label %14538

14538:                                            ; preds = %14533
  br label %14539

14539:                                            ; preds = %14538
  br label %14540

14540:                                            ; preds = %14539
  call void @llvm.lifetime.start.p0(i64 4, ptr %336) #11
  %14541 = call ptr @__errno_location() #12
  %14542 = load i32, ptr %14541, align 4, !tbaa !5
  store i32 %14542, ptr %336, 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) #11
  %14550 = call i32 @isatty(i32 noundef %14549) #11
  %14551 = icmp ne i32 %14550, 0
  br i1 %14551, label %14552, label %14569

14552:                                            ; preds = %14547
  %14553 = load i32, ptr %336, align 4, !tbaa !5
  %14554 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %14563 = call ptr @__errno_location() #12
  %14564 = load i32, ptr %14563, align 4, !tbaa !5
  %14565 = call ptr @strerror(i32 noundef %14564) #11
  %14566 = call ptr @__errno_location() #12
  %14567 = load i32, ptr %14566, align 4, !tbaa !5
  %14568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14555, ptr noundef @.str.2, i32 noundef %14556, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 711, ptr noundef %14559, ptr noundef %14562, ptr noundef %14565, i32 noundef %14567) #11
  br label %14586

14569:                                            ; preds = %14547, %14540
  %14570 = load i32, ptr %336, align 4, !tbaa !5
  %14571 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %14580 = call ptr @__errno_location() #12
  %14581 = load i32, ptr %14580, align 4, !tbaa !5
  %14582 = call ptr @strerror(i32 noundef %14581) #11
  %14583 = call ptr @__errno_location() #12
  %14584 = load i32, ptr %14583, align 4, !tbaa !5
  %14585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14572, ptr noundef @.str.5, i32 noundef %14573, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 711, ptr noundef %14576, ptr noundef %14579, ptr noundef %14582, i32 noundef %14584) #11
  br label %14586

14586:                                            ; preds = %14569, %14552
  call void @llvm.lifetime.end.p0(i64 4, ptr %336) #11
  br label %14587

14587:                                            ; preds = %14586
  br label %14588

14588:                                            ; preds = %14587
  call void @exit(i32 noundef 1) #13
  unreachable

14589:                                            ; No predecessors!
  br label %14590

14590:                                            ; preds = %14589
  br label %14591

14591:                                            ; preds = %14590, %14533
  br label %14592

14592:                                            ; preds = %14591
  br label %14593

14593:                                            ; preds = %14592
  call void @llvm.lifetime.start.p0(i64 8, ptr %337) #11
  %14594 = load ptr, ptr %331, align 8, !tbaa !9
  %14595 = call ptr @s2n_kem_preferences_get_highest_priority_group(ptr noundef %14594)
  store ptr %14595, ptr %337, align 8, !tbaa !9
  br label %14596

14596:                                            ; preds = %14593
  %14597 = load i32, ptr @test_count, align 4, !tbaa !5
  %14598 = add nsw i32 %14597, 1
  store i32 %14598, ptr @test_count, align 4, !tbaa !5
  %14599 = load ptr, ptr %337, align 8, !tbaa !9
  %14600 = icmp eq ptr %14599, null
  br i1 %14600, label %14601, label %14654

14601:                                            ; preds = %14596
  br label %14602

14602:                                            ; preds = %14601
  br label %14603

14603:                                            ; preds = %14602
  call void @llvm.lifetime.start.p0(i64 4, ptr %338) #11
  %14604 = call ptr @__errno_location() #12
  %14605 = load i32, ptr %14604, align 4, !tbaa !5
  store i32 %14605, ptr %338, align 4, !tbaa !5
  %14606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14607 = call i32 @s2n_print_stacktrace(ptr noundef %14606)
  %14608 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14609 = trunc i8 %14608 to i1
  br i1 %14609, label %14610, label %14632

14610:                                            ; preds = %14603
  %14611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14612 = call i32 @fileno(ptr noundef %14611) #11
  %14613 = call i32 @isatty(i32 noundef %14612) #11
  %14614 = icmp ne i32 %14613, 0
  br i1 %14614, label %14615, label %14632

14615:                                            ; preds = %14610
  %14616 = load i32, ptr %338, align 4, !tbaa !5
  %14617 = call ptr @__errno_location() #12
  store i32 %14616, ptr %14617, align 4, !tbaa !5
  %14618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14619 = load i32, ptr @test_count, align 4, !tbaa !5
  %14620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14621 = load i32, ptr %14620, align 4, !tbaa !5
  %14622 = call ptr @s2n_strerror(i32 noundef %14621, ptr noundef @.str.4)
  %14623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14624 = load i32, ptr %14623, align 4, !tbaa !5
  %14625 = call ptr @s2n_strerror_debug(i32 noundef %14624, ptr noundef @.str.4)
  %14626 = call ptr @__errno_location() #12
  %14627 = load i32, ptr %14626, align 4, !tbaa !5
  %14628 = call ptr @strerror(i32 noundef %14627) #11
  %14629 = call ptr @__errno_location() #12
  %14630 = load i32, ptr %14629, align 4, !tbaa !5
  %14631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14618, ptr noundef @.str.2, i32 noundef %14619, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 715, ptr noundef %14622, ptr noundef %14625, ptr noundef %14628, i32 noundef %14630) #11
  br label %14649

14632:                                            ; preds = %14610, %14603
  %14633 = load i32, ptr %338, align 4, !tbaa !5
  %14634 = call ptr @__errno_location() #12
  store i32 %14633, ptr %14634, align 4, !tbaa !5
  %14635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14636 = load i32, ptr @test_count, align 4, !tbaa !5
  %14637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14638 = load i32, ptr %14637, align 4, !tbaa !5
  %14639 = call ptr @s2n_strerror(i32 noundef %14638, ptr noundef @.str.4)
  %14640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14641 = load i32, ptr %14640, align 4, !tbaa !5
  %14642 = call ptr @s2n_strerror_debug(i32 noundef %14641, ptr noundef @.str.4)
  %14643 = call ptr @__errno_location() #12
  %14644 = load i32, ptr %14643, align 4, !tbaa !5
  %14645 = call ptr @strerror(i32 noundef %14644) #11
  %14646 = call ptr @__errno_location() #12
  %14647 = load i32, ptr %14646, align 4, !tbaa !5
  %14648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14635, ptr noundef @.str.5, i32 noundef %14636, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 715, ptr noundef %14639, ptr noundef %14642, ptr noundef %14645, i32 noundef %14647) #11
  br label %14649

14649:                                            ; preds = %14632, %14615
  call void @llvm.lifetime.end.p0(i64 4, ptr %338) #11
  br label %14650

14650:                                            ; preds = %14649
  br label %14651

14651:                                            ; preds = %14650
  call void @exit(i32 noundef 1) #13
  unreachable

14652:                                            ; No predecessors!
  br label %14653

14653:                                            ; preds = %14652
  br label %14654

14654:                                            ; preds = %14653, %14596
  br label %14655

14655:                                            ; preds = %14654
  br label %14656

14656:                                            ; preds = %14655
  call void @llvm.lifetime.start.p0(i64 112, ptr %339) #11
  call void @llvm.memset.p0.i64(ptr align 8 %339, i8 0, i64 112, i1 false)
  %14657 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %339, i32 0, i32 0
  %14658 = load ptr, ptr %337, align 8, !tbaa !9
  store ptr %14658, ptr %14657, align 8, !tbaa !68
  %14659 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %339, i32 0, i32 1
  %14660 = getelementptr inbounds %struct.s2n_kem_params, ptr %14659, i32 0, i32 0
  %14661 = getelementptr inbounds %struct.s2n_kem_params, ptr %14659, i32 0, i32 1
  %14662 = getelementptr inbounds %struct.s2n_kem_params, ptr %14659, i32 0, i32 2
  %14663 = getelementptr inbounds %struct.s2n_kem_params, ptr %14659, i32 0, i32 3
  %14664 = getelementptr inbounds %struct.s2n_kem_params, ptr %14659, i32 0, i32 4
  %14665 = load i32, ptr %5, align 4, !tbaa !5
  %14666 = icmp ne i32 %14665, 0
  %14667 = zext i1 %14666 to i8
  store i8 %14667, ptr %14664, align 8, !tbaa !105
  %14668 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %339, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 40, ptr %340) #11
  call void @llvm.memset.p0.i64(ptr align 8 %340, i8 0, i64 40, i1 false)
  br label %14669

14669:                                            ; preds = %14656
  %14670 = load i32, ptr @test_count, align 4, !tbaa !5
  %14671 = add nsw i32 %14670, 1
  store i32 %14671, ptr @test_count, align 4, !tbaa !5
  %14672 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %340, i32 noundef 8192)
  %14673 = icmp eq i32 %14672, -1
  br i1 %14673, label %14674, label %14727

14674:                                            ; preds = %14669
  br label %14675

14675:                                            ; preds = %14674
  br label %14676

14676:                                            ; preds = %14675
  call void @llvm.lifetime.start.p0(i64 4, ptr %341) #11
  %14677 = call ptr @__errno_location() #12
  %14678 = load i32, ptr %14677, align 4, !tbaa !5
  store i32 %14678, ptr %341, align 4, !tbaa !5
  %14679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14680 = call i32 @s2n_print_stacktrace(ptr noundef %14679)
  %14681 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14682 = trunc i8 %14681 to i1
  br i1 %14682, label %14683, label %14705

14683:                                            ; preds = %14676
  %14684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14685 = call i32 @fileno(ptr noundef %14684) #11
  %14686 = call i32 @isatty(i32 noundef %14685) #11
  %14687 = icmp ne i32 %14686, 0
  br i1 %14687, label %14688, label %14705

14688:                                            ; preds = %14683
  %14689 = load i32, ptr %341, align 4, !tbaa !5
  %14690 = call ptr @__errno_location() #12
  store i32 %14689, ptr %14690, align 4, !tbaa !5
  %14691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14692 = load i32, ptr @test_count, align 4, !tbaa !5
  %14693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14694 = load i32, ptr %14693, align 4, !tbaa !5
  %14695 = call ptr @s2n_strerror(i32 noundef %14694, ptr noundef @.str.4)
  %14696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14697 = load i32, ptr %14696, align 4, !tbaa !5
  %14698 = call ptr @s2n_strerror_debug(i32 noundef %14697, ptr noundef @.str.4)
  %14699 = call ptr @__errno_location() #12
  %14700 = load i32, ptr %14699, align 4, !tbaa !5
  %14701 = call ptr @strerror(i32 noundef %14700) #11
  %14702 = call ptr @__errno_location() #12
  %14703 = load i32, ptr %14702, align 4, !tbaa !5
  %14704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14691, ptr noundef @.str.2, i32 noundef %14692, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 723, ptr noundef %14695, ptr noundef %14698, ptr noundef %14701, i32 noundef %14703) #11
  br label %14722

14705:                                            ; preds = %14683, %14676
  %14706 = load i32, ptr %341, align 4, !tbaa !5
  %14707 = call ptr @__errno_location() #12
  store i32 %14706, ptr %14707, align 4, !tbaa !5
  %14708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14709 = load i32, ptr @test_count, align 4, !tbaa !5
  %14710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14711 = load i32, ptr %14710, align 4, !tbaa !5
  %14712 = call ptr @s2n_strerror(i32 noundef %14711, ptr noundef @.str.4)
  %14713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14714 = load i32, ptr %14713, align 4, !tbaa !5
  %14715 = call ptr @s2n_strerror_debug(i32 noundef %14714, ptr noundef @.str.4)
  %14716 = call ptr @__errno_location() #12
  %14717 = load i32, ptr %14716, align 4, !tbaa !5
  %14718 = call ptr @strerror(i32 noundef %14717) #11
  %14719 = call ptr @__errno_location() #12
  %14720 = load i32, ptr %14719, align 4, !tbaa !5
  %14721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14708, ptr noundef @.str.5, i32 noundef %14709, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 723, ptr noundef %14712, ptr noundef %14715, ptr noundef %14718, i32 noundef %14720) #11
  br label %14722

14722:                                            ; preds = %14705, %14688
  call void @llvm.lifetime.end.p0(i64 4, ptr %341) #11
  br label %14723

14723:                                            ; preds = %14722
  br label %14724

14724:                                            ; preds = %14723
  call void @exit(i32 noundef 1) #13
  unreachable

14725:                                            ; No predecessors!
  br label %14726

14726:                                            ; preds = %14725
  br label %14727

14727:                                            ; preds = %14726, %14669
  br label %14728

14728:                                            ; preds = %14727
  br label %14729

14729:                                            ; preds = %14728
  call void @llvm.lifetime.start.p0(i64 16, ptr %342) #11
  call void @llvm.memset.p0.i64(ptr align 8 %342, i8 0, i64 16, i1 false)
  br label %14730

14730:                                            ; preds = %14729
  %14731 = load i32, ptr @test_count, align 4, !tbaa !5
  %14732 = add nsw i32 %14731, 1
  store i32 %14732, ptr @test_count, align 4, !tbaa !5
  %14733 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %340, ptr noundef %342)
  %14734 = icmp eq i32 %14733, -1
  br i1 %14734, label %14735, label %14788

14735:                                            ; preds = %14730
  br label %14736

14736:                                            ; preds = %14735
  br label %14737

14737:                                            ; preds = %14736
  call void @llvm.lifetime.start.p0(i64 4, ptr %343) #11
  %14738 = call ptr @__errno_location() #12
  %14739 = load i32, ptr %14738, align 4, !tbaa !5
  store i32 %14739, ptr %343, align 4, !tbaa !5
  %14740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14741 = call i32 @s2n_print_stacktrace(ptr noundef %14740)
  %14742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14743 = trunc i8 %14742 to i1
  br i1 %14743, label %14744, label %14766

14744:                                            ; preds = %14737
  %14745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14746 = call i32 @fileno(ptr noundef %14745) #11
  %14747 = call i32 @isatty(i32 noundef %14746) #11
  %14748 = icmp ne i32 %14747, 0
  br i1 %14748, label %14749, label %14766

14749:                                            ; preds = %14744
  %14750 = load i32, ptr %343, align 4, !tbaa !5
  %14751 = call ptr @__errno_location() #12
  store i32 %14750, ptr %14751, align 4, !tbaa !5
  %14752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14753 = load i32, ptr @test_count, align 4, !tbaa !5
  %14754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14755 = load i32, ptr %14754, align 4, !tbaa !5
  %14756 = call ptr @s2n_strerror(i32 noundef %14755, ptr noundef @.str.4)
  %14757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14758 = load i32, ptr %14757, align 4, !tbaa !5
  %14759 = call ptr @s2n_strerror_debug(i32 noundef %14758, ptr noundef @.str.4)
  %14760 = call ptr @__errno_location() #12
  %14761 = load i32, ptr %14760, align 4, !tbaa !5
  %14762 = call ptr @strerror(i32 noundef %14761) #11
  %14763 = call ptr @__errno_location() #12
  %14764 = load i32, ptr %14763, align 4, !tbaa !5
  %14765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14752, ptr noundef @.str.2, i32 noundef %14753, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 726, ptr noundef %14756, ptr noundef %14759, ptr noundef %14762, i32 noundef %14764) #11
  br label %14783

14766:                                            ; preds = %14744, %14737
  %14767 = load i32, ptr %343, align 4, !tbaa !5
  %14768 = call ptr @__errno_location() #12
  store i32 %14767, ptr %14768, align 4, !tbaa !5
  %14769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14770 = load i32, ptr @test_count, align 4, !tbaa !5
  %14771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14772 = load i32, ptr %14771, align 4, !tbaa !5
  %14773 = call ptr @s2n_strerror(i32 noundef %14772, ptr noundef @.str.4)
  %14774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14775 = load i32, ptr %14774, align 4, !tbaa !5
  %14776 = call ptr @s2n_strerror_debug(i32 noundef %14775, ptr noundef @.str.4)
  %14777 = call ptr @__errno_location() #12
  %14778 = load i32, ptr %14777, align 4, !tbaa !5
  %14779 = call ptr @strerror(i32 noundef %14778) #11
  %14780 = call ptr @__errno_location() #12
  %14781 = load i32, ptr %14780, align 4, !tbaa !5
  %14782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14769, ptr noundef @.str.5, i32 noundef %14770, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 726, ptr noundef %14773, ptr noundef %14776, ptr noundef %14779, i32 noundef %14781) #11
  br label %14783

14783:                                            ; preds = %14766, %14749
  call void @llvm.lifetime.end.p0(i64 4, ptr %343) #11
  br label %14784

14784:                                            ; preds = %14783
  br label %14785

14785:                                            ; preds = %14784
  call void @exit(i32 noundef 1) #13
  unreachable

14786:                                            ; No predecessors!
  br label %14787

14787:                                            ; preds = %14786
  br label %14788

14788:                                            ; preds = %14787, %14730
  br label %14789

14789:                                            ; preds = %14788
  br label %14790

14790:                                            ; preds = %14789
  br label %14791

14791:                                            ; preds = %14790
  %14792 = load i32, ptr @test_count, align 4, !tbaa !5
  %14793 = add nsw i32 %14792, 1
  store i32 %14793, ptr @test_count, align 4, !tbaa !5
  %14794 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef %340, ptr noundef %339)
  %14795 = icmp eq i32 %14794, -1
  br i1 %14795, label %14796, label %14849

14796:                                            ; preds = %14791
  br label %14797

14797:                                            ; preds = %14796
  br label %14798

14798:                                            ; preds = %14797
  call void @llvm.lifetime.start.p0(i64 4, ptr %344) #11
  %14799 = call ptr @__errno_location() #12
  %14800 = load i32, ptr %14799, align 4, !tbaa !5
  store i32 %14800, ptr %344, align 4, !tbaa !5
  %14801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14802 = call i32 @s2n_print_stacktrace(ptr noundef %14801)
  %14803 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14804 = trunc i8 %14803 to i1
  br i1 %14804, label %14805, label %14827

14805:                                            ; preds = %14798
  %14806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14807 = call i32 @fileno(ptr noundef %14806) #11
  %14808 = call i32 @isatty(i32 noundef %14807) #11
  %14809 = icmp ne i32 %14808, 0
  br i1 %14809, label %14810, label %14827

14810:                                            ; preds = %14805
  %14811 = load i32, ptr %344, align 4, !tbaa !5
  %14812 = call ptr @__errno_location() #12
  store i32 %14811, ptr %14812, align 4, !tbaa !5
  %14813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14814 = load i32, ptr @test_count, align 4, !tbaa !5
  %14815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14816 = load i32, ptr %14815, align 4, !tbaa !5
  %14817 = call ptr @s2n_strerror(i32 noundef %14816, ptr noundef @.str.4)
  %14818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14819 = load i32, ptr %14818, align 4, !tbaa !5
  %14820 = call ptr @s2n_strerror_debug(i32 noundef %14819, ptr noundef @.str.4)
  %14821 = call ptr @__errno_location() #12
  %14822 = load i32, ptr %14821, align 4, !tbaa !5
  %14823 = call ptr @strerror(i32 noundef %14822) #11
  %14824 = call ptr @__errno_location() #12
  %14825 = load i32, ptr %14824, align 4, !tbaa !5
  %14826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14813, ptr noundef @.str.2, i32 noundef %14814, ptr noundef @.str.151, ptr noundef @.str.1, i32 noundef 727, ptr noundef %14817, ptr noundef %14820, ptr noundef %14823, i32 noundef %14825) #11
  br label %14844

14827:                                            ; preds = %14805, %14798
  %14828 = load i32, ptr %344, align 4, !tbaa !5
  %14829 = call ptr @__errno_location() #12
  store i32 %14828, ptr %14829, align 4, !tbaa !5
  %14830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14831 = load i32, ptr @test_count, align 4, !tbaa !5
  %14832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14833 = load i32, ptr %14832, align 4, !tbaa !5
  %14834 = call ptr @s2n_strerror(i32 noundef %14833, ptr noundef @.str.4)
  %14835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14836 = load i32, ptr %14835, align 4, !tbaa !5
  %14837 = call ptr @s2n_strerror_debug(i32 noundef %14836, ptr noundef @.str.4)
  %14838 = call ptr @__errno_location() #12
  %14839 = load i32, ptr %14838, align 4, !tbaa !5
  %14840 = call ptr @strerror(i32 noundef %14839) #11
  %14841 = call ptr @__errno_location() #12
  %14842 = load i32, ptr %14841, align 4, !tbaa !5
  %14843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14830, ptr noundef @.str.5, i32 noundef %14831, ptr noundef @.str.151, ptr noundef @.str.1, i32 noundef 727, ptr noundef %14834, ptr noundef %14837, ptr noundef %14840, i32 noundef %14842) #11
  br label %14844

14844:                                            ; preds = %14827, %14810
  call void @llvm.lifetime.end.p0(i64 4, ptr %344) #11
  br label %14845

14845:                                            ; preds = %14844
  br label %14846

14846:                                            ; preds = %14845
  call void @exit(i32 noundef 1) #13
  unreachable

14847:                                            ; No predecessors!
  br label %14848

14848:                                            ; preds = %14847
  br label %14849

14849:                                            ; preds = %14848, %14791
  br label %14850

14850:                                            ; preds = %14849
  br label %14851

14851:                                            ; preds = %14850
  br label %14852

14852:                                            ; preds = %14851
  %14853 = load i32, ptr @test_count, align 4, !tbaa !5
  %14854 = add nsw i32 %14853, 1
  store i32 %14854, ptr @test_count, align 4, !tbaa !5
  %14855 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %342)
  %14856 = icmp eq i32 %14855, -1
  br i1 %14856, label %14857, label %14910

14857:                                            ; preds = %14852
  br label %14858

14858:                                            ; preds = %14857
  br label %14859

14859:                                            ; preds = %14858
  call void @llvm.lifetime.start.p0(i64 4, ptr %345) #11
  %14860 = call ptr @__errno_location() #12
  %14861 = load i32, ptr %14860, align 4, !tbaa !5
  store i32 %14861, ptr %345, align 4, !tbaa !5
  %14862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14863 = call i32 @s2n_print_stacktrace(ptr noundef %14862)
  %14864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14865 = trunc i8 %14864 to i1
  br i1 %14865, label %14866, label %14888

14866:                                            ; preds = %14859
  %14867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14868 = call i32 @fileno(ptr noundef %14867) #11
  %14869 = call i32 @isatty(i32 noundef %14868) #11
  %14870 = icmp ne i32 %14869, 0
  br i1 %14870, label %14871, label %14888

14871:                                            ; preds = %14866
  %14872 = load i32, ptr %345, align 4, !tbaa !5
  %14873 = call ptr @__errno_location() #12
  store i32 %14872, ptr %14873, align 4, !tbaa !5
  %14874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14875 = load i32, ptr @test_count, align 4, !tbaa !5
  %14876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14877 = load i32, ptr %14876, align 4, !tbaa !5
  %14878 = call ptr @s2n_strerror(i32 noundef %14877, ptr noundef @.str.4)
  %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_debug(i32 noundef %14880, ptr noundef @.str.4)
  %14882 = call ptr @__errno_location() #12
  %14883 = load i32, ptr %14882, align 4, !tbaa !5
  %14884 = call ptr @strerror(i32 noundef %14883) #11
  %14885 = call ptr @__errno_location() #12
  %14886 = load i32, ptr %14885, align 4, !tbaa !5
  %14887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14874, ptr noundef @.str.2, i32 noundef %14875, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 728, ptr noundef %14878, ptr noundef %14881, ptr noundef %14884, i32 noundef %14886) #11
  br label %14905

14888:                                            ; preds = %14866, %14859
  %14889 = load i32, ptr %345, align 4, !tbaa !5
  %14890 = call ptr @__errno_location() #12
  store i32 %14889, ptr %14890, align 4, !tbaa !5
  %14891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14892 = load i32, ptr @test_count, align 4, !tbaa !5
  %14893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14894 = load i32, ptr %14893, align 4, !tbaa !5
  %14895 = call ptr @s2n_strerror(i32 noundef %14894, ptr noundef @.str.4)
  %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_debug(i32 noundef %14897, ptr noundef @.str.4)
  %14899 = call ptr @__errno_location() #12
  %14900 = load i32, ptr %14899, align 4, !tbaa !5
  %14901 = call ptr @strerror(i32 noundef %14900) #11
  %14902 = call ptr @__errno_location() #12
  %14903 = load i32, ptr %14902, align 4, !tbaa !5
  %14904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14891, ptr noundef @.str.5, i32 noundef %14892, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 728, ptr noundef %14895, ptr noundef %14898, ptr noundef %14901, i32 noundef %14903) #11
  br label %14905

14905:                                            ; preds = %14888, %14871
  call void @llvm.lifetime.end.p0(i64 4, ptr %345) #11
  br label %14906

14906:                                            ; preds = %14905
  br label %14907

14907:                                            ; preds = %14906
  call void @exit(i32 noundef 1) #13
  unreachable

14908:                                            ; No predecessors!
  br label %14909

14909:                                            ; preds = %14908
  br label %14910

14910:                                            ; preds = %14909, %14852
  br label %14911

14911:                                            ; preds = %14910
  br label %14912

14912:                                            ; preds = %14911
  br label %14913

14913:                                            ; preds = %14912
  %14914 = load i32, ptr @test_count, align 4, !tbaa !5
  %14915 = add nsw i32 %14914, 1
  store i32 %14915, ptr @test_count, align 4, !tbaa !5
  %14916 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !98
  %14917 = load ptr, ptr %326, align 8, !tbaa !9
  %14918 = call i32 %14916(ptr noundef %14917, ptr noundef %340)
  %14919 = icmp eq i32 %14918, -1
  br i1 %14919, label %14920, label %14973

14920:                                            ; preds = %14913
  br label %14921

14921:                                            ; preds = %14920
  br label %14922

14922:                                            ; preds = %14921
  call void @llvm.lifetime.start.p0(i64 4, ptr %346) #11
  %14923 = call ptr @__errno_location() #12
  %14924 = load i32, ptr %14923, align 4, !tbaa !5
  store i32 %14924, ptr %346, align 4, !tbaa !5
  %14925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14926 = call i32 @s2n_print_stacktrace(ptr noundef %14925)
  %14927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14928 = trunc i8 %14927 to i1
  br i1 %14928, label %14929, label %14951

14929:                                            ; preds = %14922
  %14930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14931 = call i32 @fileno(ptr noundef %14930) #11
  %14932 = call i32 @isatty(i32 noundef %14931) #11
  %14933 = icmp ne i32 %14932, 0
  br i1 %14933, label %14934, label %14951

14934:                                            ; preds = %14929
  %14935 = load i32, ptr %346, align 4, !tbaa !5
  %14936 = call ptr @__errno_location() #12
  store i32 %14935, ptr %14936, align 4, !tbaa !5
  %14937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14938 = load i32, ptr @test_count, align 4, !tbaa !5
  %14939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14940 = load i32, ptr %14939, align 4, !tbaa !5
  %14941 = call ptr @s2n_strerror(i32 noundef %14940, ptr noundef @.str.4)
  %14942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14943 = load i32, ptr %14942, align 4, !tbaa !5
  %14944 = call ptr @s2n_strerror_debug(i32 noundef %14943, ptr noundef @.str.4)
  %14945 = call ptr @__errno_location() #12
  %14946 = load i32, ptr %14945, align 4, !tbaa !5
  %14947 = call ptr @strerror(i32 noundef %14946) #11
  %14948 = call ptr @__errno_location() #12
  %14949 = load i32, ptr %14948, align 4, !tbaa !5
  %14950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14937, ptr noundef @.str.2, i32 noundef %14938, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 730, ptr noundef %14941, ptr noundef %14944, ptr noundef %14947, i32 noundef %14949) #11
  br label %14968

14951:                                            ; preds = %14929, %14922
  %14952 = load i32, ptr %346, align 4, !tbaa !5
  %14953 = call ptr @__errno_location() #12
  store i32 %14952, ptr %14953, align 4, !tbaa !5
  %14954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14955 = load i32, ptr @test_count, align 4, !tbaa !5
  %14956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14957 = load i32, ptr %14956, align 4, !tbaa !5
  %14958 = call ptr @s2n_strerror(i32 noundef %14957, ptr noundef @.str.4)
  %14959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14960 = load i32, ptr %14959, align 4, !tbaa !5
  %14961 = call ptr @s2n_strerror_debug(i32 noundef %14960, ptr noundef @.str.4)
  %14962 = call ptr @__errno_location() #12
  %14963 = load i32, ptr %14962, align 4, !tbaa !5
  %14964 = call ptr @strerror(i32 noundef %14963) #11
  %14965 = call ptr @__errno_location() #12
  %14966 = load i32, ptr %14965, align 4, !tbaa !5
  %14967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14954, ptr noundef @.str.5, i32 noundef %14955, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 730, ptr noundef %14958, ptr noundef %14961, ptr noundef %14964, i32 noundef %14966) #11
  br label %14968

14968:                                            ; preds = %14951, %14934
  call void @llvm.lifetime.end.p0(i64 4, ptr %346) #11
  br label %14969

14969:                                            ; preds = %14968
  br label %14970

14970:                                            ; preds = %14969
  call void @exit(i32 noundef 1) #13
  unreachable

14971:                                            ; No predecessors!
  br label %14972

14972:                                            ; preds = %14971
  br label %14973

14973:                                            ; preds = %14972, %14913
  br label %14974

14974:                                            ; preds = %14973
  br label %14975

14975:                                            ; preds = %14974
  br label %14976

14976:                                            ; preds = %14975
  %14977 = load i32, ptr @test_count, align 4, !tbaa !5
  %14978 = add nsw i32 %14977, 1
  store i32 %14978, ptr @test_count, align 4, !tbaa !5
  %14979 = getelementptr inbounds %struct.s2n_stuffer, ptr %340, i32 0, i32 2
  %14980 = load i32, ptr %14979, align 4, !tbaa !58
  %14981 = getelementptr inbounds %struct.s2n_stuffer, ptr %340, i32 0, i32 1
  %14982 = load i32, ptr %14981, align 8, !tbaa !59
  %14983 = sub i32 %14980, %14982
  %14984 = icmp eq i32 %14983, 0
  br i1 %14984, label %15038, label %14985

14985:                                            ; preds = %14976
  br label %14986

14986:                                            ; preds = %14985
  br label %14987

14987:                                            ; preds = %14986
  call void @llvm.lifetime.start.p0(i64 4, ptr %347) #11
  %14988 = call ptr @__errno_location() #12
  %14989 = load i32, ptr %14988, align 4, !tbaa !5
  store i32 %14989, ptr %347, 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) #11
  %14997 = call i32 @isatty(i32 noundef %14996) #11
  %14998 = icmp ne i32 %14997, 0
  br i1 %14998, label %14999, label %15016

14999:                                            ; preds = %14994
  %15000 = load i32, ptr %347, align 4, !tbaa !5
  %15001 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %15010 = call ptr @__errno_location() #12
  %15011 = load i32, ptr %15010, align 4, !tbaa !5
  %15012 = call ptr @strerror(i32 noundef %15011) #11
  %15013 = call ptr @__errno_location() #12
  %15014 = load i32, ptr %15013, align 4, !tbaa !5
  %15015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15002, ptr noundef @.str.2, i32 noundef %15003, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 731, ptr noundef %15006, ptr noundef %15009, ptr noundef %15012, i32 noundef %15014) #11
  br label %15033

15016:                                            ; preds = %14994, %14987
  %15017 = load i32, ptr %347, align 4, !tbaa !5
  %15018 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %15027 = call ptr @__errno_location() #12
  %15028 = load i32, ptr %15027, align 4, !tbaa !5
  %15029 = call ptr @strerror(i32 noundef %15028) #11
  %15030 = call ptr @__errno_location() #12
  %15031 = load i32, ptr %15030, align 4, !tbaa !5
  %15032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15019, ptr noundef @.str.5, i32 noundef %15020, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 731, ptr noundef %15023, ptr noundef %15026, ptr noundef %15029, i32 noundef %15031) #11
  br label %15033

15033:                                            ; preds = %15016, %14999
  call void @llvm.lifetime.end.p0(i64 4, ptr %347) #11
  br label %15034

15034:                                            ; preds = %15033
  br label %15035

15035:                                            ; preds = %15034
  call void @exit(i32 noundef 1) #13
  unreachable

15036:                                            ; No predecessors!
  br label %15037

15037:                                            ; preds = %15036
  br label %15038

15038:                                            ; preds = %15037, %14976
  br label %15039

15039:                                            ; preds = %15038
  br label %15040

15040:                                            ; preds = %15039
  br label %15041

15041:                                            ; preds = %15040
  %15042 = load i32, ptr @test_count, align 4, !tbaa !5
  %15043 = add nsw i32 %15042, 1
  store i32 %15043, ptr @test_count, align 4, !tbaa !5
  %15044 = load ptr, ptr %326, align 8, !tbaa !9
  %15045 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %15044, i32 noundef 16)
  br i1 %15045, label %15099, label %15046

15046:                                            ; preds = %15041
  br label %15047

15047:                                            ; preds = %15046
  br label %15048

15048:                                            ; preds = %15047
  call void @llvm.lifetime.start.p0(i64 4, ptr %348) #11
  %15049 = call ptr @__errno_location() #12
  %15050 = load i32, ptr %15049, align 4, !tbaa !5
  store i32 %15050, ptr %348, align 4, !tbaa !5
  %15051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15052 = call i32 @s2n_print_stacktrace(ptr noundef %15051)
  %15053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15054 = trunc i8 %15053 to i1
  br i1 %15054, label %15055, label %15077

15055:                                            ; preds = %15048
  %15056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15057 = call i32 @fileno(ptr noundef %15056) #11
  %15058 = call i32 @isatty(i32 noundef %15057) #11
  %15059 = icmp ne i32 %15058, 0
  br i1 %15059, label %15060, label %15077

15060:                                            ; preds = %15055
  %15061 = load i32, ptr %348, align 4, !tbaa !5
  %15062 = call ptr @__errno_location() #12
  store i32 %15061, ptr %15062, align 4, !tbaa !5
  %15063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15064 = load i32, ptr @test_count, align 4, !tbaa !5
  %15065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15066 = load i32, ptr %15065, align 4, !tbaa !5
  %15067 = call ptr @s2n_strerror(i32 noundef %15066, ptr noundef @.str.4)
  %15068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15069 = load i32, ptr %15068, align 4, !tbaa !5
  %15070 = call ptr @s2n_strerror_debug(i32 noundef %15069, ptr noundef @.str.4)
  %15071 = call ptr @__errno_location() #12
  %15072 = load i32, ptr %15071, align 4, !tbaa !5
  %15073 = call ptr @strerror(i32 noundef %15072) #11
  %15074 = call ptr @__errno_location() #12
  %15075 = load i32, ptr %15074, align 4, !tbaa !5
  %15076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15063, ptr noundef @.str.2, i32 noundef %15064, ptr noundef @.str.152, ptr noundef @.str.1, i32 noundef 734, ptr noundef %15067, ptr noundef %15070, ptr noundef %15073, i32 noundef %15075) #11
  br label %15094

15077:                                            ; preds = %15055, %15048
  %15078 = load i32, ptr %348, align 4, !tbaa !5
  %15079 = call ptr @__errno_location() #12
  store i32 %15078, ptr %15079, align 4, !tbaa !5
  %15080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15081 = load i32, ptr @test_count, align 4, !tbaa !5
  %15082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15083 = load i32, ptr %15082, align 4, !tbaa !5
  %15084 = call ptr @s2n_strerror(i32 noundef %15083, ptr noundef @.str.4)
  %15085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15086 = load i32, ptr %15085, align 4, !tbaa !5
  %15087 = call ptr @s2n_strerror_debug(i32 noundef %15086, ptr noundef @.str.4)
  %15088 = call ptr @__errno_location() #12
  %15089 = load i32, ptr %15088, align 4, !tbaa !5
  %15090 = call ptr @strerror(i32 noundef %15089) #11
  %15091 = call ptr @__errno_location() #12
  %15092 = load i32, ptr %15091, align 4, !tbaa !5
  %15093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15080, ptr noundef @.str.5, i32 noundef %15081, ptr noundef @.str.152, ptr noundef @.str.1, i32 noundef 734, ptr noundef %15084, ptr noundef %15087, ptr noundef %15090, i32 noundef %15092) #11
  br label %15094

15094:                                            ; preds = %15077, %15060
  call void @llvm.lifetime.end.p0(i64 4, ptr %348) #11
  br label %15095

15095:                                            ; preds = %15094
  br label %15096

15096:                                            ; preds = %15095
  call void @exit(i32 noundef 1) #13
  unreachable

15097:                                            ; No predecessors!
  br label %15098

15098:                                            ; preds = %15097
  br label %15099

15099:                                            ; preds = %15098, %15041
  br label %15100

15100:                                            ; preds = %15099
  br label %15101

15101:                                            ; preds = %15100
  call void @llvm.lifetime.start.p0(i64 8, ptr %349) #11
  %15102 = load ptr, ptr %326, align 8, !tbaa !9
  %15103 = getelementptr inbounds %struct.s2n_connection, ptr %15102, i32 0, i32 31
  %15104 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15103, i32 0, i32 5
  store ptr %15104, ptr %349, align 8, !tbaa !9
  br label %15105

15105:                                            ; preds = %15101
  %15106 = load i32, ptr @test_count, align 4, !tbaa !5
  %15107 = add nsw i32 %15106, 1
  store i32 %15107, ptr @test_count, align 4, !tbaa !5
  %15108 = load ptr, ptr %349, align 8, !tbaa !9
  %15109 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %15108, i32 0, i32 0
  %15110 = load ptr, ptr %15109, align 8, !tbaa !68
  %15111 = icmp eq ptr %15110, null
  br i1 %15111, label %15165, label %15112

15112:                                            ; preds = %15105
  br label %15113

15113:                                            ; preds = %15112
  br label %15114

15114:                                            ; preds = %15113
  call void @llvm.lifetime.start.p0(i64 4, ptr %350) #11
  %15115 = call ptr @__errno_location() #12
  %15116 = load i32, ptr %15115, align 4, !tbaa !5
  store i32 %15116, ptr %350, align 4, !tbaa !5
  %15117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15118 = call i32 @s2n_print_stacktrace(ptr noundef %15117)
  %15119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15120 = trunc i8 %15119 to i1
  br i1 %15120, label %15121, label %15143

15121:                                            ; preds = %15114
  %15122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15123 = call i32 @fileno(ptr noundef %15122) #11
  %15124 = call i32 @isatty(i32 noundef %15123) #11
  %15125 = icmp ne i32 %15124, 0
  br i1 %15125, label %15126, label %15143

15126:                                            ; preds = %15121
  %15127 = load i32, ptr %350, align 4, !tbaa !5
  %15128 = call ptr @__errno_location() #12
  store i32 %15127, ptr %15128, align 4, !tbaa !5
  %15129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15130 = load i32, ptr @test_count, align 4, !tbaa !5
  %15131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15132 = load i32, ptr %15131, align 4, !tbaa !5
  %15133 = call ptr @s2n_strerror(i32 noundef %15132, ptr noundef @.str.4)
  %15134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15135 = load i32, ptr %15134, align 4, !tbaa !5
  %15136 = call ptr @s2n_strerror_debug(i32 noundef %15135, ptr noundef @.str.4)
  %15137 = call ptr @__errno_location() #12
  %15138 = load i32, ptr %15137, align 4, !tbaa !5
  %15139 = call ptr @strerror(i32 noundef %15138) #11
  %15140 = call ptr @__errno_location() #12
  %15141 = load i32, ptr %15140, align 4, !tbaa !5
  %15142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15129, ptr noundef @.str.2, i32 noundef %15130, ptr noundef @.str.153, ptr noundef @.str.1, i32 noundef 738, ptr noundef %15133, ptr noundef %15136, ptr noundef %15139, i32 noundef %15141) #11
  br label %15160

15143:                                            ; preds = %15121, %15114
  %15144 = load i32, ptr %350, align 4, !tbaa !5
  %15145 = call ptr @__errno_location() #12
  store i32 %15144, ptr %15145, align 4, !tbaa !5
  %15146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15147 = load i32, ptr @test_count, align 4, !tbaa !5
  %15148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15149 = load i32, ptr %15148, align 4, !tbaa !5
  %15150 = call ptr @s2n_strerror(i32 noundef %15149, ptr noundef @.str.4)
  %15151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15152 = load i32, ptr %15151, align 4, !tbaa !5
  %15153 = call ptr @s2n_strerror_debug(i32 noundef %15152, ptr noundef @.str.4)
  %15154 = call ptr @__errno_location() #12
  %15155 = load i32, ptr %15154, align 4, !tbaa !5
  %15156 = call ptr @strerror(i32 noundef %15155) #11
  %15157 = call ptr @__errno_location() #12
  %15158 = load i32, ptr %15157, align 4, !tbaa !5
  %15159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15146, ptr noundef @.str.5, i32 noundef %15147, ptr noundef @.str.153, ptr noundef @.str.1, i32 noundef 738, ptr noundef %15150, ptr noundef %15153, ptr noundef %15156, i32 noundef %15158) #11
  br label %15160

15160:                                            ; preds = %15143, %15126
  call void @llvm.lifetime.end.p0(i64 4, ptr %350) #11
  br label %15161

15161:                                            ; preds = %15160
  br label %15162

15162:                                            ; preds = %15161
  call void @exit(i32 noundef 1) #13
  unreachable

15163:                                            ; No predecessors!
  br label %15164

15164:                                            ; preds = %15163
  br label %15165

15165:                                            ; preds = %15164, %15105
  br label %15166

15166:                                            ; preds = %15165
  br label %15167

15167:                                            ; preds = %15166
  br label %15168

15168:                                            ; preds = %15167
  %15169 = load i32, ptr @test_count, align 4, !tbaa !5
  %15170 = add nsw i32 %15169, 1
  store i32 %15170, ptr @test_count, align 4, !tbaa !5
  %15171 = load ptr, ptr %349, align 8, !tbaa !9
  %15172 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %15171, i32 0, i32 1
  %15173 = getelementptr inbounds %struct.s2n_kem_params, ptr %15172, i32 0, i32 1
  %15174 = getelementptr inbounds %struct.s2n_blob, ptr %15173, i32 0, i32 0
  %15175 = load ptr, ptr %15174, align 8, !tbaa !99
  %15176 = icmp eq ptr %15175, null
  br i1 %15176, label %15230, label %15177

15177:                                            ; preds = %15168
  br label %15178

15178:                                            ; preds = %15177
  br label %15179

15179:                                            ; preds = %15178
  call void @llvm.lifetime.start.p0(i64 4, ptr %351) #11
  %15180 = call ptr @__errno_location() #12
  %15181 = load i32, ptr %15180, align 4, !tbaa !5
  store i32 %15181, ptr %351, align 4, !tbaa !5
  %15182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15183 = call i32 @s2n_print_stacktrace(ptr noundef %15182)
  %15184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15185 = trunc i8 %15184 to i1
  br i1 %15185, label %15186, label %15208

15186:                                            ; preds = %15179
  %15187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15188 = call i32 @fileno(ptr noundef %15187) #11
  %15189 = call i32 @isatty(i32 noundef %15188) #11
  %15190 = icmp ne i32 %15189, 0
  br i1 %15190, label %15191, label %15208

15191:                                            ; preds = %15186
  %15192 = load i32, ptr %351, align 4, !tbaa !5
  %15193 = call ptr @__errno_location() #12
  store i32 %15192, ptr %15193, align 4, !tbaa !5
  %15194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15195 = load i32, ptr @test_count, align 4, !tbaa !5
  %15196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15197 = load i32, ptr %15196, align 4, !tbaa !5
  %15198 = call ptr @s2n_strerror(i32 noundef %15197, ptr noundef @.str.4)
  %15199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15200 = load i32, ptr %15199, align 4, !tbaa !5
  %15201 = call ptr @s2n_strerror_debug(i32 noundef %15200, ptr noundef @.str.4)
  %15202 = call ptr @__errno_location() #12
  %15203 = load i32, ptr %15202, align 4, !tbaa !5
  %15204 = call ptr @strerror(i32 noundef %15203) #11
  %15205 = call ptr @__errno_location() #12
  %15206 = load i32, ptr %15205, align 4, !tbaa !5
  %15207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15194, ptr noundef @.str.2, i32 noundef %15195, ptr noundef @.str.154, ptr noundef @.str.1, i32 noundef 739, ptr noundef %15198, ptr noundef %15201, ptr noundef %15204, i32 noundef %15206) #11
  br label %15225

15208:                                            ; preds = %15186, %15179
  %15209 = load i32, ptr %351, align 4, !tbaa !5
  %15210 = call ptr @__errno_location() #12
  store i32 %15209, ptr %15210, align 4, !tbaa !5
  %15211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15212 = load i32, ptr @test_count, align 4, !tbaa !5
  %15213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15214 = load i32, ptr %15213, align 4, !tbaa !5
  %15215 = call ptr @s2n_strerror(i32 noundef %15214, ptr noundef @.str.4)
  %15216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15217 = load i32, ptr %15216, align 4, !tbaa !5
  %15218 = call ptr @s2n_strerror_debug(i32 noundef %15217, ptr noundef @.str.4)
  %15219 = call ptr @__errno_location() #12
  %15220 = load i32, ptr %15219, align 4, !tbaa !5
  %15221 = call ptr @strerror(i32 noundef %15220) #11
  %15222 = call ptr @__errno_location() #12
  %15223 = load i32, ptr %15222, align 4, !tbaa !5
  %15224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15211, ptr noundef @.str.5, i32 noundef %15212, ptr noundef @.str.154, ptr noundef @.str.1, i32 noundef 739, ptr noundef %15215, ptr noundef %15218, ptr noundef %15221, i32 noundef %15223) #11
  br label %15225

15225:                                            ; preds = %15208, %15191
  call void @llvm.lifetime.end.p0(i64 4, ptr %351) #11
  br label %15226

15226:                                            ; preds = %15225
  br label %15227

15227:                                            ; preds = %15226
  call void @exit(i32 noundef 1) #13
  unreachable

15228:                                            ; No predecessors!
  br label %15229

15229:                                            ; preds = %15228
  br label %15230

15230:                                            ; preds = %15229, %15168
  br label %15231

15231:                                            ; preds = %15230
  br label %15232

15232:                                            ; preds = %15231
  br label %15233

15233:                                            ; preds = %15232
  %15234 = load i32, ptr @test_count, align 4, !tbaa !5
  %15235 = add nsw i32 %15234, 1
  store i32 %15235, ptr @test_count, align 4, !tbaa !5
  %15236 = load ptr, ptr %349, align 8, !tbaa !9
  %15237 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %15236, i32 0, i32 2
  %15238 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %15237, i32 0, i32 1
  %15239 = load ptr, ptr %15238, align 8, !tbaa !78
  %15240 = icmp eq ptr %15239, null
  br i1 %15240, label %15294, label %15241

15241:                                            ; preds = %15233
  br label %15242

15242:                                            ; preds = %15241
  br label %15243

15243:                                            ; preds = %15242
  call void @llvm.lifetime.start.p0(i64 4, ptr %352) #11
  %15244 = call ptr @__errno_location() #12
  %15245 = load i32, ptr %15244, align 4, !tbaa !5
  store i32 %15245, ptr %352, align 4, !tbaa !5
  %15246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15247 = call i32 @s2n_print_stacktrace(ptr noundef %15246)
  %15248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15249 = trunc i8 %15248 to i1
  br i1 %15249, label %15250, label %15272

15250:                                            ; preds = %15243
  %15251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15252 = call i32 @fileno(ptr noundef %15251) #11
  %15253 = call i32 @isatty(i32 noundef %15252) #11
  %15254 = icmp ne i32 %15253, 0
  br i1 %15254, label %15255, label %15272

15255:                                            ; preds = %15250
  %15256 = load i32, ptr %352, align 4, !tbaa !5
  %15257 = call ptr @__errno_location() #12
  store i32 %15256, ptr %15257, align 4, !tbaa !5
  %15258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15259 = load i32, ptr @test_count, align 4, !tbaa !5
  %15260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15261 = load i32, ptr %15260, align 4, !tbaa !5
  %15262 = call ptr @s2n_strerror(i32 noundef %15261, ptr noundef @.str.4)
  %15263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15264 = load i32, ptr %15263, align 4, !tbaa !5
  %15265 = call ptr @s2n_strerror_debug(i32 noundef %15264, ptr noundef @.str.4)
  %15266 = call ptr @__errno_location() #12
  %15267 = load i32, ptr %15266, align 4, !tbaa !5
  %15268 = call ptr @strerror(i32 noundef %15267) #11
  %15269 = call ptr @__errno_location() #12
  %15270 = load i32, ptr %15269, align 4, !tbaa !5
  %15271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15258, ptr noundef @.str.2, i32 noundef %15259, ptr noundef @.str.155, ptr noundef @.str.1, i32 noundef 740, ptr noundef %15262, ptr noundef %15265, ptr noundef %15268, i32 noundef %15270) #11
  br label %15289

15272:                                            ; preds = %15250, %15243
  %15273 = load i32, ptr %352, align 4, !tbaa !5
  %15274 = call ptr @__errno_location() #12
  store i32 %15273, ptr %15274, align 4, !tbaa !5
  %15275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15276 = load i32, ptr @test_count, align 4, !tbaa !5
  %15277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15278 = load i32, ptr %15277, align 4, !tbaa !5
  %15279 = call ptr @s2n_strerror(i32 noundef %15278, ptr noundef @.str.4)
  %15280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15281 = load i32, ptr %15280, align 4, !tbaa !5
  %15282 = call ptr @s2n_strerror_debug(i32 noundef %15281, ptr noundef @.str.4)
  %15283 = call ptr @__errno_location() #12
  %15284 = load i32, ptr %15283, align 4, !tbaa !5
  %15285 = call ptr @strerror(i32 noundef %15284) #11
  %15286 = call ptr @__errno_location() #12
  %15287 = load i32, ptr %15286, align 4, !tbaa !5
  %15288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15275, ptr noundef @.str.5, i32 noundef %15276, ptr noundef @.str.155, ptr noundef @.str.1, i32 noundef 740, ptr noundef %15279, ptr noundef %15282, ptr noundef %15285, i32 noundef %15287) #11
  br label %15289

15289:                                            ; preds = %15272, %15255
  call void @llvm.lifetime.end.p0(i64 4, ptr %352) #11
  br label %15290

15290:                                            ; preds = %15289
  br label %15291

15291:                                            ; preds = %15290
  call void @exit(i32 noundef 1) #13
  unreachable

15292:                                            ; No predecessors!
  br label %15293

15293:                                            ; preds = %15292
  br label %15294

15294:                                            ; preds = %15293, %15233
  br label %15295

15295:                                            ; preds = %15294
  br label %15296

15296:                                            ; preds = %15295
  br label %15297

15297:                                            ; preds = %15296
  %15298 = load i32, ptr @test_count, align 4, !tbaa !5
  %15299 = add nsw i32 %15298, 1
  store i32 %15299, ptr @test_count, align 4, !tbaa !5
  %15300 = call i32 @s2n_kem_group_free(ptr noundef %339)
  %15301 = icmp eq i32 %15300, -1
  br i1 %15301, label %15302, label %15355

15302:                                            ; preds = %15297
  br label %15303

15303:                                            ; preds = %15302
  br label %15304

15304:                                            ; preds = %15303
  call void @llvm.lifetime.start.p0(i64 4, ptr %353) #11
  %15305 = call ptr @__errno_location() #12
  %15306 = load i32, ptr %15305, align 4, !tbaa !5
  store i32 %15306, ptr %353, align 4, !tbaa !5
  %15307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15308 = call i32 @s2n_print_stacktrace(ptr noundef %15307)
  %15309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15310 = trunc i8 %15309 to i1
  br i1 %15310, label %15311, label %15333

15311:                                            ; preds = %15304
  %15312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15313 = call i32 @fileno(ptr noundef %15312) #11
  %15314 = call i32 @isatty(i32 noundef %15313) #11
  %15315 = icmp ne i32 %15314, 0
  br i1 %15315, label %15316, label %15333

15316:                                            ; preds = %15311
  %15317 = load i32, ptr %353, align 4, !tbaa !5
  %15318 = call ptr @__errno_location() #12
  store i32 %15317, ptr %15318, align 4, !tbaa !5
  %15319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15320 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %15322, ptr noundef @.str.4)
  %15324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15325 = load i32, ptr %15324, align 4, !tbaa !5
  %15326 = call ptr @s2n_strerror_debug(i32 noundef %15325, ptr noundef @.str.4)
  %15327 = call ptr @__errno_location() #12
  %15328 = load i32, ptr %15327, align 4, !tbaa !5
  %15329 = call ptr @strerror(i32 noundef %15328) #11
  %15330 = call ptr @__errno_location() #12
  %15331 = load i32, ptr %15330, align 4, !tbaa !5
  %15332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15319, ptr noundef @.str.2, i32 noundef %15320, ptr noundef @.str.156, ptr noundef @.str.1, i32 noundef 742, ptr noundef %15323, ptr noundef %15326, ptr noundef %15329, i32 noundef %15331) #11
  br label %15350

15333:                                            ; preds = %15311, %15304
  %15334 = load i32, ptr %353, align 4, !tbaa !5
  %15335 = call ptr @__errno_location() #12
  store i32 %15334, ptr %15335, align 4, !tbaa !5
  %15336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15337 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %15339, ptr noundef @.str.4)
  %15341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15342 = load i32, ptr %15341, align 4, !tbaa !5
  %15343 = call ptr @s2n_strerror_debug(i32 noundef %15342, ptr noundef @.str.4)
  %15344 = call ptr @__errno_location() #12
  %15345 = load i32, ptr %15344, align 4, !tbaa !5
  %15346 = call ptr @strerror(i32 noundef %15345) #11
  %15347 = call ptr @__errno_location() #12
  %15348 = load i32, ptr %15347, align 4, !tbaa !5
  %15349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15336, ptr noundef @.str.5, i32 noundef %15337, ptr noundef @.str.156, ptr noundef @.str.1, i32 noundef 742, ptr noundef %15340, ptr noundef %15343, ptr noundef %15346, i32 noundef %15348) #11
  br label %15350

15350:                                            ; preds = %15333, %15316
  call void @llvm.lifetime.end.p0(i64 4, ptr %353) #11
  br label %15351

15351:                                            ; preds = %15350
  br label %15352

15352:                                            ; preds = %15351
  call void @exit(i32 noundef 1) #13
  unreachable

15353:                                            ; No predecessors!
  br label %15354

15354:                                            ; preds = %15353
  br label %15355

15355:                                            ; preds = %15354, %15297
  br label %15356

15356:                                            ; preds = %15355
  br label %15357

15357:                                            ; preds = %15356
  br label %15358

15358:                                            ; preds = %15357
  %15359 = load i32, ptr @test_count, align 4, !tbaa !5
  %15360 = add nsw i32 %15359, 1
  store i32 %15360, ptr @test_count, align 4, !tbaa !5
  %15361 = call i32 @s2n_stuffer_free(ptr noundef %340)
  %15362 = icmp eq i32 %15361, -1
  br i1 %15362, label %15363, label %15416

15363:                                            ; preds = %15358
  br label %15364

15364:                                            ; preds = %15363
  br label %15365

15365:                                            ; preds = %15364
  call void @llvm.lifetime.start.p0(i64 4, ptr %354) #11
  %15366 = call ptr @__errno_location() #12
  %15367 = load i32, ptr %15366, align 4, !tbaa !5
  store i32 %15367, ptr %354, align 4, !tbaa !5
  %15368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15369 = call i32 @s2n_print_stacktrace(ptr noundef %15368)
  %15370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15371 = trunc i8 %15370 to i1
  br i1 %15371, label %15372, label %15394

15372:                                            ; preds = %15365
  %15373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15374 = call i32 @fileno(ptr noundef %15373) #11
  %15375 = call i32 @isatty(i32 noundef %15374) #11
  %15376 = icmp ne i32 %15375, 0
  br i1 %15376, label %15377, label %15394

15377:                                            ; preds = %15372
  %15378 = load i32, ptr %354, align 4, !tbaa !5
  %15379 = call ptr @__errno_location() #12
  store i32 %15378, ptr %15379, align 4, !tbaa !5
  %15380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15381 = load i32, ptr @test_count, align 4, !tbaa !5
  %15382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15383 = load i32, ptr %15382, align 4, !tbaa !5
  %15384 = call ptr @s2n_strerror(i32 noundef %15383, ptr noundef @.str.4)
  %15385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15386 = load i32, ptr %15385, align 4, !tbaa !5
  %15387 = call ptr @s2n_strerror_debug(i32 noundef %15386, ptr noundef @.str.4)
  %15388 = call ptr @__errno_location() #12
  %15389 = load i32, ptr %15388, align 4, !tbaa !5
  %15390 = call ptr @strerror(i32 noundef %15389) #11
  %15391 = call ptr @__errno_location() #12
  %15392 = load i32, ptr %15391, align 4, !tbaa !5
  %15393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15380, ptr noundef @.str.2, i32 noundef %15381, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 743, ptr noundef %15384, ptr noundef %15387, ptr noundef %15390, i32 noundef %15392) #11
  br label %15411

15394:                                            ; preds = %15372, %15365
  %15395 = load i32, ptr %354, align 4, !tbaa !5
  %15396 = call ptr @__errno_location() #12
  store i32 %15395, ptr %15396, align 4, !tbaa !5
  %15397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15398 = load i32, ptr @test_count, align 4, !tbaa !5
  %15399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15400 = load i32, ptr %15399, align 4, !tbaa !5
  %15401 = call ptr @s2n_strerror(i32 noundef %15400, ptr noundef @.str.4)
  %15402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15403 = load i32, ptr %15402, align 4, !tbaa !5
  %15404 = call ptr @s2n_strerror_debug(i32 noundef %15403, ptr noundef @.str.4)
  %15405 = call ptr @__errno_location() #12
  %15406 = load i32, ptr %15405, align 4, !tbaa !5
  %15407 = call ptr @strerror(i32 noundef %15406) #11
  %15408 = call ptr @__errno_location() #12
  %15409 = load i32, ptr %15408, align 4, !tbaa !5
  %15410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15397, ptr noundef @.str.5, i32 noundef %15398, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 743, ptr noundef %15401, ptr noundef %15404, ptr noundef %15407, i32 noundef %15409) #11
  br label %15411

15411:                                            ; preds = %15394, %15377
  call void @llvm.lifetime.end.p0(i64 4, ptr %354) #11
  br label %15412

15412:                                            ; preds = %15411
  br label %15413

15413:                                            ; preds = %15412
  call void @exit(i32 noundef 1) #13
  unreachable

15414:                                            ; No predecessors!
  br label %15415

15415:                                            ; preds = %15414
  br label %15416

15416:                                            ; preds = %15415, %15358
  br label %15417

15417:                                            ; preds = %15416
  br label %15418

15418:                                            ; preds = %15417
  br label %15419

15419:                                            ; preds = %15418
  %15420 = load i32, ptr @test_count, align 4, !tbaa !5
  %15421 = add nsw i32 %15420, 1
  store i32 %15421, ptr @test_count, align 4, !tbaa !5
  %15422 = load ptr, ptr %326, align 8, !tbaa !9
  %15423 = call i32 @s2n_connection_free(ptr noundef %15422)
  %15424 = icmp eq i32 %15423, -1
  br i1 %15424, label %15425, label %15478

15425:                                            ; preds = %15419
  br label %15426

15426:                                            ; preds = %15425
  br label %15427

15427:                                            ; preds = %15426
  call void @llvm.lifetime.start.p0(i64 4, ptr %355) #11
  %15428 = call ptr @__errno_location() #12
  %15429 = load i32, ptr %15428, align 4, !tbaa !5
  store i32 %15429, ptr %355, 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) #11
  %15437 = call i32 @isatty(i32 noundef %15436) #11
  %15438 = icmp ne i32 %15437, 0
  br i1 %15438, label %15439, label %15456

15439:                                            ; preds = %15434
  %15440 = load i32, ptr %355, align 4, !tbaa !5
  %15441 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %15450 = call ptr @__errno_location() #12
  %15451 = load i32, ptr %15450, align 4, !tbaa !5
  %15452 = call ptr @strerror(i32 noundef %15451) #11
  %15453 = call ptr @__errno_location() #12
  %15454 = load i32, ptr %15453, align 4, !tbaa !5
  %15455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15442, ptr noundef @.str.2, i32 noundef %15443, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 744, ptr noundef %15446, ptr noundef %15449, ptr noundef %15452, i32 noundef %15454) #11
  br label %15473

15456:                                            ; preds = %15434, %15427
  %15457 = load i32, ptr %355, align 4, !tbaa !5
  %15458 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %15467 = call ptr @__errno_location() #12
  %15468 = load i32, ptr %15467, align 4, !tbaa !5
  %15469 = call ptr @strerror(i32 noundef %15468) #11
  %15470 = call ptr @__errno_location() #12
  %15471 = load i32, ptr %15470, align 4, !tbaa !5
  %15472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15459, ptr noundef @.str.5, i32 noundef %15460, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 744, ptr noundef %15463, ptr noundef %15466, ptr noundef %15469, i32 noundef %15471) #11
  br label %15473

15473:                                            ; preds = %15456, %15439
  call void @llvm.lifetime.end.p0(i64 4, ptr %355) #11
  br label %15474

15474:                                            ; preds = %15473
  br label %15475

15475:                                            ; preds = %15474
  call void @exit(i32 noundef 1) #13
  unreachable

15476:                                            ; No predecessors!
  br label %15477

15477:                                            ; preds = %15476
  br label %15478

15478:                                            ; preds = %15477, %15419
  br label %15479

15479:                                            ; preds = %15478
  br label %15480

15480:                                            ; preds = %15479
  call void @llvm.lifetime.end.p0(i64 8, ptr %349) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %342) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %340) #11
  call void @llvm.lifetime.end.p0(i64 112, ptr %339) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %337) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %331) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %326) #11
  br label %15481

15481:                                            ; preds = %15480, %14174
  br label %15482

15482:                                            ; preds = %15481
  %15483 = load i32, ptr @test_count, align 4, !tbaa !5
  %15484 = add nsw i32 %15483, 1
  store i32 %15484, ptr @test_count, align 4, !tbaa !5
  %15485 = getelementptr inbounds %struct.s2n_security_policy, ptr %9, i32 0, i32 2
  %15486 = load ptr, ptr %15485, align 8, !tbaa !22
  %15487 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %15486, ptr noundef %10)
  %15488 = getelementptr inbounds %struct.s2n_result, ptr %356, i32 0, i32 0
  store i32 %15487, ptr %15488, align 4
  %15489 = getelementptr inbounds %struct.s2n_result, ptr %356, i32 0, i32 0
  %15490 = load i32, ptr %15489, align 4
  %15491 = call zeroext i1 @s2n_result_is_ok(i32 %15490)
  br i1 %15491, label %15545, label %15492

15492:                                            ; preds = %15482
  br label %15493

15493:                                            ; preds = %15492
  br label %15494

15494:                                            ; preds = %15493
  call void @llvm.lifetime.start.p0(i64 4, ptr %357) #11
  %15495 = call ptr @__errno_location() #12
  %15496 = load i32, ptr %15495, align 4, !tbaa !5
  store i32 %15496, ptr %357, align 4, !tbaa !5
  %15497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15498 = call i32 @s2n_print_stacktrace(ptr noundef %15497)
  %15499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15500 = trunc i8 %15499 to i1
  br i1 %15500, label %15501, label %15523

15501:                                            ; preds = %15494
  %15502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15503 = call i32 @fileno(ptr noundef %15502) #11
  %15504 = call i32 @isatty(i32 noundef %15503) #11
  %15505 = icmp ne i32 %15504, 0
  br i1 %15505, label %15506, label %15523

15506:                                            ; preds = %15501
  %15507 = load i32, ptr %357, align 4, !tbaa !5
  %15508 = call ptr @__errno_location() #12
  store i32 %15507, ptr %15508, align 4, !tbaa !5
  %15509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15510 = load i32, ptr @test_count, align 4, !tbaa !5
  %15511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15512 = load i32, ptr %15511, align 4, !tbaa !5
  %15513 = call ptr @s2n_strerror(i32 noundef %15512, ptr noundef @.str.4)
  %15514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15515 = load i32, ptr %15514, align 4, !tbaa !5
  %15516 = call ptr @s2n_strerror_debug(i32 noundef %15515, ptr noundef @.str.4)
  %15517 = call ptr @__errno_location() #12
  %15518 = load i32, ptr %15517, align 4, !tbaa !5
  %15519 = call ptr @strerror(i32 noundef %15518) #11
  %15520 = call ptr @__errno_location() #12
  %15521 = load i32, ptr %15520, align 4, !tbaa !5
  %15522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15509, ptr noundef @.str.2, i32 noundef %15510, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 751, ptr noundef %15513, ptr noundef %15516, ptr noundef %15519, i32 noundef %15521) #11
  br label %15540

15523:                                            ; preds = %15501, %15494
  %15524 = load i32, ptr %357, align 4, !tbaa !5
  %15525 = call ptr @__errno_location() #12
  store i32 %15524, ptr %15525, align 4, !tbaa !5
  %15526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15527 = load i32, ptr @test_count, align 4, !tbaa !5
  %15528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15529 = load i32, ptr %15528, align 4, !tbaa !5
  %15530 = call ptr @s2n_strerror(i32 noundef %15529, ptr noundef @.str.4)
  %15531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15532 = load i32, ptr %15531, align 4, !tbaa !5
  %15533 = call ptr @s2n_strerror_debug(i32 noundef %15532, ptr noundef @.str.4)
  %15534 = call ptr @__errno_location() #12
  %15535 = load i32, ptr %15534, align 4, !tbaa !5
  %15536 = call ptr @strerror(i32 noundef %15535) #11
  %15537 = call ptr @__errno_location() #12
  %15538 = load i32, ptr %15537, align 4, !tbaa !5
  %15539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15526, ptr noundef @.str.5, i32 noundef %15527, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 751, ptr noundef %15530, ptr noundef %15533, ptr noundef %15536, i32 noundef %15538) #11
  br label %15540

15540:                                            ; preds = %15523, %15506
  call void @llvm.lifetime.end.p0(i64 4, ptr %357) #11
  br label %15541

15541:                                            ; preds = %15540
  br label %15542

15542:                                            ; preds = %15541
  call void @exit(i32 noundef 1) #13
  unreachable

15543:                                            ; No predecessors!
  br label %15544

15544:                                            ; preds = %15543
  br label %15545

15545:                                            ; preds = %15544, %15482
  br label %15546

15546:                                            ; preds = %15545
  br label %15547

15547:                                            ; preds = %15546
  %15548 = load i32, ptr %10, align 4, !tbaa !5
  %15549 = icmp uge i32 %15548, 2
  br i1 %15549, label %15550, label %17063

15550:                                            ; preds = %15547
  call void @llvm.lifetime.start.p0(i64 8, ptr %358) #11
  %15551 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %15551, ptr %358, align 8, !tbaa !9
  br label %15552

15552:                                            ; preds = %15550
  %15553 = load i32, ptr @test_count, align 4, !tbaa !5
  %15554 = add nsw i32 %15553, 1
  store i32 %15554, ptr @test_count, align 4, !tbaa !5
  %15555 = load ptr, ptr %358, align 8, !tbaa !9
  %15556 = icmp eq ptr %15555, null
  br i1 %15556, label %15557, label %15610

15557:                                            ; preds = %15552
  br label %15558

15558:                                            ; preds = %15557
  br label %15559

15559:                                            ; preds = %15558
  call void @llvm.lifetime.start.p0(i64 4, ptr %359) #11
  %15560 = call ptr @__errno_location() #12
  %15561 = load i32, ptr %15560, align 4, !tbaa !5
  store i32 %15561, ptr %359, align 4, !tbaa !5
  %15562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15563 = call i32 @s2n_print_stacktrace(ptr noundef %15562)
  %15564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15565 = trunc i8 %15564 to i1
  br i1 %15565, label %15566, label %15588

15566:                                            ; preds = %15559
  %15567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15568 = call i32 @fileno(ptr noundef %15567) #11
  %15569 = call i32 @isatty(i32 noundef %15568) #11
  %15570 = icmp ne i32 %15569, 0
  br i1 %15570, label %15571, label %15588

15571:                                            ; preds = %15566
  %15572 = load i32, ptr %359, align 4, !tbaa !5
  %15573 = call ptr @__errno_location() #12
  store i32 %15572, ptr %15573, align 4, !tbaa !5
  %15574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15575 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %15577, ptr noundef @.str.4)
  %15579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15580 = load i32, ptr %15579, align 4, !tbaa !5
  %15581 = call ptr @s2n_strerror_debug(i32 noundef %15580, ptr noundef @.str.4)
  %15582 = call ptr @__errno_location() #12
  %15583 = load i32, ptr %15582, align 4, !tbaa !5
  %15584 = call ptr @strerror(i32 noundef %15583) #11
  %15585 = call ptr @__errno_location() #12
  %15586 = load i32, ptr %15585, align 4, !tbaa !5
  %15587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15574, ptr noundef @.str.2, i32 noundef %15575, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 754, ptr noundef %15578, ptr noundef %15581, ptr noundef %15584, i32 noundef %15586) #11
  br label %15605

15588:                                            ; preds = %15566, %15559
  %15589 = load i32, ptr %359, align 4, !tbaa !5
  %15590 = call ptr @__errno_location() #12
  store i32 %15589, ptr %15590, align 4, !tbaa !5
  %15591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15592 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %15594, ptr noundef @.str.4)
  %15596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15597 = load i32, ptr %15596, align 4, !tbaa !5
  %15598 = call ptr @s2n_strerror_debug(i32 noundef %15597, ptr noundef @.str.4)
  %15599 = call ptr @__errno_location() #12
  %15600 = load i32, ptr %15599, align 4, !tbaa !5
  %15601 = call ptr @strerror(i32 noundef %15600) #11
  %15602 = call ptr @__errno_location() #12
  %15603 = load i32, ptr %15602, align 4, !tbaa !5
  %15604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15591, ptr noundef @.str.5, i32 noundef %15592, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 754, ptr noundef %15595, ptr noundef %15598, ptr noundef %15601, i32 noundef %15603) #11
  br label %15605

15605:                                            ; preds = %15588, %15571
  call void @llvm.lifetime.end.p0(i64 4, ptr %359) #11
  br label %15606

15606:                                            ; preds = %15605
  br label %15607

15607:                                            ; preds = %15606
  call void @exit(i32 noundef 1) #13
  unreachable

15608:                                            ; No predecessors!
  br label %15609

15609:                                            ; preds = %15608
  br label %15610

15610:                                            ; preds = %15609, %15552
  br label %15611

15611:                                            ; preds = %15610
  br label %15612

15612:                                            ; preds = %15611
  %15613 = load ptr, ptr %358, align 8, !tbaa !9
  %15614 = getelementptr inbounds %struct.s2n_connection, ptr %15613, i32 0, i32 23
  store i8 34, ptr %15614, align 4, !tbaa !84
  %15615 = load ptr, ptr %358, align 8, !tbaa !9
  %15616 = getelementptr inbounds %struct.s2n_connection, ptr %15615, i32 0, i32 2
  store ptr %9, ptr %15616, align 8, !tbaa !28
  br label %15617

15617:                                            ; preds = %15612
  %15618 = load i32, ptr @test_count, align 4, !tbaa !5
  %15619 = add nsw i32 %15618, 1
  store i32 %15619, ptr @test_count, align 4, !tbaa !5
  %15620 = load ptr, ptr %358, align 8, !tbaa !9
  %15621 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %15620)
  %15622 = getelementptr inbounds %struct.s2n_result, ptr %360, i32 0, i32 0
  store i32 %15621, ptr %15622, align 4
  %15623 = getelementptr inbounds %struct.s2n_result, ptr %360, i32 0, i32 0
  %15624 = load i32, ptr %15623, align 4
  %15625 = call zeroext i1 @s2n_result_is_ok(i32 %15624)
  br i1 %15625, label %15679, label %15626

15626:                                            ; preds = %15617
  br label %15627

15627:                                            ; preds = %15626
  br label %15628

15628:                                            ; preds = %15627
  call void @llvm.lifetime.start.p0(i64 4, ptr %361) #11
  %15629 = call ptr @__errno_location() #12
  %15630 = load i32, ptr %15629, align 4, !tbaa !5
  store i32 %15630, ptr %361, align 4, !tbaa !5
  %15631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15632 = call i32 @s2n_print_stacktrace(ptr noundef %15631)
  %15633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15634 = trunc i8 %15633 to i1
  br i1 %15634, label %15635, label %15657

15635:                                            ; preds = %15628
  %15636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15637 = call i32 @fileno(ptr noundef %15636) #11
  %15638 = call i32 @isatty(i32 noundef %15637) #11
  %15639 = icmp ne i32 %15638, 0
  br i1 %15639, label %15640, label %15657

15640:                                            ; preds = %15635
  %15641 = load i32, ptr %361, align 4, !tbaa !5
  %15642 = call ptr @__errno_location() #12
  store i32 %15641, ptr %15642, align 4, !tbaa !5
  %15643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15644 = load i32, ptr @test_count, align 4, !tbaa !5
  %15645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15646 = load i32, ptr %15645, align 4, !tbaa !5
  %15647 = call ptr @s2n_strerror(i32 noundef %15646, ptr noundef @.str.4)
  %15648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15649 = load i32, ptr %15648, align 4, !tbaa !5
  %15650 = call ptr @s2n_strerror_debug(i32 noundef %15649, ptr noundef @.str.4)
  %15651 = call ptr @__errno_location() #12
  %15652 = load i32, ptr %15651, align 4, !tbaa !5
  %15653 = call ptr @strerror(i32 noundef %15652) #11
  %15654 = call ptr @__errno_location() #12
  %15655 = load i32, ptr %15654, align 4, !tbaa !5
  %15656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15643, ptr noundef @.str.2, i32 noundef %15644, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 759, ptr noundef %15647, ptr noundef %15650, ptr noundef %15653, i32 noundef %15655) #11
  br label %15674

15657:                                            ; preds = %15635, %15628
  %15658 = load i32, ptr %361, align 4, !tbaa !5
  %15659 = call ptr @__errno_location() #12
  store i32 %15658, ptr %15659, align 4, !tbaa !5
  %15660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15661 = load i32, ptr @test_count, align 4, !tbaa !5
  %15662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15663 = load i32, ptr %15662, align 4, !tbaa !5
  %15664 = call ptr @s2n_strerror(i32 noundef %15663, ptr noundef @.str.4)
  %15665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15666 = load i32, ptr %15665, align 4, !tbaa !5
  %15667 = call ptr @s2n_strerror_debug(i32 noundef %15666, ptr noundef @.str.4)
  %15668 = call ptr @__errno_location() #12
  %15669 = load i32, ptr %15668, align 4, !tbaa !5
  %15670 = call ptr @strerror(i32 noundef %15669) #11
  %15671 = call ptr @__errno_location() #12
  %15672 = load i32, ptr %15671, align 4, !tbaa !5
  %15673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15660, ptr noundef @.str.5, i32 noundef %15661, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 759, ptr noundef %15664, ptr noundef %15667, ptr noundef %15670, i32 noundef %15672) #11
  br label %15674

15674:                                            ; preds = %15657, %15640
  call void @llvm.lifetime.end.p0(i64 4, ptr %361) #11
  br label %15675

15675:                                            ; preds = %15674
  br label %15676

15676:                                            ; preds = %15675
  call void @exit(i32 noundef 1) #13
  unreachable

15677:                                            ; No predecessors!
  br label %15678

15678:                                            ; preds = %15677
  br label %15679

15679:                                            ; preds = %15678, %15617
  br label %15680

15680:                                            ; preds = %15679
  br label %15681

15681:                                            ; preds = %15680
  call void @llvm.lifetime.start.p0(i64 4, ptr %362) #11
  store i32 0, ptr %362, align 4, !tbaa !5
  br label %15682

15682:                                            ; preds = %15713, %15681
  %15683 = load i32, ptr %362, align 4, !tbaa !5
  %15684 = sext i32 %15683 to i64
  %15685 = icmp ult i64 %15684, 8
  br i1 %15685, label %15687, label %15686

15686:                                            ; preds = %15682
  store i32 1422, ptr %6, align 4
  br label %15716

15687:                                            ; preds = %15682
  %15688 = load ptr, ptr %358, align 8, !tbaa !9
  %15689 = getelementptr inbounds %struct.s2n_connection, ptr %15688, i32 0, i32 31
  %15690 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15689, i32 0, i32 6
  %15691 = load i32, ptr %362, align 4, !tbaa !5
  %15692 = sext i32 %15691 to i64
  %15693 = getelementptr inbounds [8 x ptr], ptr %15690, i64 0, i64 %15692
  %15694 = load ptr, ptr %15693, align 8, !tbaa !9
  %15695 = icmp ne ptr %15694, null
  br i1 %15695, label %15696, label %15712

15696:                                            ; preds = %15687
  %15697 = load ptr, ptr %358, align 8, !tbaa !9
  %15698 = getelementptr inbounds %struct.s2n_connection, ptr %15697, i32 0, i32 31
  %15699 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15698, i32 0, i32 6
  %15700 = load i32, ptr %362, align 4, !tbaa !5
  %15701 = sext i32 %15700 to i64
  %15702 = getelementptr inbounds [8 x ptr], ptr %15699, i64 0, i64 %15701
  %15703 = load ptr, ptr %15702, align 8, !tbaa !9
  %15704 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %15703)
  br i1 %15704, label %15705, label %15712

15705:                                            ; preds = %15696
  %15706 = load ptr, ptr %358, align 8, !tbaa !9
  %15707 = getelementptr inbounds %struct.s2n_connection, ptr %15706, i32 0, i32 31
  %15708 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %15707, i32 0, i32 6
  %15709 = load i32, ptr %362, align 4, !tbaa !5
  %15710 = sext i32 %15709 to i64
  %15711 = getelementptr inbounds [8 x ptr], ptr %15708, i64 0, i64 %15710
  store ptr null, ptr %15711, align 8, !tbaa !9
  store i32 1422, ptr %6, align 4
  br label %15716

15712:                                            ; preds = %15696, %15687
  br label %15713

15713:                                            ; preds = %15712
  %15714 = load i32, ptr %362, align 4, !tbaa !5
  %15715 = add nsw i32 %15714, 1
  store i32 %15715, ptr %362, align 4, !tbaa !5
  br label %15682, !llvm.loop !108

15716:                                            ; preds = %15705, %15686
  call void @llvm.lifetime.end.p0(i64 4, ptr %362) #11
  br label %15717

15717:                                            ; preds = %15716
  call void @llvm.lifetime.start.p0(i64 8, ptr %363) #11
  store ptr null, ptr %363, align 8, !tbaa !9
  br label %15718

15718:                                            ; preds = %15717
  %15719 = load i32, ptr @test_count, align 4, !tbaa !5
  %15720 = add nsw i32 %15719, 1
  store i32 %15720, ptr @test_count, align 4, !tbaa !5
  %15721 = load ptr, ptr %358, align 8, !tbaa !9
  %15722 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %15721, ptr noundef %363)
  %15723 = icmp eq i32 %15722, -1
  br i1 %15723, label %15724, label %15777

15724:                                            ; preds = %15718
  br label %15725

15725:                                            ; preds = %15724
  br label %15726

15726:                                            ; preds = %15725
  call void @llvm.lifetime.start.p0(i64 4, ptr %364) #11
  %15727 = call ptr @__errno_location() #12
  %15728 = load i32, ptr %15727, align 4, !tbaa !5
  store i32 %15728, ptr %364, align 4, !tbaa !5
  %15729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15730 = call i32 @s2n_print_stacktrace(ptr noundef %15729)
  %15731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15732 = trunc i8 %15731 to i1
  br i1 %15732, label %15733, label %15755

15733:                                            ; preds = %15726
  %15734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15735 = call i32 @fileno(ptr noundef %15734) #11
  %15736 = call i32 @isatty(i32 noundef %15735) #11
  %15737 = icmp ne i32 %15736, 0
  br i1 %15737, label %15738, label %15755

15738:                                            ; preds = %15733
  %15739 = load i32, ptr %364, align 4, !tbaa !5
  %15740 = call ptr @__errno_location() #12
  store i32 %15739, ptr %15740, align 4, !tbaa !5
  %15741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15742 = load i32, ptr @test_count, align 4, !tbaa !5
  %15743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15744 = load i32, ptr %15743, align 4, !tbaa !5
  %15745 = call ptr @s2n_strerror(i32 noundef %15744, ptr noundef @.str.4)
  %15746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15747 = load i32, ptr %15746, align 4, !tbaa !5
  %15748 = call ptr @s2n_strerror_debug(i32 noundef %15747, ptr noundef @.str.4)
  %15749 = call ptr @__errno_location() #12
  %15750 = load i32, ptr %15749, align 4, !tbaa !5
  %15751 = call ptr @strerror(i32 noundef %15750) #11
  %15752 = call ptr @__errno_location() #12
  %15753 = load i32, ptr %15752, align 4, !tbaa !5
  %15754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15741, ptr noundef @.str.2, i32 noundef %15742, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 769, ptr noundef %15745, ptr noundef %15748, ptr noundef %15751, i32 noundef %15753) #11
  br label %15772

15755:                                            ; preds = %15733, %15726
  %15756 = load i32, ptr %364, align 4, !tbaa !5
  %15757 = call ptr @__errno_location() #12
  store i32 %15756, ptr %15757, align 4, !tbaa !5
  %15758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15759 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %15761, ptr noundef @.str.4)
  %15763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15764 = load i32, ptr %15763, align 4, !tbaa !5
  %15765 = call ptr @s2n_strerror_debug(i32 noundef %15764, ptr noundef @.str.4)
  %15766 = call ptr @__errno_location() #12
  %15767 = load i32, ptr %15766, align 4, !tbaa !5
  %15768 = call ptr @strerror(i32 noundef %15767) #11
  %15769 = call ptr @__errno_location() #12
  %15770 = load i32, ptr %15769, align 4, !tbaa !5
  %15771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15758, ptr noundef @.str.5, i32 noundef %15759, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 769, ptr noundef %15762, ptr noundef %15765, ptr noundef %15768, i32 noundef %15770) #11
  br label %15772

15772:                                            ; preds = %15755, %15738
  call void @llvm.lifetime.end.p0(i64 4, ptr %364) #11
  br label %15773

15773:                                            ; preds = %15772
  br label %15774

15774:                                            ; preds = %15773
  call void @exit(i32 noundef 1) #13
  unreachable

15775:                                            ; No predecessors!
  br label %15776

15776:                                            ; preds = %15775
  br label %15777

15777:                                            ; preds = %15776, %15718
  br label %15778

15778:                                            ; preds = %15777
  br label %15779

15779:                                            ; preds = %15778
  br label %15780

15780:                                            ; preds = %15779
  %15781 = load i32, ptr @test_count, align 4, !tbaa !5
  %15782 = add nsw i32 %15781, 1
  store i32 %15782, ptr @test_count, align 4, !tbaa !5
  %15783 = load ptr, ptr %363, align 8, !tbaa !9
  %15784 = icmp eq ptr %15783, null
  br i1 %15784, label %15785, label %15838

15785:                                            ; preds = %15780
  br label %15786

15786:                                            ; preds = %15785
  br label %15787

15787:                                            ; preds = %15786
  call void @llvm.lifetime.start.p0(i64 4, ptr %365) #11
  %15788 = call ptr @__errno_location() #12
  %15789 = load i32, ptr %15788, align 4, !tbaa !5
  store i32 %15789, ptr %365, align 4, !tbaa !5
  %15790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15791 = call i32 @s2n_print_stacktrace(ptr noundef %15790)
  %15792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15793 = trunc i8 %15792 to i1
  br i1 %15793, label %15794, label %15816

15794:                                            ; preds = %15787
  %15795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15796 = call i32 @fileno(ptr noundef %15795) #11
  %15797 = call i32 @isatty(i32 noundef %15796) #11
  %15798 = icmp ne i32 %15797, 0
  br i1 %15798, label %15799, label %15816

15799:                                            ; preds = %15794
  %15800 = load i32, ptr %365, align 4, !tbaa !5
  %15801 = call ptr @__errno_location() #12
  store i32 %15800, ptr %15801, align 4, !tbaa !5
  %15802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15803 = load i32, ptr @test_count, align 4, !tbaa !5
  %15804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15805 = load i32, ptr %15804, align 4, !tbaa !5
  %15806 = call ptr @s2n_strerror(i32 noundef %15805, ptr noundef @.str.4)
  %15807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15808 = load i32, ptr %15807, align 4, !tbaa !5
  %15809 = call ptr @s2n_strerror_debug(i32 noundef %15808, ptr noundef @.str.4)
  %15810 = call ptr @__errno_location() #12
  %15811 = load i32, ptr %15810, align 4, !tbaa !5
  %15812 = call ptr @strerror(i32 noundef %15811) #11
  %15813 = call ptr @__errno_location() #12
  %15814 = load i32, ptr %15813, align 4, !tbaa !5
  %15815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15802, ptr noundef @.str.2, i32 noundef %15803, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 770, ptr noundef %15806, ptr noundef %15809, ptr noundef %15812, i32 noundef %15814) #11
  br label %15833

15816:                                            ; preds = %15794, %15787
  %15817 = load i32, ptr %365, align 4, !tbaa !5
  %15818 = call ptr @__errno_location() #12
  store i32 %15817, ptr %15818, align 4, !tbaa !5
  %15819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15820 = load i32, ptr @test_count, align 4, !tbaa !5
  %15821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15822 = load i32, ptr %15821, align 4, !tbaa !5
  %15823 = call ptr @s2n_strerror(i32 noundef %15822, ptr noundef @.str.4)
  %15824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15825 = load i32, ptr %15824, align 4, !tbaa !5
  %15826 = call ptr @s2n_strerror_debug(i32 noundef %15825, ptr noundef @.str.4)
  %15827 = call ptr @__errno_location() #12
  %15828 = load i32, ptr %15827, align 4, !tbaa !5
  %15829 = call ptr @strerror(i32 noundef %15828) #11
  %15830 = call ptr @__errno_location() #12
  %15831 = load i32, ptr %15830, align 4, !tbaa !5
  %15832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15819, ptr noundef @.str.5, i32 noundef %15820, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 770, ptr noundef %15823, ptr noundef %15826, ptr noundef %15829, i32 noundef %15831) #11
  br label %15833

15833:                                            ; preds = %15816, %15799
  call void @llvm.lifetime.end.p0(i64 4, ptr %365) #11
  br label %15834

15834:                                            ; preds = %15833
  br label %15835

15835:                                            ; preds = %15834
  call void @exit(i32 noundef 1) #13
  unreachable

15836:                                            ; No predecessors!
  br label %15837

15837:                                            ; preds = %15836
  br label %15838

15838:                                            ; preds = %15837, %15780
  br label %15839

15839:                                            ; preds = %15838
  br label %15840

15840:                                            ; preds = %15839
  br label %15841

15841:                                            ; preds = %15840
  %15842 = load i32, ptr @test_count, align 4, !tbaa !5
  %15843 = add nsw i32 %15842, 1
  store i32 %15843, ptr @test_count, align 4, !tbaa !5
  %15844 = load ptr, ptr %363, align 8, !tbaa !9
  %15845 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %15844, ptr noundef %10)
  %15846 = getelementptr inbounds %struct.s2n_result, ptr %366, i32 0, i32 0
  store i32 %15845, ptr %15846, align 4
  %15847 = getelementptr inbounds %struct.s2n_result, ptr %366, i32 0, i32 0
  %15848 = load i32, ptr %15847, align 4
  %15849 = call zeroext i1 @s2n_result_is_ok(i32 %15848)
  br i1 %15849, label %15903, label %15850

15850:                                            ; preds = %15841
  br label %15851

15851:                                            ; preds = %15850
  br label %15852

15852:                                            ; preds = %15851
  call void @llvm.lifetime.start.p0(i64 4, ptr %367) #11
  %15853 = call ptr @__errno_location() #12
  %15854 = load i32, ptr %15853, align 4, !tbaa !5
  store i32 %15854, ptr %367, align 4, !tbaa !5
  %15855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15856 = call i32 @s2n_print_stacktrace(ptr noundef %15855)
  %15857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15858 = trunc i8 %15857 to i1
  br i1 %15858, label %15859, label %15881

15859:                                            ; preds = %15852
  %15860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15861 = call i32 @fileno(ptr noundef %15860) #11
  %15862 = call i32 @isatty(i32 noundef %15861) #11
  %15863 = icmp ne i32 %15862, 0
  br i1 %15863, label %15864, label %15881

15864:                                            ; preds = %15859
  %15865 = load i32, ptr %367, align 4, !tbaa !5
  %15866 = call ptr @__errno_location() #12
  store i32 %15865, ptr %15866, align 4, !tbaa !5
  %15867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15868 = load i32, ptr @test_count, align 4, !tbaa !5
  %15869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15870 = load i32, ptr %15869, align 4, !tbaa !5
  %15871 = call ptr @s2n_strerror(i32 noundef %15870, ptr noundef @.str.4)
  %15872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15873 = load i32, ptr %15872, align 4, !tbaa !5
  %15874 = call ptr @s2n_strerror_debug(i32 noundef %15873, ptr noundef @.str.4)
  %15875 = call ptr @__errno_location() #12
  %15876 = load i32, ptr %15875, align 4, !tbaa !5
  %15877 = call ptr @strerror(i32 noundef %15876) #11
  %15878 = call ptr @__errno_location() #12
  %15879 = load i32, ptr %15878, align 4, !tbaa !5
  %15880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15867, ptr noundef @.str.2, i32 noundef %15868, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 771, ptr noundef %15871, ptr noundef %15874, ptr noundef %15877, i32 noundef %15879) #11
  br label %15898

15881:                                            ; preds = %15859, %15852
  %15882 = load i32, ptr %367, align 4, !tbaa !5
  %15883 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %15892 = call ptr @__errno_location() #12
  %15893 = load i32, ptr %15892, align 4, !tbaa !5
  %15894 = call ptr @strerror(i32 noundef %15893) #11
  %15895 = call ptr @__errno_location() #12
  %15896 = load i32, ptr %15895, align 4, !tbaa !5
  %15897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15884, ptr noundef @.str.5, i32 noundef %15885, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 771, ptr noundef %15888, ptr noundef %15891, ptr noundef %15894, i32 noundef %15896) #11
  br label %15898

15898:                                            ; preds = %15881, %15864
  call void @llvm.lifetime.end.p0(i64 4, ptr %367) #11
  br label %15899

15899:                                            ; preds = %15898
  br label %15900

15900:                                            ; preds = %15899
  call void @exit(i32 noundef 1) #13
  unreachable

15901:                                            ; No predecessors!
  br label %15902

15902:                                            ; preds = %15901
  br label %15903

15903:                                            ; preds = %15902, %15841
  br label %15904

15904:                                            ; preds = %15903
  br label %15905

15905:                                            ; preds = %15904
  br label %15906

15906:                                            ; preds = %15905
  %15907 = load i32, ptr @test_count, align 4, !tbaa !5
  %15908 = add nsw i32 %15907, 1
  store i32 %15908, ptr @test_count, align 4, !tbaa !5
  %15909 = load i32, ptr %10, align 4, !tbaa !5
  %15910 = icmp uge i32 %15909, 2
  br i1 %15910, label %15964, label %15911

15911:                                            ; preds = %15906
  br label %15912

15912:                                            ; preds = %15911
  br label %15913

15913:                                            ; preds = %15912
  call void @llvm.lifetime.start.p0(i64 4, ptr %368) #11
  %15914 = call ptr @__errno_location() #12
  %15915 = load i32, ptr %15914, align 4, !tbaa !5
  store i32 %15915, ptr %368, align 4, !tbaa !5
  %15916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15917 = call i32 @s2n_print_stacktrace(ptr noundef %15916)
  %15918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15919 = trunc i8 %15918 to i1
  br i1 %15919, label %15920, label %15942

15920:                                            ; preds = %15913
  %15921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15922 = call i32 @fileno(ptr noundef %15921) #11
  %15923 = call i32 @isatty(i32 noundef %15922) #11
  %15924 = icmp ne i32 %15923, 0
  br i1 %15924, label %15925, label %15942

15925:                                            ; preds = %15920
  %15926 = load i32, ptr %368, align 4, !tbaa !5
  %15927 = call ptr @__errno_location() #12
  store i32 %15926, ptr %15927, align 4, !tbaa !5
  %15928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15929 = load i32, ptr @test_count, align 4, !tbaa !5
  %15930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15931 = load i32, ptr %15930, align 4, !tbaa !5
  %15932 = call ptr @s2n_strerror(i32 noundef %15931, ptr noundef @.str.4)
  %15933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15934 = load i32, ptr %15933, align 4, !tbaa !5
  %15935 = call ptr @s2n_strerror_debug(i32 noundef %15934, ptr noundef @.str.4)
  %15936 = call ptr @__errno_location() #12
  %15937 = load i32, ptr %15936, align 4, !tbaa !5
  %15938 = call ptr @strerror(i32 noundef %15937) #11
  %15939 = call ptr @__errno_location() #12
  %15940 = load i32, ptr %15939, align 4, !tbaa !5
  %15941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15928, ptr noundef @.str.2, i32 noundef %15929, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 772, ptr noundef %15932, ptr noundef %15935, ptr noundef %15938, i32 noundef %15940) #11
  br label %15959

15942:                                            ; preds = %15920, %15913
  %15943 = load i32, ptr %368, align 4, !tbaa !5
  %15944 = call ptr @__errno_location() #12
  store i32 %15943, ptr %15944, align 4, !tbaa !5
  %15945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15946 = load i32, ptr @test_count, align 4, !tbaa !5
  %15947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15948 = load i32, ptr %15947, align 4, !tbaa !5
  %15949 = call ptr @s2n_strerror(i32 noundef %15948, ptr noundef @.str.4)
  %15950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15951 = load i32, ptr %15950, align 4, !tbaa !5
  %15952 = call ptr @s2n_strerror_debug(i32 noundef %15951, ptr noundef @.str.4)
  %15953 = call ptr @__errno_location() #12
  %15954 = load i32, ptr %15953, align 4, !tbaa !5
  %15955 = call ptr @strerror(i32 noundef %15954) #11
  %15956 = call ptr @__errno_location() #12
  %15957 = load i32, ptr %15956, align 4, !tbaa !5
  %15958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15945, ptr noundef @.str.5, i32 noundef %15946, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 772, ptr noundef %15949, ptr noundef %15952, ptr noundef %15955, i32 noundef %15957) #11
  br label %15959

15959:                                            ; preds = %15942, %15925
  call void @llvm.lifetime.end.p0(i64 4, ptr %368) #11
  br label %15960

15960:                                            ; preds = %15959
  br label %15961

15961:                                            ; preds = %15960
  call void @exit(i32 noundef 1) #13
  unreachable

15962:                                            ; No predecessors!
  br label %15963

15963:                                            ; preds = %15962
  br label %15964

15964:                                            ; preds = %15963, %15906
  br label %15965

15965:                                            ; preds = %15964
  br label %15966

15966:                                            ; preds = %15965
  call void @llvm.lifetime.start.p0(i64 8, ptr %369) #11
  store ptr null, ptr %369, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %370) #11
  store ptr null, ptr %370, align 8, !tbaa !9
  br label %15967

15967:                                            ; preds = %15966
  %15968 = load i32, ptr @test_count, align 4, !tbaa !5
  %15969 = add nsw i32 %15968, 1
  store i32 %15969, ptr @test_count, align 4, !tbaa !5
  %15970 = load ptr, ptr %363, align 8, !tbaa !9
  %15971 = call i32 @s2n_get_two_highest_piority_kem_groups(ptr noundef %15970, ptr noundef %369, ptr noundef %370)
  %15972 = icmp eq i32 %15971, -1
  br i1 %15972, label %15973, label %16026

15973:                                            ; preds = %15967
  br label %15974

15974:                                            ; preds = %15973
  br label %15975

15975:                                            ; preds = %15974
  call void @llvm.lifetime.start.p0(i64 4, ptr %371) #11
  %15976 = call ptr @__errno_location() #12
  %15977 = load i32, ptr %15976, align 4, !tbaa !5
  store i32 %15977, ptr %371, align 4, !tbaa !5
  %15978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15979 = call i32 @s2n_print_stacktrace(ptr noundef %15978)
  %15980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15981 = trunc i8 %15980 to i1
  br i1 %15981, label %15982, label %16004

15982:                                            ; preds = %15975
  %15983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15984 = call i32 @fileno(ptr noundef %15983) #11
  %15985 = call i32 @isatty(i32 noundef %15984) #11
  %15986 = icmp ne i32 %15985, 0
  br i1 %15986, label %15987, label %16004

15987:                                            ; preds = %15982
  %15988 = load i32, ptr %371, align 4, !tbaa !5
  %15989 = call ptr @__errno_location() #12
  store i32 %15988, ptr %15989, align 4, !tbaa !5
  %15990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15991 = load i32, ptr @test_count, align 4, !tbaa !5
  %15992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15993 = load i32, ptr %15992, align 4, !tbaa !5
  %15994 = call ptr @s2n_strerror(i32 noundef %15993, ptr noundef @.str.4)
  %15995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15996 = load i32, ptr %15995, align 4, !tbaa !5
  %15997 = call ptr @s2n_strerror_debug(i32 noundef %15996, ptr noundef @.str.4)
  %15998 = call ptr @__errno_location() #12
  %15999 = load i32, ptr %15998, align 4, !tbaa !5
  %16000 = call ptr @strerror(i32 noundef %15999) #11
  %16001 = call ptr @__errno_location() #12
  %16002 = load i32, ptr %16001, align 4, !tbaa !5
  %16003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15990, ptr noundef @.str.2, i32 noundef %15991, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 777, ptr noundef %15994, ptr noundef %15997, ptr noundef %16000, i32 noundef %16002) #11
  br label %16021

16004:                                            ; preds = %15982, %15975
  %16005 = load i32, ptr %371, align 4, !tbaa !5
  %16006 = call ptr @__errno_location() #12
  store i32 %16005, ptr %16006, align 4, !tbaa !5
  %16007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16008 = load i32, ptr @test_count, align 4, !tbaa !5
  %16009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16010 = load i32, ptr %16009, align 4, !tbaa !5
  %16011 = call ptr @s2n_strerror(i32 noundef %16010, ptr noundef @.str.4)
  %16012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16013 = load i32, ptr %16012, align 4, !tbaa !5
  %16014 = call ptr @s2n_strerror_debug(i32 noundef %16013, ptr noundef @.str.4)
  %16015 = call ptr @__errno_location() #12
  %16016 = load i32, ptr %16015, align 4, !tbaa !5
  %16017 = call ptr @strerror(i32 noundef %16016) #11
  %16018 = call ptr @__errno_location() #12
  %16019 = load i32, ptr %16018, align 4, !tbaa !5
  %16020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16007, ptr noundef @.str.5, i32 noundef %16008, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 777, ptr noundef %16011, ptr noundef %16014, ptr noundef %16017, i32 noundef %16019) #11
  br label %16021

16021:                                            ; preds = %16004, %15987
  call void @llvm.lifetime.end.p0(i64 4, ptr %371) #11
  br label %16022

16022:                                            ; preds = %16021
  br label %16023

16023:                                            ; preds = %16022
  call void @exit(i32 noundef 1) #13
  unreachable

16024:                                            ; No predecessors!
  br label %16025

16025:                                            ; preds = %16024
  br label %16026

16026:                                            ; preds = %16025, %15967
  br label %16027

16027:                                            ; preds = %16026
  br label %16028

16028:                                            ; preds = %16027
  br label %16029

16029:                                            ; preds = %16028
  %16030 = load i32, ptr @test_count, align 4, !tbaa !5
  %16031 = add nsw i32 %16030, 1
  store i32 %16031, ptr @test_count, align 4, !tbaa !5
  %16032 = load ptr, ptr %369, align 8, !tbaa !9
  %16033 = icmp eq ptr %16032, null
  br i1 %16033, label %16034, label %16087

16034:                                            ; preds = %16029
  br label %16035

16035:                                            ; preds = %16034
  br label %16036

16036:                                            ; preds = %16035
  call void @llvm.lifetime.start.p0(i64 4, ptr %372) #11
  %16037 = call ptr @__errno_location() #12
  %16038 = load i32, ptr %16037, align 4, !tbaa !5
  store i32 %16038, ptr %372, align 4, !tbaa !5
  %16039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16040 = call i32 @s2n_print_stacktrace(ptr noundef %16039)
  %16041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16042 = trunc i8 %16041 to i1
  br i1 %16042, label %16043, label %16065

16043:                                            ; preds = %16036
  %16044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16045 = call i32 @fileno(ptr noundef %16044) #11
  %16046 = call i32 @isatty(i32 noundef %16045) #11
  %16047 = icmp ne i32 %16046, 0
  br i1 %16047, label %16048, label %16065

16048:                                            ; preds = %16043
  %16049 = load i32, ptr %372, align 4, !tbaa !5
  %16050 = call ptr @__errno_location() #12
  store i32 %16049, ptr %16050, align 4, !tbaa !5
  %16051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16052 = load i32, ptr @test_count, align 4, !tbaa !5
  %16053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16054 = load i32, ptr %16053, align 4, !tbaa !5
  %16055 = call ptr @s2n_strerror(i32 noundef %16054, ptr noundef @.str.4)
  %16056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16057 = load i32, ptr %16056, align 4, !tbaa !5
  %16058 = call ptr @s2n_strerror_debug(i32 noundef %16057, ptr noundef @.str.4)
  %16059 = call ptr @__errno_location() #12
  %16060 = load i32, ptr %16059, align 4, !tbaa !5
  %16061 = call ptr @strerror(i32 noundef %16060) #11
  %16062 = call ptr @__errno_location() #12
  %16063 = load i32, ptr %16062, align 4, !tbaa !5
  %16064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16051, ptr noundef @.str.2, i32 noundef %16052, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 778, ptr noundef %16055, ptr noundef %16058, ptr noundef %16061, i32 noundef %16063) #11
  br label %16082

16065:                                            ; preds = %16043, %16036
  %16066 = load i32, ptr %372, align 4, !tbaa !5
  %16067 = call ptr @__errno_location() #12
  store i32 %16066, ptr %16067, align 4, !tbaa !5
  %16068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16069 = load i32, ptr @test_count, align 4, !tbaa !5
  %16070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16071 = load i32, ptr %16070, align 4, !tbaa !5
  %16072 = call ptr @s2n_strerror(i32 noundef %16071, ptr noundef @.str.4)
  %16073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16074 = load i32, ptr %16073, align 4, !tbaa !5
  %16075 = call ptr @s2n_strerror_debug(i32 noundef %16074, ptr noundef @.str.4)
  %16076 = call ptr @__errno_location() #12
  %16077 = load i32, ptr %16076, align 4, !tbaa !5
  %16078 = call ptr @strerror(i32 noundef %16077) #11
  %16079 = call ptr @__errno_location() #12
  %16080 = load i32, ptr %16079, align 4, !tbaa !5
  %16081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16068, ptr noundef @.str.5, i32 noundef %16069, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 778, ptr noundef %16072, ptr noundef %16075, ptr noundef %16078, i32 noundef %16080) #11
  br label %16082

16082:                                            ; preds = %16065, %16048
  call void @llvm.lifetime.end.p0(i64 4, ptr %372) #11
  br label %16083

16083:                                            ; preds = %16082
  br label %16084

16084:                                            ; preds = %16083
  call void @exit(i32 noundef 1) #13
  unreachable

16085:                                            ; No predecessors!
  br label %16086

16086:                                            ; preds = %16085
  br label %16087

16087:                                            ; preds = %16086, %16029
  br label %16088

16088:                                            ; preds = %16087
  br label %16089

16089:                                            ; preds = %16088
  br label %16090

16090:                                            ; preds = %16089
  %16091 = load i32, ptr @test_count, align 4, !tbaa !5
  %16092 = add nsw i32 %16091, 1
  store i32 %16092, ptr @test_count, align 4, !tbaa !5
  %16093 = load ptr, ptr %370, align 8, !tbaa !9
  %16094 = icmp eq ptr %16093, null
  br i1 %16094, label %16095, label %16148

16095:                                            ; preds = %16090
  br label %16096

16096:                                            ; preds = %16095
  br label %16097

16097:                                            ; preds = %16096
  call void @llvm.lifetime.start.p0(i64 4, ptr %373) #11
  %16098 = call ptr @__errno_location() #12
  %16099 = load i32, ptr %16098, align 4, !tbaa !5
  store i32 %16099, ptr %373, align 4, !tbaa !5
  %16100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16101 = call i32 @s2n_print_stacktrace(ptr noundef %16100)
  %16102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16103 = trunc i8 %16102 to i1
  br i1 %16103, label %16104, label %16126

16104:                                            ; preds = %16097
  %16105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16106 = call i32 @fileno(ptr noundef %16105) #11
  %16107 = call i32 @isatty(i32 noundef %16106) #11
  %16108 = icmp ne i32 %16107, 0
  br i1 %16108, label %16109, label %16126

16109:                                            ; preds = %16104
  %16110 = load i32, ptr %373, align 4, !tbaa !5
  %16111 = call ptr @__errno_location() #12
  store i32 %16110, ptr %16111, align 4, !tbaa !5
  %16112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16113 = load i32, ptr @test_count, align 4, !tbaa !5
  %16114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16115 = load i32, ptr %16114, align 4, !tbaa !5
  %16116 = call ptr @s2n_strerror(i32 noundef %16115, ptr noundef @.str.4)
  %16117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16118 = load i32, ptr %16117, align 4, !tbaa !5
  %16119 = call ptr @s2n_strerror_debug(i32 noundef %16118, ptr noundef @.str.4)
  %16120 = call ptr @__errno_location() #12
  %16121 = load i32, ptr %16120, align 4, !tbaa !5
  %16122 = call ptr @strerror(i32 noundef %16121) #11
  %16123 = call ptr @__errno_location() #12
  %16124 = load i32, ptr %16123, align 4, !tbaa !5
  %16125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16112, ptr noundef @.str.2, i32 noundef %16113, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 779, ptr noundef %16116, ptr noundef %16119, ptr noundef %16122, i32 noundef %16124) #11
  br label %16143

16126:                                            ; preds = %16104, %16097
  %16127 = load i32, ptr %373, align 4, !tbaa !5
  %16128 = call ptr @__errno_location() #12
  store i32 %16127, ptr %16128, align 4, !tbaa !5
  %16129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16130 = load i32, ptr @test_count, align 4, !tbaa !5
  %16131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16132 = load i32, ptr %16131, align 4, !tbaa !5
  %16133 = call ptr @s2n_strerror(i32 noundef %16132, ptr noundef @.str.4)
  %16134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16135 = load i32, ptr %16134, align 4, !tbaa !5
  %16136 = call ptr @s2n_strerror_debug(i32 noundef %16135, ptr noundef @.str.4)
  %16137 = call ptr @__errno_location() #12
  %16138 = load i32, ptr %16137, align 4, !tbaa !5
  %16139 = call ptr @strerror(i32 noundef %16138) #11
  %16140 = call ptr @__errno_location() #12
  %16141 = load i32, ptr %16140, align 4, !tbaa !5
  %16142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16129, ptr noundef @.str.5, i32 noundef %16130, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 779, ptr noundef %16133, ptr noundef %16136, ptr noundef %16139, i32 noundef %16141) #11
  br label %16143

16143:                                            ; preds = %16126, %16109
  call void @llvm.lifetime.end.p0(i64 4, ptr %373) #11
  br label %16144

16144:                                            ; preds = %16143
  br label %16145

16145:                                            ; preds = %16144
  call void @exit(i32 noundef 1) #13
  unreachable

16146:                                            ; No predecessors!
  br label %16147

16147:                                            ; preds = %16146
  br label %16148

16148:                                            ; preds = %16147, %16090
  br label %16149

16149:                                            ; preds = %16148
  br label %16150

16150:                                            ; preds = %16149
  call void @llvm.lifetime.start.p0(i64 224, ptr %374) #11
  call void @llvm.memset.p0.i64(ptr align 16 %374, i8 0, i64 224, i1 false)
  %16151 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %374, i32 0, i32 0
  %16152 = load ptr, ptr %369, align 8, !tbaa !9
  store ptr %16152, ptr %16151, align 16, !tbaa !68
  %16153 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %374, i32 0, i32 1
  %16154 = getelementptr inbounds %struct.s2n_kem_params, ptr %16153, i32 0, i32 0
  %16155 = getelementptr inbounds %struct.s2n_kem_params, ptr %16153, i32 0, i32 1
  %16156 = getelementptr inbounds %struct.s2n_kem_params, ptr %16153, i32 0, i32 2
  %16157 = getelementptr inbounds %struct.s2n_kem_params, ptr %16153, i32 0, i32 3
  %16158 = getelementptr inbounds %struct.s2n_kem_params, ptr %16153, i32 0, i32 4
  %16159 = load i32, ptr %5, align 4, !tbaa !5
  %16160 = icmp ne i32 %16159, 0
  %16161 = zext i1 %16160 to i8
  store i8 %16161, ptr %16158, align 8, !tbaa !105
  %16162 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %374, i32 0, i32 2
  %16163 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %374, i64 1
  %16164 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16163, i32 0, i32 0
  %16165 = load ptr, ptr %370, align 8, !tbaa !9
  store ptr %16165, ptr %16164, align 16, !tbaa !68
  %16166 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16163, i32 0, i32 1
  %16167 = getelementptr inbounds %struct.s2n_kem_params, ptr %16166, i32 0, i32 0
  %16168 = getelementptr inbounds %struct.s2n_kem_params, ptr %16166, i32 0, i32 1
  %16169 = getelementptr inbounds %struct.s2n_kem_params, ptr %16166, i32 0, i32 2
  %16170 = getelementptr inbounds %struct.s2n_kem_params, ptr %16166, i32 0, i32 3
  %16171 = getelementptr inbounds %struct.s2n_kem_params, ptr %16166, i32 0, i32 4
  %16172 = load i32, ptr %5, align 4, !tbaa !5
  %16173 = icmp ne i32 %16172, 0
  %16174 = zext i1 %16173 to i8
  store i8 %16174, ptr %16171, align 8, !tbaa !105
  %16175 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16163, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 40, ptr %375) #11
  call void @llvm.memset.p0.i64(ptr align 8 %375, i8 0, i64 40, i1 false)
  br label %16176

16176:                                            ; preds = %16150
  %16177 = load i32, ptr @test_count, align 4, !tbaa !5
  %16178 = add nsw i32 %16177, 1
  store i32 %16178, ptr @test_count, align 4, !tbaa !5
  %16179 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %375, i32 noundef 8192)
  %16180 = icmp eq i32 %16179, -1
  br i1 %16180, label %16181, label %16234

16181:                                            ; preds = %16176
  br label %16182

16182:                                            ; preds = %16181
  br label %16183

16183:                                            ; preds = %16182
  call void @llvm.lifetime.start.p0(i64 4, ptr %376) #11
  %16184 = call ptr @__errno_location() #12
  %16185 = load i32, ptr %16184, align 4, !tbaa !5
  store i32 %16185, ptr %376, align 4, !tbaa !5
  %16186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16187 = call i32 @s2n_print_stacktrace(ptr noundef %16186)
  %16188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16189 = trunc i8 %16188 to i1
  br i1 %16189, label %16190, label %16212

16190:                                            ; preds = %16183
  %16191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16192 = call i32 @fileno(ptr noundef %16191) #11
  %16193 = call i32 @isatty(i32 noundef %16192) #11
  %16194 = icmp ne i32 %16193, 0
  br i1 %16194, label %16195, label %16212

16195:                                            ; preds = %16190
  %16196 = load i32, ptr %376, align 4, !tbaa !5
  %16197 = call ptr @__errno_location() #12
  store i32 %16196, ptr %16197, align 4, !tbaa !5
  %16198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16199 = load i32, ptr @test_count, align 4, !tbaa !5
  %16200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16201 = load i32, ptr %16200, align 4, !tbaa !5
  %16202 = call ptr @s2n_strerror(i32 noundef %16201, ptr noundef @.str.4)
  %16203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16204 = load i32, ptr %16203, align 4, !tbaa !5
  %16205 = call ptr @s2n_strerror_debug(i32 noundef %16204, ptr noundef @.str.4)
  %16206 = call ptr @__errno_location() #12
  %16207 = load i32, ptr %16206, align 4, !tbaa !5
  %16208 = call ptr @strerror(i32 noundef %16207) #11
  %16209 = call ptr @__errno_location() #12
  %16210 = load i32, ptr %16209, align 4, !tbaa !5
  %16211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16198, ptr noundef @.str.2, i32 noundef %16199, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 787, ptr noundef %16202, ptr noundef %16205, ptr noundef %16208, i32 noundef %16210) #11
  br label %16229

16212:                                            ; preds = %16190, %16183
  %16213 = load i32, ptr %376, align 4, !tbaa !5
  %16214 = call ptr @__errno_location() #12
  store i32 %16213, ptr %16214, align 4, !tbaa !5
  %16215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16216 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %16218, ptr noundef @.str.4)
  %16220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16221 = load i32, ptr %16220, align 4, !tbaa !5
  %16222 = call ptr @s2n_strerror_debug(i32 noundef %16221, ptr noundef @.str.4)
  %16223 = call ptr @__errno_location() #12
  %16224 = load i32, ptr %16223, align 4, !tbaa !5
  %16225 = call ptr @strerror(i32 noundef %16224) #11
  %16226 = call ptr @__errno_location() #12
  %16227 = load i32, ptr %16226, align 4, !tbaa !5
  %16228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16215, ptr noundef @.str.5, i32 noundef %16216, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 787, ptr noundef %16219, ptr noundef %16222, ptr noundef %16225, i32 noundef %16227) #11
  br label %16229

16229:                                            ; preds = %16212, %16195
  call void @llvm.lifetime.end.p0(i64 4, ptr %376) #11
  br label %16230

16230:                                            ; preds = %16229
  br label %16231

16231:                                            ; preds = %16230
  call void @exit(i32 noundef 1) #13
  unreachable

16232:                                            ; No predecessors!
  br label %16233

16233:                                            ; preds = %16232
  br label %16234

16234:                                            ; preds = %16233, %16176
  br label %16235

16235:                                            ; preds = %16234
  br label %16236

16236:                                            ; preds = %16235
  call void @llvm.lifetime.start.p0(i64 16, ptr %377) #11
  call void @llvm.memset.p0.i64(ptr align 8 %377, i8 0, i64 16, i1 false)
  br label %16237

16237:                                            ; preds = %16236
  %16238 = load i32, ptr @test_count, align 4, !tbaa !5
  %16239 = add nsw i32 %16238, 1
  store i32 %16239, ptr @test_count, align 4, !tbaa !5
  %16240 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %375, ptr noundef %377)
  %16241 = icmp eq i32 %16240, -1
  br i1 %16241, label %16242, label %16295

16242:                                            ; preds = %16237
  br label %16243

16243:                                            ; preds = %16242
  br label %16244

16244:                                            ; preds = %16243
  call void @llvm.lifetime.start.p0(i64 4, ptr %378) #11
  %16245 = call ptr @__errno_location() #12
  %16246 = load i32, ptr %16245, align 4, !tbaa !5
  store i32 %16246, ptr %378, align 4, !tbaa !5
  %16247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16248 = call i32 @s2n_print_stacktrace(ptr noundef %16247)
  %16249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16250 = trunc i8 %16249 to i1
  br i1 %16250, label %16251, label %16273

16251:                                            ; preds = %16244
  %16252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16253 = call i32 @fileno(ptr noundef %16252) #11
  %16254 = call i32 @isatty(i32 noundef %16253) #11
  %16255 = icmp ne i32 %16254, 0
  br i1 %16255, label %16256, label %16273

16256:                                            ; preds = %16251
  %16257 = load i32, ptr %378, align 4, !tbaa !5
  %16258 = call ptr @__errno_location() #12
  store i32 %16257, ptr %16258, align 4, !tbaa !5
  %16259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16260 = load i32, ptr @test_count, align 4, !tbaa !5
  %16261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16262 = load i32, ptr %16261, align 4, !tbaa !5
  %16263 = call ptr @s2n_strerror(i32 noundef %16262, ptr noundef @.str.4)
  %16264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16265 = load i32, ptr %16264, align 4, !tbaa !5
  %16266 = call ptr @s2n_strerror_debug(i32 noundef %16265, ptr noundef @.str.4)
  %16267 = call ptr @__errno_location() #12
  %16268 = load i32, ptr %16267, align 4, !tbaa !5
  %16269 = call ptr @strerror(i32 noundef %16268) #11
  %16270 = call ptr @__errno_location() #12
  %16271 = load i32, ptr %16270, align 4, !tbaa !5
  %16272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16259, ptr noundef @.str.2, i32 noundef %16260, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 790, ptr noundef %16263, ptr noundef %16266, ptr noundef %16269, i32 noundef %16271) #11
  br label %16290

16273:                                            ; preds = %16251, %16244
  %16274 = load i32, ptr %378, align 4, !tbaa !5
  %16275 = call ptr @__errno_location() #12
  store i32 %16274, ptr %16275, align 4, !tbaa !5
  %16276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16277 = load i32, ptr @test_count, align 4, !tbaa !5
  %16278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16279 = load i32, ptr %16278, align 4, !tbaa !5
  %16280 = call ptr @s2n_strerror(i32 noundef %16279, ptr noundef @.str.4)
  %16281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16282 = load i32, ptr %16281, align 4, !tbaa !5
  %16283 = call ptr @s2n_strerror_debug(i32 noundef %16282, ptr noundef @.str.4)
  %16284 = call ptr @__errno_location() #12
  %16285 = load i32, ptr %16284, align 4, !tbaa !5
  %16286 = call ptr @strerror(i32 noundef %16285) #11
  %16287 = call ptr @__errno_location() #12
  %16288 = load i32, ptr %16287, align 4, !tbaa !5
  %16289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16276, ptr noundef @.str.5, i32 noundef %16277, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 790, ptr noundef %16280, ptr noundef %16283, ptr noundef %16286, i32 noundef %16288) #11
  br label %16290

16290:                                            ; preds = %16273, %16256
  call void @llvm.lifetime.end.p0(i64 4, ptr %378) #11
  br label %16291

16291:                                            ; preds = %16290
  br label %16292

16292:                                            ; preds = %16291
  call void @exit(i32 noundef 1) #13
  unreachable

16293:                                            ; No predecessors!
  br label %16294

16294:                                            ; preds = %16293
  br label %16295

16295:                                            ; preds = %16294, %16237
  br label %16296

16296:                                            ; preds = %16295
  br label %16297

16297:                                            ; preds = %16296
  br label %16298

16298:                                            ; preds = %16297
  %16299 = load i32, ptr @test_count, align 4, !tbaa !5
  %16300 = add nsw i32 %16299, 1
  store i32 %16300, ptr @test_count, align 4, !tbaa !5
  %16301 = getelementptr inbounds [2 x %struct.s2n_kem_group_params], ptr %374, i64 0, i64 0
  %16302 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef %375, ptr noundef %16301)
  %16303 = icmp eq i32 %16302, -1
  br i1 %16303, label %16304, label %16357

16304:                                            ; preds = %16298
  br label %16305

16305:                                            ; preds = %16304
  br label %16306

16306:                                            ; preds = %16305
  call void @llvm.lifetime.start.p0(i64 4, ptr %379) #11
  %16307 = call ptr @__errno_location() #12
  %16308 = load i32, ptr %16307, align 4, !tbaa !5
  store i32 %16308, ptr %379, align 4, !tbaa !5
  %16309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16310 = call i32 @s2n_print_stacktrace(ptr noundef %16309)
  %16311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16312 = trunc i8 %16311 to i1
  br i1 %16312, label %16313, label %16335

16313:                                            ; preds = %16306
  %16314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16315 = call i32 @fileno(ptr noundef %16314) #11
  %16316 = call i32 @isatty(i32 noundef %16315) #11
  %16317 = icmp ne i32 %16316, 0
  br i1 %16317, label %16318, label %16335

16318:                                            ; preds = %16313
  %16319 = load i32, ptr %379, align 4, !tbaa !5
  %16320 = call ptr @__errno_location() #12
  store i32 %16319, ptr %16320, align 4, !tbaa !5
  %16321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16322 = load i32, ptr @test_count, align 4, !tbaa !5
  %16323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16324 = load i32, ptr %16323, align 4, !tbaa !5
  %16325 = call ptr @s2n_strerror(i32 noundef %16324, ptr noundef @.str.4)
  %16326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16327 = load i32, ptr %16326, align 4, !tbaa !5
  %16328 = call ptr @s2n_strerror_debug(i32 noundef %16327, ptr noundef @.str.4)
  %16329 = call ptr @__errno_location() #12
  %16330 = load i32, ptr %16329, align 4, !tbaa !5
  %16331 = call ptr @strerror(i32 noundef %16330) #11
  %16332 = call ptr @__errno_location() #12
  %16333 = load i32, ptr %16332, align 4, !tbaa !5
  %16334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16321, ptr noundef @.str.2, i32 noundef %16322, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 791, ptr noundef %16325, ptr noundef %16328, ptr noundef %16331, i32 noundef %16333) #11
  br label %16352

16335:                                            ; preds = %16313, %16306
  %16336 = load i32, ptr %379, align 4, !tbaa !5
  %16337 = call ptr @__errno_location() #12
  store i32 %16336, ptr %16337, align 4, !tbaa !5
  %16338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16339 = load i32, ptr @test_count, align 4, !tbaa !5
  %16340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16341 = load i32, ptr %16340, align 4, !tbaa !5
  %16342 = call ptr @s2n_strerror(i32 noundef %16341, ptr noundef @.str.4)
  %16343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16344 = load i32, ptr %16343, align 4, !tbaa !5
  %16345 = call ptr @s2n_strerror_debug(i32 noundef %16344, ptr noundef @.str.4)
  %16346 = call ptr @__errno_location() #12
  %16347 = load i32, ptr %16346, align 4, !tbaa !5
  %16348 = call ptr @strerror(i32 noundef %16347) #11
  %16349 = call ptr @__errno_location() #12
  %16350 = load i32, ptr %16349, align 4, !tbaa !5
  %16351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16338, ptr noundef @.str.5, i32 noundef %16339, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 791, ptr noundef %16342, ptr noundef %16345, ptr noundef %16348, i32 noundef %16350) #11
  br label %16352

16352:                                            ; preds = %16335, %16318
  call void @llvm.lifetime.end.p0(i64 4, ptr %379) #11
  br label %16353

16353:                                            ; preds = %16352
  br label %16354

16354:                                            ; preds = %16353
  call void @exit(i32 noundef 1) #13
  unreachable

16355:                                            ; No predecessors!
  br label %16356

16356:                                            ; preds = %16355
  br label %16357

16357:                                            ; preds = %16356, %16298
  br label %16358

16358:                                            ; preds = %16357
  br label %16359

16359:                                            ; preds = %16358
  br label %16360

16360:                                            ; preds = %16359
  %16361 = load i32, ptr @test_count, align 4, !tbaa !5
  %16362 = add nsw i32 %16361, 1
  store i32 %16362, ptr @test_count, align 4, !tbaa !5
  %16363 = getelementptr inbounds [2 x %struct.s2n_kem_group_params], ptr %374, i64 0, i64 1
  %16364 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef %375, ptr noundef %16363)
  %16365 = icmp eq i32 %16364, -1
  br i1 %16365, label %16366, label %16419

16366:                                            ; preds = %16360
  br label %16367

16367:                                            ; preds = %16366
  br label %16368

16368:                                            ; preds = %16367
  call void @llvm.lifetime.start.p0(i64 4, ptr %380) #11
  %16369 = call ptr @__errno_location() #12
  %16370 = load i32, ptr %16369, align 4, !tbaa !5
  store i32 %16370, ptr %380, align 4, !tbaa !5
  %16371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16372 = call i32 @s2n_print_stacktrace(ptr noundef %16371)
  %16373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16374 = trunc i8 %16373 to i1
  br i1 %16374, label %16375, label %16397

16375:                                            ; preds = %16368
  %16376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16377 = call i32 @fileno(ptr noundef %16376) #11
  %16378 = call i32 @isatty(i32 noundef %16377) #11
  %16379 = icmp ne i32 %16378, 0
  br i1 %16379, label %16380, label %16397

16380:                                            ; preds = %16375
  %16381 = load i32, ptr %380, align 4, !tbaa !5
  %16382 = call ptr @__errno_location() #12
  store i32 %16381, ptr %16382, align 4, !tbaa !5
  %16383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16384 = load i32, ptr @test_count, align 4, !tbaa !5
  %16385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16386 = load i32, ptr %16385, align 4, !tbaa !5
  %16387 = call ptr @s2n_strerror(i32 noundef %16386, ptr noundef @.str.4)
  %16388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16389 = load i32, ptr %16388, align 4, !tbaa !5
  %16390 = call ptr @s2n_strerror_debug(i32 noundef %16389, ptr noundef @.str.4)
  %16391 = call ptr @__errno_location() #12
  %16392 = load i32, ptr %16391, align 4, !tbaa !5
  %16393 = call ptr @strerror(i32 noundef %16392) #11
  %16394 = call ptr @__errno_location() #12
  %16395 = load i32, ptr %16394, align 4, !tbaa !5
  %16396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16383, ptr noundef @.str.2, i32 noundef %16384, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 792, ptr noundef %16387, ptr noundef %16390, ptr noundef %16393, i32 noundef %16395) #11
  br label %16414

16397:                                            ; preds = %16375, %16368
  %16398 = load i32, ptr %380, align 4, !tbaa !5
  %16399 = call ptr @__errno_location() #12
  store i32 %16398, ptr %16399, align 4, !tbaa !5
  %16400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16401 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %16403, ptr noundef @.str.4)
  %16405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16406 = load i32, ptr %16405, align 4, !tbaa !5
  %16407 = call ptr @s2n_strerror_debug(i32 noundef %16406, ptr noundef @.str.4)
  %16408 = call ptr @__errno_location() #12
  %16409 = load i32, ptr %16408, align 4, !tbaa !5
  %16410 = call ptr @strerror(i32 noundef %16409) #11
  %16411 = call ptr @__errno_location() #12
  %16412 = load i32, ptr %16411, align 4, !tbaa !5
  %16413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16400, ptr noundef @.str.5, i32 noundef %16401, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 792, ptr noundef %16404, ptr noundef %16407, ptr noundef %16410, i32 noundef %16412) #11
  br label %16414

16414:                                            ; preds = %16397, %16380
  call void @llvm.lifetime.end.p0(i64 4, ptr %380) #11
  br label %16415

16415:                                            ; preds = %16414
  br label %16416

16416:                                            ; preds = %16415
  call void @exit(i32 noundef 1) #13
  unreachable

16417:                                            ; No predecessors!
  br label %16418

16418:                                            ; preds = %16417
  br label %16419

16419:                                            ; preds = %16418, %16360
  br label %16420

16420:                                            ; preds = %16419
  br label %16421

16421:                                            ; preds = %16420
  br label %16422

16422:                                            ; preds = %16421
  %16423 = load i32, ptr @test_count, align 4, !tbaa !5
  %16424 = add nsw i32 %16423, 1
  store i32 %16424, ptr @test_count, align 4, !tbaa !5
  %16425 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %377)
  %16426 = icmp eq i32 %16425, -1
  br i1 %16426, label %16427, label %16480

16427:                                            ; preds = %16422
  br label %16428

16428:                                            ; preds = %16427
  br label %16429

16429:                                            ; preds = %16428
  call void @llvm.lifetime.start.p0(i64 4, ptr %381) #11
  %16430 = call ptr @__errno_location() #12
  %16431 = load i32, ptr %16430, align 4, !tbaa !5
  store i32 %16431, ptr %381, align 4, !tbaa !5
  %16432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16433 = call i32 @s2n_print_stacktrace(ptr noundef %16432)
  %16434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16435 = trunc i8 %16434 to i1
  br i1 %16435, label %16436, label %16458

16436:                                            ; preds = %16429
  %16437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16438 = call i32 @fileno(ptr noundef %16437) #11
  %16439 = call i32 @isatty(i32 noundef %16438) #11
  %16440 = icmp ne i32 %16439, 0
  br i1 %16440, label %16441, label %16458

16441:                                            ; preds = %16436
  %16442 = load i32, ptr %381, align 4, !tbaa !5
  %16443 = call ptr @__errno_location() #12
  store i32 %16442, ptr %16443, align 4, !tbaa !5
  %16444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16445 = load i32, ptr @test_count, align 4, !tbaa !5
  %16446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16447 = load i32, ptr %16446, align 4, !tbaa !5
  %16448 = call ptr @s2n_strerror(i32 noundef %16447, ptr noundef @.str.4)
  %16449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16450 = load i32, ptr %16449, align 4, !tbaa !5
  %16451 = call ptr @s2n_strerror_debug(i32 noundef %16450, ptr noundef @.str.4)
  %16452 = call ptr @__errno_location() #12
  %16453 = load i32, ptr %16452, align 4, !tbaa !5
  %16454 = call ptr @strerror(i32 noundef %16453) #11
  %16455 = call ptr @__errno_location() #12
  %16456 = load i32, ptr %16455, align 4, !tbaa !5
  %16457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16444, ptr noundef @.str.2, i32 noundef %16445, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 793, ptr noundef %16448, ptr noundef %16451, ptr noundef %16454, i32 noundef %16456) #11
  br label %16475

16458:                                            ; preds = %16436, %16429
  %16459 = load i32, ptr %381, align 4, !tbaa !5
  %16460 = call ptr @__errno_location() #12
  store i32 %16459, ptr %16460, align 4, !tbaa !5
  %16461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16462 = load i32, ptr @test_count, align 4, !tbaa !5
  %16463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16464 = load i32, ptr %16463, align 4, !tbaa !5
  %16465 = call ptr @s2n_strerror(i32 noundef %16464, ptr noundef @.str.4)
  %16466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16467 = load i32, ptr %16466, align 4, !tbaa !5
  %16468 = call ptr @s2n_strerror_debug(i32 noundef %16467, ptr noundef @.str.4)
  %16469 = call ptr @__errno_location() #12
  %16470 = load i32, ptr %16469, align 4, !tbaa !5
  %16471 = call ptr @strerror(i32 noundef %16470) #11
  %16472 = call ptr @__errno_location() #12
  %16473 = load i32, ptr %16472, align 4, !tbaa !5
  %16474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16461, ptr noundef @.str.5, i32 noundef %16462, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 793, ptr noundef %16465, ptr noundef %16468, ptr noundef %16471, i32 noundef %16473) #11
  br label %16475

16475:                                            ; preds = %16458, %16441
  call void @llvm.lifetime.end.p0(i64 4, ptr %381) #11
  br label %16476

16476:                                            ; preds = %16475
  br label %16477

16477:                                            ; preds = %16476
  call void @exit(i32 noundef 1) #13
  unreachable

16478:                                            ; No predecessors!
  br label %16479

16479:                                            ; preds = %16478
  br label %16480

16480:                                            ; preds = %16479, %16422
  br label %16481

16481:                                            ; preds = %16480
  br label %16482

16482:                                            ; preds = %16481
  br label %16483

16483:                                            ; preds = %16482
  %16484 = load i32, ptr @test_count, align 4, !tbaa !5
  %16485 = add nsw i32 %16484, 1
  store i32 %16485, ptr @test_count, align 4, !tbaa !5
  %16486 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !98
  %16487 = load ptr, ptr %358, align 8, !tbaa !9
  %16488 = call i32 %16486(ptr noundef %16487, ptr noundef %375)
  %16489 = icmp eq i32 %16488, -1
  br i1 %16489, label %16490, label %16543

16490:                                            ; preds = %16483
  br label %16491

16491:                                            ; preds = %16490
  br label %16492

16492:                                            ; preds = %16491
  call void @llvm.lifetime.start.p0(i64 4, ptr %382) #11
  %16493 = call ptr @__errno_location() #12
  %16494 = load i32, ptr %16493, align 4, !tbaa !5
  store i32 %16494, ptr %382, align 4, !tbaa !5
  %16495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16496 = call i32 @s2n_print_stacktrace(ptr noundef %16495)
  %16497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16498 = trunc i8 %16497 to i1
  br i1 %16498, label %16499, label %16521

16499:                                            ; preds = %16492
  %16500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16501 = call i32 @fileno(ptr noundef %16500) #11
  %16502 = call i32 @isatty(i32 noundef %16501) #11
  %16503 = icmp ne i32 %16502, 0
  br i1 %16503, label %16504, label %16521

16504:                                            ; preds = %16499
  %16505 = load i32, ptr %382, align 4, !tbaa !5
  %16506 = call ptr @__errno_location() #12
  store i32 %16505, ptr %16506, align 4, !tbaa !5
  %16507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16508 = load i32, ptr @test_count, align 4, !tbaa !5
  %16509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16510 = load i32, ptr %16509, align 4, !tbaa !5
  %16511 = call ptr @s2n_strerror(i32 noundef %16510, ptr noundef @.str.4)
  %16512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16513 = load i32, ptr %16512, align 4, !tbaa !5
  %16514 = call ptr @s2n_strerror_debug(i32 noundef %16513, ptr noundef @.str.4)
  %16515 = call ptr @__errno_location() #12
  %16516 = load i32, ptr %16515, align 4, !tbaa !5
  %16517 = call ptr @strerror(i32 noundef %16516) #11
  %16518 = call ptr @__errno_location() #12
  %16519 = load i32, ptr %16518, align 4, !tbaa !5
  %16520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16507, ptr noundef @.str.2, i32 noundef %16508, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 795, ptr noundef %16511, ptr noundef %16514, ptr noundef %16517, i32 noundef %16519) #11
  br label %16538

16521:                                            ; preds = %16499, %16492
  %16522 = load i32, ptr %382, align 4, !tbaa !5
  %16523 = call ptr @__errno_location() #12
  store i32 %16522, ptr %16523, align 4, !tbaa !5
  %16524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16525 = load i32, ptr @test_count, align 4, !tbaa !5
  %16526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16527 = load i32, ptr %16526, align 4, !tbaa !5
  %16528 = call ptr @s2n_strerror(i32 noundef %16527, ptr noundef @.str.4)
  %16529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16530 = load i32, ptr %16529, align 4, !tbaa !5
  %16531 = call ptr @s2n_strerror_debug(i32 noundef %16530, ptr noundef @.str.4)
  %16532 = call ptr @__errno_location() #12
  %16533 = load i32, ptr %16532, align 4, !tbaa !5
  %16534 = call ptr @strerror(i32 noundef %16533) #11
  %16535 = call ptr @__errno_location() #12
  %16536 = load i32, ptr %16535, align 4, !tbaa !5
  %16537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16524, ptr noundef @.str.5, i32 noundef %16525, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 795, ptr noundef %16528, ptr noundef %16531, ptr noundef %16534, i32 noundef %16536) #11
  br label %16538

16538:                                            ; preds = %16521, %16504
  call void @llvm.lifetime.end.p0(i64 4, ptr %382) #11
  br label %16539

16539:                                            ; preds = %16538
  br label %16540

16540:                                            ; preds = %16539
  call void @exit(i32 noundef 1) #13
  unreachable

16541:                                            ; No predecessors!
  br label %16542

16542:                                            ; preds = %16541
  br label %16543

16543:                                            ; preds = %16542, %16483
  br label %16544

16544:                                            ; preds = %16543
  br label %16545

16545:                                            ; preds = %16544
  br label %16546

16546:                                            ; preds = %16545
  %16547 = load i32, ptr @test_count, align 4, !tbaa !5
  %16548 = add nsw i32 %16547, 1
  store i32 %16548, ptr @test_count, align 4, !tbaa !5
  %16549 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 2
  %16550 = load i32, ptr %16549, align 4, !tbaa !58
  %16551 = getelementptr inbounds %struct.s2n_stuffer, ptr %375, i32 0, i32 1
  %16552 = load i32, ptr %16551, align 8, !tbaa !59
  %16553 = sub i32 %16550, %16552
  %16554 = icmp eq i32 %16553, 0
  br i1 %16554, label %16608, label %16555

16555:                                            ; preds = %16546
  br label %16556

16556:                                            ; preds = %16555
  br label %16557

16557:                                            ; preds = %16556
  call void @llvm.lifetime.start.p0(i64 4, ptr %383) #11
  %16558 = call ptr @__errno_location() #12
  %16559 = load i32, ptr %16558, align 4, !tbaa !5
  store i32 %16559, ptr %383, align 4, !tbaa !5
  %16560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16561 = call i32 @s2n_print_stacktrace(ptr noundef %16560)
  %16562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16563 = trunc i8 %16562 to i1
  br i1 %16563, label %16564, label %16586

16564:                                            ; preds = %16557
  %16565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16566 = call i32 @fileno(ptr noundef %16565) #11
  %16567 = call i32 @isatty(i32 noundef %16566) #11
  %16568 = icmp ne i32 %16567, 0
  br i1 %16568, label %16569, label %16586

16569:                                            ; preds = %16564
  %16570 = load i32, ptr %383, align 4, !tbaa !5
  %16571 = call ptr @__errno_location() #12
  store i32 %16570, ptr %16571, align 4, !tbaa !5
  %16572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16573 = load i32, ptr @test_count, align 4, !tbaa !5
  %16574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16575 = load i32, ptr %16574, align 4, !tbaa !5
  %16576 = call ptr @s2n_strerror(i32 noundef %16575, ptr noundef @.str.4)
  %16577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16578 = load i32, ptr %16577, align 4, !tbaa !5
  %16579 = call ptr @s2n_strerror_debug(i32 noundef %16578, ptr noundef @.str.4)
  %16580 = call ptr @__errno_location() #12
  %16581 = load i32, ptr %16580, align 4, !tbaa !5
  %16582 = call ptr @strerror(i32 noundef %16581) #11
  %16583 = call ptr @__errno_location() #12
  %16584 = load i32, ptr %16583, align 4, !tbaa !5
  %16585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16572, ptr noundef @.str.2, i32 noundef %16573, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 796, ptr noundef %16576, ptr noundef %16579, ptr noundef %16582, i32 noundef %16584) #11
  br label %16603

16586:                                            ; preds = %16564, %16557
  %16587 = load i32, ptr %383, align 4, !tbaa !5
  %16588 = call ptr @__errno_location() #12
  store i32 %16587, ptr %16588, align 4, !tbaa !5
  %16589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16590 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %16592, ptr noundef @.str.4)
  %16594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16595 = load i32, ptr %16594, align 4, !tbaa !5
  %16596 = call ptr @s2n_strerror_debug(i32 noundef %16595, ptr noundef @.str.4)
  %16597 = call ptr @__errno_location() #12
  %16598 = load i32, ptr %16597, align 4, !tbaa !5
  %16599 = call ptr @strerror(i32 noundef %16598) #11
  %16600 = call ptr @__errno_location() #12
  %16601 = load i32, ptr %16600, align 4, !tbaa !5
  %16602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16589, ptr noundef @.str.5, i32 noundef %16590, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 796, ptr noundef %16593, ptr noundef %16596, ptr noundef %16599, i32 noundef %16601) #11
  br label %16603

16603:                                            ; preds = %16586, %16569
  call void @llvm.lifetime.end.p0(i64 4, ptr %383) #11
  br label %16604

16604:                                            ; preds = %16603
  br label %16605

16605:                                            ; preds = %16604
  call void @exit(i32 noundef 1) #13
  unreachable

16606:                                            ; No predecessors!
  br label %16607

16607:                                            ; preds = %16606
  br label %16608

16608:                                            ; preds = %16607, %16546
  br label %16609

16609:                                            ; preds = %16608
  br label %16610

16610:                                            ; preds = %16609
  br label %16611

16611:                                            ; preds = %16610
  %16612 = load i32, ptr @test_count, align 4, !tbaa !5
  %16613 = add nsw i32 %16612, 1
  store i32 %16613, ptr @test_count, align 4, !tbaa !5
  %16614 = load ptr, ptr %358, align 8, !tbaa !9
  %16615 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %16614, i32 noundef 16)
  br i1 %16615, label %16616, label %16669

16616:                                            ; preds = %16611
  br label %16617

16617:                                            ; preds = %16616
  br label %16618

16618:                                            ; preds = %16617
  call void @llvm.lifetime.start.p0(i64 4, ptr %384) #11
  %16619 = call ptr @__errno_location() #12
  %16620 = load i32, ptr %16619, align 4, !tbaa !5
  store i32 %16620, ptr %384, align 4, !tbaa !5
  %16621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16622 = call i32 @s2n_print_stacktrace(ptr noundef %16621)
  %16623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16624 = trunc i8 %16623 to i1
  br i1 %16624, label %16625, label %16647

16625:                                            ; preds = %16618
  %16626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16627 = call i32 @fileno(ptr noundef %16626) #11
  %16628 = call i32 @isatty(i32 noundef %16627) #11
  %16629 = icmp ne i32 %16628, 0
  br i1 %16629, label %16630, label %16647

16630:                                            ; preds = %16625
  %16631 = load i32, ptr %384, align 4, !tbaa !5
  %16632 = call ptr @__errno_location() #12
  store i32 %16631, ptr %16632, align 4, !tbaa !5
  %16633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16634 = load i32, ptr @test_count, align 4, !tbaa !5
  %16635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16636 = load i32, ptr %16635, align 4, !tbaa !5
  %16637 = call ptr @s2n_strerror(i32 noundef %16636, ptr noundef @.str.4)
  %16638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16639 = load i32, ptr %16638, align 4, !tbaa !5
  %16640 = call ptr @s2n_strerror_debug(i32 noundef %16639, ptr noundef @.str.4)
  %16641 = call ptr @__errno_location() #12
  %16642 = load i32, ptr %16641, align 4, !tbaa !5
  %16643 = call ptr @strerror(i32 noundef %16642) #11
  %16644 = call ptr @__errno_location() #12
  %16645 = load i32, ptr %16644, align 4, !tbaa !5
  %16646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16633, ptr noundef @.str.2, i32 noundef %16634, ptr noundef @.str.145, ptr noundef @.str.1, i32 noundef 799, ptr noundef %16637, ptr noundef %16640, ptr noundef %16643, i32 noundef %16645) #11
  br label %16664

16647:                                            ; preds = %16625, %16618
  %16648 = load i32, ptr %384, align 4, !tbaa !5
  %16649 = call ptr @__errno_location() #12
  store i32 %16648, ptr %16649, align 4, !tbaa !5
  %16650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16651 = load i32, ptr @test_count, align 4, !tbaa !5
  %16652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16653 = load i32, ptr %16652, align 4, !tbaa !5
  %16654 = call ptr @s2n_strerror(i32 noundef %16653, ptr noundef @.str.4)
  %16655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16656 = load i32, ptr %16655, align 4, !tbaa !5
  %16657 = call ptr @s2n_strerror_debug(i32 noundef %16656, ptr noundef @.str.4)
  %16658 = call ptr @__errno_location() #12
  %16659 = load i32, ptr %16658, align 4, !tbaa !5
  %16660 = call ptr @strerror(i32 noundef %16659) #11
  %16661 = call ptr @__errno_location() #12
  %16662 = load i32, ptr %16661, align 4, !tbaa !5
  %16663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16650, ptr noundef @.str.5, i32 noundef %16651, ptr noundef @.str.145, ptr noundef @.str.1, i32 noundef 799, ptr noundef %16654, ptr noundef %16657, ptr noundef %16660, i32 noundef %16662) #11
  br label %16664

16664:                                            ; preds = %16647, %16630
  call void @llvm.lifetime.end.p0(i64 4, ptr %384) #11
  br label %16665

16665:                                            ; preds = %16664
  br label %16666

16666:                                            ; preds = %16665
  call void @exit(i32 noundef 1) #13
  unreachable

16667:                                            ; No predecessors!
  br label %16668

16668:                                            ; preds = %16667
  br label %16669

16669:                                            ; preds = %16668, %16611
  br label %16670

16670:                                            ; preds = %16669
  br label %16671

16671:                                            ; preds = %16670
  call void @llvm.lifetime.start.p0(i64 8, ptr %385) #11
  %16672 = load ptr, ptr %358, align 8, !tbaa !9
  %16673 = getelementptr inbounds %struct.s2n_connection, ptr %16672, i32 0, i32 31
  %16674 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %16673, i32 0, i32 5
  store ptr %16674, ptr %385, align 8, !tbaa !9
  br label %16675

16675:                                            ; preds = %16671
  %16676 = load i32, ptr @test_count, align 4, !tbaa !5
  %16677 = add nsw i32 %16676, 1
  store i32 %16677, ptr @test_count, align 4, !tbaa !5
  %16678 = load ptr, ptr %385, align 8, !tbaa !9
  %16679 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16678, i32 0, i32 0
  %16680 = load ptr, ptr %16679, align 8, !tbaa !68
  %16681 = load ptr, ptr %370, align 8, !tbaa !9
  %16682 = icmp eq ptr %16680, %16681
  br i1 %16682, label %16736, label %16683

16683:                                            ; preds = %16675
  br label %16684

16684:                                            ; preds = %16683
  br label %16685

16685:                                            ; preds = %16684
  call void @llvm.lifetime.start.p0(i64 4, ptr %386) #11
  %16686 = call ptr @__errno_location() #12
  %16687 = load i32, ptr %16686, align 4, !tbaa !5
  store i32 %16687, ptr %386, align 4, !tbaa !5
  %16688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16689 = call i32 @s2n_print_stacktrace(ptr noundef %16688)
  %16690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16691 = trunc i8 %16690 to i1
  br i1 %16691, label %16692, label %16714

16692:                                            ; preds = %16685
  %16693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16694 = call i32 @fileno(ptr noundef %16693) #11
  %16695 = call i32 @isatty(i32 noundef %16694) #11
  %16696 = icmp ne i32 %16695, 0
  br i1 %16696, label %16697, label %16714

16697:                                            ; preds = %16692
  %16698 = load i32, ptr %386, align 4, !tbaa !5
  %16699 = call ptr @__errno_location() #12
  store i32 %16698, ptr %16699, align 4, !tbaa !5
  %16700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16701 = load i32, ptr @test_count, align 4, !tbaa !5
  %16702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16703 = load i32, ptr %16702, align 4, !tbaa !5
  %16704 = call ptr @s2n_strerror(i32 noundef %16703, ptr noundef @.str.4)
  %16705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16706 = load i32, ptr %16705, align 4, !tbaa !5
  %16707 = call ptr @s2n_strerror_debug(i32 noundef %16706, ptr noundef @.str.4)
  %16708 = call ptr @__errno_location() #12
  %16709 = load i32, ptr %16708, align 4, !tbaa !5
  %16710 = call ptr @strerror(i32 noundef %16709) #11
  %16711 = call ptr @__errno_location() #12
  %16712 = load i32, ptr %16711, align 4, !tbaa !5
  %16713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16700, ptr noundef @.str.2, i32 noundef %16701, ptr noundef @.str.157, ptr noundef @.str.1, i32 noundef 803, ptr noundef %16704, ptr noundef %16707, ptr noundef %16710, i32 noundef %16712) #11
  br label %16731

16714:                                            ; preds = %16692, %16685
  %16715 = load i32, ptr %386, align 4, !tbaa !5
  %16716 = call ptr @__errno_location() #12
  store i32 %16715, ptr %16716, align 4, !tbaa !5
  %16717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16718 = load i32, ptr @test_count, align 4, !tbaa !5
  %16719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16720 = load i32, ptr %16719, align 4, !tbaa !5
  %16721 = call ptr @s2n_strerror(i32 noundef %16720, ptr noundef @.str.4)
  %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_debug(i32 noundef %16723, ptr noundef @.str.4)
  %16725 = call ptr @__errno_location() #12
  %16726 = load i32, ptr %16725, align 4, !tbaa !5
  %16727 = call ptr @strerror(i32 noundef %16726) #11
  %16728 = call ptr @__errno_location() #12
  %16729 = load i32, ptr %16728, align 4, !tbaa !5
  %16730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16717, ptr noundef @.str.5, i32 noundef %16718, ptr noundef @.str.157, ptr noundef @.str.1, i32 noundef 803, ptr noundef %16721, ptr noundef %16724, ptr noundef %16727, i32 noundef %16729) #11
  br label %16731

16731:                                            ; preds = %16714, %16697
  call void @llvm.lifetime.end.p0(i64 4, ptr %386) #11
  br label %16732

16732:                                            ; preds = %16731
  br label %16733

16733:                                            ; preds = %16732
  call void @exit(i32 noundef 1) #13
  unreachable

16734:                                            ; No predecessors!
  br label %16735

16735:                                            ; preds = %16734
  br label %16736

16736:                                            ; preds = %16735, %16675
  br label %16737

16737:                                            ; preds = %16736
  br label %16738

16738:                                            ; preds = %16737
  br label %16739

16739:                                            ; preds = %16738
  %16740 = load i32, ptr @test_count, align 4, !tbaa !5
  %16741 = add nsw i32 %16740, 1
  store i32 %16741, ptr @test_count, align 4, !tbaa !5
  %16742 = load ptr, ptr %385, align 8, !tbaa !9
  %16743 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16742, i32 0, i32 1
  %16744 = getelementptr inbounds %struct.s2n_kem_params, ptr %16743, i32 0, i32 1
  %16745 = getelementptr inbounds %struct.s2n_blob, ptr %16744, i32 0, i32 0
  %16746 = load ptr, ptr %16745, align 8, !tbaa !99
  %16747 = icmp eq ptr %16746, null
  br i1 %16747, label %16748, label %16801

16748:                                            ; preds = %16739
  br label %16749

16749:                                            ; preds = %16748
  br label %16750

16750:                                            ; preds = %16749
  call void @llvm.lifetime.start.p0(i64 4, ptr %387) #11
  %16751 = call ptr @__errno_location() #12
  %16752 = load i32, ptr %16751, align 4, !tbaa !5
  store i32 %16752, ptr %387, align 4, !tbaa !5
  %16753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16754 = call i32 @s2n_print_stacktrace(ptr noundef %16753)
  %16755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16756 = trunc i8 %16755 to i1
  br i1 %16756, label %16757, label %16779

16757:                                            ; preds = %16750
  %16758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16759 = call i32 @fileno(ptr noundef %16758) #11
  %16760 = call i32 @isatty(i32 noundef %16759) #11
  %16761 = icmp ne i32 %16760, 0
  br i1 %16761, label %16762, label %16779

16762:                                            ; preds = %16757
  %16763 = load i32, ptr %387, align 4, !tbaa !5
  %16764 = call ptr @__errno_location() #12
  store i32 %16763, ptr %16764, align 4, !tbaa !5
  %16765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16766 = load i32, ptr @test_count, align 4, !tbaa !5
  %16767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16768 = load i32, ptr %16767, align 4, !tbaa !5
  %16769 = call ptr @s2n_strerror(i32 noundef %16768, ptr noundef @.str.4)
  %16770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16771 = load i32, ptr %16770, align 4, !tbaa !5
  %16772 = call ptr @s2n_strerror_debug(i32 noundef %16771, ptr noundef @.str.4)
  %16773 = call ptr @__errno_location() #12
  %16774 = load i32, ptr %16773, align 4, !tbaa !5
  %16775 = call ptr @strerror(i32 noundef %16774) #11
  %16776 = call ptr @__errno_location() #12
  %16777 = load i32, ptr %16776, align 4, !tbaa !5
  %16778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16765, ptr noundef @.str.2, i32 noundef %16766, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 804, ptr noundef %16769, ptr noundef %16772, ptr noundef %16775, i32 noundef %16777) #11
  br label %16796

16779:                                            ; preds = %16757, %16750
  %16780 = load i32, ptr %387, align 4, !tbaa !5
  %16781 = call ptr @__errno_location() #12
  store i32 %16780, ptr %16781, align 4, !tbaa !5
  %16782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16783 = load i32, ptr @test_count, align 4, !tbaa !5
  %16784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16785 = load i32, ptr %16784, align 4, !tbaa !5
  %16786 = call ptr @s2n_strerror(i32 noundef %16785, ptr noundef @.str.4)
  %16787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16788 = load i32, ptr %16787, align 4, !tbaa !5
  %16789 = call ptr @s2n_strerror_debug(i32 noundef %16788, ptr noundef @.str.4)
  %16790 = call ptr @__errno_location() #12
  %16791 = load i32, ptr %16790, align 4, !tbaa !5
  %16792 = call ptr @strerror(i32 noundef %16791) #11
  %16793 = call ptr @__errno_location() #12
  %16794 = load i32, ptr %16793, align 4, !tbaa !5
  %16795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16782, ptr noundef @.str.5, i32 noundef %16783, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 804, ptr noundef %16786, ptr noundef %16789, ptr noundef %16792, i32 noundef %16794) #11
  br label %16796

16796:                                            ; preds = %16779, %16762
  call void @llvm.lifetime.end.p0(i64 4, ptr %387) #11
  br label %16797

16797:                                            ; preds = %16796
  br label %16798

16798:                                            ; preds = %16797
  call void @exit(i32 noundef 1) #13
  unreachable

16799:                                            ; No predecessors!
  br label %16800

16800:                                            ; preds = %16799
  br label %16801

16801:                                            ; preds = %16800, %16739
  br label %16802

16802:                                            ; preds = %16801
  br label %16803

16803:                                            ; preds = %16802
  br label %16804

16804:                                            ; preds = %16803
  %16805 = load i32, ptr @test_count, align 4, !tbaa !5
  %16806 = add nsw i32 %16805, 1
  store i32 %16806, ptr @test_count, align 4, !tbaa !5
  %16807 = load ptr, ptr %385, align 8, !tbaa !9
  %16808 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %16807, i32 0, i32 2
  %16809 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %16808, i32 0, i32 1
  %16810 = load ptr, ptr %16809, align 8, !tbaa !78
  %16811 = icmp eq ptr %16810, null
  br i1 %16811, label %16812, label %16865

16812:                                            ; preds = %16804
  br label %16813

16813:                                            ; preds = %16812
  br label %16814

16814:                                            ; preds = %16813
  call void @llvm.lifetime.start.p0(i64 4, ptr %388) #11
  %16815 = call ptr @__errno_location() #12
  %16816 = load i32, ptr %16815, align 4, !tbaa !5
  store i32 %16816, ptr %388, align 4, !tbaa !5
  %16817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16818 = call i32 @s2n_print_stacktrace(ptr noundef %16817)
  %16819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16820 = trunc i8 %16819 to i1
  br i1 %16820, label %16821, label %16843

16821:                                            ; preds = %16814
  %16822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16823 = call i32 @fileno(ptr noundef %16822) #11
  %16824 = call i32 @isatty(i32 noundef %16823) #11
  %16825 = icmp ne i32 %16824, 0
  br i1 %16825, label %16826, label %16843

16826:                                            ; preds = %16821
  %16827 = load i32, ptr %388, align 4, !tbaa !5
  %16828 = call ptr @__errno_location() #12
  store i32 %16827, ptr %16828, align 4, !tbaa !5
  %16829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16830 = load i32, ptr @test_count, align 4, !tbaa !5
  %16831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16832 = load i32, ptr %16831, align 4, !tbaa !5
  %16833 = call ptr @s2n_strerror(i32 noundef %16832, ptr noundef @.str.4)
  %16834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16835 = load i32, ptr %16834, align 4, !tbaa !5
  %16836 = call ptr @s2n_strerror_debug(i32 noundef %16835, ptr noundef @.str.4)
  %16837 = call ptr @__errno_location() #12
  %16838 = load i32, ptr %16837, align 4, !tbaa !5
  %16839 = call ptr @strerror(i32 noundef %16838) #11
  %16840 = call ptr @__errno_location() #12
  %16841 = load i32, ptr %16840, align 4, !tbaa !5
  %16842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16829, ptr noundef @.str.2, i32 noundef %16830, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 805, ptr noundef %16833, ptr noundef %16836, ptr noundef %16839, i32 noundef %16841) #11
  br label %16860

16843:                                            ; preds = %16821, %16814
  %16844 = load i32, ptr %388, align 4, !tbaa !5
  %16845 = call ptr @__errno_location() #12
  store i32 %16844, ptr %16845, align 4, !tbaa !5
  %16846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16847 = load i32, ptr @test_count, align 4, !tbaa !5
  %16848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16849 = load i32, ptr %16848, align 4, !tbaa !5
  %16850 = call ptr @s2n_strerror(i32 noundef %16849, ptr noundef @.str.4)
  %16851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16852 = load i32, ptr %16851, align 4, !tbaa !5
  %16853 = call ptr @s2n_strerror_debug(i32 noundef %16852, ptr noundef @.str.4)
  %16854 = call ptr @__errno_location() #12
  %16855 = load i32, ptr %16854, align 4, !tbaa !5
  %16856 = call ptr @strerror(i32 noundef %16855) #11
  %16857 = call ptr @__errno_location() #12
  %16858 = load i32, ptr %16857, align 4, !tbaa !5
  %16859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16846, ptr noundef @.str.5, i32 noundef %16847, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 805, ptr noundef %16850, ptr noundef %16853, ptr noundef %16856, i32 noundef %16858) #11
  br label %16860

16860:                                            ; preds = %16843, %16826
  call void @llvm.lifetime.end.p0(i64 4, ptr %388) #11
  br label %16861

16861:                                            ; preds = %16860
  br label %16862

16862:                                            ; preds = %16861
  call void @exit(i32 noundef 1) #13
  unreachable

16863:                                            ; No predecessors!
  br label %16864

16864:                                            ; preds = %16863
  br label %16865

16865:                                            ; preds = %16864, %16804
  br label %16866

16866:                                            ; preds = %16865
  br label %16867

16867:                                            ; preds = %16866
  call void @llvm.lifetime.start.p0(i64 8, ptr %389) #11
  store i64 0, ptr %389, align 8, !tbaa !65
  br label %16868

16868:                                            ; preds = %16936, %16867
  %16869 = load i64, ptr %389, align 8, !tbaa !65
  %16870 = icmp ult i64 %16869, 2
  br i1 %16870, label %16872, label %16871

16871:                                            ; preds = %16868
  store i32 1533, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %389) #11
  br label %16939

16872:                                            ; preds = %16868
  br label %16873

16873:                                            ; preds = %16872
  %16874 = load i32, ptr @test_count, align 4, !tbaa !5
  %16875 = add nsw i32 %16874, 1
  store i32 %16875, ptr @test_count, align 4, !tbaa !5
  %16876 = load i64, ptr %389, align 8, !tbaa !65
  %16877 = getelementptr inbounds [2 x %struct.s2n_kem_group_params], ptr %374, i64 0, i64 %16876
  %16878 = call i32 @s2n_kem_group_free(ptr noundef %16877)
  %16879 = icmp eq i32 %16878, -1
  br i1 %16879, label %16880, label %16933

16880:                                            ; preds = %16873
  br label %16881

16881:                                            ; preds = %16880
  br label %16882

16882:                                            ; preds = %16881
  call void @llvm.lifetime.start.p0(i64 4, ptr %390) #11
  %16883 = call ptr @__errno_location() #12
  %16884 = load i32, ptr %16883, align 4, !tbaa !5
  store i32 %16884, ptr %390, align 4, !tbaa !5
  %16885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16886 = call i32 @s2n_print_stacktrace(ptr noundef %16885)
  %16887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16888 = trunc i8 %16887 to i1
  br i1 %16888, label %16889, label %16911

16889:                                            ; preds = %16882
  %16890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16891 = call i32 @fileno(ptr noundef %16890) #11
  %16892 = call i32 @isatty(i32 noundef %16891) #11
  %16893 = icmp ne i32 %16892, 0
  br i1 %16893, label %16894, label %16911

16894:                                            ; preds = %16889
  %16895 = load i32, ptr %390, align 4, !tbaa !5
  %16896 = call ptr @__errno_location() #12
  store i32 %16895, ptr %16896, align 4, !tbaa !5
  %16897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16898 = load i32, ptr @test_count, align 4, !tbaa !5
  %16899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16900 = load i32, ptr %16899, align 4, !tbaa !5
  %16901 = call ptr @s2n_strerror(i32 noundef %16900, ptr noundef @.str.4)
  %16902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16903 = load i32, ptr %16902, align 4, !tbaa !5
  %16904 = call ptr @s2n_strerror_debug(i32 noundef %16903, ptr noundef @.str.4)
  %16905 = call ptr @__errno_location() #12
  %16906 = load i32, ptr %16905, align 4, !tbaa !5
  %16907 = call ptr @strerror(i32 noundef %16906) #11
  %16908 = call ptr @__errno_location() #12
  %16909 = load i32, ptr %16908, align 4, !tbaa !5
  %16910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16897, ptr noundef @.str.2, i32 noundef %16898, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 808, ptr noundef %16901, ptr noundef %16904, ptr noundef %16907, i32 noundef %16909) #11
  br label %16928

16911:                                            ; preds = %16889, %16882
  %16912 = load i32, ptr %390, align 4, !tbaa !5
  %16913 = call ptr @__errno_location() #12
  store i32 %16912, ptr %16913, align 4, !tbaa !5
  %16914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16915 = load i32, ptr @test_count, align 4, !tbaa !5
  %16916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16917 = load i32, ptr %16916, align 4, !tbaa !5
  %16918 = call ptr @s2n_strerror(i32 noundef %16917, ptr noundef @.str.4)
  %16919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16920 = load i32, ptr %16919, align 4, !tbaa !5
  %16921 = call ptr @s2n_strerror_debug(i32 noundef %16920, ptr noundef @.str.4)
  %16922 = call ptr @__errno_location() #12
  %16923 = load i32, ptr %16922, align 4, !tbaa !5
  %16924 = call ptr @strerror(i32 noundef %16923) #11
  %16925 = call ptr @__errno_location() #12
  %16926 = load i32, ptr %16925, align 4, !tbaa !5
  %16927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16914, ptr noundef @.str.5, i32 noundef %16915, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 808, ptr noundef %16918, ptr noundef %16921, ptr noundef %16924, i32 noundef %16926) #11
  br label %16928

16928:                                            ; preds = %16911, %16894
  call void @llvm.lifetime.end.p0(i64 4, ptr %390) #11
  br label %16929

16929:                                            ; preds = %16928
  br label %16930

16930:                                            ; preds = %16929
  call void @exit(i32 noundef 1) #13
  unreachable

16931:                                            ; No predecessors!
  br label %16932

16932:                                            ; preds = %16931
  br label %16933

16933:                                            ; preds = %16932, %16873
  br label %16934

16934:                                            ; preds = %16933
  br label %16935

16935:                                            ; preds = %16934
  br label %16936

16936:                                            ; preds = %16935
  %16937 = load i64, ptr %389, align 8, !tbaa !65
  %16938 = add i64 %16937, 1
  store i64 %16938, ptr %389, align 8, !tbaa !65
  br label %16868, !llvm.loop !109

16939:                                            ; preds = %16871
  br label %16940

16940:                                            ; preds = %16939
  %16941 = load i32, ptr @test_count, align 4, !tbaa !5
  %16942 = add nsw i32 %16941, 1
  store i32 %16942, ptr @test_count, align 4, !tbaa !5
  %16943 = call i32 @s2n_stuffer_free(ptr noundef %375)
  %16944 = icmp eq i32 %16943, -1
  br i1 %16944, label %16945, label %16998

16945:                                            ; preds = %16940
  br label %16946

16946:                                            ; preds = %16945
  br label %16947

16947:                                            ; preds = %16946
  call void @llvm.lifetime.start.p0(i64 4, ptr %391) #11
  %16948 = call ptr @__errno_location() #12
  %16949 = load i32, ptr %16948, align 4, !tbaa !5
  store i32 %16949, ptr %391, align 4, !tbaa !5
  %16950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16951 = call i32 @s2n_print_stacktrace(ptr noundef %16950)
  %16952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16953 = trunc i8 %16952 to i1
  br i1 %16953, label %16954, label %16976

16954:                                            ; preds = %16947
  %16955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16956 = call i32 @fileno(ptr noundef %16955) #11
  %16957 = call i32 @isatty(i32 noundef %16956) #11
  %16958 = icmp ne i32 %16957, 0
  br i1 %16958, label %16959, label %16976

16959:                                            ; preds = %16954
  %16960 = load i32, ptr %391, align 4, !tbaa !5
  %16961 = call ptr @__errno_location() #12
  store i32 %16960, ptr %16961, align 4, !tbaa !5
  %16962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16963 = load i32, ptr @test_count, align 4, !tbaa !5
  %16964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16965 = load i32, ptr %16964, align 4, !tbaa !5
  %16966 = call ptr @s2n_strerror(i32 noundef %16965, ptr noundef @.str.4)
  %16967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16968 = load i32, ptr %16967, align 4, !tbaa !5
  %16969 = call ptr @s2n_strerror_debug(i32 noundef %16968, ptr noundef @.str.4)
  %16970 = call ptr @__errno_location() #12
  %16971 = load i32, ptr %16970, align 4, !tbaa !5
  %16972 = call ptr @strerror(i32 noundef %16971) #11
  %16973 = call ptr @__errno_location() #12
  %16974 = load i32, ptr %16973, align 4, !tbaa !5
  %16975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16962, ptr noundef @.str.2, i32 noundef %16963, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 810, ptr noundef %16966, ptr noundef %16969, ptr noundef %16972, i32 noundef %16974) #11
  br label %16993

16976:                                            ; preds = %16954, %16947
  %16977 = load i32, ptr %391, align 4, !tbaa !5
  %16978 = call ptr @__errno_location() #12
  store i32 %16977, ptr %16978, align 4, !tbaa !5
  %16979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16980 = load i32, ptr @test_count, align 4, !tbaa !5
  %16981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16982 = load i32, ptr %16981, align 4, !tbaa !5
  %16983 = call ptr @s2n_strerror(i32 noundef %16982, ptr noundef @.str.4)
  %16984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %16985 = load i32, ptr %16984, align 4, !tbaa !5
  %16986 = call ptr @s2n_strerror_debug(i32 noundef %16985, ptr noundef @.str.4)
  %16987 = call ptr @__errno_location() #12
  %16988 = load i32, ptr %16987, align 4, !tbaa !5
  %16989 = call ptr @strerror(i32 noundef %16988) #11
  %16990 = call ptr @__errno_location() #12
  %16991 = load i32, ptr %16990, align 4, !tbaa !5
  %16992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16979, ptr noundef @.str.5, i32 noundef %16980, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 810, ptr noundef %16983, ptr noundef %16986, ptr noundef %16989, i32 noundef %16991) #11
  br label %16993

16993:                                            ; preds = %16976, %16959
  call void @llvm.lifetime.end.p0(i64 4, ptr %391) #11
  br label %16994

16994:                                            ; preds = %16993
  br label %16995

16995:                                            ; preds = %16994
  call void @exit(i32 noundef 1) #13
  unreachable

16996:                                            ; No predecessors!
  br label %16997

16997:                                            ; preds = %16996
  br label %16998

16998:                                            ; preds = %16997, %16940
  br label %16999

16999:                                            ; preds = %16998
  br label %17000

17000:                                            ; preds = %16999
  br label %17001

17001:                                            ; preds = %17000
  %17002 = load i32, ptr @test_count, align 4, !tbaa !5
  %17003 = add nsw i32 %17002, 1
  store i32 %17003, ptr @test_count, align 4, !tbaa !5
  %17004 = load ptr, ptr %358, align 8, !tbaa !9
  %17005 = call i32 @s2n_connection_free(ptr noundef %17004)
  %17006 = icmp eq i32 %17005, -1
  br i1 %17006, label %17007, label %17060

17007:                                            ; preds = %17001
  br label %17008

17008:                                            ; preds = %17007
  br label %17009

17009:                                            ; preds = %17008
  call void @llvm.lifetime.start.p0(i64 4, ptr %392) #11
  %17010 = call ptr @__errno_location() #12
  %17011 = load i32, ptr %17010, align 4, !tbaa !5
  store i32 %17011, ptr %392, align 4, !tbaa !5
  %17012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17013 = call i32 @s2n_print_stacktrace(ptr noundef %17012)
  %17014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17015 = trunc i8 %17014 to i1
  br i1 %17015, label %17016, label %17038

17016:                                            ; preds = %17009
  %17017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17018 = call i32 @fileno(ptr noundef %17017) #11
  %17019 = call i32 @isatty(i32 noundef %17018) #11
  %17020 = icmp ne i32 %17019, 0
  br i1 %17020, label %17021, label %17038

17021:                                            ; preds = %17016
  %17022 = load i32, ptr %392, align 4, !tbaa !5
  %17023 = call ptr @__errno_location() #12
  store i32 %17022, ptr %17023, align 4, !tbaa !5
  %17024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17025 = load i32, ptr @test_count, align 4, !tbaa !5
  %17026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17027 = load i32, ptr %17026, align 4, !tbaa !5
  %17028 = call ptr @s2n_strerror(i32 noundef %17027, ptr noundef @.str.4)
  %17029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17030 = load i32, ptr %17029, align 4, !tbaa !5
  %17031 = call ptr @s2n_strerror_debug(i32 noundef %17030, ptr noundef @.str.4)
  %17032 = call ptr @__errno_location() #12
  %17033 = load i32, ptr %17032, align 4, !tbaa !5
  %17034 = call ptr @strerror(i32 noundef %17033) #11
  %17035 = call ptr @__errno_location() #12
  %17036 = load i32, ptr %17035, align 4, !tbaa !5
  %17037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17024, ptr noundef @.str.2, i32 noundef %17025, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 811, ptr noundef %17028, ptr noundef %17031, ptr noundef %17034, i32 noundef %17036) #11
  br label %17055

17038:                                            ; preds = %17016, %17009
  %17039 = load i32, ptr %392, align 4, !tbaa !5
  %17040 = call ptr @__errno_location() #12
  store i32 %17039, ptr %17040, align 4, !tbaa !5
  %17041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17042 = load i32, ptr @test_count, align 4, !tbaa !5
  %17043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17044 = load i32, ptr %17043, align 4, !tbaa !5
  %17045 = call ptr @s2n_strerror(i32 noundef %17044, ptr noundef @.str.4)
  %17046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17047 = load i32, ptr %17046, align 4, !tbaa !5
  %17048 = call ptr @s2n_strerror_debug(i32 noundef %17047, ptr noundef @.str.4)
  %17049 = call ptr @__errno_location() #12
  %17050 = load i32, ptr %17049, align 4, !tbaa !5
  %17051 = call ptr @strerror(i32 noundef %17050) #11
  %17052 = call ptr @__errno_location() #12
  %17053 = load i32, ptr %17052, align 4, !tbaa !5
  %17054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17041, ptr noundef @.str.5, i32 noundef %17042, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 811, ptr noundef %17045, ptr noundef %17048, ptr noundef %17051, i32 noundef %17053) #11
  br label %17055

17055:                                            ; preds = %17038, %17021
  call void @llvm.lifetime.end.p0(i64 4, ptr %392) #11
  br label %17056

17056:                                            ; preds = %17055
  br label %17057

17057:                                            ; preds = %17056
  call void @exit(i32 noundef 1) #13
  unreachable

17058:                                            ; No predecessors!
  br label %17059

17059:                                            ; preds = %17058
  br label %17060

17060:                                            ; preds = %17059, %17001
  br label %17061

17061:                                            ; preds = %17060
  br label %17062

17062:                                            ; preds = %17061
  call void @llvm.lifetime.end.p0(i64 8, ptr %385) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %377) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %375) #11
  call void @llvm.lifetime.end.p0(i64 224, ptr %374) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %370) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %369) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %363) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %358) #11
  br label %17063

17063:                                            ; preds = %17062, %15547
  br label %17064

17064:                                            ; preds = %17063
  %17065 = load i32, ptr @test_count, align 4, !tbaa !5
  %17066 = add nsw i32 %17065, 1
  store i32 %17066, ptr @test_count, align 4, !tbaa !5
  %17067 = getelementptr inbounds %struct.s2n_security_policy, ptr %9, i32 0, i32 2
  %17068 = load ptr, ptr %17067, align 8, !tbaa !22
  %17069 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %17068, ptr noundef %10)
  %17070 = getelementptr inbounds %struct.s2n_result, ptr %393, i32 0, i32 0
  store i32 %17069, ptr %17070, align 4
  %17071 = getelementptr inbounds %struct.s2n_result, ptr %393, i32 0, i32 0
  %17072 = load i32, ptr %17071, align 4
  %17073 = call zeroext i1 @s2n_result_is_ok(i32 %17072)
  br i1 %17073, label %17127, label %17074

17074:                                            ; preds = %17064
  br label %17075

17075:                                            ; preds = %17074
  br label %17076

17076:                                            ; preds = %17075
  call void @llvm.lifetime.start.p0(i64 4, ptr %394) #11
  %17077 = call ptr @__errno_location() #12
  %17078 = load i32, ptr %17077, align 4, !tbaa !5
  store i32 %17078, ptr %394, align 4, !tbaa !5
  %17079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17080 = call i32 @s2n_print_stacktrace(ptr noundef %17079)
  %17081 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17082 = trunc i8 %17081 to i1
  br i1 %17082, label %17083, label %17105

17083:                                            ; preds = %17076
  %17084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17085 = call i32 @fileno(ptr noundef %17084) #11
  %17086 = call i32 @isatty(i32 noundef %17085) #11
  %17087 = icmp ne i32 %17086, 0
  br i1 %17087, label %17088, label %17105

17088:                                            ; preds = %17083
  %17089 = load i32, ptr %394, align 4, !tbaa !5
  %17090 = call ptr @__errno_location() #12
  store i32 %17089, ptr %17090, align 4, !tbaa !5
  %17091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17092 = load i32, ptr @test_count, align 4, !tbaa !5
  %17093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17094 = load i32, ptr %17093, align 4, !tbaa !5
  %17095 = call ptr @s2n_strerror(i32 noundef %17094, ptr noundef @.str.4)
  %17096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17097 = load i32, ptr %17096, align 4, !tbaa !5
  %17098 = call ptr @s2n_strerror_debug(i32 noundef %17097, ptr noundef @.str.4)
  %17099 = call ptr @__errno_location() #12
  %17100 = load i32, ptr %17099, align 4, !tbaa !5
  %17101 = call ptr @strerror(i32 noundef %17100) #11
  %17102 = call ptr @__errno_location() #12
  %17103 = load i32, ptr %17102, align 4, !tbaa !5
  %17104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17091, ptr noundef @.str.2, i32 noundef %17092, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 817, ptr noundef %17095, ptr noundef %17098, ptr noundef %17101, i32 noundef %17103) #11
  br label %17122

17105:                                            ; preds = %17083, %17076
  %17106 = load i32, ptr %394, align 4, !tbaa !5
  %17107 = call ptr @__errno_location() #12
  store i32 %17106, ptr %17107, align 4, !tbaa !5
  %17108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17109 = load i32, ptr @test_count, align 4, !tbaa !5
  %17110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17111 = load i32, ptr %17110, align 4, !tbaa !5
  %17112 = call ptr @s2n_strerror(i32 noundef %17111, ptr noundef @.str.4)
  %17113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17114 = load i32, ptr %17113, align 4, !tbaa !5
  %17115 = call ptr @s2n_strerror_debug(i32 noundef %17114, ptr noundef @.str.4)
  %17116 = call ptr @__errno_location() #12
  %17117 = load i32, ptr %17116, align 4, !tbaa !5
  %17118 = call ptr @strerror(i32 noundef %17117) #11
  %17119 = call ptr @__errno_location() #12
  %17120 = load i32, ptr %17119, align 4, !tbaa !5
  %17121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17108, ptr noundef @.str.5, i32 noundef %17109, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 817, ptr noundef %17112, ptr noundef %17115, ptr noundef %17118, i32 noundef %17120) #11
  br label %17122

17122:                                            ; preds = %17105, %17088
  call void @llvm.lifetime.end.p0(i64 4, ptr %394) #11
  br label %17123

17123:                                            ; preds = %17122
  br label %17124

17124:                                            ; preds = %17123
  call void @exit(i32 noundef 1) #13
  unreachable

17125:                                            ; No predecessors!
  br label %17126

17126:                                            ; preds = %17125
  br label %17127

17127:                                            ; preds = %17126, %17064
  br label %17128

17128:                                            ; preds = %17127
  br label %17129

17129:                                            ; preds = %17128
  %17130 = load i32, ptr %10, align 4, !tbaa !5
  %17131 = icmp uge i32 %17130, 2
  br i1 %17131, label %17132, label %18763

17132:                                            ; preds = %17129
  call void @llvm.lifetime.start.p0(i64 8, ptr %395) #11
  %17133 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %17133, ptr %395, align 8, !tbaa !9
  br label %17134

17134:                                            ; preds = %17132
  %17135 = load i32, ptr @test_count, align 4, !tbaa !5
  %17136 = add nsw i32 %17135, 1
  store i32 %17136, ptr @test_count, align 4, !tbaa !5
  %17137 = load ptr, ptr %395, align 8, !tbaa !9
  %17138 = icmp eq ptr %17137, null
  br i1 %17138, label %17139, label %17192

17139:                                            ; preds = %17134
  br label %17140

17140:                                            ; preds = %17139
  br label %17141

17141:                                            ; preds = %17140
  call void @llvm.lifetime.start.p0(i64 4, ptr %396) #11
  %17142 = call ptr @__errno_location() #12
  %17143 = load i32, ptr %17142, align 4, !tbaa !5
  store i32 %17143, ptr %396, align 4, !tbaa !5
  %17144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17145 = call i32 @s2n_print_stacktrace(ptr noundef %17144)
  %17146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17147 = trunc i8 %17146 to i1
  br i1 %17147, label %17148, label %17170

17148:                                            ; preds = %17141
  %17149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17150 = call i32 @fileno(ptr noundef %17149) #11
  %17151 = call i32 @isatty(i32 noundef %17150) #11
  %17152 = icmp ne i32 %17151, 0
  br i1 %17152, label %17153, label %17170

17153:                                            ; preds = %17148
  %17154 = load i32, ptr %396, align 4, !tbaa !5
  %17155 = call ptr @__errno_location() #12
  store i32 %17154, ptr %17155, align 4, !tbaa !5
  %17156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17157 = load i32, ptr @test_count, align 4, !tbaa !5
  %17158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17159 = load i32, ptr %17158, align 4, !tbaa !5
  %17160 = call ptr @s2n_strerror(i32 noundef %17159, ptr noundef @.str.4)
  %17161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17162 = load i32, ptr %17161, align 4, !tbaa !5
  %17163 = call ptr @s2n_strerror_debug(i32 noundef %17162, ptr noundef @.str.4)
  %17164 = call ptr @__errno_location() #12
  %17165 = load i32, ptr %17164, align 4, !tbaa !5
  %17166 = call ptr @strerror(i32 noundef %17165) #11
  %17167 = call ptr @__errno_location() #12
  %17168 = load i32, ptr %17167, align 4, !tbaa !5
  %17169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17156, ptr noundef @.str.2, i32 noundef %17157, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 820, ptr noundef %17160, ptr noundef %17163, ptr noundef %17166, i32 noundef %17168) #11
  br label %17187

17170:                                            ; preds = %17148, %17141
  %17171 = load i32, ptr %396, align 4, !tbaa !5
  %17172 = call ptr @__errno_location() #12
  store i32 %17171, ptr %17172, align 4, !tbaa !5
  %17173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17174 = load i32, ptr @test_count, align 4, !tbaa !5
  %17175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17176 = load i32, ptr %17175, align 4, !tbaa !5
  %17177 = call ptr @s2n_strerror(i32 noundef %17176, ptr noundef @.str.4)
  %17178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17179 = load i32, ptr %17178, align 4, !tbaa !5
  %17180 = call ptr @s2n_strerror_debug(i32 noundef %17179, ptr noundef @.str.4)
  %17181 = call ptr @__errno_location() #12
  %17182 = load i32, ptr %17181, align 4, !tbaa !5
  %17183 = call ptr @strerror(i32 noundef %17182) #11
  %17184 = call ptr @__errno_location() #12
  %17185 = load i32, ptr %17184, align 4, !tbaa !5
  %17186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17173, ptr noundef @.str.5, i32 noundef %17174, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 820, ptr noundef %17177, ptr noundef %17180, ptr noundef %17183, i32 noundef %17185) #11
  br label %17187

17187:                                            ; preds = %17170, %17153
  call void @llvm.lifetime.end.p0(i64 4, ptr %396) #11
  br label %17188

17188:                                            ; preds = %17187
  br label %17189

17189:                                            ; preds = %17188
  call void @exit(i32 noundef 1) #13
  unreachable

17190:                                            ; No predecessors!
  br label %17191

17191:                                            ; preds = %17190
  br label %17192

17192:                                            ; preds = %17191, %17134
  br label %17193

17193:                                            ; preds = %17192
  br label %17194

17194:                                            ; preds = %17193
  %17195 = load ptr, ptr %395, align 8, !tbaa !9
  %17196 = getelementptr inbounds %struct.s2n_connection, ptr %17195, i32 0, i32 2
  store ptr %9, ptr %17196, align 8, !tbaa !28
  br label %17197

17197:                                            ; preds = %17194
  %17198 = load i32, ptr @test_count, align 4, !tbaa !5
  %17199 = add nsw i32 %17198, 1
  store i32 %17199, ptr @test_count, align 4, !tbaa !5
  %17200 = load ptr, ptr %395, align 8, !tbaa !9
  %17201 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %17200, i8 noundef zeroext 34)
  %17202 = icmp eq i32 %17201, -1
  br i1 %17202, label %17203, label %17256

17203:                                            ; preds = %17197
  br label %17204

17204:                                            ; preds = %17203
  br label %17205

17205:                                            ; preds = %17204
  call void @llvm.lifetime.start.p0(i64 4, ptr %397) #11
  %17206 = call ptr @__errno_location() #12
  %17207 = load i32, ptr %17206, align 4, !tbaa !5
  store i32 %17207, ptr %397, align 4, !tbaa !5
  %17208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17209 = call i32 @s2n_print_stacktrace(ptr noundef %17208)
  %17210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17211 = trunc i8 %17210 to i1
  br i1 %17211, label %17212, label %17234

17212:                                            ; preds = %17205
  %17213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17214 = call i32 @fileno(ptr noundef %17213) #11
  %17215 = call i32 @isatty(i32 noundef %17214) #11
  %17216 = icmp ne i32 %17215, 0
  br i1 %17216, label %17217, label %17234

17217:                                            ; preds = %17212
  %17218 = load i32, ptr %397, align 4, !tbaa !5
  %17219 = call ptr @__errno_location() #12
  store i32 %17218, ptr %17219, align 4, !tbaa !5
  %17220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17221 = load i32, ptr @test_count, align 4, !tbaa !5
  %17222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17223 = load i32, ptr %17222, align 4, !tbaa !5
  %17224 = call ptr @s2n_strerror(i32 noundef %17223, ptr noundef @.str.4)
  %17225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17226 = load i32, ptr %17225, align 4, !tbaa !5
  %17227 = call ptr @s2n_strerror_debug(i32 noundef %17226, ptr noundef @.str.4)
  %17228 = call ptr @__errno_location() #12
  %17229 = load i32, ptr %17228, align 4, !tbaa !5
  %17230 = call ptr @strerror(i32 noundef %17229) #11
  %17231 = call ptr @__errno_location() #12
  %17232 = load i32, ptr %17231, align 4, !tbaa !5
  %17233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17220, ptr noundef @.str.2, i32 noundef %17221, ptr noundef @.str.158, ptr noundef @.str.1, i32 noundef 822, ptr noundef %17224, ptr noundef %17227, ptr noundef %17230, i32 noundef %17232) #11
  br label %17251

17234:                                            ; preds = %17212, %17205
  %17235 = load i32, ptr %397, align 4, !tbaa !5
  %17236 = call ptr @__errno_location() #12
  store i32 %17235, ptr %17236, align 4, !tbaa !5
  %17237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17238 = load i32, ptr @test_count, align 4, !tbaa !5
  %17239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17240 = load i32, ptr %17239, align 4, !tbaa !5
  %17241 = call ptr @s2n_strerror(i32 noundef %17240, ptr noundef @.str.4)
  %17242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17243 = load i32, ptr %17242, align 4, !tbaa !5
  %17244 = call ptr @s2n_strerror_debug(i32 noundef %17243, ptr noundef @.str.4)
  %17245 = call ptr @__errno_location() #12
  %17246 = load i32, ptr %17245, align 4, !tbaa !5
  %17247 = call ptr @strerror(i32 noundef %17246) #11
  %17248 = call ptr @__errno_location() #12
  %17249 = load i32, ptr %17248, align 4, !tbaa !5
  %17250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17237, ptr noundef @.str.5, i32 noundef %17238, ptr noundef @.str.158, ptr noundef @.str.1, i32 noundef 822, ptr noundef %17241, ptr noundef %17244, ptr noundef %17247, i32 noundef %17249) #11
  br label %17251

17251:                                            ; preds = %17234, %17217
  call void @llvm.lifetime.end.p0(i64 4, ptr %397) #11
  br label %17252

17252:                                            ; preds = %17251
  br label %17253

17253:                                            ; preds = %17252
  call void @exit(i32 noundef 1) #13
  unreachable

17254:                                            ; No predecessors!
  br label %17255

17255:                                            ; preds = %17254
  br label %17256

17256:                                            ; preds = %17255, %17197
  br label %17257

17257:                                            ; preds = %17256
  br label %17258

17258:                                            ; preds = %17257
  br label %17259

17259:                                            ; preds = %17258
  %17260 = load i32, ptr @test_count, align 4, !tbaa !5
  %17261 = add nsw i32 %17260, 1
  store i32 %17261, ptr @test_count, align 4, !tbaa !5
  %17262 = load ptr, ptr %395, align 8, !tbaa !9
  %17263 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %17262)
  %17264 = getelementptr inbounds %struct.s2n_result, ptr %398, i32 0, i32 0
  store i32 %17263, ptr %17264, align 4
  %17265 = getelementptr inbounds %struct.s2n_result, ptr %398, i32 0, i32 0
  %17266 = load i32, ptr %17265, align 4
  %17267 = call zeroext i1 @s2n_result_is_ok(i32 %17266)
  br i1 %17267, label %17321, label %17268

17268:                                            ; preds = %17259
  br label %17269

17269:                                            ; preds = %17268
  br label %17270

17270:                                            ; preds = %17269
  call void @llvm.lifetime.start.p0(i64 4, ptr %399) #11
  %17271 = call ptr @__errno_location() #12
  %17272 = load i32, ptr %17271, align 4, !tbaa !5
  store i32 %17272, ptr %399, align 4, !tbaa !5
  %17273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17274 = call i32 @s2n_print_stacktrace(ptr noundef %17273)
  %17275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17276 = trunc i8 %17275 to i1
  br i1 %17276, label %17277, label %17299

17277:                                            ; preds = %17270
  %17278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17279 = call i32 @fileno(ptr noundef %17278) #11
  %17280 = call i32 @isatty(i32 noundef %17279) #11
  %17281 = icmp ne i32 %17280, 0
  br i1 %17281, label %17282, label %17299

17282:                                            ; preds = %17277
  %17283 = load i32, ptr %399, align 4, !tbaa !5
  %17284 = call ptr @__errno_location() #12
  store i32 %17283, ptr %17284, align 4, !tbaa !5
  %17285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17286 = load i32, ptr @test_count, align 4, !tbaa !5
  %17287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17288 = load i32, ptr %17287, align 4, !tbaa !5
  %17289 = call ptr @s2n_strerror(i32 noundef %17288, ptr noundef @.str.4)
  %17290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17291 = load i32, ptr %17290, align 4, !tbaa !5
  %17292 = call ptr @s2n_strerror_debug(i32 noundef %17291, ptr noundef @.str.4)
  %17293 = call ptr @__errno_location() #12
  %17294 = load i32, ptr %17293, align 4, !tbaa !5
  %17295 = call ptr @strerror(i32 noundef %17294) #11
  %17296 = call ptr @__errno_location() #12
  %17297 = load i32, ptr %17296, align 4, !tbaa !5
  %17298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17285, ptr noundef @.str.2, i32 noundef %17286, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 823, ptr noundef %17289, ptr noundef %17292, ptr noundef %17295, i32 noundef %17297) #11
  br label %17316

17299:                                            ; preds = %17277, %17270
  %17300 = load i32, ptr %399, align 4, !tbaa !5
  %17301 = call ptr @__errno_location() #12
  store i32 %17300, ptr %17301, align 4, !tbaa !5
  %17302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17303 = load i32, ptr @test_count, align 4, !tbaa !5
  %17304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17305 = load i32, ptr %17304, align 4, !tbaa !5
  %17306 = call ptr @s2n_strerror(i32 noundef %17305, ptr noundef @.str.4)
  %17307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17308 = load i32, ptr %17307, align 4, !tbaa !5
  %17309 = call ptr @s2n_strerror_debug(i32 noundef %17308, ptr noundef @.str.4)
  %17310 = call ptr @__errno_location() #12
  %17311 = load i32, ptr %17310, align 4, !tbaa !5
  %17312 = call ptr @strerror(i32 noundef %17311) #11
  %17313 = call ptr @__errno_location() #12
  %17314 = load i32, ptr %17313, align 4, !tbaa !5
  %17315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17302, ptr noundef @.str.5, i32 noundef %17303, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 823, ptr noundef %17306, ptr noundef %17309, ptr noundef %17312, i32 noundef %17314) #11
  br label %17316

17316:                                            ; preds = %17299, %17282
  call void @llvm.lifetime.end.p0(i64 4, ptr %399) #11
  br label %17317

17317:                                            ; preds = %17316
  br label %17318

17318:                                            ; preds = %17317
  call void @exit(i32 noundef 1) #13
  unreachable

17319:                                            ; No predecessors!
  br label %17320

17320:                                            ; preds = %17319
  br label %17321

17321:                                            ; preds = %17320, %17259
  br label %17322

17322:                                            ; preds = %17321
  br label %17323

17323:                                            ; preds = %17322
  call void @llvm.lifetime.start.p0(i64 40, ptr %400) #11
  call void @llvm.memset.p0.i64(ptr align 8 %400, i8 0, i64 40, i1 false)
  br label %17324

17324:                                            ; preds = %17323
  %17325 = load i32, ptr @test_count, align 4, !tbaa !5
  %17326 = add nsw i32 %17325, 1
  store i32 %17326, ptr @test_count, align 4, !tbaa !5
  %17327 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %400, i32 noundef 8192)
  %17328 = icmp eq i32 %17327, -1
  br i1 %17328, label %17329, label %17382

17329:                                            ; preds = %17324
  br label %17330

17330:                                            ; preds = %17329
  br label %17331

17331:                                            ; preds = %17330
  call void @llvm.lifetime.start.p0(i64 4, ptr %401) #11
  %17332 = call ptr @__errno_location() #12
  %17333 = load i32, ptr %17332, align 4, !tbaa !5
  store i32 %17333, ptr %401, align 4, !tbaa !5
  %17334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17335 = call i32 @s2n_print_stacktrace(ptr noundef %17334)
  %17336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17337 = trunc i8 %17336 to i1
  br i1 %17337, label %17338, label %17360

17338:                                            ; preds = %17331
  %17339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17340 = call i32 @fileno(ptr noundef %17339) #11
  %17341 = call i32 @isatty(i32 noundef %17340) #11
  %17342 = icmp ne i32 %17341, 0
  br i1 %17342, label %17343, label %17360

17343:                                            ; preds = %17338
  %17344 = load i32, ptr %401, align 4, !tbaa !5
  %17345 = call ptr @__errno_location() #12
  store i32 %17344, ptr %17345, align 4, !tbaa !5
  %17346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17347 = load i32, ptr @test_count, align 4, !tbaa !5
  %17348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17349 = load i32, ptr %17348, align 4, !tbaa !5
  %17350 = call ptr @s2n_strerror(i32 noundef %17349, ptr noundef @.str.4)
  %17351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17352 = load i32, ptr %17351, align 4, !tbaa !5
  %17353 = call ptr @s2n_strerror_debug(i32 noundef %17352, ptr noundef @.str.4)
  %17354 = call ptr @__errno_location() #12
  %17355 = load i32, ptr %17354, align 4, !tbaa !5
  %17356 = call ptr @strerror(i32 noundef %17355) #11
  %17357 = call ptr @__errno_location() #12
  %17358 = load i32, ptr %17357, align 4, !tbaa !5
  %17359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17346, ptr noundef @.str.2, i32 noundef %17347, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 826, ptr noundef %17350, ptr noundef %17353, ptr noundef %17356, i32 noundef %17358) #11
  br label %17377

17360:                                            ; preds = %17338, %17331
  %17361 = load i32, ptr %401, align 4, !tbaa !5
  %17362 = call ptr @__errno_location() #12
  store i32 %17361, ptr %17362, align 4, !tbaa !5
  %17363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17364 = load i32, ptr @test_count, align 4, !tbaa !5
  %17365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17366 = load i32, ptr %17365, align 4, !tbaa !5
  %17367 = call ptr @s2n_strerror(i32 noundef %17366, ptr noundef @.str.4)
  %17368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17369 = load i32, ptr %17368, align 4, !tbaa !5
  %17370 = call ptr @s2n_strerror_debug(i32 noundef %17369, ptr noundef @.str.4)
  %17371 = call ptr @__errno_location() #12
  %17372 = load i32, ptr %17371, align 4, !tbaa !5
  %17373 = call ptr @strerror(i32 noundef %17372) #11
  %17374 = call ptr @__errno_location() #12
  %17375 = load i32, ptr %17374, align 4, !tbaa !5
  %17376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17363, ptr noundef @.str.5, i32 noundef %17364, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 826, ptr noundef %17367, ptr noundef %17370, ptr noundef %17373, i32 noundef %17375) #11
  br label %17377

17377:                                            ; preds = %17360, %17343
  call void @llvm.lifetime.end.p0(i64 4, ptr %401) #11
  br label %17378

17378:                                            ; preds = %17377
  br label %17379

17379:                                            ; preds = %17378
  call void @exit(i32 noundef 1) #13
  unreachable

17380:                                            ; No predecessors!
  br label %17381

17381:                                            ; preds = %17380
  br label %17382

17382:                                            ; preds = %17381, %17324
  br label %17383

17383:                                            ; preds = %17382
  br label %17384

17384:                                            ; preds = %17383
  call void @llvm.lifetime.start.p0(i64 8, ptr %402) #11
  store ptr null, ptr %402, align 8, !tbaa !9
  br label %17385

17385:                                            ; preds = %17384
  %17386 = load i32, ptr @test_count, align 4, !tbaa !5
  %17387 = add nsw i32 %17386, 1
  store i32 %17387, ptr @test_count, align 4, !tbaa !5
  %17388 = load ptr, ptr %395, align 8, !tbaa !9
  %17389 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %17388, ptr noundef %402)
  %17390 = icmp eq i32 %17389, -1
  br i1 %17390, label %17391, label %17444

17391:                                            ; preds = %17385
  br label %17392

17392:                                            ; preds = %17391
  br label %17393

17393:                                            ; preds = %17392
  call void @llvm.lifetime.start.p0(i64 4, ptr %403) #11
  %17394 = call ptr @__errno_location() #12
  %17395 = load i32, ptr %17394, align 4, !tbaa !5
  store i32 %17395, ptr %403, align 4, !tbaa !5
  %17396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17397 = call i32 @s2n_print_stacktrace(ptr noundef %17396)
  %17398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17399 = trunc i8 %17398 to i1
  br i1 %17399, label %17400, label %17422

17400:                                            ; preds = %17393
  %17401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17402 = call i32 @fileno(ptr noundef %17401) #11
  %17403 = call i32 @isatty(i32 noundef %17402) #11
  %17404 = icmp ne i32 %17403, 0
  br i1 %17404, label %17405, label %17422

17405:                                            ; preds = %17400
  %17406 = load i32, ptr %403, align 4, !tbaa !5
  %17407 = call ptr @__errno_location() #12
  store i32 %17406, ptr %17407, align 4, !tbaa !5
  %17408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17409 = load i32, ptr @test_count, align 4, !tbaa !5
  %17410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17411 = load i32, ptr %17410, align 4, !tbaa !5
  %17412 = call ptr @s2n_strerror(i32 noundef %17411, ptr noundef @.str.4)
  %17413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17414 = load i32, ptr %17413, align 4, !tbaa !5
  %17415 = call ptr @s2n_strerror_debug(i32 noundef %17414, ptr noundef @.str.4)
  %17416 = call ptr @__errno_location() #12
  %17417 = load i32, ptr %17416, align 4, !tbaa !5
  %17418 = call ptr @strerror(i32 noundef %17417) #11
  %17419 = call ptr @__errno_location() #12
  %17420 = load i32, ptr %17419, align 4, !tbaa !5
  %17421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17408, ptr noundef @.str.2, i32 noundef %17409, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 829, ptr noundef %17412, ptr noundef %17415, ptr noundef %17418, i32 noundef %17420) #11
  br label %17439

17422:                                            ; preds = %17400, %17393
  %17423 = load i32, ptr %403, align 4, !tbaa !5
  %17424 = call ptr @__errno_location() #12
  store i32 %17423, ptr %17424, align 4, !tbaa !5
  %17425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17426 = load i32, ptr @test_count, align 4, !tbaa !5
  %17427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17428 = load i32, ptr %17427, align 4, !tbaa !5
  %17429 = call ptr @s2n_strerror(i32 noundef %17428, ptr noundef @.str.4)
  %17430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17431 = load i32, ptr %17430, align 4, !tbaa !5
  %17432 = call ptr @s2n_strerror_debug(i32 noundef %17431, ptr noundef @.str.4)
  %17433 = call ptr @__errno_location() #12
  %17434 = load i32, ptr %17433, align 4, !tbaa !5
  %17435 = call ptr @strerror(i32 noundef %17434) #11
  %17436 = call ptr @__errno_location() #12
  %17437 = load i32, ptr %17436, align 4, !tbaa !5
  %17438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17425, ptr noundef @.str.5, i32 noundef %17426, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 829, ptr noundef %17429, ptr noundef %17432, ptr noundef %17435, i32 noundef %17437) #11
  br label %17439

17439:                                            ; preds = %17422, %17405
  call void @llvm.lifetime.end.p0(i64 4, ptr %403) #11
  br label %17440

17440:                                            ; preds = %17439
  br label %17441

17441:                                            ; preds = %17440
  call void @exit(i32 noundef 1) #13
  unreachable

17442:                                            ; No predecessors!
  br label %17443

17443:                                            ; preds = %17442
  br label %17444

17444:                                            ; preds = %17443, %17385
  br label %17445

17445:                                            ; preds = %17444
  br label %17446

17446:                                            ; preds = %17445
  br label %17447

17447:                                            ; preds = %17446
  %17448 = load i32, ptr @test_count, align 4, !tbaa !5
  %17449 = add nsw i32 %17448, 1
  store i32 %17449, ptr @test_count, align 4, !tbaa !5
  %17450 = load ptr, ptr %402, align 8, !tbaa !9
  %17451 = icmp eq ptr %17450, null
  br i1 %17451, label %17452, label %17505

17452:                                            ; preds = %17447
  br label %17453

17453:                                            ; preds = %17452
  br label %17454

17454:                                            ; preds = %17453
  call void @llvm.lifetime.start.p0(i64 4, ptr %404) #11
  %17455 = call ptr @__errno_location() #12
  %17456 = load i32, ptr %17455, align 4, !tbaa !5
  store i32 %17456, ptr %404, align 4, !tbaa !5
  %17457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17458 = call i32 @s2n_print_stacktrace(ptr noundef %17457)
  %17459 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17460 = trunc i8 %17459 to i1
  br i1 %17460, label %17461, label %17483

17461:                                            ; preds = %17454
  %17462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17463 = call i32 @fileno(ptr noundef %17462) #11
  %17464 = call i32 @isatty(i32 noundef %17463) #11
  %17465 = icmp ne i32 %17464, 0
  br i1 %17465, label %17466, label %17483

17466:                                            ; preds = %17461
  %17467 = load i32, ptr %404, align 4, !tbaa !5
  %17468 = call ptr @__errno_location() #12
  store i32 %17467, ptr %17468, align 4, !tbaa !5
  %17469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17470 = load i32, ptr @test_count, align 4, !tbaa !5
  %17471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17472 = load i32, ptr %17471, align 4, !tbaa !5
  %17473 = call ptr @s2n_strerror(i32 noundef %17472, ptr noundef @.str.4)
  %17474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17475 = load i32, ptr %17474, align 4, !tbaa !5
  %17476 = call ptr @s2n_strerror_debug(i32 noundef %17475, ptr noundef @.str.4)
  %17477 = call ptr @__errno_location() #12
  %17478 = load i32, ptr %17477, align 4, !tbaa !5
  %17479 = call ptr @strerror(i32 noundef %17478) #11
  %17480 = call ptr @__errno_location() #12
  %17481 = load i32, ptr %17480, align 4, !tbaa !5
  %17482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17469, ptr noundef @.str.2, i32 noundef %17470, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 830, ptr noundef %17473, ptr noundef %17476, ptr noundef %17479, i32 noundef %17481) #11
  br label %17500

17483:                                            ; preds = %17461, %17454
  %17484 = load i32, ptr %404, align 4, !tbaa !5
  %17485 = call ptr @__errno_location() #12
  store i32 %17484, ptr %17485, align 4, !tbaa !5
  %17486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17487 = load i32, ptr @test_count, align 4, !tbaa !5
  %17488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17489 = load i32, ptr %17488, align 4, !tbaa !5
  %17490 = call ptr @s2n_strerror(i32 noundef %17489, ptr noundef @.str.4)
  %17491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17492 = load i32, ptr %17491, align 4, !tbaa !5
  %17493 = call ptr @s2n_strerror_debug(i32 noundef %17492, ptr noundef @.str.4)
  %17494 = call ptr @__errno_location() #12
  %17495 = load i32, ptr %17494, align 4, !tbaa !5
  %17496 = call ptr @strerror(i32 noundef %17495) #11
  %17497 = call ptr @__errno_location() #12
  %17498 = load i32, ptr %17497, align 4, !tbaa !5
  %17499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17486, ptr noundef @.str.5, i32 noundef %17487, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 830, ptr noundef %17490, ptr noundef %17493, ptr noundef %17496, i32 noundef %17498) #11
  br label %17500

17500:                                            ; preds = %17483, %17466
  call void @llvm.lifetime.end.p0(i64 4, ptr %404) #11
  br label %17501

17501:                                            ; preds = %17500
  br label %17502

17502:                                            ; preds = %17501
  call void @exit(i32 noundef 1) #13
  unreachable

17503:                                            ; No predecessors!
  br label %17504

17504:                                            ; preds = %17503
  br label %17505

17505:                                            ; preds = %17504, %17447
  br label %17506

17506:                                            ; preds = %17505
  br label %17507

17507:                                            ; preds = %17506
  br label %17508

17508:                                            ; preds = %17507
  %17509 = load i32, ptr @test_count, align 4, !tbaa !5
  %17510 = add nsw i32 %17509, 1
  store i32 %17510, ptr @test_count, align 4, !tbaa !5
  %17511 = load ptr, ptr %402, align 8, !tbaa !9
  %17512 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %17511, ptr noundef %10)
  %17513 = getelementptr inbounds %struct.s2n_result, ptr %405, i32 0, i32 0
  store i32 %17512, ptr %17513, align 4
  %17514 = getelementptr inbounds %struct.s2n_result, ptr %405, i32 0, i32 0
  %17515 = load i32, ptr %17514, align 4
  %17516 = call zeroext i1 @s2n_result_is_ok(i32 %17515)
  br i1 %17516, label %17570, label %17517

17517:                                            ; preds = %17508
  br label %17518

17518:                                            ; preds = %17517
  br label %17519

17519:                                            ; preds = %17518
  call void @llvm.lifetime.start.p0(i64 4, ptr %406) #11
  %17520 = call ptr @__errno_location() #12
  %17521 = load i32, ptr %17520, align 4, !tbaa !5
  store i32 %17521, ptr %406, align 4, !tbaa !5
  %17522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17523 = call i32 @s2n_print_stacktrace(ptr noundef %17522)
  %17524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17525 = trunc i8 %17524 to i1
  br i1 %17525, label %17526, label %17548

17526:                                            ; preds = %17519
  %17527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17528 = call i32 @fileno(ptr noundef %17527) #11
  %17529 = call i32 @isatty(i32 noundef %17528) #11
  %17530 = icmp ne i32 %17529, 0
  br i1 %17530, label %17531, label %17548

17531:                                            ; preds = %17526
  %17532 = load i32, ptr %406, align 4, !tbaa !5
  %17533 = call ptr @__errno_location() #12
  store i32 %17532, ptr %17533, align 4, !tbaa !5
  %17534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17535 = load i32, ptr @test_count, align 4, !tbaa !5
  %17536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17537 = load i32, ptr %17536, align 4, !tbaa !5
  %17538 = call ptr @s2n_strerror(i32 noundef %17537, ptr noundef @.str.4)
  %17539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17540 = load i32, ptr %17539, align 4, !tbaa !5
  %17541 = call ptr @s2n_strerror_debug(i32 noundef %17540, ptr noundef @.str.4)
  %17542 = call ptr @__errno_location() #12
  %17543 = load i32, ptr %17542, align 4, !tbaa !5
  %17544 = call ptr @strerror(i32 noundef %17543) #11
  %17545 = call ptr @__errno_location() #12
  %17546 = load i32, ptr %17545, align 4, !tbaa !5
  %17547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17534, ptr noundef @.str.2, i32 noundef %17535, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 831, ptr noundef %17538, ptr noundef %17541, ptr noundef %17544, i32 noundef %17546) #11
  br label %17565

17548:                                            ; preds = %17526, %17519
  %17549 = load i32, ptr %406, align 4, !tbaa !5
  %17550 = call ptr @__errno_location() #12
  store i32 %17549, ptr %17550, align 4, !tbaa !5
  %17551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17552 = load i32, ptr @test_count, align 4, !tbaa !5
  %17553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17554 = load i32, ptr %17553, align 4, !tbaa !5
  %17555 = call ptr @s2n_strerror(i32 noundef %17554, ptr noundef @.str.4)
  %17556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17557 = load i32, ptr %17556, align 4, !tbaa !5
  %17558 = call ptr @s2n_strerror_debug(i32 noundef %17557, ptr noundef @.str.4)
  %17559 = call ptr @__errno_location() #12
  %17560 = load i32, ptr %17559, align 4, !tbaa !5
  %17561 = call ptr @strerror(i32 noundef %17560) #11
  %17562 = call ptr @__errno_location() #12
  %17563 = load i32, ptr %17562, align 4, !tbaa !5
  %17564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17551, ptr noundef @.str.5, i32 noundef %17552, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 831, ptr noundef %17555, ptr noundef %17558, ptr noundef %17561, i32 noundef %17563) #11
  br label %17565

17565:                                            ; preds = %17548, %17531
  call void @llvm.lifetime.end.p0(i64 4, ptr %406) #11
  br label %17566

17566:                                            ; preds = %17565
  br label %17567

17567:                                            ; preds = %17566
  call void @exit(i32 noundef 1) #13
  unreachable

17568:                                            ; No predecessors!
  br label %17569

17569:                                            ; preds = %17568
  br label %17570

17570:                                            ; preds = %17569, %17508
  br label %17571

17571:                                            ; preds = %17570
  br label %17572

17572:                                            ; preds = %17571
  br label %17573

17573:                                            ; preds = %17572
  %17574 = load i32, ptr @test_count, align 4, !tbaa !5
  %17575 = add nsw i32 %17574, 1
  store i32 %17575, ptr @test_count, align 4, !tbaa !5
  %17576 = load i32, ptr %10, align 4, !tbaa !5
  %17577 = icmp uge i32 %17576, 2
  br i1 %17577, label %17631, label %17578

17578:                                            ; preds = %17573
  br label %17579

17579:                                            ; preds = %17578
  br label %17580

17580:                                            ; preds = %17579
  call void @llvm.lifetime.start.p0(i64 4, ptr %407) #11
  %17581 = call ptr @__errno_location() #12
  %17582 = load i32, ptr %17581, align 4, !tbaa !5
  store i32 %17582, ptr %407, align 4, !tbaa !5
  %17583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17584 = call i32 @s2n_print_stacktrace(ptr noundef %17583)
  %17585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17586 = trunc i8 %17585 to i1
  br i1 %17586, label %17587, label %17609

17587:                                            ; preds = %17580
  %17588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17589 = call i32 @fileno(ptr noundef %17588) #11
  %17590 = call i32 @isatty(i32 noundef %17589) #11
  %17591 = icmp ne i32 %17590, 0
  br i1 %17591, label %17592, label %17609

17592:                                            ; preds = %17587
  %17593 = load i32, ptr %407, align 4, !tbaa !5
  %17594 = call ptr @__errno_location() #12
  store i32 %17593, ptr %17594, align 4, !tbaa !5
  %17595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17596 = load i32, ptr @test_count, align 4, !tbaa !5
  %17597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17598 = load i32, ptr %17597, align 4, !tbaa !5
  %17599 = call ptr @s2n_strerror(i32 noundef %17598, ptr noundef @.str.4)
  %17600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17601 = load i32, ptr %17600, align 4, !tbaa !5
  %17602 = call ptr @s2n_strerror_debug(i32 noundef %17601, ptr noundef @.str.4)
  %17603 = call ptr @__errno_location() #12
  %17604 = load i32, ptr %17603, align 4, !tbaa !5
  %17605 = call ptr @strerror(i32 noundef %17604) #11
  %17606 = call ptr @__errno_location() #12
  %17607 = load i32, ptr %17606, align 4, !tbaa !5
  %17608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17595, ptr noundef @.str.2, i32 noundef %17596, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 832, ptr noundef %17599, ptr noundef %17602, ptr noundef %17605, i32 noundef %17607) #11
  br label %17626

17609:                                            ; preds = %17587, %17580
  %17610 = load i32, ptr %407, align 4, !tbaa !5
  %17611 = call ptr @__errno_location() #12
  store i32 %17610, ptr %17611, align 4, !tbaa !5
  %17612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17613 = load i32, ptr @test_count, align 4, !tbaa !5
  %17614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17615 = load i32, ptr %17614, align 4, !tbaa !5
  %17616 = call ptr @s2n_strerror(i32 noundef %17615, ptr noundef @.str.4)
  %17617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17618 = load i32, ptr %17617, align 4, !tbaa !5
  %17619 = call ptr @s2n_strerror_debug(i32 noundef %17618, ptr noundef @.str.4)
  %17620 = call ptr @__errno_location() #12
  %17621 = load i32, ptr %17620, align 4, !tbaa !5
  %17622 = call ptr @strerror(i32 noundef %17621) #11
  %17623 = call ptr @__errno_location() #12
  %17624 = load i32, ptr %17623, align 4, !tbaa !5
  %17625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17612, ptr noundef @.str.5, i32 noundef %17613, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 832, ptr noundef %17616, ptr noundef %17619, ptr noundef %17622, i32 noundef %17624) #11
  br label %17626

17626:                                            ; preds = %17609, %17592
  call void @llvm.lifetime.end.p0(i64 4, ptr %407) #11
  br label %17627

17627:                                            ; preds = %17626
  br label %17628

17628:                                            ; preds = %17627
  call void @exit(i32 noundef 1) #13
  unreachable

17629:                                            ; No predecessors!
  br label %17630

17630:                                            ; preds = %17629
  br label %17631

17631:                                            ; preds = %17630, %17573
  br label %17632

17632:                                            ; preds = %17631
  br label %17633

17633:                                            ; preds = %17632
  call void @llvm.lifetime.start.p0(i64 8, ptr %408) #11
  store ptr null, ptr %408, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %409) #11
  store ptr null, ptr %409, align 8, !tbaa !9
  br label %17634

17634:                                            ; preds = %17633
  %17635 = load i32, ptr @test_count, align 4, !tbaa !5
  %17636 = add nsw i32 %17635, 1
  store i32 %17636, ptr @test_count, align 4, !tbaa !5
  %17637 = load ptr, ptr %402, align 8, !tbaa !9
  %17638 = call i32 @s2n_get_two_highest_piority_kem_groups(ptr noundef %17637, ptr noundef %408, ptr noundef %409)
  %17639 = icmp eq i32 %17638, -1
  br i1 %17639, label %17640, label %17693

17640:                                            ; preds = %17634
  br label %17641

17641:                                            ; preds = %17640
  br label %17642

17642:                                            ; preds = %17641
  call void @llvm.lifetime.start.p0(i64 4, ptr %410) #11
  %17643 = call ptr @__errno_location() #12
  %17644 = load i32, ptr %17643, align 4, !tbaa !5
  store i32 %17644, ptr %410, align 4, !tbaa !5
  %17645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17646 = call i32 @s2n_print_stacktrace(ptr noundef %17645)
  %17647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17648 = trunc i8 %17647 to i1
  br i1 %17648, label %17649, label %17671

17649:                                            ; preds = %17642
  %17650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17651 = call i32 @fileno(ptr noundef %17650) #11
  %17652 = call i32 @isatty(i32 noundef %17651) #11
  %17653 = icmp ne i32 %17652, 0
  br i1 %17653, label %17654, label %17671

17654:                                            ; preds = %17649
  %17655 = load i32, ptr %410, align 4, !tbaa !5
  %17656 = call ptr @__errno_location() #12
  store i32 %17655, ptr %17656, align 4, !tbaa !5
  %17657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17658 = load i32, ptr @test_count, align 4, !tbaa !5
  %17659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17660 = load i32, ptr %17659, align 4, !tbaa !5
  %17661 = call ptr @s2n_strerror(i32 noundef %17660, ptr noundef @.str.4)
  %17662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17663 = load i32, ptr %17662, align 4, !tbaa !5
  %17664 = call ptr @s2n_strerror_debug(i32 noundef %17663, ptr noundef @.str.4)
  %17665 = call ptr @__errno_location() #12
  %17666 = load i32, ptr %17665, align 4, !tbaa !5
  %17667 = call ptr @strerror(i32 noundef %17666) #11
  %17668 = call ptr @__errno_location() #12
  %17669 = load i32, ptr %17668, align 4, !tbaa !5
  %17670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17657, ptr noundef @.str.2, i32 noundef %17658, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 837, ptr noundef %17661, ptr noundef %17664, ptr noundef %17667, i32 noundef %17669) #11
  br label %17688

17671:                                            ; preds = %17649, %17642
  %17672 = load i32, ptr %410, align 4, !tbaa !5
  %17673 = call ptr @__errno_location() #12
  store i32 %17672, ptr %17673, align 4, !tbaa !5
  %17674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17675 = load i32, ptr @test_count, align 4, !tbaa !5
  %17676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17677 = load i32, ptr %17676, align 4, !tbaa !5
  %17678 = call ptr @s2n_strerror(i32 noundef %17677, ptr noundef @.str.4)
  %17679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17680 = load i32, ptr %17679, align 4, !tbaa !5
  %17681 = call ptr @s2n_strerror_debug(i32 noundef %17680, ptr noundef @.str.4)
  %17682 = call ptr @__errno_location() #12
  %17683 = load i32, ptr %17682, align 4, !tbaa !5
  %17684 = call ptr @strerror(i32 noundef %17683) #11
  %17685 = call ptr @__errno_location() #12
  %17686 = load i32, ptr %17685, align 4, !tbaa !5
  %17687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17674, ptr noundef @.str.5, i32 noundef %17675, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 837, ptr noundef %17678, ptr noundef %17681, ptr noundef %17684, i32 noundef %17686) #11
  br label %17688

17688:                                            ; preds = %17671, %17654
  call void @llvm.lifetime.end.p0(i64 4, ptr %410) #11
  br label %17689

17689:                                            ; preds = %17688
  br label %17690

17690:                                            ; preds = %17689
  call void @exit(i32 noundef 1) #13
  unreachable

17691:                                            ; No predecessors!
  br label %17692

17692:                                            ; preds = %17691
  br label %17693

17693:                                            ; preds = %17692, %17634
  br label %17694

17694:                                            ; preds = %17693
  br label %17695

17695:                                            ; preds = %17694
  br label %17696

17696:                                            ; preds = %17695
  %17697 = load i32, ptr @test_count, align 4, !tbaa !5
  %17698 = add nsw i32 %17697, 1
  store i32 %17698, ptr @test_count, align 4, !tbaa !5
  %17699 = load ptr, ptr %408, align 8, !tbaa !9
  %17700 = icmp eq ptr %17699, null
  br i1 %17700, label %17701, label %17754

17701:                                            ; preds = %17696
  br label %17702

17702:                                            ; preds = %17701
  br label %17703

17703:                                            ; preds = %17702
  call void @llvm.lifetime.start.p0(i64 4, ptr %411) #11
  %17704 = call ptr @__errno_location() #12
  %17705 = load i32, ptr %17704, align 4, !tbaa !5
  store i32 %17705, ptr %411, align 4, !tbaa !5
  %17706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17707 = call i32 @s2n_print_stacktrace(ptr noundef %17706)
  %17708 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17709 = trunc i8 %17708 to i1
  br i1 %17709, label %17710, label %17732

17710:                                            ; preds = %17703
  %17711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17712 = call i32 @fileno(ptr noundef %17711) #11
  %17713 = call i32 @isatty(i32 noundef %17712) #11
  %17714 = icmp ne i32 %17713, 0
  br i1 %17714, label %17715, label %17732

17715:                                            ; preds = %17710
  %17716 = load i32, ptr %411, align 4, !tbaa !5
  %17717 = call ptr @__errno_location() #12
  store i32 %17716, ptr %17717, align 4, !tbaa !5
  %17718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17719 = load i32, ptr @test_count, align 4, !tbaa !5
  %17720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17721 = load i32, ptr %17720, align 4, !tbaa !5
  %17722 = call ptr @s2n_strerror(i32 noundef %17721, ptr noundef @.str.4)
  %17723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17724 = load i32, ptr %17723, align 4, !tbaa !5
  %17725 = call ptr @s2n_strerror_debug(i32 noundef %17724, ptr noundef @.str.4)
  %17726 = call ptr @__errno_location() #12
  %17727 = load i32, ptr %17726, align 4, !tbaa !5
  %17728 = call ptr @strerror(i32 noundef %17727) #11
  %17729 = call ptr @__errno_location() #12
  %17730 = load i32, ptr %17729, align 4, !tbaa !5
  %17731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17718, ptr noundef @.str.2, i32 noundef %17719, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 838, ptr noundef %17722, ptr noundef %17725, ptr noundef %17728, i32 noundef %17730) #11
  br label %17749

17732:                                            ; preds = %17710, %17703
  %17733 = load i32, ptr %411, align 4, !tbaa !5
  %17734 = call ptr @__errno_location() #12
  store i32 %17733, ptr %17734, align 4, !tbaa !5
  %17735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17736 = load i32, ptr @test_count, align 4, !tbaa !5
  %17737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17738 = load i32, ptr %17737, align 4, !tbaa !5
  %17739 = call ptr @s2n_strerror(i32 noundef %17738, ptr noundef @.str.4)
  %17740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17741 = load i32, ptr %17740, align 4, !tbaa !5
  %17742 = call ptr @s2n_strerror_debug(i32 noundef %17741, ptr noundef @.str.4)
  %17743 = call ptr @__errno_location() #12
  %17744 = load i32, ptr %17743, align 4, !tbaa !5
  %17745 = call ptr @strerror(i32 noundef %17744) #11
  %17746 = call ptr @__errno_location() #12
  %17747 = load i32, ptr %17746, align 4, !tbaa !5
  %17748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17735, ptr noundef @.str.5, i32 noundef %17736, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 838, ptr noundef %17739, ptr noundef %17742, ptr noundef %17745, i32 noundef %17747) #11
  br label %17749

17749:                                            ; preds = %17732, %17715
  call void @llvm.lifetime.end.p0(i64 4, ptr %411) #11
  br label %17750

17750:                                            ; preds = %17749
  br label %17751

17751:                                            ; preds = %17750
  call void @exit(i32 noundef 1) #13
  unreachable

17752:                                            ; No predecessors!
  br label %17753

17753:                                            ; preds = %17752
  br label %17754

17754:                                            ; preds = %17753, %17696
  br label %17755

17755:                                            ; preds = %17754
  br label %17756

17756:                                            ; preds = %17755
  br label %17757

17757:                                            ; preds = %17756
  %17758 = load i32, ptr @test_count, align 4, !tbaa !5
  %17759 = add nsw i32 %17758, 1
  store i32 %17759, ptr @test_count, align 4, !tbaa !5
  %17760 = load ptr, ptr %409, align 8, !tbaa !9
  %17761 = icmp eq ptr %17760, null
  br i1 %17761, label %17762, label %17815

17762:                                            ; preds = %17757
  br label %17763

17763:                                            ; preds = %17762
  br label %17764

17764:                                            ; preds = %17763
  call void @llvm.lifetime.start.p0(i64 4, ptr %412) #11
  %17765 = call ptr @__errno_location() #12
  %17766 = load i32, ptr %17765, align 4, !tbaa !5
  store i32 %17766, ptr %412, align 4, !tbaa !5
  %17767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17768 = call i32 @s2n_print_stacktrace(ptr noundef %17767)
  %17769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17770 = trunc i8 %17769 to i1
  br i1 %17770, label %17771, label %17793

17771:                                            ; preds = %17764
  %17772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17773 = call i32 @fileno(ptr noundef %17772) #11
  %17774 = call i32 @isatty(i32 noundef %17773) #11
  %17775 = icmp ne i32 %17774, 0
  br i1 %17775, label %17776, label %17793

17776:                                            ; preds = %17771
  %17777 = load i32, ptr %412, align 4, !tbaa !5
  %17778 = call ptr @__errno_location() #12
  store i32 %17777, ptr %17778, align 4, !tbaa !5
  %17779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17780 = load i32, ptr @test_count, align 4, !tbaa !5
  %17781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17782 = load i32, ptr %17781, align 4, !tbaa !5
  %17783 = call ptr @s2n_strerror(i32 noundef %17782, ptr noundef @.str.4)
  %17784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17785 = load i32, ptr %17784, align 4, !tbaa !5
  %17786 = call ptr @s2n_strerror_debug(i32 noundef %17785, ptr noundef @.str.4)
  %17787 = call ptr @__errno_location() #12
  %17788 = load i32, ptr %17787, align 4, !tbaa !5
  %17789 = call ptr @strerror(i32 noundef %17788) #11
  %17790 = call ptr @__errno_location() #12
  %17791 = load i32, ptr %17790, align 4, !tbaa !5
  %17792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17779, ptr noundef @.str.2, i32 noundef %17780, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 839, ptr noundef %17783, ptr noundef %17786, ptr noundef %17789, i32 noundef %17791) #11
  br label %17810

17793:                                            ; preds = %17771, %17764
  %17794 = load i32, ptr %412, align 4, !tbaa !5
  %17795 = call ptr @__errno_location() #12
  store i32 %17794, ptr %17795, align 4, !tbaa !5
  %17796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17797 = load i32, ptr @test_count, align 4, !tbaa !5
  %17798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17799 = load i32, ptr %17798, align 4, !tbaa !5
  %17800 = call ptr @s2n_strerror(i32 noundef %17799, ptr noundef @.str.4)
  %17801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17802 = load i32, ptr %17801, align 4, !tbaa !5
  %17803 = call ptr @s2n_strerror_debug(i32 noundef %17802, ptr noundef @.str.4)
  %17804 = call ptr @__errno_location() #12
  %17805 = load i32, ptr %17804, align 4, !tbaa !5
  %17806 = call ptr @strerror(i32 noundef %17805) #11
  %17807 = call ptr @__errno_location() #12
  %17808 = load i32, ptr %17807, align 4, !tbaa !5
  %17809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17796, ptr noundef @.str.5, i32 noundef %17797, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 839, ptr noundef %17800, ptr noundef %17803, ptr noundef %17806, i32 noundef %17808) #11
  br label %17810

17810:                                            ; preds = %17793, %17776
  call void @llvm.lifetime.end.p0(i64 4, ptr %412) #11
  br label %17811

17811:                                            ; preds = %17810
  br label %17812

17812:                                            ; preds = %17811
  call void @exit(i32 noundef 1) #13
  unreachable

17813:                                            ; No predecessors!
  br label %17814

17814:                                            ; preds = %17813
  br label %17815

17815:                                            ; preds = %17814, %17757
  br label %17816

17816:                                            ; preds = %17815
  br label %17817

17817:                                            ; preds = %17816
  call void @llvm.lifetime.start.p0(i64 224, ptr %413) #11
  call void @llvm.memset.p0.i64(ptr align 16 %413, i8 0, i64 224, i1 false)
  %17818 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %413, i32 0, i32 0
  %17819 = load ptr, ptr %408, align 8, !tbaa !9
  store ptr %17819, ptr %17818, align 16, !tbaa !68
  %17820 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %413, i32 0, i32 1
  %17821 = getelementptr inbounds %struct.s2n_kem_params, ptr %17820, i32 0, i32 0
  %17822 = getelementptr inbounds %struct.s2n_kem_params, ptr %17820, i32 0, i32 1
  %17823 = getelementptr inbounds %struct.s2n_kem_params, ptr %17820, i32 0, i32 2
  %17824 = getelementptr inbounds %struct.s2n_kem_params, ptr %17820, i32 0, i32 3
  %17825 = getelementptr inbounds %struct.s2n_kem_params, ptr %17820, i32 0, i32 4
  %17826 = load i32, ptr %5, align 4, !tbaa !5
  %17827 = icmp ne i32 %17826, 0
  %17828 = zext i1 %17827 to i8
  store i8 %17828, ptr %17825, align 8, !tbaa !105
  %17829 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %413, i32 0, i32 2
  %17830 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %413, i64 1
  %17831 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %17830, i32 0, i32 0
  %17832 = load ptr, ptr %409, align 8, !tbaa !9
  store ptr %17832, ptr %17831, align 16, !tbaa !68
  %17833 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %17830, i32 0, i32 1
  %17834 = getelementptr inbounds %struct.s2n_kem_params, ptr %17833, i32 0, i32 0
  %17835 = getelementptr inbounds %struct.s2n_kem_params, ptr %17833, i32 0, i32 1
  %17836 = getelementptr inbounds %struct.s2n_kem_params, ptr %17833, i32 0, i32 2
  %17837 = getelementptr inbounds %struct.s2n_kem_params, ptr %17833, i32 0, i32 3
  %17838 = getelementptr inbounds %struct.s2n_kem_params, ptr %17833, i32 0, i32 4
  %17839 = load i32, ptr %5, align 4, !tbaa !5
  %17840 = icmp ne i32 %17839, 0
  %17841 = zext i1 %17840 to i8
  store i8 %17841, ptr %17838, align 8, !tbaa !105
  %17842 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %17830, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 16, ptr %414) #11
  call void @llvm.memset.p0.i64(ptr align 8 %414, i8 0, i64 16, i1 false)
  br label %17843

17843:                                            ; preds = %17817
  %17844 = load i32, ptr @test_count, align 4, !tbaa !5
  %17845 = add nsw i32 %17844, 1
  store i32 %17845, ptr @test_count, align 4, !tbaa !5
  %17846 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %400, ptr noundef %414)
  %17847 = icmp eq i32 %17846, -1
  br i1 %17847, label %17848, label %17901

17848:                                            ; preds = %17843
  br label %17849

17849:                                            ; preds = %17848
  br label %17850

17850:                                            ; preds = %17849
  call void @llvm.lifetime.start.p0(i64 4, ptr %415) #11
  %17851 = call ptr @__errno_location() #12
  %17852 = load i32, ptr %17851, align 4, !tbaa !5
  store i32 %17852, ptr %415, align 4, !tbaa !5
  %17853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17854 = call i32 @s2n_print_stacktrace(ptr noundef %17853)
  %17855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17856 = trunc i8 %17855 to i1
  br i1 %17856, label %17857, label %17879

17857:                                            ; preds = %17850
  %17858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17859 = call i32 @fileno(ptr noundef %17858) #11
  %17860 = call i32 @isatty(i32 noundef %17859) #11
  %17861 = icmp ne i32 %17860, 0
  br i1 %17861, label %17862, label %17879

17862:                                            ; preds = %17857
  %17863 = load i32, ptr %415, align 4, !tbaa !5
  %17864 = call ptr @__errno_location() #12
  store i32 %17863, ptr %17864, align 4, !tbaa !5
  %17865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17866 = load i32, ptr @test_count, align 4, !tbaa !5
  %17867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17868 = load i32, ptr %17867, align 4, !tbaa !5
  %17869 = call ptr @s2n_strerror(i32 noundef %17868, ptr noundef @.str.4)
  %17870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17871 = load i32, ptr %17870, align 4, !tbaa !5
  %17872 = call ptr @s2n_strerror_debug(i32 noundef %17871, ptr noundef @.str.4)
  %17873 = call ptr @__errno_location() #12
  %17874 = load i32, ptr %17873, align 4, !tbaa !5
  %17875 = call ptr @strerror(i32 noundef %17874) #11
  %17876 = call ptr @__errno_location() #12
  %17877 = load i32, ptr %17876, align 4, !tbaa !5
  %17878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17865, ptr noundef @.str.2, i32 noundef %17866, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 848, ptr noundef %17869, ptr noundef %17872, ptr noundef %17875, i32 noundef %17877) #11
  br label %17896

17879:                                            ; preds = %17857, %17850
  %17880 = load i32, ptr %415, align 4, !tbaa !5
  %17881 = call ptr @__errno_location() #12
  store i32 %17880, ptr %17881, align 4, !tbaa !5
  %17882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17883 = load i32, ptr @test_count, align 4, !tbaa !5
  %17884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17885 = load i32, ptr %17884, align 4, !tbaa !5
  %17886 = call ptr @s2n_strerror(i32 noundef %17885, ptr noundef @.str.4)
  %17887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17888 = load i32, ptr %17887, align 4, !tbaa !5
  %17889 = call ptr @s2n_strerror_debug(i32 noundef %17888, ptr noundef @.str.4)
  %17890 = call ptr @__errno_location() #12
  %17891 = load i32, ptr %17890, align 4, !tbaa !5
  %17892 = call ptr @strerror(i32 noundef %17891) #11
  %17893 = call ptr @__errno_location() #12
  %17894 = load i32, ptr %17893, align 4, !tbaa !5
  %17895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17882, ptr noundef @.str.5, i32 noundef %17883, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 848, ptr noundef %17886, ptr noundef %17889, ptr noundef %17892, i32 noundef %17894) #11
  br label %17896

17896:                                            ; preds = %17879, %17862
  call void @llvm.lifetime.end.p0(i64 4, ptr %415) #11
  br label %17897

17897:                                            ; preds = %17896
  br label %17898

17898:                                            ; preds = %17897
  call void @exit(i32 noundef 1) #13
  unreachable

17899:                                            ; No predecessors!
  br label %17900

17900:                                            ; preds = %17899
  br label %17901

17901:                                            ; preds = %17900, %17843
  br label %17902

17902:                                            ; preds = %17901
  br label %17903

17903:                                            ; preds = %17902
  br label %17904

17904:                                            ; preds = %17903
  %17905 = load i32, ptr @test_count, align 4, !tbaa !5
  %17906 = add nsw i32 %17905, 1
  store i32 %17906, ptr @test_count, align 4, !tbaa !5
  %17907 = getelementptr inbounds [2 x %struct.s2n_kem_group_params], ptr %413, i64 0, i64 0
  %17908 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef %400, ptr noundef %17907)
  %17909 = icmp eq i32 %17908, -1
  br i1 %17909, label %17910, label %17963

17910:                                            ; preds = %17904
  br label %17911

17911:                                            ; preds = %17910
  br label %17912

17912:                                            ; preds = %17911
  call void @llvm.lifetime.start.p0(i64 4, ptr %416) #11
  %17913 = call ptr @__errno_location() #12
  %17914 = load i32, ptr %17913, align 4, !tbaa !5
  store i32 %17914, ptr %416, align 4, !tbaa !5
  %17915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17916 = call i32 @s2n_print_stacktrace(ptr noundef %17915)
  %17917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %17918 = trunc i8 %17917 to i1
  br i1 %17918, label %17919, label %17941

17919:                                            ; preds = %17912
  %17920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17921 = call i32 @fileno(ptr noundef %17920) #11
  %17922 = call i32 @isatty(i32 noundef %17921) #11
  %17923 = icmp ne i32 %17922, 0
  br i1 %17923, label %17924, label %17941

17924:                                            ; preds = %17919
  %17925 = load i32, ptr %416, align 4, !tbaa !5
  %17926 = call ptr @__errno_location() #12
  store i32 %17925, ptr %17926, align 4, !tbaa !5
  %17927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17928 = load i32, ptr @test_count, align 4, !tbaa !5
  %17929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17930 = load i32, ptr %17929, align 4, !tbaa !5
  %17931 = call ptr @s2n_strerror(i32 noundef %17930, ptr noundef @.str.4)
  %17932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17933 = load i32, ptr %17932, align 4, !tbaa !5
  %17934 = call ptr @s2n_strerror_debug(i32 noundef %17933, ptr noundef @.str.4)
  %17935 = call ptr @__errno_location() #12
  %17936 = load i32, ptr %17935, align 4, !tbaa !5
  %17937 = call ptr @strerror(i32 noundef %17936) #11
  %17938 = call ptr @__errno_location() #12
  %17939 = load i32, ptr %17938, align 4, !tbaa !5
  %17940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17927, ptr noundef @.str.2, i32 noundef %17928, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 850, ptr noundef %17931, ptr noundef %17934, ptr noundef %17937, i32 noundef %17939) #11
  br label %17958

17941:                                            ; preds = %17919, %17912
  %17942 = load i32, ptr %416, align 4, !tbaa !5
  %17943 = call ptr @__errno_location() #12
  store i32 %17942, ptr %17943, align 4, !tbaa !5
  %17944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17945 = load i32, ptr @test_count, align 4, !tbaa !5
  %17946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17947 = load i32, ptr %17946, align 4, !tbaa !5
  %17948 = call ptr @s2n_strerror(i32 noundef %17947, ptr noundef @.str.4)
  %17949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %17950 = load i32, ptr %17949, align 4, !tbaa !5
  %17951 = call ptr @s2n_strerror_debug(i32 noundef %17950, ptr noundef @.str.4)
  %17952 = call ptr @__errno_location() #12
  %17953 = load i32, ptr %17952, align 4, !tbaa !5
  %17954 = call ptr @strerror(i32 noundef %17953) #11
  %17955 = call ptr @__errno_location() #12
  %17956 = load i32, ptr %17955, align 4, !tbaa !5
  %17957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17944, ptr noundef @.str.5, i32 noundef %17945, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 850, ptr noundef %17948, ptr noundef %17951, ptr noundef %17954, i32 noundef %17956) #11
  br label %17958

17958:                                            ; preds = %17941, %17924
  call void @llvm.lifetime.end.p0(i64 4, ptr %416) #11
  br label %17959

17959:                                            ; preds = %17958
  br label %17960

17960:                                            ; preds = %17959
  call void @exit(i32 noundef 1) #13
  unreachable

17961:                                            ; No predecessors!
  br label %17962

17962:                                            ; preds = %17961
  br label %17963

17963:                                            ; preds = %17962, %17904
  br label %17964

17964:                                            ; preds = %17963
  br label %17965

17965:                                            ; preds = %17964
  call void @llvm.lifetime.start.p0(i64 8, ptr %417) #11
  %17966 = load ptr, ptr %408, align 8, !tbaa !9
  %17967 = getelementptr inbounds %struct.s2n_kem_group, ptr %17966, i32 0, i32 2
  %17968 = load ptr, ptr %17967, align 8, !tbaa !77
  %17969 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %17968, i32 0, i32 3
  %17970 = load i8, ptr %17969, align 8, !tbaa !64
  %17971 = zext i8 %17970 to i32
  %17972 = load ptr, ptr %408, align 8, !tbaa !9
  %17973 = getelementptr inbounds %struct.s2n_kem_group, ptr %17972, i32 0, i32 3
  %17974 = load ptr, ptr %17973, align 8, !tbaa !70
  %17975 = getelementptr inbounds %struct.s2n_kem, ptr %17974, i32 0, i32 3
  %17976 = load i16, ptr %17975, align 2, !tbaa !82
  %17977 = zext i16 %17976 to i32
  %17978 = add nsw i32 %17971, %17977
  %17979 = sext i32 %17978 to i64
  store i64 %17979, ptr %417, align 8, !tbaa !65
  %17980 = load i32, ptr %5, align 4, !tbaa !5
  %17981 = icmp ne i32 %17980, 0
  br i1 %17981, label %17982, label %17985

17982:                                            ; preds = %17965
  %17983 = load i64, ptr %417, align 8, !tbaa !65
  %17984 = add i64 %17983, 4
  store i64 %17984, ptr %417, align 8, !tbaa !65
  br label %17985

17985:                                            ; preds = %17982, %17965
  br label %17986

17986:                                            ; preds = %17985
  %17987 = load i32, ptr @test_count, align 4, !tbaa !5
  %17988 = add nsw i32 %17987, 1
  store i32 %17988, ptr @test_count, align 4, !tbaa !5
  %17989 = load i64, ptr %417, align 8, !tbaa !65
  %17990 = trunc i64 %17989 to i32
  %17991 = call i32 @s2n_stuffer_wipe_n(ptr noundef %400, i32 noundef %17990)
  %17992 = icmp eq i32 %17991, -1
  br i1 %17992, label %17993, label %18046

17993:                                            ; preds = %17986
  br label %17994

17994:                                            ; preds = %17993
  br label %17995

17995:                                            ; preds = %17994
  call void @llvm.lifetime.start.p0(i64 4, ptr %418) #11
  %17996 = call ptr @__errno_location() #12
  %17997 = load i32, ptr %17996, align 4, !tbaa !5
  store i32 %17997, ptr %418, align 4, !tbaa !5
  %17998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17999 = call i32 @s2n_print_stacktrace(ptr noundef %17998)
  %18000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18001 = trunc i8 %18000 to i1
  br i1 %18001, label %18002, label %18024

18002:                                            ; preds = %17995
  %18003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18004 = call i32 @fileno(ptr noundef %18003) #11
  %18005 = call i32 @isatty(i32 noundef %18004) #11
  %18006 = icmp ne i32 %18005, 0
  br i1 %18006, label %18007, label %18024

18007:                                            ; preds = %18002
  %18008 = load i32, ptr %418, align 4, !tbaa !5
  %18009 = call ptr @__errno_location() #12
  store i32 %18008, ptr %18009, align 4, !tbaa !5
  %18010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18011 = load i32, ptr @test_count, align 4, !tbaa !5
  %18012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18013 = load i32, ptr %18012, align 4, !tbaa !5
  %18014 = call ptr @s2n_strerror(i32 noundef %18013, ptr noundef @.str.4)
  %18015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18016 = load i32, ptr %18015, align 4, !tbaa !5
  %18017 = call ptr @s2n_strerror_debug(i32 noundef %18016, ptr noundef @.str.4)
  %18018 = call ptr @__errno_location() #12
  %18019 = load i32, ptr %18018, align 4, !tbaa !5
  %18020 = call ptr @strerror(i32 noundef %18019) #11
  %18021 = call ptr @__errno_location() #12
  %18022 = load i32, ptr %18021, align 4, !tbaa !5
  %18023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18010, ptr noundef @.str.2, i32 noundef %18011, ptr noundef @.str.159, ptr noundef @.str.1, i32 noundef 857, ptr noundef %18014, ptr noundef %18017, ptr noundef %18020, i32 noundef %18022) #11
  br label %18041

18024:                                            ; preds = %18002, %17995
  %18025 = load i32, ptr %418, align 4, !tbaa !5
  %18026 = call ptr @__errno_location() #12
  store i32 %18025, ptr %18026, align 4, !tbaa !5
  %18027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18028 = load i32, ptr @test_count, align 4, !tbaa !5
  %18029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18030 = load i32, ptr %18029, align 4, !tbaa !5
  %18031 = call ptr @s2n_strerror(i32 noundef %18030, ptr noundef @.str.4)
  %18032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18033 = load i32, ptr %18032, align 4, !tbaa !5
  %18034 = call ptr @s2n_strerror_debug(i32 noundef %18033, ptr noundef @.str.4)
  %18035 = call ptr @__errno_location() #12
  %18036 = load i32, ptr %18035, align 4, !tbaa !5
  %18037 = call ptr @strerror(i32 noundef %18036) #11
  %18038 = call ptr @__errno_location() #12
  %18039 = load i32, ptr %18038, align 4, !tbaa !5
  %18040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18027, ptr noundef @.str.5, i32 noundef %18028, ptr noundef @.str.159, ptr noundef @.str.1, i32 noundef 857, ptr noundef %18031, ptr noundef %18034, ptr noundef %18037, i32 noundef %18039) #11
  br label %18041

18041:                                            ; preds = %18024, %18007
  call void @llvm.lifetime.end.p0(i64 4, ptr %418) #11
  br label %18042

18042:                                            ; preds = %18041
  br label %18043

18043:                                            ; preds = %18042
  call void @exit(i32 noundef 1) #13
  unreachable

18044:                                            ; No predecessors!
  br label %18045

18045:                                            ; preds = %18044
  br label %18046

18046:                                            ; preds = %18045, %17986
  br label %18047

18047:                                            ; preds = %18046
  br label %18048

18048:                                            ; preds = %18047
  br label %18049

18049:                                            ; preds = %18048
  %18050 = load i32, ptr @test_count, align 4, !tbaa !5
  %18051 = add nsw i32 %18050, 1
  store i32 %18051, ptr @test_count, align 4, !tbaa !5
  %18052 = load i64, ptr %417, align 8, !tbaa !65
  %18053 = trunc i64 %18052 to i32
  %18054 = call i32 @s2n_stuffer_skip_write(ptr noundef %400, i32 noundef %18053)
  %18055 = icmp eq i32 %18054, -1
  br i1 %18055, label %18056, label %18109

18056:                                            ; preds = %18049
  br label %18057

18057:                                            ; preds = %18056
  br label %18058

18058:                                            ; preds = %18057
  call void @llvm.lifetime.start.p0(i64 4, ptr %419) #11
  %18059 = call ptr @__errno_location() #12
  %18060 = load i32, ptr %18059, align 4, !tbaa !5
  store i32 %18060, ptr %419, align 4, !tbaa !5
  %18061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18062 = call i32 @s2n_print_stacktrace(ptr noundef %18061)
  %18063 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18064 = trunc i8 %18063 to i1
  br i1 %18064, label %18065, label %18087

18065:                                            ; preds = %18058
  %18066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18067 = call i32 @fileno(ptr noundef %18066) #11
  %18068 = call i32 @isatty(i32 noundef %18067) #11
  %18069 = icmp ne i32 %18068, 0
  br i1 %18069, label %18070, label %18087

18070:                                            ; preds = %18065
  %18071 = load i32, ptr %419, align 4, !tbaa !5
  %18072 = call ptr @__errno_location() #12
  store i32 %18071, ptr %18072, align 4, !tbaa !5
  %18073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18074 = load i32, ptr @test_count, align 4, !tbaa !5
  %18075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18076 = load i32, ptr %18075, align 4, !tbaa !5
  %18077 = call ptr @s2n_strerror(i32 noundef %18076, ptr noundef @.str.4)
  %18078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18079 = load i32, ptr %18078, align 4, !tbaa !5
  %18080 = call ptr @s2n_strerror_debug(i32 noundef %18079, ptr noundef @.str.4)
  %18081 = call ptr @__errno_location() #12
  %18082 = load i32, ptr %18081, align 4, !tbaa !5
  %18083 = call ptr @strerror(i32 noundef %18082) #11
  %18084 = call ptr @__errno_location() #12
  %18085 = load i32, ptr %18084, align 4, !tbaa !5
  %18086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18073, ptr noundef @.str.2, i32 noundef %18074, ptr noundef @.str.160, ptr noundef @.str.1, i32 noundef 858, ptr noundef %18077, ptr noundef %18080, ptr noundef %18083, i32 noundef %18085) #11
  br label %18104

18087:                                            ; preds = %18065, %18058
  %18088 = load i32, ptr %419, align 4, !tbaa !5
  %18089 = call ptr @__errno_location() #12
  store i32 %18088, ptr %18089, align 4, !tbaa !5
  %18090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18091 = load i32, ptr @test_count, align 4, !tbaa !5
  %18092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18093 = load i32, ptr %18092, align 4, !tbaa !5
  %18094 = call ptr @s2n_strerror(i32 noundef %18093, ptr noundef @.str.4)
  %18095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18096 = load i32, ptr %18095, align 4, !tbaa !5
  %18097 = call ptr @s2n_strerror_debug(i32 noundef %18096, ptr noundef @.str.4)
  %18098 = call ptr @__errno_location() #12
  %18099 = load i32, ptr %18098, align 4, !tbaa !5
  %18100 = call ptr @strerror(i32 noundef %18099) #11
  %18101 = call ptr @__errno_location() #12
  %18102 = load i32, ptr %18101, align 4, !tbaa !5
  %18103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18090, ptr noundef @.str.5, i32 noundef %18091, ptr noundef @.str.160, ptr noundef @.str.1, i32 noundef 858, ptr noundef %18094, ptr noundef %18097, ptr noundef %18100, i32 noundef %18102) #11
  br label %18104

18104:                                            ; preds = %18087, %18070
  call void @llvm.lifetime.end.p0(i64 4, ptr %419) #11
  br label %18105

18105:                                            ; preds = %18104
  br label %18106

18106:                                            ; preds = %18105
  call void @exit(i32 noundef 1) #13
  unreachable

18107:                                            ; No predecessors!
  br label %18108

18108:                                            ; preds = %18107
  br label %18109

18109:                                            ; preds = %18108, %18049
  br label %18110

18110:                                            ; preds = %18109
  br label %18111

18111:                                            ; preds = %18110
  br label %18112

18112:                                            ; preds = %18111
  %18113 = load i32, ptr @test_count, align 4, !tbaa !5
  %18114 = add nsw i32 %18113, 1
  store i32 %18114, ptr @test_count, align 4, !tbaa !5
  %18115 = getelementptr inbounds [2 x %struct.s2n_kem_group_params], ptr %413, i64 0, i64 1
  %18116 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef %400, ptr noundef %18115)
  %18117 = icmp eq i32 %18116, -1
  br i1 %18117, label %18118, label %18171

18118:                                            ; preds = %18112
  br label %18119

18119:                                            ; preds = %18118
  br label %18120

18120:                                            ; preds = %18119
  call void @llvm.lifetime.start.p0(i64 4, ptr %420) #11
  %18121 = call ptr @__errno_location() #12
  %18122 = load i32, ptr %18121, align 4, !tbaa !5
  store i32 %18122, ptr %420, align 4, !tbaa !5
  %18123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18124 = call i32 @s2n_print_stacktrace(ptr noundef %18123)
  %18125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18126 = trunc i8 %18125 to i1
  br i1 %18126, label %18127, label %18149

18127:                                            ; preds = %18120
  %18128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18129 = call i32 @fileno(ptr noundef %18128) #11
  %18130 = call i32 @isatty(i32 noundef %18129) #11
  %18131 = icmp ne i32 %18130, 0
  br i1 %18131, label %18132, label %18149

18132:                                            ; preds = %18127
  %18133 = load i32, ptr %420, align 4, !tbaa !5
  %18134 = call ptr @__errno_location() #12
  store i32 %18133, ptr %18134, align 4, !tbaa !5
  %18135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18136 = load i32, ptr @test_count, align 4, !tbaa !5
  %18137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18138 = load i32, ptr %18137, align 4, !tbaa !5
  %18139 = call ptr @s2n_strerror(i32 noundef %18138, ptr noundef @.str.4)
  %18140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18141 = load i32, ptr %18140, align 4, !tbaa !5
  %18142 = call ptr @s2n_strerror_debug(i32 noundef %18141, ptr noundef @.str.4)
  %18143 = call ptr @__errno_location() #12
  %18144 = load i32, ptr %18143, align 4, !tbaa !5
  %18145 = call ptr @strerror(i32 noundef %18144) #11
  %18146 = call ptr @__errno_location() #12
  %18147 = load i32, ptr %18146, align 4, !tbaa !5
  %18148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18135, ptr noundef @.str.2, i32 noundef %18136, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 860, ptr noundef %18139, ptr noundef %18142, ptr noundef %18145, i32 noundef %18147) #11
  br label %18166

18149:                                            ; preds = %18127, %18120
  %18150 = load i32, ptr %420, align 4, !tbaa !5
  %18151 = call ptr @__errno_location() #12
  store i32 %18150, ptr %18151, align 4, !tbaa !5
  %18152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18153 = load i32, ptr @test_count, align 4, !tbaa !5
  %18154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18155 = load i32, ptr %18154, align 4, !tbaa !5
  %18156 = call ptr @s2n_strerror(i32 noundef %18155, ptr noundef @.str.4)
  %18157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18158 = load i32, ptr %18157, align 4, !tbaa !5
  %18159 = call ptr @s2n_strerror_debug(i32 noundef %18158, ptr noundef @.str.4)
  %18160 = call ptr @__errno_location() #12
  %18161 = load i32, ptr %18160, align 4, !tbaa !5
  %18162 = call ptr @strerror(i32 noundef %18161) #11
  %18163 = call ptr @__errno_location() #12
  %18164 = load i32, ptr %18163, align 4, !tbaa !5
  %18165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18152, ptr noundef @.str.5, i32 noundef %18153, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 860, ptr noundef %18156, ptr noundef %18159, ptr noundef %18162, i32 noundef %18164) #11
  br label %18166

18166:                                            ; preds = %18149, %18132
  call void @llvm.lifetime.end.p0(i64 4, ptr %420) #11
  br label %18167

18167:                                            ; preds = %18166
  br label %18168

18168:                                            ; preds = %18167
  call void @exit(i32 noundef 1) #13
  unreachable

18169:                                            ; No predecessors!
  br label %18170

18170:                                            ; preds = %18169
  br label %18171

18171:                                            ; preds = %18170, %18112
  br label %18172

18172:                                            ; preds = %18171
  br label %18173

18173:                                            ; preds = %18172
  br label %18174

18174:                                            ; preds = %18173
  %18175 = load i32, ptr @test_count, align 4, !tbaa !5
  %18176 = add nsw i32 %18175, 1
  store i32 %18176, ptr @test_count, align 4, !tbaa !5
  %18177 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %414)
  %18178 = icmp eq i32 %18177, -1
  br i1 %18178, label %18179, label %18232

18179:                                            ; preds = %18174
  br label %18180

18180:                                            ; preds = %18179
  br label %18181

18181:                                            ; preds = %18180
  call void @llvm.lifetime.start.p0(i64 4, ptr %421) #11
  %18182 = call ptr @__errno_location() #12
  %18183 = load i32, ptr %18182, align 4, !tbaa !5
  store i32 %18183, ptr %421, align 4, !tbaa !5
  %18184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18185 = call i32 @s2n_print_stacktrace(ptr noundef %18184)
  %18186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18187 = trunc i8 %18186 to i1
  br i1 %18187, label %18188, label %18210

18188:                                            ; preds = %18181
  %18189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18190 = call i32 @fileno(ptr noundef %18189) #11
  %18191 = call i32 @isatty(i32 noundef %18190) #11
  %18192 = icmp ne i32 %18191, 0
  br i1 %18192, label %18193, label %18210

18193:                                            ; preds = %18188
  %18194 = load i32, ptr %421, align 4, !tbaa !5
  %18195 = call ptr @__errno_location() #12
  store i32 %18194, ptr %18195, align 4, !tbaa !5
  %18196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18197 = load i32, ptr @test_count, align 4, !tbaa !5
  %18198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18199 = load i32, ptr %18198, align 4, !tbaa !5
  %18200 = call ptr @s2n_strerror(i32 noundef %18199, ptr noundef @.str.4)
  %18201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18202 = load i32, ptr %18201, align 4, !tbaa !5
  %18203 = call ptr @s2n_strerror_debug(i32 noundef %18202, ptr noundef @.str.4)
  %18204 = call ptr @__errno_location() #12
  %18205 = load i32, ptr %18204, align 4, !tbaa !5
  %18206 = call ptr @strerror(i32 noundef %18205) #11
  %18207 = call ptr @__errno_location() #12
  %18208 = load i32, ptr %18207, align 4, !tbaa !5
  %18209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18196, ptr noundef @.str.2, i32 noundef %18197, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 862, ptr noundef %18200, ptr noundef %18203, ptr noundef %18206, i32 noundef %18208) #11
  br label %18227

18210:                                            ; preds = %18188, %18181
  %18211 = load i32, ptr %421, align 4, !tbaa !5
  %18212 = call ptr @__errno_location() #12
  store i32 %18211, ptr %18212, align 4, !tbaa !5
  %18213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18214 = load i32, ptr @test_count, align 4, !tbaa !5
  %18215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18216 = load i32, ptr %18215, align 4, !tbaa !5
  %18217 = call ptr @s2n_strerror(i32 noundef %18216, ptr noundef @.str.4)
  %18218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18219 = load i32, ptr %18218, align 4, !tbaa !5
  %18220 = call ptr @s2n_strerror_debug(i32 noundef %18219, ptr noundef @.str.4)
  %18221 = call ptr @__errno_location() #12
  %18222 = load i32, ptr %18221, align 4, !tbaa !5
  %18223 = call ptr @strerror(i32 noundef %18222) #11
  %18224 = call ptr @__errno_location() #12
  %18225 = load i32, ptr %18224, align 4, !tbaa !5
  %18226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18213, ptr noundef @.str.5, i32 noundef %18214, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 862, ptr noundef %18217, ptr noundef %18220, ptr noundef %18223, i32 noundef %18225) #11
  br label %18227

18227:                                            ; preds = %18210, %18193
  call void @llvm.lifetime.end.p0(i64 4, ptr %421) #11
  br label %18228

18228:                                            ; preds = %18227
  br label %18229

18229:                                            ; preds = %18228
  call void @exit(i32 noundef 1) #13
  unreachable

18230:                                            ; No predecessors!
  br label %18231

18231:                                            ; preds = %18230
  br label %18232

18232:                                            ; preds = %18231, %18174
  br label %18233

18233:                                            ; preds = %18232
  br label %18234

18234:                                            ; preds = %18233
  br label %18235

18235:                                            ; preds = %18234
  %18236 = load i32, ptr @test_count, align 4, !tbaa !5
  %18237 = add nsw i32 %18236, 1
  store i32 %18237, ptr @test_count, align 4, !tbaa !5
  %18238 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !98
  %18239 = load ptr, ptr %395, align 8, !tbaa !9
  %18240 = call i32 %18238(ptr noundef %18239, ptr noundef %400)
  %18241 = icmp eq i32 %18240, -1
  br i1 %18241, label %18242, label %18295

18242:                                            ; preds = %18235
  br label %18243

18243:                                            ; preds = %18242
  br label %18244

18244:                                            ; preds = %18243
  call void @llvm.lifetime.start.p0(i64 4, ptr %422) #11
  %18245 = call ptr @__errno_location() #12
  %18246 = load i32, ptr %18245, align 4, !tbaa !5
  store i32 %18246, ptr %422, align 4, !tbaa !5
  %18247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18248 = call i32 @s2n_print_stacktrace(ptr noundef %18247)
  %18249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18250 = trunc i8 %18249 to i1
  br i1 %18250, label %18251, label %18273

18251:                                            ; preds = %18244
  %18252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18253 = call i32 @fileno(ptr noundef %18252) #11
  %18254 = call i32 @isatty(i32 noundef %18253) #11
  %18255 = icmp ne i32 %18254, 0
  br i1 %18255, label %18256, label %18273

18256:                                            ; preds = %18251
  %18257 = load i32, ptr %422, align 4, !tbaa !5
  %18258 = call ptr @__errno_location() #12
  store i32 %18257, ptr %18258, align 4, !tbaa !5
  %18259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18260 = load i32, ptr @test_count, align 4, !tbaa !5
  %18261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18262 = load i32, ptr %18261, align 4, !tbaa !5
  %18263 = call ptr @s2n_strerror(i32 noundef %18262, ptr noundef @.str.4)
  %18264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18265 = load i32, ptr %18264, align 4, !tbaa !5
  %18266 = call ptr @s2n_strerror_debug(i32 noundef %18265, ptr noundef @.str.4)
  %18267 = call ptr @__errno_location() #12
  %18268 = load i32, ptr %18267, align 4, !tbaa !5
  %18269 = call ptr @strerror(i32 noundef %18268) #11
  %18270 = call ptr @__errno_location() #12
  %18271 = load i32, ptr %18270, align 4, !tbaa !5
  %18272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18259, ptr noundef @.str.2, i32 noundef %18260, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 864, ptr noundef %18263, ptr noundef %18266, ptr noundef %18269, i32 noundef %18271) #11
  br label %18290

18273:                                            ; preds = %18251, %18244
  %18274 = load i32, ptr %422, align 4, !tbaa !5
  %18275 = call ptr @__errno_location() #12
  store i32 %18274, ptr %18275, align 4, !tbaa !5
  %18276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18277 = load i32, ptr @test_count, align 4, !tbaa !5
  %18278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18279 = load i32, ptr %18278, align 4, !tbaa !5
  %18280 = call ptr @s2n_strerror(i32 noundef %18279, ptr noundef @.str.4)
  %18281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18282 = load i32, ptr %18281, align 4, !tbaa !5
  %18283 = call ptr @s2n_strerror_debug(i32 noundef %18282, ptr noundef @.str.4)
  %18284 = call ptr @__errno_location() #12
  %18285 = load i32, ptr %18284, align 4, !tbaa !5
  %18286 = call ptr @strerror(i32 noundef %18285) #11
  %18287 = call ptr @__errno_location() #12
  %18288 = load i32, ptr %18287, align 4, !tbaa !5
  %18289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18276, ptr noundef @.str.5, i32 noundef %18277, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 864, ptr noundef %18280, ptr noundef %18283, ptr noundef %18286, i32 noundef %18288) #11
  br label %18290

18290:                                            ; preds = %18273, %18256
  call void @llvm.lifetime.end.p0(i64 4, ptr %422) #11
  br label %18291

18291:                                            ; preds = %18290
  br label %18292

18292:                                            ; preds = %18291
  call void @exit(i32 noundef 1) #13
  unreachable

18293:                                            ; No predecessors!
  br label %18294

18294:                                            ; preds = %18293
  br label %18295

18295:                                            ; preds = %18294, %18235
  br label %18296

18296:                                            ; preds = %18295
  br label %18297

18297:                                            ; preds = %18296
  br label %18298

18298:                                            ; preds = %18297
  %18299 = load i32, ptr @test_count, align 4, !tbaa !5
  %18300 = add nsw i32 %18299, 1
  store i32 %18300, ptr @test_count, align 4, !tbaa !5
  %18301 = getelementptr inbounds %struct.s2n_stuffer, ptr %400, i32 0, i32 2
  %18302 = load i32, ptr %18301, align 4, !tbaa !58
  %18303 = getelementptr inbounds %struct.s2n_stuffer, ptr %400, i32 0, i32 1
  %18304 = load i32, ptr %18303, align 8, !tbaa !59
  %18305 = sub i32 %18302, %18304
  %18306 = icmp eq i32 %18305, 0
  br i1 %18306, label %18360, label %18307

18307:                                            ; preds = %18298
  br label %18308

18308:                                            ; preds = %18307
  br label %18309

18309:                                            ; preds = %18308
  call void @llvm.lifetime.start.p0(i64 4, ptr %423) #11
  %18310 = call ptr @__errno_location() #12
  %18311 = load i32, ptr %18310, align 4, !tbaa !5
  store i32 %18311, ptr %423, align 4, !tbaa !5
  %18312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18313 = call i32 @s2n_print_stacktrace(ptr noundef %18312)
  %18314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18315 = trunc i8 %18314 to i1
  br i1 %18315, label %18316, label %18338

18316:                                            ; preds = %18309
  %18317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18318 = call i32 @fileno(ptr noundef %18317) #11
  %18319 = call i32 @isatty(i32 noundef %18318) #11
  %18320 = icmp ne i32 %18319, 0
  br i1 %18320, label %18321, label %18338

18321:                                            ; preds = %18316
  %18322 = load i32, ptr %423, align 4, !tbaa !5
  %18323 = call ptr @__errno_location() #12
  store i32 %18322, ptr %18323, align 4, !tbaa !5
  %18324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18325 = load i32, ptr @test_count, align 4, !tbaa !5
  %18326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18327 = load i32, ptr %18326, align 4, !tbaa !5
  %18328 = call ptr @s2n_strerror(i32 noundef %18327, ptr noundef @.str.4)
  %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_debug(i32 noundef %18330, ptr noundef @.str.4)
  %18332 = call ptr @__errno_location() #12
  %18333 = load i32, ptr %18332, align 4, !tbaa !5
  %18334 = call ptr @strerror(i32 noundef %18333) #11
  %18335 = call ptr @__errno_location() #12
  %18336 = load i32, ptr %18335, align 4, !tbaa !5
  %18337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18324, ptr noundef @.str.2, i32 noundef %18325, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 865, ptr noundef %18328, ptr noundef %18331, ptr noundef %18334, i32 noundef %18336) #11
  br label %18355

18338:                                            ; preds = %18316, %18309
  %18339 = load i32, ptr %423, align 4, !tbaa !5
  %18340 = call ptr @__errno_location() #12
  store i32 %18339, ptr %18340, align 4, !tbaa !5
  %18341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18342 = load i32, ptr @test_count, align 4, !tbaa !5
  %18343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18344 = load i32, ptr %18343, align 4, !tbaa !5
  %18345 = call ptr @s2n_strerror(i32 noundef %18344, ptr noundef @.str.4)
  %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_debug(i32 noundef %18347, ptr noundef @.str.4)
  %18349 = call ptr @__errno_location() #12
  %18350 = load i32, ptr %18349, align 4, !tbaa !5
  %18351 = call ptr @strerror(i32 noundef %18350) #11
  %18352 = call ptr @__errno_location() #12
  %18353 = load i32, ptr %18352, align 4, !tbaa !5
  %18354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18341, ptr noundef @.str.5, i32 noundef %18342, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 865, ptr noundef %18345, ptr noundef %18348, ptr noundef %18351, i32 noundef %18353) #11
  br label %18355

18355:                                            ; preds = %18338, %18321
  call void @llvm.lifetime.end.p0(i64 4, ptr %423) #11
  br label %18356

18356:                                            ; preds = %18355
  br label %18357

18357:                                            ; preds = %18356
  call void @exit(i32 noundef 1) #13
  unreachable

18358:                                            ; No predecessors!
  br label %18359

18359:                                            ; preds = %18358
  br label %18360

18360:                                            ; preds = %18359, %18298
  br label %18361

18361:                                            ; preds = %18360
  br label %18362

18362:                                            ; preds = %18361
  call void @llvm.lifetime.start.p0(i64 8, ptr %424) #11
  %18363 = load ptr, ptr %409, align 8, !tbaa !9
  store ptr %18363, ptr %424, align 8, !tbaa !9
  %18364 = load ptr, ptr %408, align 8, !tbaa !9
  %18365 = icmp eq ptr %18364, @s2n_x25519_mlkem_768
  br i1 %18365, label %18366, label %18371

18366:                                            ; preds = %18362
  %18367 = load i32, ptr %5, align 4, !tbaa !5
  %18368 = icmp eq i32 %18367, 0
  br i1 %18368, label %18369, label %18371

18369:                                            ; preds = %18366
  %18370 = load ptr, ptr %408, align 8, !tbaa !9
  store ptr %18370, ptr %424, align 8, !tbaa !9
  br label %18371

18371:                                            ; preds = %18369, %18366, %18362
  call void @llvm.lifetime.start.p0(i64 8, ptr %425) #11
  %18372 = load ptr, ptr %395, align 8, !tbaa !9
  %18373 = getelementptr inbounds %struct.s2n_connection, ptr %18372, i32 0, i32 31
  %18374 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %18373, i32 0, i32 5
  store ptr %18374, ptr %425, align 8, !tbaa !9
  br label %18375

18375:                                            ; preds = %18371
  %18376 = load i32, ptr @test_count, align 4, !tbaa !5
  %18377 = add nsw i32 %18376, 1
  store i32 %18377, ptr @test_count, align 4, !tbaa !5
  %18378 = load ptr, ptr %425, align 8, !tbaa !9
  %18379 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %18378, i32 0, i32 0
  %18380 = load ptr, ptr %18379, align 8, !tbaa !68
  %18381 = load ptr, ptr %424, align 8, !tbaa !9
  %18382 = icmp eq ptr %18380, %18381
  br i1 %18382, label %18436, label %18383

18383:                                            ; preds = %18375
  br label %18384

18384:                                            ; preds = %18383
  br label %18385

18385:                                            ; preds = %18384
  call void @llvm.lifetime.start.p0(i64 4, ptr %426) #11
  %18386 = call ptr @__errno_location() #12
  %18387 = load i32, ptr %18386, align 4, !tbaa !5
  store i32 %18387, ptr %426, align 4, !tbaa !5
  %18388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18389 = call i32 @s2n_print_stacktrace(ptr noundef %18388)
  %18390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18391 = trunc i8 %18390 to i1
  br i1 %18391, label %18392, label %18414

18392:                                            ; preds = %18385
  %18393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18394 = call i32 @fileno(ptr noundef %18393) #11
  %18395 = call i32 @isatty(i32 noundef %18394) #11
  %18396 = icmp ne i32 %18395, 0
  br i1 %18396, label %18397, label %18414

18397:                                            ; preds = %18392
  %18398 = load i32, ptr %426, align 4, !tbaa !5
  %18399 = call ptr @__errno_location() #12
  store i32 %18398, ptr %18399, align 4, !tbaa !5
  %18400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18401 = load i32, ptr @test_count, align 4, !tbaa !5
  %18402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18403 = load i32, ptr %18402, align 4, !tbaa !5
  %18404 = call ptr @s2n_strerror(i32 noundef %18403, ptr noundef @.str.4)
  %18405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18406 = load i32, ptr %18405, align 4, !tbaa !5
  %18407 = call ptr @s2n_strerror_debug(i32 noundef %18406, ptr noundef @.str.4)
  %18408 = call ptr @__errno_location() #12
  %18409 = load i32, ptr %18408, align 4, !tbaa !5
  %18410 = call ptr @strerror(i32 noundef %18409) #11
  %18411 = call ptr @__errno_location() #12
  %18412 = load i32, ptr %18411, align 4, !tbaa !5
  %18413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18400, ptr noundef @.str.2, i32 noundef %18401, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 878, ptr noundef %18404, ptr noundef %18407, ptr noundef %18410, i32 noundef %18412) #11
  br label %18431

18414:                                            ; preds = %18392, %18385
  %18415 = load i32, ptr %426, align 4, !tbaa !5
  %18416 = call ptr @__errno_location() #12
  store i32 %18415, ptr %18416, align 4, !tbaa !5
  %18417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18418 = load i32, ptr @test_count, align 4, !tbaa !5
  %18419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18420 = load i32, ptr %18419, align 4, !tbaa !5
  %18421 = call ptr @s2n_strerror(i32 noundef %18420, ptr noundef @.str.4)
  %18422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18423 = load i32, ptr %18422, align 4, !tbaa !5
  %18424 = call ptr @s2n_strerror_debug(i32 noundef %18423, ptr noundef @.str.4)
  %18425 = call ptr @__errno_location() #12
  %18426 = load i32, ptr %18425, align 4, !tbaa !5
  %18427 = call ptr @strerror(i32 noundef %18426) #11
  %18428 = call ptr @__errno_location() #12
  %18429 = load i32, ptr %18428, align 4, !tbaa !5
  %18430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18417, ptr noundef @.str.5, i32 noundef %18418, ptr noundef @.str.161, ptr noundef @.str.1, i32 noundef 878, ptr noundef %18421, ptr noundef %18424, ptr noundef %18427, i32 noundef %18429) #11
  br label %18431

18431:                                            ; preds = %18414, %18397
  call void @llvm.lifetime.end.p0(i64 4, ptr %426) #11
  br label %18432

18432:                                            ; preds = %18431
  br label %18433

18433:                                            ; preds = %18432
  call void @exit(i32 noundef 1) #13
  unreachable

18434:                                            ; No predecessors!
  br label %18435

18435:                                            ; preds = %18434
  br label %18436

18436:                                            ; preds = %18435, %18375
  br label %18437

18437:                                            ; preds = %18436
  br label %18438

18438:                                            ; preds = %18437
  br label %18439

18439:                                            ; preds = %18438
  %18440 = load i32, ptr @test_count, align 4, !tbaa !5
  %18441 = add nsw i32 %18440, 1
  store i32 %18441, ptr @test_count, align 4, !tbaa !5
  %18442 = load ptr, ptr %425, align 8, !tbaa !9
  %18443 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %18442, i32 0, i32 1
  %18444 = getelementptr inbounds %struct.s2n_kem_params, ptr %18443, i32 0, i32 1
  %18445 = getelementptr inbounds %struct.s2n_blob, ptr %18444, i32 0, i32 0
  %18446 = load ptr, ptr %18445, align 8, !tbaa !99
  %18447 = icmp eq ptr %18446, null
  br i1 %18447, label %18448, label %18501

18448:                                            ; preds = %18439
  br label %18449

18449:                                            ; preds = %18448
  br label %18450

18450:                                            ; preds = %18449
  call void @llvm.lifetime.start.p0(i64 4, ptr %427) #11
  %18451 = call ptr @__errno_location() #12
  %18452 = load i32, ptr %18451, align 4, !tbaa !5
  store i32 %18452, ptr %427, align 4, !tbaa !5
  %18453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18454 = call i32 @s2n_print_stacktrace(ptr noundef %18453)
  %18455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18456 = trunc i8 %18455 to i1
  br i1 %18456, label %18457, label %18479

18457:                                            ; preds = %18450
  %18458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18459 = call i32 @fileno(ptr noundef %18458) #11
  %18460 = call i32 @isatty(i32 noundef %18459) #11
  %18461 = icmp ne i32 %18460, 0
  br i1 %18461, label %18462, label %18479

18462:                                            ; preds = %18457
  %18463 = load i32, ptr %427, align 4, !tbaa !5
  %18464 = call ptr @__errno_location() #12
  store i32 %18463, ptr %18464, align 4, !tbaa !5
  %18465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18466 = load i32, ptr @test_count, align 4, !tbaa !5
  %18467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18468 = load i32, ptr %18467, align 4, !tbaa !5
  %18469 = call ptr @s2n_strerror(i32 noundef %18468, ptr noundef @.str.4)
  %18470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18471 = load i32, ptr %18470, align 4, !tbaa !5
  %18472 = call ptr @s2n_strerror_debug(i32 noundef %18471, ptr noundef @.str.4)
  %18473 = call ptr @__errno_location() #12
  %18474 = load i32, ptr %18473, align 4, !tbaa !5
  %18475 = call ptr @strerror(i32 noundef %18474) #11
  %18476 = call ptr @__errno_location() #12
  %18477 = load i32, ptr %18476, align 4, !tbaa !5
  %18478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18465, ptr noundef @.str.2, i32 noundef %18466, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 879, ptr noundef %18469, ptr noundef %18472, ptr noundef %18475, i32 noundef %18477) #11
  br label %18496

18479:                                            ; preds = %18457, %18450
  %18480 = load i32, ptr %427, align 4, !tbaa !5
  %18481 = call ptr @__errno_location() #12
  store i32 %18480, ptr %18481, align 4, !tbaa !5
  %18482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18483 = load i32, ptr @test_count, align 4, !tbaa !5
  %18484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18485 = load i32, ptr %18484, align 4, !tbaa !5
  %18486 = call ptr @s2n_strerror(i32 noundef %18485, ptr noundef @.str.4)
  %18487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18488 = load i32, ptr %18487, align 4, !tbaa !5
  %18489 = call ptr @s2n_strerror_debug(i32 noundef %18488, ptr noundef @.str.4)
  %18490 = call ptr @__errno_location() #12
  %18491 = load i32, ptr %18490, align 4, !tbaa !5
  %18492 = call ptr @strerror(i32 noundef %18491) #11
  %18493 = call ptr @__errno_location() #12
  %18494 = load i32, ptr %18493, align 4, !tbaa !5
  %18495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18482, ptr noundef @.str.5, i32 noundef %18483, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 879, ptr noundef %18486, ptr noundef %18489, ptr noundef %18492, i32 noundef %18494) #11
  br label %18496

18496:                                            ; preds = %18479, %18462
  call void @llvm.lifetime.end.p0(i64 4, ptr %427) #11
  br label %18497

18497:                                            ; preds = %18496
  br label %18498

18498:                                            ; preds = %18497
  call void @exit(i32 noundef 1) #13
  unreachable

18499:                                            ; No predecessors!
  br label %18500

18500:                                            ; preds = %18499
  br label %18501

18501:                                            ; preds = %18500, %18439
  br label %18502

18502:                                            ; preds = %18501
  br label %18503

18503:                                            ; preds = %18502
  br label %18504

18504:                                            ; preds = %18503
  %18505 = load i32, ptr @test_count, align 4, !tbaa !5
  %18506 = add nsw i32 %18505, 1
  store i32 %18506, ptr @test_count, align 4, !tbaa !5
  %18507 = load ptr, ptr %425, align 8, !tbaa !9
  %18508 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %18507, i32 0, i32 2
  %18509 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %18508, i32 0, i32 1
  %18510 = load ptr, ptr %18509, align 8, !tbaa !78
  %18511 = icmp eq ptr %18510, null
  br i1 %18511, label %18512, label %18565

18512:                                            ; preds = %18504
  br label %18513

18513:                                            ; preds = %18512
  br label %18514

18514:                                            ; preds = %18513
  call void @llvm.lifetime.start.p0(i64 4, ptr %428) #11
  %18515 = call ptr @__errno_location() #12
  %18516 = load i32, ptr %18515, align 4, !tbaa !5
  store i32 %18516, ptr %428, align 4, !tbaa !5
  %18517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18518 = call i32 @s2n_print_stacktrace(ptr noundef %18517)
  %18519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18520 = trunc i8 %18519 to i1
  br i1 %18520, label %18521, label %18543

18521:                                            ; preds = %18514
  %18522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18523 = call i32 @fileno(ptr noundef %18522) #11
  %18524 = call i32 @isatty(i32 noundef %18523) #11
  %18525 = icmp ne i32 %18524, 0
  br i1 %18525, label %18526, label %18543

18526:                                            ; preds = %18521
  %18527 = load i32, ptr %428, align 4, !tbaa !5
  %18528 = call ptr @__errno_location() #12
  store i32 %18527, ptr %18528, align 4, !tbaa !5
  %18529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18530 = load i32, ptr @test_count, align 4, !tbaa !5
  %18531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18532 = load i32, ptr %18531, align 4, !tbaa !5
  %18533 = call ptr @s2n_strerror(i32 noundef %18532, ptr noundef @.str.4)
  %18534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18535 = load i32, ptr %18534, align 4, !tbaa !5
  %18536 = call ptr @s2n_strerror_debug(i32 noundef %18535, ptr noundef @.str.4)
  %18537 = call ptr @__errno_location() #12
  %18538 = load i32, ptr %18537, align 4, !tbaa !5
  %18539 = call ptr @strerror(i32 noundef %18538) #11
  %18540 = call ptr @__errno_location() #12
  %18541 = load i32, ptr %18540, align 4, !tbaa !5
  %18542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18529, ptr noundef @.str.2, i32 noundef %18530, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 880, ptr noundef %18533, ptr noundef %18536, ptr noundef %18539, i32 noundef %18541) #11
  br label %18560

18543:                                            ; preds = %18521, %18514
  %18544 = load i32, ptr %428, align 4, !tbaa !5
  %18545 = call ptr @__errno_location() #12
  store i32 %18544, ptr %18545, align 4, !tbaa !5
  %18546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18547 = load i32, ptr @test_count, align 4, !tbaa !5
  %18548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18549 = load i32, ptr %18548, align 4, !tbaa !5
  %18550 = call ptr @s2n_strerror(i32 noundef %18549, ptr noundef @.str.4)
  %18551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18552 = load i32, ptr %18551, align 4, !tbaa !5
  %18553 = call ptr @s2n_strerror_debug(i32 noundef %18552, ptr noundef @.str.4)
  %18554 = call ptr @__errno_location() #12
  %18555 = load i32, ptr %18554, align 4, !tbaa !5
  %18556 = call ptr @strerror(i32 noundef %18555) #11
  %18557 = call ptr @__errno_location() #12
  %18558 = load i32, ptr %18557, align 4, !tbaa !5
  %18559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18546, ptr noundef @.str.5, i32 noundef %18547, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 880, ptr noundef %18550, ptr noundef %18553, ptr noundef %18556, i32 noundef %18558) #11
  br label %18560

18560:                                            ; preds = %18543, %18526
  call void @llvm.lifetime.end.p0(i64 4, ptr %428) #11
  br label %18561

18561:                                            ; preds = %18560
  br label %18562

18562:                                            ; preds = %18561
  call void @exit(i32 noundef 1) #13
  unreachable

18563:                                            ; No predecessors!
  br label %18564

18564:                                            ; preds = %18563
  br label %18565

18565:                                            ; preds = %18564, %18504
  br label %18566

18566:                                            ; preds = %18565
  br label %18567

18567:                                            ; preds = %18566
  call void @llvm.lifetime.start.p0(i64 8, ptr %429) #11
  store i64 0, ptr %429, align 8, !tbaa !65
  br label %18568

18568:                                            ; preds = %18636, %18567
  %18569 = load i64, ptr %429, align 8, !tbaa !65
  %18570 = icmp ult i64 %18569, 2
  br i1 %18570, label %18572, label %18571

18571:                                            ; preds = %18568
  store i32 1692, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %429) #11
  br label %18639

18572:                                            ; preds = %18568
  br label %18573

18573:                                            ; preds = %18572
  %18574 = load i32, ptr @test_count, align 4, !tbaa !5
  %18575 = add nsw i32 %18574, 1
  store i32 %18575, ptr @test_count, align 4, !tbaa !5
  %18576 = load i64, ptr %429, align 8, !tbaa !65
  %18577 = getelementptr inbounds [2 x %struct.s2n_kem_group_params], ptr %413, i64 0, i64 %18576
  %18578 = call i32 @s2n_kem_group_free(ptr noundef %18577)
  %18579 = icmp eq i32 %18578, -1
  br i1 %18579, label %18580, label %18633

18580:                                            ; preds = %18573
  br label %18581

18581:                                            ; preds = %18580
  br label %18582

18582:                                            ; preds = %18581
  call void @llvm.lifetime.start.p0(i64 4, ptr %430) #11
  %18583 = call ptr @__errno_location() #12
  %18584 = load i32, ptr %18583, align 4, !tbaa !5
  store i32 %18584, ptr %430, align 4, !tbaa !5
  %18585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18586 = call i32 @s2n_print_stacktrace(ptr noundef %18585)
  %18587 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18588 = trunc i8 %18587 to i1
  br i1 %18588, label %18589, label %18611

18589:                                            ; preds = %18582
  %18590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18591 = call i32 @fileno(ptr noundef %18590) #11
  %18592 = call i32 @isatty(i32 noundef %18591) #11
  %18593 = icmp ne i32 %18592, 0
  br i1 %18593, label %18594, label %18611

18594:                                            ; preds = %18589
  %18595 = load i32, ptr %430, align 4, !tbaa !5
  %18596 = call ptr @__errno_location() #12
  store i32 %18595, ptr %18596, align 4, !tbaa !5
  %18597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18598 = load i32, ptr @test_count, align 4, !tbaa !5
  %18599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18600 = load i32, ptr %18599, align 4, !tbaa !5
  %18601 = call ptr @s2n_strerror(i32 noundef %18600, ptr noundef @.str.4)
  %18602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18603 = load i32, ptr %18602, align 4, !tbaa !5
  %18604 = call ptr @s2n_strerror_debug(i32 noundef %18603, ptr noundef @.str.4)
  %18605 = call ptr @__errno_location() #12
  %18606 = load i32, ptr %18605, align 4, !tbaa !5
  %18607 = call ptr @strerror(i32 noundef %18606) #11
  %18608 = call ptr @__errno_location() #12
  %18609 = load i32, ptr %18608, align 4, !tbaa !5
  %18610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18597, ptr noundef @.str.2, i32 noundef %18598, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 883, ptr noundef %18601, ptr noundef %18604, ptr noundef %18607, i32 noundef %18609) #11
  br label %18628

18611:                                            ; preds = %18589, %18582
  %18612 = load i32, ptr %430, align 4, !tbaa !5
  %18613 = call ptr @__errno_location() #12
  store i32 %18612, ptr %18613, align 4, !tbaa !5
  %18614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18615 = load i32, ptr @test_count, align 4, !tbaa !5
  %18616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18617 = load i32, ptr %18616, align 4, !tbaa !5
  %18618 = call ptr @s2n_strerror(i32 noundef %18617, ptr noundef @.str.4)
  %18619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18620 = load i32, ptr %18619, align 4, !tbaa !5
  %18621 = call ptr @s2n_strerror_debug(i32 noundef %18620, ptr noundef @.str.4)
  %18622 = call ptr @__errno_location() #12
  %18623 = load i32, ptr %18622, align 4, !tbaa !5
  %18624 = call ptr @strerror(i32 noundef %18623) #11
  %18625 = call ptr @__errno_location() #12
  %18626 = load i32, ptr %18625, align 4, !tbaa !5
  %18627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18614, ptr noundef @.str.5, i32 noundef %18615, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 883, ptr noundef %18618, ptr noundef %18621, ptr noundef %18624, i32 noundef %18626) #11
  br label %18628

18628:                                            ; preds = %18611, %18594
  call void @llvm.lifetime.end.p0(i64 4, ptr %430) #11
  br label %18629

18629:                                            ; preds = %18628
  br label %18630

18630:                                            ; preds = %18629
  call void @exit(i32 noundef 1) #13
  unreachable

18631:                                            ; No predecessors!
  br label %18632

18632:                                            ; preds = %18631
  br label %18633

18633:                                            ; preds = %18632, %18573
  br label %18634

18634:                                            ; preds = %18633
  br label %18635

18635:                                            ; preds = %18634
  br label %18636

18636:                                            ; preds = %18635
  %18637 = load i64, ptr %429, align 8, !tbaa !65
  %18638 = add i64 %18637, 1
  store i64 %18638, ptr %429, align 8, !tbaa !65
  br label %18568, !llvm.loop !110

18639:                                            ; preds = %18571
  br label %18640

18640:                                            ; preds = %18639
  %18641 = load i32, ptr @test_count, align 4, !tbaa !5
  %18642 = add nsw i32 %18641, 1
  store i32 %18642, ptr @test_count, align 4, !tbaa !5
  %18643 = call i32 @s2n_stuffer_free(ptr noundef %400)
  %18644 = icmp eq i32 %18643, -1
  br i1 %18644, label %18645, label %18698

18645:                                            ; preds = %18640
  br label %18646

18646:                                            ; preds = %18645
  br label %18647

18647:                                            ; preds = %18646
  call void @llvm.lifetime.start.p0(i64 4, ptr %431) #11
  %18648 = call ptr @__errno_location() #12
  %18649 = load i32, ptr %18648, align 4, !tbaa !5
  store i32 %18649, ptr %431, align 4, !tbaa !5
  %18650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18651 = call i32 @s2n_print_stacktrace(ptr noundef %18650)
  %18652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18653 = trunc i8 %18652 to i1
  br i1 %18653, label %18654, label %18676

18654:                                            ; preds = %18647
  %18655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18656 = call i32 @fileno(ptr noundef %18655) #11
  %18657 = call i32 @isatty(i32 noundef %18656) #11
  %18658 = icmp ne i32 %18657, 0
  br i1 %18658, label %18659, label %18676

18659:                                            ; preds = %18654
  %18660 = load i32, ptr %431, align 4, !tbaa !5
  %18661 = call ptr @__errno_location() #12
  store i32 %18660, ptr %18661, align 4, !tbaa !5
  %18662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18663 = load i32, ptr @test_count, align 4, !tbaa !5
  %18664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18665 = load i32, ptr %18664, align 4, !tbaa !5
  %18666 = call ptr @s2n_strerror(i32 noundef %18665, ptr noundef @.str.4)
  %18667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18668 = load i32, ptr %18667, align 4, !tbaa !5
  %18669 = call ptr @s2n_strerror_debug(i32 noundef %18668, ptr noundef @.str.4)
  %18670 = call ptr @__errno_location() #12
  %18671 = load i32, ptr %18670, align 4, !tbaa !5
  %18672 = call ptr @strerror(i32 noundef %18671) #11
  %18673 = call ptr @__errno_location() #12
  %18674 = load i32, ptr %18673, align 4, !tbaa !5
  %18675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18662, ptr noundef @.str.2, i32 noundef %18663, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 885, ptr noundef %18666, ptr noundef %18669, ptr noundef %18672, i32 noundef %18674) #11
  br label %18693

18676:                                            ; preds = %18654, %18647
  %18677 = load i32, ptr %431, align 4, !tbaa !5
  %18678 = call ptr @__errno_location() #12
  store i32 %18677, ptr %18678, align 4, !tbaa !5
  %18679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18680 = load i32, ptr @test_count, align 4, !tbaa !5
  %18681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18682 = load i32, ptr %18681, align 4, !tbaa !5
  %18683 = call ptr @s2n_strerror(i32 noundef %18682, ptr noundef @.str.4)
  %18684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18685 = load i32, ptr %18684, align 4, !tbaa !5
  %18686 = call ptr @s2n_strerror_debug(i32 noundef %18685, ptr noundef @.str.4)
  %18687 = call ptr @__errno_location() #12
  %18688 = load i32, ptr %18687, align 4, !tbaa !5
  %18689 = call ptr @strerror(i32 noundef %18688) #11
  %18690 = call ptr @__errno_location() #12
  %18691 = load i32, ptr %18690, align 4, !tbaa !5
  %18692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18679, ptr noundef @.str.5, i32 noundef %18680, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 885, ptr noundef %18683, ptr noundef %18686, ptr noundef %18689, i32 noundef %18691) #11
  br label %18693

18693:                                            ; preds = %18676, %18659
  call void @llvm.lifetime.end.p0(i64 4, ptr %431) #11
  br label %18694

18694:                                            ; preds = %18693
  br label %18695

18695:                                            ; preds = %18694
  call void @exit(i32 noundef 1) #13
  unreachable

18696:                                            ; No predecessors!
  br label %18697

18697:                                            ; preds = %18696
  br label %18698

18698:                                            ; preds = %18697, %18640
  br label %18699

18699:                                            ; preds = %18698
  br label %18700

18700:                                            ; preds = %18699
  br label %18701

18701:                                            ; preds = %18700
  %18702 = load i32, ptr @test_count, align 4, !tbaa !5
  %18703 = add nsw i32 %18702, 1
  store i32 %18703, ptr @test_count, align 4, !tbaa !5
  %18704 = load ptr, ptr %395, align 8, !tbaa !9
  %18705 = call i32 @s2n_connection_free(ptr noundef %18704)
  %18706 = icmp eq i32 %18705, -1
  br i1 %18706, label %18707, label %18760

18707:                                            ; preds = %18701
  br label %18708

18708:                                            ; preds = %18707
  br label %18709

18709:                                            ; preds = %18708
  call void @llvm.lifetime.start.p0(i64 4, ptr %432) #11
  %18710 = call ptr @__errno_location() #12
  %18711 = load i32, ptr %18710, align 4, !tbaa !5
  store i32 %18711, ptr %432, align 4, !tbaa !5
  %18712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18713 = call i32 @s2n_print_stacktrace(ptr noundef %18712)
  %18714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18715 = trunc i8 %18714 to i1
  br i1 %18715, label %18716, label %18738

18716:                                            ; preds = %18709
  %18717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18718 = call i32 @fileno(ptr noundef %18717) #11
  %18719 = call i32 @isatty(i32 noundef %18718) #11
  %18720 = icmp ne i32 %18719, 0
  br i1 %18720, label %18721, label %18738

18721:                                            ; preds = %18716
  %18722 = load i32, ptr %432, align 4, !tbaa !5
  %18723 = call ptr @__errno_location() #12
  store i32 %18722, ptr %18723, align 4, !tbaa !5
  %18724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18725 = load i32, ptr @test_count, align 4, !tbaa !5
  %18726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18727 = load i32, ptr %18726, align 4, !tbaa !5
  %18728 = call ptr @s2n_strerror(i32 noundef %18727, ptr noundef @.str.4)
  %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_debug(i32 noundef %18730, ptr noundef @.str.4)
  %18732 = call ptr @__errno_location() #12
  %18733 = load i32, ptr %18732, align 4, !tbaa !5
  %18734 = call ptr @strerror(i32 noundef %18733) #11
  %18735 = call ptr @__errno_location() #12
  %18736 = load i32, ptr %18735, align 4, !tbaa !5
  %18737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18724, ptr noundef @.str.2, i32 noundef %18725, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 886, ptr noundef %18728, ptr noundef %18731, ptr noundef %18734, i32 noundef %18736) #11
  br label %18755

18738:                                            ; preds = %18716, %18709
  %18739 = load i32, ptr %432, align 4, !tbaa !5
  %18740 = call ptr @__errno_location() #12
  store i32 %18739, ptr %18740, align 4, !tbaa !5
  %18741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18742 = load i32, ptr @test_count, align 4, !tbaa !5
  %18743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18744 = load i32, ptr %18743, align 4, !tbaa !5
  %18745 = call ptr @s2n_strerror(i32 noundef %18744, ptr noundef @.str.4)
  %18746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18747 = load i32, ptr %18746, align 4, !tbaa !5
  %18748 = call ptr @s2n_strerror_debug(i32 noundef %18747, ptr noundef @.str.4)
  %18749 = call ptr @__errno_location() #12
  %18750 = load i32, ptr %18749, align 4, !tbaa !5
  %18751 = call ptr @strerror(i32 noundef %18750) #11
  %18752 = call ptr @__errno_location() #12
  %18753 = load i32, ptr %18752, align 4, !tbaa !5
  %18754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18741, ptr noundef @.str.5, i32 noundef %18742, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 886, ptr noundef %18745, ptr noundef %18748, ptr noundef %18751, i32 noundef %18753) #11
  br label %18755

18755:                                            ; preds = %18738, %18721
  call void @llvm.lifetime.end.p0(i64 4, ptr %432) #11
  br label %18756

18756:                                            ; preds = %18755
  br label %18757

18757:                                            ; preds = %18756
  call void @exit(i32 noundef 1) #13
  unreachable

18758:                                            ; No predecessors!
  br label %18759

18759:                                            ; preds = %18758
  br label %18760

18760:                                            ; preds = %18759, %18701
  br label %18761

18761:                                            ; preds = %18760
  br label %18762

18762:                                            ; preds = %18761
  call void @llvm.lifetime.end.p0(i64 8, ptr %425) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %424) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %417) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %414) #11
  call void @llvm.lifetime.end.p0(i64 224, ptr %413) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %409) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %408) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %402) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %400) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %395) #11
  br label %18763

18763:                                            ; preds = %18762, %17129
  br label %18764

18764:                                            ; preds = %18763
  %18765 = load i32, ptr @test_count, align 4, !tbaa !5
  %18766 = add nsw i32 %18765, 1
  store i32 %18766, ptr @test_count, align 4, !tbaa !5
  %18767 = getelementptr inbounds %struct.s2n_security_policy, ptr %9, i32 0, i32 2
  %18768 = load ptr, ptr %18767, align 8, !tbaa !22
  %18769 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %18768, ptr noundef %10)
  %18770 = getelementptr inbounds %struct.s2n_result, ptr %433, i32 0, i32 0
  store i32 %18769, ptr %18770, align 4
  %18771 = getelementptr inbounds %struct.s2n_result, ptr %433, i32 0, i32 0
  %18772 = load i32, ptr %18771, align 4
  %18773 = call zeroext i1 @s2n_result_is_ok(i32 %18772)
  br i1 %18773, label %18827, label %18774

18774:                                            ; preds = %18764
  br label %18775

18775:                                            ; preds = %18774
  br label %18776

18776:                                            ; preds = %18775
  call void @llvm.lifetime.start.p0(i64 4, ptr %434) #11
  %18777 = call ptr @__errno_location() #12
  %18778 = load i32, ptr %18777, align 4, !tbaa !5
  store i32 %18778, ptr %434, align 4, !tbaa !5
  %18779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18780 = call i32 @s2n_print_stacktrace(ptr noundef %18779)
  %18781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18782 = trunc i8 %18781 to i1
  br i1 %18782, label %18783, label %18805

18783:                                            ; preds = %18776
  %18784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18785 = call i32 @fileno(ptr noundef %18784) #11
  %18786 = call i32 @isatty(i32 noundef %18785) #11
  %18787 = icmp ne i32 %18786, 0
  br i1 %18787, label %18788, label %18805

18788:                                            ; preds = %18783
  %18789 = load i32, ptr %434, align 4, !tbaa !5
  %18790 = call ptr @__errno_location() #12
  store i32 %18789, ptr %18790, align 4, !tbaa !5
  %18791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18792 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %18794, ptr noundef @.str.4)
  %18796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18797 = load i32, ptr %18796, align 4, !tbaa !5
  %18798 = call ptr @s2n_strerror_debug(i32 noundef %18797, ptr noundef @.str.4)
  %18799 = call ptr @__errno_location() #12
  %18800 = load i32, ptr %18799, align 4, !tbaa !5
  %18801 = call ptr @strerror(i32 noundef %18800) #11
  %18802 = call ptr @__errno_location() #12
  %18803 = load i32, ptr %18802, align 4, !tbaa !5
  %18804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18791, ptr noundef @.str.2, i32 noundef %18792, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 892, ptr noundef %18795, ptr noundef %18798, ptr noundef %18801, i32 noundef %18803) #11
  br label %18822

18805:                                            ; preds = %18783, %18776
  %18806 = load i32, ptr %434, align 4, !tbaa !5
  %18807 = call ptr @__errno_location() #12
  store i32 %18806, ptr %18807, align 4, !tbaa !5
  %18808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18809 = load i32, ptr @test_count, align 4, !tbaa !5
  %18810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18811 = load i32, ptr %18810, align 4, !tbaa !5
  %18812 = call ptr @s2n_strerror(i32 noundef %18811, ptr noundef @.str.4)
  %18813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18814 = load i32, ptr %18813, align 4, !tbaa !5
  %18815 = call ptr @s2n_strerror_debug(i32 noundef %18814, ptr noundef @.str.4)
  %18816 = call ptr @__errno_location() #12
  %18817 = load i32, ptr %18816, align 4, !tbaa !5
  %18818 = call ptr @strerror(i32 noundef %18817) #11
  %18819 = call ptr @__errno_location() #12
  %18820 = load i32, ptr %18819, align 4, !tbaa !5
  %18821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18808, ptr noundef @.str.5, i32 noundef %18809, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 892, ptr noundef %18812, ptr noundef %18815, ptr noundef %18818, i32 noundef %18820) #11
  br label %18822

18822:                                            ; preds = %18805, %18788
  call void @llvm.lifetime.end.p0(i64 4, ptr %434) #11
  br label %18823

18823:                                            ; preds = %18822
  br label %18824

18824:                                            ; preds = %18823
  call void @exit(i32 noundef 1) #13
  unreachable

18825:                                            ; No predecessors!
  br label %18826

18826:                                            ; preds = %18825
  br label %18827

18827:                                            ; preds = %18826, %18764
  br label %18828

18828:                                            ; preds = %18827
  br label %18829

18829:                                            ; preds = %18828
  %18830 = load i32, ptr %10, align 4, !tbaa !5
  %18831 = icmp uge i32 %18830, 2
  br i1 %18831, label %18832, label %20456

18832:                                            ; preds = %18829
  call void @llvm.lifetime.start.p0(i64 8, ptr %435) #11
  %18833 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %18833, ptr %435, align 8, !tbaa !9
  br label %18834

18834:                                            ; preds = %18832
  %18835 = load i32, ptr @test_count, align 4, !tbaa !5
  %18836 = add nsw i32 %18835, 1
  store i32 %18836, ptr @test_count, align 4, !tbaa !5
  %18837 = load ptr, ptr %435, align 8, !tbaa !9
  %18838 = icmp eq ptr %18837, null
  br i1 %18838, label %18839, label %18892

18839:                                            ; preds = %18834
  br label %18840

18840:                                            ; preds = %18839
  br label %18841

18841:                                            ; preds = %18840
  call void @llvm.lifetime.start.p0(i64 4, ptr %436) #11
  %18842 = call ptr @__errno_location() #12
  %18843 = load i32, ptr %18842, align 4, !tbaa !5
  store i32 %18843, ptr %436, align 4, !tbaa !5
  %18844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18845 = call i32 @s2n_print_stacktrace(ptr noundef %18844)
  %18846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18847 = trunc i8 %18846 to i1
  br i1 %18847, label %18848, label %18870

18848:                                            ; preds = %18841
  %18849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18850 = call i32 @fileno(ptr noundef %18849) #11
  %18851 = call i32 @isatty(i32 noundef %18850) #11
  %18852 = icmp ne i32 %18851, 0
  br i1 %18852, label %18853, label %18870

18853:                                            ; preds = %18848
  %18854 = load i32, ptr %436, align 4, !tbaa !5
  %18855 = call ptr @__errno_location() #12
  store i32 %18854, ptr %18855, align 4, !tbaa !5
  %18856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18857 = load i32, ptr @test_count, align 4, !tbaa !5
  %18858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18859 = load i32, ptr %18858, align 4, !tbaa !5
  %18860 = call ptr @s2n_strerror(i32 noundef %18859, ptr noundef @.str.4)
  %18861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18862 = load i32, ptr %18861, align 4, !tbaa !5
  %18863 = call ptr @s2n_strerror_debug(i32 noundef %18862, ptr noundef @.str.4)
  %18864 = call ptr @__errno_location() #12
  %18865 = load i32, ptr %18864, align 4, !tbaa !5
  %18866 = call ptr @strerror(i32 noundef %18865) #11
  %18867 = call ptr @__errno_location() #12
  %18868 = load i32, ptr %18867, align 4, !tbaa !5
  %18869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18856, ptr noundef @.str.2, i32 noundef %18857, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 895, ptr noundef %18860, ptr noundef %18863, ptr noundef %18866, i32 noundef %18868) #11
  br label %18887

18870:                                            ; preds = %18848, %18841
  %18871 = load i32, ptr %436, align 4, !tbaa !5
  %18872 = call ptr @__errno_location() #12
  store i32 %18871, ptr %18872, align 4, !tbaa !5
  %18873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18874 = load i32, ptr @test_count, align 4, !tbaa !5
  %18875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18876 = load i32, ptr %18875, align 4, !tbaa !5
  %18877 = call ptr @s2n_strerror(i32 noundef %18876, ptr noundef @.str.4)
  %18878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18879 = load i32, ptr %18878, align 4, !tbaa !5
  %18880 = call ptr @s2n_strerror_debug(i32 noundef %18879, ptr noundef @.str.4)
  %18881 = call ptr @__errno_location() #12
  %18882 = load i32, ptr %18881, align 4, !tbaa !5
  %18883 = call ptr @strerror(i32 noundef %18882) #11
  %18884 = call ptr @__errno_location() #12
  %18885 = load i32, ptr %18884, align 4, !tbaa !5
  %18886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18873, ptr noundef @.str.5, i32 noundef %18874, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 895, ptr noundef %18877, ptr noundef %18880, ptr noundef %18883, i32 noundef %18885) #11
  br label %18887

18887:                                            ; preds = %18870, %18853
  call void @llvm.lifetime.end.p0(i64 4, ptr %436) #11
  br label %18888

18888:                                            ; preds = %18887
  br label %18889

18889:                                            ; preds = %18888
  call void @exit(i32 noundef 1) #13
  unreachable

18890:                                            ; No predecessors!
  br label %18891

18891:                                            ; preds = %18890
  br label %18892

18892:                                            ; preds = %18891, %18834
  br label %18893

18893:                                            ; preds = %18892
  br label %18894

18894:                                            ; preds = %18893
  %18895 = load ptr, ptr %435, align 8, !tbaa !9
  %18896 = getelementptr inbounds %struct.s2n_connection, ptr %18895, i32 0, i32 2
  store ptr %9, ptr %18896, align 8, !tbaa !28
  br label %18897

18897:                                            ; preds = %18894
  %18898 = load i32, ptr @test_count, align 4, !tbaa !5
  %18899 = add nsw i32 %18898, 1
  store i32 %18899, ptr @test_count, align 4, !tbaa !5
  %18900 = load ptr, ptr %435, align 8, !tbaa !9
  %18901 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %18900, i8 noundef zeroext 34)
  %18902 = icmp eq i32 %18901, -1
  br i1 %18902, label %18903, label %18956

18903:                                            ; preds = %18897
  br label %18904

18904:                                            ; preds = %18903
  br label %18905

18905:                                            ; preds = %18904
  call void @llvm.lifetime.start.p0(i64 4, ptr %437) #11
  %18906 = call ptr @__errno_location() #12
  %18907 = load i32, ptr %18906, align 4, !tbaa !5
  store i32 %18907, ptr %437, align 4, !tbaa !5
  %18908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18909 = call i32 @s2n_print_stacktrace(ptr noundef %18908)
  %18910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18911 = trunc i8 %18910 to i1
  br i1 %18911, label %18912, label %18934

18912:                                            ; preds = %18905
  %18913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18914 = call i32 @fileno(ptr noundef %18913) #11
  %18915 = call i32 @isatty(i32 noundef %18914) #11
  %18916 = icmp ne i32 %18915, 0
  br i1 %18916, label %18917, label %18934

18917:                                            ; preds = %18912
  %18918 = load i32, ptr %437, align 4, !tbaa !5
  %18919 = call ptr @__errno_location() #12
  store i32 %18918, ptr %18919, align 4, !tbaa !5
  %18920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18921 = load i32, ptr @test_count, align 4, !tbaa !5
  %18922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18923 = load i32, ptr %18922, align 4, !tbaa !5
  %18924 = call ptr @s2n_strerror(i32 noundef %18923, ptr noundef @.str.4)
  %18925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18926 = load i32, ptr %18925, align 4, !tbaa !5
  %18927 = call ptr @s2n_strerror_debug(i32 noundef %18926, ptr noundef @.str.4)
  %18928 = call ptr @__errno_location() #12
  %18929 = load i32, ptr %18928, align 4, !tbaa !5
  %18930 = call ptr @strerror(i32 noundef %18929) #11
  %18931 = call ptr @__errno_location() #12
  %18932 = load i32, ptr %18931, align 4, !tbaa !5
  %18933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18920, ptr noundef @.str.2, i32 noundef %18921, ptr noundef @.str.158, ptr noundef @.str.1, i32 noundef 897, ptr noundef %18924, ptr noundef %18927, ptr noundef %18930, i32 noundef %18932) #11
  br label %18951

18934:                                            ; preds = %18912, %18905
  %18935 = load i32, ptr %437, align 4, !tbaa !5
  %18936 = call ptr @__errno_location() #12
  store i32 %18935, ptr %18936, align 4, !tbaa !5
  %18937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18938 = load i32, ptr @test_count, align 4, !tbaa !5
  %18939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18940 = load i32, ptr %18939, align 4, !tbaa !5
  %18941 = call ptr @s2n_strerror(i32 noundef %18940, ptr noundef @.str.4)
  %18942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18943 = load i32, ptr %18942, align 4, !tbaa !5
  %18944 = call ptr @s2n_strerror_debug(i32 noundef %18943, ptr noundef @.str.4)
  %18945 = call ptr @__errno_location() #12
  %18946 = load i32, ptr %18945, align 4, !tbaa !5
  %18947 = call ptr @strerror(i32 noundef %18946) #11
  %18948 = call ptr @__errno_location() #12
  %18949 = load i32, ptr %18948, align 4, !tbaa !5
  %18950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18937, ptr noundef @.str.5, i32 noundef %18938, ptr noundef @.str.158, ptr noundef @.str.1, i32 noundef 897, ptr noundef %18941, ptr noundef %18944, ptr noundef %18947, i32 noundef %18949) #11
  br label %18951

18951:                                            ; preds = %18934, %18917
  call void @llvm.lifetime.end.p0(i64 4, ptr %437) #11
  br label %18952

18952:                                            ; preds = %18951
  br label %18953

18953:                                            ; preds = %18952
  call void @exit(i32 noundef 1) #13
  unreachable

18954:                                            ; No predecessors!
  br label %18955

18955:                                            ; preds = %18954
  br label %18956

18956:                                            ; preds = %18955, %18897
  br label %18957

18957:                                            ; preds = %18956
  br label %18958

18958:                                            ; preds = %18957
  br label %18959

18959:                                            ; preds = %18958
  %18960 = load i32, ptr @test_count, align 4, !tbaa !5
  %18961 = add nsw i32 %18960, 1
  store i32 %18961, ptr @test_count, align 4, !tbaa !5
  %18962 = load ptr, ptr %435, align 8, !tbaa !9
  %18963 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef %18962)
  %18964 = getelementptr inbounds %struct.s2n_result, ptr %438, i32 0, i32 0
  store i32 %18963, ptr %18964, align 4
  %18965 = getelementptr inbounds %struct.s2n_result, ptr %438, i32 0, i32 0
  %18966 = load i32, ptr %18965, align 4
  %18967 = call zeroext i1 @s2n_result_is_ok(i32 %18966)
  br i1 %18967, label %19021, label %18968

18968:                                            ; preds = %18959
  br label %18969

18969:                                            ; preds = %18968
  br label %18970

18970:                                            ; preds = %18969
  call void @llvm.lifetime.start.p0(i64 4, ptr %439) #11
  %18971 = call ptr @__errno_location() #12
  %18972 = load i32, ptr %18971, align 4, !tbaa !5
  store i32 %18972, ptr %439, align 4, !tbaa !5
  %18973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18974 = call i32 @s2n_print_stacktrace(ptr noundef %18973)
  %18975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %18976 = trunc i8 %18975 to i1
  br i1 %18976, label %18977, label %18999

18977:                                            ; preds = %18970
  %18978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18979 = call i32 @fileno(ptr noundef %18978) #11
  %18980 = call i32 @isatty(i32 noundef %18979) #11
  %18981 = icmp ne i32 %18980, 0
  br i1 %18981, label %18982, label %18999

18982:                                            ; preds = %18977
  %18983 = load i32, ptr %439, align 4, !tbaa !5
  %18984 = call ptr @__errno_location() #12
  store i32 %18983, ptr %18984, align 4, !tbaa !5
  %18985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18986 = load i32, ptr @test_count, align 4, !tbaa !5
  %18987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18988 = load i32, ptr %18987, align 4, !tbaa !5
  %18989 = call ptr @s2n_strerror(i32 noundef %18988, ptr noundef @.str.4)
  %18990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %18991 = load i32, ptr %18990, align 4, !tbaa !5
  %18992 = call ptr @s2n_strerror_debug(i32 noundef %18991, ptr noundef @.str.4)
  %18993 = call ptr @__errno_location() #12
  %18994 = load i32, ptr %18993, align 4, !tbaa !5
  %18995 = call ptr @strerror(i32 noundef %18994) #11
  %18996 = call ptr @__errno_location() #12
  %18997 = load i32, ptr %18996, align 4, !tbaa !5
  %18998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18985, ptr noundef @.str.2, i32 noundef %18986, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 898, ptr noundef %18989, ptr noundef %18992, ptr noundef %18995, i32 noundef %18997) #11
  br label %19016

18999:                                            ; preds = %18977, %18970
  %19000 = load i32, ptr %439, align 4, !tbaa !5
  %19001 = call ptr @__errno_location() #12
  store i32 %19000, ptr %19001, align 4, !tbaa !5
  %19002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19003 = load i32, ptr @test_count, align 4, !tbaa !5
  %19004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19005 = load i32, ptr %19004, align 4, !tbaa !5
  %19006 = call ptr @s2n_strerror(i32 noundef %19005, ptr noundef @.str.4)
  %19007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19008 = load i32, ptr %19007, align 4, !tbaa !5
  %19009 = call ptr @s2n_strerror_debug(i32 noundef %19008, ptr noundef @.str.4)
  %19010 = call ptr @__errno_location() #12
  %19011 = load i32, ptr %19010, align 4, !tbaa !5
  %19012 = call ptr @strerror(i32 noundef %19011) #11
  %19013 = call ptr @__errno_location() #12
  %19014 = load i32, ptr %19013, align 4, !tbaa !5
  %19015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19002, ptr noundef @.str.5, i32 noundef %19003, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 898, ptr noundef %19006, ptr noundef %19009, ptr noundef %19012, i32 noundef %19014) #11
  br label %19016

19016:                                            ; preds = %18999, %18982
  call void @llvm.lifetime.end.p0(i64 4, ptr %439) #11
  br label %19017

19017:                                            ; preds = %19016
  br label %19018

19018:                                            ; preds = %19017
  call void @exit(i32 noundef 1) #13
  unreachable

19019:                                            ; No predecessors!
  br label %19020

19020:                                            ; preds = %19019
  br label %19021

19021:                                            ; preds = %19020, %18959
  br label %19022

19022:                                            ; preds = %19021
  br label %19023

19023:                                            ; preds = %19022
  call void @llvm.lifetime.start.p0(i64 40, ptr %440) #11
  call void @llvm.memset.p0.i64(ptr align 8 %440, i8 0, i64 40, i1 false)
  br label %19024

19024:                                            ; preds = %19023
  %19025 = load i32, ptr @test_count, align 4, !tbaa !5
  %19026 = add nsw i32 %19025, 1
  store i32 %19026, ptr @test_count, align 4, !tbaa !5
  %19027 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %440, i32 noundef 8192)
  %19028 = icmp eq i32 %19027, -1
  br i1 %19028, label %19029, label %19082

19029:                                            ; preds = %19024
  br label %19030

19030:                                            ; preds = %19029
  br label %19031

19031:                                            ; preds = %19030
  call void @llvm.lifetime.start.p0(i64 4, ptr %441) #11
  %19032 = call ptr @__errno_location() #12
  %19033 = load i32, ptr %19032, align 4, !tbaa !5
  store i32 %19033, ptr %441, align 4, !tbaa !5
  %19034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19035 = call i32 @s2n_print_stacktrace(ptr noundef %19034)
  %19036 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19037 = trunc i8 %19036 to i1
  br i1 %19037, label %19038, label %19060

19038:                                            ; preds = %19031
  %19039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19040 = call i32 @fileno(ptr noundef %19039) #11
  %19041 = call i32 @isatty(i32 noundef %19040) #11
  %19042 = icmp ne i32 %19041, 0
  br i1 %19042, label %19043, label %19060

19043:                                            ; preds = %19038
  %19044 = load i32, ptr %441, align 4, !tbaa !5
  %19045 = call ptr @__errno_location() #12
  store i32 %19044, ptr %19045, align 4, !tbaa !5
  %19046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19047 = load i32, ptr @test_count, align 4, !tbaa !5
  %19048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19049 = load i32, ptr %19048, align 4, !tbaa !5
  %19050 = call ptr @s2n_strerror(i32 noundef %19049, ptr noundef @.str.4)
  %19051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19052 = load i32, ptr %19051, align 4, !tbaa !5
  %19053 = call ptr @s2n_strerror_debug(i32 noundef %19052, ptr noundef @.str.4)
  %19054 = call ptr @__errno_location() #12
  %19055 = load i32, ptr %19054, align 4, !tbaa !5
  %19056 = call ptr @strerror(i32 noundef %19055) #11
  %19057 = call ptr @__errno_location() #12
  %19058 = load i32, ptr %19057, align 4, !tbaa !5
  %19059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19046, ptr noundef @.str.2, i32 noundef %19047, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 901, ptr noundef %19050, ptr noundef %19053, ptr noundef %19056, i32 noundef %19058) #11
  br label %19077

19060:                                            ; preds = %19038, %19031
  %19061 = load i32, ptr %441, align 4, !tbaa !5
  %19062 = call ptr @__errno_location() #12
  store i32 %19061, ptr %19062, align 4, !tbaa !5
  %19063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19064 = load i32, ptr @test_count, align 4, !tbaa !5
  %19065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19066 = load i32, ptr %19065, align 4, !tbaa !5
  %19067 = call ptr @s2n_strerror(i32 noundef %19066, ptr noundef @.str.4)
  %19068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19069 = load i32, ptr %19068, align 4, !tbaa !5
  %19070 = call ptr @s2n_strerror_debug(i32 noundef %19069, ptr noundef @.str.4)
  %19071 = call ptr @__errno_location() #12
  %19072 = load i32, ptr %19071, align 4, !tbaa !5
  %19073 = call ptr @strerror(i32 noundef %19072) #11
  %19074 = call ptr @__errno_location() #12
  %19075 = load i32, ptr %19074, align 4, !tbaa !5
  %19076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19063, ptr noundef @.str.5, i32 noundef %19064, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 901, ptr noundef %19067, ptr noundef %19070, ptr noundef %19073, i32 noundef %19075) #11
  br label %19077

19077:                                            ; preds = %19060, %19043
  call void @llvm.lifetime.end.p0(i64 4, ptr %441) #11
  br label %19078

19078:                                            ; preds = %19077
  br label %19079

19079:                                            ; preds = %19078
  call void @exit(i32 noundef 1) #13
  unreachable

19080:                                            ; No predecessors!
  br label %19081

19081:                                            ; preds = %19080
  br label %19082

19082:                                            ; preds = %19081, %19024
  br label %19083

19083:                                            ; preds = %19082
  br label %19084

19084:                                            ; preds = %19083
  call void @llvm.lifetime.start.p0(i64 8, ptr %442) #11
  store ptr null, ptr %442, align 8, !tbaa !9
  br label %19085

19085:                                            ; preds = %19084
  %19086 = load i32, ptr @test_count, align 4, !tbaa !5
  %19087 = add nsw i32 %19086, 1
  store i32 %19087, ptr @test_count, align 4, !tbaa !5
  %19088 = load ptr, ptr %435, align 8, !tbaa !9
  %19089 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %19088, ptr noundef %442)
  %19090 = icmp eq i32 %19089, -1
  br i1 %19090, label %19091, label %19144

19091:                                            ; preds = %19085
  br label %19092

19092:                                            ; preds = %19091
  br label %19093

19093:                                            ; preds = %19092
  call void @llvm.lifetime.start.p0(i64 4, ptr %443) #11
  %19094 = call ptr @__errno_location() #12
  %19095 = load i32, ptr %19094, align 4, !tbaa !5
  store i32 %19095, ptr %443, align 4, !tbaa !5
  %19096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19097 = call i32 @s2n_print_stacktrace(ptr noundef %19096)
  %19098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19099 = trunc i8 %19098 to i1
  br i1 %19099, label %19100, label %19122

19100:                                            ; preds = %19093
  %19101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19102 = call i32 @fileno(ptr noundef %19101) #11
  %19103 = call i32 @isatty(i32 noundef %19102) #11
  %19104 = icmp ne i32 %19103, 0
  br i1 %19104, label %19105, label %19122

19105:                                            ; preds = %19100
  %19106 = load i32, ptr %443, align 4, !tbaa !5
  %19107 = call ptr @__errno_location() #12
  store i32 %19106, ptr %19107, align 4, !tbaa !5
  %19108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19109 = load i32, ptr @test_count, align 4, !tbaa !5
  %19110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19111 = load i32, ptr %19110, align 4, !tbaa !5
  %19112 = call ptr @s2n_strerror(i32 noundef %19111, ptr noundef @.str.4)
  %19113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19114 = load i32, ptr %19113, align 4, !tbaa !5
  %19115 = call ptr @s2n_strerror_debug(i32 noundef %19114, ptr noundef @.str.4)
  %19116 = call ptr @__errno_location() #12
  %19117 = load i32, ptr %19116, align 4, !tbaa !5
  %19118 = call ptr @strerror(i32 noundef %19117) #11
  %19119 = call ptr @__errno_location() #12
  %19120 = load i32, ptr %19119, align 4, !tbaa !5
  %19121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19108, ptr noundef @.str.2, i32 noundef %19109, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 904, ptr noundef %19112, ptr noundef %19115, ptr noundef %19118, i32 noundef %19120) #11
  br label %19139

19122:                                            ; preds = %19100, %19093
  %19123 = load i32, ptr %443, align 4, !tbaa !5
  %19124 = call ptr @__errno_location() #12
  store i32 %19123, ptr %19124, align 4, !tbaa !5
  %19125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19126 = load i32, ptr @test_count, align 4, !tbaa !5
  %19127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19128 = load i32, ptr %19127, align 4, !tbaa !5
  %19129 = call ptr @s2n_strerror(i32 noundef %19128, ptr noundef @.str.4)
  %19130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19131 = load i32, ptr %19130, align 4, !tbaa !5
  %19132 = call ptr @s2n_strerror_debug(i32 noundef %19131, ptr noundef @.str.4)
  %19133 = call ptr @__errno_location() #12
  %19134 = load i32, ptr %19133, align 4, !tbaa !5
  %19135 = call ptr @strerror(i32 noundef %19134) #11
  %19136 = call ptr @__errno_location() #12
  %19137 = load i32, ptr %19136, align 4, !tbaa !5
  %19138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19125, ptr noundef @.str.5, i32 noundef %19126, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 904, ptr noundef %19129, ptr noundef %19132, ptr noundef %19135, i32 noundef %19137) #11
  br label %19139

19139:                                            ; preds = %19122, %19105
  call void @llvm.lifetime.end.p0(i64 4, ptr %443) #11
  br label %19140

19140:                                            ; preds = %19139
  br label %19141

19141:                                            ; preds = %19140
  call void @exit(i32 noundef 1) #13
  unreachable

19142:                                            ; No predecessors!
  br label %19143

19143:                                            ; preds = %19142
  br label %19144

19144:                                            ; preds = %19143, %19085
  br label %19145

19145:                                            ; preds = %19144
  br label %19146

19146:                                            ; preds = %19145
  br label %19147

19147:                                            ; preds = %19146
  %19148 = load i32, ptr @test_count, align 4, !tbaa !5
  %19149 = add nsw i32 %19148, 1
  store i32 %19149, ptr @test_count, align 4, !tbaa !5
  %19150 = load ptr, ptr %442, align 8, !tbaa !9
  %19151 = icmp eq ptr %19150, null
  br i1 %19151, label %19152, label %19205

19152:                                            ; preds = %19147
  br label %19153

19153:                                            ; preds = %19152
  br label %19154

19154:                                            ; preds = %19153
  call void @llvm.lifetime.start.p0(i64 4, ptr %444) #11
  %19155 = call ptr @__errno_location() #12
  %19156 = load i32, ptr %19155, align 4, !tbaa !5
  store i32 %19156, ptr %444, align 4, !tbaa !5
  %19157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19158 = call i32 @s2n_print_stacktrace(ptr noundef %19157)
  %19159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19160 = trunc i8 %19159 to i1
  br i1 %19160, label %19161, label %19183

19161:                                            ; preds = %19154
  %19162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19163 = call i32 @fileno(ptr noundef %19162) #11
  %19164 = call i32 @isatty(i32 noundef %19163) #11
  %19165 = icmp ne i32 %19164, 0
  br i1 %19165, label %19166, label %19183

19166:                                            ; preds = %19161
  %19167 = load i32, ptr %444, align 4, !tbaa !5
  %19168 = call ptr @__errno_location() #12
  store i32 %19167, ptr %19168, align 4, !tbaa !5
  %19169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19170 = load i32, ptr @test_count, align 4, !tbaa !5
  %19171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19172 = load i32, ptr %19171, align 4, !tbaa !5
  %19173 = call ptr @s2n_strerror(i32 noundef %19172, ptr noundef @.str.4)
  %19174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19175 = load i32, ptr %19174, align 4, !tbaa !5
  %19176 = call ptr @s2n_strerror_debug(i32 noundef %19175, ptr noundef @.str.4)
  %19177 = call ptr @__errno_location() #12
  %19178 = load i32, ptr %19177, align 4, !tbaa !5
  %19179 = call ptr @strerror(i32 noundef %19178) #11
  %19180 = call ptr @__errno_location() #12
  %19181 = load i32, ptr %19180, align 4, !tbaa !5
  %19182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19169, ptr noundef @.str.2, i32 noundef %19170, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 905, ptr noundef %19173, ptr noundef %19176, ptr noundef %19179, i32 noundef %19181) #11
  br label %19200

19183:                                            ; preds = %19161, %19154
  %19184 = load i32, ptr %444, align 4, !tbaa !5
  %19185 = call ptr @__errno_location() #12
  store i32 %19184, ptr %19185, align 4, !tbaa !5
  %19186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19187 = load i32, ptr @test_count, align 4, !tbaa !5
  %19188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19189 = load i32, ptr %19188, align 4, !tbaa !5
  %19190 = call ptr @s2n_strerror(i32 noundef %19189, ptr noundef @.str.4)
  %19191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19192 = load i32, ptr %19191, align 4, !tbaa !5
  %19193 = call ptr @s2n_strerror_debug(i32 noundef %19192, ptr noundef @.str.4)
  %19194 = call ptr @__errno_location() #12
  %19195 = load i32, ptr %19194, align 4, !tbaa !5
  %19196 = call ptr @strerror(i32 noundef %19195) #11
  %19197 = call ptr @__errno_location() #12
  %19198 = load i32, ptr %19197, align 4, !tbaa !5
  %19199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19186, ptr noundef @.str.5, i32 noundef %19187, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 905, ptr noundef %19190, ptr noundef %19193, ptr noundef %19196, i32 noundef %19198) #11
  br label %19200

19200:                                            ; preds = %19183, %19166
  call void @llvm.lifetime.end.p0(i64 4, ptr %444) #11
  br label %19201

19201:                                            ; preds = %19200
  br label %19202

19202:                                            ; preds = %19201
  call void @exit(i32 noundef 1) #13
  unreachable

19203:                                            ; No predecessors!
  br label %19204

19204:                                            ; preds = %19203
  br label %19205

19205:                                            ; preds = %19204, %19147
  br label %19206

19206:                                            ; preds = %19205
  br label %19207

19207:                                            ; preds = %19206
  br label %19208

19208:                                            ; preds = %19207
  %19209 = load i32, ptr @test_count, align 4, !tbaa !5
  %19210 = add nsw i32 %19209, 1
  store i32 %19210, ptr @test_count, align 4, !tbaa !5
  %19211 = load ptr, ptr %442, align 8, !tbaa !9
  %19212 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %19211, ptr noundef %10)
  %19213 = getelementptr inbounds %struct.s2n_result, ptr %445, i32 0, i32 0
  store i32 %19212, ptr %19213, align 4
  %19214 = getelementptr inbounds %struct.s2n_result, ptr %445, i32 0, i32 0
  %19215 = load i32, ptr %19214, align 4
  %19216 = call zeroext i1 @s2n_result_is_ok(i32 %19215)
  br i1 %19216, label %19270, label %19217

19217:                                            ; preds = %19208
  br label %19218

19218:                                            ; preds = %19217
  br label %19219

19219:                                            ; preds = %19218
  call void @llvm.lifetime.start.p0(i64 4, ptr %446) #11
  %19220 = call ptr @__errno_location() #12
  %19221 = load i32, ptr %19220, align 4, !tbaa !5
  store i32 %19221, ptr %446, align 4, !tbaa !5
  %19222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19223 = call i32 @s2n_print_stacktrace(ptr noundef %19222)
  %19224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19225 = trunc i8 %19224 to i1
  br i1 %19225, label %19226, label %19248

19226:                                            ; preds = %19219
  %19227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19228 = call i32 @fileno(ptr noundef %19227) #11
  %19229 = call i32 @isatty(i32 noundef %19228) #11
  %19230 = icmp ne i32 %19229, 0
  br i1 %19230, label %19231, label %19248

19231:                                            ; preds = %19226
  %19232 = load i32, ptr %446, align 4, !tbaa !5
  %19233 = call ptr @__errno_location() #12
  store i32 %19232, ptr %19233, align 4, !tbaa !5
  %19234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19235 = load i32, ptr @test_count, align 4, !tbaa !5
  %19236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19237 = load i32, ptr %19236, align 4, !tbaa !5
  %19238 = call ptr @s2n_strerror(i32 noundef %19237, ptr noundef @.str.4)
  %19239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19240 = load i32, ptr %19239, align 4, !tbaa !5
  %19241 = call ptr @s2n_strerror_debug(i32 noundef %19240, ptr noundef @.str.4)
  %19242 = call ptr @__errno_location() #12
  %19243 = load i32, ptr %19242, align 4, !tbaa !5
  %19244 = call ptr @strerror(i32 noundef %19243) #11
  %19245 = call ptr @__errno_location() #12
  %19246 = load i32, ptr %19245, align 4, !tbaa !5
  %19247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19234, ptr noundef @.str.2, i32 noundef %19235, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 906, ptr noundef %19238, ptr noundef %19241, ptr noundef %19244, i32 noundef %19246) #11
  br label %19265

19248:                                            ; preds = %19226, %19219
  %19249 = load i32, ptr %446, align 4, !tbaa !5
  %19250 = call ptr @__errno_location() #12
  store i32 %19249, ptr %19250, align 4, !tbaa !5
  %19251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19252 = load i32, ptr @test_count, align 4, !tbaa !5
  %19253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19254 = load i32, ptr %19253, align 4, !tbaa !5
  %19255 = call ptr @s2n_strerror(i32 noundef %19254, ptr noundef @.str.4)
  %19256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19257 = load i32, ptr %19256, align 4, !tbaa !5
  %19258 = call ptr @s2n_strerror_debug(i32 noundef %19257, ptr noundef @.str.4)
  %19259 = call ptr @__errno_location() #12
  %19260 = load i32, ptr %19259, align 4, !tbaa !5
  %19261 = call ptr @strerror(i32 noundef %19260) #11
  %19262 = call ptr @__errno_location() #12
  %19263 = load i32, ptr %19262, align 4, !tbaa !5
  %19264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19251, ptr noundef @.str.5, i32 noundef %19252, ptr noundef @.str.136, ptr noundef @.str.1, i32 noundef 906, ptr noundef %19255, ptr noundef %19258, ptr noundef %19261, i32 noundef %19263) #11
  br label %19265

19265:                                            ; preds = %19248, %19231
  call void @llvm.lifetime.end.p0(i64 4, ptr %446) #11
  br label %19266

19266:                                            ; preds = %19265
  br label %19267

19267:                                            ; preds = %19266
  call void @exit(i32 noundef 1) #13
  unreachable

19268:                                            ; No predecessors!
  br label %19269

19269:                                            ; preds = %19268
  br label %19270

19270:                                            ; preds = %19269, %19208
  br label %19271

19271:                                            ; preds = %19270
  br label %19272

19272:                                            ; preds = %19271
  br label %19273

19273:                                            ; preds = %19272
  %19274 = load i32, ptr @test_count, align 4, !tbaa !5
  %19275 = add nsw i32 %19274, 1
  store i32 %19275, ptr @test_count, align 4, !tbaa !5
  %19276 = load i32, ptr %10, align 4, !tbaa !5
  %19277 = icmp uge i32 %19276, 2
  br i1 %19277, label %19331, label %19278

19278:                                            ; preds = %19273
  br label %19279

19279:                                            ; preds = %19278
  br label %19280

19280:                                            ; preds = %19279
  call void @llvm.lifetime.start.p0(i64 4, ptr %447) #11
  %19281 = call ptr @__errno_location() #12
  %19282 = load i32, ptr %19281, align 4, !tbaa !5
  store i32 %19282, ptr %447, align 4, !tbaa !5
  %19283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19284 = call i32 @s2n_print_stacktrace(ptr noundef %19283)
  %19285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19286 = trunc i8 %19285 to i1
  br i1 %19286, label %19287, label %19309

19287:                                            ; preds = %19280
  %19288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19289 = call i32 @fileno(ptr noundef %19288) #11
  %19290 = call i32 @isatty(i32 noundef %19289) #11
  %19291 = icmp ne i32 %19290, 0
  br i1 %19291, label %19292, label %19309

19292:                                            ; preds = %19287
  %19293 = load i32, ptr %447, align 4, !tbaa !5
  %19294 = call ptr @__errno_location() #12
  store i32 %19293, ptr %19294, align 4, !tbaa !5
  %19295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19296 = load i32, ptr @test_count, align 4, !tbaa !5
  %19297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19298 = load i32, ptr %19297, align 4, !tbaa !5
  %19299 = call ptr @s2n_strerror(i32 noundef %19298, ptr noundef @.str.4)
  %19300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19301 = load i32, ptr %19300, align 4, !tbaa !5
  %19302 = call ptr @s2n_strerror_debug(i32 noundef %19301, ptr noundef @.str.4)
  %19303 = call ptr @__errno_location() #12
  %19304 = load i32, ptr %19303, align 4, !tbaa !5
  %19305 = call ptr @strerror(i32 noundef %19304) #11
  %19306 = call ptr @__errno_location() #12
  %19307 = load i32, ptr %19306, align 4, !tbaa !5
  %19308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19295, ptr noundef @.str.2, i32 noundef %19296, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 907, ptr noundef %19299, ptr noundef %19302, ptr noundef %19305, i32 noundef %19307) #11
  br label %19326

19309:                                            ; preds = %19287, %19280
  %19310 = load i32, ptr %447, align 4, !tbaa !5
  %19311 = call ptr @__errno_location() #12
  store i32 %19310, ptr %19311, align 4, !tbaa !5
  %19312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19313 = load i32, ptr @test_count, align 4, !tbaa !5
  %19314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19315 = load i32, ptr %19314, align 4, !tbaa !5
  %19316 = call ptr @s2n_strerror(i32 noundef %19315, ptr noundef @.str.4)
  %19317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19318 = load i32, ptr %19317, align 4, !tbaa !5
  %19319 = call ptr @s2n_strerror_debug(i32 noundef %19318, ptr noundef @.str.4)
  %19320 = call ptr @__errno_location() #12
  %19321 = load i32, ptr %19320, align 4, !tbaa !5
  %19322 = call ptr @strerror(i32 noundef %19321) #11
  %19323 = call ptr @__errno_location() #12
  %19324 = load i32, ptr %19323, align 4, !tbaa !5
  %19325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19312, ptr noundef @.str.5, i32 noundef %19313, ptr noundef @.str.137, ptr noundef @.str.1, i32 noundef 907, ptr noundef %19316, ptr noundef %19319, ptr noundef %19322, i32 noundef %19324) #11
  br label %19326

19326:                                            ; preds = %19309, %19292
  call void @llvm.lifetime.end.p0(i64 4, ptr %447) #11
  br label %19327

19327:                                            ; preds = %19326
  br label %19328

19328:                                            ; preds = %19327
  call void @exit(i32 noundef 1) #13
  unreachable

19329:                                            ; No predecessors!
  br label %19330

19330:                                            ; preds = %19329
  br label %19331

19331:                                            ; preds = %19330, %19273
  br label %19332

19332:                                            ; preds = %19331
  br label %19333

19333:                                            ; preds = %19332
  call void @llvm.lifetime.start.p0(i64 8, ptr %448) #11
  store ptr null, ptr %448, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %449) #11
  store ptr null, ptr %449, align 8, !tbaa !9
  br label %19334

19334:                                            ; preds = %19333
  %19335 = load i32, ptr @test_count, align 4, !tbaa !5
  %19336 = add nsw i32 %19335, 1
  store i32 %19336, ptr @test_count, align 4, !tbaa !5
  %19337 = load ptr, ptr %442, align 8, !tbaa !9
  %19338 = call i32 @s2n_get_two_highest_piority_kem_groups(ptr noundef %19337, ptr noundef %448, ptr noundef %449)
  %19339 = icmp eq i32 %19338, -1
  br i1 %19339, label %19340, label %19393

19340:                                            ; preds = %19334
  br label %19341

19341:                                            ; preds = %19340
  br label %19342

19342:                                            ; preds = %19341
  call void @llvm.lifetime.start.p0(i64 4, ptr %450) #11
  %19343 = call ptr @__errno_location() #12
  %19344 = load i32, ptr %19343, align 4, !tbaa !5
  store i32 %19344, ptr %450, align 4, !tbaa !5
  %19345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19346 = call i32 @s2n_print_stacktrace(ptr noundef %19345)
  %19347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19348 = trunc i8 %19347 to i1
  br i1 %19348, label %19349, label %19371

19349:                                            ; preds = %19342
  %19350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19351 = call i32 @fileno(ptr noundef %19350) #11
  %19352 = call i32 @isatty(i32 noundef %19351) #11
  %19353 = icmp ne i32 %19352, 0
  br i1 %19353, label %19354, label %19371

19354:                                            ; preds = %19349
  %19355 = load i32, ptr %450, align 4, !tbaa !5
  %19356 = call ptr @__errno_location() #12
  store i32 %19355, ptr %19356, align 4, !tbaa !5
  %19357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19358 = load i32, ptr @test_count, align 4, !tbaa !5
  %19359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19360 = load i32, ptr %19359, align 4, !tbaa !5
  %19361 = call ptr @s2n_strerror(i32 noundef %19360, ptr noundef @.str.4)
  %19362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19363 = load i32, ptr %19362, align 4, !tbaa !5
  %19364 = call ptr @s2n_strerror_debug(i32 noundef %19363, ptr noundef @.str.4)
  %19365 = call ptr @__errno_location() #12
  %19366 = load i32, ptr %19365, align 4, !tbaa !5
  %19367 = call ptr @strerror(i32 noundef %19366) #11
  %19368 = call ptr @__errno_location() #12
  %19369 = load i32, ptr %19368, align 4, !tbaa !5
  %19370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19357, ptr noundef @.str.2, i32 noundef %19358, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 912, ptr noundef %19361, ptr noundef %19364, ptr noundef %19367, i32 noundef %19369) #11
  br label %19388

19371:                                            ; preds = %19349, %19342
  %19372 = load i32, ptr %450, align 4, !tbaa !5
  %19373 = call ptr @__errno_location() #12
  store i32 %19372, ptr %19373, align 4, !tbaa !5
  %19374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19375 = load i32, ptr @test_count, align 4, !tbaa !5
  %19376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19377 = load i32, ptr %19376, align 4, !tbaa !5
  %19378 = call ptr @s2n_strerror(i32 noundef %19377, ptr noundef @.str.4)
  %19379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19380 = load i32, ptr %19379, align 4, !tbaa !5
  %19381 = call ptr @s2n_strerror_debug(i32 noundef %19380, ptr noundef @.str.4)
  %19382 = call ptr @__errno_location() #12
  %19383 = load i32, ptr %19382, align 4, !tbaa !5
  %19384 = call ptr @strerror(i32 noundef %19383) #11
  %19385 = call ptr @__errno_location() #12
  %19386 = load i32, ptr %19385, align 4, !tbaa !5
  %19387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19374, ptr noundef @.str.5, i32 noundef %19375, ptr noundef @.str.138, ptr noundef @.str.1, i32 noundef 912, ptr noundef %19378, ptr noundef %19381, ptr noundef %19384, i32 noundef %19386) #11
  br label %19388

19388:                                            ; preds = %19371, %19354
  call void @llvm.lifetime.end.p0(i64 4, ptr %450) #11
  br label %19389

19389:                                            ; preds = %19388
  br label %19390

19390:                                            ; preds = %19389
  call void @exit(i32 noundef 1) #13
  unreachable

19391:                                            ; No predecessors!
  br label %19392

19392:                                            ; preds = %19391
  br label %19393

19393:                                            ; preds = %19392, %19334
  br label %19394

19394:                                            ; preds = %19393
  br label %19395

19395:                                            ; preds = %19394
  br label %19396

19396:                                            ; preds = %19395
  %19397 = load i32, ptr @test_count, align 4, !tbaa !5
  %19398 = add nsw i32 %19397, 1
  store i32 %19398, ptr @test_count, align 4, !tbaa !5
  %19399 = load ptr, ptr %448, align 8, !tbaa !9
  %19400 = icmp eq ptr %19399, null
  br i1 %19400, label %19401, label %19454

19401:                                            ; preds = %19396
  br label %19402

19402:                                            ; preds = %19401
  br label %19403

19403:                                            ; preds = %19402
  call void @llvm.lifetime.start.p0(i64 4, ptr %451) #11
  %19404 = call ptr @__errno_location() #12
  %19405 = load i32, ptr %19404, align 4, !tbaa !5
  store i32 %19405, ptr %451, align 4, !tbaa !5
  %19406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19407 = call i32 @s2n_print_stacktrace(ptr noundef %19406)
  %19408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19409 = trunc i8 %19408 to i1
  br i1 %19409, label %19410, label %19432

19410:                                            ; preds = %19403
  %19411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19412 = call i32 @fileno(ptr noundef %19411) #11
  %19413 = call i32 @isatty(i32 noundef %19412) #11
  %19414 = icmp ne i32 %19413, 0
  br i1 %19414, label %19415, label %19432

19415:                                            ; preds = %19410
  %19416 = load i32, ptr %451, align 4, !tbaa !5
  %19417 = call ptr @__errno_location() #12
  store i32 %19416, ptr %19417, align 4, !tbaa !5
  %19418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19419 = load i32, ptr @test_count, align 4, !tbaa !5
  %19420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19421 = load i32, ptr %19420, align 4, !tbaa !5
  %19422 = call ptr @s2n_strerror(i32 noundef %19421, ptr noundef @.str.4)
  %19423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19424 = load i32, ptr %19423, align 4, !tbaa !5
  %19425 = call ptr @s2n_strerror_debug(i32 noundef %19424, ptr noundef @.str.4)
  %19426 = call ptr @__errno_location() #12
  %19427 = load i32, ptr %19426, align 4, !tbaa !5
  %19428 = call ptr @strerror(i32 noundef %19427) #11
  %19429 = call ptr @__errno_location() #12
  %19430 = load i32, ptr %19429, align 4, !tbaa !5
  %19431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19418, ptr noundef @.str.2, i32 noundef %19419, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 913, ptr noundef %19422, ptr noundef %19425, ptr noundef %19428, i32 noundef %19430) #11
  br label %19449

19432:                                            ; preds = %19410, %19403
  %19433 = load i32, ptr %451, align 4, !tbaa !5
  %19434 = call ptr @__errno_location() #12
  store i32 %19433, ptr %19434, align 4, !tbaa !5
  %19435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19436 = load i32, ptr @test_count, align 4, !tbaa !5
  %19437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19438 = load i32, ptr %19437, align 4, !tbaa !5
  %19439 = call ptr @s2n_strerror(i32 noundef %19438, ptr noundef @.str.4)
  %19440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19441 = load i32, ptr %19440, align 4, !tbaa !5
  %19442 = call ptr @s2n_strerror_debug(i32 noundef %19441, ptr noundef @.str.4)
  %19443 = call ptr @__errno_location() #12
  %19444 = load i32, ptr %19443, align 4, !tbaa !5
  %19445 = call ptr @strerror(i32 noundef %19444) #11
  %19446 = call ptr @__errno_location() #12
  %19447 = load i32, ptr %19446, align 4, !tbaa !5
  %19448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19435, ptr noundef @.str.5, i32 noundef %19436, ptr noundef @.str.139, ptr noundef @.str.1, i32 noundef 913, ptr noundef %19439, ptr noundef %19442, ptr noundef %19445, i32 noundef %19447) #11
  br label %19449

19449:                                            ; preds = %19432, %19415
  call void @llvm.lifetime.end.p0(i64 4, ptr %451) #11
  br label %19450

19450:                                            ; preds = %19449
  br label %19451

19451:                                            ; preds = %19450
  call void @exit(i32 noundef 1) #13
  unreachable

19452:                                            ; No predecessors!
  br label %19453

19453:                                            ; preds = %19452
  br label %19454

19454:                                            ; preds = %19453, %19396
  br label %19455

19455:                                            ; preds = %19454
  br label %19456

19456:                                            ; preds = %19455
  br label %19457

19457:                                            ; preds = %19456
  %19458 = load i32, ptr @test_count, align 4, !tbaa !5
  %19459 = add nsw i32 %19458, 1
  store i32 %19459, ptr @test_count, align 4, !tbaa !5
  %19460 = load ptr, ptr %449, align 8, !tbaa !9
  %19461 = icmp eq ptr %19460, null
  br i1 %19461, label %19462, label %19515

19462:                                            ; preds = %19457
  br label %19463

19463:                                            ; preds = %19462
  br label %19464

19464:                                            ; preds = %19463
  call void @llvm.lifetime.start.p0(i64 4, ptr %452) #11
  %19465 = call ptr @__errno_location() #12
  %19466 = load i32, ptr %19465, align 4, !tbaa !5
  store i32 %19466, ptr %452, align 4, !tbaa !5
  %19467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19468 = call i32 @s2n_print_stacktrace(ptr noundef %19467)
  %19469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19470 = trunc i8 %19469 to i1
  br i1 %19470, label %19471, label %19493

19471:                                            ; preds = %19464
  %19472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19473 = call i32 @fileno(ptr noundef %19472) #11
  %19474 = call i32 @isatty(i32 noundef %19473) #11
  %19475 = icmp ne i32 %19474, 0
  br i1 %19475, label %19476, label %19493

19476:                                            ; preds = %19471
  %19477 = load i32, ptr %452, align 4, !tbaa !5
  %19478 = call ptr @__errno_location() #12
  store i32 %19477, ptr %19478, align 4, !tbaa !5
  %19479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19480 = load i32, ptr @test_count, align 4, !tbaa !5
  %19481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19482 = load i32, ptr %19481, align 4, !tbaa !5
  %19483 = call ptr @s2n_strerror(i32 noundef %19482, ptr noundef @.str.4)
  %19484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19485 = load i32, ptr %19484, align 4, !tbaa !5
  %19486 = call ptr @s2n_strerror_debug(i32 noundef %19485, ptr noundef @.str.4)
  %19487 = call ptr @__errno_location() #12
  %19488 = load i32, ptr %19487, align 4, !tbaa !5
  %19489 = call ptr @strerror(i32 noundef %19488) #11
  %19490 = call ptr @__errno_location() #12
  %19491 = load i32, ptr %19490, align 4, !tbaa !5
  %19492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19479, ptr noundef @.str.2, i32 noundef %19480, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 914, ptr noundef %19483, ptr noundef %19486, ptr noundef %19489, i32 noundef %19491) #11
  br label %19510

19493:                                            ; preds = %19471, %19464
  %19494 = load i32, ptr %452, align 4, !tbaa !5
  %19495 = call ptr @__errno_location() #12
  store i32 %19494, ptr %19495, align 4, !tbaa !5
  %19496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19497 = load i32, ptr @test_count, align 4, !tbaa !5
  %19498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19499 = load i32, ptr %19498, align 4, !tbaa !5
  %19500 = call ptr @s2n_strerror(i32 noundef %19499, ptr noundef @.str.4)
  %19501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19502 = load i32, ptr %19501, align 4, !tbaa !5
  %19503 = call ptr @s2n_strerror_debug(i32 noundef %19502, ptr noundef @.str.4)
  %19504 = call ptr @__errno_location() #12
  %19505 = load i32, ptr %19504, align 4, !tbaa !5
  %19506 = call ptr @strerror(i32 noundef %19505) #11
  %19507 = call ptr @__errno_location() #12
  %19508 = load i32, ptr %19507, align 4, !tbaa !5
  %19509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19496, ptr noundef @.str.5, i32 noundef %19497, ptr noundef @.str.140, ptr noundef @.str.1, i32 noundef 914, ptr noundef %19500, ptr noundef %19503, ptr noundef %19506, i32 noundef %19508) #11
  br label %19510

19510:                                            ; preds = %19493, %19476
  call void @llvm.lifetime.end.p0(i64 4, ptr %452) #11
  br label %19511

19511:                                            ; preds = %19510
  br label %19512

19512:                                            ; preds = %19511
  call void @exit(i32 noundef 1) #13
  unreachable

19513:                                            ; No predecessors!
  br label %19514

19514:                                            ; preds = %19513
  br label %19515

19515:                                            ; preds = %19514, %19457
  br label %19516

19516:                                            ; preds = %19515
  br label %19517

19517:                                            ; preds = %19516
  call void @llvm.lifetime.start.p0(i64 224, ptr %453) #11
  call void @llvm.memset.p0.i64(ptr align 16 %453, i8 0, i64 224, i1 false)
  %19518 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %453, i32 0, i32 0
  %19519 = load ptr, ptr %448, align 8, !tbaa !9
  store ptr %19519, ptr %19518, align 16, !tbaa !68
  %19520 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %453, i32 0, i32 1
  %19521 = getelementptr inbounds %struct.s2n_kem_params, ptr %19520, i32 0, i32 0
  %19522 = getelementptr inbounds %struct.s2n_kem_params, ptr %19520, i32 0, i32 1
  %19523 = getelementptr inbounds %struct.s2n_kem_params, ptr %19520, i32 0, i32 2
  %19524 = getelementptr inbounds %struct.s2n_kem_params, ptr %19520, i32 0, i32 3
  %19525 = getelementptr inbounds %struct.s2n_kem_params, ptr %19520, i32 0, i32 4
  %19526 = load i32, ptr %5, align 4, !tbaa !5
  %19527 = icmp ne i32 %19526, 0
  %19528 = zext i1 %19527 to i8
  store i8 %19528, ptr %19525, align 8, !tbaa !105
  %19529 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %453, i32 0, i32 2
  %19530 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %453, i64 1
  %19531 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %19530, i32 0, i32 0
  %19532 = load ptr, ptr %449, align 8, !tbaa !9
  store ptr %19532, ptr %19531, align 16, !tbaa !68
  %19533 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %19530, i32 0, i32 1
  %19534 = getelementptr inbounds %struct.s2n_kem_params, ptr %19533, i32 0, i32 0
  %19535 = getelementptr inbounds %struct.s2n_kem_params, ptr %19533, i32 0, i32 1
  %19536 = getelementptr inbounds %struct.s2n_kem_params, ptr %19533, i32 0, i32 2
  %19537 = getelementptr inbounds %struct.s2n_kem_params, ptr %19533, i32 0, i32 3
  %19538 = getelementptr inbounds %struct.s2n_kem_params, ptr %19533, i32 0, i32 4
  %19539 = load i32, ptr %5, align 4, !tbaa !5
  %19540 = icmp ne i32 %19539, 0
  %19541 = zext i1 %19540 to i8
  store i8 %19541, ptr %19538, align 8, !tbaa !105
  %19542 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %19530, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 16, ptr %454) #11
  call void @llvm.memset.p0.i64(ptr align 8 %454, i8 0, i64 16, i1 false)
  br label %19543

19543:                                            ; preds = %19517
  %19544 = load i32, ptr @test_count, align 4, !tbaa !5
  %19545 = add nsw i32 %19544, 1
  store i32 %19545, ptr @test_count, align 4, !tbaa !5
  %19546 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %440, ptr noundef %454)
  %19547 = icmp eq i32 %19546, -1
  br i1 %19547, label %19548, label %19601

19548:                                            ; preds = %19543
  br label %19549

19549:                                            ; preds = %19548
  br label %19550

19550:                                            ; preds = %19549
  call void @llvm.lifetime.start.p0(i64 4, ptr %455) #11
  %19551 = call ptr @__errno_location() #12
  %19552 = load i32, ptr %19551, align 4, !tbaa !5
  store i32 %19552, ptr %455, align 4, !tbaa !5
  %19553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19554 = call i32 @s2n_print_stacktrace(ptr noundef %19553)
  %19555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19556 = trunc i8 %19555 to i1
  br i1 %19556, label %19557, label %19579

19557:                                            ; preds = %19550
  %19558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19559 = call i32 @fileno(ptr noundef %19558) #11
  %19560 = call i32 @isatty(i32 noundef %19559) #11
  %19561 = icmp ne i32 %19560, 0
  br i1 %19561, label %19562, label %19579

19562:                                            ; preds = %19557
  %19563 = load i32, ptr %455, align 4, !tbaa !5
  %19564 = call ptr @__errno_location() #12
  store i32 %19563, ptr %19564, align 4, !tbaa !5
  %19565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19566 = load i32, ptr @test_count, align 4, !tbaa !5
  %19567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19568 = load i32, ptr %19567, align 4, !tbaa !5
  %19569 = call ptr @s2n_strerror(i32 noundef %19568, ptr noundef @.str.4)
  %19570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19571 = load i32, ptr %19570, align 4, !tbaa !5
  %19572 = call ptr @s2n_strerror_debug(i32 noundef %19571, ptr noundef @.str.4)
  %19573 = call ptr @__errno_location() #12
  %19574 = load i32, ptr %19573, align 4, !tbaa !5
  %19575 = call ptr @strerror(i32 noundef %19574) #11
  %19576 = call ptr @__errno_location() #12
  %19577 = load i32, ptr %19576, align 4, !tbaa !5
  %19578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19565, ptr noundef @.str.2, i32 noundef %19566, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 923, ptr noundef %19569, ptr noundef %19572, ptr noundef %19575, i32 noundef %19577) #11
  br label %19596

19579:                                            ; preds = %19557, %19550
  %19580 = load i32, ptr %455, align 4, !tbaa !5
  %19581 = call ptr @__errno_location() #12
  store i32 %19580, ptr %19581, align 4, !tbaa !5
  %19582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19583 = load i32, ptr @test_count, align 4, !tbaa !5
  %19584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19585 = load i32, ptr %19584, align 4, !tbaa !5
  %19586 = call ptr @s2n_strerror(i32 noundef %19585, ptr noundef @.str.4)
  %19587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19588 = load i32, ptr %19587, align 4, !tbaa !5
  %19589 = call ptr @s2n_strerror_debug(i32 noundef %19588, ptr noundef @.str.4)
  %19590 = call ptr @__errno_location() #12
  %19591 = load i32, ptr %19590, align 4, !tbaa !5
  %19592 = call ptr @strerror(i32 noundef %19591) #11
  %19593 = call ptr @__errno_location() #12
  %19594 = load i32, ptr %19593, align 4, !tbaa !5
  %19595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19582, ptr noundef @.str.5, i32 noundef %19583, ptr noundef @.str.141, ptr noundef @.str.1, i32 noundef 923, ptr noundef %19586, ptr noundef %19589, ptr noundef %19592, i32 noundef %19594) #11
  br label %19596

19596:                                            ; preds = %19579, %19562
  call void @llvm.lifetime.end.p0(i64 4, ptr %455) #11
  br label %19597

19597:                                            ; preds = %19596
  br label %19598

19598:                                            ; preds = %19597
  call void @exit(i32 noundef 1) #13
  unreachable

19599:                                            ; No predecessors!
  br label %19600

19600:                                            ; preds = %19599
  br label %19601

19601:                                            ; preds = %19600, %19543
  br label %19602

19602:                                            ; preds = %19601
  br label %19603

19603:                                            ; preds = %19602
  br label %19604

19604:                                            ; preds = %19603
  %19605 = load i32, ptr @test_count, align 4, !tbaa !5
  %19606 = add nsw i32 %19605, 1
  store i32 %19606, ptr @test_count, align 4, !tbaa !5
  %19607 = getelementptr inbounds [2 x %struct.s2n_kem_group_params], ptr %453, i64 0, i64 0
  %19608 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef %440, ptr noundef %19607)
  %19609 = icmp eq i32 %19608, -1
  br i1 %19609, label %19610, label %19663

19610:                                            ; preds = %19604
  br label %19611

19611:                                            ; preds = %19610
  br label %19612

19612:                                            ; preds = %19611
  call void @llvm.lifetime.start.p0(i64 4, ptr %456) #11
  %19613 = call ptr @__errno_location() #12
  %19614 = load i32, ptr %19613, align 4, !tbaa !5
  store i32 %19614, ptr %456, align 4, !tbaa !5
  %19615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19616 = call i32 @s2n_print_stacktrace(ptr noundef %19615)
  %19617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19618 = trunc i8 %19617 to i1
  br i1 %19618, label %19619, label %19641

19619:                                            ; preds = %19612
  %19620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19621 = call i32 @fileno(ptr noundef %19620) #11
  %19622 = call i32 @isatty(i32 noundef %19621) #11
  %19623 = icmp ne i32 %19622, 0
  br i1 %19623, label %19624, label %19641

19624:                                            ; preds = %19619
  %19625 = load i32, ptr %456, align 4, !tbaa !5
  %19626 = call ptr @__errno_location() #12
  store i32 %19625, ptr %19626, align 4, !tbaa !5
  %19627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19628 = load i32, ptr @test_count, align 4, !tbaa !5
  %19629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19630 = load i32, ptr %19629, align 4, !tbaa !5
  %19631 = call ptr @s2n_strerror(i32 noundef %19630, ptr noundef @.str.4)
  %19632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19633 = load i32, ptr %19632, align 4, !tbaa !5
  %19634 = call ptr @s2n_strerror_debug(i32 noundef %19633, ptr noundef @.str.4)
  %19635 = call ptr @__errno_location() #12
  %19636 = load i32, ptr %19635, align 4, !tbaa !5
  %19637 = call ptr @strerror(i32 noundef %19636) #11
  %19638 = call ptr @__errno_location() #12
  %19639 = load i32, ptr %19638, align 4, !tbaa !5
  %19640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19627, ptr noundef @.str.2, i32 noundef %19628, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 925, ptr noundef %19631, ptr noundef %19634, ptr noundef %19637, i32 noundef %19639) #11
  br label %19658

19641:                                            ; preds = %19619, %19612
  %19642 = load i32, ptr %456, align 4, !tbaa !5
  %19643 = call ptr @__errno_location() #12
  store i32 %19642, ptr %19643, align 4, !tbaa !5
  %19644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19645 = load i32, ptr @test_count, align 4, !tbaa !5
  %19646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19647 = load i32, ptr %19646, align 4, !tbaa !5
  %19648 = call ptr @s2n_strerror(i32 noundef %19647, ptr noundef @.str.4)
  %19649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19650 = load i32, ptr %19649, align 4, !tbaa !5
  %19651 = call ptr @s2n_strerror_debug(i32 noundef %19650, ptr noundef @.str.4)
  %19652 = call ptr @__errno_location() #12
  %19653 = load i32, ptr %19652, align 4, !tbaa !5
  %19654 = call ptr @strerror(i32 noundef %19653) #11
  %19655 = call ptr @__errno_location() #12
  %19656 = load i32, ptr %19655, align 4, !tbaa !5
  %19657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19644, ptr noundef @.str.5, i32 noundef %19645, ptr noundef @.str.143, ptr noundef @.str.1, i32 noundef 925, ptr noundef %19648, ptr noundef %19651, ptr noundef %19654, i32 noundef %19656) #11
  br label %19658

19658:                                            ; preds = %19641, %19624
  call void @llvm.lifetime.end.p0(i64 4, ptr %456) #11
  br label %19659

19659:                                            ; preds = %19658
  br label %19660

19660:                                            ; preds = %19659
  call void @exit(i32 noundef 1) #13
  unreachable

19661:                                            ; No predecessors!
  br label %19662

19662:                                            ; preds = %19661
  br label %19663

19663:                                            ; preds = %19662, %19604
  br label %19664

19664:                                            ; preds = %19663
  br label %19665

19665:                                            ; preds = %19664
  br label %19666

19666:                                            ; preds = %19665
  %19667 = load i32, ptr @test_count, align 4, !tbaa !5
  %19668 = add nsw i32 %19667, 1
  store i32 %19668, ptr @test_count, align 4, !tbaa !5
  %19669 = getelementptr inbounds [2 x %struct.s2n_kem_group_params], ptr %453, i64 0, i64 1
  %19670 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef %440, ptr noundef %19669)
  %19671 = icmp eq i32 %19670, -1
  br i1 %19671, label %19672, label %19725

19672:                                            ; preds = %19666
  br label %19673

19673:                                            ; preds = %19672
  br label %19674

19674:                                            ; preds = %19673
  call void @llvm.lifetime.start.p0(i64 4, ptr %457) #11
  %19675 = call ptr @__errno_location() #12
  %19676 = load i32, ptr %19675, align 4, !tbaa !5
  store i32 %19676, ptr %457, align 4, !tbaa !5
  %19677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19678 = call i32 @s2n_print_stacktrace(ptr noundef %19677)
  %19679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19680 = trunc i8 %19679 to i1
  br i1 %19680, label %19681, label %19703

19681:                                            ; preds = %19674
  %19682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19683 = call i32 @fileno(ptr noundef %19682) #11
  %19684 = call i32 @isatty(i32 noundef %19683) #11
  %19685 = icmp ne i32 %19684, 0
  br i1 %19685, label %19686, label %19703

19686:                                            ; preds = %19681
  %19687 = load i32, ptr %457, align 4, !tbaa !5
  %19688 = call ptr @__errno_location() #12
  store i32 %19687, ptr %19688, align 4, !tbaa !5
  %19689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19690 = load i32, ptr @test_count, align 4, !tbaa !5
  %19691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19692 = load i32, ptr %19691, align 4, !tbaa !5
  %19693 = call ptr @s2n_strerror(i32 noundef %19692, ptr noundef @.str.4)
  %19694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19695 = load i32, ptr %19694, align 4, !tbaa !5
  %19696 = call ptr @s2n_strerror_debug(i32 noundef %19695, ptr noundef @.str.4)
  %19697 = call ptr @__errno_location() #12
  %19698 = load i32, ptr %19697, align 4, !tbaa !5
  %19699 = call ptr @strerror(i32 noundef %19698) #11
  %19700 = call ptr @__errno_location() #12
  %19701 = load i32, ptr %19700, align 4, !tbaa !5
  %19702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19689, ptr noundef @.str.2, i32 noundef %19690, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 927, ptr noundef %19693, ptr noundef %19696, ptr noundef %19699, i32 noundef %19701) #11
  br label %19720

19703:                                            ; preds = %19681, %19674
  %19704 = load i32, ptr %457, align 4, !tbaa !5
  %19705 = call ptr @__errno_location() #12
  store i32 %19704, ptr %19705, align 4, !tbaa !5
  %19706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19707 = load i32, ptr @test_count, align 4, !tbaa !5
  %19708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19709 = load i32, ptr %19708, align 4, !tbaa !5
  %19710 = call ptr @s2n_strerror(i32 noundef %19709, ptr noundef @.str.4)
  %19711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19712 = load i32, ptr %19711, align 4, !tbaa !5
  %19713 = call ptr @s2n_strerror_debug(i32 noundef %19712, ptr noundef @.str.4)
  %19714 = call ptr @__errno_location() #12
  %19715 = load i32, ptr %19714, align 4, !tbaa !5
  %19716 = call ptr @strerror(i32 noundef %19715) #11
  %19717 = call ptr @__errno_location() #12
  %19718 = load i32, ptr %19717, align 4, !tbaa !5
  %19719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19706, ptr noundef @.str.5, i32 noundef %19707, ptr noundef @.str.142, ptr noundef @.str.1, i32 noundef 927, ptr noundef %19710, ptr noundef %19713, ptr noundef %19716, i32 noundef %19718) #11
  br label %19720

19720:                                            ; preds = %19703, %19686
  call void @llvm.lifetime.end.p0(i64 4, ptr %457) #11
  br label %19721

19721:                                            ; preds = %19720
  br label %19722

19722:                                            ; preds = %19721
  call void @exit(i32 noundef 1) #13
  unreachable

19723:                                            ; No predecessors!
  br label %19724

19724:                                            ; preds = %19723
  br label %19725

19725:                                            ; preds = %19724, %19666
  br label %19726

19726:                                            ; preds = %19725
  br label %19727

19727:                                            ; preds = %19726
  call void @llvm.lifetime.start.p0(i64 8, ptr %458) #11
  %19728 = load ptr, ptr %448, align 8, !tbaa !9
  %19729 = getelementptr inbounds %struct.s2n_kem_group, ptr %19728, i32 0, i32 2
  %19730 = load ptr, ptr %19729, align 8, !tbaa !77
  %19731 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %19730, i32 0, i32 3
  %19732 = load i8, ptr %19731, align 8, !tbaa !64
  %19733 = zext i8 %19732 to i32
  %19734 = load ptr, ptr %448, align 8, !tbaa !9
  %19735 = getelementptr inbounds %struct.s2n_kem_group, ptr %19734, i32 0, i32 3
  %19736 = load ptr, ptr %19735, align 8, !tbaa !70
  %19737 = getelementptr inbounds %struct.s2n_kem, ptr %19736, i32 0, i32 3
  %19738 = load i16, ptr %19737, align 2, !tbaa !82
  %19739 = zext i16 %19738 to i32
  %19740 = add nsw i32 %19733, %19739
  %19741 = sext i32 %19740 to i64
  store i64 %19741, ptr %458, align 8, !tbaa !65
  %19742 = load i32, ptr %5, align 4, !tbaa !5
  %19743 = icmp ne i32 %19742, 0
  br i1 %19743, label %19744, label %19747

19744:                                            ; preds = %19727
  %19745 = load i64, ptr %458, align 8, !tbaa !65
  %19746 = add i64 %19745, 4
  store i64 %19746, ptr %458, align 8, !tbaa !65
  br label %19747

19747:                                            ; preds = %19744, %19727
  br label %19748

19748:                                            ; preds = %19747
  %19749 = load i32, ptr @test_count, align 4, !tbaa !5
  %19750 = add nsw i32 %19749, 1
  store i32 %19750, ptr @test_count, align 4, !tbaa !5
  %19751 = load i64, ptr %458, align 8, !tbaa !65
  %19752 = udiv i64 %19751, 2
  %19753 = trunc i64 %19752 to i32
  %19754 = call i32 @s2n_stuffer_wipe_n(ptr noundef %440, i32 noundef %19753)
  %19755 = icmp eq i32 %19754, -1
  br i1 %19755, label %19756, label %19809

19756:                                            ; preds = %19748
  br label %19757

19757:                                            ; preds = %19756
  br label %19758

19758:                                            ; preds = %19757
  call void @llvm.lifetime.start.p0(i64 4, ptr %459) #11
  %19759 = call ptr @__errno_location() #12
  %19760 = load i32, ptr %19759, align 4, !tbaa !5
  store i32 %19760, ptr %459, align 4, !tbaa !5
  %19761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19762 = call i32 @s2n_print_stacktrace(ptr noundef %19761)
  %19763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19764 = trunc i8 %19763 to i1
  br i1 %19764, label %19765, label %19787

19765:                                            ; preds = %19758
  %19766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19767 = call i32 @fileno(ptr noundef %19766) #11
  %19768 = call i32 @isatty(i32 noundef %19767) #11
  %19769 = icmp ne i32 %19768, 0
  br i1 %19769, label %19770, label %19787

19770:                                            ; preds = %19765
  %19771 = load i32, ptr %459, align 4, !tbaa !5
  %19772 = call ptr @__errno_location() #12
  store i32 %19771, ptr %19772, align 4, !tbaa !5
  %19773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19774 = load i32, ptr @test_count, align 4, !tbaa !5
  %19775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19776 = load i32, ptr %19775, align 4, !tbaa !5
  %19777 = call ptr @s2n_strerror(i32 noundef %19776, ptr noundef @.str.4)
  %19778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19779 = load i32, ptr %19778, align 4, !tbaa !5
  %19780 = call ptr @s2n_strerror_debug(i32 noundef %19779, ptr noundef @.str.4)
  %19781 = call ptr @__errno_location() #12
  %19782 = load i32, ptr %19781, align 4, !tbaa !5
  %19783 = call ptr @strerror(i32 noundef %19782) #11
  %19784 = call ptr @__errno_location() #12
  %19785 = load i32, ptr %19784, align 4, !tbaa !5
  %19786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19773, ptr noundef @.str.2, i32 noundef %19774, ptr noundef @.str.162, ptr noundef @.str.1, i32 noundef 934, ptr noundef %19777, ptr noundef %19780, ptr noundef %19783, i32 noundef %19785) #11
  br label %19804

19787:                                            ; preds = %19765, %19758
  %19788 = load i32, ptr %459, align 4, !tbaa !5
  %19789 = call ptr @__errno_location() #12
  store i32 %19788, ptr %19789, align 4, !tbaa !5
  %19790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19791 = load i32, ptr @test_count, align 4, !tbaa !5
  %19792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19793 = load i32, ptr %19792, align 4, !tbaa !5
  %19794 = call ptr @s2n_strerror(i32 noundef %19793, ptr noundef @.str.4)
  %19795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19796 = load i32, ptr %19795, align 4, !tbaa !5
  %19797 = call ptr @s2n_strerror_debug(i32 noundef %19796, ptr noundef @.str.4)
  %19798 = call ptr @__errno_location() #12
  %19799 = load i32, ptr %19798, align 4, !tbaa !5
  %19800 = call ptr @strerror(i32 noundef %19799) #11
  %19801 = call ptr @__errno_location() #12
  %19802 = load i32, ptr %19801, align 4, !tbaa !5
  %19803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19790, ptr noundef @.str.5, i32 noundef %19791, ptr noundef @.str.162, ptr noundef @.str.1, i32 noundef 934, ptr noundef %19794, ptr noundef %19797, ptr noundef %19800, i32 noundef %19802) #11
  br label %19804

19804:                                            ; preds = %19787, %19770
  call void @llvm.lifetime.end.p0(i64 4, ptr %459) #11
  br label %19805

19805:                                            ; preds = %19804
  br label %19806

19806:                                            ; preds = %19805
  call void @exit(i32 noundef 1) #13
  unreachable

19807:                                            ; No predecessors!
  br label %19808

19808:                                            ; preds = %19807
  br label %19809

19809:                                            ; preds = %19808, %19748
  br label %19810

19810:                                            ; preds = %19809
  br label %19811

19811:                                            ; preds = %19810
  br label %19812

19812:                                            ; preds = %19811
  %19813 = load i32, ptr @test_count, align 4, !tbaa !5
  %19814 = add nsw i32 %19813, 1
  store i32 %19814, ptr @test_count, align 4, !tbaa !5
  %19815 = load i64, ptr %458, align 8, !tbaa !65
  %19816 = udiv i64 %19815, 2
  %19817 = trunc i64 %19816 to i32
  %19818 = call i32 @s2n_stuffer_skip_write(ptr noundef %440, i32 noundef %19817)
  %19819 = icmp eq i32 %19818, -1
  br i1 %19819, label %19820, label %19873

19820:                                            ; preds = %19812
  br label %19821

19821:                                            ; preds = %19820
  br label %19822

19822:                                            ; preds = %19821
  call void @llvm.lifetime.start.p0(i64 4, ptr %460) #11
  %19823 = call ptr @__errno_location() #12
  %19824 = load i32, ptr %19823, align 4, !tbaa !5
  store i32 %19824, ptr %460, align 4, !tbaa !5
  %19825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19826 = call i32 @s2n_print_stacktrace(ptr noundef %19825)
  %19827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19828 = trunc i8 %19827 to i1
  br i1 %19828, label %19829, label %19851

19829:                                            ; preds = %19822
  %19830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19831 = call i32 @fileno(ptr noundef %19830) #11
  %19832 = call i32 @isatty(i32 noundef %19831) #11
  %19833 = icmp ne i32 %19832, 0
  br i1 %19833, label %19834, label %19851

19834:                                            ; preds = %19829
  %19835 = load i32, ptr %460, align 4, !tbaa !5
  %19836 = call ptr @__errno_location() #12
  store i32 %19835, ptr %19836, align 4, !tbaa !5
  %19837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19838 = load i32, ptr @test_count, align 4, !tbaa !5
  %19839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19840 = load i32, ptr %19839, align 4, !tbaa !5
  %19841 = call ptr @s2n_strerror(i32 noundef %19840, ptr noundef @.str.4)
  %19842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19843 = load i32, ptr %19842, align 4, !tbaa !5
  %19844 = call ptr @s2n_strerror_debug(i32 noundef %19843, ptr noundef @.str.4)
  %19845 = call ptr @__errno_location() #12
  %19846 = load i32, ptr %19845, align 4, !tbaa !5
  %19847 = call ptr @strerror(i32 noundef %19846) #11
  %19848 = call ptr @__errno_location() #12
  %19849 = load i32, ptr %19848, align 4, !tbaa !5
  %19850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19837, ptr noundef @.str.2, i32 noundef %19838, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 935, ptr noundef %19841, ptr noundef %19844, ptr noundef %19847, i32 noundef %19849) #11
  br label %19868

19851:                                            ; preds = %19829, %19822
  %19852 = load i32, ptr %460, align 4, !tbaa !5
  %19853 = call ptr @__errno_location() #12
  store i32 %19852, ptr %19853, align 4, !tbaa !5
  %19854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19855 = load i32, ptr @test_count, align 4, !tbaa !5
  %19856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19857 = load i32, ptr %19856, align 4, !tbaa !5
  %19858 = call ptr @s2n_strerror(i32 noundef %19857, ptr noundef @.str.4)
  %19859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19860 = load i32, ptr %19859, align 4, !tbaa !5
  %19861 = call ptr @s2n_strerror_debug(i32 noundef %19860, ptr noundef @.str.4)
  %19862 = call ptr @__errno_location() #12
  %19863 = load i32, ptr %19862, align 4, !tbaa !5
  %19864 = call ptr @strerror(i32 noundef %19863) #11
  %19865 = call ptr @__errno_location() #12
  %19866 = load i32, ptr %19865, align 4, !tbaa !5
  %19867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19854, ptr noundef @.str.5, i32 noundef %19855, ptr noundef @.str.163, ptr noundef @.str.1, i32 noundef 935, ptr noundef %19858, ptr noundef %19861, ptr noundef %19864, i32 noundef %19866) #11
  br label %19868

19868:                                            ; preds = %19851, %19834
  call void @llvm.lifetime.end.p0(i64 4, ptr %460) #11
  br label %19869

19869:                                            ; preds = %19868
  br label %19870

19870:                                            ; preds = %19869
  call void @exit(i32 noundef 1) #13
  unreachable

19871:                                            ; No predecessors!
  br label %19872

19872:                                            ; preds = %19871
  br label %19873

19873:                                            ; preds = %19872, %19812
  br label %19874

19874:                                            ; preds = %19873
  br label %19875

19875:                                            ; preds = %19874
  br label %19876

19876:                                            ; preds = %19875
  %19877 = load i32, ptr @test_count, align 4, !tbaa !5
  %19878 = add nsw i32 %19877, 1
  store i32 %19878, ptr @test_count, align 4, !tbaa !5
  %19879 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %454)
  %19880 = icmp eq i32 %19879, -1
  br i1 %19880, label %19881, label %19934

19881:                                            ; preds = %19876
  br label %19882

19882:                                            ; preds = %19881
  br label %19883

19883:                                            ; preds = %19882
  call void @llvm.lifetime.start.p0(i64 4, ptr %461) #11
  %19884 = call ptr @__errno_location() #12
  %19885 = load i32, ptr %19884, align 4, !tbaa !5
  store i32 %19885, ptr %461, align 4, !tbaa !5
  %19886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19887 = call i32 @s2n_print_stacktrace(ptr noundef %19886)
  %19888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19889 = trunc i8 %19888 to i1
  br i1 %19889, label %19890, label %19912

19890:                                            ; preds = %19883
  %19891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19892 = call i32 @fileno(ptr noundef %19891) #11
  %19893 = call i32 @isatty(i32 noundef %19892) #11
  %19894 = icmp ne i32 %19893, 0
  br i1 %19894, label %19895, label %19912

19895:                                            ; preds = %19890
  %19896 = load i32, ptr %461, align 4, !tbaa !5
  %19897 = call ptr @__errno_location() #12
  store i32 %19896, ptr %19897, align 4, !tbaa !5
  %19898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19899 = load i32, ptr @test_count, align 4, !tbaa !5
  %19900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19901 = load i32, ptr %19900, align 4, !tbaa !5
  %19902 = call ptr @s2n_strerror(i32 noundef %19901, ptr noundef @.str.4)
  %19903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19904 = load i32, ptr %19903, align 4, !tbaa !5
  %19905 = call ptr @s2n_strerror_debug(i32 noundef %19904, ptr noundef @.str.4)
  %19906 = call ptr @__errno_location() #12
  %19907 = load i32, ptr %19906, align 4, !tbaa !5
  %19908 = call ptr @strerror(i32 noundef %19907) #11
  %19909 = call ptr @__errno_location() #12
  %19910 = load i32, ptr %19909, align 4, !tbaa !5
  %19911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19898, ptr noundef @.str.2, i32 noundef %19899, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 937, ptr noundef %19902, ptr noundef %19905, ptr noundef %19908, i32 noundef %19910) #11
  br label %19929

19912:                                            ; preds = %19890, %19883
  %19913 = load i32, ptr %461, align 4, !tbaa !5
  %19914 = call ptr @__errno_location() #12
  store i32 %19913, ptr %19914, align 4, !tbaa !5
  %19915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19916 = load i32, ptr @test_count, align 4, !tbaa !5
  %19917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19918 = load i32, ptr %19917, align 4, !tbaa !5
  %19919 = call ptr @s2n_strerror(i32 noundef %19918, ptr noundef @.str.4)
  %19920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19921 = load i32, ptr %19920, align 4, !tbaa !5
  %19922 = call ptr @s2n_strerror_debug(i32 noundef %19921, ptr noundef @.str.4)
  %19923 = call ptr @__errno_location() #12
  %19924 = load i32, ptr %19923, align 4, !tbaa !5
  %19925 = call ptr @strerror(i32 noundef %19924) #11
  %19926 = call ptr @__errno_location() #12
  %19927 = load i32, ptr %19926, align 4, !tbaa !5
  %19928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19915, ptr noundef @.str.5, i32 noundef %19916, ptr noundef @.str.144, ptr noundef @.str.1, i32 noundef 937, ptr noundef %19919, ptr noundef %19922, ptr noundef %19925, i32 noundef %19927) #11
  br label %19929

19929:                                            ; preds = %19912, %19895
  call void @llvm.lifetime.end.p0(i64 4, ptr %461) #11
  br label %19930

19930:                                            ; preds = %19929
  br label %19931

19931:                                            ; preds = %19930
  call void @exit(i32 noundef 1) #13
  unreachable

19932:                                            ; No predecessors!
  br label %19933

19933:                                            ; preds = %19932
  br label %19934

19934:                                            ; preds = %19933, %19876
  br label %19935

19935:                                            ; preds = %19934
  br label %19936

19936:                                            ; preds = %19935
  br label %19937

19937:                                            ; preds = %19936
  %19938 = load i32, ptr @test_count, align 4, !tbaa !5
  %19939 = add nsw i32 %19938, 1
  store i32 %19939, ptr @test_count, align 4, !tbaa !5
  %19940 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_key_share_extension, i32 0, i32 4), align 8, !tbaa !98
  %19941 = load ptr, ptr %435, align 8, !tbaa !9
  %19942 = call i32 %19940(ptr noundef %19941, ptr noundef %440)
  %19943 = icmp eq i32 %19942, -1
  br i1 %19943, label %19944, label %19997

19944:                                            ; preds = %19937
  br label %19945

19945:                                            ; preds = %19944
  br label %19946

19946:                                            ; preds = %19945
  call void @llvm.lifetime.start.p0(i64 4, ptr %462) #11
  %19947 = call ptr @__errno_location() #12
  %19948 = load i32, ptr %19947, align 4, !tbaa !5
  store i32 %19948, ptr %462, align 4, !tbaa !5
  %19949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19950 = call i32 @s2n_print_stacktrace(ptr noundef %19949)
  %19951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %19952 = trunc i8 %19951 to i1
  br i1 %19952, label %19953, label %19975

19953:                                            ; preds = %19946
  %19954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19955 = call i32 @fileno(ptr noundef %19954) #11
  %19956 = call i32 @isatty(i32 noundef %19955) #11
  %19957 = icmp ne i32 %19956, 0
  br i1 %19957, label %19958, label %19975

19958:                                            ; preds = %19953
  %19959 = load i32, ptr %462, align 4, !tbaa !5
  %19960 = call ptr @__errno_location() #12
  store i32 %19959, ptr %19960, align 4, !tbaa !5
  %19961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19962 = load i32, ptr @test_count, align 4, !tbaa !5
  %19963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19964 = load i32, ptr %19963, align 4, !tbaa !5
  %19965 = call ptr @s2n_strerror(i32 noundef %19964, ptr noundef @.str.4)
  %19966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19967 = load i32, ptr %19966, align 4, !tbaa !5
  %19968 = call ptr @s2n_strerror_debug(i32 noundef %19967, ptr noundef @.str.4)
  %19969 = call ptr @__errno_location() #12
  %19970 = load i32, ptr %19969, align 4, !tbaa !5
  %19971 = call ptr @strerror(i32 noundef %19970) #11
  %19972 = call ptr @__errno_location() #12
  %19973 = load i32, ptr %19972, align 4, !tbaa !5
  %19974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19961, ptr noundef @.str.2, i32 noundef %19962, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 939, ptr noundef %19965, ptr noundef %19968, ptr noundef %19971, i32 noundef %19973) #11
  br label %19992

19975:                                            ; preds = %19953, %19946
  %19976 = load i32, ptr %462, align 4, !tbaa !5
  %19977 = call ptr @__errno_location() #12
  store i32 %19976, ptr %19977, align 4, !tbaa !5
  %19978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19979 = load i32, ptr @test_count, align 4, !tbaa !5
  %19980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19981 = load i32, ptr %19980, align 4, !tbaa !5
  %19982 = call ptr @s2n_strerror(i32 noundef %19981, ptr noundef @.str.4)
  %19983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %19984 = load i32, ptr %19983, align 4, !tbaa !5
  %19985 = call ptr @s2n_strerror_debug(i32 noundef %19984, ptr noundef @.str.4)
  %19986 = call ptr @__errno_location() #12
  %19987 = load i32, ptr %19986, align 4, !tbaa !5
  %19988 = call ptr @strerror(i32 noundef %19987) #11
  %19989 = call ptr @__errno_location() #12
  %19990 = load i32, ptr %19989, align 4, !tbaa !5
  %19991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %19978, ptr noundef @.str.5, i32 noundef %19979, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 939, ptr noundef %19982, ptr noundef %19985, ptr noundef %19988, i32 noundef %19990) #11
  br label %19992

19992:                                            ; preds = %19975, %19958
  call void @llvm.lifetime.end.p0(i64 4, ptr %462) #11
  br label %19993

19993:                                            ; preds = %19992
  br label %19994

19994:                                            ; preds = %19993
  call void @exit(i32 noundef 1) #13
  unreachable

19995:                                            ; No predecessors!
  br label %19996

19996:                                            ; preds = %19995
  br label %19997

19997:                                            ; preds = %19996, %19937
  br label %19998

19998:                                            ; preds = %19997
  br label %19999

19999:                                            ; preds = %19998
  br label %20000

20000:                                            ; preds = %19999
  %20001 = load i32, ptr @test_count, align 4, !tbaa !5
  %20002 = add nsw i32 %20001, 1
  store i32 %20002, ptr @test_count, align 4, !tbaa !5
  %20003 = getelementptr inbounds %struct.s2n_stuffer, ptr %440, i32 0, i32 2
  %20004 = load i32, ptr %20003, align 4, !tbaa !58
  %20005 = getelementptr inbounds %struct.s2n_stuffer, ptr %440, i32 0, i32 1
  %20006 = load i32, ptr %20005, align 8, !tbaa !59
  %20007 = sub i32 %20004, %20006
  %20008 = icmp eq i32 %20007, 0
  br i1 %20008, label %20062, label %20009

20009:                                            ; preds = %20000
  br label %20010

20010:                                            ; preds = %20009
  br label %20011

20011:                                            ; preds = %20010
  call void @llvm.lifetime.start.p0(i64 4, ptr %463) #11
  %20012 = call ptr @__errno_location() #12
  %20013 = load i32, ptr %20012, align 4, !tbaa !5
  store i32 %20013, ptr %463, 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) #11
  %20021 = call i32 @isatty(i32 noundef %20020) #11
  %20022 = icmp ne i32 %20021, 0
  br i1 %20022, label %20023, label %20040

20023:                                            ; preds = %20018
  %20024 = load i32, ptr %463, align 4, !tbaa !5
  %20025 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %20034 = call ptr @__errno_location() #12
  %20035 = load i32, ptr %20034, align 4, !tbaa !5
  %20036 = call ptr @strerror(i32 noundef %20035) #11
  %20037 = call ptr @__errno_location() #12
  %20038 = load i32, ptr %20037, align 4, !tbaa !5
  %20039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20026, ptr noundef @.str.2, i32 noundef %20027, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 940, ptr noundef %20030, ptr noundef %20033, ptr noundef %20036, i32 noundef %20038) #11
  br label %20057

20040:                                            ; preds = %20018, %20011
  %20041 = load i32, ptr %463, align 4, !tbaa !5
  %20042 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %20051 = call ptr @__errno_location() #12
  %20052 = load i32, ptr %20051, align 4, !tbaa !5
  %20053 = call ptr @strerror(i32 noundef %20052) #11
  %20054 = call ptr @__errno_location() #12
  %20055 = load i32, ptr %20054, align 4, !tbaa !5
  %20056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20043, ptr noundef @.str.5, i32 noundef %20044, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 940, ptr noundef %20047, ptr noundef %20050, ptr noundef %20053, i32 noundef %20055) #11
  br label %20057

20057:                                            ; preds = %20040, %20023
  call void @llvm.lifetime.end.p0(i64 4, ptr %463) #11
  br label %20058

20058:                                            ; preds = %20057
  br label %20059

20059:                                            ; preds = %20058
  call void @exit(i32 noundef 1) #13
  unreachable

20060:                                            ; No predecessors!
  br label %20061

20061:                                            ; preds = %20060
  br label %20062

20062:                                            ; preds = %20061, %20000
  br label %20063

20063:                                            ; preds = %20062
  br label %20064

20064:                                            ; preds = %20063
  call void @llvm.lifetime.start.p0(i64 8, ptr %464) #11
  %20065 = load ptr, ptr %435, 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 5
  store ptr %20067, ptr %464, 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 %464, align 8, !tbaa !9
  %20072 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %20071, i32 0, i32 0
  %20073 = load ptr, ptr %20072, align 8, !tbaa !68
  %20074 = load ptr, ptr %448, align 8, !tbaa !9
  %20075 = icmp eq ptr %20073, %20074
  br i1 %20075, label %20129, label %20076

20076:                                            ; preds = %20068
  br label %20077

20077:                                            ; preds = %20076
  br label %20078

20078:                                            ; preds = %20077
  call void @llvm.lifetime.start.p0(i64 4, ptr %465) #11
  %20079 = call ptr @__errno_location() #12
  %20080 = load i32, ptr %20079, align 4, !tbaa !5
  store i32 %20080, ptr %465, align 4, !tbaa !5
  %20081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20082 = call i32 @s2n_print_stacktrace(ptr noundef %20081)
  %20083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20084 = trunc i8 %20083 to i1
  br i1 %20084, label %20085, label %20107

20085:                                            ; preds = %20078
  %20086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20087 = call i32 @fileno(ptr noundef %20086) #11
  %20088 = call i32 @isatty(i32 noundef %20087) #11
  %20089 = icmp ne i32 %20088, 0
  br i1 %20089, label %20090, label %20107

20090:                                            ; preds = %20085
  %20091 = load i32, ptr %465, align 4, !tbaa !5
  %20092 = call ptr @__errno_location() #12
  store i32 %20091, ptr %20092, align 4, !tbaa !5
  %20093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20094 = load i32, ptr @test_count, align 4, !tbaa !5
  %20095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20096 = load i32, ptr %20095, align 4, !tbaa !5
  %20097 = call ptr @s2n_strerror(i32 noundef %20096, ptr noundef @.str.4)
  %20098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20099 = load i32, ptr %20098, align 4, !tbaa !5
  %20100 = call ptr @s2n_strerror_debug(i32 noundef %20099, ptr noundef @.str.4)
  %20101 = call ptr @__errno_location() #12
  %20102 = load i32, ptr %20101, align 4, !tbaa !5
  %20103 = call ptr @strerror(i32 noundef %20102) #11
  %20104 = call ptr @__errno_location() #12
  %20105 = load i32, ptr %20104, align 4, !tbaa !5
  %20106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20093, ptr noundef @.str.2, i32 noundef %20094, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 944, ptr noundef %20097, ptr noundef %20100, ptr noundef %20103, i32 noundef %20105) #11
  br label %20124

20107:                                            ; preds = %20085, %20078
  %20108 = load i32, ptr %465, align 4, !tbaa !5
  %20109 = call ptr @__errno_location() #12
  store i32 %20108, ptr %20109, align 4, !tbaa !5
  %20110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20111 = load i32, ptr @test_count, align 4, !tbaa !5
  %20112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20113 = load i32, ptr %20112, align 4, !tbaa !5
  %20114 = call ptr @s2n_strerror(i32 noundef %20113, ptr noundef @.str.4)
  %20115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20116 = load i32, ptr %20115, align 4, !tbaa !5
  %20117 = call ptr @s2n_strerror_debug(i32 noundef %20116, ptr noundef @.str.4)
  %20118 = call ptr @__errno_location() #12
  %20119 = load i32, ptr %20118, align 4, !tbaa !5
  %20120 = call ptr @strerror(i32 noundef %20119) #11
  %20121 = call ptr @__errno_location() #12
  %20122 = load i32, ptr %20121, align 4, !tbaa !5
  %20123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20110, ptr noundef @.str.5, i32 noundef %20111, ptr noundef @.str.146, ptr noundef @.str.1, i32 noundef 944, ptr noundef %20114, ptr noundef %20117, ptr noundef %20120, i32 noundef %20122) #11
  br label %20124

20124:                                            ; preds = %20107, %20090
  call void @llvm.lifetime.end.p0(i64 4, ptr %465) #11
  br label %20125

20125:                                            ; preds = %20124
  br label %20126

20126:                                            ; preds = %20125
  call void @exit(i32 noundef 1) #13
  unreachable

20127:                                            ; No predecessors!
  br label %20128

20128:                                            ; preds = %20127
  br label %20129

20129:                                            ; preds = %20128, %20068
  br label %20130

20130:                                            ; preds = %20129
  br label %20131

20131:                                            ; preds = %20130
  br label %20132

20132:                                            ; preds = %20131
  %20133 = load i32, ptr @test_count, align 4, !tbaa !5
  %20134 = add nsw i32 %20133, 1
  store i32 %20134, ptr @test_count, align 4, !tbaa !5
  %20135 = load ptr, ptr %464, align 8, !tbaa !9
  %20136 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %20135, i32 0, i32 1
  %20137 = getelementptr inbounds %struct.s2n_kem_params, ptr %20136, i32 0, i32 1
  %20138 = getelementptr inbounds %struct.s2n_blob, ptr %20137, i32 0, i32 0
  %20139 = load ptr, ptr %20138, align 8, !tbaa !99
  %20140 = icmp eq ptr %20139, null
  br i1 %20140, label %20141, label %20194

20141:                                            ; preds = %20132
  br label %20142

20142:                                            ; preds = %20141
  br label %20143

20143:                                            ; preds = %20142
  call void @llvm.lifetime.start.p0(i64 4, ptr %466) #11
  %20144 = call ptr @__errno_location() #12
  %20145 = load i32, ptr %20144, align 4, !tbaa !5
  store i32 %20145, ptr %466, align 4, !tbaa !5
  %20146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20147 = call i32 @s2n_print_stacktrace(ptr noundef %20146)
  %20148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20149 = trunc i8 %20148 to i1
  br i1 %20149, label %20150, label %20172

20150:                                            ; preds = %20143
  %20151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20152 = call i32 @fileno(ptr noundef %20151) #11
  %20153 = call i32 @isatty(i32 noundef %20152) #11
  %20154 = icmp ne i32 %20153, 0
  br i1 %20154, label %20155, label %20172

20155:                                            ; preds = %20150
  %20156 = load i32, ptr %466, align 4, !tbaa !5
  %20157 = call ptr @__errno_location() #12
  store i32 %20156, ptr %20157, align 4, !tbaa !5
  %20158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20159 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %20161, ptr noundef @.str.4)
  %20163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20164 = load i32, ptr %20163, align 4, !tbaa !5
  %20165 = call ptr @s2n_strerror_debug(i32 noundef %20164, ptr noundef @.str.4)
  %20166 = call ptr @__errno_location() #12
  %20167 = load i32, ptr %20166, align 4, !tbaa !5
  %20168 = call ptr @strerror(i32 noundef %20167) #11
  %20169 = call ptr @__errno_location() #12
  %20170 = load i32, ptr %20169, align 4, !tbaa !5
  %20171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20158, ptr noundef @.str.2, i32 noundef %20159, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 945, ptr noundef %20162, ptr noundef %20165, ptr noundef %20168, i32 noundef %20170) #11
  br label %20189

20172:                                            ; preds = %20150, %20143
  %20173 = load i32, ptr %466, align 4, !tbaa !5
  %20174 = call ptr @__errno_location() #12
  store i32 %20173, ptr %20174, align 4, !tbaa !5
  %20175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20176 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %20178, ptr noundef @.str.4)
  %20180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20181 = load i32, ptr %20180, align 4, !tbaa !5
  %20182 = call ptr @s2n_strerror_debug(i32 noundef %20181, ptr noundef @.str.4)
  %20183 = call ptr @__errno_location() #12
  %20184 = load i32, ptr %20183, align 4, !tbaa !5
  %20185 = call ptr @strerror(i32 noundef %20184) #11
  %20186 = call ptr @__errno_location() #12
  %20187 = load i32, ptr %20186, align 4, !tbaa !5
  %20188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20175, ptr noundef @.str.5, i32 noundef %20176, ptr noundef @.str.147, ptr noundef @.str.1, i32 noundef 945, ptr noundef %20179, ptr noundef %20182, ptr noundef %20185, i32 noundef %20187) #11
  br label %20189

20189:                                            ; preds = %20172, %20155
  call void @llvm.lifetime.end.p0(i64 4, ptr %466) #11
  br label %20190

20190:                                            ; preds = %20189
  br label %20191

20191:                                            ; preds = %20190
  call void @exit(i32 noundef 1) #13
  unreachable

20192:                                            ; No predecessors!
  br label %20193

20193:                                            ; preds = %20192
  br label %20194

20194:                                            ; preds = %20193, %20132
  br label %20195

20195:                                            ; preds = %20194
  br label %20196

20196:                                            ; preds = %20195
  br label %20197

20197:                                            ; preds = %20196
  %20198 = load i32, ptr @test_count, align 4, !tbaa !5
  %20199 = add nsw i32 %20198, 1
  store i32 %20199, ptr @test_count, align 4, !tbaa !5
  %20200 = load ptr, ptr %464, align 8, !tbaa !9
  %20201 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %20200, i32 0, i32 2
  %20202 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %20201, i32 0, i32 1
  %20203 = load ptr, ptr %20202, align 8, !tbaa !78
  %20204 = icmp eq ptr %20203, null
  br i1 %20204, label %20205, label %20258

20205:                                            ; preds = %20197
  br label %20206

20206:                                            ; preds = %20205
  br label %20207

20207:                                            ; preds = %20206
  call void @llvm.lifetime.start.p0(i64 4, ptr %467) #11
  %20208 = call ptr @__errno_location() #12
  %20209 = load i32, ptr %20208, align 4, !tbaa !5
  store i32 %20209, ptr %467, align 4, !tbaa !5
  %20210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20211 = call i32 @s2n_print_stacktrace(ptr noundef %20210)
  %20212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20213 = trunc i8 %20212 to i1
  br i1 %20213, label %20214, label %20236

20214:                                            ; preds = %20207
  %20215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20216 = call i32 @fileno(ptr noundef %20215) #11
  %20217 = call i32 @isatty(i32 noundef %20216) #11
  %20218 = icmp ne i32 %20217, 0
  br i1 %20218, label %20219, label %20236

20219:                                            ; preds = %20214
  %20220 = load i32, ptr %467, align 4, !tbaa !5
  %20221 = call ptr @__errno_location() #12
  store i32 %20220, ptr %20221, align 4, !tbaa !5
  %20222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20223 = load i32, ptr @test_count, align 4, !tbaa !5
  %20224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20225 = load i32, ptr %20224, align 4, !tbaa !5
  %20226 = call ptr @s2n_strerror(i32 noundef %20225, ptr noundef @.str.4)
  %20227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20228 = load i32, ptr %20227, align 4, !tbaa !5
  %20229 = call ptr @s2n_strerror_debug(i32 noundef %20228, ptr noundef @.str.4)
  %20230 = call ptr @__errno_location() #12
  %20231 = load i32, ptr %20230, align 4, !tbaa !5
  %20232 = call ptr @strerror(i32 noundef %20231) #11
  %20233 = call ptr @__errno_location() #12
  %20234 = load i32, ptr %20233, align 4, !tbaa !5
  %20235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20222, ptr noundef @.str.2, i32 noundef %20223, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 946, ptr noundef %20226, ptr noundef %20229, ptr noundef %20232, i32 noundef %20234) #11
  br label %20253

20236:                                            ; preds = %20214, %20207
  %20237 = load i32, ptr %467, align 4, !tbaa !5
  %20238 = call ptr @__errno_location() #12
  store i32 %20237, ptr %20238, align 4, !tbaa !5
  %20239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20240 = load i32, ptr @test_count, align 4, !tbaa !5
  %20241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20242 = load i32, ptr %20241, align 4, !tbaa !5
  %20243 = call ptr @s2n_strerror(i32 noundef %20242, ptr noundef @.str.4)
  %20244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20245 = load i32, ptr %20244, align 4, !tbaa !5
  %20246 = call ptr @s2n_strerror_debug(i32 noundef %20245, ptr noundef @.str.4)
  %20247 = call ptr @__errno_location() #12
  %20248 = load i32, ptr %20247, align 4, !tbaa !5
  %20249 = call ptr @strerror(i32 noundef %20248) #11
  %20250 = call ptr @__errno_location() #12
  %20251 = load i32, ptr %20250, align 4, !tbaa !5
  %20252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20239, ptr noundef @.str.5, i32 noundef %20240, ptr noundef @.str.148, ptr noundef @.str.1, i32 noundef 946, ptr noundef %20243, ptr noundef %20246, ptr noundef %20249, i32 noundef %20251) #11
  br label %20253

20253:                                            ; preds = %20236, %20219
  call void @llvm.lifetime.end.p0(i64 4, ptr %467) #11
  br label %20254

20254:                                            ; preds = %20253
  br label %20255

20255:                                            ; preds = %20254
  call void @exit(i32 noundef 1) #13
  unreachable

20256:                                            ; No predecessors!
  br label %20257

20257:                                            ; preds = %20256
  br label %20258

20258:                                            ; preds = %20257, %20197
  br label %20259

20259:                                            ; preds = %20258
  br label %20260

20260:                                            ; preds = %20259
  call void @llvm.lifetime.start.p0(i64 8, ptr %468) #11
  store i64 0, ptr %468, align 8, !tbaa !65
  br label %20261

20261:                                            ; preds = %20329, %20260
  %20262 = load i64, ptr %468, align 8, !tbaa !65
  %20263 = icmp ult i64 %20262, 2
  br i1 %20263, label %20265, label %20264

20264:                                            ; preds = %20261
  store i32 1851, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %468) #11
  br label %20332

20265:                                            ; preds = %20261
  br label %20266

20266:                                            ; preds = %20265
  %20267 = load i32, ptr @test_count, align 4, !tbaa !5
  %20268 = add nsw i32 %20267, 1
  store i32 %20268, ptr @test_count, align 4, !tbaa !5
  %20269 = load i64, ptr %468, align 8, !tbaa !65
  %20270 = getelementptr inbounds [2 x %struct.s2n_kem_group_params], ptr %453, i64 0, i64 %20269
  %20271 = call i32 @s2n_kem_group_free(ptr noundef %20270)
  %20272 = icmp eq i32 %20271, -1
  br i1 %20272, label %20273, label %20326

20273:                                            ; preds = %20266
  br label %20274

20274:                                            ; preds = %20273
  br label %20275

20275:                                            ; preds = %20274
  call void @llvm.lifetime.start.p0(i64 4, ptr %469) #11
  %20276 = call ptr @__errno_location() #12
  %20277 = load i32, ptr %20276, align 4, !tbaa !5
  store i32 %20277, ptr %469, align 4, !tbaa !5
  %20278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20279 = call i32 @s2n_print_stacktrace(ptr noundef %20278)
  %20280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20281 = trunc i8 %20280 to i1
  br i1 %20281, label %20282, label %20304

20282:                                            ; preds = %20275
  %20283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20284 = call i32 @fileno(ptr noundef %20283) #11
  %20285 = call i32 @isatty(i32 noundef %20284) #11
  %20286 = icmp ne i32 %20285, 0
  br i1 %20286, label %20287, label %20304

20287:                                            ; preds = %20282
  %20288 = load i32, ptr %469, align 4, !tbaa !5
  %20289 = call ptr @__errno_location() #12
  store i32 %20288, ptr %20289, align 4, !tbaa !5
  %20290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20291 = load i32, ptr @test_count, align 4, !tbaa !5
  %20292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20293 = load i32, ptr %20292, align 4, !tbaa !5
  %20294 = call ptr @s2n_strerror(i32 noundef %20293, ptr noundef @.str.4)
  %20295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20296 = load i32, ptr %20295, align 4, !tbaa !5
  %20297 = call ptr @s2n_strerror_debug(i32 noundef %20296, ptr noundef @.str.4)
  %20298 = call ptr @__errno_location() #12
  %20299 = load i32, ptr %20298, align 4, !tbaa !5
  %20300 = call ptr @strerror(i32 noundef %20299) #11
  %20301 = call ptr @__errno_location() #12
  %20302 = load i32, ptr %20301, align 4, !tbaa !5
  %20303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20290, ptr noundef @.str.2, i32 noundef %20291, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 949, ptr noundef %20294, ptr noundef %20297, ptr noundef %20300, i32 noundef %20302) #11
  br label %20321

20304:                                            ; preds = %20282, %20275
  %20305 = load i32, ptr %469, align 4, !tbaa !5
  %20306 = call ptr @__errno_location() #12
  store i32 %20305, ptr %20306, align 4, !tbaa !5
  %20307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20308 = load i32, ptr @test_count, align 4, !tbaa !5
  %20309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20310 = load i32, ptr %20309, align 4, !tbaa !5
  %20311 = call ptr @s2n_strerror(i32 noundef %20310, ptr noundef @.str.4)
  %20312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20313 = load i32, ptr %20312, align 4, !tbaa !5
  %20314 = call ptr @s2n_strerror_debug(i32 noundef %20313, ptr noundef @.str.4)
  %20315 = call ptr @__errno_location() #12
  %20316 = load i32, ptr %20315, align 4, !tbaa !5
  %20317 = call ptr @strerror(i32 noundef %20316) #11
  %20318 = call ptr @__errno_location() #12
  %20319 = load i32, ptr %20318, align 4, !tbaa !5
  %20320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20307, ptr noundef @.str.5, i32 noundef %20308, ptr noundef @.str.149, ptr noundef @.str.1, i32 noundef 949, ptr noundef %20311, ptr noundef %20314, ptr noundef %20317, i32 noundef %20319) #11
  br label %20321

20321:                                            ; preds = %20304, %20287
  call void @llvm.lifetime.end.p0(i64 4, ptr %469) #11
  br label %20322

20322:                                            ; preds = %20321
  br label %20323

20323:                                            ; preds = %20322
  call void @exit(i32 noundef 1) #13
  unreachable

20324:                                            ; No predecessors!
  br label %20325

20325:                                            ; preds = %20324
  br label %20326

20326:                                            ; preds = %20325, %20266
  br label %20327

20327:                                            ; preds = %20326
  br label %20328

20328:                                            ; preds = %20327
  br label %20329

20329:                                            ; preds = %20328
  %20330 = load i64, ptr %468, align 8, !tbaa !65
  %20331 = add i64 %20330, 1
  store i64 %20331, ptr %468, align 8, !tbaa !65
  br label %20261, !llvm.loop !111

20332:                                            ; preds = %20264
  br label %20333

20333:                                            ; preds = %20332
  %20334 = load i32, ptr @test_count, align 4, !tbaa !5
  %20335 = add nsw i32 %20334, 1
  store i32 %20335, ptr @test_count, align 4, !tbaa !5
  %20336 = call i32 @s2n_stuffer_free(ptr noundef %440)
  %20337 = icmp eq i32 %20336, -1
  br i1 %20337, label %20338, label %20391

20338:                                            ; preds = %20333
  br label %20339

20339:                                            ; preds = %20338
  br label %20340

20340:                                            ; preds = %20339
  call void @llvm.lifetime.start.p0(i64 4, ptr %470) #11
  %20341 = call ptr @__errno_location() #12
  %20342 = load i32, ptr %20341, align 4, !tbaa !5
  store i32 %20342, ptr %470, align 4, !tbaa !5
  %20343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20344 = call i32 @s2n_print_stacktrace(ptr noundef %20343)
  %20345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20346 = trunc i8 %20345 to i1
  br i1 %20346, label %20347, label %20369

20347:                                            ; preds = %20340
  %20348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20349 = call i32 @fileno(ptr noundef %20348) #11
  %20350 = call i32 @isatty(i32 noundef %20349) #11
  %20351 = icmp ne i32 %20350, 0
  br i1 %20351, label %20352, label %20369

20352:                                            ; preds = %20347
  %20353 = load i32, ptr %470, align 4, !tbaa !5
  %20354 = call ptr @__errno_location() #12
  store i32 %20353, ptr %20354, align 4, !tbaa !5
  %20355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20356 = load i32, ptr @test_count, align 4, !tbaa !5
  %20357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20358 = load i32, ptr %20357, align 4, !tbaa !5
  %20359 = call ptr @s2n_strerror(i32 noundef %20358, ptr noundef @.str.4)
  %20360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20361 = load i32, ptr %20360, align 4, !tbaa !5
  %20362 = call ptr @s2n_strerror_debug(i32 noundef %20361, ptr noundef @.str.4)
  %20363 = call ptr @__errno_location() #12
  %20364 = load i32, ptr %20363, align 4, !tbaa !5
  %20365 = call ptr @strerror(i32 noundef %20364) #11
  %20366 = call ptr @__errno_location() #12
  %20367 = load i32, ptr %20366, align 4, !tbaa !5
  %20368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20355, ptr noundef @.str.2, i32 noundef %20356, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 951, ptr noundef %20359, ptr noundef %20362, ptr noundef %20365, i32 noundef %20367) #11
  br label %20386

20369:                                            ; preds = %20347, %20340
  %20370 = load i32, ptr %470, align 4, !tbaa !5
  %20371 = call ptr @__errno_location() #12
  store i32 %20370, ptr %20371, align 4, !tbaa !5
  %20372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20373 = load i32, ptr @test_count, align 4, !tbaa !5
  %20374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20375 = load i32, ptr %20374, align 4, !tbaa !5
  %20376 = call ptr @s2n_strerror(i32 noundef %20375, ptr noundef @.str.4)
  %20377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20378 = load i32, ptr %20377, align 4, !tbaa !5
  %20379 = call ptr @s2n_strerror_debug(i32 noundef %20378, ptr noundef @.str.4)
  %20380 = call ptr @__errno_location() #12
  %20381 = load i32, ptr %20380, align 4, !tbaa !5
  %20382 = call ptr @strerror(i32 noundef %20381) #11
  %20383 = call ptr @__errno_location() #12
  %20384 = load i32, ptr %20383, align 4, !tbaa !5
  %20385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20372, ptr noundef @.str.5, i32 noundef %20373, ptr noundef @.str.150, ptr noundef @.str.1, i32 noundef 951, ptr noundef %20376, ptr noundef %20379, ptr noundef %20382, i32 noundef %20384) #11
  br label %20386

20386:                                            ; preds = %20369, %20352
  call void @llvm.lifetime.end.p0(i64 4, ptr %470) #11
  br label %20387

20387:                                            ; preds = %20386
  br label %20388

20388:                                            ; preds = %20387
  call void @exit(i32 noundef 1) #13
  unreachable

20389:                                            ; No predecessors!
  br label %20390

20390:                                            ; preds = %20389
  br label %20391

20391:                                            ; preds = %20390, %20333
  br label %20392

20392:                                            ; preds = %20391
  br label %20393

20393:                                            ; preds = %20392
  br label %20394

20394:                                            ; preds = %20393
  %20395 = load i32, ptr @test_count, align 4, !tbaa !5
  %20396 = add nsw i32 %20395, 1
  store i32 %20396, ptr @test_count, align 4, !tbaa !5
  %20397 = load ptr, ptr %435, align 8, !tbaa !9
  %20398 = call i32 @s2n_connection_free(ptr noundef %20397)
  %20399 = icmp eq i32 %20398, -1
  br i1 %20399, label %20400, label %20453

20400:                                            ; preds = %20394
  br label %20401

20401:                                            ; preds = %20400
  br label %20402

20402:                                            ; preds = %20401
  call void @llvm.lifetime.start.p0(i64 4, ptr %471) #11
  %20403 = call ptr @__errno_location() #12
  %20404 = load i32, ptr %20403, align 4, !tbaa !5
  store i32 %20404, ptr %471, align 4, !tbaa !5
  %20405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20406 = call i32 @s2n_print_stacktrace(ptr noundef %20405)
  %20407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20408 = trunc i8 %20407 to i1
  br i1 %20408, label %20409, label %20431

20409:                                            ; preds = %20402
  %20410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20411 = call i32 @fileno(ptr noundef %20410) #11
  %20412 = call i32 @isatty(i32 noundef %20411) #11
  %20413 = icmp ne i32 %20412, 0
  br i1 %20413, label %20414, label %20431

20414:                                            ; preds = %20409
  %20415 = load i32, ptr %471, align 4, !tbaa !5
  %20416 = call ptr @__errno_location() #12
  store i32 %20415, ptr %20416, align 4, !tbaa !5
  %20417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20418 = load i32, ptr @test_count, align 4, !tbaa !5
  %20419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20420 = load i32, ptr %20419, align 4, !tbaa !5
  %20421 = call ptr @s2n_strerror(i32 noundef %20420, ptr noundef @.str.4)
  %20422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20423 = load i32, ptr %20422, align 4, !tbaa !5
  %20424 = call ptr @s2n_strerror_debug(i32 noundef %20423, ptr noundef @.str.4)
  %20425 = call ptr @__errno_location() #12
  %20426 = load i32, ptr %20425, align 4, !tbaa !5
  %20427 = call ptr @strerror(i32 noundef %20426) #11
  %20428 = call ptr @__errno_location() #12
  %20429 = load i32, ptr %20428, align 4, !tbaa !5
  %20430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20417, ptr noundef @.str.2, i32 noundef %20418, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 952, ptr noundef %20421, ptr noundef %20424, ptr noundef %20427, i32 noundef %20429) #11
  br label %20448

20431:                                            ; preds = %20409, %20402
  %20432 = load i32, ptr %471, align 4, !tbaa !5
  %20433 = call ptr @__errno_location() #12
  store i32 %20432, ptr %20433, align 4, !tbaa !5
  %20434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20435 = load i32, ptr @test_count, align 4, !tbaa !5
  %20436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20437 = load i32, ptr %20436, align 4, !tbaa !5
  %20438 = call ptr @s2n_strerror(i32 noundef %20437, ptr noundef @.str.4)
  %20439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20440 = load i32, ptr %20439, align 4, !tbaa !5
  %20441 = call ptr @s2n_strerror_debug(i32 noundef %20440, ptr noundef @.str.4)
  %20442 = call ptr @__errno_location() #12
  %20443 = load i32, ptr %20442, align 4, !tbaa !5
  %20444 = call ptr @strerror(i32 noundef %20443) #11
  %20445 = call ptr @__errno_location() #12
  %20446 = load i32, ptr %20445, align 4, !tbaa !5
  %20447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20434, ptr noundef @.str.5, i32 noundef %20435, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 952, ptr noundef %20438, ptr noundef %20441, ptr noundef %20444, i32 noundef %20446) #11
  br label %20448

20448:                                            ; preds = %20431, %20414
  call void @llvm.lifetime.end.p0(i64 4, ptr %471) #11
  br label %20449

20449:                                            ; preds = %20448
  br label %20450

20450:                                            ; preds = %20449
  call void @exit(i32 noundef 1) #13
  unreachable

20451:                                            ; No predecessors!
  br label %20452

20452:                                            ; preds = %20451
  br label %20453

20453:                                            ; preds = %20452, %20394
  br label %20454

20454:                                            ; preds = %20453
  br label %20455

20455:                                            ; preds = %20454
  call void @llvm.lifetime.end.p0(i64 8, ptr %464) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %458) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %454) #11
  call void @llvm.lifetime.end.p0(i64 224, ptr %453) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %449) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %448) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %442) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %440) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %435) #11
  br label %20456

20456:                                            ; preds = %20455, %18829
  br label %20457

20457:                                            ; preds = %20456, %10810
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %8) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %20458

20458:                                            ; preds = %20457
  %20459 = load i32, ptr %5, align 4, !tbaa !5
  %20460 = add nsw i32 %20459, 1
  store i32 %20460, ptr %5, align 4, !tbaa !5
  br label %652, !llvm.loop !112

20461:                                            ; preds = %655
  br label %20462

20462:                                            ; preds = %20461
  br label %20463

20463:                                            ; preds = %20462
  %20464 = call i32 @s2n_cleanup()
  %20465 = icmp eq i32 %20464, -1
  br i1 %20465, label %20466, label %20517

20466:                                            ; preds = %20463
  br label %20467

20467:                                            ; preds = %20466
  br label %20468

20468:                                            ; preds = %20467
  call void @llvm.lifetime.start.p0(i64 4, ptr %472) #11
  %20469 = call ptr @__errno_location() #12
  %20470 = load i32, ptr %20469, align 4, !tbaa !5
  store i32 %20470, ptr %472, align 4, !tbaa !5
  %20471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20472 = call i32 @s2n_print_stacktrace(ptr noundef %20471)
  %20473 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20474 = trunc i8 %20473 to i1
  br i1 %20474, label %20475, label %20497

20475:                                            ; preds = %20468
  %20476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20477 = call i32 @fileno(ptr noundef %20476) #11
  %20478 = call i32 @isatty(i32 noundef %20477) #11
  %20479 = icmp ne i32 %20478, 0
  br i1 %20479, label %20480, label %20497

20480:                                            ; preds = %20475
  %20481 = load i32, ptr %472, align 4, !tbaa !5
  %20482 = call ptr @__errno_location() #12
  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.4)
  %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.4)
  %20491 = call ptr @__errno_location() #12
  %20492 = load i32, ptr %20491, align 4, !tbaa !5
  %20493 = call ptr @strerror(i32 noundef %20492) #11
  %20494 = call ptr @__errno_location() #12
  %20495 = load i32, ptr %20494, align 4, !tbaa !5
  %20496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20483, ptr noundef @.str.2, i32 noundef %20484, ptr noundef @.str.164, ptr noundef @.str.1, i32 noundef 958, ptr noundef %20487, ptr noundef %20490, ptr noundef %20493, i32 noundef %20495) #11
  br label %20514

20497:                                            ; preds = %20475, %20468
  %20498 = load i32, ptr %472, align 4, !tbaa !5
  %20499 = call ptr @__errno_location() #12
  store i32 %20498, ptr %20499, align 4, !tbaa !5
  %20500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20501 = load i32, ptr @test_count, align 4, !tbaa !5
  %20502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20503 = load i32, ptr %20502, align 4, !tbaa !5
  %20504 = call ptr @s2n_strerror(i32 noundef %20503, ptr noundef @.str.4)
  %20505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20506 = load i32, ptr %20505, align 4, !tbaa !5
  %20507 = call ptr @s2n_strerror_debug(i32 noundef %20506, ptr noundef @.str.4)
  %20508 = call ptr @__errno_location() #12
  %20509 = load i32, ptr %20508, align 4, !tbaa !5
  %20510 = call ptr @strerror(i32 noundef %20509) #11
  %20511 = call ptr @__errno_location() #12
  %20512 = load i32, ptr %20511, align 4, !tbaa !5
  %20513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20500, ptr noundef @.str.5, i32 noundef %20501, ptr noundef @.str.164, ptr noundef @.str.1, i32 noundef 958, ptr noundef %20504, ptr noundef %20507, ptr noundef %20510, i32 noundef %20512) #11
  br label %20514

20514:                                            ; preds = %20497, %20480
  call void @llvm.lifetime.end.p0(i64 4, ptr %472) #11
  br label %20515

20515:                                            ; preds = %20514
  call void @exit(i32 noundef 1) #13
  unreachable

20516:                                            ; No predecessors!
  br label %20517

20517:                                            ; preds = %20516, %20463
  br label %20518

20518:                                            ; preds = %20517
  br label %20519

20519:                                            ; preds = %20518
  br label %20520

20520:                                            ; preds = %20519
  %20521 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %20522 = icmp eq i32 %20521, -1
  br i1 %20522, label %20523, label %20574

20523:                                            ; preds = %20520
  br label %20524

20524:                                            ; preds = %20523
  br label %20525

20525:                                            ; preds = %20524
  call void @llvm.lifetime.start.p0(i64 4, ptr %473) #11
  %20526 = call ptr @__errno_location() #12
  %20527 = load i32, ptr %20526, align 4, !tbaa !5
  store i32 %20527, ptr %473, align 4, !tbaa !5
  %20528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20529 = call i32 @s2n_print_stacktrace(ptr noundef %20528)
  %20530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20531 = trunc i8 %20530 to i1
  br i1 %20531, label %20532, label %20554

20532:                                            ; preds = %20525
  %20533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20534 = call i32 @fileno(ptr noundef %20533) #11
  %20535 = call i32 @isatty(i32 noundef %20534) #11
  %20536 = icmp ne i32 %20535, 0
  br i1 %20536, label %20537, label %20554

20537:                                            ; preds = %20532
  %20538 = load i32, ptr %473, align 4, !tbaa !5
  %20539 = call ptr @__errno_location() #12
  store i32 %20538, ptr %20539, align 4, !tbaa !5
  %20540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20541 = load i32, ptr @test_count, align 4, !tbaa !5
  %20542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20543 = load i32, ptr %20542, align 4, !tbaa !5
  %20544 = call ptr @s2n_strerror(i32 noundef %20543, ptr noundef @.str.4)
  %20545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20546 = load i32, ptr %20545, align 4, !tbaa !5
  %20547 = call ptr @s2n_strerror_debug(i32 noundef %20546, ptr noundef @.str.4)
  %20548 = call ptr @__errno_location() #12
  %20549 = load i32, ptr %20548, align 4, !tbaa !5
  %20550 = call ptr @strerror(i32 noundef %20549) #11
  %20551 = call ptr @__errno_location() #12
  %20552 = load i32, ptr %20551, align 4, !tbaa !5
  %20553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20540, ptr noundef @.str.2, i32 noundef %20541, ptr noundef @.str.165, ptr noundef @.str.1, i32 noundef 958, ptr noundef %20544, ptr noundef %20547, ptr noundef %20550, i32 noundef %20552) #11
  br label %20571

20554:                                            ; preds = %20532, %20525
  %20555 = load i32, ptr %473, align 4, !tbaa !5
  %20556 = call ptr @__errno_location() #12
  store i32 %20555, ptr %20556, align 4, !tbaa !5
  %20557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20558 = load i32, ptr @test_count, align 4, !tbaa !5
  %20559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20560 = load i32, ptr %20559, align 4, !tbaa !5
  %20561 = call ptr @s2n_strerror(i32 noundef %20560, ptr noundef @.str.4)
  %20562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %20563 = load i32, ptr %20562, align 4, !tbaa !5
  %20564 = call ptr @s2n_strerror_debug(i32 noundef %20563, ptr noundef @.str.4)
  %20565 = call ptr @__errno_location() #12
  %20566 = load i32, ptr %20565, align 4, !tbaa !5
  %20567 = call ptr @strerror(i32 noundef %20566) #11
  %20568 = call ptr @__errno_location() #12
  %20569 = load i32, ptr %20568, align 4, !tbaa !5
  %20570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20557, ptr noundef @.str.5, i32 noundef %20558, ptr noundef @.str.165, ptr noundef @.str.1, i32 noundef 958, ptr noundef %20561, ptr noundef %20564, ptr noundef %20567, i32 noundef %20569) #11
  br label %20571

20571:                                            ; preds = %20554, %20537
  call void @llvm.lifetime.end.p0(i64 4, ptr %473) #11
  br label %20572

20572:                                            ; preds = %20571
  call void @exit(i32 noundef 1) #13
  unreachable

20573:                                            ; No predecessors!
  br label %20574

20574:                                            ; preds = %20573, %20520
  br label %20575

20575:                                            ; preds = %20574
  %20576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %20577 = trunc i8 %20576 to i1
  br i1 %20577, label %20578, label %20594

20578:                                            ; preds = %20575
  %20579 = load ptr, ptr @stdout, align 8, !tbaa !9
  %20580 = call i32 @fileno(ptr noundef %20579) #11
  %20581 = call i32 @isatty(i32 noundef %20580) #11
  %20582 = icmp ne i32 %20581, 0
  br i1 %20582, label %20583, label %20594

20583:                                            ; preds = %20578
  %20584 = load i32, ptr @test_count, align 4, !tbaa !5
  %20585 = icmp ne i32 %20584, 0
  br i1 %20585, label %20586, label %20590

20586:                                            ; preds = %20583
  %20587 = load ptr, ptr @stdout, align 8, !tbaa !9
  %20588 = load i32, ptr @test_count, align 4, !tbaa !5
  %20589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20587, ptr noundef @.str.166, i32 noundef %20588) #11
  br label %20593

20590:                                            ; preds = %20583
  %20591 = load ptr, ptr @stdout, align 8, !tbaa !9
  %20592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20591, ptr noundef @.str.167) #11
  br label %20593

20593:                                            ; preds = %20590, %20586
  br label %20605

20594:                                            ; preds = %20578, %20575
  %20595 = load i32, ptr @test_count, align 4, !tbaa !5
  %20596 = icmp ne i32 %20595, 0
  br i1 %20596, label %20597, label %20601

20597:                                            ; preds = %20594
  %20598 = load ptr, ptr @stdout, align 8, !tbaa !9
  %20599 = load i32, ptr @test_count, align 4, !tbaa !5
  %20600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20598, ptr noundef @.str.168, i32 noundef %20599) #11
  br label %20604

20601:                                            ; preds = %20594
  %20602 = load ptr, ptr @stdout, align 8, !tbaa !9
  %20603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20602, ptr noundef @.str.169) #11
  br label %20604

20604:                                            ; preds = %20601, %20597
  br label %20605

20605:                                            ; preds = %20604, %20593
  store i32 0, ptr %1, align 4
  br label %20608

20606:                                            ; No predecessors!
  br label %20607

20607:                                            ; preds = %20606
  store i32 0, ptr %1, align 4
  br label %20608

20608:                                            ; preds = %20607, %20605
  %20609 = load i32, ptr %1, align 4
  ret i32 %20609

20610:                                            ; preds = %12556, %9465
  unreachable
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #1

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #4

declare i32 @s2n_print_stacktrace(ptr noundef) #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #1

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) #2

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #1

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #6

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #7

declare zeroext i1 @s2n_pq_is_enabled() #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_get_kem_preferences(ptr noundef, ptr noundef) #2

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) #2

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_skip_read(ptr noundef, i32 noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare zeroext i1 @s2n_kem_group_is_available(ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #8

declare i32 @s2n_kem_preferences_groups_available(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_wipe(ptr noundef) #2

; 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) #9

declare i32 @s2n_connection_set_all_protocol_versions(ptr noundef, i8 noundef zeroext) #2

declare i32 @s2n_set_connection_hello_retry_flags(ptr noundef) #2

declare ptr @s2n_stuffer_raw_read(ptr noundef, i32 noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #10

declare i32 @s2n_enable_tls13_in_test(...) #2

declare i32 @s2n_set_all_mutually_supported_groups(ptr noundef) #2

declare i32 @s2n_stuffer_alloc_from_hex(ptr noundef, ptr noundef) #2

declare zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef) #2

declare i32 @s2n_free(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_copy_pq_share(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) #0

declare i32 @s2n_public_ecc_keys_are_equal(ptr noundef, ptr noundef) #2

declare ptr @s2n_kem_preferences_get_highest_priority_group(ptr noundef) #2

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

declare i32 @s2n_stuffer_reserve_uint16(ptr noundef, ptr noundef) #2

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

declare i32 @s2n_stuffer_write_vector_size(ptr noundef) #2

declare zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef, i32 noundef) #2

declare i32 @s2n_kem_group_free(ptr noundef) #2

declare i32 @s2n_stuffer_wipe_n(ptr noundef, i32 noundef) #2

declare i32 @s2n_stuffer_skip_write(ptr noundef, i32 noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { 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 #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { noreturn nounwind }
attributes #14 = { 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, !7, i64 16}
!16 = !{!"s2n_kem_preferences", !7, i64 0, !10, i64 8, !7, i64 16, !10, i64 24, !7, i64 32}
!17 = !{!16, !10, i64 24}
!18 = !{!16, !7, i64 32}
!19 = !{!20, !7, i64 0}
!20 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!21 = !{!20, !10, i64 8}
!22 = !{!20, !10, i64 16}
!23 = !{!20, !10, i64 24}
!24 = !{!20, !10, i64 32}
!25 = !{!20, !10, i64 40}
!26 = !{!20, !10, i64 48}
!27 = !{!20, !12, i64 56}
!28 = !{!29, !10, i64 16}
!29 = !{!"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, !30, i64 160, !31, i64 168, !31, 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, !32, i64 240, !10, i64 632, !10, i64 640, !33, i64 648, !39, i64 1144, !42, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !45, i64 1776, !45, i64 1816, !45, i64 1856, !45, i64 1896, !6, i64 1936, !31, i64 1944, !7, i64 1952, !45, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !46, i64 2004, !46, i64 2008, !47, i64 2016, !44, i64 2208, !6, i64 2212, !44, i64 2216, !31, i64 2224, !7, i64 2232, !31, i64 2240, !31, i64 2248, !31, i64 2256, !46, i64 2264, !46, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !38, i64 2792, !6, i64 2816, !38, i64 2824, !38, i64 2848, !38, i64 2872, !49, i64 2896, !51, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !38, i64 3784, !6, i64 3808, !53, i64 3816, !7, i64 3848, !45, i64 3992, !38, i64 4032, !38, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !44, i64 4084, !44, i64 4086, !6, i64 4088, !6, i64 4092, !38, i64 4096, !6, i64 4120, !54, i64 4128, !46, i64 4176, !7, i64 4180, !7, i64 4181}
!30 = !{!"s2n_timer", !31, i64 0}
!31 = !{!"long", !7, i64 0}
!32 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!33 = !{!"s2n_kex_parameters", !34, i64 0, !35, i64 8, !7, i64 24, !35, i64 56, !36, i64 72, !36, i64 184, !7, i64 296, !37, i64 360, !38, i64 448, !38, i64 472}
!34 = !{!"s2n_dh_params", !10, i64 0}
!35 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!36 = !{!"s2n_kem_group_params", !10, i64 0, !37, i64 8, !35, i64 96}
!37 = !{!"s2n_kem_params", !10, i64 0, !38, i64 8, !38, i64 32, !38, i64 56, !12, i64 80}
!38 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!39 = !{!"s2n_handshake_parameters", !40, i64 0, !40, i64 48, !38, i64 96, !6, i64 120, !41, 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}
!40 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!41 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!42 = !{!"s2n_psk_parameters", !6, i64 0, !43, i64 8, !44, i64 40, !44, i64 42, !10, i64 48, !6, i64 56}
!43 = !{!"s2n_array", !38, i64 0, !6, i64 24, !6, i64 28}
!44 = !{!"short", !7, i64 0}
!45 = !{!"s2n_stuffer", !38, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!46 = !{!"", !6, i64 0}
!47 = !{!"s2n_handshake", !45, 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, !48, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!48 = !{!"s2n_offered_early_data", !10, i64 0}
!49 = !{!"s2n_client_hello", !38, i64 0, !50, i64 24, !38, i64 728, !38, i64 752, !38, 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}
!50 = !{!"", !7, i64 0, !38, i64 672, !44, i64 696}
!51 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !44, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !52, i64 48, !12, i64 52}
!52 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!53 = !{!"s2n_ticket_fields", !38, i64 0, !6, i64 24}
!54 = !{!"s2n_post_handshake", !45, i64 0, !7, i64 40}
!55 = !{!56, !10, i64 8}
!56 = !{!"", !44, i64 0, !6, i64 2, !44, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!57 = !{!44, !44, i64 0}
!58 = !{!45, !6, i64 28}
!59 = !{!45, !6, i64 24}
!60 = !{!61, !10, i64 8}
!61 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!62 = !{!63, !44, i64 0}
!63 = !{!"s2n_ecc_named_curve", !44, i64 0, !6, i64 4, !10, i64 8, !7, i64 16, !10, i64 24}
!64 = !{!63, !7, i64 16}
!65 = !{!31, !31, i64 0}
!66 = distinct !{!66, !67}
!67 = !{!"llvm.loop.mustprogress"}
!68 = !{!36, !10, i64 0}
!69 = !{!36, !10, i64 8}
!70 = !{!71, !10, i64 24}
!71 = !{!"s2n_kem_group", !10, i64 0, !44, i64 8, !10, i64 16, !10, i64 24, !12, i64 32}
!72 = !{!36, !10, i64 40}
!73 = !{!36, !6, i64 48}
!74 = !{!75, !44, i64 16}
!75 = !{!"s2n_kem", !10, i64 0, !6, i64 8, !44, i64 12, !44, i64 14, !44, i64 16, !44, i64 18, !44, i64 20, !10, i64 24, !10, i64 32, !10, i64 40}
!76 = !{!36, !10, i64 96}
!77 = !{!71, !10, i64 16}
!78 = !{!36, !10, i64 104}
!79 = !{!35, !10, i64 0}
!80 = !{!35, !10, i64 8}
!81 = !{!71, !44, i64 8}
!82 = !{!75, !44, i64 14}
!83 = !{!71, !12, i64 32}
!84 = !{!29, !7, i64 220}
!85 = !{!29, !10, i64 872}
!86 = !{!29, !10, i64 936}
!87 = !{!29, !6, i64 2172}
!88 = !{!29, !6, i64 2176}
!89 = !{!29, !7, i64 222}
!90 = !{!7, !7, i64 0}
!91 = distinct !{!91, !67}
!92 = !{!29, !10, i64 720}
!93 = !{!29, !10, i64 832}
!94 = !{!29, !10, i64 928}
!95 = !{!29, !10, i64 816}
!96 = !{!29, !6, i64 4088}
!97 = distinct !{!97, !67}
!98 = !{!56, !10, i64 16}
!99 = !{!36, !10, i64 16}
!100 = !{!36, !6, i64 24}
!101 = !{!36, !6, i64 28}
!102 = distinct !{!102, !67}
!103 = !{!38, !10, i64 0}
!104 = distinct !{!104, !67}
!105 = !{!37, !12, i64 80}
!106 = distinct !{!106, !67}
!107 = distinct !{!107, !67}
!108 = distinct !{!108, !67}
!109 = distinct !{!109, !67}
!110 = distinct !{!110, !67}
!111 = distinct !{!111, !67}
!112 = distinct !{!112, !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_kem_preferences = type { i8, ptr, i8, ptr, i8 }
%struct.s2n_cipher_preferences = type { i16, ptr, i8 }
%struct.s2n_signature_preferences = type { i8, ptr }
%struct.s2n_ecc_preferences = type { i8, ptr }
%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_kem_group = type { ptr, i16, ptr, ptr, i8 }
%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_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_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
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [97 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@kem_preferences_all = external local_unnamed_addr constant %struct.s2n_kem_preferences, align 8
@cipher_preferences_test_all_tls13 = external constant %struct.s2n_cipher_preferences, align 8
@s2n_signature_preferences_20200207 = external constant %struct.s2n_signature_preferences, align 8
@s2n_ecc_preferences_20200310 = external constant %struct.s2n_ecc_preferences, align 8
@.str.8 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [83 x i8], align 1
@s2n_client_key_share_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.15 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [54 x i8], align 1
@ALL_SUPPORTED_KEM_GROUPS = external local_unnamed_addr global [8 x ptr], align 16
@.str.25 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [87 x i8], align 1
@hello_retry_req_random = external local_unnamed_addr global [32 x i8], align 16
@.str.67 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [161 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [92 x i8], align 1
@s2n_x25519_mlkem_768 = external constant %struct.s2n_kem_group, align 8
@.str.161 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main() local_unnamed_addr #0 {
  %1 = alloca %struct.s2n_kem_preferences, align 8
  %2 = alloca %struct.s2n_security_policy, align 8
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca %struct.s2n_stuffer, align 8
  %7 = alloca i16, align 2
  %8 = alloca i16, align 2
  %9 = alloca i16, align 2
  %10 = alloca [8 x ptr], align 16
  %11 = alloca %struct.s2n_kem_preferences, align 8
  %12 = alloca %struct.s2n_security_policy, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca %struct.s2n_stuffer, align 8
  %16 = alloca i16, align 2
  %17 = alloca i16, align 2
  %18 = alloca i16, align 2
  %19 = alloca i16, align 2
  %20 = alloca i16, align 2
  %21 = alloca i16, align 2
  %22 = alloca i16, align 2
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca %struct.s2n_stuffer, align 8
  %26 = alloca i16, align 2
  %27 = alloca i16, align 2
  %28 = alloca i16, align 2
  %29 = alloca i16, align 2
  %30 = alloca i16, align 2
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca %struct.s2n_stuffer, align 8
  %34 = alloca %struct.s2n_stuffer, align 8
  %35 = alloca i16, align 2
  %36 = alloca i16, align 2
  %37 = alloca i16, align 2
  %38 = alloca i16, align 2
  %39 = alloca i16, align 2
  %40 = alloca i16, align 2
  %41 = alloca i16, align 2
  %42 = alloca i16, align 2
  %43 = alloca i16, align 2
  %44 = alloca i16, align 2
  %45 = alloca i16, align 2
  %46 = alloca %struct.s2n_stuffer, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca [8 x ptr], align 16
  %50 = alloca %struct.s2n_kem_preferences, align 8
  %51 = alloca %struct.s2n_security_policy, align 8
  %52 = alloca %struct.s2n_stuffer, align 8
  %53 = alloca %struct.s2n_blob, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca ptr, align 8
  %59 = alloca [2 x %struct.s2n_kem_group_params], align 16
  %60 = alloca %struct.s2n_stuffer, align 8
  %61 = alloca %struct.s2n_stuffer_reservation, align 8
  %62 = alloca ptr, align 8
  %63 = alloca %struct.s2n_kem_group_params, align 8
  %64 = alloca %struct.s2n_stuffer, align 8
  %65 = alloca %struct.s2n_stuffer_reservation, align 8
  %66 = alloca ptr, align 8
  %67 = alloca ptr, align 8
  %68 = alloca ptr, align 8
  %69 = alloca [2 x %struct.s2n_kem_group_params], align 16
  %70 = alloca %struct.s2n_stuffer, align 8
  %71 = alloca %struct.s2n_stuffer_reservation, align 8
  %72 = alloca %struct.s2n_stuffer, align 8
  %73 = alloca ptr, align 8
  %74 = alloca ptr, align 8
  %75 = alloca ptr, align 8
  %76 = alloca [2 x %struct.s2n_kem_group_params], align 16
  %77 = alloca %struct.s2n_stuffer_reservation, align 8
  %78 = alloca %struct.s2n_stuffer, align 8
  %79 = alloca ptr, align 8
  %80 = alloca ptr, align 8
  %81 = alloca ptr, align 8
  %82 = alloca [2 x %struct.s2n_kem_group_params], align 16
  %83 = alloca %struct.s2n_stuffer_reservation, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %84 = load ptr, ptr @stdout, align 8, !tbaa !9
  %85 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %84, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %86 = load ptr, ptr @stdout, align 8, !tbaa !9
  %87 = tail call i32 @fflush(ptr noundef %86)
  %88 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %89 = icmp eq i32 %88, -1
  br i1 %89, label %90, label %114

90:                                               ; preds = %0
  %91 = tail call ptr @__errno_location() #13
  %92 = load i32, ptr %91, align 4, !tbaa !5
  %93 = load ptr, ptr @stderr, align 8, !tbaa !9
  %94 = tail call i32 @s2n_print_stacktrace(ptr noundef %93) #12
  %95 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %96 = trunc nuw i8 %95 to i1
  br i1 %96, label %97, label %101

97:                                               ; preds = %90
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = tail call i32 @fileno(ptr noundef %98) #12
  %100 = tail call i32 @isatty(i32 noundef %99) #12
  %.not1311 = icmp eq i32 %100, 0
  br i1 %.not1311, label %101, label %102

101:                                              ; preds = %97, %90
  br label %102

102:                                              ; preds = %97, %101
  %.str.5.sink = phi ptr [ @.str.5, %101 ], [ @.str.2, %97 ]
  store i32 %92, ptr %91, align 4, !tbaa !5
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = load i32, ptr @test_count, align 4, !tbaa !5
  %105 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %106 = load i32, ptr %105, align 4, !tbaa !5
  %107 = tail call ptr @s2n_strerror(i32 noundef %106, ptr noundef nonnull @.str.4) #12
  %108 = load i32, ptr %105, align 4, !tbaa !5
  %109 = tail call ptr @s2n_strerror_debug(i32 noundef %108, ptr noundef nonnull @.str.4) #12
  %110 = load i32, ptr %91, align 4, !tbaa !5
  %111 = tail call ptr @strerror(i32 noundef %110) #12
  %112 = load i32, ptr %91, align 4, !tbaa !5
  %113 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %103, ptr noundef nonnull %.str.5.sink, i32 noundef %104, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %107, ptr noundef %109, ptr noundef %111, i32 noundef %112) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

114:                                              ; preds = %0
  %115 = load i32, ptr @test_count, align 4, !tbaa !5
  %116 = add nsw i32 %115, 1
  store i32 %116, ptr @test_count, align 4, !tbaa !5
  %117 = tail call i32 @s2n_enable_atexit() #12
  %118 = icmp eq i32 %117, -1
  br i1 %118, label %119, label %143

119:                                              ; preds = %114
  %120 = tail call ptr @__errno_location() #13
  %121 = load i32, ptr %120, align 4, !tbaa !5
  %122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %123 = tail call i32 @s2n_print_stacktrace(ptr noundef %122) #12
  %124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %125 = trunc nuw i8 %124 to i1
  br i1 %125, label %126, label %130

126:                                              ; preds = %119
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = tail call i32 @fileno(ptr noundef %127) #12
  %129 = tail call i32 @isatty(i32 noundef %128) #12
  %.not1310 = icmp eq i32 %129, 0
  br i1 %.not1310, label %130, label %131

130:                                              ; preds = %126, %119
  br label %131

131:                                              ; preds = %126, %130
  %.str.5.sink1376 = phi ptr [ @.str.5, %130 ], [ @.str.2, %126 ]
  store i32 %121, ptr %120, align 4, !tbaa !5
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = load i32, ptr @test_count, align 4, !tbaa !5
  %134 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %135 = load i32, ptr %134, align 4, !tbaa !5
  %136 = tail call ptr @s2n_strerror(i32 noundef %135, ptr noundef nonnull @.str.4) #12
  %137 = load i32, ptr %134, align 4, !tbaa !5
  %138 = tail call ptr @s2n_strerror_debug(i32 noundef %137, ptr noundef nonnull @.str.4) #12
  %139 = load i32, ptr %120, align 4, !tbaa !5
  %140 = tail call ptr @strerror(i32 noundef %139) #12
  %141 = load i32, ptr %120, align 4, !tbaa !5
  %142 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %132, ptr noundef nonnull %.str.5.sink1376, i32 noundef %133, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %136, ptr noundef %138, ptr noundef %140, i32 noundef %141) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

143:                                              ; preds = %114
  %144 = tail call i32 @s2n_init() #12
  %145 = icmp eq i32 %144, -1
  br i1 %145, label %235, label %.preheader1330

.preheader1330:                                   ; preds = %143
  %146 = getelementptr inbounds i8, ptr %1, i64 16
  %147 = load i8, ptr getelementptr inbounds (i8, ptr @kem_preferences_all, i64 16), align 8, !tbaa !15
  %148 = getelementptr inbounds i8, ptr %1, i64 24
  %149 = load ptr, ptr getelementptr inbounds (i8, ptr @kem_preferences_all, i64 24), align 8, !tbaa !17
  %150 = getelementptr inbounds i8, ptr %1, i64 32
  %151 = getelementptr inbounds i8, ptr %2, i64 8
  %152 = getelementptr inbounds i8, ptr %2, i64 16
  %153 = getelementptr inbounds i8, ptr %2, i64 24
  %154 = getelementptr inbounds i8, ptr %2, i64 32
  %155 = getelementptr inbounds i8, ptr %2, i64 40
  %156 = getelementptr inbounds i8, ptr %2, i64 48
  %157 = getelementptr inbounds i8, ptr %2, i64 56
  %158 = getelementptr inbounds i8, ptr %2, i64 57
  %159 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_key_share_extension, i64 8), align 8
  %160 = getelementptr inbounds i8, ptr %6, i64 28
  %161 = getelementptr inbounds i8, ptr %6, i64 24
  %162 = getelementptr inbounds i8, ptr %11, i64 16
  %163 = getelementptr inbounds i8, ptr %11, i64 24
  %164 = getelementptr inbounds i8, ptr %11, i64 32
  %165 = getelementptr inbounds i8, ptr %12, i64 8
  %166 = getelementptr inbounds i8, ptr %12, i64 16
  %167 = getelementptr inbounds i8, ptr %12, i64 24
  %168 = getelementptr inbounds i8, ptr %12, i64 32
  %169 = getelementptr inbounds i8, ptr %12, i64 40
  %170 = getelementptr inbounds i8, ptr %12, i64 48
  %171 = getelementptr inbounds i8, ptr %12, i64 56
  %172 = getelementptr inbounds i8, ptr %12, i64 57
  %173 = getelementptr inbounds i8, ptr %15, i64 28
  %174 = getelementptr inbounds i8, ptr %15, i64 24
  %175 = getelementptr inbounds i8, ptr %25, i64 28
  %176 = getelementptr inbounds i8, ptr %25, i64 24
  %177 = getelementptr inbounds i8, ptr %33, i64 28
  %178 = getelementptr inbounds i8, ptr %33, i64 24
  %179 = getelementptr inbounds i8, ptr %34, i64 28
  %180 = getelementptr inbounds i8, ptr %34, i64 24
  %181 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_key_share_extension, i64 16), align 8
  %182 = getelementptr inbounds i8, ptr %46, i64 28
  %183 = getelementptr inbounds i8, ptr %46, i64 24
  %184 = getelementptr inbounds i8, ptr %50, i64 16
  %185 = getelementptr inbounds i8, ptr %50, i64 24
  %186 = getelementptr inbounds i8, ptr %50, i64 32
  %187 = getelementptr inbounds i8, ptr %51, i64 8
  %188 = getelementptr inbounds i8, ptr %51, i64 16
  %189 = getelementptr inbounds i8, ptr %51, i64 24
  %190 = getelementptr inbounds i8, ptr %51, i64 32
  %191 = getelementptr inbounds i8, ptr %51, i64 40
  %192 = getelementptr inbounds i8, ptr %51, i64 48
  %193 = getelementptr inbounds i8, ptr %51, i64 56
  %194 = getelementptr inbounds i8, ptr %51, i64 57
  %195 = getelementptr inbounds i8, ptr %52, i64 28
  %196 = getelementptr inbounds i8, ptr %52, i64 24
  %197 = getelementptr inbounds i8, ptr %59, i64 88
  %198 = getelementptr inbounds i8, ptr %59, i64 112
  %199 = getelementptr inbounds i8, ptr %59, i64 200
  %200 = getelementptr inbounds i8, ptr %60, i64 28
  %201 = getelementptr inbounds i8, ptr %60, i64 24
  %202 = getelementptr inbounds i8, ptr %63, i64 88
  %203 = getelementptr inbounds i8, ptr %64, i64 28
  %204 = getelementptr inbounds i8, ptr %64, i64 24
  %205 = getelementptr inbounds i8, ptr %69, i64 88
  %206 = getelementptr inbounds i8, ptr %69, i64 112
  %207 = getelementptr inbounds i8, ptr %69, i64 200
  %208 = getelementptr inbounds i8, ptr %70, i64 28
  %209 = getelementptr inbounds i8, ptr %70, i64 24
  %210 = getelementptr inbounds i8, ptr %76, i64 88
  %211 = getelementptr inbounds i8, ptr %76, i64 112
  %212 = getelementptr inbounds i8, ptr %76, i64 200
  %213 = getelementptr inbounds i8, ptr %72, i64 28
  %214 = getelementptr inbounds i8, ptr %72, i64 24
  %215 = getelementptr inbounds i8, ptr %82, i64 88
  %216 = getelementptr inbounds i8, ptr %82, i64 112
  %217 = getelementptr inbounds i8, ptr %82, i64 200
  %218 = getelementptr inbounds i8, ptr %78, i64 28
  %219 = getelementptr inbounds i8, ptr %78, i64 24
  %220 = getelementptr inbounds i8, ptr %10, i64 8
  %221 = getelementptr inbounds i8, ptr %10, i64 16
  %222 = getelementptr inbounds i8, ptr %10, i64 24
  %223 = getelementptr inbounds i8, ptr %10, i64 32
  %224 = getelementptr inbounds i8, ptr %10, i64 40
  %225 = getelementptr inbounds i8, ptr %10, i64 48
  %226 = getelementptr inbounds i8, ptr %10, i64 56
  %227 = getelementptr inbounds i8, ptr %49, i64 8
  %228 = getelementptr inbounds i8, ptr %49, i64 16
  %229 = getelementptr inbounds i8, ptr %49, i64 24
  %230 = getelementptr inbounds i8, ptr %49, i64 32
  %231 = getelementptr inbounds i8, ptr %49, i64 40
  %232 = getelementptr inbounds i8, ptr %49, i64 48
  %233 = getelementptr inbounds i8, ptr %49, i64 56
  %234 = getelementptr inbounds i8, ptr %63, i64 8
  br label %262

235:                                              ; preds = %143
  %236 = tail call ptr @__errno_location() #13
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = tail call i32 @s2n_print_stacktrace(ptr noundef %238) #12
  %240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %241 = trunc nuw i8 %240 to i1
  br i1 %241, label %242, label %246

242:                                              ; preds = %235
  %243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %244 = tail call i32 @fileno(ptr noundef %243) #12
  %245 = tail call i32 @isatty(i32 noundef %244) #12
  %.not1309 = icmp eq i32 %245, 0
  br i1 %.not1309, label %246, label %247

246:                                              ; preds = %242, %235
  br label %247

247:                                              ; preds = %242, %246
  %.str.5.sink1387 = phi ptr [ @.str.5, %246 ], [ @.str.2, %242 ]
  store i32 %237, ptr %236, align 4, !tbaa !5
  %248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %249 = load i32, ptr @test_count, align 4, !tbaa !5
  %250 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %251 = load i32, ptr %250, align 4, !tbaa !5
  %252 = tail call ptr @s2n_strerror(i32 noundef %251, ptr noundef nonnull @.str.4) #12
  %253 = load i32, ptr %250, align 4, !tbaa !5
  %254 = tail call ptr @s2n_strerror_debug(i32 noundef %253, ptr noundef nonnull @.str.4) #12
  %255 = load i32, ptr %236, align 4, !tbaa !5
  %256 = tail call ptr @strerror(i32 noundef %255) #12
  %257 = load i32, ptr %236, align 4, !tbaa !5
  %258 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %248, ptr noundef nonnull %.str.5.sink1387, i32 noundef %249, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %252, ptr noundef %254, ptr noundef %256, i32 noundef %257) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

259:                                              ; preds = %9353
  %260 = call i32 @s2n_cleanup() #12
  %261 = icmp eq i32 %260, -1
  br i1 %261, label %9354, label %9378

262:                                              ; preds = %.preheader1330, %9353
  %263 = phi i1 [ false, %.preheader1330 ], [ true, %9353 ]
  %264 = phi i1 [ true, %.preheader1330 ], [ false, %9353 ]
  %.01346 = phi i8 [ 0, %.preheader1330 ], [ 1, %9353 ]
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %1) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %1, i8 0, i64 40, i1 false)
  store i8 %147, ptr %146, align 8, !tbaa !15
  store ptr %149, ptr %148, align 8, !tbaa !17
  %265 = select i1 %263, i8 0, i8 5
  store i8 %265, ptr %150, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %2) #12
  store i8 30, ptr %2, align 8, !tbaa !19
  store ptr @cipher_preferences_test_all_tls13, ptr %151, align 8, !tbaa !21
  store ptr %1, ptr %152, align 8, !tbaa !22
  store ptr @s2n_signature_preferences_20200207, ptr %153, align 8, !tbaa !23
  store ptr null, ptr %154, align 8, !tbaa !24
  store ptr @s2n_ecc_preferences_20200310, ptr %155, align 8, !tbaa !25
  store ptr null, ptr %156, align 8, !tbaa !26
  store i8 0, ptr %157, align 8, !tbaa !27
  store i16 0, ptr %158, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #12
  store i32 0, ptr %3, align 4, !tbaa !5
  %266 = call zeroext i1 @s2n_pq_is_enabled() #12
  br i1 %266, label %775, label %267

267:                                              ; preds = %262
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = add nsw i32 %268, 1
  store i32 %269, ptr @test_count, align 4, !tbaa !5
  %270 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %271 = icmp eq ptr %270, null
  br i1 %271, label %272, label %296

272:                                              ; preds = %267
  %273 = tail call ptr @__errno_location() #13
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %276 = call i32 @s2n_print_stacktrace(ptr noundef %275) #12
  %277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %278 = trunc nuw i8 %277 to i1
  br i1 %278, label %279, label %283

279:                                              ; preds = %272
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = call i32 @fileno(ptr noundef %280) #12
  %282 = call i32 @isatty(i32 noundef %281) #12
  %.not1016 = icmp eq i32 %282, 0
  br i1 %.not1016, label %283, label %284

283:                                              ; preds = %279, %272
  br label %284

284:                                              ; preds = %279, %283
  %.str.5.sink1398 = phi ptr [ @.str.5, %283 ], [ @.str.2, %279 ]
  store i32 %274, ptr %273, align 4, !tbaa !5
  %285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %286 = load i32, ptr @test_count, align 4, !tbaa !5
  %287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %288 = load i32, ptr %287, align 4, !tbaa !5
  %289 = call ptr @s2n_strerror(i32 noundef %288, ptr noundef nonnull @.str.4) #12
  %290 = load i32, ptr %287, align 4, !tbaa !5
  %291 = call ptr @s2n_strerror_debug(i32 noundef %290, ptr noundef nonnull @.str.4) #12
  %292 = load i32, ptr %273, align 4, !tbaa !5
  %293 = call ptr @strerror(i32 noundef %292) #12
  %294 = load i32, ptr %273, align 4, !tbaa !5
  %295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %285, ptr noundef nonnull %.str.5.sink1398, i32 noundef %286, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %289, ptr noundef %291, ptr noundef %293, i32 noundef %294) #14
  call void @exit(i32 noundef 1) #15
  unreachable

296:                                              ; preds = %267
  %297 = getelementptr inbounds i8, ptr %270, i64 16
  store ptr %2, ptr %297, align 8, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #12
  store ptr null, ptr %4, align 8, !tbaa !9
  %298 = load i32, ptr @test_count, align 4, !tbaa !5
  %299 = add nsw i32 %298, 1
  store i32 %299, ptr @test_count, align 4, !tbaa !5
  %300 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %270, ptr noundef nonnull %4) #12
  %301 = icmp eq i32 %300, -1
  br i1 %301, label %302, label %326

302:                                              ; preds = %296
  %303 = tail call ptr @__errno_location() #13
  %304 = load i32, ptr %303, align 4, !tbaa !5
  %305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %306 = call i32 @s2n_print_stacktrace(ptr noundef %305) #12
  %307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %308 = trunc nuw i8 %307 to i1
  br i1 %308, label %309, label %313

309:                                              ; preds = %302
  %310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %311 = call i32 @fileno(ptr noundef %310) #12
  %312 = call i32 @isatty(i32 noundef %311) #12
  %.not1015 = icmp eq i32 %312, 0
  br i1 %.not1015, label %313, label %314

313:                                              ; preds = %309, %302
  br label %314

314:                                              ; preds = %309, %313
  %.str.5.sink1409 = phi ptr [ @.str.5, %313 ], [ @.str.2, %309 ]
  store i32 %304, ptr %303, align 4, !tbaa !5
  %315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %316 = load i32, ptr @test_count, align 4, !tbaa !5
  %317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = call ptr @s2n_strerror(i32 noundef %318, ptr noundef nonnull @.str.4) #12
  %320 = load i32, ptr %317, align 4, !tbaa !5
  %321 = call ptr @s2n_strerror_debug(i32 noundef %320, ptr noundef nonnull @.str.4) #12
  %322 = load i32, ptr %303, align 4, !tbaa !5
  %323 = call ptr @strerror(i32 noundef %322) #12
  %324 = load i32, ptr %303, align 4, !tbaa !5
  %325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %315, ptr noundef nonnull %.str.5.sink1409, i32 noundef %316, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %319, ptr noundef %321, ptr noundef %323, i32 noundef %324) #14
  call void @exit(i32 noundef 1) #15
  unreachable

326:                                              ; preds = %296
  %327 = load i32, ptr @test_count, align 4, !tbaa !5
  %328 = add nsw i32 %327, 1
  store i32 %328, ptr @test_count, align 4, !tbaa !5
  %329 = load ptr, ptr %4, align 8, !tbaa !9
  %330 = icmp eq ptr %329, null
  br i1 %330, label %331, label %355

331:                                              ; preds = %326
  %332 = tail call ptr @__errno_location() #13
  %333 = load i32, ptr %332, align 4, !tbaa !5
  %334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %335 = call i32 @s2n_print_stacktrace(ptr noundef %334) #12
  %336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %337 = trunc nuw i8 %336 to i1
  br i1 %337, label %338, label %342

338:                                              ; preds = %331
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = call i32 @fileno(ptr noundef %339) #12
  %341 = call i32 @isatty(i32 noundef %340) #12
  %.not1014 = icmp eq i32 %341, 0
  br i1 %.not1014, label %342, label %343

342:                                              ; preds = %338, %331
  br label %343

343:                                              ; preds = %338, %342
  %.str.5.sink1420 = phi ptr [ @.str.5, %342 ], [ @.str.2, %338 ]
  store i32 %333, ptr %332, align 4, !tbaa !5
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = load i32, ptr @test_count, align 4, !tbaa !5
  %346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = call ptr @s2n_strerror(i32 noundef %347, ptr noundef nonnull @.str.4) #12
  %349 = load i32, ptr %346, align 4, !tbaa !5
  %350 = call ptr @s2n_strerror_debug(i32 noundef %349, ptr noundef nonnull @.str.4) #12
  %351 = load i32, ptr %332, align 4, !tbaa !5
  %352 = call ptr @strerror(i32 noundef %351) #12
  %353 = load i32, ptr %332, align 4, !tbaa !5
  %354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %344, ptr noundef nonnull %.str.5.sink1420, i32 noundef %345, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %348, ptr noundef %350, ptr noundef %352, i32 noundef %353) #14
  call void @exit(i32 noundef 1) #15
  unreachable

355:                                              ; preds = %326
  %356 = add nsw i32 %327, 2
  store i32 %356, ptr @test_count, align 4, !tbaa !5
  %357 = getelementptr inbounds i8, ptr %329, i64 16
  %358 = load i8, ptr %357, align 8, !tbaa !15
  %359 = icmp eq i8 %358, 8
  br i1 %359, label %384, label %360

360:                                              ; preds = %355
  %361 = tail call ptr @__errno_location() #13
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %364 = call i32 @s2n_print_stacktrace(ptr noundef %363) #12
  %365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %366 = trunc nuw i8 %365 to i1
  br i1 %366, label %367, label %371

367:                                              ; preds = %360
  %368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %369 = call i32 @fileno(ptr noundef %368) #12
  %370 = call i32 @isatty(i32 noundef %369) #12
  %.not1000 = icmp eq i32 %370, 0
  br i1 %.not1000, label %371, label %372

371:                                              ; preds = %367, %360
  br label %372

372:                                              ; preds = %367, %371
  %.str.5.sink1431 = phi ptr [ @.str.5, %371 ], [ @.str.2, %367 ]
  store i32 %362, ptr %361, align 4, !tbaa !5
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = load i32, ptr @test_count, align 4, !tbaa !5
  %375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %376 = load i32, ptr %375, align 4, !tbaa !5
  %377 = call ptr @s2n_strerror(i32 noundef %376, ptr noundef nonnull @.str.4) #12
  %378 = load i32, ptr %375, align 4, !tbaa !5
  %379 = call ptr @s2n_strerror_debug(i32 noundef %378, ptr noundef nonnull @.str.4) #12
  %380 = load i32, ptr %361, align 4, !tbaa !5
  %381 = call ptr @strerror(i32 noundef %380) #12
  %382 = load i32, ptr %361, align 4, !tbaa !5
  %383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %373, ptr noundef nonnull %.str.5.sink1431, i32 noundef %374, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %377, ptr noundef %379, ptr noundef %381, i32 noundef %382) #14
  call void @exit(i32 noundef 1) #15
  unreachable

384:                                              ; preds = %355
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #12
  store ptr null, ptr %5, align 8, !tbaa !9
  %385 = add nsw i32 %327, 3
  store i32 %385, ptr @test_count, align 4, !tbaa !5
  %386 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %270, ptr noundef nonnull %5) #12
  %387 = icmp eq i32 %386, -1
  br i1 %387, label %388, label %412

388:                                              ; preds = %384
  %389 = tail call ptr @__errno_location() #13
  %390 = load i32, ptr %389, align 4, !tbaa !5
  %391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %392 = call i32 @s2n_print_stacktrace(ptr noundef %391) #12
  %393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %394 = trunc nuw i8 %393 to i1
  br i1 %394, label %395, label %399

395:                                              ; preds = %388
  %396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %397 = call i32 @fileno(ptr noundef %396) #12
  %398 = call i32 @isatty(i32 noundef %397) #12
  %.not1013 = icmp eq i32 %398, 0
  br i1 %.not1013, label %399, label %400

399:                                              ; preds = %395, %388
  br label %400

400:                                              ; preds = %395, %399
  %.str.5.sink1442 = phi ptr [ @.str.5, %399 ], [ @.str.2, %395 ]
  store i32 %390, ptr %389, align 4, !tbaa !5
  %401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %402 = load i32, ptr @test_count, align 4, !tbaa !5
  %403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %404 = load i32, ptr %403, align 4, !tbaa !5
  %405 = call ptr @s2n_strerror(i32 noundef %404, ptr noundef nonnull @.str.4) #12
  %406 = load i32, ptr %403, align 4, !tbaa !5
  %407 = call ptr @s2n_strerror_debug(i32 noundef %406, ptr noundef nonnull @.str.4) #12
  %408 = load i32, ptr %389, align 4, !tbaa !5
  %409 = call ptr @strerror(i32 noundef %408) #12
  %410 = load i32, ptr %389, align 4, !tbaa !5
  %411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %401, ptr noundef nonnull %.str.5.sink1442, i32 noundef %402, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %405, ptr noundef %407, ptr noundef %409, i32 noundef %410) #14
  call void @exit(i32 noundef 1) #15
  unreachable

412:                                              ; preds = %384
  %413 = load i32, ptr @test_count, align 4, !tbaa !5
  %414 = add nsw i32 %413, 1
  store i32 %414, ptr @test_count, align 4, !tbaa !5
  %415 = load ptr, ptr %5, align 8, !tbaa !9
  %416 = icmp eq ptr %415, null
  br i1 %416, label %417, label %441

417:                                              ; preds = %412
  %418 = tail call ptr @__errno_location() #13
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %421 = call i32 @s2n_print_stacktrace(ptr noundef %420) #12
  %422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %423 = trunc nuw i8 %422 to i1
  br i1 %423, label %424, label %428

424:                                              ; preds = %417
  %425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %426 = call i32 @fileno(ptr noundef %425) #12
  %427 = call i32 @isatty(i32 noundef %426) #12
  %.not1012 = icmp eq i32 %427, 0
  br i1 %.not1012, label %428, label %429

428:                                              ; preds = %424, %417
  br label %429

429:                                              ; preds = %424, %428
  %.str.5.sink1453 = phi ptr [ @.str.5, %428 ], [ @.str.2, %424 ]
  store i32 %419, ptr %418, align 4, !tbaa !5
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = load i32, ptr @test_count, align 4, !tbaa !5
  %432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = call ptr @s2n_strerror(i32 noundef %433, ptr noundef nonnull @.str.4) #12
  %435 = load i32, ptr %432, align 4, !tbaa !5
  %436 = call ptr @s2n_strerror_debug(i32 noundef %435, ptr noundef nonnull @.str.4) #12
  %437 = load i32, ptr %418, align 4, !tbaa !5
  %438 = call ptr @strerror(i32 noundef %437) #12
  %439 = load i32, ptr %418, align 4, !tbaa !5
  %440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %430, ptr noundef nonnull %.str.5.sink1453, i32 noundef %431, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %434, ptr noundef %436, ptr noundef %438, i32 noundef %439) #14
  call void @exit(i32 noundef 1) #15
  unreachable

441:                                              ; preds = %412
  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)
  %442 = add nsw i32 %413, 2
  store i32 %442, ptr @test_count, align 4, !tbaa !5
  %443 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %6, i32 noundef 1024) #12
  %444 = icmp eq i32 %443, -1
  br i1 %444, label %445, label %469

445:                                              ; preds = %441
  %446 = tail call ptr @__errno_location() #13
  %447 = load i32, ptr %446, align 4, !tbaa !5
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = call i32 @s2n_print_stacktrace(ptr noundef %448) #12
  %450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %451 = trunc nuw i8 %450 to i1
  br i1 %451, label %452, label %456

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

456:                                              ; preds = %452, %445
  br label %457

457:                                              ; preds = %452, %456
  %.str.5.sink1464 = phi ptr [ @.str.5, %456 ], [ @.str.2, %452 ]
  store i32 %447, ptr %446, align 4, !tbaa !5
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = load i32, ptr @test_count, align 4, !tbaa !5
  %460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = call ptr @s2n_strerror(i32 noundef %461, ptr noundef nonnull @.str.4) #12
  %463 = load i32, ptr %460, align 4, !tbaa !5
  %464 = call ptr @s2n_strerror_debug(i32 noundef %463, ptr noundef nonnull @.str.4) #12
  %465 = load i32, ptr %446, align 4, !tbaa !5
  %466 = call ptr @strerror(i32 noundef %465) #12
  %467 = load i32, ptr %446, align 4, !tbaa !5
  %468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %458, ptr noundef nonnull %.str.5.sink1464, i32 noundef %459, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %462, ptr noundef %464, ptr noundef %466, i32 noundef %467) #14
  call void @exit(i32 noundef 1) #15
  unreachable

469:                                              ; preds = %441
  %470 = load i32, ptr @test_count, align 4, !tbaa !5
  %471 = add nsw i32 %470, 1
  store i32 %471, ptr @test_count, align 4, !tbaa !5
  %472 = call i32 %159(ptr noundef nonnull %270, ptr noundef nonnull %6) #12
  %473 = icmp eq i32 %472, -1
  br i1 %473, label %474, label %498

474:                                              ; preds = %469
  %475 = tail call ptr @__errno_location() #13
  %476 = load i32, ptr %475, align 4, !tbaa !5
  %477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %478 = call i32 @s2n_print_stacktrace(ptr noundef %477) #12
  %479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %480 = trunc nuw i8 %479 to i1
  br i1 %480, label %481, label %485

481:                                              ; preds = %474
  %482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %483 = call i32 @fileno(ptr noundef %482) #12
  %484 = call i32 @isatty(i32 noundef %483) #12
  %.not1010 = icmp eq i32 %484, 0
  br i1 %.not1010, label %485, label %486

485:                                              ; preds = %481, %474
  br label %486

486:                                              ; preds = %481, %485
  %.str.5.sink1475 = phi ptr [ @.str.5, %485 ], [ @.str.2, %481 ]
  store i32 %476, ptr %475, align 4, !tbaa !5
  %487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %488 = load i32, ptr @test_count, align 4, !tbaa !5
  %489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %490 = load i32, ptr %489, align 4, !tbaa !5
  %491 = call ptr @s2n_strerror(i32 noundef %490, ptr noundef nonnull @.str.4) #12
  %492 = load i32, ptr %489, align 4, !tbaa !5
  %493 = call ptr @s2n_strerror_debug(i32 noundef %492, ptr noundef nonnull @.str.4) #12
  %494 = load i32, ptr %475, align 4, !tbaa !5
  %495 = call ptr @strerror(i32 noundef %494) #12
  %496 = load i32, ptr %475, align 4, !tbaa !5
  %497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %487, ptr noundef nonnull %.str.5.sink1475, i32 noundef %488, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %491, ptr noundef %493, ptr noundef %495, i32 noundef %496) #14
  call void @exit(i32 noundef 1) #15
  unreachable

498:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %7) #12
  store i16 0, ptr %7, align 2, !tbaa !55
  %499 = load i32, ptr @test_count, align 4, !tbaa !5
  %500 = add nsw i32 %499, 1
  store i32 %500, ptr @test_count, align 4, !tbaa !5
  %501 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %6, ptr noundef nonnull %7) #12
  %502 = icmp eq i32 %501, -1
  br i1 %502, label %503, label %527

503:                                              ; preds = %498
  %504 = tail call ptr @__errno_location() #13
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = call i32 @s2n_print_stacktrace(ptr noundef %506) #12
  %508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %509 = trunc nuw i8 %508 to i1
  br i1 %509, label %510, label %514

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

514:                                              ; preds = %510, %503
  br label %515

515:                                              ; preds = %510, %514
  %.str.5.sink1486 = phi ptr [ @.str.5, %514 ], [ @.str.2, %510 ]
  store i32 %505, ptr %504, align 4, !tbaa !5
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = load i32, ptr @test_count, align 4, !tbaa !5
  %518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %519 = load i32, ptr %518, align 4, !tbaa !5
  %520 = call ptr @s2n_strerror(i32 noundef %519, ptr noundef nonnull @.str.4) #12
  %521 = load i32, ptr %518, align 4, !tbaa !5
  %522 = call ptr @s2n_strerror_debug(i32 noundef %521, ptr noundef nonnull @.str.4) #12
  %523 = load i32, ptr %504, align 4, !tbaa !5
  %524 = call ptr @strerror(i32 noundef %523) #12
  %525 = load i32, ptr %504, align 4, !tbaa !5
  %526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %516, ptr noundef nonnull %.str.5.sink1486, i32 noundef %517, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %520, ptr noundef %522, ptr noundef %524, i32 noundef %525) #14
  call void @exit(i32 noundef 1) #15
  unreachable

527:                                              ; preds = %498
  %528 = load i32, ptr @test_count, align 4, !tbaa !5
  %529 = add nsw i32 %528, 1
  store i32 %529, ptr @test_count, align 4, !tbaa !5
  %530 = load i16, ptr %7, align 2, !tbaa !55
  %531 = zext i16 %530 to i32
  %532 = load i32, ptr %160, align 4, !tbaa !56
  %533 = load i32, ptr %161, align 8, !tbaa !57
  %534 = sub i32 %532, %533
  %535 = icmp eq i32 %534, %531
  br i1 %535, label %560, label %536

536:                                              ; preds = %527
  %537 = tail call ptr @__errno_location() #13
  %538 = load i32, ptr %537, align 4, !tbaa !5
  %539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %540 = call i32 @s2n_print_stacktrace(ptr noundef %539) #12
  %541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %542 = trunc nuw i8 %541 to i1
  br i1 %542, label %543, label %547

543:                                              ; preds = %536
  %544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %545 = call i32 @fileno(ptr noundef %544) #12
  %546 = call i32 @isatty(i32 noundef %545) #12
  %.not1001 = icmp eq i32 %546, 0
  br i1 %.not1001, label %547, label %548

547:                                              ; preds = %543, %536
  br label %548

548:                                              ; preds = %543, %547
  %.str.5.sink1497 = phi ptr [ @.str.5, %547 ], [ @.str.2, %543 ]
  store i32 %538, ptr %537, align 4, !tbaa !5
  %549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %550 = load i32, ptr @test_count, align 4, !tbaa !5
  %551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror(i32 noundef %552, ptr noundef nonnull @.str.4) #12
  %554 = load i32, ptr %551, align 4, !tbaa !5
  %555 = call ptr @s2n_strerror_debug(i32 noundef %554, ptr noundef nonnull @.str.4) #12
  %556 = load i32, ptr %537, align 4, !tbaa !5
  %557 = call ptr @strerror(i32 noundef %556) #12
  %558 = load i32, ptr %537, align 4, !tbaa !5
  %559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %549, ptr noundef nonnull %.str.5.sink1497, i32 noundef %550, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %553, ptr noundef %555, ptr noundef %557, i32 noundef %558) #14
  call void @exit(i32 noundef 1) #15
  unreachable

560:                                              ; preds = %527
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %8) #12
  store i16 0, ptr %8, align 2, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %9) #12
  store i16 0, ptr %9, align 2, !tbaa !55
  %561 = add nsw i32 %528, 2
  store i32 %561, ptr @test_count, align 4, !tbaa !5
  %562 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %6, ptr noundef nonnull %8) #12
  %563 = icmp eq i32 %562, -1
  br i1 %563, label %564, label %588

564:                                              ; preds = %560
  %565 = tail call ptr @__errno_location() #13
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %568 = call i32 @s2n_print_stacktrace(ptr noundef %567) #12
  %569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %570 = trunc nuw i8 %569 to i1
  br i1 %570, label %571, label %575

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

575:                                              ; preds = %571, %564
  br label %576

576:                                              ; preds = %571, %575
  %.str.5.sink1508 = phi ptr [ @.str.5, %575 ], [ @.str.2, %571 ]
  store i32 %566, ptr %565, align 4, !tbaa !5
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = load i32, ptr @test_count, align 4, !tbaa !5
  %579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = call ptr @s2n_strerror(i32 noundef %580, ptr noundef nonnull @.str.4) #12
  %582 = load i32, ptr %579, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror_debug(i32 noundef %582, ptr noundef nonnull @.str.4) #12
  %584 = load i32, ptr %565, align 4, !tbaa !5
  %585 = call ptr @strerror(i32 noundef %584) #12
  %586 = load i32, ptr %565, align 4, !tbaa !5
  %587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %577, ptr noundef nonnull %.str.5.sink1508, i32 noundef %578, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %581, ptr noundef %583, ptr noundef %585, i32 noundef %586) #14
  call void @exit(i32 noundef 1) #15
  unreachable

588:                                              ; preds = %560
  %589 = load i32, ptr @test_count, align 4, !tbaa !5
  %590 = add nsw i32 %589, 1
  store i32 %590, ptr @test_count, align 4, !tbaa !5
  %591 = load i16, ptr %8, align 2, !tbaa !55
  %592 = load ptr, ptr %5, align 8, !tbaa !9
  %593 = getelementptr inbounds i8, ptr %592, i64 8
  %594 = load ptr, ptr %593, align 8, !tbaa !58
  %595 = load ptr, ptr %594, align 8, !tbaa !9
  %596 = load i16, ptr %595, align 8, !tbaa !60
  %597 = icmp eq i16 %591, %596
  br i1 %597, label %622, label %598

598:                                              ; preds = %588
  %599 = tail call ptr @__errno_location() #13
  %600 = load i32, ptr %599, align 4, !tbaa !5
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = call i32 @s2n_print_stacktrace(ptr noundef %601) #12
  %603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %604 = trunc nuw i8 %603 to i1
  br i1 %604, label %605, label %609

605:                                              ; preds = %598
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = call i32 @fileno(ptr noundef %606) #12
  %608 = call i32 @isatty(i32 noundef %607) #12
  %.not1002 = icmp eq i32 %608, 0
  br i1 %.not1002, label %609, label %610

609:                                              ; preds = %605, %598
  br label %610

610:                                              ; preds = %605, %609
  %.str.5.sink1519 = phi ptr [ @.str.5, %609 ], [ @.str.2, %605 ]
  store i32 %600, ptr %599, align 4, !tbaa !5
  %611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %612 = load i32, ptr @test_count, align 4, !tbaa !5
  %613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %614 = load i32, ptr %613, align 4, !tbaa !5
  %615 = call ptr @s2n_strerror(i32 noundef %614, ptr noundef nonnull @.str.4) #12
  %616 = load i32, ptr %613, align 4, !tbaa !5
  %617 = call ptr @s2n_strerror_debug(i32 noundef %616, ptr noundef nonnull @.str.4) #12
  %618 = load i32, ptr %599, align 4, !tbaa !5
  %619 = call ptr @strerror(i32 noundef %618) #12
  %620 = load i32, ptr %599, align 4, !tbaa !5
  %621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %611, ptr noundef nonnull %.str.5.sink1519, i32 noundef %612, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %615, ptr noundef %617, ptr noundef %619, i32 noundef %620) #14
  call void @exit(i32 noundef 1) #15
  unreachable

622:                                              ; preds = %588
  %623 = add nsw i32 %589, 2
  store i32 %623, ptr @test_count, align 4, !tbaa !5
  %624 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %6, ptr noundef nonnull %9) #12
  %625 = icmp eq i32 %624, -1
  br i1 %625, label %626, label %650

626:                                              ; preds = %622
  %627 = tail call ptr @__errno_location() #13
  %628 = load i32, ptr %627, align 4, !tbaa !5
  %629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %630 = call i32 @s2n_print_stacktrace(ptr noundef %629) #12
  %631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %632 = trunc nuw i8 %631 to i1
  br i1 %632, label %633, label %637

633:                                              ; preds = %626
  %634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %635 = call i32 @fileno(ptr noundef %634) #12
  %636 = call i32 @isatty(i32 noundef %635) #12
  %.not1007 = icmp eq i32 %636, 0
  br i1 %.not1007, label %637, label %638

637:                                              ; preds = %633, %626
  br label %638

638:                                              ; preds = %633, %637
  %.str.5.sink1530 = phi ptr [ @.str.5, %637 ], [ @.str.2, %633 ]
  store i32 %628, ptr %627, align 4, !tbaa !5
  %639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %640 = load i32, ptr @test_count, align 4, !tbaa !5
  %641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %642 = load i32, ptr %641, align 4, !tbaa !5
  %643 = call ptr @s2n_strerror(i32 noundef %642, ptr noundef nonnull @.str.4) #12
  %644 = load i32, ptr %641, align 4, !tbaa !5
  %645 = call ptr @s2n_strerror_debug(i32 noundef %644, ptr noundef nonnull @.str.4) #12
  %646 = load i32, ptr %627, align 4, !tbaa !5
  %647 = call ptr @strerror(i32 noundef %646) #12
  %648 = load i32, ptr %627, align 4, !tbaa !5
  %649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %639, ptr noundef nonnull %.str.5.sink1530, i32 noundef %640, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %643, ptr noundef %645, ptr noundef %647, i32 noundef %648) #14
  call void @exit(i32 noundef 1) #15
  unreachable

650:                                              ; preds = %622
  %651 = load i32, ptr @test_count, align 4, !tbaa !5
  %652 = add nsw i32 %651, 1
  store i32 %652, ptr @test_count, align 4, !tbaa !5
  %653 = load i16, ptr %9, align 2, !tbaa !55
  %654 = load ptr, ptr %5, align 8, !tbaa !9
  %655 = getelementptr inbounds i8, ptr %654, i64 8
  %656 = load ptr, ptr %655, align 8, !tbaa !58
  %657 = load ptr, ptr %656, align 8, !tbaa !9
  %658 = getelementptr inbounds i8, ptr %657, i64 16
  %659 = load i8, ptr %658, align 8, !tbaa !62
  %660 = zext i8 %659 to i16
  %661 = icmp eq i16 %653, %660
  br i1 %661, label %686, label %662

662:                                              ; preds = %650
  %663 = tail call ptr @__errno_location() #13
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = call i32 @s2n_print_stacktrace(ptr noundef %665) #12
  %667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %668 = trunc nuw i8 %667 to i1
  br i1 %668, label %669, label %673

669:                                              ; preds = %662
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = call i32 @fileno(ptr noundef %670) #12
  %672 = call i32 @isatty(i32 noundef %671) #12
  %.not1003 = icmp eq i32 %672, 0
  br i1 %.not1003, label %673, label %674

673:                                              ; preds = %669, %662
  br label %674

674:                                              ; preds = %669, %673
  %.str.5.sink1541 = phi ptr [ @.str.5, %673 ], [ @.str.2, %669 ]
  store i32 %664, ptr %663, align 4, !tbaa !5
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = load i32, ptr @test_count, align 4, !tbaa !5
  %677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror(i32 noundef %678, ptr noundef nonnull @.str.4) #12
  %680 = load i32, ptr %677, align 4, !tbaa !5
  %681 = call ptr @s2n_strerror_debug(i32 noundef %680, ptr noundef nonnull @.str.4) #12
  %682 = load i32, ptr %663, align 4, !tbaa !5
  %683 = call ptr @strerror(i32 noundef %682) #12
  %684 = load i32, ptr %663, align 4, !tbaa !5
  %685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %675, ptr noundef nonnull %.str.5.sink1541, i32 noundef %676, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %679, ptr noundef %681, ptr noundef %683, i32 noundef %684) #14
  call void @exit(i32 noundef 1) #15
  unreachable

686:                                              ; preds = %650
  %687 = add nsw i32 %651, 2
  store i32 %687, ptr @test_count, align 4, !tbaa !5
  %688 = zext nneg i16 %653 to i32
  %689 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %6, i32 noundef %688) #12
  %690 = icmp eq i32 %689, -1
  br i1 %690, label %691, label %715

691:                                              ; preds = %686
  %692 = tail call ptr @__errno_location() #13
  %693 = load i32, ptr %692, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = call i32 @s2n_print_stacktrace(ptr noundef %694) #12
  %696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %697 = trunc nuw i8 %696 to i1
  br i1 %697, label %698, label %702

698:                                              ; preds = %691
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = call i32 @fileno(ptr noundef %699) #12
  %701 = call i32 @isatty(i32 noundef %700) #12
  %.not1006 = icmp eq i32 %701, 0
  br i1 %.not1006, label %702, label %703

702:                                              ; preds = %698, %691
  br label %703

703:                                              ; preds = %698, %702
  %.str.5.sink1552 = phi ptr [ @.str.5, %702 ], [ @.str.2, %698 ]
  store i32 %693, ptr %692, align 4, !tbaa !5
  %704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %705 = load i32, ptr @test_count, align 4, !tbaa !5
  %706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %707 = load i32, ptr %706, align 4, !tbaa !5
  %708 = call ptr @s2n_strerror(i32 noundef %707, ptr noundef nonnull @.str.4) #12
  %709 = load i32, ptr %706, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror_debug(i32 noundef %709, ptr noundef nonnull @.str.4) #12
  %711 = load i32, ptr %692, align 4, !tbaa !5
  %712 = call ptr @strerror(i32 noundef %711) #12
  %713 = load i32, ptr %692, align 4, !tbaa !5
  %714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %704, ptr noundef nonnull %.str.5.sink1552, i32 noundef %705, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %708, ptr noundef %710, ptr noundef %712, i32 noundef %713) #14
  call void @exit(i32 noundef 1) #15
  unreachable

715:                                              ; preds = %686
  %716 = load i32, ptr @test_count, align 4, !tbaa !5
  %717 = add nsw i32 %716, 1
  store i32 %717, ptr @test_count, align 4, !tbaa !5
  %718 = load i32, ptr %160, align 4, !tbaa !56
  %719 = load i32, ptr %161, align 8, !tbaa !57
  %720 = icmp eq i32 %718, %719
  br i1 %720, label %745, label %721

721:                                              ; preds = %715
  %722 = tail call ptr @__errno_location() #13
  %723 = load i32, ptr %722, align 4, !tbaa !5
  %724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %725 = call i32 @s2n_print_stacktrace(ptr noundef %724) #12
  %726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %727 = trunc nuw i8 %726 to i1
  br i1 %727, label %728, label %732

728:                                              ; preds = %721
  %729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %730 = call i32 @fileno(ptr noundef %729) #12
  %731 = call i32 @isatty(i32 noundef %730) #12
  %.not1004 = icmp eq i32 %731, 0
  br i1 %.not1004, label %732, label %733

732:                                              ; preds = %728, %721
  br label %733

733:                                              ; preds = %728, %732
  %.str.5.sink1563 = phi ptr [ @.str.5, %732 ], [ @.str.2, %728 ]
  store i32 %723, ptr %722, align 4, !tbaa !5
  %734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %735 = load i32, ptr @test_count, align 4, !tbaa !5
  %736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %737 = load i32, ptr %736, align 4, !tbaa !5
  %738 = call ptr @s2n_strerror(i32 noundef %737, ptr noundef nonnull @.str.4) #12
  %739 = load i32, ptr %736, align 4, !tbaa !5
  %740 = call ptr @s2n_strerror_debug(i32 noundef %739, ptr noundef nonnull @.str.4) #12
  %741 = load i32, ptr %722, align 4, !tbaa !5
  %742 = call ptr @strerror(i32 noundef %741) #12
  %743 = load i32, ptr %722, align 4, !tbaa !5
  %744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %734, ptr noundef nonnull %.str.5.sink1563, i32 noundef %735, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %738, ptr noundef %740, ptr noundef %742, i32 noundef %743) #14
  call void @exit(i32 noundef 1) #15
  unreachable

745:                                              ; preds = %715
  %746 = add nsw i32 %716, 2
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = call i32 @s2n_connection_free(ptr noundef nonnull %270) #12
  %748 = icmp eq i32 %747, -1
  br i1 %748, label %749, label %773

749:                                              ; preds = %745
  %750 = tail call ptr @__errno_location() #13
  %751 = load i32, ptr %750, align 4, !tbaa !5
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = call i32 @s2n_print_stacktrace(ptr noundef %752) #12
  %754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %755 = trunc nuw i8 %754 to i1
  br i1 %755, label %756, label %760

756:                                              ; preds = %749
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = call i32 @fileno(ptr noundef %757) #12
  %759 = call i32 @isatty(i32 noundef %758) #12
  %.not1005 = icmp eq i32 %759, 0
  br i1 %.not1005, label %760, label %761

760:                                              ; preds = %756, %749
  br label %761

761:                                              ; preds = %756, %760
  %.str.5.sink1574 = phi ptr [ @.str.5, %760 ], [ @.str.2, %756 ]
  store i32 %751, ptr %750, align 4, !tbaa !5
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = load i32, ptr @test_count, align 4, !tbaa !5
  %764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %765 = load i32, ptr %764, align 4, !tbaa !5
  %766 = call ptr @s2n_strerror(i32 noundef %765, ptr noundef nonnull @.str.4) #12
  %767 = load i32, ptr %764, align 4, !tbaa !5
  %768 = call ptr @s2n_strerror_debug(i32 noundef %767, ptr noundef nonnull @.str.4) #12
  %769 = load i32, ptr %750, align 4, !tbaa !5
  %770 = call ptr @strerror(i32 noundef %769) #12
  %771 = load i32, ptr %750, align 4, !tbaa !5
  %772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %762, ptr noundef nonnull %.str.5.sink1574, i32 noundef %763, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %766, ptr noundef %768, ptr noundef %770, i32 noundef %771) #14
  call void @exit(i32 noundef 1) #15
  unreachable

773:                                              ; preds = %745
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %7) #12
  %774 = call i32 @s2n_stuffer_free(ptr noundef nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #12
  br label %775

775:                                              ; preds = %773, %262
  %776 = call zeroext i1 @s2n_pq_is_enabled() #12
  br i1 %776, label %.preheader1327, label %.loopexit1328

.preheader1327:                                   ; preds = %775, %4290
  %.09471334 = phi i64 [ %779, %4290 ], [ 0, %775 ]
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %10) #12
  %777 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %.09471334
  %778 = load ptr, ptr %777, align 8, !tbaa !9
  store ptr %778, ptr %10, align 16, !tbaa !9
  %779 = add nuw nsw i64 %.09471334, 1
  %780 = and i64 %779, 7
  %781 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %780
  %782 = load ptr, ptr %781, align 8, !tbaa !9
  store ptr %782, ptr %220, align 8, !tbaa !9
  %783 = add nuw nsw i64 %.09471334, 2
  %784 = and i64 %783, 7
  %785 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %784
  %786 = load ptr, ptr %785, align 8, !tbaa !9
  store ptr %786, ptr %221, align 16, !tbaa !9
  %787 = add nuw nsw i64 %.09471334, 3
  %788 = and i64 %787, 7
  %789 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %788
  %790 = load ptr, ptr %789, align 8, !tbaa !9
  store ptr %790, ptr %222, align 8, !tbaa !9
  %791 = and i64 %.09471334, 7
  %792 = xor i64 %791, 4
  %793 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %792
  %794 = load ptr, ptr %793, align 8, !tbaa !9
  store ptr %794, ptr %223, align 16, !tbaa !9
  %795 = add nuw nsw i64 %.09471334, 5
  %796 = and i64 %795, 7
  %797 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %796
  %798 = load ptr, ptr %797, align 8, !tbaa !9
  store ptr %798, ptr %224, align 8, !tbaa !9
  %799 = add nuw nsw i64 %.09471334, 6
  %800 = and i64 %799, 7
  %801 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %800
  %802 = load ptr, ptr %801, align 8, !tbaa !9
  store ptr %802, ptr %225, align 16, !tbaa !9
  %803 = add nuw nsw i64 %.09471334, 7
  %804 = and i64 %803, 7
  %805 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %804
  %806 = load ptr, ptr %805, align 8, !tbaa !9
  store ptr %806, ptr %226, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %11, i8 0, i64 40, i1 false)
  store i8 8, ptr %162, align 8, !tbaa !15
  store ptr %10, ptr %163, align 8, !tbaa !17
  store i8 %265, ptr %164, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %12) #12
  store i8 30, ptr %12, align 8, !tbaa !19
  store ptr @cipher_preferences_test_all_tls13, ptr %165, align 8, !tbaa !21
  store ptr %11, ptr %166, align 8, !tbaa !22
  store ptr @s2n_signature_preferences_20200207, ptr %167, align 8, !tbaa !23
  store ptr null, ptr %168, align 8, !tbaa !24
  store ptr @s2n_ecc_preferences_20200310, ptr %169, align 8, !tbaa !25
  store ptr null, ptr %170, align 8, !tbaa !26
  store i8 0, ptr %171, align 8, !tbaa !27
  store i16 0, ptr %172, align 1
  %807 = load i32, ptr @test_count, align 4, !tbaa !5
  %808 = add nsw i32 %807, 1
  store i32 %808, ptr @test_count, align 4, !tbaa !5
  %809 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %810 = icmp eq ptr %809, null
  br i1 %810, label %811, label %835

811:                                              ; preds = %.preheader1327
  %812 = tail call ptr @__errno_location() #13
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = call i32 @s2n_print_stacktrace(ptr noundef %814) #12
  %816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %817 = trunc nuw i8 %816 to i1
  br i1 %817, label %818, label %822

818:                                              ; preds = %811
  %819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %820 = call i32 @fileno(ptr noundef %819) #12
  %821 = call i32 @isatty(i32 noundef %820) #12
  %.not1308 = icmp eq i32 %821, 0
  br i1 %.not1308, label %822, label %823

822:                                              ; preds = %818, %811
  br label %823

823:                                              ; preds = %818, %822
  %.str.5.sink1585 = phi ptr [ @.str.5, %822 ], [ @.str.2, %818 ]
  store i32 %813, ptr %812, align 4, !tbaa !5
  %824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %825 = load i32, ptr @test_count, align 4, !tbaa !5
  %826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %827 = load i32, ptr %826, align 4, !tbaa !5
  %828 = call ptr @s2n_strerror(i32 noundef %827, ptr noundef nonnull @.str.4) #12
  %829 = load i32, ptr %826, align 4, !tbaa !5
  %830 = call ptr @s2n_strerror_debug(i32 noundef %829, ptr noundef nonnull @.str.4) #12
  %831 = load i32, ptr %812, align 4, !tbaa !5
  %832 = call ptr @strerror(i32 noundef %831) #12
  %833 = load i32, ptr %812, align 4, !tbaa !5
  %834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %824, ptr noundef nonnull %.str.5.sink1585, i32 noundef %825, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %828, ptr noundef %830, ptr noundef %832, i32 noundef %833) #14
  call void @exit(i32 noundef 1) #15
  unreachable

835:                                              ; preds = %.preheader1327
  %836 = getelementptr inbounds i8, ptr %809, i64 16
  store ptr %12, ptr %836, align 8, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #12
  store ptr null, ptr %13, align 8, !tbaa !9
  %837 = load i32, ptr @test_count, align 4, !tbaa !5
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr @test_count, align 4, !tbaa !5
  %839 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %809, ptr noundef nonnull %13) #12
  %840 = icmp eq i32 %839, -1
  br i1 %840, label %841, label %865

841:                                              ; preds = %835
  %842 = tail call ptr @__errno_location() #13
  %843 = load i32, ptr %842, align 4, !tbaa !5
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = call i32 @s2n_print_stacktrace(ptr noundef %844) #12
  %846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %847 = trunc nuw i8 %846 to i1
  br i1 %847, label %848, label %852

848:                                              ; preds = %841
  %849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %850 = call i32 @fileno(ptr noundef %849) #12
  %851 = call i32 @isatty(i32 noundef %850) #12
  %.not1307 = icmp eq i32 %851, 0
  br i1 %.not1307, label %852, label %853

852:                                              ; preds = %848, %841
  br label %853

853:                                              ; preds = %848, %852
  %.str.5.sink1596 = phi ptr [ @.str.5, %852 ], [ @.str.2, %848 ]
  store i32 %843, ptr %842, align 4, !tbaa !5
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = load i32, ptr @test_count, align 4, !tbaa !5
  %856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror(i32 noundef %857, ptr noundef nonnull @.str.4) #12
  %859 = load i32, ptr %856, align 4, !tbaa !5
  %860 = call ptr @s2n_strerror_debug(i32 noundef %859, ptr noundef nonnull @.str.4) #12
  %861 = load i32, ptr %842, align 4, !tbaa !5
  %862 = call ptr @strerror(i32 noundef %861) #12
  %863 = load i32, ptr %842, align 4, !tbaa !5
  %864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %854, ptr noundef nonnull %.str.5.sink1596, i32 noundef %855, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %858, ptr noundef %860, ptr noundef %862, i32 noundef %863) #14
  call void @exit(i32 noundef 1) #15
  unreachable

865:                                              ; preds = %835
  %866 = load i32, ptr @test_count, align 4, !tbaa !5
  %867 = add nsw i32 %866, 1
  store i32 %867, ptr @test_count, align 4, !tbaa !5
  %868 = load ptr, ptr %13, align 8, !tbaa !9
  %869 = icmp eq ptr %868, null
  br i1 %869, label %870, label %894

870:                                              ; preds = %865
  %871 = tail call ptr @__errno_location() #13
  %872 = load i32, ptr %871, align 4, !tbaa !5
  %873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %874 = call i32 @s2n_print_stacktrace(ptr noundef %873) #12
  %875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %876 = trunc nuw i8 %875 to i1
  br i1 %876, label %877, label %881

877:                                              ; preds = %870
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = call i32 @fileno(ptr noundef %878) #12
  %880 = call i32 @isatty(i32 noundef %879) #12
  %.not1306 = icmp eq i32 %880, 0
  br i1 %.not1306, label %881, label %882

881:                                              ; preds = %877, %870
  br label %882

882:                                              ; preds = %877, %881
  %.str.5.sink1607 = phi ptr [ @.str.5, %881 ], [ @.str.2, %877 ]
  store i32 %872, ptr %871, 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 nonnull @.str.4) #12
  %888 = load i32, ptr %885, align 4, !tbaa !5
  %889 = call ptr @s2n_strerror_debug(i32 noundef %888, ptr noundef nonnull @.str.4) #12
  %890 = load i32, ptr %871, align 4, !tbaa !5
  %891 = call ptr @strerror(i32 noundef %890) #12
  %892 = load i32, ptr %871, align 4, !tbaa !5
  %893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %883, ptr noundef nonnull %.str.5.sink1607, i32 noundef %884, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %887, ptr noundef %889, ptr noundef %891, i32 noundef %892) #14
  call void @exit(i32 noundef 1) #15
  unreachable

894:                                              ; preds = %865
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #12
  store ptr null, ptr %14, align 8, !tbaa !9
  %895 = add nsw i32 %866, 2
  store i32 %895, ptr @test_count, align 4, !tbaa !5
  %896 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %809, ptr noundef nonnull %14) #12
  %897 = icmp eq i32 %896, -1
  br i1 %897, label %898, label %922

898:                                              ; preds = %894
  %899 = tail call ptr @__errno_location() #13
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = call i32 @s2n_print_stacktrace(ptr noundef %901) #12
  %903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %904 = trunc nuw i8 %903 to i1
  br i1 %904, label %905, label %909

905:                                              ; preds = %898
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = call i32 @fileno(ptr noundef %906) #12
  %908 = call i32 @isatty(i32 noundef %907) #12
  %.not1305 = icmp eq i32 %908, 0
  br i1 %.not1305, label %909, label %910

909:                                              ; preds = %905, %898
  br label %910

910:                                              ; preds = %905, %909
  %.str.5.sink1618 = phi ptr [ @.str.5, %909 ], [ @.str.2, %905 ]
  store i32 %900, ptr %899, align 4, !tbaa !5
  %911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %912 = load i32, ptr @test_count, align 4, !tbaa !5
  %913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %914 = load i32, ptr %913, align 4, !tbaa !5
  %915 = call ptr @s2n_strerror(i32 noundef %914, ptr noundef nonnull @.str.4) #12
  %916 = load i32, ptr %913, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror_debug(i32 noundef %916, ptr noundef nonnull @.str.4) #12
  %918 = load i32, ptr %899, align 4, !tbaa !5
  %919 = call ptr @strerror(i32 noundef %918) #12
  %920 = load i32, ptr %899, align 4, !tbaa !5
  %921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %911, ptr noundef nonnull %.str.5.sink1618, i32 noundef %912, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %915, ptr noundef %917, ptr noundef %919, i32 noundef %920) #14
  call void @exit(i32 noundef 1) #15
  unreachable

922:                                              ; preds = %894
  %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 %14, align 8, !tbaa !9
  %926 = icmp eq ptr %925, null
  br i1 %926, label %927, label %951

927:                                              ; preds = %922
  %928 = tail call ptr @__errno_location() #13
  %929 = load i32, ptr %928, align 4, !tbaa !5
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = call i32 @s2n_print_stacktrace(ptr noundef %930) #12
  %932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %933 = trunc nuw i8 %932 to i1
  br i1 %933, label %934, label %938

934:                                              ; preds = %927
  %935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %936 = call i32 @fileno(ptr noundef %935) #12
  %937 = call i32 @isatty(i32 noundef %936) #12
  %.not1304 = icmp eq i32 %937, 0
  br i1 %.not1304, label %938, label %939

938:                                              ; preds = %934, %927
  br label %939

939:                                              ; preds = %934, %938
  %.str.5.sink1629 = phi ptr [ @.str.5, %938 ], [ @.str.2, %934 ]
  store i32 %929, ptr %928, align 4, !tbaa !5
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = load i32, ptr @test_count, align 4, !tbaa !5
  %942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %943 = load i32, ptr %942, align 4, !tbaa !5
  %944 = call ptr @s2n_strerror(i32 noundef %943, ptr noundef nonnull @.str.4) #12
  %945 = load i32, ptr %942, align 4, !tbaa !5
  %946 = call ptr @s2n_strerror_debug(i32 noundef %945, ptr noundef nonnull @.str.4) #12
  %947 = load i32, ptr %928, align 4, !tbaa !5
  %948 = call ptr @strerror(i32 noundef %947) #12
  %949 = load i32, ptr %928, align 4, !tbaa !5
  %950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %940, ptr noundef nonnull %.str.5.sink1629, i32 noundef %941, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %944, ptr noundef %946, ptr noundef %948, i32 noundef %949) #14
  call void @exit(i32 noundef 1) #15
  unreachable

951:                                              ; preds = %922
  %952 = add nsw i32 %923, 2
  store i32 %952, ptr @test_count, align 4, !tbaa !5
  %953 = getelementptr inbounds i8, ptr %925, i64 16
  %954 = load i8, ptr %953, align 8, !tbaa !15
  %955 = icmp eq i8 %954, 8
  br i1 %955, label %980, label %956

956:                                              ; preds = %951
  %957 = tail call ptr @__errno_location() #13
  %958 = load i32, ptr %957, align 4, !tbaa !5
  %959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %960 = call i32 @s2n_print_stacktrace(ptr noundef %959) #12
  %961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %962 = trunc nuw i8 %961 to i1
  br i1 %962, label %963, label %967

963:                                              ; preds = %956
  %964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %965 = call i32 @fileno(ptr noundef %964) #12
  %966 = call i32 @isatty(i32 noundef %965) #12
  %.not1190 = icmp eq i32 %966, 0
  br i1 %.not1190, label %967, label %968

967:                                              ; preds = %963, %956
  br label %968

968:                                              ; preds = %963, %967
  %.str.5.sink1640 = phi ptr [ @.str.5, %967 ], [ @.str.2, %963 ]
  store i32 %958, ptr %957, align 4, !tbaa !5
  %969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %970 = load i32, ptr @test_count, align 4, !tbaa !5
  %971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %972 = load i32, ptr %971, align 4, !tbaa !5
  %973 = call ptr @s2n_strerror(i32 noundef %972, ptr noundef nonnull @.str.4) #12
  %974 = load i32, ptr %971, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror_debug(i32 noundef %974, ptr noundef nonnull @.str.4) #12
  %976 = load i32, ptr %957, align 4, !tbaa !5
  %977 = call ptr @strerror(i32 noundef %976) #12
  %978 = load i32, ptr %957, align 4, !tbaa !5
  %979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %969, ptr noundef nonnull %.str.5.sink1640, i32 noundef %970, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %973, ptr noundef %975, ptr noundef %977, i32 noundef %978) #14
  call void @exit(i32 noundef 1) #15
  unreachable

980:                                              ; preds = %951
  %981 = add nsw i32 %923, 3
  store i32 %981, ptr @test_count, align 4, !tbaa !5
  %982 = load ptr, ptr %10, align 16, !tbaa !9
  %983 = getelementptr inbounds i8, ptr %925, i64 24
  %984 = load ptr, ptr %983, align 8, !tbaa !17
  %985 = load ptr, ptr %984, align 8, !tbaa !9
  %986 = icmp eq ptr %982, %985
  br i1 %986, label %1011, label %987

987:                                              ; preds = %980
  %988 = tail call ptr @__errno_location() #13
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = call i32 @s2n_print_stacktrace(ptr noundef %990) #12
  %992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %993 = trunc nuw i8 %992 to i1
  br i1 %993, label %994, label %998

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

998:                                              ; preds = %994, %987
  br label %999

999:                                              ; preds = %994, %998
  %.str.5.sink1651 = phi ptr [ @.str.5, %998 ], [ @.str.2, %994 ]
  store i32 %989, ptr %988, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call ptr @s2n_strerror(i32 noundef %1003, ptr noundef nonnull @.str.4) #12
  %1005 = load i32, ptr %1002, align 4, !tbaa !5
  %1006 = call ptr @s2n_strerror_debug(i32 noundef %1005, ptr noundef nonnull @.str.4) #12
  %1007 = load i32, ptr %988, align 4, !tbaa !5
  %1008 = call ptr @strerror(i32 noundef %1007) #12
  %1009 = load i32, ptr %988, align 4, !tbaa !5
  %1010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1000, ptr noundef nonnull %.str.5.sink1651, i32 noundef %1001, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %1004, ptr noundef %1006, ptr noundef %1008, i32 noundef %1009) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1011:                                             ; preds = %980
  %1012 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %985) #12
  br i1 %1012, label %1042, label %1013

1013:                                             ; preds = %1011
  %1014 = load i32, ptr @test_count, align 4, !tbaa !5
  %1015 = add nsw i32 %1014, 1
  store i32 %1015, ptr @test_count, align 4, !tbaa !5
  %1016 = call i32 @s2n_connection_free(ptr noundef nonnull %809) #12
  %1017 = icmp eq i32 %1016, -1
  br i1 %1017, label %1018, label %1944

1018:                                             ; preds = %1013
  %1019 = tail call ptr @__errno_location() #13
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = call i32 @s2n_print_stacktrace(ptr noundef %1021) #12
  %1023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1024 = trunc nuw i8 %1023 to i1
  br i1 %1024, label %1025, label %1029

1025:                                             ; preds = %1018
  %1026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1027 = call i32 @fileno(ptr noundef %1026) #12
  %1028 = call i32 @isatty(i32 noundef %1027) #12
  %.not1192 = icmp eq i32 %1028, 0
  br i1 %.not1192, label %1029, label %1030

1029:                                             ; preds = %1025, %1018
  br label %1030

1030:                                             ; preds = %1025, %1029
  %.str.5.sink1662 = phi ptr [ @.str.5, %1029 ], [ @.str.2, %1025 ]
  store i32 %1020, ptr %1019, align 4, !tbaa !5
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = load i32, ptr @test_count, align 4, !tbaa !5
  %1033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1034 = load i32, ptr %1033, align 4, !tbaa !5
  %1035 = call ptr @s2n_strerror(i32 noundef %1034, ptr noundef nonnull @.str.4) #12
  %1036 = load i32, ptr %1033, align 4, !tbaa !5
  %1037 = call ptr @s2n_strerror_debug(i32 noundef %1036, ptr noundef nonnull @.str.4) #12
  %1038 = load i32, ptr %1019, align 4, !tbaa !5
  %1039 = call ptr @strerror(i32 noundef %1038) #12
  %1040 = load i32, ptr %1019, align 4, !tbaa !5
  %1041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1031, ptr noundef nonnull %.str.5.sink1662, i32 noundef %1032, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %1035, ptr noundef %1037, ptr noundef %1039, i32 noundef %1040) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1042:                                             ; preds = %1011
  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)
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = add nsw i32 %1043, 1
  store i32 %1044, ptr @test_count, align 4, !tbaa !5
  %1045 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %15, i32 noundef 4096) #12
  %1046 = icmp eq i32 %1045, -1
  br i1 %1046, label %1047, label %1071

1047:                                             ; preds = %1042
  %1048 = tail call ptr @__errno_location() #13
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = call i32 @s2n_print_stacktrace(ptr noundef %1050) #12
  %1052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1053 = trunc nuw i8 %1052 to i1
  br i1 %1053, label %1054, label %1058

1054:                                             ; preds = %1047
  %1055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1056 = call i32 @fileno(ptr noundef %1055) #12
  %1057 = call i32 @isatty(i32 noundef %1056) #12
  %.not1303 = icmp eq i32 %1057, 0
  br i1 %.not1303, label %1058, label %1059

1058:                                             ; preds = %1054, %1047
  br label %1059

1059:                                             ; preds = %1054, %1058
  %.str.5.sink1673 = phi ptr [ @.str.5, %1058 ], [ @.str.2, %1054 ]
  store i32 %1049, ptr %1048, align 4, !tbaa !5
  %1060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1061 = load i32, ptr @test_count, align 4, !tbaa !5
  %1062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1063 = load i32, ptr %1062, align 4, !tbaa !5
  %1064 = call ptr @s2n_strerror(i32 noundef %1063, ptr noundef nonnull @.str.4) #12
  %1065 = load i32, ptr %1062, align 4, !tbaa !5
  %1066 = call ptr @s2n_strerror_debug(i32 noundef %1065, ptr noundef nonnull @.str.4) #12
  %1067 = load i32, ptr %1048, align 4, !tbaa !5
  %1068 = call ptr @strerror(i32 noundef %1067) #12
  %1069 = load i32, ptr %1048, align 4, !tbaa !5
  %1070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1060, ptr noundef nonnull %.str.5.sink1673, i32 noundef %1061, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %1064, ptr noundef %1066, ptr noundef %1068, i32 noundef %1069) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1071:                                             ; preds = %1042
  %1072 = load i32, ptr @test_count, align 4, !tbaa !5
  %1073 = add nsw i32 %1072, 1
  store i32 %1073, ptr @test_count, align 4, !tbaa !5
  %1074 = call i32 %159(ptr noundef nonnull %809, ptr noundef nonnull %15) #12
  %1075 = icmp eq i32 %1074, -1
  br i1 %1075, label %1076, label %1100

1076:                                             ; preds = %1071
  %1077 = tail call ptr @__errno_location() #13
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1080 = call i32 @s2n_print_stacktrace(ptr noundef %1079) #12
  %1081 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1082 = trunc nuw i8 %1081 to i1
  br i1 %1082, label %1083, label %1087

1083:                                             ; preds = %1076
  %1084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1085 = call i32 @fileno(ptr noundef %1084) #12
  %1086 = call i32 @isatty(i32 noundef %1085) #12
  %.not1302 = icmp eq i32 %1086, 0
  br i1 %.not1302, label %1087, label %1088

1087:                                             ; preds = %1083, %1076
  br label %1088

1088:                                             ; preds = %1083, %1087
  %.str.5.sink1684 = phi ptr [ @.str.5, %1087 ], [ @.str.2, %1083 ]
  store i32 %1078, ptr %1077, align 4, !tbaa !5
  %1089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1090 = load i32, ptr @test_count, align 4, !tbaa !5
  %1091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1092 = load i32, ptr %1091, align 4, !tbaa !5
  %1093 = call ptr @s2n_strerror(i32 noundef %1092, ptr noundef nonnull @.str.4) #12
  %1094 = load i32, ptr %1091, align 4, !tbaa !5
  %1095 = call ptr @s2n_strerror_debug(i32 noundef %1094, ptr noundef nonnull @.str.4) #12
  %1096 = load i32, ptr %1077, align 4, !tbaa !5
  %1097 = call ptr @strerror(i32 noundef %1096) #12
  %1098 = load i32, ptr %1077, align 4, !tbaa !5
  %1099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1089, ptr noundef nonnull %.str.5.sink1684, i32 noundef %1090, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %1093, ptr noundef %1095, ptr noundef %1097, i32 noundef %1098) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1100:                                             ; preds = %1071
  %1101 = getelementptr inbounds i8, ptr %809, i64 832
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = add nsw i32 %1102, 1
  store i32 %1103, ptr @test_count, align 4, !tbaa !5
  %1104 = load ptr, ptr %1101, align 8, !tbaa !63
  %1105 = icmp eq ptr %1104, %982
  br i1 %1105, label %1130, label %1106

1106:                                             ; preds = %1100
  %1107 = tail call ptr @__errno_location() #13
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = call i32 @s2n_print_stacktrace(ptr noundef %1109) #12
  %1111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1112 = trunc nuw i8 %1111 to i1
  br i1 %1112, label %1113, label %1117

1113:                                             ; preds = %1106
  %1114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1115 = call i32 @fileno(ptr noundef %1114) #12
  %1116 = call i32 @isatty(i32 noundef %1115) #12
  %.not1193 = icmp eq i32 %1116, 0
  br i1 %.not1193, label %1117, label %1118

1117:                                             ; preds = %1113, %1106
  br label %1118

1118:                                             ; preds = %1113, %1117
  %.str.5.sink1695 = phi ptr [ @.str.5, %1117 ], [ @.str.2, %1113 ]
  store i32 %1108, ptr %1107, align 4, !tbaa !5
  %1119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1120 = load i32, ptr @test_count, align 4, !tbaa !5
  %1121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call ptr @s2n_strerror(i32 noundef %1122, ptr noundef nonnull @.str.4) #12
  %1124 = load i32, ptr %1121, align 4, !tbaa !5
  %1125 = call ptr @s2n_strerror_debug(i32 noundef %1124, ptr noundef nonnull @.str.4) #12
  %1126 = load i32, ptr %1107, align 4, !tbaa !5
  %1127 = call ptr @strerror(i32 noundef %1126) #12
  %1128 = load i32, ptr %1107, align 4, !tbaa !5
  %1129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1119, ptr noundef nonnull %.str.5.sink1695, i32 noundef %1120, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %1123, ptr noundef %1125, ptr noundef %1127, i32 noundef %1128) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1130:                                             ; preds = %1100
  %1131 = add nsw i32 %1102, 2
  store i32 %1131, ptr @test_count, align 4, !tbaa !5
  %1132 = getelementptr inbounds i8, ptr %809, i64 840
  %1133 = load ptr, ptr %1132, align 8, !tbaa !64
  %1134 = getelementptr inbounds i8, ptr %985, i64 24
  %1135 = load ptr, ptr %1134, align 8, !tbaa !65
  %1136 = icmp eq ptr %1133, %1135
  br i1 %1136, label %1161, label %1137

1137:                                             ; preds = %1130
  %1138 = tail call ptr @__errno_location() #13
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = call i32 @s2n_print_stacktrace(ptr noundef %1140) #12
  %1142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1143 = trunc nuw i8 %1142 to i1
  br i1 %1143, label %1144, label %1148

1144:                                             ; preds = %1137
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = call i32 @fileno(ptr noundef %1145) #12
  %1147 = call i32 @isatty(i32 noundef %1146) #12
  %.not1194 = icmp eq i32 %1147, 0
  br i1 %.not1194, label %1148, label %1149

1148:                                             ; preds = %1144, %1137
  br label %1149

1149:                                             ; preds = %1144, %1148
  %.str.5.sink1706 = phi ptr [ @.str.5, %1148 ], [ @.str.2, %1144 ]
  store i32 %1139, ptr %1138, align 4, !tbaa !5
  %1150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1151 = load i32, ptr @test_count, align 4, !tbaa !5
  %1152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1153 = load i32, ptr %1152, align 4, !tbaa !5
  %1154 = call ptr @s2n_strerror(i32 noundef %1153, ptr noundef nonnull @.str.4) #12
  %1155 = load i32, ptr %1152, align 4, !tbaa !5
  %1156 = call ptr @s2n_strerror_debug(i32 noundef %1155, ptr noundef nonnull @.str.4) #12
  %1157 = load i32, ptr %1138, align 4, !tbaa !5
  %1158 = call ptr @strerror(i32 noundef %1157) #12
  %1159 = load i32, ptr %1138, align 4, !tbaa !5
  %1160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1150, ptr noundef nonnull %.str.5.sink1706, i32 noundef %1151, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1154, ptr noundef %1156, ptr noundef %1158, i32 noundef %1159) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1161:                                             ; preds = %1130
  %1162 = add nsw i32 %1102, 3
  store i32 %1162, ptr @test_count, align 4, !tbaa !5
  %1163 = getelementptr inbounds i8, ptr %809, i64 872
  %1164 = load ptr, ptr %1163, align 8, !tbaa !67
  %1165 = icmp eq ptr %1164, null
  br i1 %1165, label %1166, label %1190

1166:                                             ; preds = %1161
  %1167 = tail call ptr @__errno_location() #13
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  %1169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1170 = call i32 @s2n_print_stacktrace(ptr noundef %1169) #12
  %1171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1172 = trunc nuw i8 %1171 to i1
  br i1 %1172, label %1173, label %1177

1173:                                             ; preds = %1166
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = call i32 @fileno(ptr noundef %1174) #12
  %1176 = call i32 @isatty(i32 noundef %1175) #12
  %.not1301 = icmp eq i32 %1176, 0
  br i1 %.not1301, label %1177, label %1178

1177:                                             ; preds = %1173, %1166
  br label %1178

1178:                                             ; preds = %1173, %1177
  %.str.5.sink1717 = phi ptr [ @.str.5, %1177 ], [ @.str.2, %1173 ]
  store i32 %1168, ptr %1167, align 4, !tbaa !5
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = load i32, ptr @test_count, align 4, !tbaa !5
  %1181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = call ptr @s2n_strerror(i32 noundef %1182, ptr noundef nonnull @.str.4) #12
  %1184 = load i32, ptr %1181, align 4, !tbaa !5
  %1185 = call ptr @s2n_strerror_debug(i32 noundef %1184, ptr noundef nonnull @.str.4) #12
  %1186 = load i32, ptr %1167, align 4, !tbaa !5
  %1187 = call ptr @strerror(i32 noundef %1186) #12
  %1188 = load i32, ptr %1167, align 4, !tbaa !5
  %1189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1179, ptr noundef nonnull %.str.5.sink1717, i32 noundef %1180, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %1183, ptr noundef %1185, ptr noundef %1187, i32 noundef %1188) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1190:                                             ; preds = %1161
  %1191 = add nsw i32 %1102, 4
  store i32 %1191, ptr @test_count, align 4, !tbaa !5
  %1192 = getelementptr inbounds i8, ptr %809, i64 880
  %1193 = load i32, ptr %1192, align 8, !tbaa !68
  %1194 = getelementptr inbounds i8, ptr %1135, i64 16
  %1195 = load i16, ptr %1194, align 8, !tbaa !69
  %1196 = zext i16 %1195 to i32
  %1197 = icmp eq i32 %1193, %1196
  br i1 %1197, label %1222, label %1198

1198:                                             ; preds = %1190
  %1199 = tail call ptr @__errno_location() #13
  %1200 = load i32, ptr %1199, align 4, !tbaa !5
  %1201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1202 = call i32 @s2n_print_stacktrace(ptr noundef %1201) #12
  %1203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1204 = trunc nuw i8 %1203 to i1
  br i1 %1204, label %1205, label %1209

1205:                                             ; preds = %1198
  %1206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1207 = call i32 @fileno(ptr noundef %1206) #12
  %1208 = call i32 @isatty(i32 noundef %1207) #12
  %.not1195 = icmp eq i32 %1208, 0
  br i1 %.not1195, label %1209, label %1210

1209:                                             ; preds = %1205, %1198
  br label %1210

1210:                                             ; preds = %1205, %1209
  %.str.5.sink1728 = phi ptr [ @.str.5, %1209 ], [ @.str.2, %1205 ]
  store i32 %1200, ptr %1199, align 4, !tbaa !5
  %1211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1212 = load i32, ptr @test_count, align 4, !tbaa !5
  %1213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror(i32 noundef %1214, ptr noundef nonnull @.str.4) #12
  %1216 = load i32, ptr %1213, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror_debug(i32 noundef %1216, ptr noundef nonnull @.str.4) #12
  %1218 = load i32, ptr %1199, align 4, !tbaa !5
  %1219 = call ptr @strerror(i32 noundef %1218) #12
  %1220 = load i32, ptr %1199, align 4, !tbaa !5
  %1221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1211, ptr noundef nonnull %.str.5.sink1728, i32 noundef %1212, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %1215, ptr noundef %1217, ptr noundef %1219, i32 noundef %1220) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1222:                                             ; preds = %1190
  %1223 = add nsw i32 %1102, 5
  store i32 %1223, ptr @test_count, align 4, !tbaa !5
  %1224 = getelementptr inbounds i8, ptr %809, i64 928
  %1225 = load ptr, ptr %1224, align 8, !tbaa !71
  %1226 = getelementptr inbounds i8, ptr %985, i64 16
  %1227 = load ptr, ptr %1226, align 8, !tbaa !72
  %1228 = icmp eq ptr %1225, %1227
  br i1 %1228, label %1253, label %1229

1229:                                             ; preds = %1222
  %1230 = tail call ptr @__errno_location() #13
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = call i32 @s2n_print_stacktrace(ptr noundef %1232) #12
  %1234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1235 = trunc nuw i8 %1234 to i1
  br i1 %1235, label %1236, label %1240

1236:                                             ; preds = %1229
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = call i32 @fileno(ptr noundef %1237) #12
  %1239 = call i32 @isatty(i32 noundef %1238) #12
  %.not1196 = icmp eq i32 %1239, 0
  br i1 %.not1196, label %1240, label %1241

1240:                                             ; preds = %1236, %1229
  br label %1241

1241:                                             ; preds = %1236, %1240
  %.str.5.sink1739 = phi ptr [ @.str.5, %1240 ], [ @.str.2, %1236 ]
  store i32 %1231, ptr %1230, align 4, !tbaa !5
  %1242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1243 = load i32, ptr @test_count, align 4, !tbaa !5
  %1244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1245 = load i32, ptr %1244, align 4, !tbaa !5
  %1246 = call ptr @s2n_strerror(i32 noundef %1245, ptr noundef nonnull @.str.4) #12
  %1247 = load i32, ptr %1244, align 4, !tbaa !5
  %1248 = call ptr @s2n_strerror_debug(i32 noundef %1247, ptr noundef nonnull @.str.4) #12
  %1249 = load i32, ptr %1230, align 4, !tbaa !5
  %1250 = call ptr @strerror(i32 noundef %1249) #12
  %1251 = load i32, ptr %1230, align 4, !tbaa !5
  %1252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1242, ptr noundef nonnull %.str.5.sink1739, i32 noundef %1243, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %1246, ptr noundef %1248, ptr noundef %1250, i32 noundef %1251) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1253:                                             ; preds = %1222
  %1254 = add nsw i32 %1102, 6
  store i32 %1254, ptr @test_count, align 4, !tbaa !5
  %1255 = getelementptr inbounds i8, ptr %809, i64 936
  %1256 = load ptr, ptr %1255, align 8, !tbaa !73
  %1257 = icmp eq ptr %1256, null
  br i1 %1257, label %1258, label %1282

1258:                                             ; preds = %1253
  %1259 = tail call ptr @__errno_location() #13
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1262 = call i32 @s2n_print_stacktrace(ptr noundef %1261) #12
  %1263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1264 = trunc nuw i8 %1263 to i1
  br i1 %1264, label %1265, label %1269

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

1269:                                             ; preds = %1265, %1258
  br label %1270

1270:                                             ; preds = %1265, %1269
  %.str.5.sink1750 = phi ptr [ @.str.5, %1269 ], [ @.str.2, %1265 ]
  store i32 %1260, ptr %1259, align 4, !tbaa !5
  %1271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1272 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1274, ptr noundef nonnull @.str.4) #12
  %1276 = load i32, ptr %1273, align 4, !tbaa !5
  %1277 = call ptr @s2n_strerror_debug(i32 noundef %1276, ptr noundef nonnull @.str.4) #12
  %1278 = load i32, ptr %1259, align 4, !tbaa !5
  %1279 = call ptr @strerror(i32 noundef %1278) #12
  %1280 = load i32, ptr %1259, align 4, !tbaa !5
  %1281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1271, ptr noundef nonnull %.str.5.sink1750, i32 noundef %1272, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %1275, ptr noundef %1277, ptr noundef %1279, i32 noundef %1280) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1282:                                             ; preds = %1253
  %1283 = getelementptr inbounds i8, ptr %809, i64 704
  %1284 = add nsw i32 %1102, 7
  store i32 %1284, ptr @test_count, align 4, !tbaa !5
  %1285 = load ptr, ptr %1283, align 8, !tbaa !74
  %1286 = load ptr, ptr %13, align 8, !tbaa !9
  %1287 = getelementptr inbounds i8, ptr %1286, i64 8
  %1288 = load ptr, ptr %1287, align 8, !tbaa !58
  %1289 = load ptr, ptr %1288, align 8, !tbaa !9
  %1290 = icmp eq ptr %1285, %1289
  br i1 %1290, label %1315, label %1291

1291:                                             ; preds = %1282
  %1292 = tail call ptr @__errno_location() #13
  %1293 = load i32, ptr %1292, align 4, !tbaa !5
  %1294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1295 = call i32 @s2n_print_stacktrace(ptr noundef %1294) #12
  %1296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1297 = trunc nuw i8 %1296 to i1
  br i1 %1297, label %1298, label %1302

1298:                                             ; preds = %1291
  %1299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1300 = call i32 @fileno(ptr noundef %1299) #12
  %1301 = call i32 @isatty(i32 noundef %1300) #12
  %.not1197 = icmp eq i32 %1301, 0
  br i1 %.not1197, label %1302, label %1303

1302:                                             ; preds = %1298, %1291
  br label %1303

1303:                                             ; preds = %1298, %1302
  %.str.5.sink1761 = phi ptr [ @.str.5, %1302 ], [ @.str.2, %1298 ]
  store i32 %1293, ptr %1292, align 4, !tbaa !5
  %1304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1305 = load i32, ptr @test_count, align 4, !tbaa !5
  %1306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  %1308 = call ptr @s2n_strerror(i32 noundef %1307, ptr noundef nonnull @.str.4) #12
  %1309 = load i32, ptr %1306, align 4, !tbaa !5
  %1310 = call ptr @s2n_strerror_debug(i32 noundef %1309, ptr noundef nonnull @.str.4) #12
  %1311 = load i32, ptr %1292, align 4, !tbaa !5
  %1312 = call ptr @strerror(i32 noundef %1311) #12
  %1313 = load i32, ptr %1292, align 4, !tbaa !5
  %1314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1304, ptr noundef nonnull %.str.5.sink1761, i32 noundef %1305, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1308, ptr noundef %1310, ptr noundef %1312, i32 noundef %1313) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1315:                                             ; preds = %1282
  %1316 = add nsw i32 %1102, 8
  store i32 %1316, ptr @test_count, align 4, !tbaa !5
  %1317 = getelementptr inbounds i8, ptr %809, i64 712
  %1318 = load ptr, ptr %1317, align 8, !tbaa !75
  %1319 = icmp eq ptr %1318, null
  br i1 %1319, label %1320, label %1344

1320:                                             ; preds = %1315
  %1321 = tail call ptr @__errno_location() #13
  %1322 = load i32, ptr %1321, align 4, !tbaa !5
  %1323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1324 = call i32 @s2n_print_stacktrace(ptr noundef %1323) #12
  %1325 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1326 = trunc nuw i8 %1325 to i1
  br i1 %1326, label %1327, label %1331

1327:                                             ; preds = %1320
  %1328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1329 = call i32 @fileno(ptr noundef %1328) #12
  %1330 = call i32 @isatty(i32 noundef %1329) #12
  %.not1299 = icmp eq i32 %1330, 0
  br i1 %.not1299, label %1331, label %1332

1331:                                             ; preds = %1327, %1320
  br label %1332

1332:                                             ; preds = %1327, %1331
  %.str.5.sink1772 = phi ptr [ @.str.5, %1331 ], [ @.str.2, %1327 ]
  store i32 %1322, ptr %1321, align 4, !tbaa !5
  %1333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1334 = load i32, ptr @test_count, align 4, !tbaa !5
  %1335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1336 = load i32, ptr %1335, align 4, !tbaa !5
  %1337 = call ptr @s2n_strerror(i32 noundef %1336, ptr noundef nonnull @.str.4) #12
  %1338 = load i32, ptr %1335, align 4, !tbaa !5
  %1339 = call ptr @s2n_strerror_debug(i32 noundef %1338, ptr noundef nonnull @.str.4) #12
  %1340 = load i32, ptr %1321, align 4, !tbaa !5
  %1341 = call ptr @strerror(i32 noundef %1340) #12
  %1342 = load i32, ptr %1321, align 4, !tbaa !5
  %1343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1333, ptr noundef nonnull %.str.5.sink1772, i32 noundef %1334, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %1337, ptr noundef %1339, ptr noundef %1341, i32 noundef %1342) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1344:                                             ; preds = %1315
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %16) #12
  store i16 0, ptr %16, align 2, !tbaa !55
  %1345 = add nsw i32 %1102, 9
  store i32 %1345, ptr @test_count, align 4, !tbaa !5
  %1346 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %15, ptr noundef nonnull %16) #12
  %1347 = icmp eq i32 %1346, -1
  br i1 %1347, label %1348, label %1372

1348:                                             ; preds = %1344
  %1349 = tail call ptr @__errno_location() #13
  %1350 = load i32, ptr %1349, align 4, !tbaa !5
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = call i32 @s2n_print_stacktrace(ptr noundef %1351) #12
  %1353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1354 = trunc nuw i8 %1353 to i1
  br i1 %1354, label %1355, label %1359

1355:                                             ; preds = %1348
  %1356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1357 = call i32 @fileno(ptr noundef %1356) #12
  %1358 = call i32 @isatty(i32 noundef %1357) #12
  %.not1298 = icmp eq i32 %1358, 0
  br i1 %.not1298, label %1359, label %1360

1359:                                             ; preds = %1355, %1348
  br label %1360

1360:                                             ; preds = %1355, %1359
  %.str.5.sink1783 = phi ptr [ @.str.5, %1359 ], [ @.str.2, %1355 ]
  store i32 %1350, ptr %1349, align 4, !tbaa !5
  %1361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1362 = load i32, ptr @test_count, align 4, !tbaa !5
  %1363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1364 = load i32, ptr %1363, align 4, !tbaa !5
  %1365 = call ptr @s2n_strerror(i32 noundef %1364, ptr noundef nonnull @.str.4) #12
  %1366 = load i32, ptr %1363, align 4, !tbaa !5
  %1367 = call ptr @s2n_strerror_debug(i32 noundef %1366, ptr noundef nonnull @.str.4) #12
  %1368 = load i32, ptr %1349, align 4, !tbaa !5
  %1369 = call ptr @strerror(i32 noundef %1368) #12
  %1370 = load i32, ptr %1349, align 4, !tbaa !5
  %1371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1361, ptr noundef nonnull %.str.5.sink1783, i32 noundef %1362, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %1365, ptr noundef %1367, ptr noundef %1369, i32 noundef %1370) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1372:                                             ; preds = %1344
  %1373 = load i32, ptr @test_count, align 4, !tbaa !5
  %1374 = add nsw i32 %1373, 1
  store i32 %1374, ptr @test_count, align 4, !tbaa !5
  %1375 = load i16, ptr %16, align 2, !tbaa !55
  %1376 = zext i16 %1375 to i32
  %1377 = load i32, ptr %173, align 4, !tbaa !56
  %1378 = load i32, ptr %174, align 8, !tbaa !57
  %1379 = sub i32 %1377, %1378
  %1380 = icmp eq i32 %1379, %1376
  br i1 %1380, label %1405, label %1381

1381:                                             ; preds = %1372
  %1382 = tail call ptr @__errno_location() #13
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = call i32 @s2n_print_stacktrace(ptr noundef %1384) #12
  %1386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1387 = trunc nuw i8 %1386 to i1
  br i1 %1387, label %1388, label %1392

1388:                                             ; preds = %1381
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = call i32 @fileno(ptr noundef %1389) #12
  %1391 = call i32 @isatty(i32 noundef %1390) #12
  %.not1198 = icmp eq i32 %1391, 0
  br i1 %.not1198, label %1392, label %1393

1392:                                             ; preds = %1388, %1381
  br label %1393

1393:                                             ; preds = %1388, %1392
  %.str.5.sink1794 = phi ptr [ @.str.5, %1392 ], [ @.str.2, %1388 ]
  store i32 %1383, ptr %1382, align 4, !tbaa !5
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = load i32, ptr @test_count, align 4, !tbaa !5
  %1396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1397 = load i32, ptr %1396, align 4, !tbaa !5
  %1398 = call ptr @s2n_strerror(i32 noundef %1397, ptr noundef nonnull @.str.4) #12
  %1399 = load i32, ptr %1396, align 4, !tbaa !5
  %1400 = call ptr @s2n_strerror_debug(i32 noundef %1399, ptr noundef nonnull @.str.4) #12
  %1401 = load i32, ptr %1382, align 4, !tbaa !5
  %1402 = call ptr @strerror(i32 noundef %1401) #12
  %1403 = load i32, ptr %1382, align 4, !tbaa !5
  %1404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1394, ptr noundef nonnull %.str.5.sink1794, i32 noundef %1395, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %1398, ptr noundef %1400, ptr noundef %1402, i32 noundef %1403) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1405:                                             ; preds = %1372
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %17) #12
  store i16 0, ptr %17, align 2, !tbaa !55
  %1406 = add nsw i32 %1373, 2
  store i32 %1406, ptr @test_count, align 4, !tbaa !5
  %1407 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %15, ptr noundef nonnull %17) #12
  %1408 = icmp eq i32 %1407, -1
  br i1 %1408, label %1409, label %1433

1409:                                             ; preds = %1405
  %1410 = tail call ptr @__errno_location() #13
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = call i32 @s2n_print_stacktrace(ptr noundef %1412) #12
  %1414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1415 = trunc nuw i8 %1414 to i1
  br i1 %1415, label %1416, label %1420

1416:                                             ; preds = %1409
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = call i32 @fileno(ptr noundef %1417) #12
  %1419 = call i32 @isatty(i32 noundef %1418) #12
  %.not1297 = icmp eq i32 %1419, 0
  br i1 %.not1297, label %1420, label %1421

1420:                                             ; preds = %1416, %1409
  br label %1421

1421:                                             ; preds = %1416, %1420
  %.str.5.sink1805 = phi ptr [ @.str.5, %1420 ], [ @.str.2, %1416 ]
  store i32 %1411, ptr %1410, align 4, !tbaa !5
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = load i32, ptr @test_count, align 4, !tbaa !5
  %1424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1425 = load i32, ptr %1424, align 4, !tbaa !5
  %1426 = call ptr @s2n_strerror(i32 noundef %1425, ptr noundef nonnull @.str.4) #12
  %1427 = load i32, ptr %1424, align 4, !tbaa !5
  %1428 = call ptr @s2n_strerror_debug(i32 noundef %1427, ptr noundef nonnull @.str.4) #12
  %1429 = load i32, ptr %1410, align 4, !tbaa !5
  %1430 = call ptr @strerror(i32 noundef %1429) #12
  %1431 = load i32, ptr %1410, align 4, !tbaa !5
  %1432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1422, ptr noundef nonnull %.str.5.sink1805, i32 noundef %1423, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %1426, ptr noundef %1428, ptr noundef %1430, i32 noundef %1431) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1433:                                             ; preds = %1405
  %1434 = load i32, ptr @test_count, align 4, !tbaa !5
  %1435 = add nsw i32 %1434, 1
  store i32 %1435, ptr @test_count, align 4, !tbaa !5
  %1436 = load i16, ptr %17, align 2, !tbaa !55
  %1437 = load ptr, ptr %14, align 8, !tbaa !9
  %1438 = getelementptr inbounds i8, ptr %1437, i64 24
  %1439 = load ptr, ptr %1438, align 8, !tbaa !17
  %1440 = load ptr, ptr %1439, align 8, !tbaa !9
  %1441 = getelementptr inbounds i8, ptr %1440, i64 8
  %1442 = load i16, ptr %1441, align 8, !tbaa !76
  %1443 = icmp eq i16 %1436, %1442
  br i1 %1443, label %1468, label %1444

1444:                                             ; preds = %1433
  %1445 = tail call ptr @__errno_location() #13
  %1446 = load i32, ptr %1445, align 4, !tbaa !5
  %1447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1448 = call i32 @s2n_print_stacktrace(ptr noundef %1447) #12
  %1449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1450 = trunc nuw i8 %1449 to i1
  br i1 %1450, label %1451, label %1455

1451:                                             ; preds = %1444
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = call i32 @fileno(ptr noundef %1452) #12
  %1454 = call i32 @isatty(i32 noundef %1453) #12
  %.not1199 = icmp eq i32 %1454, 0
  br i1 %.not1199, label %1455, label %1456

1455:                                             ; preds = %1451, %1444
  br label %1456

1456:                                             ; preds = %1451, %1455
  %.str.5.sink1816 = phi ptr [ @.str.5, %1455 ], [ @.str.2, %1451 ]
  store i32 %1446, ptr %1445, align 4, !tbaa !5
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = load i32, ptr @test_count, align 4, !tbaa !5
  %1459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1460 = load i32, ptr %1459, align 4, !tbaa !5
  %1461 = call ptr @s2n_strerror(i32 noundef %1460, ptr noundef nonnull @.str.4) #12
  %1462 = load i32, ptr %1459, align 4, !tbaa !5
  %1463 = call ptr @s2n_strerror_debug(i32 noundef %1462, ptr noundef nonnull @.str.4) #12
  %1464 = load i32, ptr %1445, align 4, !tbaa !5
  %1465 = call ptr @strerror(i32 noundef %1464) #12
  %1466 = load i32, ptr %1445, align 4, !tbaa !5
  %1467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1457, ptr noundef nonnull %.str.5.sink1816, i32 noundef %1458, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1461, ptr noundef %1463, ptr noundef %1465, i32 noundef %1466) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1468:                                             ; preds = %1433
  %1469 = load ptr, ptr %1226, align 8, !tbaa !72
  %1470 = getelementptr inbounds i8, ptr %1469, i64 16
  %1471 = load i8, ptr %1470, align 8, !tbaa !62
  %1472 = zext i8 %1471 to i16
  br i1 %263, label %1473, label %1479

1473:                                             ; preds = %1468
  %1474 = add nuw nsw i16 %1472, 4
  %1475 = load ptr, ptr %1134, align 8, !tbaa !65
  %1476 = getelementptr inbounds i8, ptr %1475, i64 14
  %1477 = load i16, ptr %1476, align 2, !tbaa !77
  %1478 = add i16 %1474, %1477
  br label %1484

1479:                                             ; preds = %1468
  %1480 = load ptr, ptr %1134, align 8, !tbaa !65
  %1481 = getelementptr inbounds i8, ptr %1480, i64 14
  %1482 = load i16, ptr %1481, align 2, !tbaa !77
  %1483 = add i16 %1482, %1472
  br label %1484

1484:                                             ; preds = %1479, %1473
  %.0950 = phi i16 [ %1478, %1473 ], [ %1483, %1479 ]
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %18) #12
  store i16 0, ptr %18, align 2, !tbaa !55
  %1485 = add nsw i32 %1434, 2
  store i32 %1485, ptr @test_count, align 4, !tbaa !5
  %1486 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %15, ptr noundef nonnull %18) #12
  %1487 = icmp eq i32 %1486, -1
  br i1 %1487, label %1488, label %1512

1488:                                             ; preds = %1484
  %1489 = tail call ptr @__errno_location() #13
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1492 = call i32 @s2n_print_stacktrace(ptr noundef %1491) #12
  %1493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1494 = trunc nuw i8 %1493 to i1
  br i1 %1494, label %1495, label %1499

1495:                                             ; preds = %1488
  %1496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1497 = call i32 @fileno(ptr noundef %1496) #12
  %1498 = call i32 @isatty(i32 noundef %1497) #12
  %.not1296 = icmp eq i32 %1498, 0
  br i1 %.not1296, label %1499, label %1500

1499:                                             ; preds = %1495, %1488
  br label %1500

1500:                                             ; preds = %1495, %1499
  %.str.5.sink1827 = phi ptr [ @.str.5, %1499 ], [ @.str.2, %1495 ]
  store i32 %1490, ptr %1489, align 4, !tbaa !5
  %1501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1502 = load i32, ptr @test_count, align 4, !tbaa !5
  %1503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1504 = load i32, ptr %1503, align 4, !tbaa !5
  %1505 = call ptr @s2n_strerror(i32 noundef %1504, ptr noundef nonnull @.str.4) #12
  %1506 = load i32, ptr %1503, align 4, !tbaa !5
  %1507 = call ptr @s2n_strerror_debug(i32 noundef %1506, ptr noundef nonnull @.str.4) #12
  %1508 = load i32, ptr %1489, align 4, !tbaa !5
  %1509 = call ptr @strerror(i32 noundef %1508) #12
  %1510 = load i32, ptr %1489, align 4, !tbaa !5
  %1511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1501, ptr noundef nonnull %.str.5.sink1827, i32 noundef %1502, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %1505, ptr noundef %1507, ptr noundef %1509, i32 noundef %1510) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1512:                                             ; preds = %1484
  %1513 = load i32, ptr @test_count, align 4, !tbaa !5
  %1514 = add nsw i32 %1513, 1
  store i32 %1514, ptr @test_count, align 4, !tbaa !5
  %1515 = load i16, ptr %18, align 2, !tbaa !55
  %1516 = icmp eq i16 %1515, %.0950
  br i1 %1516, label %1541, label %1517

1517:                                             ; preds = %1512
  %1518 = tail call ptr @__errno_location() #13
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1521 = call i32 @s2n_print_stacktrace(ptr noundef %1520) #12
  %1522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1523 = trunc nuw i8 %1522 to i1
  br i1 %1523, label %1524, label %1528

1524:                                             ; preds = %1517
  %1525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1526 = call i32 @fileno(ptr noundef %1525) #12
  %1527 = call i32 @isatty(i32 noundef %1526) #12
  %.not1200 = icmp eq i32 %1527, 0
  br i1 %.not1200, label %1528, label %1529

1528:                                             ; preds = %1524, %1517
  br label %1529

1529:                                             ; preds = %1524, %1528
  %.str.5.sink1838 = phi ptr [ @.str.5, %1528 ], [ @.str.2, %1524 ]
  store i32 %1519, ptr %1518, 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 nonnull @.str.4) #12
  %1535 = load i32, ptr %1532, align 4, !tbaa !5
  %1536 = call ptr @s2n_strerror_debug(i32 noundef %1535, ptr noundef nonnull @.str.4) #12
  %1537 = load i32, ptr %1518, align 4, !tbaa !5
  %1538 = call ptr @strerror(i32 noundef %1537) #12
  %1539 = load i32, ptr %1518, align 4, !tbaa !5
  %1540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1530, ptr noundef nonnull %.str.5.sink1838, i32 noundef %1531, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1534, ptr noundef %1536, ptr noundef %1538, i32 noundef %1539) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1541:                                             ; preds = %1512
  %1542 = load ptr, ptr %1226, align 8, !tbaa !72
  %1543 = getelementptr inbounds i8, ptr %1542, i64 16
  %1544 = load i8, ptr %1543, align 8, !tbaa !62
  %1545 = zext i8 %1544 to i16
  %1546 = load ptr, ptr %1134, align 8, !tbaa !65
  %1547 = getelementptr inbounds i8, ptr %1546, i64 14
  %1548 = load i16, ptr %1547, align 2, !tbaa !77
  %1549 = load ptr, ptr %1101, align 8, !tbaa !63
  %1550 = getelementptr inbounds i8, ptr %1549, i64 32
  %1551 = load i8, ptr %1550, align 8, !tbaa !78, !range !13, !noundef !14
  %1552 = trunc nuw i8 %1551 to i1
  %spec.select = select i1 %1552, i16 %1545, i16 %1548
  %spec.select1312 = select i1 %1552, i16 %1548, i16 %1545
  br i1 %263, label %1553, label %1611

1553:                                             ; preds = %1541
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %19) #12
  store i16 0, ptr %19, align 2, !tbaa !55
  %1554 = add nsw i32 %1513, 2
  store i32 %1554, ptr @test_count, align 4, !tbaa !5
  %1555 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %15, ptr noundef nonnull %19) #12
  %1556 = icmp eq i32 %1555, -1
  br i1 %1556, label %1557, label %1581

1557:                                             ; preds = %1553
  %1558 = tail call ptr @__errno_location() #13
  %1559 = load i32, ptr %1558, align 4, !tbaa !5
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = call i32 @s2n_print_stacktrace(ptr noundef %1560) #12
  %1562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1563 = trunc nuw i8 %1562 to i1
  br i1 %1563, label %1564, label %1568

1564:                                             ; preds = %1557
  %1565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1566 = call i32 @fileno(ptr noundef %1565) #12
  %1567 = call i32 @isatty(i32 noundef %1566) #12
  %.not1295 = icmp eq i32 %1567, 0
  br i1 %.not1295, label %1568, label %1569

1568:                                             ; preds = %1564, %1557
  br label %1569

1569:                                             ; preds = %1564, %1568
  %.str.5.sink1849 = phi ptr [ @.str.5, %1568 ], [ @.str.2, %1564 ]
  store i32 %1559, ptr %1558, align 4, !tbaa !5
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = load i32, ptr @test_count, align 4, !tbaa !5
  %1572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call ptr @s2n_strerror(i32 noundef %1573, ptr noundef nonnull @.str.4) #12
  %1575 = load i32, ptr %1572, align 4, !tbaa !5
  %1576 = call ptr @s2n_strerror_debug(i32 noundef %1575, ptr noundef nonnull @.str.4) #12
  %1577 = load i32, ptr %1558, align 4, !tbaa !5
  %1578 = call ptr @strerror(i32 noundef %1577) #12
  %1579 = load i32, ptr %1558, align 4, !tbaa !5
  %1580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1570, ptr noundef nonnull %.str.5.sink1849, i32 noundef %1571, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 213, ptr noundef %1574, ptr noundef %1576, ptr noundef %1578, i32 noundef %1579) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1581:                                             ; preds = %1553
  %1582 = load i32, ptr @test_count, align 4, !tbaa !5
  %1583 = add nsw i32 %1582, 1
  store i32 %1583, ptr @test_count, align 4, !tbaa !5
  %1584 = load i16, ptr %19, align 2, !tbaa !55
  %1585 = icmp eq i16 %1584, %spec.select1312
  br i1 %1585, label %1610, label %1586

1586:                                             ; preds = %1581
  %1587 = tail call ptr @__errno_location() #13
  %1588 = load i32, ptr %1587, align 4, !tbaa !5
  %1589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1590 = call i32 @s2n_print_stacktrace(ptr noundef %1589) #12
  %1591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1592 = trunc nuw i8 %1591 to i1
  br i1 %1592, label %1593, label %1597

1593:                                             ; preds = %1586
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = call i32 @fileno(ptr noundef %1594) #12
  %1596 = call i32 @isatty(i32 noundef %1595) #12
  %.not1201 = icmp eq i32 %1596, 0
  br i1 %.not1201, label %1597, label %1598

1597:                                             ; preds = %1593, %1586
  br label %1598

1598:                                             ; preds = %1593, %1597
  %.str.5.sink1860 = phi ptr [ @.str.5, %1597 ], [ @.str.2, %1593 ]
  store i32 %1588, ptr %1587, align 4, !tbaa !5
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = load i32, ptr @test_count, align 4, !tbaa !5
  %1601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1602 = load i32, ptr %1601, align 4, !tbaa !5
  %1603 = call ptr @s2n_strerror(i32 noundef %1602, ptr noundef nonnull @.str.4) #12
  %1604 = load i32, ptr %1601, align 4, !tbaa !5
  %1605 = call ptr @s2n_strerror_debug(i32 noundef %1604, ptr noundef nonnull @.str.4) #12
  %1606 = load i32, ptr %1587, align 4, !tbaa !5
  %1607 = call ptr @strerror(i32 noundef %1606) #12
  %1608 = load i32, ptr %1587, align 4, !tbaa !5
  %1609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1599, ptr noundef nonnull %.str.5.sink1860, i32 noundef %1600, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 214, ptr noundef %1603, ptr noundef %1605, ptr noundef %1607, i32 noundef %1608) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1610:                                             ; preds = %1581
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %19) #12
  br label %1611

1611:                                             ; preds = %1541, %1610
  %1612 = phi i32 [ %1514, %1541 ], [ %1583, %1610 ]
  %1613 = add nsw i32 %1612, 1
  store i32 %1613, ptr @test_count, align 4, !tbaa !5
  %1614 = zext i16 %spec.select1312 to i32
  %1615 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %15, i32 noundef %1614) #12
  %1616 = icmp eq i32 %1615, -1
  br i1 %1616, label %1617, label %1641

1617:                                             ; preds = %1611
  %1618 = tail call ptr @__errno_location() #13
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1621 = call i32 @s2n_print_stacktrace(ptr noundef %1620) #12
  %1622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1623 = trunc nuw i8 %1622 to i1
  br i1 %1623, label %1624, label %1628

1624:                                             ; preds = %1617
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = call i32 @fileno(ptr noundef %1625) #12
  %1627 = call i32 @isatty(i32 noundef %1626) #12
  %.not1294 = icmp eq i32 %1627, 0
  br i1 %.not1294, label %1628, label %1629

1628:                                             ; preds = %1624, %1617
  br label %1629

1629:                                             ; preds = %1624, %1628
  %.str.5.sink1871 = phi ptr [ @.str.5, %1628 ], [ @.str.2, %1624 ]
  store i32 %1619, ptr %1618, align 4, !tbaa !5
  %1630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1631 = load i32, ptr @test_count, align 4, !tbaa !5
  %1632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = call ptr @s2n_strerror(i32 noundef %1633, ptr noundef nonnull @.str.4) #12
  %1635 = load i32, ptr %1632, align 4, !tbaa !5
  %1636 = call ptr @s2n_strerror_debug(i32 noundef %1635, ptr noundef nonnull @.str.4) #12
  %1637 = load i32, ptr %1618, align 4, !tbaa !5
  %1638 = call ptr @strerror(i32 noundef %1637) #12
  %1639 = load i32, ptr %1618, align 4, !tbaa !5
  %1640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1630, ptr noundef nonnull %.str.5.sink1871, i32 noundef %1631, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %1634, ptr noundef %1636, ptr noundef %1638, i32 noundef %1639) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1641:                                             ; preds = %1611
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %263, label %1642, label %1700

1642:                                             ; preds = %1641
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %20) #12
  store i16 0, ptr %20, align 2, !tbaa !55
  %1643 = add nsw i32 %.pre, 1
  store i32 %1643, ptr @test_count, align 4, !tbaa !5
  %1644 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %15, ptr noundef nonnull %20) #12
  %1645 = icmp eq i32 %1644, -1
  br i1 %1645, label %1646, label %1670

1646:                                             ; preds = %1642
  %1647 = tail call ptr @__errno_location() #13
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1650 = call i32 @s2n_print_stacktrace(ptr noundef %1649) #12
  %1651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1652 = trunc nuw i8 %1651 to i1
  br i1 %1652, label %1653, label %1657

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

1657:                                             ; preds = %1653, %1646
  br label %1658

1658:                                             ; preds = %1653, %1657
  %.str.5.sink1882 = phi ptr [ @.str.5, %1657 ], [ @.str.2, %1653 ]
  store i32 %1648, ptr %1647, align 4, !tbaa !5
  %1659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1660 = load i32, ptr @test_count, align 4, !tbaa !5
  %1661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1662 = load i32, ptr %1661, align 4, !tbaa !5
  %1663 = call ptr @s2n_strerror(i32 noundef %1662, ptr noundef nonnull @.str.4) #12
  %1664 = load i32, ptr %1661, align 4, !tbaa !5
  %1665 = call ptr @s2n_strerror_debug(i32 noundef %1664, ptr noundef nonnull @.str.4) #12
  %1666 = load i32, ptr %1647, align 4, !tbaa !5
  %1667 = call ptr @strerror(i32 noundef %1666) #12
  %1668 = load i32, ptr %1647, align 4, !tbaa !5
  %1669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1659, ptr noundef nonnull %.str.5.sink1882, i32 noundef %1660, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %1663, ptr noundef %1665, ptr noundef %1667, i32 noundef %1668) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1670:                                             ; preds = %1642
  %1671 = load i32, ptr @test_count, align 4, !tbaa !5
  %1672 = add nsw i32 %1671, 1
  store i32 %1672, ptr @test_count, align 4, !tbaa !5
  %1673 = load i16, ptr %20, align 2, !tbaa !55
  %1674 = icmp eq i16 %1673, %spec.select
  br i1 %1674, label %1699, label %1675

1675:                                             ; preds = %1670
  %1676 = tail call ptr @__errno_location() #13
  %1677 = load i32, ptr %1676, align 4, !tbaa !5
  %1678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1679 = call i32 @s2n_print_stacktrace(ptr noundef %1678) #12
  %1680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1681 = trunc nuw i8 %1680 to i1
  br i1 %1681, label %1682, label %1686

1682:                                             ; preds = %1675
  %1683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1684 = call i32 @fileno(ptr noundef %1683) #12
  %1685 = call i32 @isatty(i32 noundef %1684) #12
  %.not1202 = icmp eq i32 %1685, 0
  br i1 %.not1202, label %1686, label %1687

1686:                                             ; preds = %1682, %1675
  br label %1687

1687:                                             ; preds = %1682, %1686
  %.str.5.sink1893 = phi ptr [ @.str.5, %1686 ], [ @.str.2, %1682 ]
  store i32 %1677, ptr %1676, align 4, !tbaa !5
  %1688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1689 = load i32, ptr @test_count, align 4, !tbaa !5
  %1690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1691 = load i32, ptr %1690, align 4, !tbaa !5
  %1692 = call ptr @s2n_strerror(i32 noundef %1691, ptr noundef nonnull @.str.4) #12
  %1693 = load i32, ptr %1690, align 4, !tbaa !5
  %1694 = call ptr @s2n_strerror_debug(i32 noundef %1693, ptr noundef nonnull @.str.4) #12
  %1695 = load i32, ptr %1676, align 4, !tbaa !5
  %1696 = call ptr @strerror(i32 noundef %1695) #12
  %1697 = load i32, ptr %1676, align 4, !tbaa !5
  %1698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1688, ptr noundef nonnull %.str.5.sink1893, i32 noundef %1689, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 221, ptr noundef %1692, ptr noundef %1694, ptr noundef %1696, i32 noundef %1697) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1699:                                             ; preds = %1670
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %20) #12
  br label %1700

1700:                                             ; preds = %1641, %1699
  %1701 = phi i32 [ %.pre, %1641 ], [ %1672, %1699 ]
  %1702 = add nsw i32 %1701, 1
  store i32 %1702, ptr @test_count, align 4, !tbaa !5
  %1703 = zext i16 %spec.select to i32
  %1704 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %15, i32 noundef %1703) #12
  %1705 = icmp eq i32 %1704, -1
  br i1 %1705, label %1706, label %1730

1706:                                             ; preds = %1700
  %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
  %.not1292 = icmp eq i32 %1716, 0
  br i1 %.not1292, label %1717, label %1718

1717:                                             ; preds = %1713, %1706
  br label %1718

1718:                                             ; preds = %1713, %1717
  %.str.5.sink1904 = phi ptr [ @.str.5, %1717 ], [ @.str.2, %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.4) #12
  %1724 = load i32, ptr %1721, align 4, !tbaa !5
  %1725 = call ptr @s2n_strerror_debug(i32 noundef %1724, ptr noundef nonnull @.str.4) #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.5.sink1904, i32 noundef %1720, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %1723, ptr noundef %1725, ptr noundef %1727, i32 noundef %1728) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1730:                                             ; preds = %1700
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %21) #12
  store i16 0, ptr %21, align 2, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %22) #12
  store i16 0, ptr %22, align 2, !tbaa !55
  %1731 = load i32, ptr @test_count, align 4, !tbaa !5
  %1732 = add nsw i32 %1731, 1
  store i32 %1732, ptr @test_count, align 4, !tbaa !5
  %1733 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %15, ptr noundef nonnull %21) #12
  %1734 = icmp eq i32 %1733, -1
  br i1 %1734, label %1735, label %1759

1735:                                             ; preds = %1730
  %1736 = tail call ptr @__errno_location() #13
  %1737 = load i32, ptr %1736, align 4, !tbaa !5
  %1738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1739 = call i32 @s2n_print_stacktrace(ptr noundef %1738) #12
  %1740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1741 = trunc nuw i8 %1740 to i1
  br i1 %1741, label %1742, label %1746

1742:                                             ; preds = %1735
  %1743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1744 = call i32 @fileno(ptr noundef %1743) #12
  %1745 = call i32 @isatty(i32 noundef %1744) #12
  %.not1291 = icmp eq i32 %1745, 0
  br i1 %.not1291, label %1746, label %1747

1746:                                             ; preds = %1742, %1735
  br label %1747

1747:                                             ; preds = %1742, %1746
  %.str.5.sink1915 = phi ptr [ @.str.5, %1746 ], [ @.str.2, %1742 ]
  store i32 %1737, ptr %1736, align 4, !tbaa !5
  %1748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1749 = load i32, ptr @test_count, align 4, !tbaa !5
  %1750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1751 = load i32, ptr %1750, align 4, !tbaa !5
  %1752 = call ptr @s2n_strerror(i32 noundef %1751, ptr noundef nonnull @.str.4) #12
  %1753 = load i32, ptr %1750, align 4, !tbaa !5
  %1754 = call ptr @s2n_strerror_debug(i32 noundef %1753, ptr noundef nonnull @.str.4) #12
  %1755 = load i32, ptr %1736, align 4, !tbaa !5
  %1756 = call ptr @strerror(i32 noundef %1755) #12
  %1757 = load i32, ptr %1736, align 4, !tbaa !5
  %1758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1748, ptr noundef nonnull %.str.5.sink1915, i32 noundef %1749, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %1752, ptr noundef %1754, ptr noundef %1756, i32 noundef %1757) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1759:                                             ; preds = %1730
  %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 = load i16, ptr %21, align 2, !tbaa !55
  %1763 = load ptr, ptr %13, align 8, !tbaa !9
  %1764 = getelementptr inbounds i8, ptr %1763, i64 8
  %1765 = load ptr, ptr %1764, align 8, !tbaa !58
  %1766 = load ptr, ptr %1765, align 8, !tbaa !9
  %1767 = load i16, ptr %1766, align 8, !tbaa !60
  %1768 = icmp eq i16 %1762, %1767
  br i1 %1768, label %1793, label %1769

1769:                                             ; preds = %1759
  %1770 = tail call ptr @__errno_location() #13
  %1771 = load i32, ptr %1770, align 4, !tbaa !5
  %1772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1773 = call i32 @s2n_print_stacktrace(ptr noundef %1772) #12
  %1774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1775 = trunc nuw i8 %1774 to i1
  br i1 %1775, label %1776, label %1780

1776:                                             ; preds = %1769
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = call i32 @fileno(ptr noundef %1777) #12
  %1779 = call i32 @isatty(i32 noundef %1778) #12
  %.not1203 = icmp eq i32 %1779, 0
  br i1 %.not1203, label %1780, label %1781

1780:                                             ; preds = %1776, %1769
  br label %1781

1781:                                             ; preds = %1776, %1780
  %.str.5.sink1926 = phi ptr [ @.str.5, %1780 ], [ @.str.2, %1776 ]
  store i32 %1771, ptr %1770, align 4, !tbaa !5
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = load i32, ptr @test_count, align 4, !tbaa !5
  %1784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1785 = load i32, ptr %1784, align 4, !tbaa !5
  %1786 = call ptr @s2n_strerror(i32 noundef %1785, ptr noundef nonnull @.str.4) #12
  %1787 = load i32, ptr %1784, align 4, !tbaa !5
  %1788 = call ptr @s2n_strerror_debug(i32 noundef %1787, ptr noundef nonnull @.str.4) #12
  %1789 = load i32, ptr %1770, align 4, !tbaa !5
  %1790 = call ptr @strerror(i32 noundef %1789) #12
  %1791 = load i32, ptr %1770, align 4, !tbaa !5
  %1792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1782, ptr noundef nonnull %.str.5.sink1926, i32 noundef %1783, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %1786, ptr noundef %1788, ptr noundef %1790, i32 noundef %1791) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1793:                                             ; preds = %1759
  %1794 = add nsw i32 %1760, 2
  store i32 %1794, ptr @test_count, align 4, !tbaa !5
  %1795 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %15, ptr noundef nonnull %22) #12
  %1796 = icmp eq i32 %1795, -1
  br i1 %1796, label %1797, label %1821

1797:                                             ; preds = %1793
  %1798 = tail call ptr @__errno_location() #13
  %1799 = load i32, ptr %1798, align 4, !tbaa !5
  %1800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1801 = call i32 @s2n_print_stacktrace(ptr noundef %1800) #12
  %1802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1803 = trunc nuw i8 %1802 to i1
  br i1 %1803, label %1804, label %1808

1804:                                             ; preds = %1797
  %1805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1806 = call i32 @fileno(ptr noundef %1805) #12
  %1807 = call i32 @isatty(i32 noundef %1806) #12
  %.not1290 = icmp eq i32 %1807, 0
  br i1 %.not1290, label %1808, label %1809

1808:                                             ; preds = %1804, %1797
  br label %1809

1809:                                             ; preds = %1804, %1808
  %.str.5.sink1937 = phi ptr [ @.str.5, %1808 ], [ @.str.2, %1804 ]
  store i32 %1799, ptr %1798, align 4, !tbaa !5
  %1810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1811 = load i32, ptr @test_count, align 4, !tbaa !5
  %1812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  %1814 = call ptr @s2n_strerror(i32 noundef %1813, ptr noundef nonnull @.str.4) #12
  %1815 = load i32, ptr %1812, align 4, !tbaa !5
  %1816 = call ptr @s2n_strerror_debug(i32 noundef %1815, ptr noundef nonnull @.str.4) #12
  %1817 = load i32, ptr %1798, align 4, !tbaa !5
  %1818 = call ptr @strerror(i32 noundef %1817) #12
  %1819 = load i32, ptr %1798, align 4, !tbaa !5
  %1820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1810, ptr noundef nonnull %.str.5.sink1937, i32 noundef %1811, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %1814, ptr noundef %1816, ptr noundef %1818, i32 noundef %1819) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1821:                                             ; preds = %1793
  %1822 = load i32, ptr @test_count, align 4, !tbaa !5
  %1823 = add nsw i32 %1822, 1
  store i32 %1823, ptr @test_count, align 4, !tbaa !5
  %1824 = load i16, ptr %22, align 2, !tbaa !55
  %1825 = load ptr, ptr %13, align 8, !tbaa !9
  %1826 = getelementptr inbounds i8, ptr %1825, i64 8
  %1827 = load ptr, ptr %1826, align 8, !tbaa !58
  %1828 = load ptr, ptr %1827, align 8, !tbaa !9
  %1829 = getelementptr inbounds i8, ptr %1828, i64 16
  %1830 = load i8, ptr %1829, align 8, !tbaa !62
  %1831 = zext i8 %1830 to i16
  %1832 = icmp eq i16 %1824, %1831
  br i1 %1832, label %1857, label %1833

1833:                                             ; preds = %1821
  %1834 = tail call ptr @__errno_location() #13
  %1835 = load i32, ptr %1834, align 4, !tbaa !5
  %1836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1837 = call i32 @s2n_print_stacktrace(ptr noundef %1836) #12
  %1838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1839 = trunc nuw i8 %1838 to i1
  br i1 %1839, label %1840, label %1844

1840:                                             ; preds = %1833
  %1841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1842 = call i32 @fileno(ptr noundef %1841) #12
  %1843 = call i32 @isatty(i32 noundef %1842) #12
  %.not1204 = icmp eq i32 %1843, 0
  br i1 %.not1204, label %1844, label %1845

1844:                                             ; preds = %1840, %1833
  br label %1845

1845:                                             ; preds = %1840, %1844
  %.str.5.sink1948 = phi ptr [ @.str.5, %1844 ], [ @.str.2, %1840 ]
  store i32 %1835, ptr %1834, align 4, !tbaa !5
  %1846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1847 = load i32, ptr @test_count, align 4, !tbaa !5
  %1848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1849 = load i32, ptr %1848, align 4, !tbaa !5
  %1850 = call ptr @s2n_strerror(i32 noundef %1849, ptr noundef nonnull @.str.4) #12
  %1851 = load i32, ptr %1848, align 4, !tbaa !5
  %1852 = call ptr @s2n_strerror_debug(i32 noundef %1851, ptr noundef nonnull @.str.4) #12
  %1853 = load i32, ptr %1834, align 4, !tbaa !5
  %1854 = call ptr @strerror(i32 noundef %1853) #12
  %1855 = load i32, ptr %1834, align 4, !tbaa !5
  %1856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1846, ptr noundef nonnull %.str.5.sink1948, i32 noundef %1847, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %1850, ptr noundef %1852, ptr noundef %1854, i32 noundef %1855) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1857:                                             ; preds = %1821
  %1858 = add nsw i32 %1822, 2
  store i32 %1858, ptr @test_count, align 4, !tbaa !5
  %1859 = zext nneg i16 %1824 to i32
  %1860 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %15, i32 noundef %1859) #12
  %1861 = icmp eq i32 %1860, -1
  br i1 %1861, label %1862, label %1886

1862:                                             ; preds = %1857
  %1863 = tail call ptr @__errno_location() #13
  %1864 = load i32, ptr %1863, align 4, !tbaa !5
  %1865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1866 = call i32 @s2n_print_stacktrace(ptr noundef %1865) #12
  %1867 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1868 = trunc nuw i8 %1867 to i1
  br i1 %1868, label %1869, label %1873

1869:                                             ; preds = %1862
  %1870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1871 = call i32 @fileno(ptr noundef %1870) #12
  %1872 = call i32 @isatty(i32 noundef %1871) #12
  %.not1289 = icmp eq i32 %1872, 0
  br i1 %.not1289, label %1873, label %1874

1873:                                             ; preds = %1869, %1862
  br label %1874

1874:                                             ; preds = %1869, %1873
  %.str.5.sink1959 = phi ptr [ @.str.5, %1873 ], [ @.str.2, %1869 ]
  store i32 %1864, ptr %1863, align 4, !tbaa !5
  %1875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1876 = load i32, ptr @test_count, align 4, !tbaa !5
  %1877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  %1879 = call ptr @s2n_strerror(i32 noundef %1878, ptr noundef nonnull @.str.4) #12
  %1880 = load i32, ptr %1877, align 4, !tbaa !5
  %1881 = call ptr @s2n_strerror_debug(i32 noundef %1880, ptr noundef nonnull @.str.4) #12
  %1882 = load i32, ptr %1863, align 4, !tbaa !5
  %1883 = call ptr @strerror(i32 noundef %1882) #12
  %1884 = load i32, ptr %1863, align 4, !tbaa !5
  %1885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1875, ptr noundef nonnull %.str.5.sink1959, i32 noundef %1876, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 231, ptr noundef %1879, ptr noundef %1881, ptr noundef %1883, i32 noundef %1884) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1886:                                             ; preds = %1857
  %1887 = load i32, ptr @test_count, align 4, !tbaa !5
  %1888 = add nsw i32 %1887, 1
  store i32 %1888, ptr @test_count, align 4, !tbaa !5
  %1889 = load i32, ptr %173, align 4, !tbaa !56
  %1890 = load i32, ptr %174, align 8, !tbaa !57
  %1891 = icmp eq i32 %1889, %1890
  br i1 %1891, label %1916, label %1892

1892:                                             ; preds = %1886
  %1893 = tail call ptr @__errno_location() #13
  %1894 = load i32, ptr %1893, align 4, !tbaa !5
  %1895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1896 = call i32 @s2n_print_stacktrace(ptr noundef %1895) #12
  %1897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1898 = trunc nuw i8 %1897 to i1
  br i1 %1898, label %1899, label %1903

1899:                                             ; preds = %1892
  %1900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1901 = call i32 @fileno(ptr noundef %1900) #12
  %1902 = call i32 @isatty(i32 noundef %1901) #12
  %.not1205 = icmp eq i32 %1902, 0
  br i1 %.not1205, label %1903, label %1904

1903:                                             ; preds = %1899, %1892
  br label %1904

1904:                                             ; preds = %1899, %1903
  %.str.5.sink1970 = phi ptr [ @.str.5, %1903 ], [ @.str.2, %1899 ]
  store i32 %1894, ptr %1893, align 4, !tbaa !5
  %1905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1906 = load i32, ptr @test_count, align 4, !tbaa !5
  %1907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1908 = load i32, ptr %1907, align 4, !tbaa !5
  %1909 = call ptr @s2n_strerror(i32 noundef %1908, ptr noundef nonnull @.str.4) #12
  %1910 = load i32, ptr %1907, align 4, !tbaa !5
  %1911 = call ptr @s2n_strerror_debug(i32 noundef %1910, ptr noundef nonnull @.str.4) #12
  %1912 = load i32, ptr %1893, align 4, !tbaa !5
  %1913 = call ptr @strerror(i32 noundef %1912) #12
  %1914 = load i32, ptr %1893, align 4, !tbaa !5
  %1915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1905, ptr noundef nonnull %.str.5.sink1970, i32 noundef %1906, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 234, ptr noundef %1909, ptr noundef %1911, ptr noundef %1913, i32 noundef %1914) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1916:                                             ; preds = %1886
  %1917 = add nsw i32 %1887, 2
  store i32 %1917, ptr @test_count, align 4, !tbaa !5
  %1918 = call i32 @s2n_connection_free(ptr noundef nonnull %809) #12
  %1919 = icmp eq i32 %1918, -1
  br i1 %1919, label %1920, label %1945

1920:                                             ; preds = %1916
  %1921 = tail call ptr @__errno_location() #13
  %1922 = load i32, ptr %1921, align 4, !tbaa !5
  %1923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1924 = call i32 @s2n_print_stacktrace(ptr noundef %1923) #12
  %1925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1926 = trunc nuw i8 %1925 to i1
  br i1 %1926, label %1927, label %1931

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

1931:                                             ; preds = %1927, %1920
  br label %1932

1932:                                             ; preds = %1927, %1931
  %.str.5.sink1981 = phi ptr [ @.str.5, %1931 ], [ @.str.2, %1927 ]
  store i32 %1922, ptr %1921, align 4, !tbaa !5
  %1933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1934 = load i32, ptr @test_count, align 4, !tbaa !5
  %1935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1936 = load i32, ptr %1935, align 4, !tbaa !5
  %1937 = call ptr @s2n_strerror(i32 noundef %1936, ptr noundef nonnull @.str.4) #12
  %1938 = load i32, ptr %1935, align 4, !tbaa !5
  %1939 = call ptr @s2n_strerror_debug(i32 noundef %1938, ptr noundef nonnull @.str.4) #12
  %1940 = load i32, ptr %1921, align 4, !tbaa !5
  %1941 = call ptr @strerror(i32 noundef %1940) #12
  %1942 = load i32, ptr %1921, align 4, !tbaa !5
  %1943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1933, ptr noundef nonnull %.str.5.sink1981, i32 noundef %1934, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 236, ptr noundef %1937, ptr noundef %1939, ptr noundef %1941, i32 noundef %1942) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1944:                                             ; preds = %1013
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #12
  br label %4290

1945:                                             ; preds = %1916
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %21) #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 2, ptr nonnull %16) #12
  %1946 = call i32 @s2n_stuffer_free(ptr noundef nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #12
  %1947 = load i32, ptr @test_count, align 4, !tbaa !5
  %1948 = add nsw i32 %1947, 1
  store i32 %1948, ptr @test_count, align 4, !tbaa !5
  %1949 = load ptr, ptr %152, align 8, !tbaa !22
  %1950 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %1949, ptr noundef nonnull %3) #12
  %1951 = call zeroext i1 @s2n_result_is_ok(i32 %1950)
  br i1 %1951, label %1976, label %1952

1952:                                             ; preds = %1945
  %1953 = tail call ptr @__errno_location() #13
  %1954 = load i32, ptr %1953, align 4, !tbaa !5
  %1955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1956 = call i32 @s2n_print_stacktrace(ptr noundef %1955) #12
  %1957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1958 = trunc nuw i8 %1957 to i1
  br i1 %1958, label %1959, label %1963

1959:                                             ; preds = %1952
  %1960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1961 = call i32 @fileno(ptr noundef %1960) #12
  %1962 = call i32 @isatty(i32 noundef %1961) #12
  %.not1206 = icmp eq i32 %1962, 0
  br i1 %.not1206, label %1963, label %1964

1963:                                             ; preds = %1959, %1952
  br label %1964

1964:                                             ; preds = %1959, %1963
  %.str.5.sink1992 = phi ptr [ @.str.5, %1963 ], [ @.str.2, %1959 ]
  store i32 %1954, ptr %1953, align 4, !tbaa !5
  %1965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1966 = load i32, ptr @test_count, align 4, !tbaa !5
  %1967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1968 = load i32, ptr %1967, align 4, !tbaa !5
  %1969 = call ptr @s2n_strerror(i32 noundef %1968, ptr noundef nonnull @.str.4) #12
  %1970 = load i32, ptr %1967, align 4, !tbaa !5
  %1971 = call ptr @s2n_strerror_debug(i32 noundef %1970, ptr noundef nonnull @.str.4) #12
  %1972 = load i32, ptr %1953, align 4, !tbaa !5
  %1973 = call ptr @strerror(i32 noundef %1972) #12
  %1974 = load i32, ptr %1953, align 4, !tbaa !5
  %1975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1965, ptr noundef nonnull %.str.5.sink1992, i32 noundef %1966, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %1969, ptr noundef %1971, ptr noundef %1973, i32 noundef %1974) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1976:                                             ; preds = %1945
  %1977 = load i32, ptr %3, align 4, !tbaa !5
  %1978 = icmp ugt i32 %1977, 1
  br i1 %1978, label %1979, label %2974

1979:                                             ; preds = %1976
  %1980 = load i32, ptr @test_count, align 4, !tbaa !5
  %1981 = add nsw i32 %1980, 1
  store i32 %1981, ptr @test_count, align 4, !tbaa !5
  %1982 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %1983 = icmp eq ptr %1982, null
  br i1 %1983, label %1984, label %2008

1984:                                             ; preds = %1979
  %1985 = tail call ptr @__errno_location() #13
  %1986 = load i32, ptr %1985, align 4, !tbaa !5
  %1987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1988 = call i32 @s2n_print_stacktrace(ptr noundef %1987) #12
  %1989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1990 = trunc nuw i8 %1989 to i1
  br i1 %1990, label %1991, label %1995

1991:                                             ; preds = %1984
  %1992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1993 = call i32 @fileno(ptr noundef %1992) #12
  %1994 = call i32 @isatty(i32 noundef %1993) #12
  %.not1287 = icmp eq i32 %1994, 0
  br i1 %.not1287, label %1995, label %1996

1995:                                             ; preds = %1991, %1984
  br label %1996

1996:                                             ; preds = %1991, %1995
  %.str.5.sink2003 = phi ptr [ @.str.5, %1995 ], [ @.str.2, %1991 ]
  store i32 %1986, ptr %1985, align 4, !tbaa !5
  %1997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1998 = load i32, ptr @test_count, align 4, !tbaa !5
  %1999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2000 = load i32, ptr %1999, align 4, !tbaa !5
  %2001 = call ptr @s2n_strerror(i32 noundef %2000, ptr noundef nonnull @.str.4) #12
  %2002 = load i32, ptr %1999, align 4, !tbaa !5
  %2003 = call ptr @s2n_strerror_debug(i32 noundef %2002, ptr noundef nonnull @.str.4) #12
  %2004 = load i32, ptr %1985, align 4, !tbaa !5
  %2005 = call ptr @strerror(i32 noundef %2004) #12
  %2006 = load i32, ptr %1985, align 4, !tbaa !5
  %2007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1997, ptr noundef nonnull %.str.5.sink2003, i32 noundef %1998, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %2001, ptr noundef %2003, ptr noundef %2005, i32 noundef %2006) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2008:                                             ; preds = %1979
  %2009 = getelementptr inbounds i8, ptr %1982, i64 16
  store ptr %12, ptr %2009, align 8, !tbaa !28
  %2010 = getelementptr inbounds i8, ptr %1982, i64 220
  store i8 34, ptr %2010, align 4, !tbaa !79
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #12
  store ptr null, ptr %23, align 8, !tbaa !9
  %2011 = load i32, ptr @test_count, align 4, !tbaa !5
  %2012 = add nsw i32 %2011, 1
  store i32 %2012, ptr @test_count, align 4, !tbaa !5
  %2013 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %1982, ptr noundef nonnull %23) #12
  %2014 = icmp eq i32 %2013, -1
  br i1 %2014, label %2015, label %2039

2015:                                             ; preds = %2008
  %2016 = tail call ptr @__errno_location() #13
  %2017 = load i32, ptr %2016, align 4, !tbaa !5
  %2018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2019 = call i32 @s2n_print_stacktrace(ptr noundef %2018) #12
  %2020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2021 = trunc nuw i8 %2020 to i1
  br i1 %2021, label %2022, label %2026

2022:                                             ; preds = %2015
  %2023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2024 = call i32 @fileno(ptr noundef %2023) #12
  %2025 = call i32 @isatty(i32 noundef %2024) #12
  %.not1286 = icmp eq i32 %2025, 0
  br i1 %.not1286, label %2026, label %2027

2026:                                             ; preds = %2022, %2015
  br label %2027

2027:                                             ; preds = %2022, %2026
  %.str.5.sink2014 = phi ptr [ @.str.5, %2026 ], [ @.str.2, %2022 ]
  store i32 %2017, ptr %2016, align 4, !tbaa !5
  %2028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2029 = load i32, ptr @test_count, align 4, !tbaa !5
  %2030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  %2032 = call ptr @s2n_strerror(i32 noundef %2031, ptr noundef nonnull @.str.4) #12
  %2033 = load i32, ptr %2030, align 4, !tbaa !5
  %2034 = call ptr @s2n_strerror_debug(i32 noundef %2033, ptr noundef nonnull @.str.4) #12
  %2035 = load i32, ptr %2016, align 4, !tbaa !5
  %2036 = call ptr @strerror(i32 noundef %2035) #12
  %2037 = load i32, ptr %2016, align 4, !tbaa !5
  %2038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2028, ptr noundef nonnull %.str.5.sink2014, i32 noundef %2029, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 249, ptr noundef %2032, ptr noundef %2034, ptr noundef %2036, i32 noundef %2037) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2039:                                             ; preds = %2008
  %2040 = load i32, ptr @test_count, align 4, !tbaa !5
  %2041 = add nsw i32 %2040, 1
  store i32 %2041, ptr @test_count, align 4, !tbaa !5
  %2042 = load ptr, ptr %23, align 8, !tbaa !9
  %2043 = icmp eq ptr %2042, null
  br i1 %2043, label %2044, label %2068

2044:                                             ; preds = %2039
  %2045 = tail call ptr @__errno_location() #13
  %2046 = load i32, ptr %2045, align 4, !tbaa !5
  %2047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2048 = call i32 @s2n_print_stacktrace(ptr noundef %2047) #12
  %2049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2050 = trunc nuw i8 %2049 to i1
  br i1 %2050, label %2051, label %2055

2051:                                             ; preds = %2044
  %2052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2053 = call i32 @fileno(ptr noundef %2052) #12
  %2054 = call i32 @isatty(i32 noundef %2053) #12
  %.not1285 = icmp eq i32 %2054, 0
  br i1 %.not1285, label %2055, label %2056

2055:                                             ; preds = %2051, %2044
  br label %2056

2056:                                             ; preds = %2051, %2055
  %.str.5.sink2025 = phi ptr [ @.str.5, %2055 ], [ @.str.2, %2051 ]
  store i32 %2046, ptr %2045, align 4, !tbaa !5
  %2057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2058 = load i32, ptr @test_count, align 4, !tbaa !5
  %2059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2060 = load i32, ptr %2059, align 4, !tbaa !5
  %2061 = call ptr @s2n_strerror(i32 noundef %2060, ptr noundef nonnull @.str.4) #12
  %2062 = load i32, ptr %2059, align 4, !tbaa !5
  %2063 = call ptr @s2n_strerror_debug(i32 noundef %2062, ptr noundef nonnull @.str.4) #12
  %2064 = load i32, ptr %2045, align 4, !tbaa !5
  %2065 = call ptr @strerror(i32 noundef %2064) #12
  %2066 = load i32, ptr %2045, align 4, !tbaa !5
  %2067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2057, ptr noundef nonnull %.str.5.sink2025, i32 noundef %2058, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %2061, ptr noundef %2063, ptr noundef %2065, i32 noundef %2066) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2068:                                             ; preds = %2039
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  store ptr null, ptr %24, align 8, !tbaa !9
  %2069 = add nsw i32 %2040, 2
  store i32 %2069, ptr @test_count, align 4, !tbaa !5
  %2070 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %1982, ptr noundef nonnull %24) #12
  %2071 = icmp eq i32 %2070, -1
  br i1 %2071, label %2072, label %2096

2072:                                             ; preds = %2068
  %2073 = tail call ptr @__errno_location() #13
  %2074 = load i32, ptr %2073, align 4, !tbaa !5
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2076 = call i32 @s2n_print_stacktrace(ptr noundef %2075) #12
  %2077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2078 = trunc nuw i8 %2077 to i1
  br i1 %2078, label %2079, label %2083

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

2083:                                             ; preds = %2079, %2072
  br label %2084

2084:                                             ; preds = %2079, %2083
  %.str.5.sink2036 = phi ptr [ @.str.5, %2083 ], [ @.str.2, %2079 ]
  store i32 %2074, ptr %2073, align 4, !tbaa !5
  %2085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2086 = load i32, ptr @test_count, align 4, !tbaa !5
  %2087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2088 = load i32, ptr %2087, align 4, !tbaa !5
  %2089 = call ptr @s2n_strerror(i32 noundef %2088, ptr noundef nonnull @.str.4) #12
  %2090 = load i32, ptr %2087, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror_debug(i32 noundef %2090, ptr noundef nonnull @.str.4) #12
  %2092 = load i32, ptr %2073, align 4, !tbaa !5
  %2093 = call ptr @strerror(i32 noundef %2092) #12
  %2094 = load i32, ptr %2073, align 4, !tbaa !5
  %2095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2085, ptr noundef nonnull %.str.5.sink2036, i32 noundef %2086, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 253, ptr noundef %2089, ptr noundef %2091, ptr noundef %2093, i32 noundef %2094) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2096:                                             ; preds = %2068
  %2097 = load i32, ptr @test_count, align 4, !tbaa !5
  %2098 = add nsw i32 %2097, 1
  store i32 %2098, ptr @test_count, align 4, !tbaa !5
  %2099 = load ptr, ptr %24, align 8, !tbaa !9
  %2100 = icmp eq ptr %2099, null
  br i1 %2100, label %2101, label %2125

2101:                                             ; preds = %2096
  %2102 = tail call ptr @__errno_location() #13
  %2103 = load i32, ptr %2102, align 4, !tbaa !5
  %2104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2105 = call i32 @s2n_print_stacktrace(ptr noundef %2104) #12
  %2106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2107 = trunc nuw i8 %2106 to i1
  br i1 %2107, label %2108, label %2112

2108:                                             ; preds = %2101
  %2109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2110 = call i32 @fileno(ptr noundef %2109) #12
  %2111 = call i32 @isatty(i32 noundef %2110) #12
  %.not1283 = icmp eq i32 %2111, 0
  br i1 %.not1283, label %2112, label %2113

2112:                                             ; preds = %2108, %2101
  br label %2113

2113:                                             ; preds = %2108, %2112
  %.str.5.sink2047 = phi ptr [ @.str.5, %2112 ], [ @.str.2, %2108 ]
  store i32 %2103, ptr %2102, align 4, !tbaa !5
  %2114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2115 = load i32, ptr @test_count, align 4, !tbaa !5
  %2116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2117 = load i32, ptr %2116, align 4, !tbaa !5
  %2118 = call ptr @s2n_strerror(i32 noundef %2117, ptr noundef nonnull @.str.4) #12
  %2119 = load i32, ptr %2116, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror_debug(i32 noundef %2119, ptr noundef nonnull @.str.4) #12
  %2121 = load i32, ptr %2102, align 4, !tbaa !5
  %2122 = call ptr @strerror(i32 noundef %2121) #12
  %2123 = load i32, ptr %2102, align 4, !tbaa !5
  %2124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2114, ptr noundef nonnull %.str.5.sink2047, i32 noundef %2115, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 254, ptr noundef %2118, ptr noundef %2120, ptr noundef %2122, i32 noundef %2123) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2125:                                             ; preds = %2096
  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)
  %2126 = add nsw i32 %2097, 2
  store i32 %2126, ptr @test_count, align 4, !tbaa !5
  %2127 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %25, i32 noundef 4096) #12
  %2128 = icmp eq i32 %2127, -1
  br i1 %2128, label %2129, label %2153

2129:                                             ; preds = %2125
  %2130 = tail call ptr @__errno_location() #13
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2133 = call i32 @s2n_print_stacktrace(ptr noundef %2132) #12
  %2134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2135 = trunc nuw i8 %2134 to i1
  br i1 %2135, label %2136, label %2140

2136:                                             ; preds = %2129
  %2137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2138 = call i32 @fileno(ptr noundef %2137) #12
  %2139 = call i32 @isatty(i32 noundef %2138) #12
  %.not1282 = icmp eq i32 %2139, 0
  br i1 %.not1282, label %2140, label %2141

2140:                                             ; preds = %2136, %2129
  br label %2141

2141:                                             ; preds = %2136, %2140
  %.str.5.sink2058 = phi ptr [ @.str.5, %2140 ], [ @.str.2, %2136 ]
  store i32 %2131, ptr %2130, align 4, !tbaa !5
  %2142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2143 = load i32, ptr @test_count, align 4, !tbaa !5
  %2144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = call ptr @s2n_strerror(i32 noundef %2145, ptr noundef nonnull @.str.4) #12
  %2147 = load i32, ptr %2144, align 4, !tbaa !5
  %2148 = call ptr @s2n_strerror_debug(i32 noundef %2147, ptr noundef nonnull @.str.4) #12
  %2149 = load i32, ptr %2130, align 4, !tbaa !5
  %2150 = call ptr @strerror(i32 noundef %2149) #12
  %2151 = load i32, ptr %2130, align 4, !tbaa !5
  %2152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2142, ptr noundef nonnull %.str.5.sink2058, i32 noundef %2143, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %2146, ptr noundef %2148, ptr noundef %2150, i32 noundef %2151) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2153:                                             ; preds = %2125
  %2154 = load i32, ptr @test_count, align 4, !tbaa !5
  %2155 = add nsw i32 %2154, 1
  store i32 %2155, ptr @test_count, align 4, !tbaa !5
  %2156 = call i32 %159(ptr noundef nonnull %1982, ptr noundef nonnull %25) #12
  %2157 = icmp eq i32 %2156, -1
  br i1 %2157, label %2158, label %2182

2158:                                             ; preds = %2153
  %2159 = tail call ptr @__errno_location() #13
  %2160 = load i32, ptr %2159, align 4, !tbaa !5
  %2161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2162 = call i32 @s2n_print_stacktrace(ptr noundef %2161) #12
  %2163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2164 = trunc nuw i8 %2163 to i1
  br i1 %2164, label %2165, label %2169

2165:                                             ; preds = %2158
  %2166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2167 = call i32 @fileno(ptr noundef %2166) #12
  %2168 = call i32 @isatty(i32 noundef %2167) #12
  %.not1281 = icmp eq i32 %2168, 0
  br i1 %.not1281, label %2169, label %2170

2169:                                             ; preds = %2165, %2158
  br label %2170

2170:                                             ; preds = %2165, %2169
  %.str.5.sink2069 = phi ptr [ @.str.5, %2169 ], [ @.str.2, %2165 ]
  store i32 %2160, ptr %2159, align 4, !tbaa !5
  %2171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2172 = load i32, ptr @test_count, align 4, !tbaa !5
  %2173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2174 = load i32, ptr %2173, align 4, !tbaa !5
  %2175 = call ptr @s2n_strerror(i32 noundef %2174, ptr noundef nonnull @.str.4) #12
  %2176 = load i32, ptr %2173, align 4, !tbaa !5
  %2177 = call ptr @s2n_strerror_debug(i32 noundef %2176, ptr noundef nonnull @.str.4) #12
  %2178 = load i32, ptr %2159, align 4, !tbaa !5
  %2179 = call ptr @strerror(i32 noundef %2178) #12
  %2180 = load i32, ptr %2159, align 4, !tbaa !5
  %2181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2171, ptr noundef nonnull %.str.5.sink2069, i32 noundef %2172, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 259, ptr noundef %2175, ptr noundef %2177, ptr noundef %2179, i32 noundef %2180) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2182:                                             ; preds = %2153
  %2183 = load i32, ptr @test_count, align 4, !tbaa !5
  %2184 = add nsw i32 %2183, 1
  store i32 %2184, ptr @test_count, align 4, !tbaa !5
  %2185 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %25) #12
  %2186 = icmp eq i32 %2185, -1
  br i1 %2186, label %2187, label %2211

2187:                                             ; preds = %2182
  %2188 = tail call ptr @__errno_location() #13
  %2189 = load i32, ptr %2188, align 4, !tbaa !5
  %2190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2191 = call i32 @s2n_print_stacktrace(ptr noundef %2190) #12
  %2192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2193 = trunc nuw i8 %2192 to i1
  br i1 %2193, label %2194, label %2198

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
  %.not1280 = icmp eq i32 %2197, 0
  br i1 %.not1280, label %2198, label %2199

2198:                                             ; preds = %2194, %2187
  br label %2199

2199:                                             ; preds = %2194, %2198
  %.str.5.sink2080 = phi ptr [ @.str.5, %2198 ], [ @.str.2, %2194 ]
  store i32 %2189, ptr %2188, align 4, !tbaa !5
  %2200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2201 = load i32, ptr @test_count, align 4, !tbaa !5
  %2202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2203 = load i32, ptr %2202, align 4, !tbaa !5
  %2204 = call ptr @s2n_strerror(i32 noundef %2203, ptr noundef nonnull @.str.4) #12
  %2205 = load i32, ptr %2202, align 4, !tbaa !5
  %2206 = call ptr @s2n_strerror_debug(i32 noundef %2205, ptr noundef nonnull @.str.4) #12
  %2207 = load i32, ptr %2188, align 4, !tbaa !5
  %2208 = call ptr @strerror(i32 noundef %2207) #12
  %2209 = load i32, ptr %2188, align 4, !tbaa !5
  %2210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2200, ptr noundef nonnull %.str.5.sink2080, i32 noundef %2201, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 260, ptr noundef %2204, ptr noundef %2206, ptr noundef %2208, i32 noundef %2209) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2211:                                             ; preds = %2182
  %2212 = load i32, ptr @test_count, align 4, !tbaa !5
  %2213 = add nsw i32 %2212, 1
  store i32 %2213, ptr @test_count, align 4, !tbaa !5
  %2214 = getelementptr inbounds i8, ptr %1982, i64 832
  %2215 = getelementptr inbounds i8, ptr %1982, i64 840
  %2216 = getelementptr inbounds i8, ptr %1982, i64 872
  %2217 = load ptr, ptr %2216, align 8, !tbaa !80
  %2218 = icmp eq ptr %2217, null
  br i1 %2218, label %2219, label %2243

2219:                                             ; preds = %2211
  %2220 = tail call ptr @__errno_location() #13
  %2221 = load i32, ptr %2220, align 4, !tbaa !5
  %2222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2223 = call i32 @s2n_print_stacktrace(ptr noundef %2222) #12
  %2224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2225 = trunc nuw i8 %2224 to i1
  br i1 %2225, label %2226, label %2230

2226:                                             ; preds = %2219
  %2227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2228 = call i32 @fileno(ptr noundef %2227) #12
  %2229 = call i32 @isatty(i32 noundef %2228) #12
  %.not1279 = icmp eq i32 %2229, 0
  br i1 %.not1279, label %2230, label %2231

2230:                                             ; preds = %2226, %2219
  br label %2231

2231:                                             ; preds = %2226, %2230
  %.str.5.sink2091 = phi ptr [ @.str.5, %2230 ], [ @.str.2, %2226 ]
  store i32 %2221, ptr %2220, align 4, !tbaa !5
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = load i32, ptr @test_count, align 4, !tbaa !5
  %2234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = call ptr @s2n_strerror(i32 noundef %2235, ptr noundef nonnull @.str.4) #12
  %2237 = load i32, ptr %2234, align 4, !tbaa !5
  %2238 = call ptr @s2n_strerror_debug(i32 noundef %2237, ptr noundef nonnull @.str.4) #12
  %2239 = load i32, ptr %2220, align 4, !tbaa !5
  %2240 = call ptr @strerror(i32 noundef %2239) #12
  %2241 = load i32, ptr %2220, align 4, !tbaa !5
  %2242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2232, ptr noundef nonnull %.str.5.sink2091, i32 noundef %2233, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %2236, ptr noundef %2238, ptr noundef %2240, i32 noundef %2241) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2243:                                             ; preds = %2211
  %2244 = add nsw i32 %2212, 2
  store i32 %2244, ptr @test_count, align 4, !tbaa !5
  %2245 = getelementptr inbounds i8, ptr %1982, i64 928
  %2246 = getelementptr inbounds i8, ptr %1982, i64 936
  %2247 = load ptr, ptr %2246, align 8, !tbaa !81
  %2248 = icmp eq ptr %2247, null
  br i1 %2248, label %2249, label %2273

2249:                                             ; preds = %2243
  %2250 = tail call ptr @__errno_location() #13
  %2251 = load i32, ptr %2250, align 4, !tbaa !5
  %2252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2253 = call i32 @s2n_print_stacktrace(ptr noundef %2252) #12
  %2254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2255 = trunc nuw i8 %2254 to i1
  br i1 %2255, label %2256, label %2260

2256:                                             ; preds = %2249
  %2257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2258 = call i32 @fileno(ptr noundef %2257) #12
  %2259 = call i32 @isatty(i32 noundef %2258) #12
  %.not1278 = icmp eq i32 %2259, 0
  br i1 %.not1278, label %2260, label %2261

2260:                                             ; preds = %2256, %2249
  br label %2261

2261:                                             ; preds = %2256, %2260
  %.str.5.sink2102 = phi ptr [ @.str.5, %2260 ], [ @.str.2, %2256 ]
  store i32 %2251, ptr %2250, align 4, !tbaa !5
  %2262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2263 = load i32, ptr @test_count, align 4, !tbaa !5
  %2264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2265 = load i32, ptr %2264, align 4, !tbaa !5
  %2266 = call ptr @s2n_strerror(i32 noundef %2265, ptr noundef nonnull @.str.4) #12
  %2267 = load i32, ptr %2264, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror_debug(i32 noundef %2267, ptr noundef nonnull @.str.4) #12
  %2269 = load i32, ptr %2250, align 4, !tbaa !5
  %2270 = call ptr @strerror(i32 noundef %2269) #12
  %2271 = load i32, ptr %2250, align 4, !tbaa !5
  %2272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2262, ptr noundef nonnull %.str.5.sink2102, i32 noundef %2263, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 263, ptr noundef %2266, ptr noundef %2268, ptr noundef %2270, i32 noundef %2271) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2273:                                             ; preds = %2243
  %2274 = getelementptr inbounds i8, ptr %1982, i64 2172
  store i32 16, ptr %2274, align 4, !tbaa !82
  %2275 = getelementptr inbounds i8, ptr %1982, i64 2176
  store i32 1, ptr %2275, align 8, !tbaa !83
  %2276 = getelementptr inbounds i8, ptr %1982, i64 222
  store i8 1, ptr %2276, align 2, !tbaa !84
  %2277 = load ptr, ptr %24, align 8, !tbaa !9
  %2278 = getelementptr inbounds i8, ptr %2277, i64 16
  %2279 = load i8, ptr %2278, align 8, !tbaa !15
  %2280 = zext i8 %2279 to i64
  br label %2281

2281:                                             ; preds = %2283, %2273
  %indvars.iv = phi i64 [ %indvars.iv.next, %2283 ], [ %2280, %2273 ]
  %2282 = icmp sgt i64 %indvars.iv, 1
  br i1 %2282, label %2283, label %.loopexit1329

2283:                                             ; preds = %2281
  %indvars.iv.next = add nsw i64 %indvars.iv, -1
  %2284 = load ptr, ptr %24, align 8, !tbaa !9
  %2285 = getelementptr inbounds i8, ptr %2284, i64 24
  %2286 = load ptr, ptr %2285, align 8, !tbaa !17
  %2287 = getelementptr inbounds ptr, ptr %2286, i64 %indvars.iv.next
  %2288 = load ptr, ptr %2287, align 8, !tbaa !9
  %2289 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %2288) #12
  br i1 %2289, label %2315, label %2281, !llvm.loop !85

.loopexit1329:                                    ; preds = %2281
  %2290 = load i32, ptr @test_count, align 4, !tbaa !5
  %2291 = add nsw i32 %2290, 1
  store i32 %2291, ptr @test_count, align 4, !tbaa !5
  %2292 = tail call ptr @__errno_location() #13
  %2293 = load i32, ptr %2292, align 4, !tbaa !5
  %2294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2295 = call i32 @s2n_print_stacktrace(ptr noundef %2294) #12
  %2296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2297 = trunc nuw i8 %2296 to i1
  br i1 %2297, label %2298, label %2302

2298:                                             ; preds = %.loopexit1329
  %2299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2300 = call i32 @fileno(ptr noundef %2299) #12
  %2301 = call i32 @isatty(i32 noundef %2300) #12
  %.not1277 = icmp eq i32 %2301, 0
  br i1 %.not1277, label %2302, label %2303

2302:                                             ; preds = %2298, %.loopexit1329
  br label %2303

2303:                                             ; preds = %2298, %2302
  %.str.5.sink2113 = phi ptr [ @.str.5, %2302 ], [ @.str.2, %2298 ]
  store i32 %2293, ptr %2292, align 4, !tbaa !5
  %2304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2305 = load i32, ptr @test_count, align 4, !tbaa !5
  %2306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2307 = load i32, ptr %2306, align 4, !tbaa !5
  %2308 = call ptr @s2n_strerror(i32 noundef %2307, ptr noundef nonnull @.str.4) #12
  %2309 = load i32, ptr %2306, align 4, !tbaa !5
  %2310 = call ptr @s2n_strerror_debug(i32 noundef %2309, ptr noundef nonnull @.str.4) #12
  %2311 = load i32, ptr %2292, align 4, !tbaa !5
  %2312 = call ptr @strerror(i32 noundef %2311) #12
  %2313 = load i32, ptr %2292, align 4, !tbaa !5
  %2314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2304, ptr noundef nonnull %.str.5.sink2113, i32 noundef %2305, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %2308, ptr noundef %2310, ptr noundef %2312, i32 noundef %2313) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2315:                                             ; preds = %2283
  %2316 = load i32, ptr @test_count, align 4, !tbaa !5
  %2317 = load ptr, ptr %24, align 8, !tbaa !9
  %2318 = getelementptr inbounds i8, ptr %2317, i64 24
  %2319 = load ptr, ptr %2318, align 8, !tbaa !17
  %2320 = and i64 %indvars.iv.next, 255
  %2321 = getelementptr inbounds ptr, ptr %2319, i64 %2320
  %2322 = load ptr, ptr %2321, align 8, !tbaa !9
  %2323 = getelementptr inbounds i8, ptr %1982, i64 720
  store ptr %2322, ptr %2323, align 8, !tbaa !87
  %2324 = add nsw i32 %2316, 2
  store i32 %2324, ptr @test_count, align 4, !tbaa !5
  %2325 = call i32 %159(ptr noundef nonnull %1982, ptr noundef nonnull %25) #12
  %2326 = icmp eq i32 %2325, -1
  br i1 %2326, label %2327, label %2351

2327:                                             ; preds = %2315
  %2328 = tail call ptr @__errno_location() #13
  %2329 = load i32, ptr %2328, align 4, !tbaa !5
  %2330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2331 = call i32 @s2n_print_stacktrace(ptr noundef %2330) #12
  %2332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2333 = trunc nuw i8 %2332 to i1
  br i1 %2333, label %2334, label %2338

2334:                                             ; preds = %2327
  %2335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2336 = call i32 @fileno(ptr noundef %2335) #12
  %2337 = call i32 @isatty(i32 noundef %2336) #12
  %.not1276 = icmp eq i32 %2337, 0
  br i1 %.not1276, label %2338, label %2339

2338:                                             ; preds = %2334, %2327
  br label %2339

2339:                                             ; preds = %2334, %2338
  %.str.5.sink2124 = phi ptr [ @.str.5, %2338 ], [ @.str.2, %2334 ]
  store i32 %2329, ptr %2328, align 4, !tbaa !5
  %2340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2341 = load i32, ptr @test_count, align 4, !tbaa !5
  %2342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2343 = load i32, ptr %2342, align 4, !tbaa !5
  %2344 = call ptr @s2n_strerror(i32 noundef %2343, ptr noundef nonnull @.str.4) #12
  %2345 = load i32, ptr %2342, align 4, !tbaa !5
  %2346 = call ptr @s2n_strerror_debug(i32 noundef %2345, ptr noundef nonnull @.str.4) #12
  %2347 = load i32, ptr %2328, align 4, !tbaa !5
  %2348 = call ptr @strerror(i32 noundef %2347) #12
  %2349 = load i32, ptr %2328, align 4, !tbaa !5
  %2350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2340, ptr noundef nonnull %.str.5.sink2124, i32 noundef %2341, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 281, ptr noundef %2344, ptr noundef %2346, ptr noundef %2348, i32 noundef %2349) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2351:                                             ; preds = %2315
  %2352 = load i32, ptr @test_count, align 4, !tbaa !5
  %2353 = add nsw i32 %2352, 1
  store i32 %2353, ptr @test_count, align 4, !tbaa !5
  %2354 = load ptr, ptr %2214, align 8, !tbaa !63
  %2355 = icmp eq ptr %2354, %2322
  br i1 %2355, label %2380, label %2356

2356:                                             ; preds = %2351
  %2357 = tail call ptr @__errno_location() #13
  %2358 = load i32, ptr %2357, align 4, !tbaa !5
  %2359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2360 = call i32 @s2n_print_stacktrace(ptr noundef %2359) #12
  %2361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2362 = trunc nuw i8 %2361 to i1
  br i1 %2362, label %2363, label %2367

2363:                                             ; preds = %2356
  %2364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2365 = call i32 @fileno(ptr noundef %2364) #12
  %2366 = call i32 @isatty(i32 noundef %2365) #12
  %.not1207 = icmp eq i32 %2366, 0
  br i1 %.not1207, label %2367, label %2368

2367:                                             ; preds = %2363, %2356
  br label %2368

2368:                                             ; preds = %2363, %2367
  %.str.5.sink2135 = phi ptr [ @.str.5, %2367 ], [ @.str.2, %2363 ]
  store i32 %2358, ptr %2357, align 4, !tbaa !5
  %2369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2370 = load i32, ptr @test_count, align 4, !tbaa !5
  %2371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2372 = load i32, ptr %2371, align 4, !tbaa !5
  %2373 = call ptr @s2n_strerror(i32 noundef %2372, ptr noundef nonnull @.str.4) #12
  %2374 = load i32, ptr %2371, align 4, !tbaa !5
  %2375 = call ptr @s2n_strerror_debug(i32 noundef %2374, ptr noundef nonnull @.str.4) #12
  %2376 = load i32, ptr %2357, align 4, !tbaa !5
  %2377 = call ptr @strerror(i32 noundef %2376) #12
  %2378 = load i32, ptr %2357, align 4, !tbaa !5
  %2379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2369, ptr noundef nonnull %.str.5.sink2135, i32 noundef %2370, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %2373, ptr noundef %2375, ptr noundef %2377, i32 noundef %2378) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2380:                                             ; preds = %2351
  %2381 = add nsw i32 %2352, 2
  store i32 %2381, ptr @test_count, align 4, !tbaa !5
  %2382 = load ptr, ptr %2215, align 8, !tbaa !64
  %2383 = getelementptr inbounds i8, ptr %2322, i64 24
  %2384 = load ptr, ptr %2383, align 8, !tbaa !65
  %2385 = icmp eq ptr %2382, %2384
  br i1 %2385, label %2410, label %2386

2386:                                             ; preds = %2380
  %2387 = tail call ptr @__errno_location() #13
  %2388 = load i32, ptr %2387, align 4, !tbaa !5
  %2389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2390 = call i32 @s2n_print_stacktrace(ptr noundef %2389) #12
  %2391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2392 = trunc nuw i8 %2391 to i1
  br i1 %2392, label %2393, label %2397

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
  %.not1208 = icmp eq i32 %2396, 0
  br i1 %.not1208, label %2397, label %2398

2397:                                             ; preds = %2393, %2386
  br label %2398

2398:                                             ; preds = %2393, %2397
  %.str.5.sink2146 = phi ptr [ @.str.5, %2397 ], [ @.str.2, %2393 ]
  store i32 %2388, ptr %2387, align 4, !tbaa !5
  %2399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2400 = load i32, ptr @test_count, align 4, !tbaa !5
  %2401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2402 = load i32, ptr %2401, align 4, !tbaa !5
  %2403 = call ptr @s2n_strerror(i32 noundef %2402, ptr noundef nonnull @.str.4) #12
  %2404 = load i32, ptr %2401, align 4, !tbaa !5
  %2405 = call ptr @s2n_strerror_debug(i32 noundef %2404, ptr noundef nonnull @.str.4) #12
  %2406 = load i32, ptr %2387, align 4, !tbaa !5
  %2407 = call ptr @strerror(i32 noundef %2406) #12
  %2408 = load i32, ptr %2387, align 4, !tbaa !5
  %2409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2399, ptr noundef nonnull %.str.5.sink2146, i32 noundef %2400, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %2403, ptr noundef %2405, ptr noundef %2407, i32 noundef %2408) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2410:                                             ; preds = %2380
  %2411 = add nsw i32 %2352, 3
  store i32 %2411, ptr @test_count, align 4, !tbaa !5
  %2412 = load ptr, ptr %2216, align 8, !tbaa !67
  %2413 = icmp eq ptr %2412, null
  br i1 %2413, label %2414, label %2438

2414:                                             ; preds = %2410
  %2415 = tail call ptr @__errno_location() #13
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2418 = call i32 @s2n_print_stacktrace(ptr noundef %2417) #12
  %2419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2420 = trunc nuw i8 %2419 to i1
  br i1 %2420, label %2421, label %2425

2421:                                             ; preds = %2414
  %2422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2423 = call i32 @fileno(ptr noundef %2422) #12
  %2424 = call i32 @isatty(i32 noundef %2423) #12
  %.not1275 = icmp eq i32 %2424, 0
  br i1 %.not1275, label %2425, label %2426

2425:                                             ; preds = %2421, %2414
  br label %2426

2426:                                             ; preds = %2421, %2425
  %.str.5.sink2157 = phi ptr [ @.str.5, %2425 ], [ @.str.2, %2421 ]
  store i32 %2416, ptr %2415, align 4, !tbaa !5
  %2427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2428 = load i32, ptr @test_count, align 4, !tbaa !5
  %2429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2430 = load i32, ptr %2429, align 4, !tbaa !5
  %2431 = call ptr @s2n_strerror(i32 noundef %2430, ptr noundef nonnull @.str.4) #12
  %2432 = load i32, ptr %2429, align 4, !tbaa !5
  %2433 = call ptr @s2n_strerror_debug(i32 noundef %2432, ptr noundef nonnull @.str.4) #12
  %2434 = load i32, ptr %2415, align 4, !tbaa !5
  %2435 = call ptr @strerror(i32 noundef %2434) #12
  %2436 = load i32, ptr %2415, align 4, !tbaa !5
  %2437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2427, ptr noundef nonnull %.str.5.sink2157, i32 noundef %2428, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 287, ptr noundef %2431, ptr noundef %2433, ptr noundef %2435, i32 noundef %2436) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2438:                                             ; preds = %2410
  %2439 = add nsw i32 %2352, 4
  store i32 %2439, ptr @test_count, align 4, !tbaa !5
  %2440 = getelementptr inbounds i8, ptr %1982, i64 880
  %2441 = load i32, ptr %2440, align 8, !tbaa !68
  %2442 = getelementptr inbounds i8, ptr %2384, i64 16
  %2443 = load i16, ptr %2442, align 8, !tbaa !69
  %2444 = zext i16 %2443 to i32
  %2445 = icmp eq i32 %2441, %2444
  br i1 %2445, label %2470, label %2446

2446:                                             ; preds = %2438
  %2447 = tail call ptr @__errno_location() #13
  %2448 = load i32, ptr %2447, align 4, !tbaa !5
  %2449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2450 = call i32 @s2n_print_stacktrace(ptr noundef %2449) #12
  %2451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2452 = trunc nuw i8 %2451 to i1
  br i1 %2452, label %2453, label %2457

2453:                                             ; preds = %2446
  %2454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2455 = call i32 @fileno(ptr noundef %2454) #12
  %2456 = call i32 @isatty(i32 noundef %2455) #12
  %.not1209 = icmp eq i32 %2456, 0
  br i1 %.not1209, label %2457, label %2458

2457:                                             ; preds = %2453, %2446
  br label %2458

2458:                                             ; preds = %2453, %2457
  %.str.5.sink2168 = phi ptr [ @.str.5, %2457 ], [ @.str.2, %2453 ]
  store i32 %2448, ptr %2447, align 4, !tbaa !5
  %2459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2460 = load i32, ptr @test_count, align 4, !tbaa !5
  %2461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2462 = load i32, ptr %2461, align 4, !tbaa !5
  %2463 = call ptr @s2n_strerror(i32 noundef %2462, ptr noundef nonnull @.str.4) #12
  %2464 = load i32, ptr %2461, align 4, !tbaa !5
  %2465 = call ptr @s2n_strerror_debug(i32 noundef %2464, ptr noundef nonnull @.str.4) #12
  %2466 = load i32, ptr %2447, align 4, !tbaa !5
  %2467 = call ptr @strerror(i32 noundef %2466) #12
  %2468 = load i32, ptr %2447, align 4, !tbaa !5
  %2469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2459, ptr noundef nonnull %.str.5.sink2168, i32 noundef %2460, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %2463, ptr noundef %2465, ptr noundef %2467, i32 noundef %2468) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2470:                                             ; preds = %2438
  %2471 = add nsw i32 %2352, 5
  store i32 %2471, ptr @test_count, align 4, !tbaa !5
  %2472 = load ptr, ptr %2245, align 8, !tbaa !71
  %2473 = getelementptr inbounds i8, ptr %2322, i64 16
  %2474 = load ptr, ptr %2473, align 8, !tbaa !72
  %2475 = icmp eq ptr %2472, %2474
  br i1 %2475, label %2500, label %2476

2476:                                             ; preds = %2470
  %2477 = tail call ptr @__errno_location() #13
  %2478 = load i32, ptr %2477, align 4, !tbaa !5
  %2479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2480 = call i32 @s2n_print_stacktrace(ptr noundef %2479) #12
  %2481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2482 = trunc nuw i8 %2481 to i1
  br i1 %2482, label %2483, label %2487

2483:                                             ; preds = %2476
  %2484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2485 = call i32 @fileno(ptr noundef %2484) #12
  %2486 = call i32 @isatty(i32 noundef %2485) #12
  %.not1210 = icmp eq i32 %2486, 0
  br i1 %.not1210, label %2487, label %2488

2487:                                             ; preds = %2483, %2476
  br label %2488

2488:                                             ; preds = %2483, %2487
  %.str.5.sink2179 = phi ptr [ @.str.5, %2487 ], [ @.str.2, %2483 ]
  store i32 %2478, ptr %2477, align 4, !tbaa !5
  %2489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2490 = load i32, ptr @test_count, align 4, !tbaa !5
  %2491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2492 = load i32, ptr %2491, align 4, !tbaa !5
  %2493 = call ptr @s2n_strerror(i32 noundef %2492, ptr noundef nonnull @.str.4) #12
  %2494 = load i32, ptr %2491, align 4, !tbaa !5
  %2495 = call ptr @s2n_strerror_debug(i32 noundef %2494, ptr noundef nonnull @.str.4) #12
  %2496 = load i32, ptr %2477, align 4, !tbaa !5
  %2497 = call ptr @strerror(i32 noundef %2496) #12
  %2498 = load i32, ptr %2477, align 4, !tbaa !5
  %2499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2489, ptr noundef nonnull %.str.5.sink2179, i32 noundef %2490, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 289, ptr noundef %2493, ptr noundef %2495, ptr noundef %2497, i32 noundef %2498) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2500:                                             ; preds = %2470
  %2501 = add nsw i32 %2352, 6
  store i32 %2501, ptr @test_count, align 4, !tbaa !5
  %2502 = load ptr, ptr %2246, align 8, !tbaa !73
  %2503 = icmp eq ptr %2502, null
  br i1 %2503, label %2504, label %2528

2504:                                             ; preds = %2500
  %2505 = tail call ptr @__errno_location() #13
  %2506 = load i32, ptr %2505, align 4, !tbaa !5
  %2507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2508 = call i32 @s2n_print_stacktrace(ptr noundef %2507) #12
  %2509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2510 = trunc nuw i8 %2509 to i1
  br i1 %2510, label %2511, label %2515

2511:                                             ; preds = %2504
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = call i32 @fileno(ptr noundef %2512) #12
  %2514 = call i32 @isatty(i32 noundef %2513) #12
  %.not1274 = icmp eq i32 %2514, 0
  br i1 %.not1274, label %2515, label %2516

2515:                                             ; preds = %2511, %2504
  br label %2516

2516:                                             ; preds = %2511, %2515
  %.str.5.sink2190 = phi ptr [ @.str.5, %2515 ], [ @.str.2, %2511 ]
  store i32 %2506, ptr %2505, align 4, !tbaa !5
  %2517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2518 = load i32, ptr @test_count, align 4, !tbaa !5
  %2519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2520 = load i32, ptr %2519, align 4, !tbaa !5
  %2521 = call ptr @s2n_strerror(i32 noundef %2520, ptr noundef nonnull @.str.4) #12
  %2522 = load i32, ptr %2519, align 4, !tbaa !5
  %2523 = call ptr @s2n_strerror_debug(i32 noundef %2522, ptr noundef nonnull @.str.4) #12
  %2524 = load i32, ptr %2505, align 4, !tbaa !5
  %2525 = call ptr @strerror(i32 noundef %2524) #12
  %2526 = load i32, ptr %2505, align 4, !tbaa !5
  %2527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2517, ptr noundef nonnull %.str.5.sink2190, i32 noundef %2518, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %2521, ptr noundef %2523, ptr noundef %2525, i32 noundef %2526) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2528:                                             ; preds = %2500
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %26) #12
  store i16 0, ptr %26, align 2, !tbaa !55
  %2529 = add nsw i32 %2352, 7
  store i32 %2529, ptr @test_count, align 4, !tbaa !5
  %2530 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %25, ptr noundef nonnull %26) #12
  %2531 = icmp eq i32 %2530, -1
  br i1 %2531, label %2532, label %2556

2532:                                             ; preds = %2528
  %2533 = tail call ptr @__errno_location() #13
  %2534 = load i32, ptr %2533, align 4, !tbaa !5
  %2535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2536 = call i32 @s2n_print_stacktrace(ptr noundef %2535) #12
  %2537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2538 = trunc nuw i8 %2537 to i1
  br i1 %2538, label %2539, label %2543

2539:                                             ; preds = %2532
  %2540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2541 = call i32 @fileno(ptr noundef %2540) #12
  %2542 = call i32 @isatty(i32 noundef %2541) #12
  %.not1273 = icmp eq i32 %2542, 0
  br i1 %.not1273, label %2543, label %2544

2543:                                             ; preds = %2539, %2532
  br label %2544

2544:                                             ; preds = %2539, %2543
  %.str.5.sink2201 = phi ptr [ @.str.5, %2543 ], [ @.str.2, %2539 ]
  store i32 %2534, ptr %2533, align 4, !tbaa !5
  %2545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2546 = load i32, ptr @test_count, align 4, !tbaa !5
  %2547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2548 = load i32, ptr %2547, align 4, !tbaa !5
  %2549 = call ptr @s2n_strerror(i32 noundef %2548, ptr noundef nonnull @.str.4) #12
  %2550 = load i32, ptr %2547, align 4, !tbaa !5
  %2551 = call ptr @s2n_strerror_debug(i32 noundef %2550, ptr noundef nonnull @.str.4) #12
  %2552 = load i32, ptr %2533, align 4, !tbaa !5
  %2553 = call ptr @strerror(i32 noundef %2552) #12
  %2554 = load i32, ptr %2533, align 4, !tbaa !5
  %2555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2545, ptr noundef nonnull %.str.5.sink2201, i32 noundef %2546, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 295, ptr noundef %2549, ptr noundef %2551, ptr noundef %2553, i32 noundef %2554) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2556:                                             ; preds = %2528
  %2557 = load i32, ptr @test_count, align 4, !tbaa !5
  %2558 = add nsw i32 %2557, 1
  store i32 %2558, ptr @test_count, align 4, !tbaa !5
  %2559 = load i16, ptr %26, align 2, !tbaa !55
  %2560 = zext i16 %2559 to i32
  %2561 = load i32, ptr %175, align 4, !tbaa !56
  %2562 = load i32, ptr %176, align 8, !tbaa !57
  %2563 = sub i32 %2561, %2562
  %2564 = icmp eq i32 %2563, %2560
  br i1 %2564, label %2589, label %2565

2565:                                             ; preds = %2556
  %2566 = tail call ptr @__errno_location() #13
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2569 = call i32 @s2n_print_stacktrace(ptr noundef %2568) #12
  %2570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2571 = trunc nuw i8 %2570 to i1
  br i1 %2571, label %2572, label %2576

2572:                                             ; preds = %2565
  %2573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2574 = call i32 @fileno(ptr noundef %2573) #12
  %2575 = call i32 @isatty(i32 noundef %2574) #12
  %.not1211 = icmp eq i32 %2575, 0
  br i1 %.not1211, label %2576, label %2577

2576:                                             ; preds = %2572, %2565
  br label %2577

2577:                                             ; preds = %2572, %2576
  %.str.5.sink2212 = phi ptr [ @.str.5, %2576 ], [ @.str.2, %2572 ]
  store i32 %2567, ptr %2566, align 4, !tbaa !5
  %2578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2579 = load i32, ptr @test_count, align 4, !tbaa !5
  %2580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2581 = load i32, ptr %2580, align 4, !tbaa !5
  %2582 = call ptr @s2n_strerror(i32 noundef %2581, ptr noundef nonnull @.str.4) #12
  %2583 = load i32, ptr %2580, align 4, !tbaa !5
  %2584 = call ptr @s2n_strerror_debug(i32 noundef %2583, ptr noundef nonnull @.str.4) #12
  %2585 = load i32, ptr %2566, align 4, !tbaa !5
  %2586 = call ptr @strerror(i32 noundef %2585) #12
  %2587 = load i32, ptr %2566, align 4, !tbaa !5
  %2588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2578, ptr noundef nonnull %.str.5.sink2212, i32 noundef %2579, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %2582, ptr noundef %2584, ptr noundef %2586, i32 noundef %2587) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2589:                                             ; preds = %2556
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %27) #12
  store i16 0, ptr %27, align 2, !tbaa !55
  %2590 = add nsw i32 %2557, 2
  store i32 %2590, ptr @test_count, align 4, !tbaa !5
  %2591 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %25, ptr noundef nonnull %27) #12
  %2592 = icmp eq i32 %2591, -1
  br i1 %2592, label %2593, label %2617

2593:                                             ; preds = %2589
  %2594 = tail call ptr @__errno_location() #13
  %2595 = load i32, ptr %2594, align 4, !tbaa !5
  %2596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2597 = call i32 @s2n_print_stacktrace(ptr noundef %2596) #12
  %2598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2599 = trunc nuw i8 %2598 to i1
  br i1 %2599, label %2600, label %2604

2600:                                             ; preds = %2593
  %2601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2602 = call i32 @fileno(ptr noundef %2601) #12
  %2603 = call i32 @isatty(i32 noundef %2602) #12
  %.not1272 = icmp eq i32 %2603, 0
  br i1 %.not1272, label %2604, label %2605

2604:                                             ; preds = %2600, %2593
  br label %2605

2605:                                             ; preds = %2600, %2604
  %.str.5.sink2223 = phi ptr [ @.str.5, %2604 ], [ @.str.2, %2600 ]
  store i32 %2595, ptr %2594, align 4, !tbaa !5
  %2606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2607 = load i32, ptr @test_count, align 4, !tbaa !5
  %2608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2609 = load i32, ptr %2608, align 4, !tbaa !5
  %2610 = call ptr @s2n_strerror(i32 noundef %2609, ptr noundef nonnull @.str.4) #12
  %2611 = load i32, ptr %2608, align 4, !tbaa !5
  %2612 = call ptr @s2n_strerror_debug(i32 noundef %2611, ptr noundef nonnull @.str.4) #12
  %2613 = load i32, ptr %2594, align 4, !tbaa !5
  %2614 = call ptr @strerror(i32 noundef %2613) #12
  %2615 = load i32, ptr %2594, align 4, !tbaa !5
  %2616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2606, ptr noundef nonnull %.str.5.sink2223, i32 noundef %2607, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %2610, ptr noundef %2612, ptr noundef %2614, i32 noundef %2615) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2617:                                             ; preds = %2589
  %2618 = load i32, ptr @test_count, align 4, !tbaa !5
  %2619 = add nsw i32 %2618, 1
  store i32 %2619, ptr @test_count, align 4, !tbaa !5
  %2620 = load i16, ptr %27, align 2, !tbaa !55
  %2621 = load ptr, ptr %24, align 8, !tbaa !9
  %2622 = getelementptr inbounds i8, ptr %2621, i64 24
  %2623 = load ptr, ptr %2622, align 8, !tbaa !17
  %2624 = getelementptr inbounds ptr, ptr %2623, i64 %2320
  %2625 = load ptr, ptr %2624, align 8, !tbaa !9
  %2626 = getelementptr inbounds i8, ptr %2625, i64 8
  %2627 = load i16, ptr %2626, align 8, !tbaa !76
  %2628 = icmp eq i16 %2620, %2627
  br i1 %2628, label %2653, label %2629

2629:                                             ; preds = %2617
  %2630 = tail call ptr @__errno_location() #13
  %2631 = load i32, ptr %2630, align 4, !tbaa !5
  %2632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2633 = call i32 @s2n_print_stacktrace(ptr noundef %2632) #12
  %2634 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2635 = trunc nuw i8 %2634 to i1
  br i1 %2635, label %2636, label %2640

2636:                                             ; preds = %2629
  %2637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2638 = call i32 @fileno(ptr noundef %2637) #12
  %2639 = call i32 @isatty(i32 noundef %2638) #12
  %.not1212 = icmp eq i32 %2639, 0
  br i1 %.not1212, label %2640, label %2641

2640:                                             ; preds = %2636, %2629
  br label %2641

2641:                                             ; preds = %2636, %2640
  %.str.5.sink2234 = phi ptr [ @.str.5, %2640 ], [ @.str.2, %2636 ]
  store i32 %2631, ptr %2630, align 4, !tbaa !5
  %2642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2643 = load i32, ptr @test_count, align 4, !tbaa !5
  %2644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2645 = load i32, ptr %2644, align 4, !tbaa !5
  %2646 = call ptr @s2n_strerror(i32 noundef %2645, ptr noundef nonnull @.str.4) #12
  %2647 = load i32, ptr %2644, align 4, !tbaa !5
  %2648 = call ptr @s2n_strerror_debug(i32 noundef %2647, ptr noundef nonnull @.str.4) #12
  %2649 = load i32, ptr %2630, align 4, !tbaa !5
  %2650 = call ptr @strerror(i32 noundef %2649) #12
  %2651 = load i32, ptr %2630, align 4, !tbaa !5
  %2652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2642, ptr noundef nonnull %.str.5.sink2234, i32 noundef %2643, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %2646, ptr noundef %2648, ptr noundef %2650, i32 noundef %2651) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2653:                                             ; preds = %2617
  %2654 = load ptr, ptr %2473, align 8, !tbaa !72
  %2655 = getelementptr inbounds i8, ptr %2654, i64 16
  %2656 = load i8, ptr %2655, align 8, !tbaa !62
  %2657 = zext i8 %2656 to i16
  br i1 %263, label %2658, label %2664

2658:                                             ; preds = %2653
  %2659 = add nuw nsw i16 %2657, 4
  %2660 = load ptr, ptr %2383, align 8, !tbaa !65
  %2661 = getelementptr inbounds i8, ptr %2660, i64 14
  %2662 = load i16, ptr %2661, align 2, !tbaa !77
  %2663 = add i16 %2659, %2662
  br label %2669

2664:                                             ; preds = %2653
  %2665 = load ptr, ptr %2383, align 8, !tbaa !65
  %2666 = getelementptr inbounds i8, ptr %2665, i64 14
  %2667 = load i16, ptr %2666, align 2, !tbaa !77
  %2668 = add i16 %2667, %2657
  br label %2669

2669:                                             ; preds = %2664, %2658
  %.0955 = phi i16 [ %2663, %2658 ], [ %2668, %2664 ]
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %28) #12
  store i16 0, ptr %28, align 2, !tbaa !55
  %2670 = add nsw i32 %2618, 2
  store i32 %2670, ptr @test_count, align 4, !tbaa !5
  %2671 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %25, ptr noundef nonnull %28) #12
  %2672 = icmp eq i32 %2671, -1
  br i1 %2672, label %2673, label %2697

2673:                                             ; preds = %2669
  %2674 = tail call ptr @__errno_location() #13
  %2675 = load i32, ptr %2674, align 4, !tbaa !5
  %2676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2677 = call i32 @s2n_print_stacktrace(ptr noundef %2676) #12
  %2678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2679 = trunc nuw i8 %2678 to i1
  br i1 %2679, label %2680, label %2684

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

2684:                                             ; preds = %2680, %2673
  br label %2685

2685:                                             ; preds = %2680, %2684
  %.str.5.sink2245 = phi ptr [ @.str.5, %2684 ], [ @.str.2, %2680 ]
  store i32 %2675, ptr %2674, align 4, !tbaa !5
  %2686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2687 = load i32, ptr @test_count, align 4, !tbaa !5
  %2688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call ptr @s2n_strerror(i32 noundef %2689, ptr noundef nonnull @.str.4) #12
  %2691 = load i32, ptr %2688, align 4, !tbaa !5
  %2692 = call ptr @s2n_strerror_debug(i32 noundef %2691, ptr noundef nonnull @.str.4) #12
  %2693 = load i32, ptr %2674, align 4, !tbaa !5
  %2694 = call ptr @strerror(i32 noundef %2693) #12
  %2695 = load i32, ptr %2674, align 4, !tbaa !5
  %2696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2686, ptr noundef nonnull %.str.5.sink2245, i32 noundef %2687, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 316, ptr noundef %2690, ptr noundef %2692, ptr noundef %2694, i32 noundef %2695) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2697:                                             ; preds = %2669
  %2698 = load i32, ptr @test_count, align 4, !tbaa !5
  %2699 = add nsw i32 %2698, 1
  store i32 %2699, ptr @test_count, align 4, !tbaa !5
  %2700 = load i16, ptr %28, align 2, !tbaa !55
  %2701 = icmp eq i16 %2700, %.0955
  br i1 %2701, label %2726, label %2702

2702:                                             ; preds = %2697
  %2703 = tail call ptr @__errno_location() #13
  %2704 = load i32, ptr %2703, align 4, !tbaa !5
  %2705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2706 = call i32 @s2n_print_stacktrace(ptr noundef %2705) #12
  %2707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2708 = trunc nuw i8 %2707 to i1
  br i1 %2708, label %2709, label %2713

2709:                                             ; preds = %2702
  %2710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2711 = call i32 @fileno(ptr noundef %2710) #12
  %2712 = call i32 @isatty(i32 noundef %2711) #12
  %.not1213 = icmp eq i32 %2712, 0
  br i1 %.not1213, label %2713, label %2714

2713:                                             ; preds = %2709, %2702
  br label %2714

2714:                                             ; preds = %2709, %2713
  %.str.5.sink2256 = phi ptr [ @.str.5, %2713 ], [ @.str.2, %2709 ]
  store i32 %2704, ptr %2703, align 4, !tbaa !5
  %2715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2716 = load i32, ptr @test_count, align 4, !tbaa !5
  %2717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  %2719 = call ptr @s2n_strerror(i32 noundef %2718, ptr noundef nonnull @.str.4) #12
  %2720 = load i32, ptr %2717, align 4, !tbaa !5
  %2721 = call ptr @s2n_strerror_debug(i32 noundef %2720, ptr noundef nonnull @.str.4) #12
  %2722 = load i32, ptr %2703, align 4, !tbaa !5
  %2723 = call ptr @strerror(i32 noundef %2722) #12
  %2724 = load i32, ptr %2703, align 4, !tbaa !5
  %2725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2715, ptr noundef nonnull %.str.5.sink2256, i32 noundef %2716, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 317, ptr noundef %2719, ptr noundef %2721, ptr noundef %2723, i32 noundef %2724) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2726:                                             ; preds = %2697
  %2727 = load ptr, ptr %2473, align 8, !tbaa !72
  %2728 = getelementptr inbounds i8, ptr %2727, i64 16
  %2729 = load i8, ptr %2728, align 8, !tbaa !62
  %2730 = zext i8 %2729 to i16
  %2731 = load ptr, ptr %2383, align 8, !tbaa !65
  %2732 = getelementptr inbounds i8, ptr %2731, i64 14
  %2733 = load i16, ptr %2732, align 2, !tbaa !77
  %2734 = getelementptr inbounds i8, ptr %2322, i64 32
  %2735 = load i8, ptr %2734, align 8, !tbaa !78, !range !13, !noundef !14
  %2736 = trunc nuw i8 %2735 to i1
  %spec.select1313 = select i1 %2736, i16 %2730, i16 %2733
  %spec.select1314 = select i1 %2736, i16 %2733, i16 %2730
  br i1 %263, label %2737, label %2795

2737:                                             ; preds = %2726
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %29) #12
  store i16 0, ptr %29, align 2, !tbaa !55
  %2738 = add nsw i32 %2698, 2
  store i32 %2738, ptr @test_count, align 4, !tbaa !5
  %2739 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %25, ptr noundef nonnull %29) #12
  %2740 = icmp eq i32 %2739, -1
  br i1 %2740, label %2741, label %2765

2741:                                             ; preds = %2737
  %2742 = tail call ptr @__errno_location() #13
  %2743 = load i32, ptr %2742, align 4, !tbaa !5
  %2744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2745 = call i32 @s2n_print_stacktrace(ptr noundef %2744) #12
  %2746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2747 = trunc nuw i8 %2746 to i1
  br i1 %2747, label %2748, label %2752

2748:                                             ; preds = %2741
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = call i32 @fileno(ptr noundef %2749) #12
  %2751 = call i32 @isatty(i32 noundef %2750) #12
  %.not1270 = icmp eq i32 %2751, 0
  br i1 %.not1270, label %2752, label %2753

2752:                                             ; preds = %2748, %2741
  br label %2753

2753:                                             ; preds = %2748, %2752
  %.str.5.sink2267 = phi ptr [ @.str.5, %2752 ], [ @.str.2, %2748 ]
  store i32 %2743, ptr %2742, align 4, !tbaa !5
  %2754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2755 = load i32, ptr @test_count, align 4, !tbaa !5
  %2756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2757 = load i32, ptr %2756, align 4, !tbaa !5
  %2758 = call ptr @s2n_strerror(i32 noundef %2757, ptr noundef nonnull @.str.4) #12
  %2759 = load i32, ptr %2756, align 4, !tbaa !5
  %2760 = call ptr @s2n_strerror_debug(i32 noundef %2759, ptr noundef nonnull @.str.4) #12
  %2761 = load i32, ptr %2742, align 4, !tbaa !5
  %2762 = call ptr @strerror(i32 noundef %2761) #12
  %2763 = load i32, ptr %2742, align 4, !tbaa !5
  %2764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2754, ptr noundef nonnull %.str.5.sink2267, i32 noundef %2755, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 329, ptr noundef %2758, ptr noundef %2760, ptr noundef %2762, i32 noundef %2763) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2765:                                             ; preds = %2737
  %2766 = load i32, ptr @test_count, align 4, !tbaa !5
  %2767 = add nsw i32 %2766, 1
  store i32 %2767, ptr @test_count, align 4, !tbaa !5
  %2768 = load i16, ptr %29, align 2, !tbaa !55
  %2769 = icmp eq i16 %2768, %spec.select1314
  br i1 %2769, label %2794, label %2770

2770:                                             ; preds = %2765
  %2771 = tail call ptr @__errno_location() #13
  %2772 = load i32, ptr %2771, align 4, !tbaa !5
  %2773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2774 = call i32 @s2n_print_stacktrace(ptr noundef %2773) #12
  %2775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2776 = trunc nuw i8 %2775 to i1
  br i1 %2776, label %2777, label %2781

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

2781:                                             ; preds = %2777, %2770
  br label %2782

2782:                                             ; preds = %2777, %2781
  %.str.5.sink2278 = phi ptr [ @.str.5, %2781 ], [ @.str.2, %2777 ]
  store i32 %2772, ptr %2771, align 4, !tbaa !5
  %2783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2784 = load i32, ptr @test_count, align 4, !tbaa !5
  %2785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2786 = load i32, ptr %2785, align 4, !tbaa !5
  %2787 = call ptr @s2n_strerror(i32 noundef %2786, ptr noundef nonnull @.str.4) #12
  %2788 = load i32, ptr %2785, align 4, !tbaa !5
  %2789 = call ptr @s2n_strerror_debug(i32 noundef %2788, ptr noundef nonnull @.str.4) #12
  %2790 = load i32, ptr %2771, align 4, !tbaa !5
  %2791 = call ptr @strerror(i32 noundef %2790) #12
  %2792 = load i32, ptr %2771, align 4, !tbaa !5
  %2793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2783, ptr noundef nonnull %.str.5.sink2278, i32 noundef %2784, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 330, ptr noundef %2787, ptr noundef %2789, ptr noundef %2791, i32 noundef %2792) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2794:                                             ; preds = %2765
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %29) #12
  br label %2795

2795:                                             ; preds = %2726, %2794
  %2796 = phi i32 [ %2699, %2726 ], [ %2767, %2794 ]
  %2797 = add nsw i32 %2796, 1
  store i32 %2797, ptr @test_count, align 4, !tbaa !5
  %2798 = zext i16 %spec.select1314 to i32
  %2799 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %25, i32 noundef %2798) #12
  %2800 = icmp eq i32 %2799, -1
  br i1 %2800, label %2801, label %2825

2801:                                             ; preds = %2795
  %2802 = tail call ptr @__errno_location() #13
  %2803 = load i32, ptr %2802, align 4, !tbaa !5
  %2804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2805 = call i32 @s2n_print_stacktrace(ptr noundef %2804) #12
  %2806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2807 = trunc nuw i8 %2806 to i1
  br i1 %2807, label %2808, label %2812

2808:                                             ; preds = %2801
  %2809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2810 = call i32 @fileno(ptr noundef %2809) #12
  %2811 = call i32 @isatty(i32 noundef %2810) #12
  %.not1269 = icmp eq i32 %2811, 0
  br i1 %.not1269, label %2812, label %2813

2812:                                             ; preds = %2808, %2801
  br label %2813

2813:                                             ; preds = %2808, %2812
  %.str.5.sink2289 = phi ptr [ @.str.5, %2812 ], [ @.str.2, %2808 ]
  store i32 %2803, ptr %2802, align 4, !tbaa !5
  %2814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2815 = load i32, ptr @test_count, align 4, !tbaa !5
  %2816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2817 = load i32, ptr %2816, align 4, !tbaa !5
  %2818 = call ptr @s2n_strerror(i32 noundef %2817, ptr noundef nonnull @.str.4) #12
  %2819 = load i32, ptr %2816, align 4, !tbaa !5
  %2820 = call ptr @s2n_strerror_debug(i32 noundef %2819, ptr noundef nonnull @.str.4) #12
  %2821 = load i32, ptr %2802, align 4, !tbaa !5
  %2822 = call ptr @strerror(i32 noundef %2821) #12
  %2823 = load i32, ptr %2802, align 4, !tbaa !5
  %2824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2814, ptr noundef nonnull %.str.5.sink2289, i32 noundef %2815, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %2818, ptr noundef %2820, ptr noundef %2822, i32 noundef %2823) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2825:                                             ; preds = %2795
  %.pre1361 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %263, label %2826, label %2884

2826:                                             ; preds = %2825
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %30) #12
  store i16 0, ptr %30, align 2, !tbaa !55
  %2827 = add nsw i32 %.pre1361, 1
  store i32 %2827, ptr @test_count, align 4, !tbaa !5
  %2828 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %25, ptr noundef nonnull %30) #12
  %2829 = icmp eq i32 %2828, -1
  br i1 %2829, label %2830, label %2854

2830:                                             ; preds = %2826
  %2831 = tail call ptr @__errno_location() #13
  %2832 = load i32, ptr %2831, align 4, !tbaa !5
  %2833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2834 = call i32 @s2n_print_stacktrace(ptr noundef %2833) #12
  %2835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2836 = trunc nuw i8 %2835 to i1
  br i1 %2836, label %2837, label %2841

2837:                                             ; preds = %2830
  %2838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2839 = call i32 @fileno(ptr noundef %2838) #12
  %2840 = call i32 @isatty(i32 noundef %2839) #12
  %.not1268 = icmp eq i32 %2840, 0
  br i1 %.not1268, label %2841, label %2842

2841:                                             ; preds = %2837, %2830
  br label %2842

2842:                                             ; preds = %2837, %2841
  %.str.5.sink2300 = phi ptr [ @.str.5, %2841 ], [ @.str.2, %2837 ]
  store i32 %2832, ptr %2831, align 4, !tbaa !5
  %2843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2844 = load i32, ptr @test_count, align 4, !tbaa !5
  %2845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2846 = load i32, ptr %2845, align 4, !tbaa !5
  %2847 = call ptr @s2n_strerror(i32 noundef %2846, ptr noundef nonnull @.str.4) #12
  %2848 = load i32, ptr %2845, align 4, !tbaa !5
  %2849 = call ptr @s2n_strerror_debug(i32 noundef %2848, ptr noundef nonnull @.str.4) #12
  %2850 = load i32, ptr %2831, align 4, !tbaa !5
  %2851 = call ptr @strerror(i32 noundef %2850) #12
  %2852 = load i32, ptr %2831, align 4, !tbaa !5
  %2853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2843, ptr noundef nonnull %.str.5.sink2300, i32 noundef %2844, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 336, ptr noundef %2847, ptr noundef %2849, ptr noundef %2851, i32 noundef %2852) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2854:                                             ; preds = %2826
  %2855 = load i32, ptr @test_count, align 4, !tbaa !5
  %2856 = add nsw i32 %2855, 1
  store i32 %2856, ptr @test_count, align 4, !tbaa !5
  %2857 = load i16, ptr %30, align 2, !tbaa !55
  %2858 = icmp eq i16 %2857, %spec.select1313
  br i1 %2858, label %2883, label %2859

2859:                                             ; preds = %2854
  %2860 = tail call ptr @__errno_location() #13
  %2861 = load i32, ptr %2860, align 4, !tbaa !5
  %2862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2863 = call i32 @s2n_print_stacktrace(ptr noundef %2862) #12
  %2864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2865 = trunc nuw i8 %2864 to i1
  br i1 %2865, label %2866, label %2870

2866:                                             ; preds = %2859
  %2867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2868 = call i32 @fileno(ptr noundef %2867) #12
  %2869 = call i32 @isatty(i32 noundef %2868) #12
  %.not1215 = icmp eq i32 %2869, 0
  br i1 %.not1215, label %2870, label %2871

2870:                                             ; preds = %2866, %2859
  br label %2871

2871:                                             ; preds = %2866, %2870
  %.str.5.sink2311 = phi ptr [ @.str.5, %2870 ], [ @.str.2, %2866 ]
  store i32 %2861, ptr %2860, align 4, !tbaa !5
  %2872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2873 = load i32, ptr @test_count, align 4, !tbaa !5
  %2874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2875 = load i32, ptr %2874, align 4, !tbaa !5
  %2876 = call ptr @s2n_strerror(i32 noundef %2875, ptr noundef nonnull @.str.4) #12
  %2877 = load i32, ptr %2874, align 4, !tbaa !5
  %2878 = call ptr @s2n_strerror_debug(i32 noundef %2877, ptr noundef nonnull @.str.4) #12
  %2879 = load i32, ptr %2860, align 4, !tbaa !5
  %2880 = call ptr @strerror(i32 noundef %2879) #12
  %2881 = load i32, ptr %2860, align 4, !tbaa !5
  %2882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2872, ptr noundef nonnull %.str.5.sink2311, i32 noundef %2873, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 337, ptr noundef %2876, ptr noundef %2878, ptr noundef %2880, i32 noundef %2881) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2883:                                             ; preds = %2854
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %30) #12
  br label %2884

2884:                                             ; preds = %2825, %2883
  %2885 = phi i32 [ %.pre1361, %2825 ], [ %2856, %2883 ]
  %2886 = add nsw i32 %2885, 1
  store i32 %2886, ptr @test_count, align 4, !tbaa !5
  %2887 = zext i16 %spec.select1313 to i32
  %2888 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %25, i32 noundef %2887) #12
  %2889 = icmp eq i32 %2888, -1
  br i1 %2889, label %2890, label %2914

2890:                                             ; preds = %2884
  %2891 = tail call ptr @__errno_location() #13
  %2892 = load i32, ptr %2891, align 4, !tbaa !5
  %2893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2894 = call i32 @s2n_print_stacktrace(ptr noundef %2893) #12
  %2895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2896 = trunc nuw i8 %2895 to i1
  br i1 %2896, label %2897, label %2901

2897:                                             ; preds = %2890
  %2898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2899 = call i32 @fileno(ptr noundef %2898) #12
  %2900 = call i32 @isatty(i32 noundef %2899) #12
  %.not1267 = icmp eq i32 %2900, 0
  br i1 %.not1267, label %2901, label %2902

2901:                                             ; preds = %2897, %2890
  br label %2902

2902:                                             ; preds = %2897, %2901
  %.str.5.sink2322 = phi ptr [ @.str.5, %2901 ], [ @.str.2, %2897 ]
  store i32 %2892, ptr %2891, align 4, !tbaa !5
  %2903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2904 = load i32, ptr @test_count, align 4, !tbaa !5
  %2905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  %2907 = call ptr @s2n_strerror(i32 noundef %2906, ptr noundef nonnull @.str.4) #12
  %2908 = load i32, ptr %2905, align 4, !tbaa !5
  %2909 = call ptr @s2n_strerror_debug(i32 noundef %2908, ptr noundef nonnull @.str.4) #12
  %2910 = load i32, ptr %2891, align 4, !tbaa !5
  %2911 = call ptr @strerror(i32 noundef %2910) #12
  %2912 = load i32, ptr %2891, align 4, !tbaa !5
  %2913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2903, ptr noundef nonnull %.str.5.sink2322, i32 noundef %2904, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 339, ptr noundef %2907, ptr noundef %2909, ptr noundef %2911, i32 noundef %2912) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2914:                                             ; preds = %2884
  %2915 = load i32, ptr @test_count, align 4, !tbaa !5
  %2916 = add nsw i32 %2915, 1
  store i32 %2916, ptr @test_count, align 4, !tbaa !5
  %2917 = load i32, ptr %175, align 4, !tbaa !56
  %2918 = load i32, ptr %176, align 8, !tbaa !57
  %2919 = icmp eq i32 %2917, %2918
  br i1 %2919, label %2944, label %2920

2920:                                             ; preds = %2914
  %2921 = tail call ptr @__errno_location() #13
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  %2923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2924 = call i32 @s2n_print_stacktrace(ptr noundef %2923) #12
  %2925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2926 = trunc nuw i8 %2925 to i1
  br i1 %2926, label %2927, label %2931

2927:                                             ; preds = %2920
  %2928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2929 = call i32 @fileno(ptr noundef %2928) #12
  %2930 = call i32 @isatty(i32 noundef %2929) #12
  %.not1216 = icmp eq i32 %2930, 0
  br i1 %.not1216, label %2931, label %2932

2931:                                             ; preds = %2927, %2920
  br label %2932

2932:                                             ; preds = %2927, %2931
  %.str.5.sink2333 = phi ptr [ @.str.5, %2931 ], [ @.str.2, %2927 ]
  store i32 %2922, ptr %2921, align 4, !tbaa !5
  %2933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2934 = load i32, ptr @test_count, align 4, !tbaa !5
  %2935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2936 = load i32, ptr %2935, align 4, !tbaa !5
  %2937 = call ptr @s2n_strerror(i32 noundef %2936, ptr noundef nonnull @.str.4) #12
  %2938 = load i32, ptr %2935, align 4, !tbaa !5
  %2939 = call ptr @s2n_strerror_debug(i32 noundef %2938, ptr noundef nonnull @.str.4) #12
  %2940 = load i32, ptr %2921, align 4, !tbaa !5
  %2941 = call ptr @strerror(i32 noundef %2940) #12
  %2942 = load i32, ptr %2921, align 4, !tbaa !5
  %2943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2933, ptr noundef nonnull %.str.5.sink2333, i32 noundef %2934, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %2937, ptr noundef %2939, ptr noundef %2941, i32 noundef %2942) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2944:                                             ; preds = %2914
  %2945 = add nsw i32 %2915, 2
  store i32 %2945, ptr @test_count, align 4, !tbaa !5
  %2946 = call i32 @s2n_connection_free(ptr noundef nonnull %1982) #12
  %2947 = icmp eq i32 %2946, -1
  br i1 %2947, label %2948, label %2972

2948:                                             ; preds = %2944
  %2949 = tail call ptr @__errno_location() #13
  %2950 = load i32, ptr %2949, align 4, !tbaa !5
  %2951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2952 = call i32 @s2n_print_stacktrace(ptr noundef %2951) #12
  %2953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2954 = trunc nuw i8 %2953 to i1
  br i1 %2954, label %2955, label %2959

2955:                                             ; preds = %2948
  %2956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2957 = call i32 @fileno(ptr noundef %2956) #12
  %2958 = call i32 @isatty(i32 noundef %2957) #12
  %.not1266 = icmp eq i32 %2958, 0
  br i1 %.not1266, label %2959, label %2960

2959:                                             ; preds = %2955, %2948
  br label %2960

2960:                                             ; preds = %2955, %2959
  %.str.5.sink2344 = phi ptr [ @.str.5, %2959 ], [ @.str.2, %2955 ]
  store i32 %2950, ptr %2949, align 4, !tbaa !5
  %2961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2962 = load i32, ptr @test_count, align 4, !tbaa !5
  %2963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2964 = load i32, ptr %2963, align 4, !tbaa !5
  %2965 = call ptr @s2n_strerror(i32 noundef %2964, ptr noundef nonnull @.str.4) #12
  %2966 = load i32, ptr %2963, align 4, !tbaa !5
  %2967 = call ptr @s2n_strerror_debug(i32 noundef %2966, ptr noundef nonnull @.str.4) #12
  %2968 = load i32, ptr %2949, align 4, !tbaa !5
  %2969 = call ptr @strerror(i32 noundef %2968) #12
  %2970 = load i32, ptr %2949, align 4, !tbaa !5
  %2971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2961, ptr noundef nonnull %.str.5.sink2344, i32 noundef %2962, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 344, ptr noundef %2965, ptr noundef %2967, ptr noundef %2969, i32 noundef %2970) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2972:                                             ; preds = %2944
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %26) #12
  %2973 = call i32 @s2n_stuffer_free(ptr noundef nonnull %25) #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
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #12
  br label %2974

2974:                                             ; preds = %1976, %2972
  %2975 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %2976 = getelementptr inbounds i8, ptr %2975, i64 16
  store ptr %12, ptr %2976, align 8, !tbaa !28
  %2977 = load i32, ptr @test_count, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #12
  store ptr null, ptr %31, align 8, !tbaa !9
  %2978 = add nsw i32 %2977, 2
  store i32 %2978, ptr @test_count, align 4, !tbaa !5
  %2979 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %2975, ptr noundef nonnull %31) #12
  %2980 = icmp eq i32 %2979, -1
  br i1 %2980, label %2981, label %3005

2981:                                             ; preds = %2974
  %2982 = tail call ptr @__errno_location() #13
  %2983 = load i32, ptr %2982, align 4, !tbaa !5
  %2984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2985 = call i32 @s2n_print_stacktrace(ptr noundef %2984) #12
  %2986 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2987 = trunc nuw i8 %2986 to i1
  br i1 %2987, label %2988, label %2992

2988:                                             ; preds = %2981
  %2989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2990 = call i32 @fileno(ptr noundef %2989) #12
  %2991 = call i32 @isatty(i32 noundef %2990) #12
  %.not1264 = icmp eq i32 %2991, 0
  br i1 %.not1264, label %2992, label %2993

2992:                                             ; preds = %2988, %2981
  br label %2993

2993:                                             ; preds = %2988, %2992
  %.str.5.sink2355 = phi ptr [ @.str.5, %2992 ], [ @.str.2, %2988 ]
  store i32 %2983, ptr %2982, align 4, !tbaa !5
  %2994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2995 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2997, ptr noundef nonnull @.str.4) #12
  %2999 = load i32, ptr %2996, align 4, !tbaa !5
  %3000 = call ptr @s2n_strerror_debug(i32 noundef %2999, ptr noundef nonnull @.str.4) #12
  %3001 = load i32, ptr %2982, align 4, !tbaa !5
  %3002 = call ptr @strerror(i32 noundef %3001) #12
  %3003 = load i32, ptr %2982, align 4, !tbaa !5
  %3004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2994, ptr noundef nonnull %.str.5.sink2355, i32 noundef %2995, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 354, ptr noundef %2998, ptr noundef %3000, ptr noundef %3002, i32 noundef %3003) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3005:                                             ; preds = %2974
  %3006 = load i32, ptr @test_count, align 4, !tbaa !5
  %3007 = add nsw i32 %3006, 1
  store i32 %3007, ptr @test_count, align 4, !tbaa !5
  %3008 = load ptr, ptr %31, align 8, !tbaa !9
  %3009 = icmp eq ptr %3008, null
  br i1 %3009, label %3010, label %3034

3010:                                             ; preds = %3005
  %3011 = tail call ptr @__errno_location() #13
  %3012 = load i32, ptr %3011, align 4, !tbaa !5
  %3013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3014 = call i32 @s2n_print_stacktrace(ptr noundef %3013) #12
  %3015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3016 = trunc nuw i8 %3015 to i1
  br i1 %3016, label %3017, label %3021

3017:                                             ; preds = %3010
  %3018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3019 = call i32 @fileno(ptr noundef %3018) #12
  %3020 = call i32 @isatty(i32 noundef %3019) #12
  %.not1263 = icmp eq i32 %3020, 0
  br i1 %.not1263, label %3021, label %3022

3021:                                             ; preds = %3017, %3010
  br label %3022

3022:                                             ; preds = %3017, %3021
  %.str.5.sink2366 = phi ptr [ @.str.5, %3021 ], [ @.str.2, %3017 ]
  store i32 %3012, ptr %3011, align 4, !tbaa !5
  %3023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3024 = load i32, ptr @test_count, align 4, !tbaa !5
  %3025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3026 = load i32, ptr %3025, align 4, !tbaa !5
  %3027 = call ptr @s2n_strerror(i32 noundef %3026, ptr noundef nonnull @.str.4) #12
  %3028 = load i32, ptr %3025, align 4, !tbaa !5
  %3029 = call ptr @s2n_strerror_debug(i32 noundef %3028, ptr noundef nonnull @.str.4) #12
  %3030 = load i32, ptr %3011, align 4, !tbaa !5
  %3031 = call ptr @strerror(i32 noundef %3030) #12
  %3032 = load i32, ptr %3011, align 4, !tbaa !5
  %3033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3023, ptr noundef nonnull %.str.5.sink2366, i32 noundef %3024, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 355, ptr noundef %3027, ptr noundef %3029, ptr noundef %3031, i32 noundef %3032) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3034:                                             ; preds = %3005
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #12
  store ptr null, ptr %32, align 8, !tbaa !9
  %3035 = add nsw i32 %3006, 2
  store i32 %3035, ptr @test_count, align 4, !tbaa !5
  %3036 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %2975, ptr noundef nonnull %32) #12
  %3037 = icmp eq i32 %3036, -1
  br i1 %3037, label %3038, label %3062

3038:                                             ; preds = %3034
  %3039 = tail call ptr @__errno_location() #13
  %3040 = load i32, ptr %3039, align 4, !tbaa !5
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = call i32 @s2n_print_stacktrace(ptr noundef %3041) #12
  %3043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3044 = trunc nuw i8 %3043 to i1
  br i1 %3044, label %3045, label %3049

3045:                                             ; preds = %3038
  %3046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3047 = call i32 @fileno(ptr noundef %3046) #12
  %3048 = call i32 @isatty(i32 noundef %3047) #12
  %.not1262 = icmp eq i32 %3048, 0
  br i1 %.not1262, label %3049, label %3050

3049:                                             ; preds = %3045, %3038
  br label %3050

3050:                                             ; preds = %3045, %3049
  %.str.5.sink2377 = phi ptr [ @.str.5, %3049 ], [ @.str.2, %3045 ]
  store i32 %3040, ptr %3039, align 4, !tbaa !5
  %3051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3052 = load i32, ptr @test_count, align 4, !tbaa !5
  %3053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3054 = load i32, ptr %3053, align 4, !tbaa !5
  %3055 = call ptr @s2n_strerror(i32 noundef %3054, ptr noundef nonnull @.str.4) #12
  %3056 = load i32, ptr %3053, align 4, !tbaa !5
  %3057 = call ptr @s2n_strerror_debug(i32 noundef %3056, ptr noundef nonnull @.str.4) #12
  %3058 = load i32, ptr %3039, align 4, !tbaa !5
  %3059 = call ptr @strerror(i32 noundef %3058) #12
  %3060 = load i32, ptr %3039, align 4, !tbaa !5
  %3061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3051, ptr noundef nonnull %.str.5.sink2377, i32 noundef %3052, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 358, ptr noundef %3055, ptr noundef %3057, ptr noundef %3059, i32 noundef %3060) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3062:                                             ; preds = %3034
  %3063 = load i32, ptr @test_count, align 4, !tbaa !5
  %3064 = add nsw i32 %3063, 1
  store i32 %3064, ptr @test_count, align 4, !tbaa !5
  %3065 = load ptr, ptr %32, align 8, !tbaa !9
  %3066 = icmp eq ptr %3065, null
  br i1 %3066, label %3067, label %3091

3067:                                             ; preds = %3062
  %3068 = tail call ptr @__errno_location() #13
  %3069 = load i32, ptr %3068, align 4, !tbaa !5
  %3070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3071 = call i32 @s2n_print_stacktrace(ptr noundef %3070) #12
  %3072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3073 = trunc nuw i8 %3072 to i1
  br i1 %3073, label %3074, label %3078

3074:                                             ; preds = %3067
  %3075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3076 = call i32 @fileno(ptr noundef %3075) #12
  %3077 = call i32 @isatty(i32 noundef %3076) #12
  %.not1261 = icmp eq i32 %3077, 0
  br i1 %.not1261, label %3078, label %3079

3078:                                             ; preds = %3074, %3067
  br label %3079

3079:                                             ; preds = %3074, %3078
  %.str.5.sink2388 = phi ptr [ @.str.5, %3078 ], [ @.str.2, %3074 ]
  store i32 %3069, ptr %3068, align 4, !tbaa !5
  %3080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3081 = load i32, ptr @test_count, align 4, !tbaa !5
  %3082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3083 = load i32, ptr %3082, align 4, !tbaa !5
  %3084 = call ptr @s2n_strerror(i32 noundef %3083, ptr noundef nonnull @.str.4) #12
  %3085 = load i32, ptr %3082, align 4, !tbaa !5
  %3086 = call ptr @s2n_strerror_debug(i32 noundef %3085, ptr noundef nonnull @.str.4) #12
  %3087 = load i32, ptr %3068, align 4, !tbaa !5
  %3088 = call ptr @strerror(i32 noundef %3087) #12
  %3089 = load i32, ptr %3068, align 4, !tbaa !5
  %3090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3080, ptr noundef nonnull %.str.5.sink2388, i32 noundef %3081, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 359, ptr noundef %3084, ptr noundef %3086, ptr noundef %3088, i32 noundef %3089) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3091:                                             ; preds = %3062
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %33) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %33, i8 0, i64 40, i1 false)
  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)
  %3092 = add nsw i32 %3063, 2
  store i32 %3092, ptr @test_count, align 4, !tbaa !5
  %3093 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %33, i32 noundef 4096) #12
  %3094 = icmp eq i32 %3093, -1
  br i1 %3094, label %3095, label %3119

3095:                                             ; preds = %3091
  %3096 = tail call ptr @__errno_location() #13
  %3097 = load i32, ptr %3096, align 4, !tbaa !5
  %3098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3099 = call i32 @s2n_print_stacktrace(ptr noundef %3098) #12
  %3100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3101 = trunc nuw i8 %3100 to i1
  br i1 %3101, label %3102, label %3106

3102:                                             ; preds = %3095
  %3103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3104 = call i32 @fileno(ptr noundef %3103) #12
  %3105 = call i32 @isatty(i32 noundef %3104) #12
  %.not1260 = icmp eq i32 %3105, 0
  br i1 %.not1260, label %3106, label %3107

3106:                                             ; preds = %3102, %3095
  br label %3107

3107:                                             ; preds = %3102, %3106
  %.str.5.sink2399 = phi ptr [ @.str.5, %3106 ], [ @.str.2, %3102 ]
  store i32 %3097, ptr %3096, align 4, !tbaa !5
  %3108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3109 = load i32, ptr @test_count, align 4, !tbaa !5
  %3110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3111 = load i32, ptr %3110, align 4, !tbaa !5
  %3112 = call ptr @s2n_strerror(i32 noundef %3111, ptr noundef nonnull @.str.4) #12
  %3113 = load i32, ptr %3110, align 4, !tbaa !5
  %3114 = call ptr @s2n_strerror_debug(i32 noundef %3113, ptr noundef nonnull @.str.4) #12
  %3115 = load i32, ptr %3096, align 4, !tbaa !5
  %3116 = call ptr @strerror(i32 noundef %3115) #12
  %3117 = load i32, ptr %3096, align 4, !tbaa !5
  %3118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3108, ptr noundef nonnull %.str.5.sink2399, i32 noundef %3109, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 362, ptr noundef %3112, ptr noundef %3114, ptr noundef %3116, i32 noundef %3117) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3119:                                             ; preds = %3091
  %3120 = load i32, ptr @test_count, align 4, !tbaa !5
  %3121 = add nsw i32 %3120, 1
  store i32 %3121, ptr @test_count, align 4, !tbaa !5
  %3122 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %34, i32 noundef 4096) #12
  %3123 = icmp eq i32 %3122, -1
  br i1 %3123, label %3124, label %3148

3124:                                             ; preds = %3119
  %3125 = tail call ptr @__errno_location() #13
  %3126 = load i32, ptr %3125, align 4, !tbaa !5
  %3127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3128 = call i32 @s2n_print_stacktrace(ptr noundef %3127) #12
  %3129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3130 = trunc nuw i8 %3129 to i1
  br i1 %3130, label %3131, label %3135

3131:                                             ; preds = %3124
  %3132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3133 = call i32 @fileno(ptr noundef %3132) #12
  %3134 = call i32 @isatty(i32 noundef %3133) #12
  %.not1259 = icmp eq i32 %3134, 0
  br i1 %.not1259, label %3135, label %3136

3135:                                             ; preds = %3131, %3124
  br label %3136

3136:                                             ; preds = %3131, %3135
  %.str.5.sink2410 = phi ptr [ @.str.5, %3135 ], [ @.str.2, %3131 ]
  store i32 %3126, ptr %3125, align 4, !tbaa !5
  %3137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3138 = load i32, ptr @test_count, align 4, !tbaa !5
  %3139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3140 = load i32, ptr %3139, align 4, !tbaa !5
  %3141 = call ptr @s2n_strerror(i32 noundef %3140, ptr noundef nonnull @.str.4) #12
  %3142 = load i32, ptr %3139, align 4, !tbaa !5
  %3143 = call ptr @s2n_strerror_debug(i32 noundef %3142, ptr noundef nonnull @.str.4) #12
  %3144 = load i32, ptr %3125, align 4, !tbaa !5
  %3145 = call ptr @strerror(i32 noundef %3144) #12
  %3146 = load i32, ptr %3125, align 4, !tbaa !5
  %3147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3137, ptr noundef nonnull %.str.5.sink2410, i32 noundef %3138, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 363, ptr noundef %3141, ptr noundef %3143, ptr noundef %3145, i32 noundef %3146) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3148:                                             ; preds = %3119
  %3149 = load i32, ptr @test_count, align 4, !tbaa !5
  %3150 = add nsw i32 %3149, 1
  store i32 %3150, ptr @test_count, align 4, !tbaa !5
  %3151 = call i32 %159(ptr noundef nonnull %2975, ptr noundef nonnull %33) #12
  %3152 = icmp eq i32 %3151, -1
  br i1 %3152, label %3153, label %3177

3153:                                             ; preds = %3148
  %3154 = tail call ptr @__errno_location() #13
  %3155 = load i32, ptr %3154, align 4, !tbaa !5
  %3156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3157 = call i32 @s2n_print_stacktrace(ptr noundef %3156) #12
  %3158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3159 = trunc nuw i8 %3158 to i1
  br i1 %3159, label %3160, label %3164

3160:                                             ; preds = %3153
  %3161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3162 = call i32 @fileno(ptr noundef %3161) #12
  %3163 = call i32 @isatty(i32 noundef %3162) #12
  %.not1258 = icmp eq i32 %3163, 0
  br i1 %.not1258, label %3164, label %3165

3164:                                             ; preds = %3160, %3153
  br label %3165

3165:                                             ; preds = %3160, %3164
  %.str.5.sink2421 = phi ptr [ @.str.5, %3164 ], [ @.str.2, %3160 ]
  store i32 %3155, ptr %3154, align 4, !tbaa !5
  %3166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3167 = load i32, ptr @test_count, align 4, !tbaa !5
  %3168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3169 = load i32, ptr %3168, align 4, !tbaa !5
  %3170 = call ptr @s2n_strerror(i32 noundef %3169, ptr noundef nonnull @.str.4) #12
  %3171 = load i32, ptr %3168, align 4, !tbaa !5
  %3172 = call ptr @s2n_strerror_debug(i32 noundef %3171, ptr noundef nonnull @.str.4) #12
  %3173 = load i32, ptr %3154, align 4, !tbaa !5
  %3174 = call ptr @strerror(i32 noundef %3173) #12
  %3175 = load i32, ptr %3154, align 4, !tbaa !5
  %3176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3166, ptr noundef nonnull %.str.5.sink2421, i32 noundef %3167, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 365, ptr noundef %3170, ptr noundef %3172, ptr noundef %3174, i32 noundef %3175) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3177:                                             ; preds = %3148
  %3178 = getelementptr inbounds i8, ptr %2975, i64 832
  %3179 = load ptr, ptr %3178, align 8, !tbaa !88
  %3180 = getelementptr inbounds i8, ptr %2975, i64 720
  store ptr %3179, ptr %3180, align 8, !tbaa !87
  %3181 = getelementptr inbounds i8, ptr %2975, i64 928
  %3182 = load ptr, ptr %3181, align 8, !tbaa !89
  %3183 = getelementptr inbounds i8, ptr %2975, i64 816
  store ptr %3182, ptr %3183, align 8, !tbaa !90
  %3184 = getelementptr inbounds i8, ptr %2975, i64 1650
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(32) %3184, ptr noundef nonnull align 16 dereferenceable(32) @hello_retry_req_random, i64 32, i1 false)
  %3185 = load i32, ptr @test_count, align 4, !tbaa !5
  %3186 = add nsw i32 %3185, 1
  store i32 %3186, ptr @test_count, align 4, !tbaa !5
  %3187 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %2975, i8 noundef zeroext 34) #12
  %3188 = icmp eq i32 %3187, -1
  br i1 %3188, label %3189, label %3213

3189:                                             ; preds = %3177
  %3190 = tail call ptr @__errno_location() #13
  %3191 = load i32, ptr %3190, 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 = %3189
  %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
  %.not1257 = icmp eq i32 %3199, 0
  br i1 %.not1257, label %3200, label %3201

3200:                                             ; preds = %3196, %3189
  br label %3201

3201:                                             ; preds = %3196, %3200
  %.str.5.sink2432 = phi ptr [ @.str.5, %3200 ], [ @.str.2, %3196 ]
  store i32 %3191, ptr %3190, align 4, !tbaa !5
  %3202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3203 = load i32, ptr @test_count, align 4, !tbaa !5
  %3204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3205 = load i32, ptr %3204, align 4, !tbaa !5
  %3206 = call ptr @s2n_strerror(i32 noundef %3205, ptr noundef nonnull @.str.4) #12
  %3207 = load i32, ptr %3204, align 4, !tbaa !5
  %3208 = call ptr @s2n_strerror_debug(i32 noundef %3207, ptr noundef nonnull @.str.4) #12
  %3209 = load i32, ptr %3190, align 4, !tbaa !5
  %3210 = call ptr @strerror(i32 noundef %3209) #12
  %3211 = load i32, ptr %3190, align 4, !tbaa !5
  %3212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3202, ptr noundef nonnull %.str.5.sink2432, i32 noundef %3203, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 373, ptr noundef %3206, ptr noundef %3208, ptr noundef %3210, i32 noundef %3211) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3213:                                             ; preds = %3177
  %3214 = load i32, ptr @test_count, align 4, !tbaa !5
  %3215 = add nsw i32 %3214, 1
  store i32 %3215, ptr @test_count, align 4, !tbaa !5
  %3216 = call i32 @s2n_set_connection_hello_retry_flags(ptr noundef nonnull %2975) #12
  %3217 = icmp eq i32 %3216, -1
  br i1 %3217, label %3218, label %3242

3218:                                             ; preds = %3213
  %3219 = tail call ptr @__errno_location() #13
  %3220 = load i32, ptr %3219, align 4, !tbaa !5
  %3221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3222 = call i32 @s2n_print_stacktrace(ptr noundef %3221) #12
  %3223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3224 = trunc nuw i8 %3223 to i1
  br i1 %3224, label %3225, label %3229

3225:                                             ; preds = %3218
  %3226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3227 = call i32 @fileno(ptr noundef %3226) #12
  %3228 = call i32 @isatty(i32 noundef %3227) #12
  %.not1256 = icmp eq i32 %3228, 0
  br i1 %.not1256, label %3229, label %3230

3229:                                             ; preds = %3225, %3218
  br label %3230

3230:                                             ; preds = %3225, %3229
  %.str.5.sink2443 = phi ptr [ @.str.5, %3229 ], [ @.str.2, %3225 ]
  store i32 %3220, ptr %3219, align 4, !tbaa !5
  %3231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3232 = load i32, ptr @test_count, align 4, !tbaa !5
  %3233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3234 = load i32, ptr %3233, align 4, !tbaa !5
  %3235 = call ptr @s2n_strerror(i32 noundef %3234, ptr noundef nonnull @.str.4) #12
  %3236 = load i32, ptr %3233, align 4, !tbaa !5
  %3237 = call ptr @s2n_strerror_debug(i32 noundef %3236, ptr noundef nonnull @.str.4) #12
  %3238 = load i32, ptr %3219, align 4, !tbaa !5
  %3239 = call ptr @strerror(i32 noundef %3238) #12
  %3240 = load i32, ptr %3219, align 4, !tbaa !5
  %3241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3231, ptr noundef nonnull %.str.5.sink2443, i32 noundef %3232, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %3235, ptr noundef %3237, ptr noundef %3239, i32 noundef %3240) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3242:                                             ; preds = %3213
  %3243 = getelementptr inbounds i8, ptr %2975, i64 4088
  store i32 4, ptr %3243, align 8, !tbaa !91
  %3244 = load i32, ptr @test_count, align 4, !tbaa !5
  %3245 = add nsw i32 %3244, 1
  store i32 %3245, ptr @test_count, align 4, !tbaa !5
  %3246 = call i32 %159(ptr noundef nonnull %2975, ptr noundef nonnull %34) #12
  %3247 = icmp eq i32 %3246, -1
  br i1 %3247, label %3248, label %3272

3248:                                             ; preds = %3242
  %3249 = tail call ptr @__errno_location() #13
  %3250 = load i32, ptr %3249, align 4, !tbaa !5
  %3251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3252 = call i32 @s2n_print_stacktrace(ptr noundef %3251) #12
  %3253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3254 = trunc nuw i8 %3253 to i1
  br i1 %3254, label %3255, label %3259

3255:                                             ; preds = %3248
  %3256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3257 = call i32 @fileno(ptr noundef %3256) #12
  %3258 = call i32 @isatty(i32 noundef %3257) #12
  %.not1255 = icmp eq i32 %3258, 0
  br i1 %.not1255, label %3259, label %3260

3259:                                             ; preds = %3255, %3248
  br label %3260

3260:                                             ; preds = %3255, %3259
  %.str.5.sink2454 = phi ptr [ @.str.5, %3259 ], [ @.str.2, %3255 ]
  store i32 %3250, ptr %3249, align 4, !tbaa !5
  %3261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3262 = load i32, ptr @test_count, align 4, !tbaa !5
  %3263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3264 = load i32, ptr %3263, align 4, !tbaa !5
  %3265 = call ptr @s2n_strerror(i32 noundef %3264, ptr noundef nonnull @.str.4) #12
  %3266 = load i32, ptr %3263, align 4, !tbaa !5
  %3267 = call ptr @s2n_strerror_debug(i32 noundef %3266, ptr noundef nonnull @.str.4) #12
  %3268 = load i32, ptr %3249, align 4, !tbaa !5
  %3269 = call ptr @strerror(i32 noundef %3268) #12
  %3270 = load i32, ptr %3249, align 4, !tbaa !5
  %3271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3261, ptr noundef nonnull %.str.5.sink2454, i32 noundef %3262, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %3265, ptr noundef %3267, ptr noundef %3269, i32 noundef %3270) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3272:                                             ; preds = %3242
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %35) #12
  store i16 0, ptr %35, align 2, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %36) #12
  store i16 0, ptr %36, align 2, !tbaa !55
  %3273 = load i32, ptr @test_count, align 4, !tbaa !5
  %3274 = add nsw i32 %3273, 1
  store i32 %3274, ptr @test_count, align 4, !tbaa !5
  %3275 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %33, ptr noundef nonnull %35) #12
  %3276 = icmp eq i32 %3275, -1
  br i1 %3276, label %3277, label %3301

3277:                                             ; preds = %3272
  %3278 = tail call ptr @__errno_location() #13
  %3279 = load i32, ptr %3278, align 4, !tbaa !5
  %3280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3281 = call i32 @s2n_print_stacktrace(ptr noundef %3280) #12
  %3282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3283 = trunc nuw i8 %3282 to i1
  br i1 %3283, label %3284, label %3288

3284:                                             ; preds = %3277
  %3285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3286 = call i32 @fileno(ptr noundef %3285) #12
  %3287 = call i32 @isatty(i32 noundef %3286) #12
  %.not1254 = icmp eq i32 %3287, 0
  br i1 %.not1254, label %3288, label %3289

3288:                                             ; preds = %3284, %3277
  br label %3289

3289:                                             ; preds = %3284, %3288
  %.str.5.sink2465 = phi ptr [ @.str.5, %3288 ], [ @.str.2, %3284 ]
  store i32 %3279, ptr %3278, align 4, !tbaa !5
  %3290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3291 = load i32, ptr @test_count, align 4, !tbaa !5
  %3292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3293 = load i32, ptr %3292, align 4, !tbaa !5
  %3294 = call ptr @s2n_strerror(i32 noundef %3293, ptr noundef nonnull @.str.4) #12
  %3295 = load i32, ptr %3292, align 4, !tbaa !5
  %3296 = call ptr @s2n_strerror_debug(i32 noundef %3295, ptr noundef nonnull @.str.4) #12
  %3297 = load i32, ptr %3278, align 4, !tbaa !5
  %3298 = call ptr @strerror(i32 noundef %3297) #12
  %3299 = load i32, ptr %3278, align 4, !tbaa !5
  %3300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3290, ptr noundef nonnull %.str.5.sink2465, i32 noundef %3291, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 382, ptr noundef %3294, ptr noundef %3296, ptr noundef %3298, i32 noundef %3299) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3301:                                             ; preds = %3272
  %3302 = load i32, ptr @test_count, align 4, !tbaa !5
  %3303 = add nsw i32 %3302, 1
  store i32 %3303, ptr @test_count, align 4, !tbaa !5
  %3304 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %34, ptr noundef nonnull %36) #12
  %3305 = icmp eq i32 %3304, -1
  br i1 %3305, label %3306, label %3330

3306:                                             ; preds = %3301
  %3307 = tail call ptr @__errno_location() #13
  %3308 = load i32, ptr %3307, align 4, !tbaa !5
  %3309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3310 = call i32 @s2n_print_stacktrace(ptr noundef %3309) #12
  %3311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3312 = trunc nuw i8 %3311 to i1
  br i1 %3312, label %3313, label %3317

3313:                                             ; preds = %3306
  %3314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3315 = call i32 @fileno(ptr noundef %3314) #12
  %3316 = call i32 @isatty(i32 noundef %3315) #12
  %.not1253 = icmp eq i32 %3316, 0
  br i1 %.not1253, label %3317, label %3318

3317:                                             ; preds = %3313, %3306
  br label %3318

3318:                                             ; preds = %3313, %3317
  %.str.5.sink2476 = phi ptr [ @.str.5, %3317 ], [ @.str.2, %3313 ]
  store i32 %3308, ptr %3307, align 4, !tbaa !5
  %3319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3320 = load i32, ptr @test_count, align 4, !tbaa !5
  %3321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3322 = load i32, ptr %3321, align 4, !tbaa !5
  %3323 = call ptr @s2n_strerror(i32 noundef %3322, ptr noundef nonnull @.str.4) #12
  %3324 = load i32, ptr %3321, align 4, !tbaa !5
  %3325 = call ptr @s2n_strerror_debug(i32 noundef %3324, ptr noundef nonnull @.str.4) #12
  %3326 = load i32, ptr %3307, align 4, !tbaa !5
  %3327 = call ptr @strerror(i32 noundef %3326) #12
  %3328 = load i32, ptr %3307, align 4, !tbaa !5
  %3329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3319, ptr noundef nonnull %.str.5.sink2476, i32 noundef %3320, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 383, ptr noundef %3323, ptr noundef %3325, ptr noundef %3327, i32 noundef %3328) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3330:                                             ; preds = %3301
  %3331 = load i32, ptr @test_count, align 4, !tbaa !5
  %3332 = add nsw i32 %3331, 1
  store i32 %3332, ptr @test_count, align 4, !tbaa !5
  %3333 = load i16, ptr %35, align 2, !tbaa !55
  %3334 = zext i16 %3333 to i32
  %3335 = load i32, ptr %177, align 4, !tbaa !56
  %3336 = load i32, ptr %178, align 8, !tbaa !57
  %3337 = sub i32 %3335, %3336
  %3338 = icmp eq i32 %3337, %3334
  br i1 %3338, label %3363, label %3339

3339:                                             ; preds = %3330
  %3340 = tail call ptr @__errno_location() #13
  %3341 = load i32, ptr %3340, align 4, !tbaa !5
  %3342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3343 = call i32 @s2n_print_stacktrace(ptr noundef %3342) #12
  %3344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3345 = trunc nuw i8 %3344 to i1
  br i1 %3345, label %3346, label %3350

3346:                                             ; preds = %3339
  %3347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3348 = call i32 @fileno(ptr noundef %3347) #12
  %3349 = call i32 @isatty(i32 noundef %3348) #12
  %.not1217 = icmp eq i32 %3349, 0
  br i1 %.not1217, label %3350, label %3351

3350:                                             ; preds = %3346, %3339
  br label %3351

3351:                                             ; preds = %3346, %3350
  %.str.5.sink2487 = phi ptr [ @.str.5, %3350 ], [ @.str.2, %3346 ]
  store i32 %3341, ptr %3340, align 4, !tbaa !5
  %3352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3353 = load i32, ptr @test_count, align 4, !tbaa !5
  %3354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3355 = load i32, ptr %3354, align 4, !tbaa !5
  %3356 = call ptr @s2n_strerror(i32 noundef %3355, ptr noundef nonnull @.str.4) #12
  %3357 = load i32, ptr %3354, align 4, !tbaa !5
  %3358 = call ptr @s2n_strerror_debug(i32 noundef %3357, ptr noundef nonnull @.str.4) #12
  %3359 = load i32, ptr %3340, align 4, !tbaa !5
  %3360 = call ptr @strerror(i32 noundef %3359) #12
  %3361 = load i32, ptr %3340, align 4, !tbaa !5
  %3362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3352, ptr noundef nonnull %.str.5.sink2487, i32 noundef %3353, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 384, ptr noundef %3356, ptr noundef %3358, ptr noundef %3360, i32 noundef %3361) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3363:                                             ; preds = %3330
  %3364 = add nsw i32 %3331, 2
  store i32 %3364, ptr @test_count, align 4, !tbaa !5
  %3365 = load i16, ptr %36, align 2, !tbaa !55
  %3366 = zext i16 %3365 to i32
  %3367 = load i32, ptr %179, align 4, !tbaa !56
  %3368 = load i32, ptr %180, align 8, !tbaa !57
  %3369 = sub i32 %3367, %3368
  %3370 = icmp eq i32 %3369, %3366
  br i1 %3370, label %3395, label %3371

3371:                                             ; preds = %3363
  %3372 = tail call ptr @__errno_location() #13
  %3373 = load i32, ptr %3372, align 4, !tbaa !5
  %3374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3375 = call i32 @s2n_print_stacktrace(ptr noundef %3374) #12
  %3376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3377 = trunc nuw i8 %3376 to i1
  br i1 %3377, label %3378, label %3382

3378:                                             ; preds = %3371
  %3379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3380 = call i32 @fileno(ptr noundef %3379) #12
  %3381 = call i32 @isatty(i32 noundef %3380) #12
  %.not1218 = icmp eq i32 %3381, 0
  br i1 %.not1218, label %3382, label %3383

3382:                                             ; preds = %3378, %3371
  br label %3383

3383:                                             ; preds = %3378, %3382
  %.str.5.sink2498 = phi ptr [ @.str.5, %3382 ], [ @.str.2, %3378 ]
  store i32 %3373, ptr %3372, align 4, !tbaa !5
  %3384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3385 = load i32, ptr @test_count, align 4, !tbaa !5
  %3386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3387 = load i32, ptr %3386, align 4, !tbaa !5
  %3388 = call ptr @s2n_strerror(i32 noundef %3387, ptr noundef nonnull @.str.4) #12
  %3389 = load i32, ptr %3386, align 4, !tbaa !5
  %3390 = call ptr @s2n_strerror_debug(i32 noundef %3389, ptr noundef nonnull @.str.4) #12
  %3391 = load i32, ptr %3372, align 4, !tbaa !5
  %3392 = call ptr @strerror(i32 noundef %3391) #12
  %3393 = load i32, ptr %3372, align 4, !tbaa !5
  %3394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3384, ptr noundef nonnull %.str.5.sink2498, i32 noundef %3385, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 385, ptr noundef %3388, ptr noundef %3390, ptr noundef %3392, i32 noundef %3393) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3395:                                             ; preds = %3363
  %3396 = add nsw i32 %3331, 3
  store i32 %3396, ptr @test_count, align 4, !tbaa !5
  %3397 = icmp ult i16 %3365, %3333
  br i1 %3397, label %3422, label %3398

3398:                                             ; preds = %3395
  %3399 = tail call ptr @__errno_location() #13
  %3400 = load i32, ptr %3399, align 4, !tbaa !5
  %3401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3402 = call i32 @s2n_print_stacktrace(ptr noundef %3401) #12
  %3403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3404 = trunc nuw i8 %3403 to i1
  br i1 %3404, label %3405, label %3409

3405:                                             ; preds = %3398
  %3406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3407 = call i32 @fileno(ptr noundef %3406) #12
  %3408 = call i32 @isatty(i32 noundef %3407) #12
  %.not1219 = icmp eq i32 %3408, 0
  br i1 %.not1219, label %3409, label %3410

3409:                                             ; preds = %3405, %3398
  br label %3410

3410:                                             ; preds = %3405, %3409
  %.str.5.sink2509 = phi ptr [ @.str.5, %3409 ], [ @.str.2, %3405 ]
  store i32 %3400, ptr %3399, align 4, !tbaa !5
  %3411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3412 = load i32, ptr @test_count, align 4, !tbaa !5
  %3413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3414 = load i32, ptr %3413, align 4, !tbaa !5
  %3415 = call ptr @s2n_strerror(i32 noundef %3414, ptr noundef nonnull @.str.4) #12
  %3416 = load i32, ptr %3413, align 4, !tbaa !5
  %3417 = call ptr @s2n_strerror_debug(i32 noundef %3416, ptr noundef nonnull @.str.4) #12
  %3418 = load i32, ptr %3399, align 4, !tbaa !5
  %3419 = call ptr @strerror(i32 noundef %3418) #12
  %3420 = load i32, ptr %3399, align 4, !tbaa !5
  %3421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3411, ptr noundef nonnull %.str.5.sink2509, i32 noundef %3412, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 386, ptr noundef %3415, ptr noundef %3417, ptr noundef %3419, i32 noundef %3420) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3422:                                             ; preds = %3395
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %37) #12
  store i16 0, ptr %37, align 2, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %38) #12
  store i16 0, ptr %38, align 2, !tbaa !55
  %3423 = add nsw i32 %3331, 4
  store i32 %3423, ptr @test_count, align 4, !tbaa !5
  %3424 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %33, ptr noundef nonnull %37) #12
  %3425 = icmp eq i32 %3424, -1
  br i1 %3425, label %3426, label %3450

3426:                                             ; preds = %3422
  %3427 = tail call ptr @__errno_location() #13
  %3428 = load i32, ptr %3427, align 4, !tbaa !5
  %3429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3430 = call i32 @s2n_print_stacktrace(ptr noundef %3429) #12
  %3431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3432 = trunc nuw i8 %3431 to i1
  br i1 %3432, label %3433, label %3437

3433:                                             ; preds = %3426
  %3434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3435 = call i32 @fileno(ptr noundef %3434) #12
  %3436 = call i32 @isatty(i32 noundef %3435) #12
  %.not1252 = icmp eq i32 %3436, 0
  br i1 %.not1252, label %3437, label %3438

3437:                                             ; preds = %3433, %3426
  br label %3438

3438:                                             ; preds = %3433, %3437
  %.str.5.sink2520 = phi ptr [ @.str.5, %3437 ], [ @.str.2, %3433 ]
  store i32 %3428, ptr %3427, align 4, !tbaa !5
  %3439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3440 = load i32, ptr @test_count, align 4, !tbaa !5
  %3441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3442 = load i32, ptr %3441, align 4, !tbaa !5
  %3443 = call ptr @s2n_strerror(i32 noundef %3442, ptr noundef nonnull @.str.4) #12
  %3444 = load i32, ptr %3441, align 4, !tbaa !5
  %3445 = call ptr @s2n_strerror_debug(i32 noundef %3444, ptr noundef nonnull @.str.4) #12
  %3446 = load i32, ptr %3427, align 4, !tbaa !5
  %3447 = call ptr @strerror(i32 noundef %3446) #12
  %3448 = load i32, ptr %3427, align 4, !tbaa !5
  %3449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3439, ptr noundef nonnull %.str.5.sink2520, i32 noundef %3440, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 391, ptr noundef %3443, ptr noundef %3445, ptr noundef %3447, i32 noundef %3448) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3450:                                             ; preds = %3422
  %3451 = load i32, ptr @test_count, align 4, !tbaa !5
  %3452 = add nsw i32 %3451, 1
  store i32 %3452, ptr @test_count, align 4, !tbaa !5
  %3453 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %34, ptr noundef nonnull %38) #12
  %3454 = icmp eq i32 %3453, -1
  br i1 %3454, label %3455, label %3479

3455:                                             ; preds = %3450
  %3456 = tail call ptr @__errno_location() #13
  %3457 = load i32, ptr %3456, align 4, !tbaa !5
  %3458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3459 = call i32 @s2n_print_stacktrace(ptr noundef %3458) #12
  %3460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3461 = trunc nuw i8 %3460 to i1
  br i1 %3461, label %3462, label %3466

3462:                                             ; preds = %3455
  %3463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3464 = call i32 @fileno(ptr noundef %3463) #12
  %3465 = call i32 @isatty(i32 noundef %3464) #12
  %.not1251 = icmp eq i32 %3465, 0
  br i1 %.not1251, label %3466, label %3467

3466:                                             ; preds = %3462, %3455
  br label %3467

3467:                                             ; preds = %3462, %3466
  %.str.5.sink2531 = phi ptr [ @.str.5, %3466 ], [ @.str.2, %3462 ]
  store i32 %3457, ptr %3456, align 4, !tbaa !5
  %3468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3469 = load i32, ptr @test_count, align 4, !tbaa !5
  %3470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3471 = load i32, ptr %3470, align 4, !tbaa !5
  %3472 = call ptr @s2n_strerror(i32 noundef %3471, ptr noundef nonnull @.str.4) #12
  %3473 = load i32, ptr %3470, align 4, !tbaa !5
  %3474 = call ptr @s2n_strerror_debug(i32 noundef %3473, ptr noundef nonnull @.str.4) #12
  %3475 = load i32, ptr %3456, align 4, !tbaa !5
  %3476 = call ptr @strerror(i32 noundef %3475) #12
  %3477 = load i32, ptr %3456, align 4, !tbaa !5
  %3478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3468, ptr noundef nonnull %.str.5.sink2531, i32 noundef %3469, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 392, ptr noundef %3472, ptr noundef %3474, ptr noundef %3476, i32 noundef %3477) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3479:                                             ; preds = %3450
  %3480 = load i32, ptr @test_count, align 4, !tbaa !5
  %3481 = add nsw i32 %3480, 1
  store i32 %3481, ptr @test_count, align 4, !tbaa !5
  %3482 = load i16, ptr %37, align 2, !tbaa !55
  %3483 = load ptr, ptr %3180, align 8, !tbaa !87
  %3484 = getelementptr inbounds i8, ptr %3483, i64 8
  %3485 = load i16, ptr %3484, align 8, !tbaa !76
  %3486 = icmp eq i16 %3482, %3485
  br i1 %3486, label %3511, label %3487

3487:                                             ; preds = %3479
  %3488 = tail call ptr @__errno_location() #13
  %3489 = load i32, ptr %3488, 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 = %3487
  %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
  %.not1220 = icmp eq i32 %3497, 0
  br i1 %.not1220, label %3498, label %3499

3498:                                             ; preds = %3494, %3487
  br label %3499

3499:                                             ; preds = %3494, %3498
  %.str.5.sink2542 = phi ptr [ @.str.5, %3498 ], [ @.str.2, %3494 ]
  store i32 %3489, ptr %3488, align 4, !tbaa !5
  %3500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3501 = load i32, ptr @test_count, align 4, !tbaa !5
  %3502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3503 = load i32, ptr %3502, align 4, !tbaa !5
  %3504 = call ptr @s2n_strerror(i32 noundef %3503, ptr noundef nonnull @.str.4) #12
  %3505 = load i32, ptr %3502, align 4, !tbaa !5
  %3506 = call ptr @s2n_strerror_debug(i32 noundef %3505, ptr noundef nonnull @.str.4) #12
  %3507 = load i32, ptr %3488, align 4, !tbaa !5
  %3508 = call ptr @strerror(i32 noundef %3507) #12
  %3509 = load i32, ptr %3488, align 4, !tbaa !5
  %3510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3500, ptr noundef nonnull %.str.5.sink2542, i32 noundef %3501, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 393, ptr noundef %3504, ptr noundef %3506, ptr noundef %3508, i32 noundef %3509) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3511:                                             ; preds = %3479
  %3512 = add nsw i32 %3480, 2
  store i32 %3512, ptr @test_count, align 4, !tbaa !5
  %3513 = load i16, ptr %38, align 2, !tbaa !55
  %3514 = icmp eq i16 %3482, %3513
  br i1 %3514, label %3539, label %3515

3515:                                             ; preds = %3511
  %3516 = tail call ptr @__errno_location() #13
  %3517 = load i32, ptr %3516, align 4, !tbaa !5
  %3518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3519 = call i32 @s2n_print_stacktrace(ptr noundef %3518) #12
  %3520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3521 = trunc nuw i8 %3520 to i1
  br i1 %3521, label %3522, label %3526

3522:                                             ; preds = %3515
  %3523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3524 = call i32 @fileno(ptr noundef %3523) #12
  %3525 = call i32 @isatty(i32 noundef %3524) #12
  %.not1221 = icmp eq i32 %3525, 0
  br i1 %.not1221, label %3526, label %3527

3526:                                             ; preds = %3522, %3515
  br label %3527

3527:                                             ; preds = %3522, %3526
  %.str.5.sink2553 = phi ptr [ @.str.5, %3526 ], [ @.str.2, %3522 ]
  store i32 %3517, ptr %3516, align 4, !tbaa !5
  %3528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3529 = load i32, ptr @test_count, align 4, !tbaa !5
  %3530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3531 = load i32, ptr %3530, align 4, !tbaa !5
  %3532 = call ptr @s2n_strerror(i32 noundef %3531, ptr noundef nonnull @.str.4) #12
  %3533 = load i32, ptr %3530, align 4, !tbaa !5
  %3534 = call ptr @s2n_strerror_debug(i32 noundef %3533, ptr noundef nonnull @.str.4) #12
  %3535 = load i32, ptr %3516, align 4, !tbaa !5
  %3536 = call ptr @strerror(i32 noundef %3535) #12
  %3537 = load i32, ptr %3516, align 4, !tbaa !5
  %3538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3528, ptr noundef nonnull %.str.5.sink2553, i32 noundef %3529, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 394, ptr noundef %3532, ptr noundef %3534, ptr noundef %3536, i32 noundef %3537) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3539:                                             ; preds = %3511
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %39) #12
  store i16 0, ptr %39, align 2, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %40) #12
  store i16 0, ptr %40, align 2, !tbaa !55
  %3540 = add nsw i32 %3480, 3
  store i32 %3540, ptr @test_count, align 4, !tbaa !5
  %3541 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %33, ptr noundef nonnull %39) #12
  %3542 = icmp eq i32 %3541, -1
  br i1 %3542, label %3543, label %3567

3543:                                             ; preds = %3539
  %3544 = tail call ptr @__errno_location() #13
  %3545 = load i32, ptr %3544, 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 = %3543
  %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
  %.not1250 = icmp eq i32 %3553, 0
  br i1 %.not1250, label %3554, label %3555

3554:                                             ; preds = %3550, %3543
  br label %3555

3555:                                             ; preds = %3550, %3554
  %.str.5.sink2564 = phi ptr [ @.str.5, %3554 ], [ @.str.2, %3550 ]
  store i32 %3545, ptr %3544, align 4, !tbaa !5
  %3556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3557 = load i32, ptr @test_count, align 4, !tbaa !5
  %3558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3559 = load i32, ptr %3558, align 4, !tbaa !5
  %3560 = call ptr @s2n_strerror(i32 noundef %3559, ptr noundef nonnull @.str.4) #12
  %3561 = load i32, ptr %3558, align 4, !tbaa !5
  %3562 = call ptr @s2n_strerror_debug(i32 noundef %3561, ptr noundef nonnull @.str.4) #12
  %3563 = load i32, ptr %3544, align 4, !tbaa !5
  %3564 = call ptr @strerror(i32 noundef %3563) #12
  %3565 = load i32, ptr %3544, align 4, !tbaa !5
  %3566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3556, ptr noundef nonnull %.str.5.sink2564, i32 noundef %3557, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 400, ptr noundef %3560, ptr noundef %3562, ptr noundef %3564, i32 noundef %3565) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3567:                                             ; preds = %3539
  %3568 = load i32, ptr @test_count, align 4, !tbaa !5
  %3569 = add nsw i32 %3568, 1
  store i32 %3569, ptr @test_count, align 4, !tbaa !5
  %3570 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %34, ptr noundef nonnull %40) #12
  %3571 = icmp eq i32 %3570, -1
  br i1 %3571, label %3572, label %3596

3572:                                             ; preds = %3567
  %3573 = tail call ptr @__errno_location() #13
  %3574 = load i32, ptr %3573, align 4, !tbaa !5
  %3575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3576 = call i32 @s2n_print_stacktrace(ptr noundef %3575) #12
  %3577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3578 = trunc nuw i8 %3577 to i1
  br i1 %3578, label %3579, label %3583

3579:                                             ; preds = %3572
  %3580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3581 = call i32 @fileno(ptr noundef %3580) #12
  %3582 = call i32 @isatty(i32 noundef %3581) #12
  %.not1249 = icmp eq i32 %3582, 0
  br i1 %.not1249, label %3583, label %3584

3583:                                             ; preds = %3579, %3572
  br label %3584

3584:                                             ; preds = %3579, %3583
  %.str.5.sink2575 = phi ptr [ @.str.5, %3583 ], [ @.str.2, %3579 ]
  store i32 %3574, ptr %3573, align 4, !tbaa !5
  %3585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3586 = load i32, ptr @test_count, align 4, !tbaa !5
  %3587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3588 = load i32, ptr %3587, align 4, !tbaa !5
  %3589 = call ptr @s2n_strerror(i32 noundef %3588, ptr noundef nonnull @.str.4) #12
  %3590 = load i32, ptr %3587, align 4, !tbaa !5
  %3591 = call ptr @s2n_strerror_debug(i32 noundef %3590, ptr noundef nonnull @.str.4) #12
  %3592 = load i32, ptr %3573, align 4, !tbaa !5
  %3593 = call ptr @strerror(i32 noundef %3592) #12
  %3594 = load i32, ptr %3573, align 4, !tbaa !5
  %3595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3585, ptr noundef nonnull %.str.5.sink2575, i32 noundef %3586, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 401, ptr noundef %3589, ptr noundef %3591, ptr noundef %3593, i32 noundef %3594) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3596:                                             ; preds = %3567
  %3597 = load i32, ptr @test_count, align 4, !tbaa !5
  %3598 = add nsw i32 %3597, 1
  store i32 %3598, ptr @test_count, align 4, !tbaa !5
  %3599 = load i16, ptr %39, align 2, !tbaa !55
  %3600 = zext i16 %3599 to i32
  %3601 = load i32, ptr %177, align 4, !tbaa !56
  %3602 = load i32, ptr %178, align 8, !tbaa !57
  %3603 = sub i32 %3601, %3602
  %3604 = icmp ugt i32 %3603, %3600
  br i1 %3604, label %3629, label %3605

3605:                                             ; preds = %3596
  %3606 = tail call ptr @__errno_location() #13
  %3607 = load i32, ptr %3606, align 4, !tbaa !5
  %3608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3609 = call i32 @s2n_print_stacktrace(ptr noundef %3608) #12
  %3610 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3611 = trunc nuw i8 %3610 to i1
  br i1 %3611, label %3612, label %3616

3612:                                             ; preds = %3605
  %3613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3614 = call i32 @fileno(ptr noundef %3613) #12
  %3615 = call i32 @isatty(i32 noundef %3614) #12
  %.not1222 = icmp eq i32 %3615, 0
  br i1 %.not1222, label %3616, label %3617

3616:                                             ; preds = %3612, %3605
  br label %3617

3617:                                             ; preds = %3612, %3616
  %.str.5.sink2586 = phi ptr [ @.str.5, %3616 ], [ @.str.2, %3612 ]
  store i32 %3607, ptr %3606, align 4, !tbaa !5
  %3618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3619 = load i32, ptr @test_count, align 4, !tbaa !5
  %3620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3621 = load i32, ptr %3620, align 4, !tbaa !5
  %3622 = call ptr @s2n_strerror(i32 noundef %3621, ptr noundef nonnull @.str.4) #12
  %3623 = load i32, ptr %3620, align 4, !tbaa !5
  %3624 = call ptr @s2n_strerror_debug(i32 noundef %3623, ptr noundef nonnull @.str.4) #12
  %3625 = load i32, ptr %3606, align 4, !tbaa !5
  %3626 = call ptr @strerror(i32 noundef %3625) #12
  %3627 = load i32, ptr %3606, align 4, !tbaa !5
  %3628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3618, ptr noundef nonnull %.str.5.sink2586, i32 noundef %3619, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 402, ptr noundef %3622, ptr noundef %3624, ptr noundef %3626, i32 noundef %3627) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3629:                                             ; preds = %3596
  %3630 = add nsw i32 %3597, 2
  store i32 %3630, ptr @test_count, align 4, !tbaa !5
  %3631 = load i16, ptr %40, align 2, !tbaa !55
  %3632 = zext i16 %3631 to i32
  %3633 = load i32, ptr %179, align 4, !tbaa !56
  %3634 = load i32, ptr %180, align 8, !tbaa !57
  %3635 = sub i32 %3633, %3634
  %3636 = icmp eq i32 %3635, %3632
  br i1 %3636, label %3661, label %3637

3637:                                             ; preds = %3629
  %3638 = tail call ptr @__errno_location() #13
  %3639 = load i32, ptr %3638, align 4, !tbaa !5
  %3640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3641 = call i32 @s2n_print_stacktrace(ptr noundef %3640) #12
  %3642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3643 = trunc nuw i8 %3642 to i1
  br i1 %3643, label %3644, label %3648

3644:                                             ; preds = %3637
  %3645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3646 = call i32 @fileno(ptr noundef %3645) #12
  %3647 = call i32 @isatty(i32 noundef %3646) #12
  %.not1223 = icmp eq i32 %3647, 0
  br i1 %.not1223, label %3648, label %3649

3648:                                             ; preds = %3644, %3637
  br label %3649

3649:                                             ; preds = %3644, %3648
  %.str.5.sink2597 = phi ptr [ @.str.5, %3648 ], [ @.str.2, %3644 ]
  store i32 %3639, ptr %3638, align 4, !tbaa !5
  %3650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3651 = load i32, ptr @test_count, align 4, !tbaa !5
  %3652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3653 = load i32, ptr %3652, align 4, !tbaa !5
  %3654 = call ptr @s2n_strerror(i32 noundef %3653, ptr noundef nonnull @.str.4) #12
  %3655 = load i32, ptr %3652, align 4, !tbaa !5
  %3656 = call ptr @s2n_strerror_debug(i32 noundef %3655, ptr noundef nonnull @.str.4) #12
  %3657 = load i32, ptr %3638, align 4, !tbaa !5
  %3658 = call ptr @strerror(i32 noundef %3657) #12
  %3659 = load i32, ptr %3638, align 4, !tbaa !5
  %3660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3650, ptr noundef nonnull %.str.5.sink2597, i32 noundef %3651, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 403, ptr noundef %3654, ptr noundef %3656, ptr noundef %3658, i32 noundef %3659) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3661:                                             ; preds = %3629
  br i1 %263, label %3662, label %3750

3662:                                             ; preds = %3661
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %41) #12
  store i16 0, ptr %41, align 2, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %42) #12
  store i16 0, ptr %42, align 2, !tbaa !55
  %3663 = add nsw i32 %3597, 3
  store i32 %3663, ptr @test_count, align 4, !tbaa !5
  %3664 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %33, ptr noundef nonnull %41) #12
  %3665 = icmp eq i32 %3664, -1
  br i1 %3665, label %3666, label %3690

3666:                                             ; preds = %3662
  %3667 = tail call ptr @__errno_location() #13
  %3668 = load i32, ptr %3667, align 4, !tbaa !5
  %3669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3670 = call i32 @s2n_print_stacktrace(ptr noundef %3669) #12
  %3671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3672 = trunc nuw i8 %3671 to i1
  br i1 %3672, label %3673, label %3677

3673:                                             ; preds = %3666
  %3674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3675 = call i32 @fileno(ptr noundef %3674) #12
  %3676 = call i32 @isatty(i32 noundef %3675) #12
  %.not1248 = icmp eq i32 %3676, 0
  br i1 %.not1248, label %3677, label %3678

3677:                                             ; preds = %3673, %3666
  br label %3678

3678:                                             ; preds = %3673, %3677
  %.str.5.sink2608 = phi ptr [ @.str.5, %3677 ], [ @.str.2, %3673 ]
  store i32 %3668, ptr %3667, align 4, !tbaa !5
  %3679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3680 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3682, ptr noundef nonnull @.str.4) #12
  %3684 = load i32, ptr %3681, align 4, !tbaa !5
  %3685 = call ptr @s2n_strerror_debug(i32 noundef %3684, ptr noundef nonnull @.str.4) #12
  %3686 = load i32, ptr %3667, align 4, !tbaa !5
  %3687 = call ptr @strerror(i32 noundef %3686) #12
  %3688 = load i32, ptr %3667, align 4, !tbaa !5
  %3689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3679, ptr noundef nonnull %.str.5.sink2608, i32 noundef %3680, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 409, ptr noundef %3683, ptr noundef %3685, ptr noundef %3687, i32 noundef %3688) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3690:                                             ; preds = %3662
  %3691 = load i32, ptr @test_count, align 4, !tbaa !5
  %3692 = add nsw i32 %3691, 1
  store i32 %3692, ptr @test_count, align 4, !tbaa !5
  %3693 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %34, ptr noundef nonnull %42) #12
  %3694 = icmp eq i32 %3693, -1
  br i1 %3694, label %3695, label %3719

3695:                                             ; preds = %3690
  %3696 = tail call ptr @__errno_location() #13
  %3697 = load i32, ptr %3696, align 4, !tbaa !5
  %3698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3699 = call i32 @s2n_print_stacktrace(ptr noundef %3698) #12
  %3700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3701 = trunc nuw i8 %3700 to i1
  br i1 %3701, label %3702, label %3706

3702:                                             ; preds = %3695
  %3703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3704 = call i32 @fileno(ptr noundef %3703) #12
  %3705 = call i32 @isatty(i32 noundef %3704) #12
  %.not1247 = icmp eq i32 %3705, 0
  br i1 %.not1247, label %3706, label %3707

3706:                                             ; preds = %3702, %3695
  br label %3707

3707:                                             ; preds = %3702, %3706
  %.str.5.sink2619 = phi ptr [ @.str.5, %3706 ], [ @.str.2, %3702 ]
  store i32 %3697, ptr %3696, align 4, !tbaa !5
  %3708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3709 = load i32, ptr @test_count, align 4, !tbaa !5
  %3710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3711 = load i32, ptr %3710, align 4, !tbaa !5
  %3712 = call ptr @s2n_strerror(i32 noundef %3711, ptr noundef nonnull @.str.4) #12
  %3713 = load i32, ptr %3710, align 4, !tbaa !5
  %3714 = call ptr @s2n_strerror_debug(i32 noundef %3713, ptr noundef nonnull @.str.4) #12
  %3715 = load i32, ptr %3696, align 4, !tbaa !5
  %3716 = call ptr @strerror(i32 noundef %3715) #12
  %3717 = load i32, ptr %3696, align 4, !tbaa !5
  %3718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3708, ptr noundef nonnull %.str.5.sink2619, i32 noundef %3709, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 410, ptr noundef %3712, ptr noundef %3714, ptr noundef %3716, i32 noundef %3717) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3719:                                             ; preds = %3690
  %3720 = load i32, ptr @test_count, align 4, !tbaa !5
  %3721 = add nsw i32 %3720, 1
  store i32 %3721, ptr @test_count, align 4, !tbaa !5
  %3722 = load i16, ptr %41, align 2, !tbaa !55
  %3723 = load i16, ptr %42, align 2, !tbaa !55
  %3724 = icmp eq i16 %3722, %3723
  br i1 %3724, label %3749, label %3725

3725:                                             ; preds = %3719
  %3726 = tail call ptr @__errno_location() #13
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3729 = call i32 @s2n_print_stacktrace(ptr noundef %3728) #12
  %3730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3731 = trunc nuw i8 %3730 to i1
  br i1 %3731, label %3732, label %3736

3732:                                             ; preds = %3725
  %3733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3734 = call i32 @fileno(ptr noundef %3733) #12
  %3735 = call i32 @isatty(i32 noundef %3734) #12
  %.not1224 = icmp eq i32 %3735, 0
  br i1 %.not1224, label %3736, label %3737

3736:                                             ; preds = %3732, %3725
  br label %3737

3737:                                             ; preds = %3732, %3736
  %.str.5.sink2630 = phi ptr [ @.str.5, %3736 ], [ @.str.2, %3732 ]
  store i32 %3727, ptr %3726, align 4, !tbaa !5
  %3738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3739 = load i32, ptr @test_count, align 4, !tbaa !5
  %3740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3741 = load i32, ptr %3740, align 4, !tbaa !5
  %3742 = call ptr @s2n_strerror(i32 noundef %3741, ptr noundef nonnull @.str.4) #12
  %3743 = load i32, ptr %3740, align 4, !tbaa !5
  %3744 = call ptr @s2n_strerror_debug(i32 noundef %3743, ptr noundef nonnull @.str.4) #12
  %3745 = load i32, ptr %3726, align 4, !tbaa !5
  %3746 = call ptr @strerror(i32 noundef %3745) #12
  %3747 = load i32, ptr %3726, align 4, !tbaa !5
  %3748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3738, ptr noundef nonnull %.str.5.sink2630, i32 noundef %3739, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 411, ptr noundef %3742, ptr noundef %3744, ptr noundef %3746, i32 noundef %3747) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3749:                                             ; preds = %3719
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %42) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %41) #12
  br label %3750

3750:                                             ; preds = %3749, %3661
  %3751 = phi i32 [ %3721, %3749 ], [ %3630, %3661 ]
  %3752 = load ptr, ptr %3181, align 8, !tbaa !71
  %3753 = getelementptr inbounds i8, ptr %3752, i64 16
  %3754 = load i8, ptr %3753, align 8, !tbaa !62
  %3755 = zext i8 %3754 to i32
  %3756 = load ptr, ptr %3178, align 8, !tbaa !63
  %3757 = getelementptr inbounds i8, ptr %3756, i64 24
  %3758 = load ptr, ptr %3757, align 8, !tbaa !65
  %3759 = getelementptr inbounds i8, ptr %3758, i64 14
  %3760 = load i16, ptr %3759, align 2, !tbaa !77
  %3761 = zext i16 %3760 to i32
  %3762 = getelementptr inbounds i8, ptr %3756, i64 32
  %3763 = load i8, ptr %3762, align 8, !tbaa !78, !range !13, !noundef !14
  %3764 = trunc nuw i8 %3763 to i1
  %3765 = add nsw i32 %3751, 1
  store i32 %3765, ptr @test_count, align 4, !tbaa !5
  br i1 %3764, label %3940, label %3766

3766:                                             ; preds = %3750
  %3767 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %33, i32 noundef %3755) #12
  %3768 = icmp eq ptr %3767, null
  br i1 %3768, label %3769, label %3793

3769:                                             ; preds = %3766
  %3770 = tail call ptr @__errno_location() #13
  %3771 = load i32, ptr %3770, align 4, !tbaa !5
  %3772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3773 = call i32 @s2n_print_stacktrace(ptr noundef %3772) #12
  %3774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3775 = trunc nuw i8 %3774 to i1
  br i1 %3775, label %3776, label %3780

3776:                                             ; preds = %3769
  %3777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3778 = call i32 @fileno(ptr noundef %3777) #12
  %3779 = call i32 @isatty(i32 noundef %3778) #12
  %.not1232 = icmp eq i32 %3779, 0
  br i1 %.not1232, label %3780, label %3781

3780:                                             ; preds = %3776, %3769
  br label %3781

3781:                                             ; preds = %3776, %3780
  %.str.5.sink2641 = phi ptr [ @.str.5, %3780 ], [ @.str.2, %3776 ]
  store i32 %3771, ptr %3770, align 4, !tbaa !5
  %3782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3783 = load i32, ptr @test_count, align 4, !tbaa !5
  %3784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3785 = load i32, ptr %3784, align 4, !tbaa !5
  %3786 = call ptr @s2n_strerror(i32 noundef %3785, ptr noundef nonnull @.str.4) #12
  %3787 = load i32, ptr %3784, align 4, !tbaa !5
  %3788 = call ptr @s2n_strerror_debug(i32 noundef %3787, ptr noundef nonnull @.str.4) #12
  %3789 = load i32, ptr %3770, align 4, !tbaa !5
  %3790 = call ptr @strerror(i32 noundef %3789) #12
  %3791 = load i32, ptr %3770, align 4, !tbaa !5
  %3792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3782, ptr noundef nonnull %.str.5.sink2641, i32 noundef %3783, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 422, ptr noundef %3786, ptr noundef %3788, ptr noundef %3790, i32 noundef %3791) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3793:                                             ; preds = %3766
  %3794 = load i32, ptr @test_count, align 4, !tbaa !5
  %3795 = add nsw i32 %3794, 1
  store i32 %3795, ptr @test_count, align 4, !tbaa !5
  %3796 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %34, i32 noundef %3755) #12
  %3797 = icmp eq ptr %3796, null
  br i1 %3797, label %3798, label %3822

3798:                                             ; preds = %3793
  %3799 = tail call ptr @__errno_location() #13
  %3800 = load i32, ptr %3799, align 4, !tbaa !5
  %3801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3802 = call i32 @s2n_print_stacktrace(ptr noundef %3801) #12
  %3803 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3804 = trunc nuw i8 %3803 to i1
  br i1 %3804, label %3805, label %3809

3805:                                             ; preds = %3798
  %3806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3807 = call i32 @fileno(ptr noundef %3806) #12
  %3808 = call i32 @isatty(i32 noundef %3807) #12
  %.not1231 = icmp eq i32 %3808, 0
  br i1 %.not1231, label %3809, label %3810

3809:                                             ; preds = %3805, %3798
  br label %3810

3810:                                             ; preds = %3805, %3809
  %.str.5.sink2652 = phi ptr [ @.str.5, %3809 ], [ @.str.2, %3805 ]
  store i32 %3800, ptr %3799, align 4, !tbaa !5
  %3811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3812 = load i32, ptr @test_count, align 4, !tbaa !5
  %3813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3814 = load i32, ptr %3813, align 4, !tbaa !5
  %3815 = call ptr @s2n_strerror(i32 noundef %3814, ptr noundef nonnull @.str.4) #12
  %3816 = load i32, ptr %3813, align 4, !tbaa !5
  %3817 = call ptr @s2n_strerror_debug(i32 noundef %3816, ptr noundef nonnull @.str.4) #12
  %3818 = load i32, ptr %3799, align 4, !tbaa !5
  %3819 = call ptr @strerror(i32 noundef %3818) #12
  %3820 = load i32, ptr %3799, align 4, !tbaa !5
  %3821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3811, ptr noundef nonnull %.str.5.sink2652, i32 noundef %3812, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 423, ptr noundef %3815, ptr noundef %3817, ptr noundef %3819, i32 noundef %3820) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3822:                                             ; preds = %3793
  %.not1225 = icmp eq i8 %3754, 0
  %.pre1364.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not1225, label %3851, label %3823

3823:                                             ; preds = %3822
  %3824 = add nsw i32 %.pre1364.pre, 1
  store i32 %3824, ptr @test_count, align 4, !tbaa !5
  %3825 = zext i8 %3754 to i64
  %bcmp1226 = call i32 @bcmp(ptr nonnull %3767, ptr nonnull %3796, i64 %3825)
  %3826 = icmp eq i32 %bcmp1226, 0
  br i1 %3826, label %3851, label %3827

3827:                                             ; preds = %3823
  %3828 = tail call ptr @__errno_location() #13
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  %3830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3831 = call i32 @s2n_print_stacktrace(ptr noundef %3830) #12
  %3832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3833 = trunc nuw i8 %3832 to i1
  br i1 %3833, label %3834, label %3838

3834:                                             ; preds = %3827
  %3835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3836 = call i32 @fileno(ptr noundef %3835) #12
  %3837 = call i32 @isatty(i32 noundef %3836) #12
  %.not1227 = icmp eq i32 %3837, 0
  br i1 %.not1227, label %3838, label %3839

3838:                                             ; preds = %3834, %3827
  br label %3839

3839:                                             ; preds = %3834, %3838
  %.str.5.sink2663 = phi ptr [ @.str.5, %3838 ], [ @.str.2, %3834 ]
  store i32 %3829, ptr %3828, align 4, !tbaa !5
  %3840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3841 = load i32, ptr @test_count, align 4, !tbaa !5
  %3842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3843 = load i32, ptr %3842, align 4, !tbaa !5
  %3844 = call ptr @s2n_strerror(i32 noundef %3843, ptr noundef nonnull @.str.4) #12
  %3845 = load i32, ptr %3842, align 4, !tbaa !5
  %3846 = call ptr @s2n_strerror_debug(i32 noundef %3845, ptr noundef nonnull @.str.4) #12
  %3847 = load i32, ptr %3828, align 4, !tbaa !5
  %3848 = call ptr @strerror(i32 noundef %3847) #12
  %3849 = load i32, ptr %3828, align 4, !tbaa !5
  %3850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3840, ptr noundef nonnull %.str.5.sink2663, i32 noundef %3841, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 424, ptr noundef %3844, ptr noundef %3846, ptr noundef %3848, i32 noundef %3849) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3851:                                             ; preds = %3823, %3822
  %.pre1364 = phi i32 [ %3824, %3823 ], [ %.pre1364.pre, %3822 ]
  br i1 %263, label %3852, label %4202

3852:                                             ; preds = %3851
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %43) #12
  store i16 0, ptr %43, align 2, !tbaa !55
  %3853 = add nsw i32 %.pre1364, 1
  store i32 %3853, ptr @test_count, align 4, !tbaa !5
  %3854 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %34, ptr noundef nonnull %43) #12
  %3855 = icmp eq i32 %3854, -1
  br i1 %3855, label %3856, label %3880

3856:                                             ; preds = %3852
  %3857 = tail call ptr @__errno_location() #13
  %3858 = load i32, ptr %3857, align 4, !tbaa !5
  %3859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3860 = call i32 @s2n_print_stacktrace(ptr noundef %3859) #12
  %3861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3862 = trunc nuw i8 %3861 to i1
  br i1 %3862, label %3863, label %3867

3863:                                             ; preds = %3856
  %3864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3865 = call i32 @fileno(ptr noundef %3864) #12
  %3866 = call i32 @isatty(i32 noundef %3865) #12
  %.not1230 = icmp eq i32 %3866, 0
  br i1 %.not1230, label %3867, label %3868

3867:                                             ; preds = %3863, %3856
  br label %3868

3868:                                             ; preds = %3863, %3867
  %.str.5.sink2674 = phi ptr [ @.str.5, %3867 ], [ @.str.2, %3863 ]
  store i32 %3858, ptr %3857, align 4, !tbaa !5
  %3869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3870 = load i32, ptr @test_count, align 4, !tbaa !5
  %3871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3872 = load i32, ptr %3871, align 4, !tbaa !5
  %3873 = call ptr @s2n_strerror(i32 noundef %3872, ptr noundef nonnull @.str.4) #12
  %3874 = load i32, ptr %3871, align 4, !tbaa !5
  %3875 = call ptr @s2n_strerror_debug(i32 noundef %3874, ptr noundef nonnull @.str.4) #12
  %3876 = load i32, ptr %3857, align 4, !tbaa !5
  %3877 = call ptr @strerror(i32 noundef %3876) #12
  %3878 = load i32, ptr %3857, align 4, !tbaa !5
  %3879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3869, ptr noundef nonnull %.str.5.sink2674, i32 noundef %3870, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 430, ptr noundef %3873, ptr noundef %3875, ptr noundef %3877, i32 noundef %3878) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3880:                                             ; preds = %3852
  %3881 = load i32, ptr @test_count, align 4, !tbaa !5
  %3882 = add nsw i32 %3881, 1
  store i32 %3882, ptr @test_count, align 4, !tbaa !5
  %3883 = load i16, ptr %43, align 2, !tbaa !55
  %3884 = icmp eq i16 %3883, %3760
  br i1 %3884, label %3909, label %3885

3885:                                             ; preds = %3880
  %3886 = tail call ptr @__errno_location() #13
  %3887 = load i32, ptr %3886, align 4, !tbaa !5
  %3888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3889 = call i32 @s2n_print_stacktrace(ptr noundef %3888) #12
  %3890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3891 = trunc nuw i8 %3890 to i1
  br i1 %3891, label %3892, label %3896

3892:                                             ; preds = %3885
  %3893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3894 = call i32 @fileno(ptr noundef %3893) #12
  %3895 = call i32 @isatty(i32 noundef %3894) #12
  %.not1228 = icmp eq i32 %3895, 0
  br i1 %.not1228, label %3896, label %3897

3896:                                             ; preds = %3892, %3885
  br label %3897

3897:                                             ; preds = %3892, %3896
  %.str.5.sink2685 = phi ptr [ @.str.5, %3896 ], [ @.str.2, %3892 ]
  store i32 %3887, ptr %3886, align 4, !tbaa !5
  %3898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3899 = load i32, ptr @test_count, align 4, !tbaa !5
  %3900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3901 = load i32, ptr %3900, align 4, !tbaa !5
  %3902 = call ptr @s2n_strerror(i32 noundef %3901, ptr noundef nonnull @.str.4) #12
  %3903 = load i32, ptr %3900, align 4, !tbaa !5
  %3904 = call ptr @s2n_strerror_debug(i32 noundef %3903, ptr noundef nonnull @.str.4) #12
  %3905 = load i32, ptr %3886, align 4, !tbaa !5
  %3906 = call ptr @strerror(i32 noundef %3905) #12
  %3907 = load i32, ptr %3886, align 4, !tbaa !5
  %3908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3898, ptr noundef nonnull %.str.5.sink2685, i32 noundef %3899, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 431, ptr noundef %3902, ptr noundef %3904, ptr noundef %3906, i32 noundef %3907) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3909:                                             ; preds = %3880
  %3910 = add nsw i32 %3881, 2
  store i32 %3910, ptr @test_count, align 4, !tbaa !5
  %3911 = load i32, ptr %179, align 4, !tbaa !56
  %3912 = load i32, ptr %180, align 8, !tbaa !57
  %3913 = sub i32 %3911, %3912
  %3914 = icmp eq i32 %3913, %3761
  br i1 %3914, label %3939, label %3915

3915:                                             ; preds = %3909
  %3916 = tail call ptr @__errno_location() #13
  %3917 = load i32, ptr %3916, align 4, !tbaa !5
  %3918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3919 = call i32 @s2n_print_stacktrace(ptr noundef %3918) #12
  %3920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3921 = trunc nuw i8 %3920 to i1
  br i1 %3921, label %3922, label %3926

3922:                                             ; preds = %3915
  %3923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3924 = call i32 @fileno(ptr noundef %3923) #12
  %3925 = call i32 @isatty(i32 noundef %3924) #12
  %.not1229 = icmp eq i32 %3925, 0
  br i1 %.not1229, label %3926, label %3927

3926:                                             ; preds = %3922, %3915
  br label %3927

3927:                                             ; preds = %3922, %3926
  %.str.5.sink2696 = phi ptr [ @.str.5, %3926 ], [ @.str.2, %3922 ]
  store i32 %3917, ptr %3916, align 4, !tbaa !5
  %3928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3929 = load i32, ptr @test_count, align 4, !tbaa !5
  %3930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3931 = load i32, ptr %3930, align 4, !tbaa !5
  %3932 = call ptr @s2n_strerror(i32 noundef %3931, ptr noundef nonnull @.str.4) #12
  %3933 = load i32, ptr %3930, align 4, !tbaa !5
  %3934 = call ptr @s2n_strerror_debug(i32 noundef %3933, ptr noundef nonnull @.str.4) #12
  %3935 = load i32, ptr %3916, align 4, !tbaa !5
  %3936 = call ptr @strerror(i32 noundef %3935) #12
  %3937 = load i32, ptr %3916, align 4, !tbaa !5
  %3938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3928, ptr noundef nonnull %.str.5.sink2696, i32 noundef %3929, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 432, ptr noundef %3932, ptr noundef %3934, ptr noundef %3936, i32 noundef %3937) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3939:                                             ; preds = %3909
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %43) #12
  br label %4202

3940:                                             ; preds = %3750
  %3941 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %33, i32 noundef %3761) #12
  %3942 = icmp eq ptr %3941, null
  br i1 %3942, label %3943, label %3967

3943:                                             ; preds = %3940
  %3944 = tail call ptr @__errno_location() #13
  %3945 = load i32, ptr %3944, align 4, !tbaa !5
  %3946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3947 = call i32 @s2n_print_stacktrace(ptr noundef %3946) #12
  %3948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3949 = trunc nuw i8 %3948 to i1
  br i1 %3949, label %3950, label %3954

3950:                                             ; preds = %3943
  %3951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3952 = call i32 @fileno(ptr noundef %3951) #12
  %3953 = call i32 @isatty(i32 noundef %3952) #12
  %.not1246 = icmp eq i32 %3953, 0
  br i1 %.not1246, label %3954, label %3955

3954:                                             ; preds = %3950, %3943
  br label %3955

3955:                                             ; preds = %3950, %3954
  %.str.5.sink2707 = phi ptr [ @.str.5, %3954 ], [ @.str.2, %3950 ]
  store i32 %3945, ptr %3944, align 4, !tbaa !5
  %3956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3957 = load i32, ptr @test_count, align 4, !tbaa !5
  %3958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3959 = load i32, ptr %3958, align 4, !tbaa !5
  %3960 = call ptr @s2n_strerror(i32 noundef %3959, ptr noundef nonnull @.str.4) #12
  %3961 = load i32, ptr %3958, align 4, !tbaa !5
  %3962 = call ptr @s2n_strerror_debug(i32 noundef %3961, ptr noundef nonnull @.str.4) #12
  %3963 = load i32, ptr %3944, align 4, !tbaa !5
  %3964 = call ptr @strerror(i32 noundef %3963) #12
  %3965 = load i32, ptr %3944, align 4, !tbaa !5
  %3966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3956, ptr noundef nonnull %.str.5.sink2707, i32 noundef %3957, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.1, i32 noundef 436, ptr noundef %3960, ptr noundef %3962, ptr noundef %3964, i32 noundef %3965) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3967:                                             ; preds = %3940
  %3968 = load i32, ptr @test_count, align 4, !tbaa !5
  %3969 = add nsw i32 %3968, 1
  store i32 %3969, ptr @test_count, align 4, !tbaa !5
  %3970 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %34, i32 noundef %3761) #12
  %3971 = icmp eq ptr %3970, null
  br i1 %3971, label %3972, label %3996

3972:                                             ; preds = %3967
  %3973 = tail call ptr @__errno_location() #13
  %3974 = load i32, ptr %3973, align 4, !tbaa !5
  %3975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3976 = call i32 @s2n_print_stacktrace(ptr noundef %3975) #12
  %3977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3978 = trunc nuw i8 %3977 to i1
  br i1 %3978, label %3979, label %3983

3979:                                             ; preds = %3972
  %3980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3981 = call i32 @fileno(ptr noundef %3980) #12
  %3982 = call i32 @isatty(i32 noundef %3981) #12
  %.not1245 = icmp eq i32 %3982, 0
  br i1 %.not1245, label %3983, label %3984

3983:                                             ; preds = %3979, %3972
  br label %3984

3984:                                             ; preds = %3979, %3983
  %.str.5.sink2718 = phi ptr [ @.str.5, %3983 ], [ @.str.2, %3979 ]
  store i32 %3974, ptr %3973, align 4, !tbaa !5
  %3985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3986 = load i32, ptr @test_count, align 4, !tbaa !5
  %3987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3988 = load i32, ptr %3987, align 4, !tbaa !5
  %3989 = call ptr @s2n_strerror(i32 noundef %3988, ptr noundef nonnull @.str.4) #12
  %3990 = load i32, ptr %3987, align 4, !tbaa !5
  %3991 = call ptr @s2n_strerror_debug(i32 noundef %3990, ptr noundef nonnull @.str.4) #12
  %3992 = load i32, ptr %3973, align 4, !tbaa !5
  %3993 = call ptr @strerror(i32 noundef %3992) #12
  %3994 = load i32, ptr %3973, align 4, !tbaa !5
  %3995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3985, ptr noundef nonnull %.str.5.sink2718, i32 noundef %3986, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 437, ptr noundef %3989, ptr noundef %3991, ptr noundef %3993, i32 noundef %3994) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3996:                                             ; preds = %3967
  %.pre1362 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %263, label %3997, label %4085

3997:                                             ; preds = %3996
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %44) #12
  store i16 0, ptr %44, align 2, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %45) #12
  store i16 0, ptr %45, align 2, !tbaa !55
  %3998 = add nsw i32 %.pre1362, 1
  store i32 %3998, ptr @test_count, align 4, !tbaa !5
  %3999 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %33, ptr noundef nonnull %44) #12
  %4000 = icmp eq i32 %3999, -1
  br i1 %4000, label %4001, label %4025

4001:                                             ; preds = %3997
  %4002 = tail call ptr @__errno_location() #13
  %4003 = load i32, ptr %4002, align 4, !tbaa !5
  %4004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4005 = call i32 @s2n_print_stacktrace(ptr noundef %4004) #12
  %4006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4007 = trunc nuw i8 %4006 to i1
  br i1 %4007, label %4008, label %4012

4008:                                             ; preds = %4001
  %4009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4010 = call i32 @fileno(ptr noundef %4009) #12
  %4011 = call i32 @isatty(i32 noundef %4010) #12
  %.not1244 = icmp eq i32 %4011, 0
  br i1 %.not1244, label %4012, label %4013

4012:                                             ; preds = %4008, %4001
  br label %4013

4013:                                             ; preds = %4008, %4012
  %.str.5.sink2729 = phi ptr [ @.str.5, %4012 ], [ @.str.2, %4008 ]
  store i32 %4003, ptr %4002, align 4, !tbaa !5
  %4014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4015 = load i32, ptr @test_count, align 4, !tbaa !5
  %4016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4017 = load i32, ptr %4016, align 4, !tbaa !5
  %4018 = call ptr @s2n_strerror(i32 noundef %4017, ptr noundef nonnull @.str.4) #12
  %4019 = load i32, ptr %4016, align 4, !tbaa !5
  %4020 = call ptr @s2n_strerror_debug(i32 noundef %4019, ptr noundef nonnull @.str.4) #12
  %4021 = load i32, ptr %4002, align 4, !tbaa !5
  %4022 = call ptr @strerror(i32 noundef %4021) #12
  %4023 = load i32, ptr %4002, align 4, !tbaa !5
  %4024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4014, ptr noundef nonnull %.str.5.sink2729, i32 noundef %4015, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 444, ptr noundef %4018, ptr noundef %4020, ptr noundef %4022, i32 noundef %4023) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4025:                                             ; preds = %3997
  %4026 = load i32, ptr @test_count, align 4, !tbaa !5
  %4027 = add nsw i32 %4026, 1
  store i32 %4027, ptr @test_count, align 4, !tbaa !5
  %4028 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %34, ptr noundef nonnull %45) #12
  %4029 = icmp eq i32 %4028, -1
  br i1 %4029, label %4030, label %4054

4030:                                             ; preds = %4025
  %4031 = tail call ptr @__errno_location() #13
  %4032 = load i32, ptr %4031, align 4, !tbaa !5
  %4033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4034 = call i32 @s2n_print_stacktrace(ptr noundef %4033) #12
  %4035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4036 = trunc nuw i8 %4035 to i1
  br i1 %4036, label %4037, label %4041

4037:                                             ; preds = %4030
  %4038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4039 = call i32 @fileno(ptr noundef %4038) #12
  %4040 = call i32 @isatty(i32 noundef %4039) #12
  %.not1243 = icmp eq i32 %4040, 0
  br i1 %.not1243, label %4041, label %4042

4041:                                             ; preds = %4037, %4030
  br label %4042

4042:                                             ; preds = %4037, %4041
  %.str.5.sink2740 = phi ptr [ @.str.5, %4041 ], [ @.str.2, %4037 ]
  store i32 %4032, ptr %4031, align 4, !tbaa !5
  %4043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4044 = load i32, ptr @test_count, align 4, !tbaa !5
  %4045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4046 = load i32, ptr %4045, align 4, !tbaa !5
  %4047 = call ptr @s2n_strerror(i32 noundef %4046, ptr noundef nonnull @.str.4) #12
  %4048 = load i32, ptr %4045, align 4, !tbaa !5
  %4049 = call ptr @s2n_strerror_debug(i32 noundef %4048, ptr noundef nonnull @.str.4) #12
  %4050 = load i32, ptr %4031, align 4, !tbaa !5
  %4051 = call ptr @strerror(i32 noundef %4050) #12
  %4052 = load i32, ptr %4031, align 4, !tbaa !5
  %4053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4043, ptr noundef nonnull %.str.5.sink2740, i32 noundef %4044, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 445, ptr noundef %4047, ptr noundef %4049, ptr noundef %4051, i32 noundef %4052) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4054:                                             ; preds = %4025
  %4055 = load i32, ptr @test_count, align 4, !tbaa !5
  %4056 = add nsw i32 %4055, 1
  store i32 %4056, ptr @test_count, align 4, !tbaa !5
  %4057 = load i16, ptr %44, align 2, !tbaa !55
  %4058 = load i16, ptr %45, align 2, !tbaa !55
  %4059 = icmp eq i16 %4057, %4058
  br i1 %4059, label %4084, label %4060

4060:                                             ; preds = %4054
  %4061 = tail call ptr @__errno_location() #13
  %4062 = load i32, ptr %4061, align 4, !tbaa !5
  %4063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4064 = call i32 @s2n_print_stacktrace(ptr noundef %4063) #12
  %4065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4066 = trunc nuw i8 %4065 to i1
  br i1 %4066, label %4067, label %4071

4067:                                             ; preds = %4060
  %4068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4069 = call i32 @fileno(ptr noundef %4068) #12
  %4070 = call i32 @isatty(i32 noundef %4069) #12
  %.not1233 = icmp eq i32 %4070, 0
  br i1 %.not1233, label %4071, label %4072

4071:                                             ; preds = %4067, %4060
  br label %4072

4072:                                             ; preds = %4067, %4071
  %.str.5.sink2751 = phi ptr [ @.str.5, %4071 ], [ @.str.2, %4067 ]
  store i32 %4062, ptr %4061, align 4, !tbaa !5
  %4073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4074 = load i32, ptr @test_count, align 4, !tbaa !5
  %4075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4076 = load i32, ptr %4075, align 4, !tbaa !5
  %4077 = call ptr @s2n_strerror(i32 noundef %4076, ptr noundef nonnull @.str.4) #12
  %4078 = load i32, ptr %4075, align 4, !tbaa !5
  %4079 = call ptr @s2n_strerror_debug(i32 noundef %4078, ptr noundef nonnull @.str.4) #12
  %4080 = load i32, ptr %4061, align 4, !tbaa !5
  %4081 = call ptr @strerror(i32 noundef %4080) #12
  %4082 = load i32, ptr %4061, align 4, !tbaa !5
  %4083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4073, ptr noundef nonnull %.str.5.sink2751, i32 noundef %4074, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 446, ptr noundef %4077, ptr noundef %4079, ptr noundef %4081, i32 noundef %4082) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4084:                                             ; preds = %4054
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %45) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %44) #12
  br label %4085

4085:                                             ; preds = %3996, %4084
  %4086 = phi i32 [ %.pre1362, %3996 ], [ %4056, %4084 ]
  %4087 = add nsw i32 %4086, 1
  store i32 %4087, ptr @test_count, align 4, !tbaa !5
  %4088 = load i32, ptr %179, align 4, !tbaa !56
  %4089 = load i32, ptr %180, align 8, !tbaa !57
  %4090 = sub i32 %4088, %4089
  %4091 = icmp eq i32 %4090, %3755
  br i1 %4091, label %4116, label %4092

4092:                                             ; preds = %4085
  %4093 = tail call ptr @__errno_location() #13
  %4094 = load i32, ptr %4093, align 4, !tbaa !5
  %4095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4096 = call i32 @s2n_print_stacktrace(ptr noundef %4095) #12
  %4097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4098 = trunc nuw i8 %4097 to i1
  br i1 %4098, label %4099, label %4103

4099:                                             ; preds = %4092
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = call i32 @fileno(ptr noundef %4100) #12
  %4102 = call i32 @isatty(i32 noundef %4101) #12
  %.not1234 = icmp eq i32 %4102, 0
  br i1 %.not1234, label %4103, label %4104

4103:                                             ; preds = %4099, %4092
  br label %4104

4104:                                             ; preds = %4099, %4103
  %.str.5.sink2762 = phi ptr [ @.str.5, %4103 ], [ @.str.2, %4099 ]
  store i32 %4094, ptr %4093, align 4, !tbaa !5
  %4105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4106 = load i32, ptr @test_count, align 4, !tbaa !5
  %4107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4108 = load i32, ptr %4107, align 4, !tbaa !5
  %4109 = call ptr @s2n_strerror(i32 noundef %4108, ptr noundef nonnull @.str.4) #12
  %4110 = load i32, ptr %4107, align 4, !tbaa !5
  %4111 = call ptr @s2n_strerror_debug(i32 noundef %4110, ptr noundef nonnull @.str.4) #12
  %4112 = load i32, ptr %4093, align 4, !tbaa !5
  %4113 = call ptr @strerror(i32 noundef %4112) #12
  %4114 = load i32, ptr %4093, align 4, !tbaa !5
  %4115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4105, ptr noundef nonnull %.str.5.sink2762, i32 noundef %4106, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 448, ptr noundef %4109, ptr noundef %4111, ptr noundef %4113, i32 noundef %4114) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4116:                                             ; preds = %4085
  %4117 = add nsw i32 %4086, 2
  store i32 %4117, ptr @test_count, align 4, !tbaa !5
  %4118 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %33, i32 noundef %3755) #12
  %4119 = icmp eq ptr %4118, null
  br i1 %4119, label %4120, label %4144

4120:                                             ; preds = %4116
  %4121 = tail call ptr @__errno_location() #13
  %4122 = load i32, ptr %4121, align 4, !tbaa !5
  %4123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4124 = call i32 @s2n_print_stacktrace(ptr noundef %4123) #12
  %4125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4126 = trunc nuw i8 %4125 to i1
  br i1 %4126, label %4127, label %4131

4127:                                             ; preds = %4120
  %4128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4129 = call i32 @fileno(ptr noundef %4128) #12
  %4130 = call i32 @isatty(i32 noundef %4129) #12
  %.not1242 = icmp eq i32 %4130, 0
  br i1 %.not1242, label %4131, label %4132

4131:                                             ; preds = %4127, %4120
  br label %4132

4132:                                             ; preds = %4127, %4131
  %.str.5.sink2773 = phi ptr [ @.str.5, %4131 ], [ @.str.2, %4127 ]
  store i32 %4122, ptr %4121, align 4, !tbaa !5
  %4133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4134 = load i32, ptr @test_count, align 4, !tbaa !5
  %4135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4136 = load i32, ptr %4135, align 4, !tbaa !5
  %4137 = call ptr @s2n_strerror(i32 noundef %4136, ptr noundef nonnull @.str.4) #12
  %4138 = load i32, ptr %4135, align 4, !tbaa !5
  %4139 = call ptr @s2n_strerror_debug(i32 noundef %4138, ptr noundef nonnull @.str.4) #12
  %4140 = load i32, ptr %4121, align 4, !tbaa !5
  %4141 = call ptr @strerror(i32 noundef %4140) #12
  %4142 = load i32, ptr %4121, align 4, !tbaa !5
  %4143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4133, ptr noundef nonnull %.str.5.sink2773, i32 noundef %4134, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 450, ptr noundef %4137, ptr noundef %4139, ptr noundef %4141, i32 noundef %4142) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4144:                                             ; preds = %4116
  %4145 = load i32, ptr @test_count, align 4, !tbaa !5
  %4146 = add nsw i32 %4145, 1
  store i32 %4146, ptr @test_count, align 4, !tbaa !5
  %4147 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %34, i32 noundef %3755) #12
  %4148 = icmp eq ptr %4147, null
  br i1 %4148, label %4149, label %4173

4149:                                             ; preds = %4144
  %4150 = tail call ptr @__errno_location() #13
  %4151 = load i32, ptr %4150, align 4, !tbaa !5
  %4152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4153 = call i32 @s2n_print_stacktrace(ptr noundef %4152) #12
  %4154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4155 = trunc nuw i8 %4154 to i1
  br i1 %4155, label %4156, label %4160

4156:                                             ; preds = %4149
  %4157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4158 = call i32 @fileno(ptr noundef %4157) #12
  %4159 = call i32 @isatty(i32 noundef %4158) #12
  %.not1241 = icmp eq i32 %4159, 0
  br i1 %.not1241, label %4160, label %4161

4160:                                             ; preds = %4156, %4149
  br label %4161

4161:                                             ; preds = %4156, %4160
  %.str.5.sink2784 = phi ptr [ @.str.5, %4160 ], [ @.str.2, %4156 ]
  store i32 %4151, ptr %4150, align 4, !tbaa !5
  %4162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4163 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4165, ptr noundef nonnull @.str.4) #12
  %4167 = load i32, ptr %4164, align 4, !tbaa !5
  %4168 = call ptr @s2n_strerror_debug(i32 noundef %4167, ptr noundef nonnull @.str.4) #12
  %4169 = load i32, ptr %4150, align 4, !tbaa !5
  %4170 = call ptr @strerror(i32 noundef %4169) #12
  %4171 = load i32, ptr %4150, align 4, !tbaa !5
  %4172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4162, ptr noundef nonnull %.str.5.sink2784, i32 noundef %4163, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 451, ptr noundef %4166, ptr noundef %4168, ptr noundef %4170, i32 noundef %4171) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4173:                                             ; preds = %4144
  %.not1235 = icmp eq i8 %3754, 0
  %.pre1363 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not1235, label %4202, label %4174

4174:                                             ; preds = %4173
  %4175 = add nsw i32 %.pre1363, 1
  store i32 %4175, ptr @test_count, align 4, !tbaa !5
  %4176 = zext i8 %3754 to i64
  %bcmp1236 = call i32 @bcmp(ptr nonnull %4118, ptr nonnull %4147, i64 %4176)
  %4177 = icmp eq i32 %bcmp1236, 0
  br i1 %4177, label %4202, label %4178

4178:                                             ; preds = %4174
  %4179 = tail call ptr @__errno_location() #13
  %4180 = load i32, ptr %4179, align 4, !tbaa !5
  %4181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4182 = call i32 @s2n_print_stacktrace(ptr noundef %4181) #12
  %4183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4184 = trunc nuw i8 %4183 to i1
  br i1 %4184, label %4185, label %4189

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

4189:                                             ; preds = %4185, %4178
  br label %4190

4190:                                             ; preds = %4185, %4189
  %.str.5.sink2795 = phi ptr [ @.str.5, %4189 ], [ @.str.2, %4185 ]
  store i32 %4180, ptr %4179, align 4, !tbaa !5
  %4191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4192 = load i32, ptr @test_count, align 4, !tbaa !5
  %4193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4194 = load i32, ptr %4193, align 4, !tbaa !5
  %4195 = call ptr @s2n_strerror(i32 noundef %4194, ptr noundef nonnull @.str.4) #12
  %4196 = load i32, ptr %4193, align 4, !tbaa !5
  %4197 = call ptr @s2n_strerror_debug(i32 noundef %4196, ptr noundef nonnull @.str.4) #12
  %4198 = load i32, ptr %4179, align 4, !tbaa !5
  %4199 = call ptr @strerror(i32 noundef %4198) #12
  %4200 = load i32, ptr %4179, align 4, !tbaa !5
  %4201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4191, ptr noundef nonnull %.str.5.sink2795, i32 noundef %4192, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 452, ptr noundef %4195, ptr noundef %4197, ptr noundef %4199, i32 noundef %4200) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4202:                                             ; preds = %4173, %4174, %3851, %3939
  %4203 = phi i32 [ %.pre1363, %4173 ], [ %4175, %4174 ], [ %.pre1364, %3851 ], [ %3910, %3939 ]
  %4204 = add nsw i32 %4203, 1
  store i32 %4204, ptr @test_count, align 4, !tbaa !5
  %4205 = call i32 @s2n_stuffer_free(ptr noundef nonnull %33) #12
  %4206 = icmp eq i32 %4205, -1
  br i1 %4206, label %4207, label %4231

4207:                                             ; preds = %4202
  %4208 = tail call ptr @__errno_location() #13
  %4209 = load i32, ptr %4208, align 4, !tbaa !5
  %4210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4211 = call i32 @s2n_print_stacktrace(ptr noundef %4210) #12
  %4212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4213 = trunc nuw i8 %4212 to i1
  br i1 %4213, label %4214, label %4218

4214:                                             ; preds = %4207
  %4215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4216 = call i32 @fileno(ptr noundef %4215) #12
  %4217 = call i32 @isatty(i32 noundef %4216) #12
  %.not1240 = icmp eq i32 %4217, 0
  br i1 %.not1240, label %4218, label %4219

4218:                                             ; preds = %4214, %4207
  br label %4219

4219:                                             ; preds = %4214, %4218
  %.str.5.sink2806 = phi ptr [ @.str.5, %4218 ], [ @.str.2, %4214 ]
  store i32 %4209, ptr %4208, align 4, !tbaa !5
  %4220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4221 = load i32, ptr @test_count, align 4, !tbaa !5
  %4222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4223 = load i32, ptr %4222, align 4, !tbaa !5
  %4224 = call ptr @s2n_strerror(i32 noundef %4223, ptr noundef nonnull @.str.4) #12
  %4225 = load i32, ptr %4222, align 4, !tbaa !5
  %4226 = call ptr @s2n_strerror_debug(i32 noundef %4225, ptr noundef nonnull @.str.4) #12
  %4227 = load i32, ptr %4208, align 4, !tbaa !5
  %4228 = call ptr @strerror(i32 noundef %4227) #12
  %4229 = load i32, ptr %4208, align 4, !tbaa !5
  %4230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4220, ptr noundef nonnull %.str.5.sink2806, i32 noundef %4221, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 455, ptr noundef %4224, ptr noundef %4226, ptr noundef %4228, i32 noundef %4229) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4231:                                             ; preds = %4202
  %4232 = load i32, ptr @test_count, align 4, !tbaa !5
  %4233 = add nsw i32 %4232, 1
  store i32 %4233, ptr @test_count, align 4, !tbaa !5
  %4234 = call i32 @s2n_stuffer_free(ptr noundef nonnull %34) #12
  %4235 = icmp eq i32 %4234, -1
  br i1 %4235, label %4236, label %4260

4236:                                             ; preds = %4231
  %4237 = tail call ptr @__errno_location() #13
  %4238 = load i32, ptr %4237, align 4, !tbaa !5
  %4239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4240 = call i32 @s2n_print_stacktrace(ptr noundef %4239) #12
  %4241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4242 = trunc nuw i8 %4241 to i1
  br i1 %4242, label %4243, label %4247

4243:                                             ; preds = %4236
  %4244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4245 = call i32 @fileno(ptr noundef %4244) #12
  %4246 = call i32 @isatty(i32 noundef %4245) #12
  %.not1239 = icmp eq i32 %4246, 0
  br i1 %.not1239, label %4247, label %4248

4247:                                             ; preds = %4243, %4236
  br label %4248

4248:                                             ; preds = %4243, %4247
  %.str.5.sink2817 = phi ptr [ @.str.5, %4247 ], [ @.str.2, %4243 ]
  store i32 %4238, ptr %4237, align 4, !tbaa !5
  %4249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4250 = load i32, ptr @test_count, align 4, !tbaa !5
  %4251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4252 = load i32, ptr %4251, align 4, !tbaa !5
  %4253 = call ptr @s2n_strerror(i32 noundef %4252, ptr noundef nonnull @.str.4) #12
  %4254 = load i32, ptr %4251, align 4, !tbaa !5
  %4255 = call ptr @s2n_strerror_debug(i32 noundef %4254, ptr noundef nonnull @.str.4) #12
  %4256 = load i32, ptr %4237, align 4, !tbaa !5
  %4257 = call ptr @strerror(i32 noundef %4256) #12
  %4258 = load i32, ptr %4237, align 4, !tbaa !5
  %4259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4249, ptr noundef nonnull %.str.5.sink2817, i32 noundef %4250, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 456, ptr noundef %4253, ptr noundef %4255, ptr noundef %4257, i32 noundef %4258) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4260:                                             ; preds = %4231
  %4261 = load i32, ptr @test_count, align 4, !tbaa !5
  %4262 = add nsw i32 %4261, 1
  store i32 %4262, ptr @test_count, align 4, !tbaa !5
  %4263 = call i32 @s2n_connection_free(ptr noundef nonnull %2975) #12
  %4264 = icmp eq i32 %4263, -1
  br i1 %4264, label %4265, label %4289

4265:                                             ; preds = %4260
  %4266 = tail call ptr @__errno_location() #13
  %4267 = load i32, ptr %4266, align 4, !tbaa !5
  %4268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4269 = call i32 @s2n_print_stacktrace(ptr noundef %4268) #12
  %4270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4271 = trunc nuw i8 %4270 to i1
  br i1 %4271, label %4272, label %4276

4272:                                             ; preds = %4265
  %4273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4274 = call i32 @fileno(ptr noundef %4273) #12
  %4275 = call i32 @isatty(i32 noundef %4274) #12
  %.not1238 = icmp eq i32 %4275, 0
  br i1 %.not1238, label %4276, label %4277

4276:                                             ; preds = %4272, %4265
  br label %4277

4277:                                             ; preds = %4272, %4276
  %.str.5.sink2828 = phi ptr [ @.str.5, %4276 ], [ @.str.2, %4272 ]
  store i32 %4267, ptr %4266, align 4, !tbaa !5
  %4278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4279 = load i32, ptr @test_count, align 4, !tbaa !5
  %4280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4281 = load i32, ptr %4280, align 4, !tbaa !5
  %4282 = call ptr @s2n_strerror(i32 noundef %4281, ptr noundef nonnull @.str.4) #12
  %4283 = load i32, ptr %4280, align 4, !tbaa !5
  %4284 = call ptr @s2n_strerror_debug(i32 noundef %4283, ptr noundef nonnull @.str.4) #12
  %4285 = load i32, ptr %4266, align 4, !tbaa !5
  %4286 = call ptr @strerror(i32 noundef %4285) #12
  %4287 = load i32, ptr %4266, align 4, !tbaa !5
  %4288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4278, ptr noundef nonnull %.str.5.sink2828, i32 noundef %4279, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 457, ptr noundef %4282, ptr noundef %4284, ptr noundef %4286, i32 noundef %4287) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4289:                                             ; preds = %4260
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %40) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %39) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %38) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %37) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %36) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %35) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %34) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #12
  br label %4290

4290:                                             ; preds = %1944, %4289
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %10) #12
  %exitcond.not = icmp eq i64 %779, 8
  br i1 %exitcond.not, label %.loopexit1328, label %.preheader1327, !llvm.loop !92

.loopexit1328:                                    ; preds = %4290, %775
  %4291 = load i32, ptr @test_count, align 4, !tbaa !5
  %4292 = add nsw i32 %4291, 1
  store i32 %4292, ptr @test_count, align 4, !tbaa !5
  %4293 = call i32 (...) @s2n_enable_tls13_in_test() #12
  %4294 = icmp eq i32 %4293, -1
  br i1 %4294, label %4295, label %4319

4295:                                             ; preds = %.loopexit1328
  %4296 = tail call ptr @__errno_location() #13
  %4297 = load i32, ptr %4296, align 4, !tbaa !5
  %4298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4299 = call i32 @s2n_print_stacktrace(ptr noundef %4298) #12
  %4300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4301 = trunc nuw i8 %4300 to i1
  br i1 %4301, label %4302, label %4306

4302:                                             ; preds = %4295
  %4303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4304 = call i32 @fileno(ptr noundef %4303) #12
  %4305 = call i32 @isatty(i32 noundef %4304) #12
  %.not1189 = icmp eq i32 %4305, 0
  br i1 %.not1189, label %4306, label %4307

4306:                                             ; preds = %4302, %4295
  br label %4307

4307:                                             ; preds = %4302, %4306
  %.str.5.sink2839 = phi ptr [ @.str.5, %4306 ], [ @.str.2, %4302 ]
  store i32 %4297, ptr %4296, align 4, !tbaa !5
  %4308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4309 = load i32, ptr @test_count, align 4, !tbaa !5
  %4310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4311 = load i32, ptr %4310, align 4, !tbaa !5
  %4312 = call ptr @s2n_strerror(i32 noundef %4311, ptr noundef nonnull @.str.4) #12
  %4313 = load i32, ptr %4310, align 4, !tbaa !5
  %4314 = call ptr @s2n_strerror_debug(i32 noundef %4313, ptr noundef nonnull @.str.4) #12
  %4315 = load i32, ptr %4296, align 4, !tbaa !5
  %4316 = call ptr @strerror(i32 noundef %4315) #12
  %4317 = load i32, ptr %4296, align 4, !tbaa !5
  %4318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4308, ptr noundef nonnull %.str.5.sink2839, i32 noundef %4309, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 465, ptr noundef %4312, ptr noundef %4314, ptr noundef %4316, i32 noundef %4317) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4319:                                             ; preds = %.loopexit1328
  %4320 = call zeroext i1 @s2n_pq_is_enabled() #12
  br i1 %4320, label %4902, label %4321

4321:                                             ; preds = %4319
  %4322 = load i32, ptr @test_count, align 4, !tbaa !5
  %4323 = add nsw i32 %4322, 1
  store i32 %4323, ptr @test_count, align 4, !tbaa !5
  %4324 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %4325 = icmp eq ptr %4324, null
  br i1 %4325, label %4326, label %4350

4326:                                             ; preds = %4321
  %4327 = tail call ptr @__errno_location() #13
  %4328 = load i32, ptr %4327, align 4, !tbaa !5
  %4329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4330 = call i32 @s2n_print_stacktrace(ptr noundef %4329) #12
  %4331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4332 = trunc nuw i8 %4331 to i1
  br i1 %4332, label %4333, label %4337

4333:                                             ; preds = %4326
  %4334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4335 = call i32 @fileno(ptr noundef %4334) #12
  %4336 = call i32 @isatty(i32 noundef %4335) #12
  %.not1036 = icmp eq i32 %4336, 0
  br i1 %.not1036, label %4337, label %4338

4337:                                             ; preds = %4333, %4326
  br label %4338

4338:                                             ; preds = %4333, %4337
  %.str.5.sink2850 = phi ptr [ @.str.5, %4337 ], [ @.str.2, %4333 ]
  store i32 %4328, ptr %4327, align 4, !tbaa !5
  %4339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4340 = load i32, ptr @test_count, align 4, !tbaa !5
  %4341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4342 = load i32, ptr %4341, align 4, !tbaa !5
  %4343 = call ptr @s2n_strerror(i32 noundef %4342, ptr noundef nonnull @.str.4) #12
  %4344 = load i32, ptr %4341, align 4, !tbaa !5
  %4345 = call ptr @s2n_strerror_debug(i32 noundef %4344, ptr noundef nonnull @.str.4) #12
  %4346 = load i32, ptr %4327, align 4, !tbaa !5
  %4347 = call ptr @strerror(i32 noundef %4346) #12
  %4348 = load i32, ptr %4327, align 4, !tbaa !5
  %4349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4339, ptr noundef nonnull %.str.5.sink2850, i32 noundef %4340, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 470, ptr noundef %4343, ptr noundef %4345, ptr noundef %4347, i32 noundef %4348) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4350:                                             ; preds = %4321
  %4351 = getelementptr inbounds i8, ptr %4324, i64 220
  store i8 34, ptr %4351, align 4, !tbaa !79
  %4352 = getelementptr inbounds i8, ptr %4324, i64 16
  store ptr %2, ptr %4352, align 8, !tbaa !28
  %4353 = load i32, ptr @test_count, align 4, !tbaa !5
  %4354 = add nsw i32 %4353, 1
  store i32 %4354, ptr @test_count, align 4, !tbaa !5
  %4355 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %4324) #12
  %4356 = call zeroext i1 @s2n_result_is_ok(i32 %4355)
  br i1 %4356, label %4381, label %4357

4357:                                             ; preds = %4350
  %4358 = tail call ptr @__errno_location() #13
  %4359 = load i32, ptr %4358, align 4, !tbaa !5
  %4360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4361 = call i32 @s2n_print_stacktrace(ptr noundef %4360) #12
  %4362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4363 = trunc nuw i8 %4362 to i1
  br i1 %4363, label %4364, label %4368

4364:                                             ; preds = %4357
  %4365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4366 = call i32 @fileno(ptr noundef %4365) #12
  %4367 = call i32 @isatty(i32 noundef %4366) #12
  %.not1017 = icmp eq i32 %4367, 0
  br i1 %.not1017, label %4368, label %4369

4368:                                             ; preds = %4364, %4357
  br label %4369

4369:                                             ; preds = %4364, %4368
  %.str.5.sink2861 = phi ptr [ @.str.5, %4368 ], [ @.str.2, %4364 ]
  store i32 %4359, ptr %4358, align 4, !tbaa !5
  %4370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4371 = load i32, ptr @test_count, align 4, !tbaa !5
  %4372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4373 = load i32, ptr %4372, align 4, !tbaa !5
  %4374 = call ptr @s2n_strerror(i32 noundef %4373, ptr noundef nonnull @.str.4) #12
  %4375 = load i32, ptr %4372, align 4, !tbaa !5
  %4376 = call ptr @s2n_strerror_debug(i32 noundef %4375, ptr noundef nonnull @.str.4) #12
  %4377 = load i32, ptr %4358, align 4, !tbaa !5
  %4378 = call ptr @strerror(i32 noundef %4377) #12
  %4379 = load i32, ptr %4358, align 4, !tbaa !5
  %4380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4370, ptr noundef nonnull %.str.5.sink2861, i32 noundef %4371, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %4374, ptr noundef %4376, ptr noundef %4378, i32 noundef %4379) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4381:                                             ; preds = %4350
  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)
  %4382 = load i32, ptr @test_count, align 4, !tbaa !5
  %4383 = add nsw i32 %4382, 1
  store i32 %4383, ptr @test_count, align 4, !tbaa !5
  %4384 = call i32 @s2n_stuffer_alloc_from_hex(ptr noundef nonnull %46, ptr noundef nonnull @.str.100) #12
  %4385 = call zeroext i1 @s2n_result_is_ok(i32 %4384)
  br i1 %4385, label %4410, label %4386

4386:                                             ; preds = %4381
  %4387 = tail call ptr @__errno_location() #13
  %4388 = load i32, ptr %4387, align 4, !tbaa !5
  %4389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4390 = call i32 @s2n_print_stacktrace(ptr noundef %4389) #12
  %4391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4392 = trunc nuw i8 %4391 to i1
  br i1 %4392, label %4393, label %4397

4393:                                             ; preds = %4386
  %4394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4395 = call i32 @fileno(ptr noundef %4394) #12
  %4396 = call i32 @isatty(i32 noundef %4395) #12
  %.not1018 = icmp eq i32 %4396, 0
  br i1 %.not1018, label %4397, label %4398

4397:                                             ; preds = %4393, %4386
  br label %4398

4398:                                             ; preds = %4393, %4397
  %.str.5.sink2872 = phi ptr [ @.str.5, %4397 ], [ @.str.2, %4393 ]
  store i32 %4388, ptr %4387, align 4, !tbaa !5
  %4399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4400 = load i32, ptr @test_count, align 4, !tbaa !5
  %4401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4402 = load i32, ptr %4401, align 4, !tbaa !5
  %4403 = call ptr @s2n_strerror(i32 noundef %4402, ptr noundef nonnull @.str.4) #12
  %4404 = load i32, ptr %4401, align 4, !tbaa !5
  %4405 = call ptr @s2n_strerror_debug(i32 noundef %4404, ptr noundef nonnull @.str.4) #12
  %4406 = load i32, ptr %4387, align 4, !tbaa !5
  %4407 = call ptr @strerror(i32 noundef %4406) #12
  %4408 = load i32, ptr %4387, align 4, !tbaa !5
  %4409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4399, ptr noundef nonnull %.str.5.sink2872, i32 noundef %4400, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef %4403, ptr noundef %4405, ptr noundef %4407, i32 noundef %4408) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4410:                                             ; preds = %4381
  %4411 = load i32, ptr @test_count, align 4, !tbaa !5
  %4412 = add nsw i32 %4411, 1
  store i32 %4412, ptr @test_count, align 4, !tbaa !5
  %4413 = call i32 %181(ptr noundef nonnull %4324, ptr noundef nonnull %46) #12
  %4414 = icmp eq i32 %4413, -1
  br i1 %4414, label %4415, label %4439

4415:                                             ; preds = %4410
  %4416 = tail call ptr @__errno_location() #13
  %4417 = load i32, ptr %4416, align 4, !tbaa !5
  %4418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4419 = call i32 @s2n_print_stacktrace(ptr noundef %4418) #12
  %4420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4421 = trunc nuw i8 %4420 to i1
  br i1 %4421, label %4422, label %4426

4422:                                             ; preds = %4415
  %4423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4424 = call i32 @fileno(ptr noundef %4423) #12
  %4425 = call i32 @isatty(i32 noundef %4424) #12
  %.not1035 = icmp eq i32 %4425, 0
  br i1 %.not1035, label %4426, label %4427

4426:                                             ; preds = %4422, %4415
  br label %4427

4427:                                             ; preds = %4422, %4426
  %.str.5.sink2883 = phi ptr [ @.str.5, %4426 ], [ @.str.2, %4422 ]
  store i32 %4417, ptr %4416, align 4, !tbaa !5
  %4428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4429 = load i32, ptr @test_count, align 4, !tbaa !5
  %4430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4431 = load i32, ptr %4430, align 4, !tbaa !5
  %4432 = call ptr @s2n_strerror(i32 noundef %4431, ptr noundef nonnull @.str.4) #12
  %4433 = load i32, ptr %4430, align 4, !tbaa !5
  %4434 = call ptr @s2n_strerror_debug(i32 noundef %4433, ptr noundef nonnull @.str.4) #12
  %4435 = load i32, ptr %4416, align 4, !tbaa !5
  %4436 = call ptr @strerror(i32 noundef %4435) #12
  %4437 = load i32, ptr %4416, align 4, !tbaa !5
  %4438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4428, ptr noundef nonnull %.str.5.sink2883, i32 noundef %4429, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 494, ptr noundef %4432, ptr noundef %4434, ptr noundef %4436, i32 noundef %4437) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4439:                                             ; preds = %4410
  %4440 = load i32, ptr @test_count, align 4, !tbaa !5
  %4441 = add nsw i32 %4440, 1
  store i32 %4441, ptr @test_count, align 4, !tbaa !5
  %4442 = load i32, ptr %182, align 4, !tbaa !56
  %4443 = load i32, ptr %183, align 8, !tbaa !57
  %4444 = icmp eq i32 %4442, %4443
  br i1 %4444, label %4469, label %4445

4445:                                             ; preds = %4439
  %4446 = tail call ptr @__errno_location() #13
  %4447 = load i32, ptr %4446, align 4, !tbaa !5
  %4448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4449 = call i32 @s2n_print_stacktrace(ptr noundef %4448) #12
  %4450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4451 = trunc nuw i8 %4450 to i1
  br i1 %4451, label %4452, label %4456

4452:                                             ; preds = %4445
  %4453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4454 = call i32 @fileno(ptr noundef %4453) #12
  %4455 = call i32 @isatty(i32 noundef %4454) #12
  %.not1019 = icmp eq i32 %4455, 0
  br i1 %.not1019, label %4456, label %4457

4456:                                             ; preds = %4452, %4445
  br label %4457

4457:                                             ; preds = %4452, %4456
  %.str.5.sink2894 = phi ptr [ @.str.5, %4456 ], [ @.str.2, %4452 ]
  store i32 %4447, ptr %4446, align 4, !tbaa !5
  %4458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4459 = load i32, ptr @test_count, align 4, !tbaa !5
  %4460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4461 = load i32, ptr %4460, align 4, !tbaa !5
  %4462 = call ptr @s2n_strerror(i32 noundef %4461, ptr noundef nonnull @.str.4) #12
  %4463 = load i32, ptr %4460, align 4, !tbaa !5
  %4464 = call ptr @s2n_strerror_debug(i32 noundef %4463, ptr noundef nonnull @.str.4) #12
  %4465 = load i32, ptr %4446, align 4, !tbaa !5
  %4466 = call ptr @strerror(i32 noundef %4465) #12
  %4467 = load i32, ptr %4446, align 4, !tbaa !5
  %4468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4458, ptr noundef nonnull %.str.5.sink2894, i32 noundef %4459, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 497, ptr noundef %4462, ptr noundef %4464, ptr noundef %4466, i32 noundef %4467) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4469:                                             ; preds = %4439
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #12
  store ptr null, ptr %47, align 8, !tbaa !9
  %4470 = add nsw i32 %4440, 2
  store i32 %4470, ptr @test_count, align 4, !tbaa !5
  %4471 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %4324, ptr noundef nonnull %47) #12
  %4472 = icmp eq i32 %4471, -1
  br i1 %4472, label %4473, label %4497

4473:                                             ; preds = %4469
  %4474 = tail call ptr @__errno_location() #13
  %4475 = load i32, ptr %4474, align 4, !tbaa !5
  %4476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4477 = call i32 @s2n_print_stacktrace(ptr noundef %4476) #12
  %4478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4479 = trunc nuw i8 %4478 to i1
  br i1 %4479, label %4480, label %4484

4480:                                             ; preds = %4473
  %4481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4482 = call i32 @fileno(ptr noundef %4481) #12
  %4483 = call i32 @isatty(i32 noundef %4482) #12
  %.not1034 = icmp eq i32 %4483, 0
  br i1 %.not1034, label %4484, label %4485

4484:                                             ; preds = %4480, %4473
  br label %4485

4485:                                             ; preds = %4480, %4484
  %.str.5.sink2905 = phi ptr [ @.str.5, %4484 ], [ @.str.2, %4480 ]
  store i32 %4475, ptr %4474, align 4, !tbaa !5
  %4486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4487 = load i32, ptr @test_count, align 4, !tbaa !5
  %4488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4489 = load i32, ptr %4488, align 4, !tbaa !5
  %4490 = call ptr @s2n_strerror(i32 noundef %4489, ptr noundef nonnull @.str.4) #12
  %4491 = load i32, ptr %4488, align 4, !tbaa !5
  %4492 = call ptr @s2n_strerror_debug(i32 noundef %4491, ptr noundef nonnull @.str.4) #12
  %4493 = load i32, ptr %4474, align 4, !tbaa !5
  %4494 = call ptr @strerror(i32 noundef %4493) #12
  %4495 = load i32, ptr %4474, align 4, !tbaa !5
  %4496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4486, ptr noundef nonnull %.str.5.sink2905, i32 noundef %4487, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 501, ptr noundef %4490, ptr noundef %4492, ptr noundef %4494, i32 noundef %4495) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4497:                                             ; preds = %4469
  %4498 = load i32, ptr @test_count, align 4, !tbaa !5
  %4499 = add nsw i32 %4498, 1
  store i32 %4499, ptr @test_count, align 4, !tbaa !5
  %4500 = load ptr, ptr %47, align 8, !tbaa !9
  %4501 = icmp eq ptr %4500, null
  br i1 %4501, label %4502, label %4526

4502:                                             ; preds = %4497
  %4503 = tail call ptr @__errno_location() #13
  %4504 = load i32, ptr %4503, align 4, !tbaa !5
  %4505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4506 = call i32 @s2n_print_stacktrace(ptr noundef %4505) #12
  %4507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4508 = trunc nuw i8 %4507 to i1
  br i1 %4508, label %4509, label %4513

4509:                                             ; preds = %4502
  %4510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4511 = call i32 @fileno(ptr noundef %4510) #12
  %4512 = call i32 @isatty(i32 noundef %4511) #12
  %.not1033 = icmp eq i32 %4512, 0
  br i1 %.not1033, label %4513, label %4514

4513:                                             ; preds = %4509, %4502
  br label %4514

4514:                                             ; preds = %4509, %4513
  %.str.5.sink2916 = phi ptr [ @.str.5, %4513 ], [ @.str.2, %4509 ]
  store i32 %4504, ptr %4503, align 4, !tbaa !5
  %4515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4516 = load i32, ptr @test_count, align 4, !tbaa !5
  %4517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4518 = load i32, ptr %4517, align 4, !tbaa !5
  %4519 = call ptr @s2n_strerror(i32 noundef %4518, ptr noundef nonnull @.str.4) #12
  %4520 = load i32, ptr %4517, align 4, !tbaa !5
  %4521 = call ptr @s2n_strerror_debug(i32 noundef %4520, ptr noundef nonnull @.str.4) #12
  %4522 = load i32, ptr %4503, align 4, !tbaa !5
  %4523 = call ptr @strerror(i32 noundef %4522) #12
  %4524 = load i32, ptr %4503, align 4, !tbaa !5
  %4525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4515, ptr noundef nonnull %.str.5.sink2916, i32 noundef %4516, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 502, ptr noundef %4519, ptr noundef %4521, ptr noundef %4523, i32 noundef %4524) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4526:                                             ; preds = %4497
  %4527 = getelementptr inbounds i8, ptr %4324, i64 704
  %4528 = add nsw i32 %4498, 2
  store i32 %4528, ptr @test_count, align 4, !tbaa !5
  %4529 = load ptr, ptr %4527, align 8, !tbaa !74
  %4530 = icmp eq ptr %4529, null
  br i1 %4530, label %4555, label %4531

4531:                                             ; preds = %4526
  %4532 = tail call ptr @__errno_location() #13
  %4533 = load i32, ptr %4532, align 4, !tbaa !5
  %4534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4535 = call i32 @s2n_print_stacktrace(ptr noundef %4534) #12
  %4536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4537 = trunc nuw i8 %4536 to i1
  br i1 %4537, label %4538, label %4542

4538:                                             ; preds = %4531
  %4539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4540 = call i32 @fileno(ptr noundef %4539) #12
  %4541 = call i32 @isatty(i32 noundef %4540) #12
  %.not1020 = icmp eq i32 %4541, 0
  br i1 %.not1020, label %4542, label %4543

4542:                                             ; preds = %4538, %4531
  br label %4543

4543:                                             ; preds = %4538, %4542
  %.str.5.sink2927 = phi ptr [ @.str.5, %4542 ], [ @.str.2, %4538 ]
  store i32 %4533, ptr %4532, align 4, !tbaa !5
  %4544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4545 = load i32, ptr @test_count, align 4, !tbaa !5
  %4546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4547 = load i32, ptr %4546, align 4, !tbaa !5
  %4548 = call ptr @s2n_strerror(i32 noundef %4547, ptr noundef nonnull @.str.4) #12
  %4549 = load i32, ptr %4546, align 4, !tbaa !5
  %4550 = call ptr @s2n_strerror_debug(i32 noundef %4549, ptr noundef nonnull @.str.4) #12
  %4551 = load i32, ptr %4532, align 4, !tbaa !5
  %4552 = call ptr @strerror(i32 noundef %4551) #12
  %4553 = load i32, ptr %4532, align 4, !tbaa !5
  %4554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4544, ptr noundef nonnull %.str.5.sink2927, i32 noundef %4545, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.1, i32 noundef 505, ptr noundef %4548, ptr noundef %4550, ptr noundef %4552, i32 noundef %4553) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4555:                                             ; preds = %4526
  %4556 = add nsw i32 %4498, 3
  store i32 %4556, ptr @test_count, align 4, !tbaa !5
  %4557 = getelementptr inbounds i8, ptr %4324, i64 712
  %4558 = load ptr, ptr %4557, align 8, !tbaa !75
  %4559 = icmp eq ptr %4558, null
  br i1 %4559, label %4584, label %4560

4560:                                             ; preds = %4555
  %4561 = tail call ptr @__errno_location() #13
  %4562 = load i32, ptr %4561, align 4, !tbaa !5
  %4563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4564 = call i32 @s2n_print_stacktrace(ptr noundef %4563) #12
  %4565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4566 = trunc nuw i8 %4565 to i1
  br i1 %4566, label %4567, label %4571

4567:                                             ; preds = %4560
  %4568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4569 = call i32 @fileno(ptr noundef %4568) #12
  %4570 = call i32 @isatty(i32 noundef %4569) #12
  %.not1021 = icmp eq i32 %4570, 0
  br i1 %.not1021, label %4571, label %4572

4571:                                             ; preds = %4567, %4560
  br label %4572

4572:                                             ; preds = %4567, %4571
  %.str.5.sink2938 = phi ptr [ @.str.5, %4571 ], [ @.str.2, %4567 ]
  store i32 %4562, ptr %4561, align 4, !tbaa !5
  %4573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4574 = load i32, ptr @test_count, align 4, !tbaa !5
  %4575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4576 = load i32, ptr %4575, align 4, !tbaa !5
  %4577 = call ptr @s2n_strerror(i32 noundef %4576, ptr noundef nonnull @.str.4) #12
  %4578 = load i32, ptr %4575, align 4, !tbaa !5
  %4579 = call ptr @s2n_strerror_debug(i32 noundef %4578, ptr noundef nonnull @.str.4) #12
  %4580 = load i32, ptr %4561, align 4, !tbaa !5
  %4581 = call ptr @strerror(i32 noundef %4580) #12
  %4582 = load i32, ptr %4561, align 4, !tbaa !5
  %4583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4573, ptr noundef nonnull %.str.5.sink2938, i32 noundef %4574, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.1, i32 noundef 506, ptr noundef %4577, ptr noundef %4579, ptr noundef %4581, i32 noundef %4582) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4584:                                             ; preds = %4555
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #12
  store ptr null, ptr %48, align 8, !tbaa !9
  %4585 = add nsw i32 %4498, 4
  store i32 %4585, ptr @test_count, align 4, !tbaa !5
  %4586 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %4324, ptr noundef nonnull %48) #12
  %4587 = icmp eq i32 %4586, -1
  br i1 %4587, label %4588, label %4612

4588:                                             ; preds = %4584
  %4589 = tail call ptr @__errno_location() #13
  %4590 = load i32, ptr %4589, align 4, !tbaa !5
  %4591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4592 = call i32 @s2n_print_stacktrace(ptr noundef %4591) #12
  %4593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4594 = trunc nuw i8 %4593 to i1
  br i1 %4594, label %4595, label %4599

4595:                                             ; preds = %4588
  %4596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4597 = call i32 @fileno(ptr noundef %4596) #12
  %4598 = call i32 @isatty(i32 noundef %4597) #12
  %.not1032 = icmp eq i32 %4598, 0
  br i1 %.not1032, label %4599, label %4600

4599:                                             ; preds = %4595, %4588
  br label %4600

4600:                                             ; preds = %4595, %4599
  %.str.5.sink2949 = phi ptr [ @.str.5, %4599 ], [ @.str.2, %4595 ]
  store i32 %4590, ptr %4589, 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 nonnull @.str.4) #12
  %4606 = load i32, ptr %4603, align 4, !tbaa !5
  %4607 = call ptr @s2n_strerror_debug(i32 noundef %4606, ptr noundef nonnull @.str.4) #12
  %4608 = load i32, ptr %4589, align 4, !tbaa !5
  %4609 = call ptr @strerror(i32 noundef %4608) #12
  %4610 = load i32, ptr %4589, align 4, !tbaa !5
  %4611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4601, ptr noundef nonnull %.str.5.sink2949, i32 noundef %4602, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 509, ptr noundef %4605, ptr noundef %4607, ptr noundef %4609, i32 noundef %4610) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4612:                                             ; preds = %4584
  %4613 = load i32, ptr @test_count, align 4, !tbaa !5
  %4614 = add nsw i32 %4613, 1
  store i32 %4614, ptr @test_count, align 4, !tbaa !5
  %4615 = load ptr, ptr %48, align 8, !tbaa !9
  %4616 = icmp eq ptr %4615, null
  br i1 %4616, label %4617, label %4641

4617:                                             ; preds = %4612
  %4618 = tail call ptr @__errno_location() #13
  %4619 = load i32, ptr %4618, align 4, !tbaa !5
  %4620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4621 = call i32 @s2n_print_stacktrace(ptr noundef %4620) #12
  %4622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4623 = trunc nuw i8 %4622 to i1
  br i1 %4623, label %4624, label %4628

4624:                                             ; preds = %4617
  %4625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4626 = call i32 @fileno(ptr noundef %4625) #12
  %4627 = call i32 @isatty(i32 noundef %4626) #12
  %.not1031 = icmp eq i32 %4627, 0
  br i1 %.not1031, label %4628, label %4629

4628:                                             ; preds = %4624, %4617
  br label %4629

4629:                                             ; preds = %4624, %4628
  %.str.5.sink2960 = phi ptr [ @.str.5, %4628 ], [ @.str.2, %4624 ]
  store i32 %4619, ptr %4618, align 4, !tbaa !5
  %4630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4631 = load i32, ptr @test_count, align 4, !tbaa !5
  %4632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4633 = load i32, ptr %4632, align 4, !tbaa !5
  %4634 = call ptr @s2n_strerror(i32 noundef %4633, ptr noundef nonnull @.str.4) #12
  %4635 = load i32, ptr %4632, align 4, !tbaa !5
  %4636 = call ptr @s2n_strerror_debug(i32 noundef %4635, ptr noundef nonnull @.str.4) #12
  %4637 = load i32, ptr %4618, align 4, !tbaa !5
  %4638 = call ptr @strerror(i32 noundef %4637) #12
  %4639 = load i32, ptr %4618, align 4, !tbaa !5
  %4640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4630, ptr noundef nonnull %.str.5.sink2960, i32 noundef %4631, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.1, i32 noundef 510, ptr noundef %4634, ptr noundef %4636, ptr noundef %4638, i32 noundef %4639) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4641:                                             ; preds = %4612
  %4642 = getelementptr inbounds i8, ptr %4324, i64 832
  %4643 = add nsw i32 %4613, 2
  store i32 %4643, ptr @test_count, align 4, !tbaa !5
  %4644 = load ptr, ptr %4642, align 8, !tbaa !63
  %4645 = icmp eq ptr %4644, null
  br i1 %4645, label %4670, label %4646

4646:                                             ; preds = %4641
  %4647 = tail call ptr @__errno_location() #13
  %4648 = load i32, ptr %4647, align 4, !tbaa !5
  %4649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4650 = call i32 @s2n_print_stacktrace(ptr noundef %4649) #12
  %4651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4652 = trunc nuw i8 %4651 to i1
  br i1 %4652, label %4653, label %4657

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

4657:                                             ; preds = %4653, %4646
  br label %4658

4658:                                             ; preds = %4653, %4657
  %.str.5.sink2971 = phi ptr [ @.str.5, %4657 ], [ @.str.2, %4653 ]
  store i32 %4648, ptr %4647, align 4, !tbaa !5
  %4659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4660 = load i32, ptr @test_count, align 4, !tbaa !5
  %4661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4662 = load i32, ptr %4661, align 4, !tbaa !5
  %4663 = call ptr @s2n_strerror(i32 noundef %4662, ptr noundef nonnull @.str.4) #12
  %4664 = load i32, ptr %4661, align 4, !tbaa !5
  %4665 = call ptr @s2n_strerror_debug(i32 noundef %4664, ptr noundef nonnull @.str.4) #12
  %4666 = load i32, ptr %4647, align 4, !tbaa !5
  %4667 = call ptr @strerror(i32 noundef %4666) #12
  %4668 = load i32, ptr %4647, align 4, !tbaa !5
  %4669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4659, ptr noundef nonnull %.str.5.sink2971, i32 noundef %4660, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.1, i32 noundef 513, ptr noundef %4663, ptr noundef %4665, ptr noundef %4667, i32 noundef %4668) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4670:                                             ; preds = %4641
  %4671 = add nsw i32 %4613, 3
  store i32 %4671, ptr @test_count, align 4, !tbaa !5
  %4672 = getelementptr inbounds i8, ptr %4324, i64 928
  %4673 = load ptr, ptr %4672, align 8, !tbaa !71
  %4674 = icmp eq ptr %4673, null
  br i1 %4674, label %4699, label %4675

4675:                                             ; preds = %4670
  %4676 = tail call ptr @__errno_location() #13
  %4677 = load i32, ptr %4676, align 4, !tbaa !5
  %4678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4679 = call i32 @s2n_print_stacktrace(ptr noundef %4678) #12
  %4680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4681 = trunc nuw i8 %4680 to i1
  br i1 %4681, label %4682, label %4686

4682:                                             ; preds = %4675
  %4683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4684 = call i32 @fileno(ptr noundef %4683) #12
  %4685 = call i32 @isatty(i32 noundef %4684) #12
  %.not1023 = icmp eq i32 %4685, 0
  br i1 %.not1023, label %4686, label %4687

4686:                                             ; preds = %4682, %4675
  br label %4687

4687:                                             ; preds = %4682, %4686
  %.str.5.sink2982 = phi ptr [ @.str.5, %4686 ], [ @.str.2, %4682 ]
  store i32 %4677, ptr %4676, align 4, !tbaa !5
  %4688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4689 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4691, ptr noundef nonnull @.str.4) #12
  %4693 = load i32, ptr %4690, align 4, !tbaa !5
  %4694 = call ptr @s2n_strerror_debug(i32 noundef %4693, ptr noundef nonnull @.str.4) #12
  %4695 = load i32, ptr %4676, align 4, !tbaa !5
  %4696 = call ptr @strerror(i32 noundef %4695) #12
  %4697 = load i32, ptr %4676, align 4, !tbaa !5
  %4698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4688, ptr noundef nonnull %.str.5.sink2982, i32 noundef %4689, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.1, i32 noundef 514, ptr noundef %4692, ptr noundef %4694, ptr noundef %4696, i32 noundef %4697) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4699:                                             ; preds = %4670
  %4700 = add nsw i32 %4613, 4
  store i32 %4700, ptr @test_count, align 4, !tbaa !5
  %4701 = getelementptr inbounds i8, ptr %4324, i64 936
  %4702 = load ptr, ptr %4701, align 8, !tbaa !73
  %4703 = icmp eq ptr %4702, null
  br i1 %4703, label %4728, label %4704

4704:                                             ; preds = %4699
  %4705 = tail call ptr @__errno_location() #13
  %4706 = load i32, ptr %4705, align 4, !tbaa !5
  %4707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4708 = call i32 @s2n_print_stacktrace(ptr noundef %4707) #12
  %4709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4710 = trunc nuw i8 %4709 to i1
  br i1 %4710, label %4711, label %4715

4711:                                             ; preds = %4704
  %4712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4713 = call i32 @fileno(ptr noundef %4712) #12
  %4714 = call i32 @isatty(i32 noundef %4713) #12
  %.not1024 = icmp eq i32 %4714, 0
  br i1 %.not1024, label %4715, label %4716

4715:                                             ; preds = %4711, %4704
  br label %4716

4716:                                             ; preds = %4711, %4715
  %.str.5.sink2993 = phi ptr [ @.str.5, %4715 ], [ @.str.2, %4711 ]
  store i32 %4706, ptr %4705, align 4, !tbaa !5
  %4717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4718 = load i32, ptr @test_count, align 4, !tbaa !5
  %4719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4720 = load i32, ptr %4719, align 4, !tbaa !5
  %4721 = call ptr @s2n_strerror(i32 noundef %4720, ptr noundef nonnull @.str.4) #12
  %4722 = load i32, ptr %4719, align 4, !tbaa !5
  %4723 = call ptr @s2n_strerror_debug(i32 noundef %4722, ptr noundef nonnull @.str.4) #12
  %4724 = load i32, ptr %4705, align 4, !tbaa !5
  %4725 = call ptr @strerror(i32 noundef %4724) #12
  %4726 = load i32, ptr %4705, align 4, !tbaa !5
  %4727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4717, ptr noundef nonnull %.str.5.sink2993, i32 noundef %4718, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.1, i32 noundef 515, ptr noundef %4721, ptr noundef %4723, ptr noundef %4725, i32 noundef %4726) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4728:                                             ; preds = %4699
  %4729 = add nsw i32 %4613, 5
  store i32 %4729, ptr @test_count, align 4, !tbaa !5
  %4730 = getelementptr inbounds i8, ptr %4324, i64 840
  %4731 = load ptr, ptr %4730, align 8, !tbaa !64
  %4732 = icmp eq ptr %4731, null
  br i1 %4732, label %4757, label %4733

4733:                                             ; preds = %4728
  %4734 = tail call ptr @__errno_location() #13
  %4735 = load i32, ptr %4734, align 4, !tbaa !5
  %4736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4737 = call i32 @s2n_print_stacktrace(ptr noundef %4736) #12
  %4738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4739 = trunc nuw i8 %4738 to i1
  br i1 %4739, label %4740, label %4744

4740:                                             ; preds = %4733
  %4741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4742 = call i32 @fileno(ptr noundef %4741) #12
  %4743 = call i32 @isatty(i32 noundef %4742) #12
  %.not1025 = icmp eq i32 %4743, 0
  br i1 %.not1025, label %4744, label %4745

4744:                                             ; preds = %4740, %4733
  br label %4745

4745:                                             ; preds = %4740, %4744
  %.str.5.sink3004 = phi ptr [ @.str.5, %4744 ], [ @.str.2, %4740 ]
  store i32 %4735, ptr %4734, align 4, !tbaa !5
  %4746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4747 = load i32, ptr @test_count, align 4, !tbaa !5
  %4748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4749 = load i32, ptr %4748, align 4, !tbaa !5
  %4750 = call ptr @s2n_strerror(i32 noundef %4749, ptr noundef nonnull @.str.4) #12
  %4751 = load i32, ptr %4748, align 4, !tbaa !5
  %4752 = call ptr @s2n_strerror_debug(i32 noundef %4751, ptr noundef nonnull @.str.4) #12
  %4753 = load i32, ptr %4734, align 4, !tbaa !5
  %4754 = call ptr @strerror(i32 noundef %4753) #12
  %4755 = load i32, ptr %4734, align 4, !tbaa !5
  %4756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4746, ptr noundef nonnull %.str.5.sink3004, i32 noundef %4747, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.1, i32 noundef 516, ptr noundef %4750, ptr noundef %4752, ptr noundef %4754, i32 noundef %4755) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4757:                                             ; preds = %4728
  %4758 = add nsw i32 %4613, 6
  store i32 %4758, ptr @test_count, align 4, !tbaa !5
  %4759 = getelementptr inbounds i8, ptr %4324, i64 848
  %4760 = load ptr, ptr %4759, align 8, !tbaa !93
  %4761 = icmp eq ptr %4760, null
  br i1 %4761, label %4786, label %4762

4762:                                             ; preds = %4757
  %4763 = tail call ptr @__errno_location() #13
  %4764 = load i32, ptr %4763, align 4, !tbaa !5
  %4765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4766 = call i32 @s2n_print_stacktrace(ptr noundef %4765) #12
  %4767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4768 = trunc nuw i8 %4767 to i1
  br i1 %4768, label %4769, label %4773

4769:                                             ; preds = %4762
  %4770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4771 = call i32 @fileno(ptr noundef %4770) #12
  %4772 = call i32 @isatty(i32 noundef %4771) #12
  %.not1026 = icmp eq i32 %4772, 0
  br i1 %.not1026, label %4773, label %4774

4773:                                             ; preds = %4769, %4762
  br label %4774

4774:                                             ; preds = %4769, %4773
  %.str.5.sink3015 = phi ptr [ @.str.5, %4773 ], [ @.str.2, %4769 ]
  store i32 %4764, ptr %4763, align 4, !tbaa !5
  %4775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4776 = load i32, ptr @test_count, align 4, !tbaa !5
  %4777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4778 = load i32, ptr %4777, align 4, !tbaa !5
  %4779 = call ptr @s2n_strerror(i32 noundef %4778, ptr noundef nonnull @.str.4) #12
  %4780 = load i32, ptr %4777, align 4, !tbaa !5
  %4781 = call ptr @s2n_strerror_debug(i32 noundef %4780, ptr noundef nonnull @.str.4) #12
  %4782 = load i32, ptr %4763, align 4, !tbaa !5
  %4783 = call ptr @strerror(i32 noundef %4782) #12
  %4784 = load i32, ptr %4763, align 4, !tbaa !5
  %4785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4775, ptr noundef nonnull %.str.5.sink3015, i32 noundef %4776, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.1, i32 noundef 517, ptr noundef %4779, ptr noundef %4781, ptr noundef %4783, i32 noundef %4784) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4786:                                             ; preds = %4757
  %4787 = add nsw i32 %4613, 7
  store i32 %4787, ptr @test_count, align 4, !tbaa !5
  %4788 = getelementptr inbounds i8, ptr %4324, i64 856
  %4789 = load i32, ptr %4788, align 8, !tbaa !94
  %4790 = icmp eq i32 %4789, 0
  br i1 %4790, label %4815, label %4791

4791:                                             ; preds = %4786
  %4792 = tail call ptr @__errno_location() #13
  %4793 = load i32, ptr %4792, align 4, !tbaa !5
  %4794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4795 = call i32 @s2n_print_stacktrace(ptr noundef %4794) #12
  %4796 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4797 = trunc nuw i8 %4796 to i1
  br i1 %4797, label %4798, label %4802

4798:                                             ; preds = %4791
  %4799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4800 = call i32 @fileno(ptr noundef %4799) #12
  %4801 = call i32 @isatty(i32 noundef %4800) #12
  %.not1027 = icmp eq i32 %4801, 0
  br i1 %.not1027, label %4802, label %4803

4802:                                             ; preds = %4798, %4791
  br label %4803

4803:                                             ; preds = %4798, %4802
  %.str.5.sink3026 = phi ptr [ @.str.5, %4802 ], [ @.str.2, %4798 ]
  store i32 %4793, ptr %4792, align 4, !tbaa !5
  %4804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4805 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4807, ptr noundef nonnull @.str.4) #12
  %4809 = load i32, ptr %4806, align 4, !tbaa !5
  %4810 = call ptr @s2n_strerror_debug(i32 noundef %4809, ptr noundef nonnull @.str.4) #12
  %4811 = load i32, ptr %4792, align 4, !tbaa !5
  %4812 = call ptr @strerror(i32 noundef %4811) #12
  %4813 = load i32, ptr %4792, align 4, !tbaa !5
  %4814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4804, ptr noundef nonnull %.str.5.sink3026, i32 noundef %4805, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.1, i32 noundef 518, ptr noundef %4808, ptr noundef %4810, ptr noundef %4812, i32 noundef %4813) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4815:                                             ; preds = %4786
  %4816 = add nsw i32 %4613, 8
  store i32 %4816, ptr @test_count, align 4, !tbaa !5
  %4817 = getelementptr inbounds i8, ptr %4324, i64 860
  %4818 = load i32, ptr %4817, align 4, !tbaa !95
  %4819 = icmp eq i32 %4818, 0
  br i1 %4819, label %4844, label %4820

4820:                                             ; preds = %4815
  %4821 = tail call ptr @__errno_location() #13
  %4822 = load i32, ptr %4821, align 4, !tbaa !5
  %4823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4824 = call i32 @s2n_print_stacktrace(ptr noundef %4823) #12
  %4825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4826 = trunc nuw i8 %4825 to i1
  br i1 %4826, label %4827, label %4831

4827:                                             ; preds = %4820
  %4828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4829 = call i32 @fileno(ptr noundef %4828) #12
  %4830 = call i32 @isatty(i32 noundef %4829) #12
  %.not1028 = icmp eq i32 %4830, 0
  br i1 %.not1028, label %4831, label %4832

4831:                                             ; preds = %4827, %4820
  br label %4832

4832:                                             ; preds = %4827, %4831
  %.str.5.sink3037 = phi ptr [ @.str.5, %4831 ], [ @.str.2, %4827 ]
  store i32 %4822, ptr %4821, align 4, !tbaa !5
  %4833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4834 = load i32, ptr @test_count, align 4, !tbaa !5
  %4835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4836 = load i32, ptr %4835, align 4, !tbaa !5
  %4837 = call ptr @s2n_strerror(i32 noundef %4836, ptr noundef nonnull @.str.4) #12
  %4838 = load i32, ptr %4835, align 4, !tbaa !5
  %4839 = call ptr @s2n_strerror_debug(i32 noundef %4838, ptr noundef nonnull @.str.4) #12
  %4840 = load i32, ptr %4821, align 4, !tbaa !5
  %4841 = call ptr @strerror(i32 noundef %4840) #12
  %4842 = load i32, ptr %4821, align 4, !tbaa !5
  %4843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4833, ptr noundef nonnull %.str.5.sink3037, i32 noundef %4834, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.1, i32 noundef 519, ptr noundef %4837, ptr noundef %4839, ptr noundef %4841, i32 noundef %4842) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4844:                                             ; preds = %4815
  %4845 = add nsw i32 %4613, 9
  store i32 %4845, ptr @test_count, align 4, !tbaa !5
  %4846 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef nonnull %4324) #12
  br i1 %4846, label %4871, label %4847

4847:                                             ; preds = %4844
  %4848 = tail call ptr @__errno_location() #13
  %4849 = load i32, ptr %4848, align 4, !tbaa !5
  %4850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4851 = call i32 @s2n_print_stacktrace(ptr noundef %4850) #12
  %4852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4853 = trunc nuw i8 %4852 to i1
  br i1 %4853, label %4854, label %4858

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
  %.not1029 = icmp eq i32 %4857, 0
  br i1 %.not1029, label %4858, label %4859

4858:                                             ; preds = %4854, %4847
  br label %4859

4859:                                             ; preds = %4854, %4858
  %.str.5.sink3048 = phi ptr [ @.str.5, %4858 ], [ @.str.2, %4854 ]
  store i32 %4849, ptr %4848, align 4, !tbaa !5
  %4860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4861 = load i32, ptr @test_count, align 4, !tbaa !5
  %4862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4863 = load i32, ptr %4862, align 4, !tbaa !5
  %4864 = call ptr @s2n_strerror(i32 noundef %4863, ptr noundef nonnull @.str.4) #12
  %4865 = load i32, ptr %4862, align 4, !tbaa !5
  %4866 = call ptr @s2n_strerror_debug(i32 noundef %4865, ptr noundef nonnull @.str.4) #12
  %4867 = load i32, ptr %4848, align 4, !tbaa !5
  %4868 = call ptr @strerror(i32 noundef %4867) #12
  %4869 = load i32, ptr %4848, align 4, !tbaa !5
  %4870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4860, ptr noundef nonnull %.str.5.sink3048, i32 noundef %4861, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.1, i32 noundef 522, ptr noundef %4864, ptr noundef %4866, ptr noundef %4868, i32 noundef %4869) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4871:                                             ; preds = %4844
  %4872 = load i32, ptr @test_count, align 4, !tbaa !5
  %4873 = add nsw i32 %4872, 1
  store i32 %4873, ptr @test_count, align 4, !tbaa !5
  %4874 = call i32 @s2n_connection_free(ptr noundef nonnull %4324) #12
  %4875 = icmp eq i32 %4874, -1
  br i1 %4875, label %4876, label %4900

4876:                                             ; preds = %4871
  %4877 = tail call ptr @__errno_location() #13
  %4878 = load i32, ptr %4877, align 4, !tbaa !5
  %4879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4880 = call i32 @s2n_print_stacktrace(ptr noundef %4879) #12
  %4881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4882 = trunc nuw i8 %4881 to i1
  br i1 %4882, label %4883, label %4887

4883:                                             ; preds = %4876
  %4884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4885 = call i32 @fileno(ptr noundef %4884) #12
  %4886 = call i32 @isatty(i32 noundef %4885) #12
  %.not1030 = icmp eq i32 %4886, 0
  br i1 %.not1030, label %4887, label %4888

4887:                                             ; preds = %4883, %4876
  br label %4888

4888:                                             ; preds = %4883, %4887
  %.str.5.sink3059 = phi ptr [ @.str.5, %4887 ], [ @.str.2, %4883 ]
  store i32 %4878, ptr %4877, align 4, !tbaa !5
  %4889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4890 = load i32, ptr @test_count, align 4, !tbaa !5
  %4891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4892 = load i32, ptr %4891, align 4, !tbaa !5
  %4893 = call ptr @s2n_strerror(i32 noundef %4892, ptr noundef nonnull @.str.4) #12
  %4894 = load i32, ptr %4891, align 4, !tbaa !5
  %4895 = call ptr @s2n_strerror_debug(i32 noundef %4894, ptr noundef nonnull @.str.4) #12
  %4896 = load i32, ptr %4877, align 4, !tbaa !5
  %4897 = call ptr @strerror(i32 noundef %4896) #12
  %4898 = load i32, ptr %4877, align 4, !tbaa !5
  %4899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4889, ptr noundef nonnull %.str.5.sink3059, i32 noundef %4890, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 524, ptr noundef %4893, ptr noundef %4895, ptr noundef %4897, i32 noundef %4898) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4900:                                             ; preds = %4871
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #12
  %4901 = call i32 @s2n_stuffer_free(ptr noundef nonnull %46) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %46) #12
  br label %4902

4902:                                             ; preds = %4900, %4319
  %4903 = call zeroext i1 @s2n_pq_is_enabled() #12
  br i1 %4903, label %.preheader1326, label %9353

4904:                                             ; preds = %5712
  %4905 = load i32, ptr @test_count, align 4, !tbaa !5
  %4906 = add nsw i32 %4905, 1
  store i32 %4906, ptr @test_count, align 4, !tbaa !5
  %4907 = load ptr, ptr %152, align 8, !tbaa !22
  %4908 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %4907, ptr noundef nonnull %3) #12
  %4909 = call zeroext i1 @s2n_result_is_ok(i32 %4908)
  br i1 %4909, label %5737, label %5713

.preheader1326:                                   ; preds = %4902, %5712
  %.09591336 = phi i64 [ %4912, %5712 ], [ 0, %4902 ]
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %49) #12
  %4910 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %.09591336
  %4911 = load ptr, ptr %4910, align 8, !tbaa !9
  store ptr %4911, ptr %49, align 16, !tbaa !9
  %4912 = add nuw nsw i64 %.09591336, 1
  %4913 = and i64 %4912, 7
  %4914 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %4913
  %4915 = load ptr, ptr %4914, align 8, !tbaa !9
  store ptr %4915, ptr %227, align 8, !tbaa !9
  %4916 = add nuw nsw i64 %.09591336, 2
  %4917 = and i64 %4916, 7
  %4918 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %4917
  %4919 = load ptr, ptr %4918, align 8, !tbaa !9
  store ptr %4919, ptr %228, align 16, !tbaa !9
  %4920 = add nuw nsw i64 %.09591336, 3
  %4921 = and i64 %4920, 7
  %4922 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %4921
  %4923 = load ptr, ptr %4922, align 8, !tbaa !9
  store ptr %4923, ptr %229, align 8, !tbaa !9
  %4924 = and i64 %.09591336, 7
  %4925 = xor i64 %4924, 4
  %4926 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %4925
  %4927 = load ptr, ptr %4926, align 8, !tbaa !9
  store ptr %4927, ptr %230, align 16, !tbaa !9
  %4928 = add nuw nsw i64 %.09591336, 5
  %4929 = and i64 %4928, 7
  %4930 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %4929
  %4931 = load ptr, ptr %4930, align 8, !tbaa !9
  store ptr %4931, ptr %231, align 8, !tbaa !9
  %4932 = add nuw nsw i64 %.09591336, 6
  %4933 = and i64 %4932, 7
  %4934 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %4933
  %4935 = load ptr, ptr %4934, align 8, !tbaa !9
  store ptr %4935, ptr %232, align 16, !tbaa !9
  %4936 = add nuw nsw i64 %.09591336, 7
  %4937 = and i64 %4936, 7
  %4938 = getelementptr inbounds [8 x ptr], ptr @ALL_SUPPORTED_KEM_GROUPS, i64 0, i64 %4937
  %4939 = load ptr, ptr %4938, align 8, !tbaa !9
  store ptr %4939, ptr %233, align 8, !tbaa !9
  %4940 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %4911) #12
  br i1 %4940, label %4941, label %5712

4941:                                             ; preds = %.preheader1326
  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)
  store i8 8, ptr %184, align 8, !tbaa !15
  store ptr %49, ptr %185, align 8, !tbaa !17
  store i8 %265, ptr %186, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %51) #12
  store i8 30, ptr %51, align 8, !tbaa !19
  store ptr @cipher_preferences_test_all_tls13, ptr %187, align 8, !tbaa !21
  store ptr %50, ptr %188, align 8, !tbaa !22
  store ptr @s2n_signature_preferences_20200207, ptr %189, align 8, !tbaa !23
  store ptr null, ptr %190, align 8, !tbaa !24
  store ptr @s2n_ecc_preferences_20200310, ptr %191, align 8, !tbaa !25
  store ptr null, ptr %192, align 8, !tbaa !26
  store i8 0, ptr %193, align 8, !tbaa !27
  store i16 0, ptr %194, align 1
  %4942 = load i32, ptr @test_count, align 4, !tbaa !5
  %4943 = add nsw i32 %4942, 1
  store i32 %4943, ptr @test_count, align 4, !tbaa !5
  %4944 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %4945 = icmp eq ptr %4944, null
  br i1 %4945, label %4946, label %4970

4946:                                             ; preds = %4941
  %4947 = tail call ptr @__errno_location() #13
  %4948 = load i32, ptr %4947, align 4, !tbaa !5
  %4949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4950 = call i32 @s2n_print_stacktrace(ptr noundef %4949) #12
  %4951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4952 = trunc nuw i8 %4951 to i1
  br i1 %4952, label %4953, label %4957

4953:                                             ; preds = %4946
  %4954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4955 = call i32 @fileno(ptr noundef %4954) #12
  %4956 = call i32 @isatty(i32 noundef %4955) #12
  %.not1188 = icmp eq i32 %4956, 0
  br i1 %.not1188, label %4957, label %4958

4957:                                             ; preds = %4953, %4946
  br label %4958

4958:                                             ; preds = %4953, %4957
  %.str.5.sink3070 = phi ptr [ @.str.5, %4957 ], [ @.str.2, %4953 ]
  store i32 %4948, ptr %4947, align 4, !tbaa !5
  %4959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4960 = load i32, ptr @test_count, align 4, !tbaa !5
  %4961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4962 = load i32, ptr %4961, align 4, !tbaa !5
  %4963 = call ptr @s2n_strerror(i32 noundef %4962, ptr noundef nonnull @.str.4) #12
  %4964 = load i32, ptr %4961, align 4, !tbaa !5
  %4965 = call ptr @s2n_strerror_debug(i32 noundef %4964, ptr noundef nonnull @.str.4) #12
  %4966 = load i32, ptr %4947, align 4, !tbaa !5
  %4967 = call ptr @strerror(i32 noundef %4966) #12
  %4968 = load i32, ptr %4947, align 4, !tbaa !5
  %4969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4959, ptr noundef nonnull %.str.5.sink3070, i32 noundef %4960, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.1, i32 noundef 563, ptr noundef %4963, ptr noundef %4965, ptr noundef %4967, i32 noundef %4968) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4970:                                             ; preds = %4941
  %4971 = getelementptr inbounds i8, ptr %4944, i64 16
  store ptr %51, ptr %4971, align 8, !tbaa !28
  %4972 = load i32, ptr @test_count, align 4, !tbaa !5
  %4973 = add nsw i32 %4972, 1
  store i32 %4973, ptr @test_count, align 4, !tbaa !5
  %4974 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %4975 = icmp eq ptr %4974, null
  br i1 %4975, label %4976, label %5000

4976:                                             ; preds = %4970
  %4977 = tail call ptr @__errno_location() #13
  %4978 = load i32, ptr %4977, align 4, !tbaa !5
  %4979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4980 = call i32 @s2n_print_stacktrace(ptr noundef %4979) #12
  %4981 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4982 = trunc nuw i8 %4981 to i1
  br i1 %4982, label %4983, label %4987

4983:                                             ; preds = %4976
  %4984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4985 = call i32 @fileno(ptr noundef %4984) #12
  %4986 = call i32 @isatty(i32 noundef %4985) #12
  %.not1187 = icmp eq i32 %4986, 0
  br i1 %.not1187, label %4987, label %4988

4987:                                             ; preds = %4983, %4976
  br label %4988

4988:                                             ; preds = %4983, %4987
  %.str.5.sink3081 = phi ptr [ @.str.5, %4987 ], [ @.str.2, %4983 ]
  store i32 %4978, ptr %4977, align 4, !tbaa !5
  %4989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4990 = load i32, ptr @test_count, align 4, !tbaa !5
  %4991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4992 = load i32, ptr %4991, align 4, !tbaa !5
  %4993 = call ptr @s2n_strerror(i32 noundef %4992, ptr noundef nonnull @.str.4) #12
  %4994 = load i32, ptr %4991, align 4, !tbaa !5
  %4995 = call ptr @s2n_strerror_debug(i32 noundef %4994, ptr noundef nonnull @.str.4) #12
  %4996 = load i32, ptr %4977, align 4, !tbaa !5
  %4997 = call ptr @strerror(i32 noundef %4996) #12
  %4998 = load i32, ptr %4977, align 4, !tbaa !5
  %4999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4989, ptr noundef nonnull %.str.5.sink3081, i32 noundef %4990, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 566, ptr noundef %4993, ptr noundef %4995, ptr noundef %4997, i32 noundef %4998) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5000:                                             ; preds = %4970
  %5001 = getelementptr inbounds i8, ptr %4974, i64 220
  store i8 34, ptr %5001, align 4, !tbaa !79
  %5002 = getelementptr inbounds i8, ptr %4974, i64 16
  store ptr %2, ptr %5002, align 8, !tbaa !28
  %5003 = load i32, ptr @test_count, align 4, !tbaa !5
  %5004 = add nsw i32 %5003, 1
  store i32 %5004, ptr @test_count, align 4, !tbaa !5
  %5005 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %4974) #12
  %5006 = call zeroext i1 @s2n_result_is_ok(i32 %5005)
  br i1 %5006, label %5031, label %5007

5007:                                             ; preds = %5000
  %5008 = tail call ptr @__errno_location() #13
  %5009 = load i32, ptr %5008, align 4, !tbaa !5
  %5010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5011 = call i32 @s2n_print_stacktrace(ptr noundef %5010) #12
  %5012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5013 = trunc nuw i8 %5012 to i1
  br i1 %5013, label %5014, label %5018

5014:                                             ; preds = %5007
  %5015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5016 = call i32 @fileno(ptr noundef %5015) #12
  %5017 = call i32 @isatty(i32 noundef %5016) #12
  %.not1160 = icmp eq i32 %5017, 0
  br i1 %.not1160, label %5018, label %5019

5018:                                             ; preds = %5014, %5007
  br label %5019

5019:                                             ; preds = %5014, %5018
  %.str.5.sink3092 = phi ptr [ @.str.5, %5018 ], [ @.str.2, %5014 ]
  store i32 %5009, ptr %5008, align 4, !tbaa !5
  %5020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5021 = load i32, ptr @test_count, align 4, !tbaa !5
  %5022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5023 = load i32, ptr %5022, align 4, !tbaa !5
  %5024 = call ptr @s2n_strerror(i32 noundef %5023, ptr noundef nonnull @.str.4) #12
  %5025 = load i32, ptr %5022, align 4, !tbaa !5
  %5026 = call ptr @s2n_strerror_debug(i32 noundef %5025, ptr noundef nonnull @.str.4) #12
  %5027 = load i32, ptr %5008, align 4, !tbaa !5
  %5028 = call ptr @strerror(i32 noundef %5027) #12
  %5029 = load i32, ptr %5008, align 4, !tbaa !5
  %5030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5020, ptr noundef nonnull %.str.5.sink3092, i32 noundef %5021, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 570, ptr noundef %5024, ptr noundef %5026, ptr noundef %5028, i32 noundef %5029) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5031:                                             ; preds = %5000
  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)
  %5032 = load i32, ptr @test_count, align 4, !tbaa !5
  %5033 = add nsw i32 %5032, 1
  store i32 %5033, ptr @test_count, align 4, !tbaa !5
  %5034 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %52, i32 noundef 8192) #12
  %5035 = icmp eq i32 %5034, -1
  br i1 %5035, label %5036, label %5060

5036:                                             ; preds = %5031
  %5037 = tail call ptr @__errno_location() #13
  %5038 = load i32, ptr %5037, align 4, !tbaa !5
  %5039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5040 = call i32 @s2n_print_stacktrace(ptr noundef %5039) #12
  %5041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5042 = trunc nuw i8 %5041 to i1
  br i1 %5042, label %5043, label %5047

5043:                                             ; preds = %5036
  %5044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5045 = call i32 @fileno(ptr noundef %5044) #12
  %5046 = call i32 @isatty(i32 noundef %5045) #12
  %.not1186 = icmp eq i32 %5046, 0
  br i1 %.not1186, label %5047, label %5048

5047:                                             ; preds = %5043, %5036
  br label %5048

5048:                                             ; preds = %5043, %5047
  %.str.5.sink3103 = phi ptr [ @.str.5, %5047 ], [ @.str.2, %5043 ]
  store i32 %5038, ptr %5037, align 4, !tbaa !5
  %5049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5050 = load i32, ptr @test_count, align 4, !tbaa !5
  %5051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5052 = load i32, ptr %5051, align 4, !tbaa !5
  %5053 = call ptr @s2n_strerror(i32 noundef %5052, ptr noundef nonnull @.str.4) #12
  %5054 = load i32, ptr %5051, align 4, !tbaa !5
  %5055 = call ptr @s2n_strerror_debug(i32 noundef %5054, ptr noundef nonnull @.str.4) #12
  %5056 = load i32, ptr %5037, align 4, !tbaa !5
  %5057 = call ptr @strerror(i32 noundef %5056) #12
  %5058 = load i32, ptr %5037, align 4, !tbaa !5
  %5059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5049, ptr noundef nonnull %.str.5.sink3103, i32 noundef %5050, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 573, ptr noundef %5053, ptr noundef %5055, ptr noundef %5057, i32 noundef %5058) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5060:                                             ; preds = %5031
  %5061 = load i32, ptr @test_count, align 4, !tbaa !5
  %5062 = add nsw i32 %5061, 1
  store i32 %5062, ptr @test_count, align 4, !tbaa !5
  %5063 = call i32 %159(ptr noundef nonnull %4944, ptr noundef nonnull %52) #12
  %5064 = icmp eq i32 %5063, -1
  br i1 %5064, label %5065, label %5089

5065:                                             ; preds = %5060
  %5066 = tail call ptr @__errno_location() #13
  %5067 = load i32, ptr %5066, align 4, !tbaa !5
  %5068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5069 = call i32 @s2n_print_stacktrace(ptr noundef %5068) #12
  %5070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5071 = trunc nuw i8 %5070 to i1
  br i1 %5071, label %5072, label %5076

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

5076:                                             ; preds = %5072, %5065
  br label %5077

5077:                                             ; preds = %5072, %5076
  %.str.5.sink3114 = phi ptr [ @.str.5, %5076 ], [ @.str.2, %5072 ]
  store i32 %5067, ptr %5066, align 4, !tbaa !5
  %5078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5079 = load i32, ptr @test_count, align 4, !tbaa !5
  %5080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5081 = load i32, ptr %5080, align 4, !tbaa !5
  %5082 = call ptr @s2n_strerror(i32 noundef %5081, ptr noundef nonnull @.str.4) #12
  %5083 = load i32, ptr %5080, align 4, !tbaa !5
  %5084 = call ptr @s2n_strerror_debug(i32 noundef %5083, ptr noundef nonnull @.str.4) #12
  %5085 = load i32, ptr %5066, align 4, !tbaa !5
  %5086 = call ptr @strerror(i32 noundef %5085) #12
  %5087 = load i32, ptr %5066, align 4, !tbaa !5
  %5088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5078, ptr noundef nonnull %.str.5.sink3114, i32 noundef %5079, ptr noundef nonnull @.str.119, ptr noundef nonnull @.str.1, i32 noundef 575, ptr noundef %5082, ptr noundef %5084, ptr noundef %5086, i32 noundef %5087) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5089:                                             ; preds = %5060
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %53) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %53, i8 0, i64 24, i1 false)
  %5090 = load i32, ptr @test_count, align 4, !tbaa !5
  %5091 = add nsw i32 %5090, 1
  store i32 %5091, ptr @test_count, align 4, !tbaa !5
  %5092 = getelementptr inbounds i8, ptr %4944, i64 832
  %5093 = load ptr, ptr %5092, align 8, !tbaa !88
  %5094 = call i32 @s2n_copy_pq_share(ptr noundef nonnull %52, ptr noundef nonnull %53, ptr noundef %5093, i1 noundef zeroext %263)
  %5095 = icmp eq i32 %5094, -1
  br i1 %5095, label %5096, label %5120

5096:                                             ; preds = %5089
  %5097 = tail call ptr @__errno_location() #13
  %5098 = load i32, ptr %5097, 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 = %5096
  %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
  %.not1184 = icmp eq i32 %5106, 0
  br i1 %.not1184, label %5107, label %5108

5107:                                             ; preds = %5103, %5096
  br label %5108

5108:                                             ; preds = %5103, %5107
  %.str.5.sink3125 = phi ptr [ @.str.5, %5107 ], [ @.str.2, %5103 ]
  store i32 %5098, ptr %5097, align 4, !tbaa !5
  %5109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5110 = load i32, ptr @test_count, align 4, !tbaa !5
  %5111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5112 = load i32, ptr %5111, align 4, !tbaa !5
  %5113 = call ptr @s2n_strerror(i32 noundef %5112, ptr noundef nonnull @.str.4) #12
  %5114 = load i32, ptr %5111, align 4, !tbaa !5
  %5115 = call ptr @s2n_strerror_debug(i32 noundef %5114, ptr noundef nonnull @.str.4) #12
  %5116 = load i32, ptr %5097, align 4, !tbaa !5
  %5117 = call ptr @strerror(i32 noundef %5116) #12
  %5118 = load i32, ptr %5097, align 4, !tbaa !5
  %5119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5109, ptr noundef nonnull %.str.5.sink3125, i32 noundef %5110, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.1, i32 noundef 581, ptr noundef %5113, ptr noundef %5115, ptr noundef %5117, i32 noundef %5118) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5120:                                             ; preds = %5089
  %5121 = load i32, ptr @test_count, align 4, !tbaa !5
  %5122 = add nsw i32 %5121, 1
  store i32 %5122, ptr @test_count, align 4, !tbaa !5
  %5123 = call i32 %181(ptr noundef nonnull %4974, ptr noundef nonnull %52) #12
  %5124 = icmp eq i32 %5123, -1
  br i1 %5124, label %5125, label %5149

5125:                                             ; preds = %5120
  %5126 = tail call ptr @__errno_location() #13
  %5127 = load i32, ptr %5126, align 4, !tbaa !5
  %5128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5129 = call i32 @s2n_print_stacktrace(ptr noundef %5128) #12
  %5130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5131 = trunc nuw i8 %5130 to i1
  br i1 %5131, label %5132, label %5136

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
  %.not1183 = icmp eq i32 %5135, 0
  br i1 %.not1183, label %5136, label %5137

5136:                                             ; preds = %5132, %5125
  br label %5137

5137:                                             ; preds = %5132, %5136
  %.str.5.sink3136 = phi ptr [ @.str.5, %5136 ], [ @.str.2, %5132 ]
  store i32 %5127, ptr %5126, align 4, !tbaa !5
  %5138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5139 = load i32, ptr @test_count, align 4, !tbaa !5
  %5140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5141 = load i32, ptr %5140, align 4, !tbaa !5
  %5142 = call ptr @s2n_strerror(i32 noundef %5141, ptr noundef nonnull @.str.4) #12
  %5143 = load i32, ptr %5140, align 4, !tbaa !5
  %5144 = call ptr @s2n_strerror_debug(i32 noundef %5143, ptr noundef nonnull @.str.4) #12
  %5145 = load i32, ptr %5126, align 4, !tbaa !5
  %5146 = call ptr @strerror(i32 noundef %5145) #12
  %5147 = load i32, ptr %5126, align 4, !tbaa !5
  %5148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5138, ptr noundef nonnull %.str.5.sink3136, i32 noundef %5139, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 583, ptr noundef %5142, ptr noundef %5144, ptr noundef %5146, i32 noundef %5147) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5149:                                             ; preds = %5120
  %5150 = load i32, ptr @test_count, align 4, !tbaa !5
  %5151 = add nsw i32 %5150, 1
  store i32 %5151, ptr @test_count, align 4, !tbaa !5
  %5152 = load i32, ptr %195, align 4, !tbaa !56
  %5153 = load i32, ptr %196, align 8, !tbaa !57
  %5154 = icmp eq i32 %5152, %5153
  br i1 %5154, label %5179, label %5155

5155:                                             ; preds = %5149
  %5156 = tail call ptr @__errno_location() #13
  %5157 = load i32, ptr %5156, align 4, !tbaa !5
  %5158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5159 = call i32 @s2n_print_stacktrace(ptr noundef %5158) #12
  %5160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5161 = trunc nuw i8 %5160 to i1
  br i1 %5161, label %5162, label %5166

5162:                                             ; preds = %5155
  %5163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5164 = call i32 @fileno(ptr noundef %5163) #12
  %5165 = call i32 @isatty(i32 noundef %5164) #12
  %.not1161 = icmp eq i32 %5165, 0
  br i1 %.not1161, label %5166, label %5167

5166:                                             ; preds = %5162, %5155
  br label %5167

5167:                                             ; preds = %5162, %5166
  %.str.5.sink3147 = phi ptr [ @.str.5, %5166 ], [ @.str.2, %5162 ]
  store i32 %5157, ptr %5156, align 4, !tbaa !5
  %5168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5169 = load i32, ptr @test_count, align 4, !tbaa !5
  %5170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5171 = load i32, ptr %5170, align 4, !tbaa !5
  %5172 = call ptr @s2n_strerror(i32 noundef %5171, ptr noundef nonnull @.str.4) #12
  %5173 = load i32, ptr %5170, align 4, !tbaa !5
  %5174 = call ptr @s2n_strerror_debug(i32 noundef %5173, ptr noundef nonnull @.str.4) #12
  %5175 = load i32, ptr %5156, align 4, !tbaa !5
  %5176 = call ptr @strerror(i32 noundef %5175) #12
  %5177 = load i32, ptr %5156, align 4, !tbaa !5
  %5178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5168, ptr noundef nonnull %.str.5.sink3147, i32 noundef %5169, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 586, ptr noundef %5172, ptr noundef %5174, ptr noundef %5176, i32 noundef %5177) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5179:                                             ; preds = %5149
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #12
  store ptr null, ptr %54, align 8, !tbaa !9
  %5180 = add nsw i32 %5150, 2
  store i32 %5180, ptr @test_count, align 4, !tbaa !5
  %5181 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %4974, ptr noundef nonnull %54) #12
  %5182 = icmp eq i32 %5181, -1
  br i1 %5182, label %5183, label %5207

5183:                                             ; preds = %5179
  %5184 = tail call ptr @__errno_location() #13
  %5185 = load i32, ptr %5184, align 4, !tbaa !5
  %5186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5187 = call i32 @s2n_print_stacktrace(ptr noundef %5186) #12
  %5188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5189 = trunc nuw i8 %5188 to i1
  br i1 %5189, label %5190, label %5194

5190:                                             ; preds = %5183
  %5191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5192 = call i32 @fileno(ptr noundef %5191) #12
  %5193 = call i32 @isatty(i32 noundef %5192) #12
  %.not1182 = icmp eq i32 %5193, 0
  br i1 %.not1182, label %5194, label %5195

5194:                                             ; preds = %5190, %5183
  br label %5195

5195:                                             ; preds = %5190, %5194
  %.str.5.sink3158 = phi ptr [ @.str.5, %5194 ], [ @.str.2, %5190 ]
  store i32 %5185, ptr %5184, align 4, !tbaa !5
  %5196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5197 = load i32, ptr @test_count, align 4, !tbaa !5
  %5198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5199 = load i32, ptr %5198, align 4, !tbaa !5
  %5200 = call ptr @s2n_strerror(i32 noundef %5199, ptr noundef nonnull @.str.4) #12
  %5201 = load i32, ptr %5198, align 4, !tbaa !5
  %5202 = call ptr @s2n_strerror_debug(i32 noundef %5201, ptr noundef nonnull @.str.4) #12
  %5203 = load i32, ptr %5184, align 4, !tbaa !5
  %5204 = call ptr @strerror(i32 noundef %5203) #12
  %5205 = load i32, ptr %5184, align 4, !tbaa !5
  %5206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5196, ptr noundef nonnull %.str.5.sink3158, i32 noundef %5197, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 589, ptr noundef %5200, ptr noundef %5202, ptr noundef %5204, i32 noundef %5205) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5207:                                             ; preds = %5179
  %5208 = load i32, ptr @test_count, align 4, !tbaa !5
  %5209 = add nsw i32 %5208, 1
  store i32 %5209, ptr @test_count, align 4, !tbaa !5
  %5210 = load ptr, ptr %54, align 8, !tbaa !9
  %5211 = icmp eq ptr %5210, null
  br i1 %5211, label %5212, label %5236

5212:                                             ; preds = %5207
  %5213 = tail call ptr @__errno_location() #13
  %5214 = load i32, ptr %5213, align 4, !tbaa !5
  %5215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5216 = call i32 @s2n_print_stacktrace(ptr noundef %5215) #12
  %5217 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5218 = trunc nuw i8 %5217 to i1
  br i1 %5218, label %5219, label %5223

5219:                                             ; preds = %5212
  %5220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5221 = call i32 @fileno(ptr noundef %5220) #12
  %5222 = call i32 @isatty(i32 noundef %5221) #12
  %.not1181 = icmp eq i32 %5222, 0
  br i1 %.not1181, label %5223, label %5224

5223:                                             ; preds = %5219, %5212
  br label %5224

5224:                                             ; preds = %5219, %5223
  %.str.5.sink3169 = phi ptr [ @.str.5, %5223 ], [ @.str.2, %5219 ]
  store i32 %5214, ptr %5213, align 4, !tbaa !5
  %5225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5226 = load i32, ptr @test_count, align 4, !tbaa !5
  %5227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5228 = load i32, ptr %5227, align 4, !tbaa !5
  %5229 = call ptr @s2n_strerror(i32 noundef %5228, ptr noundef nonnull @.str.4) #12
  %5230 = load i32, ptr %5227, align 4, !tbaa !5
  %5231 = call ptr @s2n_strerror_debug(i32 noundef %5230, ptr noundef nonnull @.str.4) #12
  %5232 = load i32, ptr %5213, align 4, !tbaa !5
  %5233 = call ptr @strerror(i32 noundef %5232) #12
  %5234 = load i32, ptr %5213, align 4, !tbaa !5
  %5235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5225, ptr noundef nonnull %.str.5.sink3169, i32 noundef %5226, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 590, ptr noundef %5229, ptr noundef %5231, ptr noundef %5233, i32 noundef %5234) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5236:                                             ; preds = %5207
  %5237 = getelementptr inbounds i8, ptr %4944, i64 704
  %5238 = getelementptr inbounds i8, ptr %4974, i64 704
  %5239 = add nsw i32 %5208, 2
  store i32 %5239, ptr @test_count, align 4, !tbaa !5
  %5240 = load ptr, ptr %5238, align 8, !tbaa !74
  %5241 = icmp eq ptr %5240, null
  br i1 %5241, label %5242, label %5266

5242:                                             ; preds = %5236
  %5243 = tail call ptr @__errno_location() #13
  %5244 = load i32, ptr %5243, align 4, !tbaa !5
  %5245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5246 = call i32 @s2n_print_stacktrace(ptr noundef %5245) #12
  %5247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5248 = trunc nuw i8 %5247 to i1
  br i1 %5248, label %5249, label %5253

5249:                                             ; preds = %5242
  %5250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5251 = call i32 @fileno(ptr noundef %5250) #12
  %5252 = call i32 @isatty(i32 noundef %5251) #12
  %.not1180 = icmp eq i32 %5252, 0
  br i1 %.not1180, label %5253, label %5254

5253:                                             ; preds = %5249, %5242
  br label %5254

5254:                                             ; preds = %5249, %5253
  %.str.5.sink3180 = phi ptr [ @.str.5, %5253 ], [ @.str.2, %5249 ]
  store i32 %5244, ptr %5243, align 4, !tbaa !5
  %5255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5256 = load i32, ptr @test_count, align 4, !tbaa !5
  %5257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5258 = load i32, ptr %5257, align 4, !tbaa !5
  %5259 = call ptr @s2n_strerror(i32 noundef %5258, ptr noundef nonnull @.str.4) #12
  %5260 = load i32, ptr %5257, align 4, !tbaa !5
  %5261 = call ptr @s2n_strerror_debug(i32 noundef %5260, ptr noundef nonnull @.str.4) #12
  %5262 = load i32, ptr %5243, align 4, !tbaa !5
  %5263 = call ptr @strerror(i32 noundef %5262) #12
  %5264 = load i32, ptr %5243, align 4, !tbaa !5
  %5265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5255, ptr noundef nonnull %.str.5.sink3180, i32 noundef %5256, ptr noundef nonnull @.str.121, ptr noundef nonnull @.str.1, i32 noundef 595, ptr noundef %5259, ptr noundef %5261, ptr noundef %5263, i32 noundef %5264) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5266:                                             ; preds = %5236
  %5267 = add nsw i32 %5208, 3
  store i32 %5267, ptr @test_count, align 4, !tbaa !5
  %5268 = getelementptr inbounds i8, ptr %4974, i64 712
  %5269 = load ptr, ptr %5268, align 8, !tbaa !75
  %5270 = icmp eq ptr %5269, null
  br i1 %5270, label %5271, label %5295

5271:                                             ; preds = %5266
  %5272 = tail call ptr @__errno_location() #13
  %5273 = load i32, ptr %5272, align 4, !tbaa !5
  %5274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5275 = call i32 @s2n_print_stacktrace(ptr noundef %5274) #12
  %5276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5277 = trunc nuw i8 %5276 to i1
  br i1 %5277, label %5278, label %5282

5278:                                             ; preds = %5271
  %5279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5280 = call i32 @fileno(ptr noundef %5279) #12
  %5281 = call i32 @isatty(i32 noundef %5280) #12
  %.not1179 = icmp eq i32 %5281, 0
  br i1 %.not1179, label %5282, label %5283

5282:                                             ; preds = %5278, %5271
  br label %5283

5283:                                             ; preds = %5278, %5282
  %.str.5.sink3191 = phi ptr [ @.str.5, %5282 ], [ @.str.2, %5278 ]
  store i32 %5273, ptr %5272, align 4, !tbaa !5
  %5284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5285 = load i32, ptr @test_count, align 4, !tbaa !5
  %5286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5287 = load i32, ptr %5286, align 4, !tbaa !5
  %5288 = call ptr @s2n_strerror(i32 noundef %5287, ptr noundef nonnull @.str.4) #12
  %5289 = load i32, ptr %5286, align 4, !tbaa !5
  %5290 = call ptr @s2n_strerror_debug(i32 noundef %5289, ptr noundef nonnull @.str.4) #12
  %5291 = load i32, ptr %5272, align 4, !tbaa !5
  %5292 = call ptr @strerror(i32 noundef %5291) #12
  %5293 = load i32, ptr %5272, align 4, !tbaa !5
  %5294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5284, ptr noundef nonnull %.str.5.sink3191, i32 noundef %5285, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.1, i32 noundef 596, ptr noundef %5288, ptr noundef %5290, ptr noundef %5292, i32 noundef %5293) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5295:                                             ; preds = %5266
  %5296 = add nsw i32 %5208, 4
  store i32 %5296, ptr @test_count, align 4, !tbaa !5
  %5297 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef nonnull %5238, ptr noundef nonnull %5237) #12
  %.not1162 = icmp eq i32 %5297, 0
  br i1 %.not1162, label %5298, label %5322

5298:                                             ; preds = %5295
  %5299 = tail call ptr @__errno_location() #13
  %5300 = load i32, ptr %5299, align 4, !tbaa !5
  %5301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5302 = call i32 @s2n_print_stacktrace(ptr noundef %5301) #12
  %5303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5304 = trunc nuw i8 %5303 to i1
  br i1 %5304, label %5305, label %5309

5305:                                             ; preds = %5298
  %5306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5307 = call i32 @fileno(ptr noundef %5306) #12
  %5308 = call i32 @isatty(i32 noundef %5307) #12
  %.not1163 = icmp eq i32 %5308, 0
  br i1 %.not1163, label %5309, label %5310

5309:                                             ; preds = %5305, %5298
  br label %5310

5310:                                             ; preds = %5305, %5309
  %.str.5.sink3202 = phi ptr [ @.str.5, %5309 ], [ @.str.2, %5305 ]
  store i32 %5300, ptr %5299, align 4, !tbaa !5
  %5311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5312 = load i32, ptr @test_count, align 4, !tbaa !5
  %5313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5314 = load i32, ptr %5313, align 4, !tbaa !5
  %5315 = call ptr @s2n_strerror(i32 noundef %5314, ptr noundef nonnull @.str.4) #12
  %5316 = load i32, ptr %5313, align 4, !tbaa !5
  %5317 = call ptr @s2n_strerror_debug(i32 noundef %5316, ptr noundef nonnull @.str.4) #12
  %5318 = load i32, ptr %5299, align 4, !tbaa !5
  %5319 = call ptr @strerror(i32 noundef %5318) #12
  %5320 = load i32, ptr %5299, align 4, !tbaa !5
  %5321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5311, ptr noundef nonnull %.str.5.sink3202, i32 noundef %5312, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.1, i32 noundef 597, ptr noundef %5315, ptr noundef %5317, ptr noundef %5319, i32 noundef %5320) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5322:                                             ; preds = %5295
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #12
  store ptr null, ptr %55, align 8, !tbaa !9
  %5323 = load i32, ptr @test_count, align 4, !tbaa !5
  %5324 = add nsw i32 %5323, 1
  store i32 %5324, ptr @test_count, align 4, !tbaa !5
  %5325 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %4974, ptr noundef nonnull %55) #12
  %5326 = icmp eq i32 %5325, -1
  br i1 %5326, label %5327, label %5351

5327:                                             ; preds = %5322
  %5328 = tail call ptr @__errno_location() #13
  %5329 = load i32, ptr %5328, align 4, !tbaa !5
  %5330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5331 = call i32 @s2n_print_stacktrace(ptr noundef %5330) #12
  %5332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5333 = trunc nuw i8 %5332 to i1
  br i1 %5333, label %5334, label %5338

5334:                                             ; preds = %5327
  %5335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5336 = call i32 @fileno(ptr noundef %5335) #12
  %5337 = call i32 @isatty(i32 noundef %5336) #12
  %.not1178 = icmp eq i32 %5337, 0
  br i1 %.not1178, label %5338, label %5339

5338:                                             ; preds = %5334, %5327
  br label %5339

5339:                                             ; preds = %5334, %5338
  %.str.5.sink3213 = phi ptr [ @.str.5, %5338 ], [ @.str.2, %5334 ]
  store i32 %5329, ptr %5328, align 4, !tbaa !5
  %5340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5341 = load i32, ptr @test_count, align 4, !tbaa !5
  %5342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5343 = load i32, ptr %5342, align 4, !tbaa !5
  %5344 = call ptr @s2n_strerror(i32 noundef %5343, ptr noundef nonnull @.str.4) #12
  %5345 = load i32, ptr %5342, align 4, !tbaa !5
  %5346 = call ptr @s2n_strerror_debug(i32 noundef %5345, ptr noundef nonnull @.str.4) #12
  %5347 = load i32, ptr %5328, align 4, !tbaa !5
  %5348 = call ptr @strerror(i32 noundef %5347) #12
  %5349 = load i32, ptr %5328, align 4, !tbaa !5
  %5350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5340, ptr noundef nonnull %.str.5.sink3213, i32 noundef %5341, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 600, ptr noundef %5344, ptr noundef %5346, ptr noundef %5348, i32 noundef %5349) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5351:                                             ; preds = %5322
  %5352 = load i32, ptr @test_count, align 4, !tbaa !5
  %5353 = add nsw i32 %5352, 1
  store i32 %5353, ptr @test_count, align 4, !tbaa !5
  %5354 = load ptr, ptr %55, align 8, !tbaa !9
  %5355 = icmp eq ptr %5354, null
  br i1 %5355, label %5356, label %5380

5356:                                             ; preds = %5351
  %5357 = tail call ptr @__errno_location() #13
  %5358 = load i32, ptr %5357, align 4, !tbaa !5
  %5359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5360 = call i32 @s2n_print_stacktrace(ptr noundef %5359) #12
  %5361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5362 = trunc nuw i8 %5361 to i1
  br i1 %5362, label %5363, label %5367

5363:                                             ; preds = %5356
  %5364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5365 = call i32 @fileno(ptr noundef %5364) #12
  %5366 = call i32 @isatty(i32 noundef %5365) #12
  %.not1177 = icmp eq i32 %5366, 0
  br i1 %.not1177, label %5367, label %5368

5367:                                             ; preds = %5363, %5356
  br label %5368

5368:                                             ; preds = %5363, %5367
  %.str.5.sink3224 = phi ptr [ @.str.5, %5367 ], [ @.str.2, %5363 ]
  store i32 %5358, ptr %5357, align 4, !tbaa !5
  %5369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5370 = load i32, ptr @test_count, align 4, !tbaa !5
  %5371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5372 = load i32, ptr %5371, align 4, !tbaa !5
  %5373 = call ptr @s2n_strerror(i32 noundef %5372, ptr noundef nonnull @.str.4) #12
  %5374 = load i32, ptr %5371, align 4, !tbaa !5
  %5375 = call ptr @s2n_strerror_debug(i32 noundef %5374, ptr noundef nonnull @.str.4) #12
  %5376 = load i32, ptr %5357, align 4, !tbaa !5
  %5377 = call ptr @strerror(i32 noundef %5376) #12
  %5378 = load i32, ptr %5357, align 4, !tbaa !5
  %5379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5369, ptr noundef nonnull %.str.5.sink3224, i32 noundef %5370, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.1, i32 noundef 601, ptr noundef %5373, ptr noundef %5375, ptr noundef %5377, i32 noundef %5378) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5380:                                             ; preds = %5351
  %5381 = add nsw i32 %5352, 2
  store i32 %5381, ptr @test_count, align 4, !tbaa !5
  %5382 = getelementptr inbounds i8, ptr %4974, i64 928
  %5383 = load ptr, ptr %5382, align 8, !tbaa !71
  %5384 = getelementptr inbounds i8, ptr %4944, i64 928
  %5385 = load ptr, ptr %5384, align 8, !tbaa !71
  %5386 = icmp eq ptr %5383, %5385
  br i1 %5386, label %5411, label %5387

5387:                                             ; preds = %5380
  %5388 = tail call ptr @__errno_location() #13
  %5389 = load i32, ptr %5388, align 4, !tbaa !5
  %5390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5391 = call i32 @s2n_print_stacktrace(ptr noundef %5390) #12
  %5392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5393 = trunc nuw i8 %5392 to i1
  br i1 %5393, label %5394, label %5398

5394:                                             ; preds = %5387
  %5395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5396 = call i32 @fileno(ptr noundef %5395) #12
  %5397 = call i32 @isatty(i32 noundef %5396) #12
  %.not1164 = icmp eq i32 %5397, 0
  br i1 %.not1164, label %5398, label %5399

5398:                                             ; preds = %5394, %5387
  br label %5399

5399:                                             ; preds = %5394, %5398
  %.str.5.sink3235 = phi ptr [ @.str.5, %5398 ], [ @.str.2, %5394 ]
  store i32 %5389, ptr %5388, align 4, !tbaa !5
  %5400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5401 = load i32, ptr @test_count, align 4, !tbaa !5
  %5402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5403 = load i32, ptr %5402, align 4, !tbaa !5
  %5404 = call ptr @s2n_strerror(i32 noundef %5403, ptr noundef nonnull @.str.4) #12
  %5405 = load i32, ptr %5402, align 4, !tbaa !5
  %5406 = call ptr @s2n_strerror_debug(i32 noundef %5405, ptr noundef nonnull @.str.4) #12
  %5407 = load i32, ptr %5388, align 4, !tbaa !5
  %5408 = call ptr @strerror(i32 noundef %5407) #12
  %5409 = load i32, ptr %5388, align 4, !tbaa !5
  %5410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5400, ptr noundef nonnull %.str.5.sink3235, i32 noundef %5401, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.1, i32 noundef 609, ptr noundef %5404, ptr noundef %5406, ptr noundef %5408, i32 noundef %5409) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5411:                                             ; preds = %5380
  %5412 = add nsw i32 %5352, 3
  store i32 %5412, ptr @test_count, align 4, !tbaa !5
  %5413 = getelementptr inbounds i8, ptr %4974, i64 936
  %5414 = load ptr, ptr %5413, align 8, !tbaa !73
  %5415 = icmp eq ptr %5414, null
  br i1 %5415, label %5416, label %5440

5416:                                             ; preds = %5411
  %5417 = tail call ptr @__errno_location() #13
  %5418 = load i32, ptr %5417, align 4, !tbaa !5
  %5419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5420 = call i32 @s2n_print_stacktrace(ptr noundef %5419) #12
  %5421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5422 = trunc nuw i8 %5421 to i1
  br i1 %5422, label %5423, label %5427

5423:                                             ; preds = %5416
  %5424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5425 = call i32 @fileno(ptr noundef %5424) #12
  %5426 = call i32 @isatty(i32 noundef %5425) #12
  %.not1176 = icmp eq i32 %5426, 0
  br i1 %.not1176, label %5427, label %5428

5427:                                             ; preds = %5423, %5416
  br label %5428

5428:                                             ; preds = %5423, %5427
  %.str.5.sink3246 = phi ptr [ @.str.5, %5427 ], [ @.str.2, %5423 ]
  store i32 %5418, ptr %5417, align 4, !tbaa !5
  %5429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5430 = load i32, ptr @test_count, align 4, !tbaa !5
  %5431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5432 = load i32, ptr %5431, align 4, !tbaa !5
  %5433 = call ptr @s2n_strerror(i32 noundef %5432, ptr noundef nonnull @.str.4) #12
  %5434 = load i32, ptr %5431, align 4, !tbaa !5
  %5435 = call ptr @s2n_strerror_debug(i32 noundef %5434, ptr noundef nonnull @.str.4) #12
  %5436 = load i32, ptr %5417, align 4, !tbaa !5
  %5437 = call ptr @strerror(i32 noundef %5436) #12
  %5438 = load i32, ptr %5417, align 4, !tbaa !5
  %5439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5429, ptr noundef nonnull %.str.5.sink3246, i32 noundef %5430, ptr noundef nonnull @.str.125, ptr noundef nonnull @.str.1, i32 noundef 610, ptr noundef %5433, ptr noundef %5435, ptr noundef %5437, i32 noundef %5438) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5440:                                             ; preds = %5411
  %5441 = add nsw i32 %5352, 4
  store i32 %5441, ptr @test_count, align 4, !tbaa !5
  %5442 = call i32 @s2n_public_ecc_keys_are_equal(ptr noundef nonnull %5382, ptr noundef nonnull %5384) #12
  %.not1165 = icmp eq i32 %5442, 0
  br i1 %.not1165, label %5443, label %5467

5443:                                             ; preds = %5440
  %5444 = tail call ptr @__errno_location() #13
  %5445 = load i32, ptr %5444, align 4, !tbaa !5
  %5446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5447 = call i32 @s2n_print_stacktrace(ptr noundef %5446) #12
  %5448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5449 = trunc nuw i8 %5448 to i1
  br i1 %5449, label %5450, label %5454

5450:                                             ; preds = %5443
  %5451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5452 = call i32 @fileno(ptr noundef %5451) #12
  %5453 = call i32 @isatty(i32 noundef %5452) #12
  %.not1166 = icmp eq i32 %5453, 0
  br i1 %.not1166, label %5454, label %5455

5454:                                             ; preds = %5450, %5443
  br label %5455

5455:                                             ; preds = %5450, %5454
  %.str.5.sink3257 = phi ptr [ @.str.5, %5454 ], [ @.str.2, %5450 ]
  store i32 %5445, ptr %5444, align 4, !tbaa !5
  %5456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5457 = load i32, ptr @test_count, align 4, !tbaa !5
  %5458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5459 = load i32, ptr %5458, align 4, !tbaa !5
  %5460 = call ptr @s2n_strerror(i32 noundef %5459, ptr noundef nonnull @.str.4) #12
  %5461 = load i32, ptr %5458, align 4, !tbaa !5
  %5462 = call ptr @s2n_strerror_debug(i32 noundef %5461, ptr noundef nonnull @.str.4) #12
  %5463 = load i32, ptr %5444, align 4, !tbaa !5
  %5464 = call ptr @strerror(i32 noundef %5463) #12
  %5465 = load i32, ptr %5444, align 4, !tbaa !5
  %5466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5456, ptr noundef nonnull %.str.5.sink3257, i32 noundef %5457, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.1, i32 noundef 611, ptr noundef %5460, ptr noundef %5462, ptr noundef %5464, i32 noundef %5465) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5467:                                             ; preds = %5440
  %5468 = call ptr @s2n_kem_preferences_get_highest_priority_group(ptr noundef nonnull %50) #12
  %5469 = load i32, ptr @test_count, align 4, !tbaa !5
  %5470 = add nsw i32 %5469, 1
  store i32 %5470, ptr @test_count, align 4, !tbaa !5
  %5471 = icmp eq ptr %5468, null
  br i1 %5471, label %5472, label %5496

5472:                                             ; preds = %5467
  %5473 = tail call ptr @__errno_location() #13
  %5474 = load i32, ptr %5473, align 4, !tbaa !5
  %5475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5476 = call i32 @s2n_print_stacktrace(ptr noundef %5475) #12
  %5477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5478 = trunc nuw i8 %5477 to i1
  br i1 %5478, label %5479, label %5483

5479:                                             ; preds = %5472
  %5480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5481 = call i32 @fileno(ptr noundef %5480) #12
  %5482 = call i32 @isatty(i32 noundef %5481) #12
  %.not1175 = icmp eq i32 %5482, 0
  br i1 %.not1175, label %5483, label %5484

5483:                                             ; preds = %5479, %5472
  br label %5484

5484:                                             ; preds = %5479, %5483
  %.str.5.sink3268 = phi ptr [ @.str.5, %5483 ], [ @.str.2, %5479 ]
  store i32 %5474, ptr %5473, align 4, !tbaa !5
  %5485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5486 = load i32, ptr @test_count, align 4, !tbaa !5
  %5487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5488 = load i32, ptr %5487, align 4, !tbaa !5
  %5489 = call ptr @s2n_strerror(i32 noundef %5488, ptr noundef nonnull @.str.4) #12
  %5490 = load i32, ptr %5487, align 4, !tbaa !5
  %5491 = call ptr @s2n_strerror_debug(i32 noundef %5490, ptr noundef nonnull @.str.4) #12
  %5492 = load i32, ptr %5473, align 4, !tbaa !5
  %5493 = call ptr @strerror(i32 noundef %5492) #12
  %5494 = load i32, ptr %5473, align 4, !tbaa !5
  %5495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5485, ptr noundef nonnull %.str.5.sink3268, i32 noundef %5486, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.1, i32 noundef 614, ptr noundef %5489, ptr noundef %5491, ptr noundef %5493, i32 noundef %5494) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5496:                                             ; preds = %5467
  %5497 = add nsw i32 %5469, 2
  store i32 %5497, ptr @test_count, align 4, !tbaa !5
  %5498 = getelementptr inbounds i8, ptr %4974, i64 840
  %5499 = load ptr, ptr %5498, align 8, !tbaa !64
  %5500 = getelementptr inbounds i8, ptr %5468, i64 24
  %5501 = load ptr, ptr %5500, align 8, !tbaa !65
  %5502 = icmp eq ptr %5499, %5501
  br i1 %5502, label %5527, label %5503

5503:                                             ; preds = %5496
  %5504 = tail call ptr @__errno_location() #13
  %5505 = load i32, ptr %5504, align 4, !tbaa !5
  %5506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5507 = call i32 @s2n_print_stacktrace(ptr noundef %5506) #12
  %5508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5509 = trunc nuw i8 %5508 to i1
  br i1 %5509, label %5510, label %5514

5510:                                             ; preds = %5503
  %5511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5512 = call i32 @fileno(ptr noundef %5511) #12
  %5513 = call i32 @isatty(i32 noundef %5512) #12
  %.not1167 = icmp eq i32 %5513, 0
  br i1 %.not1167, label %5514, label %5515

5514:                                             ; preds = %5510, %5503
  br label %5515

5515:                                             ; preds = %5510, %5514
  %.str.5.sink3279 = phi ptr [ @.str.5, %5514 ], [ @.str.2, %5510 ]
  store i32 %5505, ptr %5504, align 4, !tbaa !5
  %5516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5517 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5519, ptr noundef nonnull @.str.4) #12
  %5521 = load i32, ptr %5518, align 4, !tbaa !5
  %5522 = call ptr @s2n_strerror_debug(i32 noundef %5521, ptr noundef nonnull @.str.4) #12
  %5523 = load i32, ptr %5504, align 4, !tbaa !5
  %5524 = call ptr @strerror(i32 noundef %5523) #12
  %5525 = load i32, ptr %5504, align 4, !tbaa !5
  %5526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5516, ptr noundef nonnull %.str.5.sink3279, i32 noundef %5517, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.1, i32 noundef 615, ptr noundef %5520, ptr noundef %5522, ptr noundef %5524, i32 noundef %5525) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5527:                                             ; preds = %5496
  %5528 = add nsw i32 %5469, 3
  store i32 %5528, ptr @test_count, align 4, !tbaa !5
  %5529 = getelementptr inbounds i8, ptr %4974, i64 848
  %5530 = load ptr, ptr %5529, align 8, !tbaa !93
  %5531 = icmp eq ptr %5530, null
  br i1 %5531, label %5532, label %5556

5532:                                             ; preds = %5527
  %5533 = tail call ptr @__errno_location() #13
  %5534 = load i32, ptr %5533, align 4, !tbaa !5
  %5535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5536 = call i32 @s2n_print_stacktrace(ptr noundef %5535) #12
  %5537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5538 = trunc nuw i8 %5537 to i1
  br i1 %5538, label %5539, label %5543

5539:                                             ; preds = %5532
  %5540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5541 = call i32 @fileno(ptr noundef %5540) #12
  %5542 = call i32 @isatty(i32 noundef %5541) #12
  %.not1174 = icmp eq i32 %5542, 0
  br i1 %.not1174, label %5543, label %5544

5543:                                             ; preds = %5539, %5532
  br label %5544

5544:                                             ; preds = %5539, %5543
  %.str.5.sink3290 = phi ptr [ @.str.5, %5543 ], [ @.str.2, %5539 ]
  store i32 %5534, ptr %5533, align 4, !tbaa !5
  %5545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5546 = load i32, ptr @test_count, align 4, !tbaa !5
  %5547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5548 = load i32, ptr %5547, align 4, !tbaa !5
  %5549 = call ptr @s2n_strerror(i32 noundef %5548, ptr noundef nonnull @.str.4) #12
  %5550 = load i32, ptr %5547, align 4, !tbaa !5
  %5551 = call ptr @s2n_strerror_debug(i32 noundef %5550, ptr noundef nonnull @.str.4) #12
  %5552 = load i32, ptr %5533, align 4, !tbaa !5
  %5553 = call ptr @strerror(i32 noundef %5552) #12
  %5554 = load i32, ptr %5533, align 4, !tbaa !5
  %5555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5545, ptr noundef nonnull %.str.5.sink3290, i32 noundef %5546, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.1, i32 noundef 616, ptr noundef %5549, ptr noundef %5551, ptr noundef %5553, i32 noundef %5554) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5556:                                             ; preds = %5527
  %5557 = add nsw i32 %5469, 4
  store i32 %5557, ptr @test_count, align 4, !tbaa !5
  %5558 = getelementptr inbounds i8, ptr %4974, i64 856
  %5559 = load i32, ptr %5558, align 8, !tbaa !94
  %5560 = getelementptr inbounds i8, ptr %5501, i64 14
  %5561 = load i16, ptr %5560, align 2, !tbaa !77
  %5562 = zext i16 %5561 to i32
  %5563 = icmp eq i32 %5559, %5562
  br i1 %5563, label %5588, label %5564

5564:                                             ; preds = %5556
  %5565 = tail call ptr @__errno_location() #13
  %5566 = load i32, ptr %5565, align 4, !tbaa !5
  %5567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5568 = call i32 @s2n_print_stacktrace(ptr noundef %5567) #12
  %5569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5570 = trunc nuw i8 %5569 to i1
  br i1 %5570, label %5571, label %5575

5571:                                             ; preds = %5564
  %5572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5573 = call i32 @fileno(ptr noundef %5572) #12
  %5574 = call i32 @isatty(i32 noundef %5573) #12
  %.not1168 = icmp eq i32 %5574, 0
  br i1 %.not1168, label %5575, label %5576

5575:                                             ; preds = %5571, %5564
  br label %5576

5576:                                             ; preds = %5571, %5575
  %.str.5.sink3301 = phi ptr [ @.str.5, %5575 ], [ @.str.2, %5571 ]
  store i32 %5566, ptr %5565, align 4, !tbaa !5
  %5577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5578 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5580, ptr noundef nonnull @.str.4) #12
  %5582 = load i32, ptr %5579, align 4, !tbaa !5
  %5583 = call ptr @s2n_strerror_debug(i32 noundef %5582, ptr noundef nonnull @.str.4) #12
  %5584 = load i32, ptr %5565, align 4, !tbaa !5
  %5585 = call ptr @strerror(i32 noundef %5584) #12
  %5586 = load i32, ptr %5565, align 4, !tbaa !5
  %5587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5577, ptr noundef nonnull %.str.5.sink3301, i32 noundef %5578, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.1, i32 noundef 617, ptr noundef %5581, ptr noundef %5583, ptr noundef %5585, i32 noundef %5586) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5588:                                             ; preds = %5556
  %5589 = load ptr, ptr %5092, align 8, !tbaa !63
  %5590 = getelementptr inbounds i8, ptr %5589, i64 24
  %5591 = load ptr, ptr %5590, align 8, !tbaa !65
  %5592 = getelementptr inbounds i8, ptr %5591, i64 14
  %5593 = load i16, ptr %5592, align 2, !tbaa !77
  %.not1169 = icmp eq i16 %5593, 0
  br i1 %.not1169, label %5623, label %5594

5594:                                             ; preds = %5588
  %5595 = add nsw i32 %5469, 5
  store i32 %5595, ptr @test_count, align 4, !tbaa !5
  %5596 = load ptr, ptr %53, align 8, !tbaa !96
  %5597 = zext i16 %5593 to i64
  %bcmp = call i32 @bcmp(ptr nonnull %5530, ptr %5596, i64 %5597)
  %5598 = icmp eq i32 %bcmp, 0
  br i1 %5598, label %5623, label %5599

5599:                                             ; preds = %5594
  %5600 = tail call ptr @__errno_location() #13
  %5601 = load i32, ptr %5600, align 4, !tbaa !5
  %5602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5603 = call i32 @s2n_print_stacktrace(ptr noundef %5602) #12
  %5604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5605 = trunc nuw i8 %5604 to i1
  br i1 %5605, label %5606, label %5610

5606:                                             ; preds = %5599
  %5607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5608 = call i32 @fileno(ptr noundef %5607) #12
  %5609 = call i32 @isatty(i32 noundef %5608) #12
  %.not1170 = icmp eq i32 %5609, 0
  br i1 %.not1170, label %5610, label %5611

5610:                                             ; preds = %5606, %5599
  br label %5611

5611:                                             ; preds = %5606, %5610
  %.str.5.sink3312 = phi ptr [ @.str.5, %5610 ], [ @.str.2, %5606 ]
  store i32 %5601, ptr %5600, align 4, !tbaa !5
  %5612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5613 = load i32, ptr @test_count, align 4, !tbaa !5
  %5614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5615 = load i32, ptr %5614, align 4, !tbaa !5
  %5616 = call ptr @s2n_strerror(i32 noundef %5615, ptr noundef nonnull @.str.4) #12
  %5617 = load i32, ptr %5614, align 4, !tbaa !5
  %5618 = call ptr @s2n_strerror_debug(i32 noundef %5617, ptr noundef nonnull @.str.4) #12
  %5619 = load i32, ptr %5600, align 4, !tbaa !5
  %5620 = call ptr @strerror(i32 noundef %5619) #12
  %5621 = load i32, ptr %5600, align 4, !tbaa !5
  %5622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5612, ptr noundef nonnull %.str.5.sink3312, i32 noundef %5613, ptr noundef nonnull @.str.131, ptr noundef nonnull @.str.1, i32 noundef 619, ptr noundef %5616, ptr noundef %5618, ptr noundef %5620, i32 noundef %5621) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5623:                                             ; preds = %5588, %5594
  %5624 = phi i32 [ %5557, %5588 ], [ %5595, %5594 ]
  %5625 = add nsw i32 %5624, 1
  store i32 %5625, ptr @test_count, align 4, !tbaa !5
  %5626 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef nonnull %4974) #12
  br i1 %5626, label %5627, label %5651

5627:                                             ; preds = %5623
  %5628 = tail call ptr @__errno_location() #13
  %5629 = load i32, ptr %5628, align 4, !tbaa !5
  %5630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5631 = call i32 @s2n_print_stacktrace(ptr noundef %5630) #12
  %5632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5633 = trunc nuw i8 %5632 to i1
  br i1 %5633, label %5634, label %5638

5634:                                             ; preds = %5627
  %5635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5636 = call i32 @fileno(ptr noundef %5635) #12
  %5637 = call i32 @isatty(i32 noundef %5636) #12
  %.not1173 = icmp eq i32 %5637, 0
  br i1 %.not1173, label %5638, label %5639

5638:                                             ; preds = %5634, %5627
  br label %5639

5639:                                             ; preds = %5634, %5638
  %.str.5.sink3323 = phi ptr [ @.str.5, %5638 ], [ @.str.2, %5634 ]
  store i32 %5629, ptr %5628, align 4, !tbaa !5
  %5640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5641 = load i32, ptr @test_count, align 4, !tbaa !5
  %5642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5643 = load i32, ptr %5642, align 4, !tbaa !5
  %5644 = call ptr @s2n_strerror(i32 noundef %5643, ptr noundef nonnull @.str.4) #12
  %5645 = load i32, ptr %5642, align 4, !tbaa !5
  %5646 = call ptr @s2n_strerror_debug(i32 noundef %5645, ptr noundef nonnull @.str.4) #12
  %5647 = load i32, ptr %5628, align 4, !tbaa !5
  %5648 = call ptr @strerror(i32 noundef %5647) #12
  %5649 = load i32, ptr %5628, align 4, !tbaa !5
  %5650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5640, ptr noundef nonnull %.str.5.sink3323, i32 noundef %5641, ptr noundef nonnull @.str.132, ptr noundef nonnull @.str.1, i32 noundef 622, ptr noundef %5644, ptr noundef %5646, ptr noundef %5648, i32 noundef %5649) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5651:                                             ; preds = %5623
  %5652 = load i32, ptr @test_count, align 4, !tbaa !5
  %5653 = add nsw i32 %5652, 1
  store i32 %5653, ptr @test_count, align 4, !tbaa !5
  %5654 = call i32 @s2n_connection_free(ptr noundef nonnull %4944) #12
  %5655 = icmp eq i32 %5654, -1
  br i1 %5655, label %5656, label %5680

5656:                                             ; preds = %5651
  %5657 = tail call ptr @__errno_location() #13
  %5658 = load i32, ptr %5657, align 4, !tbaa !5
  %5659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5660 = call i32 @s2n_print_stacktrace(ptr noundef %5659) #12
  %5661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5662 = trunc nuw i8 %5661 to i1
  br i1 %5662, label %5663, label %5667

5663:                                             ; preds = %5656
  %5664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5665 = call i32 @fileno(ptr noundef %5664) #12
  %5666 = call i32 @isatty(i32 noundef %5665) #12
  %.not1172 = icmp eq i32 %5666, 0
  br i1 %.not1172, label %5667, label %5668

5667:                                             ; preds = %5663, %5656
  br label %5668

5668:                                             ; preds = %5663, %5667
  %.str.5.sink3334 = phi ptr [ @.str.5, %5667 ], [ @.str.2, %5663 ]
  store i32 %5658, ptr %5657, align 4, !tbaa !5
  %5669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5670 = load i32, ptr @test_count, align 4, !tbaa !5
  %5671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5672 = load i32, ptr %5671, align 4, !tbaa !5
  %5673 = call ptr @s2n_strerror(i32 noundef %5672, ptr noundef nonnull @.str.4) #12
  %5674 = load i32, ptr %5671, align 4, !tbaa !5
  %5675 = call ptr @s2n_strerror_debug(i32 noundef %5674, ptr noundef nonnull @.str.4) #12
  %5676 = load i32, ptr %5657, align 4, !tbaa !5
  %5677 = call ptr @strerror(i32 noundef %5676) #12
  %5678 = load i32, ptr %5657, align 4, !tbaa !5
  %5679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5669, ptr noundef nonnull %.str.5.sink3334, i32 noundef %5670, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.1, i32 noundef 624, ptr noundef %5673, ptr noundef %5675, ptr noundef %5677, i32 noundef %5678) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5680:                                             ; preds = %5651
  %5681 = load i32, ptr @test_count, align 4, !tbaa !5
  %5682 = add nsw i32 %5681, 1
  store i32 %5682, ptr @test_count, align 4, !tbaa !5
  %5683 = call i32 @s2n_connection_free(ptr noundef nonnull %4974) #12
  %5684 = icmp eq i32 %5683, -1
  br i1 %5684, label %5685, label %5709

5685:                                             ; preds = %5680
  %5686 = tail call ptr @__errno_location() #13
  %5687 = load i32, ptr %5686, align 4, !tbaa !5
  %5688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5689 = call i32 @s2n_print_stacktrace(ptr noundef %5688) #12
  %5690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5691 = trunc nuw i8 %5690 to i1
  br i1 %5691, label %5692, label %5696

5692:                                             ; preds = %5685
  %5693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5694 = call i32 @fileno(ptr noundef %5693) #12
  %5695 = call i32 @isatty(i32 noundef %5694) #12
  %.not1171 = icmp eq i32 %5695, 0
  br i1 %.not1171, label %5696, label %5697

5696:                                             ; preds = %5692, %5685
  br label %5697

5697:                                             ; preds = %5692, %5696
  %.str.5.sink3345 = phi ptr [ @.str.5, %5696 ], [ @.str.2, %5692 ]
  store i32 %5687, ptr %5686, align 4, !tbaa !5
  %5698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5699 = load i32, ptr @test_count, align 4, !tbaa !5
  %5700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5701 = load i32, ptr %5700, align 4, !tbaa !5
  %5702 = call ptr @s2n_strerror(i32 noundef %5701, ptr noundef nonnull @.str.4) #12
  %5703 = load i32, ptr %5700, align 4, !tbaa !5
  %5704 = call ptr @s2n_strerror_debug(i32 noundef %5703, ptr noundef nonnull @.str.4) #12
  %5705 = load i32, ptr %5686, align 4, !tbaa !5
  %5706 = call ptr @strerror(i32 noundef %5705) #12
  %5707 = load i32, ptr %5686, align 4, !tbaa !5
  %5708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5698, ptr noundef nonnull %.str.5.sink3345, i32 noundef %5699, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 625, ptr noundef %5702, ptr noundef %5704, ptr noundef %5706, i32 noundef %5707) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5709:                                             ; preds = %5680
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #12
  %5710 = call i32 @s2n_free(ptr noundef nonnull %53) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %53) #12
  %5711 = call i32 @s2n_stuffer_free(ptr noundef nonnull %52) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %52) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %51) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %50) #12
  br label %5712

5712:                                             ; preds = %.preheader1326, %5709
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %49) #12
  %exitcond1352.not = icmp eq i64 %4912, 8
  br i1 %exitcond1352.not, label %4904, label %.preheader1326, !llvm.loop !97

5713:                                             ; preds = %4904
  %5714 = tail call ptr @__errno_location() #13
  %5715 = load i32, ptr %5714, align 4, !tbaa !5
  %5716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5717 = call i32 @s2n_print_stacktrace(ptr noundef %5716) #12
  %5718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5719 = trunc nuw i8 %5718 to i1
  br i1 %5719, label %5720, label %5724

5720:                                             ; preds = %5713
  %5721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5722 = call i32 @fileno(ptr noundef %5721) #12
  %5723 = call i32 @isatty(i32 noundef %5722) #12
  %.not1037 = icmp eq i32 %5723, 0
  br i1 %.not1037, label %5724, label %5725

5724:                                             ; preds = %5720, %5713
  br label %5725

5725:                                             ; preds = %5720, %5724
  %.str.5.sink3356 = phi ptr [ @.str.5, %5724 ], [ @.str.2, %5720 ]
  store i32 %5715, ptr %5714, align 4, !tbaa !5
  %5726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5727 = load i32, ptr @test_count, align 4, !tbaa !5
  %5728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5729 = load i32, ptr %5728, align 4, !tbaa !5
  %5730 = call ptr @s2n_strerror(i32 noundef %5729, ptr noundef nonnull @.str.4) #12
  %5731 = load i32, ptr %5728, align 4, !tbaa !5
  %5732 = call ptr @s2n_strerror_debug(i32 noundef %5731, ptr noundef nonnull @.str.4) #12
  %5733 = load i32, ptr %5714, align 4, !tbaa !5
  %5734 = call ptr @strerror(i32 noundef %5733) #12
  %5735 = load i32, ptr %5714, align 4, !tbaa !5
  %5736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5726, ptr noundef nonnull %.str.5.sink3356, i32 noundef %5727, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 632, ptr noundef %5730, ptr noundef %5732, ptr noundef %5734, i32 noundef %5735) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5737:                                             ; preds = %4904
  %5738 = load i32, ptr %3, align 4, !tbaa !5
  %5739 = icmp ugt i32 %5738, 1
  br i1 %5739, label %5740, label %6409

5740:                                             ; preds = %5737
  %5741 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %5742 = load i32, ptr @test_count, align 4, !tbaa !5
  %5743 = add nsw i32 %5742, 1
  store i32 %5743, ptr @test_count, align 4, !tbaa !5
  %5744 = icmp eq ptr %5741, null
  br i1 %5744, label %5745, label %5769

5745:                                             ; preds = %5740
  %5746 = tail call ptr @__errno_location() #13
  %5747 = load i32, ptr %5746, align 4, !tbaa !5
  %5748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5749 = call i32 @s2n_print_stacktrace(ptr noundef %5748) #12
  %5750 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5751 = trunc nuw i8 %5750 to i1
  br i1 %5751, label %5752, label %5756

5752:                                             ; preds = %5745
  %5753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5754 = call i32 @fileno(ptr noundef %5753) #12
  %5755 = call i32 @isatty(i32 noundef %5754) #12
  %.not1159 = icmp eq i32 %5755, 0
  br i1 %.not1159, label %5756, label %5757

5756:                                             ; preds = %5752, %5745
  br label %5757

5757:                                             ; preds = %5752, %5756
  %.str.5.sink3367 = phi ptr [ @.str.5, %5756 ], [ @.str.2, %5752 ]
  store i32 %5747, ptr %5746, align 4, !tbaa !5
  %5758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5759 = load i32, ptr @test_count, align 4, !tbaa !5
  %5760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5761 = load i32, ptr %5760, align 4, !tbaa !5
  %5762 = call ptr @s2n_strerror(i32 noundef %5761, ptr noundef nonnull @.str.4) #12
  %5763 = load i32, ptr %5760, align 4, !tbaa !5
  %5764 = call ptr @s2n_strerror_debug(i32 noundef %5763, ptr noundef nonnull @.str.4) #12
  %5765 = load i32, ptr %5746, align 4, !tbaa !5
  %5766 = call ptr @strerror(i32 noundef %5765) #12
  %5767 = load i32, ptr %5746, align 4, !tbaa !5
  %5768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5758, ptr noundef nonnull %.str.5.sink3367, i32 noundef %5759, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 635, ptr noundef %5762, ptr noundef %5764, ptr noundef %5766, i32 noundef %5767) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5769:                                             ; preds = %5740
  %5770 = getelementptr inbounds i8, ptr %5741, i64 220
  store i8 34, ptr %5770, align 4, !tbaa !79
  %5771 = getelementptr inbounds i8, ptr %5741, i64 16
  store ptr %2, ptr %5771, align 8, !tbaa !28
  %5772 = add nsw i32 %5742, 2
  store i32 %5772, ptr @test_count, align 4, !tbaa !5
  %5773 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %5741) #12
  %5774 = call zeroext i1 @s2n_result_is_ok(i32 %5773)
  br i1 %5774, label %5799, label %5775

5775:                                             ; preds = %5769
  %5776 = tail call ptr @__errno_location() #13
  %5777 = load i32, ptr %5776, align 4, !tbaa !5
  %5778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5779 = call i32 @s2n_print_stacktrace(ptr noundef %5778) #12
  %5780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5781 = trunc nuw i8 %5780 to i1
  br i1 %5781, label %5782, label %5786

5782:                                             ; preds = %5775
  %5783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5784 = call i32 @fileno(ptr noundef %5783) #12
  %5785 = call i32 @isatty(i32 noundef %5784) #12
  %.not1038 = icmp eq i32 %5785, 0
  br i1 %.not1038, label %5786, label %5787

5786:                                             ; preds = %5782, %5775
  br label %5787

5787:                                             ; preds = %5782, %5786
  %.str.5.sink3378 = phi ptr [ @.str.5, %5786 ], [ @.str.2, %5782 ]
  store i32 %5777, ptr %5776, align 4, !tbaa !5
  %5788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5789 = load i32, ptr @test_count, align 4, !tbaa !5
  %5790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5791 = load i32, ptr %5790, align 4, !tbaa !5
  %5792 = call ptr @s2n_strerror(i32 noundef %5791, ptr noundef nonnull @.str.4) #12
  %5793 = load i32, ptr %5790, align 4, !tbaa !5
  %5794 = call ptr @s2n_strerror_debug(i32 noundef %5793, ptr noundef nonnull @.str.4) #12
  %5795 = load i32, ptr %5776, align 4, !tbaa !5
  %5796 = call ptr @strerror(i32 noundef %5795) #12
  %5797 = load i32, ptr %5776, align 4, !tbaa !5
  %5798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5788, ptr noundef nonnull %.str.5.sink3378, i32 noundef %5789, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 638, ptr noundef %5792, ptr noundef %5794, ptr noundef %5796, i32 noundef %5797) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5799:                                             ; preds = %5769
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #12
  store ptr null, ptr %56, align 8, !tbaa !9
  %5800 = load i32, ptr @test_count, align 4, !tbaa !5
  %5801 = add nsw i32 %5800, 1
  store i32 %5801, ptr @test_count, align 4, !tbaa !5
  %5802 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %5741, ptr noundef nonnull %56) #12
  %5803 = icmp eq i32 %5802, -1
  br i1 %5803, label %5804, label %5828

5804:                                             ; preds = %5799
  %5805 = tail call ptr @__errno_location() #13
  %5806 = load i32, ptr %5805, align 4, !tbaa !5
  %5807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5808 = call i32 @s2n_print_stacktrace(ptr noundef %5807) #12
  %5809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5810 = trunc nuw i8 %5809 to i1
  br i1 %5810, label %5811, label %5815

5811:                                             ; preds = %5804
  %5812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5813 = call i32 @fileno(ptr noundef %5812) #12
  %5814 = call i32 @isatty(i32 noundef %5813) #12
  %.not1158 = icmp eq i32 %5814, 0
  br i1 %.not1158, label %5815, label %5816

5815:                                             ; preds = %5811, %5804
  br label %5816

5816:                                             ; preds = %5811, %5815
  %.str.5.sink3389 = phi ptr [ @.str.5, %5815 ], [ @.str.2, %5811 ]
  store i32 %5806, ptr %5805, align 4, !tbaa !5
  %5817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5818 = load i32, ptr @test_count, align 4, !tbaa !5
  %5819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5820 = load i32, ptr %5819, align 4, !tbaa !5
  %5821 = call ptr @s2n_strerror(i32 noundef %5820, ptr noundef nonnull @.str.4) #12
  %5822 = load i32, ptr %5819, align 4, !tbaa !5
  %5823 = call ptr @s2n_strerror_debug(i32 noundef %5822, ptr noundef nonnull @.str.4) #12
  %5824 = load i32, ptr %5805, align 4, !tbaa !5
  %5825 = call ptr @strerror(i32 noundef %5824) #12
  %5826 = load i32, ptr %5805, align 4, !tbaa !5
  %5827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5817, ptr noundef nonnull %.str.5.sink3389, i32 noundef %5818, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.1, i32 noundef 641, ptr noundef %5821, ptr noundef %5823, ptr noundef %5825, i32 noundef %5826) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5828:                                             ; preds = %5799
  %5829 = load i32, ptr @test_count, align 4, !tbaa !5
  %5830 = add nsw i32 %5829, 1
  store i32 %5830, ptr @test_count, align 4, !tbaa !5
  %5831 = load ptr, ptr %56, align 8, !tbaa !9
  %5832 = icmp eq ptr %5831, null
  br i1 %5832, label %5833, label %5857

5833:                                             ; preds = %5828
  %5834 = tail call ptr @__errno_location() #13
  %5835 = load i32, ptr %5834, 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 = %5833
  %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
  %.not1157 = icmp eq i32 %5843, 0
  br i1 %.not1157, label %5844, label %5845

5844:                                             ; preds = %5840, %5833
  br label %5845

5845:                                             ; preds = %5840, %5844
  %.str.5.sink3400 = phi ptr [ @.str.5, %5844 ], [ @.str.2, %5840 ]
  store i32 %5835, ptr %5834, align 4, !tbaa !5
  %5846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5847 = load i32, ptr @test_count, align 4, !tbaa !5
  %5848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5849 = load i32, ptr %5848, align 4, !tbaa !5
  %5850 = call ptr @s2n_strerror(i32 noundef %5849, ptr noundef nonnull @.str.4) #12
  %5851 = load i32, ptr %5848, align 4, !tbaa !5
  %5852 = call ptr @s2n_strerror_debug(i32 noundef %5851, ptr noundef nonnull @.str.4) #12
  %5853 = load i32, ptr %5834, align 4, !tbaa !5
  %5854 = call ptr @strerror(i32 noundef %5853) #12
  %5855 = load i32, ptr %5834, align 4, !tbaa !5
  %5856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5846, ptr noundef nonnull %.str.5.sink3400, i32 noundef %5847, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 642, ptr noundef %5850, ptr noundef %5852, ptr noundef %5854, i32 noundef %5855) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5857:                                             ; preds = %5828
  %5858 = add nsw i32 %5829, 2
  store i32 %5858, ptr @test_count, align 4, !tbaa !5
  %5859 = call i32 @s2n_kem_preferences_groups_available(ptr noundef nonnull %5831, ptr noundef nonnull %3) #12
  %5860 = call zeroext i1 @s2n_result_is_ok(i32 %5859)
  br i1 %5860, label %5885, label %5861

5861:                                             ; preds = %5857
  %5862 = tail call ptr @__errno_location() #13
  %5863 = load i32, ptr %5862, align 4, !tbaa !5
  %5864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5865 = call i32 @s2n_print_stacktrace(ptr noundef %5864) #12
  %5866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5867 = trunc nuw i8 %5866 to i1
  br i1 %5867, label %5868, label %5872

5868:                                             ; preds = %5861
  %5869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5870 = call i32 @fileno(ptr noundef %5869) #12
  %5871 = call i32 @isatty(i32 noundef %5870) #12
  %.not1039 = icmp eq i32 %5871, 0
  br i1 %.not1039, label %5872, label %5873

5872:                                             ; preds = %5868, %5861
  br label %5873

5873:                                             ; preds = %5868, %5872
  %.str.5.sink3411 = phi ptr [ @.str.5, %5872 ], [ @.str.2, %5868 ]
  store i32 %5863, ptr %5862, align 4, !tbaa !5
  %5874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5875 = load i32, ptr @test_count, align 4, !tbaa !5
  %5876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5877 = load i32, ptr %5876, align 4, !tbaa !5
  %5878 = call ptr @s2n_strerror(i32 noundef %5877, ptr noundef nonnull @.str.4) #12
  %5879 = load i32, ptr %5876, align 4, !tbaa !5
  %5880 = call ptr @s2n_strerror_debug(i32 noundef %5879, ptr noundef nonnull @.str.4) #12
  %5881 = load i32, ptr %5862, align 4, !tbaa !5
  %5882 = call ptr @strerror(i32 noundef %5881) #12
  %5883 = load i32, ptr %5862, align 4, !tbaa !5
  %5884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5874, ptr noundef nonnull %.str.5.sink3411, i32 noundef %5875, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.1, i32 noundef 643, ptr noundef %5878, ptr noundef %5880, ptr noundef %5882, i32 noundef %5883) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5885:                                             ; preds = %5857
  %5886 = load i32, ptr @test_count, align 4, !tbaa !5
  %5887 = add nsw i32 %5886, 1
  store i32 %5887, ptr @test_count, align 4, !tbaa !5
  %5888 = load i32, ptr %3, align 4, !tbaa !5
  %5889 = icmp ugt i32 %5888, 1
  br i1 %5889, label %5914, label %5890

5890:                                             ; preds = %5885
  %5891 = tail call ptr @__errno_location() #13
  %5892 = load i32, ptr %5891, align 4, !tbaa !5
  %5893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5894 = call i32 @s2n_print_stacktrace(ptr noundef %5893) #12
  %5895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5896 = trunc nuw i8 %5895 to i1
  br i1 %5896, label %5897, label %5901

5897:                                             ; preds = %5890
  %5898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5899 = call i32 @fileno(ptr noundef %5898) #12
  %5900 = call i32 @isatty(i32 noundef %5899) #12
  %.not1040 = icmp eq i32 %5900, 0
  br i1 %.not1040, label %5901, label %5902

5901:                                             ; preds = %5897, %5890
  br label %5902

5902:                                             ; preds = %5897, %5901
  %.str.5.sink3422 = phi ptr [ @.str.5, %5901 ], [ @.str.2, %5897 ]
  store i32 %5892, ptr %5891, 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 nonnull @.str.4) #12
  %5908 = load i32, ptr %5905, align 4, !tbaa !5
  %5909 = call ptr @s2n_strerror_debug(i32 noundef %5908, ptr noundef nonnull @.str.4) #12
  %5910 = load i32, ptr %5891, align 4, !tbaa !5
  %5911 = call ptr @strerror(i32 noundef %5910) #12
  %5912 = load i32, ptr %5891, align 4, !tbaa !5
  %5913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5903, ptr noundef nonnull %.str.5.sink3422, i32 noundef %5904, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.1, i32 noundef 644, ptr noundef %5907, ptr noundef %5909, ptr noundef %5911, i32 noundef %5912) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5914:                                             ; preds = %5885
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #12
  store ptr null, ptr %57, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #12
  store ptr null, ptr %58, align 8, !tbaa !9
  %5915 = add nsw i32 %5886, 2
  store i32 %5915, ptr @test_count, align 4, !tbaa !5
  %5916 = load ptr, ptr %56, align 8, !tbaa !9
  %5917 = call i32 @s2n_get_two_highest_piority_kem_groups(ptr noundef %5916, ptr noundef nonnull %57, ptr noundef nonnull %58)
  %5918 = icmp eq i32 %5917, -1
  br i1 %5918, label %5919, label %5943

5919:                                             ; preds = %5914
  %5920 = tail call ptr @__errno_location() #13
  %5921 = load i32, ptr %5920, align 4, !tbaa !5
  %5922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5923 = call i32 @s2n_print_stacktrace(ptr noundef %5922) #12
  %5924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5925 = trunc nuw i8 %5924 to i1
  br i1 %5925, label %5926, label %5930

5926:                                             ; preds = %5919
  %5927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5928 = call i32 @fileno(ptr noundef %5927) #12
  %5929 = call i32 @isatty(i32 noundef %5928) #12
  %.not1156 = icmp eq i32 %5929, 0
  br i1 %.not1156, label %5930, label %5931

5930:                                             ; preds = %5926, %5919
  br label %5931

5931:                                             ; preds = %5926, %5930
  %.str.5.sink3433 = phi ptr [ @.str.5, %5930 ], [ @.str.2, %5926 ]
  store i32 %5921, ptr %5920, align 4, !tbaa !5
  %5932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5933 = load i32, ptr @test_count, align 4, !tbaa !5
  %5934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5935 = load i32, ptr %5934, align 4, !tbaa !5
  %5936 = call ptr @s2n_strerror(i32 noundef %5935, ptr noundef nonnull @.str.4) #12
  %5937 = load i32, ptr %5934, align 4, !tbaa !5
  %5938 = call ptr @s2n_strerror_debug(i32 noundef %5937, ptr noundef nonnull @.str.4) #12
  %5939 = load i32, ptr %5920, align 4, !tbaa !5
  %5940 = call ptr @strerror(i32 noundef %5939) #12
  %5941 = load i32, ptr %5920, align 4, !tbaa !5
  %5942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5932, ptr noundef nonnull %.str.5.sink3433, i32 noundef %5933, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.1, i32 noundef 649, ptr noundef %5936, ptr noundef %5938, ptr noundef %5940, i32 noundef %5941) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5943:                                             ; preds = %5914
  %5944 = load i32, ptr @test_count, align 4, !tbaa !5
  %5945 = add nsw i32 %5944, 1
  store i32 %5945, ptr @test_count, align 4, !tbaa !5
  %5946 = load ptr, ptr %57, align 8, !tbaa !9
  %5947 = icmp eq ptr %5946, null
  br i1 %5947, label %5948, label %5972

5948:                                             ; preds = %5943
  %5949 = tail call ptr @__errno_location() #13
  %5950 = load i32, ptr %5949, 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 = %5948
  %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
  %.not1155 = icmp eq i32 %5958, 0
  br i1 %.not1155, label %5959, label %5960

5959:                                             ; preds = %5955, %5948
  br label %5960

5960:                                             ; preds = %5955, %5959
  %.str.5.sink3444 = phi ptr [ @.str.5, %5959 ], [ @.str.2, %5955 ]
  store i32 %5950, ptr %5949, align 4, !tbaa !5
  %5961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5962 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5964, ptr noundef nonnull @.str.4) #12
  %5966 = load i32, ptr %5963, align 4, !tbaa !5
  %5967 = call ptr @s2n_strerror_debug(i32 noundef %5966, ptr noundef nonnull @.str.4) #12
  %5968 = load i32, ptr %5949, align 4, !tbaa !5
  %5969 = call ptr @strerror(i32 noundef %5968) #12
  %5970 = load i32, ptr %5949, align 4, !tbaa !5
  %5971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5961, ptr noundef nonnull %.str.5.sink3444, i32 noundef %5962, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.1, i32 noundef 650, ptr noundef %5965, ptr noundef %5967, ptr noundef %5969, i32 noundef %5970) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5972:                                             ; preds = %5943
  %5973 = add nsw i32 %5944, 2
  store i32 %5973, ptr @test_count, align 4, !tbaa !5
  %5974 = load ptr, ptr %58, align 8, !tbaa !9
  %5975 = icmp eq ptr %5974, null
  br i1 %5975, label %5976, label %6000

5976:                                             ; preds = %5972
  %5977 = tail call ptr @__errno_location() #13
  %5978 = load i32, ptr %5977, align 4, !tbaa !5
  %5979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5980 = call i32 @s2n_print_stacktrace(ptr noundef %5979) #12
  %5981 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5982 = trunc nuw i8 %5981 to i1
  br i1 %5982, label %5983, label %5987

5983:                                             ; preds = %5976
  %5984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5985 = call i32 @fileno(ptr noundef %5984) #12
  %5986 = call i32 @isatty(i32 noundef %5985) #12
  %.not1154 = icmp eq i32 %5986, 0
  br i1 %.not1154, label %5987, label %5988

5987:                                             ; preds = %5983, %5976
  br label %5988

5988:                                             ; preds = %5983, %5987
  %.str.5.sink3455 = phi ptr [ @.str.5, %5987 ], [ @.str.2, %5983 ]
  store i32 %5978, ptr %5977, align 4, !tbaa !5
  %5989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5990 = load i32, ptr @test_count, align 4, !tbaa !5
  %5991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5992 = load i32, ptr %5991, align 4, !tbaa !5
  %5993 = call ptr @s2n_strerror(i32 noundef %5992, ptr noundef nonnull @.str.4) #12
  %5994 = load i32, ptr %5991, align 4, !tbaa !5
  %5995 = call ptr @s2n_strerror_debug(i32 noundef %5994, ptr noundef nonnull @.str.4) #12
  %5996 = load i32, ptr %5977, align 4, !tbaa !5
  %5997 = call ptr @strerror(i32 noundef %5996) #12
  %5998 = load i32, ptr %5977, align 4, !tbaa !5
  %5999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5989, ptr noundef nonnull %.str.5.sink3455, i32 noundef %5990, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.1, i32 noundef 651, ptr noundef %5993, ptr noundef %5995, ptr noundef %5997, i32 noundef %5998) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6000:                                             ; preds = %5972
  call void @llvm.lifetime.start.p0(i64 224, ptr nonnull %59) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(224) %59, i8 0, i64 224, i1 false)
  store ptr %5946, ptr %59, align 16, !tbaa !63
  store i8 %.01346, ptr %197, align 8, !tbaa !98
  store ptr %5974, ptr %198, align 16, !tbaa !63
  store i8 %.01346, ptr %199, align 8, !tbaa !98
  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)
  %6001 = add nsw i32 %5944, 3
  store i32 %6001, ptr @test_count, align 4, !tbaa !5
  %6002 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %60, i32 noundef 8192) #12
  %6003 = icmp eq i32 %6002, -1
  br i1 %6003, label %6004, label %6028

6004:                                             ; preds = %6000
  %6005 = tail call ptr @__errno_location() #13
  %6006 = load i32, ptr %6005, align 4, !tbaa !5
  %6007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6008 = call i32 @s2n_print_stacktrace(ptr noundef %6007) #12
  %6009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6010 = trunc nuw i8 %6009 to i1
  br i1 %6010, label %6011, label %6015

6011:                                             ; preds = %6004
  %6012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6013 = call i32 @fileno(ptr noundef %6012) #12
  %6014 = call i32 @isatty(i32 noundef %6013) #12
  %.not1153 = icmp eq i32 %6014, 0
  br i1 %.not1153, label %6015, label %6016

6015:                                             ; preds = %6011, %6004
  br label %6016

6016:                                             ; preds = %6011, %6015
  %.str.5.sink3466 = phi ptr [ @.str.5, %6015 ], [ @.str.2, %6011 ]
  store i32 %6006, ptr %6005, align 4, !tbaa !5
  %6017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6018 = load i32, ptr @test_count, align 4, !tbaa !5
  %6019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6020 = load i32, ptr %6019, align 4, !tbaa !5
  %6021 = call ptr @s2n_strerror(i32 noundef %6020, ptr noundef nonnull @.str.4) #12
  %6022 = load i32, ptr %6019, align 4, !tbaa !5
  %6023 = call ptr @s2n_strerror_debug(i32 noundef %6022, ptr noundef nonnull @.str.4) #12
  %6024 = load i32, ptr %6005, align 4, !tbaa !5
  %6025 = call ptr @strerror(i32 noundef %6024) #12
  %6026 = load i32, ptr %6005, align 4, !tbaa !5
  %6027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6017, ptr noundef nonnull %.str.5.sink3466, i32 noundef %6018, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 659, ptr noundef %6021, ptr noundef %6023, ptr noundef %6025, i32 noundef %6026) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6028:                                             ; preds = %6000
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %61) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %61, i8 0, i64 16, i1 false)
  %6029 = load i32, ptr @test_count, align 4, !tbaa !5
  %6030 = add nsw i32 %6029, 1
  store i32 %6030, ptr @test_count, align 4, !tbaa !5
  %6031 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %60, ptr noundef nonnull %61) #12
  %6032 = icmp eq i32 %6031, -1
  br i1 %6032, label %6033, label %6057

6033:                                             ; preds = %6028
  %6034 = tail call ptr @__errno_location() #13
  %6035 = load i32, ptr %6034, align 4, !tbaa !5
  %6036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6037 = call i32 @s2n_print_stacktrace(ptr noundef %6036) #12
  %6038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6039 = trunc nuw i8 %6038 to i1
  br i1 %6039, label %6040, label %6044

6040:                                             ; preds = %6033
  %6041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6042 = call i32 @fileno(ptr noundef %6041) #12
  %6043 = call i32 @isatty(i32 noundef %6042) #12
  %.not1152 = icmp eq i32 %6043, 0
  br i1 %.not1152, label %6044, label %6045

6044:                                             ; preds = %6040, %6033
  br label %6045

6045:                                             ; preds = %6040, %6044
  %.str.5.sink3477 = phi ptr [ @.str.5, %6044 ], [ @.str.2, %6040 ]
  store i32 %6035, ptr %6034, 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 nonnull @.str.4) #12
  %6051 = load i32, ptr %6048, align 4, !tbaa !5
  %6052 = call ptr @s2n_strerror_debug(i32 noundef %6051, ptr noundef nonnull @.str.4) #12
  %6053 = load i32, ptr %6034, align 4, !tbaa !5
  %6054 = call ptr @strerror(i32 noundef %6053) #12
  %6055 = load i32, ptr %6034, align 4, !tbaa !5
  %6056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6046, ptr noundef nonnull %.str.5.sink3477, i32 noundef %6047, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 662, ptr noundef %6050, ptr noundef %6052, ptr noundef %6054, i32 noundef %6055) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6057:                                             ; preds = %6028
  %6058 = load i32, ptr @test_count, align 4, !tbaa !5
  %6059 = add nsw i32 %6058, 1
  store i32 %6059, ptr @test_count, align 4, !tbaa !5
  %6060 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef nonnull %60, ptr noundef nonnull %198)
  %6061 = icmp eq i32 %6060, -1
  br i1 %6061, label %6062, label %6086

6062:                                             ; preds = %6057
  %6063 = tail call ptr @__errno_location() #13
  %6064 = load i32, ptr %6063, align 4, !tbaa !5
  %6065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6066 = call i32 @s2n_print_stacktrace(ptr noundef %6065) #12
  %6067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6068 = trunc nuw i8 %6067 to i1
  br i1 %6068, label %6069, label %6073

6069:                                             ; preds = %6062
  %6070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6071 = call i32 @fileno(ptr noundef %6070) #12
  %6072 = call i32 @isatty(i32 noundef %6071) #12
  %.not1151 = icmp eq i32 %6072, 0
  br i1 %.not1151, label %6073, label %6074

6073:                                             ; preds = %6069, %6062
  br label %6074

6074:                                             ; preds = %6069, %6073
  %.str.5.sink3488 = phi ptr [ @.str.5, %6073 ], [ @.str.2, %6069 ]
  store i32 %6064, ptr %6063, align 4, !tbaa !5
  %6075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6076 = load i32, ptr @test_count, align 4, !tbaa !5
  %6077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6078 = load i32, ptr %6077, align 4, !tbaa !5
  %6079 = call ptr @s2n_strerror(i32 noundef %6078, ptr noundef nonnull @.str.4) #12
  %6080 = load i32, ptr %6077, align 4, !tbaa !5
  %6081 = call ptr @s2n_strerror_debug(i32 noundef %6080, ptr noundef nonnull @.str.4) #12
  %6082 = load i32, ptr %6063, align 4, !tbaa !5
  %6083 = call ptr @strerror(i32 noundef %6082) #12
  %6084 = load i32, ptr %6063, align 4, !tbaa !5
  %6085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6075, ptr noundef nonnull %.str.5.sink3488, i32 noundef %6076, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 663, ptr noundef %6079, ptr noundef %6081, ptr noundef %6083, i32 noundef %6084) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6086:                                             ; preds = %6057
  %6087 = load i32, ptr @test_count, align 4, !tbaa !5
  %6088 = add nsw i32 %6087, 1
  store i32 %6088, ptr @test_count, align 4, !tbaa !5
  %6089 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef nonnull %60, ptr noundef nonnull %59)
  %6090 = icmp eq i32 %6089, -1
  br i1 %6090, label %6091, label %6115

6091:                                             ; preds = %6086
  %6092 = tail call ptr @__errno_location() #13
  %6093 = load i32, ptr %6092, align 4, !tbaa !5
  %6094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6095 = call i32 @s2n_print_stacktrace(ptr noundef %6094) #12
  %6096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6097 = trunc nuw i8 %6096 to i1
  br i1 %6097, label %6098, label %6102

6098:                                             ; preds = %6091
  %6099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6100 = call i32 @fileno(ptr noundef %6099) #12
  %6101 = call i32 @isatty(i32 noundef %6100) #12
  %.not1150 = icmp eq i32 %6101, 0
  br i1 %.not1150, label %6102, label %6103

6102:                                             ; preds = %6098, %6091
  br label %6103

6103:                                             ; preds = %6098, %6102
  %.str.5.sink3499 = phi ptr [ @.str.5, %6102 ], [ @.str.2, %6098 ]
  store i32 %6093, ptr %6092, align 4, !tbaa !5
  %6104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6105 = load i32, ptr @test_count, align 4, !tbaa !5
  %6106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6107 = load i32, ptr %6106, align 4, !tbaa !5
  %6108 = call ptr @s2n_strerror(i32 noundef %6107, ptr noundef nonnull @.str.4) #12
  %6109 = load i32, ptr %6106, align 4, !tbaa !5
  %6110 = call ptr @s2n_strerror_debug(i32 noundef %6109, ptr noundef nonnull @.str.4) #12
  %6111 = load i32, ptr %6092, align 4, !tbaa !5
  %6112 = call ptr @strerror(i32 noundef %6111) #12
  %6113 = load i32, ptr %6092, align 4, !tbaa !5
  %6114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6104, ptr noundef nonnull %.str.5.sink3499, i32 noundef %6105, ptr noundef nonnull @.str.143, ptr noundef nonnull @.str.1, i32 noundef 664, ptr noundef %6108, ptr noundef %6110, ptr noundef %6112, i32 noundef %6113) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6115:                                             ; preds = %6086
  %6116 = load i32, ptr @test_count, align 4, !tbaa !5
  %6117 = add nsw i32 %6116, 1
  store i32 %6117, ptr @test_count, align 4, !tbaa !5
  %6118 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %61) #12
  %6119 = icmp eq i32 %6118, -1
  br i1 %6119, label %6120, label %6144

6120:                                             ; preds = %6115
  %6121 = tail call ptr @__errno_location() #13
  %6122 = load i32, ptr %6121, align 4, !tbaa !5
  %6123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6124 = call i32 @s2n_print_stacktrace(ptr noundef %6123) #12
  %6125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6126 = trunc nuw i8 %6125 to i1
  br i1 %6126, label %6127, label %6131

6127:                                             ; preds = %6120
  %6128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6129 = call i32 @fileno(ptr noundef %6128) #12
  %6130 = call i32 @isatty(i32 noundef %6129) #12
  %.not1149 = icmp eq i32 %6130, 0
  br i1 %.not1149, label %6131, label %6132

6131:                                             ; preds = %6127, %6120
  br label %6132

6132:                                             ; preds = %6127, %6131
  %.str.5.sink3510 = phi ptr [ @.str.5, %6131 ], [ @.str.2, %6127 ]
  store i32 %6122, ptr %6121, align 4, !tbaa !5
  %6133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6134 = load i32, ptr @test_count, align 4, !tbaa !5
  %6135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6136 = load i32, ptr %6135, align 4, !tbaa !5
  %6137 = call ptr @s2n_strerror(i32 noundef %6136, ptr noundef nonnull @.str.4) #12
  %6138 = load i32, ptr %6135, align 4, !tbaa !5
  %6139 = call ptr @s2n_strerror_debug(i32 noundef %6138, ptr noundef nonnull @.str.4) #12
  %6140 = load i32, ptr %6121, align 4, !tbaa !5
  %6141 = call ptr @strerror(i32 noundef %6140) #12
  %6142 = load i32, ptr %6121, align 4, !tbaa !5
  %6143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6133, ptr noundef nonnull %.str.5.sink3510, i32 noundef %6134, ptr noundef nonnull @.str.144, ptr noundef nonnull @.str.1, i32 noundef 665, ptr noundef %6137, ptr noundef %6139, ptr noundef %6141, i32 noundef %6142) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6144:                                             ; preds = %6115
  %6145 = load i32, ptr @test_count, align 4, !tbaa !5
  %6146 = add nsw i32 %6145, 1
  store i32 %6146, ptr @test_count, align 4, !tbaa !5
  %6147 = call i32 %181(ptr noundef nonnull %5741, ptr noundef nonnull %60) #12
  %6148 = icmp eq i32 %6147, -1
  br i1 %6148, label %6149, label %6173

6149:                                             ; preds = %6144
  %6150 = tail call ptr @__errno_location() #13
  %6151 = load i32, ptr %6150, align 4, !tbaa !5
  %6152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6153 = call i32 @s2n_print_stacktrace(ptr noundef %6152) #12
  %6154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6155 = trunc nuw i8 %6154 to i1
  br i1 %6155, label %6156, label %6160

6156:                                             ; preds = %6149
  %6157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6158 = call i32 @fileno(ptr noundef %6157) #12
  %6159 = call i32 @isatty(i32 noundef %6158) #12
  %.not1148 = icmp eq i32 %6159, 0
  br i1 %.not1148, label %6160, label %6161

6160:                                             ; preds = %6156, %6149
  br label %6161

6161:                                             ; preds = %6156, %6160
  %.str.5.sink3521 = phi ptr [ @.str.5, %6160 ], [ @.str.2, %6156 ]
  store i32 %6151, ptr %6150, align 4, !tbaa !5
  %6162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6163 = load i32, ptr @test_count, align 4, !tbaa !5
  %6164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6165 = load i32, ptr %6164, align 4, !tbaa !5
  %6166 = call ptr @s2n_strerror(i32 noundef %6165, ptr noundef nonnull @.str.4) #12
  %6167 = load i32, ptr %6164, align 4, !tbaa !5
  %6168 = call ptr @s2n_strerror_debug(i32 noundef %6167, ptr noundef nonnull @.str.4) #12
  %6169 = load i32, ptr %6150, align 4, !tbaa !5
  %6170 = call ptr @strerror(i32 noundef %6169) #12
  %6171 = load i32, ptr %6150, align 4, !tbaa !5
  %6172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6162, ptr noundef nonnull %.str.5.sink3521, i32 noundef %6163, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 667, ptr noundef %6166, ptr noundef %6168, ptr noundef %6170, i32 noundef %6171) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6173:                                             ; preds = %6144
  %6174 = load i32, ptr @test_count, align 4, !tbaa !5
  %6175 = add nsw i32 %6174, 1
  store i32 %6175, ptr @test_count, align 4, !tbaa !5
  %6176 = load i32, ptr %200, align 4, !tbaa !56
  %6177 = load i32, ptr %201, align 8, !tbaa !57
  %6178 = icmp eq i32 %6176, %6177
  br i1 %6178, label %6203, label %6179

6179:                                             ; preds = %6173
  %6180 = tail call ptr @__errno_location() #13
  %6181 = load i32, ptr %6180, align 4, !tbaa !5
  %6182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6183 = call i32 @s2n_print_stacktrace(ptr noundef %6182) #12
  %6184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6185 = trunc nuw i8 %6184 to i1
  br i1 %6185, label %6186, label %6190

6186:                                             ; preds = %6179
  %6187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6188 = call i32 @fileno(ptr noundef %6187) #12
  %6189 = call i32 @isatty(i32 noundef %6188) #12
  %.not1041 = icmp eq i32 %6189, 0
  br i1 %.not1041, label %6190, label %6191

6190:                                             ; preds = %6186, %6179
  br label %6191

6191:                                             ; preds = %6186, %6190
  %.str.5.sink3532 = phi ptr [ @.str.5, %6190 ], [ @.str.2, %6186 ]
  store i32 %6181, ptr %6180, align 4, !tbaa !5
  %6192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6193 = load i32, ptr @test_count, align 4, !tbaa !5
  %6194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6195 = load i32, ptr %6194, align 4, !tbaa !5
  %6196 = call ptr @s2n_strerror(i32 noundef %6195, ptr noundef nonnull @.str.4) #12
  %6197 = load i32, ptr %6194, align 4, !tbaa !5
  %6198 = call ptr @s2n_strerror_debug(i32 noundef %6197, ptr noundef nonnull @.str.4) #12
  %6199 = load i32, ptr %6180, align 4, !tbaa !5
  %6200 = call ptr @strerror(i32 noundef %6199) #12
  %6201 = load i32, ptr %6180, align 4, !tbaa !5
  %6202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6192, ptr noundef nonnull %.str.5.sink3532, i32 noundef %6193, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 668, ptr noundef %6196, ptr noundef %6198, ptr noundef %6200, i32 noundef %6201) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6203:                                             ; preds = %6173
  %6204 = add nsw i32 %6174, 2
  store i32 %6204, ptr @test_count, align 4, !tbaa !5
  %6205 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %5741, i32 noundef 16) #12
  br i1 %6205, label %6206, label %6230

6206:                                             ; preds = %6203
  %6207 = tail call ptr @__errno_location() #13
  %6208 = load i32, ptr %6207, align 4, !tbaa !5
  %6209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6210 = call i32 @s2n_print_stacktrace(ptr noundef %6209) #12
  %6211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6212 = trunc nuw i8 %6211 to i1
  br i1 %6212, label %6213, label %6217

6213:                                             ; preds = %6206
  %6214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6215 = call i32 @fileno(ptr noundef %6214) #12
  %6216 = call i32 @isatty(i32 noundef %6215) #12
  %.not1147 = icmp eq i32 %6216, 0
  br i1 %.not1147, label %6217, label %6218

6217:                                             ; preds = %6213, %6206
  br label %6218

6218:                                             ; preds = %6213, %6217
  %.str.5.sink3543 = phi ptr [ @.str.5, %6217 ], [ @.str.2, %6213 ]
  store i32 %6208, ptr %6207, align 4, !tbaa !5
  %6219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6220 = load i32, ptr @test_count, align 4, !tbaa !5
  %6221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6222 = load i32, ptr %6221, align 4, !tbaa !5
  %6223 = call ptr @s2n_strerror(i32 noundef %6222, ptr noundef nonnull @.str.4) #12
  %6224 = load i32, ptr %6221, align 4, !tbaa !5
  %6225 = call ptr @s2n_strerror_debug(i32 noundef %6224, ptr noundef nonnull @.str.4) #12
  %6226 = load i32, ptr %6207, align 4, !tbaa !5
  %6227 = call ptr @strerror(i32 noundef %6226) #12
  %6228 = load i32, ptr %6207, align 4, !tbaa !5
  %6229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6219, ptr noundef nonnull %.str.5.sink3543, i32 noundef %6220, ptr noundef nonnull @.str.145, ptr noundef nonnull @.str.1, i32 noundef 671, ptr noundef %6223, ptr noundef %6225, ptr noundef %6227, i32 noundef %6228) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6230:                                             ; preds = %6203
  %6231 = getelementptr inbounds i8, ptr %5741, i64 832
  %6232 = load i32, ptr @test_count, align 4, !tbaa !5
  %6233 = add nsw i32 %6232, 1
  store i32 %6233, ptr @test_count, align 4, !tbaa !5
  %6234 = load ptr, ptr %6231, align 8, !tbaa !63
  %6235 = load ptr, ptr %57, align 8, !tbaa !9
  %6236 = icmp eq ptr %6234, %6235
  br i1 %6236, label %6261, label %6237

6237:                                             ; preds = %6230
  %6238 = tail call ptr @__errno_location() #13
  %6239 = load i32, ptr %6238, align 4, !tbaa !5
  %6240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6241 = call i32 @s2n_print_stacktrace(ptr noundef %6240) #12
  %6242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6243 = trunc nuw i8 %6242 to i1
  br i1 %6243, label %6244, label %6248

6244:                                             ; preds = %6237
  %6245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6246 = call i32 @fileno(ptr noundef %6245) #12
  %6247 = call i32 @isatty(i32 noundef %6246) #12
  %.not1042 = icmp eq i32 %6247, 0
  br i1 %.not1042, label %6248, label %6249

6248:                                             ; preds = %6244, %6237
  br label %6249

6249:                                             ; preds = %6244, %6248
  %.str.5.sink3554 = phi ptr [ @.str.5, %6248 ], [ @.str.2, %6244 ]
  store i32 %6239, ptr %6238, align 4, !tbaa !5
  %6250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6251 = load i32, ptr @test_count, align 4, !tbaa !5
  %6252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6253 = load i32, ptr %6252, align 4, !tbaa !5
  %6254 = call ptr @s2n_strerror(i32 noundef %6253, ptr noundef nonnull @.str.4) #12
  %6255 = load i32, ptr %6252, align 4, !tbaa !5
  %6256 = call ptr @s2n_strerror_debug(i32 noundef %6255, ptr noundef nonnull @.str.4) #12
  %6257 = load i32, ptr %6238, align 4, !tbaa !5
  %6258 = call ptr @strerror(i32 noundef %6257) #12
  %6259 = load i32, ptr %6238, align 4, !tbaa !5
  %6260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6250, ptr noundef nonnull %.str.5.sink3554, i32 noundef %6251, ptr noundef nonnull @.str.146, ptr noundef nonnull @.str.1, i32 noundef 675, ptr noundef %6254, ptr noundef %6256, ptr noundef %6258, i32 noundef %6259) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6261:                                             ; preds = %6230
  %6262 = add nsw i32 %6232, 2
  store i32 %6262, ptr @test_count, align 4, !tbaa !5
  %6263 = getelementptr inbounds i8, ptr %5741, i64 848
  %6264 = load ptr, ptr %6263, align 8, !tbaa !93
  %6265 = icmp eq ptr %6264, null
  br i1 %6265, label %6266, label %6290

6266:                                             ; preds = %6261
  %6267 = tail call ptr @__errno_location() #13
  %6268 = load i32, ptr %6267, align 4, !tbaa !5
  %6269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6270 = call i32 @s2n_print_stacktrace(ptr noundef %6269) #12
  %6271 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6272 = trunc nuw i8 %6271 to i1
  br i1 %6272, label %6273, label %6277

6273:                                             ; preds = %6266
  %6274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6275 = call i32 @fileno(ptr noundef %6274) #12
  %6276 = call i32 @isatty(i32 noundef %6275) #12
  %.not1146 = icmp eq i32 %6276, 0
  br i1 %.not1146, label %6277, label %6278

6277:                                             ; preds = %6273, %6266
  br label %6278

6278:                                             ; preds = %6273, %6277
  %.str.5.sink3565 = phi ptr [ @.str.5, %6277 ], [ @.str.2, %6273 ]
  store i32 %6268, ptr %6267, align 4, !tbaa !5
  %6279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6280 = load i32, ptr @test_count, align 4, !tbaa !5
  %6281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6282 = load i32, ptr %6281, align 4, !tbaa !5
  %6283 = call ptr @s2n_strerror(i32 noundef %6282, ptr noundef nonnull @.str.4) #12
  %6284 = load i32, ptr %6281, align 4, !tbaa !5
  %6285 = call ptr @s2n_strerror_debug(i32 noundef %6284, ptr noundef nonnull @.str.4) #12
  %6286 = load i32, ptr %6267, align 4, !tbaa !5
  %6287 = call ptr @strerror(i32 noundef %6286) #12
  %6288 = load i32, ptr %6267, align 4, !tbaa !5
  %6289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6279, ptr noundef nonnull %.str.5.sink3565, i32 noundef %6280, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 676, ptr noundef %6283, ptr noundef %6285, ptr noundef %6287, i32 noundef %6288) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6290:                                             ; preds = %6261
  %6291 = add nsw i32 %6232, 3
  store i32 %6291, ptr @test_count, align 4, !tbaa !5
  %6292 = getelementptr inbounds i8, ptr %5741, i64 936
  %6293 = load ptr, ptr %6292, align 8, !tbaa !73
  %6294 = icmp eq ptr %6293, null
  br i1 %6294, label %6298, label %.preheader1325.preheader

.preheader1325.preheader:                         ; preds = %6290
  %6295 = add nsw i32 %6232, 4
  store i32 %6295, ptr @test_count, align 4, !tbaa !5
  %6296 = call i32 @s2n_kem_group_free(ptr noundef nonnull %59) #12
  %6297 = icmp eq i32 %6296, -1
  br i1 %6297, label %6331, label %.preheader1325.1

6298:                                             ; preds = %6290
  %6299 = tail call ptr @__errno_location() #13
  %6300 = load i32, ptr %6299, align 4, !tbaa !5
  %6301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6302 = call i32 @s2n_print_stacktrace(ptr noundef %6301) #12
  %6303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6304 = trunc nuw i8 %6303 to i1
  br i1 %6304, label %6305, label %6309

6305:                                             ; preds = %6298
  %6306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6307 = call i32 @fileno(ptr noundef %6306) #12
  %6308 = call i32 @isatty(i32 noundef %6307) #12
  %.not1145 = icmp eq i32 %6308, 0
  br i1 %.not1145, label %6309, label %6310

6309:                                             ; preds = %6305, %6298
  br label %6310

6310:                                             ; preds = %6305, %6309
  %.str.5.sink3576 = phi ptr [ @.str.5, %6309 ], [ @.str.2, %6305 ]
  store i32 %6300, ptr %6299, align 4, !tbaa !5
  %6311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6312 = load i32, ptr @test_count, align 4, !tbaa !5
  %6313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6314 = load i32, ptr %6313, align 4, !tbaa !5
  %6315 = call ptr @s2n_strerror(i32 noundef %6314, ptr noundef nonnull @.str.4) #12
  %6316 = load i32, ptr %6313, align 4, !tbaa !5
  %6317 = call ptr @s2n_strerror_debug(i32 noundef %6316, ptr noundef nonnull @.str.4) #12
  %6318 = load i32, ptr %6299, align 4, !tbaa !5
  %6319 = call ptr @strerror(i32 noundef %6318) #12
  %6320 = load i32, ptr %6299, align 4, !tbaa !5
  %6321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6311, ptr noundef nonnull %.str.5.sink3576, i32 noundef %6312, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.1, i32 noundef 677, ptr noundef %6315, ptr noundef %6317, ptr noundef %6319, i32 noundef %6320) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.preheader1325.1:                                 ; preds = %.preheader1325.preheader
  %6322 = load i32, ptr @test_count, align 4, !tbaa !5
  %6323 = add nsw i32 %6322, 1
  store i32 %6323, ptr @test_count, align 4, !tbaa !5
  %6324 = call i32 @s2n_kem_group_free(ptr noundef nonnull %198) #12
  %6325 = icmp eq i32 %6324, -1
  br i1 %6325, label %6331, label %6326

6326:                                             ; preds = %.preheader1325.1
  %6327 = load i32, ptr @test_count, align 4, !tbaa !5
  %6328 = add nsw i32 %6327, 1
  store i32 %6328, ptr @test_count, align 4, !tbaa !5
  %6329 = call i32 @s2n_stuffer_free(ptr noundef nonnull %60) #12
  %6330 = icmp eq i32 %6329, -1
  br i1 %6330, label %6355, label %6379

6331:                                             ; preds = %.preheader1325.1, %.preheader1325.preheader
  %6332 = tail call ptr @__errno_location() #13
  %6333 = load i32, ptr %6332, align 4, !tbaa !5
  %6334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6335 = call i32 @s2n_print_stacktrace(ptr noundef %6334) #12
  %6336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6337 = trunc nuw i8 %6336 to i1
  br i1 %6337, label %6338, label %6342

6338:                                             ; preds = %6331
  %6339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6340 = call i32 @fileno(ptr noundef %6339) #12
  %6341 = call i32 @isatty(i32 noundef %6340) #12
  %.not1144 = icmp eq i32 %6341, 0
  br i1 %.not1144, label %6342, label %6343

6342:                                             ; preds = %6338, %6331
  br label %6343

6343:                                             ; preds = %6338, %6342
  %.str.5.sink3587 = phi ptr [ @.str.5, %6342 ], [ @.str.2, %6338 ]
  store i32 %6333, ptr %6332, align 4, !tbaa !5
  %6344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6345 = load i32, ptr @test_count, align 4, !tbaa !5
  %6346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6347 = load i32, ptr %6346, align 4, !tbaa !5
  %6348 = call ptr @s2n_strerror(i32 noundef %6347, ptr noundef nonnull @.str.4) #12
  %6349 = load i32, ptr %6346, align 4, !tbaa !5
  %6350 = call ptr @s2n_strerror_debug(i32 noundef %6349, ptr noundef nonnull @.str.4) #12
  %6351 = load i32, ptr %6332, align 4, !tbaa !5
  %6352 = call ptr @strerror(i32 noundef %6351) #12
  %6353 = load i32, ptr %6332, align 4, !tbaa !5
  %6354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6344, ptr noundef nonnull %.str.5.sink3587, i32 noundef %6345, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.1, i32 noundef 680, ptr noundef %6348, ptr noundef %6350, ptr noundef %6352, i32 noundef %6353) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6355:                                             ; preds = %6326
  %6356 = tail call ptr @__errno_location() #13
  %6357 = load i32, ptr %6356, align 4, !tbaa !5
  %6358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6359 = call i32 @s2n_print_stacktrace(ptr noundef %6358) #12
  %6360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6361 = trunc nuw i8 %6360 to i1
  br i1 %6361, label %6362, label %6366

6362:                                             ; preds = %6355
  %6363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6364 = call i32 @fileno(ptr noundef %6363) #12
  %6365 = call i32 @isatty(i32 noundef %6364) #12
  %.not1143 = icmp eq i32 %6365, 0
  br i1 %.not1143, label %6366, label %6367

6366:                                             ; preds = %6362, %6355
  br label %6367

6367:                                             ; preds = %6362, %6366
  %.str.5.sink3598 = phi ptr [ @.str.5, %6366 ], [ @.str.2, %6362 ]
  store i32 %6357, ptr %6356, align 4, !tbaa !5
  %6368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6369 = load i32, ptr @test_count, align 4, !tbaa !5
  %6370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6371 = load i32, ptr %6370, align 4, !tbaa !5
  %6372 = call ptr @s2n_strerror(i32 noundef %6371, ptr noundef nonnull @.str.4) #12
  %6373 = load i32, ptr %6370, align 4, !tbaa !5
  %6374 = call ptr @s2n_strerror_debug(i32 noundef %6373, ptr noundef nonnull @.str.4) #12
  %6375 = load i32, ptr %6356, align 4, !tbaa !5
  %6376 = call ptr @strerror(i32 noundef %6375) #12
  %6377 = load i32, ptr %6356, align 4, !tbaa !5
  %6378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6368, ptr noundef nonnull %.str.5.sink3598, i32 noundef %6369, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.1, i32 noundef 682, ptr noundef %6372, ptr noundef %6374, ptr noundef %6376, i32 noundef %6377) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6379:                                             ; preds = %6326
  %6380 = load i32, ptr @test_count, align 4, !tbaa !5
  %6381 = add nsw i32 %6380, 1
  store i32 %6381, ptr @test_count, align 4, !tbaa !5
  %6382 = call i32 @s2n_connection_free(ptr noundef nonnull %5741) #12
  %6383 = icmp eq i32 %6382, -1
  br i1 %6383, label %6384, label %6408

6384:                                             ; preds = %6379
  %6385 = tail call ptr @__errno_location() #13
  %6386 = load i32, ptr %6385, align 4, !tbaa !5
  %6387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6388 = call i32 @s2n_print_stacktrace(ptr noundef %6387) #12
  %6389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6390 = trunc nuw i8 %6389 to i1
  br i1 %6390, label %6391, label %6395

6391:                                             ; preds = %6384
  %6392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6393 = call i32 @fileno(ptr noundef %6392) #12
  %6394 = call i32 @isatty(i32 noundef %6393) #12
  %.not1142 = icmp eq i32 %6394, 0
  br i1 %.not1142, label %6395, label %6396

6395:                                             ; preds = %6391, %6384
  br label %6396

6396:                                             ; preds = %6391, %6395
  %.str.5.sink3609 = phi ptr [ @.str.5, %6395 ], [ @.str.2, %6391 ]
  store i32 %6386, ptr %6385, align 4, !tbaa !5
  %6397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6398 = load i32, ptr @test_count, align 4, !tbaa !5
  %6399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6400 = load i32, ptr %6399, align 4, !tbaa !5
  %6401 = call ptr @s2n_strerror(i32 noundef %6400, ptr noundef nonnull @.str.4) #12
  %6402 = load i32, ptr %6399, align 4, !tbaa !5
  %6403 = call ptr @s2n_strerror_debug(i32 noundef %6402, ptr noundef nonnull @.str.4) #12
  %6404 = load i32, ptr %6385, align 4, !tbaa !5
  %6405 = call ptr @strerror(i32 noundef %6404) #12
  %6406 = load i32, ptr %6385, align 4, !tbaa !5
  %6407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6397, ptr noundef nonnull %.str.5.sink3609, i32 noundef %6398, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 683, ptr noundef %6401, ptr noundef %6403, ptr noundef %6405, i32 noundef %6406) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6408:                                             ; preds = %6379
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %60) #12
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %59) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #12
  br label %6409

6409:                                             ; preds = %5737, %6408
  %6410 = load i32, ptr @test_count, align 4, !tbaa !5
  %6411 = add nsw i32 %6410, 1
  store i32 %6411, ptr @test_count, align 4, !tbaa !5
  %6412 = load ptr, ptr %152, align 8, !tbaa !22
  %6413 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %6412, ptr noundef nonnull %3) #12
  %6414 = call zeroext i1 @s2n_result_is_ok(i32 %6413)
  br i1 %6414, label %6439, label %6415

6415:                                             ; preds = %6409
  %6416 = tail call ptr @__errno_location() #13
  %6417 = load i32, ptr %6416, align 4, !tbaa !5
  %6418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6419 = call i32 @s2n_print_stacktrace(ptr noundef %6418) #12
  %6420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6421 = trunc nuw i8 %6420 to i1
  br i1 %6421, label %6422, label %6426

6422:                                             ; preds = %6415
  %6423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6424 = call i32 @fileno(ptr noundef %6423) #12
  %6425 = call i32 @isatty(i32 noundef %6424) #12
  %.not1043 = icmp eq i32 %6425, 0
  br i1 %.not1043, label %6426, label %6427

6426:                                             ; preds = %6422, %6415
  br label %6427

6427:                                             ; preds = %6422, %6426
  %.str.5.sink3620 = phi ptr [ @.str.5, %6426 ], [ @.str.2, %6422 ]
  store i32 %6417, ptr %6416, align 4, !tbaa !5
  %6428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6429 = load i32, ptr @test_count, align 4, !tbaa !5
  %6430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6431 = load i32, ptr %6430, align 4, !tbaa !5
  %6432 = call ptr @s2n_strerror(i32 noundef %6431, ptr noundef nonnull @.str.4) #12
  %6433 = load i32, ptr %6430, align 4, !tbaa !5
  %6434 = call ptr @s2n_strerror_debug(i32 noundef %6433, ptr noundef nonnull @.str.4) #12
  %6435 = load i32, ptr %6416, align 4, !tbaa !5
  %6436 = call ptr @strerror(i32 noundef %6435) #12
  %6437 = load i32, ptr %6416, align 4, !tbaa !5
  %6438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6428, ptr noundef nonnull %.str.5.sink3620, i32 noundef %6429, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 690, ptr noundef %6432, ptr noundef %6434, ptr noundef %6436, i32 noundef %6437) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6439:                                             ; preds = %6409
  %6440 = load i32, ptr %3, align 4, !tbaa !5
  %6441 = icmp ugt i32 %6440, 1
  br i1 %6441, label %6442, label %7062

6442:                                             ; preds = %6439
  %6443 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %6444 = load i32, ptr @test_count, align 4, !tbaa !5
  %6445 = add nsw i32 %6444, 1
  store i32 %6445, ptr @test_count, align 4, !tbaa !5
  %6446 = icmp eq ptr %6443, null
  br i1 %6446, label %6447, label %6471

6447:                                             ; preds = %6442
  %6448 = tail call ptr @__errno_location() #13
  %6449 = load i32, ptr %6448, align 4, !tbaa !5
  %6450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6451 = call i32 @s2n_print_stacktrace(ptr noundef %6450) #12
  %6452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6453 = trunc nuw i8 %6452 to i1
  br i1 %6453, label %6454, label %6458

6454:                                             ; preds = %6447
  %6455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6456 = call i32 @fileno(ptr noundef %6455) #12
  %6457 = call i32 @isatty(i32 noundef %6456) #12
  %.not1141 = icmp eq i32 %6457, 0
  br i1 %.not1141, label %6458, label %6459

6458:                                             ; preds = %6454, %6447
  br label %6459

6459:                                             ; preds = %6454, %6458
  %.str.5.sink3631 = phi ptr [ @.str.5, %6458 ], [ @.str.2, %6454 ]
  store i32 %6449, ptr %6448, align 4, !tbaa !5
  %6460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6461 = load i32, ptr @test_count, align 4, !tbaa !5
  %6462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6463 = load i32, ptr %6462, align 4, !tbaa !5
  %6464 = call ptr @s2n_strerror(i32 noundef %6463, ptr noundef nonnull @.str.4) #12
  %6465 = load i32, ptr %6462, align 4, !tbaa !5
  %6466 = call ptr @s2n_strerror_debug(i32 noundef %6465, ptr noundef nonnull @.str.4) #12
  %6467 = load i32, ptr %6448, align 4, !tbaa !5
  %6468 = call ptr @strerror(i32 noundef %6467) #12
  %6469 = load i32, ptr %6448, align 4, !tbaa !5
  %6470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6460, ptr noundef nonnull %.str.5.sink3631, i32 noundef %6461, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 693, ptr noundef %6464, ptr noundef %6466, ptr noundef %6468, i32 noundef %6469) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6471:                                             ; preds = %6442
  %6472 = getelementptr inbounds i8, ptr %6443, i64 220
  store i8 34, ptr %6472, align 4, !tbaa !79
  %6473 = getelementptr inbounds i8, ptr %6443, i64 16
  store ptr %2, ptr %6473, align 8, !tbaa !28
  %6474 = add nsw i32 %6444, 2
  store i32 %6474, ptr @test_count, align 4, !tbaa !5
  %6475 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %6443) #12
  %6476 = call zeroext i1 @s2n_result_is_ok(i32 %6475)
  br i1 %6476, label %.preheader1323, label %6479

.preheader1323:                                   ; preds = %6471
  %6477 = getelementptr inbounds i8, ptr %6443, i64 944
  %6478 = load ptr, ptr %6477, align 8, !tbaa !9
  %.not1045 = icmp eq ptr %6478, null
  br i1 %.not1045, label %6507, label %6503

6479:                                             ; preds = %6471
  %6480 = tail call ptr @__errno_location() #13
  %6481 = load i32, ptr %6480, align 4, !tbaa !5
  %6482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6483 = call i32 @s2n_print_stacktrace(ptr noundef %6482) #12
  %6484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6485 = trunc nuw i8 %6484 to i1
  br i1 %6485, label %6486, label %6490

6486:                                             ; preds = %6479
  %6487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6488 = call i32 @fileno(ptr noundef %6487) #12
  %6489 = call i32 @isatty(i32 noundef %6488) #12
  %.not1044 = icmp eq i32 %6489, 0
  br i1 %.not1044, label %6490, label %6491

6490:                                             ; preds = %6486, %6479
  br label %6491

6491:                                             ; preds = %6486, %6490
  %.str.5.sink3642 = phi ptr [ @.str.5, %6490 ], [ @.str.2, %6486 ]
  store i32 %6481, ptr %6480, align 4, !tbaa !5
  %6492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6493 = load i32, ptr @test_count, align 4, !tbaa !5
  %6494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6495 = load i32, ptr %6494, align 4, !tbaa !5
  %6496 = call ptr @s2n_strerror(i32 noundef %6495, ptr noundef nonnull @.str.4) #12
  %6497 = load i32, ptr %6494, align 4, !tbaa !5
  %6498 = call ptr @s2n_strerror_debug(i32 noundef %6497, ptr noundef nonnull @.str.4) #12
  %6499 = load i32, ptr %6480, align 4, !tbaa !5
  %6500 = call ptr @strerror(i32 noundef %6499) #12
  %6501 = load i32, ptr %6480, align 4, !tbaa !5
  %6502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6492, ptr noundef nonnull %.str.5.sink3642, i32 noundef %6493, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 698, ptr noundef %6496, ptr noundef %6498, ptr noundef %6500, i32 noundef %6501) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6503:                                             ; preds = %.preheader1323
  %6504 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %6478) #12
  br i1 %6504, label %6505, label %6507

6505:                                             ; preds = %6540, %6535, %6530, %6525, %6520, %6515, %6510, %6503
  %.lcssa = phi i64 [ 0, %6503 ], [ 1, %6510 ], [ 2, %6515 ], [ 3, %6520 ], [ 4, %6525 ], [ 5, %6530 ], [ 6, %6535 ], [ 7, %6540 ]
  %6506 = getelementptr inbounds [8 x ptr], ptr %6477, i64 0, i64 %.lcssa
  store ptr null, ptr %6506, align 8, !tbaa !9
  br label %.loopexit1324

6507:                                             ; preds = %.preheader1323, %6503
  %6508 = getelementptr inbounds i8, ptr %6443, i64 952
  %6509 = load ptr, ptr %6508, align 8, !tbaa !9
  %.not1045.1 = icmp eq ptr %6509, null
  br i1 %.not1045.1, label %6512, label %6510

6510:                                             ; preds = %6507
  %6511 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %6509) #12
  br i1 %6511, label %6505, label %6512

6512:                                             ; preds = %6510, %6507
  %6513 = getelementptr inbounds i8, ptr %6443, i64 960
  %6514 = load ptr, ptr %6513, align 8, !tbaa !9
  %.not1045.2 = icmp eq ptr %6514, null
  br i1 %.not1045.2, label %6517, label %6515

6515:                                             ; preds = %6512
  %6516 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %6514) #12
  br i1 %6516, label %6505, label %6517

6517:                                             ; preds = %6515, %6512
  %6518 = getelementptr inbounds i8, ptr %6443, i64 968
  %6519 = load ptr, ptr %6518, align 8, !tbaa !9
  %.not1045.3 = icmp eq ptr %6519, null
  br i1 %.not1045.3, label %6522, label %6520

6520:                                             ; preds = %6517
  %6521 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %6519) #12
  br i1 %6521, label %6505, label %6522

6522:                                             ; preds = %6520, %6517
  %6523 = getelementptr inbounds i8, ptr %6443, i64 976
  %6524 = load ptr, ptr %6523, align 8, !tbaa !9
  %.not1045.4 = icmp eq ptr %6524, null
  br i1 %.not1045.4, label %6527, label %6525

6525:                                             ; preds = %6522
  %6526 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %6524) #12
  br i1 %6526, label %6505, label %6527

6527:                                             ; preds = %6525, %6522
  %6528 = getelementptr inbounds i8, ptr %6443, i64 984
  %6529 = load ptr, ptr %6528, align 8, !tbaa !9
  %.not1045.5 = icmp eq ptr %6529, null
  br i1 %.not1045.5, label %6532, label %6530

6530:                                             ; preds = %6527
  %6531 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %6529) #12
  br i1 %6531, label %6505, label %6532

6532:                                             ; preds = %6530, %6527
  %6533 = getelementptr inbounds i8, ptr %6443, i64 992
  %6534 = load ptr, ptr %6533, align 8, !tbaa !9
  %.not1045.6 = icmp eq ptr %6534, null
  br i1 %.not1045.6, label %6537, label %6535

6535:                                             ; preds = %6532
  %6536 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %6534) #12
  br i1 %6536, label %6505, label %6537

6537:                                             ; preds = %6535, %6532
  %6538 = getelementptr inbounds i8, ptr %6443, i64 1000
  %6539 = load ptr, ptr %6538, align 8, !tbaa !9
  %.not1045.7 = icmp eq ptr %6539, null
  br i1 %.not1045.7, label %.loopexit1324, label %6540

6540:                                             ; preds = %6537
  %6541 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %6539) #12
  br i1 %6541, label %6505, label %.loopexit1324

.loopexit1324:                                    ; preds = %6537, %6540, %6505
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #12
  store ptr null, ptr %62, align 8, !tbaa !9
  %6542 = load i32, ptr @test_count, align 4, !tbaa !5
  %6543 = add nsw i32 %6542, 1
  store i32 %6543, ptr @test_count, align 4, !tbaa !5
  %6544 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %6443, ptr noundef nonnull %62) #12
  %6545 = icmp eq i32 %6544, -1
  br i1 %6545, label %6546, label %6570

6546:                                             ; preds = %.loopexit1324
  %6547 = tail call ptr @__errno_location() #13
  %6548 = load i32, ptr %6547, align 4, !tbaa !5
  %6549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6550 = call i32 @s2n_print_stacktrace(ptr noundef %6549) #12
  %6551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6552 = trunc nuw i8 %6551 to i1
  br i1 %6552, label %6553, label %6557

6553:                                             ; preds = %6546
  %6554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6555 = call i32 @fileno(ptr noundef %6554) #12
  %6556 = call i32 @isatty(i32 noundef %6555) #12
  %.not1140 = icmp eq i32 %6556, 0
  br i1 %.not1140, label %6557, label %6558

6557:                                             ; preds = %6553, %6546
  br label %6558

6558:                                             ; preds = %6553, %6557
  %.str.5.sink3653 = phi ptr [ @.str.5, %6557 ], [ @.str.2, %6553 ]
  store i32 %6548, ptr %6547, align 4, !tbaa !5
  %6559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6560 = load i32, ptr @test_count, align 4, !tbaa !5
  %6561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6562 = load i32, ptr %6561, align 4, !tbaa !5
  %6563 = call ptr @s2n_strerror(i32 noundef %6562, ptr noundef nonnull @.str.4) #12
  %6564 = load i32, ptr %6561, align 4, !tbaa !5
  %6565 = call ptr @s2n_strerror_debug(i32 noundef %6564, ptr noundef nonnull @.str.4) #12
  %6566 = load i32, ptr %6547, align 4, !tbaa !5
  %6567 = call ptr @strerror(i32 noundef %6566) #12
  %6568 = load i32, ptr %6547, align 4, !tbaa !5
  %6569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6559, ptr noundef nonnull %.str.5.sink3653, i32 noundef %6560, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.1, i32 noundef 708, ptr noundef %6563, ptr noundef %6565, ptr noundef %6567, i32 noundef %6568) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6570:                                             ; preds = %.loopexit1324
  %6571 = load i32, ptr @test_count, align 4, !tbaa !5
  %6572 = add nsw i32 %6571, 1
  store i32 %6572, ptr @test_count, align 4, !tbaa !5
  %6573 = load ptr, ptr %62, align 8, !tbaa !9
  %6574 = icmp eq ptr %6573, null
  br i1 %6574, label %6575, label %6599

6575:                                             ; preds = %6570
  %6576 = tail call ptr @__errno_location() #13
  %6577 = load i32, ptr %6576, align 4, !tbaa !5
  %6578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6579 = call i32 @s2n_print_stacktrace(ptr noundef %6578) #12
  %6580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6581 = trunc nuw i8 %6580 to i1
  br i1 %6581, label %6582, label %6586

6582:                                             ; preds = %6575
  %6583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6584 = call i32 @fileno(ptr noundef %6583) #12
  %6585 = call i32 @isatty(i32 noundef %6584) #12
  %.not1139 = icmp eq i32 %6585, 0
  br i1 %.not1139, label %6586, label %6587

6586:                                             ; preds = %6582, %6575
  br label %6587

6587:                                             ; preds = %6582, %6586
  %.str.5.sink3664 = phi ptr [ @.str.5, %6586 ], [ @.str.2, %6582 ]
  store i32 %6577, ptr %6576, align 4, !tbaa !5
  %6588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6589 = load i32, ptr @test_count, align 4, !tbaa !5
  %6590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6591 = load i32, ptr %6590, align 4, !tbaa !5
  %6592 = call ptr @s2n_strerror(i32 noundef %6591, ptr noundef nonnull @.str.4) #12
  %6593 = load i32, ptr %6590, align 4, !tbaa !5
  %6594 = call ptr @s2n_strerror_debug(i32 noundef %6593, ptr noundef nonnull @.str.4) #12
  %6595 = load i32, ptr %6576, align 4, !tbaa !5
  %6596 = call ptr @strerror(i32 noundef %6595) #12
  %6597 = load i32, ptr %6576, align 4, !tbaa !5
  %6598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6588, ptr noundef nonnull %.str.5.sink3664, i32 noundef %6589, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 709, ptr noundef %6592, ptr noundef %6594, ptr noundef %6596, i32 noundef %6597) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6599:                                             ; preds = %6570
  %6600 = add nsw i32 %6571, 2
  store i32 %6600, ptr @test_count, align 4, !tbaa !5
  %6601 = call i32 @s2n_kem_preferences_groups_available(ptr noundef nonnull %6573, ptr noundef nonnull %3) #12
  %6602 = call zeroext i1 @s2n_result_is_ok(i32 %6601)
  br i1 %6602, label %6627, label %6603

6603:                                             ; preds = %6599
  %6604 = tail call ptr @__errno_location() #13
  %6605 = load i32, ptr %6604, align 4, !tbaa !5
  %6606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6607 = call i32 @s2n_print_stacktrace(ptr noundef %6606) #12
  %6608 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6609 = trunc nuw i8 %6608 to i1
  br i1 %6609, label %6610, label %6614

6610:                                             ; preds = %6603
  %6611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6612 = call i32 @fileno(ptr noundef %6611) #12
  %6613 = call i32 @isatty(i32 noundef %6612) #12
  %.not1046 = icmp eq i32 %6613, 0
  br i1 %.not1046, label %6614, label %6615

6614:                                             ; preds = %6610, %6603
  br label %6615

6615:                                             ; preds = %6610, %6614
  %.str.5.sink3675 = phi ptr [ @.str.5, %6614 ], [ @.str.2, %6610 ]
  store i32 %6605, ptr %6604, align 4, !tbaa !5
  %6616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6617 = load i32, ptr @test_count, align 4, !tbaa !5
  %6618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6619 = load i32, ptr %6618, align 4, !tbaa !5
  %6620 = call ptr @s2n_strerror(i32 noundef %6619, ptr noundef nonnull @.str.4) #12
  %6621 = load i32, ptr %6618, align 4, !tbaa !5
  %6622 = call ptr @s2n_strerror_debug(i32 noundef %6621, ptr noundef nonnull @.str.4) #12
  %6623 = load i32, ptr %6604, align 4, !tbaa !5
  %6624 = call ptr @strerror(i32 noundef %6623) #12
  %6625 = load i32, ptr %6604, align 4, !tbaa !5
  %6626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6616, ptr noundef nonnull %.str.5.sink3675, i32 noundef %6617, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.1, i32 noundef 710, ptr noundef %6620, ptr noundef %6622, ptr noundef %6624, i32 noundef %6625) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6627:                                             ; preds = %6599
  %6628 = load i32, ptr @test_count, align 4, !tbaa !5
  %6629 = add nsw i32 %6628, 1
  store i32 %6629, ptr @test_count, align 4, !tbaa !5
  %6630 = load i32, ptr %3, align 4, !tbaa !5
  %6631 = icmp ugt i32 %6630, 1
  br i1 %6631, label %6656, label %6632

6632:                                             ; preds = %6627
  %6633 = tail call ptr @__errno_location() #13
  %6634 = load i32, ptr %6633, align 4, !tbaa !5
  %6635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6636 = call i32 @s2n_print_stacktrace(ptr noundef %6635) #12
  %6637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6638 = trunc nuw i8 %6637 to i1
  br i1 %6638, label %6639, label %6643

6639:                                             ; preds = %6632
  %6640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6641 = call i32 @fileno(ptr noundef %6640) #12
  %6642 = call i32 @isatty(i32 noundef %6641) #12
  %.not1047 = icmp eq i32 %6642, 0
  br i1 %.not1047, label %6643, label %6644

6643:                                             ; preds = %6639, %6632
  br label %6644

6644:                                             ; preds = %6639, %6643
  %.str.5.sink3686 = phi ptr [ @.str.5, %6643 ], [ @.str.2, %6639 ]
  store i32 %6634, ptr %6633, align 4, !tbaa !5
  %6645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6646 = load i32, ptr @test_count, align 4, !tbaa !5
  %6647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6648 = load i32, ptr %6647, align 4, !tbaa !5
  %6649 = call ptr @s2n_strerror(i32 noundef %6648, ptr noundef nonnull @.str.4) #12
  %6650 = load i32, ptr %6647, align 4, !tbaa !5
  %6651 = call ptr @s2n_strerror_debug(i32 noundef %6650, ptr noundef nonnull @.str.4) #12
  %6652 = load i32, ptr %6633, align 4, !tbaa !5
  %6653 = call ptr @strerror(i32 noundef %6652) #12
  %6654 = load i32, ptr %6633, align 4, !tbaa !5
  %6655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6645, ptr noundef nonnull %.str.5.sink3686, i32 noundef %6646, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.1, i32 noundef 711, ptr noundef %6649, ptr noundef %6651, ptr noundef %6653, i32 noundef %6654) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6656:                                             ; preds = %6627
  %6657 = load ptr, ptr %62, align 8, !tbaa !9
  %6658 = call ptr @s2n_kem_preferences_get_highest_priority_group(ptr noundef %6657) #12
  %6659 = load i32, ptr @test_count, align 4, !tbaa !5
  %6660 = add nsw i32 %6659, 1
  store i32 %6660, ptr @test_count, align 4, !tbaa !5
  %6661 = icmp eq ptr %6658, null
  br i1 %6661, label %6662, label %6686

6662:                                             ; preds = %6656
  %6663 = tail call ptr @__errno_location() #13
  %6664 = load i32, ptr %6663, align 4, !tbaa !5
  %6665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6666 = call i32 @s2n_print_stacktrace(ptr noundef %6665) #12
  %6667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6668 = trunc nuw i8 %6667 to i1
  br i1 %6668, label %6669, label %6673

6669:                                             ; preds = %6662
  %6670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6671 = call i32 @fileno(ptr noundef %6670) #12
  %6672 = call i32 @isatty(i32 noundef %6671) #12
  %.not1138 = icmp eq i32 %6672, 0
  br i1 %.not1138, label %6673, label %6674

6673:                                             ; preds = %6669, %6662
  br label %6674

6674:                                             ; preds = %6669, %6673
  %.str.5.sink3697 = phi ptr [ @.str.5, %6673 ], [ @.str.2, %6669 ]
  store i32 %6664, ptr %6663, align 4, !tbaa !5
  %6675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6676 = load i32, ptr @test_count, align 4, !tbaa !5
  %6677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6678 = load i32, ptr %6677, align 4, !tbaa !5
  %6679 = call ptr @s2n_strerror(i32 noundef %6678, ptr noundef nonnull @.str.4) #12
  %6680 = load i32, ptr %6677, align 4, !tbaa !5
  %6681 = call ptr @s2n_strerror_debug(i32 noundef %6680, ptr noundef nonnull @.str.4) #12
  %6682 = load i32, ptr %6663, align 4, !tbaa !5
  %6683 = call ptr @strerror(i32 noundef %6682) #12
  %6684 = load i32, ptr %6663, align 4, !tbaa !5
  %6685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6675, ptr noundef nonnull %.str.5.sink3697, i32 noundef %6676, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.1, i32 noundef 715, ptr noundef %6679, ptr noundef %6681, ptr noundef %6683, i32 noundef %6684) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6686:                                             ; preds = %6656
  call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %63) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %234, i8 0, i64 104, i1 false)
  store ptr %6658, ptr %63, align 8, !tbaa !63
  store i8 %.01346, ptr %202, align 8, !tbaa !98
  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)
  %6687 = add nsw i32 %6659, 2
  store i32 %6687, ptr @test_count, align 4, !tbaa !5
  %6688 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %64, i32 noundef 8192) #12
  %6689 = icmp eq i32 %6688, -1
  br i1 %6689, label %6690, label %6714

6690:                                             ; preds = %6686
  %6691 = tail call ptr @__errno_location() #13
  %6692 = load i32, ptr %6691, align 4, !tbaa !5
  %6693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6694 = call i32 @s2n_print_stacktrace(ptr noundef %6693) #12
  %6695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6696 = trunc nuw i8 %6695 to i1
  br i1 %6696, label %6697, label %6701

6697:                                             ; preds = %6690
  %6698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6699 = call i32 @fileno(ptr noundef %6698) #12
  %6700 = call i32 @isatty(i32 noundef %6699) #12
  %.not1137 = icmp eq i32 %6700, 0
  br i1 %.not1137, label %6701, label %6702

6701:                                             ; preds = %6697, %6690
  br label %6702

6702:                                             ; preds = %6697, %6701
  %.str.5.sink3708 = phi ptr [ @.str.5, %6701 ], [ @.str.2, %6697 ]
  store i32 %6692, ptr %6691, align 4, !tbaa !5
  %6703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6704 = load i32, ptr @test_count, align 4, !tbaa !5
  %6705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6706 = load i32, ptr %6705, align 4, !tbaa !5
  %6707 = call ptr @s2n_strerror(i32 noundef %6706, ptr noundef nonnull @.str.4) #12
  %6708 = load i32, ptr %6705, align 4, !tbaa !5
  %6709 = call ptr @s2n_strerror_debug(i32 noundef %6708, ptr noundef nonnull @.str.4) #12
  %6710 = load i32, ptr %6691, align 4, !tbaa !5
  %6711 = call ptr @strerror(i32 noundef %6710) #12
  %6712 = load i32, ptr %6691, align 4, !tbaa !5
  %6713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6703, ptr noundef nonnull %.str.5.sink3708, i32 noundef %6704, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 723, ptr noundef %6707, ptr noundef %6709, ptr noundef %6711, i32 noundef %6712) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6714:                                             ; preds = %6686
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %65) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %65, i8 0, i64 16, i1 false)
  %6715 = load i32, ptr @test_count, align 4, !tbaa !5
  %6716 = add nsw i32 %6715, 1
  store i32 %6716, ptr @test_count, align 4, !tbaa !5
  %6717 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %64, ptr noundef nonnull %65) #12
  %6718 = icmp eq i32 %6717, -1
  br i1 %6718, label %6719, label %6743

6719:                                             ; preds = %6714
  %6720 = tail call ptr @__errno_location() #13
  %6721 = load i32, ptr %6720, align 4, !tbaa !5
  %6722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6723 = call i32 @s2n_print_stacktrace(ptr noundef %6722) #12
  %6724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6725 = trunc nuw i8 %6724 to i1
  br i1 %6725, label %6726, label %6730

6726:                                             ; preds = %6719
  %6727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6728 = call i32 @fileno(ptr noundef %6727) #12
  %6729 = call i32 @isatty(i32 noundef %6728) #12
  %.not1136 = icmp eq i32 %6729, 0
  br i1 %.not1136, label %6730, label %6731

6730:                                             ; preds = %6726, %6719
  br label %6731

6731:                                             ; preds = %6726, %6730
  %.str.5.sink3719 = phi ptr [ @.str.5, %6730 ], [ @.str.2, %6726 ]
  store i32 %6721, ptr %6720, align 4, !tbaa !5
  %6732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6733 = load i32, ptr @test_count, align 4, !tbaa !5
  %6734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6735 = load i32, ptr %6734, align 4, !tbaa !5
  %6736 = call ptr @s2n_strerror(i32 noundef %6735, ptr noundef nonnull @.str.4) #12
  %6737 = load i32, ptr %6734, align 4, !tbaa !5
  %6738 = call ptr @s2n_strerror_debug(i32 noundef %6737, ptr noundef nonnull @.str.4) #12
  %6739 = load i32, ptr %6720, align 4, !tbaa !5
  %6740 = call ptr @strerror(i32 noundef %6739) #12
  %6741 = load i32, ptr %6720, align 4, !tbaa !5
  %6742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6732, ptr noundef nonnull %.str.5.sink3719, i32 noundef %6733, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 726, ptr noundef %6736, ptr noundef %6738, ptr noundef %6740, i32 noundef %6741) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6743:                                             ; preds = %6714
  %6744 = load i32, ptr @test_count, align 4, !tbaa !5
  %6745 = add nsw i32 %6744, 1
  store i32 %6745, ptr @test_count, align 4, !tbaa !5
  %6746 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef nonnull %64, ptr noundef nonnull %63)
  %6747 = icmp eq i32 %6746, -1
  br i1 %6747, label %6748, label %6772

6748:                                             ; preds = %6743
  %6749 = tail call ptr @__errno_location() #13
  %6750 = load i32, ptr %6749, align 4, !tbaa !5
  %6751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6752 = call i32 @s2n_print_stacktrace(ptr noundef %6751) #12
  %6753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6754 = trunc nuw i8 %6753 to i1
  br i1 %6754, label %6755, label %6759

6755:                                             ; preds = %6748
  %6756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6757 = call i32 @fileno(ptr noundef %6756) #12
  %6758 = call i32 @isatty(i32 noundef %6757) #12
  %.not1135 = icmp eq i32 %6758, 0
  br i1 %.not1135, label %6759, label %6760

6759:                                             ; preds = %6755, %6748
  br label %6760

6760:                                             ; preds = %6755, %6759
  %.str.5.sink3730 = phi ptr [ @.str.5, %6759 ], [ @.str.2, %6755 ]
  store i32 %6750, ptr %6749, align 4, !tbaa !5
  %6761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6762 = load i32, ptr @test_count, align 4, !tbaa !5
  %6763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6764 = load i32, ptr %6763, align 4, !tbaa !5
  %6765 = call ptr @s2n_strerror(i32 noundef %6764, ptr noundef nonnull @.str.4) #12
  %6766 = load i32, ptr %6763, align 4, !tbaa !5
  %6767 = call ptr @s2n_strerror_debug(i32 noundef %6766, ptr noundef nonnull @.str.4) #12
  %6768 = load i32, ptr %6749, align 4, !tbaa !5
  %6769 = call ptr @strerror(i32 noundef %6768) #12
  %6770 = load i32, ptr %6749, align 4, !tbaa !5
  %6771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6761, ptr noundef nonnull %.str.5.sink3730, i32 noundef %6762, ptr noundef nonnull @.str.151, ptr noundef nonnull @.str.1, i32 noundef 727, ptr noundef %6765, ptr noundef %6767, ptr noundef %6769, i32 noundef %6770) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6772:                                             ; preds = %6743
  %6773 = load i32, ptr @test_count, align 4, !tbaa !5
  %6774 = add nsw i32 %6773, 1
  store i32 %6774, ptr @test_count, align 4, !tbaa !5
  %6775 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %65) #12
  %6776 = icmp eq i32 %6775, -1
  br i1 %6776, label %6777, label %6801

6777:                                             ; preds = %6772
  %6778 = tail call ptr @__errno_location() #13
  %6779 = load i32, ptr %6778, align 4, !tbaa !5
  %6780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6781 = call i32 @s2n_print_stacktrace(ptr noundef %6780) #12
  %6782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6783 = trunc nuw i8 %6782 to i1
  br i1 %6783, label %6784, label %6788

6784:                                             ; preds = %6777
  %6785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6786 = call i32 @fileno(ptr noundef %6785) #12
  %6787 = call i32 @isatty(i32 noundef %6786) #12
  %.not1134 = icmp eq i32 %6787, 0
  br i1 %.not1134, label %6788, label %6789

6788:                                             ; preds = %6784, %6777
  br label %6789

6789:                                             ; preds = %6784, %6788
  %.str.5.sink3741 = phi ptr [ @.str.5, %6788 ], [ @.str.2, %6784 ]
  store i32 %6779, ptr %6778, align 4, !tbaa !5
  %6790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6791 = load i32, ptr @test_count, align 4, !tbaa !5
  %6792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6793 = load i32, ptr %6792, align 4, !tbaa !5
  %6794 = call ptr @s2n_strerror(i32 noundef %6793, ptr noundef nonnull @.str.4) #12
  %6795 = load i32, ptr %6792, align 4, !tbaa !5
  %6796 = call ptr @s2n_strerror_debug(i32 noundef %6795, ptr noundef nonnull @.str.4) #12
  %6797 = load i32, ptr %6778, align 4, !tbaa !5
  %6798 = call ptr @strerror(i32 noundef %6797) #12
  %6799 = load i32, ptr %6778, align 4, !tbaa !5
  %6800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6790, ptr noundef nonnull %.str.5.sink3741, i32 noundef %6791, ptr noundef nonnull @.str.144, ptr noundef nonnull @.str.1, i32 noundef 728, ptr noundef %6794, ptr noundef %6796, ptr noundef %6798, i32 noundef %6799) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6801:                                             ; preds = %6772
  %6802 = load i32, ptr @test_count, align 4, !tbaa !5
  %6803 = add nsw i32 %6802, 1
  store i32 %6803, ptr @test_count, align 4, !tbaa !5
  %6804 = call i32 %181(ptr noundef nonnull %6443, ptr noundef nonnull %64) #12
  %6805 = icmp eq i32 %6804, -1
  br i1 %6805, label %6806, label %6830

6806:                                             ; preds = %6801
  %6807 = tail call ptr @__errno_location() #13
  %6808 = load i32, ptr %6807, align 4, !tbaa !5
  %6809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6810 = call i32 @s2n_print_stacktrace(ptr noundef %6809) #12
  %6811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6812 = trunc nuw i8 %6811 to i1
  br i1 %6812, label %6813, label %6817

6813:                                             ; preds = %6806
  %6814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6815 = call i32 @fileno(ptr noundef %6814) #12
  %6816 = call i32 @isatty(i32 noundef %6815) #12
  %.not1133 = icmp eq i32 %6816, 0
  br i1 %.not1133, label %6817, label %6818

6817:                                             ; preds = %6813, %6806
  br label %6818

6818:                                             ; preds = %6813, %6817
  %.str.5.sink3752 = phi ptr [ @.str.5, %6817 ], [ @.str.2, %6813 ]
  store i32 %6808, ptr %6807, align 4, !tbaa !5
  %6819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6820 = load i32, ptr @test_count, align 4, !tbaa !5
  %6821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6822 = load i32, ptr %6821, align 4, !tbaa !5
  %6823 = call ptr @s2n_strerror(i32 noundef %6822, ptr noundef nonnull @.str.4) #12
  %6824 = load i32, ptr %6821, align 4, !tbaa !5
  %6825 = call ptr @s2n_strerror_debug(i32 noundef %6824, ptr noundef nonnull @.str.4) #12
  %6826 = load i32, ptr %6807, align 4, !tbaa !5
  %6827 = call ptr @strerror(i32 noundef %6826) #12
  %6828 = load i32, ptr %6807, align 4, !tbaa !5
  %6829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6819, ptr noundef nonnull %.str.5.sink3752, i32 noundef %6820, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 730, ptr noundef %6823, ptr noundef %6825, ptr noundef %6827, i32 noundef %6828) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6830:                                             ; preds = %6801
  %6831 = load i32, ptr @test_count, align 4, !tbaa !5
  %6832 = add nsw i32 %6831, 1
  store i32 %6832, ptr @test_count, align 4, !tbaa !5
  %6833 = load i32, ptr %203, align 4, !tbaa !56
  %6834 = load i32, ptr %204, align 8, !tbaa !57
  %6835 = icmp eq i32 %6833, %6834
  br i1 %6835, label %6860, label %6836

6836:                                             ; preds = %6830
  %6837 = tail call ptr @__errno_location() #13
  %6838 = load i32, ptr %6837, align 4, !tbaa !5
  %6839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6840 = call i32 @s2n_print_stacktrace(ptr noundef %6839) #12
  %6841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6842 = trunc nuw i8 %6841 to i1
  br i1 %6842, label %6843, label %6847

6843:                                             ; preds = %6836
  %6844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6845 = call i32 @fileno(ptr noundef %6844) #12
  %6846 = call i32 @isatty(i32 noundef %6845) #12
  %.not1048 = icmp eq i32 %6846, 0
  br i1 %.not1048, label %6847, label %6848

6847:                                             ; preds = %6843, %6836
  br label %6848

6848:                                             ; preds = %6843, %6847
  %.str.5.sink3763 = phi ptr [ @.str.5, %6847 ], [ @.str.2, %6843 ]
  store i32 %6838, ptr %6837, align 4, !tbaa !5
  %6849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6850 = load i32, ptr @test_count, align 4, !tbaa !5
  %6851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6852 = load i32, ptr %6851, align 4, !tbaa !5
  %6853 = call ptr @s2n_strerror(i32 noundef %6852, ptr noundef nonnull @.str.4) #12
  %6854 = load i32, ptr %6851, align 4, !tbaa !5
  %6855 = call ptr @s2n_strerror_debug(i32 noundef %6854, ptr noundef nonnull @.str.4) #12
  %6856 = load i32, ptr %6837, align 4, !tbaa !5
  %6857 = call ptr @strerror(i32 noundef %6856) #12
  %6858 = load i32, ptr %6837, align 4, !tbaa !5
  %6859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6849, ptr noundef nonnull %.str.5.sink3763, i32 noundef %6850, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 731, ptr noundef %6853, ptr noundef %6855, ptr noundef %6857, i32 noundef %6858) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6860:                                             ; preds = %6830
  %6861 = add nsw i32 %6831, 2
  store i32 %6861, ptr @test_count, align 4, !tbaa !5
  %6862 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %6443, i32 noundef 16) #12
  br i1 %6862, label %6887, label %6863

6863:                                             ; preds = %6860
  %6864 = tail call ptr @__errno_location() #13
  %6865 = load i32, ptr %6864, align 4, !tbaa !5
  %6866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6867 = call i32 @s2n_print_stacktrace(ptr noundef %6866) #12
  %6868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6869 = trunc nuw i8 %6868 to i1
  br i1 %6869, label %6870, label %6874

6870:                                             ; preds = %6863
  %6871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6872 = call i32 @fileno(ptr noundef %6871) #12
  %6873 = call i32 @isatty(i32 noundef %6872) #12
  %.not1049 = icmp eq i32 %6873, 0
  br i1 %.not1049, label %6874, label %6875

6874:                                             ; preds = %6870, %6863
  br label %6875

6875:                                             ; preds = %6870, %6874
  %.str.5.sink3774 = phi ptr [ @.str.5, %6874 ], [ @.str.2, %6870 ]
  store i32 %6865, ptr %6864, align 4, !tbaa !5
  %6876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6877 = load i32, ptr @test_count, align 4, !tbaa !5
  %6878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6879 = load i32, ptr %6878, align 4, !tbaa !5
  %6880 = call ptr @s2n_strerror(i32 noundef %6879, ptr noundef nonnull @.str.4) #12
  %6881 = load i32, ptr %6878, align 4, !tbaa !5
  %6882 = call ptr @s2n_strerror_debug(i32 noundef %6881, ptr noundef nonnull @.str.4) #12
  %6883 = load i32, ptr %6864, align 4, !tbaa !5
  %6884 = call ptr @strerror(i32 noundef %6883) #12
  %6885 = load i32, ptr %6864, align 4, !tbaa !5
  %6886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6876, ptr noundef nonnull %.str.5.sink3774, i32 noundef %6877, ptr noundef nonnull @.str.152, ptr noundef nonnull @.str.1, i32 noundef 734, ptr noundef %6880, ptr noundef %6882, ptr noundef %6884, i32 noundef %6885) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6887:                                             ; preds = %6860
  %6888 = getelementptr inbounds i8, ptr %6443, i64 832
  %6889 = load i32, ptr @test_count, align 4, !tbaa !5
  %6890 = add nsw i32 %6889, 1
  store i32 %6890, ptr @test_count, align 4, !tbaa !5
  %6891 = load ptr, ptr %6888, align 8, !tbaa !63
  %6892 = icmp eq ptr %6891, null
  br i1 %6892, label %6917, label %6893

6893:                                             ; preds = %6887
  %6894 = tail call ptr @__errno_location() #13
  %6895 = load i32, ptr %6894, align 4, !tbaa !5
  %6896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6897 = call i32 @s2n_print_stacktrace(ptr noundef %6896) #12
  %6898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6899 = trunc nuw i8 %6898 to i1
  br i1 %6899, label %6900, label %6904

6900:                                             ; preds = %6893
  %6901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6902 = call i32 @fileno(ptr noundef %6901) #12
  %6903 = call i32 @isatty(i32 noundef %6902) #12
  %.not1050 = icmp eq i32 %6903, 0
  br i1 %.not1050, label %6904, label %6905

6904:                                             ; preds = %6900, %6893
  br label %6905

6905:                                             ; preds = %6900, %6904
  %.str.5.sink3785 = phi ptr [ @.str.5, %6904 ], [ @.str.2, %6900 ]
  store i32 %6895, ptr %6894, align 4, !tbaa !5
  %6906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6907 = load i32, ptr @test_count, align 4, !tbaa !5
  %6908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6909 = load i32, ptr %6908, align 4, !tbaa !5
  %6910 = call ptr @s2n_strerror(i32 noundef %6909, ptr noundef nonnull @.str.4) #12
  %6911 = load i32, ptr %6908, align 4, !tbaa !5
  %6912 = call ptr @s2n_strerror_debug(i32 noundef %6911, ptr noundef nonnull @.str.4) #12
  %6913 = load i32, ptr %6894, align 4, !tbaa !5
  %6914 = call ptr @strerror(i32 noundef %6913) #12
  %6915 = load i32, ptr %6894, align 4, !tbaa !5
  %6916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6906, ptr noundef nonnull %.str.5.sink3785, i32 noundef %6907, ptr noundef nonnull @.str.153, ptr noundef nonnull @.str.1, i32 noundef 738, ptr noundef %6910, ptr noundef %6912, ptr noundef %6914, i32 noundef %6915) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6917:                                             ; preds = %6887
  %6918 = add nsw i32 %6889, 2
  store i32 %6918, ptr @test_count, align 4, !tbaa !5
  %6919 = getelementptr inbounds i8, ptr %6443, i64 848
  %6920 = load ptr, ptr %6919, align 8, !tbaa !93
  %6921 = icmp eq ptr %6920, null
  br i1 %6921, label %6946, label %6922

6922:                                             ; preds = %6917
  %6923 = tail call ptr @__errno_location() #13
  %6924 = load i32, ptr %6923, align 4, !tbaa !5
  %6925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6926 = call i32 @s2n_print_stacktrace(ptr noundef %6925) #12
  %6927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6928 = trunc nuw i8 %6927 to i1
  br i1 %6928, label %6929, label %6933

6929:                                             ; preds = %6922
  %6930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6931 = call i32 @fileno(ptr noundef %6930) #12
  %6932 = call i32 @isatty(i32 noundef %6931) #12
  %.not1051 = icmp eq i32 %6932, 0
  br i1 %.not1051, label %6933, label %6934

6933:                                             ; preds = %6929, %6922
  br label %6934

6934:                                             ; preds = %6929, %6933
  %.str.5.sink3796 = phi ptr [ @.str.5, %6933 ], [ @.str.2, %6929 ]
  store i32 %6924, ptr %6923, align 4, !tbaa !5
  %6935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6936 = load i32, ptr @test_count, align 4, !tbaa !5
  %6937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6938 = load i32, ptr %6937, align 4, !tbaa !5
  %6939 = call ptr @s2n_strerror(i32 noundef %6938, ptr noundef nonnull @.str.4) #12
  %6940 = load i32, ptr %6937, align 4, !tbaa !5
  %6941 = call ptr @s2n_strerror_debug(i32 noundef %6940, ptr noundef nonnull @.str.4) #12
  %6942 = load i32, ptr %6923, align 4, !tbaa !5
  %6943 = call ptr @strerror(i32 noundef %6942) #12
  %6944 = load i32, ptr %6923, align 4, !tbaa !5
  %6945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6935, ptr noundef nonnull %.str.5.sink3796, i32 noundef %6936, ptr noundef nonnull @.str.154, ptr noundef nonnull @.str.1, i32 noundef 739, ptr noundef %6939, ptr noundef %6941, ptr noundef %6943, i32 noundef %6944) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6946:                                             ; preds = %6917
  %6947 = add nsw i32 %6889, 3
  store i32 %6947, ptr @test_count, align 4, !tbaa !5
  %6948 = getelementptr inbounds i8, ptr %6443, i64 936
  %6949 = load ptr, ptr %6948, align 8, !tbaa !73
  %6950 = icmp eq ptr %6949, null
  br i1 %6950, label %6975, label %6951

6951:                                             ; preds = %6946
  %6952 = tail call ptr @__errno_location() #13
  %6953 = load i32, ptr %6952, align 4, !tbaa !5
  %6954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6955 = call i32 @s2n_print_stacktrace(ptr noundef %6954) #12
  %6956 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6957 = trunc nuw i8 %6956 to i1
  br i1 %6957, label %6958, label %6962

6958:                                             ; preds = %6951
  %6959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6960 = call i32 @fileno(ptr noundef %6959) #12
  %6961 = call i32 @isatty(i32 noundef %6960) #12
  %.not1052 = icmp eq i32 %6961, 0
  br i1 %.not1052, label %6962, label %6963

6962:                                             ; preds = %6958, %6951
  br label %6963

6963:                                             ; preds = %6958, %6962
  %.str.5.sink3807 = phi ptr [ @.str.5, %6962 ], [ @.str.2, %6958 ]
  store i32 %6953, ptr %6952, align 4, !tbaa !5
  %6964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6965 = load i32, ptr @test_count, align 4, !tbaa !5
  %6966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6967 = load i32, ptr %6966, align 4, !tbaa !5
  %6968 = call ptr @s2n_strerror(i32 noundef %6967, ptr noundef nonnull @.str.4) #12
  %6969 = load i32, ptr %6966, align 4, !tbaa !5
  %6970 = call ptr @s2n_strerror_debug(i32 noundef %6969, ptr noundef nonnull @.str.4) #12
  %6971 = load i32, ptr %6952, align 4, !tbaa !5
  %6972 = call ptr @strerror(i32 noundef %6971) #12
  %6973 = load i32, ptr %6952, align 4, !tbaa !5
  %6974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6964, ptr noundef nonnull %.str.5.sink3807, i32 noundef %6965, ptr noundef nonnull @.str.155, ptr noundef nonnull @.str.1, i32 noundef 740, ptr noundef %6968, ptr noundef %6970, ptr noundef %6972, i32 noundef %6973) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6975:                                             ; preds = %6946
  %6976 = add nsw i32 %6889, 4
  store i32 %6976, ptr @test_count, align 4, !tbaa !5
  %6977 = call i32 @s2n_kem_group_free(ptr noundef nonnull %63) #12
  %6978 = icmp eq i32 %6977, -1
  br i1 %6978, label %6979, label %7003

6979:                                             ; preds = %6975
  %6980 = tail call ptr @__errno_location() #13
  %6981 = load i32, ptr %6980, align 4, !tbaa !5
  %6982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6983 = call i32 @s2n_print_stacktrace(ptr noundef %6982) #12
  %6984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6985 = trunc nuw i8 %6984 to i1
  br i1 %6985, label %6986, label %6990

6986:                                             ; preds = %6979
  %6987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6988 = call i32 @fileno(ptr noundef %6987) #12
  %6989 = call i32 @isatty(i32 noundef %6988) #12
  %.not1132 = icmp eq i32 %6989, 0
  br i1 %.not1132, label %6990, label %6991

6990:                                             ; preds = %6986, %6979
  br label %6991

6991:                                             ; preds = %6986, %6990
  %.str.5.sink3818 = phi ptr [ @.str.5, %6990 ], [ @.str.2, %6986 ]
  store i32 %6981, ptr %6980, align 4, !tbaa !5
  %6992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6993 = load i32, ptr @test_count, align 4, !tbaa !5
  %6994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6995 = load i32, ptr %6994, align 4, !tbaa !5
  %6996 = call ptr @s2n_strerror(i32 noundef %6995, ptr noundef nonnull @.str.4) #12
  %6997 = load i32, ptr %6994, align 4, !tbaa !5
  %6998 = call ptr @s2n_strerror_debug(i32 noundef %6997, ptr noundef nonnull @.str.4) #12
  %6999 = load i32, ptr %6980, align 4, !tbaa !5
  %7000 = call ptr @strerror(i32 noundef %6999) #12
  %7001 = load i32, ptr %6980, align 4, !tbaa !5
  %7002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6992, ptr noundef nonnull %.str.5.sink3818, i32 noundef %6993, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.1, i32 noundef 742, ptr noundef %6996, ptr noundef %6998, ptr noundef %7000, i32 noundef %7001) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7003:                                             ; preds = %6975
  %7004 = load i32, ptr @test_count, align 4, !tbaa !5
  %7005 = add nsw i32 %7004, 1
  store i32 %7005, ptr @test_count, align 4, !tbaa !5
  %7006 = call i32 @s2n_stuffer_free(ptr noundef nonnull %64) #12
  %7007 = icmp eq i32 %7006, -1
  br i1 %7007, label %7008, label %7032

7008:                                             ; preds = %7003
  %7009 = tail call ptr @__errno_location() #13
  %7010 = load i32, ptr %7009, align 4, !tbaa !5
  %7011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7012 = call i32 @s2n_print_stacktrace(ptr noundef %7011) #12
  %7013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7014 = trunc nuw i8 %7013 to i1
  br i1 %7014, label %7015, label %7019

7015:                                             ; preds = %7008
  %7016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7017 = call i32 @fileno(ptr noundef %7016) #12
  %7018 = call i32 @isatty(i32 noundef %7017) #12
  %.not1131 = icmp eq i32 %7018, 0
  br i1 %.not1131, label %7019, label %7020

7019:                                             ; preds = %7015, %7008
  br label %7020

7020:                                             ; preds = %7015, %7019
  %.str.5.sink3829 = phi ptr [ @.str.5, %7019 ], [ @.str.2, %7015 ]
  store i32 %7010, ptr %7009, align 4, !tbaa !5
  %7021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7022 = load i32, ptr @test_count, align 4, !tbaa !5
  %7023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7024 = load i32, ptr %7023, align 4, !tbaa !5
  %7025 = call ptr @s2n_strerror(i32 noundef %7024, ptr noundef nonnull @.str.4) #12
  %7026 = load i32, ptr %7023, align 4, !tbaa !5
  %7027 = call ptr @s2n_strerror_debug(i32 noundef %7026, ptr noundef nonnull @.str.4) #12
  %7028 = load i32, ptr %7009, align 4, !tbaa !5
  %7029 = call ptr @strerror(i32 noundef %7028) #12
  %7030 = load i32, ptr %7009, align 4, !tbaa !5
  %7031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7021, ptr noundef nonnull %.str.5.sink3829, i32 noundef %7022, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.1, i32 noundef 743, ptr noundef %7025, ptr noundef %7027, ptr noundef %7029, i32 noundef %7030) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7032:                                             ; preds = %7003
  %7033 = load i32, ptr @test_count, align 4, !tbaa !5
  %7034 = add nsw i32 %7033, 1
  store i32 %7034, ptr @test_count, align 4, !tbaa !5
  %7035 = call i32 @s2n_connection_free(ptr noundef nonnull %6443) #12
  %7036 = icmp eq i32 %7035, -1
  br i1 %7036, label %7037, label %7061

7037:                                             ; preds = %7032
  %7038 = tail call ptr @__errno_location() #13
  %7039 = load i32, ptr %7038, align 4, !tbaa !5
  %7040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7041 = call i32 @s2n_print_stacktrace(ptr noundef %7040) #12
  %7042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7043 = trunc nuw i8 %7042 to i1
  br i1 %7043, label %7044, label %7048

7044:                                             ; preds = %7037
  %7045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7046 = call i32 @fileno(ptr noundef %7045) #12
  %7047 = call i32 @isatty(i32 noundef %7046) #12
  %.not1130 = icmp eq i32 %7047, 0
  br i1 %.not1130, label %7048, label %7049

7048:                                             ; preds = %7044, %7037
  br label %7049

7049:                                             ; preds = %7044, %7048
  %.str.5.sink3840 = phi ptr [ @.str.5, %7048 ], [ @.str.2, %7044 ]
  store i32 %7039, ptr %7038, align 4, !tbaa !5
  %7050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7051 = load i32, ptr @test_count, align 4, !tbaa !5
  %7052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7053 = load i32, ptr %7052, align 4, !tbaa !5
  %7054 = call ptr @s2n_strerror(i32 noundef %7053, ptr noundef nonnull @.str.4) #12
  %7055 = load i32, ptr %7052, align 4, !tbaa !5
  %7056 = call ptr @s2n_strerror_debug(i32 noundef %7055, ptr noundef nonnull @.str.4) #12
  %7057 = load i32, ptr %7038, align 4, !tbaa !5
  %7058 = call ptr @strerror(i32 noundef %7057) #12
  %7059 = load i32, ptr %7038, align 4, !tbaa !5
  %7060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7050, ptr noundef nonnull %.str.5.sink3840, i32 noundef %7051, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 744, ptr noundef %7054, ptr noundef %7056, ptr noundef %7058, i32 noundef %7059) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7061:                                             ; preds = %7032
  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.end.p0(i64 112, ptr nonnull %63) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #12
  br label %7062

7062:                                             ; preds = %6439, %7061
  %7063 = load i32, ptr @test_count, align 4, !tbaa !5
  %7064 = add nsw i32 %7063, 1
  store i32 %7064, ptr @test_count, align 4, !tbaa !5
  %7065 = load ptr, ptr %152, align 8, !tbaa !22
  %7066 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %7065, ptr noundef nonnull %3) #12
  %7067 = call zeroext i1 @s2n_result_is_ok(i32 %7066)
  br i1 %7067, label %7092, label %7068

7068:                                             ; preds = %7062
  %7069 = tail call ptr @__errno_location() #13
  %7070 = load i32, ptr %7069, align 4, !tbaa !5
  %7071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7072 = call i32 @s2n_print_stacktrace(ptr noundef %7071) #12
  %7073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7074 = trunc nuw i8 %7073 to i1
  br i1 %7074, label %7075, label %7079

7075:                                             ; preds = %7068
  %7076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7077 = call i32 @fileno(ptr noundef %7076) #12
  %7078 = call i32 @isatty(i32 noundef %7077) #12
  %.not1053 = icmp eq i32 %7078, 0
  br i1 %.not1053, label %7079, label %7080

7079:                                             ; preds = %7075, %7068
  br label %7080

7080:                                             ; preds = %7075, %7079
  %.str.5.sink3851 = phi ptr [ @.str.5, %7079 ], [ @.str.2, %7075 ]
  store i32 %7070, ptr %7069, align 4, !tbaa !5
  %7081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7082 = load i32, ptr @test_count, align 4, !tbaa !5
  %7083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7084 = load i32, ptr %7083, align 4, !tbaa !5
  %7085 = call ptr @s2n_strerror(i32 noundef %7084, ptr noundef nonnull @.str.4) #12
  %7086 = load i32, ptr %7083, align 4, !tbaa !5
  %7087 = call ptr @s2n_strerror_debug(i32 noundef %7086, ptr noundef nonnull @.str.4) #12
  %7088 = load i32, ptr %7069, align 4, !tbaa !5
  %7089 = call ptr @strerror(i32 noundef %7088) #12
  %7090 = load i32, ptr %7069, align 4, !tbaa !5
  %7091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7081, ptr noundef nonnull %.str.5.sink3851, i32 noundef %7082, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 751, ptr noundef %7085, ptr noundef %7087, ptr noundef %7089, i32 noundef %7090) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7092:                                             ; preds = %7062
  %7093 = load i32, ptr %3, align 4, !tbaa !5
  %7094 = icmp ugt i32 %7093, 1
  br i1 %7094, label %7095, label %7804

7095:                                             ; preds = %7092
  %7096 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %7097 = load i32, ptr @test_count, align 4, !tbaa !5
  %7098 = add nsw i32 %7097, 1
  store i32 %7098, ptr @test_count, align 4, !tbaa !5
  %7099 = icmp eq ptr %7096, null
  br i1 %7099, label %7100, label %7124

7100:                                             ; preds = %7095
  %7101 = tail call ptr @__errno_location() #13
  %7102 = load i32, ptr %7101, align 4, !tbaa !5
  %7103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7104 = call i32 @s2n_print_stacktrace(ptr noundef %7103) #12
  %7105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7106 = trunc nuw i8 %7105 to i1
  br i1 %7106, label %7107, label %7111

7107:                                             ; preds = %7100
  %7108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7109 = call i32 @fileno(ptr noundef %7108) #12
  %7110 = call i32 @isatty(i32 noundef %7109) #12
  %.not1129 = icmp eq i32 %7110, 0
  br i1 %.not1129, label %7111, label %7112

7111:                                             ; preds = %7107, %7100
  br label %7112

7112:                                             ; preds = %7107, %7111
  %.str.5.sink3862 = phi ptr [ @.str.5, %7111 ], [ @.str.2, %7107 ]
  store i32 %7102, ptr %7101, align 4, !tbaa !5
  %7113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7114 = load i32, ptr @test_count, align 4, !tbaa !5
  %7115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7116 = load i32, ptr %7115, align 4, !tbaa !5
  %7117 = call ptr @s2n_strerror(i32 noundef %7116, ptr noundef nonnull @.str.4) #12
  %7118 = load i32, ptr %7115, align 4, !tbaa !5
  %7119 = call ptr @s2n_strerror_debug(i32 noundef %7118, ptr noundef nonnull @.str.4) #12
  %7120 = load i32, ptr %7101, align 4, !tbaa !5
  %7121 = call ptr @strerror(i32 noundef %7120) #12
  %7122 = load i32, ptr %7101, align 4, !tbaa !5
  %7123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7113, ptr noundef nonnull %.str.5.sink3862, i32 noundef %7114, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 754, ptr noundef %7117, ptr noundef %7119, ptr noundef %7121, i32 noundef %7122) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7124:                                             ; preds = %7095
  %7125 = getelementptr inbounds i8, ptr %7096, i64 220
  store i8 34, ptr %7125, align 4, !tbaa !79
  %7126 = getelementptr inbounds i8, ptr %7096, i64 16
  store ptr %2, ptr %7126, align 8, !tbaa !28
  %7127 = add nsw i32 %7097, 2
  store i32 %7127, ptr @test_count, align 4, !tbaa !5
  %7128 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %7096) #12
  %7129 = call zeroext i1 @s2n_result_is_ok(i32 %7128)
  br i1 %7129, label %.preheader1322, label %7132

.preheader1322:                                   ; preds = %7124
  %7130 = getelementptr inbounds i8, ptr %7096, i64 944
  %7131 = load ptr, ptr %7130, align 8, !tbaa !9
  %.not1055 = icmp eq ptr %7131, null
  br i1 %.not1055, label %7160, label %7156

7132:                                             ; preds = %7124
  %7133 = tail call ptr @__errno_location() #13
  %7134 = load i32, ptr %7133, align 4, !tbaa !5
  %7135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7136 = call i32 @s2n_print_stacktrace(ptr noundef %7135) #12
  %7137 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7138 = trunc nuw i8 %7137 to i1
  br i1 %7138, label %7139, label %7143

7139:                                             ; preds = %7132
  %7140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7141 = call i32 @fileno(ptr noundef %7140) #12
  %7142 = call i32 @isatty(i32 noundef %7141) #12
  %.not1054 = icmp eq i32 %7142, 0
  br i1 %.not1054, label %7143, label %7144

7143:                                             ; preds = %7139, %7132
  br label %7144

7144:                                             ; preds = %7139, %7143
  %.str.5.sink3873 = phi ptr [ @.str.5, %7143 ], [ @.str.2, %7139 ]
  store i32 %7134, ptr %7133, align 4, !tbaa !5
  %7145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7146 = load i32, ptr @test_count, align 4, !tbaa !5
  %7147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7148 = load i32, ptr %7147, align 4, !tbaa !5
  %7149 = call ptr @s2n_strerror(i32 noundef %7148, ptr noundef nonnull @.str.4) #12
  %7150 = load i32, ptr %7147, align 4, !tbaa !5
  %7151 = call ptr @s2n_strerror_debug(i32 noundef %7150, ptr noundef nonnull @.str.4) #12
  %7152 = load i32, ptr %7133, align 4, !tbaa !5
  %7153 = call ptr @strerror(i32 noundef %7152) #12
  %7154 = load i32, ptr %7133, align 4, !tbaa !5
  %7155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7145, ptr noundef nonnull %.str.5.sink3873, i32 noundef %7146, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 759, ptr noundef %7149, ptr noundef %7151, ptr noundef %7153, i32 noundef %7154) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7156:                                             ; preds = %.preheader1322
  %7157 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %7131) #12
  br i1 %7157, label %7158, label %7160

7158:                                             ; preds = %7193, %7188, %7183, %7178, %7173, %7168, %7163, %7156
  %.lcssa1348 = phi i64 [ 0, %7156 ], [ 1, %7163 ], [ 2, %7168 ], [ 3, %7173 ], [ 4, %7178 ], [ 5, %7183 ], [ 6, %7188 ], [ 7, %7193 ]
  %7159 = getelementptr inbounds [8 x ptr], ptr %7130, i64 0, i64 %.lcssa1348
  store ptr null, ptr %7159, align 8, !tbaa !9
  br label %.loopexit

7160:                                             ; preds = %.preheader1322, %7156
  %7161 = getelementptr inbounds i8, ptr %7096, i64 952
  %7162 = load ptr, ptr %7161, align 8, !tbaa !9
  %.not1055.1 = icmp eq ptr %7162, null
  br i1 %.not1055.1, label %7165, label %7163

7163:                                             ; preds = %7160
  %7164 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %7162) #12
  br i1 %7164, label %7158, label %7165

7165:                                             ; preds = %7163, %7160
  %7166 = getelementptr inbounds i8, ptr %7096, i64 960
  %7167 = load ptr, ptr %7166, align 8, !tbaa !9
  %.not1055.2 = icmp eq ptr %7167, null
  br i1 %.not1055.2, label %7170, label %7168

7168:                                             ; preds = %7165
  %7169 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %7167) #12
  br i1 %7169, label %7158, label %7170

7170:                                             ; preds = %7168, %7165
  %7171 = getelementptr inbounds i8, ptr %7096, i64 968
  %7172 = load ptr, ptr %7171, align 8, !tbaa !9
  %.not1055.3 = icmp eq ptr %7172, null
  br i1 %.not1055.3, label %7175, label %7173

7173:                                             ; preds = %7170
  %7174 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %7172) #12
  br i1 %7174, label %7158, label %7175

7175:                                             ; preds = %7173, %7170
  %7176 = getelementptr inbounds i8, ptr %7096, i64 976
  %7177 = load ptr, ptr %7176, align 8, !tbaa !9
  %.not1055.4 = icmp eq ptr %7177, null
  br i1 %.not1055.4, label %7180, label %7178

7178:                                             ; preds = %7175
  %7179 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %7177) #12
  br i1 %7179, label %7158, label %7180

7180:                                             ; preds = %7178, %7175
  %7181 = getelementptr inbounds i8, ptr %7096, i64 984
  %7182 = load ptr, ptr %7181, align 8, !tbaa !9
  %.not1055.5 = icmp eq ptr %7182, null
  br i1 %.not1055.5, label %7185, label %7183

7183:                                             ; preds = %7180
  %7184 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %7182) #12
  br i1 %7184, label %7158, label %7185

7185:                                             ; preds = %7183, %7180
  %7186 = getelementptr inbounds i8, ptr %7096, i64 992
  %7187 = load ptr, ptr %7186, align 8, !tbaa !9
  %.not1055.6 = icmp eq ptr %7187, null
  br i1 %.not1055.6, label %7190, label %7188

7188:                                             ; preds = %7185
  %7189 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %7187) #12
  br i1 %7189, label %7158, label %7190

7190:                                             ; preds = %7188, %7185
  %7191 = getelementptr inbounds i8, ptr %7096, i64 1000
  %7192 = load ptr, ptr %7191, align 8, !tbaa !9
  %.not1055.7 = icmp eq ptr %7192, null
  br i1 %.not1055.7, label %.loopexit, label %7193

7193:                                             ; preds = %7190
  %7194 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef nonnull %7192) #12
  br i1 %7194, label %7158, label %.loopexit

.loopexit:                                        ; preds = %7190, %7193, %7158
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #12
  store ptr null, ptr %66, align 8, !tbaa !9
  %7195 = load i32, ptr @test_count, align 4, !tbaa !5
  %7196 = add nsw i32 %7195, 1
  store i32 %7196, ptr @test_count, align 4, !tbaa !5
  %7197 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %7096, ptr noundef nonnull %66) #12
  %7198 = icmp eq i32 %7197, -1
  br i1 %7198, label %7199, label %7223

7199:                                             ; preds = %.loopexit
  %7200 = tail call ptr @__errno_location() #13
  %7201 = load i32, ptr %7200, align 4, !tbaa !5
  %7202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7203 = call i32 @s2n_print_stacktrace(ptr noundef %7202) #12
  %7204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7205 = trunc nuw i8 %7204 to i1
  br i1 %7205, label %7206, label %7210

7206:                                             ; preds = %7199
  %7207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7208 = call i32 @fileno(ptr noundef %7207) #12
  %7209 = call i32 @isatty(i32 noundef %7208) #12
  %.not1128 = icmp eq i32 %7209, 0
  br i1 %.not1128, label %7210, label %7211

7210:                                             ; preds = %7206, %7199
  br label %7211

7211:                                             ; preds = %7206, %7210
  %.str.5.sink3884 = phi ptr [ @.str.5, %7210 ], [ @.str.2, %7206 ]
  store i32 %7201, ptr %7200, align 4, !tbaa !5
  %7212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7213 = load i32, ptr @test_count, align 4, !tbaa !5
  %7214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7215 = load i32, ptr %7214, align 4, !tbaa !5
  %7216 = call ptr @s2n_strerror(i32 noundef %7215, ptr noundef nonnull @.str.4) #12
  %7217 = load i32, ptr %7214, align 4, !tbaa !5
  %7218 = call ptr @s2n_strerror_debug(i32 noundef %7217, ptr noundef nonnull @.str.4) #12
  %7219 = load i32, ptr %7200, align 4, !tbaa !5
  %7220 = call ptr @strerror(i32 noundef %7219) #12
  %7221 = load i32, ptr %7200, align 4, !tbaa !5
  %7222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7212, ptr noundef nonnull %.str.5.sink3884, i32 noundef %7213, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.1, i32 noundef 769, ptr noundef %7216, ptr noundef %7218, ptr noundef %7220, i32 noundef %7221) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7223:                                             ; preds = %.loopexit
  %7224 = load i32, ptr @test_count, align 4, !tbaa !5
  %7225 = add nsw i32 %7224, 1
  store i32 %7225, ptr @test_count, align 4, !tbaa !5
  %7226 = load ptr, ptr %66, align 8, !tbaa !9
  %7227 = icmp eq ptr %7226, null
  br i1 %7227, label %7228, label %7252

7228:                                             ; preds = %7223
  %7229 = tail call ptr @__errno_location() #13
  %7230 = load i32, ptr %7229, align 4, !tbaa !5
  %7231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7232 = call i32 @s2n_print_stacktrace(ptr noundef %7231) #12
  %7233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7234 = trunc nuw i8 %7233 to i1
  br i1 %7234, label %7235, label %7239

7235:                                             ; preds = %7228
  %7236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7237 = call i32 @fileno(ptr noundef %7236) #12
  %7238 = call i32 @isatty(i32 noundef %7237) #12
  %.not1127 = icmp eq i32 %7238, 0
  br i1 %.not1127, label %7239, label %7240

7239:                                             ; preds = %7235, %7228
  br label %7240

7240:                                             ; preds = %7235, %7239
  %.str.5.sink3895 = phi ptr [ @.str.5, %7239 ], [ @.str.2, %7235 ]
  store i32 %7230, ptr %7229, align 4, !tbaa !5
  %7241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7242 = load i32, ptr @test_count, align 4, !tbaa !5
  %7243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7244 = load i32, ptr %7243, align 4, !tbaa !5
  %7245 = call ptr @s2n_strerror(i32 noundef %7244, ptr noundef nonnull @.str.4) #12
  %7246 = load i32, ptr %7243, align 4, !tbaa !5
  %7247 = call ptr @s2n_strerror_debug(i32 noundef %7246, ptr noundef nonnull @.str.4) #12
  %7248 = load i32, ptr %7229, align 4, !tbaa !5
  %7249 = call ptr @strerror(i32 noundef %7248) #12
  %7250 = load i32, ptr %7229, align 4, !tbaa !5
  %7251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7241, ptr noundef nonnull %.str.5.sink3895, i32 noundef %7242, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 770, ptr noundef %7245, ptr noundef %7247, ptr noundef %7249, i32 noundef %7250) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7252:                                             ; preds = %7223
  %7253 = add nsw i32 %7224, 2
  store i32 %7253, ptr @test_count, align 4, !tbaa !5
  %7254 = call i32 @s2n_kem_preferences_groups_available(ptr noundef nonnull %7226, ptr noundef nonnull %3) #12
  %7255 = call zeroext i1 @s2n_result_is_ok(i32 %7254)
  br i1 %7255, label %7280, label %7256

7256:                                             ; preds = %7252
  %7257 = tail call ptr @__errno_location() #13
  %7258 = load i32, ptr %7257, align 4, !tbaa !5
  %7259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7260 = call i32 @s2n_print_stacktrace(ptr noundef %7259) #12
  %7261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7262 = trunc nuw i8 %7261 to i1
  br i1 %7262, label %7263, label %7267

7263:                                             ; preds = %7256
  %7264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7265 = call i32 @fileno(ptr noundef %7264) #12
  %7266 = call i32 @isatty(i32 noundef %7265) #12
  %.not1056 = icmp eq i32 %7266, 0
  br i1 %.not1056, label %7267, label %7268

7267:                                             ; preds = %7263, %7256
  br label %7268

7268:                                             ; preds = %7263, %7267
  %.str.5.sink3906 = phi ptr [ @.str.5, %7267 ], [ @.str.2, %7263 ]
  store i32 %7258, ptr %7257, align 4, !tbaa !5
  %7269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7270 = load i32, ptr @test_count, align 4, !tbaa !5
  %7271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7272 = load i32, ptr %7271, align 4, !tbaa !5
  %7273 = call ptr @s2n_strerror(i32 noundef %7272, ptr noundef nonnull @.str.4) #12
  %7274 = load i32, ptr %7271, align 4, !tbaa !5
  %7275 = call ptr @s2n_strerror_debug(i32 noundef %7274, ptr noundef nonnull @.str.4) #12
  %7276 = load i32, ptr %7257, align 4, !tbaa !5
  %7277 = call ptr @strerror(i32 noundef %7276) #12
  %7278 = load i32, ptr %7257, align 4, !tbaa !5
  %7279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7269, ptr noundef nonnull %.str.5.sink3906, i32 noundef %7270, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.1, i32 noundef 771, ptr noundef %7273, ptr noundef %7275, ptr noundef %7277, i32 noundef %7278) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7280:                                             ; preds = %7252
  %7281 = load i32, ptr @test_count, align 4, !tbaa !5
  %7282 = add nsw i32 %7281, 1
  store i32 %7282, ptr @test_count, align 4, !tbaa !5
  %7283 = load i32, ptr %3, align 4, !tbaa !5
  %7284 = icmp ugt i32 %7283, 1
  br i1 %7284, label %7309, label %7285

7285:                                             ; preds = %7280
  %7286 = tail call ptr @__errno_location() #13
  %7287 = load i32, ptr %7286, align 4, !tbaa !5
  %7288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7289 = call i32 @s2n_print_stacktrace(ptr noundef %7288) #12
  %7290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7291 = trunc nuw i8 %7290 to i1
  br i1 %7291, label %7292, label %7296

7292:                                             ; preds = %7285
  %7293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7294 = call i32 @fileno(ptr noundef %7293) #12
  %7295 = call i32 @isatty(i32 noundef %7294) #12
  %.not1057 = icmp eq i32 %7295, 0
  br i1 %.not1057, label %7296, label %7297

7296:                                             ; preds = %7292, %7285
  br label %7297

7297:                                             ; preds = %7292, %7296
  %.str.5.sink3917 = phi ptr [ @.str.5, %7296 ], [ @.str.2, %7292 ]
  store i32 %7287, ptr %7286, align 4, !tbaa !5
  %7298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7299 = load i32, ptr @test_count, align 4, !tbaa !5
  %7300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7301 = load i32, ptr %7300, align 4, !tbaa !5
  %7302 = call ptr @s2n_strerror(i32 noundef %7301, ptr noundef nonnull @.str.4) #12
  %7303 = load i32, ptr %7300, align 4, !tbaa !5
  %7304 = call ptr @s2n_strerror_debug(i32 noundef %7303, ptr noundef nonnull @.str.4) #12
  %7305 = load i32, ptr %7286, align 4, !tbaa !5
  %7306 = call ptr @strerror(i32 noundef %7305) #12
  %7307 = load i32, ptr %7286, align 4, !tbaa !5
  %7308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7298, ptr noundef nonnull %.str.5.sink3917, i32 noundef %7299, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.1, i32 noundef 772, ptr noundef %7302, ptr noundef %7304, ptr noundef %7306, i32 noundef %7307) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7309:                                             ; preds = %7280
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #12
  store ptr null, ptr %67, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #12
  store ptr null, ptr %68, align 8, !tbaa !9
  %7310 = add nsw i32 %7281, 2
  store i32 %7310, ptr @test_count, align 4, !tbaa !5
  %7311 = load ptr, ptr %66, align 8, !tbaa !9
  %7312 = call i32 @s2n_get_two_highest_piority_kem_groups(ptr noundef %7311, ptr noundef nonnull %67, ptr noundef nonnull %68)
  %7313 = icmp eq i32 %7312, -1
  br i1 %7313, label %7314, label %7338

7314:                                             ; preds = %7309
  %7315 = tail call ptr @__errno_location() #13
  %7316 = load i32, ptr %7315, align 4, !tbaa !5
  %7317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7318 = call i32 @s2n_print_stacktrace(ptr noundef %7317) #12
  %7319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7320 = trunc nuw i8 %7319 to i1
  br i1 %7320, label %7321, label %7325

7321:                                             ; preds = %7314
  %7322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7323 = call i32 @fileno(ptr noundef %7322) #12
  %7324 = call i32 @isatty(i32 noundef %7323) #12
  %.not1126 = icmp eq i32 %7324, 0
  br i1 %.not1126, label %7325, label %7326

7325:                                             ; preds = %7321, %7314
  br label %7326

7326:                                             ; preds = %7321, %7325
  %.str.5.sink3928 = phi ptr [ @.str.5, %7325 ], [ @.str.2, %7321 ]
  store i32 %7316, ptr %7315, align 4, !tbaa !5
  %7327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7328 = load i32, ptr @test_count, align 4, !tbaa !5
  %7329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7330 = load i32, ptr %7329, align 4, !tbaa !5
  %7331 = call ptr @s2n_strerror(i32 noundef %7330, ptr noundef nonnull @.str.4) #12
  %7332 = load i32, ptr %7329, align 4, !tbaa !5
  %7333 = call ptr @s2n_strerror_debug(i32 noundef %7332, ptr noundef nonnull @.str.4) #12
  %7334 = load i32, ptr %7315, align 4, !tbaa !5
  %7335 = call ptr @strerror(i32 noundef %7334) #12
  %7336 = load i32, ptr %7315, align 4, !tbaa !5
  %7337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7327, ptr noundef nonnull %.str.5.sink3928, i32 noundef %7328, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.1, i32 noundef 777, ptr noundef %7331, ptr noundef %7333, ptr noundef %7335, i32 noundef %7336) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7338:                                             ; preds = %7309
  %7339 = load i32, ptr @test_count, align 4, !tbaa !5
  %7340 = add nsw i32 %7339, 1
  store i32 %7340, ptr @test_count, align 4, !tbaa !5
  %7341 = load ptr, ptr %67, align 8, !tbaa !9
  %7342 = icmp eq ptr %7341, null
  br i1 %7342, label %7343, label %7367

7343:                                             ; preds = %7338
  %7344 = tail call ptr @__errno_location() #13
  %7345 = load i32, ptr %7344, align 4, !tbaa !5
  %7346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7347 = call i32 @s2n_print_stacktrace(ptr noundef %7346) #12
  %7348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7349 = trunc nuw i8 %7348 to i1
  br i1 %7349, label %7350, label %7354

7350:                                             ; preds = %7343
  %7351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7352 = call i32 @fileno(ptr noundef %7351) #12
  %7353 = call i32 @isatty(i32 noundef %7352) #12
  %.not1125 = icmp eq i32 %7353, 0
  br i1 %.not1125, label %7354, label %7355

7354:                                             ; preds = %7350, %7343
  br label %7355

7355:                                             ; preds = %7350, %7354
  %.str.5.sink3939 = phi ptr [ @.str.5, %7354 ], [ @.str.2, %7350 ]
  store i32 %7345, ptr %7344, align 4, !tbaa !5
  %7356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7357 = load i32, ptr @test_count, align 4, !tbaa !5
  %7358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7359 = load i32, ptr %7358, align 4, !tbaa !5
  %7360 = call ptr @s2n_strerror(i32 noundef %7359, ptr noundef nonnull @.str.4) #12
  %7361 = load i32, ptr %7358, align 4, !tbaa !5
  %7362 = call ptr @s2n_strerror_debug(i32 noundef %7361, ptr noundef nonnull @.str.4) #12
  %7363 = load i32, ptr %7344, align 4, !tbaa !5
  %7364 = call ptr @strerror(i32 noundef %7363) #12
  %7365 = load i32, ptr %7344, align 4, !tbaa !5
  %7366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7356, ptr noundef nonnull %.str.5.sink3939, i32 noundef %7357, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.1, i32 noundef 778, ptr noundef %7360, ptr noundef %7362, ptr noundef %7364, i32 noundef %7365) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7367:                                             ; preds = %7338
  %7368 = add nsw i32 %7339, 2
  store i32 %7368, ptr @test_count, align 4, !tbaa !5
  %7369 = load ptr, ptr %68, align 8, !tbaa !9
  %7370 = icmp eq ptr %7369, null
  br i1 %7370, label %7371, label %7395

7371:                                             ; preds = %7367
  %7372 = tail call ptr @__errno_location() #13
  %7373 = load i32, ptr %7372, align 4, !tbaa !5
  %7374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7375 = call i32 @s2n_print_stacktrace(ptr noundef %7374) #12
  %7376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7377 = trunc nuw i8 %7376 to i1
  br i1 %7377, label %7378, label %7382

7378:                                             ; preds = %7371
  %7379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7380 = call i32 @fileno(ptr noundef %7379) #12
  %7381 = call i32 @isatty(i32 noundef %7380) #12
  %.not1124 = icmp eq i32 %7381, 0
  br i1 %.not1124, label %7382, label %7383

7382:                                             ; preds = %7378, %7371
  br label %7383

7383:                                             ; preds = %7378, %7382
  %.str.5.sink3950 = phi ptr [ @.str.5, %7382 ], [ @.str.2, %7378 ]
  store i32 %7373, ptr %7372, align 4, !tbaa !5
  %7384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7385 = load i32, ptr @test_count, align 4, !tbaa !5
  %7386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7387 = load i32, ptr %7386, align 4, !tbaa !5
  %7388 = call ptr @s2n_strerror(i32 noundef %7387, ptr noundef nonnull @.str.4) #12
  %7389 = load i32, ptr %7386, align 4, !tbaa !5
  %7390 = call ptr @s2n_strerror_debug(i32 noundef %7389, ptr noundef nonnull @.str.4) #12
  %7391 = load i32, ptr %7372, align 4, !tbaa !5
  %7392 = call ptr @strerror(i32 noundef %7391) #12
  %7393 = load i32, ptr %7372, align 4, !tbaa !5
  %7394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7384, ptr noundef nonnull %.str.5.sink3950, i32 noundef %7385, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.1, i32 noundef 779, ptr noundef %7388, ptr noundef %7390, ptr noundef %7392, i32 noundef %7393) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7395:                                             ; preds = %7367
  call void @llvm.lifetime.start.p0(i64 224, ptr nonnull %69) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(224) %69, i8 0, i64 224, i1 false)
  store ptr %7341, ptr %69, align 16, !tbaa !63
  store i8 %.01346, ptr %205, align 8, !tbaa !98
  store ptr %7369, ptr %206, align 16, !tbaa !63
  store i8 %.01346, ptr %207, align 8, !tbaa !98
  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)
  %7396 = add nsw i32 %7339, 3
  store i32 %7396, ptr @test_count, align 4, !tbaa !5
  %7397 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %70, i32 noundef 8192) #12
  %7398 = icmp eq i32 %7397, -1
  br i1 %7398, label %7399, label %7423

7399:                                             ; preds = %7395
  %7400 = tail call ptr @__errno_location() #13
  %7401 = load i32, ptr %7400, align 4, !tbaa !5
  %7402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7403 = call i32 @s2n_print_stacktrace(ptr noundef %7402) #12
  %7404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7405 = trunc nuw i8 %7404 to i1
  br i1 %7405, label %7406, label %7410

7406:                                             ; preds = %7399
  %7407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7408 = call i32 @fileno(ptr noundef %7407) #12
  %7409 = call i32 @isatty(i32 noundef %7408) #12
  %.not1123 = icmp eq i32 %7409, 0
  br i1 %.not1123, label %7410, label %7411

7410:                                             ; preds = %7406, %7399
  br label %7411

7411:                                             ; preds = %7406, %7410
  %.str.5.sink3961 = phi ptr [ @.str.5, %7410 ], [ @.str.2, %7406 ]
  store i32 %7401, ptr %7400, align 4, !tbaa !5
  %7412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7413 = load i32, ptr @test_count, align 4, !tbaa !5
  %7414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7415 = load i32, ptr %7414, align 4, !tbaa !5
  %7416 = call ptr @s2n_strerror(i32 noundef %7415, ptr noundef nonnull @.str.4) #12
  %7417 = load i32, ptr %7414, align 4, !tbaa !5
  %7418 = call ptr @s2n_strerror_debug(i32 noundef %7417, ptr noundef nonnull @.str.4) #12
  %7419 = load i32, ptr %7400, align 4, !tbaa !5
  %7420 = call ptr @strerror(i32 noundef %7419) #12
  %7421 = load i32, ptr %7400, align 4, !tbaa !5
  %7422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7412, ptr noundef nonnull %.str.5.sink3961, i32 noundef %7413, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 787, ptr noundef %7416, ptr noundef %7418, ptr noundef %7420, i32 noundef %7421) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7423:                                             ; preds = %7395
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %71) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %71, i8 0, i64 16, i1 false)
  %7424 = load i32, ptr @test_count, align 4, !tbaa !5
  %7425 = add nsw i32 %7424, 1
  store i32 %7425, ptr @test_count, align 4, !tbaa !5
  %7426 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %70, ptr noundef nonnull %71) #12
  %7427 = icmp eq i32 %7426, -1
  br i1 %7427, label %7428, label %7452

7428:                                             ; preds = %7423
  %7429 = tail call ptr @__errno_location() #13
  %7430 = load i32, ptr %7429, align 4, !tbaa !5
  %7431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7432 = call i32 @s2n_print_stacktrace(ptr noundef %7431) #12
  %7433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7434 = trunc nuw i8 %7433 to i1
  br i1 %7434, label %7435, label %7439

7435:                                             ; preds = %7428
  %7436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7437 = call i32 @fileno(ptr noundef %7436) #12
  %7438 = call i32 @isatty(i32 noundef %7437) #12
  %.not1122 = icmp eq i32 %7438, 0
  br i1 %.not1122, label %7439, label %7440

7439:                                             ; preds = %7435, %7428
  br label %7440

7440:                                             ; preds = %7435, %7439
  %.str.5.sink3972 = phi ptr [ @.str.5, %7439 ], [ @.str.2, %7435 ]
  store i32 %7430, ptr %7429, align 4, !tbaa !5
  %7441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7442 = load i32, ptr @test_count, align 4, !tbaa !5
  %7443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7444 = load i32, ptr %7443, align 4, !tbaa !5
  %7445 = call ptr @s2n_strerror(i32 noundef %7444, ptr noundef nonnull @.str.4) #12
  %7446 = load i32, ptr %7443, align 4, !tbaa !5
  %7447 = call ptr @s2n_strerror_debug(i32 noundef %7446, ptr noundef nonnull @.str.4) #12
  %7448 = load i32, ptr %7429, align 4, !tbaa !5
  %7449 = call ptr @strerror(i32 noundef %7448) #12
  %7450 = load i32, ptr %7429, align 4, !tbaa !5
  %7451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7441, ptr noundef nonnull %.str.5.sink3972, i32 noundef %7442, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 790, ptr noundef %7445, ptr noundef %7447, ptr noundef %7449, i32 noundef %7450) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7452:                                             ; preds = %7423
  %7453 = load i32, ptr @test_count, align 4, !tbaa !5
  %7454 = add nsw i32 %7453, 1
  store i32 %7454, ptr @test_count, align 4, !tbaa !5
  %7455 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef nonnull %70, ptr noundef nonnull %69)
  %7456 = icmp eq i32 %7455, -1
  br i1 %7456, label %7457, label %7481

7457:                                             ; preds = %7452
  %7458 = tail call ptr @__errno_location() #13
  %7459 = load i32, ptr %7458, align 4, !tbaa !5
  %7460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7461 = call i32 @s2n_print_stacktrace(ptr noundef %7460) #12
  %7462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7463 = trunc nuw i8 %7462 to i1
  br i1 %7463, label %7464, label %7468

7464:                                             ; preds = %7457
  %7465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7466 = call i32 @fileno(ptr noundef %7465) #12
  %7467 = call i32 @isatty(i32 noundef %7466) #12
  %.not1121 = icmp eq i32 %7467, 0
  br i1 %.not1121, label %7468, label %7469

7468:                                             ; preds = %7464, %7457
  br label %7469

7469:                                             ; preds = %7464, %7468
  %.str.5.sink3983 = phi ptr [ @.str.5, %7468 ], [ @.str.2, %7464 ]
  store i32 %7459, ptr %7458, align 4, !tbaa !5
  %7470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7471 = load i32, ptr @test_count, align 4, !tbaa !5
  %7472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7473 = load i32, ptr %7472, align 4, !tbaa !5
  %7474 = call ptr @s2n_strerror(i32 noundef %7473, ptr noundef nonnull @.str.4) #12
  %7475 = load i32, ptr %7472, align 4, !tbaa !5
  %7476 = call ptr @s2n_strerror_debug(i32 noundef %7475, ptr noundef nonnull @.str.4) #12
  %7477 = load i32, ptr %7458, align 4, !tbaa !5
  %7478 = call ptr @strerror(i32 noundef %7477) #12
  %7479 = load i32, ptr %7458, align 4, !tbaa !5
  %7480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7470, ptr noundef nonnull %.str.5.sink3983, i32 noundef %7471, ptr noundef nonnull @.str.143, ptr noundef nonnull @.str.1, i32 noundef 791, ptr noundef %7474, ptr noundef %7476, ptr noundef %7478, i32 noundef %7479) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7481:                                             ; preds = %7452
  %7482 = load i32, ptr @test_count, align 4, !tbaa !5
  %7483 = add nsw i32 %7482, 1
  store i32 %7483, ptr @test_count, align 4, !tbaa !5
  %7484 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef nonnull %70, ptr noundef nonnull %206)
  %7485 = icmp eq i32 %7484, -1
  br i1 %7485, label %7486, label %7510

7486:                                             ; preds = %7481
  %7487 = tail call ptr @__errno_location() #13
  %7488 = load i32, ptr %7487, align 4, !tbaa !5
  %7489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7490 = call i32 @s2n_print_stacktrace(ptr noundef %7489) #12
  %7491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7492 = trunc nuw i8 %7491 to i1
  br i1 %7492, label %7493, label %7497

7493:                                             ; preds = %7486
  %7494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7495 = call i32 @fileno(ptr noundef %7494) #12
  %7496 = call i32 @isatty(i32 noundef %7495) #12
  %.not1120 = icmp eq i32 %7496, 0
  br i1 %.not1120, label %7497, label %7498

7497:                                             ; preds = %7493, %7486
  br label %7498

7498:                                             ; preds = %7493, %7497
  %.str.5.sink3994 = phi ptr [ @.str.5, %7497 ], [ @.str.2, %7493 ]
  store i32 %7488, ptr %7487, align 4, !tbaa !5
  %7499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7500 = load i32, ptr @test_count, align 4, !tbaa !5
  %7501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7502 = load i32, ptr %7501, align 4, !tbaa !5
  %7503 = call ptr @s2n_strerror(i32 noundef %7502, ptr noundef nonnull @.str.4) #12
  %7504 = load i32, ptr %7501, align 4, !tbaa !5
  %7505 = call ptr @s2n_strerror_debug(i32 noundef %7504, ptr noundef nonnull @.str.4) #12
  %7506 = load i32, ptr %7487, align 4, !tbaa !5
  %7507 = call ptr @strerror(i32 noundef %7506) #12
  %7508 = load i32, ptr %7487, align 4, !tbaa !5
  %7509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7499, ptr noundef nonnull %.str.5.sink3994, i32 noundef %7500, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 792, ptr noundef %7503, ptr noundef %7505, ptr noundef %7507, i32 noundef %7508) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7510:                                             ; preds = %7481
  %7511 = load i32, ptr @test_count, align 4, !tbaa !5
  %7512 = add nsw i32 %7511, 1
  store i32 %7512, ptr @test_count, align 4, !tbaa !5
  %7513 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %71) #12
  %7514 = icmp eq i32 %7513, -1
  br i1 %7514, label %7515, label %7539

7515:                                             ; preds = %7510
  %7516 = tail call ptr @__errno_location() #13
  %7517 = load i32, ptr %7516, align 4, !tbaa !5
  %7518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7519 = call i32 @s2n_print_stacktrace(ptr noundef %7518) #12
  %7520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7521 = trunc nuw i8 %7520 to i1
  br i1 %7521, label %7522, label %7526

7522:                                             ; preds = %7515
  %7523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7524 = call i32 @fileno(ptr noundef %7523) #12
  %7525 = call i32 @isatty(i32 noundef %7524) #12
  %.not1119 = icmp eq i32 %7525, 0
  br i1 %.not1119, label %7526, label %7527

7526:                                             ; preds = %7522, %7515
  br label %7527

7527:                                             ; preds = %7522, %7526
  %.str.5.sink4005 = phi ptr [ @.str.5, %7526 ], [ @.str.2, %7522 ]
  store i32 %7517, ptr %7516, align 4, !tbaa !5
  %7528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7529 = load i32, ptr @test_count, align 4, !tbaa !5
  %7530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7531 = load i32, ptr %7530, align 4, !tbaa !5
  %7532 = call ptr @s2n_strerror(i32 noundef %7531, ptr noundef nonnull @.str.4) #12
  %7533 = load i32, ptr %7530, align 4, !tbaa !5
  %7534 = call ptr @s2n_strerror_debug(i32 noundef %7533, ptr noundef nonnull @.str.4) #12
  %7535 = load i32, ptr %7516, align 4, !tbaa !5
  %7536 = call ptr @strerror(i32 noundef %7535) #12
  %7537 = load i32, ptr %7516, align 4, !tbaa !5
  %7538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7528, ptr noundef nonnull %.str.5.sink4005, i32 noundef %7529, ptr noundef nonnull @.str.144, ptr noundef nonnull @.str.1, i32 noundef 793, ptr noundef %7532, ptr noundef %7534, ptr noundef %7536, i32 noundef %7537) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7539:                                             ; preds = %7510
  %7540 = load i32, ptr @test_count, align 4, !tbaa !5
  %7541 = add nsw i32 %7540, 1
  store i32 %7541, ptr @test_count, align 4, !tbaa !5
  %7542 = call i32 %181(ptr noundef nonnull %7096, ptr noundef nonnull %70) #12
  %7543 = icmp eq i32 %7542, -1
  br i1 %7543, label %7544, label %7568

7544:                                             ; preds = %7539
  %7545 = tail call ptr @__errno_location() #13
  %7546 = load i32, ptr %7545, align 4, !tbaa !5
  %7547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7548 = call i32 @s2n_print_stacktrace(ptr noundef %7547) #12
  %7549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7550 = trunc nuw i8 %7549 to i1
  br i1 %7550, label %7551, label %7555

7551:                                             ; preds = %7544
  %7552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7553 = call i32 @fileno(ptr noundef %7552) #12
  %7554 = call i32 @isatty(i32 noundef %7553) #12
  %.not1118 = icmp eq i32 %7554, 0
  br i1 %.not1118, label %7555, label %7556

7555:                                             ; preds = %7551, %7544
  br label %7556

7556:                                             ; preds = %7551, %7555
  %.str.5.sink4016 = phi ptr [ @.str.5, %7555 ], [ @.str.2, %7551 ]
  store i32 %7546, ptr %7545, align 4, !tbaa !5
  %7557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7558 = load i32, ptr @test_count, align 4, !tbaa !5
  %7559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7560 = load i32, ptr %7559, align 4, !tbaa !5
  %7561 = call ptr @s2n_strerror(i32 noundef %7560, ptr noundef nonnull @.str.4) #12
  %7562 = load i32, ptr %7559, align 4, !tbaa !5
  %7563 = call ptr @s2n_strerror_debug(i32 noundef %7562, ptr noundef nonnull @.str.4) #12
  %7564 = load i32, ptr %7545, align 4, !tbaa !5
  %7565 = call ptr @strerror(i32 noundef %7564) #12
  %7566 = load i32, ptr %7545, align 4, !tbaa !5
  %7567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7557, ptr noundef nonnull %.str.5.sink4016, i32 noundef %7558, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 795, ptr noundef %7561, ptr noundef %7563, ptr noundef %7565, i32 noundef %7566) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7568:                                             ; preds = %7539
  %7569 = load i32, ptr @test_count, align 4, !tbaa !5
  %7570 = add nsw i32 %7569, 1
  store i32 %7570, ptr @test_count, align 4, !tbaa !5
  %7571 = load i32, ptr %208, align 4, !tbaa !56
  %7572 = load i32, ptr %209, align 8, !tbaa !57
  %7573 = icmp eq i32 %7571, %7572
  br i1 %7573, label %7598, label %7574

7574:                                             ; preds = %7568
  %7575 = tail call ptr @__errno_location() #13
  %7576 = load i32, ptr %7575, align 4, !tbaa !5
  %7577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7578 = call i32 @s2n_print_stacktrace(ptr noundef %7577) #12
  %7579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7580 = trunc nuw i8 %7579 to i1
  br i1 %7580, label %7581, label %7585

7581:                                             ; preds = %7574
  %7582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7583 = call i32 @fileno(ptr noundef %7582) #12
  %7584 = call i32 @isatty(i32 noundef %7583) #12
  %.not1058 = icmp eq i32 %7584, 0
  br i1 %.not1058, label %7585, label %7586

7585:                                             ; preds = %7581, %7574
  br label %7586

7586:                                             ; preds = %7581, %7585
  %.str.5.sink4027 = phi ptr [ @.str.5, %7585 ], [ @.str.2, %7581 ]
  store i32 %7576, ptr %7575, align 4, !tbaa !5
  %7587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7588 = load i32, ptr @test_count, align 4, !tbaa !5
  %7589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7590 = load i32, ptr %7589, align 4, !tbaa !5
  %7591 = call ptr @s2n_strerror(i32 noundef %7590, ptr noundef nonnull @.str.4) #12
  %7592 = load i32, ptr %7589, align 4, !tbaa !5
  %7593 = call ptr @s2n_strerror_debug(i32 noundef %7592, ptr noundef nonnull @.str.4) #12
  %7594 = load i32, ptr %7575, align 4, !tbaa !5
  %7595 = call ptr @strerror(i32 noundef %7594) #12
  %7596 = load i32, ptr %7575, align 4, !tbaa !5
  %7597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7587, ptr noundef nonnull %.str.5.sink4027, i32 noundef %7588, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 796, ptr noundef %7591, ptr noundef %7593, ptr noundef %7595, i32 noundef %7596) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7598:                                             ; preds = %7568
  %7599 = add nsw i32 %7569, 2
  store i32 %7599, ptr @test_count, align 4, !tbaa !5
  %7600 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %7096, i32 noundef 16) #12
  br i1 %7600, label %7601, label %7625

7601:                                             ; preds = %7598
  %7602 = tail call ptr @__errno_location() #13
  %7603 = load i32, ptr %7602, align 4, !tbaa !5
  %7604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7605 = call i32 @s2n_print_stacktrace(ptr noundef %7604) #12
  %7606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7607 = trunc nuw i8 %7606 to i1
  br i1 %7607, label %7608, label %7612

7608:                                             ; preds = %7601
  %7609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7610 = call i32 @fileno(ptr noundef %7609) #12
  %7611 = call i32 @isatty(i32 noundef %7610) #12
  %.not1117 = icmp eq i32 %7611, 0
  br i1 %.not1117, label %7612, label %7613

7612:                                             ; preds = %7608, %7601
  br label %7613

7613:                                             ; preds = %7608, %7612
  %.str.5.sink4038 = phi ptr [ @.str.5, %7612 ], [ @.str.2, %7608 ]
  store i32 %7603, ptr %7602, align 4, !tbaa !5
  %7614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7615 = load i32, ptr @test_count, align 4, !tbaa !5
  %7616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7617 = load i32, ptr %7616, align 4, !tbaa !5
  %7618 = call ptr @s2n_strerror(i32 noundef %7617, ptr noundef nonnull @.str.4) #12
  %7619 = load i32, ptr %7616, align 4, !tbaa !5
  %7620 = call ptr @s2n_strerror_debug(i32 noundef %7619, ptr noundef nonnull @.str.4) #12
  %7621 = load i32, ptr %7602, align 4, !tbaa !5
  %7622 = call ptr @strerror(i32 noundef %7621) #12
  %7623 = load i32, ptr %7602, align 4, !tbaa !5
  %7624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7614, ptr noundef nonnull %.str.5.sink4038, i32 noundef %7615, ptr noundef nonnull @.str.145, ptr noundef nonnull @.str.1, i32 noundef 799, ptr noundef %7618, ptr noundef %7620, ptr noundef %7622, i32 noundef %7623) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7625:                                             ; preds = %7598
  %7626 = getelementptr inbounds i8, ptr %7096, i64 832
  %7627 = load i32, ptr @test_count, align 4, !tbaa !5
  %7628 = add nsw i32 %7627, 1
  store i32 %7628, ptr @test_count, align 4, !tbaa !5
  %7629 = load ptr, ptr %7626, align 8, !tbaa !63
  %7630 = load ptr, ptr %68, align 8, !tbaa !9
  %7631 = icmp eq ptr %7629, %7630
  br i1 %7631, label %7656, label %7632

7632:                                             ; preds = %7625
  %7633 = tail call ptr @__errno_location() #13
  %7634 = load i32, ptr %7633, 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 = %7632
  %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
  %.not1059 = icmp eq i32 %7642, 0
  br i1 %.not1059, label %7643, label %7644

7643:                                             ; preds = %7639, %7632
  br label %7644

7644:                                             ; preds = %7639, %7643
  %.str.5.sink4049 = phi ptr [ @.str.5, %7643 ], [ @.str.2, %7639 ]
  store i32 %7634, ptr %7633, align 4, !tbaa !5
  %7645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7646 = load i32, ptr @test_count, align 4, !tbaa !5
  %7647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7648 = load i32, ptr %7647, align 4, !tbaa !5
  %7649 = call ptr @s2n_strerror(i32 noundef %7648, ptr noundef nonnull @.str.4) #12
  %7650 = load i32, ptr %7647, align 4, !tbaa !5
  %7651 = call ptr @s2n_strerror_debug(i32 noundef %7650, ptr noundef nonnull @.str.4) #12
  %7652 = load i32, ptr %7633, align 4, !tbaa !5
  %7653 = call ptr @strerror(i32 noundef %7652) #12
  %7654 = load i32, ptr %7633, align 4, !tbaa !5
  %7655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7645, ptr noundef nonnull %.str.5.sink4049, i32 noundef %7646, ptr noundef nonnull @.str.157, ptr noundef nonnull @.str.1, i32 noundef 803, ptr noundef %7649, ptr noundef %7651, ptr noundef %7653, i32 noundef %7654) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7656:                                             ; preds = %7625
  %7657 = add nsw i32 %7627, 2
  store i32 %7657, ptr @test_count, align 4, !tbaa !5
  %7658 = getelementptr inbounds i8, ptr %7096, i64 848
  %7659 = load ptr, ptr %7658, align 8, !tbaa !93
  %7660 = icmp eq ptr %7659, null
  br i1 %7660, label %7661, label %7685

7661:                                             ; preds = %7656
  %7662 = tail call ptr @__errno_location() #13
  %7663 = load i32, ptr %7662, align 4, !tbaa !5
  %7664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7665 = call i32 @s2n_print_stacktrace(ptr noundef %7664) #12
  %7666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7667 = trunc nuw i8 %7666 to i1
  br i1 %7667, label %7668, label %7672

7668:                                             ; preds = %7661
  %7669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7670 = call i32 @fileno(ptr noundef %7669) #12
  %7671 = call i32 @isatty(i32 noundef %7670) #12
  %.not1116 = icmp eq i32 %7671, 0
  br i1 %.not1116, label %7672, label %7673

7672:                                             ; preds = %7668, %7661
  br label %7673

7673:                                             ; preds = %7668, %7672
  %.str.5.sink4060 = phi ptr [ @.str.5, %7672 ], [ @.str.2, %7668 ]
  store i32 %7663, ptr %7662, align 4, !tbaa !5
  %7674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7675 = load i32, ptr @test_count, align 4, !tbaa !5
  %7676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7677 = load i32, ptr %7676, align 4, !tbaa !5
  %7678 = call ptr @s2n_strerror(i32 noundef %7677, ptr noundef nonnull @.str.4) #12
  %7679 = load i32, ptr %7676, align 4, !tbaa !5
  %7680 = call ptr @s2n_strerror_debug(i32 noundef %7679, ptr noundef nonnull @.str.4) #12
  %7681 = load i32, ptr %7662, align 4, !tbaa !5
  %7682 = call ptr @strerror(i32 noundef %7681) #12
  %7683 = load i32, ptr %7662, align 4, !tbaa !5
  %7684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7674, ptr noundef nonnull %.str.5.sink4060, i32 noundef %7675, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 804, ptr noundef %7678, ptr noundef %7680, ptr noundef %7682, i32 noundef %7683) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7685:                                             ; preds = %7656
  %7686 = add nsw i32 %7627, 3
  store i32 %7686, ptr @test_count, align 4, !tbaa !5
  %7687 = getelementptr inbounds i8, ptr %7096, i64 936
  %7688 = load ptr, ptr %7687, align 8, !tbaa !73
  %7689 = icmp eq ptr %7688, null
  br i1 %7689, label %7693, label %.preheader1321.preheader

.preheader1321.preheader:                         ; preds = %7685
  %7690 = add nsw i32 %7627, 4
  store i32 %7690, ptr @test_count, align 4, !tbaa !5
  %7691 = call i32 @s2n_kem_group_free(ptr noundef nonnull %69) #12
  %7692 = icmp eq i32 %7691, -1
  br i1 %7692, label %7726, label %.preheader1321.1

7693:                                             ; preds = %7685
  %7694 = tail call ptr @__errno_location() #13
  %7695 = load i32, ptr %7694, align 4, !tbaa !5
  %7696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7697 = call i32 @s2n_print_stacktrace(ptr noundef %7696) #12
  %7698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7699 = trunc nuw i8 %7698 to i1
  br i1 %7699, label %7700, label %7704

7700:                                             ; preds = %7693
  %7701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7702 = call i32 @fileno(ptr noundef %7701) #12
  %7703 = call i32 @isatty(i32 noundef %7702) #12
  %.not1115 = icmp eq i32 %7703, 0
  br i1 %.not1115, label %7704, label %7705

7704:                                             ; preds = %7700, %7693
  br label %7705

7705:                                             ; preds = %7700, %7704
  %.str.5.sink4071 = phi ptr [ @.str.5, %7704 ], [ @.str.2, %7700 ]
  store i32 %7695, ptr %7694, align 4, !tbaa !5
  %7706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7707 = load i32, ptr @test_count, align 4, !tbaa !5
  %7708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7709 = load i32, ptr %7708, align 4, !tbaa !5
  %7710 = call ptr @s2n_strerror(i32 noundef %7709, ptr noundef nonnull @.str.4) #12
  %7711 = load i32, ptr %7708, align 4, !tbaa !5
  %7712 = call ptr @s2n_strerror_debug(i32 noundef %7711, ptr noundef nonnull @.str.4) #12
  %7713 = load i32, ptr %7694, align 4, !tbaa !5
  %7714 = call ptr @strerror(i32 noundef %7713) #12
  %7715 = load i32, ptr %7694, align 4, !tbaa !5
  %7716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7706, ptr noundef nonnull %.str.5.sink4071, i32 noundef %7707, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.1, i32 noundef 805, ptr noundef %7710, ptr noundef %7712, ptr noundef %7714, i32 noundef %7715) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.preheader1321.1:                                 ; preds = %.preheader1321.preheader
  %7717 = load i32, ptr @test_count, align 4, !tbaa !5
  %7718 = add nsw i32 %7717, 1
  store i32 %7718, ptr @test_count, align 4, !tbaa !5
  %7719 = call i32 @s2n_kem_group_free(ptr noundef nonnull %206) #12
  %7720 = icmp eq i32 %7719, -1
  br i1 %7720, label %7726, label %7721

7721:                                             ; preds = %.preheader1321.1
  %7722 = load i32, ptr @test_count, align 4, !tbaa !5
  %7723 = add nsw i32 %7722, 1
  store i32 %7723, ptr @test_count, align 4, !tbaa !5
  %7724 = call i32 @s2n_stuffer_free(ptr noundef nonnull %70) #12
  %7725 = icmp eq i32 %7724, -1
  br i1 %7725, label %7750, label %7774

7726:                                             ; preds = %.preheader1321.1, %.preheader1321.preheader
  %7727 = tail call ptr @__errno_location() #13
  %7728 = load i32, ptr %7727, align 4, !tbaa !5
  %7729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7730 = call i32 @s2n_print_stacktrace(ptr noundef %7729) #12
  %7731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7732 = trunc nuw i8 %7731 to i1
  br i1 %7732, label %7733, label %7737

7733:                                             ; preds = %7726
  %7734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7735 = call i32 @fileno(ptr noundef %7734) #12
  %7736 = call i32 @isatty(i32 noundef %7735) #12
  %.not1114 = icmp eq i32 %7736, 0
  br i1 %.not1114, label %7737, label %7738

7737:                                             ; preds = %7733, %7726
  br label %7738

7738:                                             ; preds = %7733, %7737
  %.str.5.sink4082 = phi ptr [ @.str.5, %7737 ], [ @.str.2, %7733 ]
  store i32 %7728, ptr %7727, align 4, !tbaa !5
  %7739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7740 = load i32, ptr @test_count, align 4, !tbaa !5
  %7741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7742 = load i32, ptr %7741, align 4, !tbaa !5
  %7743 = call ptr @s2n_strerror(i32 noundef %7742, ptr noundef nonnull @.str.4) #12
  %7744 = load i32, ptr %7741, align 4, !tbaa !5
  %7745 = call ptr @s2n_strerror_debug(i32 noundef %7744, ptr noundef nonnull @.str.4) #12
  %7746 = load i32, ptr %7727, align 4, !tbaa !5
  %7747 = call ptr @strerror(i32 noundef %7746) #12
  %7748 = load i32, ptr %7727, align 4, !tbaa !5
  %7749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7739, ptr noundef nonnull %.str.5.sink4082, i32 noundef %7740, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.1, i32 noundef 808, ptr noundef %7743, ptr noundef %7745, ptr noundef %7747, i32 noundef %7748) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7750:                                             ; preds = %7721
  %7751 = tail call ptr @__errno_location() #13
  %7752 = load i32, ptr %7751, align 4, !tbaa !5
  %7753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7754 = call i32 @s2n_print_stacktrace(ptr noundef %7753) #12
  %7755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7756 = trunc nuw i8 %7755 to i1
  br i1 %7756, label %7757, label %7761

7757:                                             ; preds = %7750
  %7758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7759 = call i32 @fileno(ptr noundef %7758) #12
  %7760 = call i32 @isatty(i32 noundef %7759) #12
  %.not1113 = icmp eq i32 %7760, 0
  br i1 %.not1113, label %7761, label %7762

7761:                                             ; preds = %7757, %7750
  br label %7762

7762:                                             ; preds = %7757, %7761
  %.str.5.sink4093 = phi ptr [ @.str.5, %7761 ], [ @.str.2, %7757 ]
  store i32 %7752, ptr %7751, align 4, !tbaa !5
  %7763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7764 = load i32, ptr @test_count, align 4, !tbaa !5
  %7765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7766 = load i32, ptr %7765, align 4, !tbaa !5
  %7767 = call ptr @s2n_strerror(i32 noundef %7766, ptr noundef nonnull @.str.4) #12
  %7768 = load i32, ptr %7765, align 4, !tbaa !5
  %7769 = call ptr @s2n_strerror_debug(i32 noundef %7768, ptr noundef nonnull @.str.4) #12
  %7770 = load i32, ptr %7751, align 4, !tbaa !5
  %7771 = call ptr @strerror(i32 noundef %7770) #12
  %7772 = load i32, ptr %7751, align 4, !tbaa !5
  %7773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7763, ptr noundef nonnull %.str.5.sink4093, i32 noundef %7764, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.1, i32 noundef 810, ptr noundef %7767, ptr noundef %7769, ptr noundef %7771, i32 noundef %7772) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7774:                                             ; preds = %7721
  %7775 = load i32, ptr @test_count, align 4, !tbaa !5
  %7776 = add nsw i32 %7775, 1
  store i32 %7776, ptr @test_count, align 4, !tbaa !5
  %7777 = call i32 @s2n_connection_free(ptr noundef nonnull %7096) #12
  %7778 = icmp eq i32 %7777, -1
  br i1 %7778, label %7779, label %7803

7779:                                             ; preds = %7774
  %7780 = tail call ptr @__errno_location() #13
  %7781 = load i32, ptr %7780, align 4, !tbaa !5
  %7782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7783 = call i32 @s2n_print_stacktrace(ptr noundef %7782) #12
  %7784 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7785 = trunc nuw i8 %7784 to i1
  br i1 %7785, label %7786, label %7790

7786:                                             ; preds = %7779
  %7787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7788 = call i32 @fileno(ptr noundef %7787) #12
  %7789 = call i32 @isatty(i32 noundef %7788) #12
  %.not1112 = icmp eq i32 %7789, 0
  br i1 %.not1112, label %7790, label %7791

7790:                                             ; preds = %7786, %7779
  br label %7791

7791:                                             ; preds = %7786, %7790
  %.str.5.sink4104 = phi ptr [ @.str.5, %7790 ], [ @.str.2, %7786 ]
  store i32 %7781, ptr %7780, align 4, !tbaa !5
  %7792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7793 = load i32, ptr @test_count, align 4, !tbaa !5
  %7794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7795 = load i32, ptr %7794, align 4, !tbaa !5
  %7796 = call ptr @s2n_strerror(i32 noundef %7795, ptr noundef nonnull @.str.4) #12
  %7797 = load i32, ptr %7794, align 4, !tbaa !5
  %7798 = call ptr @s2n_strerror_debug(i32 noundef %7797, ptr noundef nonnull @.str.4) #12
  %7799 = load i32, ptr %7780, align 4, !tbaa !5
  %7800 = call ptr @strerror(i32 noundef %7799) #12
  %7801 = load i32, ptr %7780, align 4, !tbaa !5
  %7802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7792, ptr noundef nonnull %.str.5.sink4104, i32 noundef %7793, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 811, ptr noundef %7796, ptr noundef %7798, ptr noundef %7800, i32 noundef %7801) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7803:                                             ; preds = %7774
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %70) #12
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %69) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #12
  br label %7804

7804:                                             ; preds = %7092, %7803
  %7805 = load i32, ptr @test_count, align 4, !tbaa !5
  %7806 = add nsw i32 %7805, 1
  store i32 %7806, ptr @test_count, align 4, !tbaa !5
  %7807 = load ptr, ptr %152, align 8, !tbaa !22
  %7808 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %7807, ptr noundef nonnull %3) #12
  %7809 = call zeroext i1 @s2n_result_is_ok(i32 %7808)
  br i1 %7809, label %7834, label %7810

7810:                                             ; preds = %7804
  %7811 = tail call ptr @__errno_location() #13
  %7812 = load i32, ptr %7811, align 4, !tbaa !5
  %7813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7814 = call i32 @s2n_print_stacktrace(ptr noundef %7813) #12
  %7815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7816 = trunc nuw i8 %7815 to i1
  br i1 %7816, label %7817, label %7821

7817:                                             ; preds = %7810
  %7818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7819 = call i32 @fileno(ptr noundef %7818) #12
  %7820 = call i32 @isatty(i32 noundef %7819) #12
  %.not1060 = icmp eq i32 %7820, 0
  br i1 %.not1060, label %7821, label %7822

7821:                                             ; preds = %7817, %7810
  br label %7822

7822:                                             ; preds = %7817, %7821
  %.str.5.sink4115 = phi ptr [ @.str.5, %7821 ], [ @.str.2, %7817 ]
  store i32 %7812, ptr %7811, align 4, !tbaa !5
  %7823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7824 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7826, ptr noundef nonnull @.str.4) #12
  %7828 = load i32, ptr %7825, align 4, !tbaa !5
  %7829 = call ptr @s2n_strerror_debug(i32 noundef %7828, ptr noundef nonnull @.str.4) #12
  %7830 = load i32, ptr %7811, align 4, !tbaa !5
  %7831 = call ptr @strerror(i32 noundef %7830) #12
  %7832 = load i32, ptr %7811, align 4, !tbaa !5
  %7833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7823, ptr noundef nonnull %.str.5.sink4115, i32 noundef %7824, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 817, ptr noundef %7827, ptr noundef %7829, ptr noundef %7831, i32 noundef %7832) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7834:                                             ; preds = %7804
  %7835 = load i32, ptr %3, align 4, !tbaa !5
  %7836 = icmp ugt i32 %7835, 1
  br i1 %7836, label %7837, label %8579

7837:                                             ; preds = %7834
  %7838 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %7839 = load i32, ptr @test_count, align 4, !tbaa !5
  %7840 = add nsw i32 %7839, 1
  store i32 %7840, ptr @test_count, align 4, !tbaa !5
  %7841 = icmp eq ptr %7838, null
  br i1 %7841, label %7842, label %7866

7842:                                             ; preds = %7837
  %7843 = tail call ptr @__errno_location() #13
  %7844 = load i32, ptr %7843, align 4, !tbaa !5
  %7845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7846 = call i32 @s2n_print_stacktrace(ptr noundef %7845) #12
  %7847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7848 = trunc nuw i8 %7847 to i1
  br i1 %7848, label %7849, label %7853

7849:                                             ; preds = %7842
  %7850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7851 = call i32 @fileno(ptr noundef %7850) #12
  %7852 = call i32 @isatty(i32 noundef %7851) #12
  %.not1111 = icmp eq i32 %7852, 0
  br i1 %.not1111, label %7853, label %7854

7853:                                             ; preds = %7849, %7842
  br label %7854

7854:                                             ; preds = %7849, %7853
  %.str.5.sink4126 = phi ptr [ @.str.5, %7853 ], [ @.str.2, %7849 ]
  store i32 %7844, ptr %7843, align 4, !tbaa !5
  %7855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7856 = load i32, ptr @test_count, align 4, !tbaa !5
  %7857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7858 = load i32, ptr %7857, align 4, !tbaa !5
  %7859 = call ptr @s2n_strerror(i32 noundef %7858, ptr noundef nonnull @.str.4) #12
  %7860 = load i32, ptr %7857, align 4, !tbaa !5
  %7861 = call ptr @s2n_strerror_debug(i32 noundef %7860, ptr noundef nonnull @.str.4) #12
  %7862 = load i32, ptr %7843, align 4, !tbaa !5
  %7863 = call ptr @strerror(i32 noundef %7862) #12
  %7864 = load i32, ptr %7843, align 4, !tbaa !5
  %7865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7855, ptr noundef nonnull %.str.5.sink4126, i32 noundef %7856, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 820, ptr noundef %7859, ptr noundef %7861, ptr noundef %7863, i32 noundef %7864) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7866:                                             ; preds = %7837
  %7867 = getelementptr inbounds i8, ptr %7838, i64 16
  store ptr %2, ptr %7867, align 8, !tbaa !28
  %7868 = add nsw i32 %7839, 2
  store i32 %7868, ptr @test_count, align 4, !tbaa !5
  %7869 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %7838, i8 noundef zeroext 34) #12
  %7870 = icmp eq i32 %7869, -1
  br i1 %7870, label %7871, label %7895

7871:                                             ; preds = %7866
  %7872 = tail call ptr @__errno_location() #13
  %7873 = load i32, ptr %7872, align 4, !tbaa !5
  %7874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7875 = call i32 @s2n_print_stacktrace(ptr noundef %7874) #12
  %7876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7877 = trunc nuw i8 %7876 to i1
  br i1 %7877, label %7878, label %7882

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
  %.not1110 = icmp eq i32 %7881, 0
  br i1 %.not1110, label %7882, label %7883

7882:                                             ; preds = %7878, %7871
  br label %7883

7883:                                             ; preds = %7878, %7882
  %.str.5.sink4137 = phi ptr [ @.str.5, %7882 ], [ @.str.2, %7878 ]
  store i32 %7873, ptr %7872, align 4, !tbaa !5
  %7884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7885 = load i32, ptr @test_count, align 4, !tbaa !5
  %7886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7887 = load i32, ptr %7886, align 4, !tbaa !5
  %7888 = call ptr @s2n_strerror(i32 noundef %7887, ptr noundef nonnull @.str.4) #12
  %7889 = load i32, ptr %7886, align 4, !tbaa !5
  %7890 = call ptr @s2n_strerror_debug(i32 noundef %7889, ptr noundef nonnull @.str.4) #12
  %7891 = load i32, ptr %7872, align 4, !tbaa !5
  %7892 = call ptr @strerror(i32 noundef %7891) #12
  %7893 = load i32, ptr %7872, align 4, !tbaa !5
  %7894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7884, ptr noundef nonnull %.str.5.sink4137, i32 noundef %7885, ptr noundef nonnull @.str.158, ptr noundef nonnull @.str.1, i32 noundef 822, ptr noundef %7888, ptr noundef %7890, ptr noundef %7892, i32 noundef %7893) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7895:                                             ; preds = %7866
  %7896 = load i32, ptr @test_count, align 4, !tbaa !5
  %7897 = add nsw i32 %7896, 1
  store i32 %7897, ptr @test_count, align 4, !tbaa !5
  %7898 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %7838) #12
  %7899 = call zeroext i1 @s2n_result_is_ok(i32 %7898)
  br i1 %7899, label %7924, label %7900

7900:                                             ; preds = %7895
  %7901 = tail call ptr @__errno_location() #13
  %7902 = load i32, ptr %7901, align 4, !tbaa !5
  %7903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7904 = call i32 @s2n_print_stacktrace(ptr noundef %7903) #12
  %7905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7906 = trunc nuw i8 %7905 to i1
  br i1 %7906, label %7907, label %7911

7907:                                             ; preds = %7900
  %7908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7909 = call i32 @fileno(ptr noundef %7908) #12
  %7910 = call i32 @isatty(i32 noundef %7909) #12
  %.not1061 = icmp eq i32 %7910, 0
  br i1 %.not1061, label %7911, label %7912

7911:                                             ; preds = %7907, %7900
  br label %7912

7912:                                             ; preds = %7907, %7911
  %.str.5.sink4148 = phi ptr [ @.str.5, %7911 ], [ @.str.2, %7907 ]
  store i32 %7902, ptr %7901, align 4, !tbaa !5
  %7913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7914 = load i32, ptr @test_count, align 4, !tbaa !5
  %7915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7916 = load i32, ptr %7915, align 4, !tbaa !5
  %7917 = call ptr @s2n_strerror(i32 noundef %7916, ptr noundef nonnull @.str.4) #12
  %7918 = load i32, ptr %7915, align 4, !tbaa !5
  %7919 = call ptr @s2n_strerror_debug(i32 noundef %7918, ptr noundef nonnull @.str.4) #12
  %7920 = load i32, ptr %7901, align 4, !tbaa !5
  %7921 = call ptr @strerror(i32 noundef %7920) #12
  %7922 = load i32, ptr %7901, align 4, !tbaa !5
  %7923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7913, ptr noundef nonnull %.str.5.sink4148, i32 noundef %7914, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 823, ptr noundef %7917, ptr noundef %7919, ptr noundef %7921, i32 noundef %7922) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7924:                                             ; preds = %7895
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %72) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %72, i8 0, i64 40, i1 false)
  %7925 = load i32, ptr @test_count, align 4, !tbaa !5
  %7926 = add nsw i32 %7925, 1
  store i32 %7926, ptr @test_count, align 4, !tbaa !5
  %7927 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %72, i32 noundef 8192) #12
  %7928 = icmp eq i32 %7927, -1
  br i1 %7928, label %7929, label %7953

7929:                                             ; preds = %7924
  %7930 = tail call ptr @__errno_location() #13
  %7931 = load i32, ptr %7930, align 4, !tbaa !5
  %7932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7933 = call i32 @s2n_print_stacktrace(ptr noundef %7932) #12
  %7934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7935 = trunc nuw i8 %7934 to i1
  br i1 %7935, label %7936, label %7940

7936:                                             ; preds = %7929
  %7937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7938 = call i32 @fileno(ptr noundef %7937) #12
  %7939 = call i32 @isatty(i32 noundef %7938) #12
  %.not1109 = icmp eq i32 %7939, 0
  br i1 %.not1109, label %7940, label %7941

7940:                                             ; preds = %7936, %7929
  br label %7941

7941:                                             ; preds = %7936, %7940
  %.str.5.sink4159 = phi ptr [ @.str.5, %7940 ], [ @.str.2, %7936 ]
  store i32 %7931, ptr %7930, align 4, !tbaa !5
  %7942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7943 = load i32, ptr @test_count, align 4, !tbaa !5
  %7944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7945 = load i32, ptr %7944, align 4, !tbaa !5
  %7946 = call ptr @s2n_strerror(i32 noundef %7945, ptr noundef nonnull @.str.4) #12
  %7947 = load i32, ptr %7944, align 4, !tbaa !5
  %7948 = call ptr @s2n_strerror_debug(i32 noundef %7947, ptr noundef nonnull @.str.4) #12
  %7949 = load i32, ptr %7930, align 4, !tbaa !5
  %7950 = call ptr @strerror(i32 noundef %7949) #12
  %7951 = load i32, ptr %7930, align 4, !tbaa !5
  %7952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7942, ptr noundef nonnull %.str.5.sink4159, i32 noundef %7943, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 826, ptr noundef %7946, ptr noundef %7948, ptr noundef %7950, i32 noundef %7951) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7953:                                             ; preds = %7924
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #12
  store ptr null, ptr %73, align 8, !tbaa !9
  %7954 = load i32, ptr @test_count, align 4, !tbaa !5
  %7955 = add nsw i32 %7954, 1
  store i32 %7955, ptr @test_count, align 4, !tbaa !5
  %7956 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %7838, ptr noundef nonnull %73) #12
  %7957 = icmp eq i32 %7956, -1
  br i1 %7957, label %7958, label %7982

7958:                                             ; preds = %7953
  %7959 = tail call ptr @__errno_location() #13
  %7960 = load i32, ptr %7959, align 4, !tbaa !5
  %7961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7962 = call i32 @s2n_print_stacktrace(ptr noundef %7961) #12
  %7963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7964 = trunc nuw i8 %7963 to i1
  br i1 %7964, label %7965, label %7969

7965:                                             ; preds = %7958
  %7966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7967 = call i32 @fileno(ptr noundef %7966) #12
  %7968 = call i32 @isatty(i32 noundef %7967) #12
  %.not1108 = icmp eq i32 %7968, 0
  br i1 %.not1108, label %7969, label %7970

7969:                                             ; preds = %7965, %7958
  br label %7970

7970:                                             ; preds = %7965, %7969
  %.str.5.sink4170 = phi ptr [ @.str.5, %7969 ], [ @.str.2, %7965 ]
  store i32 %7960, ptr %7959, align 4, !tbaa !5
  %7971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7972 = load i32, ptr @test_count, align 4, !tbaa !5
  %7973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7974 = load i32, ptr %7973, align 4, !tbaa !5
  %7975 = call ptr @s2n_strerror(i32 noundef %7974, ptr noundef nonnull @.str.4) #12
  %7976 = load i32, ptr %7973, align 4, !tbaa !5
  %7977 = call ptr @s2n_strerror_debug(i32 noundef %7976, ptr noundef nonnull @.str.4) #12
  %7978 = load i32, ptr %7959, align 4, !tbaa !5
  %7979 = call ptr @strerror(i32 noundef %7978) #12
  %7980 = load i32, ptr %7959, align 4, !tbaa !5
  %7981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7971, ptr noundef nonnull %.str.5.sink4170, i32 noundef %7972, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.1, i32 noundef 829, ptr noundef %7975, ptr noundef %7977, ptr noundef %7979, i32 noundef %7980) #14
  call void @exit(i32 noundef 1) #15
  unreachable

7982:                                             ; preds = %7953
  %7983 = load i32, ptr @test_count, align 4, !tbaa !5
  %7984 = add nsw i32 %7983, 1
  store i32 %7984, ptr @test_count, align 4, !tbaa !5
  %7985 = load ptr, ptr %73, align 8, !tbaa !9
  %7986 = icmp eq ptr %7985, null
  br i1 %7986, label %7987, label %8011

7987:                                             ; preds = %7982
  %7988 = tail call ptr @__errno_location() #13
  %7989 = load i32, ptr %7988, align 4, !tbaa !5
  %7990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7991 = call i32 @s2n_print_stacktrace(ptr noundef %7990) #12
  %7992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7993 = trunc nuw i8 %7992 to i1
  br i1 %7993, label %7994, label %7998

7994:                                             ; preds = %7987
  %7995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7996 = call i32 @fileno(ptr noundef %7995) #12
  %7997 = call i32 @isatty(i32 noundef %7996) #12
  %.not1107 = icmp eq i32 %7997, 0
  br i1 %.not1107, label %7998, label %7999

7998:                                             ; preds = %7994, %7987
  br label %7999

7999:                                             ; preds = %7994, %7998
  %.str.5.sink4181 = phi ptr [ @.str.5, %7998 ], [ @.str.2, %7994 ]
  store i32 %7989, ptr %7988, align 4, !tbaa !5
  %8000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8001 = load i32, ptr @test_count, align 4, !tbaa !5
  %8002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8003 = load i32, ptr %8002, align 4, !tbaa !5
  %8004 = call ptr @s2n_strerror(i32 noundef %8003, ptr noundef nonnull @.str.4) #12
  %8005 = load i32, ptr %8002, align 4, !tbaa !5
  %8006 = call ptr @s2n_strerror_debug(i32 noundef %8005, ptr noundef nonnull @.str.4) #12
  %8007 = load i32, ptr %7988, align 4, !tbaa !5
  %8008 = call ptr @strerror(i32 noundef %8007) #12
  %8009 = load i32, ptr %7988, align 4, !tbaa !5
  %8010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8000, ptr noundef nonnull %.str.5.sink4181, i32 noundef %8001, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 830, ptr noundef %8004, ptr noundef %8006, ptr noundef %8008, i32 noundef %8009) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8011:                                             ; preds = %7982
  %8012 = add nsw i32 %7983, 2
  store i32 %8012, ptr @test_count, align 4, !tbaa !5
  %8013 = call i32 @s2n_kem_preferences_groups_available(ptr noundef nonnull %7985, ptr noundef nonnull %3) #12
  %8014 = call zeroext i1 @s2n_result_is_ok(i32 %8013)
  br i1 %8014, label %8039, label %8015

8015:                                             ; preds = %8011
  %8016 = tail call ptr @__errno_location() #13
  %8017 = load i32, ptr %8016, align 4, !tbaa !5
  %8018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8019 = call i32 @s2n_print_stacktrace(ptr noundef %8018) #12
  %8020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8021 = trunc nuw i8 %8020 to i1
  br i1 %8021, label %8022, label %8026

8022:                                             ; preds = %8015
  %8023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8024 = call i32 @fileno(ptr noundef %8023) #12
  %8025 = call i32 @isatty(i32 noundef %8024) #12
  %.not1062 = icmp eq i32 %8025, 0
  br i1 %.not1062, label %8026, label %8027

8026:                                             ; preds = %8022, %8015
  br label %8027

8027:                                             ; preds = %8022, %8026
  %.str.5.sink4192 = phi ptr [ @.str.5, %8026 ], [ @.str.2, %8022 ]
  store i32 %8017, ptr %8016, align 4, !tbaa !5
  %8028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8029 = load i32, ptr @test_count, align 4, !tbaa !5
  %8030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8031 = load i32, ptr %8030, align 4, !tbaa !5
  %8032 = call ptr @s2n_strerror(i32 noundef %8031, ptr noundef nonnull @.str.4) #12
  %8033 = load i32, ptr %8030, align 4, !tbaa !5
  %8034 = call ptr @s2n_strerror_debug(i32 noundef %8033, ptr noundef nonnull @.str.4) #12
  %8035 = load i32, ptr %8016, align 4, !tbaa !5
  %8036 = call ptr @strerror(i32 noundef %8035) #12
  %8037 = load i32, ptr %8016, align 4, !tbaa !5
  %8038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8028, ptr noundef nonnull %.str.5.sink4192, i32 noundef %8029, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.1, i32 noundef 831, ptr noundef %8032, ptr noundef %8034, ptr noundef %8036, i32 noundef %8037) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8039:                                             ; preds = %8011
  %8040 = load i32, ptr @test_count, align 4, !tbaa !5
  %8041 = add nsw i32 %8040, 1
  store i32 %8041, ptr @test_count, align 4, !tbaa !5
  %8042 = load i32, ptr %3, align 4, !tbaa !5
  %8043 = icmp ugt i32 %8042, 1
  br i1 %8043, label %8068, label %8044

8044:                                             ; preds = %8039
  %8045 = tail call ptr @__errno_location() #13
  %8046 = load i32, ptr %8045, align 4, !tbaa !5
  %8047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8048 = call i32 @s2n_print_stacktrace(ptr noundef %8047) #12
  %8049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8050 = trunc nuw i8 %8049 to i1
  br i1 %8050, label %8051, label %8055

8051:                                             ; preds = %8044
  %8052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8053 = call i32 @fileno(ptr noundef %8052) #12
  %8054 = call i32 @isatty(i32 noundef %8053) #12
  %.not1063 = icmp eq i32 %8054, 0
  br i1 %.not1063, label %8055, label %8056

8055:                                             ; preds = %8051, %8044
  br label %8056

8056:                                             ; preds = %8051, %8055
  %.str.5.sink4203 = phi ptr [ @.str.5, %8055 ], [ @.str.2, %8051 ]
  store i32 %8046, ptr %8045, align 4, !tbaa !5
  %8057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8058 = load i32, ptr @test_count, align 4, !tbaa !5
  %8059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8060 = load i32, ptr %8059, align 4, !tbaa !5
  %8061 = call ptr @s2n_strerror(i32 noundef %8060, ptr noundef nonnull @.str.4) #12
  %8062 = load i32, ptr %8059, align 4, !tbaa !5
  %8063 = call ptr @s2n_strerror_debug(i32 noundef %8062, ptr noundef nonnull @.str.4) #12
  %8064 = load i32, ptr %8045, align 4, !tbaa !5
  %8065 = call ptr @strerror(i32 noundef %8064) #12
  %8066 = load i32, ptr %8045, align 4, !tbaa !5
  %8067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8057, ptr noundef nonnull %.str.5.sink4203, i32 noundef %8058, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.1, i32 noundef 832, ptr noundef %8061, ptr noundef %8063, ptr noundef %8065, i32 noundef %8066) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8068:                                             ; preds = %8039
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #12
  store ptr null, ptr %74, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #12
  store ptr null, ptr %75, align 8, !tbaa !9
  %8069 = add nsw i32 %8040, 2
  store i32 %8069, ptr @test_count, align 4, !tbaa !5
  %8070 = load ptr, ptr %73, align 8, !tbaa !9
  %8071 = call i32 @s2n_get_two_highest_piority_kem_groups(ptr noundef %8070, ptr noundef nonnull %74, ptr noundef nonnull %75)
  %8072 = icmp eq i32 %8071, -1
  br i1 %8072, label %8073, label %8097

8073:                                             ; preds = %8068
  %8074 = tail call ptr @__errno_location() #13
  %8075 = load i32, ptr %8074, align 4, !tbaa !5
  %8076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8077 = call i32 @s2n_print_stacktrace(ptr noundef %8076) #12
  %8078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8079 = trunc nuw i8 %8078 to i1
  br i1 %8079, label %8080, label %8084

8080:                                             ; preds = %8073
  %8081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8082 = call i32 @fileno(ptr noundef %8081) #12
  %8083 = call i32 @isatty(i32 noundef %8082) #12
  %.not1106 = icmp eq i32 %8083, 0
  br i1 %.not1106, label %8084, label %8085

8084:                                             ; preds = %8080, %8073
  br label %8085

8085:                                             ; preds = %8080, %8084
  %.str.5.sink4214 = phi ptr [ @.str.5, %8084 ], [ @.str.2, %8080 ]
  store i32 %8075, ptr %8074, align 4, !tbaa !5
  %8086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8087 = load i32, ptr @test_count, align 4, !tbaa !5
  %8088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8089 = load i32, ptr %8088, align 4, !tbaa !5
  %8090 = call ptr @s2n_strerror(i32 noundef %8089, ptr noundef nonnull @.str.4) #12
  %8091 = load i32, ptr %8088, align 4, !tbaa !5
  %8092 = call ptr @s2n_strerror_debug(i32 noundef %8091, ptr noundef nonnull @.str.4) #12
  %8093 = load i32, ptr %8074, align 4, !tbaa !5
  %8094 = call ptr @strerror(i32 noundef %8093) #12
  %8095 = load i32, ptr %8074, align 4, !tbaa !5
  %8096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8086, ptr noundef nonnull %.str.5.sink4214, i32 noundef %8087, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.1, i32 noundef 837, ptr noundef %8090, ptr noundef %8092, ptr noundef %8094, i32 noundef %8095) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8097:                                             ; preds = %8068
  %8098 = load i32, ptr @test_count, align 4, !tbaa !5
  %8099 = add nsw i32 %8098, 1
  store i32 %8099, ptr @test_count, align 4, !tbaa !5
  %8100 = load ptr, ptr %74, align 8, !tbaa !9
  %8101 = icmp eq ptr %8100, null
  br i1 %8101, label %8102, label %8126

8102:                                             ; preds = %8097
  %8103 = tail call ptr @__errno_location() #13
  %8104 = load i32, ptr %8103, align 4, !tbaa !5
  %8105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8106 = call i32 @s2n_print_stacktrace(ptr noundef %8105) #12
  %8107 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8108 = trunc nuw i8 %8107 to i1
  br i1 %8108, label %8109, label %8113

8109:                                             ; preds = %8102
  %8110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8111 = call i32 @fileno(ptr noundef %8110) #12
  %8112 = call i32 @isatty(i32 noundef %8111) #12
  %.not1105 = icmp eq i32 %8112, 0
  br i1 %.not1105, label %8113, label %8114

8113:                                             ; preds = %8109, %8102
  br label %8114

8114:                                             ; preds = %8109, %8113
  %.str.5.sink4225 = phi ptr [ @.str.5, %8113 ], [ @.str.2, %8109 ]
  store i32 %8104, ptr %8103, align 4, !tbaa !5
  %8115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8116 = load i32, ptr @test_count, align 4, !tbaa !5
  %8117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8118 = load i32, ptr %8117, align 4, !tbaa !5
  %8119 = call ptr @s2n_strerror(i32 noundef %8118, ptr noundef nonnull @.str.4) #12
  %8120 = load i32, ptr %8117, align 4, !tbaa !5
  %8121 = call ptr @s2n_strerror_debug(i32 noundef %8120, ptr noundef nonnull @.str.4) #12
  %8122 = load i32, ptr %8103, align 4, !tbaa !5
  %8123 = call ptr @strerror(i32 noundef %8122) #12
  %8124 = load i32, ptr %8103, align 4, !tbaa !5
  %8125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8115, ptr noundef nonnull %.str.5.sink4225, i32 noundef %8116, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.1, i32 noundef 838, ptr noundef %8119, ptr noundef %8121, ptr noundef %8123, i32 noundef %8124) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8126:                                             ; preds = %8097
  %8127 = add nsw i32 %8098, 2
  store i32 %8127, ptr @test_count, align 4, !tbaa !5
  %8128 = load ptr, ptr %75, align 8, !tbaa !9
  %8129 = icmp eq ptr %8128, null
  br i1 %8129, label %8130, label %8154

8130:                                             ; preds = %8126
  %8131 = tail call ptr @__errno_location() #13
  %8132 = load i32, ptr %8131, align 4, !tbaa !5
  %8133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8134 = call i32 @s2n_print_stacktrace(ptr noundef %8133) #12
  %8135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8136 = trunc nuw i8 %8135 to i1
  br i1 %8136, label %8137, label %8141

8137:                                             ; preds = %8130
  %8138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8139 = call i32 @fileno(ptr noundef %8138) #12
  %8140 = call i32 @isatty(i32 noundef %8139) #12
  %.not1104 = icmp eq i32 %8140, 0
  br i1 %.not1104, label %8141, label %8142

8141:                                             ; preds = %8137, %8130
  br label %8142

8142:                                             ; preds = %8137, %8141
  %.str.5.sink4236 = phi ptr [ @.str.5, %8141 ], [ @.str.2, %8137 ]
  store i32 %8132, ptr %8131, align 4, !tbaa !5
  %8143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8144 = load i32, ptr @test_count, align 4, !tbaa !5
  %8145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8146 = load i32, ptr %8145, align 4, !tbaa !5
  %8147 = call ptr @s2n_strerror(i32 noundef %8146, ptr noundef nonnull @.str.4) #12
  %8148 = load i32, ptr %8145, align 4, !tbaa !5
  %8149 = call ptr @s2n_strerror_debug(i32 noundef %8148, ptr noundef nonnull @.str.4) #12
  %8150 = load i32, ptr %8131, align 4, !tbaa !5
  %8151 = call ptr @strerror(i32 noundef %8150) #12
  %8152 = load i32, ptr %8131, align 4, !tbaa !5
  %8153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8143, ptr noundef nonnull %.str.5.sink4236, i32 noundef %8144, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.1, i32 noundef 839, ptr noundef %8147, ptr noundef %8149, ptr noundef %8151, i32 noundef %8152) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8154:                                             ; preds = %8126
  call void @llvm.lifetime.start.p0(i64 224, ptr nonnull %76) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(224) %76, i8 0, i64 224, i1 false)
  store ptr %8100, ptr %76, align 16, !tbaa !63
  store i8 %.01346, ptr %210, align 8, !tbaa !98
  store ptr %8128, ptr %211, align 16, !tbaa !63
  store i8 %.01346, ptr %212, align 8, !tbaa !98
  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)
  %8155 = add nsw i32 %8098, 3
  store i32 %8155, ptr @test_count, align 4, !tbaa !5
  %8156 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %72, ptr noundef nonnull %77) #12
  %8157 = icmp eq i32 %8156, -1
  br i1 %8157, label %8158, label %8182

8158:                                             ; preds = %8154
  %8159 = tail call ptr @__errno_location() #13
  %8160 = load i32, ptr %8159, align 4, !tbaa !5
  %8161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8162 = call i32 @s2n_print_stacktrace(ptr noundef %8161) #12
  %8163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8164 = trunc nuw i8 %8163 to i1
  br i1 %8164, label %8165, label %8169

8165:                                             ; preds = %8158
  %8166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8167 = call i32 @fileno(ptr noundef %8166) #12
  %8168 = call i32 @isatty(i32 noundef %8167) #12
  %.not1103 = icmp eq i32 %8168, 0
  br i1 %.not1103, label %8169, label %8170

8169:                                             ; preds = %8165, %8158
  br label %8170

8170:                                             ; preds = %8165, %8169
  %.str.5.sink4247 = phi ptr [ @.str.5, %8169 ], [ @.str.2, %8165 ]
  store i32 %8160, ptr %8159, align 4, !tbaa !5
  %8171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8172 = load i32, ptr @test_count, align 4, !tbaa !5
  %8173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8174 = load i32, ptr %8173, align 4, !tbaa !5
  %8175 = call ptr @s2n_strerror(i32 noundef %8174, ptr noundef nonnull @.str.4) #12
  %8176 = load i32, ptr %8173, align 4, !tbaa !5
  %8177 = call ptr @s2n_strerror_debug(i32 noundef %8176, ptr noundef nonnull @.str.4) #12
  %8178 = load i32, ptr %8159, align 4, !tbaa !5
  %8179 = call ptr @strerror(i32 noundef %8178) #12
  %8180 = load i32, ptr %8159, align 4, !tbaa !5
  %8181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8171, ptr noundef nonnull %.str.5.sink4247, i32 noundef %8172, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 848, ptr noundef %8175, ptr noundef %8177, ptr noundef %8179, i32 noundef %8180) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8182:                                             ; preds = %8154
  %8183 = load i32, ptr @test_count, align 4, !tbaa !5
  %8184 = add nsw i32 %8183, 1
  store i32 %8184, ptr @test_count, align 4, !tbaa !5
  %8185 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef nonnull %72, ptr noundef nonnull %76)
  %8186 = icmp eq i32 %8185, -1
  br i1 %8186, label %8187, label %8211

8187:                                             ; preds = %8182
  %8188 = tail call ptr @__errno_location() #13
  %8189 = load i32, ptr %8188, align 4, !tbaa !5
  %8190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8191 = call i32 @s2n_print_stacktrace(ptr noundef %8190) #12
  %8192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8193 = trunc nuw i8 %8192 to i1
  br i1 %8193, label %8194, label %8198

8194:                                             ; preds = %8187
  %8195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8196 = call i32 @fileno(ptr noundef %8195) #12
  %8197 = call i32 @isatty(i32 noundef %8196) #12
  %.not1102 = icmp eq i32 %8197, 0
  br i1 %.not1102, label %8198, label %8199

8198:                                             ; preds = %8194, %8187
  br label %8199

8199:                                             ; preds = %8194, %8198
  %.str.5.sink4258 = phi ptr [ @.str.5, %8198 ], [ @.str.2, %8194 ]
  store i32 %8189, ptr %8188, align 4, !tbaa !5
  %8200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8201 = load i32, ptr @test_count, align 4, !tbaa !5
  %8202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8203 = load i32, ptr %8202, align 4, !tbaa !5
  %8204 = call ptr @s2n_strerror(i32 noundef %8203, ptr noundef nonnull @.str.4) #12
  %8205 = load i32, ptr %8202, align 4, !tbaa !5
  %8206 = call ptr @s2n_strerror_debug(i32 noundef %8205, ptr noundef nonnull @.str.4) #12
  %8207 = load i32, ptr %8188, align 4, !tbaa !5
  %8208 = call ptr @strerror(i32 noundef %8207) #12
  %8209 = load i32, ptr %8188, align 4, !tbaa !5
  %8210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8200, ptr noundef nonnull %.str.5.sink4258, i32 noundef %8201, ptr noundef nonnull @.str.143, ptr noundef nonnull @.str.1, i32 noundef 850, ptr noundef %8204, ptr noundef %8206, ptr noundef %8208, i32 noundef %8209) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8211:                                             ; preds = %8182
  %8212 = load ptr, ptr %74, align 8, !tbaa !9
  %8213 = getelementptr inbounds i8, ptr %8212, i64 16
  %8214 = load ptr, ptr %8213, align 8, !tbaa !72
  %8215 = getelementptr inbounds i8, ptr %8214, i64 16
  %8216 = load i8, ptr %8215, align 8, !tbaa !62
  %8217 = zext i8 %8216 to i32
  %8218 = getelementptr inbounds i8, ptr %8212, i64 24
  %8219 = load ptr, ptr %8218, align 8, !tbaa !65
  %8220 = getelementptr inbounds i8, ptr %8219, i64 14
  %8221 = load i16, ptr %8220, align 2, !tbaa !77
  %8222 = zext i16 %8221 to i32
  %8223 = add nuw nsw i32 %8222, %8217
  %8224 = add nuw nsw i32 %8223, 4
  %spec.select1315 = select i1 %263, i32 %8224, i32 %8223
  %8225 = load i32, ptr @test_count, align 4, !tbaa !5
  %8226 = add nsw i32 %8225, 1
  store i32 %8226, ptr @test_count, align 4, !tbaa !5
  %8227 = call i32 @s2n_stuffer_wipe_n(ptr noundef nonnull %72, i32 noundef %spec.select1315) #12
  %8228 = icmp eq i32 %8227, -1
  br i1 %8228, label %8229, label %8253

8229:                                             ; preds = %8211
  %8230 = tail call ptr @__errno_location() #13
  %8231 = load i32, ptr %8230, align 4, !tbaa !5
  %8232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8233 = call i32 @s2n_print_stacktrace(ptr noundef %8232) #12
  %8234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8235 = trunc nuw i8 %8234 to i1
  br i1 %8235, label %8236, label %8240

8236:                                             ; preds = %8229
  %8237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8238 = call i32 @fileno(ptr noundef %8237) #12
  %8239 = call i32 @isatty(i32 noundef %8238) #12
  %.not1101 = icmp eq i32 %8239, 0
  br i1 %.not1101, label %8240, label %8241

8240:                                             ; preds = %8236, %8229
  br label %8241

8241:                                             ; preds = %8236, %8240
  %.str.5.sink4269 = phi ptr [ @.str.5, %8240 ], [ @.str.2, %8236 ]
  store i32 %8231, ptr %8230, align 4, !tbaa !5
  %8242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8243 = load i32, ptr @test_count, align 4, !tbaa !5
  %8244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8245 = load i32, ptr %8244, align 4, !tbaa !5
  %8246 = call ptr @s2n_strerror(i32 noundef %8245, ptr noundef nonnull @.str.4) #12
  %8247 = load i32, ptr %8244, align 4, !tbaa !5
  %8248 = call ptr @s2n_strerror_debug(i32 noundef %8247, ptr noundef nonnull @.str.4) #12
  %8249 = load i32, ptr %8230, align 4, !tbaa !5
  %8250 = call ptr @strerror(i32 noundef %8249) #12
  %8251 = load i32, ptr %8230, align 4, !tbaa !5
  %8252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8242, ptr noundef nonnull %.str.5.sink4269, i32 noundef %8243, ptr noundef nonnull @.str.159, ptr noundef nonnull @.str.1, i32 noundef 857, ptr noundef %8246, ptr noundef %8248, ptr noundef %8250, i32 noundef %8251) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8253:                                             ; preds = %8211
  %8254 = load i32, ptr @test_count, align 4, !tbaa !5
  %8255 = add nsw i32 %8254, 1
  store i32 %8255, ptr @test_count, align 4, !tbaa !5
  %8256 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %72, i32 noundef %spec.select1315) #12
  %8257 = icmp eq i32 %8256, -1
  br i1 %8257, label %8258, label %8282

8258:                                             ; preds = %8253
  %8259 = tail call ptr @__errno_location() #13
  %8260 = load i32, ptr %8259, align 4, !tbaa !5
  %8261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8262 = call i32 @s2n_print_stacktrace(ptr noundef %8261) #12
  %8263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8264 = trunc nuw i8 %8263 to i1
  br i1 %8264, label %8265, label %8269

8265:                                             ; preds = %8258
  %8266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8267 = call i32 @fileno(ptr noundef %8266) #12
  %8268 = call i32 @isatty(i32 noundef %8267) #12
  %.not1100 = icmp eq i32 %8268, 0
  br i1 %.not1100, label %8269, label %8270

8269:                                             ; preds = %8265, %8258
  br label %8270

8270:                                             ; preds = %8265, %8269
  %.str.5.sink4280 = phi ptr [ @.str.5, %8269 ], [ @.str.2, %8265 ]
  store i32 %8260, ptr %8259, 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 nonnull @.str.4) #12
  %8276 = load i32, ptr %8273, align 4, !tbaa !5
  %8277 = call ptr @s2n_strerror_debug(i32 noundef %8276, ptr noundef nonnull @.str.4) #12
  %8278 = load i32, ptr %8259, align 4, !tbaa !5
  %8279 = call ptr @strerror(i32 noundef %8278) #12
  %8280 = load i32, ptr %8259, align 4, !tbaa !5
  %8281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8271, ptr noundef nonnull %.str.5.sink4280, i32 noundef %8272, ptr noundef nonnull @.str.160, ptr noundef nonnull @.str.1, i32 noundef 858, ptr noundef %8275, ptr noundef %8277, ptr noundef %8279, i32 noundef %8280) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8282:                                             ; preds = %8253
  %8283 = load i32, ptr @test_count, align 4, !tbaa !5
  %8284 = add nsw i32 %8283, 1
  store i32 %8284, ptr @test_count, align 4, !tbaa !5
  %8285 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef nonnull %72, ptr noundef nonnull %211)
  %8286 = icmp eq i32 %8285, -1
  br i1 %8286, label %8287, label %8311

8287:                                             ; preds = %8282
  %8288 = tail call ptr @__errno_location() #13
  %8289 = load i32, ptr %8288, align 4, !tbaa !5
  %8290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8291 = call i32 @s2n_print_stacktrace(ptr noundef %8290) #12
  %8292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8293 = trunc nuw i8 %8292 to i1
  br i1 %8293, label %8294, label %8298

8294:                                             ; preds = %8287
  %8295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8296 = call i32 @fileno(ptr noundef %8295) #12
  %8297 = call i32 @isatty(i32 noundef %8296) #12
  %.not1099 = icmp eq i32 %8297, 0
  br i1 %.not1099, label %8298, label %8299

8298:                                             ; preds = %8294, %8287
  br label %8299

8299:                                             ; preds = %8294, %8298
  %.str.5.sink4291 = phi ptr [ @.str.5, %8298 ], [ @.str.2, %8294 ]
  store i32 %8289, ptr %8288, align 4, !tbaa !5
  %8300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8301 = load i32, ptr @test_count, align 4, !tbaa !5
  %8302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8303 = load i32, ptr %8302, align 4, !tbaa !5
  %8304 = call ptr @s2n_strerror(i32 noundef %8303, ptr noundef nonnull @.str.4) #12
  %8305 = load i32, ptr %8302, align 4, !tbaa !5
  %8306 = call ptr @s2n_strerror_debug(i32 noundef %8305, ptr noundef nonnull @.str.4) #12
  %8307 = load i32, ptr %8288, align 4, !tbaa !5
  %8308 = call ptr @strerror(i32 noundef %8307) #12
  %8309 = load i32, ptr %8288, align 4, !tbaa !5
  %8310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8300, ptr noundef nonnull %.str.5.sink4291, i32 noundef %8301, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 860, ptr noundef %8304, ptr noundef %8306, ptr noundef %8308, i32 noundef %8309) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8311:                                             ; preds = %8282
  %8312 = load i32, ptr @test_count, align 4, !tbaa !5
  %8313 = add nsw i32 %8312, 1
  store i32 %8313, ptr @test_count, align 4, !tbaa !5
  %8314 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %77) #12
  %8315 = icmp eq i32 %8314, -1
  br i1 %8315, label %8316, label %8340

8316:                                             ; preds = %8311
  %8317 = tail call ptr @__errno_location() #13
  %8318 = load i32, ptr %8317, align 4, !tbaa !5
  %8319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8320 = call i32 @s2n_print_stacktrace(ptr noundef %8319) #12
  %8321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8322 = trunc nuw i8 %8321 to i1
  br i1 %8322, label %8323, label %8327

8323:                                             ; preds = %8316
  %8324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8325 = call i32 @fileno(ptr noundef %8324) #12
  %8326 = call i32 @isatty(i32 noundef %8325) #12
  %.not1098 = icmp eq i32 %8326, 0
  br i1 %.not1098, label %8327, label %8328

8327:                                             ; preds = %8323, %8316
  br label %8328

8328:                                             ; preds = %8323, %8327
  %.str.5.sink4302 = phi ptr [ @.str.5, %8327 ], [ @.str.2, %8323 ]
  store i32 %8318, ptr %8317, align 4, !tbaa !5
  %8329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8330 = load i32, ptr @test_count, align 4, !tbaa !5
  %8331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8332 = load i32, ptr %8331, align 4, !tbaa !5
  %8333 = call ptr @s2n_strerror(i32 noundef %8332, ptr noundef nonnull @.str.4) #12
  %8334 = load i32, ptr %8331, align 4, !tbaa !5
  %8335 = call ptr @s2n_strerror_debug(i32 noundef %8334, ptr noundef nonnull @.str.4) #12
  %8336 = load i32, ptr %8317, align 4, !tbaa !5
  %8337 = call ptr @strerror(i32 noundef %8336) #12
  %8338 = load i32, ptr %8317, align 4, !tbaa !5
  %8339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8329, ptr noundef nonnull %.str.5.sink4302, i32 noundef %8330, ptr noundef nonnull @.str.144, ptr noundef nonnull @.str.1, i32 noundef 862, ptr noundef %8333, ptr noundef %8335, ptr noundef %8337, i32 noundef %8338) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8340:                                             ; preds = %8311
  %8341 = load i32, ptr @test_count, align 4, !tbaa !5
  %8342 = add nsw i32 %8341, 1
  store i32 %8342, ptr @test_count, align 4, !tbaa !5
  %8343 = call i32 %181(ptr noundef nonnull %7838, ptr noundef nonnull %72) #12
  %8344 = icmp eq i32 %8343, -1
  br i1 %8344, label %8345, label %8369

8345:                                             ; preds = %8340
  %8346 = tail call ptr @__errno_location() #13
  %8347 = load i32, ptr %8346, align 4, !tbaa !5
  %8348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8349 = call i32 @s2n_print_stacktrace(ptr noundef %8348) #12
  %8350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8351 = trunc nuw i8 %8350 to i1
  br i1 %8351, label %8352, label %8356

8352:                                             ; preds = %8345
  %8353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8354 = call i32 @fileno(ptr noundef %8353) #12
  %8355 = call i32 @isatty(i32 noundef %8354) #12
  %.not1097 = icmp eq i32 %8355, 0
  br i1 %.not1097, label %8356, label %8357

8356:                                             ; preds = %8352, %8345
  br label %8357

8357:                                             ; preds = %8352, %8356
  %.str.5.sink4313 = phi ptr [ @.str.5, %8356 ], [ @.str.2, %8352 ]
  store i32 %8347, ptr %8346, align 4, !tbaa !5
  %8358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8359 = load i32, ptr @test_count, align 4, !tbaa !5
  %8360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8361 = load i32, ptr %8360, align 4, !tbaa !5
  %8362 = call ptr @s2n_strerror(i32 noundef %8361, ptr noundef nonnull @.str.4) #12
  %8363 = load i32, ptr %8360, align 4, !tbaa !5
  %8364 = call ptr @s2n_strerror_debug(i32 noundef %8363, ptr noundef nonnull @.str.4) #12
  %8365 = load i32, ptr %8346, align 4, !tbaa !5
  %8366 = call ptr @strerror(i32 noundef %8365) #12
  %8367 = load i32, ptr %8346, align 4, !tbaa !5
  %8368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8358, ptr noundef nonnull %.str.5.sink4313, i32 noundef %8359, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 864, ptr noundef %8362, ptr noundef %8364, ptr noundef %8366, i32 noundef %8367) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8369:                                             ; preds = %8340
  %8370 = load i32, ptr @test_count, align 4, !tbaa !5
  %8371 = add nsw i32 %8370, 1
  store i32 %8371, ptr @test_count, align 4, !tbaa !5
  %8372 = load i32, ptr %213, align 4, !tbaa !56
  %8373 = load i32, ptr %214, align 8, !tbaa !57
  %8374 = icmp eq i32 %8372, %8373
  br i1 %8374, label %8399, label %8375

8375:                                             ; preds = %8369
  %8376 = tail call ptr @__errno_location() #13
  %8377 = load i32, ptr %8376, align 4, !tbaa !5
  %8378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8379 = call i32 @s2n_print_stacktrace(ptr noundef %8378) #12
  %8380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8381 = trunc nuw i8 %8380 to i1
  br i1 %8381, label %8382, label %8386

8382:                                             ; preds = %8375
  %8383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8384 = call i32 @fileno(ptr noundef %8383) #12
  %8385 = call i32 @isatty(i32 noundef %8384) #12
  %.not1064 = icmp eq i32 %8385, 0
  br i1 %.not1064, label %8386, label %8387

8386:                                             ; preds = %8382, %8375
  br label %8387

8387:                                             ; preds = %8382, %8386
  %.str.5.sink4324 = phi ptr [ @.str.5, %8386 ], [ @.str.2, %8382 ]
  store i32 %8377, ptr %8376, align 4, !tbaa !5
  %8388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8389 = load i32, ptr @test_count, align 4, !tbaa !5
  %8390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8391 = load i32, ptr %8390, align 4, !tbaa !5
  %8392 = call ptr @s2n_strerror(i32 noundef %8391, ptr noundef nonnull @.str.4) #12
  %8393 = load i32, ptr %8390, align 4, !tbaa !5
  %8394 = call ptr @s2n_strerror_debug(i32 noundef %8393, ptr noundef nonnull @.str.4) #12
  %8395 = load i32, ptr %8376, align 4, !tbaa !5
  %8396 = call ptr @strerror(i32 noundef %8395) #12
  %8397 = load i32, ptr %8376, align 4, !tbaa !5
  %8398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8388, ptr noundef nonnull %.str.5.sink4324, i32 noundef %8389, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 865, ptr noundef %8392, ptr noundef %8394, ptr noundef %8396, i32 noundef %8397) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8399:                                             ; preds = %8369
  %8400 = load ptr, ptr %75, align 8, !tbaa !9
  %8401 = load ptr, ptr %74, align 8, !tbaa !9
  %8402 = icmp eq ptr %8401, @s2n_x25519_mlkem_768
  %or.cond = and i1 %264, %8402
  %spec.select1316 = select i1 %or.cond, ptr @s2n_x25519_mlkem_768, ptr %8400
  %8403 = getelementptr inbounds i8, ptr %7838, i64 832
  %8404 = add nsw i32 %8370, 2
  store i32 %8404, ptr @test_count, align 4, !tbaa !5
  %8405 = load ptr, ptr %8403, align 8, !tbaa !63
  %8406 = icmp eq ptr %8405, %spec.select1316
  br i1 %8406, label %8431, label %8407

8407:                                             ; preds = %8399
  %8408 = tail call ptr @__errno_location() #13
  %8409 = load i32, ptr %8408, align 4, !tbaa !5
  %8410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8411 = call i32 @s2n_print_stacktrace(ptr noundef %8410) #12
  %8412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8413 = trunc nuw i8 %8412 to i1
  br i1 %8413, label %8414, label %8418

8414:                                             ; preds = %8407
  %8415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8416 = call i32 @fileno(ptr noundef %8415) #12
  %8417 = call i32 @isatty(i32 noundef %8416) #12
  %.not1065 = icmp eq i32 %8417, 0
  br i1 %.not1065, label %8418, label %8419

8418:                                             ; preds = %8414, %8407
  br label %8419

8419:                                             ; preds = %8414, %8418
  %.str.5.sink4335 = phi ptr [ @.str.5, %8418 ], [ @.str.2, %8414 ]
  store i32 %8409, ptr %8408, align 4, !tbaa !5
  %8420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8421 = load i32, ptr @test_count, align 4, !tbaa !5
  %8422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8423 = load i32, ptr %8422, align 4, !tbaa !5
  %8424 = call ptr @s2n_strerror(i32 noundef %8423, ptr noundef nonnull @.str.4) #12
  %8425 = load i32, ptr %8422, align 4, !tbaa !5
  %8426 = call ptr @s2n_strerror_debug(i32 noundef %8425, ptr noundef nonnull @.str.4) #12
  %8427 = load i32, ptr %8408, align 4, !tbaa !5
  %8428 = call ptr @strerror(i32 noundef %8427) #12
  %8429 = load i32, ptr %8408, align 4, !tbaa !5
  %8430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8420, ptr noundef nonnull %.str.5.sink4335, i32 noundef %8421, ptr noundef nonnull @.str.161, ptr noundef nonnull @.str.1, i32 noundef 878, ptr noundef %8424, ptr noundef %8426, ptr noundef %8428, i32 noundef %8429) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8431:                                             ; preds = %8399
  %8432 = add nsw i32 %8370, 3
  store i32 %8432, ptr @test_count, align 4, !tbaa !5
  %8433 = getelementptr inbounds i8, ptr %7838, i64 848
  %8434 = load ptr, ptr %8433, align 8, !tbaa !93
  %8435 = icmp eq ptr %8434, null
  br i1 %8435, label %8436, label %8460

8436:                                             ; preds = %8431
  %8437 = tail call ptr @__errno_location() #13
  %8438 = load i32, ptr %8437, align 4, !tbaa !5
  %8439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8440 = call i32 @s2n_print_stacktrace(ptr noundef %8439) #12
  %8441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8442 = trunc nuw i8 %8441 to i1
  br i1 %8442, label %8443, label %8447

8443:                                             ; preds = %8436
  %8444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8445 = call i32 @fileno(ptr noundef %8444) #12
  %8446 = call i32 @isatty(i32 noundef %8445) #12
  %.not1096 = icmp eq i32 %8446, 0
  br i1 %.not1096, label %8447, label %8448

8447:                                             ; preds = %8443, %8436
  br label %8448

8448:                                             ; preds = %8443, %8447
  %.str.5.sink4346 = phi ptr [ @.str.5, %8447 ], [ @.str.2, %8443 ]
  store i32 %8438, ptr %8437, align 4, !tbaa !5
  %8449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8450 = load i32, ptr @test_count, align 4, !tbaa !5
  %8451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8452 = load i32, ptr %8451, align 4, !tbaa !5
  %8453 = call ptr @s2n_strerror(i32 noundef %8452, ptr noundef nonnull @.str.4) #12
  %8454 = load i32, ptr %8451, align 4, !tbaa !5
  %8455 = call ptr @s2n_strerror_debug(i32 noundef %8454, ptr noundef nonnull @.str.4) #12
  %8456 = load i32, ptr %8437, align 4, !tbaa !5
  %8457 = call ptr @strerror(i32 noundef %8456) #12
  %8458 = load i32, ptr %8437, align 4, !tbaa !5
  %8459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8449, ptr noundef nonnull %.str.5.sink4346, i32 noundef %8450, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 879, ptr noundef %8453, ptr noundef %8455, ptr noundef %8457, i32 noundef %8458) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8460:                                             ; preds = %8431
  %8461 = add nsw i32 %8370, 4
  store i32 %8461, ptr @test_count, align 4, !tbaa !5
  %8462 = getelementptr inbounds i8, ptr %7838, i64 936
  %8463 = load ptr, ptr %8462, align 8, !tbaa !73
  %8464 = icmp eq ptr %8463, null
  br i1 %8464, label %8468, label %.preheader1320.preheader

.preheader1320.preheader:                         ; preds = %8460
  %8465 = add nsw i32 %8370, 5
  store i32 %8465, ptr @test_count, align 4, !tbaa !5
  %8466 = call i32 @s2n_kem_group_free(ptr noundef nonnull %76) #12
  %8467 = icmp eq i32 %8466, -1
  br i1 %8467, label %8501, label %.preheader1320.1

8468:                                             ; preds = %8460
  %8469 = tail call ptr @__errno_location() #13
  %8470 = load i32, ptr %8469, align 4, !tbaa !5
  %8471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8472 = call i32 @s2n_print_stacktrace(ptr noundef %8471) #12
  %8473 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8474 = trunc nuw i8 %8473 to i1
  br i1 %8474, label %8475, label %8479

8475:                                             ; preds = %8468
  %8476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8477 = call i32 @fileno(ptr noundef %8476) #12
  %8478 = call i32 @isatty(i32 noundef %8477) #12
  %.not1095 = icmp eq i32 %8478, 0
  br i1 %.not1095, label %8479, label %8480

8479:                                             ; preds = %8475, %8468
  br label %8480

8480:                                             ; preds = %8475, %8479
  %.str.5.sink4357 = phi ptr [ @.str.5, %8479 ], [ @.str.2, %8475 ]
  store i32 %8470, ptr %8469, align 4, !tbaa !5
  %8481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8482 = load i32, ptr @test_count, align 4, !tbaa !5
  %8483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8484 = load i32, ptr %8483, align 4, !tbaa !5
  %8485 = call ptr @s2n_strerror(i32 noundef %8484, ptr noundef nonnull @.str.4) #12
  %8486 = load i32, ptr %8483, align 4, !tbaa !5
  %8487 = call ptr @s2n_strerror_debug(i32 noundef %8486, ptr noundef nonnull @.str.4) #12
  %8488 = load i32, ptr %8469, align 4, !tbaa !5
  %8489 = call ptr @strerror(i32 noundef %8488) #12
  %8490 = load i32, ptr %8469, align 4, !tbaa !5
  %8491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8481, ptr noundef nonnull %.str.5.sink4357, i32 noundef %8482, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.1, i32 noundef 880, ptr noundef %8485, ptr noundef %8487, ptr noundef %8489, i32 noundef %8490) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.preheader1320.1:                                 ; preds = %.preheader1320.preheader
  %8492 = load i32, ptr @test_count, align 4, !tbaa !5
  %8493 = add nsw i32 %8492, 1
  store i32 %8493, ptr @test_count, align 4, !tbaa !5
  %8494 = call i32 @s2n_kem_group_free(ptr noundef nonnull %211) #12
  %8495 = icmp eq i32 %8494, -1
  br i1 %8495, label %8501, label %8496

8496:                                             ; preds = %.preheader1320.1
  %8497 = load i32, ptr @test_count, align 4, !tbaa !5
  %8498 = add nsw i32 %8497, 1
  store i32 %8498, ptr @test_count, align 4, !tbaa !5
  %8499 = call i32 @s2n_stuffer_free(ptr noundef nonnull %72) #12
  %8500 = icmp eq i32 %8499, -1
  br i1 %8500, label %8525, label %8549

8501:                                             ; preds = %.preheader1320.1, %.preheader1320.preheader
  %8502 = tail call ptr @__errno_location() #13
  %8503 = load i32, ptr %8502, align 4, !tbaa !5
  %8504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8505 = call i32 @s2n_print_stacktrace(ptr noundef %8504) #12
  %8506 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8507 = trunc nuw i8 %8506 to i1
  br i1 %8507, label %8508, label %8512

8508:                                             ; preds = %8501
  %8509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8510 = call i32 @fileno(ptr noundef %8509) #12
  %8511 = call i32 @isatty(i32 noundef %8510) #12
  %.not1094 = icmp eq i32 %8511, 0
  br i1 %.not1094, label %8512, label %8513

8512:                                             ; preds = %8508, %8501
  br label %8513

8513:                                             ; preds = %8508, %8512
  %.str.5.sink4368 = phi ptr [ @.str.5, %8512 ], [ @.str.2, %8508 ]
  store i32 %8503, ptr %8502, align 4, !tbaa !5
  %8514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8515 = load i32, ptr @test_count, align 4, !tbaa !5
  %8516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8517 = load i32, ptr %8516, align 4, !tbaa !5
  %8518 = call ptr @s2n_strerror(i32 noundef %8517, ptr noundef nonnull @.str.4) #12
  %8519 = load i32, ptr %8516, align 4, !tbaa !5
  %8520 = call ptr @s2n_strerror_debug(i32 noundef %8519, ptr noundef nonnull @.str.4) #12
  %8521 = load i32, ptr %8502, align 4, !tbaa !5
  %8522 = call ptr @strerror(i32 noundef %8521) #12
  %8523 = load i32, ptr %8502, align 4, !tbaa !5
  %8524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8514, ptr noundef nonnull %.str.5.sink4368, i32 noundef %8515, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.1, i32 noundef 883, ptr noundef %8518, ptr noundef %8520, ptr noundef %8522, i32 noundef %8523) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8525:                                             ; preds = %8496
  %8526 = tail call ptr @__errno_location() #13
  %8527 = load i32, ptr %8526, align 4, !tbaa !5
  %8528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8529 = call i32 @s2n_print_stacktrace(ptr noundef %8528) #12
  %8530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8531 = trunc nuw i8 %8530 to i1
  br i1 %8531, label %8532, label %8536

8532:                                             ; preds = %8525
  %8533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8534 = call i32 @fileno(ptr noundef %8533) #12
  %8535 = call i32 @isatty(i32 noundef %8534) #12
  %.not1093 = icmp eq i32 %8535, 0
  br i1 %.not1093, label %8536, label %8537

8536:                                             ; preds = %8532, %8525
  br label %8537

8537:                                             ; preds = %8532, %8536
  %.str.5.sink4379 = phi ptr [ @.str.5, %8536 ], [ @.str.2, %8532 ]
  store i32 %8527, ptr %8526, align 4, !tbaa !5
  %8538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8539 = load i32, ptr @test_count, align 4, !tbaa !5
  %8540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8541 = load i32, ptr %8540, align 4, !tbaa !5
  %8542 = call ptr @s2n_strerror(i32 noundef %8541, ptr noundef nonnull @.str.4) #12
  %8543 = load i32, ptr %8540, align 4, !tbaa !5
  %8544 = call ptr @s2n_strerror_debug(i32 noundef %8543, ptr noundef nonnull @.str.4) #12
  %8545 = load i32, ptr %8526, align 4, !tbaa !5
  %8546 = call ptr @strerror(i32 noundef %8545) #12
  %8547 = load i32, ptr %8526, align 4, !tbaa !5
  %8548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8538, ptr noundef nonnull %.str.5.sink4379, i32 noundef %8539, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.1, i32 noundef 885, ptr noundef %8542, ptr noundef %8544, ptr noundef %8546, i32 noundef %8547) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8549:                                             ; preds = %8496
  %8550 = load i32, ptr @test_count, align 4, !tbaa !5
  %8551 = add nsw i32 %8550, 1
  store i32 %8551, ptr @test_count, align 4, !tbaa !5
  %8552 = call i32 @s2n_connection_free(ptr noundef nonnull %7838) #12
  %8553 = icmp eq i32 %8552, -1
  br i1 %8553, label %8554, label %8578

8554:                                             ; preds = %8549
  %8555 = tail call ptr @__errno_location() #13
  %8556 = load i32, ptr %8555, align 4, !tbaa !5
  %8557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8558 = call i32 @s2n_print_stacktrace(ptr noundef %8557) #12
  %8559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8560 = trunc nuw i8 %8559 to i1
  br i1 %8560, label %8561, label %8565

8561:                                             ; preds = %8554
  %8562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8563 = call i32 @fileno(ptr noundef %8562) #12
  %8564 = call i32 @isatty(i32 noundef %8563) #12
  %.not1092 = icmp eq i32 %8564, 0
  br i1 %.not1092, label %8565, label %8566

8565:                                             ; preds = %8561, %8554
  br label %8566

8566:                                             ; preds = %8561, %8565
  %.str.5.sink4390 = phi ptr [ @.str.5, %8565 ], [ @.str.2, %8561 ]
  store i32 %8556, ptr %8555, align 4, !tbaa !5
  %8567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8568 = load i32, ptr @test_count, align 4, !tbaa !5
  %8569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8570 = load i32, ptr %8569, align 4, !tbaa !5
  %8571 = call ptr @s2n_strerror(i32 noundef %8570, ptr noundef nonnull @.str.4) #12
  %8572 = load i32, ptr %8569, align 4, !tbaa !5
  %8573 = call ptr @s2n_strerror_debug(i32 noundef %8572, ptr noundef nonnull @.str.4) #12
  %8574 = load i32, ptr %8555, align 4, !tbaa !5
  %8575 = call ptr @strerror(i32 noundef %8574) #12
  %8576 = load i32, ptr %8555, align 4, !tbaa !5
  %8577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8567, ptr noundef nonnull %.str.5.sink4390, i32 noundef %8568, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 886, ptr noundef %8571, ptr noundef %8573, ptr noundef %8575, i32 noundef %8576) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8578:                                             ; preds = %8549
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %77) #12
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %76) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %72) #12
  br label %8579

8579:                                             ; preds = %7834, %8578
  %8580 = load i32, ptr @test_count, align 4, !tbaa !5
  %8581 = add nsw i32 %8580, 1
  store i32 %8581, ptr @test_count, align 4, !tbaa !5
  %8582 = load ptr, ptr %152, align 8, !tbaa !22
  %8583 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %8582, ptr noundef nonnull %3) #12
  %8584 = call zeroext i1 @s2n_result_is_ok(i32 %8583)
  br i1 %8584, label %8609, label %8585

8585:                                             ; preds = %8579
  %8586 = tail call ptr @__errno_location() #13
  %8587 = load i32, ptr %8586, align 4, !tbaa !5
  %8588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8589 = call i32 @s2n_print_stacktrace(ptr noundef %8588) #12
  %8590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8591 = trunc nuw i8 %8590 to i1
  br i1 %8591, label %8592, label %8596

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
  %.not1066 = icmp eq i32 %8595, 0
  br i1 %.not1066, label %8596, label %8597

8596:                                             ; preds = %8592, %8585
  br label %8597

8597:                                             ; preds = %8592, %8596
  %.str.5.sink4401 = phi ptr [ @.str.5, %8596 ], [ @.str.2, %8592 ]
  store i32 %8587, ptr %8586, align 4, !tbaa !5
  %8598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8599 = load i32, ptr @test_count, align 4, !tbaa !5
  %8600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8601 = load i32, ptr %8600, align 4, !tbaa !5
  %8602 = call ptr @s2n_strerror(i32 noundef %8601, ptr noundef nonnull @.str.4) #12
  %8603 = load i32, ptr %8600, align 4, !tbaa !5
  %8604 = call ptr @s2n_strerror_debug(i32 noundef %8603, ptr noundef nonnull @.str.4) #12
  %8605 = load i32, ptr %8586, align 4, !tbaa !5
  %8606 = call ptr @strerror(i32 noundef %8605) #12
  %8607 = load i32, ptr %8586, align 4, !tbaa !5
  %8608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8598, ptr noundef nonnull %.str.5.sink4401, i32 noundef %8599, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 892, ptr noundef %8602, ptr noundef %8604, ptr noundef %8606, i32 noundef %8607) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8609:                                             ; preds = %8579
  %8610 = load i32, ptr %3, align 4, !tbaa !5
  %8611 = icmp ugt i32 %8610, 1
  br i1 %8611, label %8612, label %9353

8612:                                             ; preds = %8609
  %8613 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %8614 = load i32, ptr @test_count, align 4, !tbaa !5
  %8615 = add nsw i32 %8614, 1
  store i32 %8615, ptr @test_count, align 4, !tbaa !5
  %8616 = icmp eq ptr %8613, null
  br i1 %8616, label %8617, label %8641

8617:                                             ; preds = %8612
  %8618 = tail call ptr @__errno_location() #13
  %8619 = load i32, ptr %8618, align 4, !tbaa !5
  %8620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8621 = call i32 @s2n_print_stacktrace(ptr noundef %8620) #12
  %8622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8623 = trunc nuw i8 %8622 to i1
  br i1 %8623, label %8624, label %8628

8624:                                             ; preds = %8617
  %8625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8626 = call i32 @fileno(ptr noundef %8625) #12
  %8627 = call i32 @isatty(i32 noundef %8626) #12
  %.not1091 = icmp eq i32 %8627, 0
  br i1 %.not1091, label %8628, label %8629

8628:                                             ; preds = %8624, %8617
  br label %8629

8629:                                             ; preds = %8624, %8628
  %.str.5.sink4412 = phi ptr [ @.str.5, %8628 ], [ @.str.2, %8624 ]
  store i32 %8619, ptr %8618, align 4, !tbaa !5
  %8630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8631 = load i32, ptr @test_count, align 4, !tbaa !5
  %8632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8633 = load i32, ptr %8632, align 4, !tbaa !5
  %8634 = call ptr @s2n_strerror(i32 noundef %8633, ptr noundef nonnull @.str.4) #12
  %8635 = load i32, ptr %8632, align 4, !tbaa !5
  %8636 = call ptr @s2n_strerror_debug(i32 noundef %8635, ptr noundef nonnull @.str.4) #12
  %8637 = load i32, ptr %8618, align 4, !tbaa !5
  %8638 = call ptr @strerror(i32 noundef %8637) #12
  %8639 = load i32, ptr %8618, align 4, !tbaa !5
  %8640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8630, ptr noundef nonnull %.str.5.sink4412, i32 noundef %8631, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 895, ptr noundef %8634, ptr noundef %8636, ptr noundef %8638, i32 noundef %8639) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8641:                                             ; preds = %8612
  %8642 = getelementptr inbounds i8, ptr %8613, i64 16
  store ptr %2, ptr %8642, align 8, !tbaa !28
  %8643 = add nsw i32 %8614, 2
  store i32 %8643, ptr @test_count, align 4, !tbaa !5
  %8644 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef nonnull %8613, i8 noundef zeroext 34) #12
  %8645 = icmp eq i32 %8644, -1
  br i1 %8645, label %8646, label %8670

8646:                                             ; preds = %8641
  %8647 = tail call ptr @__errno_location() #13
  %8648 = load i32, ptr %8647, align 4, !tbaa !5
  %8649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8650 = call i32 @s2n_print_stacktrace(ptr noundef %8649) #12
  %8651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8652 = trunc nuw i8 %8651 to i1
  br i1 %8652, label %8653, label %8657

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
  %.not1090 = icmp eq i32 %8656, 0
  br i1 %.not1090, label %8657, label %8658

8657:                                             ; preds = %8653, %8646
  br label %8658

8658:                                             ; preds = %8653, %8657
  %.str.5.sink4423 = phi ptr [ @.str.5, %8657 ], [ @.str.2, %8653 ]
  store i32 %8648, ptr %8647, align 4, !tbaa !5
  %8659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8660 = load i32, ptr @test_count, align 4, !tbaa !5
  %8661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8662 = load i32, ptr %8661, align 4, !tbaa !5
  %8663 = call ptr @s2n_strerror(i32 noundef %8662, ptr noundef nonnull @.str.4) #12
  %8664 = load i32, ptr %8661, align 4, !tbaa !5
  %8665 = call ptr @s2n_strerror_debug(i32 noundef %8664, ptr noundef nonnull @.str.4) #12
  %8666 = load i32, ptr %8647, align 4, !tbaa !5
  %8667 = call ptr @strerror(i32 noundef %8666) #12
  %8668 = load i32, ptr %8647, align 4, !tbaa !5
  %8669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8659, ptr noundef nonnull %.str.5.sink4423, i32 noundef %8660, ptr noundef nonnull @.str.158, ptr noundef nonnull @.str.1, i32 noundef 897, ptr noundef %8663, ptr noundef %8665, ptr noundef %8667, i32 noundef %8668) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8670:                                             ; preds = %8641
  %8671 = load i32, ptr @test_count, align 4, !tbaa !5
  %8672 = add nsw i32 %8671, 1
  store i32 %8672, ptr @test_count, align 4, !tbaa !5
  %8673 = call i32 @s2n_set_all_mutually_supported_groups(ptr noundef nonnull %8613) #12
  %8674 = call zeroext i1 @s2n_result_is_ok(i32 %8673)
  br i1 %8674, label %8699, label %8675

8675:                                             ; preds = %8670
  %8676 = tail call ptr @__errno_location() #13
  %8677 = load i32, ptr %8676, align 4, !tbaa !5
  %8678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8679 = call i32 @s2n_print_stacktrace(ptr noundef %8678) #12
  %8680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8681 = trunc nuw i8 %8680 to i1
  br i1 %8681, label %8682, label %8686

8682:                                             ; preds = %8675
  %8683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8684 = call i32 @fileno(ptr noundef %8683) #12
  %8685 = call i32 @isatty(i32 noundef %8684) #12
  %.not1067 = icmp eq i32 %8685, 0
  br i1 %.not1067, label %8686, label %8687

8686:                                             ; preds = %8682, %8675
  br label %8687

8687:                                             ; preds = %8682, %8686
  %.str.5.sink4434 = phi ptr [ @.str.5, %8686 ], [ @.str.2, %8682 ]
  store i32 %8677, ptr %8676, align 4, !tbaa !5
  %8688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8689 = load i32, ptr @test_count, align 4, !tbaa !5
  %8690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8691 = load i32, ptr %8690, align 4, !tbaa !5
  %8692 = call ptr @s2n_strerror(i32 noundef %8691, ptr noundef nonnull @.str.4) #12
  %8693 = load i32, ptr %8690, align 4, !tbaa !5
  %8694 = call ptr @s2n_strerror_debug(i32 noundef %8693, ptr noundef nonnull @.str.4) #12
  %8695 = load i32, ptr %8676, align 4, !tbaa !5
  %8696 = call ptr @strerror(i32 noundef %8695) #12
  %8697 = load i32, ptr %8676, align 4, !tbaa !5
  %8698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8688, ptr noundef nonnull %.str.5.sink4434, i32 noundef %8689, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 898, ptr noundef %8692, ptr noundef %8694, ptr noundef %8696, i32 noundef %8697) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8699:                                             ; preds = %8670
  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)
  %8700 = load i32, ptr @test_count, align 4, !tbaa !5
  %8701 = add nsw i32 %8700, 1
  store i32 %8701, ptr @test_count, align 4, !tbaa !5
  %8702 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %78, i32 noundef 8192) #12
  %8703 = icmp eq i32 %8702, -1
  br i1 %8703, label %8704, label %8728

8704:                                             ; preds = %8699
  %8705 = tail call ptr @__errno_location() #13
  %8706 = load i32, ptr %8705, align 4, !tbaa !5
  %8707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8708 = call i32 @s2n_print_stacktrace(ptr noundef %8707) #12
  %8709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8710 = trunc nuw i8 %8709 to i1
  br i1 %8710, label %8711, label %8715

8711:                                             ; preds = %8704
  %8712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8713 = call i32 @fileno(ptr noundef %8712) #12
  %8714 = call i32 @isatty(i32 noundef %8713) #12
  %.not1089 = icmp eq i32 %8714, 0
  br i1 %.not1089, label %8715, label %8716

8715:                                             ; preds = %8711, %8704
  br label %8716

8716:                                             ; preds = %8711, %8715
  %.str.5.sink4445 = phi ptr [ @.str.5, %8715 ], [ @.str.2, %8711 ]
  store i32 %8706, ptr %8705, align 4, !tbaa !5
  %8717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8718 = load i32, ptr @test_count, align 4, !tbaa !5
  %8719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8720 = load i32, ptr %8719, align 4, !tbaa !5
  %8721 = call ptr @s2n_strerror(i32 noundef %8720, ptr noundef nonnull @.str.4) #12
  %8722 = load i32, ptr %8719, align 4, !tbaa !5
  %8723 = call ptr @s2n_strerror_debug(i32 noundef %8722, ptr noundef nonnull @.str.4) #12
  %8724 = load i32, ptr %8705, align 4, !tbaa !5
  %8725 = call ptr @strerror(i32 noundef %8724) #12
  %8726 = load i32, ptr %8705, align 4, !tbaa !5
  %8727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8717, ptr noundef nonnull %.str.5.sink4445, i32 noundef %8718, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 901, ptr noundef %8721, ptr noundef %8723, ptr noundef %8725, i32 noundef %8726) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8728:                                             ; preds = %8699
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #12
  store ptr null, ptr %79, align 8, !tbaa !9
  %8729 = load i32, ptr @test_count, align 4, !tbaa !5
  %8730 = add nsw i32 %8729, 1
  store i32 %8730, ptr @test_count, align 4, !tbaa !5
  %8731 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %8613, ptr noundef nonnull %79) #12
  %8732 = icmp eq i32 %8731, -1
  br i1 %8732, label %8733, label %8757

8733:                                             ; preds = %8728
  %8734 = tail call ptr @__errno_location() #13
  %8735 = load i32, ptr %8734, align 4, !tbaa !5
  %8736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8737 = call i32 @s2n_print_stacktrace(ptr noundef %8736) #12
  %8738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8739 = trunc nuw i8 %8738 to i1
  br i1 %8739, label %8740, label %8744

8740:                                             ; preds = %8733
  %8741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8742 = call i32 @fileno(ptr noundef %8741) #12
  %8743 = call i32 @isatty(i32 noundef %8742) #12
  %.not1088 = icmp eq i32 %8743, 0
  br i1 %.not1088, label %8744, label %8745

8744:                                             ; preds = %8740, %8733
  br label %8745

8745:                                             ; preds = %8740, %8744
  %.str.5.sink4456 = phi ptr [ @.str.5, %8744 ], [ @.str.2, %8740 ]
  store i32 %8735, ptr %8734, align 4, !tbaa !5
  %8746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8747 = load i32, ptr @test_count, align 4, !tbaa !5
  %8748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8749 = load i32, ptr %8748, align 4, !tbaa !5
  %8750 = call ptr @s2n_strerror(i32 noundef %8749, ptr noundef nonnull @.str.4) #12
  %8751 = load i32, ptr %8748, align 4, !tbaa !5
  %8752 = call ptr @s2n_strerror_debug(i32 noundef %8751, ptr noundef nonnull @.str.4) #12
  %8753 = load i32, ptr %8734, align 4, !tbaa !5
  %8754 = call ptr @strerror(i32 noundef %8753) #12
  %8755 = load i32, ptr %8734, align 4, !tbaa !5
  %8756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8746, ptr noundef nonnull %.str.5.sink4456, i32 noundef %8747, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.1, i32 noundef 904, ptr noundef %8750, ptr noundef %8752, ptr noundef %8754, i32 noundef %8755) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8757:                                             ; preds = %8728
  %8758 = load i32, ptr @test_count, align 4, !tbaa !5
  %8759 = add nsw i32 %8758, 1
  store i32 %8759, ptr @test_count, align 4, !tbaa !5
  %8760 = load ptr, ptr %79, align 8, !tbaa !9
  %8761 = icmp eq ptr %8760, null
  br i1 %8761, label %8762, label %8786

8762:                                             ; preds = %8757
  %8763 = tail call ptr @__errno_location() #13
  %8764 = load i32, ptr %8763, align 4, !tbaa !5
  %8765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8766 = call i32 @s2n_print_stacktrace(ptr noundef %8765) #12
  %8767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8768 = trunc nuw i8 %8767 to i1
  br i1 %8768, label %8769, label %8773

8769:                                             ; preds = %8762
  %8770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8771 = call i32 @fileno(ptr noundef %8770) #12
  %8772 = call i32 @isatty(i32 noundef %8771) #12
  %.not1087 = icmp eq i32 %8772, 0
  br i1 %.not1087, label %8773, label %8774

8773:                                             ; preds = %8769, %8762
  br label %8774

8774:                                             ; preds = %8769, %8773
  %.str.5.sink4467 = phi ptr [ @.str.5, %8773 ], [ @.str.2, %8769 ]
  store i32 %8764, ptr %8763, align 4, !tbaa !5
  %8775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8776 = load i32, ptr @test_count, align 4, !tbaa !5
  %8777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8778 = load i32, ptr %8777, align 4, !tbaa !5
  %8779 = call ptr @s2n_strerror(i32 noundef %8778, ptr noundef nonnull @.str.4) #12
  %8780 = load i32, ptr %8777, align 4, !tbaa !5
  %8781 = call ptr @s2n_strerror_debug(i32 noundef %8780, ptr noundef nonnull @.str.4) #12
  %8782 = load i32, ptr %8763, align 4, !tbaa !5
  %8783 = call ptr @strerror(i32 noundef %8782) #12
  %8784 = load i32, ptr %8763, align 4, !tbaa !5
  %8785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8775, ptr noundef nonnull %.str.5.sink4467, i32 noundef %8776, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 905, ptr noundef %8779, ptr noundef %8781, ptr noundef %8783, i32 noundef %8784) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8786:                                             ; preds = %8757
  %8787 = add nsw i32 %8758, 2
  store i32 %8787, ptr @test_count, align 4, !tbaa !5
  %8788 = call i32 @s2n_kem_preferences_groups_available(ptr noundef nonnull %8760, ptr noundef nonnull %3) #12
  %8789 = call zeroext i1 @s2n_result_is_ok(i32 %8788)
  br i1 %8789, label %8814, label %8790

8790:                                             ; preds = %8786
  %8791 = tail call ptr @__errno_location() #13
  %8792 = load i32, ptr %8791, align 4, !tbaa !5
  %8793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8794 = call i32 @s2n_print_stacktrace(ptr noundef %8793) #12
  %8795 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8796 = trunc nuw i8 %8795 to i1
  br i1 %8796, label %8797, label %8801

8797:                                             ; preds = %8790
  %8798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8799 = call i32 @fileno(ptr noundef %8798) #12
  %8800 = call i32 @isatty(i32 noundef %8799) #12
  %.not1068 = icmp eq i32 %8800, 0
  br i1 %.not1068, label %8801, label %8802

8801:                                             ; preds = %8797, %8790
  br label %8802

8802:                                             ; preds = %8797, %8801
  %.str.5.sink4478 = phi ptr [ @.str.5, %8801 ], [ @.str.2, %8797 ]
  store i32 %8792, ptr %8791, align 4, !tbaa !5
  %8803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8804 = load i32, ptr @test_count, align 4, !tbaa !5
  %8805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8806 = load i32, ptr %8805, align 4, !tbaa !5
  %8807 = call ptr @s2n_strerror(i32 noundef %8806, ptr noundef nonnull @.str.4) #12
  %8808 = load i32, ptr %8805, align 4, !tbaa !5
  %8809 = call ptr @s2n_strerror_debug(i32 noundef %8808, ptr noundef nonnull @.str.4) #12
  %8810 = load i32, ptr %8791, align 4, !tbaa !5
  %8811 = call ptr @strerror(i32 noundef %8810) #12
  %8812 = load i32, ptr %8791, align 4, !tbaa !5
  %8813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8803, ptr noundef nonnull %.str.5.sink4478, i32 noundef %8804, ptr noundef nonnull @.str.136, ptr noundef nonnull @.str.1, i32 noundef 906, ptr noundef %8807, ptr noundef %8809, ptr noundef %8811, i32 noundef %8812) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8814:                                             ; preds = %8786
  %8815 = load i32, ptr @test_count, align 4, !tbaa !5
  %8816 = add nsw i32 %8815, 1
  store i32 %8816, ptr @test_count, align 4, !tbaa !5
  %8817 = load i32, ptr %3, align 4, !tbaa !5
  %8818 = icmp ugt i32 %8817, 1
  br i1 %8818, label %8843, label %8819

8819:                                             ; preds = %8814
  %8820 = tail call ptr @__errno_location() #13
  %8821 = load i32, ptr %8820, align 4, !tbaa !5
  %8822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8823 = call i32 @s2n_print_stacktrace(ptr noundef %8822) #12
  %8824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8825 = trunc nuw i8 %8824 to i1
  br i1 %8825, label %8826, label %8830

8826:                                             ; preds = %8819
  %8827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8828 = call i32 @fileno(ptr noundef %8827) #12
  %8829 = call i32 @isatty(i32 noundef %8828) #12
  %.not1069 = icmp eq i32 %8829, 0
  br i1 %.not1069, label %8830, label %8831

8830:                                             ; preds = %8826, %8819
  br label %8831

8831:                                             ; preds = %8826, %8830
  %.str.5.sink4489 = phi ptr [ @.str.5, %8830 ], [ @.str.2, %8826 ]
  store i32 %8821, ptr %8820, align 4, !tbaa !5
  %8832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8833 = load i32, ptr @test_count, align 4, !tbaa !5
  %8834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8835 = load i32, ptr %8834, align 4, !tbaa !5
  %8836 = call ptr @s2n_strerror(i32 noundef %8835, ptr noundef nonnull @.str.4) #12
  %8837 = load i32, ptr %8834, align 4, !tbaa !5
  %8838 = call ptr @s2n_strerror_debug(i32 noundef %8837, ptr noundef nonnull @.str.4) #12
  %8839 = load i32, ptr %8820, align 4, !tbaa !5
  %8840 = call ptr @strerror(i32 noundef %8839) #12
  %8841 = load i32, ptr %8820, align 4, !tbaa !5
  %8842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8832, ptr noundef nonnull %.str.5.sink4489, i32 noundef %8833, ptr noundef nonnull @.str.137, ptr noundef nonnull @.str.1, i32 noundef 907, ptr noundef %8836, ptr noundef %8838, ptr noundef %8840, i32 noundef %8841) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8843:                                             ; preds = %8814
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %80) #12
  store ptr null, ptr %80, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #12
  store ptr null, ptr %81, align 8, !tbaa !9
  %8844 = add nsw i32 %8815, 2
  store i32 %8844, ptr @test_count, align 4, !tbaa !5
  %8845 = load ptr, ptr %79, align 8, !tbaa !9
  %8846 = call i32 @s2n_get_two_highest_piority_kem_groups(ptr noundef %8845, ptr noundef nonnull %80, ptr noundef nonnull %81)
  %8847 = icmp eq i32 %8846, -1
  br i1 %8847, label %8848, label %8872

8848:                                             ; preds = %8843
  %8849 = tail call ptr @__errno_location() #13
  %8850 = load i32, ptr %8849, align 4, !tbaa !5
  %8851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8852 = call i32 @s2n_print_stacktrace(ptr noundef %8851) #12
  %8853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8854 = trunc nuw i8 %8853 to i1
  br i1 %8854, label %8855, label %8859

8855:                                             ; preds = %8848
  %8856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8857 = call i32 @fileno(ptr noundef %8856) #12
  %8858 = call i32 @isatty(i32 noundef %8857) #12
  %.not1086 = icmp eq i32 %8858, 0
  br i1 %.not1086, label %8859, label %8860

8859:                                             ; preds = %8855, %8848
  br label %8860

8860:                                             ; preds = %8855, %8859
  %.str.5.sink4500 = phi ptr [ @.str.5, %8859 ], [ @.str.2, %8855 ]
  store i32 %8850, ptr %8849, align 4, !tbaa !5
  %8861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8862 = load i32, ptr @test_count, align 4, !tbaa !5
  %8863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8864 = load i32, ptr %8863, align 4, !tbaa !5
  %8865 = call ptr @s2n_strerror(i32 noundef %8864, ptr noundef nonnull @.str.4) #12
  %8866 = load i32, ptr %8863, align 4, !tbaa !5
  %8867 = call ptr @s2n_strerror_debug(i32 noundef %8866, ptr noundef nonnull @.str.4) #12
  %8868 = load i32, ptr %8849, align 4, !tbaa !5
  %8869 = call ptr @strerror(i32 noundef %8868) #12
  %8870 = load i32, ptr %8849, align 4, !tbaa !5
  %8871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8861, ptr noundef nonnull %.str.5.sink4500, i32 noundef %8862, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.1, i32 noundef 912, ptr noundef %8865, ptr noundef %8867, ptr noundef %8869, i32 noundef %8870) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8872:                                             ; preds = %8843
  %8873 = load i32, ptr @test_count, align 4, !tbaa !5
  %8874 = add nsw i32 %8873, 1
  store i32 %8874, ptr @test_count, align 4, !tbaa !5
  %8875 = load ptr, ptr %80, align 8, !tbaa !9
  %8876 = icmp eq ptr %8875, null
  br i1 %8876, label %8877, label %8901

8877:                                             ; preds = %8872
  %8878 = tail call ptr @__errno_location() #13
  %8879 = load i32, ptr %8878, align 4, !tbaa !5
  %8880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8881 = call i32 @s2n_print_stacktrace(ptr noundef %8880) #12
  %8882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8883 = trunc nuw i8 %8882 to i1
  br i1 %8883, label %8884, label %8888

8884:                                             ; preds = %8877
  %8885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8886 = call i32 @fileno(ptr noundef %8885) #12
  %8887 = call i32 @isatty(i32 noundef %8886) #12
  %.not1085 = icmp eq i32 %8887, 0
  br i1 %.not1085, label %8888, label %8889

8888:                                             ; preds = %8884, %8877
  br label %8889

8889:                                             ; preds = %8884, %8888
  %.str.5.sink4511 = phi ptr [ @.str.5, %8888 ], [ @.str.2, %8884 ]
  store i32 %8879, ptr %8878, align 4, !tbaa !5
  %8890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8891 = load i32, ptr @test_count, align 4, !tbaa !5
  %8892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8893 = load i32, ptr %8892, align 4, !tbaa !5
  %8894 = call ptr @s2n_strerror(i32 noundef %8893, ptr noundef nonnull @.str.4) #12
  %8895 = load i32, ptr %8892, align 4, !tbaa !5
  %8896 = call ptr @s2n_strerror_debug(i32 noundef %8895, ptr noundef nonnull @.str.4) #12
  %8897 = load i32, ptr %8878, align 4, !tbaa !5
  %8898 = call ptr @strerror(i32 noundef %8897) #12
  %8899 = load i32, ptr %8878, align 4, !tbaa !5
  %8900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8890, ptr noundef nonnull %.str.5.sink4511, i32 noundef %8891, ptr noundef nonnull @.str.139, ptr noundef nonnull @.str.1, i32 noundef 913, ptr noundef %8894, ptr noundef %8896, ptr noundef %8898, i32 noundef %8899) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8901:                                             ; preds = %8872
  %8902 = add nsw i32 %8873, 2
  store i32 %8902, ptr @test_count, align 4, !tbaa !5
  %8903 = load ptr, ptr %81, align 8, !tbaa !9
  %8904 = icmp eq ptr %8903, null
  br i1 %8904, label %8905, label %8929

8905:                                             ; preds = %8901
  %8906 = tail call ptr @__errno_location() #13
  %8907 = load i32, ptr %8906, align 4, !tbaa !5
  %8908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8909 = call i32 @s2n_print_stacktrace(ptr noundef %8908) #12
  %8910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8911 = trunc nuw i8 %8910 to i1
  br i1 %8911, label %8912, label %8916

8912:                                             ; preds = %8905
  %8913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8914 = call i32 @fileno(ptr noundef %8913) #12
  %8915 = call i32 @isatty(i32 noundef %8914) #12
  %.not1084 = icmp eq i32 %8915, 0
  br i1 %.not1084, label %8916, label %8917

8916:                                             ; preds = %8912, %8905
  br label %8917

8917:                                             ; preds = %8912, %8916
  %.str.5.sink4522 = phi ptr [ @.str.5, %8916 ], [ @.str.2, %8912 ]
  store i32 %8907, ptr %8906, align 4, !tbaa !5
  %8918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8919 = load i32, ptr @test_count, align 4, !tbaa !5
  %8920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8921 = load i32, ptr %8920, align 4, !tbaa !5
  %8922 = call ptr @s2n_strerror(i32 noundef %8921, ptr noundef nonnull @.str.4) #12
  %8923 = load i32, ptr %8920, align 4, !tbaa !5
  %8924 = call ptr @s2n_strerror_debug(i32 noundef %8923, ptr noundef nonnull @.str.4) #12
  %8925 = load i32, ptr %8906, align 4, !tbaa !5
  %8926 = call ptr @strerror(i32 noundef %8925) #12
  %8927 = load i32, ptr %8906, align 4, !tbaa !5
  %8928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8918, ptr noundef nonnull %.str.5.sink4522, i32 noundef %8919, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.1, i32 noundef 914, ptr noundef %8922, ptr noundef %8924, ptr noundef %8926, i32 noundef %8927) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8929:                                             ; preds = %8901
  call void @llvm.lifetime.start.p0(i64 224, ptr nonnull %82) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(224) %82, i8 0, i64 224, i1 false)
  store ptr %8875, ptr %82, align 16, !tbaa !63
  store i8 %.01346, ptr %215, align 8, !tbaa !98
  store ptr %8903, ptr %216, align 16, !tbaa !63
  store i8 %.01346, ptr %217, align 8, !tbaa !98
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %83) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %83, i8 0, i64 16, i1 false)
  %8930 = add nsw i32 %8873, 3
  store i32 %8930, ptr @test_count, align 4, !tbaa !5
  %8931 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %78, ptr noundef nonnull %83) #12
  %8932 = icmp eq i32 %8931, -1
  br i1 %8932, label %8933, label %8957

8933:                                             ; preds = %8929
  %8934 = tail call ptr @__errno_location() #13
  %8935 = load i32, ptr %8934, align 4, !tbaa !5
  %8936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8937 = call i32 @s2n_print_stacktrace(ptr noundef %8936) #12
  %8938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8939 = trunc nuw i8 %8938 to i1
  br i1 %8939, label %8940, label %8944

8940:                                             ; preds = %8933
  %8941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8942 = call i32 @fileno(ptr noundef %8941) #12
  %8943 = call i32 @isatty(i32 noundef %8942) #12
  %.not1083 = icmp eq i32 %8943, 0
  br i1 %.not1083, label %8944, label %8945

8944:                                             ; preds = %8940, %8933
  br label %8945

8945:                                             ; preds = %8940, %8944
  %.str.5.sink4533 = phi ptr [ @.str.5, %8944 ], [ @.str.2, %8940 ]
  store i32 %8935, ptr %8934, align 4, !tbaa !5
  %8946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8947 = load i32, ptr @test_count, align 4, !tbaa !5
  %8948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8949 = load i32, ptr %8948, align 4, !tbaa !5
  %8950 = call ptr @s2n_strerror(i32 noundef %8949, ptr noundef nonnull @.str.4) #12
  %8951 = load i32, ptr %8948, align 4, !tbaa !5
  %8952 = call ptr @s2n_strerror_debug(i32 noundef %8951, ptr noundef nonnull @.str.4) #12
  %8953 = load i32, ptr %8934, align 4, !tbaa !5
  %8954 = call ptr @strerror(i32 noundef %8953) #12
  %8955 = load i32, ptr %8934, align 4, !tbaa !5
  %8956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8946, ptr noundef nonnull %.str.5.sink4533, i32 noundef %8947, ptr noundef nonnull @.str.141, ptr noundef nonnull @.str.1, i32 noundef 923, ptr noundef %8950, ptr noundef %8952, ptr noundef %8954, i32 noundef %8955) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8957:                                             ; preds = %8929
  %8958 = load i32, ptr @test_count, align 4, !tbaa !5
  %8959 = add nsw i32 %8958, 1
  store i32 %8959, ptr @test_count, align 4, !tbaa !5
  %8960 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef nonnull %78, ptr noundef nonnull %82)
  %8961 = icmp eq i32 %8960, -1
  br i1 %8961, label %8962, label %8986

8962:                                             ; preds = %8957
  %8963 = tail call ptr @__errno_location() #13
  %8964 = load i32, ptr %8963, align 4, !tbaa !5
  %8965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8966 = call i32 @s2n_print_stacktrace(ptr noundef %8965) #12
  %8967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8968 = trunc nuw i8 %8967 to i1
  br i1 %8968, label %8969, label %8973

8969:                                             ; preds = %8962
  %8970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8971 = call i32 @fileno(ptr noundef %8970) #12
  %8972 = call i32 @isatty(i32 noundef %8971) #12
  %.not1082 = icmp eq i32 %8972, 0
  br i1 %.not1082, label %8973, label %8974

8973:                                             ; preds = %8969, %8962
  br label %8974

8974:                                             ; preds = %8969, %8973
  %.str.5.sink4544 = phi ptr [ @.str.5, %8973 ], [ @.str.2, %8969 ]
  store i32 %8964, ptr %8963, align 4, !tbaa !5
  %8975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8976 = load i32, ptr @test_count, align 4, !tbaa !5
  %8977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8978 = load i32, ptr %8977, align 4, !tbaa !5
  %8979 = call ptr @s2n_strerror(i32 noundef %8978, ptr noundef nonnull @.str.4) #12
  %8980 = load i32, ptr %8977, align 4, !tbaa !5
  %8981 = call ptr @s2n_strerror_debug(i32 noundef %8980, ptr noundef nonnull @.str.4) #12
  %8982 = load i32, ptr %8963, align 4, !tbaa !5
  %8983 = call ptr @strerror(i32 noundef %8982) #12
  %8984 = load i32, ptr %8963, align 4, !tbaa !5
  %8985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8975, ptr noundef nonnull %.str.5.sink4544, i32 noundef %8976, ptr noundef nonnull @.str.143, ptr noundef nonnull @.str.1, i32 noundef 925, ptr noundef %8979, ptr noundef %8981, ptr noundef %8983, i32 noundef %8984) #14
  call void @exit(i32 noundef 1) #15
  unreachable

8986:                                             ; preds = %8957
  %8987 = load i32, ptr @test_count, align 4, !tbaa !5
  %8988 = add nsw i32 %8987, 1
  store i32 %8988, ptr @test_count, align 4, !tbaa !5
  %8989 = call i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef nonnull %78, ptr noundef nonnull %216)
  %8990 = icmp eq i32 %8989, -1
  br i1 %8990, label %8991, label %9015

8991:                                             ; preds = %8986
  %8992 = tail call ptr @__errno_location() #13
  %8993 = load i32, ptr %8992, align 4, !tbaa !5
  %8994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8995 = call i32 @s2n_print_stacktrace(ptr noundef %8994) #12
  %8996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8997 = trunc nuw i8 %8996 to i1
  br i1 %8997, label %8998, label %9002

8998:                                             ; preds = %8991
  %8999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9000 = call i32 @fileno(ptr noundef %8999) #12
  %9001 = call i32 @isatty(i32 noundef %9000) #12
  %.not1081 = icmp eq i32 %9001, 0
  br i1 %.not1081, label %9002, label %9003

9002:                                             ; preds = %8998, %8991
  br label %9003

9003:                                             ; preds = %8998, %9002
  %.str.5.sink4555 = phi ptr [ @.str.5, %9002 ], [ @.str.2, %8998 ]
  store i32 %8993, ptr %8992, align 4, !tbaa !5
  %9004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9005 = load i32, ptr @test_count, align 4, !tbaa !5
  %9006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9007 = load i32, ptr %9006, align 4, !tbaa !5
  %9008 = call ptr @s2n_strerror(i32 noundef %9007, ptr noundef nonnull @.str.4) #12
  %9009 = load i32, ptr %9006, align 4, !tbaa !5
  %9010 = call ptr @s2n_strerror_debug(i32 noundef %9009, ptr noundef nonnull @.str.4) #12
  %9011 = load i32, ptr %8992, align 4, !tbaa !5
  %9012 = call ptr @strerror(i32 noundef %9011) #12
  %9013 = load i32, ptr %8992, align 4, !tbaa !5
  %9014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9004, ptr noundef nonnull %.str.5.sink4555, i32 noundef %9005, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.1, i32 noundef 927, ptr noundef %9008, ptr noundef %9010, ptr noundef %9012, i32 noundef %9013) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9015:                                             ; preds = %8986
  %9016 = load ptr, ptr %80, align 8, !tbaa !9
  %9017 = getelementptr inbounds i8, ptr %9016, i64 16
  %9018 = load ptr, ptr %9017, align 8, !tbaa !72
  %9019 = getelementptr inbounds i8, ptr %9018, i64 16
  %9020 = load i8, ptr %9019, align 8, !tbaa !62
  %9021 = zext i8 %9020 to i32
  %9022 = getelementptr inbounds i8, ptr %9016, i64 24
  %9023 = load ptr, ptr %9022, align 8, !tbaa !65
  %9024 = getelementptr inbounds i8, ptr %9023, i64 14
  %9025 = load i16, ptr %9024, align 2, !tbaa !77
  %9026 = zext i16 %9025 to i32
  %9027 = add nuw nsw i32 %9026, %9021
  %9028 = add nuw nsw i32 %9027, 4
  %spec.select1317 = select i1 %263, i32 %9028, i32 %9027
  %9029 = load i32, ptr @test_count, align 4, !tbaa !5
  %9030 = add nsw i32 %9029, 1
  store i32 %9030, ptr @test_count, align 4, !tbaa !5
  %9031 = lshr i32 %spec.select1317, 1
  %9032 = call i32 @s2n_stuffer_wipe_n(ptr noundef nonnull %78, i32 noundef %9031) #12
  %9033 = icmp eq i32 %9032, -1
  br i1 %9033, label %9034, label %9058

9034:                                             ; preds = %9015
  %9035 = tail call ptr @__errno_location() #13
  %9036 = load i32, ptr %9035, align 4, !tbaa !5
  %9037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9038 = call i32 @s2n_print_stacktrace(ptr noundef %9037) #12
  %9039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9040 = trunc nuw i8 %9039 to i1
  br i1 %9040, label %9041, label %9045

9041:                                             ; preds = %9034
  %9042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9043 = call i32 @fileno(ptr noundef %9042) #12
  %9044 = call i32 @isatty(i32 noundef %9043) #12
  %.not1080 = icmp eq i32 %9044, 0
  br i1 %.not1080, label %9045, label %9046

9045:                                             ; preds = %9041, %9034
  br label %9046

9046:                                             ; preds = %9041, %9045
  %.str.5.sink4566 = phi ptr [ @.str.5, %9045 ], [ @.str.2, %9041 ]
  store i32 %9036, ptr %9035, align 4, !tbaa !5
  %9047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9048 = load i32, ptr @test_count, align 4, !tbaa !5
  %9049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9050 = load i32, ptr %9049, align 4, !tbaa !5
  %9051 = call ptr @s2n_strerror(i32 noundef %9050, ptr noundef nonnull @.str.4) #12
  %9052 = load i32, ptr %9049, align 4, !tbaa !5
  %9053 = call ptr @s2n_strerror_debug(i32 noundef %9052, ptr noundef nonnull @.str.4) #12
  %9054 = load i32, ptr %9035, align 4, !tbaa !5
  %9055 = call ptr @strerror(i32 noundef %9054) #12
  %9056 = load i32, ptr %9035, align 4, !tbaa !5
  %9057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9047, ptr noundef nonnull %.str.5.sink4566, i32 noundef %9048, ptr noundef nonnull @.str.162, ptr noundef nonnull @.str.1, i32 noundef 934, ptr noundef %9051, ptr noundef %9053, ptr noundef %9055, i32 noundef %9056) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9058:                                             ; preds = %9015
  %9059 = load i32, ptr @test_count, align 4, !tbaa !5
  %9060 = add nsw i32 %9059, 1
  store i32 %9060, ptr @test_count, align 4, !tbaa !5
  %9061 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %78, i32 noundef %9031) #12
  %9062 = icmp eq i32 %9061, -1
  br i1 %9062, label %9063, label %9087

9063:                                             ; preds = %9058
  %9064 = tail call ptr @__errno_location() #13
  %9065 = load i32, ptr %9064, align 4, !tbaa !5
  %9066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9067 = call i32 @s2n_print_stacktrace(ptr noundef %9066) #12
  %9068 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9069 = trunc nuw i8 %9068 to i1
  br i1 %9069, label %9070, label %9074

9070:                                             ; preds = %9063
  %9071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9072 = call i32 @fileno(ptr noundef %9071) #12
  %9073 = call i32 @isatty(i32 noundef %9072) #12
  %.not1079 = icmp eq i32 %9073, 0
  br i1 %.not1079, label %9074, label %9075

9074:                                             ; preds = %9070, %9063
  br label %9075

9075:                                             ; preds = %9070, %9074
  %.str.5.sink4577 = phi ptr [ @.str.5, %9074 ], [ @.str.2, %9070 ]
  store i32 %9065, ptr %9064, align 4, !tbaa !5
  %9076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9077 = load i32, ptr @test_count, align 4, !tbaa !5
  %9078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9079 = load i32, ptr %9078, align 4, !tbaa !5
  %9080 = call ptr @s2n_strerror(i32 noundef %9079, ptr noundef nonnull @.str.4) #12
  %9081 = load i32, ptr %9078, align 4, !tbaa !5
  %9082 = call ptr @s2n_strerror_debug(i32 noundef %9081, ptr noundef nonnull @.str.4) #12
  %9083 = load i32, ptr %9064, align 4, !tbaa !5
  %9084 = call ptr @strerror(i32 noundef %9083) #12
  %9085 = load i32, ptr %9064, align 4, !tbaa !5
  %9086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9076, ptr noundef nonnull %.str.5.sink4577, i32 noundef %9077, ptr noundef nonnull @.str.163, ptr noundef nonnull @.str.1, i32 noundef 935, ptr noundef %9080, ptr noundef %9082, ptr noundef %9084, i32 noundef %9085) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9087:                                             ; preds = %9058
  %9088 = load i32, ptr @test_count, align 4, !tbaa !5
  %9089 = add nsw i32 %9088, 1
  store i32 %9089, ptr @test_count, align 4, !tbaa !5
  %9090 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %83) #12
  %9091 = icmp eq i32 %9090, -1
  br i1 %9091, label %9092, label %9116

9092:                                             ; preds = %9087
  %9093 = tail call ptr @__errno_location() #13
  %9094 = load i32, ptr %9093, 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 = %9092
  %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
  %.not1078 = icmp eq i32 %9102, 0
  br i1 %.not1078, label %9103, label %9104

9103:                                             ; preds = %9099, %9092
  br label %9104

9104:                                             ; preds = %9099, %9103
  %.str.5.sink4588 = phi ptr [ @.str.5, %9103 ], [ @.str.2, %9099 ]
  store i32 %9094, ptr %9093, align 4, !tbaa !5
  %9105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9106 = load i32, ptr @test_count, align 4, !tbaa !5
  %9107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9108 = load i32, ptr %9107, align 4, !tbaa !5
  %9109 = call ptr @s2n_strerror(i32 noundef %9108, ptr noundef nonnull @.str.4) #12
  %9110 = load i32, ptr %9107, align 4, !tbaa !5
  %9111 = call ptr @s2n_strerror_debug(i32 noundef %9110, ptr noundef nonnull @.str.4) #12
  %9112 = load i32, ptr %9093, align 4, !tbaa !5
  %9113 = call ptr @strerror(i32 noundef %9112) #12
  %9114 = load i32, ptr %9093, align 4, !tbaa !5
  %9115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9105, ptr noundef nonnull %.str.5.sink4588, i32 noundef %9106, ptr noundef nonnull @.str.144, ptr noundef nonnull @.str.1, i32 noundef 937, ptr noundef %9109, ptr noundef %9111, ptr noundef %9113, i32 noundef %9114) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9116:                                             ; preds = %9087
  %9117 = load i32, ptr @test_count, align 4, !tbaa !5
  %9118 = add nsw i32 %9117, 1
  store i32 %9118, ptr @test_count, align 4, !tbaa !5
  %9119 = call i32 %181(ptr noundef nonnull %8613, ptr noundef nonnull %78) #12
  %9120 = icmp eq i32 %9119, -1
  br i1 %9120, label %9121, label %9145

9121:                                             ; preds = %9116
  %9122 = tail call ptr @__errno_location() #13
  %9123 = load i32, ptr %9122, align 4, !tbaa !5
  %9124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9125 = call i32 @s2n_print_stacktrace(ptr noundef %9124) #12
  %9126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9127 = trunc nuw i8 %9126 to i1
  br i1 %9127, label %9128, label %9132

9128:                                             ; preds = %9121
  %9129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9130 = call i32 @fileno(ptr noundef %9129) #12
  %9131 = call i32 @isatty(i32 noundef %9130) #12
  %.not1077 = icmp eq i32 %9131, 0
  br i1 %.not1077, label %9132, label %9133

9132:                                             ; preds = %9128, %9121
  br label %9133

9133:                                             ; preds = %9128, %9132
  %.str.5.sink4599 = phi ptr [ @.str.5, %9132 ], [ @.str.2, %9128 ]
  store i32 %9123, ptr %9122, align 4, !tbaa !5
  %9134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9135 = load i32, ptr @test_count, align 4, !tbaa !5
  %9136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9137 = load i32, ptr %9136, align 4, !tbaa !5
  %9138 = call ptr @s2n_strerror(i32 noundef %9137, ptr noundef nonnull @.str.4) #12
  %9139 = load i32, ptr %9136, align 4, !tbaa !5
  %9140 = call ptr @s2n_strerror_debug(i32 noundef %9139, ptr noundef nonnull @.str.4) #12
  %9141 = load i32, ptr %9122, align 4, !tbaa !5
  %9142 = call ptr @strerror(i32 noundef %9141) #12
  %9143 = load i32, ptr %9122, align 4, !tbaa !5
  %9144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9134, ptr noundef nonnull %.str.5.sink4599, i32 noundef %9135, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 939, ptr noundef %9138, ptr noundef %9140, ptr noundef %9142, i32 noundef %9143) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9145:                                             ; preds = %9116
  %9146 = load i32, ptr @test_count, align 4, !tbaa !5
  %9147 = add nsw i32 %9146, 1
  store i32 %9147, ptr @test_count, align 4, !tbaa !5
  %9148 = load i32, ptr %218, align 4, !tbaa !56
  %9149 = load i32, ptr %219, align 8, !tbaa !57
  %9150 = icmp eq i32 %9148, %9149
  br i1 %9150, label %9175, label %9151

9151:                                             ; preds = %9145
  %9152 = tail call ptr @__errno_location() #13
  %9153 = load i32, ptr %9152, align 4, !tbaa !5
  %9154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9155 = call i32 @s2n_print_stacktrace(ptr noundef %9154) #12
  %9156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9157 = trunc nuw i8 %9156 to i1
  br i1 %9157, label %9158, label %9162

9158:                                             ; preds = %9151
  %9159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9160 = call i32 @fileno(ptr noundef %9159) #12
  %9161 = call i32 @isatty(i32 noundef %9160) #12
  %.not1070 = icmp eq i32 %9161, 0
  br i1 %.not1070, label %9162, label %9163

9162:                                             ; preds = %9158, %9151
  br label %9163

9163:                                             ; preds = %9158, %9162
  %.str.5.sink4610 = phi ptr [ @.str.5, %9162 ], [ @.str.2, %9158 ]
  store i32 %9153, ptr %9152, align 4, !tbaa !5
  %9164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9165 = load i32, ptr @test_count, align 4, !tbaa !5
  %9166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9167 = load i32, ptr %9166, align 4, !tbaa !5
  %9168 = call ptr @s2n_strerror(i32 noundef %9167, ptr noundef nonnull @.str.4) #12
  %9169 = load i32, ptr %9166, align 4, !tbaa !5
  %9170 = call ptr @s2n_strerror_debug(i32 noundef %9169, ptr noundef nonnull @.str.4) #12
  %9171 = load i32, ptr %9152, align 4, !tbaa !5
  %9172 = call ptr @strerror(i32 noundef %9171) #12
  %9173 = load i32, ptr %9152, align 4, !tbaa !5
  %9174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9164, ptr noundef nonnull %.str.5.sink4610, i32 noundef %9165, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 940, ptr noundef %9168, ptr noundef %9170, ptr noundef %9172, i32 noundef %9173) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9175:                                             ; preds = %9145
  %9176 = getelementptr inbounds i8, ptr %8613, i64 832
  %9177 = add nsw i32 %9146, 2
  store i32 %9177, ptr @test_count, align 4, !tbaa !5
  %9178 = load ptr, ptr %9176, align 8, !tbaa !63
  %9179 = load ptr, ptr %80, align 8, !tbaa !9
  %9180 = icmp eq ptr %9178, %9179
  br i1 %9180, label %9205, label %9181

9181:                                             ; preds = %9175
  %9182 = tail call ptr @__errno_location() #13
  %9183 = load i32, ptr %9182, align 4, !tbaa !5
  %9184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9185 = call i32 @s2n_print_stacktrace(ptr noundef %9184) #12
  %9186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9187 = trunc nuw i8 %9186 to i1
  br i1 %9187, label %9188, label %9192

9188:                                             ; preds = %9181
  %9189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9190 = call i32 @fileno(ptr noundef %9189) #12
  %9191 = call i32 @isatty(i32 noundef %9190) #12
  %.not1071 = icmp eq i32 %9191, 0
  br i1 %.not1071, label %9192, label %9193

9192:                                             ; preds = %9188, %9181
  br label %9193

9193:                                             ; preds = %9188, %9192
  %.str.5.sink4621 = phi ptr [ @.str.5, %9192 ], [ @.str.2, %9188 ]
  store i32 %9183, ptr %9182, align 4, !tbaa !5
  %9194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9195 = load i32, ptr @test_count, align 4, !tbaa !5
  %9196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9197 = load i32, ptr %9196, align 4, !tbaa !5
  %9198 = call ptr @s2n_strerror(i32 noundef %9197, ptr noundef nonnull @.str.4) #12
  %9199 = load i32, ptr %9196, align 4, !tbaa !5
  %9200 = call ptr @s2n_strerror_debug(i32 noundef %9199, ptr noundef nonnull @.str.4) #12
  %9201 = load i32, ptr %9182, align 4, !tbaa !5
  %9202 = call ptr @strerror(i32 noundef %9201) #12
  %9203 = load i32, ptr %9182, align 4, !tbaa !5
  %9204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9194, ptr noundef nonnull %.str.5.sink4621, i32 noundef %9195, ptr noundef nonnull @.str.146, ptr noundef nonnull @.str.1, i32 noundef 944, ptr noundef %9198, ptr noundef %9200, ptr noundef %9202, i32 noundef %9203) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9205:                                             ; preds = %9175
  %9206 = add nsw i32 %9146, 3
  store i32 %9206, ptr @test_count, align 4, !tbaa !5
  %9207 = getelementptr inbounds i8, ptr %8613, i64 848
  %9208 = load ptr, ptr %9207, align 8, !tbaa !93
  %9209 = icmp eq ptr %9208, null
  br i1 %9209, label %9210, label %9234

9210:                                             ; preds = %9205
  %9211 = tail call ptr @__errno_location() #13
  %9212 = load i32, ptr %9211, align 4, !tbaa !5
  %9213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9214 = call i32 @s2n_print_stacktrace(ptr noundef %9213) #12
  %9215 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9216 = trunc nuw i8 %9215 to i1
  br i1 %9216, label %9217, label %9221

9217:                                             ; preds = %9210
  %9218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9219 = call i32 @fileno(ptr noundef %9218) #12
  %9220 = call i32 @isatty(i32 noundef %9219) #12
  %.not1076 = icmp eq i32 %9220, 0
  br i1 %.not1076, label %9221, label %9222

9221:                                             ; preds = %9217, %9210
  br label %9222

9222:                                             ; preds = %9217, %9221
  %.str.5.sink4632 = phi ptr [ @.str.5, %9221 ], [ @.str.2, %9217 ]
  store i32 %9212, ptr %9211, align 4, !tbaa !5
  %9223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9224 = load i32, ptr @test_count, align 4, !tbaa !5
  %9225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9226 = load i32, ptr %9225, align 4, !tbaa !5
  %9227 = call ptr @s2n_strerror(i32 noundef %9226, ptr noundef nonnull @.str.4) #12
  %9228 = load i32, ptr %9225, align 4, !tbaa !5
  %9229 = call ptr @s2n_strerror_debug(i32 noundef %9228, ptr noundef nonnull @.str.4) #12
  %9230 = load i32, ptr %9211, align 4, !tbaa !5
  %9231 = call ptr @strerror(i32 noundef %9230) #12
  %9232 = load i32, ptr %9211, align 4, !tbaa !5
  %9233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9223, ptr noundef nonnull %.str.5.sink4632, i32 noundef %9224, ptr noundef nonnull @.str.147, ptr noundef nonnull @.str.1, i32 noundef 945, ptr noundef %9227, ptr noundef %9229, ptr noundef %9231, i32 noundef %9232) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9234:                                             ; preds = %9205
  %9235 = add nsw i32 %9146, 4
  store i32 %9235, ptr @test_count, align 4, !tbaa !5
  %9236 = getelementptr inbounds i8, ptr %8613, i64 936
  %9237 = load ptr, ptr %9236, align 8, !tbaa !73
  %9238 = icmp eq ptr %9237, null
  br i1 %9238, label %9242, label %.preheader.preheader

.preheader.preheader:                             ; preds = %9234
  %9239 = add nsw i32 %9146, 5
  store i32 %9239, ptr @test_count, align 4, !tbaa !5
  %9240 = call i32 @s2n_kem_group_free(ptr noundef nonnull %82) #12
  %9241 = icmp eq i32 %9240, -1
  br i1 %9241, label %9275, label %.preheader.1

9242:                                             ; preds = %9234
  %9243 = tail call ptr @__errno_location() #13
  %9244 = load i32, ptr %9243, align 4, !tbaa !5
  %9245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9246 = call i32 @s2n_print_stacktrace(ptr noundef %9245) #12
  %9247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9248 = trunc nuw i8 %9247 to i1
  br i1 %9248, label %9249, label %9253

9249:                                             ; preds = %9242
  %9250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9251 = call i32 @fileno(ptr noundef %9250) #12
  %9252 = call i32 @isatty(i32 noundef %9251) #12
  %.not1075 = icmp eq i32 %9252, 0
  br i1 %.not1075, label %9253, label %9254

9253:                                             ; preds = %9249, %9242
  br label %9254

9254:                                             ; preds = %9249, %9253
  %.str.5.sink4643 = phi ptr [ @.str.5, %9253 ], [ @.str.2, %9249 ]
  store i32 %9244, ptr %9243, align 4, !tbaa !5
  %9255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9256 = load i32, ptr @test_count, align 4, !tbaa !5
  %9257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9258 = load i32, ptr %9257, align 4, !tbaa !5
  %9259 = call ptr @s2n_strerror(i32 noundef %9258, ptr noundef nonnull @.str.4) #12
  %9260 = load i32, ptr %9257, align 4, !tbaa !5
  %9261 = call ptr @s2n_strerror_debug(i32 noundef %9260, ptr noundef nonnull @.str.4) #12
  %9262 = load i32, ptr %9243, align 4, !tbaa !5
  %9263 = call ptr @strerror(i32 noundef %9262) #12
  %9264 = load i32, ptr %9243, align 4, !tbaa !5
  %9265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9255, ptr noundef nonnull %.str.5.sink4643, i32 noundef %9256, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.1, i32 noundef 946, ptr noundef %9259, ptr noundef %9261, ptr noundef %9263, i32 noundef %9264) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.preheader.1:                                     ; preds = %.preheader.preheader
  %9266 = load i32, ptr @test_count, align 4, !tbaa !5
  %9267 = add nsw i32 %9266, 1
  store i32 %9267, ptr @test_count, align 4, !tbaa !5
  %9268 = call i32 @s2n_kem_group_free(ptr noundef nonnull %216) #12
  %9269 = icmp eq i32 %9268, -1
  br i1 %9269, label %9275, label %9270

9270:                                             ; preds = %.preheader.1
  %9271 = load i32, ptr @test_count, align 4, !tbaa !5
  %9272 = add nsw i32 %9271, 1
  store i32 %9272, ptr @test_count, align 4, !tbaa !5
  %9273 = call i32 @s2n_stuffer_free(ptr noundef nonnull %78) #12
  %9274 = icmp eq i32 %9273, -1
  br i1 %9274, label %9299, label %9323

9275:                                             ; preds = %.preheader.1, %.preheader.preheader
  %9276 = tail call ptr @__errno_location() #13
  %9277 = load i32, ptr %9276, align 4, !tbaa !5
  %9278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9279 = call i32 @s2n_print_stacktrace(ptr noundef %9278) #12
  %9280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9281 = trunc nuw i8 %9280 to i1
  br i1 %9281, label %9282, label %9286

9282:                                             ; preds = %9275
  %9283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9284 = call i32 @fileno(ptr noundef %9283) #12
  %9285 = call i32 @isatty(i32 noundef %9284) #12
  %.not1074 = icmp eq i32 %9285, 0
  br i1 %.not1074, label %9286, label %9287

9286:                                             ; preds = %9282, %9275
  br label %9287

9287:                                             ; preds = %9282, %9286
  %.str.5.sink4654 = phi ptr [ @.str.5, %9286 ], [ @.str.2, %9282 ]
  store i32 %9277, ptr %9276, align 4, !tbaa !5
  %9288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9289 = load i32, ptr @test_count, align 4, !tbaa !5
  %9290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9291 = load i32, ptr %9290, align 4, !tbaa !5
  %9292 = call ptr @s2n_strerror(i32 noundef %9291, ptr noundef nonnull @.str.4) #12
  %9293 = load i32, ptr %9290, align 4, !tbaa !5
  %9294 = call ptr @s2n_strerror_debug(i32 noundef %9293, ptr noundef nonnull @.str.4) #12
  %9295 = load i32, ptr %9276, align 4, !tbaa !5
  %9296 = call ptr @strerror(i32 noundef %9295) #12
  %9297 = load i32, ptr %9276, align 4, !tbaa !5
  %9298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9288, ptr noundef nonnull %.str.5.sink4654, i32 noundef %9289, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.1, i32 noundef 949, ptr noundef %9292, ptr noundef %9294, ptr noundef %9296, i32 noundef %9297) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9299:                                             ; preds = %9270
  %9300 = tail call ptr @__errno_location() #13
  %9301 = load i32, ptr %9300, align 4, !tbaa !5
  %9302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9303 = call i32 @s2n_print_stacktrace(ptr noundef %9302) #12
  %9304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9305 = trunc nuw i8 %9304 to i1
  br i1 %9305, label %9306, label %9310

9306:                                             ; preds = %9299
  %9307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9308 = call i32 @fileno(ptr noundef %9307) #12
  %9309 = call i32 @isatty(i32 noundef %9308) #12
  %.not1073 = icmp eq i32 %9309, 0
  br i1 %.not1073, label %9310, label %9311

9310:                                             ; preds = %9306, %9299
  br label %9311

9311:                                             ; preds = %9306, %9310
  %.str.5.sink4665 = phi ptr [ @.str.5, %9310 ], [ @.str.2, %9306 ]
  store i32 %9301, ptr %9300, align 4, !tbaa !5
  %9312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9313 = load i32, ptr @test_count, align 4, !tbaa !5
  %9314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9315 = load i32, ptr %9314, align 4, !tbaa !5
  %9316 = call ptr @s2n_strerror(i32 noundef %9315, ptr noundef nonnull @.str.4) #12
  %9317 = load i32, ptr %9314, align 4, !tbaa !5
  %9318 = call ptr @s2n_strerror_debug(i32 noundef %9317, ptr noundef nonnull @.str.4) #12
  %9319 = load i32, ptr %9300, align 4, !tbaa !5
  %9320 = call ptr @strerror(i32 noundef %9319) #12
  %9321 = load i32, ptr %9300, align 4, !tbaa !5
  %9322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9312, ptr noundef nonnull %.str.5.sink4665, i32 noundef %9313, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.1, i32 noundef 951, ptr noundef %9316, ptr noundef %9318, ptr noundef %9320, i32 noundef %9321) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9323:                                             ; preds = %9270
  %9324 = load i32, ptr @test_count, align 4, !tbaa !5
  %9325 = add nsw i32 %9324, 1
  store i32 %9325, ptr @test_count, align 4, !tbaa !5
  %9326 = call i32 @s2n_connection_free(ptr noundef nonnull %8613) #12
  %9327 = icmp eq i32 %9326, -1
  br i1 %9327, label %9328, label %9352

9328:                                             ; preds = %9323
  %9329 = tail call ptr @__errno_location() #13
  %9330 = load i32, ptr %9329, align 4, !tbaa !5
  %9331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9332 = call i32 @s2n_print_stacktrace(ptr noundef %9331) #12
  %9333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9334 = trunc nuw i8 %9333 to i1
  br i1 %9334, label %9335, label %9339

9335:                                             ; preds = %9328
  %9336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9337 = call i32 @fileno(ptr noundef %9336) #12
  %9338 = call i32 @isatty(i32 noundef %9337) #12
  %.not1072 = icmp eq i32 %9338, 0
  br i1 %.not1072, label %9339, label %9340

9339:                                             ; preds = %9335, %9328
  br label %9340

9340:                                             ; preds = %9335, %9339
  %.str.5.sink4676 = phi ptr [ @.str.5, %9339 ], [ @.str.2, %9335 ]
  store i32 %9330, ptr %9329, align 4, !tbaa !5
  %9341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9342 = load i32, ptr @test_count, align 4, !tbaa !5
  %9343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9344 = load i32, ptr %9343, align 4, !tbaa !5
  %9345 = call ptr @s2n_strerror(i32 noundef %9344, ptr noundef nonnull @.str.4) #12
  %9346 = load i32, ptr %9343, align 4, !tbaa !5
  %9347 = call ptr @s2n_strerror_debug(i32 noundef %9346, ptr noundef nonnull @.str.4) #12
  %9348 = load i32, ptr %9329, align 4, !tbaa !5
  %9349 = call ptr @strerror(i32 noundef %9348) #12
  %9350 = load i32, ptr %9329, align 4, !tbaa !5
  %9351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9341, ptr noundef nonnull %.str.5.sink4676, i32 noundef %9342, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 952, ptr noundef %9345, ptr noundef %9347, ptr noundef %9349, i32 noundef %9350) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9352:                                             ; preds = %9323
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %83) #12
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %82) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #12
  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 %9353

9353:                                             ; preds = %8609, %9352, %4902
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #12
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %2) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %1) #12
  br i1 %264, label %262, label %259, !llvm.loop !99

9354:                                             ; preds = %259
  %9355 = tail call ptr @__errno_location() #13
  %9356 = load i32, ptr %9355, align 4, !tbaa !5
  %9357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9358 = call i32 @s2n_print_stacktrace(ptr noundef %9357) #12
  %9359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9360 = trunc nuw i8 %9359 to i1
  br i1 %9360, label %9361, label %9365

9361:                                             ; preds = %9354
  %9362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9363 = call i32 @fileno(ptr noundef %9362) #12
  %9364 = call i32 @isatty(i32 noundef %9363) #12
  %.not999 = icmp eq i32 %9364, 0
  br i1 %.not999, label %9365, label %9366

9365:                                             ; preds = %9361, %9354
  br label %9366

9366:                                             ; preds = %9361, %9365
  %.str.5.sink4687 = phi ptr [ @.str.5, %9365 ], [ @.str.2, %9361 ]
  store i32 %9356, ptr %9355, align 4, !tbaa !5
  %9367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9368 = load i32, ptr @test_count, align 4, !tbaa !5
  %9369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9370 = load i32, ptr %9369, align 4, !tbaa !5
  %9371 = call ptr @s2n_strerror(i32 noundef %9370, ptr noundef nonnull @.str.4) #12
  %9372 = load i32, ptr %9369, align 4, !tbaa !5
  %9373 = call ptr @s2n_strerror_debug(i32 noundef %9372, ptr noundef nonnull @.str.4) #12
  %9374 = load i32, ptr %9355, align 4, !tbaa !5
  %9375 = call ptr @strerror(i32 noundef %9374) #12
  %9376 = load i32, ptr %9355, align 4, !tbaa !5
  %9377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9367, ptr noundef nonnull %.str.5.sink4687, i32 noundef %9368, ptr noundef nonnull @.str.164, ptr noundef nonnull @.str.1, i32 noundef 958, ptr noundef %9371, ptr noundef %9373, ptr noundef %9375, i32 noundef %9376) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9378:                                             ; preds = %259
  %9379 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %9380 = icmp eq i32 %9379, -1
  br i1 %9380, label %9381, label %9405

9381:                                             ; preds = %9378
  %9382 = tail call ptr @__errno_location() #13
  %9383 = load i32, ptr %9382, align 4, !tbaa !5
  %9384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9385 = call i32 @s2n_print_stacktrace(ptr noundef %9384) #12
  %9386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9387 = trunc nuw i8 %9386 to i1
  br i1 %9387, label %9388, label %9392

9388:                                             ; preds = %9381
  %9389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9390 = call i32 @fileno(ptr noundef %9389) #12
  %9391 = call i32 @isatty(i32 noundef %9390) #12
  %.not998 = icmp eq i32 %9391, 0
  br i1 %.not998, label %9392, label %9393

9392:                                             ; preds = %9388, %9381
  br label %9393

9393:                                             ; preds = %9388, %9392
  %.str.5.sink4698 = phi ptr [ @.str.5, %9392 ], [ @.str.2, %9388 ]
  store i32 %9383, ptr %9382, align 4, !tbaa !5
  %9394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9395 = load i32, ptr @test_count, align 4, !tbaa !5
  %9396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9397 = load i32, ptr %9396, align 4, !tbaa !5
  %9398 = call ptr @s2n_strerror(i32 noundef %9397, ptr noundef nonnull @.str.4) #12
  %9399 = load i32, ptr %9396, align 4, !tbaa !5
  %9400 = call ptr @s2n_strerror_debug(i32 noundef %9399, ptr noundef nonnull @.str.4) #12
  %9401 = load i32, ptr %9382, align 4, !tbaa !5
  %9402 = call ptr @strerror(i32 noundef %9401) #12
  %9403 = load i32, ptr %9382, align 4, !tbaa !5
  %9404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9394, ptr noundef nonnull %.str.5.sink4698, i32 noundef %9395, ptr noundef nonnull @.str.165, ptr noundef nonnull @.str.1, i32 noundef 958, ptr noundef %9398, ptr noundef %9400, ptr noundef %9402, i32 noundef %9403) #14
  call void @exit(i32 noundef 1) #15
  unreachable

9405:                                             ; preds = %9378
  %9406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9407 = trunc nuw i8 %9406 to i1
  br i1 %9407, label %9408, label %9419

9408:                                             ; preds = %9405
  %9409 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9410 = call i32 @fileno(ptr noundef %9409) #12
  %9411 = call i32 @isatty(i32 noundef %9410) #12
  %.not = icmp eq i32 %9411, 0
  br i1 %.not, label %9419, label %9412

9412:                                             ; preds = %9408
  %9413 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not997 = icmp eq i32 %9413, 0
  %9414 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not997, label %9417, label %9415

9415:                                             ; preds = %9412
  %9416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9414, ptr noundef nonnull @.str.166, i32 noundef %9413) #12
  br label %9426

9417:                                             ; preds = %9412
  %9418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9414, ptr noundef nonnull @.str.167) #12
  br label %9426

9419:                                             ; preds = %9408, %9405
  %9420 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not996 = icmp eq i32 %9420, 0
  %9421 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not996, label %9424, label %9422

9422:                                             ; preds = %9419
  %9423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9421, ptr noundef nonnull @.str.168, i32 noundef %9420) #12
  br label %9426

9424:                                             ; preds = %9419
  %9425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9421, ptr noundef nonnull @.str.169) #12
  br label %9426

9426:                                             ; preds = %9422, %9424, %9415, %9417
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #4

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #2

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) local_unnamed_addr #5

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #7

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

declare zeroext i1 @s2n_pq_is_enabled() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_get_kem_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_get_ecc_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_skip_read(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_kem_group_is_available(ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #9

declare i32 @s2n_kem_preferences_groups_available(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_wipe(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_all_protocol_versions(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_set_connection_hello_retry_flags(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_stuffer_raw_read(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_enable_tls13_in_test(...) local_unnamed_addr #2

declare i32 @s2n_set_all_mutually_supported_groups(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_alloc_from_hex(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_copy_pq_share(ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #0

declare i32 @s2n_public_ecc_keys_are_equal(ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_kem_preferences_get_highest_priority_group(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_get_two_highest_piority_kem_groups(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_stuffer_reserve_uint16(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_generate_pq_hybrid_key_share_for_test(ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_stuffer_write_vector_size(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_kem_group_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_wipe_n(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_skip_write(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #10

; 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 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress 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 = { nofree nounwind willreturn memory(argmem: read) }
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 }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 16}
!16 = !{!"s2n_kem_preferences", !7, i64 0, !10, i64 8, !7, i64 16, !10, i64 24, !7, i64 32}
!17 = !{!16, !10, i64 24}
!18 = !{!16, !7, i64 32}
!19 = !{!20, !7, i64 0}
!20 = !{!"s2n_security_policy", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !12, i64 56, !7, i64 57}
!21 = !{!20, !10, i64 8}
!22 = !{!20, !10, i64 16}
!23 = !{!20, !10, i64 24}
!24 = !{!20, !10, i64 32}
!25 = !{!20, !10, i64 40}
!26 = !{!20, !10, i64 48}
!27 = !{!20, !12, i64 56}
!28 = !{!29, !10, i64 16}
!29 = !{!"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, !30, i64 160, !31, i64 168, !31, 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, !32, i64 240, !10, i64 632, !10, i64 640, !33, i64 648, !39, i64 1144, !42, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !45, i64 1776, !45, i64 1816, !45, i64 1856, !45, i64 1896, !6, i64 1936, !31, i64 1944, !7, i64 1952, !45, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !46, i64 2004, !46, i64 2008, !47, i64 2016, !44, i64 2208, !6, i64 2212, !44, i64 2216, !31, i64 2224, !7, i64 2232, !31, i64 2240, !31, i64 2248, !31, i64 2256, !46, i64 2264, !46, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !38, i64 2792, !6, i64 2816, !38, i64 2824, !38, i64 2848, !38, i64 2872, !49, i64 2896, !51, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !38, i64 3784, !6, i64 3808, !53, i64 3816, !7, i64 3848, !45, i64 3992, !38, i64 4032, !38, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !44, i64 4084, !44, i64 4086, !6, i64 4088, !6, i64 4092, !38, i64 4096, !6, i64 4120, !54, i64 4128, !46, i64 4176, !7, i64 4180, !7, i64 4181}
!30 = !{!"s2n_timer", !31, i64 0}
!31 = !{!"long", !7, i64 0}
!32 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!33 = !{!"s2n_kex_parameters", !34, i64 0, !35, i64 8, !7, i64 24, !35, i64 56, !36, i64 72, !36, i64 184, !7, i64 296, !37, i64 360, !38, i64 448, !38, i64 472}
!34 = !{!"s2n_dh_params", !10, i64 0}
!35 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!36 = !{!"s2n_kem_group_params", !10, i64 0, !37, i64 8, !35, i64 96}
!37 = !{!"s2n_kem_params", !10, i64 0, !38, i64 8, !38, i64 32, !38, i64 56, !12, i64 80}
!38 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!39 = !{!"s2n_handshake_parameters", !40, i64 0, !40, i64 48, !38, i64 96, !6, i64 120, !41, 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}
!40 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!41 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!42 = !{!"s2n_psk_parameters", !6, i64 0, !43, i64 8, !44, i64 40, !44, i64 42, !10, i64 48, !6, i64 56}
!43 = !{!"s2n_array", !38, i64 0, !6, i64 24, !6, i64 28}
!44 = !{!"short", !7, i64 0}
!45 = !{!"s2n_stuffer", !38, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!46 = !{!"", !6, i64 0}
!47 = !{!"s2n_handshake", !45, 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, !48, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!48 = !{!"s2n_offered_early_data", !10, i64 0}
!49 = !{!"s2n_client_hello", !38, i64 0, !50, i64 24, !38, i64 728, !38, i64 752, !38, 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}
!50 = !{!"", !7, i64 0, !38, i64 672, !44, i64 696}
!51 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !44, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !52, i64 48, !12, i64 52}
!52 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!53 = !{!"s2n_ticket_fields", !38, i64 0, !6, i64 24}
!54 = !{!"s2n_post_handshake", !45, i64 0, !7, i64 40}
!55 = !{!44, !44, i64 0}
!56 = !{!45, !6, i64 28}
!57 = !{!45, !6, i64 24}
!58 = !{!59, !10, i64 8}
!59 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!60 = !{!61, !44, i64 0}
!61 = !{!"s2n_ecc_named_curve", !44, i64 0, !6, i64 4, !10, i64 8, !7, i64 16, !10, i64 24}
!62 = !{!61, !7, i64 16}
!63 = !{!36, !10, i64 0}
!64 = !{!36, !10, i64 8}
!65 = !{!66, !10, i64 24}
!66 = !{!"s2n_kem_group", !10, i64 0, !44, i64 8, !10, i64 16, !10, i64 24, !12, i64 32}
!67 = !{!36, !10, i64 40}
!68 = !{!36, !6, i64 48}
!69 = !{!70, !44, i64 16}
!70 = !{!"s2n_kem", !10, i64 0, !6, i64 8, !44, i64 12, !44, i64 14, !44, i64 16, !44, i64 18, !44, i64 20, !10, i64 24, !10, i64 32, !10, i64 40}
!71 = !{!36, !10, i64 96}
!72 = !{!66, !10, i64 16}
!73 = !{!36, !10, i64 104}
!74 = !{!35, !10, i64 0}
!75 = !{!35, !10, i64 8}
!76 = !{!66, !44, i64 8}
!77 = !{!70, !44, i64 14}
!78 = !{!66, !12, i64 32}
!79 = !{!29, !7, i64 220}
!80 = !{!29, !10, i64 872}
!81 = !{!29, !10, i64 936}
!82 = !{!29, !6, i64 2172}
!83 = !{!29, !6, i64 2176}
!84 = !{!29, !7, i64 222}
!85 = distinct !{!85, !86}
!86 = !{!"llvm.loop.mustprogress"}
!87 = !{!29, !10, i64 720}
!88 = !{!29, !10, i64 832}
!89 = !{!29, !10, i64 928}
!90 = !{!29, !10, i64 816}
!91 = !{!29, !6, i64 4088}
!92 = distinct !{!92, !86}
!93 = !{!36, !10, i64 16}
!94 = !{!36, !6, i64 24}
!95 = !{!36, !6, i64 28}
!96 = !{!38, !10, i64 0}
!97 = distinct !{!97, !86}
!98 = !{!37, !12, i64 80}
!99 = distinct !{!99, !86}


; Effective O3 passes: ADCEPass,AggressiveInstCombinePass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass