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

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

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

@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 [101 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_client_supported_groups_extension = external constant %struct.s2n_extension_type, align 8
@.str.10 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [43 x i8], align 1
@kem_preferences_null = external constant %struct.s2n_kem_preferences, align 8
@.str.19 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [55 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.27 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.89 = 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 ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca %struct.s2n_stuffer, align 8
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %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 i32, align 4
  %27 = alloca i16, align 2
  %28 = alloca i64, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca %struct.s2n_kem_preferences, align 8
  %34 = alloca %struct.s2n_security_policy, align 8
  %35 = alloca i32, align 4
  %36 = alloca ptr, align 8
  %37 = alloca i32, align 4
  %38 = alloca %struct.s2n_stuffer, align 8
  %39 = alloca i32, align 4
  %40 = alloca ptr, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i16, align 2
  %48 = alloca i32, align 4
  %49 = alloca i16, align 2
  %50 = alloca i32, align 4
  %51 = alloca %struct.s2n_result, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i16, align 2
  %56 = alloca i64, align 8
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i16, align 2
  %60 = alloca i64, align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca ptr, align 8
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca %struct.s2n_stuffer, align 8
  %69 = alloca i32, align 4
  %70 = alloca ptr, align 8
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca ptr, align 8
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca 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 i64, align 8
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca [1 x [2 x ptr]], align 16
  %87 = alloca i64, align 8
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca ptr, align 8
  %91 = alloca i32, align 4
  %92 = alloca ptr, align 8
  %93 = alloca i32, align 4
  %94 = alloca %struct.s2n_stuffer, align 8
  %95 = alloca i32, align 4
  %96 = alloca ptr, align 8
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca ptr, align 8
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i64, align 8
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca ptr, align 8
  %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 i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca [3 x [2 x ptr]], align 16
  %125 = alloca i64, align 8
  %126 = alloca i32, align 4
  %127 = alloca ptr, align 8
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca ptr, align 8
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca ptr, align 8
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca ptr, align 8
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca %struct.s2n_stuffer, align 8
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca %struct.s2n_result, align 4
  %155 = alloca i32, align 4
  %156 = alloca ptr, align 8
  %157 = alloca i32, align 4
  %158 = alloca %struct.s2n_stuffer, align 8
  %159 = alloca i32, align 4
  %160 = alloca %struct.s2n_stuffer_reservation, align 8
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca ptr, align 8
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca ptr, align 8
  %181 = alloca i32, align 4
  %182 = alloca i32, align 4
  %183 = alloca ptr, align 8
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca ptr, align 8
  %187 = alloca i32, align 4
  %188 = alloca %struct.s2n_stuffer, align 8
  %189 = alloca i32, align 4
  %190 = alloca %struct.s2n_stuffer_reservation, align 8
  %191 = alloca i32, align 4
  %192 = alloca i32, align 4
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca i32, align 4
  %196 = alloca i32, align 4
  %197 = alloca i32, align 4
  %198 = alloca i32, align 4
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca i32, align 4
  %204 = alloca i32, align 4
  %205 = alloca i32, align 4
  %206 = alloca ptr, align 8
  %207 = alloca i32, align 4
  %208 = alloca ptr, align 8
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca ptr, align 8
  %212 = alloca i32, align 4
  %213 = alloca i32, align 4
  %214 = alloca ptr, align 8
  %215 = alloca i32, align 4
  %216 = alloca %struct.s2n_stuffer, align 8
  %217 = alloca i32, align 4
  %218 = alloca %struct.s2n_stuffer_reservation, align 8
  %219 = alloca i32, align 4
  %220 = alloca i32, align 4
  %221 = alloca i32, align 4
  %222 = alloca i32, align 4
  %223 = alloca i32, align 4
  %224 = alloca i32, align 4
  %225 = alloca i32, align 4
  %226 = alloca i32, align 4
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca i32, align 4
  %231 = alloca i32, align 4
  %232 = alloca i32, align 4
  %233 = alloca i32, align 4
  %234 = alloca ptr, align 8
  %235 = alloca i32, align 4
  %236 = alloca %struct.s2n_stuffer, align 8
  %237 = alloca i32, align 4
  %238 = alloca ptr, align 8
  %239 = alloca i32, align 4
  %240 = alloca i32, align 4
  %241 = alloca i32, align 4
  %242 = alloca i32, align 4
  %243 = alloca i32, align 4
  %244 = alloca i32, align 4
  %245 = alloca i32, align 4
  %246 = alloca i32, align 4
  %247 = alloca i32, align 4
  %248 = alloca i32, align 4
  %249 = alloca i32, align 4
  %250 = alloca ptr, align 8
  %251 = alloca i32, align 4
  %252 = alloca %struct.s2n_stuffer, align 8
  %253 = alloca i32, align 4
  %254 = alloca ptr, align 8
  %255 = alloca i32, align 4
  %256 = alloca i32, align 4
  %257 = alloca i32, align 4
  %258 = alloca i32, align 4
  %259 = alloca i32, align 4
  %260 = alloca i32, align 4
  %261 = alloca i32, align 4
  %262 = alloca i32, align 4
  %263 = alloca i32, align 4
  %264 = alloca i32, align 4
  %265 = alloca i32, align 4
  %266 = alloca i32, align 4
  %267 = alloca ptr, align 8
  %268 = alloca i32, align 4
  %269 = alloca %struct.s2n_stuffer, align 8
  %270 = alloca i32, align 4
  %271 = alloca ptr, align 8
  %272 = alloca i32, align 4
  %273 = alloca i32, align 4
  %274 = alloca i32, align 4
  %275 = alloca i32, align 4
  %276 = alloca i32, align 4
  %277 = alloca i32, align 4
  %278 = alloca i32, align 4
  %279 = alloca i32, align 4
  %280 = alloca i32, align 4
  %281 = alloca i32, align 4
  %282 = alloca i32, align 4
  %283 = alloca i32, align 4
  %284 = alloca [2 x %struct.s2n_ecc_named_curve], align 16
  %285 = alloca i32, align 4
  %286 = alloca ptr, align 8
  %287 = alloca i32, align 4
  %288 = alloca %struct.s2n_stuffer, align 8
  %289 = alloca i32, align 4
  %290 = alloca i64, align 8
  %291 = alloca %struct.s2n_ecc_named_curve, align 8
  %292 = alloca i32, align 4
  %293 = alloca i32, align 4
  %294 = alloca i32, align 4
  %295 = alloca i32, align 4
  %296 = alloca i32, align 4
  %297 = alloca i32, align 4
  %298 = alloca i32, align 4
  %299 = alloca i32, align 4
  %300 = alloca i32, align 4
  store i32 0, ptr %1, align 4
  br label %301

301:                                              ; preds = %0
  br label %302

302:                                              ; preds = %301
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %303 = load ptr, ptr @stdout, align 8, !tbaa !9
  %304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %303, ptr noundef @.str, ptr noundef @.str.1) #9
  %305 = load ptr, ptr @stdout, align 8, !tbaa !9
  %306 = call i32 @fflush(ptr noundef %305)
  br label %307

307:                                              ; preds = %302
  %308 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %309 = icmp eq i32 %308, -1
  br i1 %309, label %310, label %361

310:                                              ; preds = %307
  br label %311

311:                                              ; preds = %310
  br label %312

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

319:                                              ; preds = %312
  %320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %321 = call i32 @fileno(ptr noundef %320) #9
  %322 = call i32 @isatty(i32 noundef %321) #9
  %323 = icmp ne i32 %322, 0
  br i1 %323, label %324, label %341

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

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

358:                                              ; preds = %341, %324
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #9
  br label %359

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

360:                                              ; No predecessors!
  br label %361

361:                                              ; preds = %360, %307
  br label %362

362:                                              ; preds = %361
  br label %363

363:                                              ; preds = %362
  %364 = load i32, ptr @test_count, align 4, !tbaa !5
  %365 = add nsw i32 %364, 1
  store i32 %365, ptr @test_count, align 4, !tbaa !5
  %366 = call i32 @s2n_enable_atexit()
  %367 = icmp eq i32 %366, -1
  br i1 %367, label %368, label %419

368:                                              ; preds = %363
  br label %369

369:                                              ; preds = %368
  br label %370

370:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #9
  %371 = call ptr @__errno_location() #10
  %372 = load i32, ptr %371, align 4, !tbaa !5
  store i32 %372, ptr %3, align 4, !tbaa !5
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = call i32 @s2n_print_stacktrace(ptr noundef %373)
  %375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %376 = trunc i8 %375 to i1
  br i1 %376, label %377, label %399

377:                                              ; preds = %370
  %378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %379 = call i32 @fileno(ptr noundef %378) #9
  %380 = call i32 @isatty(i32 noundef %379) #9
  %381 = icmp ne i32 %380, 0
  br i1 %381, label %382, label %399

382:                                              ; preds = %377
  %383 = load i32, ptr %3, align 4, !tbaa !5
  %384 = call ptr @__errno_location() #10
  store i32 %383, ptr %384, align 4, !tbaa !5
  %385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %386 = load i32, ptr @test_count, align 4, !tbaa !5
  %387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %388 = load i32, ptr %387, align 4, !tbaa !5
  %389 = call ptr @s2n_strerror(i32 noundef %388, ptr noundef @.str.4)
  %390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %391 = load i32, ptr %390, align 4, !tbaa !5
  %392 = call ptr @s2n_strerror_debug(i32 noundef %391, ptr noundef @.str.4)
  %393 = call ptr @__errno_location() #10
  %394 = load i32, ptr %393, align 4, !tbaa !5
  %395 = call ptr @strerror(i32 noundef %394) #9
  %396 = call ptr @__errno_location() #10
  %397 = load i32, ptr %396, align 4, !tbaa !5
  %398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %385, ptr noundef @.str.2, i32 noundef %386, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 30, ptr noundef %389, ptr noundef %392, ptr noundef %395, i32 noundef %397) #9
  br label %416

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

416:                                              ; preds = %399, %382
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #9
  br label %417

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

418:                                              ; No predecessors!
  br label %419

419:                                              ; preds = %418, %363
  br label %420

420:                                              ; preds = %419
  br label %421

421:                                              ; preds = %420
  br label %422

422:                                              ; preds = %421
  %423 = call i32 @s2n_init()
  %424 = icmp eq i32 %423, -1
  br i1 %424, label %425, label %476

425:                                              ; preds = %422
  br label %426

426:                                              ; preds = %425
  br label %427

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

434:                                              ; preds = %427
  %435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %436 = call i32 @fileno(ptr noundef %435) #9
  %437 = call i32 @isatty(i32 noundef %436) #9
  %438 = icmp ne i32 %437, 0
  br i1 %438, label %439, label %456

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

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

473:                                              ; preds = %456, %439
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #9
  br label %474

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

475:                                              ; No predecessors!
  br label %476

476:                                              ; preds = %475, %422
  br label %477

477:                                              ; preds = %476
  br label %478

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %478
  %480 = load i32, ptr @test_count, align 4, !tbaa !5
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr @test_count, align 4, !tbaa !5
  %482 = call i32 (...) @s2n_disable_tls13_in_test()
  %483 = icmp eq i32 %482, -1
  br i1 %483, label %484, label %535

484:                                              ; preds = %479
  br label %485

485:                                              ; preds = %484
  br label %486

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

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

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

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

532:                                              ; preds = %515, %498
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #9
  br label %533

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

534:                                              ; No predecessors!
  br label %535

535:                                              ; preds = %534, %479
  br label %536

536:                                              ; preds = %535
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #9
  store ptr null, ptr %6, align 8, !tbaa !9
  br label %537

537:                                              ; preds = %536
  %538 = load i32, ptr @test_count, align 4, !tbaa !5
  %539 = add nsw i32 %538, 1
  store i32 %539, ptr @test_count, align 4, !tbaa !5
  %540 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %540, ptr %6, align 8, !tbaa !9
  %541 = icmp eq ptr %540, null
  br i1 %541, label %542, label %595

542:                                              ; preds = %537
  br label %543

543:                                              ; preds = %542
  br label %544

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

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

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

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

590:                                              ; preds = %573, %556
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %591

591:                                              ; preds = %590
  br label %592

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

593:                                              ; No predecessors!
  br label %594

594:                                              ; preds = %593
  br label %595

595:                                              ; preds = %594, %537
  br label %596

596:                                              ; preds = %595
  br label %597

597:                                              ; preds = %596
  br label %598

598:                                              ; preds = %597
  %599 = load i32, ptr @test_count, align 4, !tbaa !5
  %600 = add nsw i32 %599, 1
  store i32 %600, ptr @test_count, align 4, !tbaa !5
  %601 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 5), align 8, !tbaa !15
  %602 = load ptr, ptr %6, align 8, !tbaa !9
  %603 = call zeroext i1 %601(ptr noundef %602)
  br i1 %603, label %657, label %604

604:                                              ; preds = %598
  br label %605

605:                                              ; preds = %604
  br label %606

606:                                              ; preds = %605
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  %607 = call ptr @__errno_location() #10
  %608 = load i32, ptr %607, align 4, !tbaa !5
  store i32 %608, ptr %8, align 4, !tbaa !5
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = call i32 @s2n_print_stacktrace(ptr noundef %609)
  %611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %612 = trunc i8 %611 to i1
  br i1 %612, label %613, label %635

613:                                              ; preds = %606
  %614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %615 = call i32 @fileno(ptr noundef %614) #9
  %616 = call i32 @isatty(i32 noundef %615) #9
  %617 = icmp ne i32 %616, 0
  br i1 %617, label %618, label %635

618:                                              ; preds = %613
  %619 = load i32, ptr %8, align 4, !tbaa !5
  %620 = call ptr @__errno_location() #10
  store i32 %619, ptr %620, align 4, !tbaa !5
  %621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %622 = load i32, ptr @test_count, align 4, !tbaa !5
  %623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %624 = load i32, ptr %623, align 4, !tbaa !5
  %625 = call ptr @s2n_strerror(i32 noundef %624, ptr noundef @.str.4)
  %626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %627 = load i32, ptr %626, align 4, !tbaa !5
  %628 = call ptr @s2n_strerror_debug(i32 noundef %627, ptr noundef @.str.4)
  %629 = call ptr @__errno_location() #10
  %630 = load i32, ptr %629, align 4, !tbaa !5
  %631 = call ptr @strerror(i32 noundef %630) #9
  %632 = call ptr @__errno_location() #10
  %633 = load i32, ptr %632, align 4, !tbaa !5
  %634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %621, ptr noundef @.str.2, i32 noundef %622, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 39, ptr noundef %625, ptr noundef %628, ptr noundef %631, i32 noundef %633) #9
  br label %652

635:                                              ; preds = %613, %606
  %636 = load i32, ptr %8, align 4, !tbaa !5
  %637 = call ptr @__errno_location() #10
  store i32 %636, ptr %637, align 4, !tbaa !5
  %638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %639 = load i32, ptr @test_count, align 4, !tbaa !5
  %640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = call ptr @s2n_strerror(i32 noundef %641, ptr noundef @.str.4)
  %643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call ptr @s2n_strerror_debug(i32 noundef %644, ptr noundef @.str.4)
  %646 = call ptr @__errno_location() #10
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = call ptr @strerror(i32 noundef %647) #9
  %649 = call ptr @__errno_location() #10
  %650 = load i32, ptr %649, align 4, !tbaa !5
  %651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %638, ptr noundef @.str.5, i32 noundef %639, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 39, ptr noundef %642, ptr noundef %645, ptr noundef %648, i32 noundef %650) #9
  br label %652

652:                                              ; preds = %635, %618
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %653

653:                                              ; preds = %652
  br label %654

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

655:                                              ; No predecessors!
  br label %656

656:                                              ; preds = %655
  br label %657

657:                                              ; preds = %656, %598
  br label %658

658:                                              ; preds = %657
  br label %659

659:                                              ; preds = %658
  br label %660

660:                                              ; preds = %659
  %661 = load i32, ptr @test_count, align 4, !tbaa !5
  %662 = add nsw i32 %661, 1
  store i32 %662, ptr @test_count, align 4, !tbaa !5
  %663 = load ptr, ptr %6, align 8, !tbaa !9
  %664 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %663, ptr noundef @.str.11)
  %665 = icmp eq i32 %664, -1
  br i1 %665, label %666, label %719

666:                                              ; preds = %660
  br label %667

667:                                              ; preds = %666
  br label %668

668:                                              ; preds = %667
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  %669 = call ptr @__errno_location() #10
  %670 = load i32, ptr %669, align 4, !tbaa !5
  store i32 %670, ptr %9, align 4, !tbaa !5
  %671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %672 = call i32 @s2n_print_stacktrace(ptr noundef %671)
  %673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %674 = trunc i8 %673 to i1
  br i1 %674, label %675, label %697

675:                                              ; preds = %668
  %676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %677 = call i32 @fileno(ptr noundef %676) #9
  %678 = call i32 @isatty(i32 noundef %677) #9
  %679 = icmp ne i32 %678, 0
  br i1 %679, label %680, label %697

680:                                              ; preds = %675
  %681 = load i32, ptr %9, align 4, !tbaa !5
  %682 = call ptr @__errno_location() #10
  store i32 %681, ptr %682, align 4, !tbaa !5
  %683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %684 = load i32, ptr @test_count, align 4, !tbaa !5
  %685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = call ptr @s2n_strerror(i32 noundef %686, ptr noundef @.str.4)
  %688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %689 = load i32, ptr %688, align 4, !tbaa !5
  %690 = call ptr @s2n_strerror_debug(i32 noundef %689, ptr noundef @.str.4)
  %691 = call ptr @__errno_location() #10
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call ptr @strerror(i32 noundef %692) #9
  %694 = call ptr @__errno_location() #10
  %695 = load i32, ptr %694, align 4, !tbaa !5
  %696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %683, ptr noundef @.str.2, i32 noundef %684, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 42, ptr noundef %687, ptr noundef %690, ptr noundef %693, i32 noundef %695) #9
  br label %714

697:                                              ; preds = %675, %668
  %698 = load i32, ptr %9, align 4, !tbaa !5
  %699 = call ptr @__errno_location() #10
  store i32 %698, ptr %699, align 4, !tbaa !5
  %700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %701 = load i32, ptr @test_count, align 4, !tbaa !5
  %702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %703 = load i32, ptr %702, align 4, !tbaa !5
  %704 = call ptr @s2n_strerror(i32 noundef %703, ptr noundef @.str.4)
  %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_debug(i32 noundef %706, ptr noundef @.str.4)
  %708 = call ptr @__errno_location() #10
  %709 = load i32, ptr %708, align 4, !tbaa !5
  %710 = call ptr @strerror(i32 noundef %709) #9
  %711 = call ptr @__errno_location() #10
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %700, ptr noundef @.str.5, i32 noundef %701, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 42, ptr noundef %704, ptr noundef %707, ptr noundef %710, i32 noundef %712) #9
  br label %714

714:                                              ; preds = %697, %680
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  br label %715

715:                                              ; preds = %714
  br label %716

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

717:                                              ; No predecessors!
  br label %718

718:                                              ; preds = %717
  br label %719

719:                                              ; preds = %718, %660
  br label %720

720:                                              ; preds = %719
  br label %721

721:                                              ; preds = %720
  br label %722

722:                                              ; preds = %721
  %723 = load i32, ptr @test_count, align 4, !tbaa !5
  %724 = add nsw i32 %723, 1
  store i32 %724, ptr @test_count, align 4, !tbaa !5
  %725 = load ptr, ptr %6, align 8, !tbaa !9
  %726 = call i32 @s2n_connection_free(ptr noundef %725)
  %727 = icmp eq i32 %726, -1
  br i1 %727, label %728, label %781

728:                                              ; preds = %722
  br label %729

729:                                              ; preds = %728
  br label %730

730:                                              ; preds = %729
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  %731 = call ptr @__errno_location() #10
  %732 = load i32, ptr %731, align 4, !tbaa !5
  store i32 %732, ptr %10, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = call i32 @s2n_print_stacktrace(ptr noundef %733)
  %735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %736 = trunc i8 %735 to i1
  br i1 %736, label %737, label %759

737:                                              ; preds = %730
  %738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %739 = call i32 @fileno(ptr noundef %738) #9
  %740 = call i32 @isatty(i32 noundef %739) #9
  %741 = icmp ne i32 %740, 0
  br i1 %741, label %742, label %759

742:                                              ; preds = %737
  %743 = load i32, ptr %10, align 4, !tbaa !5
  %744 = call ptr @__errno_location() #10
  store i32 %743, ptr %744, align 4, !tbaa !5
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = load i32, ptr @test_count, align 4, !tbaa !5
  %747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %748 = load i32, ptr %747, align 4, !tbaa !5
  %749 = call ptr @s2n_strerror(i32 noundef %748, ptr noundef @.str.4)
  %750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %751 = load i32, ptr %750, align 4, !tbaa !5
  %752 = call ptr @s2n_strerror_debug(i32 noundef %751, ptr noundef @.str.4)
  %753 = call ptr @__errno_location() #10
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = call ptr @strerror(i32 noundef %754) #9
  %756 = call ptr @__errno_location() #10
  %757 = load i32, ptr %756, align 4, !tbaa !5
  %758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %745, ptr noundef @.str.2, i32 noundef %746, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 44, ptr noundef %749, ptr noundef %752, ptr noundef %755, i32 noundef %757) #9
  br label %776

759:                                              ; preds = %737, %730
  %760 = load i32, ptr %10, align 4, !tbaa !5
  %761 = call ptr @__errno_location() #10
  store i32 %760, ptr %761, 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 @.str.4)
  %767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %768 = load i32, ptr %767, align 4, !tbaa !5
  %769 = call ptr @s2n_strerror_debug(i32 noundef %768, ptr noundef @.str.4)
  %770 = call ptr @__errno_location() #10
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %772 = call ptr @strerror(i32 noundef %771) #9
  %773 = call ptr @__errno_location() #10
  %774 = load i32, ptr %773, align 4, !tbaa !5
  %775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %762, ptr noundef @.str.5, i32 noundef %763, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 44, ptr noundef %766, ptr noundef %769, ptr noundef %772, i32 noundef %774) #9
  br label %776

776:                                              ; preds = %759, %742
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  br label %777

777:                                              ; preds = %776
  br label %778

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

779:                                              ; No predecessors!
  br label %780

780:                                              ; preds = %779
  br label %781

781:                                              ; preds = %780, %722
  br label %782

782:                                              ; preds = %781
  br label %783

783:                                              ; preds = %782
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  store ptr null, ptr %11, align 8, !tbaa !9
  br label %784

784:                                              ; preds = %783
  %785 = load i32, ptr @test_count, align 4, !tbaa !5
  %786 = add nsw i32 %785, 1
  store i32 %786, ptr @test_count, align 4, !tbaa !5
  %787 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %787, ptr %11, align 8, !tbaa !9
  %788 = icmp eq ptr %787, null
  br i1 %788, label %789, label %842

789:                                              ; preds = %784
  br label %790

790:                                              ; preds = %789
  br label %791

791:                                              ; preds = %790
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  %792 = call ptr @__errno_location() #10
  %793 = load i32, ptr %792, align 4, !tbaa !5
  store i32 %793, ptr %12, align 4, !tbaa !5
  %794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %795 = call i32 @s2n_print_stacktrace(ptr noundef %794)
  %796 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %797 = trunc i8 %796 to i1
  br i1 %797, label %798, label %820

798:                                              ; preds = %791
  %799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %800 = call i32 @fileno(ptr noundef %799) #9
  %801 = call i32 @isatty(i32 noundef %800) #9
  %802 = icmp ne i32 %801, 0
  br i1 %802, label %803, label %820

803:                                              ; preds = %798
  %804 = load i32, ptr %12, align 4, !tbaa !5
  %805 = call ptr @__errno_location() #10
  store i32 %804, ptr %805, align 4, !tbaa !5
  %806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %807 = load i32, ptr @test_count, align 4, !tbaa !5
  %808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %809 = load i32, ptr %808, align 4, !tbaa !5
  %810 = call ptr @s2n_strerror(i32 noundef %809, ptr noundef @.str.4)
  %811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %812 = load i32, ptr %811, align 4, !tbaa !5
  %813 = call ptr @s2n_strerror_debug(i32 noundef %812, ptr noundef @.str.4)
  %814 = call ptr @__errno_location() #10
  %815 = load i32, ptr %814, align 4, !tbaa !5
  %816 = call ptr @strerror(i32 noundef %815) #9
  %817 = call ptr @__errno_location() #10
  %818 = load i32, ptr %817, align 4, !tbaa !5
  %819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %806, ptr noundef @.str.2, i32 noundef %807, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 50, ptr noundef %810, ptr noundef %813, ptr noundef %816, i32 noundef %818) #9
  br label %837

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

837:                                              ; preds = %820, %803
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %838

838:                                              ; preds = %837
  br label %839

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

840:                                              ; No predecessors!
  br label %841

841:                                              ; preds = %840
  br label %842

842:                                              ; preds = %841, %784
  br label %843

843:                                              ; preds = %842
  br label %844

844:                                              ; preds = %843
  call void @llvm.lifetime.start.p0(i64 40, ptr %13) #9
  call void @llvm.memset.p0.i64(ptr align 8 %13, i8 0, i64 40, i1 false)
  br label %845

845:                                              ; preds = %844
  %846 = load i32, ptr @test_count, align 4, !tbaa !5
  %847 = add nsw i32 %846, 1
  store i32 %847, ptr @test_count, align 4, !tbaa !5
  %848 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %13, i32 noundef 0)
  %849 = icmp eq i32 %848, -1
  br i1 %849, label %850, label %903

850:                                              ; preds = %845
  br label %851

851:                                              ; preds = %850
  br label %852

852:                                              ; preds = %851
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  %853 = call ptr @__errno_location() #10
  %854 = load i32, ptr %853, align 4, !tbaa !5
  store i32 %854, ptr %14, align 4, !tbaa !5
  %855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %856 = call i32 @s2n_print_stacktrace(ptr noundef %855)
  %857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %858 = trunc i8 %857 to i1
  br i1 %858, label %859, label %881

859:                                              ; preds = %852
  %860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %861 = call i32 @fileno(ptr noundef %860) #9
  %862 = call i32 @isatty(i32 noundef %861) #9
  %863 = icmp ne i32 %862, 0
  br i1 %863, label %864, label %881

864:                                              ; preds = %859
  %865 = load i32, ptr %14, align 4, !tbaa !5
  %866 = call ptr @__errno_location() #10
  store i32 %865, ptr %866, align 4, !tbaa !5
  %867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %868 = load i32, ptr @test_count, align 4, !tbaa !5
  %869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = call ptr @s2n_strerror(i32 noundef %870, ptr noundef @.str.4)
  %872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %873 = load i32, ptr %872, align 4, !tbaa !5
  %874 = call ptr @s2n_strerror_debug(i32 noundef %873, ptr noundef @.str.4)
  %875 = call ptr @__errno_location() #10
  %876 = load i32, ptr %875, align 4, !tbaa !5
  %877 = call ptr @strerror(i32 noundef %876) #9
  %878 = call ptr @__errno_location() #10
  %879 = load i32, ptr %878, align 4, !tbaa !5
  %880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %867, ptr noundef @.str.2, i32 noundef %868, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 53, ptr noundef %871, ptr noundef %874, ptr noundef %877, i32 noundef %879) #9
  br label %898

881:                                              ; preds = %859, %852
  %882 = load i32, ptr %14, align 4, !tbaa !5
  %883 = call ptr @__errno_location() #10
  store i32 %882, ptr %883, align 4, !tbaa !5
  %884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %885 = load i32, ptr @test_count, align 4, !tbaa !5
  %886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = call ptr @s2n_strerror(i32 noundef %887, ptr noundef @.str.4)
  %889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %890 = load i32, ptr %889, align 4, !tbaa !5
  %891 = call ptr @s2n_strerror_debug(i32 noundef %890, ptr noundef @.str.4)
  %892 = call ptr @__errno_location() #10
  %893 = load i32, ptr %892, align 4, !tbaa !5
  %894 = call ptr @strerror(i32 noundef %893) #9
  %895 = call ptr @__errno_location() #10
  %896 = load i32, ptr %895, align 4, !tbaa !5
  %897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %884, ptr noundef @.str.5, i32 noundef %885, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 53, ptr noundef %888, ptr noundef %891, ptr noundef %894, i32 noundef %896) #9
  br label %898

898:                                              ; preds = %881, %864
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %899

899:                                              ; preds = %898
  br label %900

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

901:                                              ; No predecessors!
  br label %902

902:                                              ; preds = %901
  br label %903

903:                                              ; preds = %902, %845
  br label %904

904:                                              ; preds = %903
  br label %905

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

906:                                              ; preds = %905
  %907 = load i32, ptr @test_count, align 4, !tbaa !5
  %908 = add nsw i32 %907, 1
  store i32 %908, ptr @test_count, align 4, !tbaa !5
  %909 = load ptr, ptr %11, align 8, !tbaa !9
  %910 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %909, ptr noundef %15)
  %911 = icmp eq i32 %910, -1
  br i1 %911, label %912, label %965

912:                                              ; preds = %906
  br label %913

913:                                              ; preds = %912
  br label %914

914:                                              ; preds = %913
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  %915 = call ptr @__errno_location() #10
  %916 = load i32, ptr %915, align 4, !tbaa !5
  store i32 %916, ptr %16, align 4, !tbaa !5
  %917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %918 = call i32 @s2n_print_stacktrace(ptr noundef %917)
  %919 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %920 = trunc i8 %919 to i1
  br i1 %920, label %921, label %943

921:                                              ; preds = %914
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = call i32 @fileno(ptr noundef %922) #9
  %924 = call i32 @isatty(i32 noundef %923) #9
  %925 = icmp ne i32 %924, 0
  br i1 %925, label %926, label %943

926:                                              ; preds = %921
  %927 = load i32, ptr %16, align 4, !tbaa !5
  %928 = call ptr @__errno_location() #10
  store i32 %927, ptr %928, align 4, !tbaa !5
  %929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %930 = load i32, ptr @test_count, align 4, !tbaa !5
  %931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %932 = load i32, ptr %931, align 4, !tbaa !5
  %933 = call ptr @s2n_strerror(i32 noundef %932, ptr noundef @.str.4)
  %934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %935 = load i32, ptr %934, align 4, !tbaa !5
  %936 = call ptr @s2n_strerror_debug(i32 noundef %935, ptr noundef @.str.4)
  %937 = call ptr @__errno_location() #10
  %938 = load i32, ptr %937, align 4, !tbaa !5
  %939 = call ptr @strerror(i32 noundef %938) #9
  %940 = call ptr @__errno_location() #10
  %941 = load i32, ptr %940, align 4, !tbaa !5
  %942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %929, ptr noundef @.str.2, i32 noundef %930, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 56, ptr noundef %933, ptr noundef %936, ptr noundef %939, i32 noundef %941) #9
  br label %960

943:                                              ; preds = %921, %914
  %944 = load i32, ptr %16, align 4, !tbaa !5
  %945 = call ptr @__errno_location() #10
  store i32 %944, ptr %945, align 4, !tbaa !5
  %946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %947 = load i32, ptr @test_count, align 4, !tbaa !5
  %948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %949 = load i32, ptr %948, align 4, !tbaa !5
  %950 = call ptr @s2n_strerror(i32 noundef %949, ptr noundef @.str.4)
  %951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %952 = load i32, ptr %951, align 4, !tbaa !5
  %953 = call ptr @s2n_strerror_debug(i32 noundef %952, ptr noundef @.str.4)
  %954 = call ptr @__errno_location() #10
  %955 = load i32, ptr %954, align 4, !tbaa !5
  %956 = call ptr @strerror(i32 noundef %955) #9
  %957 = call ptr @__errno_location() #10
  %958 = load i32, ptr %957, align 4, !tbaa !5
  %959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %946, ptr noundef @.str.5, i32 noundef %947, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 56, ptr noundef %950, ptr noundef %953, ptr noundef %956, i32 noundef %958) #9
  br label %960

960:                                              ; preds = %943, %926
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %961

961:                                              ; preds = %960
  br label %962

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

963:                                              ; No predecessors!
  br label %964

964:                                              ; preds = %963
  br label %965

965:                                              ; preds = %964, %906
  br label %966

966:                                              ; preds = %965
  br label %967

967:                                              ; preds = %966
  br label %968

968:                                              ; preds = %967
  %969 = load i32, ptr @test_count, align 4, !tbaa !5
  %970 = add nsw i32 %969, 1
  store i32 %970, ptr @test_count, align 4, !tbaa !5
  %971 = load ptr, ptr %15, align 8, !tbaa !9
  %972 = icmp eq ptr %971, null
  br i1 %972, label %973, label %1026

973:                                              ; preds = %968
  br label %974

974:                                              ; preds = %973
  br label %975

975:                                              ; preds = %974
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %976 = call ptr @__errno_location() #10
  %977 = load i32, ptr %976, align 4, !tbaa !5
  store i32 %977, ptr %17, align 4, !tbaa !5
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = call i32 @s2n_print_stacktrace(ptr noundef %978)
  %980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %981 = trunc i8 %980 to i1
  br i1 %981, label %982, label %1004

982:                                              ; preds = %975
  %983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %984 = call i32 @fileno(ptr noundef %983) #9
  %985 = call i32 @isatty(i32 noundef %984) #9
  %986 = icmp ne i32 %985, 0
  br i1 %986, label %987, label %1004

987:                                              ; preds = %982
  %988 = load i32, ptr %17, align 4, !tbaa !5
  %989 = call ptr @__errno_location() #10
  store i32 %988, ptr %989, align 4, !tbaa !5
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = load i32, ptr @test_count, align 4, !tbaa !5
  %992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror(i32 noundef %993, ptr noundef @.str.4)
  %995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %996 = load i32, ptr %995, align 4, !tbaa !5
  %997 = call ptr @s2n_strerror_debug(i32 noundef %996, ptr noundef @.str.4)
  %998 = call ptr @__errno_location() #10
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call ptr @strerror(i32 noundef %999) #9
  %1001 = call ptr @__errno_location() #10
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %990, ptr noundef @.str.2, i32 noundef %991, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 57, ptr noundef %994, ptr noundef %997, ptr noundef %1000, i32 noundef %1002) #9
  br label %1021

1004:                                             ; preds = %982, %975
  %1005 = load i32, ptr %17, align 4, !tbaa !5
  %1006 = call ptr @__errno_location() #10
  store i32 %1005, ptr %1006, align 4, !tbaa !5
  %1007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1008 = load i32, ptr @test_count, align 4, !tbaa !5
  %1009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call ptr @s2n_strerror(i32 noundef %1010, ptr noundef @.str.4)
  %1012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call ptr @s2n_strerror_debug(i32 noundef %1013, ptr noundef @.str.4)
  %1015 = call ptr @__errno_location() #10
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = call ptr @strerror(i32 noundef %1016) #9
  %1018 = call ptr @__errno_location() #10
  %1019 = load i32, ptr %1018, align 4, !tbaa !5
  %1020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1007, ptr noundef @.str.5, i32 noundef %1008, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 57, ptr noundef %1011, ptr noundef %1014, ptr noundef %1017, i32 noundef %1019) #9
  br label %1021

1021:                                             ; preds = %1004, %987
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

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

1024:                                             ; No predecessors!
  br label %1025

1025:                                             ; preds = %1024
  br label %1026

1026:                                             ; preds = %1025, %968
  br label %1027

1027:                                             ; preds = %1026
  br label %1028

1028:                                             ; preds = %1027
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  store ptr null, ptr %18, align 8, !tbaa !9
  br label %1029

1029:                                             ; preds = %1028
  %1030 = load i32, ptr @test_count, align 4, !tbaa !5
  %1031 = add nsw i32 %1030, 1
  store i32 %1031, ptr @test_count, align 4, !tbaa !5
  %1032 = load ptr, ptr %11, align 8, !tbaa !9
  %1033 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %1032, ptr noundef %18)
  %1034 = icmp eq i32 %1033, -1
  br i1 %1034, label %1035, label %1088

1035:                                             ; preds = %1029
  br label %1036

1036:                                             ; preds = %1035
  br label %1037

1037:                                             ; preds = %1036
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  %1038 = call ptr @__errno_location() #10
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  store i32 %1039, ptr %19, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = call i32 @s2n_print_stacktrace(ptr noundef %1040)
  %1042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1043 = trunc i8 %1042 to i1
  br i1 %1043, label %1044, label %1066

1044:                                             ; preds = %1037
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = call i32 @fileno(ptr noundef %1045) #9
  %1047 = call i32 @isatty(i32 noundef %1046) #9
  %1048 = icmp ne i32 %1047, 0
  br i1 %1048, label %1049, label %1066

1049:                                             ; preds = %1044
  %1050 = load i32, ptr %19, align 4, !tbaa !5
  %1051 = call ptr @__errno_location() #10
  store i32 %1050, ptr %1051, align 4, !tbaa !5
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = load i32, ptr @test_count, align 4, !tbaa !5
  %1054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror(i32 noundef %1055, ptr noundef @.str.4)
  %1057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1058 = load i32, ptr %1057, align 4, !tbaa !5
  %1059 = call ptr @s2n_strerror_debug(i32 noundef %1058, ptr noundef @.str.4)
  %1060 = call ptr @__errno_location() #10
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  %1062 = call ptr @strerror(i32 noundef %1061) #9
  %1063 = call ptr @__errno_location() #10
  %1064 = load i32, ptr %1063, align 4, !tbaa !5
  %1065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1052, ptr noundef @.str.2, i32 noundef %1053, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1056, ptr noundef %1059, ptr noundef %1062, i32 noundef %1064) #9
  br label %1083

1066:                                             ; preds = %1044, %1037
  %1067 = load i32, ptr %19, align 4, !tbaa !5
  %1068 = call ptr @__errno_location() #10
  store i32 %1067, ptr %1068, align 4, !tbaa !5
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = load i32, ptr @test_count, align 4, !tbaa !5
  %1071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = call ptr @s2n_strerror(i32 noundef %1072, ptr noundef @.str.4)
  %1074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  %1076 = call ptr @s2n_strerror_debug(i32 noundef %1075, ptr noundef @.str.4)
  %1077 = call ptr @__errno_location() #10
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call ptr @strerror(i32 noundef %1078) #9
  %1080 = call ptr @__errno_location() #10
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1069, ptr noundef @.str.5, i32 noundef %1070, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1073, ptr noundef %1076, ptr noundef %1079, i32 noundef %1081) #9
  br label %1083

1083:                                             ; preds = %1066, %1049
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %1084

1084:                                             ; preds = %1083
  br label %1085

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

1086:                                             ; No predecessors!
  br label %1087

1087:                                             ; preds = %1086
  br label %1088

1088:                                             ; preds = %1087, %1029
  br label %1089

1089:                                             ; preds = %1088
  br label %1090

1090:                                             ; preds = %1089
  br label %1091

1091:                                             ; preds = %1090
  %1092 = load i32, ptr @test_count, align 4, !tbaa !5
  %1093 = add nsw i32 %1092, 1
  store i32 %1093, ptr @test_count, align 4, !tbaa !5
  %1094 = load ptr, ptr %18, align 8, !tbaa !9
  %1095 = icmp eq ptr %1094, null
  br i1 %1095, label %1096, label %1149

1096:                                             ; preds = %1091
  br label %1097

1097:                                             ; preds = %1096
  br label %1098

1098:                                             ; preds = %1097
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  %1099 = call ptr @__errno_location() #10
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  store i32 %1100, ptr %20, align 4, !tbaa !5
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = call i32 @s2n_print_stacktrace(ptr noundef %1101)
  %1103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1104 = trunc i8 %1103 to i1
  br i1 %1104, label %1105, label %1127

1105:                                             ; preds = %1098
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = call i32 @fileno(ptr noundef %1106) #9
  %1108 = call i32 @isatty(i32 noundef %1107) #9
  %1109 = icmp ne i32 %1108, 0
  br i1 %1109, label %1110, label %1127

1110:                                             ; preds = %1105
  %1111 = load i32, ptr %20, align 4, !tbaa !5
  %1112 = call ptr @__errno_location() #10
  store i32 %1111, ptr %1112, align 4, !tbaa !5
  %1113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1114 = load i32, ptr @test_count, align 4, !tbaa !5
  %1115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1116 = load i32, ptr %1115, align 4, !tbaa !5
  %1117 = call ptr @s2n_strerror(i32 noundef %1116, ptr noundef @.str.4)
  %1118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror_debug(i32 noundef %1119, ptr noundef @.str.4)
  %1121 = call ptr @__errno_location() #10
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call ptr @strerror(i32 noundef %1122) #9
  %1124 = call ptr @__errno_location() #10
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1113, ptr noundef @.str.2, i32 noundef %1114, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1117, ptr noundef %1120, ptr noundef %1123, i32 noundef %1125) #9
  br label %1144

1127:                                             ; preds = %1105, %1098
  %1128 = load i32, ptr %20, align 4, !tbaa !5
  %1129 = call ptr @__errno_location() #10
  store i32 %1128, ptr %1129, align 4, !tbaa !5
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = load i32, ptr @test_count, align 4, !tbaa !5
  %1132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror(i32 noundef %1133, ptr noundef @.str.4)
  %1135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = call ptr @s2n_strerror_debug(i32 noundef %1136, ptr noundef @.str.4)
  %1138 = call ptr @__errno_location() #10
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  %1140 = call ptr @strerror(i32 noundef %1139) #9
  %1141 = call ptr @__errno_location() #10
  %1142 = load i32, ptr %1141, align 4, !tbaa !5
  %1143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1130, ptr noundef @.str.5, i32 noundef %1131, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1134, ptr noundef %1137, ptr noundef %1140, i32 noundef %1142) #9
  br label %1144

1144:                                             ; preds = %1127, %1110
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %1145

1145:                                             ; preds = %1144
  br label %1146

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

1147:                                             ; No predecessors!
  br label %1148

1148:                                             ; preds = %1147
  br label %1149

1149:                                             ; preds = %1148, %1091
  br label %1150

1150:                                             ; preds = %1149
  br label %1151

1151:                                             ; preds = %1150
  br label %1152

1152:                                             ; preds = %1151
  %1153 = load i32, ptr @test_count, align 4, !tbaa !5
  %1154 = add nsw i32 %1153, 1
  store i32 %1154, ptr @test_count, align 4, !tbaa !5
  %1155 = load ptr, ptr %18, align 8, !tbaa !9
  %1156 = icmp eq ptr %1155, @kem_preferences_null
  br i1 %1156, label %1210, label %1157

1157:                                             ; preds = %1152
  br label %1158

1158:                                             ; preds = %1157
  br label %1159

1159:                                             ; preds = %1158
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %1160 = call ptr @__errno_location() #10
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  store i32 %1161, ptr %21, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = call i32 @s2n_print_stacktrace(ptr noundef %1162)
  %1164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1165 = trunc i8 %1164 to i1
  br i1 %1165, label %1166, label %1188

1166:                                             ; preds = %1159
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = call i32 @fileno(ptr noundef %1167) #9
  %1169 = call i32 @isatty(i32 noundef %1168) #9
  %1170 = icmp ne i32 %1169, 0
  br i1 %1170, label %1171, label %1188

1171:                                             ; preds = %1166
  %1172 = load i32, ptr %21, align 4, !tbaa !5
  %1173 = call ptr @__errno_location() #10
  store i32 %1172, ptr %1173, align 4, !tbaa !5
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1177 = load i32, ptr %1176, align 4, !tbaa !5
  %1178 = call ptr @s2n_strerror(i32 noundef %1177, ptr noundef @.str.4)
  %1179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = call ptr @s2n_strerror_debug(i32 noundef %1180, ptr noundef @.str.4)
  %1182 = call ptr @__errno_location() #10
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  %1184 = call ptr @strerror(i32 noundef %1183) #9
  %1185 = call ptr @__errno_location() #10
  %1186 = load i32, ptr %1185, align 4, !tbaa !5
  %1187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1174, ptr noundef @.str.2, i32 noundef %1175, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 62, ptr noundef %1178, ptr noundef %1181, ptr noundef %1184, i32 noundef %1186) #9
  br label %1205

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

1205:                                             ; preds = %1188, %1171
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %1206

1206:                                             ; preds = %1205
  br label %1207

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

1208:                                             ; No predecessors!
  br label %1209

1209:                                             ; preds = %1208
  br label %1210

1210:                                             ; preds = %1209, %1152
  br label %1211

1211:                                             ; preds = %1210
  br label %1212

1212:                                             ; preds = %1211
  br label %1213

1213:                                             ; preds = %1212
  %1214 = load i32, ptr @test_count, align 4, !tbaa !5
  %1215 = add nsw i32 %1214, 1
  store i32 %1215, ptr @test_count, align 4, !tbaa !5
  %1216 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 3), align 8, !tbaa !18
  %1217 = load ptr, ptr %11, align 8, !tbaa !9
  %1218 = call i32 %1216(ptr noundef %1217, ptr noundef %13)
  %1219 = icmp eq i32 %1218, -1
  br i1 %1219, label %1220, label %1273

1220:                                             ; preds = %1213
  br label %1221

1221:                                             ; preds = %1220
  br label %1222

1222:                                             ; preds = %1221
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %1223 = call ptr @__errno_location() #10
  %1224 = load i32, ptr %1223, align 4, !tbaa !5
  store i32 %1224, ptr %22, align 4, !tbaa !5
  %1225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1226 = call i32 @s2n_print_stacktrace(ptr noundef %1225)
  %1227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1228 = trunc i8 %1227 to i1
  br i1 %1228, label %1229, label %1251

1229:                                             ; preds = %1222
  %1230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1231 = call i32 @fileno(ptr noundef %1230) #9
  %1232 = call i32 @isatty(i32 noundef %1231) #9
  %1233 = icmp ne i32 %1232, 0
  br i1 %1233, label %1234, label %1251

1234:                                             ; preds = %1229
  %1235 = load i32, ptr %22, align 4, !tbaa !5
  %1236 = call ptr @__errno_location() #10
  store i32 %1235, ptr %1236, align 4, !tbaa !5
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = load i32, ptr @test_count, align 4, !tbaa !5
  %1239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call ptr @s2n_strerror(i32 noundef %1240, ptr noundef @.str.4)
  %1242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1243 = load i32, ptr %1242, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror_debug(i32 noundef %1243, ptr noundef @.str.4)
  %1245 = call ptr @__errno_location() #10
  %1246 = load i32, ptr %1245, align 4, !tbaa !5
  %1247 = call ptr @strerror(i32 noundef %1246) #9
  %1248 = call ptr @__errno_location() #10
  %1249 = load i32, ptr %1248, align 4, !tbaa !5
  %1250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1237, ptr noundef @.str.2, i32 noundef %1238, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 64, ptr noundef %1241, ptr noundef %1244, ptr noundef %1247, i32 noundef %1249) #9
  br label %1268

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

1268:                                             ; preds = %1251, %1234
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %1269

1269:                                             ; preds = %1268
  br label %1270

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

1271:                                             ; No predecessors!
  br label %1272

1272:                                             ; preds = %1271
  br label %1273

1273:                                             ; preds = %1272, %1213
  br label %1274

1274:                                             ; preds = %1273
  br label %1275

1275:                                             ; preds = %1274
  call void @llvm.lifetime.start.p0(i64 2, ptr %23) #9
  store i16 0, ptr %23, align 2, !tbaa !19
  br label %1276

1276:                                             ; preds = %1275
  %1277 = load i32, ptr @test_count, align 4, !tbaa !5
  %1278 = add nsw i32 %1277, 1
  store i32 %1278, ptr @test_count, align 4, !tbaa !5
  %1279 = call i32 @s2n_stuffer_read_uint16(ptr noundef %13, ptr noundef %23)
  %1280 = icmp eq i32 %1279, -1
  br i1 %1280, label %1281, label %1334

1281:                                             ; preds = %1276
  br label %1282

1282:                                             ; preds = %1281
  br label %1283

1283:                                             ; preds = %1282
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %1284 = call ptr @__errno_location() #10
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  store i32 %1285, ptr %24, align 4, !tbaa !5
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = call i32 @s2n_print_stacktrace(ptr noundef %1286)
  %1288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1289 = trunc i8 %1288 to i1
  br i1 %1289, label %1290, label %1312

1290:                                             ; preds = %1283
  %1291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1292 = call i32 @fileno(ptr noundef %1291) #9
  %1293 = call i32 @isatty(i32 noundef %1292) #9
  %1294 = icmp ne i32 %1293, 0
  br i1 %1294, label %1295, label %1312

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

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

1329:                                             ; preds = %1312, %1295
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %1330

1330:                                             ; preds = %1329
  br label %1331

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

1332:                                             ; No predecessors!
  br label %1333

1333:                                             ; preds = %1332
  br label %1334

1334:                                             ; preds = %1333, %1276
  br label %1335

1335:                                             ; preds = %1334
  br label %1336

1336:                                             ; preds = %1335
  br label %1337

1337:                                             ; preds = %1336
  %1338 = load i32, ptr @test_count, align 4, !tbaa !5
  %1339 = add nsw i32 %1338, 1
  store i32 %1339, ptr @test_count, align 4, !tbaa !5
  %1340 = load i16, ptr %23, align 2, !tbaa !19
  %1341 = zext i16 %1340 to i32
  %1342 = getelementptr inbounds %struct.s2n_stuffer, ptr %13, i32 0, i32 2
  %1343 = load i32, ptr %1342, align 4, !tbaa !20
  %1344 = getelementptr inbounds %struct.s2n_stuffer, ptr %13, i32 0, i32 1
  %1345 = load i32, ptr %1344, align 8, !tbaa !23
  %1346 = sub i32 %1343, %1345
  %1347 = icmp eq i32 %1341, %1346
  br i1 %1347, label %1401, label %1348

1348:                                             ; preds = %1337
  br label %1349

1349:                                             ; preds = %1348
  br label %1350

1350:                                             ; preds = %1349
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  %1351 = call ptr @__errno_location() #10
  %1352 = load i32, ptr %1351, align 4, !tbaa !5
  store i32 %1352, ptr %25, align 4, !tbaa !5
  %1353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1354 = call i32 @s2n_print_stacktrace(ptr noundef %1353)
  %1355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1356 = trunc i8 %1355 to i1
  br i1 %1356, label %1357, label %1379

1357:                                             ; preds = %1350
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = call i32 @fileno(ptr noundef %1358) #9
  %1360 = call i32 @isatty(i32 noundef %1359) #9
  %1361 = icmp ne i32 %1360, 0
  br i1 %1361, label %1362, label %1379

1362:                                             ; preds = %1357
  %1363 = load i32, ptr %25, align 4, !tbaa !5
  %1364 = call ptr @__errno_location() #10
  store i32 %1363, ptr %1364, align 4, !tbaa !5
  %1365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1366 = load i32, ptr @test_count, align 4, !tbaa !5
  %1367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call ptr @s2n_strerror(i32 noundef %1368, ptr noundef @.str.4)
  %1370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  %1372 = call ptr @s2n_strerror_debug(i32 noundef %1371, ptr noundef @.str.4)
  %1373 = call ptr @__errno_location() #10
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  %1375 = call ptr @strerror(i32 noundef %1374) #9
  %1376 = call ptr @__errno_location() #10
  %1377 = load i32, ptr %1376, align 4, !tbaa !5
  %1378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1365, ptr noundef @.str.2, i32 noundef %1366, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1369, ptr noundef %1372, ptr noundef %1375, i32 noundef %1377) #9
  br label %1396

1379:                                             ; preds = %1357, %1350
  %1380 = load i32, ptr %25, align 4, !tbaa !5
  %1381 = call ptr @__errno_location() #10
  store i32 %1380, ptr %1381, align 4, !tbaa !5
  %1382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1383 = load i32, ptr @test_count, align 4, !tbaa !5
  %1384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1385 = load i32, ptr %1384, align 4, !tbaa !5
  %1386 = call ptr @s2n_strerror(i32 noundef %1385, ptr noundef @.str.4)
  %1387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1388 = load i32, ptr %1387, align 4, !tbaa !5
  %1389 = call ptr @s2n_strerror_debug(i32 noundef %1388, ptr noundef @.str.4)
  %1390 = call ptr @__errno_location() #10
  %1391 = load i32, ptr %1390, align 4, !tbaa !5
  %1392 = call ptr @strerror(i32 noundef %1391) #9
  %1393 = call ptr @__errno_location() #10
  %1394 = load i32, ptr %1393, align 4, !tbaa !5
  %1395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1382, ptr noundef @.str.5, i32 noundef %1383, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1386, ptr noundef %1389, ptr noundef %1392, i32 noundef %1394) #9
  br label %1396

1396:                                             ; preds = %1379, %1362
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %1397

1397:                                             ; preds = %1396
  br label %1398

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

1399:                                             ; No predecessors!
  br label %1400

1400:                                             ; preds = %1399
  br label %1401

1401:                                             ; preds = %1400, %1337
  br label %1402

1402:                                             ; preds = %1401
  br label %1403

1403:                                             ; preds = %1402
  br label %1404

1404:                                             ; preds = %1403
  %1405 = load i32, ptr @test_count, align 4, !tbaa !5
  %1406 = add nsw i32 %1405, 1
  store i32 %1406, ptr @test_count, align 4, !tbaa !5
  %1407 = load i16, ptr %23, align 2, !tbaa !19
  %1408 = zext i16 %1407 to i64
  %1409 = load ptr, ptr %15, align 8, !tbaa !9
  %1410 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %1409, i32 0, i32 0
  %1411 = load i8, ptr %1410, align 8, !tbaa !24
  %1412 = zext i8 %1411 to i64
  %1413 = mul i64 %1412, 2
  %1414 = icmp eq i64 %1408, %1413
  br i1 %1414, label %1468, label %1415

1415:                                             ; preds = %1404
  br label %1416

1416:                                             ; preds = %1415
  br label %1417

1417:                                             ; preds = %1416
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  %1418 = call ptr @__errno_location() #10
  %1419 = load i32, ptr %1418, align 4, !tbaa !5
  store i32 %1419, ptr %26, align 4, !tbaa !5
  %1420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1421 = call i32 @s2n_print_stacktrace(ptr noundef %1420)
  %1422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1423 = trunc i8 %1422 to i1
  br i1 %1423, label %1424, label %1446

1424:                                             ; preds = %1417
  %1425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1426 = call i32 @fileno(ptr noundef %1425) #9
  %1427 = call i32 @isatty(i32 noundef %1426) #9
  %1428 = icmp ne i32 %1427, 0
  br i1 %1428, label %1429, label %1446

1429:                                             ; preds = %1424
  %1430 = load i32, ptr %26, align 4, !tbaa !5
  %1431 = call ptr @__errno_location() #10
  store i32 %1430, ptr %1431, align 4, !tbaa !5
  %1432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1433 = load i32, ptr @test_count, align 4, !tbaa !5
  %1434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1435 = load i32, ptr %1434, align 4, !tbaa !5
  %1436 = call ptr @s2n_strerror(i32 noundef %1435, ptr noundef @.str.4)
  %1437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1438 = load i32, ptr %1437, align 4, !tbaa !5
  %1439 = call ptr @s2n_strerror_debug(i32 noundef %1438, ptr noundef @.str.4)
  %1440 = call ptr @__errno_location() #10
  %1441 = load i32, ptr %1440, align 4, !tbaa !5
  %1442 = call ptr @strerror(i32 noundef %1441) #9
  %1443 = call ptr @__errno_location() #10
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1432, ptr noundef @.str.2, i32 noundef %1433, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1436, ptr noundef %1439, ptr noundef %1442, i32 noundef %1444) #9
  br label %1463

1446:                                             ; preds = %1424, %1417
  %1447 = load i32, ptr %26, align 4, !tbaa !5
  %1448 = call ptr @__errno_location() #10
  store i32 %1447, ptr %1448, align 4, !tbaa !5
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = load i32, ptr @test_count, align 4, !tbaa !5
  %1451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1452 = load i32, ptr %1451, align 4, !tbaa !5
  %1453 = call ptr @s2n_strerror(i32 noundef %1452, ptr noundef @.str.4)
  %1454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1455 = load i32, ptr %1454, align 4, !tbaa !5
  %1456 = call ptr @s2n_strerror_debug(i32 noundef %1455, ptr noundef @.str.4)
  %1457 = call ptr @__errno_location() #10
  %1458 = load i32, ptr %1457, align 4, !tbaa !5
  %1459 = call ptr @strerror(i32 noundef %1458) #9
  %1460 = call ptr @__errno_location() #10
  %1461 = load i32, ptr %1460, align 4, !tbaa !5
  %1462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1449, ptr noundef @.str.5, i32 noundef %1450, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1453, ptr noundef %1456, ptr noundef %1459, i32 noundef %1461) #9
  br label %1463

1463:                                             ; preds = %1446, %1429
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %1464

1464:                                             ; preds = %1463
  br label %1465

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

1466:                                             ; No predecessors!
  br label %1467

1467:                                             ; preds = %1466
  br label %1468

1468:                                             ; preds = %1467, %1404
  br label %1469

1469:                                             ; preds = %1468
  br label %1470

1470:                                             ; preds = %1469
  call void @llvm.lifetime.start.p0(i64 2, ptr %27) #9
  store i16 0, ptr %27, align 2, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  store i64 0, ptr %28, align 8, !tbaa !26
  br label %1471

1471:                                             ; preds = %1612, %1470
  %1472 = load i64, ptr %28, align 8, !tbaa !26
  %1473 = load ptr, ptr %15, align 8, !tbaa !9
  %1474 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %1473, i32 0, i32 0
  %1475 = load i8, ptr %1474, align 8, !tbaa !24
  %1476 = zext i8 %1475 to i64
  %1477 = icmp ult i64 %1472, %1476
  br i1 %1477, label %1479, label %1478

1478:                                             ; preds = %1471
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  br label %1615

1479:                                             ; preds = %1471
  br label %1480

1480:                                             ; preds = %1479
  %1481 = load i32, ptr @test_count, align 4, !tbaa !5
  %1482 = add nsw i32 %1481, 1
  store i32 %1482, ptr @test_count, align 4, !tbaa !5
  %1483 = call i32 @s2n_stuffer_read_uint16(ptr noundef %13, ptr noundef %27)
  %1484 = icmp eq i32 %1483, -1
  br i1 %1484, label %1485, label %1538

1485:                                             ; preds = %1480
  br label %1486

1486:                                             ; preds = %1485
  br label %1487

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

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

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

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

1533:                                             ; preds = %1516, %1499
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1534

1534:                                             ; preds = %1533
  br label %1535

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

1536:                                             ; No predecessors!
  br label %1537

1537:                                             ; preds = %1536
  br label %1538

1538:                                             ; preds = %1537, %1480
  br label %1539

1539:                                             ; preds = %1538
  br label %1540

1540:                                             ; preds = %1539
  br label %1541

1541:                                             ; preds = %1540
  %1542 = load i32, ptr @test_count, align 4, !tbaa !5
  %1543 = add nsw i32 %1542, 1
  store i32 %1543, ptr @test_count, align 4, !tbaa !5
  %1544 = load i16, ptr %27, align 2, !tbaa !19
  %1545 = zext i16 %1544 to i32
  %1546 = load ptr, ptr %15, align 8, !tbaa !9
  %1547 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %1546, i32 0, i32 1
  %1548 = load ptr, ptr %1547, align 8, !tbaa !28
  %1549 = load i64, ptr %28, align 8, !tbaa !26
  %1550 = getelementptr inbounds ptr, ptr %1548, i64 %1549
  %1551 = load ptr, ptr %1550, align 8, !tbaa !9
  %1552 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %1551, i32 0, i32 0
  %1553 = load i16, ptr %1552, align 8, !tbaa !29
  %1554 = zext i16 %1553 to i32
  %1555 = icmp eq i32 %1545, %1554
  br i1 %1555, label %1609, label %1556

1556:                                             ; preds = %1541
  br label %1557

1557:                                             ; preds = %1556
  br label %1558

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

1565:                                             ; preds = %1558
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = call i32 @fileno(ptr noundef %1566) #9
  %1568 = call i32 @isatty(i32 noundef %1567) #9
  %1569 = icmp ne i32 %1568, 0
  br i1 %1569, label %1570, label %1587

1570:                                             ; preds = %1565
  %1571 = load i32, ptr %30, align 4, !tbaa !5
  %1572 = call ptr @__errno_location() #10
  store i32 %1571, ptr %1572, align 4, !tbaa !5
  %1573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1574 = load i32, ptr @test_count, align 4, !tbaa !5
  %1575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call ptr @s2n_strerror(i32 noundef %1576, ptr noundef @.str.4)
  %1578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call ptr @s2n_strerror_debug(i32 noundef %1579, ptr noundef @.str.4)
  %1581 = call ptr @__errno_location() #10
  %1582 = load i32, ptr %1581, align 4, !tbaa !5
  %1583 = call ptr @strerror(i32 noundef %1582) #9
  %1584 = call ptr @__errno_location() #10
  %1585 = load i32, ptr %1584, align 4, !tbaa !5
  %1586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1573, ptr noundef @.str.2, i32 noundef %1574, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1577, ptr noundef %1580, ptr noundef %1583, i32 noundef %1585) #9
  br label %1604

1587:                                             ; preds = %1565, %1558
  %1588 = load i32, ptr %30, align 4, !tbaa !5
  %1589 = call ptr @__errno_location() #10
  store i32 %1588, ptr %1589, align 4, !tbaa !5
  %1590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1591 = load i32, ptr @test_count, align 4, !tbaa !5
  %1592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  %1594 = call ptr @s2n_strerror(i32 noundef %1593, ptr noundef @.str.4)
  %1595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1596 = load i32, ptr %1595, align 4, !tbaa !5
  %1597 = call ptr @s2n_strerror_debug(i32 noundef %1596, ptr noundef @.str.4)
  %1598 = call ptr @__errno_location() #10
  %1599 = load i32, ptr %1598, align 4, !tbaa !5
  %1600 = call ptr @strerror(i32 noundef %1599) #9
  %1601 = call ptr @__errno_location() #10
  %1602 = load i32, ptr %1601, align 4, !tbaa !5
  %1603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1590, ptr noundef @.str.5, i32 noundef %1591, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1594, ptr noundef %1597, ptr noundef %1600, i32 noundef %1602) #9
  br label %1604

1604:                                             ; preds = %1587, %1570
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1605

1605:                                             ; preds = %1604
  br label %1606

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

1607:                                             ; No predecessors!
  br label %1608

1608:                                             ; preds = %1607
  br label %1609

1609:                                             ; preds = %1608, %1541
  br label %1610

1610:                                             ; preds = %1609
  br label %1611

1611:                                             ; preds = %1610
  br label %1612

1612:                                             ; preds = %1611
  %1613 = load i64, ptr %28, align 8, !tbaa !26
  %1614 = add i64 %1613, 1
  store i64 %1614, ptr %28, align 8, !tbaa !26
  br label %1471, !llvm.loop !31

1615:                                             ; preds = %1478
  br label %1616

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

1621:                                             ; preds = %1616
  br label %1622

1622:                                             ; preds = %1621
  br label %1623

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

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

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

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

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

1670:                                             ; preds = %1669
  br label %1671

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

1672:                                             ; No predecessors!
  br label %1673

1673:                                             ; preds = %1672
  br label %1674

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

1675:                                             ; preds = %1674
  br label %1676

1676:                                             ; preds = %1675
  br label %1677

1677:                                             ; preds = %1676
  %1678 = load i32, ptr @test_count, align 4, !tbaa !5
  %1679 = add nsw i32 %1678, 1
  store i32 %1679, ptr @test_count, align 4, !tbaa !5
  %1680 = load ptr, ptr %11, align 8, !tbaa !9
  %1681 = call i32 @s2n_connection_free(ptr noundef %1680)
  %1682 = icmp eq i32 %1681, -1
  br i1 %1682, label %1683, label %1736

1683:                                             ; preds = %1677
  br label %1684

1684:                                             ; preds = %1683
  br label %1685

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

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

1697:                                             ; preds = %1692
  %1698 = load i32, ptr %32, align 4, !tbaa !5
  %1699 = call ptr @__errno_location() #10
  store i32 %1698, ptr %1699, align 4, !tbaa !5
  %1700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1701 = load i32, ptr @test_count, align 4, !tbaa !5
  %1702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1703 = load i32, ptr %1702, align 4, !tbaa !5
  %1704 = call ptr @s2n_strerror(i32 noundef %1703, ptr noundef @.str.4)
  %1705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1706 = load i32, ptr %1705, align 4, !tbaa !5
  %1707 = call ptr @s2n_strerror_debug(i32 noundef %1706, ptr noundef @.str.4)
  %1708 = call ptr @__errno_location() #10
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = call ptr @strerror(i32 noundef %1709) #9
  %1711 = call ptr @__errno_location() #10
  %1712 = load i32, ptr %1711, align 4, !tbaa !5
  %1713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1700, ptr noundef @.str.2, i32 noundef %1701, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1704, ptr noundef %1707, ptr noundef %1710, i32 noundef %1712) #9
  br label %1731

1714:                                             ; preds = %1692, %1685
  %1715 = load i32, ptr %32, align 4, !tbaa !5
  %1716 = call ptr @__errno_location() #10
  store i32 %1715, ptr %1716, align 4, !tbaa !5
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = load i32, ptr @test_count, align 4, !tbaa !5
  %1719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1720 = load i32, ptr %1719, align 4, !tbaa !5
  %1721 = call ptr @s2n_strerror(i32 noundef %1720, ptr noundef @.str.4)
  %1722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  %1724 = call ptr @s2n_strerror_debug(i32 noundef %1723, ptr noundef @.str.4)
  %1725 = call ptr @__errno_location() #10
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  %1727 = call ptr @strerror(i32 noundef %1726) #9
  %1728 = call ptr @__errno_location() #10
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1717, ptr noundef @.str.5, i32 noundef %1718, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1721, ptr noundef %1724, ptr noundef %1727, i32 noundef %1729) #9
  br label %1731

1731:                                             ; preds = %1714, %1697
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %1732

1732:                                             ; preds = %1731
  br label %1733

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

1734:                                             ; No predecessors!
  br label %1735

1735:                                             ; preds = %1734
  br label %1736

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

1737:                                             ; preds = %1736
  br label %1738

1738:                                             ; preds = %1737
  call void @llvm.lifetime.end.p0(i64 2, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 2, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %33) #9
  call void @llvm.memset.p0.i64(ptr align 8 %33, i8 0, i64 40, i1 false)
  %1739 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %33, i32 0, i32 0
  %1740 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %33, i32 0, i32 1
  %1741 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %33, i32 0, i32 2
  %1742 = load i8, ptr getelementptr inbounds (%struct.s2n_kem_preferences, ptr @kem_preferences_all, i32 0, i32 2), align 8, !tbaa !33
  store i8 %1742, ptr %1741, align 8, !tbaa !33
  %1743 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %33, i32 0, i32 3
  %1744 = load ptr, ptr getelementptr inbounds (%struct.s2n_kem_preferences, ptr @kem_preferences_all, i32 0, i32 3), align 8, !tbaa !35
  store ptr %1744, ptr %1743, align 8, !tbaa !35
  %1745 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %33, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 64, ptr %34) #9
  %1746 = getelementptr inbounds %struct.s2n_security_policy, ptr %34, i32 0, i32 0
  store i8 30, ptr %1746, align 8, !tbaa !36
  %1747 = getelementptr inbounds %struct.s2n_security_policy, ptr %34, i32 0, i32 1
  store ptr @cipher_preferences_test_all_tls13, ptr %1747, align 8, !tbaa !38
  %1748 = getelementptr inbounds %struct.s2n_security_policy, ptr %34, i32 0, i32 2
  store ptr %33, ptr %1748, align 8, !tbaa !39
  %1749 = getelementptr inbounds %struct.s2n_security_policy, ptr %34, i32 0, i32 3
  store ptr @s2n_signature_preferences_20200207, ptr %1749, align 8, !tbaa !40
  %1750 = getelementptr inbounds %struct.s2n_security_policy, ptr %34, i32 0, i32 4
  store ptr null, ptr %1750, align 8, !tbaa !41
  %1751 = getelementptr inbounds %struct.s2n_security_policy, ptr %34, i32 0, i32 5
  store ptr @s2n_ecc_preferences_20200310, ptr %1751, align 8, !tbaa !42
  %1752 = getelementptr inbounds %struct.s2n_security_policy, ptr %34, i32 0, i32 6
  store ptr null, ptr %1752, align 8, !tbaa !43
  %1753 = getelementptr inbounds %struct.s2n_security_policy, ptr %34, i32 0, i32 7
  store i8 0, ptr %1753, align 8, !tbaa !44
  %1754 = getelementptr inbounds %struct.s2n_security_policy, ptr %34, i32 0, i32 8
  call void @llvm.memset.p0.i64(ptr align 1 %1754, i8 0, i64 2, i1 false)
  br label %1755

1755:                                             ; preds = %1738
  %1756 = load i32, ptr @test_count, align 4, !tbaa !5
  %1757 = add nsw i32 %1756, 1
  store i32 %1757, ptr @test_count, align 4, !tbaa !5
  %1758 = call i32 (...) @s2n_enable_tls13_in_test()
  %1759 = icmp eq i32 %1758, -1
  br i1 %1759, label %1760, label %1813

1760:                                             ; preds = %1755
  br label %1761

1761:                                             ; preds = %1760
  br label %1762

1762:                                             ; preds = %1761
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %1763 = call ptr @__errno_location() #10
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  store i32 %1764, ptr %35, align 4, !tbaa !5
  %1765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1766 = call i32 @s2n_print_stacktrace(ptr noundef %1765)
  %1767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1768 = trunc i8 %1767 to i1
  br i1 %1768, label %1769, label %1791

1769:                                             ; preds = %1762
  %1770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1771 = call i32 @fileno(ptr noundef %1770) #9
  %1772 = call i32 @isatty(i32 noundef %1771) #9
  %1773 = icmp ne i32 %1772, 0
  br i1 %1773, label %1774, label %1791

1774:                                             ; preds = %1769
  %1775 = load i32, ptr %35, align 4, !tbaa !5
  %1776 = call ptr @__errno_location() #10
  store i32 %1775, ptr %1776, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = load i32, ptr @test_count, align 4, !tbaa !5
  %1779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1780 = load i32, ptr %1779, align 4, !tbaa !5
  %1781 = call ptr @s2n_strerror(i32 noundef %1780, ptr noundef @.str.4)
  %1782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1783 = load i32, ptr %1782, align 4, !tbaa !5
  %1784 = call ptr @s2n_strerror_debug(i32 noundef %1783, ptr noundef @.str.4)
  %1785 = call ptr @__errno_location() #10
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = call ptr @strerror(i32 noundef %1786) #9
  %1788 = call ptr @__errno_location() #10
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1777, ptr noundef @.str.2, i32 noundef %1778, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1781, ptr noundef %1784, ptr noundef %1787, i32 noundef %1789) #9
  br label %1808

1791:                                             ; preds = %1769, %1762
  %1792 = load i32, ptr %35, align 4, !tbaa !5
  %1793 = call ptr @__errno_location() #10
  store i32 %1792, ptr %1793, align 4, !tbaa !5
  %1794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1795 = load i32, ptr @test_count, align 4, !tbaa !5
  %1796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1797 = load i32, ptr %1796, align 4, !tbaa !5
  %1798 = call ptr @s2n_strerror(i32 noundef %1797, ptr noundef @.str.4)
  %1799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1800 = load i32, ptr %1799, align 4, !tbaa !5
  %1801 = call ptr @s2n_strerror_debug(i32 noundef %1800, ptr noundef @.str.4)
  %1802 = call ptr @__errno_location() #10
  %1803 = load i32, ptr %1802, align 4, !tbaa !5
  %1804 = call ptr @strerror(i32 noundef %1803) #9
  %1805 = call ptr @__errno_location() #10
  %1806 = load i32, ptr %1805, align 4, !tbaa !5
  %1807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1794, ptr noundef @.str.5, i32 noundef %1795, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1798, ptr noundef %1801, ptr noundef %1804, i32 noundef %1806) #9
  br label %1808

1808:                                             ; preds = %1791, %1774
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %1809

1809:                                             ; preds = %1808
  br label %1810

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

1811:                                             ; No predecessors!
  br label %1812

1812:                                             ; preds = %1811
  br label %1813

1813:                                             ; preds = %1812, %1755
  br label %1814

1814:                                             ; preds = %1813
  br label %1815

1815:                                             ; preds = %1814
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  store ptr null, ptr %36, align 8, !tbaa !9
  br label %1816

1816:                                             ; preds = %1815
  %1817 = load i32, ptr @test_count, align 4, !tbaa !5
  %1818 = add nsw i32 %1817, 1
  store i32 %1818, ptr @test_count, align 4, !tbaa !5
  %1819 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1819, ptr %36, align 8, !tbaa !9
  %1820 = icmp eq ptr %1819, null
  br i1 %1820, label %1821, label %1874

1821:                                             ; preds = %1816
  br label %1822

1822:                                             ; preds = %1821
  br label %1823

1823:                                             ; preds = %1822
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %1824 = call ptr @__errno_location() #10
  %1825 = load i32, ptr %1824, align 4, !tbaa !5
  store i32 %1825, ptr %37, align 4, !tbaa !5
  %1826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1827 = call i32 @s2n_print_stacktrace(ptr noundef %1826)
  %1828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1829 = trunc i8 %1828 to i1
  br i1 %1829, label %1830, label %1852

1830:                                             ; preds = %1823
  %1831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1832 = call i32 @fileno(ptr noundef %1831) #9
  %1833 = call i32 @isatty(i32 noundef %1832) #9
  %1834 = icmp ne i32 %1833, 0
  br i1 %1834, label %1835, label %1852

1835:                                             ; preds = %1830
  %1836 = load i32, ptr %37, align 4, !tbaa !5
  %1837 = call ptr @__errno_location() #10
  store i32 %1836, ptr %1837, align 4, !tbaa !5
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = load i32, ptr @test_count, align 4, !tbaa !5
  %1840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1841 = load i32, ptr %1840, align 4, !tbaa !5
  %1842 = call ptr @s2n_strerror(i32 noundef %1841, ptr noundef @.str.4)
  %1843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1844 = load i32, ptr %1843, align 4, !tbaa !5
  %1845 = call ptr @s2n_strerror_debug(i32 noundef %1844, ptr noundef @.str.4)
  %1846 = call ptr @__errno_location() #10
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = call ptr @strerror(i32 noundef %1847) #9
  %1849 = call ptr @__errno_location() #10
  %1850 = load i32, ptr %1849, align 4, !tbaa !5
  %1851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1838, ptr noundef @.str.2, i32 noundef %1839, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1842, ptr noundef %1845, ptr noundef %1848, i32 noundef %1850) #9
  br label %1869

1852:                                             ; preds = %1830, %1823
  %1853 = load i32, ptr %37, align 4, !tbaa !5
  %1854 = call ptr @__errno_location() #10
  store i32 %1853, ptr %1854, align 4, !tbaa !5
  %1855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1856 = load i32, ptr @test_count, align 4, !tbaa !5
  %1857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1858 = load i32, ptr %1857, align 4, !tbaa !5
  %1859 = call ptr @s2n_strerror(i32 noundef %1858, ptr noundef @.str.4)
  %1860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call ptr @s2n_strerror_debug(i32 noundef %1861, ptr noundef @.str.4)
  %1863 = call ptr @__errno_location() #10
  %1864 = load i32, ptr %1863, align 4, !tbaa !5
  %1865 = call ptr @strerror(i32 noundef %1864) #9
  %1866 = call ptr @__errno_location() #10
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  %1868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1855, ptr noundef @.str.5, i32 noundef %1856, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1859, ptr noundef %1862, ptr noundef %1865, i32 noundef %1867) #9
  br label %1869

1869:                                             ; preds = %1852, %1835
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1870

1870:                                             ; preds = %1869
  br label %1871

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

1872:                                             ; No predecessors!
  br label %1873

1873:                                             ; preds = %1872
  br label %1874

1874:                                             ; preds = %1873, %1816
  br label %1875

1875:                                             ; preds = %1874
  br label %1876

1876:                                             ; preds = %1875
  call void @llvm.lifetime.start.p0(i64 40, ptr %38) #9
  call void @llvm.memset.p0.i64(ptr align 8 %38, i8 0, i64 40, i1 false)
  br label %1877

1877:                                             ; preds = %1876
  %1878 = load i32, ptr @test_count, align 4, !tbaa !5
  %1879 = add nsw i32 %1878, 1
  store i32 %1879, ptr @test_count, align 4, !tbaa !5
  %1880 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %38, i32 noundef 0)
  %1881 = icmp eq i32 %1880, -1
  br i1 %1881, label %1882, label %1935

1882:                                             ; preds = %1877
  br label %1883

1883:                                             ; preds = %1882
  br label %1884

1884:                                             ; preds = %1883
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %1885 = call ptr @__errno_location() #10
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  store i32 %1886, ptr %39, align 4, !tbaa !5
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = call i32 @s2n_print_stacktrace(ptr noundef %1887)
  %1889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1890 = trunc i8 %1889 to i1
  br i1 %1890, label %1891, label %1913

1891:                                             ; preds = %1884
  %1892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1893 = call i32 @fileno(ptr noundef %1892) #9
  %1894 = call i32 @isatty(i32 noundef %1893) #9
  %1895 = icmp ne i32 %1894, 0
  br i1 %1895, label %1896, label %1913

1896:                                             ; preds = %1891
  %1897 = load i32, ptr %39, align 4, !tbaa !5
  %1898 = call ptr @__errno_location() #10
  store i32 %1897, ptr %1898, align 4, !tbaa !5
  %1899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1900 = load i32, ptr @test_count, align 4, !tbaa !5
  %1901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1902 = load i32, ptr %1901, align 4, !tbaa !5
  %1903 = call ptr @s2n_strerror(i32 noundef %1902, ptr noundef @.str.4)
  %1904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  %1906 = call ptr @s2n_strerror_debug(i32 noundef %1905, ptr noundef @.str.4)
  %1907 = call ptr @__errno_location() #10
  %1908 = load i32, ptr %1907, align 4, !tbaa !5
  %1909 = call ptr @strerror(i32 noundef %1908) #9
  %1910 = call ptr @__errno_location() #10
  %1911 = load i32, ptr %1910, align 4, !tbaa !5
  %1912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1899, ptr noundef @.str.2, i32 noundef %1900, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 106, ptr noundef %1903, ptr noundef %1906, ptr noundef %1909, i32 noundef %1911) #9
  br label %1930

1913:                                             ; preds = %1891, %1884
  %1914 = load i32, ptr %39, align 4, !tbaa !5
  %1915 = call ptr @__errno_location() #10
  store i32 %1914, ptr %1915, align 4, !tbaa !5
  %1916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1919 = load i32, ptr %1918, align 4, !tbaa !5
  %1920 = call ptr @s2n_strerror(i32 noundef %1919, ptr noundef @.str.4)
  %1921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1922 = load i32, ptr %1921, align 4, !tbaa !5
  %1923 = call ptr @s2n_strerror_debug(i32 noundef %1922, ptr noundef @.str.4)
  %1924 = call ptr @__errno_location() #10
  %1925 = load i32, ptr %1924, align 4, !tbaa !5
  %1926 = call ptr @strerror(i32 noundef %1925) #9
  %1927 = call ptr @__errno_location() #10
  %1928 = load i32, ptr %1927, align 4, !tbaa !5
  %1929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1916, ptr noundef @.str.5, i32 noundef %1917, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 106, ptr noundef %1920, ptr noundef %1923, ptr noundef %1926, i32 noundef %1928) #9
  br label %1930

1930:                                             ; preds = %1913, %1896
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1931

1931:                                             ; preds = %1930
  br label %1932

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

1933:                                             ; No predecessors!
  br label %1934

1934:                                             ; preds = %1933
  br label %1935

1935:                                             ; preds = %1934, %1877
  br label %1936

1936:                                             ; preds = %1935
  br label %1937

1937:                                             ; preds = %1936
  %1938 = load ptr, ptr %36, align 8, !tbaa !9
  %1939 = getelementptr inbounds %struct.s2n_connection, ptr %1938, i32 0, i32 2
  store ptr %34, ptr %1939, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  store ptr null, ptr %40, align 8, !tbaa !9
  br label %1940

1940:                                             ; preds = %1937
  %1941 = load i32, ptr @test_count, align 4, !tbaa !5
  %1942 = add nsw i32 %1941, 1
  store i32 %1942, ptr @test_count, align 4, !tbaa !5
  %1943 = load ptr, ptr %36, align 8, !tbaa !9
  %1944 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %1943, ptr noundef %40)
  %1945 = icmp eq i32 %1944, -1
  br i1 %1945, label %1946, label %1999

1946:                                             ; preds = %1940
  br label %1947

1947:                                             ; preds = %1946
  br label %1948

1948:                                             ; preds = %1947
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %1949 = call ptr @__errno_location() #10
  %1950 = load i32, ptr %1949, align 4, !tbaa !5
  store i32 %1950, ptr %41, align 4, !tbaa !5
  %1951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1952 = call i32 @s2n_print_stacktrace(ptr noundef %1951)
  %1953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1954 = trunc i8 %1953 to i1
  br i1 %1954, label %1955, label %1977

1955:                                             ; preds = %1948
  %1956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1957 = call i32 @fileno(ptr noundef %1956) #9
  %1958 = call i32 @isatty(i32 noundef %1957) #9
  %1959 = icmp ne i32 %1958, 0
  br i1 %1959, label %1960, label %1977

1960:                                             ; preds = %1955
  %1961 = load i32, ptr %41, align 4, !tbaa !5
  %1962 = call ptr @__errno_location() #10
  store i32 %1961, ptr %1962, align 4, !tbaa !5
  %1963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1964 = load i32, ptr @test_count, align 4, !tbaa !5
  %1965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1966 = load i32, ptr %1965, align 4, !tbaa !5
  %1967 = call ptr @s2n_strerror(i32 noundef %1966, ptr noundef @.str.4)
  %1968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = call ptr @s2n_strerror_debug(i32 noundef %1969, ptr noundef @.str.4)
  %1971 = call ptr @__errno_location() #10
  %1972 = load i32, ptr %1971, align 4, !tbaa !5
  %1973 = call ptr @strerror(i32 noundef %1972) #9
  %1974 = call ptr @__errno_location() #10
  %1975 = load i32, ptr %1974, align 4, !tbaa !5
  %1976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1963, ptr noundef @.str.2, i32 noundef %1964, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1967, ptr noundef %1970, ptr noundef %1973, i32 noundef %1975) #9
  br label %1994

1977:                                             ; preds = %1955, %1948
  %1978 = load i32, ptr %41, align 4, !tbaa !5
  %1979 = call ptr @__errno_location() #10
  store i32 %1978, ptr %1979, align 4, !tbaa !5
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = load i32, ptr @test_count, align 4, !tbaa !5
  %1982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  %1984 = call ptr @s2n_strerror(i32 noundef %1983, ptr noundef @.str.4)
  %1985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1986 = load i32, ptr %1985, align 4, !tbaa !5
  %1987 = call ptr @s2n_strerror_debug(i32 noundef %1986, ptr noundef @.str.4)
  %1988 = call ptr @__errno_location() #10
  %1989 = load i32, ptr %1988, align 4, !tbaa !5
  %1990 = call ptr @strerror(i32 noundef %1989) #9
  %1991 = call ptr @__errno_location() #10
  %1992 = load i32, ptr %1991, align 4, !tbaa !5
  %1993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1980, ptr noundef @.str.5, i32 noundef %1981, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1984, ptr noundef %1987, ptr noundef %1990, i32 noundef %1992) #9
  br label %1994

1994:                                             ; preds = %1977, %1960
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1995

1995:                                             ; preds = %1994
  br label %1996

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

1997:                                             ; No predecessors!
  br label %1998

1998:                                             ; preds = %1997
  br label %1999

1999:                                             ; preds = %1998, %1940
  br label %2000

2000:                                             ; preds = %1999
  br label %2001

2001:                                             ; preds = %2000
  br label %2002

2002:                                             ; preds = %2001
  %2003 = load i32, ptr @test_count, align 4, !tbaa !5
  %2004 = add nsw i32 %2003, 1
  store i32 %2004, ptr @test_count, align 4, !tbaa !5
  %2005 = load ptr, ptr %40, align 8, !tbaa !9
  %2006 = icmp eq ptr %2005, null
  br i1 %2006, label %2007, label %2060

2007:                                             ; preds = %2002
  br label %2008

2008:                                             ; preds = %2007
  br label %2009

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

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

2021:                                             ; preds = %2016
  %2022 = load i32, ptr %42, align 4, !tbaa !5
  %2023 = call ptr @__errno_location() #10
  store i32 %2022, ptr %2023, align 4, !tbaa !5
  %2024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2025 = load i32, ptr @test_count, align 4, !tbaa !5
  %2026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2027 = load i32, ptr %2026, align 4, !tbaa !5
  %2028 = call ptr @s2n_strerror(i32 noundef %2027, ptr noundef @.str.4)
  %2029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2030 = load i32, ptr %2029, align 4, !tbaa !5
  %2031 = call ptr @s2n_strerror_debug(i32 noundef %2030, ptr noundef @.str.4)
  %2032 = call ptr @__errno_location() #10
  %2033 = load i32, ptr %2032, align 4, !tbaa !5
  %2034 = call ptr @strerror(i32 noundef %2033) #9
  %2035 = call ptr @__errno_location() #10
  %2036 = load i32, ptr %2035, align 4, !tbaa !5
  %2037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2024, ptr noundef @.str.2, i32 noundef %2025, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2028, ptr noundef %2031, ptr noundef %2034, i32 noundef %2036) #9
  br label %2055

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

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

2056:                                             ; preds = %2055
  br label %2057

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

2058:                                             ; No predecessors!
  br label %2059

2059:                                             ; preds = %2058
  br label %2060

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

2061:                                             ; preds = %2060
  br label %2062

2062:                                             ; preds = %2061
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  store ptr null, ptr %43, align 8, !tbaa !9
  br label %2063

2063:                                             ; preds = %2062
  %2064 = load i32, ptr @test_count, align 4, !tbaa !5
  %2065 = add nsw i32 %2064, 1
  store i32 %2065, ptr @test_count, align 4, !tbaa !5
  %2066 = load ptr, ptr %36, align 8, !tbaa !9
  %2067 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %2066, ptr noundef %43)
  %2068 = icmp eq i32 %2067, -1
  br i1 %2068, label %2069, label %2122

2069:                                             ; preds = %2063
  br label %2070

2070:                                             ; preds = %2069
  br label %2071

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

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

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

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

2117:                                             ; preds = %2100, %2083
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %2118

2118:                                             ; preds = %2117
  br label %2119

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

2120:                                             ; No predecessors!
  br label %2121

2121:                                             ; preds = %2120
  br label %2122

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

2123:                                             ; preds = %2122
  br label %2124

2124:                                             ; preds = %2123
  br label %2125

2125:                                             ; preds = %2124
  %2126 = load i32, ptr @test_count, align 4, !tbaa !5
  %2127 = add nsw i32 %2126, 1
  store i32 %2127, ptr @test_count, align 4, !tbaa !5
  %2128 = load ptr, ptr %43, align 8, !tbaa !9
  %2129 = icmp eq ptr %2128, null
  br i1 %2129, label %2130, label %2183

2130:                                             ; preds = %2125
  br label %2131

2131:                                             ; preds = %2130
  br label %2132

2132:                                             ; preds = %2131
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  %2133 = call ptr @__errno_location() #10
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  store i32 %2134, ptr %45, align 4, !tbaa !5
  %2135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2136 = call i32 @s2n_print_stacktrace(ptr noundef %2135)
  %2137 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2138 = trunc i8 %2137 to i1
  br i1 %2138, label %2139, label %2161

2139:                                             ; preds = %2132
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = call i32 @fileno(ptr noundef %2140) #9
  %2142 = call i32 @isatty(i32 noundef %2141) #9
  %2143 = icmp ne i32 %2142, 0
  br i1 %2143, label %2144, label %2161

2144:                                             ; preds = %2139
  %2145 = load i32, ptr %45, align 4, !tbaa !5
  %2146 = call ptr @__errno_location() #10
  store i32 %2145, ptr %2146, align 4, !tbaa !5
  %2147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2148 = load i32, ptr @test_count, align 4, !tbaa !5
  %2149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  %2151 = call ptr @s2n_strerror(i32 noundef %2150, ptr noundef @.str.4)
  %2152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2153 = load i32, ptr %2152, align 4, !tbaa !5
  %2154 = call ptr @s2n_strerror_debug(i32 noundef %2153, ptr noundef @.str.4)
  %2155 = call ptr @__errno_location() #10
  %2156 = load i32, ptr %2155, align 4, !tbaa !5
  %2157 = call ptr @strerror(i32 noundef %2156) #9
  %2158 = call ptr @__errno_location() #10
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  %2160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2147, ptr noundef @.str.2, i32 noundef %2148, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2151, ptr noundef %2154, ptr noundef %2157, i32 noundef %2159) #9
  br label %2178

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

2178:                                             ; preds = %2161, %2144
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %2179

2179:                                             ; preds = %2178
  br label %2180

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

2181:                                             ; No predecessors!
  br label %2182

2182:                                             ; preds = %2181
  br label %2183

2183:                                             ; preds = %2182, %2125
  br label %2184

2184:                                             ; preds = %2183
  br label %2185

2185:                                             ; preds = %2184
  br label %2186

2186:                                             ; preds = %2185
  %2187 = load i32, ptr @test_count, align 4, !tbaa !5
  %2188 = add nsw i32 %2187, 1
  store i32 %2188, ptr @test_count, align 4, !tbaa !5
  %2189 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 3), align 8, !tbaa !18
  %2190 = load ptr, ptr %36, align 8, !tbaa !9
  %2191 = call i32 %2189(ptr noundef %2190, ptr noundef %38)
  %2192 = icmp eq i32 %2191, -1
  br i1 %2192, label %2193, label %2246

2193:                                             ; preds = %2186
  br label %2194

2194:                                             ; preds = %2193
  br label %2195

2195:                                             ; preds = %2194
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  %2196 = call ptr @__errno_location() #10
  %2197 = load i32, ptr %2196, align 4, !tbaa !5
  store i32 %2197, ptr %46, align 4, !tbaa !5
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = call i32 @s2n_print_stacktrace(ptr noundef %2198)
  %2200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2201 = trunc i8 %2200 to i1
  br i1 %2201, label %2202, label %2224

2202:                                             ; preds = %2195
  %2203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2204 = call i32 @fileno(ptr noundef %2203) #9
  %2205 = call i32 @isatty(i32 noundef %2204) #9
  %2206 = icmp ne i32 %2205, 0
  br i1 %2206, label %2207, label %2224

2207:                                             ; preds = %2202
  %2208 = load i32, ptr %46, align 4, !tbaa !5
  %2209 = call ptr @__errno_location() #10
  store i32 %2208, ptr %2209, align 4, !tbaa !5
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = load i32, ptr @test_count, align 4, !tbaa !5
  %2212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2213 = load i32, ptr %2212, align 4, !tbaa !5
  %2214 = call ptr @s2n_strerror(i32 noundef %2213, ptr noundef @.str.4)
  %2215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2216 = load i32, ptr %2215, align 4, !tbaa !5
  %2217 = call ptr @s2n_strerror_debug(i32 noundef %2216, ptr noundef @.str.4)
  %2218 = call ptr @__errno_location() #10
  %2219 = load i32, ptr %2218, align 4, !tbaa !5
  %2220 = call ptr @strerror(i32 noundef %2219) #9
  %2221 = call ptr @__errno_location() #10
  %2222 = load i32, ptr %2221, align 4, !tbaa !5
  %2223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2210, ptr noundef @.str.2, i32 noundef %2211, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 117, ptr noundef %2214, ptr noundef %2217, ptr noundef %2220, i32 noundef %2222) #9
  br label %2241

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

2241:                                             ; preds = %2224, %2207
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %2242

2242:                                             ; preds = %2241
  br label %2243

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

2244:                                             ; No predecessors!
  br label %2245

2245:                                             ; preds = %2244
  br label %2246

2246:                                             ; preds = %2245, %2186
  br label %2247

2247:                                             ; preds = %2246
  br label %2248

2248:                                             ; preds = %2247
  call void @llvm.lifetime.start.p0(i64 2, ptr %47) #9
  store i16 0, ptr %47, align 2, !tbaa !19
  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 = call i32 @s2n_stuffer_read_uint16(ptr noundef %38, ptr noundef %47)
  %2253 = icmp eq i32 %2252, -1
  br i1 %2253, label %2254, label %2307

2254:                                             ; preds = %2249
  br label %2255

2255:                                             ; preds = %2254
  br label %2256

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

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

2268:                                             ; preds = %2263
  %2269 = load i32, ptr %48, align 4, !tbaa !5
  %2270 = call ptr @__errno_location() #10
  store i32 %2269, ptr %2270, align 4, !tbaa !5
  %2271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2272 = load i32, ptr @test_count, align 4, !tbaa !5
  %2273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2274 = load i32, ptr %2273, align 4, !tbaa !5
  %2275 = call ptr @s2n_strerror(i32 noundef %2274, ptr noundef @.str.4)
  %2276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2277 = load i32, ptr %2276, align 4, !tbaa !5
  %2278 = call ptr @s2n_strerror_debug(i32 noundef %2277, ptr noundef @.str.4)
  %2279 = call ptr @__errno_location() #10
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = call ptr @strerror(i32 noundef %2280) #9
  %2282 = call ptr @__errno_location() #10
  %2283 = load i32, ptr %2282, align 4, !tbaa !5
  %2284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2271, ptr noundef @.str.2, i32 noundef %2272, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 120, ptr noundef %2275, ptr noundef %2278, ptr noundef %2281, i32 noundef %2283) #9
  br label %2302

2285:                                             ; preds = %2263, %2256
  %2286 = load i32, ptr %48, align 4, !tbaa !5
  %2287 = call ptr @__errno_location() #10
  store i32 %2286, ptr %2287, align 4, !tbaa !5
  %2288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2289 = load i32, ptr @test_count, align 4, !tbaa !5
  %2290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror(i32 noundef %2291, ptr noundef @.str.4)
  %2293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %2295 = call ptr @s2n_strerror_debug(i32 noundef %2294, ptr noundef @.str.4)
  %2296 = call ptr @__errno_location() #10
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  %2298 = call ptr @strerror(i32 noundef %2297) #9
  %2299 = call ptr @__errno_location() #10
  %2300 = load i32, ptr %2299, align 4, !tbaa !5
  %2301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2288, ptr noundef @.str.5, i32 noundef %2289, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 120, ptr noundef %2292, ptr noundef %2295, ptr noundef %2298, i32 noundef %2300) #9
  br label %2302

2302:                                             ; preds = %2285, %2268
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %2303

2303:                                             ; preds = %2302
  br label %2304

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

2305:                                             ; No predecessors!
  br label %2306

2306:                                             ; preds = %2305
  br label %2307

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

2308:                                             ; preds = %2307
  br label %2309

2309:                                             ; preds = %2308
  call void @llvm.lifetime.start.p0(i64 2, ptr %49) #9
  %2310 = load ptr, ptr %40, align 8, !tbaa !9
  %2311 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %2310, i32 0, i32 0
  %2312 = load i8, ptr %2311, align 8, !tbaa !24
  %2313 = zext i8 %2312 to i64
  %2314 = mul i64 %2313, 2
  %2315 = trunc i64 %2314 to i16
  store i16 %2315, ptr %49, align 2, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  store i32 0, ptr %50, align 4, !tbaa !5
  %2316 = call zeroext i1 @s2n_pq_is_enabled()
  br i1 %2316, label %2317, label %2390

2317:                                             ; preds = %2309
  br label %2318

2318:                                             ; preds = %2317
  %2319 = load i32, ptr @test_count, align 4, !tbaa !5
  %2320 = add nsw i32 %2319, 1
  store i32 %2320, ptr @test_count, align 4, !tbaa !5
  %2321 = load ptr, ptr %43, align 8, !tbaa !9
  %2322 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %2321, ptr noundef %50)
  %2323 = getelementptr inbounds %struct.s2n_result, ptr %51, i32 0, i32 0
  store i32 %2322, ptr %2323, align 4
  %2324 = getelementptr inbounds %struct.s2n_result, ptr %51, i32 0, i32 0
  %2325 = load i32, ptr %2324, align 4
  %2326 = call zeroext i1 @s2n_result_is_ok(i32 %2325)
  br i1 %2326, label %2380, label %2327

2327:                                             ; preds = %2318
  br label %2328

2328:                                             ; preds = %2327
  br label %2329

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

2336:                                             ; preds = %2329
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = call i32 @fileno(ptr noundef %2337) #9
  %2339 = call i32 @isatty(i32 noundef %2338) #9
  %2340 = icmp ne i32 %2339, 0
  br i1 %2340, label %2341, label %2358

2341:                                             ; preds = %2336
  %2342 = load i32, ptr %52, align 4, !tbaa !5
  %2343 = call ptr @__errno_location() #10
  store i32 %2342, ptr %2343, align 4, !tbaa !5
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = load i32, ptr @test_count, align 4, !tbaa !5
  %2346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2347 = load i32, ptr %2346, align 4, !tbaa !5
  %2348 = call ptr @s2n_strerror(i32 noundef %2347, ptr noundef @.str.4)
  %2349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2350 = load i32, ptr %2349, align 4, !tbaa !5
  %2351 = call ptr @s2n_strerror_debug(i32 noundef %2350, ptr noundef @.str.4)
  %2352 = call ptr @__errno_location() #10
  %2353 = load i32, ptr %2352, align 4, !tbaa !5
  %2354 = call ptr @strerror(i32 noundef %2353) #9
  %2355 = call ptr @__errno_location() #10
  %2356 = load i32, ptr %2355, align 4, !tbaa !5
  %2357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2344, ptr noundef @.str.2, i32 noundef %2345, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 124, ptr noundef %2348, ptr noundef %2351, ptr noundef %2354, i32 noundef %2356) #9
  br label %2375

2358:                                             ; preds = %2336, %2329
  %2359 = load i32, ptr %52, align 4, !tbaa !5
  %2360 = call ptr @__errno_location() #10
  store i32 %2359, ptr %2360, align 4, !tbaa !5
  %2361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2362 = load i32, ptr @test_count, align 4, !tbaa !5
  %2363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2364 = load i32, ptr %2363, align 4, !tbaa !5
  %2365 = call ptr @s2n_strerror(i32 noundef %2364, ptr noundef @.str.4)
  %2366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2367 = load i32, ptr %2366, align 4, !tbaa !5
  %2368 = call ptr @s2n_strerror_debug(i32 noundef %2367, ptr noundef @.str.4)
  %2369 = call ptr @__errno_location() #10
  %2370 = load i32, ptr %2369, align 4, !tbaa !5
  %2371 = call ptr @strerror(i32 noundef %2370) #9
  %2372 = call ptr @__errno_location() #10
  %2373 = load i32, ptr %2372, align 4, !tbaa !5
  %2374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2361, ptr noundef @.str.5, i32 noundef %2362, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 124, ptr noundef %2365, ptr noundef %2368, ptr noundef %2371, i32 noundef %2373) #9
  br label %2375

2375:                                             ; preds = %2358, %2341
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %2376

2376:                                             ; preds = %2375
  br label %2377

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

2378:                                             ; No predecessors!
  br label %2379

2379:                                             ; preds = %2378
  br label %2380

2380:                                             ; preds = %2379, %2318
  br label %2381

2381:                                             ; preds = %2380
  br label %2382

2382:                                             ; preds = %2381
  %2383 = load i32, ptr %50, align 4, !tbaa !5
  %2384 = zext i32 %2383 to i64
  %2385 = mul i64 %2384, 2
  %2386 = load i16, ptr %49, align 2, !tbaa !19
  %2387 = zext i16 %2386 to i64
  %2388 = add i64 %2387, %2385
  %2389 = trunc i64 %2388 to i16
  store i16 %2389, ptr %49, align 2, !tbaa !19
  br label %2390

2390:                                             ; preds = %2382, %2309
  br label %2391

2391:                                             ; preds = %2390
  %2392 = load i32, ptr @test_count, align 4, !tbaa !5
  %2393 = add nsw i32 %2392, 1
  store i32 %2393, ptr @test_count, align 4, !tbaa !5
  %2394 = load i16, ptr %47, align 2, !tbaa !19
  %2395 = zext i16 %2394 to i32
  %2396 = getelementptr inbounds %struct.s2n_stuffer, ptr %38, i32 0, i32 2
  %2397 = load i32, ptr %2396, align 4, !tbaa !20
  %2398 = getelementptr inbounds %struct.s2n_stuffer, ptr %38, i32 0, i32 1
  %2399 = load i32, ptr %2398, align 8, !tbaa !23
  %2400 = sub i32 %2397, %2399
  %2401 = icmp eq i32 %2395, %2400
  br i1 %2401, label %2455, label %2402

2402:                                             ; preds = %2391
  br label %2403

2403:                                             ; preds = %2402
  br label %2404

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

2411:                                             ; preds = %2404
  %2412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2413 = call i32 @fileno(ptr noundef %2412) #9
  %2414 = call i32 @isatty(i32 noundef %2413) #9
  %2415 = icmp ne i32 %2414, 0
  br i1 %2415, label %2416, label %2433

2416:                                             ; preds = %2411
  %2417 = load i32, ptr %53, align 4, !tbaa !5
  %2418 = call ptr @__errno_location() #10
  store i32 %2417, ptr %2418, align 4, !tbaa !5
  %2419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2420 = load i32, ptr @test_count, align 4, !tbaa !5
  %2421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call ptr @s2n_strerror(i32 noundef %2422, ptr noundef @.str.4)
  %2424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2425 = load i32, ptr %2424, align 4, !tbaa !5
  %2426 = call ptr @s2n_strerror_debug(i32 noundef %2425, ptr noundef @.str.4)
  %2427 = call ptr @__errno_location() #10
  %2428 = load i32, ptr %2427, align 4, !tbaa !5
  %2429 = call ptr @strerror(i32 noundef %2428) #9
  %2430 = call ptr @__errno_location() #10
  %2431 = load i32, ptr %2430, align 4, !tbaa !5
  %2432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2419, ptr noundef @.str.2, i32 noundef %2420, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 127, ptr noundef %2423, ptr noundef %2426, ptr noundef %2429, i32 noundef %2431) #9
  br label %2450

2433:                                             ; preds = %2411, %2404
  %2434 = load i32, ptr %53, align 4, !tbaa !5
  %2435 = call ptr @__errno_location() #10
  store i32 %2434, ptr %2435, align 4, !tbaa !5
  %2436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2437 = load i32, ptr @test_count, align 4, !tbaa !5
  %2438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  %2440 = call ptr @s2n_strerror(i32 noundef %2439, ptr noundef @.str.4)
  %2441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2442 = load i32, ptr %2441, align 4, !tbaa !5
  %2443 = call ptr @s2n_strerror_debug(i32 noundef %2442, ptr noundef @.str.4)
  %2444 = call ptr @__errno_location() #10
  %2445 = load i32, ptr %2444, align 4, !tbaa !5
  %2446 = call ptr @strerror(i32 noundef %2445) #9
  %2447 = call ptr @__errno_location() #10
  %2448 = load i32, ptr %2447, align 4, !tbaa !5
  %2449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2436, ptr noundef @.str.5, i32 noundef %2437, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 127, ptr noundef %2440, ptr noundef %2443, ptr noundef %2446, i32 noundef %2448) #9
  br label %2450

2450:                                             ; preds = %2433, %2416
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2451

2451:                                             ; preds = %2450
  br label %2452

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

2453:                                             ; No predecessors!
  br label %2454

2454:                                             ; preds = %2453
  br label %2455

2455:                                             ; preds = %2454, %2391
  br label %2456

2456:                                             ; preds = %2455
  br label %2457

2457:                                             ; preds = %2456
  br label %2458

2458:                                             ; preds = %2457
  %2459 = load i32, ptr @test_count, align 4, !tbaa !5
  %2460 = add nsw i32 %2459, 1
  store i32 %2460, ptr @test_count, align 4, !tbaa !5
  %2461 = load i16, ptr %47, align 2, !tbaa !19
  %2462 = zext i16 %2461 to i32
  %2463 = load i16, ptr %49, align 2, !tbaa !19
  %2464 = zext i16 %2463 to i32
  %2465 = icmp eq i32 %2462, %2464
  br i1 %2465, label %2519, label %2466

2466:                                             ; preds = %2458
  br label %2467

2467:                                             ; preds = %2466
  br label %2468

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

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

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

2497:                                             ; preds = %2475, %2468
  %2498 = load i32, ptr %54, align 4, !tbaa !5
  %2499 = call ptr @__errno_location() #10
  store i32 %2498, ptr %2499, align 4, !tbaa !5
  %2500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2501 = load i32, ptr @test_count, align 4, !tbaa !5
  %2502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2503 = load i32, ptr %2502, align 4, !tbaa !5
  %2504 = call ptr @s2n_strerror(i32 noundef %2503, ptr noundef @.str.4)
  %2505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2506 = load i32, ptr %2505, align 4, !tbaa !5
  %2507 = call ptr @s2n_strerror_debug(i32 noundef %2506, ptr noundef @.str.4)
  %2508 = call ptr @__errno_location() #10
  %2509 = load i32, ptr %2508, align 4, !tbaa !5
  %2510 = call ptr @strerror(i32 noundef %2509) #9
  %2511 = call ptr @__errno_location() #10
  %2512 = load i32, ptr %2511, align 4, !tbaa !5
  %2513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2500, ptr noundef @.str.5, i32 noundef %2501, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2504, ptr noundef %2507, ptr noundef %2510, i32 noundef %2512) #9
  br label %2514

2514:                                             ; preds = %2497, %2480
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2515

2515:                                             ; preds = %2514
  br label %2516

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

2517:                                             ; No predecessors!
  br label %2518

2518:                                             ; preds = %2517
  br label %2519

2519:                                             ; preds = %2518, %2458
  br label %2520

2520:                                             ; preds = %2519
  br label %2521

2521:                                             ; preds = %2520
  %2522 = call zeroext i1 @s2n_pq_is_enabled()
  br i1 %2522, label %2523, label %2678

2523:                                             ; preds = %2521
  call void @llvm.lifetime.start.p0(i64 2, ptr %55) #9
  store i16 0, ptr %55, align 2, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  store i64 0, ptr %56, align 8, !tbaa !26
  br label %2524

2524:                                             ; preds = %2674, %2523
  %2525 = load i64, ptr %56, align 8, !tbaa !26
  %2526 = load ptr, ptr %43, align 8, !tbaa !9
  %2527 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %2526, i32 0, i32 2
  %2528 = load i8, ptr %2527, align 8, !tbaa !33
  %2529 = zext i8 %2528 to i64
  %2530 = icmp ult i64 %2525, %2529
  br i1 %2530, label %2532, label %2531

2531:                                             ; preds = %2524
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  br label %2677

2532:                                             ; preds = %2524
  %2533 = load ptr, ptr %43, align 8, !tbaa !9
  %2534 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %2533, i32 0, i32 3
  %2535 = load ptr, ptr %2534, align 8, !tbaa !35
  %2536 = load i64, ptr %56, align 8, !tbaa !26
  %2537 = getelementptr inbounds ptr, ptr %2535, i64 %2536
  %2538 = load ptr, ptr %2537, align 8, !tbaa !9
  %2539 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %2538)
  br i1 %2539, label %2541, label %2540

2540:                                             ; preds = %2532
  br label %2674

2541:                                             ; preds = %2532
  br label %2542

2542:                                             ; preds = %2541
  %2543 = load i32, ptr @test_count, align 4, !tbaa !5
  %2544 = add nsw i32 %2543, 1
  store i32 %2544, ptr @test_count, align 4, !tbaa !5
  %2545 = call i32 @s2n_stuffer_read_uint16(ptr noundef %38, ptr noundef %55)
  %2546 = icmp eq i32 %2545, -1
  br i1 %2546, label %2547, label %2600

2547:                                             ; preds = %2542
  br label %2548

2548:                                             ; preds = %2547
  br label %2549

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

2556:                                             ; preds = %2549
  %2557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2558 = call i32 @fileno(ptr noundef %2557) #9
  %2559 = call i32 @isatty(i32 noundef %2558) #9
  %2560 = icmp ne i32 %2559, 0
  br i1 %2560, label %2561, label %2578

2561:                                             ; preds = %2556
  %2562 = load i32, ptr %57, align 4, !tbaa !5
  %2563 = call ptr @__errno_location() #10
  store i32 %2562, ptr %2563, align 4, !tbaa !5
  %2564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2565 = load i32, ptr @test_count, align 4, !tbaa !5
  %2566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call ptr @s2n_strerror(i32 noundef %2567, ptr noundef @.str.4)
  %2569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2570 = load i32, ptr %2569, align 4, !tbaa !5
  %2571 = call ptr @s2n_strerror_debug(i32 noundef %2570, ptr noundef @.str.4)
  %2572 = call ptr @__errno_location() #10
  %2573 = load i32, ptr %2572, align 4, !tbaa !5
  %2574 = call ptr @strerror(i32 noundef %2573) #9
  %2575 = call ptr @__errno_location() #10
  %2576 = load i32, ptr %2575, align 4, !tbaa !5
  %2577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2564, ptr noundef @.str.2, i32 noundef %2565, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2568, ptr noundef %2571, ptr noundef %2574, i32 noundef %2576) #9
  br label %2595

2578:                                             ; preds = %2556, %2549
  %2579 = load i32, ptr %57, align 4, !tbaa !5
  %2580 = call ptr @__errno_location() #10
  store i32 %2579, ptr %2580, align 4, !tbaa !5
  %2581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2582 = load i32, ptr @test_count, align 4, !tbaa !5
  %2583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2584 = load i32, ptr %2583, align 4, !tbaa !5
  %2585 = call ptr @s2n_strerror(i32 noundef %2584, ptr noundef @.str.4)
  %2586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2587 = load i32, ptr %2586, align 4, !tbaa !5
  %2588 = call ptr @s2n_strerror_debug(i32 noundef %2587, ptr noundef @.str.4)
  %2589 = call ptr @__errno_location() #10
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call ptr @strerror(i32 noundef %2590) #9
  %2592 = call ptr @__errno_location() #10
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  %2594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2581, ptr noundef @.str.5, i32 noundef %2582, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2585, ptr noundef %2588, ptr noundef %2591, i32 noundef %2593) #9
  br label %2595

2595:                                             ; preds = %2578, %2561
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2596

2596:                                             ; preds = %2595
  br label %2597

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

2598:                                             ; No predecessors!
  br label %2599

2599:                                             ; preds = %2598
  br label %2600

2600:                                             ; preds = %2599, %2542
  br label %2601

2601:                                             ; preds = %2600
  br label %2602

2602:                                             ; preds = %2601
  br label %2603

2603:                                             ; preds = %2602
  %2604 = load i32, ptr @test_count, align 4, !tbaa !5
  %2605 = add nsw i32 %2604, 1
  store i32 %2605, ptr @test_count, align 4, !tbaa !5
  %2606 = load i16, ptr %55, align 2, !tbaa !19
  %2607 = zext i16 %2606 to i32
  %2608 = load ptr, ptr %43, align 8, !tbaa !9
  %2609 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %2608, i32 0, i32 3
  %2610 = load ptr, ptr %2609, align 8, !tbaa !35
  %2611 = load i64, ptr %56, align 8, !tbaa !26
  %2612 = getelementptr inbounds ptr, ptr %2610, i64 %2611
  %2613 = load ptr, ptr %2612, align 8, !tbaa !9
  %2614 = getelementptr inbounds %struct.s2n_kem_group, ptr %2613, i32 0, i32 1
  %2615 = load i16, ptr %2614, align 8, !tbaa !68
  %2616 = zext i16 %2615 to i32
  %2617 = icmp eq i32 %2607, %2616
  br i1 %2617, label %2671, label %2618

2618:                                             ; preds = %2603
  br label %2619

2619:                                             ; preds = %2618
  br label %2620

2620:                                             ; preds = %2619
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  %2621 = call ptr @__errno_location() #10
  %2622 = load i32, ptr %2621, align 4, !tbaa !5
  store i32 %2622, ptr %58, align 4, !tbaa !5
  %2623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2624 = call i32 @s2n_print_stacktrace(ptr noundef %2623)
  %2625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2626 = trunc i8 %2625 to i1
  br i1 %2626, label %2627, label %2649

2627:                                             ; preds = %2620
  %2628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2629 = call i32 @fileno(ptr noundef %2628) #9
  %2630 = call i32 @isatty(i32 noundef %2629) #9
  %2631 = icmp ne i32 %2630, 0
  br i1 %2631, label %2632, label %2649

2632:                                             ; preds = %2627
  %2633 = load i32, ptr %58, align 4, !tbaa !5
  %2634 = call ptr @__errno_location() #10
  store i32 %2633, ptr %2634, align 4, !tbaa !5
  %2635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2636 = load i32, ptr @test_count, align 4, !tbaa !5
  %2637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2638 = load i32, ptr %2637, align 4, !tbaa !5
  %2639 = call ptr @s2n_strerror(i32 noundef %2638, ptr noundef @.str.4)
  %2640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2641 = load i32, ptr %2640, align 4, !tbaa !5
  %2642 = call ptr @s2n_strerror_debug(i32 noundef %2641, ptr noundef @.str.4)
  %2643 = call ptr @__errno_location() #10
  %2644 = load i32, ptr %2643, align 4, !tbaa !5
  %2645 = call ptr @strerror(i32 noundef %2644) #9
  %2646 = call ptr @__errno_location() #10
  %2647 = load i32, ptr %2646, align 4, !tbaa !5
  %2648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2635, ptr noundef @.str.2, i32 noundef %2636, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2639, ptr noundef %2642, ptr noundef %2645, i32 noundef %2647) #9
  br label %2666

2649:                                             ; preds = %2627, %2620
  %2650 = load i32, ptr %58, align 4, !tbaa !5
  %2651 = call ptr @__errno_location() #10
  store i32 %2650, ptr %2651, align 4, !tbaa !5
  %2652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2653 = load i32, ptr @test_count, align 4, !tbaa !5
  %2654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2655 = load i32, ptr %2654, align 4, !tbaa !5
  %2656 = call ptr @s2n_strerror(i32 noundef %2655, ptr noundef @.str.4)
  %2657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2658 = load i32, ptr %2657, align 4, !tbaa !5
  %2659 = call ptr @s2n_strerror_debug(i32 noundef %2658, ptr noundef @.str.4)
  %2660 = call ptr @__errno_location() #10
  %2661 = load i32, ptr %2660, align 4, !tbaa !5
  %2662 = call ptr @strerror(i32 noundef %2661) #9
  %2663 = call ptr @__errno_location() #10
  %2664 = load i32, ptr %2663, align 4, !tbaa !5
  %2665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2652, ptr noundef @.str.5, i32 noundef %2653, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2656, ptr noundef %2659, ptr noundef %2662, i32 noundef %2664) #9
  br label %2666

2666:                                             ; preds = %2649, %2632
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %2667

2667:                                             ; preds = %2666
  br label %2668

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

2669:                                             ; No predecessors!
  br label %2670

2670:                                             ; preds = %2669
  br label %2671

2671:                                             ; preds = %2670, %2603
  br label %2672

2672:                                             ; preds = %2671
  br label %2673

2673:                                             ; preds = %2672
  br label %2674

2674:                                             ; preds = %2673, %2540
  %2675 = load i64, ptr %56, align 8, !tbaa !26
  %2676 = add i64 %2675, 1
  store i64 %2676, ptr %56, align 8, !tbaa !26
  br label %2524, !llvm.loop !70

2677:                                             ; preds = %2531
  call void @llvm.lifetime.end.p0(i64 2, ptr %55) #9
  br label %2678

2678:                                             ; preds = %2677, %2521
  call void @llvm.lifetime.start.p0(i64 2, ptr %59) #9
  store i16 0, ptr %59, align 2, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #9
  store i64 0, ptr %60, align 8, !tbaa !26
  br label %2679

2679:                                             ; preds = %2820, %2678
  %2680 = load i64, ptr %60, align 8, !tbaa !26
  %2681 = load ptr, ptr %40, align 8, !tbaa !9
  %2682 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %2681, i32 0, i32 0
  %2683 = load i8, ptr %2682, align 8, !tbaa !24
  %2684 = zext i8 %2683 to i64
  %2685 = icmp ult i64 %2680, %2684
  br i1 %2685, label %2687, label %2686

2686:                                             ; preds = %2679
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  br label %2823

2687:                                             ; preds = %2679
  br label %2688

2688:                                             ; preds = %2687
  %2689 = load i32, ptr @test_count, align 4, !tbaa !5
  %2690 = add nsw i32 %2689, 1
  store i32 %2690, ptr @test_count, align 4, !tbaa !5
  %2691 = call i32 @s2n_stuffer_read_uint16(ptr noundef %38, ptr noundef %59)
  %2692 = icmp eq i32 %2691, -1
  br i1 %2692, label %2693, label %2746

2693:                                             ; preds = %2688
  br label %2694

2694:                                             ; preds = %2693
  br label %2695

2695:                                             ; preds = %2694
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  %2696 = call ptr @__errno_location() #10
  %2697 = load i32, ptr %2696, align 4, !tbaa !5
  store i32 %2697, ptr %61, align 4, !tbaa !5
  %2698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2699 = call i32 @s2n_print_stacktrace(ptr noundef %2698)
  %2700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2701 = trunc i8 %2700 to i1
  br i1 %2701, label %2702, label %2724

2702:                                             ; preds = %2695
  %2703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2704 = call i32 @fileno(ptr noundef %2703) #9
  %2705 = call i32 @isatty(i32 noundef %2704) #9
  %2706 = icmp ne i32 %2705, 0
  br i1 %2706, label %2707, label %2724

2707:                                             ; preds = %2702
  %2708 = load i32, ptr %61, align 4, !tbaa !5
  %2709 = call ptr @__errno_location() #10
  store i32 %2708, ptr %2709, align 4, !tbaa !5
  %2710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2711 = load i32, ptr @test_count, align 4, !tbaa !5
  %2712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2713 = load i32, ptr %2712, align 4, !tbaa !5
  %2714 = call ptr @s2n_strerror(i32 noundef %2713, ptr noundef @.str.4)
  %2715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2716 = load i32, ptr %2715, align 4, !tbaa !5
  %2717 = call ptr @s2n_strerror_debug(i32 noundef %2716, ptr noundef @.str.4)
  %2718 = call ptr @__errno_location() #10
  %2719 = load i32, ptr %2718, align 4, !tbaa !5
  %2720 = call ptr @strerror(i32 noundef %2719) #9
  %2721 = call ptr @__errno_location() #10
  %2722 = load i32, ptr %2721, align 4, !tbaa !5
  %2723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2710, ptr noundef @.str.2, i32 noundef %2711, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2714, ptr noundef %2717, ptr noundef %2720, i32 noundef %2722) #9
  br label %2741

2724:                                             ; preds = %2702, %2695
  %2725 = load i32, ptr %61, align 4, !tbaa !5
  %2726 = call ptr @__errno_location() #10
  store i32 %2725, ptr %2726, align 4, !tbaa !5
  %2727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2728 = load i32, ptr @test_count, align 4, !tbaa !5
  %2729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2730 = load i32, ptr %2729, align 4, !tbaa !5
  %2731 = call ptr @s2n_strerror(i32 noundef %2730, ptr noundef @.str.4)
  %2732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2733 = load i32, ptr %2732, align 4, !tbaa !5
  %2734 = call ptr @s2n_strerror_debug(i32 noundef %2733, ptr noundef @.str.4)
  %2735 = call ptr @__errno_location() #10
  %2736 = load i32, ptr %2735, align 4, !tbaa !5
  %2737 = call ptr @strerror(i32 noundef %2736) #9
  %2738 = call ptr @__errno_location() #10
  %2739 = load i32, ptr %2738, align 4, !tbaa !5
  %2740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2727, ptr noundef @.str.5, i32 noundef %2728, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2731, ptr noundef %2734, ptr noundef %2737, i32 noundef %2739) #9
  br label %2741

2741:                                             ; preds = %2724, %2707
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %2742

2742:                                             ; preds = %2741
  br label %2743

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

2744:                                             ; No predecessors!
  br label %2745

2745:                                             ; preds = %2744
  br label %2746

2746:                                             ; preds = %2745, %2688
  br label %2747

2747:                                             ; preds = %2746
  br label %2748

2748:                                             ; preds = %2747
  br label %2749

2749:                                             ; preds = %2748
  %2750 = load i32, ptr @test_count, align 4, !tbaa !5
  %2751 = add nsw i32 %2750, 1
  store i32 %2751, ptr @test_count, align 4, !tbaa !5
  %2752 = load i16, ptr %59, align 2, !tbaa !19
  %2753 = zext i16 %2752 to i32
  %2754 = load ptr, ptr %40, align 8, !tbaa !9
  %2755 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %2754, i32 0, i32 1
  %2756 = load ptr, ptr %2755, align 8, !tbaa !28
  %2757 = load i64, ptr %60, align 8, !tbaa !26
  %2758 = getelementptr inbounds ptr, ptr %2756, i64 %2757
  %2759 = load ptr, ptr %2758, align 8, !tbaa !9
  %2760 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %2759, i32 0, i32 0
  %2761 = load i16, ptr %2760, align 8, !tbaa !29
  %2762 = zext i16 %2761 to i32
  %2763 = icmp eq i32 %2753, %2762
  br i1 %2763, label %2817, label %2764

2764:                                             ; preds = %2749
  br label %2765

2765:                                             ; preds = %2764
  br label %2766

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

2773:                                             ; preds = %2766
  %2774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2775 = call i32 @fileno(ptr noundef %2774) #9
  %2776 = call i32 @isatty(i32 noundef %2775) #9
  %2777 = icmp ne i32 %2776, 0
  br i1 %2777, label %2778, label %2795

2778:                                             ; preds = %2773
  %2779 = load i32, ptr %62, align 4, !tbaa !5
  %2780 = call ptr @__errno_location() #10
  store i32 %2779, ptr %2780, align 4, !tbaa !5
  %2781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2782 = load i32, ptr @test_count, align 4, !tbaa !5
  %2783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2784 = load i32, ptr %2783, align 4, !tbaa !5
  %2785 = call ptr @s2n_strerror(i32 noundef %2784, ptr noundef @.str.4)
  %2786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2787 = load i32, ptr %2786, align 4, !tbaa !5
  %2788 = call ptr @s2n_strerror_debug(i32 noundef %2787, ptr noundef @.str.4)
  %2789 = call ptr @__errno_location() #10
  %2790 = load i32, ptr %2789, align 4, !tbaa !5
  %2791 = call ptr @strerror(i32 noundef %2790) #9
  %2792 = call ptr @__errno_location() #10
  %2793 = load i32, ptr %2792, align 4, !tbaa !5
  %2794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2781, ptr noundef @.str.2, i32 noundef %2782, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 144, ptr noundef %2785, ptr noundef %2788, ptr noundef %2791, i32 noundef %2793) #9
  br label %2812

2795:                                             ; preds = %2773, %2766
  %2796 = load i32, ptr %62, align 4, !tbaa !5
  %2797 = call ptr @__errno_location() #10
  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() #10
  %2807 = load i32, ptr %2806, align 4, !tbaa !5
  %2808 = call ptr @strerror(i32 noundef %2807) #9
  %2809 = call ptr @__errno_location() #10
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2798, ptr noundef @.str.5, i32 noundef %2799, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 144, ptr noundef %2802, ptr noundef %2805, ptr noundef %2808, i32 noundef %2810) #9
  br label %2812

2812:                                             ; preds = %2795, %2778
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %2813

2813:                                             ; preds = %2812
  br label %2814

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

2815:                                             ; No predecessors!
  br label %2816

2816:                                             ; preds = %2815
  br label %2817

2817:                                             ; preds = %2816, %2749
  br label %2818

2818:                                             ; preds = %2817
  br label %2819

2819:                                             ; preds = %2818
  br label %2820

2820:                                             ; preds = %2819
  %2821 = load i64, ptr %60, align 8, !tbaa !26
  %2822 = add i64 %2821, 1
  store i64 %2822, ptr %60, align 8, !tbaa !26
  br label %2679, !llvm.loop !71

2823:                                             ; preds = %2686
  br label %2824

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

2830:                                             ; preds = %2824
  br label %2831

2831:                                             ; preds = %2830
  br label %2832

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

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

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

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

2878:                                             ; preds = %2861, %2844
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %2879

2879:                                             ; preds = %2878
  br label %2880

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

2881:                                             ; No predecessors!
  br label %2882

2882:                                             ; preds = %2881
  br label %2883

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

2884:                                             ; preds = %2883
  br label %2885

2885:                                             ; preds = %2884
  br label %2886

2886:                                             ; preds = %2885
  %2887 = load i32, ptr @test_count, align 4, !tbaa !5
  %2888 = add nsw i32 %2887, 1
  store i32 %2888, ptr @test_count, align 4, !tbaa !5
  %2889 = call i32 (...) @s2n_disable_tls13_in_test()
  %2890 = icmp eq i32 %2889, -1
  br i1 %2890, label %2891, label %2944

2891:                                             ; preds = %2886
  br label %2892

2892:                                             ; preds = %2891
  br label %2893

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

2900:                                             ; preds = %2893
  %2901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2902 = call i32 @fileno(ptr noundef %2901) #9
  %2903 = call i32 @isatty(i32 noundef %2902) #9
  %2904 = icmp ne i32 %2903, 0
  br i1 %2904, label %2905, label %2922

2905:                                             ; preds = %2900
  %2906 = load i32, ptr %64, align 4, !tbaa !5
  %2907 = call ptr @__errno_location() #10
  store i32 %2906, ptr %2907, align 4, !tbaa !5
  %2908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2909 = load i32, ptr @test_count, align 4, !tbaa !5
  %2910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2911 = load i32, ptr %2910, align 4, !tbaa !5
  %2912 = call ptr @s2n_strerror(i32 noundef %2911, ptr noundef @.str.4)
  %2913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2914 = load i32, ptr %2913, align 4, !tbaa !5
  %2915 = call ptr @s2n_strerror_debug(i32 noundef %2914, ptr noundef @.str.4)
  %2916 = call ptr @__errno_location() #10
  %2917 = load i32, ptr %2916, align 4, !tbaa !5
  %2918 = call ptr @strerror(i32 noundef %2917) #9
  %2919 = call ptr @__errno_location() #10
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  %2921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2908, ptr noundef @.str.2, i32 noundef %2909, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2912, ptr noundef %2915, ptr noundef %2918, i32 noundef %2920) #9
  br label %2939

2922:                                             ; preds = %2900, %2893
  %2923 = load i32, ptr %64, align 4, !tbaa !5
  %2924 = call ptr @__errno_location() #10
  store i32 %2923, ptr %2924, align 4, !tbaa !5
  %2925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2926 = load i32, ptr @test_count, align 4, !tbaa !5
  %2927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call ptr @s2n_strerror(i32 noundef %2928, ptr noundef @.str.4)
  %2930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  %2932 = call ptr @s2n_strerror_debug(i32 noundef %2931, ptr noundef @.str.4)
  %2933 = call ptr @__errno_location() #10
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = call ptr @strerror(i32 noundef %2934) #9
  %2936 = call ptr @__errno_location() #10
  %2937 = load i32, ptr %2936, align 4, !tbaa !5
  %2938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2925, ptr noundef @.str.5, i32 noundef %2926, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2929, ptr noundef %2932, ptr noundef %2935, i32 noundef %2937) #9
  br label %2939

2939:                                             ; preds = %2922, %2905
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %2940

2940:                                             ; preds = %2939
  br label %2941

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

2942:                                             ; No predecessors!
  br label %2943

2943:                                             ; preds = %2942
  br label %2944

2944:                                             ; preds = %2943, %2886
  br label %2945

2945:                                             ; preds = %2944
  br label %2946

2946:                                             ; preds = %2945
  call void @llvm.lifetime.end.p0(i64 2, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 2, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 2, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  %2947 = call i32 @s2n_stuffer_free(ptr noundef %38)
  call void @llvm.lifetime.end.p0(i64 40, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  store ptr null, ptr %65, align 8, !tbaa !9
  br label %2948

2948:                                             ; preds = %2946
  %2949 = load i32, ptr @test_count, align 4, !tbaa !5
  %2950 = add nsw i32 %2949, 1
  store i32 %2950, ptr @test_count, align 4, !tbaa !5
  %2951 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2951, ptr %65, align 8, !tbaa !9
  %2952 = icmp eq ptr %2951, null
  br i1 %2952, label %2953, label %3006

2953:                                             ; preds = %2948
  br label %2954

2954:                                             ; preds = %2953
  br label %2955

2955:                                             ; preds = %2954
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  %2956 = call ptr @__errno_location() #10
  %2957 = load i32, ptr %2956, align 4, !tbaa !5
  store i32 %2957, ptr %66, align 4, !tbaa !5
  %2958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2959 = call i32 @s2n_print_stacktrace(ptr noundef %2958)
  %2960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2961 = trunc i8 %2960 to i1
  br i1 %2961, label %2962, label %2984

2962:                                             ; preds = %2955
  %2963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2964 = call i32 @fileno(ptr noundef %2963) #9
  %2965 = call i32 @isatty(i32 noundef %2964) #9
  %2966 = icmp ne i32 %2965, 0
  br i1 %2966, label %2967, label %2984

2967:                                             ; preds = %2962
  %2968 = load i32, ptr %66, align 4, !tbaa !5
  %2969 = call ptr @__errno_location() #10
  store i32 %2968, ptr %2969, align 4, !tbaa !5
  %2970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2971 = load i32, ptr @test_count, align 4, !tbaa !5
  %2972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2973 = load i32, ptr %2972, align 4, !tbaa !5
  %2974 = call ptr @s2n_strerror(i32 noundef %2973, ptr noundef @.str.4)
  %2975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2976 = load i32, ptr %2975, align 4, !tbaa !5
  %2977 = call ptr @s2n_strerror_debug(i32 noundef %2976, ptr noundef @.str.4)
  %2978 = call ptr @__errno_location() #10
  %2979 = load i32, ptr %2978, align 4, !tbaa !5
  %2980 = call ptr @strerror(i32 noundef %2979) #9
  %2981 = call ptr @__errno_location() #10
  %2982 = load i32, ptr %2981, align 4, !tbaa !5
  %2983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2970, ptr noundef @.str.2, i32 noundef %2971, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 153, ptr noundef %2974, ptr noundef %2977, ptr noundef %2980, i32 noundef %2982) #9
  br label %3001

2984:                                             ; preds = %2962, %2955
  %2985 = load i32, ptr %66, align 4, !tbaa !5
  %2986 = call ptr @__errno_location() #10
  store i32 %2985, ptr %2986, align 4, !tbaa !5
  %2987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2988 = load i32, ptr @test_count, align 4, !tbaa !5
  %2989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = call ptr @s2n_strerror(i32 noundef %2990, ptr noundef @.str.4)
  %2992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2993 = load i32, ptr %2992, align 4, !tbaa !5
  %2994 = call ptr @s2n_strerror_debug(i32 noundef %2993, ptr noundef @.str.4)
  %2995 = call ptr @__errno_location() #10
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  %2997 = call ptr @strerror(i32 noundef %2996) #9
  %2998 = call ptr @__errno_location() #10
  %2999 = load i32, ptr %2998, align 4, !tbaa !5
  %3000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2987, ptr noundef @.str.5, i32 noundef %2988, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 153, ptr noundef %2991, ptr noundef %2994, ptr noundef %2997, i32 noundef %2999) #9
  br label %3001

3001:                                             ; preds = %2984, %2967
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %3002

3002:                                             ; preds = %3001
  br label %3003

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

3004:                                             ; No predecessors!
  br label %3005

3005:                                             ; preds = %3004
  br label %3006

3006:                                             ; preds = %3005, %2948
  br label %3007

3007:                                             ; preds = %3006
  br label %3008

3008:                                             ; preds = %3007
  br label %3009

3009:                                             ; preds = %3008
  %3010 = load i32, ptr @test_count, align 4, !tbaa !5
  %3011 = add nsw i32 %3010, 1
  store i32 %3011, ptr @test_count, align 4, !tbaa !5
  %3012 = load ptr, ptr %65, align 8, !tbaa !9
  %3013 = call zeroext i8 @s2n_connection_get_protocol_version(ptr noundef %3012)
  %3014 = zext i8 %3013 to i32
  %3015 = icmp eq i32 %3014, 33
  br i1 %3015, label %3069, label %3016

3016:                                             ; preds = %3009
  br label %3017

3017:                                             ; preds = %3016
  br label %3018

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

3025:                                             ; preds = %3018
  %3026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3027 = call i32 @fileno(ptr noundef %3026) #9
  %3028 = call i32 @isatty(i32 noundef %3027) #9
  %3029 = icmp ne i32 %3028, 0
  br i1 %3029, label %3030, label %3047

3030:                                             ; preds = %3025
  %3031 = load i32, ptr %67, align 4, !tbaa !5
  %3032 = call ptr @__errno_location() #10
  store i32 %3031, ptr %3032, align 4, !tbaa !5
  %3033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3034 = load i32, ptr @test_count, align 4, !tbaa !5
  %3035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3036 = load i32, ptr %3035, align 4, !tbaa !5
  %3037 = call ptr @s2n_strerror(i32 noundef %3036, ptr noundef @.str.4)
  %3038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call ptr @s2n_strerror_debug(i32 noundef %3039, ptr noundef @.str.4)
  %3041 = call ptr @__errno_location() #10
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  %3043 = call ptr @strerror(i32 noundef %3042) #9
  %3044 = call ptr @__errno_location() #10
  %3045 = load i32, ptr %3044, align 4, !tbaa !5
  %3046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3033, ptr noundef @.str.2, i32 noundef %3034, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 154, ptr noundef %3037, ptr noundef %3040, ptr noundef %3043, i32 noundef %3045) #9
  br label %3064

3047:                                             ; preds = %3025, %3018
  %3048 = load i32, ptr %67, align 4, !tbaa !5
  %3049 = call ptr @__errno_location() #10
  store i32 %3048, ptr %3049, align 4, !tbaa !5
  %3050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3051 = load i32, ptr @test_count, align 4, !tbaa !5
  %3052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3053 = load i32, ptr %3052, align 4, !tbaa !5
  %3054 = call ptr @s2n_strerror(i32 noundef %3053, ptr noundef @.str.4)
  %3055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3056 = load i32, ptr %3055, align 4, !tbaa !5
  %3057 = call ptr @s2n_strerror_debug(i32 noundef %3056, ptr noundef @.str.4)
  %3058 = call ptr @__errno_location() #10
  %3059 = load i32, ptr %3058, align 4, !tbaa !5
  %3060 = call ptr @strerror(i32 noundef %3059) #9
  %3061 = call ptr @__errno_location() #10
  %3062 = load i32, ptr %3061, align 4, !tbaa !5
  %3063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3050, ptr noundef @.str.5, i32 noundef %3051, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 154, ptr noundef %3054, ptr noundef %3057, ptr noundef %3060, i32 noundef %3062) #9
  br label %3064

3064:                                             ; preds = %3047, %3030
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %3065

3065:                                             ; preds = %3064
  br label %3066

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

3067:                                             ; No predecessors!
  br label %3068

3068:                                             ; preds = %3067
  br label %3069

3069:                                             ; preds = %3068, %3009
  br label %3070

3070:                                             ; preds = %3069
  br label %3071

3071:                                             ; preds = %3070
  call void @llvm.lifetime.start.p0(i64 40, ptr %68) #9
  call void @llvm.memset.p0.i64(ptr align 8 %68, i8 0, i64 40, i1 false)
  br label %3072

3072:                                             ; preds = %3071
  %3073 = load i32, ptr @test_count, align 4, !tbaa !5
  %3074 = add nsw i32 %3073, 1
  store i32 %3074, ptr @test_count, align 4, !tbaa !5
  %3075 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %68, i32 noundef 0)
  %3076 = icmp eq i32 %3075, -1
  br i1 %3076, label %3077, label %3130

3077:                                             ; preds = %3072
  br label %3078

3078:                                             ; preds = %3077
  br label %3079

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

3086:                                             ; preds = %3079
  %3087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3088 = call i32 @fileno(ptr noundef %3087) #9
  %3089 = call i32 @isatty(i32 noundef %3088) #9
  %3090 = icmp ne i32 %3089, 0
  br i1 %3090, label %3091, label %3108

3091:                                             ; preds = %3086
  %3092 = load i32, ptr %69, align 4, !tbaa !5
  %3093 = call ptr @__errno_location() #10
  store i32 %3092, ptr %3093, align 4, !tbaa !5
  %3094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3095 = load i32, ptr @test_count, align 4, !tbaa !5
  %3096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3097 = load i32, ptr %3096, align 4, !tbaa !5
  %3098 = call ptr @s2n_strerror(i32 noundef %3097, ptr noundef @.str.4)
  %3099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3100 = load i32, ptr %3099, align 4, !tbaa !5
  %3101 = call ptr @s2n_strerror_debug(i32 noundef %3100, ptr noundef @.str.4)
  %3102 = call ptr @__errno_location() #10
  %3103 = load i32, ptr %3102, align 4, !tbaa !5
  %3104 = call ptr @strerror(i32 noundef %3103) #9
  %3105 = call ptr @__errno_location() #10
  %3106 = load i32, ptr %3105, align 4, !tbaa !5
  %3107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3094, ptr noundef @.str.2, i32 noundef %3095, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3098, ptr noundef %3101, ptr noundef %3104, i32 noundef %3106) #9
  br label %3125

3108:                                             ; preds = %3086, %3079
  %3109 = load i32, ptr %69, align 4, !tbaa !5
  %3110 = call ptr @__errno_location() #10
  store i32 %3109, ptr %3110, align 4, !tbaa !5
  %3111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3112 = load i32, ptr @test_count, align 4, !tbaa !5
  %3113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3114 = load i32, ptr %3113, align 4, !tbaa !5
  %3115 = call ptr @s2n_strerror(i32 noundef %3114, ptr noundef @.str.4)
  %3116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3117 = load i32, ptr %3116, align 4, !tbaa !5
  %3118 = call ptr @s2n_strerror_debug(i32 noundef %3117, ptr noundef @.str.4)
  %3119 = call ptr @__errno_location() #10
  %3120 = load i32, ptr %3119, align 4, !tbaa !5
  %3121 = call ptr @strerror(i32 noundef %3120) #9
  %3122 = call ptr @__errno_location() #10
  %3123 = load i32, ptr %3122, align 4, !tbaa !5
  %3124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3111, ptr noundef @.str.5, i32 noundef %3112, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3115, ptr noundef %3118, ptr noundef %3121, i32 noundef %3123) #9
  br label %3125

3125:                                             ; preds = %3108, %3091
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %3126

3126:                                             ; preds = %3125
  br label %3127

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

3128:                                             ; No predecessors!
  br label %3129

3129:                                             ; preds = %3128
  br label %3130

3130:                                             ; preds = %3129, %3072
  br label %3131

3131:                                             ; preds = %3130
  br label %3132

3132:                                             ; preds = %3131
  %3133 = load ptr, ptr %65, align 8, !tbaa !9
  %3134 = getelementptr inbounds %struct.s2n_connection, ptr %3133, i32 0, i32 2
  store ptr %34, ptr %3134, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #9
  store ptr null, ptr %70, align 8, !tbaa !9
  br label %3135

3135:                                             ; preds = %3132
  %3136 = load i32, ptr @test_count, align 4, !tbaa !5
  %3137 = add nsw i32 %3136, 1
  store i32 %3137, ptr @test_count, align 4, !tbaa !5
  %3138 = load ptr, ptr %65, align 8, !tbaa !9
  %3139 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %3138, ptr noundef %70)
  %3140 = icmp eq i32 %3139, -1
  br i1 %3140, label %3141, label %3194

3141:                                             ; preds = %3135
  br label %3142

3142:                                             ; preds = %3141
  br label %3143

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

3150:                                             ; preds = %3143
  %3151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3152 = call i32 @fileno(ptr noundef %3151) #9
  %3153 = call i32 @isatty(i32 noundef %3152) #9
  %3154 = icmp ne i32 %3153, 0
  br i1 %3154, label %3155, label %3172

3155:                                             ; preds = %3150
  %3156 = load i32, ptr %71, align 4, !tbaa !5
  %3157 = call ptr @__errno_location() #10
  store i32 %3156, ptr %3157, align 4, !tbaa !5
  %3158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3159 = load i32, ptr @test_count, align 4, !tbaa !5
  %3160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3161 = load i32, ptr %3160, align 4, !tbaa !5
  %3162 = call ptr @s2n_strerror(i32 noundef %3161, ptr noundef @.str.4)
  %3163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3164 = load i32, ptr %3163, align 4, !tbaa !5
  %3165 = call ptr @s2n_strerror_debug(i32 noundef %3164, ptr noundef @.str.4)
  %3166 = call ptr @__errno_location() #10
  %3167 = load i32, ptr %3166, align 4, !tbaa !5
  %3168 = call ptr @strerror(i32 noundef %3167) #9
  %3169 = call ptr @__errno_location() #10
  %3170 = load i32, ptr %3169, align 4, !tbaa !5
  %3171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3158, ptr noundef @.str.2, i32 noundef %3159, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3162, ptr noundef %3165, ptr noundef %3168, i32 noundef %3170) #9
  br label %3189

3172:                                             ; preds = %3150, %3143
  %3173 = load i32, ptr %71, align 4, !tbaa !5
  %3174 = call ptr @__errno_location() #10
  store i32 %3173, ptr %3174, align 4, !tbaa !5
  %3175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3176 = load i32, ptr @test_count, align 4, !tbaa !5
  %3177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3178 = load i32, ptr %3177, align 4, !tbaa !5
  %3179 = call ptr @s2n_strerror(i32 noundef %3178, ptr noundef @.str.4)
  %3180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3181 = load i32, ptr %3180, align 4, !tbaa !5
  %3182 = call ptr @s2n_strerror_debug(i32 noundef %3181, ptr noundef @.str.4)
  %3183 = call ptr @__errno_location() #10
  %3184 = load i32, ptr %3183, align 4, !tbaa !5
  %3185 = call ptr @strerror(i32 noundef %3184) #9
  %3186 = call ptr @__errno_location() #10
  %3187 = load i32, ptr %3186, align 4, !tbaa !5
  %3188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3175, ptr noundef @.str.5, i32 noundef %3176, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3179, ptr noundef %3182, ptr noundef %3185, i32 noundef %3187) #9
  br label %3189

3189:                                             ; preds = %3172, %3155
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  br label %3190

3190:                                             ; preds = %3189
  br label %3191

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

3192:                                             ; No predecessors!
  br label %3193

3193:                                             ; preds = %3192
  br label %3194

3194:                                             ; preds = %3193, %3135
  br label %3195

3195:                                             ; preds = %3194
  br label %3196

3196:                                             ; preds = %3195
  br label %3197

3197:                                             ; preds = %3196
  %3198 = load i32, ptr @test_count, align 4, !tbaa !5
  %3199 = add nsw i32 %3198, 1
  store i32 %3199, ptr @test_count, align 4, !tbaa !5
  %3200 = load ptr, ptr %70, align 8, !tbaa !9
  %3201 = icmp eq ptr %3200, null
  br i1 %3201, label %3202, label %3255

3202:                                             ; preds = %3197
  br label %3203

3203:                                             ; preds = %3202
  br label %3204

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

3211:                                             ; preds = %3204
  %3212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3213 = call i32 @fileno(ptr noundef %3212) #9
  %3214 = call i32 @isatty(i32 noundef %3213) #9
  %3215 = icmp ne i32 %3214, 0
  br i1 %3215, label %3216, label %3233

3216:                                             ; preds = %3211
  %3217 = load i32, ptr %72, align 4, !tbaa !5
  %3218 = call ptr @__errno_location() #10
  store i32 %3217, ptr %3218, align 4, !tbaa !5
  %3219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3220 = load i32, ptr @test_count, align 4, !tbaa !5
  %3221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3222 = load i32, ptr %3221, align 4, !tbaa !5
  %3223 = call ptr @s2n_strerror(i32 noundef %3222, ptr noundef @.str.4)
  %3224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3225 = load i32, ptr %3224, align 4, !tbaa !5
  %3226 = call ptr @s2n_strerror_debug(i32 noundef %3225, ptr noundef @.str.4)
  %3227 = call ptr @__errno_location() #10
  %3228 = load i32, ptr %3227, align 4, !tbaa !5
  %3229 = call ptr @strerror(i32 noundef %3228) #9
  %3230 = call ptr @__errno_location() #10
  %3231 = load i32, ptr %3230, align 4, !tbaa !5
  %3232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3219, ptr noundef @.str.2, i32 noundef %3220, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 162, ptr noundef %3223, ptr noundef %3226, ptr noundef %3229, i32 noundef %3231) #9
  br label %3250

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

3250:                                             ; preds = %3233, %3216
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %3251

3251:                                             ; preds = %3250
  br label %3252

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

3253:                                             ; No predecessors!
  br label %3254

3254:                                             ; preds = %3253
  br label %3255

3255:                                             ; preds = %3254, %3197
  br label %3256

3256:                                             ; preds = %3255
  br label %3257

3257:                                             ; preds = %3256
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #9
  store ptr null, ptr %73, align 8, !tbaa !9
  br label %3258

3258:                                             ; preds = %3257
  %3259 = load i32, ptr @test_count, align 4, !tbaa !5
  %3260 = add nsw i32 %3259, 1
  store i32 %3260, ptr @test_count, align 4, !tbaa !5
  %3261 = load ptr, ptr %65, align 8, !tbaa !9
  %3262 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %3261, ptr noundef %73)
  %3263 = icmp eq i32 %3262, -1
  br i1 %3263, label %3264, label %3317

3264:                                             ; preds = %3258
  br label %3265

3265:                                             ; preds = %3264
  br label %3266

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

3273:                                             ; preds = %3266
  %3274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3275 = call i32 @fileno(ptr noundef %3274) #9
  %3276 = call i32 @isatty(i32 noundef %3275) #9
  %3277 = icmp ne i32 %3276, 0
  br i1 %3277, label %3278, label %3295

3278:                                             ; preds = %3273
  %3279 = load i32, ptr %74, align 4, !tbaa !5
  %3280 = call ptr @__errno_location() #10
  store i32 %3279, ptr %3280, align 4, !tbaa !5
  %3281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3282 = load i32, ptr @test_count, align 4, !tbaa !5
  %3283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3284 = load i32, ptr %3283, align 4, !tbaa !5
  %3285 = call ptr @s2n_strerror(i32 noundef %3284, ptr noundef @.str.4)
  %3286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3287 = load i32, ptr %3286, align 4, !tbaa !5
  %3288 = call ptr @s2n_strerror_debug(i32 noundef %3287, ptr noundef @.str.4)
  %3289 = call ptr @__errno_location() #10
  %3290 = load i32, ptr %3289, align 4, !tbaa !5
  %3291 = call ptr @strerror(i32 noundef %3290) #9
  %3292 = call ptr @__errno_location() #10
  %3293 = load i32, ptr %3292, align 4, !tbaa !5
  %3294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3281, ptr noundef @.str.2, i32 noundef %3282, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 165, ptr noundef %3285, ptr noundef %3288, ptr noundef %3291, i32 noundef %3293) #9
  br label %3312

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

3312:                                             ; preds = %3295, %3278
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %3313

3313:                                             ; preds = %3312
  br label %3314

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

3315:                                             ; No predecessors!
  br label %3316

3316:                                             ; preds = %3315
  br label %3317

3317:                                             ; preds = %3316, %3258
  br label %3318

3318:                                             ; preds = %3317
  br label %3319

3319:                                             ; preds = %3318
  br label %3320

3320:                                             ; preds = %3319
  %3321 = load i32, ptr @test_count, align 4, !tbaa !5
  %3322 = add nsw i32 %3321, 1
  store i32 %3322, ptr @test_count, align 4, !tbaa !5
  %3323 = load ptr, ptr %73, align 8, !tbaa !9
  %3324 = icmp eq ptr %3323, null
  br i1 %3324, label %3325, label %3378

3325:                                             ; preds = %3320
  br label %3326

3326:                                             ; preds = %3325
  br label %3327

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

3334:                                             ; preds = %3327
  %3335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3336 = call i32 @fileno(ptr noundef %3335) #9
  %3337 = call i32 @isatty(i32 noundef %3336) #9
  %3338 = icmp ne i32 %3337, 0
  br i1 %3338, label %3339, label %3356

3339:                                             ; preds = %3334
  %3340 = load i32, ptr %75, align 4, !tbaa !5
  %3341 = call ptr @__errno_location() #10
  store i32 %3340, ptr %3341, align 4, !tbaa !5
  %3342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3343 = load i32, ptr @test_count, align 4, !tbaa !5
  %3344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3345 = load i32, ptr %3344, align 4, !tbaa !5
  %3346 = call ptr @s2n_strerror(i32 noundef %3345, ptr noundef @.str.4)
  %3347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3348 = load i32, ptr %3347, align 4, !tbaa !5
  %3349 = call ptr @s2n_strerror_debug(i32 noundef %3348, ptr noundef @.str.4)
  %3350 = call ptr @__errno_location() #10
  %3351 = load i32, ptr %3350, align 4, !tbaa !5
  %3352 = call ptr @strerror(i32 noundef %3351) #9
  %3353 = call ptr @__errno_location() #10
  %3354 = load i32, ptr %3353, align 4, !tbaa !5
  %3355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3342, ptr noundef @.str.2, i32 noundef %3343, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 166, ptr noundef %3346, ptr noundef %3349, ptr noundef %3352, i32 noundef %3354) #9
  br label %3373

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

3373:                                             ; preds = %3356, %3339
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #9
  br label %3374

3374:                                             ; preds = %3373
  br label %3375

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

3376:                                             ; No predecessors!
  br label %3377

3377:                                             ; preds = %3376
  br label %3378

3378:                                             ; preds = %3377, %3320
  br label %3379

3379:                                             ; preds = %3378
  br label %3380

3380:                                             ; preds = %3379
  br label %3381

3381:                                             ; preds = %3380
  %3382 = load i32, ptr @test_count, align 4, !tbaa !5
  %3383 = add nsw i32 %3382, 1
  store i32 %3383, ptr @test_count, align 4, !tbaa !5
  %3384 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 3), align 8, !tbaa !18
  %3385 = load ptr, ptr %65, align 8, !tbaa !9
  %3386 = call i32 %3384(ptr noundef %3385, ptr noundef %68)
  %3387 = icmp eq i32 %3386, -1
  br i1 %3387, label %3388, label %3441

3388:                                             ; preds = %3381
  br label %3389

3389:                                             ; preds = %3388
  br label %3390

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

3397:                                             ; preds = %3390
  %3398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3399 = call i32 @fileno(ptr noundef %3398) #9
  %3400 = call i32 @isatty(i32 noundef %3399) #9
  %3401 = icmp ne i32 %3400, 0
  br i1 %3401, label %3402, label %3419

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

3419:                                             ; preds = %3397, %3390
  %3420 = load i32, ptr %76, align 4, !tbaa !5
  %3421 = call ptr @__errno_location() #10
  store i32 %3420, ptr %3421, align 4, !tbaa !5
  %3422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3423 = load i32, ptr @test_count, align 4, !tbaa !5
  %3424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3425 = load i32, ptr %3424, align 4, !tbaa !5
  %3426 = call ptr @s2n_strerror(i32 noundef %3425, ptr noundef @.str.4)
  %3427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3428 = load i32, ptr %3427, align 4, !tbaa !5
  %3429 = call ptr @s2n_strerror_debug(i32 noundef %3428, ptr noundef @.str.4)
  %3430 = call ptr @__errno_location() #10
  %3431 = load i32, ptr %3430, align 4, !tbaa !5
  %3432 = call ptr @strerror(i32 noundef %3431) #9
  %3433 = call ptr @__errno_location() #10
  %3434 = load i32, ptr %3433, align 4, !tbaa !5
  %3435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3422, ptr noundef @.str.5, i32 noundef %3423, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 168, ptr noundef %3426, ptr noundef %3429, ptr noundef %3432, i32 noundef %3434) #9
  br label %3436

3436:                                             ; preds = %3419, %3402
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %3437

3437:                                             ; preds = %3436
  br label %3438

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

3439:                                             ; No predecessors!
  br label %3440

3440:                                             ; preds = %3439
  br label %3441

3441:                                             ; preds = %3440, %3381
  br label %3442

3442:                                             ; preds = %3441
  br label %3443

3443:                                             ; preds = %3442
  call void @llvm.lifetime.start.p0(i64 2, ptr %77) #9
  store i16 0, ptr %77, align 2, !tbaa !19
  br label %3444

3444:                                             ; preds = %3443
  %3445 = load i32, ptr @test_count, align 4, !tbaa !5
  %3446 = add nsw i32 %3445, 1
  store i32 %3446, ptr @test_count, align 4, !tbaa !5
  %3447 = call i32 @s2n_stuffer_read_uint16(ptr noundef %68, ptr noundef %77)
  %3448 = icmp eq i32 %3447, -1
  br i1 %3448, label %3449, label %3502

3449:                                             ; preds = %3444
  br label %3450

3450:                                             ; preds = %3449
  br label %3451

3451:                                             ; preds = %3450
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #9
  %3452 = call ptr @__errno_location() #10
  %3453 = load i32, ptr %3452, align 4, !tbaa !5
  store i32 %3453, ptr %78, align 4, !tbaa !5
  %3454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3455 = call i32 @s2n_print_stacktrace(ptr noundef %3454)
  %3456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3457 = trunc i8 %3456 to i1
  br i1 %3457, label %3458, label %3480

3458:                                             ; preds = %3451
  %3459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3460 = call i32 @fileno(ptr noundef %3459) #9
  %3461 = call i32 @isatty(i32 noundef %3460) #9
  %3462 = icmp ne i32 %3461, 0
  br i1 %3462, label %3463, label %3480

3463:                                             ; preds = %3458
  %3464 = load i32, ptr %78, align 4, !tbaa !5
  %3465 = call ptr @__errno_location() #10
  store i32 %3464, ptr %3465, align 4, !tbaa !5
  %3466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3467 = load i32, ptr @test_count, align 4, !tbaa !5
  %3468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3469 = load i32, ptr %3468, align 4, !tbaa !5
  %3470 = call ptr @s2n_strerror(i32 noundef %3469, ptr noundef @.str.4)
  %3471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3472 = load i32, ptr %3471, align 4, !tbaa !5
  %3473 = call ptr @s2n_strerror_debug(i32 noundef %3472, ptr noundef @.str.4)
  %3474 = call ptr @__errno_location() #10
  %3475 = load i32, ptr %3474, align 4, !tbaa !5
  %3476 = call ptr @strerror(i32 noundef %3475) #9
  %3477 = call ptr @__errno_location() #10
  %3478 = load i32, ptr %3477, align 4, !tbaa !5
  %3479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3466, ptr noundef @.str.2, i32 noundef %3467, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 171, ptr noundef %3470, ptr noundef %3473, ptr noundef %3476, i32 noundef %3478) #9
  br label %3497

3480:                                             ; preds = %3458, %3451
  %3481 = load i32, ptr %78, align 4, !tbaa !5
  %3482 = call ptr @__errno_location() #10
  store i32 %3481, ptr %3482, align 4, !tbaa !5
  %3483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3484 = load i32, ptr @test_count, align 4, !tbaa !5
  %3485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3486 = load i32, ptr %3485, align 4, !tbaa !5
  %3487 = call ptr @s2n_strerror(i32 noundef %3486, ptr noundef @.str.4)
  %3488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3489 = load i32, ptr %3488, align 4, !tbaa !5
  %3490 = call ptr @s2n_strerror_debug(i32 noundef %3489, ptr noundef @.str.4)
  %3491 = call ptr @__errno_location() #10
  %3492 = load i32, ptr %3491, align 4, !tbaa !5
  %3493 = call ptr @strerror(i32 noundef %3492) #9
  %3494 = call ptr @__errno_location() #10
  %3495 = load i32, ptr %3494, align 4, !tbaa !5
  %3496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3483, ptr noundef @.str.5, i32 noundef %3484, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 171, ptr noundef %3487, ptr noundef %3490, ptr noundef %3493, i32 noundef %3495) #9
  br label %3497

3497:                                             ; preds = %3480, %3463
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %3498

3498:                                             ; preds = %3497
  br label %3499

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

3500:                                             ; No predecessors!
  br label %3501

3501:                                             ; preds = %3500
  br label %3502

3502:                                             ; preds = %3501, %3444
  br label %3503

3503:                                             ; preds = %3502
  br label %3504

3504:                                             ; preds = %3503
  br label %3505

3505:                                             ; preds = %3504
  %3506 = load i32, ptr @test_count, align 4, !tbaa !5
  %3507 = add nsw i32 %3506, 1
  store i32 %3507, ptr @test_count, align 4, !tbaa !5
  %3508 = load i16, ptr %77, align 2, !tbaa !19
  %3509 = zext i16 %3508 to i32
  %3510 = getelementptr inbounds %struct.s2n_stuffer, ptr %68, i32 0, i32 2
  %3511 = load i32, ptr %3510, align 4, !tbaa !20
  %3512 = getelementptr inbounds %struct.s2n_stuffer, ptr %68, i32 0, i32 1
  %3513 = load i32, ptr %3512, align 8, !tbaa !23
  %3514 = sub i32 %3511, %3513
  %3515 = icmp eq i32 %3509, %3514
  br i1 %3515, label %3569, label %3516

3516:                                             ; preds = %3505
  br label %3517

3517:                                             ; preds = %3516
  br label %3518

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

3525:                                             ; preds = %3518
  %3526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3527 = call i32 @fileno(ptr noundef %3526) #9
  %3528 = call i32 @isatty(i32 noundef %3527) #9
  %3529 = icmp ne i32 %3528, 0
  br i1 %3529, label %3530, label %3547

3530:                                             ; preds = %3525
  %3531 = load i32, ptr %79, align 4, !tbaa !5
  %3532 = call ptr @__errno_location() #10
  store i32 %3531, ptr %3532, align 4, !tbaa !5
  %3533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3534 = load i32, ptr @test_count, align 4, !tbaa !5
  %3535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3536 = load i32, ptr %3535, align 4, !tbaa !5
  %3537 = call ptr @s2n_strerror(i32 noundef %3536, ptr noundef @.str.4)
  %3538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3539 = load i32, ptr %3538, align 4, !tbaa !5
  %3540 = call ptr @s2n_strerror_debug(i32 noundef %3539, ptr noundef @.str.4)
  %3541 = call ptr @__errno_location() #10
  %3542 = load i32, ptr %3541, align 4, !tbaa !5
  %3543 = call ptr @strerror(i32 noundef %3542) #9
  %3544 = call ptr @__errno_location() #10
  %3545 = load i32, ptr %3544, align 4, !tbaa !5
  %3546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3533, ptr noundef @.str.2, i32 noundef %3534, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3537, ptr noundef %3540, ptr noundef %3543, i32 noundef %3545) #9
  br label %3564

3547:                                             ; preds = %3525, %3518
  %3548 = load i32, ptr %79, align 4, !tbaa !5
  %3549 = call ptr @__errno_location() #10
  store i32 %3548, ptr %3549, align 4, !tbaa !5
  %3550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3551 = load i32, ptr @test_count, align 4, !tbaa !5
  %3552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3553 = load i32, ptr %3552, align 4, !tbaa !5
  %3554 = call ptr @s2n_strerror(i32 noundef %3553, ptr noundef @.str.4)
  %3555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3556 = load i32, ptr %3555, align 4, !tbaa !5
  %3557 = call ptr @s2n_strerror_debug(i32 noundef %3556, ptr noundef @.str.4)
  %3558 = call ptr @__errno_location() #10
  %3559 = load i32, ptr %3558, align 4, !tbaa !5
  %3560 = call ptr @strerror(i32 noundef %3559) #9
  %3561 = call ptr @__errno_location() #10
  %3562 = load i32, ptr %3561, align 4, !tbaa !5
  %3563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3550, ptr noundef @.str.5, i32 noundef %3551, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3554, ptr noundef %3557, ptr noundef %3560, i32 noundef %3562) #9
  br label %3564

3564:                                             ; preds = %3547, %3530
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %3565

3565:                                             ; preds = %3564
  br label %3566

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

3567:                                             ; No predecessors!
  br label %3568

3568:                                             ; preds = %3567
  br label %3569

3569:                                             ; preds = %3568, %3505
  br label %3570

3570:                                             ; preds = %3569
  br label %3571

3571:                                             ; preds = %3570
  br label %3572

3572:                                             ; preds = %3571
  %3573 = load i32, ptr @test_count, align 4, !tbaa !5
  %3574 = add nsw i32 %3573, 1
  store i32 %3574, ptr @test_count, align 4, !tbaa !5
  %3575 = load i16, ptr %77, align 2, !tbaa !19
  %3576 = zext i16 %3575 to i64
  %3577 = load ptr, ptr %70, align 8, !tbaa !9
  %3578 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %3577, i32 0, i32 0
  %3579 = load i8, ptr %3578, align 8, !tbaa !24
  %3580 = zext i8 %3579 to i64
  %3581 = mul i64 %3580, 2
  %3582 = icmp eq i64 %3576, %3581
  br i1 %3582, label %3636, label %3583

3583:                                             ; preds = %3572
  br label %3584

3584:                                             ; preds = %3583
  br label %3585

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

3592:                                             ; preds = %3585
  %3593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3594 = call i32 @fileno(ptr noundef %3593) #9
  %3595 = call i32 @isatty(i32 noundef %3594) #9
  %3596 = icmp ne i32 %3595, 0
  br i1 %3596, label %3597, label %3614

3597:                                             ; preds = %3592
  %3598 = load i32, ptr %80, align 4, !tbaa !5
  %3599 = call ptr @__errno_location() #10
  store i32 %3598, ptr %3599, align 4, !tbaa !5
  %3600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3601 = load i32, ptr @test_count, align 4, !tbaa !5
  %3602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3603 = load i32, ptr %3602, align 4, !tbaa !5
  %3604 = call ptr @s2n_strerror(i32 noundef %3603, ptr noundef @.str.4)
  %3605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3606 = load i32, ptr %3605, align 4, !tbaa !5
  %3607 = call ptr @s2n_strerror_debug(i32 noundef %3606, ptr noundef @.str.4)
  %3608 = call ptr @__errno_location() #10
  %3609 = load i32, ptr %3608, align 4, !tbaa !5
  %3610 = call ptr @strerror(i32 noundef %3609) #9
  %3611 = call ptr @__errno_location() #10
  %3612 = load i32, ptr %3611, align 4, !tbaa !5
  %3613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3600, ptr noundef @.str.2, i32 noundef %3601, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3604, ptr noundef %3607, ptr noundef %3610, i32 noundef %3612) #9
  br label %3631

3614:                                             ; preds = %3592, %3585
  %3615 = load i32, ptr %80, align 4, !tbaa !5
  %3616 = call ptr @__errno_location() #10
  store i32 %3615, ptr %3616, align 4, !tbaa !5
  %3617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3618 = load i32, ptr @test_count, align 4, !tbaa !5
  %3619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3620 = load i32, ptr %3619, align 4, !tbaa !5
  %3621 = call ptr @s2n_strerror(i32 noundef %3620, ptr noundef @.str.4)
  %3622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3623 = load i32, ptr %3622, align 4, !tbaa !5
  %3624 = call ptr @s2n_strerror_debug(i32 noundef %3623, ptr noundef @.str.4)
  %3625 = call ptr @__errno_location() #10
  %3626 = load i32, ptr %3625, align 4, !tbaa !5
  %3627 = call ptr @strerror(i32 noundef %3626) #9
  %3628 = call ptr @__errno_location() #10
  %3629 = load i32, ptr %3628, align 4, !tbaa !5
  %3630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3617, ptr noundef @.str.5, i32 noundef %3618, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3621, ptr noundef %3624, ptr noundef %3627, i32 noundef %3629) #9
  br label %3631

3631:                                             ; preds = %3614, %3597
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %3632

3632:                                             ; preds = %3631
  br label %3633

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

3634:                                             ; No predecessors!
  br label %3635

3635:                                             ; preds = %3634
  br label %3636

3636:                                             ; preds = %3635, %3572
  br label %3637

3637:                                             ; preds = %3636
  br label %3638

3638:                                             ; preds = %3637
  call void @llvm.lifetime.start.p0(i64 2, ptr %81) #9
  store i16 0, ptr %81, align 2, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #9
  store i64 0, ptr %82, align 8, !tbaa !26
  br label %3639

3639:                                             ; preds = %3780, %3638
  %3640 = load i64, ptr %82, align 8, !tbaa !26
  %3641 = load ptr, ptr %70, align 8, !tbaa !9
  %3642 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %3641, i32 0, i32 0
  %3643 = load i8, ptr %3642, align 8, !tbaa !24
  %3644 = zext i8 %3643 to i64
  %3645 = icmp ult i64 %3640, %3644
  br i1 %3645, label %3647, label %3646

3646:                                             ; preds = %3639
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  br label %3783

3647:                                             ; preds = %3639
  br label %3648

3648:                                             ; preds = %3647
  %3649 = load i32, ptr @test_count, align 4, !tbaa !5
  %3650 = add nsw i32 %3649, 1
  store i32 %3650, ptr @test_count, align 4, !tbaa !5
  %3651 = call i32 @s2n_stuffer_read_uint16(ptr noundef %68, ptr noundef %81)
  %3652 = icmp eq i32 %3651, -1
  br i1 %3652, label %3653, label %3706

3653:                                             ; preds = %3648
  br label %3654

3654:                                             ; preds = %3653
  br label %3655

3655:                                             ; preds = %3654
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #9
  %3656 = call ptr @__errno_location() #10
  %3657 = load i32, ptr %3656, align 4, !tbaa !5
  store i32 %3657, ptr %83, align 4, !tbaa !5
  %3658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3659 = call i32 @s2n_print_stacktrace(ptr noundef %3658)
  %3660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3661 = trunc i8 %3660 to i1
  br i1 %3661, label %3662, label %3684

3662:                                             ; preds = %3655
  %3663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3664 = call i32 @fileno(ptr noundef %3663) #9
  %3665 = call i32 @isatty(i32 noundef %3664) #9
  %3666 = icmp ne i32 %3665, 0
  br i1 %3666, label %3667, label %3684

3667:                                             ; preds = %3662
  %3668 = load i32, ptr %83, align 4, !tbaa !5
  %3669 = call ptr @__errno_location() #10
  store i32 %3668, ptr %3669, align 4, !tbaa !5
  %3670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3671 = load i32, ptr @test_count, align 4, !tbaa !5
  %3672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3673 = load i32, ptr %3672, align 4, !tbaa !5
  %3674 = call ptr @s2n_strerror(i32 noundef %3673, ptr noundef @.str.4)
  %3675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3676 = load i32, ptr %3675, align 4, !tbaa !5
  %3677 = call ptr @s2n_strerror_debug(i32 noundef %3676, ptr noundef @.str.4)
  %3678 = call ptr @__errno_location() #10
  %3679 = load i32, ptr %3678, align 4, !tbaa !5
  %3680 = call ptr @strerror(i32 noundef %3679) #9
  %3681 = call ptr @__errno_location() #10
  %3682 = load i32, ptr %3681, align 4, !tbaa !5
  %3683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3670, ptr noundef @.str.2, i32 noundef %3671, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 177, ptr noundef %3674, ptr noundef %3677, ptr noundef %3680, i32 noundef %3682) #9
  br label %3701

3684:                                             ; preds = %3662, %3655
  %3685 = load i32, ptr %83, align 4, !tbaa !5
  %3686 = call ptr @__errno_location() #10
  store i32 %3685, ptr %3686, align 4, !tbaa !5
  %3687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3688 = load i32, ptr @test_count, align 4, !tbaa !5
  %3689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3690 = load i32, ptr %3689, align 4, !tbaa !5
  %3691 = call ptr @s2n_strerror(i32 noundef %3690, ptr noundef @.str.4)
  %3692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3693 = load i32, ptr %3692, align 4, !tbaa !5
  %3694 = call ptr @s2n_strerror_debug(i32 noundef %3693, ptr noundef @.str.4)
  %3695 = call ptr @__errno_location() #10
  %3696 = load i32, ptr %3695, align 4, !tbaa !5
  %3697 = call ptr @strerror(i32 noundef %3696) #9
  %3698 = call ptr @__errno_location() #10
  %3699 = load i32, ptr %3698, align 4, !tbaa !5
  %3700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3687, ptr noundef @.str.5, i32 noundef %3688, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 177, ptr noundef %3691, ptr noundef %3694, ptr noundef %3697, i32 noundef %3699) #9
  br label %3701

3701:                                             ; preds = %3684, %3667
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  br label %3702

3702:                                             ; preds = %3701
  br label %3703

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

3704:                                             ; No predecessors!
  br label %3705

3705:                                             ; preds = %3704
  br label %3706

3706:                                             ; preds = %3705, %3648
  br label %3707

3707:                                             ; preds = %3706
  br label %3708

3708:                                             ; preds = %3707
  br label %3709

3709:                                             ; preds = %3708
  %3710 = load i32, ptr @test_count, align 4, !tbaa !5
  %3711 = add nsw i32 %3710, 1
  store i32 %3711, ptr @test_count, align 4, !tbaa !5
  %3712 = load i16, ptr %81, align 2, !tbaa !19
  %3713 = zext i16 %3712 to i32
  %3714 = load ptr, ptr %70, align 8, !tbaa !9
  %3715 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %3714, i32 0, i32 1
  %3716 = load ptr, ptr %3715, align 8, !tbaa !28
  %3717 = load i64, ptr %82, align 8, !tbaa !26
  %3718 = getelementptr inbounds ptr, ptr %3716, i64 %3717
  %3719 = load ptr, ptr %3718, align 8, !tbaa !9
  %3720 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %3719, i32 0, i32 0
  %3721 = load i16, ptr %3720, align 8, !tbaa !29
  %3722 = zext i16 %3721 to i32
  %3723 = icmp eq i32 %3713, %3722
  br i1 %3723, label %3777, label %3724

3724:                                             ; preds = %3709
  br label %3725

3725:                                             ; preds = %3724
  br label %3726

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

3733:                                             ; preds = %3726
  %3734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3735 = call i32 @fileno(ptr noundef %3734) #9
  %3736 = call i32 @isatty(i32 noundef %3735) #9
  %3737 = icmp ne i32 %3736, 0
  br i1 %3737, label %3738, label %3755

3738:                                             ; preds = %3733
  %3739 = load i32, ptr %84, align 4, !tbaa !5
  %3740 = call ptr @__errno_location() #10
  store i32 %3739, ptr %3740, align 4, !tbaa !5
  %3741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3742 = load i32, ptr @test_count, align 4, !tbaa !5
  %3743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3744 = load i32, ptr %3743, align 4, !tbaa !5
  %3745 = call ptr @s2n_strerror(i32 noundef %3744, ptr noundef @.str.4)
  %3746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3747 = load i32, ptr %3746, align 4, !tbaa !5
  %3748 = call ptr @s2n_strerror_debug(i32 noundef %3747, ptr noundef @.str.4)
  %3749 = call ptr @__errno_location() #10
  %3750 = load i32, ptr %3749, align 4, !tbaa !5
  %3751 = call ptr @strerror(i32 noundef %3750) #9
  %3752 = call ptr @__errno_location() #10
  %3753 = load i32, ptr %3752, align 4, !tbaa !5
  %3754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3741, ptr noundef @.str.2, i32 noundef %3742, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3745, ptr noundef %3748, ptr noundef %3751, i32 noundef %3753) #9
  br label %3772

3755:                                             ; preds = %3733, %3726
  %3756 = load i32, ptr %84, align 4, !tbaa !5
  %3757 = call ptr @__errno_location() #10
  store i32 %3756, ptr %3757, align 4, !tbaa !5
  %3758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3759 = load i32, ptr @test_count, align 4, !tbaa !5
  %3760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3761 = load i32, ptr %3760, align 4, !tbaa !5
  %3762 = call ptr @s2n_strerror(i32 noundef %3761, ptr noundef @.str.4)
  %3763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3764 = load i32, ptr %3763, align 4, !tbaa !5
  %3765 = call ptr @s2n_strerror_debug(i32 noundef %3764, ptr noundef @.str.4)
  %3766 = call ptr @__errno_location() #10
  %3767 = load i32, ptr %3766, align 4, !tbaa !5
  %3768 = call ptr @strerror(i32 noundef %3767) #9
  %3769 = call ptr @__errno_location() #10
  %3770 = load i32, ptr %3769, align 4, !tbaa !5
  %3771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3758, ptr noundef @.str.5, i32 noundef %3759, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3762, ptr noundef %3765, ptr noundef %3768, i32 noundef %3770) #9
  br label %3772

3772:                                             ; preds = %3755, %3738
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %3773

3773:                                             ; preds = %3772
  br label %3774

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

3775:                                             ; No predecessors!
  br label %3776

3776:                                             ; preds = %3775
  br label %3777

3777:                                             ; preds = %3776, %3709
  br label %3778

3778:                                             ; preds = %3777
  br label %3779

3779:                                             ; preds = %3778
  br label %3780

3780:                                             ; preds = %3779
  %3781 = load i64, ptr %82, align 8, !tbaa !26
  %3782 = add i64 %3781, 1
  store i64 %3782, ptr %82, align 8, !tbaa !26
  br label %3639, !llvm.loop !72

3783:                                             ; preds = %3646
  br label %3784

3784:                                             ; preds = %3783
  %3785 = load i32, ptr @test_count, align 4, !tbaa !5
  %3786 = add nsw i32 %3785, 1
  store i32 %3786, ptr @test_count, align 4, !tbaa !5
  %3787 = load ptr, ptr %65, align 8, !tbaa !9
  %3788 = call i32 @s2n_connection_free(ptr noundef %3787)
  %3789 = icmp eq i32 %3788, -1
  br i1 %3789, label %3790, label %3843

3790:                                             ; preds = %3784
  br label %3791

3791:                                             ; preds = %3790
  br label %3792

3792:                                             ; preds = %3791
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  %3793 = call ptr @__errno_location() #10
  %3794 = load i32, ptr %3793, align 4, !tbaa !5
  store i32 %3794, ptr %85, align 4, !tbaa !5
  %3795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3796 = call i32 @s2n_print_stacktrace(ptr noundef %3795)
  %3797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3798 = trunc i8 %3797 to i1
  br i1 %3798, label %3799, label %3821

3799:                                             ; preds = %3792
  %3800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3801 = call i32 @fileno(ptr noundef %3800) #9
  %3802 = call i32 @isatty(i32 noundef %3801) #9
  %3803 = icmp ne i32 %3802, 0
  br i1 %3803, label %3804, label %3821

3804:                                             ; preds = %3799
  %3805 = load i32, ptr %85, align 4, !tbaa !5
  %3806 = call ptr @__errno_location() #10
  store i32 %3805, ptr %3806, align 4, !tbaa !5
  %3807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3808 = load i32, ptr @test_count, align 4, !tbaa !5
  %3809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3810 = load i32, ptr %3809, align 4, !tbaa !5
  %3811 = call ptr @s2n_strerror(i32 noundef %3810, ptr noundef @.str.4)
  %3812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3813 = load i32, ptr %3812, align 4, !tbaa !5
  %3814 = call ptr @s2n_strerror_debug(i32 noundef %3813, ptr noundef @.str.4)
  %3815 = call ptr @__errno_location() #10
  %3816 = load i32, ptr %3815, align 4, !tbaa !5
  %3817 = call ptr @strerror(i32 noundef %3816) #9
  %3818 = call ptr @__errno_location() #10
  %3819 = load i32, ptr %3818, align 4, !tbaa !5
  %3820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3807, ptr noundef @.str.2, i32 noundef %3808, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3811, ptr noundef %3814, ptr noundef %3817, i32 noundef %3819) #9
  br label %3838

3821:                                             ; preds = %3799, %3792
  %3822 = load i32, ptr %85, align 4, !tbaa !5
  %3823 = call ptr @__errno_location() #10
  store i32 %3822, ptr %3823, align 4, !tbaa !5
  %3824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3825 = load i32, ptr @test_count, align 4, !tbaa !5
  %3826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3827 = load i32, ptr %3826, align 4, !tbaa !5
  %3828 = call ptr @s2n_strerror(i32 noundef %3827, ptr noundef @.str.4)
  %3829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3830 = load i32, ptr %3829, align 4, !tbaa !5
  %3831 = call ptr @s2n_strerror_debug(i32 noundef %3830, ptr noundef @.str.4)
  %3832 = call ptr @__errno_location() #10
  %3833 = load i32, ptr %3832, align 4, !tbaa !5
  %3834 = call ptr @strerror(i32 noundef %3833) #9
  %3835 = call ptr @__errno_location() #10
  %3836 = load i32, ptr %3835, align 4, !tbaa !5
  %3837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3824, ptr noundef @.str.5, i32 noundef %3825, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3828, ptr noundef %3831, ptr noundef %3834, i32 noundef %3836) #9
  br label %3838

3838:                                             ; preds = %3821, %3804
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %3839

3839:                                             ; preds = %3838
  br label %3840

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

3841:                                             ; No predecessors!
  br label %3842

3842:                                             ; preds = %3841
  br label %3843

3843:                                             ; preds = %3842, %3784
  br label %3844

3844:                                             ; preds = %3843
  br label %3845

3845:                                             ; preds = %3844
  call void @llvm.lifetime.end.p0(i64 2, ptr %81) #9
  call void @llvm.lifetime.end.p0(i64 2, ptr %77) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  %3846 = call i32 @s2n_stuffer_free(ptr noundef %68)
  call void @llvm.lifetime.end.p0(i64 40, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %86) #9
  store ptr %34, ptr %86, align 8, !tbaa !9
  %3847 = getelementptr inbounds ptr, ptr %86, i64 1
  store ptr %34, ptr %3847, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #9
  store i64 0, ptr %87, align 8, !tbaa !26
  br label %3848

3848:                                             ; preds = %5676, %3845
  %3849 = load i64, ptr %87, align 8, !tbaa !26
  %3850 = icmp ult i64 %3849, 1
  br i1 %3850, label %3852, label %3851

3851:                                             ; preds = %3848
  store i32 348, ptr %88, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #9
  br label %5679

3852:                                             ; preds = %3848
  br label %3853

3853:                                             ; preds = %3852
  %3854 = load i32, ptr @test_count, align 4, !tbaa !5
  %3855 = add nsw i32 %3854, 1
  store i32 %3855, ptr @test_count, align 4, !tbaa !5
  %3856 = call i32 (...) @s2n_enable_tls13_in_test()
  %3857 = icmp eq i32 %3856, -1
  br i1 %3857, label %3858, label %3911

3858:                                             ; preds = %3853
  br label %3859

3859:                                             ; preds = %3858
  br label %3860

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

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

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

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

3906:                                             ; preds = %3889, %3872
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %3907

3907:                                             ; preds = %3906
  br label %3908

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

3909:                                             ; No predecessors!
  br label %3910

3910:                                             ; preds = %3909
  br label %3911

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

3912:                                             ; preds = %3911
  br label %3913

3913:                                             ; preds = %3912
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #9
  store ptr null, ptr %90, align 8, !tbaa !9
  br label %3914

3914:                                             ; preds = %3913
  %3915 = load i32, ptr @test_count, align 4, !tbaa !5
  %3916 = add nsw i32 %3915, 1
  store i32 %3916, ptr @test_count, align 4, !tbaa !5
  %3917 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3917, ptr %90, align 8, !tbaa !9
  %3918 = icmp eq ptr %3917, null
  br i1 %3918, label %3919, label %3972

3919:                                             ; preds = %3914
  br label %3920

3920:                                             ; preds = %3919
  br label %3921

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

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

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

3950:                                             ; preds = %3928, %3921
  %3951 = load i32, ptr %91, align 4, !tbaa !5
  %3952 = call ptr @__errno_location() #10
  store i32 %3951, ptr %3952, align 4, !tbaa !5
  %3953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3954 = load i32, ptr @test_count, align 4, !tbaa !5
  %3955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3956 = load i32, ptr %3955, align 4, !tbaa !5
  %3957 = call ptr @s2n_strerror(i32 noundef %3956, ptr noundef @.str.4)
  %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_debug(i32 noundef %3959, ptr noundef @.str.4)
  %3961 = call ptr @__errno_location() #10
  %3962 = load i32, ptr %3961, align 4, !tbaa !5
  %3963 = call ptr @strerror(i32 noundef %3962) #9
  %3964 = call ptr @__errno_location() #10
  %3965 = load i32, ptr %3964, align 4, !tbaa !5
  %3966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3953, ptr noundef @.str.5, i32 noundef %3954, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 195, ptr noundef %3957, ptr noundef %3960, ptr noundef %3963, i32 noundef %3965) #9
  br label %3967

3967:                                             ; preds = %3950, %3933
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  br label %3968

3968:                                             ; preds = %3967
  br label %3969

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

3970:                                             ; No predecessors!
  br label %3971

3971:                                             ; preds = %3970
  br label %3972

3972:                                             ; preds = %3971, %3914
  br label %3973

3973:                                             ; preds = %3972
  br label %3974

3974:                                             ; preds = %3973
  %3975 = load i64, ptr %87, align 8, !tbaa !26
  %3976 = getelementptr inbounds [1 x [2 x ptr]], ptr %86, i64 0, i64 %3975
  %3977 = getelementptr inbounds [2 x ptr], ptr %3976, i64 0, i64 0
  %3978 = load ptr, ptr %3977, align 16, !tbaa !9
  %3979 = load ptr, ptr %90, align 8, !tbaa !9
  %3980 = getelementptr inbounds %struct.s2n_connection, ptr %3979, i32 0, i32 2
  store ptr %3978, ptr %3980, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #9
  store ptr null, ptr %92, align 8, !tbaa !9
  br label %3981

3981:                                             ; preds = %3974
  %3982 = load i32, ptr @test_count, align 4, !tbaa !5
  %3983 = add nsw i32 %3982, 1
  store i32 %3983, ptr @test_count, align 4, !tbaa !5
  %3984 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3984, ptr %92, align 8, !tbaa !9
  %3985 = icmp eq ptr %3984, null
  br i1 %3985, label %3986, label %4039

3986:                                             ; preds = %3981
  br label %3987

3987:                                             ; preds = %3986
  br label %3988

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

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

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

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

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

4035:                                             ; preds = %4034
  br label %4036

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

4037:                                             ; No predecessors!
  br label %4038

4038:                                             ; preds = %4037
  br label %4039

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

4040:                                             ; preds = %4039
  br label %4041

4041:                                             ; preds = %4040
  %4042 = load i64, ptr %87, align 8, !tbaa !26
  %4043 = getelementptr inbounds [1 x [2 x ptr]], ptr %86, i64 0, i64 %4042
  %4044 = getelementptr inbounds [2 x ptr], ptr %4043, i64 0, i64 1
  %4045 = load ptr, ptr %4044, align 8, !tbaa !9
  %4046 = load ptr, ptr %92, align 8, !tbaa !9
  %4047 = getelementptr inbounds %struct.s2n_connection, ptr %4046, i32 0, i32 2
  store ptr %4045, ptr %4047, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 40, ptr %94) #9
  call void @llvm.memset.p0.i64(ptr align 8 %94, i8 0, i64 40, i1 false)
  br label %4048

4048:                                             ; preds = %4041
  %4049 = load i32, ptr @test_count, align 4, !tbaa !5
  %4050 = add nsw i32 %4049, 1
  store i32 %4050, ptr @test_count, align 4, !tbaa !5
  %4051 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %94, i32 noundef 0)
  %4052 = icmp eq i32 %4051, -1
  br i1 %4052, label %4053, label %4106

4053:                                             ; preds = %4048
  br label %4054

4054:                                             ; preds = %4053
  br label %4055

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

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

4067:                                             ; preds = %4062
  %4068 = load i32, ptr %95, align 4, !tbaa !5
  %4069 = call ptr @__errno_location() #10
  store i32 %4068, ptr %4069, align 4, !tbaa !5
  %4070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4071 = load i32, ptr @test_count, align 4, !tbaa !5
  %4072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  %4074 = call ptr @s2n_strerror(i32 noundef %4073, ptr noundef @.str.4)
  %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_debug(i32 noundef %4076, ptr noundef @.str.4)
  %4078 = call ptr @__errno_location() #10
  %4079 = load i32, ptr %4078, align 4, !tbaa !5
  %4080 = call ptr @strerror(i32 noundef %4079) #9
  %4081 = call ptr @__errno_location() #10
  %4082 = load i32, ptr %4081, align 4, !tbaa !5
  %4083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4070, ptr noundef @.str.2, i32 noundef %4071, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 203, ptr noundef %4074, ptr noundef %4077, ptr noundef %4080, i32 noundef %4082) #9
  br label %4101

4084:                                             ; preds = %4062, %4055
  %4085 = load i32, ptr %95, align 4, !tbaa !5
  %4086 = call ptr @__errno_location() #10
  store i32 %4085, ptr %4086, align 4, !tbaa !5
  %4087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4088 = load i32, ptr @test_count, align 4, !tbaa !5
  %4089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4090 = load i32, ptr %4089, align 4, !tbaa !5
  %4091 = call ptr @s2n_strerror(i32 noundef %4090, ptr noundef @.str.4)
  %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_debug(i32 noundef %4093, ptr noundef @.str.4)
  %4095 = call ptr @__errno_location() #10
  %4096 = load i32, ptr %4095, align 4, !tbaa !5
  %4097 = call ptr @strerror(i32 noundef %4096) #9
  %4098 = call ptr @__errno_location() #10
  %4099 = load i32, ptr %4098, align 4, !tbaa !5
  %4100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4087, ptr noundef @.str.5, i32 noundef %4088, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 203, ptr noundef %4091, ptr noundef %4094, ptr noundef %4097, i32 noundef %4099) #9
  br label %4101

4101:                                             ; preds = %4084, %4067
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  br label %4102

4102:                                             ; preds = %4101
  br label %4103

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

4104:                                             ; No predecessors!
  br label %4105

4105:                                             ; preds = %4104
  br label %4106

4106:                                             ; preds = %4105, %4048
  br label %4107

4107:                                             ; preds = %4106
  br label %4108

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

4109:                                             ; preds = %4108
  %4110 = load i32, ptr @test_count, align 4, !tbaa !5
  %4111 = add nsw i32 %4110, 1
  store i32 %4111, ptr @test_count, align 4, !tbaa !5
  %4112 = load ptr, ptr %92, align 8, !tbaa !9
  %4113 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %4112, ptr noundef %96)
  %4114 = icmp eq i32 %4113, -1
  br i1 %4114, label %4115, label %4168

4115:                                             ; preds = %4109
  br label %4116

4116:                                             ; preds = %4115
  br label %4117

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

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

4129:                                             ; preds = %4124
  %4130 = load i32, ptr %97, align 4, !tbaa !5
  %4131 = call ptr @__errno_location() #10
  store i32 %4130, ptr %4131, align 4, !tbaa !5
  %4132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4133 = load i32, ptr @test_count, align 4, !tbaa !5
  %4134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4135 = load i32, ptr %4134, align 4, !tbaa !5
  %4136 = call ptr @s2n_strerror(i32 noundef %4135, ptr noundef @.str.4)
  %4137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4138 = load i32, ptr %4137, align 4, !tbaa !5
  %4139 = call ptr @s2n_strerror_debug(i32 noundef %4138, ptr noundef @.str.4)
  %4140 = call ptr @__errno_location() #10
  %4141 = load i32, ptr %4140, align 4, !tbaa !5
  %4142 = call ptr @strerror(i32 noundef %4141) #9
  %4143 = call ptr @__errno_location() #10
  %4144 = load i32, ptr %4143, align 4, !tbaa !5
  %4145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4132, ptr noundef @.str.2, i32 noundef %4133, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4136, ptr noundef %4139, ptr noundef %4142, i32 noundef %4144) #9
  br label %4163

4146:                                             ; preds = %4124, %4117
  %4147 = load i32, ptr %97, align 4, !tbaa !5
  %4148 = call ptr @__errno_location() #10
  store i32 %4147, ptr %4148, align 4, !tbaa !5
  %4149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4150 = load i32, ptr @test_count, align 4, !tbaa !5
  %4151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  %4153 = call ptr @s2n_strerror(i32 noundef %4152, ptr noundef @.str.4)
  %4154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4155 = load i32, ptr %4154, align 4, !tbaa !5
  %4156 = call ptr @s2n_strerror_debug(i32 noundef %4155, ptr noundef @.str.4)
  %4157 = call ptr @__errno_location() #10
  %4158 = load i32, ptr %4157, align 4, !tbaa !5
  %4159 = call ptr @strerror(i32 noundef %4158) #9
  %4160 = call ptr @__errno_location() #10
  %4161 = load i32, ptr %4160, align 4, !tbaa !5
  %4162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4149, ptr noundef @.str.5, i32 noundef %4150, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4153, ptr noundef %4156, ptr noundef %4159, i32 noundef %4161) #9
  br label %4163

4163:                                             ; preds = %4146, %4129
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %4164

4164:                                             ; preds = %4163
  br label %4165

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

4166:                                             ; No predecessors!
  br label %4167

4167:                                             ; preds = %4166
  br label %4168

4168:                                             ; preds = %4167, %4109
  br label %4169

4169:                                             ; preds = %4168
  br label %4170

4170:                                             ; preds = %4169
  br label %4171

4171:                                             ; preds = %4170
  %4172 = load i32, ptr @test_count, align 4, !tbaa !5
  %4173 = add nsw i32 %4172, 1
  store i32 %4173, ptr @test_count, align 4, !tbaa !5
  %4174 = load ptr, ptr %96, align 8, !tbaa !9
  %4175 = icmp eq ptr %4174, null
  br i1 %4175, label %4176, label %4229

4176:                                             ; preds = %4171
  br label %4177

4177:                                             ; preds = %4176
  br label %4178

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

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

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

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

4224:                                             ; preds = %4207, %4190
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  br label %4225

4225:                                             ; preds = %4224
  br label %4226

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

4227:                                             ; No predecessors!
  br label %4228

4228:                                             ; preds = %4227
  br label %4229

4229:                                             ; preds = %4228, %4171
  br label %4230

4230:                                             ; preds = %4229
  br label %4231

4231:                                             ; preds = %4230
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #9
  store ptr null, ptr %99, align 8, !tbaa !9
  br label %4232

4232:                                             ; preds = %4231
  %4233 = load i32, ptr @test_count, align 4, !tbaa !5
  %4234 = add nsw i32 %4233, 1
  store i32 %4234, ptr @test_count, align 4, !tbaa !5
  %4235 = load ptr, ptr %92, align 8, !tbaa !9
  %4236 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %4235, ptr noundef %99)
  %4237 = icmp eq i32 %4236, -1
  br i1 %4237, label %4238, label %4291

4238:                                             ; preds = %4232
  br label %4239

4239:                                             ; preds = %4238
  br label %4240

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

4247:                                             ; preds = %4240
  %4248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4249 = call i32 @fileno(ptr noundef %4248) #9
  %4250 = call i32 @isatty(i32 noundef %4249) #9
  %4251 = icmp ne i32 %4250, 0
  br i1 %4251, label %4252, label %4269

4252:                                             ; preds = %4247
  %4253 = load i32, ptr %100, align 4, !tbaa !5
  %4254 = call ptr @__errno_location() #10
  store i32 %4253, ptr %4254, align 4, !tbaa !5
  %4255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4256 = load i32, ptr @test_count, align 4, !tbaa !5
  %4257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4258 = load i32, ptr %4257, align 4, !tbaa !5
  %4259 = call ptr @s2n_strerror(i32 noundef %4258, ptr noundef @.str.4)
  %4260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4261 = load i32, ptr %4260, align 4, !tbaa !5
  %4262 = call ptr @s2n_strerror_debug(i32 noundef %4261, ptr noundef @.str.4)
  %4263 = call ptr @__errno_location() #10
  %4264 = load i32, ptr %4263, align 4, !tbaa !5
  %4265 = call ptr @strerror(i32 noundef %4264) #9
  %4266 = call ptr @__errno_location() #10
  %4267 = load i32, ptr %4266, align 4, !tbaa !5
  %4268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4255, ptr noundef @.str.2, i32 noundef %4256, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 210, ptr noundef %4259, ptr noundef %4262, ptr noundef %4265, i32 noundef %4267) #9
  br label %4286

4269:                                             ; preds = %4247, %4240
  %4270 = load i32, ptr %100, align 4, !tbaa !5
  %4271 = call ptr @__errno_location() #10
  store i32 %4270, ptr %4271, align 4, !tbaa !5
  %4272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4273 = load i32, ptr @test_count, align 4, !tbaa !5
  %4274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4275 = load i32, ptr %4274, align 4, !tbaa !5
  %4276 = call ptr @s2n_strerror(i32 noundef %4275, ptr noundef @.str.4)
  %4277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4278 = load i32, ptr %4277, align 4, !tbaa !5
  %4279 = call ptr @s2n_strerror_debug(i32 noundef %4278, ptr noundef @.str.4)
  %4280 = call ptr @__errno_location() #10
  %4281 = load i32, ptr %4280, align 4, !tbaa !5
  %4282 = call ptr @strerror(i32 noundef %4281) #9
  %4283 = call ptr @__errno_location() #10
  %4284 = load i32, ptr %4283, align 4, !tbaa !5
  %4285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4272, ptr noundef @.str.5, i32 noundef %4273, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 210, ptr noundef %4276, ptr noundef %4279, ptr noundef %4282, i32 noundef %4284) #9
  br label %4286

4286:                                             ; preds = %4269, %4252
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  br label %4287

4287:                                             ; preds = %4286
  br label %4288

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

4289:                                             ; No predecessors!
  br label %4290

4290:                                             ; preds = %4289
  br label %4291

4291:                                             ; preds = %4290, %4232
  br label %4292

4292:                                             ; preds = %4291
  br label %4293

4293:                                             ; preds = %4292
  br label %4294

4294:                                             ; preds = %4293
  %4295 = load i32, ptr @test_count, align 4, !tbaa !5
  %4296 = add nsw i32 %4295, 1
  store i32 %4296, ptr @test_count, align 4, !tbaa !5
  %4297 = load ptr, ptr %99, align 8, !tbaa !9
  %4298 = icmp eq ptr %4297, null
  br i1 %4298, label %4299, label %4352

4299:                                             ; preds = %4294
  br label %4300

4300:                                             ; preds = %4299
  br label %4301

4301:                                             ; preds = %4300
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #9
  %4302 = call ptr @__errno_location() #10
  %4303 = load i32, ptr %4302, align 4, !tbaa !5
  store i32 %4303, ptr %101, align 4, !tbaa !5
  %4304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4305 = call i32 @s2n_print_stacktrace(ptr noundef %4304)
  %4306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4307 = trunc i8 %4306 to i1
  br i1 %4307, label %4308, label %4330

4308:                                             ; preds = %4301
  %4309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4310 = call i32 @fileno(ptr noundef %4309) #9
  %4311 = call i32 @isatty(i32 noundef %4310) #9
  %4312 = icmp ne i32 %4311, 0
  br i1 %4312, label %4313, label %4330

4313:                                             ; preds = %4308
  %4314 = load i32, ptr %101, align 4, !tbaa !5
  %4315 = call ptr @__errno_location() #10
  store i32 %4314, ptr %4315, align 4, !tbaa !5
  %4316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4317 = load i32, ptr @test_count, align 4, !tbaa !5
  %4318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4319 = load i32, ptr %4318, align 4, !tbaa !5
  %4320 = call ptr @s2n_strerror(i32 noundef %4319, ptr noundef @.str.4)
  %4321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4322 = load i32, ptr %4321, align 4, !tbaa !5
  %4323 = call ptr @s2n_strerror_debug(i32 noundef %4322, ptr noundef @.str.4)
  %4324 = call ptr @__errno_location() #10
  %4325 = load i32, ptr %4324, align 4, !tbaa !5
  %4326 = call ptr @strerror(i32 noundef %4325) #9
  %4327 = call ptr @__errno_location() #10
  %4328 = load i32, ptr %4327, align 4, !tbaa !5
  %4329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4316, ptr noundef @.str.2, i32 noundef %4317, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 211, ptr noundef %4320, ptr noundef %4323, ptr noundef %4326, i32 noundef %4328) #9
  br label %4347

4330:                                             ; preds = %4308, %4301
  %4331 = load i32, ptr %101, align 4, !tbaa !5
  %4332 = call ptr @__errno_location() #10
  store i32 %4331, ptr %4332, align 4, !tbaa !5
  %4333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4334 = load i32, ptr @test_count, align 4, !tbaa !5
  %4335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4336 = load i32, ptr %4335, align 4, !tbaa !5
  %4337 = call ptr @s2n_strerror(i32 noundef %4336, ptr noundef @.str.4)
  %4338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4339 = load i32, ptr %4338, align 4, !tbaa !5
  %4340 = call ptr @s2n_strerror_debug(i32 noundef %4339, ptr noundef @.str.4)
  %4341 = call ptr @__errno_location() #10
  %4342 = load i32, ptr %4341, align 4, !tbaa !5
  %4343 = call ptr @strerror(i32 noundef %4342) #9
  %4344 = call ptr @__errno_location() #10
  %4345 = load i32, ptr %4344, align 4, !tbaa !5
  %4346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4333, ptr noundef @.str.5, i32 noundef %4334, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 211, ptr noundef %4337, ptr noundef %4340, ptr noundef %4343, i32 noundef %4345) #9
  br label %4347

4347:                                             ; preds = %4330, %4313
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #9
  br label %4348

4348:                                             ; preds = %4347
  br label %4349

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

4350:                                             ; No predecessors!
  br label %4351

4351:                                             ; preds = %4350
  br label %4352

4352:                                             ; preds = %4351, %4294
  br label %4353

4353:                                             ; preds = %4352
  br label %4354

4354:                                             ; preds = %4353
  br label %4355

4355:                                             ; preds = %4354
  %4356 = load i32, ptr @test_count, align 4, !tbaa !5
  %4357 = add nsw i32 %4356, 1
  store i32 %4357, ptr @test_count, align 4, !tbaa !5
  %4358 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 3), align 8, !tbaa !18
  %4359 = load ptr, ptr %90, align 8, !tbaa !9
  %4360 = call i32 %4358(ptr noundef %4359, ptr noundef %94)
  %4361 = icmp eq i32 %4360, -1
  br i1 %4361, label %4362, label %4415

4362:                                             ; preds = %4355
  br label %4363

4363:                                             ; preds = %4362
  br label %4364

4364:                                             ; preds = %4363
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #9
  %4365 = call ptr @__errno_location() #10
  %4366 = load i32, ptr %4365, align 4, !tbaa !5
  store i32 %4366, ptr %102, align 4, !tbaa !5
  %4367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4368 = call i32 @s2n_print_stacktrace(ptr noundef %4367)
  %4369 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4370 = trunc i8 %4369 to i1
  br i1 %4370, label %4371, label %4393

4371:                                             ; preds = %4364
  %4372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4373 = call i32 @fileno(ptr noundef %4372) #9
  %4374 = call i32 @isatty(i32 noundef %4373) #9
  %4375 = icmp ne i32 %4374, 0
  br i1 %4375, label %4376, label %4393

4376:                                             ; preds = %4371
  %4377 = load i32, ptr %102, align 4, !tbaa !5
  %4378 = call ptr @__errno_location() #10
  store i32 %4377, ptr %4378, align 4, !tbaa !5
  %4379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4380 = load i32, ptr @test_count, align 4, !tbaa !5
  %4381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4382 = load i32, ptr %4381, align 4, !tbaa !5
  %4383 = call ptr @s2n_strerror(i32 noundef %4382, ptr noundef @.str.4)
  %4384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4385 = load i32, ptr %4384, align 4, !tbaa !5
  %4386 = call ptr @s2n_strerror_debug(i32 noundef %4385, ptr noundef @.str.4)
  %4387 = call ptr @__errno_location() #10
  %4388 = load i32, ptr %4387, align 4, !tbaa !5
  %4389 = call ptr @strerror(i32 noundef %4388) #9
  %4390 = call ptr @__errno_location() #10
  %4391 = load i32, ptr %4390, align 4, !tbaa !5
  %4392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4379, ptr noundef @.str.2, i32 noundef %4380, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 213, ptr noundef %4383, ptr noundef %4386, ptr noundef %4389, i32 noundef %4391) #9
  br label %4410

4393:                                             ; preds = %4371, %4364
  %4394 = load i32, ptr %102, align 4, !tbaa !5
  %4395 = call ptr @__errno_location() #10
  store i32 %4394, ptr %4395, align 4, !tbaa !5
  %4396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4397 = load i32, ptr @test_count, align 4, !tbaa !5
  %4398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4399 = load i32, ptr %4398, align 4, !tbaa !5
  %4400 = call ptr @s2n_strerror(i32 noundef %4399, ptr noundef @.str.4)
  %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_debug(i32 noundef %4402, ptr noundef @.str.4)
  %4404 = call ptr @__errno_location() #10
  %4405 = load i32, ptr %4404, align 4, !tbaa !5
  %4406 = call ptr @strerror(i32 noundef %4405) #9
  %4407 = call ptr @__errno_location() #10
  %4408 = load i32, ptr %4407, align 4, !tbaa !5
  %4409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4396, ptr noundef @.str.5, i32 noundef %4397, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 213, ptr noundef %4400, ptr noundef %4403, ptr noundef %4406, i32 noundef %4408) #9
  br label %4410

4410:                                             ; preds = %4393, %4376
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #9
  br label %4411

4411:                                             ; preds = %4410
  br label %4412

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

4413:                                             ; No predecessors!
  br label %4414

4414:                                             ; preds = %4413
  br label %4415

4415:                                             ; preds = %4414, %4355
  br label %4416

4416:                                             ; preds = %4415
  br label %4417

4417:                                             ; preds = %4416
  br label %4418

4418:                                             ; preds = %4417
  %4419 = load i32, ptr @test_count, align 4, !tbaa !5
  %4420 = add nsw i32 %4419, 1
  store i32 %4420, ptr @test_count, align 4, !tbaa !5
  %4421 = load ptr, ptr %92, align 8, !tbaa !9
  %4422 = getelementptr inbounds %struct.s2n_connection, ptr %4421, i32 0, i32 31
  %4423 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4422, i32 0, i32 1
  %4424 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4423, i32 0, i32 0
  %4425 = load ptr, ptr %4424, align 8, !tbaa !73
  %4426 = icmp eq ptr %4425, null
  br i1 %4426, label %4480, label %4427

4427:                                             ; preds = %4418
  br label %4428

4428:                                             ; preds = %4427
  br label %4429

4429:                                             ; preds = %4428
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #9
  %4430 = call ptr @__errno_location() #10
  %4431 = load i32, ptr %4430, align 4, !tbaa !5
  store i32 %4431, ptr %103, align 4, !tbaa !5
  %4432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4433 = call i32 @s2n_print_stacktrace(ptr noundef %4432)
  %4434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4435 = trunc i8 %4434 to i1
  br i1 %4435, label %4436, label %4458

4436:                                             ; preds = %4429
  %4437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4438 = call i32 @fileno(ptr noundef %4437) #9
  %4439 = call i32 @isatty(i32 noundef %4438) #9
  %4440 = icmp ne i32 %4439, 0
  br i1 %4440, label %4441, label %4458

4441:                                             ; preds = %4436
  %4442 = load i32, ptr %103, align 4, !tbaa !5
  %4443 = call ptr @__errno_location() #10
  store i32 %4442, ptr %4443, align 4, !tbaa !5
  %4444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4445 = load i32, ptr @test_count, align 4, !tbaa !5
  %4446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4447 = load i32, ptr %4446, align 4, !tbaa !5
  %4448 = call ptr @s2n_strerror(i32 noundef %4447, ptr noundef @.str.4)
  %4449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4450 = load i32, ptr %4449, align 4, !tbaa !5
  %4451 = call ptr @s2n_strerror_debug(i32 noundef %4450, ptr noundef @.str.4)
  %4452 = call ptr @__errno_location() #10
  %4453 = load i32, ptr %4452, align 4, !tbaa !5
  %4454 = call ptr @strerror(i32 noundef %4453) #9
  %4455 = call ptr @__errno_location() #10
  %4456 = load i32, ptr %4455, align 4, !tbaa !5
  %4457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4444, ptr noundef @.str.2, i32 noundef %4445, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 215, ptr noundef %4448, ptr noundef %4451, ptr noundef %4454, i32 noundef %4456) #9
  br label %4475

4458:                                             ; preds = %4436, %4429
  %4459 = load i32, ptr %103, align 4, !tbaa !5
  %4460 = call ptr @__errno_location() #10
  store i32 %4459, ptr %4460, align 4, !tbaa !5
  %4461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4462 = load i32, ptr @test_count, align 4, !tbaa !5
  %4463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4464 = load i32, ptr %4463, align 4, !tbaa !5
  %4465 = call ptr @s2n_strerror(i32 noundef %4464, ptr noundef @.str.4)
  %4466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4467 = load i32, ptr %4466, align 4, !tbaa !5
  %4468 = call ptr @s2n_strerror_debug(i32 noundef %4467, ptr noundef @.str.4)
  %4469 = call ptr @__errno_location() #10
  %4470 = load i32, ptr %4469, align 4, !tbaa !5
  %4471 = call ptr @strerror(i32 noundef %4470) #9
  %4472 = call ptr @__errno_location() #10
  %4473 = load i32, ptr %4472, align 4, !tbaa !5
  %4474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4461, ptr noundef @.str.5, i32 noundef %4462, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 215, ptr noundef %4465, ptr noundef %4468, ptr noundef %4471, i32 noundef %4473) #9
  br label %4475

4475:                                             ; preds = %4458, %4441
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  br label %4476

4476:                                             ; preds = %4475
  br label %4477

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

4478:                                             ; No predecessors!
  br label %4479

4479:                                             ; preds = %4478
  br label %4480

4480:                                             ; preds = %4479, %4418
  br label %4481

4481:                                             ; preds = %4480
  br label %4482

4482:                                             ; preds = %4481
  br label %4483

4483:                                             ; preds = %4482
  %4484 = load i32, ptr @test_count, align 4, !tbaa !5
  %4485 = add nsw i32 %4484, 1
  store i32 %4485, ptr @test_count, align 4, !tbaa !5
  %4486 = load ptr, ptr %92, align 8, !tbaa !9
  %4487 = getelementptr inbounds %struct.s2n_connection, ptr %4486, i32 0, i32 31
  %4488 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4487, i32 0, i32 4
  %4489 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %4488, i32 0, i32 0
  %4490 = load ptr, ptr %4489, align 8, !tbaa !74
  %4491 = icmp eq ptr %4490, null
  br i1 %4491, label %4545, label %4492

4492:                                             ; preds = %4483
  br label %4493

4493:                                             ; preds = %4492
  br label %4494

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

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

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

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

4540:                                             ; preds = %4523, %4506
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #9
  br label %4541

4541:                                             ; preds = %4540
  br label %4542

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

4543:                                             ; No predecessors!
  br label %4544

4544:                                             ; preds = %4543
  br label %4545

4545:                                             ; preds = %4544, %4483
  br label %4546

4546:                                             ; preds = %4545
  br label %4547

4547:                                             ; preds = %4546
  br label %4548

4548:                                             ; preds = %4547
  %4549 = load i32, ptr @test_count, align 4, !tbaa !5
  %4550 = add nsw i32 %4549, 1
  store i32 %4550, ptr @test_count, align 4, !tbaa !5
  %4551 = load ptr, ptr %92, align 8, !tbaa !9
  %4552 = getelementptr inbounds %struct.s2n_connection, ptr %4551, i32 0, i32 31
  %4553 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4552, i32 0, i32 4
  %4554 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %4553, i32 0, i32 2
  %4555 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4554, i32 0, i32 0
  %4556 = load ptr, ptr %4555, align 8, !tbaa !75
  %4557 = icmp eq ptr %4556, null
  br i1 %4557, label %4611, label %4558

4558:                                             ; preds = %4548
  br label %4559

4559:                                             ; preds = %4558
  br label %4560

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

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

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

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

4606:                                             ; preds = %4589, %4572
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #9
  br label %4607

4607:                                             ; preds = %4606
  br label %4608

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

4609:                                             ; No predecessors!
  br label %4610

4610:                                             ; preds = %4609
  br label %4611

4611:                                             ; preds = %4610, %4548
  br label %4612

4612:                                             ; preds = %4611
  br label %4613

4613:                                             ; preds = %4612
  br label %4614

4614:                                             ; preds = %4613
  %4615 = load i32, ptr @test_count, align 4, !tbaa !5
  %4616 = add nsw i32 %4615, 1
  store i32 %4616, ptr @test_count, align 4, !tbaa !5
  %4617 = load ptr, ptr %92, align 8, !tbaa !9
  %4618 = getelementptr inbounds %struct.s2n_connection, ptr %4617, i32 0, i32 31
  %4619 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4618, i32 0, i32 4
  %4620 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %4619, i32 0, i32 1
  %4621 = getelementptr inbounds %struct.s2n_kem_params, ptr %4620, i32 0, i32 0
  %4622 = load ptr, ptr %4621, align 8, !tbaa !76
  %4623 = icmp eq ptr %4622, null
  br i1 %4623, label %4677, label %4624

4624:                                             ; preds = %4614
  br label %4625

4625:                                             ; preds = %4624
  br label %4626

4626:                                             ; preds = %4625
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #9
  %4627 = call ptr @__errno_location() #10
  %4628 = load i32, ptr %4627, align 4, !tbaa !5
  store i32 %4628, ptr %106, align 4, !tbaa !5
  %4629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4630 = call i32 @s2n_print_stacktrace(ptr noundef %4629)
  %4631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4632 = trunc i8 %4631 to i1
  br i1 %4632, label %4633, label %4655

4633:                                             ; preds = %4626
  %4634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4635 = call i32 @fileno(ptr noundef %4634) #9
  %4636 = call i32 @isatty(i32 noundef %4635) #9
  %4637 = icmp ne i32 %4636, 0
  br i1 %4637, label %4638, label %4655

4638:                                             ; preds = %4633
  %4639 = load i32, ptr %106, align 4, !tbaa !5
  %4640 = call ptr @__errno_location() #10
  store i32 %4639, ptr %4640, align 4, !tbaa !5
  %4641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4642 = load i32, ptr @test_count, align 4, !tbaa !5
  %4643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4644 = load i32, ptr %4643, align 4, !tbaa !5
  %4645 = call ptr @s2n_strerror(i32 noundef %4644, ptr noundef @.str.4)
  %4646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4647 = load i32, ptr %4646, align 4, !tbaa !5
  %4648 = call ptr @s2n_strerror_debug(i32 noundef %4647, ptr noundef @.str.4)
  %4649 = call ptr @__errno_location() #10
  %4650 = load i32, ptr %4649, align 4, !tbaa !5
  %4651 = call ptr @strerror(i32 noundef %4650) #9
  %4652 = call ptr @__errno_location() #10
  %4653 = load i32, ptr %4652, align 4, !tbaa !5
  %4654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4641, ptr noundef @.str.2, i32 noundef %4642, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 218, ptr noundef %4645, ptr noundef %4648, ptr noundef %4651, i32 noundef %4653) #9
  br label %4672

4655:                                             ; preds = %4633, %4626
  %4656 = load i32, ptr %106, align 4, !tbaa !5
  %4657 = call ptr @__errno_location() #10
  store i32 %4656, ptr %4657, align 4, !tbaa !5
  %4658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4659 = load i32, ptr @test_count, align 4, !tbaa !5
  %4660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4661 = load i32, ptr %4660, align 4, !tbaa !5
  %4662 = call ptr @s2n_strerror(i32 noundef %4661, ptr noundef @.str.4)
  %4663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4664 = load i32, ptr %4663, align 4, !tbaa !5
  %4665 = call ptr @s2n_strerror_debug(i32 noundef %4664, ptr noundef @.str.4)
  %4666 = call ptr @__errno_location() #10
  %4667 = load i32, ptr %4666, align 4, !tbaa !5
  %4668 = call ptr @strerror(i32 noundef %4667) #9
  %4669 = call ptr @__errno_location() #10
  %4670 = load i32, ptr %4669, align 4, !tbaa !5
  %4671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4658, ptr noundef @.str.5, i32 noundef %4659, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 218, ptr noundef %4662, ptr noundef %4665, ptr noundef %4668, i32 noundef %4670) #9
  br label %4672

4672:                                             ; preds = %4655, %4638
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #9
  br label %4673

4673:                                             ; preds = %4672
  br label %4674

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

4675:                                             ; No predecessors!
  br label %4676

4676:                                             ; preds = %4675
  br label %4677

4677:                                             ; preds = %4676, %4614
  br label %4678

4678:                                             ; preds = %4677
  br label %4679

4679:                                             ; preds = %4678
  br label %4680

4680:                                             ; preds = %4679
  %4681 = load i32, ptr @test_count, align 4, !tbaa !5
  %4682 = add nsw i32 %4681, 1
  store i32 %4682, ptr @test_count, align 4, !tbaa !5
  %4683 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 4), align 8, !tbaa !77
  %4684 = load ptr, ptr %92, align 8, !tbaa !9
  %4685 = call i32 %4683(ptr noundef %4684, ptr noundef %94)
  %4686 = icmp eq i32 %4685, -1
  br i1 %4686, label %4687, label %4740

4687:                                             ; preds = %4680
  br label %4688

4688:                                             ; preds = %4687
  br label %4689

4689:                                             ; preds = %4688
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #9
  %4690 = call ptr @__errno_location() #10
  %4691 = load i32, ptr %4690, align 4, !tbaa !5
  store i32 %4691, ptr %107, align 4, !tbaa !5
  %4692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4693 = call i32 @s2n_print_stacktrace(ptr noundef %4692)
  %4694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4695 = trunc i8 %4694 to i1
  br i1 %4695, label %4696, label %4718

4696:                                             ; preds = %4689
  %4697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4698 = call i32 @fileno(ptr noundef %4697) #9
  %4699 = call i32 @isatty(i32 noundef %4698) #9
  %4700 = icmp ne i32 %4699, 0
  br i1 %4700, label %4701, label %4718

4701:                                             ; preds = %4696
  %4702 = load i32, ptr %107, align 4, !tbaa !5
  %4703 = call ptr @__errno_location() #10
  store i32 %4702, ptr %4703, align 4, !tbaa !5
  %4704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4705 = load i32, ptr @test_count, align 4, !tbaa !5
  %4706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4707 = load i32, ptr %4706, align 4, !tbaa !5
  %4708 = call ptr @s2n_strerror(i32 noundef %4707, ptr noundef @.str.4)
  %4709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4710 = load i32, ptr %4709, align 4, !tbaa !5
  %4711 = call ptr @s2n_strerror_debug(i32 noundef %4710, ptr noundef @.str.4)
  %4712 = call ptr @__errno_location() #10
  %4713 = load i32, ptr %4712, align 4, !tbaa !5
  %4714 = call ptr @strerror(i32 noundef %4713) #9
  %4715 = call ptr @__errno_location() #10
  %4716 = load i32, ptr %4715, align 4, !tbaa !5
  %4717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4704, ptr noundef @.str.2, i32 noundef %4705, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4708, ptr noundef %4711, ptr noundef %4714, i32 noundef %4716) #9
  br label %4735

4718:                                             ; preds = %4696, %4689
  %4719 = load i32, ptr %107, align 4, !tbaa !5
  %4720 = call ptr @__errno_location() #10
  store i32 %4719, ptr %4720, align 4, !tbaa !5
  %4721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4722 = load i32, ptr @test_count, align 4, !tbaa !5
  %4723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4724 = load i32, ptr %4723, align 4, !tbaa !5
  %4725 = call ptr @s2n_strerror(i32 noundef %4724, ptr noundef @.str.4)
  %4726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4727 = load i32, ptr %4726, align 4, !tbaa !5
  %4728 = call ptr @s2n_strerror_debug(i32 noundef %4727, ptr noundef @.str.4)
  %4729 = call ptr @__errno_location() #10
  %4730 = load i32, ptr %4729, align 4, !tbaa !5
  %4731 = call ptr @strerror(i32 noundef %4730) #9
  %4732 = call ptr @__errno_location() #10
  %4733 = load i32, ptr %4732, align 4, !tbaa !5
  %4734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4721, ptr noundef @.str.5, i32 noundef %4722, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4725, ptr noundef %4728, ptr noundef %4731, i32 noundef %4733) #9
  br label %4735

4735:                                             ; preds = %4718, %4701
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #9
  br label %4736

4736:                                             ; preds = %4735
  br label %4737

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

4738:                                             ; No predecessors!
  br label %4739

4739:                                             ; preds = %4738
  br label %4740

4740:                                             ; preds = %4739, %4680
  br label %4741

4741:                                             ; preds = %4740
  br label %4742

4742:                                             ; preds = %4741
  %4743 = call zeroext i1 @s2n_pq_is_enabled()
  br i1 %4743, label %5091, label %4744

4744:                                             ; preds = %4742
  br label %4745

4745:                                             ; preds = %4744
  %4746 = load i32, ptr @test_count, align 4, !tbaa !5
  %4747 = add nsw i32 %4746, 1
  store i32 %4747, ptr @test_count, align 4, !tbaa !5
  %4748 = load ptr, ptr %92, align 8, !tbaa !9
  %4749 = getelementptr inbounds %struct.s2n_connection, ptr %4748, i32 0, i32 31
  %4750 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4749, i32 0, i32 1
  %4751 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4750, i32 0, i32 0
  %4752 = load ptr, ptr %4751, align 8, !tbaa !73
  %4753 = load ptr, ptr %96, align 8, !tbaa !9
  %4754 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %4753, i32 0, i32 1
  %4755 = load ptr, ptr %4754, align 8, !tbaa !28
  %4756 = getelementptr inbounds ptr, ptr %4755, i64 0
  %4757 = load ptr, ptr %4756, align 8, !tbaa !9
  %4758 = icmp eq ptr %4752, %4757
  br i1 %4758, label %4812, label %4759

4759:                                             ; preds = %4745
  br label %4760

4760:                                             ; preds = %4759
  br label %4761

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

4768:                                             ; preds = %4761
  %4769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4770 = call i32 @fileno(ptr noundef %4769) #9
  %4771 = call i32 @isatty(i32 noundef %4770) #9
  %4772 = icmp ne i32 %4771, 0
  br i1 %4772, label %4773, label %4790

4773:                                             ; preds = %4768
  %4774 = load i32, ptr %108, align 4, !tbaa !5
  %4775 = call ptr @__errno_location() #10
  store i32 %4774, ptr %4775, align 4, !tbaa !5
  %4776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4777 = load i32, ptr @test_count, align 4, !tbaa !5
  %4778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4779 = load i32, ptr %4778, align 4, !tbaa !5
  %4780 = call ptr @s2n_strerror(i32 noundef %4779, ptr noundef @.str.4)
  %4781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4782 = load i32, ptr %4781, align 4, !tbaa !5
  %4783 = call ptr @s2n_strerror_debug(i32 noundef %4782, ptr noundef @.str.4)
  %4784 = call ptr @__errno_location() #10
  %4785 = load i32, ptr %4784, align 4, !tbaa !5
  %4786 = call ptr @strerror(i32 noundef %4785) #9
  %4787 = call ptr @__errno_location() #10
  %4788 = load i32, ptr %4787, align 4, !tbaa !5
  %4789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4776, ptr noundef @.str.2, i32 noundef %4777, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 224, ptr noundef %4780, ptr noundef %4783, ptr noundef %4786, i32 noundef %4788) #9
  br label %4807

4790:                                             ; preds = %4768, %4761
  %4791 = load i32, ptr %108, align 4, !tbaa !5
  %4792 = call ptr @__errno_location() #10
  store i32 %4791, ptr %4792, align 4, !tbaa !5
  %4793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4794 = load i32, ptr @test_count, align 4, !tbaa !5
  %4795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4796 = load i32, ptr %4795, align 4, !tbaa !5
  %4797 = call ptr @s2n_strerror(i32 noundef %4796, ptr noundef @.str.4)
  %4798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4799 = load i32, ptr %4798, align 4, !tbaa !5
  %4800 = call ptr @s2n_strerror_debug(i32 noundef %4799, ptr noundef @.str.4)
  %4801 = call ptr @__errno_location() #10
  %4802 = load i32, ptr %4801, align 4, !tbaa !5
  %4803 = call ptr @strerror(i32 noundef %4802) #9
  %4804 = call ptr @__errno_location() #10
  %4805 = load i32, ptr %4804, align 4, !tbaa !5
  %4806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4793, ptr noundef @.str.5, i32 noundef %4794, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 224, ptr noundef %4797, ptr noundef %4800, ptr noundef %4803, i32 noundef %4805) #9
  br label %4807

4807:                                             ; preds = %4790, %4773
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #9
  br label %4808

4808:                                             ; preds = %4807
  br label %4809

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

4810:                                             ; No predecessors!
  br label %4811

4811:                                             ; preds = %4810
  br label %4812

4812:                                             ; preds = %4811, %4745
  br label %4813

4813:                                             ; preds = %4812
  br label %4814

4814:                                             ; preds = %4813
  br label %4815

4815:                                             ; preds = %4814
  %4816 = load i32, ptr @test_count, align 4, !tbaa !5
  %4817 = add nsw i32 %4816, 1
  store i32 %4817, ptr @test_count, align 4, !tbaa !5
  %4818 = load ptr, ptr %92, align 8, !tbaa !9
  %4819 = getelementptr inbounds %struct.s2n_connection, ptr %4818, i32 0, i32 31
  %4820 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4819, i32 0, i32 4
  %4821 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %4820, i32 0, i32 0
  %4822 = load ptr, ptr %4821, align 8, !tbaa !74
  %4823 = icmp eq ptr %4822, null
  br i1 %4823, label %4877, label %4824

4824:                                             ; preds = %4815
  br label %4825

4825:                                             ; preds = %4824
  br label %4826

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

4833:                                             ; preds = %4826
  %4834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4835 = call i32 @fileno(ptr noundef %4834) #9
  %4836 = call i32 @isatty(i32 noundef %4835) #9
  %4837 = icmp ne i32 %4836, 0
  br i1 %4837, label %4838, label %4855

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

4855:                                             ; preds = %4833, %4826
  %4856 = load i32, ptr %109, align 4, !tbaa !5
  %4857 = call ptr @__errno_location() #10
  store i32 %4856, ptr %4857, align 4, !tbaa !5
  %4858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4859 = load i32, ptr @test_count, align 4, !tbaa !5
  %4860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4861 = load i32, ptr %4860, align 4, !tbaa !5
  %4862 = call ptr @s2n_strerror(i32 noundef %4861, ptr noundef @.str.4)
  %4863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4864 = load i32, ptr %4863, align 4, !tbaa !5
  %4865 = call ptr @s2n_strerror_debug(i32 noundef %4864, ptr noundef @.str.4)
  %4866 = call ptr @__errno_location() #10
  %4867 = load i32, ptr %4866, align 4, !tbaa !5
  %4868 = call ptr @strerror(i32 noundef %4867) #9
  %4869 = call ptr @__errno_location() #10
  %4870 = load i32, ptr %4869, align 4, !tbaa !5
  %4871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4858, ptr noundef @.str.5, i32 noundef %4859, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 225, ptr noundef %4862, ptr noundef %4865, ptr noundef %4868, i32 noundef %4870) #9
  br label %4872

4872:                                             ; preds = %4855, %4838
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #9
  br label %4873

4873:                                             ; preds = %4872
  br label %4874

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

4875:                                             ; No predecessors!
  br label %4876

4876:                                             ; preds = %4875
  br label %4877

4877:                                             ; preds = %4876, %4815
  br label %4878

4878:                                             ; preds = %4877
  br label %4879

4879:                                             ; preds = %4878
  br label %4880

4880:                                             ; preds = %4879
  %4881 = load i32, ptr @test_count, align 4, !tbaa !5
  %4882 = add nsw i32 %4881, 1
  store i32 %4882, ptr @test_count, align 4, !tbaa !5
  %4883 = load ptr, ptr %92, align 8, !tbaa !9
  %4884 = getelementptr inbounds %struct.s2n_connection, ptr %4883, i32 0, i32 31
  %4885 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4884, i32 0, i32 4
  %4886 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %4885, i32 0, i32 2
  %4887 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %4886, i32 0, i32 0
  %4888 = load ptr, ptr %4887, align 8, !tbaa !75
  %4889 = icmp eq ptr %4888, null
  br i1 %4889, label %4943, label %4890

4890:                                             ; preds = %4880
  br label %4891

4891:                                             ; preds = %4890
  br label %4892

4892:                                             ; preds = %4891
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #9
  %4893 = call ptr @__errno_location() #10
  %4894 = load i32, ptr %4893, align 4, !tbaa !5
  store i32 %4894, ptr %110, align 4, !tbaa !5
  %4895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4896 = call i32 @s2n_print_stacktrace(ptr noundef %4895)
  %4897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4898 = trunc i8 %4897 to i1
  br i1 %4898, label %4899, label %4921

4899:                                             ; preds = %4892
  %4900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4901 = call i32 @fileno(ptr noundef %4900) #9
  %4902 = call i32 @isatty(i32 noundef %4901) #9
  %4903 = icmp ne i32 %4902, 0
  br i1 %4903, label %4904, label %4921

4904:                                             ; preds = %4899
  %4905 = load i32, ptr %110, align 4, !tbaa !5
  %4906 = call ptr @__errno_location() #10
  store i32 %4905, ptr %4906, align 4, !tbaa !5
  %4907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4908 = load i32, ptr @test_count, align 4, !tbaa !5
  %4909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4910 = load i32, ptr %4909, align 4, !tbaa !5
  %4911 = call ptr @s2n_strerror(i32 noundef %4910, ptr noundef @.str.4)
  %4912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4913 = load i32, ptr %4912, align 4, !tbaa !5
  %4914 = call ptr @s2n_strerror_debug(i32 noundef %4913, ptr noundef @.str.4)
  %4915 = call ptr @__errno_location() #10
  %4916 = load i32, ptr %4915, align 4, !tbaa !5
  %4917 = call ptr @strerror(i32 noundef %4916) #9
  %4918 = call ptr @__errno_location() #10
  %4919 = load i32, ptr %4918, align 4, !tbaa !5
  %4920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4907, ptr noundef @.str.2, i32 noundef %4908, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 226, ptr noundef %4911, ptr noundef %4914, ptr noundef %4917, i32 noundef %4919) #9
  br label %4938

4921:                                             ; preds = %4899, %4892
  %4922 = load i32, ptr %110, align 4, !tbaa !5
  %4923 = call ptr @__errno_location() #10
  store i32 %4922, ptr %4923, align 4, !tbaa !5
  %4924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4925 = load i32, ptr @test_count, align 4, !tbaa !5
  %4926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4927 = load i32, ptr %4926, align 4, !tbaa !5
  %4928 = call ptr @s2n_strerror(i32 noundef %4927, ptr noundef @.str.4)
  %4929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4930 = load i32, ptr %4929, align 4, !tbaa !5
  %4931 = call ptr @s2n_strerror_debug(i32 noundef %4930, ptr noundef @.str.4)
  %4932 = call ptr @__errno_location() #10
  %4933 = load i32, ptr %4932, align 4, !tbaa !5
  %4934 = call ptr @strerror(i32 noundef %4933) #9
  %4935 = call ptr @__errno_location() #10
  %4936 = load i32, ptr %4935, align 4, !tbaa !5
  %4937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4924, ptr noundef @.str.5, i32 noundef %4925, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 226, ptr noundef %4928, ptr noundef %4931, ptr noundef %4934, i32 noundef %4936) #9
  br label %4938

4938:                                             ; preds = %4921, %4904
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #9
  br label %4939

4939:                                             ; preds = %4938
  br label %4940

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

4941:                                             ; No predecessors!
  br label %4942

4942:                                             ; preds = %4941
  br label %4943

4943:                                             ; preds = %4942, %4880
  br label %4944

4944:                                             ; preds = %4943
  br label %4945

4945:                                             ; preds = %4944
  br label %4946

4946:                                             ; preds = %4945
  %4947 = load i32, ptr @test_count, align 4, !tbaa !5
  %4948 = add nsw i32 %4947, 1
  store i32 %4948, ptr @test_count, align 4, !tbaa !5
  %4949 = load ptr, ptr %92, align 8, !tbaa !9
  %4950 = getelementptr inbounds %struct.s2n_connection, ptr %4949, i32 0, i32 31
  %4951 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %4950, i32 0, i32 4
  %4952 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %4951, i32 0, i32 1
  %4953 = getelementptr inbounds %struct.s2n_kem_params, ptr %4952, i32 0, i32 0
  %4954 = load ptr, ptr %4953, align 8, !tbaa !76
  %4955 = icmp eq ptr %4954, null
  br i1 %4955, label %5009, label %4956

4956:                                             ; preds = %4946
  br label %4957

4957:                                             ; preds = %4956
  br label %4958

4958:                                             ; preds = %4957
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #9
  %4959 = call ptr @__errno_location() #10
  %4960 = load i32, ptr %4959, align 4, !tbaa !5
  store i32 %4960, ptr %111, align 4, !tbaa !5
  %4961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4962 = call i32 @s2n_print_stacktrace(ptr noundef %4961)
  %4963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4964 = trunc i8 %4963 to i1
  br i1 %4964, label %4965, label %4987

4965:                                             ; preds = %4958
  %4966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4967 = call i32 @fileno(ptr noundef %4966) #9
  %4968 = call i32 @isatty(i32 noundef %4967) #9
  %4969 = icmp ne i32 %4968, 0
  br i1 %4969, label %4970, label %4987

4970:                                             ; preds = %4965
  %4971 = load i32, ptr %111, align 4, !tbaa !5
  %4972 = call ptr @__errno_location() #10
  store i32 %4971, ptr %4972, align 4, !tbaa !5
  %4973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4974 = load i32, ptr @test_count, align 4, !tbaa !5
  %4975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4976 = load i32, ptr %4975, align 4, !tbaa !5
  %4977 = call ptr @s2n_strerror(i32 noundef %4976, ptr noundef @.str.4)
  %4978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4979 = load i32, ptr %4978, align 4, !tbaa !5
  %4980 = call ptr @s2n_strerror_debug(i32 noundef %4979, ptr noundef @.str.4)
  %4981 = call ptr @__errno_location() #10
  %4982 = load i32, ptr %4981, align 4, !tbaa !5
  %4983 = call ptr @strerror(i32 noundef %4982) #9
  %4984 = call ptr @__errno_location() #10
  %4985 = load i32, ptr %4984, align 4, !tbaa !5
  %4986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4973, ptr noundef @.str.2, i32 noundef %4974, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 227, ptr noundef %4977, ptr noundef %4980, ptr noundef %4983, i32 noundef %4985) #9
  br label %5004

4987:                                             ; preds = %4965, %4958
  %4988 = load i32, ptr %111, align 4, !tbaa !5
  %4989 = call ptr @__errno_location() #10
  store i32 %4988, ptr %4989, align 4, !tbaa !5
  %4990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4991 = load i32, ptr @test_count, align 4, !tbaa !5
  %4992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4993 = load i32, ptr %4992, align 4, !tbaa !5
  %4994 = call ptr @s2n_strerror(i32 noundef %4993, ptr noundef @.str.4)
  %4995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4996 = load i32, ptr %4995, align 4, !tbaa !5
  %4997 = call ptr @s2n_strerror_debug(i32 noundef %4996, ptr noundef @.str.4)
  %4998 = call ptr @__errno_location() #10
  %4999 = load i32, ptr %4998, align 4, !tbaa !5
  %5000 = call ptr @strerror(i32 noundef %4999) #9
  %5001 = call ptr @__errno_location() #10
  %5002 = load i32, ptr %5001, align 4, !tbaa !5
  %5003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4990, ptr noundef @.str.5, i32 noundef %4991, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 227, ptr noundef %4994, ptr noundef %4997, ptr noundef %5000, i32 noundef %5002) #9
  br label %5004

5004:                                             ; preds = %4987, %4970
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #9
  br label %5005

5005:                                             ; preds = %5004
  br label %5006

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

5007:                                             ; No predecessors!
  br label %5008

5008:                                             ; preds = %5007
  br label %5009

5009:                                             ; preds = %5008, %4946
  br label %5010

5010:                                             ; preds = %5009
  br label %5011

5011:                                             ; preds = %5010
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #9
  store i64 0, ptr %112, align 8, !tbaa !26
  br label %5012

5012:                                             ; preds = %5087, %5011
  %5013 = load i64, ptr %112, align 8, !tbaa !26
  %5014 = load ptr, ptr %99, align 8, !tbaa !9
  %5015 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %5014, i32 0, i32 2
  %5016 = load i8, ptr %5015, align 8, !tbaa !33
  %5017 = zext i8 %5016 to i64
  %5018 = icmp ult i64 %5013, %5017
  br i1 %5018, label %5020, label %5019

5019:                                             ; preds = %5012
  store i32 459, ptr %88, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #9
  br label %5090

5020:                                             ; preds = %5012
  br label %5021

5021:                                             ; preds = %5020
  %5022 = load i32, ptr @test_count, align 4, !tbaa !5
  %5023 = add nsw i32 %5022, 1
  store i32 %5023, ptr @test_count, align 4, !tbaa !5
  %5024 = load ptr, ptr %92, align 8, !tbaa !9
  %5025 = getelementptr inbounds %struct.s2n_connection, ptr %5024, i32 0, i32 31
  %5026 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5025, i32 0, i32 6
  %5027 = load i64, ptr %112, align 8, !tbaa !26
  %5028 = getelementptr inbounds [8 x ptr], ptr %5026, i64 0, i64 %5027
  %5029 = load ptr, ptr %5028, align 8, !tbaa !9
  %5030 = icmp eq ptr %5029, null
  br i1 %5030, label %5084, label %5031

5031:                                             ; preds = %5021
  br label %5032

5032:                                             ; preds = %5031
  br label %5033

5033:                                             ; preds = %5032
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #9
  %5034 = call ptr @__errno_location() #10
  %5035 = load i32, ptr %5034, align 4, !tbaa !5
  store i32 %5035, ptr %113, align 4, !tbaa !5
  %5036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5037 = call i32 @s2n_print_stacktrace(ptr noundef %5036)
  %5038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5039 = trunc i8 %5038 to i1
  br i1 %5039, label %5040, label %5062

5040:                                             ; preds = %5033
  %5041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5042 = call i32 @fileno(ptr noundef %5041) #9
  %5043 = call i32 @isatty(i32 noundef %5042) #9
  %5044 = icmp ne i32 %5043, 0
  br i1 %5044, label %5045, label %5062

5045:                                             ; preds = %5040
  %5046 = load i32, ptr %113, align 4, !tbaa !5
  %5047 = call ptr @__errno_location() #10
  store i32 %5046, ptr %5047, align 4, !tbaa !5
  %5048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5049 = load i32, ptr @test_count, align 4, !tbaa !5
  %5050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5051 = load i32, ptr %5050, align 4, !tbaa !5
  %5052 = call ptr @s2n_strerror(i32 noundef %5051, ptr noundef @.str.4)
  %5053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5054 = load i32, ptr %5053, align 4, !tbaa !5
  %5055 = call ptr @s2n_strerror_debug(i32 noundef %5054, ptr noundef @.str.4)
  %5056 = call ptr @__errno_location() #10
  %5057 = load i32, ptr %5056, align 4, !tbaa !5
  %5058 = call ptr @strerror(i32 noundef %5057) #9
  %5059 = call ptr @__errno_location() #10
  %5060 = load i32, ptr %5059, align 4, !tbaa !5
  %5061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5048, ptr noundef @.str.2, i32 noundef %5049, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 230, ptr noundef %5052, ptr noundef %5055, ptr noundef %5058, i32 noundef %5060) #9
  br label %5079

5062:                                             ; preds = %5040, %5033
  %5063 = load i32, ptr %113, align 4, !tbaa !5
  %5064 = call ptr @__errno_location() #10
  store i32 %5063, ptr %5064, align 4, !tbaa !5
  %5065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5066 = load i32, ptr @test_count, align 4, !tbaa !5
  %5067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5068 = load i32, ptr %5067, align 4, !tbaa !5
  %5069 = call ptr @s2n_strerror(i32 noundef %5068, ptr noundef @.str.4)
  %5070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5071 = load i32, ptr %5070, align 4, !tbaa !5
  %5072 = call ptr @s2n_strerror_debug(i32 noundef %5071, ptr noundef @.str.4)
  %5073 = call ptr @__errno_location() #10
  %5074 = load i32, ptr %5073, align 4, !tbaa !5
  %5075 = call ptr @strerror(i32 noundef %5074) #9
  %5076 = call ptr @__errno_location() #10
  %5077 = load i32, ptr %5076, align 4, !tbaa !5
  %5078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5065, ptr noundef @.str.5, i32 noundef %5066, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 230, ptr noundef %5069, ptr noundef %5072, ptr noundef %5075, i32 noundef %5077) #9
  br label %5079

5079:                                             ; preds = %5062, %5045
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #9
  br label %5080

5080:                                             ; preds = %5079
  br label %5081

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

5082:                                             ; No predecessors!
  br label %5083

5083:                                             ; preds = %5082
  br label %5084

5084:                                             ; preds = %5083, %5021
  br label %5085

5085:                                             ; preds = %5084
  br label %5086

5086:                                             ; preds = %5085
  br label %5087

5087:                                             ; preds = %5086
  %5088 = load i64, ptr %112, align 8, !tbaa !26
  %5089 = add i64 %5088, 1
  store i64 %5089, ptr %112, align 8, !tbaa !26
  br label %5012, !llvm.loop !78

5090:                                             ; preds = %5019
  br label %5489

5091:                                             ; preds = %4742
  br label %5092

5092:                                             ; preds = %5091
  %5093 = load i32, ptr @test_count, align 4, !tbaa !5
  %5094 = add nsw i32 %5093, 1
  store i32 %5094, ptr @test_count, align 4, !tbaa !5
  %5095 = load ptr, ptr %92, align 8, !tbaa !9
  %5096 = getelementptr inbounds %struct.s2n_connection, ptr %5095, i32 0, i32 31
  %5097 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5096, i32 0, i32 1
  %5098 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %5097, i32 0, i32 0
  %5099 = load ptr, ptr %5098, align 8, !tbaa !73
  %5100 = icmp eq ptr %5099, null
  br i1 %5100, label %5154, label %5101

5101:                                             ; preds = %5092
  br label %5102

5102:                                             ; preds = %5101
  br label %5103

5103:                                             ; preds = %5102
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #9
  %5104 = call ptr @__errno_location() #10
  %5105 = load i32, ptr %5104, align 4, !tbaa !5
  store i32 %5105, ptr %114, align 4, !tbaa !5
  %5106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5107 = call i32 @s2n_print_stacktrace(ptr noundef %5106)
  %5108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5109 = trunc i8 %5108 to i1
  br i1 %5109, label %5110, label %5132

5110:                                             ; preds = %5103
  %5111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5112 = call i32 @fileno(ptr noundef %5111) #9
  %5113 = call i32 @isatty(i32 noundef %5112) #9
  %5114 = icmp ne i32 %5113, 0
  br i1 %5114, label %5115, label %5132

5115:                                             ; preds = %5110
  %5116 = load i32, ptr %114, align 4, !tbaa !5
  %5117 = call ptr @__errno_location() #10
  store i32 %5116, ptr %5117, align 4, !tbaa !5
  %5118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5119 = load i32, ptr @test_count, align 4, !tbaa !5
  %5120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5121 = load i32, ptr %5120, align 4, !tbaa !5
  %5122 = call ptr @s2n_strerror(i32 noundef %5121, ptr noundef @.str.4)
  %5123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5124 = load i32, ptr %5123, align 4, !tbaa !5
  %5125 = call ptr @s2n_strerror_debug(i32 noundef %5124, ptr noundef @.str.4)
  %5126 = call ptr @__errno_location() #10
  %5127 = load i32, ptr %5126, align 4, !tbaa !5
  %5128 = call ptr @strerror(i32 noundef %5127) #9
  %5129 = call ptr @__errno_location() #10
  %5130 = load i32, ptr %5129, align 4, !tbaa !5
  %5131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5118, ptr noundef @.str.2, i32 noundef %5119, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 233, ptr noundef %5122, ptr noundef %5125, ptr noundef %5128, i32 noundef %5130) #9
  br label %5149

5132:                                             ; preds = %5110, %5103
  %5133 = load i32, ptr %114, align 4, !tbaa !5
  %5134 = call ptr @__errno_location() #10
  store i32 %5133, ptr %5134, align 4, !tbaa !5
  %5135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5136 = load i32, ptr @test_count, align 4, !tbaa !5
  %5137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5138 = load i32, ptr %5137, align 4, !tbaa !5
  %5139 = call ptr @s2n_strerror(i32 noundef %5138, ptr noundef @.str.4)
  %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_debug(i32 noundef %5141, ptr noundef @.str.4)
  %5143 = call ptr @__errno_location() #10
  %5144 = load i32, ptr %5143, align 4, !tbaa !5
  %5145 = call ptr @strerror(i32 noundef %5144) #9
  %5146 = call ptr @__errno_location() #10
  %5147 = load i32, ptr %5146, align 4, !tbaa !5
  %5148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5135, ptr noundef @.str.5, i32 noundef %5136, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 233, ptr noundef %5139, ptr noundef %5142, ptr noundef %5145, i32 noundef %5147) #9
  br label %5149

5149:                                             ; preds = %5132, %5115
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #9
  br label %5150

5150:                                             ; preds = %5149
  br label %5151

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

5152:                                             ; No predecessors!
  br label %5153

5153:                                             ; preds = %5152
  br label %5154

5154:                                             ; preds = %5153, %5092
  br label %5155

5155:                                             ; preds = %5154
  br label %5156

5156:                                             ; preds = %5155
  br label %5157

5157:                                             ; preds = %5156
  %5158 = load i32, ptr @test_count, align 4, !tbaa !5
  %5159 = add nsw i32 %5158, 1
  store i32 %5159, ptr @test_count, align 4, !tbaa !5
  %5160 = load ptr, ptr %92, align 8, !tbaa !9
  %5161 = getelementptr inbounds %struct.s2n_connection, ptr %5160, i32 0, i32 31
  %5162 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5161, i32 0, i32 4
  %5163 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %5162, i32 0, i32 0
  %5164 = load ptr, ptr %5163, align 8, !tbaa !74
  %5165 = icmp eq ptr %5164, null
  br i1 %5165, label %5166, label %5219

5166:                                             ; preds = %5157
  br label %5167

5167:                                             ; preds = %5166
  br label %5168

5168:                                             ; preds = %5167
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #9
  %5169 = call ptr @__errno_location() #10
  %5170 = load i32, ptr %5169, align 4, !tbaa !5
  store i32 %5170, ptr %115, align 4, !tbaa !5
  %5171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5172 = call i32 @s2n_print_stacktrace(ptr noundef %5171)
  %5173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5174 = trunc i8 %5173 to i1
  br i1 %5174, label %5175, label %5197

5175:                                             ; preds = %5168
  %5176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5177 = call i32 @fileno(ptr noundef %5176) #9
  %5178 = call i32 @isatty(i32 noundef %5177) #9
  %5179 = icmp ne i32 %5178, 0
  br i1 %5179, label %5180, label %5197

5180:                                             ; preds = %5175
  %5181 = load i32, ptr %115, align 4, !tbaa !5
  %5182 = call ptr @__errno_location() #10
  store i32 %5181, ptr %5182, align 4, !tbaa !5
  %5183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5184 = load i32, ptr @test_count, align 4, !tbaa !5
  %5185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5186 = load i32, ptr %5185, align 4, !tbaa !5
  %5187 = call ptr @s2n_strerror(i32 noundef %5186, ptr noundef @.str.4)
  %5188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5189 = load i32, ptr %5188, align 4, !tbaa !5
  %5190 = call ptr @s2n_strerror_debug(i32 noundef %5189, ptr noundef @.str.4)
  %5191 = call ptr @__errno_location() #10
  %5192 = load i32, ptr %5191, align 4, !tbaa !5
  %5193 = call ptr @strerror(i32 noundef %5192) #9
  %5194 = call ptr @__errno_location() #10
  %5195 = load i32, ptr %5194, align 4, !tbaa !5
  %5196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5183, ptr noundef @.str.2, i32 noundef %5184, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 234, ptr noundef %5187, ptr noundef %5190, ptr noundef %5193, i32 noundef %5195) #9
  br label %5214

5197:                                             ; preds = %5175, %5168
  %5198 = load i32, ptr %115, align 4, !tbaa !5
  %5199 = call ptr @__errno_location() #10
  store i32 %5198, ptr %5199, align 4, !tbaa !5
  %5200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5201 = load i32, ptr @test_count, align 4, !tbaa !5
  %5202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5203 = load i32, ptr %5202, align 4, !tbaa !5
  %5204 = call ptr @s2n_strerror(i32 noundef %5203, ptr noundef @.str.4)
  %5205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5206 = load i32, ptr %5205, align 4, !tbaa !5
  %5207 = call ptr @s2n_strerror_debug(i32 noundef %5206, ptr noundef @.str.4)
  %5208 = call ptr @__errno_location() #10
  %5209 = load i32, ptr %5208, align 4, !tbaa !5
  %5210 = call ptr @strerror(i32 noundef %5209) #9
  %5211 = call ptr @__errno_location() #10
  %5212 = load i32, ptr %5211, align 4, !tbaa !5
  %5213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5200, ptr noundef @.str.5, i32 noundef %5201, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 234, ptr noundef %5204, ptr noundef %5207, ptr noundef %5210, i32 noundef %5212) #9
  br label %5214

5214:                                             ; preds = %5197, %5180
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #9
  br label %5215

5215:                                             ; preds = %5214
  br label %5216

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

5217:                                             ; No predecessors!
  br label %5218

5218:                                             ; preds = %5217
  br label %5219

5219:                                             ; preds = %5218, %5157
  br label %5220

5220:                                             ; preds = %5219
  br label %5221

5221:                                             ; preds = %5220
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #9
  %5222 = load ptr, ptr %99, align 8, !tbaa !9
  %5223 = call ptr @s2n_kem_preferences_get_highest_priority_group(ptr noundef %5222)
  store ptr %5223, ptr %116, align 8, !tbaa !9
  br label %5224

5224:                                             ; preds = %5221
  %5225 = load i32, ptr @test_count, align 4, !tbaa !5
  %5226 = add nsw i32 %5225, 1
  store i32 %5226, ptr @test_count, align 4, !tbaa !5
  %5227 = load ptr, ptr %116, align 8, !tbaa !9
  %5228 = icmp eq ptr %5227, null
  br i1 %5228, label %5229, label %5282

5229:                                             ; preds = %5224
  br label %5230

5230:                                             ; preds = %5229
  br label %5231

5231:                                             ; preds = %5230
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #9
  %5232 = call ptr @__errno_location() #10
  %5233 = load i32, ptr %5232, align 4, !tbaa !5
  store i32 %5233, ptr %117, align 4, !tbaa !5
  %5234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5235 = call i32 @s2n_print_stacktrace(ptr noundef %5234)
  %5236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5237 = trunc i8 %5236 to i1
  br i1 %5237, label %5238, label %5260

5238:                                             ; preds = %5231
  %5239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5240 = call i32 @fileno(ptr noundef %5239) #9
  %5241 = call i32 @isatty(i32 noundef %5240) #9
  %5242 = icmp ne i32 %5241, 0
  br i1 %5242, label %5243, label %5260

5243:                                             ; preds = %5238
  %5244 = load i32, ptr %117, align 4, !tbaa !5
  %5245 = call ptr @__errno_location() #10
  store i32 %5244, ptr %5245, align 4, !tbaa !5
  %5246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5247 = load i32, ptr @test_count, align 4, !tbaa !5
  %5248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5249 = load i32, ptr %5248, align 4, !tbaa !5
  %5250 = call ptr @s2n_strerror(i32 noundef %5249, ptr noundef @.str.4)
  %5251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5252 = load i32, ptr %5251, align 4, !tbaa !5
  %5253 = call ptr @s2n_strerror_debug(i32 noundef %5252, ptr noundef @.str.4)
  %5254 = call ptr @__errno_location() #10
  %5255 = load i32, ptr %5254, align 4, !tbaa !5
  %5256 = call ptr @strerror(i32 noundef %5255) #9
  %5257 = call ptr @__errno_location() #10
  %5258 = load i32, ptr %5257, align 4, !tbaa !5
  %5259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5246, ptr noundef @.str.2, i32 noundef %5247, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 236, ptr noundef %5250, ptr noundef %5253, ptr noundef %5256, i32 noundef %5258) #9
  br label %5277

5260:                                             ; preds = %5238, %5231
  %5261 = load i32, ptr %117, align 4, !tbaa !5
  %5262 = call ptr @__errno_location() #10
  store i32 %5261, ptr %5262, align 4, !tbaa !5
  %5263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5264 = load i32, ptr @test_count, align 4, !tbaa !5
  %5265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5266 = load i32, ptr %5265, align 4, !tbaa !5
  %5267 = call ptr @s2n_strerror(i32 noundef %5266, ptr noundef @.str.4)
  %5268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5269 = load i32, ptr %5268, align 4, !tbaa !5
  %5270 = call ptr @s2n_strerror_debug(i32 noundef %5269, ptr noundef @.str.4)
  %5271 = call ptr @__errno_location() #10
  %5272 = load i32, ptr %5271, align 4, !tbaa !5
  %5273 = call ptr @strerror(i32 noundef %5272) #9
  %5274 = call ptr @__errno_location() #10
  %5275 = load i32, ptr %5274, align 4, !tbaa !5
  %5276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5263, ptr noundef @.str.5, i32 noundef %5264, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 236, ptr noundef %5267, ptr noundef %5270, ptr noundef %5273, i32 noundef %5275) #9
  br label %5277

5277:                                             ; preds = %5260, %5243
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #9
  br label %5278

5278:                                             ; preds = %5277
  br label %5279

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

5280:                                             ; No predecessors!
  br label %5281

5281:                                             ; preds = %5280
  br label %5282

5282:                                             ; preds = %5281, %5224
  br label %5283

5283:                                             ; preds = %5282
  br label %5284

5284:                                             ; preds = %5283
  br label %5285

5285:                                             ; preds = %5284
  %5286 = load i32, ptr @test_count, align 4, !tbaa !5
  %5287 = add nsw i32 %5286, 1
  store i32 %5287, ptr @test_count, align 4, !tbaa !5
  %5288 = load ptr, ptr %92, align 8, !tbaa !9
  %5289 = getelementptr inbounds %struct.s2n_connection, ptr %5288, i32 0, i32 31
  %5290 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5289, i32 0, i32 4
  %5291 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %5290, i32 0, i32 0
  %5292 = load ptr, ptr %5291, align 8, !tbaa !74
  %5293 = load ptr, ptr %116, align 8, !tbaa !9
  %5294 = icmp eq ptr %5292, %5293
  br i1 %5294, label %5348, label %5295

5295:                                             ; preds = %5285
  br label %5296

5296:                                             ; preds = %5295
  br label %5297

5297:                                             ; preds = %5296
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #9
  %5298 = call ptr @__errno_location() #10
  %5299 = load i32, ptr %5298, align 4, !tbaa !5
  store i32 %5299, ptr %118, align 4, !tbaa !5
  %5300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5301 = call i32 @s2n_print_stacktrace(ptr noundef %5300)
  %5302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5303 = trunc i8 %5302 to i1
  br i1 %5303, label %5304, label %5326

5304:                                             ; preds = %5297
  %5305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5306 = call i32 @fileno(ptr noundef %5305) #9
  %5307 = call i32 @isatty(i32 noundef %5306) #9
  %5308 = icmp ne i32 %5307, 0
  br i1 %5308, label %5309, label %5326

5309:                                             ; preds = %5304
  %5310 = load i32, ptr %118, align 4, !tbaa !5
  %5311 = call ptr @__errno_location() #10
  store i32 %5310, ptr %5311, align 4, !tbaa !5
  %5312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5313 = load i32, ptr @test_count, align 4, !tbaa !5
  %5314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5315 = load i32, ptr %5314, align 4, !tbaa !5
  %5316 = call ptr @s2n_strerror(i32 noundef %5315, ptr noundef @.str.4)
  %5317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5318 = load i32, ptr %5317, align 4, !tbaa !5
  %5319 = call ptr @s2n_strerror_debug(i32 noundef %5318, ptr noundef @.str.4)
  %5320 = call ptr @__errno_location() #10
  %5321 = load i32, ptr %5320, align 4, !tbaa !5
  %5322 = call ptr @strerror(i32 noundef %5321) #9
  %5323 = call ptr @__errno_location() #10
  %5324 = load i32, ptr %5323, align 4, !tbaa !5
  %5325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5312, ptr noundef @.str.2, i32 noundef %5313, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 237, ptr noundef %5316, ptr noundef %5319, ptr noundef %5322, i32 noundef %5324) #9
  br label %5343

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

5343:                                             ; preds = %5326, %5309
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #9
  br label %5344

5344:                                             ; preds = %5343
  br label %5345

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

5346:                                             ; No predecessors!
  br label %5347

5347:                                             ; preds = %5346
  br label %5348

5348:                                             ; preds = %5347, %5285
  br label %5349

5349:                                             ; preds = %5348
  br label %5350

5350:                                             ; preds = %5349
  br label %5351

5351:                                             ; preds = %5350
  %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 %92, align 8, !tbaa !9
  %5355 = getelementptr inbounds %struct.s2n_connection, ptr %5354, i32 0, i32 31
  %5356 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5355, i32 0, i32 4
  %5357 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %5356, i32 0, i32 2
  %5358 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %5357, i32 0, i32 0
  %5359 = load ptr, ptr %5358, align 8, !tbaa !75
  %5360 = load ptr, ptr %116, align 8, !tbaa !9
  %5361 = getelementptr inbounds %struct.s2n_kem_group, ptr %5360, i32 0, i32 2
  %5362 = load ptr, ptr %5361, align 8, !tbaa !79
  %5363 = icmp eq ptr %5359, %5362
  br i1 %5363, label %5417, label %5364

5364:                                             ; preds = %5351
  br label %5365

5365:                                             ; preds = %5364
  br label %5366

5366:                                             ; preds = %5365
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #9
  %5367 = call ptr @__errno_location() #10
  %5368 = load i32, ptr %5367, align 4, !tbaa !5
  store i32 %5368, ptr %119, align 4, !tbaa !5
  %5369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5370 = call i32 @s2n_print_stacktrace(ptr noundef %5369)
  %5371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5372 = trunc i8 %5371 to i1
  br i1 %5372, label %5373, label %5395

5373:                                             ; preds = %5366
  %5374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5375 = call i32 @fileno(ptr noundef %5374) #9
  %5376 = call i32 @isatty(i32 noundef %5375) #9
  %5377 = icmp ne i32 %5376, 0
  br i1 %5377, label %5378, label %5395

5378:                                             ; preds = %5373
  %5379 = load i32, ptr %119, align 4, !tbaa !5
  %5380 = call ptr @__errno_location() #10
  store i32 %5379, ptr %5380, align 4, !tbaa !5
  %5381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5382 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5384, ptr noundef @.str.4)
  %5386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5387 = load i32, ptr %5386, align 4, !tbaa !5
  %5388 = call ptr @s2n_strerror_debug(i32 noundef %5387, ptr noundef @.str.4)
  %5389 = call ptr @__errno_location() #10
  %5390 = load i32, ptr %5389, align 4, !tbaa !5
  %5391 = call ptr @strerror(i32 noundef %5390) #9
  %5392 = call ptr @__errno_location() #10
  %5393 = load i32, ptr %5392, align 4, !tbaa !5
  %5394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5381, ptr noundef @.str.2, i32 noundef %5382, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 238, ptr noundef %5385, ptr noundef %5388, ptr noundef %5391, i32 noundef %5393) #9
  br label %5412

5395:                                             ; preds = %5373, %5366
  %5396 = load i32, ptr %119, align 4, !tbaa !5
  %5397 = call ptr @__errno_location() #10
  store i32 %5396, ptr %5397, align 4, !tbaa !5
  %5398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5399 = load i32, ptr @test_count, align 4, !tbaa !5
  %5400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5401 = load i32, ptr %5400, align 4, !tbaa !5
  %5402 = call ptr @s2n_strerror(i32 noundef %5401, ptr noundef @.str.4)
  %5403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5404 = load i32, ptr %5403, align 4, !tbaa !5
  %5405 = call ptr @s2n_strerror_debug(i32 noundef %5404, ptr noundef @.str.4)
  %5406 = call ptr @__errno_location() #10
  %5407 = load i32, ptr %5406, align 4, !tbaa !5
  %5408 = call ptr @strerror(i32 noundef %5407) #9
  %5409 = call ptr @__errno_location() #10
  %5410 = load i32, ptr %5409, align 4, !tbaa !5
  %5411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5398, ptr noundef @.str.5, i32 noundef %5399, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 238, ptr noundef %5402, ptr noundef %5405, ptr noundef %5408, i32 noundef %5410) #9
  br label %5412

5412:                                             ; preds = %5395, %5378
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #9
  br label %5413

5413:                                             ; preds = %5412
  br label %5414

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

5415:                                             ; No predecessors!
  br label %5416

5416:                                             ; preds = %5415
  br label %5417

5417:                                             ; preds = %5416, %5351
  br label %5418

5418:                                             ; preds = %5417
  br label %5419

5419:                                             ; preds = %5418
  br label %5420

5420:                                             ; preds = %5419
  %5421 = load i32, ptr @test_count, align 4, !tbaa !5
  %5422 = add nsw i32 %5421, 1
  store i32 %5422, ptr @test_count, align 4, !tbaa !5
  %5423 = load ptr, ptr %92, align 8, !tbaa !9
  %5424 = getelementptr inbounds %struct.s2n_connection, ptr %5423, i32 0, i32 31
  %5425 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %5424, i32 0, i32 4
  %5426 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %5425, i32 0, i32 1
  %5427 = getelementptr inbounds %struct.s2n_kem_params, ptr %5426, i32 0, i32 0
  %5428 = load ptr, ptr %5427, align 8, !tbaa !76
  %5429 = load ptr, ptr %116, align 8, !tbaa !9
  %5430 = getelementptr inbounds %struct.s2n_kem_group, ptr %5429, i32 0, i32 3
  %5431 = load ptr, ptr %5430, align 8, !tbaa !80
  %5432 = icmp eq ptr %5428, %5431
  br i1 %5432, label %5486, label %5433

5433:                                             ; preds = %5420
  br label %5434

5434:                                             ; preds = %5433
  br label %5435

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

5442:                                             ; preds = %5435
  %5443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5444 = call i32 @fileno(ptr noundef %5443) #9
  %5445 = call i32 @isatty(i32 noundef %5444) #9
  %5446 = icmp ne i32 %5445, 0
  br i1 %5446, label %5447, label %5464

5447:                                             ; preds = %5442
  %5448 = load i32, ptr %120, align 4, !tbaa !5
  %5449 = call ptr @__errno_location() #10
  store i32 %5448, ptr %5449, align 4, !tbaa !5
  %5450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5451 = load i32, ptr @test_count, align 4, !tbaa !5
  %5452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5453 = load i32, ptr %5452, align 4, !tbaa !5
  %5454 = call ptr @s2n_strerror(i32 noundef %5453, ptr noundef @.str.4)
  %5455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5456 = load i32, ptr %5455, align 4, !tbaa !5
  %5457 = call ptr @s2n_strerror_debug(i32 noundef %5456, ptr noundef @.str.4)
  %5458 = call ptr @__errno_location() #10
  %5459 = load i32, ptr %5458, align 4, !tbaa !5
  %5460 = call ptr @strerror(i32 noundef %5459) #9
  %5461 = call ptr @__errno_location() #10
  %5462 = load i32, ptr %5461, align 4, !tbaa !5
  %5463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5450, ptr noundef @.str.2, i32 noundef %5451, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 239, ptr noundef %5454, ptr noundef %5457, ptr noundef %5460, i32 noundef %5462) #9
  br label %5481

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

5481:                                             ; preds = %5464, %5447
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #9
  br label %5482

5482:                                             ; preds = %5481
  br label %5483

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

5484:                                             ; No predecessors!
  br label %5485

5485:                                             ; preds = %5484
  br label %5486

5486:                                             ; preds = %5485, %5420
  br label %5487

5487:                                             ; preds = %5486
  br label %5488

5488:                                             ; preds = %5487
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #9
  br label %5489

5489:                                             ; preds = %5488, %5090
  br label %5490

5490:                                             ; preds = %5489
  %5491 = load i32, ptr @test_count, align 4, !tbaa !5
  %5492 = add nsw i32 %5491, 1
  store i32 %5492, ptr @test_count, align 4, !tbaa !5
  %5493 = load ptr, ptr %90, align 8, !tbaa !9
  %5494 = call i32 @s2n_connection_free(ptr noundef %5493)
  %5495 = icmp eq i32 %5494, -1
  br i1 %5495, label %5496, label %5549

5496:                                             ; preds = %5490
  br label %5497

5497:                                             ; preds = %5496
  br label %5498

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

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

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

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

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

5545:                                             ; preds = %5544
  br label %5546

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

5547:                                             ; No predecessors!
  br label %5548

5548:                                             ; preds = %5547
  br label %5549

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

5550:                                             ; preds = %5549
  br label %5551

5551:                                             ; preds = %5550
  br label %5552

5552:                                             ; preds = %5551
  %5553 = load i32, ptr @test_count, align 4, !tbaa !5
  %5554 = add nsw i32 %5553, 1
  store i32 %5554, ptr @test_count, align 4, !tbaa !5
  %5555 = load ptr, ptr %92, align 8, !tbaa !9
  %5556 = call i32 @s2n_connection_free(ptr noundef %5555)
  %5557 = icmp eq i32 %5556, -1
  br i1 %5557, label %5558, label %5611

5558:                                             ; preds = %5552
  br label %5559

5559:                                             ; preds = %5558
  br label %5560

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

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

5572:                                             ; preds = %5567
  %5573 = load i32, ptr %122, align 4, !tbaa !5
  %5574 = call ptr @__errno_location() #10
  store i32 %5573, ptr %5574, align 4, !tbaa !5
  %5575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5576 = load i32, ptr @test_count, align 4, !tbaa !5
  %5577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5578 = load i32, ptr %5577, align 4, !tbaa !5
  %5579 = call ptr @s2n_strerror(i32 noundef %5578, ptr noundef @.str.4)
  %5580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5581 = load i32, ptr %5580, align 4, !tbaa !5
  %5582 = call ptr @s2n_strerror_debug(i32 noundef %5581, ptr noundef @.str.4)
  %5583 = call ptr @__errno_location() #10
  %5584 = load i32, ptr %5583, align 4, !tbaa !5
  %5585 = call ptr @strerror(i32 noundef %5584) #9
  %5586 = call ptr @__errno_location() #10
  %5587 = load i32, ptr %5586, align 4, !tbaa !5
  %5588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5575, ptr noundef @.str.2, i32 noundef %5576, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 243, ptr noundef %5579, ptr noundef %5582, ptr noundef %5585, i32 noundef %5587) #9
  br label %5606

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

5606:                                             ; preds = %5589, %5572
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #9
  br label %5607

5607:                                             ; preds = %5606
  br label %5608

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

5609:                                             ; No predecessors!
  br label %5610

5610:                                             ; preds = %5609
  br label %5611

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

5612:                                             ; preds = %5611
  br label %5613

5613:                                             ; preds = %5612
  br label %5614

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

5619:                                             ; preds = %5614
  br label %5620

5620:                                             ; preds = %5619
  br label %5621

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

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

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

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

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

5668:                                             ; preds = %5667
  br label %5669

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

5670:                                             ; No predecessors!
  br label %5671

5671:                                             ; preds = %5670
  br label %5672

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

5673:                                             ; preds = %5672
  br label %5674

5674:                                             ; preds = %5673
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #9
  %5675 = call i32 @s2n_stuffer_free(ptr noundef %94)
  call void @llvm.lifetime.end.p0(i64 40, ptr %94) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #9
  br label %5676

5676:                                             ; preds = %5674
  %5677 = load i64, ptr %87, align 8, !tbaa !26
  %5678 = add i64 %5677, 1
  store i64 %5678, ptr %87, align 8, !tbaa !26
  br label %3848, !llvm.loop !81

5679:                                             ; preds = %3851
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr %124) #9
  store ptr %34, ptr %124, align 8, !tbaa !9
  %5680 = getelementptr inbounds ptr, ptr %124, i64 1
  store ptr null, ptr %5680, align 8, !tbaa !9
  %5681 = getelementptr inbounds [2 x ptr], ptr %124, i64 1
  store ptr null, ptr %5681, align 8, !tbaa !9
  %5682 = getelementptr inbounds ptr, ptr %5681, i64 1
  store ptr %34, ptr %5682, align 8, !tbaa !9
  %5683 = getelementptr inbounds [2 x ptr], ptr %124, i64 2
  store ptr null, ptr %5683, align 8, !tbaa !9
  %5684 = getelementptr inbounds ptr, ptr %5683, i64 1
  store ptr null, ptr %5684, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #9
  store i64 0, ptr %125, align 8, !tbaa !26
  br label %5685

5685:                                             ; preds = %7162, %5679
  %5686 = load i64, ptr %125, align 8, !tbaa !26
  %5687 = icmp ult i64 %5686, 3
  br i1 %5687, label %5689, label %5688

5688:                                             ; preds = %5685
  store i32 522, ptr %88, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #9
  br label %7165

5689:                                             ; preds = %5685
  br label %5690

5690:                                             ; preds = %5689
  %5691 = load i32, ptr @test_count, align 4, !tbaa !5
  %5692 = add nsw i32 %5691, 1
  store i32 %5692, ptr @test_count, align 4, !tbaa !5
  %5693 = call i32 (...) @s2n_enable_tls13_in_test()
  %5694 = icmp eq i32 %5693, -1
  br i1 %5694, label %5695, label %5748

5695:                                             ; preds = %5690
  br label %5696

5696:                                             ; preds = %5695
  br label %5697

5697:                                             ; preds = %5696
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #9
  %5698 = call ptr @__errno_location() #10
  %5699 = load i32, ptr %5698, align 4, !tbaa !5
  store i32 %5699, ptr %126, align 4, !tbaa !5
  %5700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5701 = call i32 @s2n_print_stacktrace(ptr noundef %5700)
  %5702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5703 = trunc i8 %5702 to i1
  br i1 %5703, label %5704, label %5726

5704:                                             ; preds = %5697
  %5705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5706 = call i32 @fileno(ptr noundef %5705) #9
  %5707 = call i32 @isatty(i32 noundef %5706) #9
  %5708 = icmp ne i32 %5707, 0
  br i1 %5708, label %5709, label %5726

5709:                                             ; preds = %5704
  %5710 = load i32, ptr %126, align 4, !tbaa !5
  %5711 = call ptr @__errno_location() #10
  store i32 %5710, ptr %5711, align 4, !tbaa !5
  %5712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5713 = load i32, ptr @test_count, align 4, !tbaa !5
  %5714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5715 = load i32, ptr %5714, align 4, !tbaa !5
  %5716 = call ptr @s2n_strerror(i32 noundef %5715, ptr noundef @.str.4)
  %5717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5718 = load i32, ptr %5717, align 4, !tbaa !5
  %5719 = call ptr @s2n_strerror_debug(i32 noundef %5718, ptr noundef @.str.4)
  %5720 = call ptr @__errno_location() #10
  %5721 = load i32, ptr %5720, align 4, !tbaa !5
  %5722 = call ptr @strerror(i32 noundef %5721) #9
  %5723 = call ptr @__errno_location() #10
  %5724 = load i32, ptr %5723, align 4, !tbaa !5
  %5725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5712, ptr noundef @.str.2, i32 noundef %5713, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 262, ptr noundef %5716, ptr noundef %5719, ptr noundef %5722, i32 noundef %5724) #9
  br label %5743

5726:                                             ; preds = %5704, %5697
  %5727 = load i32, ptr %126, align 4, !tbaa !5
  %5728 = call ptr @__errno_location() #10
  store i32 %5727, ptr %5728, align 4, !tbaa !5
  %5729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5730 = load i32, ptr @test_count, align 4, !tbaa !5
  %5731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5732 = load i32, ptr %5731, align 4, !tbaa !5
  %5733 = call ptr @s2n_strerror(i32 noundef %5732, ptr noundef @.str.4)
  %5734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5735 = load i32, ptr %5734, align 4, !tbaa !5
  %5736 = call ptr @s2n_strerror_debug(i32 noundef %5735, ptr noundef @.str.4)
  %5737 = call ptr @__errno_location() #10
  %5738 = load i32, ptr %5737, align 4, !tbaa !5
  %5739 = call ptr @strerror(i32 noundef %5738) #9
  %5740 = call ptr @__errno_location() #10
  %5741 = load i32, ptr %5740, align 4, !tbaa !5
  %5742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5729, ptr noundef @.str.5, i32 noundef %5730, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 262, ptr noundef %5733, ptr noundef %5736, ptr noundef %5739, i32 noundef %5741) #9
  br label %5743

5743:                                             ; preds = %5726, %5709
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #9
  br label %5744

5744:                                             ; preds = %5743
  br label %5745

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

5746:                                             ; No predecessors!
  br label %5747

5747:                                             ; preds = %5746
  br label %5748

5748:                                             ; preds = %5747, %5690
  br label %5749

5749:                                             ; preds = %5748
  br label %5750

5750:                                             ; preds = %5749
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #9
  %5751 = call ptr @s2n_config_new()
  store ptr %5751, ptr %127, align 8, !tbaa !9
  br label %5752

5752:                                             ; preds = %5750
  %5753 = load i32, ptr @test_count, align 4, !tbaa !5
  %5754 = add nsw i32 %5753, 1
  store i32 %5754, ptr @test_count, align 4, !tbaa !5
  %5755 = load ptr, ptr %127, align 8, !tbaa !9
  %5756 = icmp eq ptr %5755, null
  br i1 %5756, label %5757, label %5810

5757:                                             ; preds = %5752
  br label %5758

5758:                                             ; preds = %5757
  br label %5759

5759:                                             ; preds = %5758
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #9
  %5760 = call ptr @__errno_location() #10
  %5761 = load i32, ptr %5760, align 4, !tbaa !5
  store i32 %5761, ptr %128, align 4, !tbaa !5
  %5762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5763 = call i32 @s2n_print_stacktrace(ptr noundef %5762)
  %5764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5765 = trunc i8 %5764 to i1
  br i1 %5765, label %5766, label %5788

5766:                                             ; preds = %5759
  %5767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5768 = call i32 @fileno(ptr noundef %5767) #9
  %5769 = call i32 @isatty(i32 noundef %5768) #9
  %5770 = icmp ne i32 %5769, 0
  br i1 %5770, label %5771, label %5788

5771:                                             ; preds = %5766
  %5772 = load i32, ptr %128, align 4, !tbaa !5
  %5773 = call ptr @__errno_location() #10
  store i32 %5772, ptr %5773, align 4, !tbaa !5
  %5774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5775 = load i32, ptr @test_count, align 4, !tbaa !5
  %5776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5777 = load i32, ptr %5776, align 4, !tbaa !5
  %5778 = call ptr @s2n_strerror(i32 noundef %5777, ptr noundef @.str.4)
  %5779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5780 = load i32, ptr %5779, align 4, !tbaa !5
  %5781 = call ptr @s2n_strerror_debug(i32 noundef %5780, ptr noundef @.str.4)
  %5782 = call ptr @__errno_location() #10
  %5783 = load i32, ptr %5782, align 4, !tbaa !5
  %5784 = call ptr @strerror(i32 noundef %5783) #9
  %5785 = call ptr @__errno_location() #10
  %5786 = load i32, ptr %5785, align 4, !tbaa !5
  %5787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5774, ptr noundef @.str.2, i32 noundef %5775, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 266, ptr noundef %5778, ptr noundef %5781, ptr noundef %5784, i32 noundef %5786) #9
  br label %5805

5788:                                             ; preds = %5766, %5759
  %5789 = load i32, ptr %128, align 4, !tbaa !5
  %5790 = call ptr @__errno_location() #10
  store i32 %5789, ptr %5790, align 4, !tbaa !5
  %5791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5792 = load i32, ptr @test_count, align 4, !tbaa !5
  %5793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5794 = load i32, ptr %5793, align 4, !tbaa !5
  %5795 = call ptr @s2n_strerror(i32 noundef %5794, ptr noundef @.str.4)
  %5796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5797 = load i32, ptr %5796, align 4, !tbaa !5
  %5798 = call ptr @s2n_strerror_debug(i32 noundef %5797, ptr noundef @.str.4)
  %5799 = call ptr @__errno_location() #10
  %5800 = load i32, ptr %5799, align 4, !tbaa !5
  %5801 = call ptr @strerror(i32 noundef %5800) #9
  %5802 = call ptr @__errno_location() #10
  %5803 = load i32, ptr %5802, align 4, !tbaa !5
  %5804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5791, ptr noundef @.str.5, i32 noundef %5792, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 266, ptr noundef %5795, ptr noundef %5798, ptr noundef %5801, i32 noundef %5803) #9
  br label %5805

5805:                                             ; preds = %5788, %5771
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #9
  br label %5806

5806:                                             ; preds = %5805
  br label %5807

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

5808:                                             ; No predecessors!
  br label %5809

5809:                                             ; preds = %5808
  br label %5810

5810:                                             ; preds = %5809, %5752
  br label %5811

5811:                                             ; preds = %5810
  br label %5812

5812:                                             ; preds = %5811
  br label %5813

5813:                                             ; preds = %5812
  %5814 = load i32, ptr @test_count, align 4, !tbaa !5
  %5815 = add nsw i32 %5814, 1
  store i32 %5815, ptr @test_count, align 4, !tbaa !5
  %5816 = load ptr, ptr %127, align 8, !tbaa !9
  %5817 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %5816, ptr noundef @.str.55)
  %5818 = icmp eq i32 %5817, -1
  br i1 %5818, label %5819, label %5872

5819:                                             ; preds = %5813
  br label %5820

5820:                                             ; preds = %5819
  br label %5821

5821:                                             ; preds = %5820
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #9
  %5822 = call ptr @__errno_location() #10
  %5823 = load i32, ptr %5822, align 4, !tbaa !5
  store i32 %5823, ptr %129, align 4, !tbaa !5
  %5824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5825 = call i32 @s2n_print_stacktrace(ptr noundef %5824)
  %5826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5827 = trunc i8 %5826 to i1
  br i1 %5827, label %5828, label %5850

5828:                                             ; preds = %5821
  %5829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5830 = call i32 @fileno(ptr noundef %5829) #9
  %5831 = call i32 @isatty(i32 noundef %5830) #9
  %5832 = icmp ne i32 %5831, 0
  br i1 %5832, label %5833, label %5850

5833:                                             ; preds = %5828
  %5834 = load i32, ptr %129, align 4, !tbaa !5
  %5835 = call ptr @__errno_location() #10
  store i32 %5834, ptr %5835, align 4, !tbaa !5
  %5836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5837 = load i32, ptr @test_count, align 4, !tbaa !5
  %5838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5839 = load i32, ptr %5838, align 4, !tbaa !5
  %5840 = call ptr @s2n_strerror(i32 noundef %5839, ptr noundef @.str.4)
  %5841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5842 = load i32, ptr %5841, align 4, !tbaa !5
  %5843 = call ptr @s2n_strerror_debug(i32 noundef %5842, ptr noundef @.str.4)
  %5844 = call ptr @__errno_location() #10
  %5845 = load i32, ptr %5844, align 4, !tbaa !5
  %5846 = call ptr @strerror(i32 noundef %5845) #9
  %5847 = call ptr @__errno_location() #10
  %5848 = load i32, ptr %5847, align 4, !tbaa !5
  %5849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5836, ptr noundef @.str.2, i32 noundef %5837, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 271, ptr noundef %5840, ptr noundef %5843, ptr noundef %5846, i32 noundef %5848) #9
  br label %5867

5850:                                             ; preds = %5828, %5821
  %5851 = load i32, ptr %129, align 4, !tbaa !5
  %5852 = call ptr @__errno_location() #10
  store i32 %5851, ptr %5852, align 4, !tbaa !5
  %5853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5854 = load i32, ptr @test_count, align 4, !tbaa !5
  %5855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5856 = load i32, ptr %5855, align 4, !tbaa !5
  %5857 = call ptr @s2n_strerror(i32 noundef %5856, ptr noundef @.str.4)
  %5858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5859 = load i32, ptr %5858, align 4, !tbaa !5
  %5860 = call ptr @s2n_strerror_debug(i32 noundef %5859, ptr noundef @.str.4)
  %5861 = call ptr @__errno_location() #10
  %5862 = load i32, ptr %5861, align 4, !tbaa !5
  %5863 = call ptr @strerror(i32 noundef %5862) #9
  %5864 = call ptr @__errno_location() #10
  %5865 = load i32, ptr %5864, align 4, !tbaa !5
  %5866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5853, ptr noundef @.str.5, i32 noundef %5854, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 271, ptr noundef %5857, ptr noundef %5860, ptr noundef %5863, i32 noundef %5865) #9
  br label %5867

5867:                                             ; preds = %5850, %5833
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #9
  br label %5868

5868:                                             ; preds = %5867
  br label %5869

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

5870:                                             ; No predecessors!
  br label %5871

5871:                                             ; preds = %5870
  br label %5872

5872:                                             ; preds = %5871, %5813
  br label %5873

5873:                                             ; preds = %5872
  br label %5874

5874:                                             ; preds = %5873
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #9
  store ptr null, ptr %130, align 8, !tbaa !9
  br label %5875

5875:                                             ; preds = %5874
  %5876 = load i32, ptr @test_count, align 4, !tbaa !5
  %5877 = add nsw i32 %5876, 1
  store i32 %5877, ptr @test_count, align 4, !tbaa !5
  %5878 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5878, ptr %130, align 8, !tbaa !9
  %5879 = icmp eq ptr %5878, null
  br i1 %5879, label %5880, label %5933

5880:                                             ; preds = %5875
  br label %5881

5881:                                             ; preds = %5880
  br label %5882

5882:                                             ; preds = %5881
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #9
  %5883 = call ptr @__errno_location() #10
  %5884 = load i32, ptr %5883, align 4, !tbaa !5
  store i32 %5884, ptr %131, align 4, !tbaa !5
  %5885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5886 = call i32 @s2n_print_stacktrace(ptr noundef %5885)
  %5887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5888 = trunc i8 %5887 to i1
  br i1 %5888, label %5889, label %5911

5889:                                             ; preds = %5882
  %5890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5891 = call i32 @fileno(ptr noundef %5890) #9
  %5892 = call i32 @isatty(i32 noundef %5891) #9
  %5893 = icmp ne i32 %5892, 0
  br i1 %5893, label %5894, label %5911

5894:                                             ; preds = %5889
  %5895 = load i32, ptr %131, align 4, !tbaa !5
  %5896 = call ptr @__errno_location() #10
  store i32 %5895, ptr %5896, align 4, !tbaa !5
  %5897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5898 = load i32, ptr @test_count, align 4, !tbaa !5
  %5899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5900 = load i32, ptr %5899, align 4, !tbaa !5
  %5901 = call ptr @s2n_strerror(i32 noundef %5900, ptr noundef @.str.4)
  %5902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5903 = load i32, ptr %5902, align 4, !tbaa !5
  %5904 = call ptr @s2n_strerror_debug(i32 noundef %5903, ptr noundef @.str.4)
  %5905 = call ptr @__errno_location() #10
  %5906 = load i32, ptr %5905, align 4, !tbaa !5
  %5907 = call ptr @strerror(i32 noundef %5906) #9
  %5908 = call ptr @__errno_location() #10
  %5909 = load i32, ptr %5908, align 4, !tbaa !5
  %5910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5897, ptr noundef @.str.2, i32 noundef %5898, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 274, ptr noundef %5901, ptr noundef %5904, ptr noundef %5907, i32 noundef %5909) #9
  br label %5928

5911:                                             ; preds = %5889, %5882
  %5912 = load i32, ptr %131, align 4, !tbaa !5
  %5913 = call ptr @__errno_location() #10
  store i32 %5912, ptr %5913, align 4, !tbaa !5
  %5914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5915 = load i32, ptr @test_count, align 4, !tbaa !5
  %5916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5917 = load i32, ptr %5916, align 4, !tbaa !5
  %5918 = call ptr @s2n_strerror(i32 noundef %5917, ptr noundef @.str.4)
  %5919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5920 = load i32, ptr %5919, align 4, !tbaa !5
  %5921 = call ptr @s2n_strerror_debug(i32 noundef %5920, ptr noundef @.str.4)
  %5922 = call ptr @__errno_location() #10
  %5923 = load i32, ptr %5922, align 4, !tbaa !5
  %5924 = call ptr @strerror(i32 noundef %5923) #9
  %5925 = call ptr @__errno_location() #10
  %5926 = load i32, ptr %5925, align 4, !tbaa !5
  %5927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5914, ptr noundef @.str.5, i32 noundef %5915, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 274, ptr noundef %5918, ptr noundef %5921, ptr noundef %5924, i32 noundef %5926) #9
  br label %5928

5928:                                             ; preds = %5911, %5894
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #9
  br label %5929

5929:                                             ; preds = %5928
  br label %5930

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

5931:                                             ; No predecessors!
  br label %5932

5932:                                             ; preds = %5931
  br label %5933

5933:                                             ; preds = %5932, %5875
  br label %5934

5934:                                             ; preds = %5933
  br label %5935

5935:                                             ; preds = %5934
  br label %5936

5936:                                             ; preds = %5935
  %5937 = load i32, ptr @test_count, align 4, !tbaa !5
  %5938 = add nsw i32 %5937, 1
  store i32 %5938, ptr @test_count, align 4, !tbaa !5
  %5939 = load ptr, ptr %130, align 8, !tbaa !9
  %5940 = load ptr, ptr %127, align 8, !tbaa !9
  %5941 = call i32 @s2n_connection_set_config(ptr noundef %5939, ptr noundef %5940)
  %5942 = icmp eq i32 %5941, -1
  br i1 %5942, label %5943, label %5996

5943:                                             ; preds = %5936
  br label %5944

5944:                                             ; preds = %5943
  br label %5945

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

5952:                                             ; preds = %5945
  %5953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5954 = call i32 @fileno(ptr noundef %5953) #9
  %5955 = call i32 @isatty(i32 noundef %5954) #9
  %5956 = icmp ne i32 %5955, 0
  br i1 %5956, label %5957, label %5974

5957:                                             ; preds = %5952
  %5958 = load i32, ptr %132, align 4, !tbaa !5
  %5959 = call ptr @__errno_location() #10
  store i32 %5958, ptr %5959, align 4, !tbaa !5
  %5960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5961 = load i32, ptr @test_count, align 4, !tbaa !5
  %5962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5963 = load i32, ptr %5962, align 4, !tbaa !5
  %5964 = call ptr @s2n_strerror(i32 noundef %5963, ptr noundef @.str.4)
  %5965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5966 = load i32, ptr %5965, align 4, !tbaa !5
  %5967 = call ptr @s2n_strerror_debug(i32 noundef %5966, ptr noundef @.str.4)
  %5968 = call ptr @__errno_location() #10
  %5969 = load i32, ptr %5968, align 4, !tbaa !5
  %5970 = call ptr @strerror(i32 noundef %5969) #9
  %5971 = call ptr @__errno_location() #10
  %5972 = load i32, ptr %5971, align 4, !tbaa !5
  %5973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5960, ptr noundef @.str.2, i32 noundef %5961, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 275, ptr noundef %5964, ptr noundef %5967, ptr noundef %5970, i32 noundef %5972) #9
  br label %5991

5974:                                             ; preds = %5952, %5945
  %5975 = load i32, ptr %132, align 4, !tbaa !5
  %5976 = call ptr @__errno_location() #10
  store i32 %5975, ptr %5976, align 4, !tbaa !5
  %5977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5978 = load i32, ptr @test_count, align 4, !tbaa !5
  %5979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5980 = load i32, ptr %5979, align 4, !tbaa !5
  %5981 = call ptr @s2n_strerror(i32 noundef %5980, ptr noundef @.str.4)
  %5982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5983 = load i32, ptr %5982, align 4, !tbaa !5
  %5984 = call ptr @s2n_strerror_debug(i32 noundef %5983, ptr noundef @.str.4)
  %5985 = call ptr @__errno_location() #10
  %5986 = load i32, ptr %5985, align 4, !tbaa !5
  %5987 = call ptr @strerror(i32 noundef %5986) #9
  %5988 = call ptr @__errno_location() #10
  %5989 = load i32, ptr %5988, align 4, !tbaa !5
  %5990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5977, ptr noundef @.str.5, i32 noundef %5978, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 275, ptr noundef %5981, ptr noundef %5984, ptr noundef %5987, i32 noundef %5989) #9
  br label %5991

5991:                                             ; preds = %5974, %5957
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #9
  br label %5992

5992:                                             ; preds = %5991
  br label %5993

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

5994:                                             ; No predecessors!
  br label %5995

5995:                                             ; preds = %5994
  br label %5996

5996:                                             ; preds = %5995, %5936
  br label %5997

5997:                                             ; preds = %5996
  br label %5998

5998:                                             ; preds = %5997
  %5999 = load i64, ptr %125, align 8, !tbaa !26
  %6000 = getelementptr inbounds [3 x [2 x ptr]], ptr %124, i64 0, i64 %5999
  %6001 = getelementptr inbounds [2 x ptr], ptr %6000, i64 0, i64 0
  %6002 = load ptr, ptr %6001, align 16, !tbaa !9
  %6003 = load ptr, ptr %130, align 8, !tbaa !9
  %6004 = getelementptr inbounds %struct.s2n_connection, ptr %6003, i32 0, i32 2
  store ptr %6002, ptr %6004, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #9
  store ptr null, ptr %133, align 8, !tbaa !9
  br label %6005

6005:                                             ; preds = %5998
  %6006 = load i32, ptr @test_count, align 4, !tbaa !5
  %6007 = add nsw i32 %6006, 1
  store i32 %6007, ptr @test_count, align 4, !tbaa !5
  %6008 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6008, ptr %133, align 8, !tbaa !9
  %6009 = icmp eq ptr %6008, null
  br i1 %6009, label %6010, label %6063

6010:                                             ; preds = %6005
  br label %6011

6011:                                             ; preds = %6010
  br label %6012

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

6019:                                             ; preds = %6012
  %6020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6021 = call i32 @fileno(ptr noundef %6020) #9
  %6022 = call i32 @isatty(i32 noundef %6021) #9
  %6023 = icmp ne i32 %6022, 0
  br i1 %6023, label %6024, label %6041

6024:                                             ; preds = %6019
  %6025 = load i32, ptr %134, align 4, !tbaa !5
  %6026 = call ptr @__errno_location() #10
  store i32 %6025, ptr %6026, align 4, !tbaa !5
  %6027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6028 = load i32, ptr @test_count, align 4, !tbaa !5
  %6029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6030 = load i32, ptr %6029, align 4, !tbaa !5
  %6031 = call ptr @s2n_strerror(i32 noundef %6030, ptr noundef @.str.4)
  %6032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6033 = load i32, ptr %6032, align 4, !tbaa !5
  %6034 = call ptr @s2n_strerror_debug(i32 noundef %6033, ptr noundef @.str.4)
  %6035 = call ptr @__errno_location() #10
  %6036 = load i32, ptr %6035, align 4, !tbaa !5
  %6037 = call ptr @strerror(i32 noundef %6036) #9
  %6038 = call ptr @__errno_location() #10
  %6039 = load i32, ptr %6038, align 4, !tbaa !5
  %6040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6027, ptr noundef @.str.2, i32 noundef %6028, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 279, ptr noundef %6031, ptr noundef %6034, ptr noundef %6037, i32 noundef %6039) #9
  br label %6058

6041:                                             ; preds = %6019, %6012
  %6042 = load i32, ptr %134, align 4, !tbaa !5
  %6043 = call ptr @__errno_location() #10
  store i32 %6042, ptr %6043, align 4, !tbaa !5
  %6044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6045 = load i32, ptr @test_count, align 4, !tbaa !5
  %6046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6047 = load i32, ptr %6046, align 4, !tbaa !5
  %6048 = call ptr @s2n_strerror(i32 noundef %6047, ptr noundef @.str.4)
  %6049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6050 = load i32, ptr %6049, align 4, !tbaa !5
  %6051 = call ptr @s2n_strerror_debug(i32 noundef %6050, ptr noundef @.str.4)
  %6052 = call ptr @__errno_location() #10
  %6053 = load i32, ptr %6052, align 4, !tbaa !5
  %6054 = call ptr @strerror(i32 noundef %6053) #9
  %6055 = call ptr @__errno_location() #10
  %6056 = load i32, ptr %6055, align 4, !tbaa !5
  %6057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6044, ptr noundef @.str.5, i32 noundef %6045, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 279, ptr noundef %6048, ptr noundef %6051, ptr noundef %6054, i32 noundef %6056) #9
  br label %6058

6058:                                             ; preds = %6041, %6024
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #9
  br label %6059

6059:                                             ; preds = %6058
  br label %6060

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

6061:                                             ; No predecessors!
  br label %6062

6062:                                             ; preds = %6061
  br label %6063

6063:                                             ; preds = %6062, %6005
  br label %6064

6064:                                             ; preds = %6063
  br label %6065

6065:                                             ; preds = %6064
  br label %6066

6066:                                             ; preds = %6065
  %6067 = load i32, ptr @test_count, align 4, !tbaa !5
  %6068 = add nsw i32 %6067, 1
  store i32 %6068, ptr @test_count, align 4, !tbaa !5
  %6069 = load ptr, ptr %133, align 8, !tbaa !9
  %6070 = load ptr, ptr %127, align 8, !tbaa !9
  %6071 = call i32 @s2n_connection_set_config(ptr noundef %6069, ptr noundef %6070)
  %6072 = icmp eq i32 %6071, -1
  br i1 %6072, label %6073, label %6126

6073:                                             ; preds = %6066
  br label %6074

6074:                                             ; preds = %6073
  br label %6075

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

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

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

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

6121:                                             ; preds = %6104, %6087
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #9
  br label %6122

6122:                                             ; preds = %6121
  br label %6123

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

6124:                                             ; No predecessors!
  br label %6125

6125:                                             ; preds = %6124
  br label %6126

6126:                                             ; preds = %6125, %6066
  br label %6127

6127:                                             ; preds = %6126
  br label %6128

6128:                                             ; preds = %6127
  %6129 = load i64, ptr %125, align 8, !tbaa !26
  %6130 = getelementptr inbounds [3 x [2 x ptr]], ptr %124, i64 0, i64 %6129
  %6131 = getelementptr inbounds [2 x ptr], ptr %6130, i64 0, i64 1
  %6132 = load ptr, ptr %6131, align 8, !tbaa !9
  %6133 = load ptr, ptr %133, align 8, !tbaa !9
  %6134 = getelementptr inbounds %struct.s2n_connection, ptr %6133, i32 0, i32 2
  store ptr %6132, ptr %6134, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #9
  store ptr null, ptr %136, align 8, !tbaa !9
  br label %6135

6135:                                             ; preds = %6128
  %6136 = load i32, ptr @test_count, align 4, !tbaa !5
  %6137 = add nsw i32 %6136, 1
  store i32 %6137, ptr @test_count, align 4, !tbaa !5
  %6138 = load ptr, ptr %133, align 8, !tbaa !9
  %6139 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %6138, ptr noundef %136)
  %6140 = icmp eq i32 %6139, -1
  br i1 %6140, label %6141, label %6194

6141:                                             ; preds = %6135
  br label %6142

6142:                                             ; preds = %6141
  br label %6143

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

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

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

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

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

6190:                                             ; preds = %6189
  br label %6191

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

6192:                                             ; No predecessors!
  br label %6193

6193:                                             ; preds = %6192
  br label %6194

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

6195:                                             ; preds = %6194
  br label %6196

6196:                                             ; preds = %6195
  br label %6197

6197:                                             ; preds = %6196
  %6198 = load i32, ptr @test_count, align 4, !tbaa !5
  %6199 = add nsw i32 %6198, 1
  store i32 %6199, ptr @test_count, align 4, !tbaa !5
  %6200 = load ptr, ptr %136, align 8, !tbaa !9
  %6201 = icmp eq ptr %6200, null
  br i1 %6201, label %6202, label %6255

6202:                                             ; preds = %6197
  br label %6203

6203:                                             ; preds = %6202
  br label %6204

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

6211:                                             ; preds = %6204
  %6212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6213 = call i32 @fileno(ptr noundef %6212) #9
  %6214 = call i32 @isatty(i32 noundef %6213) #9
  %6215 = icmp ne i32 %6214, 0
  br i1 %6215, label %6216, label %6233

6216:                                             ; preds = %6211
  %6217 = load i32, ptr %138, align 4, !tbaa !5
  %6218 = call ptr @__errno_location() #10
  store i32 %6217, ptr %6218, 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 @.str.4)
  %6224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6225 = load i32, ptr %6224, align 4, !tbaa !5
  %6226 = call ptr @s2n_strerror_debug(i32 noundef %6225, ptr noundef @.str.4)
  %6227 = call ptr @__errno_location() #10
  %6228 = load i32, ptr %6227, align 4, !tbaa !5
  %6229 = call ptr @strerror(i32 noundef %6228) #9
  %6230 = call ptr @__errno_location() #10
  %6231 = load i32, ptr %6230, align 4, !tbaa !5
  %6232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6219, ptr noundef @.str.2, i32 noundef %6220, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 285, ptr noundef %6223, ptr noundef %6226, ptr noundef %6229, i32 noundef %6231) #9
  br label %6250

6233:                                             ; preds = %6211, %6204
  %6234 = load i32, ptr %138, align 4, !tbaa !5
  %6235 = call ptr @__errno_location() #10
  store i32 %6234, ptr %6235, align 4, !tbaa !5
  %6236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6237 = load i32, ptr @test_count, align 4, !tbaa !5
  %6238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6239 = load i32, ptr %6238, align 4, !tbaa !5
  %6240 = call ptr @s2n_strerror(i32 noundef %6239, ptr noundef @.str.4)
  %6241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6242 = load i32, ptr %6241, align 4, !tbaa !5
  %6243 = call ptr @s2n_strerror_debug(i32 noundef %6242, ptr noundef @.str.4)
  %6244 = call ptr @__errno_location() #10
  %6245 = load i32, ptr %6244, align 4, !tbaa !5
  %6246 = call ptr @strerror(i32 noundef %6245) #9
  %6247 = call ptr @__errno_location() #10
  %6248 = load i32, ptr %6247, align 4, !tbaa !5
  %6249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6236, ptr noundef @.str.5, i32 noundef %6237, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 285, ptr noundef %6240, ptr noundef %6243, ptr noundef %6246, i32 noundef %6248) #9
  br label %6250

6250:                                             ; preds = %6233, %6216
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #9
  br label %6251

6251:                                             ; preds = %6250
  br label %6252

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

6253:                                             ; No predecessors!
  br label %6254

6254:                                             ; preds = %6253
  br label %6255

6255:                                             ; preds = %6254, %6197
  br label %6256

6256:                                             ; preds = %6255
  br label %6257

6257:                                             ; preds = %6256
  call void @llvm.lifetime.start.p0(i64 40, ptr %139) #9
  call void @llvm.memset.p0.i64(ptr align 8 %139, i8 0, i64 40, i1 false)
  br label %6258

6258:                                             ; preds = %6257
  %6259 = load i32, ptr @test_count, align 4, !tbaa !5
  %6260 = add nsw i32 %6259, 1
  store i32 %6260, ptr @test_count, align 4, !tbaa !5
  %6261 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %139, i32 noundef 0)
  %6262 = icmp eq i32 %6261, -1
  br i1 %6262, label %6263, label %6316

6263:                                             ; preds = %6258
  br label %6264

6264:                                             ; preds = %6263
  br label %6265

6265:                                             ; preds = %6264
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #9
  %6266 = call ptr @__errno_location() #10
  %6267 = load i32, ptr %6266, align 4, !tbaa !5
  store i32 %6267, ptr %140, align 4, !tbaa !5
  %6268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6269 = call i32 @s2n_print_stacktrace(ptr noundef %6268)
  %6270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6271 = trunc i8 %6270 to i1
  br i1 %6271, label %6272, label %6294

6272:                                             ; preds = %6265
  %6273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6274 = call i32 @fileno(ptr noundef %6273) #9
  %6275 = call i32 @isatty(i32 noundef %6274) #9
  %6276 = icmp ne i32 %6275, 0
  br i1 %6276, label %6277, label %6294

6277:                                             ; preds = %6272
  %6278 = load i32, ptr %140, align 4, !tbaa !5
  %6279 = call ptr @__errno_location() #10
  store i32 %6278, ptr %6279, align 4, !tbaa !5
  %6280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6281 = load i32, ptr @test_count, align 4, !tbaa !5
  %6282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6283 = load i32, ptr %6282, align 4, !tbaa !5
  %6284 = call ptr @s2n_strerror(i32 noundef %6283, ptr noundef @.str.4)
  %6285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6286 = load i32, ptr %6285, align 4, !tbaa !5
  %6287 = call ptr @s2n_strerror_debug(i32 noundef %6286, ptr noundef @.str.4)
  %6288 = call ptr @__errno_location() #10
  %6289 = load i32, ptr %6288, align 4, !tbaa !5
  %6290 = call ptr @strerror(i32 noundef %6289) #9
  %6291 = call ptr @__errno_location() #10
  %6292 = load i32, ptr %6291, align 4, !tbaa !5
  %6293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6280, ptr noundef @.str.2, i32 noundef %6281, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 288, ptr noundef %6284, ptr noundef %6287, ptr noundef %6290, i32 noundef %6292) #9
  br label %6311

6294:                                             ; preds = %6272, %6265
  %6295 = load i32, ptr %140, align 4, !tbaa !5
  %6296 = call ptr @__errno_location() #10
  store i32 %6295, ptr %6296, align 4, !tbaa !5
  %6297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6298 = load i32, ptr @test_count, align 4, !tbaa !5
  %6299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6300 = load i32, ptr %6299, align 4, !tbaa !5
  %6301 = call ptr @s2n_strerror(i32 noundef %6300, ptr noundef @.str.4)
  %6302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6303 = load i32, ptr %6302, align 4, !tbaa !5
  %6304 = call ptr @s2n_strerror_debug(i32 noundef %6303, ptr noundef @.str.4)
  %6305 = call ptr @__errno_location() #10
  %6306 = load i32, ptr %6305, align 4, !tbaa !5
  %6307 = call ptr @strerror(i32 noundef %6306) #9
  %6308 = call ptr @__errno_location() #10
  %6309 = load i32, ptr %6308, align 4, !tbaa !5
  %6310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6297, ptr noundef @.str.5, i32 noundef %6298, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 288, ptr noundef %6301, ptr noundef %6304, ptr noundef %6307, i32 noundef %6309) #9
  br label %6311

6311:                                             ; preds = %6294, %6277
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #9
  br label %6312

6312:                                             ; preds = %6311
  br label %6313

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

6314:                                             ; No predecessors!
  br label %6315

6315:                                             ; preds = %6314
  br label %6316

6316:                                             ; preds = %6315, %6258
  br label %6317

6317:                                             ; preds = %6316
  br label %6318

6318:                                             ; preds = %6317
  br label %6319

6319:                                             ; preds = %6318
  %6320 = load i32, ptr @test_count, align 4, !tbaa !5
  %6321 = add nsw i32 %6320, 1
  store i32 %6321, ptr @test_count, align 4, !tbaa !5
  %6322 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 3), align 8, !tbaa !18
  %6323 = load ptr, ptr %130, align 8, !tbaa !9
  %6324 = call i32 %6322(ptr noundef %6323, ptr noundef %139)
  %6325 = icmp eq i32 %6324, -1
  br i1 %6325, label %6326, label %6379

6326:                                             ; preds = %6319
  br label %6327

6327:                                             ; preds = %6326
  br label %6328

6328:                                             ; preds = %6327
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #9
  %6329 = call ptr @__errno_location() #10
  %6330 = load i32, ptr %6329, align 4, !tbaa !5
  store i32 %6330, ptr %141, align 4, !tbaa !5
  %6331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6332 = call i32 @s2n_print_stacktrace(ptr noundef %6331)
  %6333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6334 = trunc i8 %6333 to i1
  br i1 %6334, label %6335, label %6357

6335:                                             ; preds = %6328
  %6336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6337 = call i32 @fileno(ptr noundef %6336) #9
  %6338 = call i32 @isatty(i32 noundef %6337) #9
  %6339 = icmp ne i32 %6338, 0
  br i1 %6339, label %6340, label %6357

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

6357:                                             ; preds = %6335, %6328
  %6358 = load i32, ptr %141, align 4, !tbaa !5
  %6359 = call ptr @__errno_location() #10
  store i32 %6358, ptr %6359, align 4, !tbaa !5
  %6360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6361 = load i32, ptr @test_count, align 4, !tbaa !5
  %6362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6363 = load i32, ptr %6362, align 4, !tbaa !5
  %6364 = call ptr @s2n_strerror(i32 noundef %6363, ptr noundef @.str.4)
  %6365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6366 = load i32, ptr %6365, align 4, !tbaa !5
  %6367 = call ptr @s2n_strerror_debug(i32 noundef %6366, ptr noundef @.str.4)
  %6368 = call ptr @__errno_location() #10
  %6369 = load i32, ptr %6368, align 4, !tbaa !5
  %6370 = call ptr @strerror(i32 noundef %6369) #9
  %6371 = call ptr @__errno_location() #10
  %6372 = load i32, ptr %6371, align 4, !tbaa !5
  %6373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6360, ptr noundef @.str.5, i32 noundef %6361, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6364, ptr noundef %6367, ptr noundef %6370, i32 noundef %6372) #9
  br label %6374

6374:                                             ; preds = %6357, %6340
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #9
  br label %6375

6375:                                             ; preds = %6374
  br label %6376

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

6377:                                             ; No predecessors!
  br label %6378

6378:                                             ; preds = %6377
  br label %6379

6379:                                             ; preds = %6378, %6319
  br label %6380

6380:                                             ; preds = %6379
  br label %6381

6381:                                             ; preds = %6380
  br label %6382

6382:                                             ; preds = %6381
  %6383 = load i32, ptr @test_count, align 4, !tbaa !5
  %6384 = add nsw i32 %6383, 1
  store i32 %6384, ptr @test_count, align 4, !tbaa !5
  %6385 = load ptr, ptr %133, align 8, !tbaa !9
  %6386 = getelementptr inbounds %struct.s2n_connection, ptr %6385, i32 0, i32 31
  %6387 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6386, i32 0, i32 1
  %6388 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6387, i32 0, i32 0
  %6389 = load ptr, ptr %6388, align 8, !tbaa !73
  %6390 = icmp eq ptr %6389, null
  br i1 %6390, label %6444, label %6391

6391:                                             ; preds = %6382
  br label %6392

6392:                                             ; preds = %6391
  br label %6393

6393:                                             ; preds = %6392
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #9
  %6394 = call ptr @__errno_location() #10
  %6395 = load i32, ptr %6394, align 4, !tbaa !5
  store i32 %6395, ptr %142, align 4, !tbaa !5
  %6396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6397 = call i32 @s2n_print_stacktrace(ptr noundef %6396)
  %6398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6399 = trunc i8 %6398 to i1
  br i1 %6399, label %6400, label %6422

6400:                                             ; preds = %6393
  %6401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6402 = call i32 @fileno(ptr noundef %6401) #9
  %6403 = call i32 @isatty(i32 noundef %6402) #9
  %6404 = icmp ne i32 %6403, 0
  br i1 %6404, label %6405, label %6422

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

6422:                                             ; preds = %6400, %6393
  %6423 = load i32, ptr %142, align 4, !tbaa !5
  %6424 = call ptr @__errno_location() #10
  store i32 %6423, ptr %6424, align 4, !tbaa !5
  %6425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6426 = load i32, ptr @test_count, align 4, !tbaa !5
  %6427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6428 = load i32, ptr %6427, align 4, !tbaa !5
  %6429 = call ptr @s2n_strerror(i32 noundef %6428, ptr noundef @.str.4)
  %6430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6431 = load i32, ptr %6430, align 4, !tbaa !5
  %6432 = call ptr @s2n_strerror_debug(i32 noundef %6431, ptr noundef @.str.4)
  %6433 = call ptr @__errno_location() #10
  %6434 = load i32, ptr %6433, align 4, !tbaa !5
  %6435 = call ptr @strerror(i32 noundef %6434) #9
  %6436 = call ptr @__errno_location() #10
  %6437 = load i32, ptr %6436, align 4, !tbaa !5
  %6438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6425, ptr noundef @.str.5, i32 noundef %6426, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 292, ptr noundef %6429, ptr noundef %6432, ptr noundef %6435, i32 noundef %6437) #9
  br label %6439

6439:                                             ; preds = %6422, %6405
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #9
  br label %6440

6440:                                             ; preds = %6439
  br label %6441

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

6442:                                             ; No predecessors!
  br label %6443

6443:                                             ; preds = %6442
  br label %6444

6444:                                             ; preds = %6443, %6382
  br label %6445

6445:                                             ; preds = %6444
  br label %6446

6446:                                             ; preds = %6445
  br label %6447

6447:                                             ; preds = %6446
  %6448 = load i32, ptr @test_count, align 4, !tbaa !5
  %6449 = add nsw i32 %6448, 1
  store i32 %6449, ptr @test_count, align 4, !tbaa !5
  %6450 = load ptr, ptr %133, align 8, !tbaa !9
  %6451 = getelementptr inbounds %struct.s2n_connection, ptr %6450, i32 0, i32 31
  %6452 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6451, i32 0, i32 4
  %6453 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %6452, i32 0, i32 0
  %6454 = load ptr, ptr %6453, align 8, !tbaa !74
  %6455 = icmp eq ptr %6454, null
  br i1 %6455, label %6509, label %6456

6456:                                             ; preds = %6447
  br label %6457

6457:                                             ; preds = %6456
  br label %6458

6458:                                             ; preds = %6457
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #9
  %6459 = call ptr @__errno_location() #10
  %6460 = load i32, ptr %6459, align 4, !tbaa !5
  store i32 %6460, ptr %143, align 4, !tbaa !5
  %6461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6462 = call i32 @s2n_print_stacktrace(ptr noundef %6461)
  %6463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6464 = trunc i8 %6463 to i1
  br i1 %6464, label %6465, label %6487

6465:                                             ; preds = %6458
  %6466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6467 = call i32 @fileno(ptr noundef %6466) #9
  %6468 = call i32 @isatty(i32 noundef %6467) #9
  %6469 = icmp ne i32 %6468, 0
  br i1 %6469, label %6470, label %6487

6470:                                             ; preds = %6465
  %6471 = load i32, ptr %143, align 4, !tbaa !5
  %6472 = call ptr @__errno_location() #10
  store i32 %6471, ptr %6472, align 4, !tbaa !5
  %6473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6474 = load i32, ptr @test_count, align 4, !tbaa !5
  %6475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6476 = load i32, ptr %6475, align 4, !tbaa !5
  %6477 = call ptr @s2n_strerror(i32 noundef %6476, ptr noundef @.str.4)
  %6478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6479 = load i32, ptr %6478, align 4, !tbaa !5
  %6480 = call ptr @s2n_strerror_debug(i32 noundef %6479, ptr noundef @.str.4)
  %6481 = call ptr @__errno_location() #10
  %6482 = load i32, ptr %6481, align 4, !tbaa !5
  %6483 = call ptr @strerror(i32 noundef %6482) #9
  %6484 = call ptr @__errno_location() #10
  %6485 = load i32, ptr %6484, align 4, !tbaa !5
  %6486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6473, ptr noundef @.str.2, i32 noundef %6474, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 293, ptr noundef %6477, ptr noundef %6480, ptr noundef %6483, i32 noundef %6485) #9
  br label %6504

6487:                                             ; preds = %6465, %6458
  %6488 = load i32, ptr %143, align 4, !tbaa !5
  %6489 = call ptr @__errno_location() #10
  store i32 %6488, ptr %6489, align 4, !tbaa !5
  %6490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6491 = load i32, ptr @test_count, align 4, !tbaa !5
  %6492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6493 = load i32, ptr %6492, align 4, !tbaa !5
  %6494 = call ptr @s2n_strerror(i32 noundef %6493, ptr noundef @.str.4)
  %6495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6496 = load i32, ptr %6495, align 4, !tbaa !5
  %6497 = call ptr @s2n_strerror_debug(i32 noundef %6496, ptr noundef @.str.4)
  %6498 = call ptr @__errno_location() #10
  %6499 = load i32, ptr %6498, align 4, !tbaa !5
  %6500 = call ptr @strerror(i32 noundef %6499) #9
  %6501 = call ptr @__errno_location() #10
  %6502 = load i32, ptr %6501, align 4, !tbaa !5
  %6503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6490, ptr noundef @.str.5, i32 noundef %6491, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 293, ptr noundef %6494, ptr noundef %6497, ptr noundef %6500, i32 noundef %6502) #9
  br label %6504

6504:                                             ; preds = %6487, %6470
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #9
  br label %6505

6505:                                             ; preds = %6504
  br label %6506

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

6507:                                             ; No predecessors!
  br label %6508

6508:                                             ; preds = %6507
  br label %6509

6509:                                             ; preds = %6508, %6447
  br label %6510

6510:                                             ; preds = %6509
  br label %6511

6511:                                             ; preds = %6510
  br label %6512

6512:                                             ; preds = %6511
  %6513 = load i32, ptr @test_count, align 4, !tbaa !5
  %6514 = add nsw i32 %6513, 1
  store i32 %6514, ptr @test_count, align 4, !tbaa !5
  %6515 = load ptr, ptr %133, align 8, !tbaa !9
  %6516 = getelementptr inbounds %struct.s2n_connection, ptr %6515, i32 0, i32 31
  %6517 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6516, i32 0, i32 4
  %6518 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %6517, i32 0, i32 2
  %6519 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6518, i32 0, i32 0
  %6520 = load ptr, ptr %6519, align 8, !tbaa !75
  %6521 = icmp eq ptr %6520, null
  br i1 %6521, label %6575, label %6522

6522:                                             ; preds = %6512
  br label %6523

6523:                                             ; preds = %6522
  br label %6524

6524:                                             ; preds = %6523
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #9
  %6525 = call ptr @__errno_location() #10
  %6526 = load i32, ptr %6525, align 4, !tbaa !5
  store i32 %6526, ptr %144, align 4, !tbaa !5
  %6527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6528 = call i32 @s2n_print_stacktrace(ptr noundef %6527)
  %6529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6530 = trunc i8 %6529 to i1
  br i1 %6530, label %6531, label %6553

6531:                                             ; preds = %6524
  %6532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6533 = call i32 @fileno(ptr noundef %6532) #9
  %6534 = call i32 @isatty(i32 noundef %6533) #9
  %6535 = icmp ne i32 %6534, 0
  br i1 %6535, label %6536, label %6553

6536:                                             ; preds = %6531
  %6537 = load i32, ptr %144, align 4, !tbaa !5
  %6538 = call ptr @__errno_location() #10
  store i32 %6537, ptr %6538, align 4, !tbaa !5
  %6539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6540 = load i32, ptr @test_count, align 4, !tbaa !5
  %6541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6542 = load i32, ptr %6541, align 4, !tbaa !5
  %6543 = call ptr @s2n_strerror(i32 noundef %6542, ptr noundef @.str.4)
  %6544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6545 = load i32, ptr %6544, align 4, !tbaa !5
  %6546 = call ptr @s2n_strerror_debug(i32 noundef %6545, ptr noundef @.str.4)
  %6547 = call ptr @__errno_location() #10
  %6548 = load i32, ptr %6547, align 4, !tbaa !5
  %6549 = call ptr @strerror(i32 noundef %6548) #9
  %6550 = call ptr @__errno_location() #10
  %6551 = load i32, ptr %6550, align 4, !tbaa !5
  %6552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6539, ptr noundef @.str.2, i32 noundef %6540, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6543, ptr noundef %6546, ptr noundef %6549, i32 noundef %6551) #9
  br label %6570

6553:                                             ; preds = %6531, %6524
  %6554 = load i32, ptr %144, align 4, !tbaa !5
  %6555 = call ptr @__errno_location() #10
  store i32 %6554, ptr %6555, align 4, !tbaa !5
  %6556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6557 = load i32, ptr @test_count, align 4, !tbaa !5
  %6558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6559 = load i32, ptr %6558, align 4, !tbaa !5
  %6560 = call ptr @s2n_strerror(i32 noundef %6559, ptr noundef @.str.4)
  %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_debug(i32 noundef %6562, ptr noundef @.str.4)
  %6564 = call ptr @__errno_location() #10
  %6565 = load i32, ptr %6564, align 4, !tbaa !5
  %6566 = call ptr @strerror(i32 noundef %6565) #9
  %6567 = call ptr @__errno_location() #10
  %6568 = load i32, ptr %6567, align 4, !tbaa !5
  %6569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6556, ptr noundef @.str.5, i32 noundef %6557, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6560, ptr noundef %6563, ptr noundef %6566, i32 noundef %6568) #9
  br label %6570

6570:                                             ; preds = %6553, %6536
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #9
  br label %6571

6571:                                             ; preds = %6570
  br label %6572

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

6573:                                             ; No predecessors!
  br label %6574

6574:                                             ; preds = %6573
  br label %6575

6575:                                             ; preds = %6574, %6512
  br label %6576

6576:                                             ; preds = %6575
  br label %6577

6577:                                             ; preds = %6576
  br label %6578

6578:                                             ; preds = %6577
  %6579 = load i32, ptr @test_count, align 4, !tbaa !5
  %6580 = add nsw i32 %6579, 1
  store i32 %6580, ptr @test_count, align 4, !tbaa !5
  %6581 = load ptr, ptr %133, align 8, !tbaa !9
  %6582 = getelementptr inbounds %struct.s2n_connection, ptr %6581, i32 0, i32 31
  %6583 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6582, i32 0, i32 4
  %6584 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %6583, i32 0, i32 1
  %6585 = getelementptr inbounds %struct.s2n_kem_params, ptr %6584, i32 0, i32 0
  %6586 = load ptr, ptr %6585, align 8, !tbaa !76
  %6587 = icmp eq ptr %6586, null
  br i1 %6587, label %6641, label %6588

6588:                                             ; preds = %6578
  br label %6589

6589:                                             ; preds = %6588
  br label %6590

6590:                                             ; preds = %6589
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #9
  %6591 = call ptr @__errno_location() #10
  %6592 = load i32, ptr %6591, align 4, !tbaa !5
  store i32 %6592, ptr %145, align 4, !tbaa !5
  %6593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6594 = call i32 @s2n_print_stacktrace(ptr noundef %6593)
  %6595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6596 = trunc i8 %6595 to i1
  br i1 %6596, label %6597, label %6619

6597:                                             ; preds = %6590
  %6598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6599 = call i32 @fileno(ptr noundef %6598) #9
  %6600 = call i32 @isatty(i32 noundef %6599) #9
  %6601 = icmp ne i32 %6600, 0
  br i1 %6601, label %6602, label %6619

6602:                                             ; preds = %6597
  %6603 = load i32, ptr %145, align 4, !tbaa !5
  %6604 = call ptr @__errno_location() #10
  store i32 %6603, ptr %6604, align 4, !tbaa !5
  %6605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6606 = load i32, ptr @test_count, align 4, !tbaa !5
  %6607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6608 = load i32, ptr %6607, align 4, !tbaa !5
  %6609 = call ptr @s2n_strerror(i32 noundef %6608, ptr noundef @.str.4)
  %6610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6611 = load i32, ptr %6610, align 4, !tbaa !5
  %6612 = call ptr @s2n_strerror_debug(i32 noundef %6611, ptr noundef @.str.4)
  %6613 = call ptr @__errno_location() #10
  %6614 = load i32, ptr %6613, align 4, !tbaa !5
  %6615 = call ptr @strerror(i32 noundef %6614) #9
  %6616 = call ptr @__errno_location() #10
  %6617 = load i32, ptr %6616, align 4, !tbaa !5
  %6618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6605, ptr noundef @.str.2, i32 noundef %6606, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 295, ptr noundef %6609, ptr noundef %6612, ptr noundef %6615, i32 noundef %6617) #9
  br label %6636

6619:                                             ; preds = %6597, %6590
  %6620 = load i32, ptr %145, align 4, !tbaa !5
  %6621 = call ptr @__errno_location() #10
  store i32 %6620, ptr %6621, align 4, !tbaa !5
  %6622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6623 = load i32, ptr @test_count, align 4, !tbaa !5
  %6624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6625 = load i32, ptr %6624, align 4, !tbaa !5
  %6626 = call ptr @s2n_strerror(i32 noundef %6625, ptr noundef @.str.4)
  %6627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6628 = load i32, ptr %6627, align 4, !tbaa !5
  %6629 = call ptr @s2n_strerror_debug(i32 noundef %6628, ptr noundef @.str.4)
  %6630 = call ptr @__errno_location() #10
  %6631 = load i32, ptr %6630, align 4, !tbaa !5
  %6632 = call ptr @strerror(i32 noundef %6631) #9
  %6633 = call ptr @__errno_location() #10
  %6634 = load i32, ptr %6633, align 4, !tbaa !5
  %6635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6622, ptr noundef @.str.5, i32 noundef %6623, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 295, ptr noundef %6626, ptr noundef %6629, ptr noundef %6632, i32 noundef %6634) #9
  br label %6636

6636:                                             ; preds = %6619, %6602
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #9
  br label %6637

6637:                                             ; preds = %6636
  br label %6638

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

6639:                                             ; No predecessors!
  br label %6640

6640:                                             ; preds = %6639
  br label %6641

6641:                                             ; preds = %6640, %6578
  br label %6642

6642:                                             ; preds = %6641
  br label %6643

6643:                                             ; preds = %6642
  br label %6644

6644:                                             ; preds = %6643
  %6645 = load i32, ptr @test_count, align 4, !tbaa !5
  %6646 = add nsw i32 %6645, 1
  store i32 %6646, ptr @test_count, align 4, !tbaa !5
  %6647 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 4), align 8, !tbaa !77
  %6648 = load ptr, ptr %133, align 8, !tbaa !9
  %6649 = call i32 %6647(ptr noundef %6648, ptr noundef %139)
  %6650 = icmp eq i32 %6649, -1
  br i1 %6650, label %6651, label %6704

6651:                                             ; preds = %6644
  br label %6652

6652:                                             ; preds = %6651
  br label %6653

6653:                                             ; preds = %6652
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #9
  %6654 = call ptr @__errno_location() #10
  %6655 = load i32, ptr %6654, align 4, !tbaa !5
  store i32 %6655, ptr %146, align 4, !tbaa !5
  %6656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6657 = call i32 @s2n_print_stacktrace(ptr noundef %6656)
  %6658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6659 = trunc i8 %6658 to i1
  br i1 %6659, label %6660, label %6682

6660:                                             ; preds = %6653
  %6661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6662 = call i32 @fileno(ptr noundef %6661) #9
  %6663 = call i32 @isatty(i32 noundef %6662) #9
  %6664 = icmp ne i32 %6663, 0
  br i1 %6664, label %6665, label %6682

6665:                                             ; preds = %6660
  %6666 = load i32, ptr %146, align 4, !tbaa !5
  %6667 = call ptr @__errno_location() #10
  store i32 %6666, ptr %6667, align 4, !tbaa !5
  %6668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6669 = load i32, ptr @test_count, align 4, !tbaa !5
  %6670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6671 = load i32, ptr %6670, align 4, !tbaa !5
  %6672 = call ptr @s2n_strerror(i32 noundef %6671, ptr noundef @.str.4)
  %6673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6674 = load i32, ptr %6673, align 4, !tbaa !5
  %6675 = call ptr @s2n_strerror_debug(i32 noundef %6674, ptr noundef @.str.4)
  %6676 = call ptr @__errno_location() #10
  %6677 = load i32, ptr %6676, align 4, !tbaa !5
  %6678 = call ptr @strerror(i32 noundef %6677) #9
  %6679 = call ptr @__errno_location() #10
  %6680 = load i32, ptr %6679, align 4, !tbaa !5
  %6681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6668, ptr noundef @.str.2, i32 noundef %6669, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 297, ptr noundef %6672, ptr noundef %6675, ptr noundef %6678, i32 noundef %6680) #9
  br label %6699

6682:                                             ; preds = %6660, %6653
  %6683 = load i32, ptr %146, align 4, !tbaa !5
  %6684 = call ptr @__errno_location() #10
  store i32 %6683, ptr %6684, align 4, !tbaa !5
  %6685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6686 = load i32, ptr @test_count, align 4, !tbaa !5
  %6687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6688 = load i32, ptr %6687, align 4, !tbaa !5
  %6689 = call ptr @s2n_strerror(i32 noundef %6688, ptr noundef @.str.4)
  %6690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6691 = load i32, ptr %6690, align 4, !tbaa !5
  %6692 = call ptr @s2n_strerror_debug(i32 noundef %6691, ptr noundef @.str.4)
  %6693 = call ptr @__errno_location() #10
  %6694 = load i32, ptr %6693, align 4, !tbaa !5
  %6695 = call ptr @strerror(i32 noundef %6694) #9
  %6696 = call ptr @__errno_location() #10
  %6697 = load i32, ptr %6696, align 4, !tbaa !5
  %6698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6685, ptr noundef @.str.5, i32 noundef %6686, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 297, ptr noundef %6689, ptr noundef %6692, ptr noundef %6695, i32 noundef %6697) #9
  br label %6699

6699:                                             ; preds = %6682, %6665
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #9
  br label %6700

6700:                                             ; preds = %6699
  br label %6701

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

6702:                                             ; No predecessors!
  br label %6703

6703:                                             ; preds = %6702
  br label %6704

6704:                                             ; preds = %6703, %6644
  br label %6705

6705:                                             ; preds = %6704
  br label %6706

6706:                                             ; preds = %6705
  br label %6707

6707:                                             ; preds = %6706
  %6708 = load i32, ptr @test_count, align 4, !tbaa !5
  %6709 = add nsw i32 %6708, 1
  store i32 %6709, ptr @test_count, align 4, !tbaa !5
  %6710 = load ptr, ptr %133, align 8, !tbaa !9
  %6711 = getelementptr inbounds %struct.s2n_connection, ptr %6710, i32 0, i32 31
  %6712 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6711, i32 0, i32 1
  %6713 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6712, i32 0, i32 0
  %6714 = load ptr, ptr %6713, align 8, !tbaa !73
  %6715 = load ptr, ptr %136, align 8, !tbaa !9
  %6716 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %6715, i32 0, i32 1
  %6717 = load ptr, ptr %6716, align 8, !tbaa !28
  %6718 = getelementptr inbounds ptr, ptr %6717, i64 0
  %6719 = load ptr, ptr %6718, align 8, !tbaa !9
  %6720 = icmp eq ptr %6714, %6719
  br i1 %6720, label %6774, label %6721

6721:                                             ; preds = %6707
  br label %6722

6722:                                             ; preds = %6721
  br label %6723

6723:                                             ; preds = %6722
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #9
  %6724 = call ptr @__errno_location() #10
  %6725 = load i32, ptr %6724, align 4, !tbaa !5
  store i32 %6725, ptr %147, align 4, !tbaa !5
  %6726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6727 = call i32 @s2n_print_stacktrace(ptr noundef %6726)
  %6728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6729 = trunc i8 %6728 to i1
  br i1 %6729, label %6730, label %6752

6730:                                             ; preds = %6723
  %6731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6732 = call i32 @fileno(ptr noundef %6731) #9
  %6733 = call i32 @isatty(i32 noundef %6732) #9
  %6734 = icmp ne i32 %6733, 0
  br i1 %6734, label %6735, label %6752

6735:                                             ; preds = %6730
  %6736 = load i32, ptr %147, align 4, !tbaa !5
  %6737 = call ptr @__errno_location() #10
  store i32 %6736, ptr %6737, align 4, !tbaa !5
  %6738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6739 = load i32, ptr @test_count, align 4, !tbaa !5
  %6740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6741 = load i32, ptr %6740, align 4, !tbaa !5
  %6742 = call ptr @s2n_strerror(i32 noundef %6741, ptr noundef @.str.4)
  %6743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6744 = load i32, ptr %6743, align 4, !tbaa !5
  %6745 = call ptr @s2n_strerror_debug(i32 noundef %6744, ptr noundef @.str.4)
  %6746 = call ptr @__errno_location() #10
  %6747 = load i32, ptr %6746, align 4, !tbaa !5
  %6748 = call ptr @strerror(i32 noundef %6747) #9
  %6749 = call ptr @__errno_location() #10
  %6750 = load i32, ptr %6749, align 4, !tbaa !5
  %6751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6738, ptr noundef @.str.2, i32 noundef %6739, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 299, ptr noundef %6742, ptr noundef %6745, ptr noundef %6748, i32 noundef %6750) #9
  br label %6769

6752:                                             ; preds = %6730, %6723
  %6753 = load i32, ptr %147, align 4, !tbaa !5
  %6754 = call ptr @__errno_location() #10
  store i32 %6753, ptr %6754, align 4, !tbaa !5
  %6755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6756 = load i32, ptr @test_count, align 4, !tbaa !5
  %6757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6758 = load i32, ptr %6757, align 4, !tbaa !5
  %6759 = call ptr @s2n_strerror(i32 noundef %6758, ptr noundef @.str.4)
  %6760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6761 = load i32, ptr %6760, align 4, !tbaa !5
  %6762 = call ptr @s2n_strerror_debug(i32 noundef %6761, ptr noundef @.str.4)
  %6763 = call ptr @__errno_location() #10
  %6764 = load i32, ptr %6763, align 4, !tbaa !5
  %6765 = call ptr @strerror(i32 noundef %6764) #9
  %6766 = call ptr @__errno_location() #10
  %6767 = load i32, ptr %6766, align 4, !tbaa !5
  %6768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6755, ptr noundef @.str.5, i32 noundef %6756, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 299, ptr noundef %6759, ptr noundef %6762, ptr noundef %6765, i32 noundef %6767) #9
  br label %6769

6769:                                             ; preds = %6752, %6735
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #9
  br label %6770

6770:                                             ; preds = %6769
  br label %6771

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

6772:                                             ; No predecessors!
  br label %6773

6773:                                             ; preds = %6772
  br label %6774

6774:                                             ; preds = %6773, %6707
  br label %6775

6775:                                             ; preds = %6774
  br label %6776

6776:                                             ; preds = %6775
  br label %6777

6777:                                             ; preds = %6776
  %6778 = load i32, ptr @test_count, align 4, !tbaa !5
  %6779 = add nsw i32 %6778, 1
  store i32 %6779, ptr @test_count, align 4, !tbaa !5
  %6780 = load ptr, ptr %133, align 8, !tbaa !9
  %6781 = getelementptr inbounds %struct.s2n_connection, ptr %6780, i32 0, i32 31
  %6782 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6781, i32 0, i32 4
  %6783 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %6782, i32 0, i32 0
  %6784 = load ptr, ptr %6783, align 8, !tbaa !74
  %6785 = icmp eq ptr %6784, null
  br i1 %6785, label %6839, label %6786

6786:                                             ; preds = %6777
  br label %6787

6787:                                             ; preds = %6786
  br label %6788

6788:                                             ; preds = %6787
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #9
  %6789 = call ptr @__errno_location() #10
  %6790 = load i32, ptr %6789, align 4, !tbaa !5
  store i32 %6790, ptr %148, align 4, !tbaa !5
  %6791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6792 = call i32 @s2n_print_stacktrace(ptr noundef %6791)
  %6793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6794 = trunc i8 %6793 to i1
  br i1 %6794, label %6795, label %6817

6795:                                             ; preds = %6788
  %6796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6797 = call i32 @fileno(ptr noundef %6796) #9
  %6798 = call i32 @isatty(i32 noundef %6797) #9
  %6799 = icmp ne i32 %6798, 0
  br i1 %6799, label %6800, label %6817

6800:                                             ; preds = %6795
  %6801 = load i32, ptr %148, align 4, !tbaa !5
  %6802 = call ptr @__errno_location() #10
  store i32 %6801, ptr %6802, align 4, !tbaa !5
  %6803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6804 = load i32, ptr @test_count, align 4, !tbaa !5
  %6805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6806 = load i32, ptr %6805, align 4, !tbaa !5
  %6807 = call ptr @s2n_strerror(i32 noundef %6806, ptr noundef @.str.4)
  %6808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6809 = load i32, ptr %6808, align 4, !tbaa !5
  %6810 = call ptr @s2n_strerror_debug(i32 noundef %6809, ptr noundef @.str.4)
  %6811 = call ptr @__errno_location() #10
  %6812 = load i32, ptr %6811, align 4, !tbaa !5
  %6813 = call ptr @strerror(i32 noundef %6812) #9
  %6814 = call ptr @__errno_location() #10
  %6815 = load i32, ptr %6814, align 4, !tbaa !5
  %6816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6803, ptr noundef @.str.2, i32 noundef %6804, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 300, ptr noundef %6807, ptr noundef %6810, ptr noundef %6813, i32 noundef %6815) #9
  br label %6834

6817:                                             ; preds = %6795, %6788
  %6818 = load i32, ptr %148, align 4, !tbaa !5
  %6819 = call ptr @__errno_location() #10
  store i32 %6818, ptr %6819, align 4, !tbaa !5
  %6820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6821 = load i32, ptr @test_count, align 4, !tbaa !5
  %6822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6823 = load i32, ptr %6822, align 4, !tbaa !5
  %6824 = call ptr @s2n_strerror(i32 noundef %6823, ptr noundef @.str.4)
  %6825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6826 = load i32, ptr %6825, align 4, !tbaa !5
  %6827 = call ptr @s2n_strerror_debug(i32 noundef %6826, ptr noundef @.str.4)
  %6828 = call ptr @__errno_location() #10
  %6829 = load i32, ptr %6828, align 4, !tbaa !5
  %6830 = call ptr @strerror(i32 noundef %6829) #9
  %6831 = call ptr @__errno_location() #10
  %6832 = load i32, ptr %6831, align 4, !tbaa !5
  %6833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6820, ptr noundef @.str.5, i32 noundef %6821, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 300, ptr noundef %6824, ptr noundef %6827, ptr noundef %6830, i32 noundef %6832) #9
  br label %6834

6834:                                             ; preds = %6817, %6800
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #9
  br label %6835

6835:                                             ; preds = %6834
  br label %6836

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

6837:                                             ; No predecessors!
  br label %6838

6838:                                             ; preds = %6837
  br label %6839

6839:                                             ; preds = %6838, %6777
  br label %6840

6840:                                             ; preds = %6839
  br label %6841

6841:                                             ; preds = %6840
  br label %6842

6842:                                             ; preds = %6841
  %6843 = load i32, ptr @test_count, align 4, !tbaa !5
  %6844 = add nsw i32 %6843, 1
  store i32 %6844, ptr @test_count, align 4, !tbaa !5
  %6845 = load ptr, ptr %133, align 8, !tbaa !9
  %6846 = getelementptr inbounds %struct.s2n_connection, ptr %6845, i32 0, i32 31
  %6847 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6846, i32 0, i32 4
  %6848 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %6847, i32 0, i32 2
  %6849 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %6848, i32 0, i32 0
  %6850 = load ptr, ptr %6849, align 8, !tbaa !75
  %6851 = icmp eq ptr %6850, null
  br i1 %6851, label %6905, label %6852

6852:                                             ; preds = %6842
  br label %6853

6853:                                             ; preds = %6852
  br label %6854

6854:                                             ; preds = %6853
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #9
  %6855 = call ptr @__errno_location() #10
  %6856 = load i32, ptr %6855, align 4, !tbaa !5
  store i32 %6856, ptr %149, align 4, !tbaa !5
  %6857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6858 = call i32 @s2n_print_stacktrace(ptr noundef %6857)
  %6859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6860 = trunc i8 %6859 to i1
  br i1 %6860, label %6861, label %6883

6861:                                             ; preds = %6854
  %6862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6863 = call i32 @fileno(ptr noundef %6862) #9
  %6864 = call i32 @isatty(i32 noundef %6863) #9
  %6865 = icmp ne i32 %6864, 0
  br i1 %6865, label %6866, label %6883

6866:                                             ; preds = %6861
  %6867 = load i32, ptr %149, align 4, !tbaa !5
  %6868 = call ptr @__errno_location() #10
  store i32 %6867, ptr %6868, align 4, !tbaa !5
  %6869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6870 = load i32, ptr @test_count, align 4, !tbaa !5
  %6871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6872 = load i32, ptr %6871, align 4, !tbaa !5
  %6873 = call ptr @s2n_strerror(i32 noundef %6872, ptr noundef @.str.4)
  %6874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6875 = load i32, ptr %6874, align 4, !tbaa !5
  %6876 = call ptr @s2n_strerror_debug(i32 noundef %6875, ptr noundef @.str.4)
  %6877 = call ptr @__errno_location() #10
  %6878 = load i32, ptr %6877, align 4, !tbaa !5
  %6879 = call ptr @strerror(i32 noundef %6878) #9
  %6880 = call ptr @__errno_location() #10
  %6881 = load i32, ptr %6880, align 4, !tbaa !5
  %6882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6869, ptr noundef @.str.2, i32 noundef %6870, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 301, ptr noundef %6873, ptr noundef %6876, ptr noundef %6879, i32 noundef %6881) #9
  br label %6900

6883:                                             ; preds = %6861, %6854
  %6884 = load i32, ptr %149, align 4, !tbaa !5
  %6885 = call ptr @__errno_location() #10
  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() #10
  %6895 = load i32, ptr %6894, align 4, !tbaa !5
  %6896 = call ptr @strerror(i32 noundef %6895) #9
  %6897 = call ptr @__errno_location() #10
  %6898 = load i32, ptr %6897, align 4, !tbaa !5
  %6899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6886, ptr noundef @.str.5, i32 noundef %6887, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 301, ptr noundef %6890, ptr noundef %6893, ptr noundef %6896, i32 noundef %6898) #9
  br label %6900

6900:                                             ; preds = %6883, %6866
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #9
  br label %6901

6901:                                             ; preds = %6900
  br label %6902

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

6903:                                             ; No predecessors!
  br label %6904

6904:                                             ; preds = %6903
  br label %6905

6905:                                             ; preds = %6904, %6842
  br label %6906

6906:                                             ; preds = %6905
  br label %6907

6907:                                             ; preds = %6906
  br label %6908

6908:                                             ; preds = %6907
  %6909 = load i32, ptr @test_count, align 4, !tbaa !5
  %6910 = add nsw i32 %6909, 1
  store i32 %6910, ptr @test_count, align 4, !tbaa !5
  %6911 = load ptr, ptr %133, align 8, !tbaa !9
  %6912 = getelementptr inbounds %struct.s2n_connection, ptr %6911, i32 0, i32 31
  %6913 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %6912, i32 0, i32 4
  %6914 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %6913, i32 0, i32 1
  %6915 = getelementptr inbounds %struct.s2n_kem_params, ptr %6914, i32 0, i32 0
  %6916 = load ptr, ptr %6915, align 8, !tbaa !76
  %6917 = icmp eq ptr %6916, null
  br i1 %6917, label %6971, label %6918

6918:                                             ; preds = %6908
  br label %6919

6919:                                             ; preds = %6918
  br label %6920

6920:                                             ; preds = %6919
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #9
  %6921 = call ptr @__errno_location() #10
  %6922 = load i32, ptr %6921, align 4, !tbaa !5
  store i32 %6922, ptr %150, align 4, !tbaa !5
  %6923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6924 = call i32 @s2n_print_stacktrace(ptr noundef %6923)
  %6925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6926 = trunc i8 %6925 to i1
  br i1 %6926, label %6927, label %6949

6927:                                             ; preds = %6920
  %6928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6929 = call i32 @fileno(ptr noundef %6928) #9
  %6930 = call i32 @isatty(i32 noundef %6929) #9
  %6931 = icmp ne i32 %6930, 0
  br i1 %6931, label %6932, label %6949

6932:                                             ; preds = %6927
  %6933 = load i32, ptr %150, align 4, !tbaa !5
  %6934 = call ptr @__errno_location() #10
  store i32 %6933, ptr %6934, align 4, !tbaa !5
  %6935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6936 = load i32, ptr @test_count, align 4, !tbaa !5
  %6937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6938 = load i32, ptr %6937, align 4, !tbaa !5
  %6939 = call ptr @s2n_strerror(i32 noundef %6938, ptr noundef @.str.4)
  %6940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6941 = load i32, ptr %6940, align 4, !tbaa !5
  %6942 = call ptr @s2n_strerror_debug(i32 noundef %6941, ptr noundef @.str.4)
  %6943 = call ptr @__errno_location() #10
  %6944 = load i32, ptr %6943, align 4, !tbaa !5
  %6945 = call ptr @strerror(i32 noundef %6944) #9
  %6946 = call ptr @__errno_location() #10
  %6947 = load i32, ptr %6946, align 4, !tbaa !5
  %6948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6935, ptr noundef @.str.2, i32 noundef %6936, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 302, ptr noundef %6939, ptr noundef %6942, ptr noundef %6945, i32 noundef %6947) #9
  br label %6966

6949:                                             ; preds = %6927, %6920
  %6950 = load i32, ptr %150, align 4, !tbaa !5
  %6951 = call ptr @__errno_location() #10
  store i32 %6950, ptr %6951, align 4, !tbaa !5
  %6952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6953 = load i32, ptr @test_count, align 4, !tbaa !5
  %6954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6955 = load i32, ptr %6954, align 4, !tbaa !5
  %6956 = call ptr @s2n_strerror(i32 noundef %6955, ptr noundef @.str.4)
  %6957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6958 = load i32, ptr %6957, align 4, !tbaa !5
  %6959 = call ptr @s2n_strerror_debug(i32 noundef %6958, ptr noundef @.str.4)
  %6960 = call ptr @__errno_location() #10
  %6961 = load i32, ptr %6960, align 4, !tbaa !5
  %6962 = call ptr @strerror(i32 noundef %6961) #9
  %6963 = call ptr @__errno_location() #10
  %6964 = load i32, ptr %6963, align 4, !tbaa !5
  %6965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6952, ptr noundef @.str.5, i32 noundef %6953, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 302, ptr noundef %6956, ptr noundef %6959, ptr noundef %6962, i32 noundef %6964) #9
  br label %6966

6966:                                             ; preds = %6949, %6932
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #9
  br label %6967

6967:                                             ; preds = %6966
  br label %6968

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

6969:                                             ; No predecessors!
  br label %6970

6970:                                             ; preds = %6969
  br label %6971

6971:                                             ; preds = %6970, %6908
  br label %6972

6972:                                             ; preds = %6971
  br label %6973

6973:                                             ; preds = %6972
  br label %6974

6974:                                             ; preds = %6973
  %6975 = load i32, ptr @test_count, align 4, !tbaa !5
  %6976 = add nsw i32 %6975, 1
  store i32 %6976, ptr @test_count, align 4, !tbaa !5
  %6977 = load ptr, ptr %130, align 8, !tbaa !9
  %6978 = call i32 @s2n_connection_free(ptr noundef %6977)
  %6979 = icmp eq i32 %6978, -1
  br i1 %6979, label %6980, label %7033

6980:                                             ; preds = %6974
  br label %6981

6981:                                             ; preds = %6980
  br label %6982

6982:                                             ; preds = %6981
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #9
  %6983 = call ptr @__errno_location() #10
  %6984 = load i32, ptr %6983, align 4, !tbaa !5
  store i32 %6984, ptr %151, align 4, !tbaa !5
  %6985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6986 = call i32 @s2n_print_stacktrace(ptr noundef %6985)
  %6987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6988 = trunc i8 %6987 to i1
  br i1 %6988, label %6989, label %7011

6989:                                             ; preds = %6982
  %6990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6991 = call i32 @fileno(ptr noundef %6990) #9
  %6992 = call i32 @isatty(i32 noundef %6991) #9
  %6993 = icmp ne i32 %6992, 0
  br i1 %6993, label %6994, label %7011

6994:                                             ; preds = %6989
  %6995 = load i32, ptr %151, align 4, !tbaa !5
  %6996 = call ptr @__errno_location() #10
  store i32 %6995, ptr %6996, align 4, !tbaa !5
  %6997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6998 = load i32, ptr @test_count, align 4, !tbaa !5
  %6999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7000 = load i32, ptr %6999, align 4, !tbaa !5
  %7001 = call ptr @s2n_strerror(i32 noundef %7000, ptr noundef @.str.4)
  %7002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7003 = load i32, ptr %7002, align 4, !tbaa !5
  %7004 = call ptr @s2n_strerror_debug(i32 noundef %7003, ptr noundef @.str.4)
  %7005 = call ptr @__errno_location() #10
  %7006 = load i32, ptr %7005, align 4, !tbaa !5
  %7007 = call ptr @strerror(i32 noundef %7006) #9
  %7008 = call ptr @__errno_location() #10
  %7009 = load i32, ptr %7008, align 4, !tbaa !5
  %7010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6997, ptr noundef @.str.2, i32 noundef %6998, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 304, ptr noundef %7001, ptr noundef %7004, ptr noundef %7007, i32 noundef %7009) #9
  br label %7028

7011:                                             ; preds = %6989, %6982
  %7012 = load i32, ptr %151, align 4, !tbaa !5
  %7013 = call ptr @__errno_location() #10
  store i32 %7012, ptr %7013, align 4, !tbaa !5
  %7014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7015 = load i32, ptr @test_count, align 4, !tbaa !5
  %7016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7017 = load i32, ptr %7016, align 4, !tbaa !5
  %7018 = call ptr @s2n_strerror(i32 noundef %7017, ptr noundef @.str.4)
  %7019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7020 = load i32, ptr %7019, align 4, !tbaa !5
  %7021 = call ptr @s2n_strerror_debug(i32 noundef %7020, ptr noundef @.str.4)
  %7022 = call ptr @__errno_location() #10
  %7023 = load i32, ptr %7022, align 4, !tbaa !5
  %7024 = call ptr @strerror(i32 noundef %7023) #9
  %7025 = call ptr @__errno_location() #10
  %7026 = load i32, ptr %7025, align 4, !tbaa !5
  %7027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7014, ptr noundef @.str.5, i32 noundef %7015, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 304, ptr noundef %7018, ptr noundef %7021, ptr noundef %7024, i32 noundef %7026) #9
  br label %7028

7028:                                             ; preds = %7011, %6994
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #9
  br label %7029

7029:                                             ; preds = %7028
  br label %7030

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

7031:                                             ; No predecessors!
  br label %7032

7032:                                             ; preds = %7031
  br label %7033

7033:                                             ; preds = %7032, %6974
  br label %7034

7034:                                             ; preds = %7033
  br label %7035

7035:                                             ; preds = %7034
  br label %7036

7036:                                             ; preds = %7035
  %7037 = load i32, ptr @test_count, align 4, !tbaa !5
  %7038 = add nsw i32 %7037, 1
  store i32 %7038, ptr @test_count, align 4, !tbaa !5
  %7039 = load ptr, ptr %133, align 8, !tbaa !9
  %7040 = call i32 @s2n_connection_free(ptr noundef %7039)
  %7041 = icmp eq i32 %7040, -1
  br i1 %7041, label %7042, label %7095

7042:                                             ; preds = %7036
  br label %7043

7043:                                             ; preds = %7042
  br label %7044

7044:                                             ; preds = %7043
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #9
  %7045 = call ptr @__errno_location() #10
  %7046 = load i32, ptr %7045, align 4, !tbaa !5
  store i32 %7046, ptr %152, align 4, !tbaa !5
  %7047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7048 = call i32 @s2n_print_stacktrace(ptr noundef %7047)
  %7049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7050 = trunc i8 %7049 to i1
  br i1 %7050, label %7051, label %7073

7051:                                             ; preds = %7044
  %7052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7053 = call i32 @fileno(ptr noundef %7052) #9
  %7054 = call i32 @isatty(i32 noundef %7053) #9
  %7055 = icmp ne i32 %7054, 0
  br i1 %7055, label %7056, label %7073

7056:                                             ; preds = %7051
  %7057 = load i32, ptr %152, align 4, !tbaa !5
  %7058 = call ptr @__errno_location() #10
  store i32 %7057, ptr %7058, align 4, !tbaa !5
  %7059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7060 = load i32, ptr @test_count, align 4, !tbaa !5
  %7061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7062 = load i32, ptr %7061, align 4, !tbaa !5
  %7063 = call ptr @s2n_strerror(i32 noundef %7062, ptr noundef @.str.4)
  %7064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7065 = load i32, ptr %7064, align 4, !tbaa !5
  %7066 = call ptr @s2n_strerror_debug(i32 noundef %7065, ptr noundef @.str.4)
  %7067 = call ptr @__errno_location() #10
  %7068 = load i32, ptr %7067, align 4, !tbaa !5
  %7069 = call ptr @strerror(i32 noundef %7068) #9
  %7070 = call ptr @__errno_location() #10
  %7071 = load i32, ptr %7070, align 4, !tbaa !5
  %7072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7059, ptr noundef @.str.2, i32 noundef %7060, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 305, ptr noundef %7063, ptr noundef %7066, ptr noundef %7069, i32 noundef %7071) #9
  br label %7090

7073:                                             ; preds = %7051, %7044
  %7074 = load i32, ptr %152, align 4, !tbaa !5
  %7075 = call ptr @__errno_location() #10
  store i32 %7074, ptr %7075, align 4, !tbaa !5
  %7076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7077 = load i32, ptr @test_count, align 4, !tbaa !5
  %7078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7079 = load i32, ptr %7078, align 4, !tbaa !5
  %7080 = call ptr @s2n_strerror(i32 noundef %7079, ptr noundef @.str.4)
  %7081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7082 = load i32, ptr %7081, align 4, !tbaa !5
  %7083 = call ptr @s2n_strerror_debug(i32 noundef %7082, ptr noundef @.str.4)
  %7084 = call ptr @__errno_location() #10
  %7085 = load i32, ptr %7084, align 4, !tbaa !5
  %7086 = call ptr @strerror(i32 noundef %7085) #9
  %7087 = call ptr @__errno_location() #10
  %7088 = load i32, ptr %7087, align 4, !tbaa !5
  %7089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7076, ptr noundef @.str.5, i32 noundef %7077, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 305, ptr noundef %7080, ptr noundef %7083, ptr noundef %7086, i32 noundef %7088) #9
  br label %7090

7090:                                             ; preds = %7073, %7056
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #9
  br label %7091

7091:                                             ; preds = %7090
  br label %7092

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

7093:                                             ; No predecessors!
  br label %7094

7094:                                             ; preds = %7093
  br label %7095

7095:                                             ; preds = %7094, %7036
  br label %7096

7096:                                             ; preds = %7095
  br label %7097

7097:                                             ; preds = %7096
  br label %7098

7098:                                             ; preds = %7097
  %7099 = load i32, ptr @test_count, align 4, !tbaa !5
  %7100 = add nsw i32 %7099, 1
  store i32 %7100, ptr @test_count, align 4, !tbaa !5
  %7101 = call i32 (...) @s2n_disable_tls13_in_test()
  %7102 = icmp eq i32 %7101, -1
  br i1 %7102, label %7103, label %7156

7103:                                             ; preds = %7098
  br label %7104

7104:                                             ; preds = %7103
  br label %7105

7105:                                             ; preds = %7104
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #9
  %7106 = call ptr @__errno_location() #10
  %7107 = load i32, ptr %7106, align 4, !tbaa !5
  store i32 %7107, ptr %153, align 4, !tbaa !5
  %7108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7109 = call i32 @s2n_print_stacktrace(ptr noundef %7108)
  %7110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7111 = trunc i8 %7110 to i1
  br i1 %7111, label %7112, label %7134

7112:                                             ; preds = %7105
  %7113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7114 = call i32 @fileno(ptr noundef %7113) #9
  %7115 = call i32 @isatty(i32 noundef %7114) #9
  %7116 = icmp ne i32 %7115, 0
  br i1 %7116, label %7117, label %7134

7117:                                             ; preds = %7112
  %7118 = load i32, ptr %153, align 4, !tbaa !5
  %7119 = call ptr @__errno_location() #10
  store i32 %7118, ptr %7119, align 4, !tbaa !5
  %7120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7121 = load i32, ptr @test_count, align 4, !tbaa !5
  %7122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7123 = load i32, ptr %7122, align 4, !tbaa !5
  %7124 = call ptr @s2n_strerror(i32 noundef %7123, ptr noundef @.str.4)
  %7125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7126 = load i32, ptr %7125, align 4, !tbaa !5
  %7127 = call ptr @s2n_strerror_debug(i32 noundef %7126, ptr noundef @.str.4)
  %7128 = call ptr @__errno_location() #10
  %7129 = load i32, ptr %7128, align 4, !tbaa !5
  %7130 = call ptr @strerror(i32 noundef %7129) #9
  %7131 = call ptr @__errno_location() #10
  %7132 = load i32, ptr %7131, align 4, !tbaa !5
  %7133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7120, ptr noundef @.str.2, i32 noundef %7121, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 306, ptr noundef %7124, ptr noundef %7127, ptr noundef %7130, i32 noundef %7132) #9
  br label %7151

7134:                                             ; preds = %7112, %7105
  %7135 = load i32, ptr %153, align 4, !tbaa !5
  %7136 = call ptr @__errno_location() #10
  store i32 %7135, ptr %7136, align 4, !tbaa !5
  %7137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7138 = load i32, ptr @test_count, align 4, !tbaa !5
  %7139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7140 = load i32, ptr %7139, align 4, !tbaa !5
  %7141 = call ptr @s2n_strerror(i32 noundef %7140, ptr noundef @.str.4)
  %7142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7143 = load i32, ptr %7142, align 4, !tbaa !5
  %7144 = call ptr @s2n_strerror_debug(i32 noundef %7143, ptr noundef @.str.4)
  %7145 = call ptr @__errno_location() #10
  %7146 = load i32, ptr %7145, align 4, !tbaa !5
  %7147 = call ptr @strerror(i32 noundef %7146) #9
  %7148 = call ptr @__errno_location() #10
  %7149 = load i32, ptr %7148, align 4, !tbaa !5
  %7150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7137, ptr noundef @.str.5, i32 noundef %7138, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 306, ptr noundef %7141, ptr noundef %7144, ptr noundef %7147, i32 noundef %7149) #9
  br label %7151

7151:                                             ; preds = %7134, %7117
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #9
  br label %7152

7152:                                             ; preds = %7151
  br label %7153

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

7154:                                             ; No predecessors!
  br label %7155

7155:                                             ; preds = %7154
  br label %7156

7156:                                             ; preds = %7155, %7098
  br label %7157

7157:                                             ; preds = %7156
  br label %7158

7158:                                             ; preds = %7157
  %7159 = call i32 @s2n_stuffer_free(ptr noundef %139)
  call void @llvm.lifetime.end.p0(i64 40, ptr %139) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #9
  %7160 = call i32 @s2n_config_ptr_free(ptr noundef %127)
  %7161 = getelementptr inbounds %struct.s2n_result, ptr %154, i32 0, i32 0
  store i32 %7160, ptr %7161, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #9
  br label %7162

7162:                                             ; preds = %7158
  %7163 = load i64, ptr %125, align 8, !tbaa !26
  %7164 = add i64 %7163, 1
  store i64 %7164, ptr %125, align 8, !tbaa !26
  br label %5685, !llvm.loop !82

7165:                                             ; preds = %5688
  call void @llvm.lifetime.end.p0(i64 48, ptr %124) #9
  br label %7166

7166:                                             ; preds = %7165
  %7167 = load i32, ptr @test_count, align 4, !tbaa !5
  %7168 = add nsw i32 %7167, 1
  store i32 %7168, ptr @test_count, align 4, !tbaa !5
  %7169 = call i32 (...) @s2n_enable_tls13_in_test()
  %7170 = icmp eq i32 %7169, -1
  br i1 %7170, label %7171, label %7224

7171:                                             ; preds = %7166
  br label %7172

7172:                                             ; preds = %7171
  br label %7173

7173:                                             ; preds = %7172
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #9
  %7174 = call ptr @__errno_location() #10
  %7175 = load i32, ptr %7174, align 4, !tbaa !5
  store i32 %7175, ptr %155, align 4, !tbaa !5
  %7176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7177 = call i32 @s2n_print_stacktrace(ptr noundef %7176)
  %7178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7179 = trunc i8 %7178 to i1
  br i1 %7179, label %7180, label %7202

7180:                                             ; preds = %7173
  %7181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7182 = call i32 @fileno(ptr noundef %7181) #9
  %7183 = call i32 @isatty(i32 noundef %7182) #9
  %7184 = icmp ne i32 %7183, 0
  br i1 %7184, label %7185, label %7202

7185:                                             ; preds = %7180
  %7186 = load i32, ptr %155, align 4, !tbaa !5
  %7187 = call ptr @__errno_location() #10
  store i32 %7186, ptr %7187, align 4, !tbaa !5
  %7188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7189 = load i32, ptr @test_count, align 4, !tbaa !5
  %7190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7191 = load i32, ptr %7190, align 4, !tbaa !5
  %7192 = call ptr @s2n_strerror(i32 noundef %7191, ptr noundef @.str.4)
  %7193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7194 = load i32, ptr %7193, align 4, !tbaa !5
  %7195 = call ptr @s2n_strerror_debug(i32 noundef %7194, ptr noundef @.str.4)
  %7196 = call ptr @__errno_location() #10
  %7197 = load i32, ptr %7196, align 4, !tbaa !5
  %7198 = call ptr @strerror(i32 noundef %7197) #9
  %7199 = call ptr @__errno_location() #10
  %7200 = load i32, ptr %7199, align 4, !tbaa !5
  %7201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7188, ptr noundef @.str.2, i32 noundef %7189, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 312, ptr noundef %7192, ptr noundef %7195, ptr noundef %7198, i32 noundef %7200) #9
  br label %7219

7202:                                             ; preds = %7180, %7173
  %7203 = load i32, ptr %155, align 4, !tbaa !5
  %7204 = call ptr @__errno_location() #10
  store i32 %7203, ptr %7204, align 4, !tbaa !5
  %7205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7206 = load i32, ptr @test_count, align 4, !tbaa !5
  %7207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7208 = load i32, ptr %7207, align 4, !tbaa !5
  %7209 = call ptr @s2n_strerror(i32 noundef %7208, ptr noundef @.str.4)
  %7210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7211 = load i32, ptr %7210, align 4, !tbaa !5
  %7212 = call ptr @s2n_strerror_debug(i32 noundef %7211, ptr noundef @.str.4)
  %7213 = call ptr @__errno_location() #10
  %7214 = load i32, ptr %7213, align 4, !tbaa !5
  %7215 = call ptr @strerror(i32 noundef %7214) #9
  %7216 = call ptr @__errno_location() #10
  %7217 = load i32, ptr %7216, align 4, !tbaa !5
  %7218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7205, ptr noundef @.str.5, i32 noundef %7206, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 312, ptr noundef %7209, ptr noundef %7212, ptr noundef %7215, i32 noundef %7217) #9
  br label %7219

7219:                                             ; preds = %7202, %7185
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #9
  br label %7220

7220:                                             ; preds = %7219
  br label %7221

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

7222:                                             ; No predecessors!
  br label %7223

7223:                                             ; preds = %7222
  br label %7224

7224:                                             ; preds = %7223, %7166
  br label %7225

7225:                                             ; preds = %7224
  br label %7226

7226:                                             ; preds = %7225
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #9
  store ptr null, ptr %156, align 8, !tbaa !9
  br label %7227

7227:                                             ; preds = %7226
  %7228 = load i32, ptr @test_count, align 4, !tbaa !5
  %7229 = add nsw i32 %7228, 1
  store i32 %7229, ptr @test_count, align 4, !tbaa !5
  %7230 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7230, ptr %156, align 8, !tbaa !9
  %7231 = icmp eq ptr %7230, null
  br i1 %7231, label %7232, label %7285

7232:                                             ; preds = %7227
  br label %7233

7233:                                             ; preds = %7232
  br label %7234

7234:                                             ; preds = %7233
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #9
  %7235 = call ptr @__errno_location() #10
  %7236 = load i32, ptr %7235, align 4, !tbaa !5
  store i32 %7236, ptr %157, align 4, !tbaa !5
  %7237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7238 = call i32 @s2n_print_stacktrace(ptr noundef %7237)
  %7239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7240 = trunc i8 %7239 to i1
  br i1 %7240, label %7241, label %7263

7241:                                             ; preds = %7234
  %7242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7243 = call i32 @fileno(ptr noundef %7242) #9
  %7244 = call i32 @isatty(i32 noundef %7243) #9
  %7245 = icmp ne i32 %7244, 0
  br i1 %7245, label %7246, label %7263

7246:                                             ; preds = %7241
  %7247 = load i32, ptr %157, align 4, !tbaa !5
  %7248 = call ptr @__errno_location() #10
  store i32 %7247, ptr %7248, align 4, !tbaa !5
  %7249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7250 = load i32, ptr @test_count, align 4, !tbaa !5
  %7251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7252 = load i32, ptr %7251, align 4, !tbaa !5
  %7253 = call ptr @s2n_strerror(i32 noundef %7252, ptr noundef @.str.4)
  %7254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7255 = load i32, ptr %7254, align 4, !tbaa !5
  %7256 = call ptr @s2n_strerror_debug(i32 noundef %7255, ptr noundef @.str.4)
  %7257 = call ptr @__errno_location() #10
  %7258 = load i32, ptr %7257, align 4, !tbaa !5
  %7259 = call ptr @strerror(i32 noundef %7258) #9
  %7260 = call ptr @__errno_location() #10
  %7261 = load i32, ptr %7260, align 4, !tbaa !5
  %7262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7249, ptr noundef @.str.2, i32 noundef %7250, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 315, ptr noundef %7253, ptr noundef %7256, ptr noundef %7259, i32 noundef %7261) #9
  br label %7280

7263:                                             ; preds = %7241, %7234
  %7264 = load i32, ptr %157, align 4, !tbaa !5
  %7265 = call ptr @__errno_location() #10
  store i32 %7264, ptr %7265, align 4, !tbaa !5
  %7266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7267 = load i32, ptr @test_count, align 4, !tbaa !5
  %7268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7269 = load i32, ptr %7268, align 4, !tbaa !5
  %7270 = call ptr @s2n_strerror(i32 noundef %7269, ptr noundef @.str.4)
  %7271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7272 = load i32, ptr %7271, align 4, !tbaa !5
  %7273 = call ptr @s2n_strerror_debug(i32 noundef %7272, ptr noundef @.str.4)
  %7274 = call ptr @__errno_location() #10
  %7275 = load i32, ptr %7274, align 4, !tbaa !5
  %7276 = call ptr @strerror(i32 noundef %7275) #9
  %7277 = call ptr @__errno_location() #10
  %7278 = load i32, ptr %7277, align 4, !tbaa !5
  %7279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7266, ptr noundef @.str.5, i32 noundef %7267, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 315, ptr noundef %7270, ptr noundef %7273, ptr noundef %7276, i32 noundef %7278) #9
  br label %7280

7280:                                             ; preds = %7263, %7246
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #9
  br label %7281

7281:                                             ; preds = %7280
  br label %7282

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

7283:                                             ; No predecessors!
  br label %7284

7284:                                             ; preds = %7283
  br label %7285

7285:                                             ; preds = %7284, %7227
  br label %7286

7286:                                             ; preds = %7285
  br label %7287

7287:                                             ; preds = %7286
  %7288 = load ptr, ptr %156, align 8, !tbaa !9
  %7289 = getelementptr inbounds %struct.s2n_connection, ptr %7288, i32 0, i32 2
  store ptr %34, ptr %7289, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 40, ptr %158) #9
  call void @llvm.memset.p0.i64(ptr align 8 %158, i8 0, i64 40, i1 false)
  br label %7290

7290:                                             ; preds = %7287
  %7291 = load i32, ptr @test_count, align 4, !tbaa !5
  %7292 = add nsw i32 %7291, 1
  store i32 %7292, ptr @test_count, align 4, !tbaa !5
  %7293 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %158, i32 noundef 0)
  %7294 = icmp eq i32 %7293, -1
  br i1 %7294, label %7295, label %7348

7295:                                             ; preds = %7290
  br label %7296

7296:                                             ; preds = %7295
  br label %7297

7297:                                             ; preds = %7296
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #9
  %7298 = call ptr @__errno_location() #10
  %7299 = load i32, ptr %7298, align 4, !tbaa !5
  store i32 %7299, ptr %159, align 4, !tbaa !5
  %7300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7301 = call i32 @s2n_print_stacktrace(ptr noundef %7300)
  %7302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7303 = trunc i8 %7302 to i1
  br i1 %7303, label %7304, label %7326

7304:                                             ; preds = %7297
  %7305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7306 = call i32 @fileno(ptr noundef %7305) #9
  %7307 = call i32 @isatty(i32 noundef %7306) #9
  %7308 = icmp ne i32 %7307, 0
  br i1 %7308, label %7309, label %7326

7309:                                             ; preds = %7304
  %7310 = load i32, ptr %159, align 4, !tbaa !5
  %7311 = call ptr @__errno_location() #10
  store i32 %7310, ptr %7311, align 4, !tbaa !5
  %7312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7313 = load i32, ptr @test_count, align 4, !tbaa !5
  %7314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7315 = load i32, ptr %7314, align 4, !tbaa !5
  %7316 = call ptr @s2n_strerror(i32 noundef %7315, ptr noundef @.str.4)
  %7317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7318 = load i32, ptr %7317, align 4, !tbaa !5
  %7319 = call ptr @s2n_strerror_debug(i32 noundef %7318, ptr noundef @.str.4)
  %7320 = call ptr @__errno_location() #10
  %7321 = load i32, ptr %7320, align 4, !tbaa !5
  %7322 = call ptr @strerror(i32 noundef %7321) #9
  %7323 = call ptr @__errno_location() #10
  %7324 = load i32, ptr %7323, align 4, !tbaa !5
  %7325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7312, ptr noundef @.str.2, i32 noundef %7313, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 320, ptr noundef %7316, ptr noundef %7319, ptr noundef %7322, i32 noundef %7324) #9
  br label %7343

7326:                                             ; preds = %7304, %7297
  %7327 = load i32, ptr %159, align 4, !tbaa !5
  %7328 = call ptr @__errno_location() #10
  store i32 %7327, ptr %7328, align 4, !tbaa !5
  %7329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7330 = load i32, ptr @test_count, align 4, !tbaa !5
  %7331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7332 = load i32, ptr %7331, align 4, !tbaa !5
  %7333 = call ptr @s2n_strerror(i32 noundef %7332, ptr noundef @.str.4)
  %7334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7335 = load i32, ptr %7334, align 4, !tbaa !5
  %7336 = call ptr @s2n_strerror_debug(i32 noundef %7335, ptr noundef @.str.4)
  %7337 = call ptr @__errno_location() #10
  %7338 = load i32, ptr %7337, align 4, !tbaa !5
  %7339 = call ptr @strerror(i32 noundef %7338) #9
  %7340 = call ptr @__errno_location() #10
  %7341 = load i32, ptr %7340, align 4, !tbaa !5
  %7342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7329, ptr noundef @.str.5, i32 noundef %7330, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 320, ptr noundef %7333, ptr noundef %7336, ptr noundef %7339, i32 noundef %7341) #9
  br label %7343

7343:                                             ; preds = %7326, %7309
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #9
  br label %7344

7344:                                             ; preds = %7343
  br label %7345

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

7346:                                             ; No predecessors!
  br label %7347

7347:                                             ; preds = %7346
  br label %7348

7348:                                             ; preds = %7347, %7290
  br label %7349

7349:                                             ; preds = %7348
  br label %7350

7350:                                             ; preds = %7349
  call void @llvm.lifetime.start.p0(i64 16, ptr %160) #9
  call void @llvm.memset.p0.i64(ptr align 8 %160, i8 0, i64 16, i1 false)
  br label %7351

7351:                                             ; preds = %7350
  %7352 = load i32, ptr @test_count, align 4, !tbaa !5
  %7353 = add nsw i32 %7352, 1
  store i32 %7353, ptr @test_count, align 4, !tbaa !5
  %7354 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %158, ptr noundef %160)
  %7355 = icmp eq i32 %7354, -1
  br i1 %7355, label %7356, label %7409

7356:                                             ; preds = %7351
  br label %7357

7357:                                             ; preds = %7356
  br label %7358

7358:                                             ; preds = %7357
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #9
  %7359 = call ptr @__errno_location() #10
  %7360 = load i32, ptr %7359, align 4, !tbaa !5
  store i32 %7360, ptr %161, align 4, !tbaa !5
  %7361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7362 = call i32 @s2n_print_stacktrace(ptr noundef %7361)
  %7363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7364 = trunc i8 %7363 to i1
  br i1 %7364, label %7365, label %7387

7365:                                             ; preds = %7358
  %7366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7367 = call i32 @fileno(ptr noundef %7366) #9
  %7368 = call i32 @isatty(i32 noundef %7367) #9
  %7369 = icmp ne i32 %7368, 0
  br i1 %7369, label %7370, label %7387

7370:                                             ; preds = %7365
  %7371 = load i32, ptr %161, align 4, !tbaa !5
  %7372 = call ptr @__errno_location() #10
  store i32 %7371, ptr %7372, align 4, !tbaa !5
  %7373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7374 = load i32, ptr @test_count, align 4, !tbaa !5
  %7375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7376 = load i32, ptr %7375, align 4, !tbaa !5
  %7377 = call ptr @s2n_strerror(i32 noundef %7376, ptr noundef @.str.4)
  %7378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7379 = load i32, ptr %7378, align 4, !tbaa !5
  %7380 = call ptr @s2n_strerror_debug(i32 noundef %7379, ptr noundef @.str.4)
  %7381 = call ptr @__errno_location() #10
  %7382 = load i32, ptr %7381, align 4, !tbaa !5
  %7383 = call ptr @strerror(i32 noundef %7382) #9
  %7384 = call ptr @__errno_location() #10
  %7385 = load i32, ptr %7384, align 4, !tbaa !5
  %7386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7373, ptr noundef @.str.2, i32 noundef %7374, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 322, ptr noundef %7377, ptr noundef %7380, ptr noundef %7383, i32 noundef %7385) #9
  br label %7404

7387:                                             ; preds = %7365, %7358
  %7388 = load i32, ptr %161, align 4, !tbaa !5
  %7389 = call ptr @__errno_location() #10
  store i32 %7388, ptr %7389, align 4, !tbaa !5
  %7390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7391 = load i32, ptr @test_count, align 4, !tbaa !5
  %7392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7393 = load i32, ptr %7392, align 4, !tbaa !5
  %7394 = call ptr @s2n_strerror(i32 noundef %7393, ptr noundef @.str.4)
  %7395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7396 = load i32, ptr %7395, align 4, !tbaa !5
  %7397 = call ptr @s2n_strerror_debug(i32 noundef %7396, ptr noundef @.str.4)
  %7398 = call ptr @__errno_location() #10
  %7399 = load i32, ptr %7398, align 4, !tbaa !5
  %7400 = call ptr @strerror(i32 noundef %7399) #9
  %7401 = call ptr @__errno_location() #10
  %7402 = load i32, ptr %7401, align 4, !tbaa !5
  %7403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7390, ptr noundef @.str.5, i32 noundef %7391, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 322, ptr noundef %7394, ptr noundef %7397, ptr noundef %7400, i32 noundef %7402) #9
  br label %7404

7404:                                             ; preds = %7387, %7370
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #9
  br label %7405

7405:                                             ; preds = %7404
  br label %7406

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

7407:                                             ; No predecessors!
  br label %7408

7408:                                             ; preds = %7407
  br label %7409

7409:                                             ; preds = %7408, %7351
  br label %7410

7410:                                             ; preds = %7409
  br label %7411

7411:                                             ; preds = %7410
  br label %7412

7412:                                             ; preds = %7411
  %7413 = load i32, ptr @test_count, align 4, !tbaa !5
  %7414 = add nsw i32 %7413, 1
  store i32 %7414, ptr @test_count, align 4, !tbaa !5
  %7415 = call i32 @s2n_stuffer_write_uint16(ptr noundef %158, i16 noundef zeroext 100)
  %7416 = icmp eq i32 %7415, -1
  br i1 %7416, label %7417, label %7470

7417:                                             ; preds = %7412
  br label %7418

7418:                                             ; preds = %7417
  br label %7419

7419:                                             ; preds = %7418
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #9
  %7420 = call ptr @__errno_location() #10
  %7421 = load i32, ptr %7420, align 4, !tbaa !5
  store i32 %7421, ptr %162, align 4, !tbaa !5
  %7422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7423 = call i32 @s2n_print_stacktrace(ptr noundef %7422)
  %7424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7425 = trunc i8 %7424 to i1
  br i1 %7425, label %7426, label %7448

7426:                                             ; preds = %7419
  %7427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7428 = call i32 @fileno(ptr noundef %7427) #9
  %7429 = call i32 @isatty(i32 noundef %7428) #9
  %7430 = icmp ne i32 %7429, 0
  br i1 %7430, label %7431, label %7448

7431:                                             ; preds = %7426
  %7432 = load i32, ptr %162, align 4, !tbaa !5
  %7433 = call ptr @__errno_location() #10
  store i32 %7432, ptr %7433, align 4, !tbaa !5
  %7434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7435 = load i32, ptr @test_count, align 4, !tbaa !5
  %7436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7437 = load i32, ptr %7436, align 4, !tbaa !5
  %7438 = call ptr @s2n_strerror(i32 noundef %7437, ptr noundef @.str.4)
  %7439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7440 = load i32, ptr %7439, align 4, !tbaa !5
  %7441 = call ptr @s2n_strerror_debug(i32 noundef %7440, ptr noundef @.str.4)
  %7442 = call ptr @__errno_location() #10
  %7443 = load i32, ptr %7442, align 4, !tbaa !5
  %7444 = call ptr @strerror(i32 noundef %7443) #9
  %7445 = call ptr @__errno_location() #10
  %7446 = load i32, ptr %7445, align 4, !tbaa !5
  %7447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7434, ptr noundef @.str.2, i32 noundef %7435, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 323, ptr noundef %7438, ptr noundef %7441, ptr noundef %7444, i32 noundef %7446) #9
  br label %7465

7448:                                             ; preds = %7426, %7419
  %7449 = load i32, ptr %162, align 4, !tbaa !5
  %7450 = call ptr @__errno_location() #10
  store i32 %7449, ptr %7450, align 4, !tbaa !5
  %7451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7452 = load i32, ptr @test_count, align 4, !tbaa !5
  %7453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7454 = load i32, ptr %7453, align 4, !tbaa !5
  %7455 = call ptr @s2n_strerror(i32 noundef %7454, ptr noundef @.str.4)
  %7456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7457 = load i32, ptr %7456, align 4, !tbaa !5
  %7458 = call ptr @s2n_strerror_debug(i32 noundef %7457, ptr noundef @.str.4)
  %7459 = call ptr @__errno_location() #10
  %7460 = load i32, ptr %7459, align 4, !tbaa !5
  %7461 = call ptr @strerror(i32 noundef %7460) #9
  %7462 = call ptr @__errno_location() #10
  %7463 = load i32, ptr %7462, align 4, !tbaa !5
  %7464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7451, ptr noundef @.str.5, i32 noundef %7452, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 323, ptr noundef %7455, ptr noundef %7458, ptr noundef %7461, i32 noundef %7463) #9
  br label %7465

7465:                                             ; preds = %7448, %7431
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #9
  br label %7466

7466:                                             ; preds = %7465
  br label %7467

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

7468:                                             ; No predecessors!
  br label %7469

7469:                                             ; preds = %7468
  br label %7470

7470:                                             ; preds = %7469, %7412
  br label %7471

7471:                                             ; preds = %7470
  br label %7472

7472:                                             ; preds = %7471
  br label %7473

7473:                                             ; preds = %7472
  %7474 = load i32, ptr @test_count, align 4, !tbaa !5
  %7475 = add nsw i32 %7474, 1
  store i32 %7475, ptr @test_count, align 4, !tbaa !5
  %7476 = call i32 @s2n_stuffer_write_uint16(ptr noundef %158, i16 noundef zeroext 101)
  %7477 = icmp eq i32 %7476, -1
  br i1 %7477, label %7478, label %7531

7478:                                             ; preds = %7473
  br label %7479

7479:                                             ; preds = %7478
  br label %7480

7480:                                             ; preds = %7479
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #9
  %7481 = call ptr @__errno_location() #10
  %7482 = load i32, ptr %7481, align 4, !tbaa !5
  store i32 %7482, ptr %163, align 4, !tbaa !5
  %7483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7484 = call i32 @s2n_print_stacktrace(ptr noundef %7483)
  %7485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7486 = trunc i8 %7485 to i1
  br i1 %7486, label %7487, label %7509

7487:                                             ; preds = %7480
  %7488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7489 = call i32 @fileno(ptr noundef %7488) #9
  %7490 = call i32 @isatty(i32 noundef %7489) #9
  %7491 = icmp ne i32 %7490, 0
  br i1 %7491, label %7492, label %7509

7492:                                             ; preds = %7487
  %7493 = load i32, ptr %163, align 4, !tbaa !5
  %7494 = call ptr @__errno_location() #10
  store i32 %7493, ptr %7494, align 4, !tbaa !5
  %7495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7496 = load i32, ptr @test_count, align 4, !tbaa !5
  %7497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7498 = load i32, ptr %7497, align 4, !tbaa !5
  %7499 = call ptr @s2n_strerror(i32 noundef %7498, ptr noundef @.str.4)
  %7500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7501 = load i32, ptr %7500, align 4, !tbaa !5
  %7502 = call ptr @s2n_strerror_debug(i32 noundef %7501, ptr noundef @.str.4)
  %7503 = call ptr @__errno_location() #10
  %7504 = load i32, ptr %7503, align 4, !tbaa !5
  %7505 = call ptr @strerror(i32 noundef %7504) #9
  %7506 = call ptr @__errno_location() #10
  %7507 = load i32, ptr %7506, align 4, !tbaa !5
  %7508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7495, ptr noundef @.str.2, i32 noundef %7496, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 324, ptr noundef %7499, ptr noundef %7502, ptr noundef %7505, i32 noundef %7507) #9
  br label %7526

7509:                                             ; preds = %7487, %7480
  %7510 = load i32, ptr %163, align 4, !tbaa !5
  %7511 = call ptr @__errno_location() #10
  store i32 %7510, ptr %7511, align 4, !tbaa !5
  %7512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7513 = load i32, ptr @test_count, align 4, !tbaa !5
  %7514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7515 = load i32, ptr %7514, align 4, !tbaa !5
  %7516 = call ptr @s2n_strerror(i32 noundef %7515, ptr noundef @.str.4)
  %7517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7518 = load i32, ptr %7517, align 4, !tbaa !5
  %7519 = call ptr @s2n_strerror_debug(i32 noundef %7518, ptr noundef @.str.4)
  %7520 = call ptr @__errno_location() #10
  %7521 = load i32, ptr %7520, align 4, !tbaa !5
  %7522 = call ptr @strerror(i32 noundef %7521) #9
  %7523 = call ptr @__errno_location() #10
  %7524 = load i32, ptr %7523, align 4, !tbaa !5
  %7525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7512, ptr noundef @.str.5, i32 noundef %7513, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 324, ptr noundef %7516, ptr noundef %7519, ptr noundef %7522, i32 noundef %7524) #9
  br label %7526

7526:                                             ; preds = %7509, %7492
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #9
  br label %7527

7527:                                             ; preds = %7526
  br label %7528

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

7529:                                             ; No predecessors!
  br label %7530

7530:                                             ; preds = %7529
  br label %7531

7531:                                             ; preds = %7530, %7473
  br label %7532

7532:                                             ; preds = %7531
  br label %7533

7533:                                             ; preds = %7532
  br label %7534

7534:                                             ; preds = %7533
  %7535 = load i32, ptr @test_count, align 4, !tbaa !5
  %7536 = add nsw i32 %7535, 1
  store i32 %7536, ptr @test_count, align 4, !tbaa !5
  %7537 = call i32 @s2n_stuffer_write_uint16(ptr noundef %158, i16 noundef zeroext 102)
  %7538 = icmp eq i32 %7537, -1
  br i1 %7538, label %7539, label %7592

7539:                                             ; preds = %7534
  br label %7540

7540:                                             ; preds = %7539
  br label %7541

7541:                                             ; preds = %7540
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #9
  %7542 = call ptr @__errno_location() #10
  %7543 = load i32, ptr %7542, align 4, !tbaa !5
  store i32 %7543, ptr %164, align 4, !tbaa !5
  %7544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7545 = call i32 @s2n_print_stacktrace(ptr noundef %7544)
  %7546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7547 = trunc i8 %7546 to i1
  br i1 %7547, label %7548, label %7570

7548:                                             ; preds = %7541
  %7549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7550 = call i32 @fileno(ptr noundef %7549) #9
  %7551 = call i32 @isatty(i32 noundef %7550) #9
  %7552 = icmp ne i32 %7551, 0
  br i1 %7552, label %7553, label %7570

7553:                                             ; preds = %7548
  %7554 = load i32, ptr %164, align 4, !tbaa !5
  %7555 = call ptr @__errno_location() #10
  store i32 %7554, ptr %7555, align 4, !tbaa !5
  %7556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7557 = load i32, ptr @test_count, align 4, !tbaa !5
  %7558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7559 = load i32, ptr %7558, align 4, !tbaa !5
  %7560 = call ptr @s2n_strerror(i32 noundef %7559, ptr noundef @.str.4)
  %7561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7562 = load i32, ptr %7561, align 4, !tbaa !5
  %7563 = call ptr @s2n_strerror_debug(i32 noundef %7562, ptr noundef @.str.4)
  %7564 = call ptr @__errno_location() #10
  %7565 = load i32, ptr %7564, align 4, !tbaa !5
  %7566 = call ptr @strerror(i32 noundef %7565) #9
  %7567 = call ptr @__errno_location() #10
  %7568 = load i32, ptr %7567, align 4, !tbaa !5
  %7569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7556, ptr noundef @.str.2, i32 noundef %7557, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 325, ptr noundef %7560, ptr noundef %7563, ptr noundef %7566, i32 noundef %7568) #9
  br label %7587

7570:                                             ; preds = %7548, %7541
  %7571 = load i32, ptr %164, align 4, !tbaa !5
  %7572 = call ptr @__errno_location() #10
  store i32 %7571, ptr %7572, align 4, !tbaa !5
  %7573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7574 = load i32, ptr @test_count, align 4, !tbaa !5
  %7575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7576 = load i32, ptr %7575, align 4, !tbaa !5
  %7577 = call ptr @s2n_strerror(i32 noundef %7576, ptr noundef @.str.4)
  %7578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7579 = load i32, ptr %7578, align 4, !tbaa !5
  %7580 = call ptr @s2n_strerror_debug(i32 noundef %7579, ptr noundef @.str.4)
  %7581 = call ptr @__errno_location() #10
  %7582 = load i32, ptr %7581, align 4, !tbaa !5
  %7583 = call ptr @strerror(i32 noundef %7582) #9
  %7584 = call ptr @__errno_location() #10
  %7585 = load i32, ptr %7584, align 4, !tbaa !5
  %7586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7573, ptr noundef @.str.5, i32 noundef %7574, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 325, ptr noundef %7577, ptr noundef %7580, ptr noundef %7583, i32 noundef %7585) #9
  br label %7587

7587:                                             ; preds = %7570, %7553
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #9
  br label %7588

7588:                                             ; preds = %7587
  br label %7589

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

7590:                                             ; No predecessors!
  br label %7591

7591:                                             ; preds = %7590
  br label %7592

7592:                                             ; preds = %7591, %7534
  br label %7593

7593:                                             ; preds = %7592
  br label %7594

7594:                                             ; preds = %7593
  br label %7595

7595:                                             ; preds = %7594
  %7596 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %160)
  %7597 = icmp sgt i32 %7596, -1
  br i1 %7597, label %7599, label %7598

7598:                                             ; preds = %7595
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %88, align 4
  br label %8312

7599:                                             ; preds = %7595
  br label %7600

7600:                                             ; preds = %7599
  br label %7601

7601:                                             ; preds = %7600
  br label %7602

7602:                                             ; preds = %7601
  %7603 = load i32, ptr @test_count, align 4, !tbaa !5
  %7604 = add nsw i32 %7603, 1
  store i32 %7604, ptr @test_count, align 4, !tbaa !5
  %7605 = load ptr, ptr %156, align 8, !tbaa !9
  %7606 = getelementptr inbounds %struct.s2n_connection, ptr %7605, i32 0, i32 31
  %7607 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7606, i32 0, i32 1
  %7608 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %7607, i32 0, i32 0
  %7609 = load ptr, ptr %7608, align 8, !tbaa !73
  %7610 = icmp eq ptr %7609, null
  br i1 %7610, label %7664, label %7611

7611:                                             ; preds = %7602
  br label %7612

7612:                                             ; preds = %7611
  br label %7613

7613:                                             ; preds = %7612
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #9
  %7614 = call ptr @__errno_location() #10
  %7615 = load i32, ptr %7614, align 4, !tbaa !5
  store i32 %7615, ptr %165, align 4, !tbaa !5
  %7616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7617 = call i32 @s2n_print_stacktrace(ptr noundef %7616)
  %7618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7619 = trunc i8 %7618 to i1
  br i1 %7619, label %7620, label %7642

7620:                                             ; preds = %7613
  %7621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7622 = call i32 @fileno(ptr noundef %7621) #9
  %7623 = call i32 @isatty(i32 noundef %7622) #9
  %7624 = icmp ne i32 %7623, 0
  br i1 %7624, label %7625, label %7642

7625:                                             ; preds = %7620
  %7626 = load i32, ptr %165, align 4, !tbaa !5
  %7627 = call ptr @__errno_location() #10
  store i32 %7626, ptr %7627, align 4, !tbaa !5
  %7628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7629 = load i32, ptr @test_count, align 4, !tbaa !5
  %7630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7631 = load i32, ptr %7630, align 4, !tbaa !5
  %7632 = call ptr @s2n_strerror(i32 noundef %7631, ptr noundef @.str.4)
  %7633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7634 = load i32, ptr %7633, align 4, !tbaa !5
  %7635 = call ptr @s2n_strerror_debug(i32 noundef %7634, ptr noundef @.str.4)
  %7636 = call ptr @__errno_location() #10
  %7637 = load i32, ptr %7636, align 4, !tbaa !5
  %7638 = call ptr @strerror(i32 noundef %7637) #9
  %7639 = call ptr @__errno_location() #10
  %7640 = load i32, ptr %7639, align 4, !tbaa !5
  %7641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7628, ptr noundef @.str.2, i32 noundef %7629, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 328, ptr noundef %7632, ptr noundef %7635, ptr noundef %7638, i32 noundef %7640) #9
  br label %7659

7642:                                             ; preds = %7620, %7613
  %7643 = load i32, ptr %165, align 4, !tbaa !5
  %7644 = call ptr @__errno_location() #10
  store i32 %7643, ptr %7644, 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 @.str.4)
  %7650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7651 = load i32, ptr %7650, align 4, !tbaa !5
  %7652 = call ptr @s2n_strerror_debug(i32 noundef %7651, ptr noundef @.str.4)
  %7653 = call ptr @__errno_location() #10
  %7654 = load i32, ptr %7653, align 4, !tbaa !5
  %7655 = call ptr @strerror(i32 noundef %7654) #9
  %7656 = call ptr @__errno_location() #10
  %7657 = load i32, ptr %7656, align 4, !tbaa !5
  %7658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7645, ptr noundef @.str.5, i32 noundef %7646, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 328, ptr noundef %7649, ptr noundef %7652, ptr noundef %7655, i32 noundef %7657) #9
  br label %7659

7659:                                             ; preds = %7642, %7625
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #9
  br label %7660

7660:                                             ; preds = %7659
  br label %7661

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

7662:                                             ; No predecessors!
  br label %7663

7663:                                             ; preds = %7662
  br label %7664

7664:                                             ; preds = %7663, %7602
  br label %7665

7665:                                             ; preds = %7664
  br label %7666

7666:                                             ; preds = %7665
  br label %7667

7667:                                             ; preds = %7666
  %7668 = load i32, ptr @test_count, align 4, !tbaa !5
  %7669 = add nsw i32 %7668, 1
  store i32 %7669, ptr @test_count, align 4, !tbaa !5
  %7670 = load ptr, ptr %156, align 8, !tbaa !9
  %7671 = getelementptr inbounds %struct.s2n_connection, ptr %7670, i32 0, i32 31
  %7672 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7671, i32 0, i32 4
  %7673 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %7672, i32 0, i32 0
  %7674 = load ptr, ptr %7673, align 8, !tbaa !74
  %7675 = icmp eq ptr %7674, null
  br i1 %7675, label %7729, label %7676

7676:                                             ; preds = %7667
  br label %7677

7677:                                             ; preds = %7676
  br label %7678

7678:                                             ; preds = %7677
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #9
  %7679 = call ptr @__errno_location() #10
  %7680 = load i32, ptr %7679, align 4, !tbaa !5
  store i32 %7680, ptr %166, align 4, !tbaa !5
  %7681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7682 = call i32 @s2n_print_stacktrace(ptr noundef %7681)
  %7683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7684 = trunc i8 %7683 to i1
  br i1 %7684, label %7685, label %7707

7685:                                             ; preds = %7678
  %7686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7687 = call i32 @fileno(ptr noundef %7686) #9
  %7688 = call i32 @isatty(i32 noundef %7687) #9
  %7689 = icmp ne i32 %7688, 0
  br i1 %7689, label %7690, label %7707

7690:                                             ; preds = %7685
  %7691 = load i32, ptr %166, align 4, !tbaa !5
  %7692 = call ptr @__errno_location() #10
  store i32 %7691, ptr %7692, align 4, !tbaa !5
  %7693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7694 = load i32, ptr @test_count, align 4, !tbaa !5
  %7695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7696 = load i32, ptr %7695, align 4, !tbaa !5
  %7697 = call ptr @s2n_strerror(i32 noundef %7696, ptr noundef @.str.4)
  %7698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7699 = load i32, ptr %7698, align 4, !tbaa !5
  %7700 = call ptr @s2n_strerror_debug(i32 noundef %7699, ptr noundef @.str.4)
  %7701 = call ptr @__errno_location() #10
  %7702 = load i32, ptr %7701, align 4, !tbaa !5
  %7703 = call ptr @strerror(i32 noundef %7702) #9
  %7704 = call ptr @__errno_location() #10
  %7705 = load i32, ptr %7704, align 4, !tbaa !5
  %7706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7693, ptr noundef @.str.2, i32 noundef %7694, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 329, ptr noundef %7697, ptr noundef %7700, ptr noundef %7703, i32 noundef %7705) #9
  br label %7724

7707:                                             ; preds = %7685, %7678
  %7708 = load i32, ptr %166, align 4, !tbaa !5
  %7709 = call ptr @__errno_location() #10
  store i32 %7708, ptr %7709, align 4, !tbaa !5
  %7710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7711 = load i32, ptr @test_count, align 4, !tbaa !5
  %7712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7713 = load i32, ptr %7712, align 4, !tbaa !5
  %7714 = call ptr @s2n_strerror(i32 noundef %7713, ptr noundef @.str.4)
  %7715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7716 = load i32, ptr %7715, align 4, !tbaa !5
  %7717 = call ptr @s2n_strerror_debug(i32 noundef %7716, ptr noundef @.str.4)
  %7718 = call ptr @__errno_location() #10
  %7719 = load i32, ptr %7718, align 4, !tbaa !5
  %7720 = call ptr @strerror(i32 noundef %7719) #9
  %7721 = call ptr @__errno_location() #10
  %7722 = load i32, ptr %7721, align 4, !tbaa !5
  %7723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7710, ptr noundef @.str.5, i32 noundef %7711, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 329, ptr noundef %7714, ptr noundef %7717, ptr noundef %7720, i32 noundef %7722) #9
  br label %7724

7724:                                             ; preds = %7707, %7690
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #9
  br label %7725

7725:                                             ; preds = %7724
  br label %7726

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

7727:                                             ; No predecessors!
  br label %7728

7728:                                             ; preds = %7727
  br label %7729

7729:                                             ; preds = %7728, %7667
  br label %7730

7730:                                             ; preds = %7729
  br label %7731

7731:                                             ; preds = %7730
  br label %7732

7732:                                             ; preds = %7731
  %7733 = load i32, ptr @test_count, align 4, !tbaa !5
  %7734 = add nsw i32 %7733, 1
  store i32 %7734, ptr @test_count, align 4, !tbaa !5
  %7735 = load ptr, ptr %156, align 8, !tbaa !9
  %7736 = getelementptr inbounds %struct.s2n_connection, ptr %7735, i32 0, i32 31
  %7737 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7736, i32 0, i32 4
  %7738 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %7737, i32 0, i32 2
  %7739 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %7738, i32 0, i32 0
  %7740 = load ptr, ptr %7739, align 8, !tbaa !75
  %7741 = icmp eq ptr %7740, null
  br i1 %7741, label %7795, label %7742

7742:                                             ; preds = %7732
  br label %7743

7743:                                             ; preds = %7742
  br label %7744

7744:                                             ; preds = %7743
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #9
  %7745 = call ptr @__errno_location() #10
  %7746 = load i32, ptr %7745, align 4, !tbaa !5
  store i32 %7746, ptr %167, align 4, !tbaa !5
  %7747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7748 = call i32 @s2n_print_stacktrace(ptr noundef %7747)
  %7749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7750 = trunc i8 %7749 to i1
  br i1 %7750, label %7751, label %7773

7751:                                             ; preds = %7744
  %7752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7753 = call i32 @fileno(ptr noundef %7752) #9
  %7754 = call i32 @isatty(i32 noundef %7753) #9
  %7755 = icmp ne i32 %7754, 0
  br i1 %7755, label %7756, label %7773

7756:                                             ; preds = %7751
  %7757 = load i32, ptr %167, align 4, !tbaa !5
  %7758 = call ptr @__errno_location() #10
  store i32 %7757, ptr %7758, align 4, !tbaa !5
  %7759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7760 = load i32, ptr @test_count, align 4, !tbaa !5
  %7761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7762 = load i32, ptr %7761, align 4, !tbaa !5
  %7763 = call ptr @s2n_strerror(i32 noundef %7762, ptr noundef @.str.4)
  %7764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7765 = load i32, ptr %7764, align 4, !tbaa !5
  %7766 = call ptr @s2n_strerror_debug(i32 noundef %7765, ptr noundef @.str.4)
  %7767 = call ptr @__errno_location() #10
  %7768 = load i32, ptr %7767, align 4, !tbaa !5
  %7769 = call ptr @strerror(i32 noundef %7768) #9
  %7770 = call ptr @__errno_location() #10
  %7771 = load i32, ptr %7770, align 4, !tbaa !5
  %7772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7759, ptr noundef @.str.2, i32 noundef %7760, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 330, ptr noundef %7763, ptr noundef %7766, ptr noundef %7769, i32 noundef %7771) #9
  br label %7790

7773:                                             ; preds = %7751, %7744
  %7774 = load i32, ptr %167, align 4, !tbaa !5
  %7775 = call ptr @__errno_location() #10
  store i32 %7774, ptr %7775, align 4, !tbaa !5
  %7776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7777 = load i32, ptr @test_count, align 4, !tbaa !5
  %7778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7779 = load i32, ptr %7778, align 4, !tbaa !5
  %7780 = call ptr @s2n_strerror(i32 noundef %7779, ptr noundef @.str.4)
  %7781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7782 = load i32, ptr %7781, align 4, !tbaa !5
  %7783 = call ptr @s2n_strerror_debug(i32 noundef %7782, ptr noundef @.str.4)
  %7784 = call ptr @__errno_location() #10
  %7785 = load i32, ptr %7784, align 4, !tbaa !5
  %7786 = call ptr @strerror(i32 noundef %7785) #9
  %7787 = call ptr @__errno_location() #10
  %7788 = load i32, ptr %7787, align 4, !tbaa !5
  %7789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7776, ptr noundef @.str.5, i32 noundef %7777, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 330, ptr noundef %7780, ptr noundef %7783, ptr noundef %7786, i32 noundef %7788) #9
  br label %7790

7790:                                             ; preds = %7773, %7756
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #9
  br label %7791

7791:                                             ; preds = %7790
  br label %7792

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

7793:                                             ; No predecessors!
  br label %7794

7794:                                             ; preds = %7793
  br label %7795

7795:                                             ; preds = %7794, %7732
  br label %7796

7796:                                             ; preds = %7795
  br label %7797

7797:                                             ; preds = %7796
  br label %7798

7798:                                             ; preds = %7797
  %7799 = load i32, ptr @test_count, align 4, !tbaa !5
  %7800 = add nsw i32 %7799, 1
  store i32 %7800, ptr @test_count, align 4, !tbaa !5
  %7801 = load ptr, ptr %156, align 8, !tbaa !9
  %7802 = getelementptr inbounds %struct.s2n_connection, ptr %7801, i32 0, i32 31
  %7803 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7802, i32 0, i32 4
  %7804 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %7803, i32 0, i32 1
  %7805 = getelementptr inbounds %struct.s2n_kem_params, ptr %7804, i32 0, i32 0
  %7806 = load ptr, ptr %7805, align 8, !tbaa !76
  %7807 = icmp eq ptr %7806, null
  br i1 %7807, label %7861, label %7808

7808:                                             ; preds = %7798
  br label %7809

7809:                                             ; preds = %7808
  br label %7810

7810:                                             ; preds = %7809
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #9
  %7811 = call ptr @__errno_location() #10
  %7812 = load i32, ptr %7811, align 4, !tbaa !5
  store i32 %7812, ptr %168, align 4, !tbaa !5
  %7813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7814 = call i32 @s2n_print_stacktrace(ptr noundef %7813)
  %7815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7816 = trunc i8 %7815 to i1
  br i1 %7816, label %7817, label %7839

7817:                                             ; preds = %7810
  %7818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7819 = call i32 @fileno(ptr noundef %7818) #9
  %7820 = call i32 @isatty(i32 noundef %7819) #9
  %7821 = icmp ne i32 %7820, 0
  br i1 %7821, label %7822, label %7839

7822:                                             ; preds = %7817
  %7823 = load i32, ptr %168, align 4, !tbaa !5
  %7824 = call ptr @__errno_location() #10
  store i32 %7823, ptr %7824, align 4, !tbaa !5
  %7825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7826 = load i32, ptr @test_count, align 4, !tbaa !5
  %7827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7828 = load i32, ptr %7827, align 4, !tbaa !5
  %7829 = call ptr @s2n_strerror(i32 noundef %7828, ptr noundef @.str.4)
  %7830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7831 = load i32, ptr %7830, align 4, !tbaa !5
  %7832 = call ptr @s2n_strerror_debug(i32 noundef %7831, ptr noundef @.str.4)
  %7833 = call ptr @__errno_location() #10
  %7834 = load i32, ptr %7833, align 4, !tbaa !5
  %7835 = call ptr @strerror(i32 noundef %7834) #9
  %7836 = call ptr @__errno_location() #10
  %7837 = load i32, ptr %7836, align 4, !tbaa !5
  %7838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7825, ptr noundef @.str.2, i32 noundef %7826, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 331, ptr noundef %7829, ptr noundef %7832, ptr noundef %7835, i32 noundef %7837) #9
  br label %7856

7839:                                             ; preds = %7817, %7810
  %7840 = load i32, ptr %168, align 4, !tbaa !5
  %7841 = call ptr @__errno_location() #10
  store i32 %7840, ptr %7841, align 4, !tbaa !5
  %7842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7843 = load i32, ptr @test_count, align 4, !tbaa !5
  %7844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7845 = load i32, ptr %7844, align 4, !tbaa !5
  %7846 = call ptr @s2n_strerror(i32 noundef %7845, ptr noundef @.str.4)
  %7847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7848 = load i32, ptr %7847, align 4, !tbaa !5
  %7849 = call ptr @s2n_strerror_debug(i32 noundef %7848, ptr noundef @.str.4)
  %7850 = call ptr @__errno_location() #10
  %7851 = load i32, ptr %7850, align 4, !tbaa !5
  %7852 = call ptr @strerror(i32 noundef %7851) #9
  %7853 = call ptr @__errno_location() #10
  %7854 = load i32, ptr %7853, align 4, !tbaa !5
  %7855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7842, ptr noundef @.str.5, i32 noundef %7843, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 331, ptr noundef %7846, ptr noundef %7849, ptr noundef %7852, i32 noundef %7854) #9
  br label %7856

7856:                                             ; preds = %7839, %7822
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #9
  br label %7857

7857:                                             ; preds = %7856
  br label %7858

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

7859:                                             ; No predecessors!
  br label %7860

7860:                                             ; preds = %7859
  br label %7861

7861:                                             ; preds = %7860, %7798
  br label %7862

7862:                                             ; preds = %7861
  br label %7863

7863:                                             ; preds = %7862
  br label %7864

7864:                                             ; preds = %7863
  %7865 = load i32, ptr @test_count, align 4, !tbaa !5
  %7866 = add nsw i32 %7865, 1
  store i32 %7866, ptr @test_count, align 4, !tbaa !5
  %7867 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 4), align 8, !tbaa !77
  %7868 = load ptr, ptr %156, align 8, !tbaa !9
  %7869 = call i32 %7867(ptr noundef %7868, ptr noundef %158)
  %7870 = icmp eq i32 %7869, -1
  br i1 %7870, label %7871, label %7924

7871:                                             ; preds = %7864
  br label %7872

7872:                                             ; preds = %7871
  br label %7873

7873:                                             ; preds = %7872
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #9
  %7874 = call ptr @__errno_location() #10
  %7875 = load i32, ptr %7874, align 4, !tbaa !5
  store i32 %7875, ptr %169, align 4, !tbaa !5
  %7876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7877 = call i32 @s2n_print_stacktrace(ptr noundef %7876)
  %7878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7879 = trunc i8 %7878 to i1
  br i1 %7879, label %7880, label %7902

7880:                                             ; preds = %7873
  %7881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7882 = call i32 @fileno(ptr noundef %7881) #9
  %7883 = call i32 @isatty(i32 noundef %7882) #9
  %7884 = icmp ne i32 %7883, 0
  br i1 %7884, label %7885, label %7902

7885:                                             ; preds = %7880
  %7886 = load i32, ptr %169, align 4, !tbaa !5
  %7887 = call ptr @__errno_location() #10
  store i32 %7886, ptr %7887, align 4, !tbaa !5
  %7888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7889 = load i32, ptr @test_count, align 4, !tbaa !5
  %7890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7891 = load i32, ptr %7890, align 4, !tbaa !5
  %7892 = call ptr @s2n_strerror(i32 noundef %7891, ptr noundef @.str.4)
  %7893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7894 = load i32, ptr %7893, align 4, !tbaa !5
  %7895 = call ptr @s2n_strerror_debug(i32 noundef %7894, ptr noundef @.str.4)
  %7896 = call ptr @__errno_location() #10
  %7897 = load i32, ptr %7896, align 4, !tbaa !5
  %7898 = call ptr @strerror(i32 noundef %7897) #9
  %7899 = call ptr @__errno_location() #10
  %7900 = load i32, ptr %7899, align 4, !tbaa !5
  %7901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7888, ptr noundef @.str.2, i32 noundef %7889, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 333, ptr noundef %7892, ptr noundef %7895, ptr noundef %7898, i32 noundef %7900) #9
  br label %7919

7902:                                             ; preds = %7880, %7873
  %7903 = load i32, ptr %169, align 4, !tbaa !5
  %7904 = call ptr @__errno_location() #10
  store i32 %7903, ptr %7904, align 4, !tbaa !5
  %7905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7906 = load i32, ptr @test_count, align 4, !tbaa !5
  %7907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7908 = load i32, ptr %7907, align 4, !tbaa !5
  %7909 = call ptr @s2n_strerror(i32 noundef %7908, ptr noundef @.str.4)
  %7910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7911 = load i32, ptr %7910, align 4, !tbaa !5
  %7912 = call ptr @s2n_strerror_debug(i32 noundef %7911, ptr noundef @.str.4)
  %7913 = call ptr @__errno_location() #10
  %7914 = load i32, ptr %7913, align 4, !tbaa !5
  %7915 = call ptr @strerror(i32 noundef %7914) #9
  %7916 = call ptr @__errno_location() #10
  %7917 = load i32, ptr %7916, align 4, !tbaa !5
  %7918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7905, ptr noundef @.str.5, i32 noundef %7906, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 333, ptr noundef %7909, ptr noundef %7912, ptr noundef %7915, i32 noundef %7917) #9
  br label %7919

7919:                                             ; preds = %7902, %7885
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #9
  br label %7920

7920:                                             ; preds = %7919
  br label %7921

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

7922:                                             ; No predecessors!
  br label %7923

7923:                                             ; preds = %7922
  br label %7924

7924:                                             ; preds = %7923, %7864
  br label %7925

7925:                                             ; preds = %7924
  br label %7926

7926:                                             ; preds = %7925
  br label %7927

7927:                                             ; preds = %7926
  %7928 = load i32, ptr @test_count, align 4, !tbaa !5
  %7929 = add nsw i32 %7928, 1
  store i32 %7929, ptr @test_count, align 4, !tbaa !5
  %7930 = load ptr, ptr %156, align 8, !tbaa !9
  %7931 = getelementptr inbounds %struct.s2n_connection, ptr %7930, i32 0, i32 31
  %7932 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7931, i32 0, i32 1
  %7933 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %7932, i32 0, i32 0
  %7934 = load ptr, ptr %7933, align 8, !tbaa !73
  %7935 = icmp eq ptr %7934, null
  br i1 %7935, label %7989, label %7936

7936:                                             ; preds = %7927
  br label %7937

7937:                                             ; preds = %7936
  br label %7938

7938:                                             ; preds = %7937
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #9
  %7939 = call ptr @__errno_location() #10
  %7940 = load i32, ptr %7939, align 4, !tbaa !5
  store i32 %7940, ptr %170, align 4, !tbaa !5
  %7941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7942 = call i32 @s2n_print_stacktrace(ptr noundef %7941)
  %7943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7944 = trunc i8 %7943 to i1
  br i1 %7944, label %7945, label %7967

7945:                                             ; preds = %7938
  %7946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7947 = call i32 @fileno(ptr noundef %7946) #9
  %7948 = call i32 @isatty(i32 noundef %7947) #9
  %7949 = icmp ne i32 %7948, 0
  br i1 %7949, label %7950, label %7967

7950:                                             ; preds = %7945
  %7951 = load i32, ptr %170, align 4, !tbaa !5
  %7952 = call ptr @__errno_location() #10
  store i32 %7951, ptr %7952, align 4, !tbaa !5
  %7953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7954 = load i32, ptr @test_count, align 4, !tbaa !5
  %7955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7956 = load i32, ptr %7955, align 4, !tbaa !5
  %7957 = call ptr @s2n_strerror(i32 noundef %7956, ptr noundef @.str.4)
  %7958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7959 = load i32, ptr %7958, align 4, !tbaa !5
  %7960 = call ptr @s2n_strerror_debug(i32 noundef %7959, ptr noundef @.str.4)
  %7961 = call ptr @__errno_location() #10
  %7962 = load i32, ptr %7961, align 4, !tbaa !5
  %7963 = call ptr @strerror(i32 noundef %7962) #9
  %7964 = call ptr @__errno_location() #10
  %7965 = load i32, ptr %7964, align 4, !tbaa !5
  %7966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7953, ptr noundef @.str.2, i32 noundef %7954, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 335, ptr noundef %7957, ptr noundef %7960, ptr noundef %7963, i32 noundef %7965) #9
  br label %7984

7967:                                             ; preds = %7945, %7938
  %7968 = load i32, ptr %170, align 4, !tbaa !5
  %7969 = call ptr @__errno_location() #10
  store i32 %7968, ptr %7969, align 4, !tbaa !5
  %7970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7971 = load i32, ptr @test_count, align 4, !tbaa !5
  %7972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7973 = load i32, ptr %7972, align 4, !tbaa !5
  %7974 = call ptr @s2n_strerror(i32 noundef %7973, ptr noundef @.str.4)
  %7975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7976 = load i32, ptr %7975, align 4, !tbaa !5
  %7977 = call ptr @s2n_strerror_debug(i32 noundef %7976, ptr noundef @.str.4)
  %7978 = call ptr @__errno_location() #10
  %7979 = load i32, ptr %7978, align 4, !tbaa !5
  %7980 = call ptr @strerror(i32 noundef %7979) #9
  %7981 = call ptr @__errno_location() #10
  %7982 = load i32, ptr %7981, align 4, !tbaa !5
  %7983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7970, ptr noundef @.str.5, i32 noundef %7971, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 335, ptr noundef %7974, ptr noundef %7977, ptr noundef %7980, i32 noundef %7982) #9
  br label %7984

7984:                                             ; preds = %7967, %7950
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #9
  br label %7985

7985:                                             ; preds = %7984
  br label %7986

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

7987:                                             ; No predecessors!
  br label %7988

7988:                                             ; preds = %7987
  br label %7989

7989:                                             ; preds = %7988, %7927
  br label %7990

7990:                                             ; preds = %7989
  br label %7991

7991:                                             ; preds = %7990
  br label %7992

7992:                                             ; preds = %7991
  %7993 = load i32, ptr @test_count, align 4, !tbaa !5
  %7994 = add nsw i32 %7993, 1
  store i32 %7994, ptr @test_count, align 4, !tbaa !5
  %7995 = load ptr, ptr %156, align 8, !tbaa !9
  %7996 = getelementptr inbounds %struct.s2n_connection, ptr %7995, i32 0, i32 31
  %7997 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %7996, i32 0, i32 4
  %7998 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %7997, i32 0, i32 0
  %7999 = load ptr, ptr %7998, align 8, !tbaa !74
  %8000 = icmp eq ptr %7999, null
  br i1 %8000, label %8054, label %8001

8001:                                             ; preds = %7992
  br label %8002

8002:                                             ; preds = %8001
  br label %8003

8003:                                             ; preds = %8002
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #9
  %8004 = call ptr @__errno_location() #10
  %8005 = load i32, ptr %8004, align 4, !tbaa !5
  store i32 %8005, ptr %171, align 4, !tbaa !5
  %8006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8007 = call i32 @s2n_print_stacktrace(ptr noundef %8006)
  %8008 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8009 = trunc i8 %8008 to i1
  br i1 %8009, label %8010, label %8032

8010:                                             ; preds = %8003
  %8011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8012 = call i32 @fileno(ptr noundef %8011) #9
  %8013 = call i32 @isatty(i32 noundef %8012) #9
  %8014 = icmp ne i32 %8013, 0
  br i1 %8014, label %8015, label %8032

8015:                                             ; preds = %8010
  %8016 = load i32, ptr %171, align 4, !tbaa !5
  %8017 = call ptr @__errno_location() #10
  store i32 %8016, ptr %8017, align 4, !tbaa !5
  %8018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8019 = load i32, ptr @test_count, align 4, !tbaa !5
  %8020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8021 = load i32, ptr %8020, align 4, !tbaa !5
  %8022 = call ptr @s2n_strerror(i32 noundef %8021, ptr noundef @.str.4)
  %8023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8024 = load i32, ptr %8023, align 4, !tbaa !5
  %8025 = call ptr @s2n_strerror_debug(i32 noundef %8024, ptr noundef @.str.4)
  %8026 = call ptr @__errno_location() #10
  %8027 = load i32, ptr %8026, align 4, !tbaa !5
  %8028 = call ptr @strerror(i32 noundef %8027) #9
  %8029 = call ptr @__errno_location() #10
  %8030 = load i32, ptr %8029, align 4, !tbaa !5
  %8031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8018, ptr noundef @.str.2, i32 noundef %8019, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 336, ptr noundef %8022, ptr noundef %8025, ptr noundef %8028, i32 noundef %8030) #9
  br label %8049

8032:                                             ; preds = %8010, %8003
  %8033 = load i32, ptr %171, align 4, !tbaa !5
  %8034 = call ptr @__errno_location() #10
  store i32 %8033, ptr %8034, align 4, !tbaa !5
  %8035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8036 = load i32, ptr @test_count, align 4, !tbaa !5
  %8037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8038 = load i32, ptr %8037, align 4, !tbaa !5
  %8039 = call ptr @s2n_strerror(i32 noundef %8038, ptr noundef @.str.4)
  %8040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8041 = load i32, ptr %8040, align 4, !tbaa !5
  %8042 = call ptr @s2n_strerror_debug(i32 noundef %8041, ptr noundef @.str.4)
  %8043 = call ptr @__errno_location() #10
  %8044 = load i32, ptr %8043, align 4, !tbaa !5
  %8045 = call ptr @strerror(i32 noundef %8044) #9
  %8046 = call ptr @__errno_location() #10
  %8047 = load i32, ptr %8046, align 4, !tbaa !5
  %8048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8035, ptr noundef @.str.5, i32 noundef %8036, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 336, ptr noundef %8039, ptr noundef %8042, ptr noundef %8045, i32 noundef %8047) #9
  br label %8049

8049:                                             ; preds = %8032, %8015
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #9
  br label %8050

8050:                                             ; preds = %8049
  br label %8051

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

8052:                                             ; No predecessors!
  br label %8053

8053:                                             ; preds = %8052
  br label %8054

8054:                                             ; preds = %8053, %7992
  br label %8055

8055:                                             ; preds = %8054
  br label %8056

8056:                                             ; preds = %8055
  br label %8057

8057:                                             ; preds = %8056
  %8058 = load i32, ptr @test_count, align 4, !tbaa !5
  %8059 = add nsw i32 %8058, 1
  store i32 %8059, ptr @test_count, align 4, !tbaa !5
  %8060 = load ptr, ptr %156, align 8, !tbaa !9
  %8061 = getelementptr inbounds %struct.s2n_connection, ptr %8060, i32 0, i32 31
  %8062 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %8061, i32 0, i32 4
  %8063 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %8062, i32 0, i32 2
  %8064 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %8063, i32 0, i32 0
  %8065 = load ptr, ptr %8064, align 8, !tbaa !75
  %8066 = icmp eq ptr %8065, null
  br i1 %8066, label %8120, label %8067

8067:                                             ; preds = %8057
  br label %8068

8068:                                             ; preds = %8067
  br label %8069

8069:                                             ; preds = %8068
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #9
  %8070 = call ptr @__errno_location() #10
  %8071 = load i32, ptr %8070, align 4, !tbaa !5
  store i32 %8071, ptr %172, align 4, !tbaa !5
  %8072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8073 = call i32 @s2n_print_stacktrace(ptr noundef %8072)
  %8074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8075 = trunc i8 %8074 to i1
  br i1 %8075, label %8076, label %8098

8076:                                             ; preds = %8069
  %8077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8078 = call i32 @fileno(ptr noundef %8077) #9
  %8079 = call i32 @isatty(i32 noundef %8078) #9
  %8080 = icmp ne i32 %8079, 0
  br i1 %8080, label %8081, label %8098

8081:                                             ; preds = %8076
  %8082 = load i32, ptr %172, align 4, !tbaa !5
  %8083 = call ptr @__errno_location() #10
  store i32 %8082, ptr %8083, align 4, !tbaa !5
  %8084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8085 = load i32, ptr @test_count, align 4, !tbaa !5
  %8086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8087 = load i32, ptr %8086, align 4, !tbaa !5
  %8088 = call ptr @s2n_strerror(i32 noundef %8087, ptr noundef @.str.4)
  %8089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8090 = load i32, ptr %8089, align 4, !tbaa !5
  %8091 = call ptr @s2n_strerror_debug(i32 noundef %8090, ptr noundef @.str.4)
  %8092 = call ptr @__errno_location() #10
  %8093 = load i32, ptr %8092, align 4, !tbaa !5
  %8094 = call ptr @strerror(i32 noundef %8093) #9
  %8095 = call ptr @__errno_location() #10
  %8096 = load i32, ptr %8095, align 4, !tbaa !5
  %8097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8084, ptr noundef @.str.2, i32 noundef %8085, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 337, ptr noundef %8088, ptr noundef %8091, ptr noundef %8094, i32 noundef %8096) #9
  br label %8115

8098:                                             ; preds = %8076, %8069
  %8099 = load i32, ptr %172, align 4, !tbaa !5
  %8100 = call ptr @__errno_location() #10
  store i32 %8099, ptr %8100, align 4, !tbaa !5
  %8101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8102 = load i32, ptr @test_count, align 4, !tbaa !5
  %8103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8104 = load i32, ptr %8103, align 4, !tbaa !5
  %8105 = call ptr @s2n_strerror(i32 noundef %8104, ptr noundef @.str.4)
  %8106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8107 = load i32, ptr %8106, align 4, !tbaa !5
  %8108 = call ptr @s2n_strerror_debug(i32 noundef %8107, ptr noundef @.str.4)
  %8109 = call ptr @__errno_location() #10
  %8110 = load i32, ptr %8109, align 4, !tbaa !5
  %8111 = call ptr @strerror(i32 noundef %8110) #9
  %8112 = call ptr @__errno_location() #10
  %8113 = load i32, ptr %8112, align 4, !tbaa !5
  %8114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8101, ptr noundef @.str.5, i32 noundef %8102, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 337, ptr noundef %8105, ptr noundef %8108, ptr noundef %8111, i32 noundef %8113) #9
  br label %8115

8115:                                             ; preds = %8098, %8081
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #9
  br label %8116

8116:                                             ; preds = %8115
  br label %8117

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

8118:                                             ; No predecessors!
  br label %8119

8119:                                             ; preds = %8118
  br label %8120

8120:                                             ; preds = %8119, %8057
  br label %8121

8121:                                             ; preds = %8120
  br label %8122

8122:                                             ; preds = %8121
  br label %8123

8123:                                             ; preds = %8122
  %8124 = load i32, ptr @test_count, align 4, !tbaa !5
  %8125 = add nsw i32 %8124, 1
  store i32 %8125, ptr @test_count, align 4, !tbaa !5
  %8126 = load ptr, ptr %156, align 8, !tbaa !9
  %8127 = getelementptr inbounds %struct.s2n_connection, ptr %8126, i32 0, i32 31
  %8128 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %8127, i32 0, i32 4
  %8129 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %8128, i32 0, i32 1
  %8130 = getelementptr inbounds %struct.s2n_kem_params, ptr %8129, i32 0, i32 0
  %8131 = load ptr, ptr %8130, align 8, !tbaa !76
  %8132 = icmp eq ptr %8131, null
  br i1 %8132, label %8186, label %8133

8133:                                             ; preds = %8123
  br label %8134

8134:                                             ; preds = %8133
  br label %8135

8135:                                             ; preds = %8134
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #9
  %8136 = call ptr @__errno_location() #10
  %8137 = load i32, ptr %8136, align 4, !tbaa !5
  store i32 %8137, ptr %173, align 4, !tbaa !5
  %8138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8139 = call i32 @s2n_print_stacktrace(ptr noundef %8138)
  %8140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8141 = trunc i8 %8140 to i1
  br i1 %8141, label %8142, label %8164

8142:                                             ; preds = %8135
  %8143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8144 = call i32 @fileno(ptr noundef %8143) #9
  %8145 = call i32 @isatty(i32 noundef %8144) #9
  %8146 = icmp ne i32 %8145, 0
  br i1 %8146, label %8147, label %8164

8147:                                             ; preds = %8142
  %8148 = load i32, ptr %173, align 4, !tbaa !5
  %8149 = call ptr @__errno_location() #10
  store i32 %8148, ptr %8149, align 4, !tbaa !5
  %8150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8151 = load i32, ptr @test_count, align 4, !tbaa !5
  %8152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8153 = load i32, ptr %8152, align 4, !tbaa !5
  %8154 = call ptr @s2n_strerror(i32 noundef %8153, ptr noundef @.str.4)
  %8155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8156 = load i32, ptr %8155, align 4, !tbaa !5
  %8157 = call ptr @s2n_strerror_debug(i32 noundef %8156, ptr noundef @.str.4)
  %8158 = call ptr @__errno_location() #10
  %8159 = load i32, ptr %8158, align 4, !tbaa !5
  %8160 = call ptr @strerror(i32 noundef %8159) #9
  %8161 = call ptr @__errno_location() #10
  %8162 = load i32, ptr %8161, align 4, !tbaa !5
  %8163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8150, ptr noundef @.str.2, i32 noundef %8151, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 338, ptr noundef %8154, ptr noundef %8157, ptr noundef %8160, i32 noundef %8162) #9
  br label %8181

8164:                                             ; preds = %8142, %8135
  %8165 = load i32, ptr %173, align 4, !tbaa !5
  %8166 = call ptr @__errno_location() #10
  store i32 %8165, ptr %8166, align 4, !tbaa !5
  %8167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8168 = load i32, ptr @test_count, align 4, !tbaa !5
  %8169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8170 = load i32, ptr %8169, align 4, !tbaa !5
  %8171 = call ptr @s2n_strerror(i32 noundef %8170, ptr noundef @.str.4)
  %8172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8173 = load i32, ptr %8172, align 4, !tbaa !5
  %8174 = call ptr @s2n_strerror_debug(i32 noundef %8173, ptr noundef @.str.4)
  %8175 = call ptr @__errno_location() #10
  %8176 = load i32, ptr %8175, align 4, !tbaa !5
  %8177 = call ptr @strerror(i32 noundef %8176) #9
  %8178 = call ptr @__errno_location() #10
  %8179 = load i32, ptr %8178, align 4, !tbaa !5
  %8180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8167, ptr noundef @.str.5, i32 noundef %8168, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 338, ptr noundef %8171, ptr noundef %8174, ptr noundef %8177, i32 noundef %8179) #9
  br label %8181

8181:                                             ; preds = %8164, %8147
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #9
  br label %8182

8182:                                             ; preds = %8181
  br label %8183

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

8184:                                             ; No predecessors!
  br label %8185

8185:                                             ; preds = %8184
  br label %8186

8186:                                             ; preds = %8185, %8123
  br label %8187

8187:                                             ; preds = %8186
  br label %8188

8188:                                             ; preds = %8187
  br label %8189

8189:                                             ; preds = %8188
  %8190 = load i32, ptr @test_count, align 4, !tbaa !5
  %8191 = add nsw i32 %8190, 1
  store i32 %8191, ptr @test_count, align 4, !tbaa !5
  %8192 = load ptr, ptr %156, align 8, !tbaa !9
  %8193 = call i32 @s2n_connection_free(ptr noundef %8192)
  %8194 = icmp eq i32 %8193, -1
  br i1 %8194, label %8195, label %8248

8195:                                             ; preds = %8189
  br label %8196

8196:                                             ; preds = %8195
  br label %8197

8197:                                             ; preds = %8196
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #9
  %8198 = call ptr @__errno_location() #10
  %8199 = load i32, ptr %8198, align 4, !tbaa !5
  store i32 %8199, ptr %174, align 4, !tbaa !5
  %8200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8201 = call i32 @s2n_print_stacktrace(ptr noundef %8200)
  %8202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8203 = trunc i8 %8202 to i1
  br i1 %8203, label %8204, label %8226

8204:                                             ; preds = %8197
  %8205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8206 = call i32 @fileno(ptr noundef %8205) #9
  %8207 = call i32 @isatty(i32 noundef %8206) #9
  %8208 = icmp ne i32 %8207, 0
  br i1 %8208, label %8209, label %8226

8209:                                             ; preds = %8204
  %8210 = load i32, ptr %174, align 4, !tbaa !5
  %8211 = call ptr @__errno_location() #10
  store i32 %8210, ptr %8211, align 4, !tbaa !5
  %8212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8213 = load i32, ptr @test_count, align 4, !tbaa !5
  %8214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8215 = load i32, ptr %8214, align 4, !tbaa !5
  %8216 = call ptr @s2n_strerror(i32 noundef %8215, ptr noundef @.str.4)
  %8217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8218 = load i32, ptr %8217, align 4, !tbaa !5
  %8219 = call ptr @s2n_strerror_debug(i32 noundef %8218, ptr noundef @.str.4)
  %8220 = call ptr @__errno_location() #10
  %8221 = load i32, ptr %8220, align 4, !tbaa !5
  %8222 = call ptr @strerror(i32 noundef %8221) #9
  %8223 = call ptr @__errno_location() #10
  %8224 = load i32, ptr %8223, align 4, !tbaa !5
  %8225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8212, ptr noundef @.str.2, i32 noundef %8213, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 340, ptr noundef %8216, ptr noundef %8219, ptr noundef %8222, i32 noundef %8224) #9
  br label %8243

8226:                                             ; preds = %8204, %8197
  %8227 = load i32, ptr %174, align 4, !tbaa !5
  %8228 = call ptr @__errno_location() #10
  store i32 %8227, ptr %8228, align 4, !tbaa !5
  %8229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8230 = load i32, ptr @test_count, align 4, !tbaa !5
  %8231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8232 = load i32, ptr %8231, align 4, !tbaa !5
  %8233 = call ptr @s2n_strerror(i32 noundef %8232, ptr noundef @.str.4)
  %8234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8235 = load i32, ptr %8234, align 4, !tbaa !5
  %8236 = call ptr @s2n_strerror_debug(i32 noundef %8235, ptr noundef @.str.4)
  %8237 = call ptr @__errno_location() #10
  %8238 = load i32, ptr %8237, align 4, !tbaa !5
  %8239 = call ptr @strerror(i32 noundef %8238) #9
  %8240 = call ptr @__errno_location() #10
  %8241 = load i32, ptr %8240, align 4, !tbaa !5
  %8242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8229, ptr noundef @.str.5, i32 noundef %8230, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 340, ptr noundef %8233, ptr noundef %8236, ptr noundef %8239, i32 noundef %8241) #9
  br label %8243

8243:                                             ; preds = %8226, %8209
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #9
  br label %8244

8244:                                             ; preds = %8243
  br label %8245

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

8246:                                             ; No predecessors!
  br label %8247

8247:                                             ; preds = %8246
  br label %8248

8248:                                             ; preds = %8247, %8189
  br label %8249

8249:                                             ; preds = %8248
  br label %8250

8250:                                             ; preds = %8249
  br label %8251

8251:                                             ; preds = %8250
  %8252 = load i32, ptr @test_count, align 4, !tbaa !5
  %8253 = add nsw i32 %8252, 1
  store i32 %8253, ptr @test_count, align 4, !tbaa !5
  %8254 = call i32 (...) @s2n_disable_tls13_in_test()
  %8255 = icmp eq i32 %8254, -1
  br i1 %8255, label %8256, label %8309

8256:                                             ; preds = %8251
  br label %8257

8257:                                             ; preds = %8256
  br label %8258

8258:                                             ; preds = %8257
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #9
  %8259 = call ptr @__errno_location() #10
  %8260 = load i32, ptr %8259, align 4, !tbaa !5
  store i32 %8260, ptr %175, align 4, !tbaa !5
  %8261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8262 = call i32 @s2n_print_stacktrace(ptr noundef %8261)
  %8263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8264 = trunc i8 %8263 to i1
  br i1 %8264, label %8265, label %8287

8265:                                             ; preds = %8258
  %8266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8267 = call i32 @fileno(ptr noundef %8266) #9
  %8268 = call i32 @isatty(i32 noundef %8267) #9
  %8269 = icmp ne i32 %8268, 0
  br i1 %8269, label %8270, label %8287

8270:                                             ; preds = %8265
  %8271 = load i32, ptr %175, align 4, !tbaa !5
  %8272 = call ptr @__errno_location() #10
  store i32 %8271, ptr %8272, align 4, !tbaa !5
  %8273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8274 = load i32, ptr @test_count, align 4, !tbaa !5
  %8275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8276 = load i32, ptr %8275, align 4, !tbaa !5
  %8277 = call ptr @s2n_strerror(i32 noundef %8276, ptr noundef @.str.4)
  %8278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8279 = load i32, ptr %8278, align 4, !tbaa !5
  %8280 = call ptr @s2n_strerror_debug(i32 noundef %8279, ptr noundef @.str.4)
  %8281 = call ptr @__errno_location() #10
  %8282 = load i32, ptr %8281, align 4, !tbaa !5
  %8283 = call ptr @strerror(i32 noundef %8282) #9
  %8284 = call ptr @__errno_location() #10
  %8285 = load i32, ptr %8284, align 4, !tbaa !5
  %8286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8273, ptr noundef @.str.2, i32 noundef %8274, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 341, ptr noundef %8277, ptr noundef %8280, ptr noundef %8283, i32 noundef %8285) #9
  br label %8304

8287:                                             ; preds = %8265, %8258
  %8288 = load i32, ptr %175, align 4, !tbaa !5
  %8289 = call ptr @__errno_location() #10
  store i32 %8288, ptr %8289, align 4, !tbaa !5
  %8290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8291 = load i32, ptr @test_count, align 4, !tbaa !5
  %8292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8293 = load i32, ptr %8292, align 4, !tbaa !5
  %8294 = call ptr @s2n_strerror(i32 noundef %8293, ptr noundef @.str.4)
  %8295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8296 = load i32, ptr %8295, align 4, !tbaa !5
  %8297 = call ptr @s2n_strerror_debug(i32 noundef %8296, ptr noundef @.str.4)
  %8298 = call ptr @__errno_location() #10
  %8299 = load i32, ptr %8298, align 4, !tbaa !5
  %8300 = call ptr @strerror(i32 noundef %8299) #9
  %8301 = call ptr @__errno_location() #10
  %8302 = load i32, ptr %8301, align 4, !tbaa !5
  %8303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8290, ptr noundef @.str.5, i32 noundef %8291, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 341, ptr noundef %8294, ptr noundef %8297, ptr noundef %8300, i32 noundef %8302) #9
  br label %8304

8304:                                             ; preds = %8287, %8270
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #9
  br label %8305

8305:                                             ; preds = %8304
  br label %8306

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

8307:                                             ; No predecessors!
  br label %8308

8308:                                             ; preds = %8307
  br label %8309

8309:                                             ; preds = %8308, %8251
  br label %8310

8310:                                             ; preds = %8309
  br label %8311

8311:                                             ; preds = %8310
  store i32 0, ptr %88, align 4
  br label %8312

8312:                                             ; preds = %8311, %7598
  call void @llvm.lifetime.end.p0(i64 16, ptr %160) #9
  %8313 = call i32 @s2n_stuffer_free(ptr noundef %158)
  call void @llvm.lifetime.end.p0(i64 40, ptr %158) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #9
  %8314 = load i32, ptr %88, align 4
  switch i32 %8314, label %11279 [
    i32 0, label %8315
  ]

8315:                                             ; preds = %8312
  br label %8316

8316:                                             ; preds = %8315
  %8317 = load i32, ptr @test_count, align 4, !tbaa !5
  %8318 = add nsw i32 %8317, 1
  store i32 %8318, ptr @test_count, align 4, !tbaa !5
  %8319 = call i32 (...) @s2n_disable_tls13_in_test()
  %8320 = icmp eq i32 %8319, -1
  br i1 %8320, label %8321, label %8374

8321:                                             ; preds = %8316
  br label %8322

8322:                                             ; preds = %8321
  br label %8323

8323:                                             ; preds = %8322
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #9
  %8324 = call ptr @__errno_location() #10
  %8325 = load i32, ptr %8324, align 4, !tbaa !5
  store i32 %8325, ptr %176, align 4, !tbaa !5
  %8326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8327 = call i32 @s2n_print_stacktrace(ptr noundef %8326)
  %8328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8329 = trunc i8 %8328 to i1
  br i1 %8329, label %8330, label %8352

8330:                                             ; preds = %8323
  %8331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8332 = call i32 @fileno(ptr noundef %8331) #9
  %8333 = call i32 @isatty(i32 noundef %8332) #9
  %8334 = icmp ne i32 %8333, 0
  br i1 %8334, label %8335, label %8352

8335:                                             ; preds = %8330
  %8336 = load i32, ptr %176, align 4, !tbaa !5
  %8337 = call ptr @__errno_location() #10
  store i32 %8336, ptr %8337, align 4, !tbaa !5
  %8338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8339 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8341, ptr noundef @.str.4)
  %8343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8344 = load i32, ptr %8343, align 4, !tbaa !5
  %8345 = call ptr @s2n_strerror_debug(i32 noundef %8344, ptr noundef @.str.4)
  %8346 = call ptr @__errno_location() #10
  %8347 = load i32, ptr %8346, align 4, !tbaa !5
  %8348 = call ptr @strerror(i32 noundef %8347) #9
  %8349 = call ptr @__errno_location() #10
  %8350 = load i32, ptr %8349, align 4, !tbaa !5
  %8351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8338, ptr noundef @.str.2, i32 noundef %8339, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 346, ptr noundef %8342, ptr noundef %8345, ptr noundef %8348, i32 noundef %8350) #9
  br label %8369

8352:                                             ; preds = %8330, %8323
  %8353 = load i32, ptr %176, align 4, !tbaa !5
  %8354 = call ptr @__errno_location() #10
  store i32 %8353, ptr %8354, align 4, !tbaa !5
  %8355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8356 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8358, ptr noundef @.str.4)
  %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_debug(i32 noundef %8361, ptr noundef @.str.4)
  %8363 = call ptr @__errno_location() #10
  %8364 = load i32, ptr %8363, align 4, !tbaa !5
  %8365 = call ptr @strerror(i32 noundef %8364) #9
  %8366 = call ptr @__errno_location() #10
  %8367 = load i32, ptr %8366, align 4, !tbaa !5
  %8368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8355, ptr noundef @.str.5, i32 noundef %8356, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 346, ptr noundef %8359, ptr noundef %8362, ptr noundef %8365, i32 noundef %8367) #9
  br label %8369

8369:                                             ; preds = %8352, %8335
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #9
  br label %8370

8370:                                             ; preds = %8369
  br label %8371

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

8372:                                             ; No predecessors!
  br label %8373

8373:                                             ; preds = %8372
  br label %8374

8374:                                             ; preds = %8373, %8316
  br label %8375

8375:                                             ; preds = %8374
  br label %8376

8376:                                             ; preds = %8375
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #9
  store ptr null, ptr %177, align 8, !tbaa !9
  br label %8377

8377:                                             ; preds = %8376
  %8378 = load i32, ptr @test_count, align 4, !tbaa !5
  %8379 = add nsw i32 %8378, 1
  store i32 %8379, ptr @test_count, align 4, !tbaa !5
  %8380 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8380, ptr %177, align 8, !tbaa !9
  %8381 = icmp eq ptr %8380, null
  br i1 %8381, label %8382, label %8435

8382:                                             ; preds = %8377
  br label %8383

8383:                                             ; preds = %8382
  br label %8384

8384:                                             ; preds = %8383
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #9
  %8385 = call ptr @__errno_location() #10
  %8386 = load i32, ptr %8385, align 4, !tbaa !5
  store i32 %8386, ptr %178, align 4, !tbaa !5
  %8387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8388 = call i32 @s2n_print_stacktrace(ptr noundef %8387)
  %8389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8390 = trunc i8 %8389 to i1
  br i1 %8390, label %8391, label %8413

8391:                                             ; preds = %8384
  %8392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8393 = call i32 @fileno(ptr noundef %8392) #9
  %8394 = call i32 @isatty(i32 noundef %8393) #9
  %8395 = icmp ne i32 %8394, 0
  br i1 %8395, label %8396, label %8413

8396:                                             ; preds = %8391
  %8397 = load i32, ptr %178, align 4, !tbaa !5
  %8398 = call ptr @__errno_location() #10
  store i32 %8397, ptr %8398, align 4, !tbaa !5
  %8399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8400 = load i32, ptr @test_count, align 4, !tbaa !5
  %8401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8402 = load i32, ptr %8401, align 4, !tbaa !5
  %8403 = call ptr @s2n_strerror(i32 noundef %8402, ptr noundef @.str.4)
  %8404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8405 = load i32, ptr %8404, align 4, !tbaa !5
  %8406 = call ptr @s2n_strerror_debug(i32 noundef %8405, ptr noundef @.str.4)
  %8407 = call ptr @__errno_location() #10
  %8408 = load i32, ptr %8407, align 4, !tbaa !5
  %8409 = call ptr @strerror(i32 noundef %8408) #9
  %8410 = call ptr @__errno_location() #10
  %8411 = load i32, ptr %8410, align 4, !tbaa !5
  %8412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8399, ptr noundef @.str.2, i32 noundef %8400, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 348, ptr noundef %8403, ptr noundef %8406, ptr noundef %8409, i32 noundef %8411) #9
  br label %8430

8413:                                             ; preds = %8391, %8384
  %8414 = load i32, ptr %178, align 4, !tbaa !5
  %8415 = call ptr @__errno_location() #10
  store i32 %8414, ptr %8415, align 4, !tbaa !5
  %8416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8417 = load i32, ptr @test_count, align 4, !tbaa !5
  %8418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8419 = load i32, ptr %8418, align 4, !tbaa !5
  %8420 = call ptr @s2n_strerror(i32 noundef %8419, ptr noundef @.str.4)
  %8421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8422 = load i32, ptr %8421, align 4, !tbaa !5
  %8423 = call ptr @s2n_strerror_debug(i32 noundef %8422, ptr noundef @.str.4)
  %8424 = call ptr @__errno_location() #10
  %8425 = load i32, ptr %8424, align 4, !tbaa !5
  %8426 = call ptr @strerror(i32 noundef %8425) #9
  %8427 = call ptr @__errno_location() #10
  %8428 = load i32, ptr %8427, align 4, !tbaa !5
  %8429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8416, ptr noundef @.str.5, i32 noundef %8417, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 348, ptr noundef %8420, ptr noundef %8423, ptr noundef %8426, i32 noundef %8428) #9
  br label %8430

8430:                                             ; preds = %8413, %8396
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #9
  br label %8431

8431:                                             ; preds = %8430
  br label %8432

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

8433:                                             ; No predecessors!
  br label %8434

8434:                                             ; preds = %8433
  br label %8435

8435:                                             ; preds = %8434, %8377
  br label %8436

8436:                                             ; preds = %8435
  br label %8437

8437:                                             ; preds = %8436
  br label %8438

8438:                                             ; preds = %8437
  %8439 = load i32, ptr @test_count, align 4, !tbaa !5
  %8440 = add nsw i32 %8439, 1
  store i32 %8440, ptr @test_count, align 4, !tbaa !5
  %8441 = load ptr, ptr %177, align 8, !tbaa !9
  %8442 = call zeroext i8 @s2n_connection_get_protocol_version(ptr noundef %8441)
  %8443 = zext i8 %8442 to i32
  %8444 = icmp eq i32 %8443, 33
  br i1 %8444, label %8498, label %8445

8445:                                             ; preds = %8438
  br label %8446

8446:                                             ; preds = %8445
  br label %8447

8447:                                             ; preds = %8446
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #9
  %8448 = call ptr @__errno_location() #10
  %8449 = load i32, ptr %8448, align 4, !tbaa !5
  store i32 %8449, ptr %179, align 4, !tbaa !5
  %8450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8451 = call i32 @s2n_print_stacktrace(ptr noundef %8450)
  %8452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8453 = trunc i8 %8452 to i1
  br i1 %8453, label %8454, label %8476

8454:                                             ; preds = %8447
  %8455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8456 = call i32 @fileno(ptr noundef %8455) #9
  %8457 = call i32 @isatty(i32 noundef %8456) #9
  %8458 = icmp ne i32 %8457, 0
  br i1 %8458, label %8459, label %8476

8459:                                             ; preds = %8454
  %8460 = load i32, ptr %179, align 4, !tbaa !5
  %8461 = call ptr @__errno_location() #10
  store i32 %8460, ptr %8461, align 4, !tbaa !5
  %8462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8463 = load i32, ptr @test_count, align 4, !tbaa !5
  %8464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8465 = load i32, ptr %8464, align 4, !tbaa !5
  %8466 = call ptr @s2n_strerror(i32 noundef %8465, ptr noundef @.str.4)
  %8467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8468 = load i32, ptr %8467, align 4, !tbaa !5
  %8469 = call ptr @s2n_strerror_debug(i32 noundef %8468, ptr noundef @.str.4)
  %8470 = call ptr @__errno_location() #10
  %8471 = load i32, ptr %8470, align 4, !tbaa !5
  %8472 = call ptr @strerror(i32 noundef %8471) #9
  %8473 = call ptr @__errno_location() #10
  %8474 = load i32, ptr %8473, align 4, !tbaa !5
  %8475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8462, ptr noundef @.str.2, i32 noundef %8463, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 349, ptr noundef %8466, ptr noundef %8469, ptr noundef %8472, i32 noundef %8474) #9
  br label %8493

8476:                                             ; preds = %8454, %8447
  %8477 = load i32, ptr %179, align 4, !tbaa !5
  %8478 = call ptr @__errno_location() #10
  store i32 %8477, ptr %8478, align 4, !tbaa !5
  %8479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8480 = load i32, ptr @test_count, align 4, !tbaa !5
  %8481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8482 = load i32, ptr %8481, align 4, !tbaa !5
  %8483 = call ptr @s2n_strerror(i32 noundef %8482, ptr noundef @.str.4)
  %8484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8485 = load i32, ptr %8484, align 4, !tbaa !5
  %8486 = call ptr @s2n_strerror_debug(i32 noundef %8485, ptr noundef @.str.4)
  %8487 = call ptr @__errno_location() #10
  %8488 = load i32, ptr %8487, align 4, !tbaa !5
  %8489 = call ptr @strerror(i32 noundef %8488) #9
  %8490 = call ptr @__errno_location() #10
  %8491 = load i32, ptr %8490, align 4, !tbaa !5
  %8492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8479, ptr noundef @.str.5, i32 noundef %8480, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 349, ptr noundef %8483, ptr noundef %8486, ptr noundef %8489, i32 noundef %8491) #9
  br label %8493

8493:                                             ; preds = %8476, %8459
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #9
  br label %8494

8494:                                             ; preds = %8493
  br label %8495

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

8496:                                             ; No predecessors!
  br label %8497

8497:                                             ; preds = %8496
  br label %8498

8498:                                             ; preds = %8497, %8438
  br label %8499

8499:                                             ; preds = %8498
  br label %8500

8500:                                             ; preds = %8499
  %8501 = load ptr, ptr %177, align 8, !tbaa !9
  %8502 = getelementptr inbounds %struct.s2n_connection, ptr %8501, i32 0, i32 2
  store ptr %34, ptr %8502, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #9
  store ptr null, ptr %180, align 8, !tbaa !9
  br label %8503

8503:                                             ; preds = %8500
  %8504 = load i32, ptr @test_count, align 4, !tbaa !5
  %8505 = add nsw i32 %8504, 1
  store i32 %8505, ptr @test_count, align 4, !tbaa !5
  %8506 = load ptr, ptr %177, align 8, !tbaa !9
  %8507 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %8506, ptr noundef %180)
  %8508 = icmp eq i32 %8507, -1
  br i1 %8508, label %8509, label %8562

8509:                                             ; preds = %8503
  br label %8510

8510:                                             ; preds = %8509
  br label %8511

8511:                                             ; preds = %8510
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #9
  %8512 = call ptr @__errno_location() #10
  %8513 = load i32, ptr %8512, align 4, !tbaa !5
  store i32 %8513, ptr %181, align 4, !tbaa !5
  %8514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8515 = call i32 @s2n_print_stacktrace(ptr noundef %8514)
  %8516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8517 = trunc i8 %8516 to i1
  br i1 %8517, label %8518, label %8540

8518:                                             ; preds = %8511
  %8519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8520 = call i32 @fileno(ptr noundef %8519) #9
  %8521 = call i32 @isatty(i32 noundef %8520) #9
  %8522 = icmp ne i32 %8521, 0
  br i1 %8522, label %8523, label %8540

8523:                                             ; preds = %8518
  %8524 = load i32, ptr %181, align 4, !tbaa !5
  %8525 = call ptr @__errno_location() #10
  store i32 %8524, ptr %8525, align 4, !tbaa !5
  %8526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8527 = load i32, ptr @test_count, align 4, !tbaa !5
  %8528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8529 = load i32, ptr %8528, align 4, !tbaa !5
  %8530 = call ptr @s2n_strerror(i32 noundef %8529, ptr noundef @.str.4)
  %8531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8532 = load i32, ptr %8531, align 4, !tbaa !5
  %8533 = call ptr @s2n_strerror_debug(i32 noundef %8532, ptr noundef @.str.4)
  %8534 = call ptr @__errno_location() #10
  %8535 = load i32, ptr %8534, align 4, !tbaa !5
  %8536 = call ptr @strerror(i32 noundef %8535) #9
  %8537 = call ptr @__errno_location() #10
  %8538 = load i32, ptr %8537, align 4, !tbaa !5
  %8539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8526, ptr noundef @.str.2, i32 noundef %8527, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 353, ptr noundef %8530, ptr noundef %8533, ptr noundef %8536, i32 noundef %8538) #9
  br label %8557

8540:                                             ; preds = %8518, %8511
  %8541 = load i32, ptr %181, align 4, !tbaa !5
  %8542 = call ptr @__errno_location() #10
  store i32 %8541, ptr %8542, align 4, !tbaa !5
  %8543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8544 = load i32, ptr @test_count, align 4, !tbaa !5
  %8545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8546 = load i32, ptr %8545, align 4, !tbaa !5
  %8547 = call ptr @s2n_strerror(i32 noundef %8546, ptr noundef @.str.4)
  %8548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8549 = load i32, ptr %8548, align 4, !tbaa !5
  %8550 = call ptr @s2n_strerror_debug(i32 noundef %8549, ptr noundef @.str.4)
  %8551 = call ptr @__errno_location() #10
  %8552 = load i32, ptr %8551, align 4, !tbaa !5
  %8553 = call ptr @strerror(i32 noundef %8552) #9
  %8554 = call ptr @__errno_location() #10
  %8555 = load i32, ptr %8554, align 4, !tbaa !5
  %8556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8543, ptr noundef @.str.5, i32 noundef %8544, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 353, ptr noundef %8547, ptr noundef %8550, ptr noundef %8553, i32 noundef %8555) #9
  br label %8557

8557:                                             ; preds = %8540, %8523
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #9
  br label %8558

8558:                                             ; preds = %8557
  br label %8559

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

8560:                                             ; No predecessors!
  br label %8561

8561:                                             ; preds = %8560
  br label %8562

8562:                                             ; preds = %8561, %8503
  br label %8563

8563:                                             ; preds = %8562
  br label %8564

8564:                                             ; preds = %8563
  br label %8565

8565:                                             ; preds = %8564
  %8566 = load i32, ptr @test_count, align 4, !tbaa !5
  %8567 = add nsw i32 %8566, 1
  store i32 %8567, ptr @test_count, align 4, !tbaa !5
  %8568 = load ptr, ptr %180, align 8, !tbaa !9
  %8569 = icmp eq ptr %8568, null
  br i1 %8569, label %8570, label %8623

8570:                                             ; preds = %8565
  br label %8571

8571:                                             ; preds = %8570
  br label %8572

8572:                                             ; preds = %8571
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #9
  %8573 = call ptr @__errno_location() #10
  %8574 = load i32, ptr %8573, align 4, !tbaa !5
  store i32 %8574, ptr %182, align 4, !tbaa !5
  %8575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8576 = call i32 @s2n_print_stacktrace(ptr noundef %8575)
  %8577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8578 = trunc i8 %8577 to i1
  br i1 %8578, label %8579, label %8601

8579:                                             ; preds = %8572
  %8580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8581 = call i32 @fileno(ptr noundef %8580) #9
  %8582 = call i32 @isatty(i32 noundef %8581) #9
  %8583 = icmp ne i32 %8582, 0
  br i1 %8583, label %8584, label %8601

8584:                                             ; preds = %8579
  %8585 = load i32, ptr %182, align 4, !tbaa !5
  %8586 = call ptr @__errno_location() #10
  store i32 %8585, ptr %8586, align 4, !tbaa !5
  %8587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8588 = load i32, ptr @test_count, align 4, !tbaa !5
  %8589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8590 = load i32, ptr %8589, align 4, !tbaa !5
  %8591 = call ptr @s2n_strerror(i32 noundef %8590, ptr noundef @.str.4)
  %8592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8593 = load i32, ptr %8592, align 4, !tbaa !5
  %8594 = call ptr @s2n_strerror_debug(i32 noundef %8593, ptr noundef @.str.4)
  %8595 = call ptr @__errno_location() #10
  %8596 = load i32, ptr %8595, align 4, !tbaa !5
  %8597 = call ptr @strerror(i32 noundef %8596) #9
  %8598 = call ptr @__errno_location() #10
  %8599 = load i32, ptr %8598, align 4, !tbaa !5
  %8600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8587, ptr noundef @.str.2, i32 noundef %8588, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 354, ptr noundef %8591, ptr noundef %8594, ptr noundef %8597, i32 noundef %8599) #9
  br label %8618

8601:                                             ; preds = %8579, %8572
  %8602 = load i32, ptr %182, align 4, !tbaa !5
  %8603 = call ptr @__errno_location() #10
  store i32 %8602, ptr %8603, align 4, !tbaa !5
  %8604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8605 = load i32, ptr @test_count, align 4, !tbaa !5
  %8606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8607 = load i32, ptr %8606, align 4, !tbaa !5
  %8608 = call ptr @s2n_strerror(i32 noundef %8607, ptr noundef @.str.4)
  %8609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8610 = load i32, ptr %8609, align 4, !tbaa !5
  %8611 = call ptr @s2n_strerror_debug(i32 noundef %8610, ptr noundef @.str.4)
  %8612 = call ptr @__errno_location() #10
  %8613 = load i32, ptr %8612, align 4, !tbaa !5
  %8614 = call ptr @strerror(i32 noundef %8613) #9
  %8615 = call ptr @__errno_location() #10
  %8616 = load i32, ptr %8615, align 4, !tbaa !5
  %8617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8604, ptr noundef @.str.5, i32 noundef %8605, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 354, ptr noundef %8608, ptr noundef %8611, ptr noundef %8614, i32 noundef %8616) #9
  br label %8618

8618:                                             ; preds = %8601, %8584
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #9
  br label %8619

8619:                                             ; preds = %8618
  br label %8620

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

8621:                                             ; No predecessors!
  br label %8622

8622:                                             ; preds = %8621
  br label %8623

8623:                                             ; preds = %8622, %8565
  br label %8624

8624:                                             ; preds = %8623
  br label %8625

8625:                                             ; preds = %8624
  call void @llvm.lifetime.start.p0(i64 8, ptr %183) #9
  store ptr null, ptr %183, align 8, !tbaa !9
  br label %8626

8626:                                             ; preds = %8625
  %8627 = load i32, ptr @test_count, align 4, !tbaa !5
  %8628 = add nsw i32 %8627, 1
  store i32 %8628, ptr @test_count, align 4, !tbaa !5
  %8629 = load ptr, ptr %177, align 8, !tbaa !9
  %8630 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %8629, ptr noundef %183)
  %8631 = icmp eq i32 %8630, -1
  br i1 %8631, label %8632, label %8685

8632:                                             ; preds = %8626
  br label %8633

8633:                                             ; preds = %8632
  br label %8634

8634:                                             ; preds = %8633
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #9
  %8635 = call ptr @__errno_location() #10
  %8636 = load i32, ptr %8635, align 4, !tbaa !5
  store i32 %8636, ptr %184, align 4, !tbaa !5
  %8637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8638 = call i32 @s2n_print_stacktrace(ptr noundef %8637)
  %8639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8640 = trunc i8 %8639 to i1
  br i1 %8640, label %8641, label %8663

8641:                                             ; preds = %8634
  %8642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8643 = call i32 @fileno(ptr noundef %8642) #9
  %8644 = call i32 @isatty(i32 noundef %8643) #9
  %8645 = icmp ne i32 %8644, 0
  br i1 %8645, label %8646, label %8663

8646:                                             ; preds = %8641
  %8647 = load i32, ptr %184, align 4, !tbaa !5
  %8648 = call ptr @__errno_location() #10
  store i32 %8647, ptr %8648, align 4, !tbaa !5
  %8649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8650 = load i32, ptr @test_count, align 4, !tbaa !5
  %8651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8652 = load i32, ptr %8651, align 4, !tbaa !5
  %8653 = call ptr @s2n_strerror(i32 noundef %8652, ptr noundef @.str.4)
  %8654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8655 = load i32, ptr %8654, align 4, !tbaa !5
  %8656 = call ptr @s2n_strerror_debug(i32 noundef %8655, ptr noundef @.str.4)
  %8657 = call ptr @__errno_location() #10
  %8658 = load i32, ptr %8657, align 4, !tbaa !5
  %8659 = call ptr @strerror(i32 noundef %8658) #9
  %8660 = call ptr @__errno_location() #10
  %8661 = load i32, ptr %8660, align 4, !tbaa !5
  %8662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8649, ptr noundef @.str.2, i32 noundef %8650, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 357, ptr noundef %8653, ptr noundef %8656, ptr noundef %8659, i32 noundef %8661) #9
  br label %8680

8663:                                             ; preds = %8641, %8634
  %8664 = load i32, ptr %184, align 4, !tbaa !5
  %8665 = call ptr @__errno_location() #10
  store i32 %8664, ptr %8665, align 4, !tbaa !5
  %8666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8667 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8669, ptr noundef @.str.4)
  %8671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8672 = load i32, ptr %8671, align 4, !tbaa !5
  %8673 = call ptr @s2n_strerror_debug(i32 noundef %8672, ptr noundef @.str.4)
  %8674 = call ptr @__errno_location() #10
  %8675 = load i32, ptr %8674, align 4, !tbaa !5
  %8676 = call ptr @strerror(i32 noundef %8675) #9
  %8677 = call ptr @__errno_location() #10
  %8678 = load i32, ptr %8677, align 4, !tbaa !5
  %8679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8666, ptr noundef @.str.5, i32 noundef %8667, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 357, ptr noundef %8670, ptr noundef %8673, ptr noundef %8676, i32 noundef %8678) #9
  br label %8680

8680:                                             ; preds = %8663, %8646
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #9
  br label %8681

8681:                                             ; preds = %8680
  br label %8682

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

8683:                                             ; No predecessors!
  br label %8684

8684:                                             ; preds = %8683
  br label %8685

8685:                                             ; preds = %8684, %8626
  br label %8686

8686:                                             ; preds = %8685
  br label %8687

8687:                                             ; preds = %8686
  br label %8688

8688:                                             ; preds = %8687
  %8689 = load i32, ptr @test_count, align 4, !tbaa !5
  %8690 = add nsw i32 %8689, 1
  store i32 %8690, ptr @test_count, align 4, !tbaa !5
  %8691 = load ptr, ptr %183, align 8, !tbaa !9
  %8692 = icmp eq ptr %8691, null
  br i1 %8692, label %8693, label %8746

8693:                                             ; preds = %8688
  br label %8694

8694:                                             ; preds = %8693
  br label %8695

8695:                                             ; preds = %8694
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #9
  %8696 = call ptr @__errno_location() #10
  %8697 = load i32, ptr %8696, align 4, !tbaa !5
  store i32 %8697, ptr %185, align 4, !tbaa !5
  %8698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8699 = call i32 @s2n_print_stacktrace(ptr noundef %8698)
  %8700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8701 = trunc i8 %8700 to i1
  br i1 %8701, label %8702, label %8724

8702:                                             ; preds = %8695
  %8703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8704 = call i32 @fileno(ptr noundef %8703) #9
  %8705 = call i32 @isatty(i32 noundef %8704) #9
  %8706 = icmp ne i32 %8705, 0
  br i1 %8706, label %8707, label %8724

8707:                                             ; preds = %8702
  %8708 = load i32, ptr %185, align 4, !tbaa !5
  %8709 = call ptr @__errno_location() #10
  store i32 %8708, ptr %8709, align 4, !tbaa !5
  %8710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8711 = load i32, ptr @test_count, align 4, !tbaa !5
  %8712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8713 = load i32, ptr %8712, align 4, !tbaa !5
  %8714 = call ptr @s2n_strerror(i32 noundef %8713, ptr noundef @.str.4)
  %8715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8716 = load i32, ptr %8715, align 4, !tbaa !5
  %8717 = call ptr @s2n_strerror_debug(i32 noundef %8716, ptr noundef @.str.4)
  %8718 = call ptr @__errno_location() #10
  %8719 = load i32, ptr %8718, align 4, !tbaa !5
  %8720 = call ptr @strerror(i32 noundef %8719) #9
  %8721 = call ptr @__errno_location() #10
  %8722 = load i32, ptr %8721, align 4, !tbaa !5
  %8723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8710, ptr noundef @.str.2, i32 noundef %8711, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 358, ptr noundef %8714, ptr noundef %8717, ptr noundef %8720, i32 noundef %8722) #9
  br label %8741

8724:                                             ; preds = %8702, %8695
  %8725 = load i32, ptr %185, align 4, !tbaa !5
  %8726 = call ptr @__errno_location() #10
  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() #10
  %8736 = load i32, ptr %8735, align 4, !tbaa !5
  %8737 = call ptr @strerror(i32 noundef %8736) #9
  %8738 = call ptr @__errno_location() #10
  %8739 = load i32, ptr %8738, align 4, !tbaa !5
  %8740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8727, ptr noundef @.str.5, i32 noundef %8728, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 358, ptr noundef %8731, ptr noundef %8734, ptr noundef %8737, i32 noundef %8739) #9
  br label %8741

8741:                                             ; preds = %8724, %8707
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #9
  br label %8742

8742:                                             ; preds = %8741
  br label %8743

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

8744:                                             ; No predecessors!
  br label %8745

8745:                                             ; preds = %8744
  br label %8746

8746:                                             ; preds = %8745, %8688
  br label %8747

8747:                                             ; preds = %8746
  br label %8748

8748:                                             ; preds = %8747
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #9
  store ptr null, ptr %186, align 8, !tbaa !9
  br label %8749

8749:                                             ; preds = %8748
  %8750 = load i32, ptr @test_count, align 4, !tbaa !5
  %8751 = add nsw i32 %8750, 1
  store i32 %8751, ptr @test_count, align 4, !tbaa !5
  %8752 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8752, ptr %186, align 8, !tbaa !9
  %8753 = icmp eq ptr %8752, null
  br i1 %8753, label %8754, label %8807

8754:                                             ; preds = %8749
  br label %8755

8755:                                             ; preds = %8754
  br label %8756

8756:                                             ; preds = %8755
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #9
  %8757 = call ptr @__errno_location() #10
  %8758 = load i32, ptr %8757, align 4, !tbaa !5
  store i32 %8758, ptr %187, align 4, !tbaa !5
  %8759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8760 = call i32 @s2n_print_stacktrace(ptr noundef %8759)
  %8761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8762 = trunc i8 %8761 to i1
  br i1 %8762, label %8763, label %8785

8763:                                             ; preds = %8756
  %8764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8765 = call i32 @fileno(ptr noundef %8764) #9
  %8766 = call i32 @isatty(i32 noundef %8765) #9
  %8767 = icmp ne i32 %8766, 0
  br i1 %8767, label %8768, label %8785

8768:                                             ; preds = %8763
  %8769 = load i32, ptr %187, align 4, !tbaa !5
  %8770 = call ptr @__errno_location() #10
  store i32 %8769, ptr %8770, align 4, !tbaa !5
  %8771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8772 = load i32, ptr @test_count, align 4, !tbaa !5
  %8773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8774 = load i32, ptr %8773, align 4, !tbaa !5
  %8775 = call ptr @s2n_strerror(i32 noundef %8774, ptr noundef @.str.4)
  %8776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8777 = load i32, ptr %8776, align 4, !tbaa !5
  %8778 = call ptr @s2n_strerror_debug(i32 noundef %8777, ptr noundef @.str.4)
  %8779 = call ptr @__errno_location() #10
  %8780 = load i32, ptr %8779, align 4, !tbaa !5
  %8781 = call ptr @strerror(i32 noundef %8780) #9
  %8782 = call ptr @__errno_location() #10
  %8783 = load i32, ptr %8782, align 4, !tbaa !5
  %8784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8771, ptr noundef @.str.2, i32 noundef %8772, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 361, ptr noundef %8775, ptr noundef %8778, ptr noundef %8781, i32 noundef %8783) #9
  br label %8802

8785:                                             ; preds = %8763, %8756
  %8786 = load i32, ptr %187, align 4, !tbaa !5
  %8787 = call ptr @__errno_location() #10
  store i32 %8786, ptr %8787, align 4, !tbaa !5
  %8788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8789 = load i32, ptr @test_count, align 4, !tbaa !5
  %8790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8791 = load i32, ptr %8790, align 4, !tbaa !5
  %8792 = call ptr @s2n_strerror(i32 noundef %8791, ptr noundef @.str.4)
  %8793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8794 = load i32, ptr %8793, align 4, !tbaa !5
  %8795 = call ptr @s2n_strerror_debug(i32 noundef %8794, ptr noundef @.str.4)
  %8796 = call ptr @__errno_location() #10
  %8797 = load i32, ptr %8796, align 4, !tbaa !5
  %8798 = call ptr @strerror(i32 noundef %8797) #9
  %8799 = call ptr @__errno_location() #10
  %8800 = load i32, ptr %8799, align 4, !tbaa !5
  %8801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8788, ptr noundef @.str.5, i32 noundef %8789, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 361, ptr noundef %8792, ptr noundef %8795, ptr noundef %8798, i32 noundef %8800) #9
  br label %8802

8802:                                             ; preds = %8785, %8768
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #9
  br label %8803

8803:                                             ; preds = %8802
  br label %8804

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

8805:                                             ; No predecessors!
  br label %8806

8806:                                             ; preds = %8805
  br label %8807

8807:                                             ; preds = %8806, %8749
  br label %8808

8808:                                             ; preds = %8807
  br label %8809

8809:                                             ; preds = %8808
  %8810 = load ptr, ptr %186, align 8, !tbaa !9
  %8811 = getelementptr inbounds %struct.s2n_connection, ptr %8810, i32 0, i32 2
  store ptr %34, ptr %8811, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 40, ptr %188) #9
  call void @llvm.memset.p0.i64(ptr align 8 %188, i8 0, i64 40, i1 false)
  br label %8812

8812:                                             ; preds = %8809
  %8813 = load i32, ptr @test_count, align 4, !tbaa !5
  %8814 = add nsw i32 %8813, 1
  store i32 %8814, ptr @test_count, align 4, !tbaa !5
  %8815 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %188, i32 noundef 0)
  %8816 = icmp eq i32 %8815, -1
  br i1 %8816, label %8817, label %8870

8817:                                             ; preds = %8812
  br label %8818

8818:                                             ; preds = %8817
  br label %8819

8819:                                             ; preds = %8818
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #9
  %8820 = call ptr @__errno_location() #10
  %8821 = load i32, ptr %8820, align 4, !tbaa !5
  store i32 %8821, ptr %189, align 4, !tbaa !5
  %8822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8823 = call i32 @s2n_print_stacktrace(ptr noundef %8822)
  %8824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8825 = trunc i8 %8824 to i1
  br i1 %8825, label %8826, label %8848

8826:                                             ; preds = %8819
  %8827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8828 = call i32 @fileno(ptr noundef %8827) #9
  %8829 = call i32 @isatty(i32 noundef %8828) #9
  %8830 = icmp ne i32 %8829, 0
  br i1 %8830, label %8831, label %8848

8831:                                             ; preds = %8826
  %8832 = load i32, ptr %189, align 4, !tbaa !5
  %8833 = call ptr @__errno_location() #10
  store i32 %8832, ptr %8833, align 4, !tbaa !5
  %8834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8835 = load i32, ptr @test_count, align 4, !tbaa !5
  %8836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8837 = load i32, ptr %8836, align 4, !tbaa !5
  %8838 = call ptr @s2n_strerror(i32 noundef %8837, ptr noundef @.str.4)
  %8839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8840 = load i32, ptr %8839, align 4, !tbaa !5
  %8841 = call ptr @s2n_strerror_debug(i32 noundef %8840, ptr noundef @.str.4)
  %8842 = call ptr @__errno_location() #10
  %8843 = load i32, ptr %8842, align 4, !tbaa !5
  %8844 = call ptr @strerror(i32 noundef %8843) #9
  %8845 = call ptr @__errno_location() #10
  %8846 = load i32, ptr %8845, align 4, !tbaa !5
  %8847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8834, ptr noundef @.str.2, i32 noundef %8835, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 367, ptr noundef %8838, ptr noundef %8841, ptr noundef %8844, i32 noundef %8846) #9
  br label %8865

8848:                                             ; preds = %8826, %8819
  %8849 = load i32, ptr %189, align 4, !tbaa !5
  %8850 = call ptr @__errno_location() #10
  store i32 %8849, ptr %8850, align 4, !tbaa !5
  %8851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8852 = load i32, ptr @test_count, align 4, !tbaa !5
  %8853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8854 = load i32, ptr %8853, align 4, !tbaa !5
  %8855 = call ptr @s2n_strerror(i32 noundef %8854, ptr noundef @.str.4)
  %8856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8857 = load i32, ptr %8856, align 4, !tbaa !5
  %8858 = call ptr @s2n_strerror_debug(i32 noundef %8857, ptr noundef @.str.4)
  %8859 = call ptr @__errno_location() #10
  %8860 = load i32, ptr %8859, align 4, !tbaa !5
  %8861 = call ptr @strerror(i32 noundef %8860) #9
  %8862 = call ptr @__errno_location() #10
  %8863 = load i32, ptr %8862, align 4, !tbaa !5
  %8864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8851, ptr noundef @.str.5, i32 noundef %8852, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 367, ptr noundef %8855, ptr noundef %8858, ptr noundef %8861, i32 noundef %8863) #9
  br label %8865

8865:                                             ; preds = %8848, %8831
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #9
  br label %8866

8866:                                             ; preds = %8865
  br label %8867

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

8868:                                             ; No predecessors!
  br label %8869

8869:                                             ; preds = %8868
  br label %8870

8870:                                             ; preds = %8869, %8812
  br label %8871

8871:                                             ; preds = %8870
  br label %8872

8872:                                             ; preds = %8871
  call void @llvm.lifetime.start.p0(i64 16, ptr %190) #9
  call void @llvm.memset.p0.i64(ptr align 8 %190, i8 0, i64 16, i1 false)
  br label %8873

8873:                                             ; preds = %8872
  %8874 = load i32, ptr @test_count, align 4, !tbaa !5
  %8875 = add nsw i32 %8874, 1
  store i32 %8875, ptr @test_count, align 4, !tbaa !5
  %8876 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %188, ptr noundef %190)
  %8877 = icmp eq i32 %8876, -1
  br i1 %8877, label %8878, label %8931

8878:                                             ; preds = %8873
  br label %8879

8879:                                             ; preds = %8878
  br label %8880

8880:                                             ; preds = %8879
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #9
  %8881 = call ptr @__errno_location() #10
  %8882 = load i32, ptr %8881, align 4, !tbaa !5
  store i32 %8882, ptr %191, align 4, !tbaa !5
  %8883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8884 = call i32 @s2n_print_stacktrace(ptr noundef %8883)
  %8885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8886 = trunc i8 %8885 to i1
  br i1 %8886, label %8887, label %8909

8887:                                             ; preds = %8880
  %8888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8889 = call i32 @fileno(ptr noundef %8888) #9
  %8890 = call i32 @isatty(i32 noundef %8889) #9
  %8891 = icmp ne i32 %8890, 0
  br i1 %8891, label %8892, label %8909

8892:                                             ; preds = %8887
  %8893 = load i32, ptr %191, align 4, !tbaa !5
  %8894 = call ptr @__errno_location() #10
  store i32 %8893, ptr %8894, align 4, !tbaa !5
  %8895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8896 = load i32, ptr @test_count, align 4, !tbaa !5
  %8897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8898 = load i32, ptr %8897, align 4, !tbaa !5
  %8899 = call ptr @s2n_strerror(i32 noundef %8898, ptr noundef @.str.4)
  %8900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8901 = load i32, ptr %8900, align 4, !tbaa !5
  %8902 = call ptr @s2n_strerror_debug(i32 noundef %8901, ptr noundef @.str.4)
  %8903 = call ptr @__errno_location() #10
  %8904 = load i32, ptr %8903, align 4, !tbaa !5
  %8905 = call ptr @strerror(i32 noundef %8904) #9
  %8906 = call ptr @__errno_location() #10
  %8907 = load i32, ptr %8906, align 4, !tbaa !5
  %8908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8895, ptr noundef @.str.2, i32 noundef %8896, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 369, ptr noundef %8899, ptr noundef %8902, ptr noundef %8905, i32 noundef %8907) #9
  br label %8926

8909:                                             ; preds = %8887, %8880
  %8910 = load i32, ptr %191, align 4, !tbaa !5
  %8911 = call ptr @__errno_location() #10
  store i32 %8910, ptr %8911, align 4, !tbaa !5
  %8912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8913 = load i32, ptr @test_count, align 4, !tbaa !5
  %8914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8915 = load i32, ptr %8914, align 4, !tbaa !5
  %8916 = call ptr @s2n_strerror(i32 noundef %8915, ptr noundef @.str.4)
  %8917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8918 = load i32, ptr %8917, align 4, !tbaa !5
  %8919 = call ptr @s2n_strerror_debug(i32 noundef %8918, ptr noundef @.str.4)
  %8920 = call ptr @__errno_location() #10
  %8921 = load i32, ptr %8920, align 4, !tbaa !5
  %8922 = call ptr @strerror(i32 noundef %8921) #9
  %8923 = call ptr @__errno_location() #10
  %8924 = load i32, ptr %8923, align 4, !tbaa !5
  %8925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8912, ptr noundef @.str.5, i32 noundef %8913, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 369, ptr noundef %8916, ptr noundef %8919, ptr noundef %8922, i32 noundef %8924) #9
  br label %8926

8926:                                             ; preds = %8909, %8892
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #9
  br label %8927

8927:                                             ; preds = %8926
  br label %8928

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

8929:                                             ; No predecessors!
  br label %8930

8930:                                             ; preds = %8929
  br label %8931

8931:                                             ; preds = %8930, %8873
  br label %8932

8932:                                             ; preds = %8931
  br label %8933

8933:                                             ; preds = %8932
  br label %8934

8934:                                             ; preds = %8933
  %8935 = load i32, ptr @test_count, align 4, !tbaa !5
  %8936 = add nsw i32 %8935, 1
  store i32 %8936, ptr @test_count, align 4, !tbaa !5
  %8937 = load ptr, ptr %183, align 8, !tbaa !9
  %8938 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %8937, i32 0, i32 3
  %8939 = load ptr, ptr %8938, align 8, !tbaa !35
  %8940 = getelementptr inbounds ptr, ptr %8939, i64 0
  %8941 = load ptr, ptr %8940, align 8, !tbaa !9
  %8942 = getelementptr inbounds %struct.s2n_kem_group, ptr %8941, i32 0, i32 1
  %8943 = load i16, ptr %8942, align 8, !tbaa !68
  %8944 = call i32 @s2n_stuffer_write_uint16(ptr noundef %188, i16 noundef zeroext %8943)
  %8945 = icmp eq i32 %8944, -1
  br i1 %8945, label %8946, label %8999

8946:                                             ; preds = %8934
  br label %8947

8947:                                             ; preds = %8946
  br label %8948

8948:                                             ; preds = %8947
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #9
  %8949 = call ptr @__errno_location() #10
  %8950 = load i32, ptr %8949, align 4, !tbaa !5
  store i32 %8950, ptr %192, align 4, !tbaa !5
  %8951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8952 = call i32 @s2n_print_stacktrace(ptr noundef %8951)
  %8953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8954 = trunc i8 %8953 to i1
  br i1 %8954, label %8955, label %8977

8955:                                             ; preds = %8948
  %8956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8957 = call i32 @fileno(ptr noundef %8956) #9
  %8958 = call i32 @isatty(i32 noundef %8957) #9
  %8959 = icmp ne i32 %8958, 0
  br i1 %8959, label %8960, label %8977

8960:                                             ; preds = %8955
  %8961 = load i32, ptr %192, align 4, !tbaa !5
  %8962 = call ptr @__errno_location() #10
  store i32 %8961, ptr %8962, align 4, !tbaa !5
  %8963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8964 = load i32, ptr @test_count, align 4, !tbaa !5
  %8965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8966 = load i32, ptr %8965, align 4, !tbaa !5
  %8967 = call ptr @s2n_strerror(i32 noundef %8966, ptr noundef @.str.4)
  %8968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8969 = load i32, ptr %8968, align 4, !tbaa !5
  %8970 = call ptr @s2n_strerror_debug(i32 noundef %8969, ptr noundef @.str.4)
  %8971 = call ptr @__errno_location() #10
  %8972 = load i32, ptr %8971, align 4, !tbaa !5
  %8973 = call ptr @strerror(i32 noundef %8972) #9
  %8974 = call ptr @__errno_location() #10
  %8975 = load i32, ptr %8974, align 4, !tbaa !5
  %8976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8963, ptr noundef @.str.2, i32 noundef %8964, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 370, ptr noundef %8967, ptr noundef %8970, ptr noundef %8973, i32 noundef %8975) #9
  br label %8994

8977:                                             ; preds = %8955, %8948
  %8978 = load i32, ptr %192, align 4, !tbaa !5
  %8979 = call ptr @__errno_location() #10
  store i32 %8978, ptr %8979, align 4, !tbaa !5
  %8980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8981 = load i32, ptr @test_count, align 4, !tbaa !5
  %8982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8983 = load i32, ptr %8982, align 4, !tbaa !5
  %8984 = call ptr @s2n_strerror(i32 noundef %8983, ptr noundef @.str.4)
  %8985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8986 = load i32, ptr %8985, align 4, !tbaa !5
  %8987 = call ptr @s2n_strerror_debug(i32 noundef %8986, ptr noundef @.str.4)
  %8988 = call ptr @__errno_location() #10
  %8989 = load i32, ptr %8988, align 4, !tbaa !5
  %8990 = call ptr @strerror(i32 noundef %8989) #9
  %8991 = call ptr @__errno_location() #10
  %8992 = load i32, ptr %8991, align 4, !tbaa !5
  %8993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8980, ptr noundef @.str.5, i32 noundef %8981, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 370, ptr noundef %8984, ptr noundef %8987, ptr noundef %8990, i32 noundef %8992) #9
  br label %8994

8994:                                             ; preds = %8977, %8960
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #9
  br label %8995

8995:                                             ; preds = %8994
  br label %8996

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

8997:                                             ; No predecessors!
  br label %8998

8998:                                             ; preds = %8997
  br label %8999

8999:                                             ; preds = %8998, %8934
  br label %9000

9000:                                             ; preds = %8999
  br label %9001

9001:                                             ; preds = %9000
  br label %9002

9002:                                             ; preds = %9001
  %9003 = load i32, ptr @test_count, align 4, !tbaa !5
  %9004 = add nsw i32 %9003, 1
  store i32 %9004, ptr @test_count, align 4, !tbaa !5
  %9005 = load ptr, ptr %180, align 8, !tbaa !9
  %9006 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %9005, i32 0, i32 1
  %9007 = load ptr, ptr %9006, align 8, !tbaa !28
  %9008 = getelementptr inbounds ptr, ptr %9007, i64 0
  %9009 = load ptr, ptr %9008, align 8, !tbaa !9
  %9010 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %9009, i32 0, i32 0
  %9011 = load i16, ptr %9010, align 8, !tbaa !29
  %9012 = call i32 @s2n_stuffer_write_uint16(ptr noundef %188, i16 noundef zeroext %9011)
  %9013 = icmp eq i32 %9012, -1
  br i1 %9013, label %9014, label %9067

9014:                                             ; preds = %9002
  br label %9015

9015:                                             ; preds = %9014
  br label %9016

9016:                                             ; preds = %9015
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #9
  %9017 = call ptr @__errno_location() #10
  %9018 = load i32, ptr %9017, align 4, !tbaa !5
  store i32 %9018, ptr %193, align 4, !tbaa !5
  %9019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9020 = call i32 @s2n_print_stacktrace(ptr noundef %9019)
  %9021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9022 = trunc i8 %9021 to i1
  br i1 %9022, label %9023, label %9045

9023:                                             ; preds = %9016
  %9024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9025 = call i32 @fileno(ptr noundef %9024) #9
  %9026 = call i32 @isatty(i32 noundef %9025) #9
  %9027 = icmp ne i32 %9026, 0
  br i1 %9027, label %9028, label %9045

9028:                                             ; preds = %9023
  %9029 = load i32, ptr %193, align 4, !tbaa !5
  %9030 = call ptr @__errno_location() #10
  store i32 %9029, ptr %9030, align 4, !tbaa !5
  %9031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9032 = load i32, ptr @test_count, align 4, !tbaa !5
  %9033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9034 = load i32, ptr %9033, align 4, !tbaa !5
  %9035 = call ptr @s2n_strerror(i32 noundef %9034, ptr noundef @.str.4)
  %9036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9037 = load i32, ptr %9036, align 4, !tbaa !5
  %9038 = call ptr @s2n_strerror_debug(i32 noundef %9037, ptr noundef @.str.4)
  %9039 = call ptr @__errno_location() #10
  %9040 = load i32, ptr %9039, align 4, !tbaa !5
  %9041 = call ptr @strerror(i32 noundef %9040) #9
  %9042 = call ptr @__errno_location() #10
  %9043 = load i32, ptr %9042, align 4, !tbaa !5
  %9044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9031, ptr noundef @.str.2, i32 noundef %9032, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 371, ptr noundef %9035, ptr noundef %9038, ptr noundef %9041, i32 noundef %9043) #9
  br label %9062

9045:                                             ; preds = %9023, %9016
  %9046 = load i32, ptr %193, align 4, !tbaa !5
  %9047 = call ptr @__errno_location() #10
  store i32 %9046, ptr %9047, align 4, !tbaa !5
  %9048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9049 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9051, ptr noundef @.str.4)
  %9053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9054 = load i32, ptr %9053, align 4, !tbaa !5
  %9055 = call ptr @s2n_strerror_debug(i32 noundef %9054, ptr noundef @.str.4)
  %9056 = call ptr @__errno_location() #10
  %9057 = load i32, ptr %9056, align 4, !tbaa !5
  %9058 = call ptr @strerror(i32 noundef %9057) #9
  %9059 = call ptr @__errno_location() #10
  %9060 = load i32, ptr %9059, align 4, !tbaa !5
  %9061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9048, ptr noundef @.str.5, i32 noundef %9049, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 371, ptr noundef %9052, ptr noundef %9055, ptr noundef %9058, i32 noundef %9060) #9
  br label %9062

9062:                                             ; preds = %9045, %9028
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #9
  br label %9063

9063:                                             ; preds = %9062
  br label %9064

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

9065:                                             ; No predecessors!
  br label %9066

9066:                                             ; preds = %9065
  br label %9067

9067:                                             ; preds = %9066, %9002
  br label %9068

9068:                                             ; preds = %9067
  br label %9069

9069:                                             ; preds = %9068
  br label %9070

9070:                                             ; preds = %9069
  %9071 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %190)
  %9072 = icmp sgt i32 %9071, -1
  br i1 %9072, label %9074, label %9073

9073:                                             ; preds = %9070
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %88, align 4
  br label %9793

9074:                                             ; preds = %9070
  br label %9075

9075:                                             ; preds = %9074
  br label %9076

9076:                                             ; preds = %9075
  br label %9077

9077:                                             ; preds = %9076
  %9078 = load i32, ptr @test_count, align 4, !tbaa !5
  %9079 = add nsw i32 %9078, 1
  store i32 %9079, ptr @test_count, align 4, !tbaa !5
  %9080 = load ptr, ptr %186, align 8, !tbaa !9
  %9081 = getelementptr inbounds %struct.s2n_connection, ptr %9080, i32 0, i32 31
  %9082 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9081, i32 0, i32 1
  %9083 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %9082, i32 0, i32 0
  %9084 = load ptr, ptr %9083, align 8, !tbaa !73
  %9085 = icmp eq ptr %9084, null
  br i1 %9085, label %9139, label %9086

9086:                                             ; preds = %9077
  br label %9087

9087:                                             ; preds = %9086
  br label %9088

9088:                                             ; preds = %9087
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #9
  %9089 = call ptr @__errno_location() #10
  %9090 = load i32, ptr %9089, align 4, !tbaa !5
  store i32 %9090, ptr %194, align 4, !tbaa !5
  %9091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9092 = call i32 @s2n_print_stacktrace(ptr noundef %9091)
  %9093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9094 = trunc i8 %9093 to i1
  br i1 %9094, label %9095, label %9117

9095:                                             ; preds = %9088
  %9096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9097 = call i32 @fileno(ptr noundef %9096) #9
  %9098 = call i32 @isatty(i32 noundef %9097) #9
  %9099 = icmp ne i32 %9098, 0
  br i1 %9099, label %9100, label %9117

9100:                                             ; preds = %9095
  %9101 = load i32, ptr %194, align 4, !tbaa !5
  %9102 = call ptr @__errno_location() #10
  store i32 %9101, ptr %9102, align 4, !tbaa !5
  %9103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9104 = load i32, ptr @test_count, align 4, !tbaa !5
  %9105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9106 = load i32, ptr %9105, align 4, !tbaa !5
  %9107 = call ptr @s2n_strerror(i32 noundef %9106, ptr noundef @.str.4)
  %9108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9109 = load i32, ptr %9108, align 4, !tbaa !5
  %9110 = call ptr @s2n_strerror_debug(i32 noundef %9109, ptr noundef @.str.4)
  %9111 = call ptr @__errno_location() #10
  %9112 = load i32, ptr %9111, align 4, !tbaa !5
  %9113 = call ptr @strerror(i32 noundef %9112) #9
  %9114 = call ptr @__errno_location() #10
  %9115 = load i32, ptr %9114, align 4, !tbaa !5
  %9116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9103, ptr noundef @.str.2, i32 noundef %9104, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 374, ptr noundef %9107, ptr noundef %9110, ptr noundef %9113, i32 noundef %9115) #9
  br label %9134

9117:                                             ; preds = %9095, %9088
  %9118 = load i32, ptr %194, align 4, !tbaa !5
  %9119 = call ptr @__errno_location() #10
  store i32 %9118, ptr %9119, align 4, !tbaa !5
  %9120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9121 = load i32, ptr @test_count, align 4, !tbaa !5
  %9122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9123 = load i32, ptr %9122, align 4, !tbaa !5
  %9124 = call ptr @s2n_strerror(i32 noundef %9123, ptr noundef @.str.4)
  %9125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9126 = load i32, ptr %9125, align 4, !tbaa !5
  %9127 = call ptr @s2n_strerror_debug(i32 noundef %9126, ptr noundef @.str.4)
  %9128 = call ptr @__errno_location() #10
  %9129 = load i32, ptr %9128, align 4, !tbaa !5
  %9130 = call ptr @strerror(i32 noundef %9129) #9
  %9131 = call ptr @__errno_location() #10
  %9132 = load i32, ptr %9131, align 4, !tbaa !5
  %9133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9120, ptr noundef @.str.5, i32 noundef %9121, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 374, ptr noundef %9124, ptr noundef %9127, ptr noundef %9130, i32 noundef %9132) #9
  br label %9134

9134:                                             ; preds = %9117, %9100
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #9
  br label %9135

9135:                                             ; preds = %9134
  br label %9136

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

9137:                                             ; No predecessors!
  br label %9138

9138:                                             ; preds = %9137
  br label %9139

9139:                                             ; preds = %9138, %9077
  br label %9140

9140:                                             ; preds = %9139
  br label %9141

9141:                                             ; preds = %9140
  br label %9142

9142:                                             ; preds = %9141
  %9143 = load i32, ptr @test_count, align 4, !tbaa !5
  %9144 = add nsw i32 %9143, 1
  store i32 %9144, ptr @test_count, align 4, !tbaa !5
  %9145 = load ptr, ptr %186, align 8, !tbaa !9
  %9146 = getelementptr inbounds %struct.s2n_connection, ptr %9145, i32 0, i32 31
  %9147 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9146, i32 0, i32 4
  %9148 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %9147, i32 0, i32 0
  %9149 = load ptr, ptr %9148, align 8, !tbaa !74
  %9150 = icmp eq ptr %9149, null
  br i1 %9150, label %9204, label %9151

9151:                                             ; preds = %9142
  br label %9152

9152:                                             ; preds = %9151
  br label %9153

9153:                                             ; preds = %9152
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #9
  %9154 = call ptr @__errno_location() #10
  %9155 = load i32, ptr %9154, align 4, !tbaa !5
  store i32 %9155, ptr %195, align 4, !tbaa !5
  %9156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9157 = call i32 @s2n_print_stacktrace(ptr noundef %9156)
  %9158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9159 = trunc i8 %9158 to i1
  br i1 %9159, label %9160, label %9182

9160:                                             ; preds = %9153
  %9161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9162 = call i32 @fileno(ptr noundef %9161) #9
  %9163 = call i32 @isatty(i32 noundef %9162) #9
  %9164 = icmp ne i32 %9163, 0
  br i1 %9164, label %9165, label %9182

9165:                                             ; preds = %9160
  %9166 = load i32, ptr %195, align 4, !tbaa !5
  %9167 = call ptr @__errno_location() #10
  store i32 %9166, ptr %9167, align 4, !tbaa !5
  %9168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9169 = load i32, ptr @test_count, align 4, !tbaa !5
  %9170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9171 = load i32, ptr %9170, align 4, !tbaa !5
  %9172 = call ptr @s2n_strerror(i32 noundef %9171, ptr noundef @.str.4)
  %9173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9174 = load i32, ptr %9173, align 4, !tbaa !5
  %9175 = call ptr @s2n_strerror_debug(i32 noundef %9174, ptr noundef @.str.4)
  %9176 = call ptr @__errno_location() #10
  %9177 = load i32, ptr %9176, align 4, !tbaa !5
  %9178 = call ptr @strerror(i32 noundef %9177) #9
  %9179 = call ptr @__errno_location() #10
  %9180 = load i32, ptr %9179, align 4, !tbaa !5
  %9181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9168, ptr noundef @.str.2, i32 noundef %9169, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 375, ptr noundef %9172, ptr noundef %9175, ptr noundef %9178, i32 noundef %9180) #9
  br label %9199

9182:                                             ; preds = %9160, %9153
  %9183 = load i32, ptr %195, align 4, !tbaa !5
  %9184 = call ptr @__errno_location() #10
  store i32 %9183, ptr %9184, align 4, !tbaa !5
  %9185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9186 = load i32, ptr @test_count, align 4, !tbaa !5
  %9187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9188 = load i32, ptr %9187, align 4, !tbaa !5
  %9189 = call ptr @s2n_strerror(i32 noundef %9188, ptr noundef @.str.4)
  %9190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9191 = load i32, ptr %9190, align 4, !tbaa !5
  %9192 = call ptr @s2n_strerror_debug(i32 noundef %9191, ptr noundef @.str.4)
  %9193 = call ptr @__errno_location() #10
  %9194 = load i32, ptr %9193, align 4, !tbaa !5
  %9195 = call ptr @strerror(i32 noundef %9194) #9
  %9196 = call ptr @__errno_location() #10
  %9197 = load i32, ptr %9196, align 4, !tbaa !5
  %9198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9185, ptr noundef @.str.5, i32 noundef %9186, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 375, ptr noundef %9189, ptr noundef %9192, ptr noundef %9195, i32 noundef %9197) #9
  br label %9199

9199:                                             ; preds = %9182, %9165
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #9
  br label %9200

9200:                                             ; preds = %9199
  br label %9201

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

9202:                                             ; No predecessors!
  br label %9203

9203:                                             ; preds = %9202
  br label %9204

9204:                                             ; preds = %9203, %9142
  br label %9205

9205:                                             ; preds = %9204
  br label %9206

9206:                                             ; preds = %9205
  br label %9207

9207:                                             ; preds = %9206
  %9208 = load i32, ptr @test_count, align 4, !tbaa !5
  %9209 = add nsw i32 %9208, 1
  store i32 %9209, ptr @test_count, align 4, !tbaa !5
  %9210 = load ptr, ptr %186, align 8, !tbaa !9
  %9211 = getelementptr inbounds %struct.s2n_connection, ptr %9210, i32 0, i32 31
  %9212 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9211, i32 0, i32 4
  %9213 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %9212, i32 0, i32 2
  %9214 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %9213, i32 0, i32 0
  %9215 = load ptr, ptr %9214, align 8, !tbaa !75
  %9216 = icmp eq ptr %9215, null
  br i1 %9216, label %9270, label %9217

9217:                                             ; preds = %9207
  br label %9218

9218:                                             ; preds = %9217
  br label %9219

9219:                                             ; preds = %9218
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #9
  %9220 = call ptr @__errno_location() #10
  %9221 = load i32, ptr %9220, align 4, !tbaa !5
  store i32 %9221, ptr %196, align 4, !tbaa !5
  %9222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9223 = call i32 @s2n_print_stacktrace(ptr noundef %9222)
  %9224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9225 = trunc i8 %9224 to i1
  br i1 %9225, label %9226, label %9248

9226:                                             ; preds = %9219
  %9227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9228 = call i32 @fileno(ptr noundef %9227) #9
  %9229 = call i32 @isatty(i32 noundef %9228) #9
  %9230 = icmp ne i32 %9229, 0
  br i1 %9230, label %9231, label %9248

9231:                                             ; preds = %9226
  %9232 = load i32, ptr %196, align 4, !tbaa !5
  %9233 = call ptr @__errno_location() #10
  store i32 %9232, ptr %9233, align 4, !tbaa !5
  %9234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9235 = load i32, ptr @test_count, align 4, !tbaa !5
  %9236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9237 = load i32, ptr %9236, align 4, !tbaa !5
  %9238 = call ptr @s2n_strerror(i32 noundef %9237, ptr noundef @.str.4)
  %9239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9240 = load i32, ptr %9239, align 4, !tbaa !5
  %9241 = call ptr @s2n_strerror_debug(i32 noundef %9240, ptr noundef @.str.4)
  %9242 = call ptr @__errno_location() #10
  %9243 = load i32, ptr %9242, align 4, !tbaa !5
  %9244 = call ptr @strerror(i32 noundef %9243) #9
  %9245 = call ptr @__errno_location() #10
  %9246 = load i32, ptr %9245, align 4, !tbaa !5
  %9247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9234, ptr noundef @.str.2, i32 noundef %9235, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 376, ptr noundef %9238, ptr noundef %9241, ptr noundef %9244, i32 noundef %9246) #9
  br label %9265

9248:                                             ; preds = %9226, %9219
  %9249 = load i32, ptr %196, align 4, !tbaa !5
  %9250 = call ptr @__errno_location() #10
  store i32 %9249, ptr %9250, align 4, !tbaa !5
  %9251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9252 = load i32, ptr @test_count, align 4, !tbaa !5
  %9253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9254 = load i32, ptr %9253, align 4, !tbaa !5
  %9255 = call ptr @s2n_strerror(i32 noundef %9254, ptr noundef @.str.4)
  %9256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9257 = load i32, ptr %9256, align 4, !tbaa !5
  %9258 = call ptr @s2n_strerror_debug(i32 noundef %9257, ptr noundef @.str.4)
  %9259 = call ptr @__errno_location() #10
  %9260 = load i32, ptr %9259, align 4, !tbaa !5
  %9261 = call ptr @strerror(i32 noundef %9260) #9
  %9262 = call ptr @__errno_location() #10
  %9263 = load i32, ptr %9262, align 4, !tbaa !5
  %9264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9251, ptr noundef @.str.5, i32 noundef %9252, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 376, ptr noundef %9255, ptr noundef %9258, ptr noundef %9261, i32 noundef %9263) #9
  br label %9265

9265:                                             ; preds = %9248, %9231
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #9
  br label %9266

9266:                                             ; preds = %9265
  br label %9267

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

9268:                                             ; No predecessors!
  br label %9269

9269:                                             ; preds = %9268
  br label %9270

9270:                                             ; preds = %9269, %9207
  br label %9271

9271:                                             ; preds = %9270
  br label %9272

9272:                                             ; preds = %9271
  br label %9273

9273:                                             ; preds = %9272
  %9274 = load i32, ptr @test_count, align 4, !tbaa !5
  %9275 = add nsw i32 %9274, 1
  store i32 %9275, ptr @test_count, align 4, !tbaa !5
  %9276 = load ptr, ptr %186, align 8, !tbaa !9
  %9277 = getelementptr inbounds %struct.s2n_connection, ptr %9276, i32 0, i32 31
  %9278 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9277, i32 0, i32 4
  %9279 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %9278, i32 0, i32 1
  %9280 = getelementptr inbounds %struct.s2n_kem_params, ptr %9279, i32 0, i32 0
  %9281 = load ptr, ptr %9280, align 8, !tbaa !76
  %9282 = icmp eq ptr %9281, null
  br i1 %9282, label %9336, label %9283

9283:                                             ; preds = %9273
  br label %9284

9284:                                             ; preds = %9283
  br label %9285

9285:                                             ; preds = %9284
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #9
  %9286 = call ptr @__errno_location() #10
  %9287 = load i32, ptr %9286, align 4, !tbaa !5
  store i32 %9287, ptr %197, align 4, !tbaa !5
  %9288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9289 = call i32 @s2n_print_stacktrace(ptr noundef %9288)
  %9290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9291 = trunc i8 %9290 to i1
  br i1 %9291, label %9292, label %9314

9292:                                             ; preds = %9285
  %9293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9294 = call i32 @fileno(ptr noundef %9293) #9
  %9295 = call i32 @isatty(i32 noundef %9294) #9
  %9296 = icmp ne i32 %9295, 0
  br i1 %9296, label %9297, label %9314

9297:                                             ; preds = %9292
  %9298 = load i32, ptr %197, align 4, !tbaa !5
  %9299 = call ptr @__errno_location() #10
  store i32 %9298, ptr %9299, align 4, !tbaa !5
  %9300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9301 = load i32, ptr @test_count, align 4, !tbaa !5
  %9302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9303 = load i32, ptr %9302, align 4, !tbaa !5
  %9304 = call ptr @s2n_strerror(i32 noundef %9303, ptr noundef @.str.4)
  %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_debug(i32 noundef %9306, ptr noundef @.str.4)
  %9308 = call ptr @__errno_location() #10
  %9309 = load i32, ptr %9308, align 4, !tbaa !5
  %9310 = call ptr @strerror(i32 noundef %9309) #9
  %9311 = call ptr @__errno_location() #10
  %9312 = load i32, ptr %9311, align 4, !tbaa !5
  %9313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9300, ptr noundef @.str.2, i32 noundef %9301, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 377, ptr noundef %9304, ptr noundef %9307, ptr noundef %9310, i32 noundef %9312) #9
  br label %9331

9314:                                             ; preds = %9292, %9285
  %9315 = load i32, ptr %197, align 4, !tbaa !5
  %9316 = call ptr @__errno_location() #10
  store i32 %9315, ptr %9316, align 4, !tbaa !5
  %9317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9318 = load i32, ptr @test_count, align 4, !tbaa !5
  %9319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9320 = load i32, ptr %9319, align 4, !tbaa !5
  %9321 = call ptr @s2n_strerror(i32 noundef %9320, ptr noundef @.str.4)
  %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_debug(i32 noundef %9323, ptr noundef @.str.4)
  %9325 = call ptr @__errno_location() #10
  %9326 = load i32, ptr %9325, align 4, !tbaa !5
  %9327 = call ptr @strerror(i32 noundef %9326) #9
  %9328 = call ptr @__errno_location() #10
  %9329 = load i32, ptr %9328, align 4, !tbaa !5
  %9330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9317, ptr noundef @.str.5, i32 noundef %9318, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 377, ptr noundef %9321, ptr noundef %9324, ptr noundef %9327, i32 noundef %9329) #9
  br label %9331

9331:                                             ; preds = %9314, %9297
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #9
  br label %9332

9332:                                             ; preds = %9331
  br label %9333

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

9334:                                             ; No predecessors!
  br label %9335

9335:                                             ; preds = %9334
  br label %9336

9336:                                             ; preds = %9335, %9273
  br label %9337

9337:                                             ; preds = %9336
  br label %9338

9338:                                             ; preds = %9337
  br label %9339

9339:                                             ; preds = %9338
  %9340 = load i32, ptr @test_count, align 4, !tbaa !5
  %9341 = add nsw i32 %9340, 1
  store i32 %9341, ptr @test_count, align 4, !tbaa !5
  %9342 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 4), align 8, !tbaa !77
  %9343 = load ptr, ptr %186, align 8, !tbaa !9
  %9344 = call i32 %9342(ptr noundef %9343, ptr noundef %188)
  %9345 = icmp eq i32 %9344, -1
  br i1 %9345, label %9346, label %9399

9346:                                             ; preds = %9339
  br label %9347

9347:                                             ; preds = %9346
  br label %9348

9348:                                             ; preds = %9347
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #9
  %9349 = call ptr @__errno_location() #10
  %9350 = load i32, ptr %9349, align 4, !tbaa !5
  store i32 %9350, ptr %198, align 4, !tbaa !5
  %9351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9352 = call i32 @s2n_print_stacktrace(ptr noundef %9351)
  %9353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9354 = trunc i8 %9353 to i1
  br i1 %9354, label %9355, label %9377

9355:                                             ; preds = %9348
  %9356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9357 = call i32 @fileno(ptr noundef %9356) #9
  %9358 = call i32 @isatty(i32 noundef %9357) #9
  %9359 = icmp ne i32 %9358, 0
  br i1 %9359, label %9360, label %9377

9360:                                             ; preds = %9355
  %9361 = load i32, ptr %198, align 4, !tbaa !5
  %9362 = call ptr @__errno_location() #10
  store i32 %9361, ptr %9362, align 4, !tbaa !5
  %9363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9364 = load i32, ptr @test_count, align 4, !tbaa !5
  %9365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9366 = load i32, ptr %9365, align 4, !tbaa !5
  %9367 = call ptr @s2n_strerror(i32 noundef %9366, ptr noundef @.str.4)
  %9368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9369 = load i32, ptr %9368, align 4, !tbaa !5
  %9370 = call ptr @s2n_strerror_debug(i32 noundef %9369, ptr noundef @.str.4)
  %9371 = call ptr @__errno_location() #10
  %9372 = load i32, ptr %9371, align 4, !tbaa !5
  %9373 = call ptr @strerror(i32 noundef %9372) #9
  %9374 = call ptr @__errno_location() #10
  %9375 = load i32, ptr %9374, align 4, !tbaa !5
  %9376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9363, ptr noundef @.str.2, i32 noundef %9364, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 379, ptr noundef %9367, ptr noundef %9370, ptr noundef %9373, i32 noundef %9375) #9
  br label %9394

9377:                                             ; preds = %9355, %9348
  %9378 = load i32, ptr %198, align 4, !tbaa !5
  %9379 = call ptr @__errno_location() #10
  store i32 %9378, ptr %9379, align 4, !tbaa !5
  %9380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9381 = load i32, ptr @test_count, align 4, !tbaa !5
  %9382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9383 = load i32, ptr %9382, align 4, !tbaa !5
  %9384 = call ptr @s2n_strerror(i32 noundef %9383, ptr noundef @.str.4)
  %9385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9386 = load i32, ptr %9385, align 4, !tbaa !5
  %9387 = call ptr @s2n_strerror_debug(i32 noundef %9386, ptr noundef @.str.4)
  %9388 = call ptr @__errno_location() #10
  %9389 = load i32, ptr %9388, align 4, !tbaa !5
  %9390 = call ptr @strerror(i32 noundef %9389) #9
  %9391 = call ptr @__errno_location() #10
  %9392 = load i32, ptr %9391, align 4, !tbaa !5
  %9393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9380, ptr noundef @.str.5, i32 noundef %9381, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 379, ptr noundef %9384, ptr noundef %9387, ptr noundef %9390, i32 noundef %9392) #9
  br label %9394

9394:                                             ; preds = %9377, %9360
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #9
  br label %9395

9395:                                             ; preds = %9394
  br label %9396

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

9397:                                             ; No predecessors!
  br label %9398

9398:                                             ; preds = %9397
  br label %9399

9399:                                             ; preds = %9398, %9339
  br label %9400

9400:                                             ; preds = %9399
  br label %9401

9401:                                             ; preds = %9400
  br label %9402

9402:                                             ; preds = %9401
  %9403 = load i32, ptr @test_count, align 4, !tbaa !5
  %9404 = add nsw i32 %9403, 1
  store i32 %9404, ptr @test_count, align 4, !tbaa !5
  %9405 = load ptr, ptr %186, align 8, !tbaa !9
  %9406 = getelementptr inbounds %struct.s2n_connection, ptr %9405, i32 0, i32 31
  %9407 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9406, i32 0, i32 1
  %9408 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %9407, i32 0, i32 0
  %9409 = load ptr, ptr %9408, align 8, !tbaa !73
  %9410 = load ptr, ptr %180, align 8, !tbaa !9
  %9411 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %9410, i32 0, i32 1
  %9412 = load ptr, ptr %9411, align 8, !tbaa !28
  %9413 = getelementptr inbounds ptr, ptr %9412, i64 0
  %9414 = load ptr, ptr %9413, align 8, !tbaa !9
  %9415 = icmp eq ptr %9409, %9414
  br i1 %9415, label %9469, label %9416

9416:                                             ; preds = %9402
  br label %9417

9417:                                             ; preds = %9416
  br label %9418

9418:                                             ; preds = %9417
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #9
  %9419 = call ptr @__errno_location() #10
  %9420 = load i32, ptr %9419, align 4, !tbaa !5
  store i32 %9420, ptr %199, align 4, !tbaa !5
  %9421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9422 = call i32 @s2n_print_stacktrace(ptr noundef %9421)
  %9423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9424 = trunc i8 %9423 to i1
  br i1 %9424, label %9425, label %9447

9425:                                             ; preds = %9418
  %9426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9427 = call i32 @fileno(ptr noundef %9426) #9
  %9428 = call i32 @isatty(i32 noundef %9427) #9
  %9429 = icmp ne i32 %9428, 0
  br i1 %9429, label %9430, label %9447

9430:                                             ; preds = %9425
  %9431 = load i32, ptr %199, align 4, !tbaa !5
  %9432 = call ptr @__errno_location() #10
  store i32 %9431, ptr %9432, align 4, !tbaa !5
  %9433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9434 = load i32, ptr @test_count, align 4, !tbaa !5
  %9435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9436 = load i32, ptr %9435, align 4, !tbaa !5
  %9437 = call ptr @s2n_strerror(i32 noundef %9436, ptr noundef @.str.4)
  %9438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9439 = load i32, ptr %9438, align 4, !tbaa !5
  %9440 = call ptr @s2n_strerror_debug(i32 noundef %9439, ptr noundef @.str.4)
  %9441 = call ptr @__errno_location() #10
  %9442 = load i32, ptr %9441, align 4, !tbaa !5
  %9443 = call ptr @strerror(i32 noundef %9442) #9
  %9444 = call ptr @__errno_location() #10
  %9445 = load i32, ptr %9444, align 4, !tbaa !5
  %9446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9433, ptr noundef @.str.2, i32 noundef %9434, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 381, ptr noundef %9437, ptr noundef %9440, ptr noundef %9443, i32 noundef %9445) #9
  br label %9464

9447:                                             ; preds = %9425, %9418
  %9448 = load i32, ptr %199, align 4, !tbaa !5
  %9449 = call ptr @__errno_location() #10
  store i32 %9448, ptr %9449, align 4, !tbaa !5
  %9450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9451 = load i32, ptr @test_count, align 4, !tbaa !5
  %9452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9453 = load i32, ptr %9452, align 4, !tbaa !5
  %9454 = call ptr @s2n_strerror(i32 noundef %9453, ptr noundef @.str.4)
  %9455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9456 = load i32, ptr %9455, align 4, !tbaa !5
  %9457 = call ptr @s2n_strerror_debug(i32 noundef %9456, ptr noundef @.str.4)
  %9458 = call ptr @__errno_location() #10
  %9459 = load i32, ptr %9458, align 4, !tbaa !5
  %9460 = call ptr @strerror(i32 noundef %9459) #9
  %9461 = call ptr @__errno_location() #10
  %9462 = load i32, ptr %9461, align 4, !tbaa !5
  %9463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9450, ptr noundef @.str.5, i32 noundef %9451, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 381, ptr noundef %9454, ptr noundef %9457, ptr noundef %9460, i32 noundef %9462) #9
  br label %9464

9464:                                             ; preds = %9447, %9430
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #9
  br label %9465

9465:                                             ; preds = %9464
  br label %9466

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

9467:                                             ; No predecessors!
  br label %9468

9468:                                             ; preds = %9467
  br label %9469

9469:                                             ; preds = %9468, %9402
  br label %9470

9470:                                             ; preds = %9469
  br label %9471

9471:                                             ; preds = %9470
  br label %9472

9472:                                             ; preds = %9471
  %9473 = load i32, ptr @test_count, align 4, !tbaa !5
  %9474 = add nsw i32 %9473, 1
  store i32 %9474, ptr @test_count, align 4, !tbaa !5
  %9475 = load ptr, ptr %186, align 8, !tbaa !9
  %9476 = getelementptr inbounds %struct.s2n_connection, ptr %9475, i32 0, i32 31
  %9477 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9476, i32 0, i32 4
  %9478 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %9477, i32 0, i32 0
  %9479 = load ptr, ptr %9478, align 8, !tbaa !74
  %9480 = icmp eq ptr %9479, null
  br i1 %9480, label %9534, label %9481

9481:                                             ; preds = %9472
  br label %9482

9482:                                             ; preds = %9481
  br label %9483

9483:                                             ; preds = %9482
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #9
  %9484 = call ptr @__errno_location() #10
  %9485 = load i32, ptr %9484, align 4, !tbaa !5
  store i32 %9485, ptr %200, align 4, !tbaa !5
  %9486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9487 = call i32 @s2n_print_stacktrace(ptr noundef %9486)
  %9488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9489 = trunc i8 %9488 to i1
  br i1 %9489, label %9490, label %9512

9490:                                             ; preds = %9483
  %9491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9492 = call i32 @fileno(ptr noundef %9491) #9
  %9493 = call i32 @isatty(i32 noundef %9492) #9
  %9494 = icmp ne i32 %9493, 0
  br i1 %9494, label %9495, label %9512

9495:                                             ; preds = %9490
  %9496 = load i32, ptr %200, align 4, !tbaa !5
  %9497 = call ptr @__errno_location() #10
  store i32 %9496, ptr %9497, align 4, !tbaa !5
  %9498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9499 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9501, ptr noundef @.str.4)
  %9503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9504 = load i32, ptr %9503, align 4, !tbaa !5
  %9505 = call ptr @s2n_strerror_debug(i32 noundef %9504, ptr noundef @.str.4)
  %9506 = call ptr @__errno_location() #10
  %9507 = load i32, ptr %9506, align 4, !tbaa !5
  %9508 = call ptr @strerror(i32 noundef %9507) #9
  %9509 = call ptr @__errno_location() #10
  %9510 = load i32, ptr %9509, align 4, !tbaa !5
  %9511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9498, ptr noundef @.str.2, i32 noundef %9499, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 382, ptr noundef %9502, ptr noundef %9505, ptr noundef %9508, i32 noundef %9510) #9
  br label %9529

9512:                                             ; preds = %9490, %9483
  %9513 = load i32, ptr %200, align 4, !tbaa !5
  %9514 = call ptr @__errno_location() #10
  store i32 %9513, ptr %9514, align 4, !tbaa !5
  %9515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9516 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9518, ptr noundef @.str.4)
  %9520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9521 = load i32, ptr %9520, align 4, !tbaa !5
  %9522 = call ptr @s2n_strerror_debug(i32 noundef %9521, ptr noundef @.str.4)
  %9523 = call ptr @__errno_location() #10
  %9524 = load i32, ptr %9523, align 4, !tbaa !5
  %9525 = call ptr @strerror(i32 noundef %9524) #9
  %9526 = call ptr @__errno_location() #10
  %9527 = load i32, ptr %9526, align 4, !tbaa !5
  %9528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9515, ptr noundef @.str.5, i32 noundef %9516, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 382, ptr noundef %9519, ptr noundef %9522, ptr noundef %9525, i32 noundef %9527) #9
  br label %9529

9529:                                             ; preds = %9512, %9495
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #9
  br label %9530

9530:                                             ; preds = %9529
  br label %9531

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

9532:                                             ; No predecessors!
  br label %9533

9533:                                             ; preds = %9532
  br label %9534

9534:                                             ; preds = %9533, %9472
  br label %9535

9535:                                             ; preds = %9534
  br label %9536

9536:                                             ; preds = %9535
  br label %9537

9537:                                             ; preds = %9536
  %9538 = load i32, ptr @test_count, align 4, !tbaa !5
  %9539 = add nsw i32 %9538, 1
  store i32 %9539, ptr @test_count, align 4, !tbaa !5
  %9540 = load ptr, ptr %186, align 8, !tbaa !9
  %9541 = getelementptr inbounds %struct.s2n_connection, ptr %9540, i32 0, i32 31
  %9542 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9541, i32 0, i32 4
  %9543 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %9542, i32 0, i32 2
  %9544 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %9543, i32 0, i32 0
  %9545 = load ptr, ptr %9544, align 8, !tbaa !75
  %9546 = icmp eq ptr %9545, null
  br i1 %9546, label %9600, label %9547

9547:                                             ; preds = %9537
  br label %9548

9548:                                             ; preds = %9547
  br label %9549

9549:                                             ; preds = %9548
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #9
  %9550 = call ptr @__errno_location() #10
  %9551 = load i32, ptr %9550, align 4, !tbaa !5
  store i32 %9551, ptr %201, align 4, !tbaa !5
  %9552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9553 = call i32 @s2n_print_stacktrace(ptr noundef %9552)
  %9554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9555 = trunc i8 %9554 to i1
  br i1 %9555, label %9556, label %9578

9556:                                             ; preds = %9549
  %9557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9558 = call i32 @fileno(ptr noundef %9557) #9
  %9559 = call i32 @isatty(i32 noundef %9558) #9
  %9560 = icmp ne i32 %9559, 0
  br i1 %9560, label %9561, label %9578

9561:                                             ; preds = %9556
  %9562 = load i32, ptr %201, align 4, !tbaa !5
  %9563 = call ptr @__errno_location() #10
  store i32 %9562, ptr %9563, align 4, !tbaa !5
  %9564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9565 = load i32, ptr @test_count, align 4, !tbaa !5
  %9566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9567 = load i32, ptr %9566, align 4, !tbaa !5
  %9568 = call ptr @s2n_strerror(i32 noundef %9567, ptr noundef @.str.4)
  %9569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9570 = load i32, ptr %9569, align 4, !tbaa !5
  %9571 = call ptr @s2n_strerror_debug(i32 noundef %9570, ptr noundef @.str.4)
  %9572 = call ptr @__errno_location() #10
  %9573 = load i32, ptr %9572, align 4, !tbaa !5
  %9574 = call ptr @strerror(i32 noundef %9573) #9
  %9575 = call ptr @__errno_location() #10
  %9576 = load i32, ptr %9575, align 4, !tbaa !5
  %9577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9564, ptr noundef @.str.2, i32 noundef %9565, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 383, ptr noundef %9568, ptr noundef %9571, ptr noundef %9574, i32 noundef %9576) #9
  br label %9595

9578:                                             ; preds = %9556, %9549
  %9579 = load i32, ptr %201, align 4, !tbaa !5
  %9580 = call ptr @__errno_location() #10
  store i32 %9579, ptr %9580, align 4, !tbaa !5
  %9581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9582 = load i32, ptr @test_count, align 4, !tbaa !5
  %9583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9584 = load i32, ptr %9583, align 4, !tbaa !5
  %9585 = call ptr @s2n_strerror(i32 noundef %9584, ptr noundef @.str.4)
  %9586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9587 = load i32, ptr %9586, align 4, !tbaa !5
  %9588 = call ptr @s2n_strerror_debug(i32 noundef %9587, ptr noundef @.str.4)
  %9589 = call ptr @__errno_location() #10
  %9590 = load i32, ptr %9589, align 4, !tbaa !5
  %9591 = call ptr @strerror(i32 noundef %9590) #9
  %9592 = call ptr @__errno_location() #10
  %9593 = load i32, ptr %9592, align 4, !tbaa !5
  %9594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9581, ptr noundef @.str.5, i32 noundef %9582, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 383, ptr noundef %9585, ptr noundef %9588, ptr noundef %9591, i32 noundef %9593) #9
  br label %9595

9595:                                             ; preds = %9578, %9561
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #9
  br label %9596

9596:                                             ; preds = %9595
  br label %9597

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

9598:                                             ; No predecessors!
  br label %9599

9599:                                             ; preds = %9598
  br label %9600

9600:                                             ; preds = %9599, %9537
  br label %9601

9601:                                             ; preds = %9600
  br label %9602

9602:                                             ; preds = %9601
  br label %9603

9603:                                             ; preds = %9602
  %9604 = load i32, ptr @test_count, align 4, !tbaa !5
  %9605 = add nsw i32 %9604, 1
  store i32 %9605, ptr @test_count, align 4, !tbaa !5
  %9606 = load ptr, ptr %186, align 8, !tbaa !9
  %9607 = getelementptr inbounds %struct.s2n_connection, ptr %9606, i32 0, i32 31
  %9608 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %9607, i32 0, i32 4
  %9609 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %9608, i32 0, i32 1
  %9610 = getelementptr inbounds %struct.s2n_kem_params, ptr %9609, i32 0, i32 0
  %9611 = load ptr, ptr %9610, align 8, !tbaa !76
  %9612 = icmp eq ptr %9611, null
  br i1 %9612, label %9666, label %9613

9613:                                             ; preds = %9603
  br label %9614

9614:                                             ; preds = %9613
  br label %9615

9615:                                             ; preds = %9614
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #9
  %9616 = call ptr @__errno_location() #10
  %9617 = load i32, ptr %9616, align 4, !tbaa !5
  store i32 %9617, ptr %202, align 4, !tbaa !5
  %9618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9619 = call i32 @s2n_print_stacktrace(ptr noundef %9618)
  %9620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9621 = trunc i8 %9620 to i1
  br i1 %9621, label %9622, label %9644

9622:                                             ; preds = %9615
  %9623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9624 = call i32 @fileno(ptr noundef %9623) #9
  %9625 = call i32 @isatty(i32 noundef %9624) #9
  %9626 = icmp ne i32 %9625, 0
  br i1 %9626, label %9627, label %9644

9627:                                             ; preds = %9622
  %9628 = load i32, ptr %202, align 4, !tbaa !5
  %9629 = call ptr @__errno_location() #10
  store i32 %9628, ptr %9629, align 4, !tbaa !5
  %9630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9631 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %9633, ptr noundef @.str.4)
  %9635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9636 = load i32, ptr %9635, align 4, !tbaa !5
  %9637 = call ptr @s2n_strerror_debug(i32 noundef %9636, ptr noundef @.str.4)
  %9638 = call ptr @__errno_location() #10
  %9639 = load i32, ptr %9638, align 4, !tbaa !5
  %9640 = call ptr @strerror(i32 noundef %9639) #9
  %9641 = call ptr @__errno_location() #10
  %9642 = load i32, ptr %9641, align 4, !tbaa !5
  %9643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9630, ptr noundef @.str.2, i32 noundef %9631, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 384, ptr noundef %9634, ptr noundef %9637, ptr noundef %9640, i32 noundef %9642) #9
  br label %9661

9644:                                             ; preds = %9622, %9615
  %9645 = load i32, ptr %202, align 4, !tbaa !5
  %9646 = call ptr @__errno_location() #10
  store i32 %9645, ptr %9646, align 4, !tbaa !5
  %9647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9648 = load i32, ptr @test_count, align 4, !tbaa !5
  %9649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9650 = load i32, ptr %9649, align 4, !tbaa !5
  %9651 = call ptr @s2n_strerror(i32 noundef %9650, ptr noundef @.str.4)
  %9652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9653 = load i32, ptr %9652, align 4, !tbaa !5
  %9654 = call ptr @s2n_strerror_debug(i32 noundef %9653, ptr noundef @.str.4)
  %9655 = call ptr @__errno_location() #10
  %9656 = load i32, ptr %9655, align 4, !tbaa !5
  %9657 = call ptr @strerror(i32 noundef %9656) #9
  %9658 = call ptr @__errno_location() #10
  %9659 = load i32, ptr %9658, align 4, !tbaa !5
  %9660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9647, ptr noundef @.str.5, i32 noundef %9648, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 384, ptr noundef %9651, ptr noundef %9654, ptr noundef %9657, i32 noundef %9659) #9
  br label %9661

9661:                                             ; preds = %9644, %9627
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #9
  br label %9662

9662:                                             ; preds = %9661
  br label %9663

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

9664:                                             ; No predecessors!
  br label %9665

9665:                                             ; preds = %9664
  br label %9666

9666:                                             ; preds = %9665, %9603
  br label %9667

9667:                                             ; preds = %9666
  br label %9668

9668:                                             ; preds = %9667
  br label %9669

9669:                                             ; preds = %9668
  %9670 = load i32, ptr @test_count, align 4, !tbaa !5
  %9671 = add nsw i32 %9670, 1
  store i32 %9671, ptr @test_count, align 4, !tbaa !5
  %9672 = load ptr, ptr %177, align 8, !tbaa !9
  %9673 = call i32 @s2n_connection_free(ptr noundef %9672)
  %9674 = icmp eq i32 %9673, -1
  br i1 %9674, label %9675, label %9728

9675:                                             ; preds = %9669
  br label %9676

9676:                                             ; preds = %9675
  br label %9677

9677:                                             ; preds = %9676
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #9
  %9678 = call ptr @__errno_location() #10
  %9679 = load i32, ptr %9678, align 4, !tbaa !5
  store i32 %9679, ptr %203, align 4, !tbaa !5
  %9680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9681 = call i32 @s2n_print_stacktrace(ptr noundef %9680)
  %9682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9683 = trunc i8 %9682 to i1
  br i1 %9683, label %9684, label %9706

9684:                                             ; preds = %9677
  %9685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9686 = call i32 @fileno(ptr noundef %9685) #9
  %9687 = call i32 @isatty(i32 noundef %9686) #9
  %9688 = icmp ne i32 %9687, 0
  br i1 %9688, label %9689, label %9706

9689:                                             ; preds = %9684
  %9690 = load i32, ptr %203, align 4, !tbaa !5
  %9691 = call ptr @__errno_location() #10
  store i32 %9690, ptr %9691, align 4, !tbaa !5
  %9692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9693 = load i32, ptr @test_count, align 4, !tbaa !5
  %9694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9695 = load i32, ptr %9694, align 4, !tbaa !5
  %9696 = call ptr @s2n_strerror(i32 noundef %9695, ptr noundef @.str.4)
  %9697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9698 = load i32, ptr %9697, align 4, !tbaa !5
  %9699 = call ptr @s2n_strerror_debug(i32 noundef %9698, ptr noundef @.str.4)
  %9700 = call ptr @__errno_location() #10
  %9701 = load i32, ptr %9700, align 4, !tbaa !5
  %9702 = call ptr @strerror(i32 noundef %9701) #9
  %9703 = call ptr @__errno_location() #10
  %9704 = load i32, ptr %9703, align 4, !tbaa !5
  %9705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9692, ptr noundef @.str.2, i32 noundef %9693, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 386, ptr noundef %9696, ptr noundef %9699, ptr noundef %9702, i32 noundef %9704) #9
  br label %9723

9706:                                             ; preds = %9684, %9677
  %9707 = load i32, ptr %203, align 4, !tbaa !5
  %9708 = call ptr @__errno_location() #10
  store i32 %9707, ptr %9708, align 4, !tbaa !5
  %9709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9710 = load i32, ptr @test_count, align 4, !tbaa !5
  %9711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9712 = load i32, ptr %9711, align 4, !tbaa !5
  %9713 = call ptr @s2n_strerror(i32 noundef %9712, ptr noundef @.str.4)
  %9714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9715 = load i32, ptr %9714, align 4, !tbaa !5
  %9716 = call ptr @s2n_strerror_debug(i32 noundef %9715, ptr noundef @.str.4)
  %9717 = call ptr @__errno_location() #10
  %9718 = load i32, ptr %9717, align 4, !tbaa !5
  %9719 = call ptr @strerror(i32 noundef %9718) #9
  %9720 = call ptr @__errno_location() #10
  %9721 = load i32, ptr %9720, align 4, !tbaa !5
  %9722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9709, ptr noundef @.str.5, i32 noundef %9710, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 386, ptr noundef %9713, ptr noundef %9716, ptr noundef %9719, i32 noundef %9721) #9
  br label %9723

9723:                                             ; preds = %9706, %9689
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #9
  br label %9724

9724:                                             ; preds = %9723
  br label %9725

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

9726:                                             ; No predecessors!
  br label %9727

9727:                                             ; preds = %9726
  br label %9728

9728:                                             ; preds = %9727, %9669
  br label %9729

9729:                                             ; preds = %9728
  br label %9730

9730:                                             ; preds = %9729
  br label %9731

9731:                                             ; preds = %9730
  %9732 = load i32, ptr @test_count, align 4, !tbaa !5
  %9733 = add nsw i32 %9732, 1
  store i32 %9733, ptr @test_count, align 4, !tbaa !5
  %9734 = load ptr, ptr %186, align 8, !tbaa !9
  %9735 = call i32 @s2n_connection_free(ptr noundef %9734)
  %9736 = icmp eq i32 %9735, -1
  br i1 %9736, label %9737, label %9790

9737:                                             ; preds = %9731
  br label %9738

9738:                                             ; preds = %9737
  br label %9739

9739:                                             ; preds = %9738
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #9
  %9740 = call ptr @__errno_location() #10
  %9741 = load i32, ptr %9740, align 4, !tbaa !5
  store i32 %9741, ptr %204, 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) #9
  %9749 = call i32 @isatty(i32 noundef %9748) #9
  %9750 = icmp ne i32 %9749, 0
  br i1 %9750, label %9751, label %9768

9751:                                             ; preds = %9746
  %9752 = load i32, ptr %204, align 4, !tbaa !5
  %9753 = call ptr @__errno_location() #10
  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() #10
  %9763 = load i32, ptr %9762, align 4, !tbaa !5
  %9764 = call ptr @strerror(i32 noundef %9763) #9
  %9765 = call ptr @__errno_location() #10
  %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.53, ptr noundef @.str.1, i32 noundef 387, ptr noundef %9758, ptr noundef %9761, ptr noundef %9764, i32 noundef %9766) #9
  br label %9785

9768:                                             ; preds = %9746, %9739
  %9769 = load i32, ptr %204, align 4, !tbaa !5
  %9770 = call ptr @__errno_location() #10
  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() #10
  %9780 = load i32, ptr %9779, align 4, !tbaa !5
  %9781 = call ptr @strerror(i32 noundef %9780) #9
  %9782 = call ptr @__errno_location() #10
  %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.53, ptr noundef @.str.1, i32 noundef 387, ptr noundef %9775, ptr noundef %9778, ptr noundef %9781, i32 noundef %9783) #9
  br label %9785

9785:                                             ; preds = %9768, %9751
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #9
  br label %9786

9786:                                             ; preds = %9785
  br label %9787

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

9788:                                             ; No predecessors!
  br label %9789

9789:                                             ; preds = %9788
  br label %9790

9790:                                             ; preds = %9789, %9731
  br label %9791

9791:                                             ; preds = %9790
  br label %9792

9792:                                             ; preds = %9791
  store i32 0, ptr %88, align 4
  br label %9793

9793:                                             ; preds = %9792, %9073
  call void @llvm.lifetime.end.p0(i64 16, ptr %190) #9
  %9794 = call i32 @s2n_stuffer_free(ptr noundef %188)
  call void @llvm.lifetime.end.p0(i64 40, ptr %188) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #9
  %9795 = load i32, ptr %88, align 4
  switch i32 %9795, label %11279 [
    i32 0, label %9796
  ]

9796:                                             ; preds = %9793
  %9797 = call zeroext i1 @s2n_pq_is_enabled()
  br i1 %9797, label %11278, label %9798

9798:                                             ; preds = %9796
  br label %9799

9799:                                             ; preds = %9798
  %9800 = load i32, ptr @test_count, align 4, !tbaa !5
  %9801 = add nsw i32 %9800, 1
  store i32 %9801, ptr @test_count, align 4, !tbaa !5
  %9802 = call i32 (...) @s2n_enable_tls13_in_test()
  %9803 = icmp eq i32 %9802, -1
  br i1 %9803, label %9804, label %9857

9804:                                             ; preds = %9799
  br label %9805

9805:                                             ; preds = %9804
  br label %9806

9806:                                             ; preds = %9805
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #9
  %9807 = call ptr @__errno_location() #10
  %9808 = load i32, ptr %9807, align 4, !tbaa !5
  store i32 %9808, ptr %205, align 4, !tbaa !5
  %9809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9810 = call i32 @s2n_print_stacktrace(ptr noundef %9809)
  %9811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9812 = trunc i8 %9811 to i1
  br i1 %9812, label %9813, label %9835

9813:                                             ; preds = %9806
  %9814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9815 = call i32 @fileno(ptr noundef %9814) #9
  %9816 = call i32 @isatty(i32 noundef %9815) #9
  %9817 = icmp ne i32 %9816, 0
  br i1 %9817, label %9818, label %9835

9818:                                             ; preds = %9813
  %9819 = load i32, ptr %205, align 4, !tbaa !5
  %9820 = call ptr @__errno_location() #10
  store i32 %9819, ptr %9820, align 4, !tbaa !5
  %9821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9822 = load i32, ptr @test_count, align 4, !tbaa !5
  %9823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9824 = load i32, ptr %9823, align 4, !tbaa !5
  %9825 = call ptr @s2n_strerror(i32 noundef %9824, ptr noundef @.str.4)
  %9826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9827 = load i32, ptr %9826, align 4, !tbaa !5
  %9828 = call ptr @s2n_strerror_debug(i32 noundef %9827, ptr noundef @.str.4)
  %9829 = call ptr @__errno_location() #10
  %9830 = load i32, ptr %9829, align 4, !tbaa !5
  %9831 = call ptr @strerror(i32 noundef %9830) #9
  %9832 = call ptr @__errno_location() #10
  %9833 = load i32, ptr %9832, align 4, !tbaa !5
  %9834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9821, ptr noundef @.str.2, i32 noundef %9822, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 393, ptr noundef %9825, ptr noundef %9828, ptr noundef %9831, i32 noundef %9833) #9
  br label %9852

9835:                                             ; preds = %9813, %9806
  %9836 = load i32, ptr %205, align 4, !tbaa !5
  %9837 = call ptr @__errno_location() #10
  store i32 %9836, ptr %9837, align 4, !tbaa !5
  %9838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9839 = load i32, ptr @test_count, align 4, !tbaa !5
  %9840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9841 = load i32, ptr %9840, align 4, !tbaa !5
  %9842 = call ptr @s2n_strerror(i32 noundef %9841, ptr noundef @.str.4)
  %9843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9844 = load i32, ptr %9843, align 4, !tbaa !5
  %9845 = call ptr @s2n_strerror_debug(i32 noundef %9844, ptr noundef @.str.4)
  %9846 = call ptr @__errno_location() #10
  %9847 = load i32, ptr %9846, align 4, !tbaa !5
  %9848 = call ptr @strerror(i32 noundef %9847) #9
  %9849 = call ptr @__errno_location() #10
  %9850 = load i32, ptr %9849, align 4, !tbaa !5
  %9851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9838, ptr noundef @.str.5, i32 noundef %9839, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 393, ptr noundef %9842, ptr noundef %9845, ptr noundef %9848, i32 noundef %9850) #9
  br label %9852

9852:                                             ; preds = %9835, %9818
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #9
  br label %9853

9853:                                             ; preds = %9852
  br label %9854

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

9855:                                             ; No predecessors!
  br label %9856

9856:                                             ; preds = %9855
  br label %9857

9857:                                             ; preds = %9856, %9799
  br label %9858

9858:                                             ; preds = %9857
  br label %9859

9859:                                             ; preds = %9858
  call void @llvm.lifetime.start.p0(i64 8, ptr %206) #9
  store ptr null, ptr %206, align 8, !tbaa !9
  br label %9860

9860:                                             ; preds = %9859
  %9861 = load i32, ptr @test_count, align 4, !tbaa !5
  %9862 = add nsw i32 %9861, 1
  store i32 %9862, ptr @test_count, align 4, !tbaa !5
  %9863 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9863, ptr %206, align 8, !tbaa !9
  %9864 = icmp eq ptr %9863, null
  br i1 %9864, label %9865, label %9918

9865:                                             ; preds = %9860
  br label %9866

9866:                                             ; preds = %9865
  br label %9867

9867:                                             ; preds = %9866
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #9
  %9868 = call ptr @__errno_location() #10
  %9869 = load i32, ptr %9868, align 4, !tbaa !5
  store i32 %9869, ptr %207, align 4, !tbaa !5
  %9870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9871 = call i32 @s2n_print_stacktrace(ptr noundef %9870)
  %9872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9873 = trunc i8 %9872 to i1
  br i1 %9873, label %9874, label %9896

9874:                                             ; preds = %9867
  %9875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9876 = call i32 @fileno(ptr noundef %9875) #9
  %9877 = call i32 @isatty(i32 noundef %9876) #9
  %9878 = icmp ne i32 %9877, 0
  br i1 %9878, label %9879, label %9896

9879:                                             ; preds = %9874
  %9880 = load i32, ptr %207, align 4, !tbaa !5
  %9881 = call ptr @__errno_location() #10
  store i32 %9880, ptr %9881, align 4, !tbaa !5
  %9882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9883 = load i32, ptr @test_count, align 4, !tbaa !5
  %9884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9885 = load i32, ptr %9884, align 4, !tbaa !5
  %9886 = call ptr @s2n_strerror(i32 noundef %9885, ptr noundef @.str.4)
  %9887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9888 = load i32, ptr %9887, align 4, !tbaa !5
  %9889 = call ptr @s2n_strerror_debug(i32 noundef %9888, ptr noundef @.str.4)
  %9890 = call ptr @__errno_location() #10
  %9891 = load i32, ptr %9890, align 4, !tbaa !5
  %9892 = call ptr @strerror(i32 noundef %9891) #9
  %9893 = call ptr @__errno_location() #10
  %9894 = load i32, ptr %9893, align 4, !tbaa !5
  %9895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9882, ptr noundef @.str.2, i32 noundef %9883, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 395, ptr noundef %9886, ptr noundef %9889, ptr noundef %9892, i32 noundef %9894) #9
  br label %9913

9896:                                             ; preds = %9874, %9867
  %9897 = load i32, ptr %207, align 4, !tbaa !5
  %9898 = call ptr @__errno_location() #10
  store i32 %9897, ptr %9898, align 4, !tbaa !5
  %9899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9900 = load i32, ptr @test_count, align 4, !tbaa !5
  %9901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9902 = load i32, ptr %9901, align 4, !tbaa !5
  %9903 = call ptr @s2n_strerror(i32 noundef %9902, ptr noundef @.str.4)
  %9904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9905 = load i32, ptr %9904, align 4, !tbaa !5
  %9906 = call ptr @s2n_strerror_debug(i32 noundef %9905, ptr noundef @.str.4)
  %9907 = call ptr @__errno_location() #10
  %9908 = load i32, ptr %9907, align 4, !tbaa !5
  %9909 = call ptr @strerror(i32 noundef %9908) #9
  %9910 = call ptr @__errno_location() #10
  %9911 = load i32, ptr %9910, align 4, !tbaa !5
  %9912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9899, ptr noundef @.str.5, i32 noundef %9900, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 395, ptr noundef %9903, ptr noundef %9906, ptr noundef %9909, i32 noundef %9911) #9
  br label %9913

9913:                                             ; preds = %9896, %9879
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #9
  br label %9914

9914:                                             ; preds = %9913
  br label %9915

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

9916:                                             ; No predecessors!
  br label %9917

9917:                                             ; preds = %9916
  br label %9918

9918:                                             ; preds = %9917, %9860
  br label %9919

9919:                                             ; preds = %9918
  br label %9920

9920:                                             ; preds = %9919
  %9921 = load ptr, ptr %206, align 8, !tbaa !9
  %9922 = getelementptr inbounds %struct.s2n_connection, ptr %9921, i32 0, i32 2
  store ptr %34, ptr %9922, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %208) #9
  store ptr null, ptr %208, align 8, !tbaa !9
  br label %9923

9923:                                             ; preds = %9920
  %9924 = load i32, ptr @test_count, align 4, !tbaa !5
  %9925 = add nsw i32 %9924, 1
  store i32 %9925, ptr @test_count, align 4, !tbaa !5
  %9926 = load ptr, ptr %206, align 8, !tbaa !9
  %9927 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %9926, ptr noundef %208)
  %9928 = icmp eq i32 %9927, -1
  br i1 %9928, label %9929, label %9982

9929:                                             ; preds = %9923
  br label %9930

9930:                                             ; preds = %9929
  br label %9931

9931:                                             ; preds = %9930
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #9
  %9932 = call ptr @__errno_location() #10
  %9933 = load i32, ptr %9932, align 4, !tbaa !5
  store i32 %9933, ptr %209, align 4, !tbaa !5
  %9934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9935 = call i32 @s2n_print_stacktrace(ptr noundef %9934)
  %9936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9937 = trunc i8 %9936 to i1
  br i1 %9937, label %9938, label %9960

9938:                                             ; preds = %9931
  %9939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9940 = call i32 @fileno(ptr noundef %9939) #9
  %9941 = call i32 @isatty(i32 noundef %9940) #9
  %9942 = icmp ne i32 %9941, 0
  br i1 %9942, label %9943, label %9960

9943:                                             ; preds = %9938
  %9944 = load i32, ptr %209, align 4, !tbaa !5
  %9945 = call ptr @__errno_location() #10
  store i32 %9944, ptr %9945, align 4, !tbaa !5
  %9946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9947 = load i32, ptr @test_count, align 4, !tbaa !5
  %9948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9949 = load i32, ptr %9948, align 4, !tbaa !5
  %9950 = call ptr @s2n_strerror(i32 noundef %9949, ptr noundef @.str.4)
  %9951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9952 = load i32, ptr %9951, align 4, !tbaa !5
  %9953 = call ptr @s2n_strerror_debug(i32 noundef %9952, ptr noundef @.str.4)
  %9954 = call ptr @__errno_location() #10
  %9955 = load i32, ptr %9954, align 4, !tbaa !5
  %9956 = call ptr @strerror(i32 noundef %9955) #9
  %9957 = call ptr @__errno_location() #10
  %9958 = load i32, ptr %9957, align 4, !tbaa !5
  %9959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9946, ptr noundef @.str.2, i32 noundef %9947, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 399, ptr noundef %9950, ptr noundef %9953, ptr noundef %9956, i32 noundef %9958) #9
  br label %9977

9960:                                             ; preds = %9938, %9931
  %9961 = load i32, ptr %209, align 4, !tbaa !5
  %9962 = call ptr @__errno_location() #10
  store i32 %9961, ptr %9962, align 4, !tbaa !5
  %9963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9964 = load i32, ptr @test_count, align 4, !tbaa !5
  %9965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9966 = load i32, ptr %9965, align 4, !tbaa !5
  %9967 = call ptr @s2n_strerror(i32 noundef %9966, ptr noundef @.str.4)
  %9968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9969 = load i32, ptr %9968, align 4, !tbaa !5
  %9970 = call ptr @s2n_strerror_debug(i32 noundef %9969, ptr noundef @.str.4)
  %9971 = call ptr @__errno_location() #10
  %9972 = load i32, ptr %9971, align 4, !tbaa !5
  %9973 = call ptr @strerror(i32 noundef %9972) #9
  %9974 = call ptr @__errno_location() #10
  %9975 = load i32, ptr %9974, align 4, !tbaa !5
  %9976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9963, ptr noundef @.str.5, i32 noundef %9964, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 399, ptr noundef %9967, ptr noundef %9970, ptr noundef %9973, i32 noundef %9975) #9
  br label %9977

9977:                                             ; preds = %9960, %9943
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #9
  br label %9978

9978:                                             ; preds = %9977
  br label %9979

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

9980:                                             ; No predecessors!
  br label %9981

9981:                                             ; preds = %9980
  br label %9982

9982:                                             ; preds = %9981, %9923
  br label %9983

9983:                                             ; preds = %9982
  br label %9984

9984:                                             ; preds = %9983
  br label %9985

9985:                                             ; preds = %9984
  %9986 = load i32, ptr @test_count, align 4, !tbaa !5
  %9987 = add nsw i32 %9986, 1
  store i32 %9987, ptr @test_count, align 4, !tbaa !5
  %9988 = load ptr, ptr %208, align 8, !tbaa !9
  %9989 = icmp eq ptr %9988, null
  br i1 %9989, label %9990, label %10043

9990:                                             ; preds = %9985
  br label %9991

9991:                                             ; preds = %9990
  br label %9992

9992:                                             ; preds = %9991
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #9
  %9993 = call ptr @__errno_location() #10
  %9994 = load i32, ptr %9993, align 4, !tbaa !5
  store i32 %9994, ptr %210, align 4, !tbaa !5
  %9995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9996 = call i32 @s2n_print_stacktrace(ptr noundef %9995)
  %9997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9998 = trunc i8 %9997 to i1
  br i1 %9998, label %9999, label %10021

9999:                                             ; preds = %9992
  %10000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10001 = call i32 @fileno(ptr noundef %10000) #9
  %10002 = call i32 @isatty(i32 noundef %10001) #9
  %10003 = icmp ne i32 %10002, 0
  br i1 %10003, label %10004, label %10021

10004:                                            ; preds = %9999
  %10005 = load i32, ptr %210, align 4, !tbaa !5
  %10006 = call ptr @__errno_location() #10
  store i32 %10005, ptr %10006, align 4, !tbaa !5
  %10007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10008 = load i32, ptr @test_count, align 4, !tbaa !5
  %10009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10010 = load i32, ptr %10009, align 4, !tbaa !5
  %10011 = call ptr @s2n_strerror(i32 noundef %10010, ptr noundef @.str.4)
  %10012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10013 = load i32, ptr %10012, align 4, !tbaa !5
  %10014 = call ptr @s2n_strerror_debug(i32 noundef %10013, ptr noundef @.str.4)
  %10015 = call ptr @__errno_location() #10
  %10016 = load i32, ptr %10015, align 4, !tbaa !5
  %10017 = call ptr @strerror(i32 noundef %10016) #9
  %10018 = call ptr @__errno_location() #10
  %10019 = load i32, ptr %10018, align 4, !tbaa !5
  %10020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10007, ptr noundef @.str.2, i32 noundef %10008, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 400, ptr noundef %10011, ptr noundef %10014, ptr noundef %10017, i32 noundef %10019) #9
  br label %10038

10021:                                            ; preds = %9999, %9992
  %10022 = load i32, ptr %210, align 4, !tbaa !5
  %10023 = call ptr @__errno_location() #10
  store i32 %10022, ptr %10023, align 4, !tbaa !5
  %10024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10025 = load i32, ptr @test_count, align 4, !tbaa !5
  %10026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10027 = load i32, ptr %10026, align 4, !tbaa !5
  %10028 = call ptr @s2n_strerror(i32 noundef %10027, ptr noundef @.str.4)
  %10029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10030 = load i32, ptr %10029, align 4, !tbaa !5
  %10031 = call ptr @s2n_strerror_debug(i32 noundef %10030, ptr noundef @.str.4)
  %10032 = call ptr @__errno_location() #10
  %10033 = load i32, ptr %10032, align 4, !tbaa !5
  %10034 = call ptr @strerror(i32 noundef %10033) #9
  %10035 = call ptr @__errno_location() #10
  %10036 = load i32, ptr %10035, align 4, !tbaa !5
  %10037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10024, ptr noundef @.str.5, i32 noundef %10025, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 400, ptr noundef %10028, ptr noundef %10031, ptr noundef %10034, i32 noundef %10036) #9
  br label %10038

10038:                                            ; preds = %10021, %10004
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #9
  br label %10039

10039:                                            ; preds = %10038
  br label %10040

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

10041:                                            ; No predecessors!
  br label %10042

10042:                                            ; preds = %10041
  br label %10043

10043:                                            ; preds = %10042, %9985
  br label %10044

10044:                                            ; preds = %10043
  br label %10045

10045:                                            ; preds = %10044
  call void @llvm.lifetime.start.p0(i64 8, ptr %211) #9
  store ptr null, ptr %211, align 8, !tbaa !9
  br label %10046

10046:                                            ; preds = %10045
  %10047 = load i32, ptr @test_count, align 4, !tbaa !5
  %10048 = add nsw i32 %10047, 1
  store i32 %10048, ptr @test_count, align 4, !tbaa !5
  %10049 = load ptr, ptr %206, align 8, !tbaa !9
  %10050 = call i32 @s2n_connection_get_kem_preferences(ptr noundef %10049, ptr noundef %211)
  %10051 = icmp eq i32 %10050, -1
  br i1 %10051, label %10052, label %10105

10052:                                            ; preds = %10046
  br label %10053

10053:                                            ; preds = %10052
  br label %10054

10054:                                            ; preds = %10053
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #9
  %10055 = call ptr @__errno_location() #10
  %10056 = load i32, ptr %10055, align 4, !tbaa !5
  store i32 %10056, ptr %212, align 4, !tbaa !5
  %10057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10058 = call i32 @s2n_print_stacktrace(ptr noundef %10057)
  %10059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10060 = trunc i8 %10059 to i1
  br i1 %10060, label %10061, label %10083

10061:                                            ; preds = %10054
  %10062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10063 = call i32 @fileno(ptr noundef %10062) #9
  %10064 = call i32 @isatty(i32 noundef %10063) #9
  %10065 = icmp ne i32 %10064, 0
  br i1 %10065, label %10066, label %10083

10066:                                            ; preds = %10061
  %10067 = load i32, ptr %212, align 4, !tbaa !5
  %10068 = call ptr @__errno_location() #10
  store i32 %10067, ptr %10068, align 4, !tbaa !5
  %10069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10070 = load i32, ptr @test_count, align 4, !tbaa !5
  %10071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10072 = load i32, ptr %10071, align 4, !tbaa !5
  %10073 = call ptr @s2n_strerror(i32 noundef %10072, ptr noundef @.str.4)
  %10074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10075 = load i32, ptr %10074, align 4, !tbaa !5
  %10076 = call ptr @s2n_strerror_debug(i32 noundef %10075, ptr noundef @.str.4)
  %10077 = call ptr @__errno_location() #10
  %10078 = load i32, ptr %10077, align 4, !tbaa !5
  %10079 = call ptr @strerror(i32 noundef %10078) #9
  %10080 = call ptr @__errno_location() #10
  %10081 = load i32, ptr %10080, align 4, !tbaa !5
  %10082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10069, ptr noundef @.str.2, i32 noundef %10070, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 403, ptr noundef %10073, ptr noundef %10076, ptr noundef %10079, i32 noundef %10081) #9
  br label %10100

10083:                                            ; preds = %10061, %10054
  %10084 = load i32, ptr %212, align 4, !tbaa !5
  %10085 = call ptr @__errno_location() #10
  store i32 %10084, ptr %10085, align 4, !tbaa !5
  %10086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10087 = load i32, ptr @test_count, align 4, !tbaa !5
  %10088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10089 = load i32, ptr %10088, align 4, !tbaa !5
  %10090 = call ptr @s2n_strerror(i32 noundef %10089, ptr noundef @.str.4)
  %10091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10092 = load i32, ptr %10091, align 4, !tbaa !5
  %10093 = call ptr @s2n_strerror_debug(i32 noundef %10092, ptr noundef @.str.4)
  %10094 = call ptr @__errno_location() #10
  %10095 = load i32, ptr %10094, align 4, !tbaa !5
  %10096 = call ptr @strerror(i32 noundef %10095) #9
  %10097 = call ptr @__errno_location() #10
  %10098 = load i32, ptr %10097, align 4, !tbaa !5
  %10099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10086, ptr noundef @.str.5, i32 noundef %10087, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 403, ptr noundef %10090, ptr noundef %10093, ptr noundef %10096, i32 noundef %10098) #9
  br label %10100

10100:                                            ; preds = %10083, %10066
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #9
  br label %10101

10101:                                            ; preds = %10100
  br label %10102

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

10103:                                            ; No predecessors!
  br label %10104

10104:                                            ; preds = %10103
  br label %10105

10105:                                            ; preds = %10104, %10046
  br label %10106

10106:                                            ; preds = %10105
  br label %10107

10107:                                            ; preds = %10106
  br label %10108

10108:                                            ; preds = %10107
  %10109 = load i32, ptr @test_count, align 4, !tbaa !5
  %10110 = add nsw i32 %10109, 1
  store i32 %10110, ptr @test_count, align 4, !tbaa !5
  %10111 = load ptr, ptr %211, align 8, !tbaa !9
  %10112 = icmp eq ptr %10111, null
  br i1 %10112, label %10113, label %10166

10113:                                            ; preds = %10108
  br label %10114

10114:                                            ; preds = %10113
  br label %10115

10115:                                            ; preds = %10114
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #9
  %10116 = call ptr @__errno_location() #10
  %10117 = load i32, ptr %10116, align 4, !tbaa !5
  store i32 %10117, ptr %213, align 4, !tbaa !5
  %10118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10119 = call i32 @s2n_print_stacktrace(ptr noundef %10118)
  %10120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10121 = trunc i8 %10120 to i1
  br i1 %10121, label %10122, label %10144

10122:                                            ; preds = %10115
  %10123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10124 = call i32 @fileno(ptr noundef %10123) #9
  %10125 = call i32 @isatty(i32 noundef %10124) #9
  %10126 = icmp ne i32 %10125, 0
  br i1 %10126, label %10127, label %10144

10127:                                            ; preds = %10122
  %10128 = load i32, ptr %213, align 4, !tbaa !5
  %10129 = call ptr @__errno_location() #10
  store i32 %10128, ptr %10129, align 4, !tbaa !5
  %10130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10131 = load i32, ptr @test_count, align 4, !tbaa !5
  %10132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10133 = load i32, ptr %10132, align 4, !tbaa !5
  %10134 = call ptr @s2n_strerror(i32 noundef %10133, ptr noundef @.str.4)
  %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_debug(i32 noundef %10136, ptr noundef @.str.4)
  %10138 = call ptr @__errno_location() #10
  %10139 = load i32, ptr %10138, align 4, !tbaa !5
  %10140 = call ptr @strerror(i32 noundef %10139) #9
  %10141 = call ptr @__errno_location() #10
  %10142 = load i32, ptr %10141, align 4, !tbaa !5
  %10143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10130, ptr noundef @.str.2, i32 noundef %10131, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 404, ptr noundef %10134, ptr noundef %10137, ptr noundef %10140, i32 noundef %10142) #9
  br label %10161

10144:                                            ; preds = %10122, %10115
  %10145 = load i32, ptr %213, align 4, !tbaa !5
  %10146 = call ptr @__errno_location() #10
  store i32 %10145, ptr %10146, align 4, !tbaa !5
  %10147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10148 = load i32, ptr @test_count, align 4, !tbaa !5
  %10149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10150 = load i32, ptr %10149, align 4, !tbaa !5
  %10151 = call ptr @s2n_strerror(i32 noundef %10150, ptr noundef @.str.4)
  %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_debug(i32 noundef %10153, ptr noundef @.str.4)
  %10155 = call ptr @__errno_location() #10
  %10156 = load i32, ptr %10155, align 4, !tbaa !5
  %10157 = call ptr @strerror(i32 noundef %10156) #9
  %10158 = call ptr @__errno_location() #10
  %10159 = load i32, ptr %10158, align 4, !tbaa !5
  %10160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10147, ptr noundef @.str.5, i32 noundef %10148, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 404, ptr noundef %10151, ptr noundef %10154, ptr noundef %10157, i32 noundef %10159) #9
  br label %10161

10161:                                            ; preds = %10144, %10127
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #9
  br label %10162

10162:                                            ; preds = %10161
  br label %10163

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

10164:                                            ; No predecessors!
  br label %10165

10165:                                            ; preds = %10164
  br label %10166

10166:                                            ; preds = %10165, %10108
  br label %10167

10167:                                            ; preds = %10166
  br label %10168

10168:                                            ; preds = %10167
  call void @llvm.lifetime.start.p0(i64 8, ptr %214) #9
  store ptr null, ptr %214, align 8, !tbaa !9
  br label %10169

10169:                                            ; preds = %10168
  %10170 = load i32, ptr @test_count, align 4, !tbaa !5
  %10171 = add nsw i32 %10170, 1
  store i32 %10171, ptr @test_count, align 4, !tbaa !5
  %10172 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %10172, ptr %214, align 8, !tbaa !9
  %10173 = icmp eq ptr %10172, null
  br i1 %10173, label %10174, label %10227

10174:                                            ; preds = %10169
  br label %10175

10175:                                            ; preds = %10174
  br label %10176

10176:                                            ; preds = %10175
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #9
  %10177 = call ptr @__errno_location() #10
  %10178 = load i32, ptr %10177, align 4, !tbaa !5
  store i32 %10178, ptr %215, align 4, !tbaa !5
  %10179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10180 = call i32 @s2n_print_stacktrace(ptr noundef %10179)
  %10181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10182 = trunc i8 %10181 to i1
  br i1 %10182, label %10183, label %10205

10183:                                            ; preds = %10176
  %10184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10185 = call i32 @fileno(ptr noundef %10184) #9
  %10186 = call i32 @isatty(i32 noundef %10185) #9
  %10187 = icmp ne i32 %10186, 0
  br i1 %10187, label %10188, label %10205

10188:                                            ; preds = %10183
  %10189 = load i32, ptr %215, align 4, !tbaa !5
  %10190 = call ptr @__errno_location() #10
  store i32 %10189, ptr %10190, align 4, !tbaa !5
  %10191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10192 = load i32, ptr @test_count, align 4, !tbaa !5
  %10193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10194 = load i32, ptr %10193, align 4, !tbaa !5
  %10195 = call ptr @s2n_strerror(i32 noundef %10194, ptr noundef @.str.4)
  %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_debug(i32 noundef %10197, ptr noundef @.str.4)
  %10199 = call ptr @__errno_location() #10
  %10200 = load i32, ptr %10199, align 4, !tbaa !5
  %10201 = call ptr @strerror(i32 noundef %10200) #9
  %10202 = call ptr @__errno_location() #10
  %10203 = load i32, ptr %10202, align 4, !tbaa !5
  %10204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10191, ptr noundef @.str.2, i32 noundef %10192, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 407, ptr noundef %10195, ptr noundef %10198, ptr noundef %10201, i32 noundef %10203) #9
  br label %10222

10205:                                            ; preds = %10183, %10176
  %10206 = load i32, ptr %215, align 4, !tbaa !5
  %10207 = call ptr @__errno_location() #10
  store i32 %10206, ptr %10207, align 4, !tbaa !5
  %10208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10209 = load i32, ptr @test_count, align 4, !tbaa !5
  %10210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10211 = load i32, ptr %10210, align 4, !tbaa !5
  %10212 = call ptr @s2n_strerror(i32 noundef %10211, ptr noundef @.str.4)
  %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_debug(i32 noundef %10214, ptr noundef @.str.4)
  %10216 = call ptr @__errno_location() #10
  %10217 = load i32, ptr %10216, align 4, !tbaa !5
  %10218 = call ptr @strerror(i32 noundef %10217) #9
  %10219 = call ptr @__errno_location() #10
  %10220 = load i32, ptr %10219, align 4, !tbaa !5
  %10221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10208, ptr noundef @.str.5, i32 noundef %10209, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 407, ptr noundef %10212, ptr noundef %10215, ptr noundef %10218, i32 noundef %10220) #9
  br label %10222

10222:                                            ; preds = %10205, %10188
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #9
  br label %10223

10223:                                            ; preds = %10222
  br label %10224

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

10225:                                            ; No predecessors!
  br label %10226

10226:                                            ; preds = %10225
  br label %10227

10227:                                            ; preds = %10226, %10169
  br label %10228

10228:                                            ; preds = %10227
  br label %10229

10229:                                            ; preds = %10228
  %10230 = load ptr, ptr %214, align 8, !tbaa !9
  %10231 = getelementptr inbounds %struct.s2n_connection, ptr %10230, i32 0, i32 2
  store ptr %34, ptr %10231, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 40, ptr %216) #9
  call void @llvm.memset.p0.i64(ptr align 8 %216, i8 0, i64 40, i1 false)
  br label %10232

10232:                                            ; preds = %10229
  %10233 = load i32, ptr @test_count, align 4, !tbaa !5
  %10234 = add nsw i32 %10233, 1
  store i32 %10234, ptr @test_count, align 4, !tbaa !5
  %10235 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %216, i32 noundef 0)
  %10236 = icmp eq i32 %10235, -1
  br i1 %10236, label %10237, label %10290

10237:                                            ; preds = %10232
  br label %10238

10238:                                            ; preds = %10237
  br label %10239

10239:                                            ; preds = %10238
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #9
  %10240 = call ptr @__errno_location() #10
  %10241 = load i32, ptr %10240, align 4, !tbaa !5
  store i32 %10241, ptr %217, align 4, !tbaa !5
  %10242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10243 = call i32 @s2n_print_stacktrace(ptr noundef %10242)
  %10244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10245 = trunc i8 %10244 to i1
  br i1 %10245, label %10246, label %10268

10246:                                            ; preds = %10239
  %10247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10248 = call i32 @fileno(ptr noundef %10247) #9
  %10249 = call i32 @isatty(i32 noundef %10248) #9
  %10250 = icmp ne i32 %10249, 0
  br i1 %10250, label %10251, label %10268

10251:                                            ; preds = %10246
  %10252 = load i32, ptr %217, align 4, !tbaa !5
  %10253 = call ptr @__errno_location() #10
  store i32 %10252, ptr %10253, align 4, !tbaa !5
  %10254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10255 = load i32, ptr @test_count, align 4, !tbaa !5
  %10256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10257 = load i32, ptr %10256, align 4, !tbaa !5
  %10258 = call ptr @s2n_strerror(i32 noundef %10257, ptr noundef @.str.4)
  %10259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10260 = load i32, ptr %10259, align 4, !tbaa !5
  %10261 = call ptr @s2n_strerror_debug(i32 noundef %10260, ptr noundef @.str.4)
  %10262 = call ptr @__errno_location() #10
  %10263 = load i32, ptr %10262, align 4, !tbaa !5
  %10264 = call ptr @strerror(i32 noundef %10263) #9
  %10265 = call ptr @__errno_location() #10
  %10266 = load i32, ptr %10265, align 4, !tbaa !5
  %10267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10254, ptr noundef @.str.2, i32 noundef %10255, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 413, ptr noundef %10258, ptr noundef %10261, ptr noundef %10264, i32 noundef %10266) #9
  br label %10285

10268:                                            ; preds = %10246, %10239
  %10269 = load i32, ptr %217, align 4, !tbaa !5
  %10270 = call ptr @__errno_location() #10
  store i32 %10269, ptr %10270, align 4, !tbaa !5
  %10271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10272 = load i32, ptr @test_count, align 4, !tbaa !5
  %10273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10274 = load i32, ptr %10273, align 4, !tbaa !5
  %10275 = call ptr @s2n_strerror(i32 noundef %10274, ptr noundef @.str.4)
  %10276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10277 = load i32, ptr %10276, align 4, !tbaa !5
  %10278 = call ptr @s2n_strerror_debug(i32 noundef %10277, ptr noundef @.str.4)
  %10279 = call ptr @__errno_location() #10
  %10280 = load i32, ptr %10279, align 4, !tbaa !5
  %10281 = call ptr @strerror(i32 noundef %10280) #9
  %10282 = call ptr @__errno_location() #10
  %10283 = load i32, ptr %10282, align 4, !tbaa !5
  %10284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10271, ptr noundef @.str.5, i32 noundef %10272, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 413, ptr noundef %10275, ptr noundef %10278, ptr noundef %10281, i32 noundef %10283) #9
  br label %10285

10285:                                            ; preds = %10268, %10251
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #9
  br label %10286

10286:                                            ; preds = %10285
  br label %10287

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

10288:                                            ; No predecessors!
  br label %10289

10289:                                            ; preds = %10288
  br label %10290

10290:                                            ; preds = %10289, %10232
  br label %10291

10291:                                            ; preds = %10290
  br label %10292

10292:                                            ; preds = %10291
  call void @llvm.lifetime.start.p0(i64 16, ptr %218) #9
  call void @llvm.memset.p0.i64(ptr align 8 %218, i8 0, i64 16, i1 false)
  br label %10293

10293:                                            ; preds = %10292
  %10294 = load i32, ptr @test_count, align 4, !tbaa !5
  %10295 = add nsw i32 %10294, 1
  store i32 %10295, ptr @test_count, align 4, !tbaa !5
  %10296 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %216, ptr noundef %218)
  %10297 = icmp eq i32 %10296, -1
  br i1 %10297, label %10298, label %10351

10298:                                            ; preds = %10293
  br label %10299

10299:                                            ; preds = %10298
  br label %10300

10300:                                            ; preds = %10299
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #9
  %10301 = call ptr @__errno_location() #10
  %10302 = load i32, ptr %10301, align 4, !tbaa !5
  store i32 %10302, ptr %219, align 4, !tbaa !5
  %10303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10304 = call i32 @s2n_print_stacktrace(ptr noundef %10303)
  %10305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10306 = trunc i8 %10305 to i1
  br i1 %10306, label %10307, label %10329

10307:                                            ; preds = %10300
  %10308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10309 = call i32 @fileno(ptr noundef %10308) #9
  %10310 = call i32 @isatty(i32 noundef %10309) #9
  %10311 = icmp ne i32 %10310, 0
  br i1 %10311, label %10312, label %10329

10312:                                            ; preds = %10307
  %10313 = load i32, ptr %219, align 4, !tbaa !5
  %10314 = call ptr @__errno_location() #10
  store i32 %10313, ptr %10314, align 4, !tbaa !5
  %10315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10316 = load i32, ptr @test_count, align 4, !tbaa !5
  %10317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10318 = load i32, ptr %10317, align 4, !tbaa !5
  %10319 = call ptr @s2n_strerror(i32 noundef %10318, ptr noundef @.str.4)
  %10320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10321 = load i32, ptr %10320, align 4, !tbaa !5
  %10322 = call ptr @s2n_strerror_debug(i32 noundef %10321, ptr noundef @.str.4)
  %10323 = call ptr @__errno_location() #10
  %10324 = load i32, ptr %10323, align 4, !tbaa !5
  %10325 = call ptr @strerror(i32 noundef %10324) #9
  %10326 = call ptr @__errno_location() #10
  %10327 = load i32, ptr %10326, align 4, !tbaa !5
  %10328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10315, ptr noundef @.str.2, i32 noundef %10316, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 415, ptr noundef %10319, ptr noundef %10322, ptr noundef %10325, i32 noundef %10327) #9
  br label %10346

10329:                                            ; preds = %10307, %10300
  %10330 = load i32, ptr %219, align 4, !tbaa !5
  %10331 = call ptr @__errno_location() #10
  store i32 %10330, ptr %10331, align 4, !tbaa !5
  %10332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10333 = load i32, ptr @test_count, align 4, !tbaa !5
  %10334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10335 = load i32, ptr %10334, align 4, !tbaa !5
  %10336 = call ptr @s2n_strerror(i32 noundef %10335, ptr noundef @.str.4)
  %10337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10338 = load i32, ptr %10337, align 4, !tbaa !5
  %10339 = call ptr @s2n_strerror_debug(i32 noundef %10338, ptr noundef @.str.4)
  %10340 = call ptr @__errno_location() #10
  %10341 = load i32, ptr %10340, align 4, !tbaa !5
  %10342 = call ptr @strerror(i32 noundef %10341) #9
  %10343 = call ptr @__errno_location() #10
  %10344 = load i32, ptr %10343, align 4, !tbaa !5
  %10345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10332, ptr noundef @.str.5, i32 noundef %10333, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 415, ptr noundef %10336, ptr noundef %10339, ptr noundef %10342, i32 noundef %10344) #9
  br label %10346

10346:                                            ; preds = %10329, %10312
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #9
  br label %10347

10347:                                            ; preds = %10346
  br label %10348

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

10349:                                            ; No predecessors!
  br label %10350

10350:                                            ; preds = %10349
  br label %10351

10351:                                            ; preds = %10350, %10293
  br label %10352

10352:                                            ; preds = %10351
  br label %10353

10353:                                            ; preds = %10352
  br label %10354

10354:                                            ; preds = %10353
  %10355 = load i32, ptr @test_count, align 4, !tbaa !5
  %10356 = add nsw i32 %10355, 1
  store i32 %10356, ptr @test_count, align 4, !tbaa !5
  %10357 = load ptr, ptr %211, align 8, !tbaa !9
  %10358 = getelementptr inbounds %struct.s2n_kem_preferences, ptr %10357, i32 0, i32 3
  %10359 = load ptr, ptr %10358, align 8, !tbaa !35
  %10360 = getelementptr inbounds ptr, ptr %10359, i64 0
  %10361 = load ptr, ptr %10360, align 8, !tbaa !9
  %10362 = getelementptr inbounds %struct.s2n_kem_group, ptr %10361, i32 0, i32 1
  %10363 = load i16, ptr %10362, align 8, !tbaa !68
  %10364 = call i32 @s2n_stuffer_write_uint16(ptr noundef %216, i16 noundef zeroext %10363)
  %10365 = icmp eq i32 %10364, -1
  br i1 %10365, label %10366, label %10419

10366:                                            ; preds = %10354
  br label %10367

10367:                                            ; preds = %10366
  br label %10368

10368:                                            ; preds = %10367
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #9
  %10369 = call ptr @__errno_location() #10
  %10370 = load i32, ptr %10369, align 4, !tbaa !5
  store i32 %10370, ptr %220, align 4, !tbaa !5
  %10371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10372 = call i32 @s2n_print_stacktrace(ptr noundef %10371)
  %10373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10374 = trunc i8 %10373 to i1
  br i1 %10374, label %10375, label %10397

10375:                                            ; preds = %10368
  %10376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10377 = call i32 @fileno(ptr noundef %10376) #9
  %10378 = call i32 @isatty(i32 noundef %10377) #9
  %10379 = icmp ne i32 %10378, 0
  br i1 %10379, label %10380, label %10397

10380:                                            ; preds = %10375
  %10381 = load i32, ptr %220, align 4, !tbaa !5
  %10382 = call ptr @__errno_location() #10
  store i32 %10381, ptr %10382, align 4, !tbaa !5
  %10383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10384 = load i32, ptr @test_count, align 4, !tbaa !5
  %10385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10386 = load i32, ptr %10385, align 4, !tbaa !5
  %10387 = call ptr @s2n_strerror(i32 noundef %10386, ptr noundef @.str.4)
  %10388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10389 = load i32, ptr %10388, align 4, !tbaa !5
  %10390 = call ptr @s2n_strerror_debug(i32 noundef %10389, ptr noundef @.str.4)
  %10391 = call ptr @__errno_location() #10
  %10392 = load i32, ptr %10391, align 4, !tbaa !5
  %10393 = call ptr @strerror(i32 noundef %10392) #9
  %10394 = call ptr @__errno_location() #10
  %10395 = load i32, ptr %10394, align 4, !tbaa !5
  %10396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10383, ptr noundef @.str.2, i32 noundef %10384, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 416, ptr noundef %10387, ptr noundef %10390, ptr noundef %10393, i32 noundef %10395) #9
  br label %10414

10397:                                            ; preds = %10375, %10368
  %10398 = load i32, ptr %220, align 4, !tbaa !5
  %10399 = call ptr @__errno_location() #10
  store i32 %10398, ptr %10399, align 4, !tbaa !5
  %10400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10401 = load i32, ptr @test_count, align 4, !tbaa !5
  %10402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10403 = load i32, ptr %10402, align 4, !tbaa !5
  %10404 = call ptr @s2n_strerror(i32 noundef %10403, ptr noundef @.str.4)
  %10405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10406 = load i32, ptr %10405, align 4, !tbaa !5
  %10407 = call ptr @s2n_strerror_debug(i32 noundef %10406, ptr noundef @.str.4)
  %10408 = call ptr @__errno_location() #10
  %10409 = load i32, ptr %10408, align 4, !tbaa !5
  %10410 = call ptr @strerror(i32 noundef %10409) #9
  %10411 = call ptr @__errno_location() #10
  %10412 = load i32, ptr %10411, align 4, !tbaa !5
  %10413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10400, ptr noundef @.str.5, i32 noundef %10401, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 416, ptr noundef %10404, ptr noundef %10407, ptr noundef %10410, i32 noundef %10412) #9
  br label %10414

10414:                                            ; preds = %10397, %10380
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #9
  br label %10415

10415:                                            ; preds = %10414
  br label %10416

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

10417:                                            ; No predecessors!
  br label %10418

10418:                                            ; preds = %10417
  br label %10419

10419:                                            ; preds = %10418, %10354
  br label %10420

10420:                                            ; preds = %10419
  br label %10421

10421:                                            ; preds = %10420
  br label %10422

10422:                                            ; preds = %10421
  %10423 = load i32, ptr @test_count, align 4, !tbaa !5
  %10424 = add nsw i32 %10423, 1
  store i32 %10424, ptr @test_count, align 4, !tbaa !5
  %10425 = load ptr, ptr %208, align 8, !tbaa !9
  %10426 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %10425, i32 0, i32 1
  %10427 = load ptr, ptr %10426, align 8, !tbaa !28
  %10428 = getelementptr inbounds ptr, ptr %10427, i64 0
  %10429 = load ptr, ptr %10428, align 8, !tbaa !9
  %10430 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %10429, i32 0, i32 0
  %10431 = load i16, ptr %10430, align 8, !tbaa !29
  %10432 = call i32 @s2n_stuffer_write_uint16(ptr noundef %216, i16 noundef zeroext %10431)
  %10433 = icmp eq i32 %10432, -1
  br i1 %10433, label %10434, label %10487

10434:                                            ; preds = %10422
  br label %10435

10435:                                            ; preds = %10434
  br label %10436

10436:                                            ; preds = %10435
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #9
  %10437 = call ptr @__errno_location() #10
  %10438 = load i32, ptr %10437, align 4, !tbaa !5
  store i32 %10438, ptr %221, align 4, !tbaa !5
  %10439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10440 = call i32 @s2n_print_stacktrace(ptr noundef %10439)
  %10441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10442 = trunc i8 %10441 to i1
  br i1 %10442, label %10443, label %10465

10443:                                            ; preds = %10436
  %10444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10445 = call i32 @fileno(ptr noundef %10444) #9
  %10446 = call i32 @isatty(i32 noundef %10445) #9
  %10447 = icmp ne i32 %10446, 0
  br i1 %10447, label %10448, label %10465

10448:                                            ; preds = %10443
  %10449 = load i32, ptr %221, align 4, !tbaa !5
  %10450 = call ptr @__errno_location() #10
  store i32 %10449, ptr %10450, align 4, !tbaa !5
  %10451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10452 = load i32, ptr @test_count, align 4, !tbaa !5
  %10453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10454 = load i32, ptr %10453, align 4, !tbaa !5
  %10455 = call ptr @s2n_strerror(i32 noundef %10454, ptr noundef @.str.4)
  %10456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10457 = load i32, ptr %10456, align 4, !tbaa !5
  %10458 = call ptr @s2n_strerror_debug(i32 noundef %10457, ptr noundef @.str.4)
  %10459 = call ptr @__errno_location() #10
  %10460 = load i32, ptr %10459, align 4, !tbaa !5
  %10461 = call ptr @strerror(i32 noundef %10460) #9
  %10462 = call ptr @__errno_location() #10
  %10463 = load i32, ptr %10462, align 4, !tbaa !5
  %10464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10451, ptr noundef @.str.2, i32 noundef %10452, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 417, ptr noundef %10455, ptr noundef %10458, ptr noundef %10461, i32 noundef %10463) #9
  br label %10482

10465:                                            ; preds = %10443, %10436
  %10466 = load i32, ptr %221, align 4, !tbaa !5
  %10467 = call ptr @__errno_location() #10
  store i32 %10466, ptr %10467, align 4, !tbaa !5
  %10468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10469 = load i32, ptr @test_count, align 4, !tbaa !5
  %10470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10471 = load i32, ptr %10470, align 4, !tbaa !5
  %10472 = call ptr @s2n_strerror(i32 noundef %10471, ptr noundef @.str.4)
  %10473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10474 = load i32, ptr %10473, align 4, !tbaa !5
  %10475 = call ptr @s2n_strerror_debug(i32 noundef %10474, ptr noundef @.str.4)
  %10476 = call ptr @__errno_location() #10
  %10477 = load i32, ptr %10476, align 4, !tbaa !5
  %10478 = call ptr @strerror(i32 noundef %10477) #9
  %10479 = call ptr @__errno_location() #10
  %10480 = load i32, ptr %10479, align 4, !tbaa !5
  %10481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10468, ptr noundef @.str.5, i32 noundef %10469, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 417, ptr noundef %10472, ptr noundef %10475, ptr noundef %10478, i32 noundef %10480) #9
  br label %10482

10482:                                            ; preds = %10465, %10448
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #9
  br label %10483

10483:                                            ; preds = %10482
  br label %10484

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

10485:                                            ; No predecessors!
  br label %10486

10486:                                            ; preds = %10485
  br label %10487

10487:                                            ; preds = %10486, %10422
  br label %10488

10488:                                            ; preds = %10487
  br label %10489

10489:                                            ; preds = %10488
  br label %10490

10490:                                            ; preds = %10489
  %10491 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %218)
  %10492 = icmp sgt i32 %10491, -1
  br i1 %10492, label %10494, label %10493

10493:                                            ; preds = %10490
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %88, align 4
  br label %11274

10494:                                            ; preds = %10490
  br label %10495

10495:                                            ; preds = %10494
  br label %10496

10496:                                            ; preds = %10495
  br label %10497

10497:                                            ; preds = %10496
  %10498 = load i32, ptr @test_count, align 4, !tbaa !5
  %10499 = add nsw i32 %10498, 1
  store i32 %10499, ptr @test_count, align 4, !tbaa !5
  %10500 = load ptr, ptr %214, align 8, !tbaa !9
  %10501 = getelementptr inbounds %struct.s2n_connection, ptr %10500, i32 0, i32 31
  %10502 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10501, i32 0, i32 1
  %10503 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %10502, i32 0, i32 0
  %10504 = load ptr, ptr %10503, align 8, !tbaa !73
  %10505 = icmp eq ptr %10504, null
  br i1 %10505, label %10559, label %10506

10506:                                            ; preds = %10497
  br label %10507

10507:                                            ; preds = %10506
  br label %10508

10508:                                            ; preds = %10507
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #9
  %10509 = call ptr @__errno_location() #10
  %10510 = load i32, ptr %10509, align 4, !tbaa !5
  store i32 %10510, ptr %222, align 4, !tbaa !5
  %10511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10512 = call i32 @s2n_print_stacktrace(ptr noundef %10511)
  %10513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10514 = trunc i8 %10513 to i1
  br i1 %10514, label %10515, label %10537

10515:                                            ; preds = %10508
  %10516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10517 = call i32 @fileno(ptr noundef %10516) #9
  %10518 = call i32 @isatty(i32 noundef %10517) #9
  %10519 = icmp ne i32 %10518, 0
  br i1 %10519, label %10520, label %10537

10520:                                            ; preds = %10515
  %10521 = load i32, ptr %222, align 4, !tbaa !5
  %10522 = call ptr @__errno_location() #10
  store i32 %10521, ptr %10522, align 4, !tbaa !5
  %10523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10524 = load i32, ptr @test_count, align 4, !tbaa !5
  %10525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10526 = load i32, ptr %10525, align 4, !tbaa !5
  %10527 = call ptr @s2n_strerror(i32 noundef %10526, ptr noundef @.str.4)
  %10528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10529 = load i32, ptr %10528, align 4, !tbaa !5
  %10530 = call ptr @s2n_strerror_debug(i32 noundef %10529, ptr noundef @.str.4)
  %10531 = call ptr @__errno_location() #10
  %10532 = load i32, ptr %10531, align 4, !tbaa !5
  %10533 = call ptr @strerror(i32 noundef %10532) #9
  %10534 = call ptr @__errno_location() #10
  %10535 = load i32, ptr %10534, align 4, !tbaa !5
  %10536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10523, ptr noundef @.str.2, i32 noundef %10524, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 420, ptr noundef %10527, ptr noundef %10530, ptr noundef %10533, i32 noundef %10535) #9
  br label %10554

10537:                                            ; preds = %10515, %10508
  %10538 = load i32, ptr %222, align 4, !tbaa !5
  %10539 = call ptr @__errno_location() #10
  store i32 %10538, ptr %10539, align 4, !tbaa !5
  %10540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10541 = load i32, ptr @test_count, align 4, !tbaa !5
  %10542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10543 = load i32, ptr %10542, align 4, !tbaa !5
  %10544 = call ptr @s2n_strerror(i32 noundef %10543, ptr noundef @.str.4)
  %10545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10546 = load i32, ptr %10545, align 4, !tbaa !5
  %10547 = call ptr @s2n_strerror_debug(i32 noundef %10546, ptr noundef @.str.4)
  %10548 = call ptr @__errno_location() #10
  %10549 = load i32, ptr %10548, align 4, !tbaa !5
  %10550 = call ptr @strerror(i32 noundef %10549) #9
  %10551 = call ptr @__errno_location() #10
  %10552 = load i32, ptr %10551, align 4, !tbaa !5
  %10553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10540, ptr noundef @.str.5, i32 noundef %10541, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 420, ptr noundef %10544, ptr noundef %10547, ptr noundef %10550, i32 noundef %10552) #9
  br label %10554

10554:                                            ; preds = %10537, %10520
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #9
  br label %10555

10555:                                            ; preds = %10554
  br label %10556

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

10557:                                            ; No predecessors!
  br label %10558

10558:                                            ; preds = %10557
  br label %10559

10559:                                            ; preds = %10558, %10497
  br label %10560

10560:                                            ; preds = %10559
  br label %10561

10561:                                            ; preds = %10560
  br label %10562

10562:                                            ; preds = %10561
  %10563 = load i32, ptr @test_count, align 4, !tbaa !5
  %10564 = add nsw i32 %10563, 1
  store i32 %10564, ptr @test_count, align 4, !tbaa !5
  %10565 = load ptr, ptr %214, align 8, !tbaa !9
  %10566 = getelementptr inbounds %struct.s2n_connection, ptr %10565, i32 0, i32 31
  %10567 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10566, i32 0, i32 4
  %10568 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %10567, i32 0, i32 0
  %10569 = load ptr, ptr %10568, align 8, !tbaa !74
  %10570 = icmp eq ptr %10569, null
  br i1 %10570, label %10624, label %10571

10571:                                            ; preds = %10562
  br label %10572

10572:                                            ; preds = %10571
  br label %10573

10573:                                            ; preds = %10572
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #9
  %10574 = call ptr @__errno_location() #10
  %10575 = load i32, ptr %10574, align 4, !tbaa !5
  store i32 %10575, ptr %223, align 4, !tbaa !5
  %10576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10577 = call i32 @s2n_print_stacktrace(ptr noundef %10576)
  %10578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10579 = trunc i8 %10578 to i1
  br i1 %10579, label %10580, label %10602

10580:                                            ; preds = %10573
  %10581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10582 = call i32 @fileno(ptr noundef %10581) #9
  %10583 = call i32 @isatty(i32 noundef %10582) #9
  %10584 = icmp ne i32 %10583, 0
  br i1 %10584, label %10585, label %10602

10585:                                            ; preds = %10580
  %10586 = load i32, ptr %223, align 4, !tbaa !5
  %10587 = call ptr @__errno_location() #10
  store i32 %10586, ptr %10587, align 4, !tbaa !5
  %10588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10589 = load i32, ptr @test_count, align 4, !tbaa !5
  %10590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10591 = load i32, ptr %10590, align 4, !tbaa !5
  %10592 = call ptr @s2n_strerror(i32 noundef %10591, ptr noundef @.str.4)
  %10593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10594 = load i32, ptr %10593, align 4, !tbaa !5
  %10595 = call ptr @s2n_strerror_debug(i32 noundef %10594, ptr noundef @.str.4)
  %10596 = call ptr @__errno_location() #10
  %10597 = load i32, ptr %10596, align 4, !tbaa !5
  %10598 = call ptr @strerror(i32 noundef %10597) #9
  %10599 = call ptr @__errno_location() #10
  %10600 = load i32, ptr %10599, align 4, !tbaa !5
  %10601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10588, ptr noundef @.str.2, i32 noundef %10589, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 421, ptr noundef %10592, ptr noundef %10595, ptr noundef %10598, i32 noundef %10600) #9
  br label %10619

10602:                                            ; preds = %10580, %10573
  %10603 = load i32, ptr %223, align 4, !tbaa !5
  %10604 = call ptr @__errno_location() #10
  store i32 %10603, ptr %10604, align 4, !tbaa !5
  %10605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10606 = load i32, ptr @test_count, align 4, !tbaa !5
  %10607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10608 = load i32, ptr %10607, align 4, !tbaa !5
  %10609 = call ptr @s2n_strerror(i32 noundef %10608, ptr noundef @.str.4)
  %10610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10611 = load i32, ptr %10610, align 4, !tbaa !5
  %10612 = call ptr @s2n_strerror_debug(i32 noundef %10611, ptr noundef @.str.4)
  %10613 = call ptr @__errno_location() #10
  %10614 = load i32, ptr %10613, align 4, !tbaa !5
  %10615 = call ptr @strerror(i32 noundef %10614) #9
  %10616 = call ptr @__errno_location() #10
  %10617 = load i32, ptr %10616, align 4, !tbaa !5
  %10618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10605, ptr noundef @.str.5, i32 noundef %10606, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 421, ptr noundef %10609, ptr noundef %10612, ptr noundef %10615, i32 noundef %10617) #9
  br label %10619

10619:                                            ; preds = %10602, %10585
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #9
  br label %10620

10620:                                            ; preds = %10619
  br label %10621

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

10622:                                            ; No predecessors!
  br label %10623

10623:                                            ; preds = %10622
  br label %10624

10624:                                            ; preds = %10623, %10562
  br label %10625

10625:                                            ; preds = %10624
  br label %10626

10626:                                            ; preds = %10625
  br label %10627

10627:                                            ; preds = %10626
  %10628 = load i32, ptr @test_count, align 4, !tbaa !5
  %10629 = add nsw i32 %10628, 1
  store i32 %10629, ptr @test_count, align 4, !tbaa !5
  %10630 = load ptr, ptr %214, align 8, !tbaa !9
  %10631 = getelementptr inbounds %struct.s2n_connection, ptr %10630, i32 0, i32 31
  %10632 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10631, i32 0, i32 4
  %10633 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %10632, i32 0, i32 2
  %10634 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %10633, i32 0, i32 0
  %10635 = load ptr, ptr %10634, align 8, !tbaa !75
  %10636 = icmp eq ptr %10635, null
  br i1 %10636, label %10690, label %10637

10637:                                            ; preds = %10627
  br label %10638

10638:                                            ; preds = %10637
  br label %10639

10639:                                            ; preds = %10638
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #9
  %10640 = call ptr @__errno_location() #10
  %10641 = load i32, ptr %10640, align 4, !tbaa !5
  store i32 %10641, ptr %224, align 4, !tbaa !5
  %10642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10643 = call i32 @s2n_print_stacktrace(ptr noundef %10642)
  %10644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10645 = trunc i8 %10644 to i1
  br i1 %10645, label %10646, label %10668

10646:                                            ; preds = %10639
  %10647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10648 = call i32 @fileno(ptr noundef %10647) #9
  %10649 = call i32 @isatty(i32 noundef %10648) #9
  %10650 = icmp ne i32 %10649, 0
  br i1 %10650, label %10651, label %10668

10651:                                            ; preds = %10646
  %10652 = load i32, ptr %224, align 4, !tbaa !5
  %10653 = call ptr @__errno_location() #10
  store i32 %10652, ptr %10653, align 4, !tbaa !5
  %10654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10655 = load i32, ptr @test_count, align 4, !tbaa !5
  %10656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10657 = load i32, ptr %10656, align 4, !tbaa !5
  %10658 = call ptr @s2n_strerror(i32 noundef %10657, ptr noundef @.str.4)
  %10659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10660 = load i32, ptr %10659, align 4, !tbaa !5
  %10661 = call ptr @s2n_strerror_debug(i32 noundef %10660, ptr noundef @.str.4)
  %10662 = call ptr @__errno_location() #10
  %10663 = load i32, ptr %10662, align 4, !tbaa !5
  %10664 = call ptr @strerror(i32 noundef %10663) #9
  %10665 = call ptr @__errno_location() #10
  %10666 = load i32, ptr %10665, align 4, !tbaa !5
  %10667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10654, ptr noundef @.str.2, i32 noundef %10655, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 422, ptr noundef %10658, ptr noundef %10661, ptr noundef %10664, i32 noundef %10666) #9
  br label %10685

10668:                                            ; preds = %10646, %10639
  %10669 = load i32, ptr %224, align 4, !tbaa !5
  %10670 = call ptr @__errno_location() #10
  store i32 %10669, ptr %10670, align 4, !tbaa !5
  %10671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10672 = load i32, ptr @test_count, align 4, !tbaa !5
  %10673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10674 = load i32, ptr %10673, align 4, !tbaa !5
  %10675 = call ptr @s2n_strerror(i32 noundef %10674, ptr noundef @.str.4)
  %10676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10677 = load i32, ptr %10676, align 4, !tbaa !5
  %10678 = call ptr @s2n_strerror_debug(i32 noundef %10677, ptr noundef @.str.4)
  %10679 = call ptr @__errno_location() #10
  %10680 = load i32, ptr %10679, align 4, !tbaa !5
  %10681 = call ptr @strerror(i32 noundef %10680) #9
  %10682 = call ptr @__errno_location() #10
  %10683 = load i32, ptr %10682, align 4, !tbaa !5
  %10684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10671, ptr noundef @.str.5, i32 noundef %10672, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 422, ptr noundef %10675, ptr noundef %10678, ptr noundef %10681, i32 noundef %10683) #9
  br label %10685

10685:                                            ; preds = %10668, %10651
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #9
  br label %10686

10686:                                            ; preds = %10685
  br label %10687

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

10688:                                            ; No predecessors!
  br label %10689

10689:                                            ; preds = %10688
  br label %10690

10690:                                            ; preds = %10689, %10627
  br label %10691

10691:                                            ; preds = %10690
  br label %10692

10692:                                            ; preds = %10691
  br label %10693

10693:                                            ; preds = %10692
  %10694 = load i32, ptr @test_count, align 4, !tbaa !5
  %10695 = add nsw i32 %10694, 1
  store i32 %10695, ptr @test_count, align 4, !tbaa !5
  %10696 = load ptr, ptr %214, align 8, !tbaa !9
  %10697 = getelementptr inbounds %struct.s2n_connection, ptr %10696, i32 0, i32 31
  %10698 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10697, i32 0, i32 4
  %10699 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %10698, i32 0, i32 1
  %10700 = getelementptr inbounds %struct.s2n_kem_params, ptr %10699, i32 0, i32 0
  %10701 = load ptr, ptr %10700, align 8, !tbaa !76
  %10702 = icmp eq ptr %10701, null
  br i1 %10702, label %10756, label %10703

10703:                                            ; preds = %10693
  br label %10704

10704:                                            ; preds = %10703
  br label %10705

10705:                                            ; preds = %10704
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #9
  %10706 = call ptr @__errno_location() #10
  %10707 = load i32, ptr %10706, align 4, !tbaa !5
  store i32 %10707, ptr %225, align 4, !tbaa !5
  %10708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10709 = call i32 @s2n_print_stacktrace(ptr noundef %10708)
  %10710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10711 = trunc i8 %10710 to i1
  br i1 %10711, label %10712, label %10734

10712:                                            ; preds = %10705
  %10713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10714 = call i32 @fileno(ptr noundef %10713) #9
  %10715 = call i32 @isatty(i32 noundef %10714) #9
  %10716 = icmp ne i32 %10715, 0
  br i1 %10716, label %10717, label %10734

10717:                                            ; preds = %10712
  %10718 = load i32, ptr %225, align 4, !tbaa !5
  %10719 = call ptr @__errno_location() #10
  store i32 %10718, ptr %10719, align 4, !tbaa !5
  %10720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10721 = load i32, ptr @test_count, align 4, !tbaa !5
  %10722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10723 = load i32, ptr %10722, align 4, !tbaa !5
  %10724 = call ptr @s2n_strerror(i32 noundef %10723, ptr noundef @.str.4)
  %10725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10726 = load i32, ptr %10725, align 4, !tbaa !5
  %10727 = call ptr @s2n_strerror_debug(i32 noundef %10726, ptr noundef @.str.4)
  %10728 = call ptr @__errno_location() #10
  %10729 = load i32, ptr %10728, align 4, !tbaa !5
  %10730 = call ptr @strerror(i32 noundef %10729) #9
  %10731 = call ptr @__errno_location() #10
  %10732 = load i32, ptr %10731, align 4, !tbaa !5
  %10733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10720, ptr noundef @.str.2, i32 noundef %10721, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 423, ptr noundef %10724, ptr noundef %10727, ptr noundef %10730, i32 noundef %10732) #9
  br label %10751

10734:                                            ; preds = %10712, %10705
  %10735 = load i32, ptr %225, align 4, !tbaa !5
  %10736 = call ptr @__errno_location() #10
  store i32 %10735, ptr %10736, align 4, !tbaa !5
  %10737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10738 = load i32, ptr @test_count, align 4, !tbaa !5
  %10739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10740 = load i32, ptr %10739, align 4, !tbaa !5
  %10741 = call ptr @s2n_strerror(i32 noundef %10740, ptr noundef @.str.4)
  %10742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10743 = load i32, ptr %10742, align 4, !tbaa !5
  %10744 = call ptr @s2n_strerror_debug(i32 noundef %10743, ptr noundef @.str.4)
  %10745 = call ptr @__errno_location() #10
  %10746 = load i32, ptr %10745, align 4, !tbaa !5
  %10747 = call ptr @strerror(i32 noundef %10746) #9
  %10748 = call ptr @__errno_location() #10
  %10749 = load i32, ptr %10748, align 4, !tbaa !5
  %10750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10737, ptr noundef @.str.5, i32 noundef %10738, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 423, ptr noundef %10741, ptr noundef %10744, ptr noundef %10747, i32 noundef %10749) #9
  br label %10751

10751:                                            ; preds = %10734, %10717
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #9
  br label %10752

10752:                                            ; preds = %10751
  br label %10753

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

10754:                                            ; No predecessors!
  br label %10755

10755:                                            ; preds = %10754
  br label %10756

10756:                                            ; preds = %10755, %10693
  br label %10757

10757:                                            ; preds = %10756
  br label %10758

10758:                                            ; preds = %10757
  br label %10759

10759:                                            ; preds = %10758
  %10760 = load i32, ptr @test_count, align 4, !tbaa !5
  %10761 = add nsw i32 %10760, 1
  store i32 %10761, ptr @test_count, align 4, !tbaa !5
  %10762 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 4), align 8, !tbaa !77
  %10763 = load ptr, ptr %214, align 8, !tbaa !9
  %10764 = call i32 %10762(ptr noundef %10763, ptr noundef %216)
  %10765 = icmp eq i32 %10764, -1
  br i1 %10765, label %10766, label %10819

10766:                                            ; preds = %10759
  br label %10767

10767:                                            ; preds = %10766
  br label %10768

10768:                                            ; preds = %10767
  call void @llvm.lifetime.start.p0(i64 4, ptr %226) #9
  %10769 = call ptr @__errno_location() #10
  %10770 = load i32, ptr %10769, align 4, !tbaa !5
  store i32 %10770, ptr %226, align 4, !tbaa !5
  %10771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10772 = call i32 @s2n_print_stacktrace(ptr noundef %10771)
  %10773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10774 = trunc i8 %10773 to i1
  br i1 %10774, label %10775, label %10797

10775:                                            ; preds = %10768
  %10776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10777 = call i32 @fileno(ptr noundef %10776) #9
  %10778 = call i32 @isatty(i32 noundef %10777) #9
  %10779 = icmp ne i32 %10778, 0
  br i1 %10779, label %10780, label %10797

10780:                                            ; preds = %10775
  %10781 = load i32, ptr %226, align 4, !tbaa !5
  %10782 = call ptr @__errno_location() #10
  store i32 %10781, ptr %10782, align 4, !tbaa !5
  %10783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10784 = load i32, ptr @test_count, align 4, !tbaa !5
  %10785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10786 = load i32, ptr %10785, align 4, !tbaa !5
  %10787 = call ptr @s2n_strerror(i32 noundef %10786, ptr noundef @.str.4)
  %10788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10789 = load i32, ptr %10788, align 4, !tbaa !5
  %10790 = call ptr @s2n_strerror_debug(i32 noundef %10789, ptr noundef @.str.4)
  %10791 = call ptr @__errno_location() #10
  %10792 = load i32, ptr %10791, align 4, !tbaa !5
  %10793 = call ptr @strerror(i32 noundef %10792) #9
  %10794 = call ptr @__errno_location() #10
  %10795 = load i32, ptr %10794, align 4, !tbaa !5
  %10796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10783, ptr noundef @.str.2, i32 noundef %10784, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 425, ptr noundef %10787, ptr noundef %10790, ptr noundef %10793, i32 noundef %10795) #9
  br label %10814

10797:                                            ; preds = %10775, %10768
  %10798 = load i32, ptr %226, align 4, !tbaa !5
  %10799 = call ptr @__errno_location() #10
  store i32 %10798, ptr %10799, align 4, !tbaa !5
  %10800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10801 = load i32, ptr @test_count, align 4, !tbaa !5
  %10802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10803 = load i32, ptr %10802, align 4, !tbaa !5
  %10804 = call ptr @s2n_strerror(i32 noundef %10803, ptr noundef @.str.4)
  %10805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10806 = load i32, ptr %10805, align 4, !tbaa !5
  %10807 = call ptr @s2n_strerror_debug(i32 noundef %10806, ptr noundef @.str.4)
  %10808 = call ptr @__errno_location() #10
  %10809 = load i32, ptr %10808, align 4, !tbaa !5
  %10810 = call ptr @strerror(i32 noundef %10809) #9
  %10811 = call ptr @__errno_location() #10
  %10812 = load i32, ptr %10811, align 4, !tbaa !5
  %10813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10800, ptr noundef @.str.5, i32 noundef %10801, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 425, ptr noundef %10804, ptr noundef %10807, ptr noundef %10810, i32 noundef %10812) #9
  br label %10814

10814:                                            ; preds = %10797, %10780
  call void @llvm.lifetime.end.p0(i64 4, ptr %226) #9
  br label %10815

10815:                                            ; preds = %10814
  br label %10816

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

10817:                                            ; No predecessors!
  br label %10818

10818:                                            ; preds = %10817
  br label %10819

10819:                                            ; preds = %10818, %10759
  br label %10820

10820:                                            ; preds = %10819
  br label %10821

10821:                                            ; preds = %10820
  br label %10822

10822:                                            ; preds = %10821
  %10823 = load i32, ptr @test_count, align 4, !tbaa !5
  %10824 = add nsw i32 %10823, 1
  store i32 %10824, ptr @test_count, align 4, !tbaa !5
  %10825 = load ptr, ptr %214, align 8, !tbaa !9
  %10826 = getelementptr inbounds %struct.s2n_connection, ptr %10825, i32 0, i32 31
  %10827 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10826, i32 0, i32 1
  %10828 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %10827, i32 0, i32 0
  %10829 = load ptr, ptr %10828, align 8, !tbaa !73
  %10830 = load ptr, ptr %208, align 8, !tbaa !9
  %10831 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %10830, i32 0, i32 1
  %10832 = load ptr, ptr %10831, align 8, !tbaa !28
  %10833 = getelementptr inbounds ptr, ptr %10832, i64 0
  %10834 = load ptr, ptr %10833, align 8, !tbaa !9
  %10835 = icmp eq ptr %10829, %10834
  br i1 %10835, label %10889, label %10836

10836:                                            ; preds = %10822
  br label %10837

10837:                                            ; preds = %10836
  br label %10838

10838:                                            ; preds = %10837
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #9
  %10839 = call ptr @__errno_location() #10
  %10840 = load i32, ptr %10839, align 4, !tbaa !5
  store i32 %10840, ptr %227, align 4, !tbaa !5
  %10841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10842 = call i32 @s2n_print_stacktrace(ptr noundef %10841)
  %10843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10844 = trunc i8 %10843 to i1
  br i1 %10844, label %10845, label %10867

10845:                                            ; preds = %10838
  %10846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10847 = call i32 @fileno(ptr noundef %10846) #9
  %10848 = call i32 @isatty(i32 noundef %10847) #9
  %10849 = icmp ne i32 %10848, 0
  br i1 %10849, label %10850, label %10867

10850:                                            ; preds = %10845
  %10851 = load i32, ptr %227, align 4, !tbaa !5
  %10852 = call ptr @__errno_location() #10
  store i32 %10851, ptr %10852, align 4, !tbaa !5
  %10853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10854 = load i32, ptr @test_count, align 4, !tbaa !5
  %10855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10856 = load i32, ptr %10855, align 4, !tbaa !5
  %10857 = call ptr @s2n_strerror(i32 noundef %10856, ptr noundef @.str.4)
  %10858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10859 = load i32, ptr %10858, align 4, !tbaa !5
  %10860 = call ptr @s2n_strerror_debug(i32 noundef %10859, ptr noundef @.str.4)
  %10861 = call ptr @__errno_location() #10
  %10862 = load i32, ptr %10861, align 4, !tbaa !5
  %10863 = call ptr @strerror(i32 noundef %10862) #9
  %10864 = call ptr @__errno_location() #10
  %10865 = load i32, ptr %10864, align 4, !tbaa !5
  %10866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10853, ptr noundef @.str.2, i32 noundef %10854, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 427, ptr noundef %10857, ptr noundef %10860, ptr noundef %10863, i32 noundef %10865) #9
  br label %10884

10867:                                            ; preds = %10845, %10838
  %10868 = load i32, ptr %227, align 4, !tbaa !5
  %10869 = call ptr @__errno_location() #10
  store i32 %10868, ptr %10869, align 4, !tbaa !5
  %10870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10871 = load i32, ptr @test_count, align 4, !tbaa !5
  %10872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10873 = load i32, ptr %10872, align 4, !tbaa !5
  %10874 = call ptr @s2n_strerror(i32 noundef %10873, ptr noundef @.str.4)
  %10875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10876 = load i32, ptr %10875, align 4, !tbaa !5
  %10877 = call ptr @s2n_strerror_debug(i32 noundef %10876, ptr noundef @.str.4)
  %10878 = call ptr @__errno_location() #10
  %10879 = load i32, ptr %10878, align 4, !tbaa !5
  %10880 = call ptr @strerror(i32 noundef %10879) #9
  %10881 = call ptr @__errno_location() #10
  %10882 = load i32, ptr %10881, align 4, !tbaa !5
  %10883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10870, ptr noundef @.str.5, i32 noundef %10871, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 427, ptr noundef %10874, ptr noundef %10877, ptr noundef %10880, i32 noundef %10882) #9
  br label %10884

10884:                                            ; preds = %10867, %10850
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #9
  br label %10885

10885:                                            ; preds = %10884
  br label %10886

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

10887:                                            ; No predecessors!
  br label %10888

10888:                                            ; preds = %10887
  br label %10889

10889:                                            ; preds = %10888, %10822
  br label %10890

10890:                                            ; preds = %10889
  br label %10891

10891:                                            ; preds = %10890
  br label %10892

10892:                                            ; preds = %10891
  %10893 = load i32, ptr @test_count, align 4, !tbaa !5
  %10894 = add nsw i32 %10893, 1
  store i32 %10894, ptr @test_count, align 4, !tbaa !5
  %10895 = load ptr, ptr %214, align 8, !tbaa !9
  %10896 = getelementptr inbounds %struct.s2n_connection, ptr %10895, i32 0, i32 31
  %10897 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10896, i32 0, i32 4
  %10898 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %10897, i32 0, i32 0
  %10899 = load ptr, ptr %10898, align 8, !tbaa !74
  %10900 = icmp eq ptr %10899, null
  br i1 %10900, label %10954, label %10901

10901:                                            ; preds = %10892
  br label %10902

10902:                                            ; preds = %10901
  br label %10903

10903:                                            ; preds = %10902
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #9
  %10904 = call ptr @__errno_location() #10
  %10905 = load i32, ptr %10904, align 4, !tbaa !5
  store i32 %10905, ptr %228, align 4, !tbaa !5
  %10906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10907 = call i32 @s2n_print_stacktrace(ptr noundef %10906)
  %10908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10909 = trunc i8 %10908 to i1
  br i1 %10909, label %10910, label %10932

10910:                                            ; preds = %10903
  %10911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10912 = call i32 @fileno(ptr noundef %10911) #9
  %10913 = call i32 @isatty(i32 noundef %10912) #9
  %10914 = icmp ne i32 %10913, 0
  br i1 %10914, label %10915, label %10932

10915:                                            ; preds = %10910
  %10916 = load i32, ptr %228, align 4, !tbaa !5
  %10917 = call ptr @__errno_location() #10
  store i32 %10916, ptr %10917, align 4, !tbaa !5
  %10918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10919 = load i32, ptr @test_count, align 4, !tbaa !5
  %10920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10921 = load i32, ptr %10920, align 4, !tbaa !5
  %10922 = call ptr @s2n_strerror(i32 noundef %10921, ptr noundef @.str.4)
  %10923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10924 = load i32, ptr %10923, align 4, !tbaa !5
  %10925 = call ptr @s2n_strerror_debug(i32 noundef %10924, ptr noundef @.str.4)
  %10926 = call ptr @__errno_location() #10
  %10927 = load i32, ptr %10926, align 4, !tbaa !5
  %10928 = call ptr @strerror(i32 noundef %10927) #9
  %10929 = call ptr @__errno_location() #10
  %10930 = load i32, ptr %10929, align 4, !tbaa !5
  %10931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10918, ptr noundef @.str.2, i32 noundef %10919, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 428, ptr noundef %10922, ptr noundef %10925, ptr noundef %10928, i32 noundef %10930) #9
  br label %10949

10932:                                            ; preds = %10910, %10903
  %10933 = load i32, ptr %228, align 4, !tbaa !5
  %10934 = call ptr @__errno_location() #10
  store i32 %10933, ptr %10934, align 4, !tbaa !5
  %10935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10936 = load i32, ptr @test_count, align 4, !tbaa !5
  %10937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10938 = load i32, ptr %10937, align 4, !tbaa !5
  %10939 = call ptr @s2n_strerror(i32 noundef %10938, ptr noundef @.str.4)
  %10940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10941 = load i32, ptr %10940, align 4, !tbaa !5
  %10942 = call ptr @s2n_strerror_debug(i32 noundef %10941, ptr noundef @.str.4)
  %10943 = call ptr @__errno_location() #10
  %10944 = load i32, ptr %10943, align 4, !tbaa !5
  %10945 = call ptr @strerror(i32 noundef %10944) #9
  %10946 = call ptr @__errno_location() #10
  %10947 = load i32, ptr %10946, align 4, !tbaa !5
  %10948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10935, ptr noundef @.str.5, i32 noundef %10936, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 428, ptr noundef %10939, ptr noundef %10942, ptr noundef %10945, i32 noundef %10947) #9
  br label %10949

10949:                                            ; preds = %10932, %10915
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #9
  br label %10950

10950:                                            ; preds = %10949
  br label %10951

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

10952:                                            ; No predecessors!
  br label %10953

10953:                                            ; preds = %10952
  br label %10954

10954:                                            ; preds = %10953, %10892
  br label %10955

10955:                                            ; preds = %10954
  br label %10956

10956:                                            ; preds = %10955
  br label %10957

10957:                                            ; preds = %10956
  %10958 = load i32, ptr @test_count, align 4, !tbaa !5
  %10959 = add nsw i32 %10958, 1
  store i32 %10959, ptr @test_count, align 4, !tbaa !5
  %10960 = load ptr, ptr %214, align 8, !tbaa !9
  %10961 = getelementptr inbounds %struct.s2n_connection, ptr %10960, i32 0, i32 31
  %10962 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %10961, i32 0, i32 4
  %10963 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %10962, i32 0, i32 2
  %10964 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %10963, i32 0, i32 0
  %10965 = load ptr, ptr %10964, align 8, !tbaa !75
  %10966 = icmp eq ptr %10965, null
  br i1 %10966, label %11020, label %10967

10967:                                            ; preds = %10957
  br label %10968

10968:                                            ; preds = %10967
  br label %10969

10969:                                            ; preds = %10968
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #9
  %10970 = call ptr @__errno_location() #10
  %10971 = load i32, ptr %10970, align 4, !tbaa !5
  store i32 %10971, ptr %229, align 4, !tbaa !5
  %10972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10973 = call i32 @s2n_print_stacktrace(ptr noundef %10972)
  %10974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10975 = trunc i8 %10974 to i1
  br i1 %10975, label %10976, label %10998

10976:                                            ; preds = %10969
  %10977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10978 = call i32 @fileno(ptr noundef %10977) #9
  %10979 = call i32 @isatty(i32 noundef %10978) #9
  %10980 = icmp ne i32 %10979, 0
  br i1 %10980, label %10981, label %10998

10981:                                            ; preds = %10976
  %10982 = load i32, ptr %229, align 4, !tbaa !5
  %10983 = call ptr @__errno_location() #10
  store i32 %10982, ptr %10983, align 4, !tbaa !5
  %10984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10985 = load i32, ptr @test_count, align 4, !tbaa !5
  %10986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10987 = load i32, ptr %10986, align 4, !tbaa !5
  %10988 = call ptr @s2n_strerror(i32 noundef %10987, ptr noundef @.str.4)
  %10989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10990 = load i32, ptr %10989, align 4, !tbaa !5
  %10991 = call ptr @s2n_strerror_debug(i32 noundef %10990, ptr noundef @.str.4)
  %10992 = call ptr @__errno_location() #10
  %10993 = load i32, ptr %10992, align 4, !tbaa !5
  %10994 = call ptr @strerror(i32 noundef %10993) #9
  %10995 = call ptr @__errno_location() #10
  %10996 = load i32, ptr %10995, align 4, !tbaa !5
  %10997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10984, ptr noundef @.str.2, i32 noundef %10985, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 429, ptr noundef %10988, ptr noundef %10991, ptr noundef %10994, i32 noundef %10996) #9
  br label %11015

10998:                                            ; preds = %10976, %10969
  %10999 = load i32, ptr %229, align 4, !tbaa !5
  %11000 = call ptr @__errno_location() #10
  store i32 %10999, ptr %11000, align 4, !tbaa !5
  %11001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11002 = load i32, ptr @test_count, align 4, !tbaa !5
  %11003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11004 = load i32, ptr %11003, align 4, !tbaa !5
  %11005 = call ptr @s2n_strerror(i32 noundef %11004, ptr noundef @.str.4)
  %11006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11007 = load i32, ptr %11006, align 4, !tbaa !5
  %11008 = call ptr @s2n_strerror_debug(i32 noundef %11007, ptr noundef @.str.4)
  %11009 = call ptr @__errno_location() #10
  %11010 = load i32, ptr %11009, align 4, !tbaa !5
  %11011 = call ptr @strerror(i32 noundef %11010) #9
  %11012 = call ptr @__errno_location() #10
  %11013 = load i32, ptr %11012, align 4, !tbaa !5
  %11014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11001, ptr noundef @.str.5, i32 noundef %11002, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 429, ptr noundef %11005, ptr noundef %11008, ptr noundef %11011, i32 noundef %11013) #9
  br label %11015

11015:                                            ; preds = %10998, %10981
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #9
  br label %11016

11016:                                            ; preds = %11015
  br label %11017

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

11018:                                            ; No predecessors!
  br label %11019

11019:                                            ; preds = %11018
  br label %11020

11020:                                            ; preds = %11019, %10957
  br label %11021

11021:                                            ; preds = %11020
  br label %11022

11022:                                            ; preds = %11021
  br label %11023

11023:                                            ; preds = %11022
  %11024 = load i32, ptr @test_count, align 4, !tbaa !5
  %11025 = add nsw i32 %11024, 1
  store i32 %11025, ptr @test_count, align 4, !tbaa !5
  %11026 = load ptr, ptr %214, align 8, !tbaa !9
  %11027 = getelementptr inbounds %struct.s2n_connection, ptr %11026, i32 0, i32 31
  %11028 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11027, i32 0, i32 4
  %11029 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %11028, i32 0, i32 1
  %11030 = getelementptr inbounds %struct.s2n_kem_params, ptr %11029, i32 0, i32 0
  %11031 = load ptr, ptr %11030, align 8, !tbaa !76
  %11032 = icmp eq ptr %11031, null
  br i1 %11032, label %11086, label %11033

11033:                                            ; preds = %11023
  br label %11034

11034:                                            ; preds = %11033
  br label %11035

11035:                                            ; preds = %11034
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #9
  %11036 = call ptr @__errno_location() #10
  %11037 = load i32, ptr %11036, align 4, !tbaa !5
  store i32 %11037, ptr %230, align 4, !tbaa !5
  %11038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11039 = call i32 @s2n_print_stacktrace(ptr noundef %11038)
  %11040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11041 = trunc i8 %11040 to i1
  br i1 %11041, label %11042, label %11064

11042:                                            ; preds = %11035
  %11043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11044 = call i32 @fileno(ptr noundef %11043) #9
  %11045 = call i32 @isatty(i32 noundef %11044) #9
  %11046 = icmp ne i32 %11045, 0
  br i1 %11046, label %11047, label %11064

11047:                                            ; preds = %11042
  %11048 = load i32, ptr %230, align 4, !tbaa !5
  %11049 = call ptr @__errno_location() #10
  store i32 %11048, ptr %11049, align 4, !tbaa !5
  %11050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11051 = load i32, ptr @test_count, align 4, !tbaa !5
  %11052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11053 = load i32, ptr %11052, align 4, !tbaa !5
  %11054 = call ptr @s2n_strerror(i32 noundef %11053, ptr noundef @.str.4)
  %11055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11056 = load i32, ptr %11055, align 4, !tbaa !5
  %11057 = call ptr @s2n_strerror_debug(i32 noundef %11056, ptr noundef @.str.4)
  %11058 = call ptr @__errno_location() #10
  %11059 = load i32, ptr %11058, align 4, !tbaa !5
  %11060 = call ptr @strerror(i32 noundef %11059) #9
  %11061 = call ptr @__errno_location() #10
  %11062 = load i32, ptr %11061, align 4, !tbaa !5
  %11063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11050, ptr noundef @.str.2, i32 noundef %11051, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 430, ptr noundef %11054, ptr noundef %11057, ptr noundef %11060, i32 noundef %11062) #9
  br label %11081

11064:                                            ; preds = %11042, %11035
  %11065 = load i32, ptr %230, align 4, !tbaa !5
  %11066 = call ptr @__errno_location() #10
  store i32 %11065, ptr %11066, align 4, !tbaa !5
  %11067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11068 = load i32, ptr @test_count, align 4, !tbaa !5
  %11069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11070 = load i32, ptr %11069, align 4, !tbaa !5
  %11071 = call ptr @s2n_strerror(i32 noundef %11070, ptr noundef @.str.4)
  %11072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11073 = load i32, ptr %11072, align 4, !tbaa !5
  %11074 = call ptr @s2n_strerror_debug(i32 noundef %11073, ptr noundef @.str.4)
  %11075 = call ptr @__errno_location() #10
  %11076 = load i32, ptr %11075, align 4, !tbaa !5
  %11077 = call ptr @strerror(i32 noundef %11076) #9
  %11078 = call ptr @__errno_location() #10
  %11079 = load i32, ptr %11078, align 4, !tbaa !5
  %11080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11067, ptr noundef @.str.5, i32 noundef %11068, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 430, ptr noundef %11071, ptr noundef %11074, ptr noundef %11077, i32 noundef %11079) #9
  br label %11081

11081:                                            ; preds = %11064, %11047
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #9
  br label %11082

11082:                                            ; preds = %11081
  br label %11083

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

11084:                                            ; No predecessors!
  br label %11085

11085:                                            ; preds = %11084
  br label %11086

11086:                                            ; preds = %11085, %11023
  br label %11087

11087:                                            ; preds = %11086
  br label %11088

11088:                                            ; preds = %11087
  br label %11089

11089:                                            ; preds = %11088
  %11090 = load i32, ptr @test_count, align 4, !tbaa !5
  %11091 = add nsw i32 %11090, 1
  store i32 %11091, ptr @test_count, align 4, !tbaa !5
  %11092 = load ptr, ptr %206, align 8, !tbaa !9
  %11093 = call i32 @s2n_connection_free(ptr noundef %11092)
  %11094 = icmp eq i32 %11093, -1
  br i1 %11094, label %11095, label %11148

11095:                                            ; preds = %11089
  br label %11096

11096:                                            ; preds = %11095
  br label %11097

11097:                                            ; preds = %11096
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #9
  %11098 = call ptr @__errno_location() #10
  %11099 = load i32, ptr %11098, align 4, !tbaa !5
  store i32 %11099, ptr %231, align 4, !tbaa !5
  %11100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11101 = call i32 @s2n_print_stacktrace(ptr noundef %11100)
  %11102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11103 = trunc i8 %11102 to i1
  br i1 %11103, label %11104, label %11126

11104:                                            ; preds = %11097
  %11105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11106 = call i32 @fileno(ptr noundef %11105) #9
  %11107 = call i32 @isatty(i32 noundef %11106) #9
  %11108 = icmp ne i32 %11107, 0
  br i1 %11108, label %11109, label %11126

11109:                                            ; preds = %11104
  %11110 = load i32, ptr %231, align 4, !tbaa !5
  %11111 = call ptr @__errno_location() #10
  store i32 %11110, ptr %11111, align 4, !tbaa !5
  %11112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11113 = load i32, ptr @test_count, align 4, !tbaa !5
  %11114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11115 = load i32, ptr %11114, align 4, !tbaa !5
  %11116 = call ptr @s2n_strerror(i32 noundef %11115, ptr noundef @.str.4)
  %11117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11118 = load i32, ptr %11117, align 4, !tbaa !5
  %11119 = call ptr @s2n_strerror_debug(i32 noundef %11118, ptr noundef @.str.4)
  %11120 = call ptr @__errno_location() #10
  %11121 = load i32, ptr %11120, align 4, !tbaa !5
  %11122 = call ptr @strerror(i32 noundef %11121) #9
  %11123 = call ptr @__errno_location() #10
  %11124 = load i32, ptr %11123, align 4, !tbaa !5
  %11125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11112, ptr noundef @.str.2, i32 noundef %11113, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 432, ptr noundef %11116, ptr noundef %11119, ptr noundef %11122, i32 noundef %11124) #9
  br label %11143

11126:                                            ; preds = %11104, %11097
  %11127 = load i32, ptr %231, align 4, !tbaa !5
  %11128 = call ptr @__errno_location() #10
  store i32 %11127, ptr %11128, align 4, !tbaa !5
  %11129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11130 = load i32, ptr @test_count, align 4, !tbaa !5
  %11131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11132 = load i32, ptr %11131, align 4, !tbaa !5
  %11133 = call ptr @s2n_strerror(i32 noundef %11132, ptr noundef @.str.4)
  %11134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11135 = load i32, ptr %11134, align 4, !tbaa !5
  %11136 = call ptr @s2n_strerror_debug(i32 noundef %11135, ptr noundef @.str.4)
  %11137 = call ptr @__errno_location() #10
  %11138 = load i32, ptr %11137, align 4, !tbaa !5
  %11139 = call ptr @strerror(i32 noundef %11138) #9
  %11140 = call ptr @__errno_location() #10
  %11141 = load i32, ptr %11140, align 4, !tbaa !5
  %11142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11129, ptr noundef @.str.5, i32 noundef %11130, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 432, ptr noundef %11133, ptr noundef %11136, ptr noundef %11139, i32 noundef %11141) #9
  br label %11143

11143:                                            ; preds = %11126, %11109
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #9
  br label %11144

11144:                                            ; preds = %11143
  br label %11145

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

11146:                                            ; No predecessors!
  br label %11147

11147:                                            ; preds = %11146
  br label %11148

11148:                                            ; preds = %11147, %11089
  br label %11149

11149:                                            ; preds = %11148
  br label %11150

11150:                                            ; preds = %11149
  br label %11151

11151:                                            ; preds = %11150
  %11152 = load i32, ptr @test_count, align 4, !tbaa !5
  %11153 = add nsw i32 %11152, 1
  store i32 %11153, ptr @test_count, align 4, !tbaa !5
  %11154 = load ptr, ptr %214, align 8, !tbaa !9
  %11155 = call i32 @s2n_connection_free(ptr noundef %11154)
  %11156 = icmp eq i32 %11155, -1
  br i1 %11156, label %11157, label %11210

11157:                                            ; preds = %11151
  br label %11158

11158:                                            ; preds = %11157
  br label %11159

11159:                                            ; preds = %11158
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #9
  %11160 = call ptr @__errno_location() #10
  %11161 = load i32, ptr %11160, align 4, !tbaa !5
  store i32 %11161, ptr %232, align 4, !tbaa !5
  %11162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11163 = call i32 @s2n_print_stacktrace(ptr noundef %11162)
  %11164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11165 = trunc i8 %11164 to i1
  br i1 %11165, label %11166, label %11188

11166:                                            ; preds = %11159
  %11167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11168 = call i32 @fileno(ptr noundef %11167) #9
  %11169 = call i32 @isatty(i32 noundef %11168) #9
  %11170 = icmp ne i32 %11169, 0
  br i1 %11170, label %11171, label %11188

11171:                                            ; preds = %11166
  %11172 = load i32, ptr %232, align 4, !tbaa !5
  %11173 = call ptr @__errno_location() #10
  store i32 %11172, ptr %11173, align 4, !tbaa !5
  %11174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11175 = load i32, ptr @test_count, align 4, !tbaa !5
  %11176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11177 = load i32, ptr %11176, align 4, !tbaa !5
  %11178 = call ptr @s2n_strerror(i32 noundef %11177, ptr noundef @.str.4)
  %11179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11180 = load i32, ptr %11179, align 4, !tbaa !5
  %11181 = call ptr @s2n_strerror_debug(i32 noundef %11180, ptr noundef @.str.4)
  %11182 = call ptr @__errno_location() #10
  %11183 = load i32, ptr %11182, align 4, !tbaa !5
  %11184 = call ptr @strerror(i32 noundef %11183) #9
  %11185 = call ptr @__errno_location() #10
  %11186 = load i32, ptr %11185, align 4, !tbaa !5
  %11187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11174, ptr noundef @.str.2, i32 noundef %11175, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 433, ptr noundef %11178, ptr noundef %11181, ptr noundef %11184, i32 noundef %11186) #9
  br label %11205

11188:                                            ; preds = %11166, %11159
  %11189 = load i32, ptr %232, align 4, !tbaa !5
  %11190 = call ptr @__errno_location() #10
  store i32 %11189, ptr %11190, align 4, !tbaa !5
  %11191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11192 = load i32, ptr @test_count, align 4, !tbaa !5
  %11193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11194 = load i32, ptr %11193, align 4, !tbaa !5
  %11195 = call ptr @s2n_strerror(i32 noundef %11194, ptr noundef @.str.4)
  %11196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11197 = load i32, ptr %11196, align 4, !tbaa !5
  %11198 = call ptr @s2n_strerror_debug(i32 noundef %11197, ptr noundef @.str.4)
  %11199 = call ptr @__errno_location() #10
  %11200 = load i32, ptr %11199, align 4, !tbaa !5
  %11201 = call ptr @strerror(i32 noundef %11200) #9
  %11202 = call ptr @__errno_location() #10
  %11203 = load i32, ptr %11202, align 4, !tbaa !5
  %11204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11191, ptr noundef @.str.5, i32 noundef %11192, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 433, ptr noundef %11195, ptr noundef %11198, ptr noundef %11201, i32 noundef %11203) #9
  br label %11205

11205:                                            ; preds = %11188, %11171
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #9
  br label %11206

11206:                                            ; preds = %11205
  br label %11207

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

11208:                                            ; No predecessors!
  br label %11209

11209:                                            ; preds = %11208
  br label %11210

11210:                                            ; preds = %11209, %11151
  br label %11211

11211:                                            ; preds = %11210
  br label %11212

11212:                                            ; preds = %11211
  br label %11213

11213:                                            ; preds = %11212
  %11214 = load i32, ptr @test_count, align 4, !tbaa !5
  %11215 = add nsw i32 %11214, 1
  store i32 %11215, ptr @test_count, align 4, !tbaa !5
  %11216 = call i32 (...) @s2n_disable_tls13_in_test()
  %11217 = icmp eq i32 %11216, -1
  br i1 %11217, label %11218, label %11271

11218:                                            ; preds = %11213
  br label %11219

11219:                                            ; preds = %11218
  br label %11220

11220:                                            ; preds = %11219
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #9
  %11221 = call ptr @__errno_location() #10
  %11222 = load i32, ptr %11221, align 4, !tbaa !5
  store i32 %11222, ptr %233, align 4, !tbaa !5
  %11223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11224 = call i32 @s2n_print_stacktrace(ptr noundef %11223)
  %11225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11226 = trunc i8 %11225 to i1
  br i1 %11226, label %11227, label %11249

11227:                                            ; preds = %11220
  %11228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11229 = call i32 @fileno(ptr noundef %11228) #9
  %11230 = call i32 @isatty(i32 noundef %11229) #9
  %11231 = icmp ne i32 %11230, 0
  br i1 %11231, label %11232, label %11249

11232:                                            ; preds = %11227
  %11233 = load i32, ptr %233, align 4, !tbaa !5
  %11234 = call ptr @__errno_location() #10
  store i32 %11233, ptr %11234, align 4, !tbaa !5
  %11235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11236 = load i32, ptr @test_count, align 4, !tbaa !5
  %11237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11238 = load i32, ptr %11237, align 4, !tbaa !5
  %11239 = call ptr @s2n_strerror(i32 noundef %11238, ptr noundef @.str.4)
  %11240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11241 = load i32, ptr %11240, align 4, !tbaa !5
  %11242 = call ptr @s2n_strerror_debug(i32 noundef %11241, ptr noundef @.str.4)
  %11243 = call ptr @__errno_location() #10
  %11244 = load i32, ptr %11243, align 4, !tbaa !5
  %11245 = call ptr @strerror(i32 noundef %11244) #9
  %11246 = call ptr @__errno_location() #10
  %11247 = load i32, ptr %11246, align 4, !tbaa !5
  %11248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11235, ptr noundef @.str.2, i32 noundef %11236, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 434, ptr noundef %11239, ptr noundef %11242, ptr noundef %11245, i32 noundef %11247) #9
  br label %11266

11249:                                            ; preds = %11227, %11220
  %11250 = load i32, ptr %233, align 4, !tbaa !5
  %11251 = call ptr @__errno_location() #10
  store i32 %11250, ptr %11251, align 4, !tbaa !5
  %11252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11253 = load i32, ptr @test_count, align 4, !tbaa !5
  %11254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11255 = load i32, ptr %11254, align 4, !tbaa !5
  %11256 = call ptr @s2n_strerror(i32 noundef %11255, ptr noundef @.str.4)
  %11257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11258 = load i32, ptr %11257, align 4, !tbaa !5
  %11259 = call ptr @s2n_strerror_debug(i32 noundef %11258, ptr noundef @.str.4)
  %11260 = call ptr @__errno_location() #10
  %11261 = load i32, ptr %11260, align 4, !tbaa !5
  %11262 = call ptr @strerror(i32 noundef %11261) #9
  %11263 = call ptr @__errno_location() #10
  %11264 = load i32, ptr %11263, align 4, !tbaa !5
  %11265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11252, ptr noundef @.str.5, i32 noundef %11253, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 434, ptr noundef %11256, ptr noundef %11259, ptr noundef %11262, i32 noundef %11264) #9
  br label %11266

11266:                                            ; preds = %11249, %11232
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #9
  br label %11267

11267:                                            ; preds = %11266
  br label %11268

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

11269:                                            ; No predecessors!
  br label %11270

11270:                                            ; preds = %11269
  br label %11271

11271:                                            ; preds = %11270, %11213
  br label %11272

11272:                                            ; preds = %11271
  br label %11273

11273:                                            ; preds = %11272
  store i32 0, ptr %88, align 4
  br label %11274

11274:                                            ; preds = %11273, %10493
  call void @llvm.lifetime.end.p0(i64 16, ptr %218) #9
  %11275 = call i32 @s2n_stuffer_free(ptr noundef %216)
  call void @llvm.lifetime.end.p0(i64 40, ptr %216) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %211) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %208) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %206) #9
  %11276 = load i32, ptr %88, align 4
  switch i32 %11276, label %11279 [
    i32 0, label %11277
  ]

11277:                                            ; preds = %11274
  br label %11278

11278:                                            ; preds = %11277, %9796
  store i32 0, ptr %88, align 4
  br label %11279

11279:                                            ; preds = %11278, %11274, %9793, %8312
  call void @llvm.lifetime.end.p0(i64 64, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %33) #9
  %11280 = load i32, ptr %88, align 4
  switch i32 %11280, label %14636 [
    i32 0, label %11281
    i32 1, label %14634
  ]

11281:                                            ; preds = %11279
  call void @llvm.lifetime.start.p0(i64 8, ptr %234) #9
  store ptr null, ptr %234, align 8, !tbaa !9
  br label %11282

11282:                                            ; preds = %11281
  %11283 = load i32, ptr @test_count, align 4, !tbaa !5
  %11284 = add nsw i32 %11283, 1
  store i32 %11284, ptr @test_count, align 4, !tbaa !5
  %11285 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %11285, ptr %234, align 8, !tbaa !9
  %11286 = icmp eq ptr %11285, null
  br i1 %11286, label %11287, label %11340

11287:                                            ; preds = %11282
  br label %11288

11288:                                            ; preds = %11287
  br label %11289

11289:                                            ; preds = %11288
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #9
  %11290 = call ptr @__errno_location() #10
  %11291 = load i32, ptr %11290, align 4, !tbaa !5
  store i32 %11291, ptr %235, align 4, !tbaa !5
  %11292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11293 = call i32 @s2n_print_stacktrace(ptr noundef %11292)
  %11294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11295 = trunc i8 %11294 to i1
  br i1 %11295, label %11296, label %11318

11296:                                            ; preds = %11289
  %11297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11298 = call i32 @fileno(ptr noundef %11297) #9
  %11299 = call i32 @isatty(i32 noundef %11298) #9
  %11300 = icmp ne i32 %11299, 0
  br i1 %11300, label %11301, label %11318

11301:                                            ; preds = %11296
  %11302 = load i32, ptr %235, align 4, !tbaa !5
  %11303 = call ptr @__errno_location() #10
  store i32 %11302, ptr %11303, align 4, !tbaa !5
  %11304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11305 = load i32, ptr @test_count, align 4, !tbaa !5
  %11306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11307 = load i32, ptr %11306, align 4, !tbaa !5
  %11308 = call ptr @s2n_strerror(i32 noundef %11307, ptr noundef @.str.4)
  %11309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11310 = load i32, ptr %11309, align 4, !tbaa !5
  %11311 = call ptr @s2n_strerror_debug(i32 noundef %11310, ptr noundef @.str.4)
  %11312 = call ptr @__errno_location() #10
  %11313 = load i32, ptr %11312, align 4, !tbaa !5
  %11314 = call ptr @strerror(i32 noundef %11313) #9
  %11315 = call ptr @__errno_location() #10
  %11316 = load i32, ptr %11315, align 4, !tbaa !5
  %11317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11304, ptr noundef @.str.2, i32 noundef %11305, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 442, ptr noundef %11308, ptr noundef %11311, ptr noundef %11314, i32 noundef %11316) #9
  br label %11335

11318:                                            ; preds = %11296, %11289
  %11319 = load i32, ptr %235, align 4, !tbaa !5
  %11320 = call ptr @__errno_location() #10
  store i32 %11319, ptr %11320, align 4, !tbaa !5
  %11321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11322 = load i32, ptr @test_count, align 4, !tbaa !5
  %11323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11324 = load i32, ptr %11323, align 4, !tbaa !5
  %11325 = call ptr @s2n_strerror(i32 noundef %11324, ptr noundef @.str.4)
  %11326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11327 = load i32, ptr %11326, align 4, !tbaa !5
  %11328 = call ptr @s2n_strerror_debug(i32 noundef %11327, ptr noundef @.str.4)
  %11329 = call ptr @__errno_location() #10
  %11330 = load i32, ptr %11329, align 4, !tbaa !5
  %11331 = call ptr @strerror(i32 noundef %11330) #9
  %11332 = call ptr @__errno_location() #10
  %11333 = load i32, ptr %11332, align 4, !tbaa !5
  %11334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11321, ptr noundef @.str.5, i32 noundef %11322, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 442, ptr noundef %11325, ptr noundef %11328, ptr noundef %11331, i32 noundef %11333) #9
  br label %11335

11335:                                            ; preds = %11318, %11301
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #9
  br label %11336

11336:                                            ; preds = %11335
  br label %11337

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

11338:                                            ; No predecessors!
  br label %11339

11339:                                            ; preds = %11338
  br label %11340

11340:                                            ; preds = %11339, %11282
  br label %11341

11341:                                            ; preds = %11340
  br label %11342

11342:                                            ; preds = %11341
  call void @llvm.lifetime.start.p0(i64 40, ptr %236) #9
  call void @llvm.memset.p0.i64(ptr align 8 %236, i8 0, i64 40, i1 false)
  br label %11343

11343:                                            ; preds = %11342
  %11344 = load i32, ptr @test_count, align 4, !tbaa !5
  %11345 = add nsw i32 %11344, 1
  store i32 %11345, ptr @test_count, align 4, !tbaa !5
  %11346 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %236, i32 noundef 0)
  %11347 = icmp eq i32 %11346, -1
  br i1 %11347, label %11348, label %11401

11348:                                            ; preds = %11343
  br label %11349

11349:                                            ; preds = %11348
  br label %11350

11350:                                            ; preds = %11349
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #9
  %11351 = call ptr @__errno_location() #10
  %11352 = load i32, ptr %11351, align 4, !tbaa !5
  store i32 %11352, ptr %237, align 4, !tbaa !5
  %11353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11354 = call i32 @s2n_print_stacktrace(ptr noundef %11353)
  %11355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11356 = trunc i8 %11355 to i1
  br i1 %11356, label %11357, label %11379

11357:                                            ; preds = %11350
  %11358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11359 = call i32 @fileno(ptr noundef %11358) #9
  %11360 = call i32 @isatty(i32 noundef %11359) #9
  %11361 = icmp ne i32 %11360, 0
  br i1 %11361, label %11362, label %11379

11362:                                            ; preds = %11357
  %11363 = load i32, ptr %237, align 4, !tbaa !5
  %11364 = call ptr @__errno_location() #10
  store i32 %11363, ptr %11364, align 4, !tbaa !5
  %11365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11366 = load i32, ptr @test_count, align 4, !tbaa !5
  %11367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11368 = load i32, ptr %11367, align 4, !tbaa !5
  %11369 = call ptr @s2n_strerror(i32 noundef %11368, ptr noundef @.str.4)
  %11370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11371 = load i32, ptr %11370, align 4, !tbaa !5
  %11372 = call ptr @s2n_strerror_debug(i32 noundef %11371, ptr noundef @.str.4)
  %11373 = call ptr @__errno_location() #10
  %11374 = load i32, ptr %11373, align 4, !tbaa !5
  %11375 = call ptr @strerror(i32 noundef %11374) #9
  %11376 = call ptr @__errno_location() #10
  %11377 = load i32, ptr %11376, align 4, !tbaa !5
  %11378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11365, ptr noundef @.str.2, i32 noundef %11366, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 445, ptr noundef %11369, ptr noundef %11372, ptr noundef %11375, i32 noundef %11377) #9
  br label %11396

11379:                                            ; preds = %11357, %11350
  %11380 = load i32, ptr %237, align 4, !tbaa !5
  %11381 = call ptr @__errno_location() #10
  store i32 %11380, ptr %11381, align 4, !tbaa !5
  %11382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11383 = load i32, ptr @test_count, align 4, !tbaa !5
  %11384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11385 = load i32, ptr %11384, align 4, !tbaa !5
  %11386 = call ptr @s2n_strerror(i32 noundef %11385, ptr noundef @.str.4)
  %11387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11388 = load i32, ptr %11387, align 4, !tbaa !5
  %11389 = call ptr @s2n_strerror_debug(i32 noundef %11388, ptr noundef @.str.4)
  %11390 = call ptr @__errno_location() #10
  %11391 = load i32, ptr %11390, align 4, !tbaa !5
  %11392 = call ptr @strerror(i32 noundef %11391) #9
  %11393 = call ptr @__errno_location() #10
  %11394 = load i32, ptr %11393, align 4, !tbaa !5
  %11395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11382, ptr noundef @.str.5, i32 noundef %11383, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 445, ptr noundef %11386, ptr noundef %11389, ptr noundef %11392, i32 noundef %11394) #9
  br label %11396

11396:                                            ; preds = %11379, %11362
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #9
  br label %11397

11397:                                            ; preds = %11396
  br label %11398

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

11399:                                            ; No predecessors!
  br label %11400

11400:                                            ; preds = %11399
  br label %11401

11401:                                            ; preds = %11400, %11343
  br label %11402

11402:                                            ; preds = %11401
  br label %11403

11403:                                            ; preds = %11402
  call void @llvm.lifetime.start.p0(i64 8, ptr %238) #9
  store ptr null, ptr %238, align 8, !tbaa !9
  br label %11404

11404:                                            ; preds = %11403
  %11405 = load i32, ptr @test_count, align 4, !tbaa !5
  %11406 = add nsw i32 %11405, 1
  store i32 %11406, ptr @test_count, align 4, !tbaa !5
  %11407 = load ptr, ptr %234, align 8, !tbaa !9
  %11408 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %11407, ptr noundef %238)
  %11409 = icmp eq i32 %11408, -1
  br i1 %11409, label %11410, label %11463

11410:                                            ; preds = %11404
  br label %11411

11411:                                            ; preds = %11410
  br label %11412

11412:                                            ; preds = %11411
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #9
  %11413 = call ptr @__errno_location() #10
  %11414 = load i32, ptr %11413, align 4, !tbaa !5
  store i32 %11414, ptr %239, align 4, !tbaa !5
  %11415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11416 = call i32 @s2n_print_stacktrace(ptr noundef %11415)
  %11417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11418 = trunc i8 %11417 to i1
  br i1 %11418, label %11419, label %11441

11419:                                            ; preds = %11412
  %11420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11421 = call i32 @fileno(ptr noundef %11420) #9
  %11422 = call i32 @isatty(i32 noundef %11421) #9
  %11423 = icmp ne i32 %11422, 0
  br i1 %11423, label %11424, label %11441

11424:                                            ; preds = %11419
  %11425 = load i32, ptr %239, align 4, !tbaa !5
  %11426 = call ptr @__errno_location() #10
  store i32 %11425, ptr %11426, align 4, !tbaa !5
  %11427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11428 = load i32, ptr @test_count, align 4, !tbaa !5
  %11429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11430 = load i32, ptr %11429, align 4, !tbaa !5
  %11431 = call ptr @s2n_strerror(i32 noundef %11430, ptr noundef @.str.4)
  %11432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11433 = load i32, ptr %11432, align 4, !tbaa !5
  %11434 = call ptr @s2n_strerror_debug(i32 noundef %11433, ptr noundef @.str.4)
  %11435 = call ptr @__errno_location() #10
  %11436 = load i32, ptr %11435, align 4, !tbaa !5
  %11437 = call ptr @strerror(i32 noundef %11436) #9
  %11438 = call ptr @__errno_location() #10
  %11439 = load i32, ptr %11438, align 4, !tbaa !5
  %11440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11427, ptr noundef @.str.2, i32 noundef %11428, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 448, ptr noundef %11431, ptr noundef %11434, ptr noundef %11437, i32 noundef %11439) #9
  br label %11458

11441:                                            ; preds = %11419, %11412
  %11442 = load i32, ptr %239, align 4, !tbaa !5
  %11443 = call ptr @__errno_location() #10
  store i32 %11442, ptr %11443, align 4, !tbaa !5
  %11444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11445 = load i32, ptr @test_count, align 4, !tbaa !5
  %11446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11447 = load i32, ptr %11446, align 4, !tbaa !5
  %11448 = call ptr @s2n_strerror(i32 noundef %11447, ptr noundef @.str.4)
  %11449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11450 = load i32, ptr %11449, align 4, !tbaa !5
  %11451 = call ptr @s2n_strerror_debug(i32 noundef %11450, ptr noundef @.str.4)
  %11452 = call ptr @__errno_location() #10
  %11453 = load i32, ptr %11452, align 4, !tbaa !5
  %11454 = call ptr @strerror(i32 noundef %11453) #9
  %11455 = call ptr @__errno_location() #10
  %11456 = load i32, ptr %11455, align 4, !tbaa !5
  %11457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11444, ptr noundef @.str.5, i32 noundef %11445, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 448, ptr noundef %11448, ptr noundef %11451, ptr noundef %11454, i32 noundef %11456) #9
  br label %11458

11458:                                            ; preds = %11441, %11424
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #9
  br label %11459

11459:                                            ; preds = %11458
  br label %11460

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

11461:                                            ; No predecessors!
  br label %11462

11462:                                            ; preds = %11461
  br label %11463

11463:                                            ; preds = %11462, %11404
  br label %11464

11464:                                            ; preds = %11463
  br label %11465

11465:                                            ; preds = %11464
  br label %11466

11466:                                            ; preds = %11465
  %11467 = load i32, ptr @test_count, align 4, !tbaa !5
  %11468 = add nsw i32 %11467, 1
  store i32 %11468, ptr @test_count, align 4, !tbaa !5
  %11469 = load ptr, ptr %238, align 8, !tbaa !9
  %11470 = icmp eq ptr %11469, null
  br i1 %11470, label %11471, label %11524

11471:                                            ; preds = %11466
  br label %11472

11472:                                            ; preds = %11471
  br label %11473

11473:                                            ; preds = %11472
  call void @llvm.lifetime.start.p0(i64 4, ptr %240) #9
  %11474 = call ptr @__errno_location() #10
  %11475 = load i32, ptr %11474, align 4, !tbaa !5
  store i32 %11475, ptr %240, align 4, !tbaa !5
  %11476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11477 = call i32 @s2n_print_stacktrace(ptr noundef %11476)
  %11478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11479 = trunc i8 %11478 to i1
  br i1 %11479, label %11480, label %11502

11480:                                            ; preds = %11473
  %11481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11482 = call i32 @fileno(ptr noundef %11481) #9
  %11483 = call i32 @isatty(i32 noundef %11482) #9
  %11484 = icmp ne i32 %11483, 0
  br i1 %11484, label %11485, label %11502

11485:                                            ; preds = %11480
  %11486 = load i32, ptr %240, align 4, !tbaa !5
  %11487 = call ptr @__errno_location() #10
  store i32 %11486, ptr %11487, align 4, !tbaa !5
  %11488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11489 = load i32, ptr @test_count, align 4, !tbaa !5
  %11490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11491 = load i32, ptr %11490, align 4, !tbaa !5
  %11492 = call ptr @s2n_strerror(i32 noundef %11491, ptr noundef @.str.4)
  %11493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11494 = load i32, ptr %11493, align 4, !tbaa !5
  %11495 = call ptr @s2n_strerror_debug(i32 noundef %11494, ptr noundef @.str.4)
  %11496 = call ptr @__errno_location() #10
  %11497 = load i32, ptr %11496, align 4, !tbaa !5
  %11498 = call ptr @strerror(i32 noundef %11497) #9
  %11499 = call ptr @__errno_location() #10
  %11500 = load i32, ptr %11499, align 4, !tbaa !5
  %11501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11488, ptr noundef @.str.2, i32 noundef %11489, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 449, ptr noundef %11492, ptr noundef %11495, ptr noundef %11498, i32 noundef %11500) #9
  br label %11519

11502:                                            ; preds = %11480, %11473
  %11503 = load i32, ptr %240, align 4, !tbaa !5
  %11504 = call ptr @__errno_location() #10
  store i32 %11503, ptr %11504, align 4, !tbaa !5
  %11505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11506 = load i32, ptr @test_count, align 4, !tbaa !5
  %11507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11508 = load i32, ptr %11507, align 4, !tbaa !5
  %11509 = call ptr @s2n_strerror(i32 noundef %11508, ptr noundef @.str.4)
  %11510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11511 = load i32, ptr %11510, align 4, !tbaa !5
  %11512 = call ptr @s2n_strerror_debug(i32 noundef %11511, ptr noundef @.str.4)
  %11513 = call ptr @__errno_location() #10
  %11514 = load i32, ptr %11513, align 4, !tbaa !5
  %11515 = call ptr @strerror(i32 noundef %11514) #9
  %11516 = call ptr @__errno_location() #10
  %11517 = load i32, ptr %11516, align 4, !tbaa !5
  %11518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11505, ptr noundef @.str.5, i32 noundef %11506, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 449, ptr noundef %11509, ptr noundef %11512, ptr noundef %11515, i32 noundef %11517) #9
  br label %11519

11519:                                            ; preds = %11502, %11485
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #9
  br label %11520

11520:                                            ; preds = %11519
  br label %11521

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

11522:                                            ; No predecessors!
  br label %11523

11523:                                            ; preds = %11522
  br label %11524

11524:                                            ; preds = %11523, %11466
  br label %11525

11525:                                            ; preds = %11524
  br label %11526

11526:                                            ; preds = %11525
  br label %11527

11527:                                            ; preds = %11526
  %11528 = load i32, ptr @test_count, align 4, !tbaa !5
  %11529 = add nsw i32 %11528, 1
  store i32 %11529, ptr @test_count, align 4, !tbaa !5
  %11530 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 3), align 8, !tbaa !18
  %11531 = load ptr, ptr %234, align 8, !tbaa !9
  %11532 = call i32 %11530(ptr noundef %11531, ptr noundef %236)
  %11533 = icmp eq i32 %11532, -1
  br i1 %11533, label %11534, label %11587

11534:                                            ; preds = %11527
  br label %11535

11535:                                            ; preds = %11534
  br label %11536

11536:                                            ; preds = %11535
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #9
  %11537 = call ptr @__errno_location() #10
  %11538 = load i32, ptr %11537, align 4, !tbaa !5
  store i32 %11538, ptr %241, align 4, !tbaa !5
  %11539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11540 = call i32 @s2n_print_stacktrace(ptr noundef %11539)
  %11541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11542 = trunc i8 %11541 to i1
  br i1 %11542, label %11543, label %11565

11543:                                            ; preds = %11536
  %11544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11545 = call i32 @fileno(ptr noundef %11544) #9
  %11546 = call i32 @isatty(i32 noundef %11545) #9
  %11547 = icmp ne i32 %11546, 0
  br i1 %11547, label %11548, label %11565

11548:                                            ; preds = %11543
  %11549 = load i32, ptr %241, align 4, !tbaa !5
  %11550 = call ptr @__errno_location() #10
  store i32 %11549, ptr %11550, align 4, !tbaa !5
  %11551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11552 = load i32, ptr @test_count, align 4, !tbaa !5
  %11553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11554 = load i32, ptr %11553, align 4, !tbaa !5
  %11555 = call ptr @s2n_strerror(i32 noundef %11554, ptr noundef @.str.4)
  %11556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11557 = load i32, ptr %11556, align 4, !tbaa !5
  %11558 = call ptr @s2n_strerror_debug(i32 noundef %11557, ptr noundef @.str.4)
  %11559 = call ptr @__errno_location() #10
  %11560 = load i32, ptr %11559, align 4, !tbaa !5
  %11561 = call ptr @strerror(i32 noundef %11560) #9
  %11562 = call ptr @__errno_location() #10
  %11563 = load i32, ptr %11562, align 4, !tbaa !5
  %11564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11551, ptr noundef @.str.2, i32 noundef %11552, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 451, ptr noundef %11555, ptr noundef %11558, ptr noundef %11561, i32 noundef %11563) #9
  br label %11582

11565:                                            ; preds = %11543, %11536
  %11566 = load i32, ptr %241, align 4, !tbaa !5
  %11567 = call ptr @__errno_location() #10
  store i32 %11566, ptr %11567, align 4, !tbaa !5
  %11568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11569 = load i32, ptr @test_count, align 4, !tbaa !5
  %11570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11571 = load i32, ptr %11570, align 4, !tbaa !5
  %11572 = call ptr @s2n_strerror(i32 noundef %11571, ptr noundef @.str.4)
  %11573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11574 = load i32, ptr %11573, align 4, !tbaa !5
  %11575 = call ptr @s2n_strerror_debug(i32 noundef %11574, ptr noundef @.str.4)
  %11576 = call ptr @__errno_location() #10
  %11577 = load i32, ptr %11576, align 4, !tbaa !5
  %11578 = call ptr @strerror(i32 noundef %11577) #9
  %11579 = call ptr @__errno_location() #10
  %11580 = load i32, ptr %11579, align 4, !tbaa !5
  %11581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11568, ptr noundef @.str.5, i32 noundef %11569, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 451, ptr noundef %11572, ptr noundef %11575, ptr noundef %11578, i32 noundef %11580) #9
  br label %11582

11582:                                            ; preds = %11565, %11548
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #9
  br label %11583

11583:                                            ; preds = %11582
  br label %11584

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

11585:                                            ; No predecessors!
  br label %11586

11586:                                            ; preds = %11585
  br label %11587

11587:                                            ; preds = %11586, %11527
  br label %11588

11588:                                            ; preds = %11587
  br label %11589

11589:                                            ; preds = %11588
  br label %11590

11590:                                            ; preds = %11589
  %11591 = load i32, ptr @test_count, align 4, !tbaa !5
  %11592 = add nsw i32 %11591, 1
  store i32 %11592, ptr @test_count, align 4, !tbaa !5
  %11593 = load ptr, ptr %234, align 8, !tbaa !9
  %11594 = getelementptr inbounds %struct.s2n_connection, ptr %11593, i32 0, i32 31
  %11595 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11594, i32 0, i32 1
  %11596 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11595, i32 0, i32 0
  %11597 = load ptr, ptr %11596, align 8, !tbaa !73
  %11598 = icmp eq ptr %11597, null
  br i1 %11598, label %11652, label %11599

11599:                                            ; preds = %11590
  br label %11600

11600:                                            ; preds = %11599
  br label %11601

11601:                                            ; preds = %11600
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #9
  %11602 = call ptr @__errno_location() #10
  %11603 = load i32, ptr %11602, align 4, !tbaa !5
  store i32 %11603, ptr %242, align 4, !tbaa !5
  %11604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11605 = call i32 @s2n_print_stacktrace(ptr noundef %11604)
  %11606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11607 = trunc i8 %11606 to i1
  br i1 %11607, label %11608, label %11630

11608:                                            ; preds = %11601
  %11609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11610 = call i32 @fileno(ptr noundef %11609) #9
  %11611 = call i32 @isatty(i32 noundef %11610) #9
  %11612 = icmp ne i32 %11611, 0
  br i1 %11612, label %11613, label %11630

11613:                                            ; preds = %11608
  %11614 = load i32, ptr %242, align 4, !tbaa !5
  %11615 = call ptr @__errno_location() #10
  store i32 %11614, ptr %11615, align 4, !tbaa !5
  %11616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11617 = load i32, ptr @test_count, align 4, !tbaa !5
  %11618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11619 = load i32, ptr %11618, align 4, !tbaa !5
  %11620 = call ptr @s2n_strerror(i32 noundef %11619, ptr noundef @.str.4)
  %11621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11622 = load i32, ptr %11621, align 4, !tbaa !5
  %11623 = call ptr @s2n_strerror_debug(i32 noundef %11622, ptr noundef @.str.4)
  %11624 = call ptr @__errno_location() #10
  %11625 = load i32, ptr %11624, align 4, !tbaa !5
  %11626 = call ptr @strerror(i32 noundef %11625) #9
  %11627 = call ptr @__errno_location() #10
  %11628 = load i32, ptr %11627, align 4, !tbaa !5
  %11629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11616, ptr noundef @.str.2, i32 noundef %11617, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 453, ptr noundef %11620, ptr noundef %11623, ptr noundef %11626, i32 noundef %11628) #9
  br label %11647

11630:                                            ; preds = %11608, %11601
  %11631 = load i32, ptr %242, align 4, !tbaa !5
  %11632 = call ptr @__errno_location() #10
  store i32 %11631, ptr %11632, align 4, !tbaa !5
  %11633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11634 = load i32, ptr @test_count, align 4, !tbaa !5
  %11635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11636 = load i32, ptr %11635, align 4, !tbaa !5
  %11637 = call ptr @s2n_strerror(i32 noundef %11636, ptr noundef @.str.4)
  %11638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11639 = load i32, ptr %11638, align 4, !tbaa !5
  %11640 = call ptr @s2n_strerror_debug(i32 noundef %11639, ptr noundef @.str.4)
  %11641 = call ptr @__errno_location() #10
  %11642 = load i32, ptr %11641, align 4, !tbaa !5
  %11643 = call ptr @strerror(i32 noundef %11642) #9
  %11644 = call ptr @__errno_location() #10
  %11645 = load i32, ptr %11644, align 4, !tbaa !5
  %11646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11633, ptr noundef @.str.5, i32 noundef %11634, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 453, ptr noundef %11637, ptr noundef %11640, ptr noundef %11643, i32 noundef %11645) #9
  br label %11647

11647:                                            ; preds = %11630, %11613
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #9
  br label %11648

11648:                                            ; preds = %11647
  br label %11649

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

11650:                                            ; No predecessors!
  br label %11651

11651:                                            ; preds = %11650
  br label %11652

11652:                                            ; preds = %11651, %11590
  br label %11653

11653:                                            ; preds = %11652
  br label %11654

11654:                                            ; preds = %11653
  br label %11655

11655:                                            ; preds = %11654
  %11656 = load i32, ptr @test_count, align 4, !tbaa !5
  %11657 = add nsw i32 %11656, 1
  store i32 %11657, ptr @test_count, align 4, !tbaa !5
  %11658 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 4), align 8, !tbaa !77
  %11659 = load ptr, ptr %234, align 8, !tbaa !9
  %11660 = call i32 %11658(ptr noundef %11659, ptr noundef %236)
  %11661 = icmp eq i32 %11660, -1
  br i1 %11661, label %11662, label %11715

11662:                                            ; preds = %11655
  br label %11663

11663:                                            ; preds = %11662
  br label %11664

11664:                                            ; preds = %11663
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #9
  %11665 = call ptr @__errno_location() #10
  %11666 = load i32, ptr %11665, align 4, !tbaa !5
  store i32 %11666, ptr %243, align 4, !tbaa !5
  %11667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11668 = call i32 @s2n_print_stacktrace(ptr noundef %11667)
  %11669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11670 = trunc i8 %11669 to i1
  br i1 %11670, label %11671, label %11693

11671:                                            ; preds = %11664
  %11672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11673 = call i32 @fileno(ptr noundef %11672) #9
  %11674 = call i32 @isatty(i32 noundef %11673) #9
  %11675 = icmp ne i32 %11674, 0
  br i1 %11675, label %11676, label %11693

11676:                                            ; preds = %11671
  %11677 = load i32, ptr %243, align 4, !tbaa !5
  %11678 = call ptr @__errno_location() #10
  store i32 %11677, ptr %11678, align 4, !tbaa !5
  %11679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11680 = load i32, ptr @test_count, align 4, !tbaa !5
  %11681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11682 = load i32, ptr %11681, align 4, !tbaa !5
  %11683 = call ptr @s2n_strerror(i32 noundef %11682, ptr noundef @.str.4)
  %11684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11685 = load i32, ptr %11684, align 4, !tbaa !5
  %11686 = call ptr @s2n_strerror_debug(i32 noundef %11685, ptr noundef @.str.4)
  %11687 = call ptr @__errno_location() #10
  %11688 = load i32, ptr %11687, align 4, !tbaa !5
  %11689 = call ptr @strerror(i32 noundef %11688) #9
  %11690 = call ptr @__errno_location() #10
  %11691 = load i32, ptr %11690, align 4, !tbaa !5
  %11692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11679, ptr noundef @.str.2, i32 noundef %11680, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 454, ptr noundef %11683, ptr noundef %11686, ptr noundef %11689, i32 noundef %11691) #9
  br label %11710

11693:                                            ; preds = %11671, %11664
  %11694 = load i32, ptr %243, align 4, !tbaa !5
  %11695 = call ptr @__errno_location() #10
  store i32 %11694, ptr %11695, align 4, !tbaa !5
  %11696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11697 = load i32, ptr @test_count, align 4, !tbaa !5
  %11698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11699 = load i32, ptr %11698, align 4, !tbaa !5
  %11700 = call ptr @s2n_strerror(i32 noundef %11699, ptr noundef @.str.4)
  %11701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11702 = load i32, ptr %11701, align 4, !tbaa !5
  %11703 = call ptr @s2n_strerror_debug(i32 noundef %11702, ptr noundef @.str.4)
  %11704 = call ptr @__errno_location() #10
  %11705 = load i32, ptr %11704, align 4, !tbaa !5
  %11706 = call ptr @strerror(i32 noundef %11705) #9
  %11707 = call ptr @__errno_location() #10
  %11708 = load i32, ptr %11707, align 4, !tbaa !5
  %11709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11696, ptr noundef @.str.5, i32 noundef %11697, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 454, ptr noundef %11700, ptr noundef %11703, ptr noundef %11706, i32 noundef %11708) #9
  br label %11710

11710:                                            ; preds = %11693, %11676
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #9
  br label %11711

11711:                                            ; preds = %11710
  br label %11712

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

11713:                                            ; No predecessors!
  br label %11714

11714:                                            ; preds = %11713
  br label %11715

11715:                                            ; preds = %11714, %11655
  br label %11716

11716:                                            ; preds = %11715
  br label %11717

11717:                                            ; preds = %11716
  br label %11718

11718:                                            ; preds = %11717
  %11719 = load i32, ptr @test_count, align 4, !tbaa !5
  %11720 = add nsw i32 %11719, 1
  store i32 %11720, ptr @test_count, align 4, !tbaa !5
  %11721 = load ptr, ptr %234, align 8, !tbaa !9
  %11722 = getelementptr inbounds %struct.s2n_connection, ptr %11721, i32 0, i32 31
  %11723 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11722, i32 0, i32 1
  %11724 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11723, i32 0, i32 0
  %11725 = load ptr, ptr %11724, align 8, !tbaa !73
  %11726 = load ptr, ptr %238, align 8, !tbaa !9
  %11727 = getelementptr inbounds %struct.s2n_ecc_preferences, ptr %11726, i32 0, i32 1
  %11728 = load ptr, ptr %11727, align 8, !tbaa !28
  %11729 = getelementptr inbounds ptr, ptr %11728, i64 0
  %11730 = load ptr, ptr %11729, align 8, !tbaa !9
  %11731 = icmp eq ptr %11725, %11730
  br i1 %11731, label %11785, label %11732

11732:                                            ; preds = %11718
  br label %11733

11733:                                            ; preds = %11732
  br label %11734

11734:                                            ; preds = %11733
  call void @llvm.lifetime.start.p0(i64 4, ptr %244) #9
  %11735 = call ptr @__errno_location() #10
  %11736 = load i32, ptr %11735, align 4, !tbaa !5
  store i32 %11736, ptr %244, align 4, !tbaa !5
  %11737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11738 = call i32 @s2n_print_stacktrace(ptr noundef %11737)
  %11739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11740 = trunc i8 %11739 to i1
  br i1 %11740, label %11741, label %11763

11741:                                            ; preds = %11734
  %11742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11743 = call i32 @fileno(ptr noundef %11742) #9
  %11744 = call i32 @isatty(i32 noundef %11743) #9
  %11745 = icmp ne i32 %11744, 0
  br i1 %11745, label %11746, label %11763

11746:                                            ; preds = %11741
  %11747 = load i32, ptr %244, align 4, !tbaa !5
  %11748 = call ptr @__errno_location() #10
  store i32 %11747, ptr %11748, align 4, !tbaa !5
  %11749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11750 = load i32, ptr @test_count, align 4, !tbaa !5
  %11751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11752 = load i32, ptr %11751, align 4, !tbaa !5
  %11753 = call ptr @s2n_strerror(i32 noundef %11752, ptr noundef @.str.4)
  %11754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11755 = load i32, ptr %11754, align 4, !tbaa !5
  %11756 = call ptr @s2n_strerror_debug(i32 noundef %11755, ptr noundef @.str.4)
  %11757 = call ptr @__errno_location() #10
  %11758 = load i32, ptr %11757, align 4, !tbaa !5
  %11759 = call ptr @strerror(i32 noundef %11758) #9
  %11760 = call ptr @__errno_location() #10
  %11761 = load i32, ptr %11760, align 4, !tbaa !5
  %11762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11749, ptr noundef @.str.2, i32 noundef %11750, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 455, ptr noundef %11753, ptr noundef %11756, ptr noundef %11759, i32 noundef %11761) #9
  br label %11780

11763:                                            ; preds = %11741, %11734
  %11764 = load i32, ptr %244, align 4, !tbaa !5
  %11765 = call ptr @__errno_location() #10
  store i32 %11764, ptr %11765, align 4, !tbaa !5
  %11766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11767 = load i32, ptr @test_count, align 4, !tbaa !5
  %11768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11769 = load i32, ptr %11768, align 4, !tbaa !5
  %11770 = call ptr @s2n_strerror(i32 noundef %11769, ptr noundef @.str.4)
  %11771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11772 = load i32, ptr %11771, align 4, !tbaa !5
  %11773 = call ptr @s2n_strerror_debug(i32 noundef %11772, ptr noundef @.str.4)
  %11774 = call ptr @__errno_location() #10
  %11775 = load i32, ptr %11774, align 4, !tbaa !5
  %11776 = call ptr @strerror(i32 noundef %11775) #9
  %11777 = call ptr @__errno_location() #10
  %11778 = load i32, ptr %11777, align 4, !tbaa !5
  %11779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11766, ptr noundef @.str.5, i32 noundef %11767, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 455, ptr noundef %11770, ptr noundef %11773, ptr noundef %11776, i32 noundef %11778) #9
  br label %11780

11780:                                            ; preds = %11763, %11746
  call void @llvm.lifetime.end.p0(i64 4, ptr %244) #9
  br label %11781

11781:                                            ; preds = %11780
  br label %11782

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

11783:                                            ; No predecessors!
  br label %11784

11784:                                            ; preds = %11783
  br label %11785

11785:                                            ; preds = %11784, %11718
  br label %11786

11786:                                            ; preds = %11785
  br label %11787

11787:                                            ; preds = %11786
  br label %11788

11788:                                            ; preds = %11787
  %11789 = load i32, ptr @test_count, align 4, !tbaa !5
  %11790 = add nsw i32 %11789, 1
  store i32 %11790, ptr @test_count, align 4, !tbaa !5
  %11791 = load ptr, ptr %234, align 8, !tbaa !9
  %11792 = getelementptr inbounds %struct.s2n_connection, ptr %11791, i32 0, i32 31
  %11793 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11792, i32 0, i32 4
  %11794 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %11793, i32 0, i32 0
  %11795 = load ptr, ptr %11794, align 8, !tbaa !74
  %11796 = icmp eq ptr %11795, null
  br i1 %11796, label %11850, label %11797

11797:                                            ; preds = %11788
  br label %11798

11798:                                            ; preds = %11797
  br label %11799

11799:                                            ; preds = %11798
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #9
  %11800 = call ptr @__errno_location() #10
  %11801 = load i32, ptr %11800, align 4, !tbaa !5
  store i32 %11801, ptr %245, align 4, !tbaa !5
  %11802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11803 = call i32 @s2n_print_stacktrace(ptr noundef %11802)
  %11804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11805 = trunc i8 %11804 to i1
  br i1 %11805, label %11806, label %11828

11806:                                            ; preds = %11799
  %11807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11808 = call i32 @fileno(ptr noundef %11807) #9
  %11809 = call i32 @isatty(i32 noundef %11808) #9
  %11810 = icmp ne i32 %11809, 0
  br i1 %11810, label %11811, label %11828

11811:                                            ; preds = %11806
  %11812 = load i32, ptr %245, align 4, !tbaa !5
  %11813 = call ptr @__errno_location() #10
  store i32 %11812, ptr %11813, align 4, !tbaa !5
  %11814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11815 = load i32, ptr @test_count, align 4, !tbaa !5
  %11816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11817 = load i32, ptr %11816, align 4, !tbaa !5
  %11818 = call ptr @s2n_strerror(i32 noundef %11817, ptr noundef @.str.4)
  %11819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11820 = load i32, ptr %11819, align 4, !tbaa !5
  %11821 = call ptr @s2n_strerror_debug(i32 noundef %11820, ptr noundef @.str.4)
  %11822 = call ptr @__errno_location() #10
  %11823 = load i32, ptr %11822, align 4, !tbaa !5
  %11824 = call ptr @strerror(i32 noundef %11823) #9
  %11825 = call ptr @__errno_location() #10
  %11826 = load i32, ptr %11825, align 4, !tbaa !5
  %11827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11814, ptr noundef @.str.2, i32 noundef %11815, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 456, ptr noundef %11818, ptr noundef %11821, ptr noundef %11824, i32 noundef %11826) #9
  br label %11845

11828:                                            ; preds = %11806, %11799
  %11829 = load i32, ptr %245, align 4, !tbaa !5
  %11830 = call ptr @__errno_location() #10
  store i32 %11829, ptr %11830, align 4, !tbaa !5
  %11831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11832 = load i32, ptr @test_count, align 4, !tbaa !5
  %11833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11834 = load i32, ptr %11833, align 4, !tbaa !5
  %11835 = call ptr @s2n_strerror(i32 noundef %11834, ptr noundef @.str.4)
  %11836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11837 = load i32, ptr %11836, align 4, !tbaa !5
  %11838 = call ptr @s2n_strerror_debug(i32 noundef %11837, ptr noundef @.str.4)
  %11839 = call ptr @__errno_location() #10
  %11840 = load i32, ptr %11839, align 4, !tbaa !5
  %11841 = call ptr @strerror(i32 noundef %11840) #9
  %11842 = call ptr @__errno_location() #10
  %11843 = load i32, ptr %11842, align 4, !tbaa !5
  %11844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11831, ptr noundef @.str.5, i32 noundef %11832, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 456, ptr noundef %11835, ptr noundef %11838, ptr noundef %11841, i32 noundef %11843) #9
  br label %11845

11845:                                            ; preds = %11828, %11811
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #9
  br label %11846

11846:                                            ; preds = %11845
  br label %11847

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

11848:                                            ; No predecessors!
  br label %11849

11849:                                            ; preds = %11848
  br label %11850

11850:                                            ; preds = %11849, %11788
  br label %11851

11851:                                            ; preds = %11850
  br label %11852

11852:                                            ; preds = %11851
  br label %11853

11853:                                            ; preds = %11852
  %11854 = load i32, ptr @test_count, align 4, !tbaa !5
  %11855 = add nsw i32 %11854, 1
  store i32 %11855, ptr @test_count, align 4, !tbaa !5
  %11856 = load ptr, ptr %234, align 8, !tbaa !9
  %11857 = getelementptr inbounds %struct.s2n_connection, ptr %11856, i32 0, i32 31
  %11858 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11857, i32 0, i32 4
  %11859 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %11858, i32 0, i32 2
  %11860 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %11859, i32 0, i32 0
  %11861 = load ptr, ptr %11860, align 8, !tbaa !75
  %11862 = icmp eq ptr %11861, null
  br i1 %11862, label %11916, label %11863

11863:                                            ; preds = %11853
  br label %11864

11864:                                            ; preds = %11863
  br label %11865

11865:                                            ; preds = %11864
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #9
  %11866 = call ptr @__errno_location() #10
  %11867 = load i32, ptr %11866, align 4, !tbaa !5
  store i32 %11867, ptr %246, align 4, !tbaa !5
  %11868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11869 = call i32 @s2n_print_stacktrace(ptr noundef %11868)
  %11870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11871 = trunc i8 %11870 to i1
  br i1 %11871, label %11872, label %11894

11872:                                            ; preds = %11865
  %11873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11874 = call i32 @fileno(ptr noundef %11873) #9
  %11875 = call i32 @isatty(i32 noundef %11874) #9
  %11876 = icmp ne i32 %11875, 0
  br i1 %11876, label %11877, label %11894

11877:                                            ; preds = %11872
  %11878 = load i32, ptr %246, align 4, !tbaa !5
  %11879 = call ptr @__errno_location() #10
  store i32 %11878, ptr %11879, align 4, !tbaa !5
  %11880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11881 = load i32, ptr @test_count, align 4, !tbaa !5
  %11882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11883 = load i32, ptr %11882, align 4, !tbaa !5
  %11884 = call ptr @s2n_strerror(i32 noundef %11883, ptr noundef @.str.4)
  %11885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11886 = load i32, ptr %11885, align 4, !tbaa !5
  %11887 = call ptr @s2n_strerror_debug(i32 noundef %11886, ptr noundef @.str.4)
  %11888 = call ptr @__errno_location() #10
  %11889 = load i32, ptr %11888, align 4, !tbaa !5
  %11890 = call ptr @strerror(i32 noundef %11889) #9
  %11891 = call ptr @__errno_location() #10
  %11892 = load i32, ptr %11891, align 4, !tbaa !5
  %11893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11880, ptr noundef @.str.2, i32 noundef %11881, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 457, ptr noundef %11884, ptr noundef %11887, ptr noundef %11890, i32 noundef %11892) #9
  br label %11911

11894:                                            ; preds = %11872, %11865
  %11895 = load i32, ptr %246, align 4, !tbaa !5
  %11896 = call ptr @__errno_location() #10
  store i32 %11895, ptr %11896, align 4, !tbaa !5
  %11897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11898 = load i32, ptr @test_count, align 4, !tbaa !5
  %11899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11900 = load i32, ptr %11899, align 4, !tbaa !5
  %11901 = call ptr @s2n_strerror(i32 noundef %11900, ptr noundef @.str.4)
  %11902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11903 = load i32, ptr %11902, align 4, !tbaa !5
  %11904 = call ptr @s2n_strerror_debug(i32 noundef %11903, ptr noundef @.str.4)
  %11905 = call ptr @__errno_location() #10
  %11906 = load i32, ptr %11905, align 4, !tbaa !5
  %11907 = call ptr @strerror(i32 noundef %11906) #9
  %11908 = call ptr @__errno_location() #10
  %11909 = load i32, ptr %11908, align 4, !tbaa !5
  %11910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11897, ptr noundef @.str.5, i32 noundef %11898, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 457, ptr noundef %11901, ptr noundef %11904, ptr noundef %11907, i32 noundef %11909) #9
  br label %11911

11911:                                            ; preds = %11894, %11877
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #9
  br label %11912

11912:                                            ; preds = %11911
  br label %11913

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

11914:                                            ; No predecessors!
  br label %11915

11915:                                            ; preds = %11914
  br label %11916

11916:                                            ; preds = %11915, %11853
  br label %11917

11917:                                            ; preds = %11916
  br label %11918

11918:                                            ; preds = %11917
  br label %11919

11919:                                            ; preds = %11918
  %11920 = load i32, ptr @test_count, align 4, !tbaa !5
  %11921 = add nsw i32 %11920, 1
  store i32 %11921, ptr @test_count, align 4, !tbaa !5
  %11922 = load ptr, ptr %234, align 8, !tbaa !9
  %11923 = getelementptr inbounds %struct.s2n_connection, ptr %11922, i32 0, i32 31
  %11924 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %11923, i32 0, i32 4
  %11925 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %11924, i32 0, i32 1
  %11926 = getelementptr inbounds %struct.s2n_kem_params, ptr %11925, i32 0, i32 0
  %11927 = load ptr, ptr %11926, align 8, !tbaa !76
  %11928 = icmp eq ptr %11927, null
  br i1 %11928, label %11982, label %11929

11929:                                            ; preds = %11919
  br label %11930

11930:                                            ; preds = %11929
  br label %11931

11931:                                            ; preds = %11930
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #9
  %11932 = call ptr @__errno_location() #10
  %11933 = load i32, ptr %11932, align 4, !tbaa !5
  store i32 %11933, ptr %247, align 4, !tbaa !5
  %11934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11935 = call i32 @s2n_print_stacktrace(ptr noundef %11934)
  %11936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11937 = trunc i8 %11936 to i1
  br i1 %11937, label %11938, label %11960

11938:                                            ; preds = %11931
  %11939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11940 = call i32 @fileno(ptr noundef %11939) #9
  %11941 = call i32 @isatty(i32 noundef %11940) #9
  %11942 = icmp ne i32 %11941, 0
  br i1 %11942, label %11943, label %11960

11943:                                            ; preds = %11938
  %11944 = load i32, ptr %247, align 4, !tbaa !5
  %11945 = call ptr @__errno_location() #10
  store i32 %11944, ptr %11945, align 4, !tbaa !5
  %11946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11947 = load i32, ptr @test_count, align 4, !tbaa !5
  %11948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11949 = load i32, ptr %11948, align 4, !tbaa !5
  %11950 = call ptr @s2n_strerror(i32 noundef %11949, ptr noundef @.str.4)
  %11951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11952 = load i32, ptr %11951, align 4, !tbaa !5
  %11953 = call ptr @s2n_strerror_debug(i32 noundef %11952, ptr noundef @.str.4)
  %11954 = call ptr @__errno_location() #10
  %11955 = load i32, ptr %11954, align 4, !tbaa !5
  %11956 = call ptr @strerror(i32 noundef %11955) #9
  %11957 = call ptr @__errno_location() #10
  %11958 = load i32, ptr %11957, align 4, !tbaa !5
  %11959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11946, ptr noundef @.str.2, i32 noundef %11947, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 458, ptr noundef %11950, ptr noundef %11953, ptr noundef %11956, i32 noundef %11958) #9
  br label %11977

11960:                                            ; preds = %11938, %11931
  %11961 = load i32, ptr %247, align 4, !tbaa !5
  %11962 = call ptr @__errno_location() #10
  store i32 %11961, ptr %11962, align 4, !tbaa !5
  %11963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11964 = load i32, ptr @test_count, align 4, !tbaa !5
  %11965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11966 = load i32, ptr %11965, align 4, !tbaa !5
  %11967 = call ptr @s2n_strerror(i32 noundef %11966, ptr noundef @.str.4)
  %11968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11969 = load i32, ptr %11968, align 4, !tbaa !5
  %11970 = call ptr @s2n_strerror_debug(i32 noundef %11969, ptr noundef @.str.4)
  %11971 = call ptr @__errno_location() #10
  %11972 = load i32, ptr %11971, align 4, !tbaa !5
  %11973 = call ptr @strerror(i32 noundef %11972) #9
  %11974 = call ptr @__errno_location() #10
  %11975 = load i32, ptr %11974, align 4, !tbaa !5
  %11976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11963, ptr noundef @.str.5, i32 noundef %11964, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 458, ptr noundef %11967, ptr noundef %11970, ptr noundef %11973, i32 noundef %11975) #9
  br label %11977

11977:                                            ; preds = %11960, %11943
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #9
  br label %11978

11978:                                            ; preds = %11977
  br label %11979

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

11980:                                            ; No predecessors!
  br label %11981

11981:                                            ; preds = %11980
  br label %11982

11982:                                            ; preds = %11981, %11919
  br label %11983

11983:                                            ; preds = %11982
  br label %11984

11984:                                            ; preds = %11983
  br label %11985

11985:                                            ; preds = %11984
  %11986 = load i32, ptr @test_count, align 4, !tbaa !5
  %11987 = add nsw i32 %11986, 1
  store i32 %11987, ptr @test_count, align 4, !tbaa !5
  %11988 = call i32 @s2n_stuffer_free(ptr noundef %236)
  %11989 = icmp eq i32 %11988, -1
  br i1 %11989, label %11990, label %12043

11990:                                            ; preds = %11985
  br label %11991

11991:                                            ; preds = %11990
  br label %11992

11992:                                            ; preds = %11991
  call void @llvm.lifetime.start.p0(i64 4, ptr %248) #9
  %11993 = call ptr @__errno_location() #10
  %11994 = load i32, ptr %11993, align 4, !tbaa !5
  store i32 %11994, ptr %248, align 4, !tbaa !5
  %11995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11996 = call i32 @s2n_print_stacktrace(ptr noundef %11995)
  %11997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11998 = trunc i8 %11997 to i1
  br i1 %11998, label %11999, label %12021

11999:                                            ; preds = %11992
  %12000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12001 = call i32 @fileno(ptr noundef %12000) #9
  %12002 = call i32 @isatty(i32 noundef %12001) #9
  %12003 = icmp ne i32 %12002, 0
  br i1 %12003, label %12004, label %12021

12004:                                            ; preds = %11999
  %12005 = load i32, ptr %248, align 4, !tbaa !5
  %12006 = call ptr @__errno_location() #10
  store i32 %12005, ptr %12006, align 4, !tbaa !5
  %12007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12008 = load i32, ptr @test_count, align 4, !tbaa !5
  %12009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12010 = load i32, ptr %12009, align 4, !tbaa !5
  %12011 = call ptr @s2n_strerror(i32 noundef %12010, ptr noundef @.str.4)
  %12012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12013 = load i32, ptr %12012, align 4, !tbaa !5
  %12014 = call ptr @s2n_strerror_debug(i32 noundef %12013, ptr noundef @.str.4)
  %12015 = call ptr @__errno_location() #10
  %12016 = load i32, ptr %12015, align 4, !tbaa !5
  %12017 = call ptr @strerror(i32 noundef %12016) #9
  %12018 = call ptr @__errno_location() #10
  %12019 = load i32, ptr %12018, align 4, !tbaa !5
  %12020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12007, ptr noundef @.str.2, i32 noundef %12008, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 460, ptr noundef %12011, ptr noundef %12014, ptr noundef %12017, i32 noundef %12019) #9
  br label %12038

12021:                                            ; preds = %11999, %11992
  %12022 = load i32, ptr %248, align 4, !tbaa !5
  %12023 = call ptr @__errno_location() #10
  store i32 %12022, ptr %12023, align 4, !tbaa !5
  %12024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12025 = load i32, ptr @test_count, align 4, !tbaa !5
  %12026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12027 = load i32, ptr %12026, align 4, !tbaa !5
  %12028 = call ptr @s2n_strerror(i32 noundef %12027, ptr noundef @.str.4)
  %12029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12030 = load i32, ptr %12029, align 4, !tbaa !5
  %12031 = call ptr @s2n_strerror_debug(i32 noundef %12030, ptr noundef @.str.4)
  %12032 = call ptr @__errno_location() #10
  %12033 = load i32, ptr %12032, align 4, !tbaa !5
  %12034 = call ptr @strerror(i32 noundef %12033) #9
  %12035 = call ptr @__errno_location() #10
  %12036 = load i32, ptr %12035, align 4, !tbaa !5
  %12037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12024, ptr noundef @.str.5, i32 noundef %12025, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 460, ptr noundef %12028, ptr noundef %12031, ptr noundef %12034, i32 noundef %12036) #9
  br label %12038

12038:                                            ; preds = %12021, %12004
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #9
  br label %12039

12039:                                            ; preds = %12038
  br label %12040

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

12041:                                            ; No predecessors!
  br label %12042

12042:                                            ; preds = %12041
  br label %12043

12043:                                            ; preds = %12042, %11985
  br label %12044

12044:                                            ; preds = %12043
  br label %12045

12045:                                            ; preds = %12044
  br label %12046

12046:                                            ; preds = %12045
  %12047 = load i32, ptr @test_count, align 4, !tbaa !5
  %12048 = add nsw i32 %12047, 1
  store i32 %12048, ptr @test_count, align 4, !tbaa !5
  %12049 = load ptr, ptr %234, align 8, !tbaa !9
  %12050 = call i32 @s2n_connection_free(ptr noundef %12049)
  %12051 = icmp eq i32 %12050, -1
  br i1 %12051, label %12052, label %12105

12052:                                            ; preds = %12046
  br label %12053

12053:                                            ; preds = %12052
  br label %12054

12054:                                            ; preds = %12053
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #9
  %12055 = call ptr @__errno_location() #10
  %12056 = load i32, ptr %12055, align 4, !tbaa !5
  store i32 %12056, ptr %249, align 4, !tbaa !5
  %12057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12058 = call i32 @s2n_print_stacktrace(ptr noundef %12057)
  %12059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12060 = trunc i8 %12059 to i1
  br i1 %12060, label %12061, label %12083

12061:                                            ; preds = %12054
  %12062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12063 = call i32 @fileno(ptr noundef %12062) #9
  %12064 = call i32 @isatty(i32 noundef %12063) #9
  %12065 = icmp ne i32 %12064, 0
  br i1 %12065, label %12066, label %12083

12066:                                            ; preds = %12061
  %12067 = load i32, ptr %249, align 4, !tbaa !5
  %12068 = call ptr @__errno_location() #10
  store i32 %12067, ptr %12068, align 4, !tbaa !5
  %12069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12070 = load i32, ptr @test_count, align 4, !tbaa !5
  %12071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12072 = load i32, ptr %12071, align 4, !tbaa !5
  %12073 = call ptr @s2n_strerror(i32 noundef %12072, ptr noundef @.str.4)
  %12074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12075 = load i32, ptr %12074, align 4, !tbaa !5
  %12076 = call ptr @s2n_strerror_debug(i32 noundef %12075, ptr noundef @.str.4)
  %12077 = call ptr @__errno_location() #10
  %12078 = load i32, ptr %12077, align 4, !tbaa !5
  %12079 = call ptr @strerror(i32 noundef %12078) #9
  %12080 = call ptr @__errno_location() #10
  %12081 = load i32, ptr %12080, align 4, !tbaa !5
  %12082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12069, ptr noundef @.str.2, i32 noundef %12070, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 461, ptr noundef %12073, ptr noundef %12076, ptr noundef %12079, i32 noundef %12081) #9
  br label %12100

12083:                                            ; preds = %12061, %12054
  %12084 = load i32, ptr %249, align 4, !tbaa !5
  %12085 = call ptr @__errno_location() #10
  store i32 %12084, ptr %12085, align 4, !tbaa !5
  %12086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12087 = load i32, ptr @test_count, align 4, !tbaa !5
  %12088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12089 = load i32, ptr %12088, align 4, !tbaa !5
  %12090 = call ptr @s2n_strerror(i32 noundef %12089, ptr noundef @.str.4)
  %12091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12092 = load i32, ptr %12091, align 4, !tbaa !5
  %12093 = call ptr @s2n_strerror_debug(i32 noundef %12092, ptr noundef @.str.4)
  %12094 = call ptr @__errno_location() #10
  %12095 = load i32, ptr %12094, align 4, !tbaa !5
  %12096 = call ptr @strerror(i32 noundef %12095) #9
  %12097 = call ptr @__errno_location() #10
  %12098 = load i32, ptr %12097, align 4, !tbaa !5
  %12099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12086, ptr noundef @.str.5, i32 noundef %12087, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 461, ptr noundef %12090, ptr noundef %12093, ptr noundef %12096, i32 noundef %12098) #9
  br label %12100

12100:                                            ; preds = %12083, %12066
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #9
  br label %12101

12101:                                            ; preds = %12100
  br label %12102

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

12103:                                            ; No predecessors!
  br label %12104

12104:                                            ; preds = %12103
  br label %12105

12105:                                            ; preds = %12104, %12046
  br label %12106

12106:                                            ; preds = %12105
  br label %12107

12107:                                            ; preds = %12106
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %236) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %250) #9
  store ptr null, ptr %250, align 8, !tbaa !9
  br label %12108

12108:                                            ; preds = %12107
  %12109 = load i32, ptr @test_count, align 4, !tbaa !5
  %12110 = add nsw i32 %12109, 1
  store i32 %12110, ptr @test_count, align 4, !tbaa !5
  %12111 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %12111, ptr %250, align 8, !tbaa !9
  %12112 = icmp eq ptr %12111, null
  br i1 %12112, label %12113, label %12166

12113:                                            ; preds = %12108
  br label %12114

12114:                                            ; preds = %12113
  br label %12115

12115:                                            ; preds = %12114
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #9
  %12116 = call ptr @__errno_location() #10
  %12117 = load i32, ptr %12116, align 4, !tbaa !5
  store i32 %12117, ptr %251, align 4, !tbaa !5
  %12118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12119 = call i32 @s2n_print_stacktrace(ptr noundef %12118)
  %12120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12121 = trunc i8 %12120 to i1
  br i1 %12121, label %12122, label %12144

12122:                                            ; preds = %12115
  %12123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12124 = call i32 @fileno(ptr noundef %12123) #9
  %12125 = call i32 @isatty(i32 noundef %12124) #9
  %12126 = icmp ne i32 %12125, 0
  br i1 %12126, label %12127, label %12144

12127:                                            ; preds = %12122
  %12128 = load i32, ptr %251, align 4, !tbaa !5
  %12129 = call ptr @__errno_location() #10
  store i32 %12128, ptr %12129, align 4, !tbaa !5
  %12130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12131 = load i32, ptr @test_count, align 4, !tbaa !5
  %12132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12133 = load i32, ptr %12132, align 4, !tbaa !5
  %12134 = call ptr @s2n_strerror(i32 noundef %12133, ptr noundef @.str.4)
  %12135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12136 = load i32, ptr %12135, align 4, !tbaa !5
  %12137 = call ptr @s2n_strerror_debug(i32 noundef %12136, ptr noundef @.str.4)
  %12138 = call ptr @__errno_location() #10
  %12139 = load i32, ptr %12138, align 4, !tbaa !5
  %12140 = call ptr @strerror(i32 noundef %12139) #9
  %12141 = call ptr @__errno_location() #10
  %12142 = load i32, ptr %12141, align 4, !tbaa !5
  %12143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12130, ptr noundef @.str.2, i32 noundef %12131, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 467, ptr noundef %12134, ptr noundef %12137, ptr noundef %12140, i32 noundef %12142) #9
  br label %12161

12144:                                            ; preds = %12122, %12115
  %12145 = load i32, ptr %251, align 4, !tbaa !5
  %12146 = call ptr @__errno_location() #10
  store i32 %12145, ptr %12146, align 4, !tbaa !5
  %12147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12148 = load i32, ptr @test_count, align 4, !tbaa !5
  %12149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12150 = load i32, ptr %12149, align 4, !tbaa !5
  %12151 = call ptr @s2n_strerror(i32 noundef %12150, ptr noundef @.str.4)
  %12152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12153 = load i32, ptr %12152, align 4, !tbaa !5
  %12154 = call ptr @s2n_strerror_debug(i32 noundef %12153, ptr noundef @.str.4)
  %12155 = call ptr @__errno_location() #10
  %12156 = load i32, ptr %12155, align 4, !tbaa !5
  %12157 = call ptr @strerror(i32 noundef %12156) #9
  %12158 = call ptr @__errno_location() #10
  %12159 = load i32, ptr %12158, align 4, !tbaa !5
  %12160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12147, ptr noundef @.str.5, i32 noundef %12148, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 467, ptr noundef %12151, ptr noundef %12154, ptr noundef %12157, i32 noundef %12159) #9
  br label %12161

12161:                                            ; preds = %12144, %12127
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #9
  br label %12162

12162:                                            ; preds = %12161
  br label %12163

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

12164:                                            ; No predecessors!
  br label %12165

12165:                                            ; preds = %12164
  br label %12166

12166:                                            ; preds = %12165, %12108
  br label %12167

12167:                                            ; preds = %12166
  br label %12168

12168:                                            ; preds = %12167
  call void @llvm.lifetime.start.p0(i64 40, ptr %252) #9
  call void @llvm.memset.p0.i64(ptr align 8 %252, i8 0, i64 40, i1 false)
  br label %12169

12169:                                            ; preds = %12168
  %12170 = load i32, ptr @test_count, align 4, !tbaa !5
  %12171 = add nsw i32 %12170, 1
  store i32 %12171, ptr @test_count, align 4, !tbaa !5
  %12172 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %252, i32 noundef 0)
  %12173 = icmp eq i32 %12172, -1
  br i1 %12173, label %12174, label %12227

12174:                                            ; preds = %12169
  br label %12175

12175:                                            ; preds = %12174
  br label %12176

12176:                                            ; preds = %12175
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #9
  %12177 = call ptr @__errno_location() #10
  %12178 = load i32, ptr %12177, align 4, !tbaa !5
  store i32 %12178, ptr %253, align 4, !tbaa !5
  %12179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12180 = call i32 @s2n_print_stacktrace(ptr noundef %12179)
  %12181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12182 = trunc i8 %12181 to i1
  br i1 %12182, label %12183, label %12205

12183:                                            ; preds = %12176
  %12184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12185 = call i32 @fileno(ptr noundef %12184) #9
  %12186 = call i32 @isatty(i32 noundef %12185) #9
  %12187 = icmp ne i32 %12186, 0
  br i1 %12187, label %12188, label %12205

12188:                                            ; preds = %12183
  %12189 = load i32, ptr %253, align 4, !tbaa !5
  %12190 = call ptr @__errno_location() #10
  store i32 %12189, ptr %12190, align 4, !tbaa !5
  %12191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12192 = load i32, ptr @test_count, align 4, !tbaa !5
  %12193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12194 = load i32, ptr %12193, align 4, !tbaa !5
  %12195 = call ptr @s2n_strerror(i32 noundef %12194, ptr noundef @.str.4)
  %12196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12197 = load i32, ptr %12196, align 4, !tbaa !5
  %12198 = call ptr @s2n_strerror_debug(i32 noundef %12197, ptr noundef @.str.4)
  %12199 = call ptr @__errno_location() #10
  %12200 = load i32, ptr %12199, align 4, !tbaa !5
  %12201 = call ptr @strerror(i32 noundef %12200) #9
  %12202 = call ptr @__errno_location() #10
  %12203 = load i32, ptr %12202, align 4, !tbaa !5
  %12204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12191, ptr noundef @.str.2, i32 noundef %12192, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 470, ptr noundef %12195, ptr noundef %12198, ptr noundef %12201, i32 noundef %12203) #9
  br label %12222

12205:                                            ; preds = %12183, %12176
  %12206 = load i32, ptr %253, align 4, !tbaa !5
  %12207 = call ptr @__errno_location() #10
  store i32 %12206, ptr %12207, align 4, !tbaa !5
  %12208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12209 = load i32, ptr @test_count, align 4, !tbaa !5
  %12210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12211 = load i32, ptr %12210, align 4, !tbaa !5
  %12212 = call ptr @s2n_strerror(i32 noundef %12211, ptr noundef @.str.4)
  %12213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12214 = load i32, ptr %12213, align 4, !tbaa !5
  %12215 = call ptr @s2n_strerror_debug(i32 noundef %12214, ptr noundef @.str.4)
  %12216 = call ptr @__errno_location() #10
  %12217 = load i32, ptr %12216, align 4, !tbaa !5
  %12218 = call ptr @strerror(i32 noundef %12217) #9
  %12219 = call ptr @__errno_location() #10
  %12220 = load i32, ptr %12219, align 4, !tbaa !5
  %12221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12208, ptr noundef @.str.5, i32 noundef %12209, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 470, ptr noundef %12212, ptr noundef %12215, ptr noundef %12218, i32 noundef %12220) #9
  br label %12222

12222:                                            ; preds = %12205, %12188
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #9
  br label %12223

12223:                                            ; preds = %12222
  br label %12224

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

12225:                                            ; No predecessors!
  br label %12226

12226:                                            ; preds = %12225
  br label %12227

12227:                                            ; preds = %12226, %12169
  br label %12228

12228:                                            ; preds = %12227
  br label %12229

12229:                                            ; preds = %12228
  call void @llvm.lifetime.start.p0(i64 8, ptr %254) #9
  store ptr null, ptr %254, align 8, !tbaa !9
  br label %12230

12230:                                            ; preds = %12229
  %12231 = load i32, ptr @test_count, align 4, !tbaa !5
  %12232 = add nsw i32 %12231, 1
  store i32 %12232, ptr @test_count, align 4, !tbaa !5
  %12233 = load ptr, ptr %250, align 8, !tbaa !9
  %12234 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %12233, ptr noundef %254)
  %12235 = icmp eq i32 %12234, -1
  br i1 %12235, label %12236, label %12289

12236:                                            ; preds = %12230
  br label %12237

12237:                                            ; preds = %12236
  br label %12238

12238:                                            ; preds = %12237
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #9
  %12239 = call ptr @__errno_location() #10
  %12240 = load i32, ptr %12239, align 4, !tbaa !5
  store i32 %12240, ptr %255, align 4, !tbaa !5
  %12241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12242 = call i32 @s2n_print_stacktrace(ptr noundef %12241)
  %12243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12244 = trunc i8 %12243 to i1
  br i1 %12244, label %12245, label %12267

12245:                                            ; preds = %12238
  %12246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12247 = call i32 @fileno(ptr noundef %12246) #9
  %12248 = call i32 @isatty(i32 noundef %12247) #9
  %12249 = icmp ne i32 %12248, 0
  br i1 %12249, label %12250, label %12267

12250:                                            ; preds = %12245
  %12251 = load i32, ptr %255, align 4, !tbaa !5
  %12252 = call ptr @__errno_location() #10
  store i32 %12251, ptr %12252, align 4, !tbaa !5
  %12253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12254 = load i32, ptr @test_count, align 4, !tbaa !5
  %12255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12256 = load i32, ptr %12255, align 4, !tbaa !5
  %12257 = call ptr @s2n_strerror(i32 noundef %12256, ptr noundef @.str.4)
  %12258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12259 = load i32, ptr %12258, align 4, !tbaa !5
  %12260 = call ptr @s2n_strerror_debug(i32 noundef %12259, ptr noundef @.str.4)
  %12261 = call ptr @__errno_location() #10
  %12262 = load i32, ptr %12261, align 4, !tbaa !5
  %12263 = call ptr @strerror(i32 noundef %12262) #9
  %12264 = call ptr @__errno_location() #10
  %12265 = load i32, ptr %12264, align 4, !tbaa !5
  %12266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12253, ptr noundef @.str.2, i32 noundef %12254, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 473, ptr noundef %12257, ptr noundef %12260, ptr noundef %12263, i32 noundef %12265) #9
  br label %12284

12267:                                            ; preds = %12245, %12238
  %12268 = load i32, ptr %255, align 4, !tbaa !5
  %12269 = call ptr @__errno_location() #10
  store i32 %12268, ptr %12269, align 4, !tbaa !5
  %12270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12271 = load i32, ptr @test_count, align 4, !tbaa !5
  %12272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12273 = load i32, ptr %12272, align 4, !tbaa !5
  %12274 = call ptr @s2n_strerror(i32 noundef %12273, ptr noundef @.str.4)
  %12275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12276 = load i32, ptr %12275, align 4, !tbaa !5
  %12277 = call ptr @s2n_strerror_debug(i32 noundef %12276, ptr noundef @.str.4)
  %12278 = call ptr @__errno_location() #10
  %12279 = load i32, ptr %12278, align 4, !tbaa !5
  %12280 = call ptr @strerror(i32 noundef %12279) #9
  %12281 = call ptr @__errno_location() #10
  %12282 = load i32, ptr %12281, align 4, !tbaa !5
  %12283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12270, ptr noundef @.str.5, i32 noundef %12271, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 473, ptr noundef %12274, ptr noundef %12277, ptr noundef %12280, i32 noundef %12282) #9
  br label %12284

12284:                                            ; preds = %12267, %12250
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #9
  br label %12285

12285:                                            ; preds = %12284
  br label %12286

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

12287:                                            ; No predecessors!
  br label %12288

12288:                                            ; preds = %12287
  br label %12289

12289:                                            ; preds = %12288, %12230
  br label %12290

12290:                                            ; preds = %12289
  br label %12291

12291:                                            ; preds = %12290
  br label %12292

12292:                                            ; preds = %12291
  %12293 = load i32, ptr @test_count, align 4, !tbaa !5
  %12294 = add nsw i32 %12293, 1
  store i32 %12294, ptr @test_count, align 4, !tbaa !5
  %12295 = load ptr, ptr %254, align 8, !tbaa !9
  %12296 = icmp eq ptr %12295, null
  br i1 %12296, label %12297, label %12350

12297:                                            ; preds = %12292
  br label %12298

12298:                                            ; preds = %12297
  br label %12299

12299:                                            ; preds = %12298
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #9
  %12300 = call ptr @__errno_location() #10
  %12301 = load i32, ptr %12300, align 4, !tbaa !5
  store i32 %12301, ptr %256, align 4, !tbaa !5
  %12302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12303 = call i32 @s2n_print_stacktrace(ptr noundef %12302)
  %12304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12305 = trunc i8 %12304 to i1
  br i1 %12305, label %12306, label %12328

12306:                                            ; preds = %12299
  %12307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12308 = call i32 @fileno(ptr noundef %12307) #9
  %12309 = call i32 @isatty(i32 noundef %12308) #9
  %12310 = icmp ne i32 %12309, 0
  br i1 %12310, label %12311, label %12328

12311:                                            ; preds = %12306
  %12312 = load i32, ptr %256, align 4, !tbaa !5
  %12313 = call ptr @__errno_location() #10
  store i32 %12312, ptr %12313, align 4, !tbaa !5
  %12314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12315 = load i32, ptr @test_count, align 4, !tbaa !5
  %12316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12317 = load i32, ptr %12316, align 4, !tbaa !5
  %12318 = call ptr @s2n_strerror(i32 noundef %12317, ptr noundef @.str.4)
  %12319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12320 = load i32, ptr %12319, align 4, !tbaa !5
  %12321 = call ptr @s2n_strerror_debug(i32 noundef %12320, ptr noundef @.str.4)
  %12322 = call ptr @__errno_location() #10
  %12323 = load i32, ptr %12322, align 4, !tbaa !5
  %12324 = call ptr @strerror(i32 noundef %12323) #9
  %12325 = call ptr @__errno_location() #10
  %12326 = load i32, ptr %12325, align 4, !tbaa !5
  %12327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12314, ptr noundef @.str.2, i32 noundef %12315, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 474, ptr noundef %12318, ptr noundef %12321, ptr noundef %12324, i32 noundef %12326) #9
  br label %12345

12328:                                            ; preds = %12306, %12299
  %12329 = load i32, ptr %256, align 4, !tbaa !5
  %12330 = call ptr @__errno_location() #10
  store i32 %12329, ptr %12330, align 4, !tbaa !5
  %12331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12332 = load i32, ptr @test_count, align 4, !tbaa !5
  %12333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12334 = load i32, ptr %12333, align 4, !tbaa !5
  %12335 = call ptr @s2n_strerror(i32 noundef %12334, ptr noundef @.str.4)
  %12336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12337 = load i32, ptr %12336, align 4, !tbaa !5
  %12338 = call ptr @s2n_strerror_debug(i32 noundef %12337, ptr noundef @.str.4)
  %12339 = call ptr @__errno_location() #10
  %12340 = load i32, ptr %12339, align 4, !tbaa !5
  %12341 = call ptr @strerror(i32 noundef %12340) #9
  %12342 = call ptr @__errno_location() #10
  %12343 = load i32, ptr %12342, align 4, !tbaa !5
  %12344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12331, ptr noundef @.str.5, i32 noundef %12332, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 474, ptr noundef %12335, ptr noundef %12338, ptr noundef %12341, i32 noundef %12343) #9
  br label %12345

12345:                                            ; preds = %12328, %12311
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #9
  br label %12346

12346:                                            ; preds = %12345
  br label %12347

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

12348:                                            ; No predecessors!
  br label %12349

12349:                                            ; preds = %12348
  br label %12350

12350:                                            ; preds = %12349, %12292
  br label %12351

12351:                                            ; preds = %12350
  br label %12352

12352:                                            ; preds = %12351
  br label %12353

12353:                                            ; preds = %12352
  %12354 = load i32, ptr @test_count, align 4, !tbaa !5
  %12355 = add nsw i32 %12354, 1
  store i32 %12355, ptr @test_count, align 4, !tbaa !5
  %12356 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 3), align 8, !tbaa !18
  %12357 = load ptr, ptr %250, align 8, !tbaa !9
  %12358 = call i32 %12356(ptr noundef %12357, ptr noundef %252)
  %12359 = icmp eq i32 %12358, -1
  br i1 %12359, label %12360, label %12413

12360:                                            ; preds = %12353
  br label %12361

12361:                                            ; preds = %12360
  br label %12362

12362:                                            ; preds = %12361
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #9
  %12363 = call ptr @__errno_location() #10
  %12364 = load i32, ptr %12363, align 4, !tbaa !5
  store i32 %12364, ptr %257, align 4, !tbaa !5
  %12365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12366 = call i32 @s2n_print_stacktrace(ptr noundef %12365)
  %12367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12368 = trunc i8 %12367 to i1
  br i1 %12368, label %12369, label %12391

12369:                                            ; preds = %12362
  %12370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12371 = call i32 @fileno(ptr noundef %12370) #9
  %12372 = call i32 @isatty(i32 noundef %12371) #9
  %12373 = icmp ne i32 %12372, 0
  br i1 %12373, label %12374, label %12391

12374:                                            ; preds = %12369
  %12375 = load i32, ptr %257, align 4, !tbaa !5
  %12376 = call ptr @__errno_location() #10
  store i32 %12375, ptr %12376, align 4, !tbaa !5
  %12377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12378 = load i32, ptr @test_count, align 4, !tbaa !5
  %12379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12380 = load i32, ptr %12379, align 4, !tbaa !5
  %12381 = call ptr @s2n_strerror(i32 noundef %12380, ptr noundef @.str.4)
  %12382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12383 = load i32, ptr %12382, align 4, !tbaa !5
  %12384 = call ptr @s2n_strerror_debug(i32 noundef %12383, ptr noundef @.str.4)
  %12385 = call ptr @__errno_location() #10
  %12386 = load i32, ptr %12385, align 4, !tbaa !5
  %12387 = call ptr @strerror(i32 noundef %12386) #9
  %12388 = call ptr @__errno_location() #10
  %12389 = load i32, ptr %12388, align 4, !tbaa !5
  %12390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12377, ptr noundef @.str.2, i32 noundef %12378, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 476, ptr noundef %12381, ptr noundef %12384, ptr noundef %12387, i32 noundef %12389) #9
  br label %12408

12391:                                            ; preds = %12369, %12362
  %12392 = load i32, ptr %257, align 4, !tbaa !5
  %12393 = call ptr @__errno_location() #10
  store i32 %12392, ptr %12393, align 4, !tbaa !5
  %12394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12395 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %12397, ptr noundef @.str.4)
  %12399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12400 = load i32, ptr %12399, align 4, !tbaa !5
  %12401 = call ptr @s2n_strerror_debug(i32 noundef %12400, ptr noundef @.str.4)
  %12402 = call ptr @__errno_location() #10
  %12403 = load i32, ptr %12402, align 4, !tbaa !5
  %12404 = call ptr @strerror(i32 noundef %12403) #9
  %12405 = call ptr @__errno_location() #10
  %12406 = load i32, ptr %12405, align 4, !tbaa !5
  %12407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12394, ptr noundef @.str.5, i32 noundef %12395, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 476, ptr noundef %12398, ptr noundef %12401, ptr noundef %12404, i32 noundef %12406) #9
  br label %12408

12408:                                            ; preds = %12391, %12374
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #9
  br label %12409

12409:                                            ; preds = %12408
  br label %12410

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

12411:                                            ; No predecessors!
  br label %12412

12412:                                            ; preds = %12411
  br label %12413

12413:                                            ; preds = %12412, %12353
  br label %12414

12414:                                            ; preds = %12413
  br label %12415

12415:                                            ; preds = %12414
  br label %12416

12416:                                            ; preds = %12415
  %12417 = load i32, ptr @test_count, align 4, !tbaa !5
  %12418 = add nsw i32 %12417, 1
  store i32 %12418, ptr @test_count, align 4, !tbaa !5
  %12419 = load ptr, ptr %250, align 8, !tbaa !9
  %12420 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %12419, ptr noundef @.str.77)
  %12421 = icmp eq i32 %12420, -1
  br i1 %12421, label %12422, label %12475

12422:                                            ; preds = %12416
  br label %12423

12423:                                            ; preds = %12422
  br label %12424

12424:                                            ; preds = %12423
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #9
  %12425 = call ptr @__errno_location() #10
  %12426 = load i32, ptr %12425, align 4, !tbaa !5
  store i32 %12426, ptr %258, align 4, !tbaa !5
  %12427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12428 = call i32 @s2n_print_stacktrace(ptr noundef %12427)
  %12429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12430 = trunc i8 %12429 to i1
  br i1 %12430, label %12431, label %12453

12431:                                            ; preds = %12424
  %12432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12433 = call i32 @fileno(ptr noundef %12432) #9
  %12434 = call i32 @isatty(i32 noundef %12433) #9
  %12435 = icmp ne i32 %12434, 0
  br i1 %12435, label %12436, label %12453

12436:                                            ; preds = %12431
  %12437 = load i32, ptr %258, align 4, !tbaa !5
  %12438 = call ptr @__errno_location() #10
  store i32 %12437, ptr %12438, align 4, !tbaa !5
  %12439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12440 = load i32, ptr @test_count, align 4, !tbaa !5
  %12441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12442 = load i32, ptr %12441, align 4, !tbaa !5
  %12443 = call ptr @s2n_strerror(i32 noundef %12442, ptr noundef @.str.4)
  %12444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12445 = load i32, ptr %12444, align 4, !tbaa !5
  %12446 = call ptr @s2n_strerror_debug(i32 noundef %12445, ptr noundef @.str.4)
  %12447 = call ptr @__errno_location() #10
  %12448 = load i32, ptr %12447, align 4, !tbaa !5
  %12449 = call ptr @strerror(i32 noundef %12448) #9
  %12450 = call ptr @__errno_location() #10
  %12451 = load i32, ptr %12450, align 4, !tbaa !5
  %12452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12439, ptr noundef @.str.2, i32 noundef %12440, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 477, ptr noundef %12443, ptr noundef %12446, ptr noundef %12449, i32 noundef %12451) #9
  br label %12470

12453:                                            ; preds = %12431, %12424
  %12454 = load i32, ptr %258, align 4, !tbaa !5
  %12455 = call ptr @__errno_location() #10
  store i32 %12454, ptr %12455, align 4, !tbaa !5
  %12456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12457 = load i32, ptr @test_count, align 4, !tbaa !5
  %12458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12459 = load i32, ptr %12458, align 4, !tbaa !5
  %12460 = call ptr @s2n_strerror(i32 noundef %12459, ptr noundef @.str.4)
  %12461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12462 = load i32, ptr %12461, align 4, !tbaa !5
  %12463 = call ptr @s2n_strerror_debug(i32 noundef %12462, ptr noundef @.str.4)
  %12464 = call ptr @__errno_location() #10
  %12465 = load i32, ptr %12464, align 4, !tbaa !5
  %12466 = call ptr @strerror(i32 noundef %12465) #9
  %12467 = call ptr @__errno_location() #10
  %12468 = load i32, ptr %12467, align 4, !tbaa !5
  %12469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12456, ptr noundef @.str.5, i32 noundef %12457, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 477, ptr noundef %12460, ptr noundef %12463, ptr noundef %12466, i32 noundef %12468) #9
  br label %12470

12470:                                            ; preds = %12453, %12436
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #9
  br label %12471

12471:                                            ; preds = %12470
  br label %12472

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

12473:                                            ; No predecessors!
  br label %12474

12474:                                            ; preds = %12473
  br label %12475

12475:                                            ; preds = %12474, %12416
  br label %12476

12476:                                            ; preds = %12475
  br label %12477

12477:                                            ; preds = %12476
  br label %12478

12478:                                            ; preds = %12477
  %12479 = load i32, ptr @test_count, align 4, !tbaa !5
  %12480 = add nsw i32 %12479, 1
  store i32 %12480, ptr @test_count, align 4, !tbaa !5
  %12481 = load ptr, ptr %250, align 8, !tbaa !9
  %12482 = getelementptr inbounds %struct.s2n_connection, ptr %12481, i32 0, i32 31
  %12483 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %12482, i32 0, i32 1
  %12484 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %12483, i32 0, i32 0
  %12485 = load ptr, ptr %12484, align 8, !tbaa !73
  %12486 = icmp eq ptr %12485, null
  br i1 %12486, label %12540, label %12487

12487:                                            ; preds = %12478
  br label %12488

12488:                                            ; preds = %12487
  br label %12489

12489:                                            ; preds = %12488
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #9
  %12490 = call ptr @__errno_location() #10
  %12491 = load i32, ptr %12490, align 4, !tbaa !5
  store i32 %12491, ptr %259, align 4, !tbaa !5
  %12492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12493 = call i32 @s2n_print_stacktrace(ptr noundef %12492)
  %12494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12495 = trunc i8 %12494 to i1
  br i1 %12495, label %12496, label %12518

12496:                                            ; preds = %12489
  %12497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12498 = call i32 @fileno(ptr noundef %12497) #9
  %12499 = call i32 @isatty(i32 noundef %12498) #9
  %12500 = icmp ne i32 %12499, 0
  br i1 %12500, label %12501, label %12518

12501:                                            ; preds = %12496
  %12502 = load i32, ptr %259, align 4, !tbaa !5
  %12503 = call ptr @__errno_location() #10
  store i32 %12502, ptr %12503, align 4, !tbaa !5
  %12504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12505 = load i32, ptr @test_count, align 4, !tbaa !5
  %12506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12507 = load i32, ptr %12506, align 4, !tbaa !5
  %12508 = call ptr @s2n_strerror(i32 noundef %12507, ptr noundef @.str.4)
  %12509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12510 = load i32, ptr %12509, align 4, !tbaa !5
  %12511 = call ptr @s2n_strerror_debug(i32 noundef %12510, ptr noundef @.str.4)
  %12512 = call ptr @__errno_location() #10
  %12513 = load i32, ptr %12512, align 4, !tbaa !5
  %12514 = call ptr @strerror(i32 noundef %12513) #9
  %12515 = call ptr @__errno_location() #10
  %12516 = load i32, ptr %12515, align 4, !tbaa !5
  %12517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12504, ptr noundef @.str.2, i32 noundef %12505, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 479, ptr noundef %12508, ptr noundef %12511, ptr noundef %12514, i32 noundef %12516) #9
  br label %12535

12518:                                            ; preds = %12496, %12489
  %12519 = load i32, ptr %259, align 4, !tbaa !5
  %12520 = call ptr @__errno_location() #10
  store i32 %12519, ptr %12520, align 4, !tbaa !5
  %12521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12522 = load i32, ptr @test_count, align 4, !tbaa !5
  %12523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12524 = load i32, ptr %12523, align 4, !tbaa !5
  %12525 = call ptr @s2n_strerror(i32 noundef %12524, ptr noundef @.str.4)
  %12526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12527 = load i32, ptr %12526, align 4, !tbaa !5
  %12528 = call ptr @s2n_strerror_debug(i32 noundef %12527, ptr noundef @.str.4)
  %12529 = call ptr @__errno_location() #10
  %12530 = load i32, ptr %12529, align 4, !tbaa !5
  %12531 = call ptr @strerror(i32 noundef %12530) #9
  %12532 = call ptr @__errno_location() #10
  %12533 = load i32, ptr %12532, align 4, !tbaa !5
  %12534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12521, ptr noundef @.str.5, i32 noundef %12522, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 479, ptr noundef %12525, ptr noundef %12528, ptr noundef %12531, i32 noundef %12533) #9
  br label %12535

12535:                                            ; preds = %12518, %12501
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #9
  br label %12536

12536:                                            ; preds = %12535
  br label %12537

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

12538:                                            ; No predecessors!
  br label %12539

12539:                                            ; preds = %12538
  br label %12540

12540:                                            ; preds = %12539, %12478
  br label %12541

12541:                                            ; preds = %12540
  br label %12542

12542:                                            ; preds = %12541
  br label %12543

12543:                                            ; preds = %12542
  %12544 = load i32, ptr @test_count, align 4, !tbaa !5
  %12545 = add nsw i32 %12544, 1
  store i32 %12545, ptr @test_count, align 4, !tbaa !5
  %12546 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 4), align 8, !tbaa !77
  %12547 = load ptr, ptr %250, align 8, !tbaa !9
  %12548 = call i32 %12546(ptr noundef %12547, ptr noundef %252)
  %12549 = icmp eq i32 %12548, -1
  br i1 %12549, label %12550, label %12603

12550:                                            ; preds = %12543
  br label %12551

12551:                                            ; preds = %12550
  br label %12552

12552:                                            ; preds = %12551
  call void @llvm.lifetime.start.p0(i64 4, ptr %260) #9
  %12553 = call ptr @__errno_location() #10
  %12554 = load i32, ptr %12553, align 4, !tbaa !5
  store i32 %12554, ptr %260, align 4, !tbaa !5
  %12555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12556 = call i32 @s2n_print_stacktrace(ptr noundef %12555)
  %12557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12558 = trunc i8 %12557 to i1
  br i1 %12558, label %12559, label %12581

12559:                                            ; preds = %12552
  %12560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12561 = call i32 @fileno(ptr noundef %12560) #9
  %12562 = call i32 @isatty(i32 noundef %12561) #9
  %12563 = icmp ne i32 %12562, 0
  br i1 %12563, label %12564, label %12581

12564:                                            ; preds = %12559
  %12565 = load i32, ptr %260, align 4, !tbaa !5
  %12566 = call ptr @__errno_location() #10
  store i32 %12565, ptr %12566, align 4, !tbaa !5
  %12567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12568 = load i32, ptr @test_count, align 4, !tbaa !5
  %12569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12570 = load i32, ptr %12569, align 4, !tbaa !5
  %12571 = call ptr @s2n_strerror(i32 noundef %12570, ptr noundef @.str.4)
  %12572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12573 = load i32, ptr %12572, align 4, !tbaa !5
  %12574 = call ptr @s2n_strerror_debug(i32 noundef %12573, ptr noundef @.str.4)
  %12575 = call ptr @__errno_location() #10
  %12576 = load i32, ptr %12575, align 4, !tbaa !5
  %12577 = call ptr @strerror(i32 noundef %12576) #9
  %12578 = call ptr @__errno_location() #10
  %12579 = load i32, ptr %12578, align 4, !tbaa !5
  %12580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12567, ptr noundef @.str.2, i32 noundef %12568, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 480, ptr noundef %12571, ptr noundef %12574, ptr noundef %12577, i32 noundef %12579) #9
  br label %12598

12581:                                            ; preds = %12559, %12552
  %12582 = load i32, ptr %260, align 4, !tbaa !5
  %12583 = call ptr @__errno_location() #10
  store i32 %12582, ptr %12583, align 4, !tbaa !5
  %12584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12585 = load i32, ptr @test_count, align 4, !tbaa !5
  %12586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12587 = load i32, ptr %12586, align 4, !tbaa !5
  %12588 = call ptr @s2n_strerror(i32 noundef %12587, ptr noundef @.str.4)
  %12589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12590 = load i32, ptr %12589, align 4, !tbaa !5
  %12591 = call ptr @s2n_strerror_debug(i32 noundef %12590, ptr noundef @.str.4)
  %12592 = call ptr @__errno_location() #10
  %12593 = load i32, ptr %12592, align 4, !tbaa !5
  %12594 = call ptr @strerror(i32 noundef %12593) #9
  %12595 = call ptr @__errno_location() #10
  %12596 = load i32, ptr %12595, align 4, !tbaa !5
  %12597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12584, ptr noundef @.str.5, i32 noundef %12585, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 480, ptr noundef %12588, ptr noundef %12591, ptr noundef %12594, i32 noundef %12596) #9
  br label %12598

12598:                                            ; preds = %12581, %12564
  call void @llvm.lifetime.end.p0(i64 4, ptr %260) #9
  br label %12599

12599:                                            ; preds = %12598
  br label %12600

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

12601:                                            ; No predecessors!
  br label %12602

12602:                                            ; preds = %12601
  br label %12603

12603:                                            ; preds = %12602, %12543
  br label %12604

12604:                                            ; preds = %12603
  br label %12605

12605:                                            ; preds = %12604
  br label %12606

12606:                                            ; preds = %12605
  %12607 = load i32, ptr @test_count, align 4, !tbaa !5
  %12608 = add nsw i32 %12607, 1
  store i32 %12608, ptr @test_count, align 4, !tbaa !5
  %12609 = load ptr, ptr %250, align 8, !tbaa !9
  %12610 = getelementptr inbounds %struct.s2n_connection, ptr %12609, i32 0, i32 31
  %12611 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %12610, i32 0, i32 1
  %12612 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %12611, i32 0, i32 0
  %12613 = load ptr, ptr %12612, align 8, !tbaa !73
  %12614 = icmp eq ptr %12613, null
  br i1 %12614, label %12668, label %12615

12615:                                            ; preds = %12606
  br label %12616

12616:                                            ; preds = %12615
  br label %12617

12617:                                            ; preds = %12616
  call void @llvm.lifetime.start.p0(i64 4, ptr %261) #9
  %12618 = call ptr @__errno_location() #10
  %12619 = load i32, ptr %12618, align 4, !tbaa !5
  store i32 %12619, ptr %261, align 4, !tbaa !5
  %12620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12621 = call i32 @s2n_print_stacktrace(ptr noundef %12620)
  %12622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12623 = trunc i8 %12622 to i1
  br i1 %12623, label %12624, label %12646

12624:                                            ; preds = %12617
  %12625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12626 = call i32 @fileno(ptr noundef %12625) #9
  %12627 = call i32 @isatty(i32 noundef %12626) #9
  %12628 = icmp ne i32 %12627, 0
  br i1 %12628, label %12629, label %12646

12629:                                            ; preds = %12624
  %12630 = load i32, ptr %261, align 4, !tbaa !5
  %12631 = call ptr @__errno_location() #10
  store i32 %12630, ptr %12631, align 4, !tbaa !5
  %12632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12633 = load i32, ptr @test_count, align 4, !tbaa !5
  %12634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12635 = load i32, ptr %12634, align 4, !tbaa !5
  %12636 = call ptr @s2n_strerror(i32 noundef %12635, ptr noundef @.str.4)
  %12637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12638 = load i32, ptr %12637, align 4, !tbaa !5
  %12639 = call ptr @s2n_strerror_debug(i32 noundef %12638, ptr noundef @.str.4)
  %12640 = call ptr @__errno_location() #10
  %12641 = load i32, ptr %12640, align 4, !tbaa !5
  %12642 = call ptr @strerror(i32 noundef %12641) #9
  %12643 = call ptr @__errno_location() #10
  %12644 = load i32, ptr %12643, align 4, !tbaa !5
  %12645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12632, ptr noundef @.str.2, i32 noundef %12633, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 481, ptr noundef %12636, ptr noundef %12639, ptr noundef %12642, i32 noundef %12644) #9
  br label %12663

12646:                                            ; preds = %12624, %12617
  %12647 = load i32, ptr %261, align 4, !tbaa !5
  %12648 = call ptr @__errno_location() #10
  store i32 %12647, ptr %12648, align 4, !tbaa !5
  %12649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12650 = load i32, ptr @test_count, align 4, !tbaa !5
  %12651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12652 = load i32, ptr %12651, align 4, !tbaa !5
  %12653 = call ptr @s2n_strerror(i32 noundef %12652, ptr noundef @.str.4)
  %12654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12655 = load i32, ptr %12654, align 4, !tbaa !5
  %12656 = call ptr @s2n_strerror_debug(i32 noundef %12655, ptr noundef @.str.4)
  %12657 = call ptr @__errno_location() #10
  %12658 = load i32, ptr %12657, align 4, !tbaa !5
  %12659 = call ptr @strerror(i32 noundef %12658) #9
  %12660 = call ptr @__errno_location() #10
  %12661 = load i32, ptr %12660, align 4, !tbaa !5
  %12662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12649, ptr noundef @.str.5, i32 noundef %12650, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 481, ptr noundef %12653, ptr noundef %12656, ptr noundef %12659, i32 noundef %12661) #9
  br label %12663

12663:                                            ; preds = %12646, %12629
  call void @llvm.lifetime.end.p0(i64 4, ptr %261) #9
  br label %12664

12664:                                            ; preds = %12663
  br label %12665

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

12666:                                            ; No predecessors!
  br label %12667

12667:                                            ; preds = %12666
  br label %12668

12668:                                            ; preds = %12667, %12606
  br label %12669

12669:                                            ; preds = %12668
  br label %12670

12670:                                            ; preds = %12669
  br label %12671

12671:                                            ; preds = %12670
  %12672 = load i32, ptr @test_count, align 4, !tbaa !5
  %12673 = add nsw i32 %12672, 1
  store i32 %12673, ptr @test_count, align 4, !tbaa !5
  %12674 = load ptr, ptr %250, align 8, !tbaa !9
  %12675 = getelementptr inbounds %struct.s2n_connection, ptr %12674, i32 0, i32 31
  %12676 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %12675, i32 0, i32 4
  %12677 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %12676, i32 0, i32 0
  %12678 = load ptr, ptr %12677, align 8, !tbaa !74
  %12679 = icmp eq ptr %12678, null
  br i1 %12679, label %12733, label %12680

12680:                                            ; preds = %12671
  br label %12681

12681:                                            ; preds = %12680
  br label %12682

12682:                                            ; preds = %12681
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #9
  %12683 = call ptr @__errno_location() #10
  %12684 = load i32, ptr %12683, align 4, !tbaa !5
  store i32 %12684, ptr %262, align 4, !tbaa !5
  %12685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12686 = call i32 @s2n_print_stacktrace(ptr noundef %12685)
  %12687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12688 = trunc i8 %12687 to i1
  br i1 %12688, label %12689, label %12711

12689:                                            ; preds = %12682
  %12690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12691 = call i32 @fileno(ptr noundef %12690) #9
  %12692 = call i32 @isatty(i32 noundef %12691) #9
  %12693 = icmp ne i32 %12692, 0
  br i1 %12693, label %12694, label %12711

12694:                                            ; preds = %12689
  %12695 = load i32, ptr %262, align 4, !tbaa !5
  %12696 = call ptr @__errno_location() #10
  store i32 %12695, ptr %12696, align 4, !tbaa !5
  %12697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12698 = load i32, ptr @test_count, align 4, !tbaa !5
  %12699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12700 = load i32, ptr %12699, align 4, !tbaa !5
  %12701 = call ptr @s2n_strerror(i32 noundef %12700, ptr noundef @.str.4)
  %12702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12703 = load i32, ptr %12702, align 4, !tbaa !5
  %12704 = call ptr @s2n_strerror_debug(i32 noundef %12703, ptr noundef @.str.4)
  %12705 = call ptr @__errno_location() #10
  %12706 = load i32, ptr %12705, align 4, !tbaa !5
  %12707 = call ptr @strerror(i32 noundef %12706) #9
  %12708 = call ptr @__errno_location() #10
  %12709 = load i32, ptr %12708, align 4, !tbaa !5
  %12710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12697, ptr noundef @.str.2, i32 noundef %12698, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 482, ptr noundef %12701, ptr noundef %12704, ptr noundef %12707, i32 noundef %12709) #9
  br label %12728

12711:                                            ; preds = %12689, %12682
  %12712 = load i32, ptr %262, align 4, !tbaa !5
  %12713 = call ptr @__errno_location() #10
  store i32 %12712, ptr %12713, align 4, !tbaa !5
  %12714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12715 = load i32, ptr @test_count, align 4, !tbaa !5
  %12716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12717 = load i32, ptr %12716, align 4, !tbaa !5
  %12718 = call ptr @s2n_strerror(i32 noundef %12717, ptr noundef @.str.4)
  %12719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12720 = load i32, ptr %12719, align 4, !tbaa !5
  %12721 = call ptr @s2n_strerror_debug(i32 noundef %12720, ptr noundef @.str.4)
  %12722 = call ptr @__errno_location() #10
  %12723 = load i32, ptr %12722, align 4, !tbaa !5
  %12724 = call ptr @strerror(i32 noundef %12723) #9
  %12725 = call ptr @__errno_location() #10
  %12726 = load i32, ptr %12725, align 4, !tbaa !5
  %12727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12714, ptr noundef @.str.5, i32 noundef %12715, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 482, ptr noundef %12718, ptr noundef %12721, ptr noundef %12724, i32 noundef %12726) #9
  br label %12728

12728:                                            ; preds = %12711, %12694
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #9
  br label %12729

12729:                                            ; preds = %12728
  br label %12730

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

12731:                                            ; No predecessors!
  br label %12732

12732:                                            ; preds = %12731
  br label %12733

12733:                                            ; preds = %12732, %12671
  br label %12734

12734:                                            ; preds = %12733
  br label %12735

12735:                                            ; preds = %12734
  br label %12736

12736:                                            ; preds = %12735
  %12737 = load i32, ptr @test_count, align 4, !tbaa !5
  %12738 = add nsw i32 %12737, 1
  store i32 %12738, ptr @test_count, align 4, !tbaa !5
  %12739 = load ptr, ptr %250, align 8, !tbaa !9
  %12740 = getelementptr inbounds %struct.s2n_connection, ptr %12739, i32 0, i32 31
  %12741 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %12740, i32 0, i32 4
  %12742 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %12741, i32 0, i32 2
  %12743 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %12742, i32 0, i32 0
  %12744 = load ptr, ptr %12743, align 8, !tbaa !75
  %12745 = icmp eq ptr %12744, null
  br i1 %12745, label %12799, label %12746

12746:                                            ; preds = %12736
  br label %12747

12747:                                            ; preds = %12746
  br label %12748

12748:                                            ; preds = %12747
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #9
  %12749 = call ptr @__errno_location() #10
  %12750 = load i32, ptr %12749, align 4, !tbaa !5
  store i32 %12750, ptr %263, align 4, !tbaa !5
  %12751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12752 = call i32 @s2n_print_stacktrace(ptr noundef %12751)
  %12753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12754 = trunc i8 %12753 to i1
  br i1 %12754, label %12755, label %12777

12755:                                            ; preds = %12748
  %12756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12757 = call i32 @fileno(ptr noundef %12756) #9
  %12758 = call i32 @isatty(i32 noundef %12757) #9
  %12759 = icmp ne i32 %12758, 0
  br i1 %12759, label %12760, label %12777

12760:                                            ; preds = %12755
  %12761 = load i32, ptr %263, align 4, !tbaa !5
  %12762 = call ptr @__errno_location() #10
  store i32 %12761, ptr %12762, align 4, !tbaa !5
  %12763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12764 = load i32, ptr @test_count, align 4, !tbaa !5
  %12765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12766 = load i32, ptr %12765, align 4, !tbaa !5
  %12767 = call ptr @s2n_strerror(i32 noundef %12766, ptr noundef @.str.4)
  %12768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12769 = load i32, ptr %12768, align 4, !tbaa !5
  %12770 = call ptr @s2n_strerror_debug(i32 noundef %12769, ptr noundef @.str.4)
  %12771 = call ptr @__errno_location() #10
  %12772 = load i32, ptr %12771, align 4, !tbaa !5
  %12773 = call ptr @strerror(i32 noundef %12772) #9
  %12774 = call ptr @__errno_location() #10
  %12775 = load i32, ptr %12774, align 4, !tbaa !5
  %12776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12763, ptr noundef @.str.2, i32 noundef %12764, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 483, ptr noundef %12767, ptr noundef %12770, ptr noundef %12773, i32 noundef %12775) #9
  br label %12794

12777:                                            ; preds = %12755, %12748
  %12778 = load i32, ptr %263, align 4, !tbaa !5
  %12779 = call ptr @__errno_location() #10
  store i32 %12778, ptr %12779, align 4, !tbaa !5
  %12780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12781 = load i32, ptr @test_count, align 4, !tbaa !5
  %12782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12783 = load i32, ptr %12782, align 4, !tbaa !5
  %12784 = call ptr @s2n_strerror(i32 noundef %12783, ptr noundef @.str.4)
  %12785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12786 = load i32, ptr %12785, align 4, !tbaa !5
  %12787 = call ptr @s2n_strerror_debug(i32 noundef %12786, ptr noundef @.str.4)
  %12788 = call ptr @__errno_location() #10
  %12789 = load i32, ptr %12788, align 4, !tbaa !5
  %12790 = call ptr @strerror(i32 noundef %12789) #9
  %12791 = call ptr @__errno_location() #10
  %12792 = load i32, ptr %12791, align 4, !tbaa !5
  %12793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12780, ptr noundef @.str.5, i32 noundef %12781, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 483, ptr noundef %12784, ptr noundef %12787, ptr noundef %12790, i32 noundef %12792) #9
  br label %12794

12794:                                            ; preds = %12777, %12760
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #9
  br label %12795

12795:                                            ; preds = %12794
  br label %12796

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

12797:                                            ; No predecessors!
  br label %12798

12798:                                            ; preds = %12797
  br label %12799

12799:                                            ; preds = %12798, %12736
  br label %12800

12800:                                            ; preds = %12799
  br label %12801

12801:                                            ; preds = %12800
  br label %12802

12802:                                            ; preds = %12801
  %12803 = load i32, ptr @test_count, align 4, !tbaa !5
  %12804 = add nsw i32 %12803, 1
  store i32 %12804, ptr @test_count, align 4, !tbaa !5
  %12805 = load ptr, ptr %250, align 8, !tbaa !9
  %12806 = getelementptr inbounds %struct.s2n_connection, ptr %12805, i32 0, i32 31
  %12807 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %12806, i32 0, i32 4
  %12808 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %12807, i32 0, i32 1
  %12809 = getelementptr inbounds %struct.s2n_kem_params, ptr %12808, i32 0, i32 0
  %12810 = load ptr, ptr %12809, align 8, !tbaa !76
  %12811 = icmp eq ptr %12810, null
  br i1 %12811, label %12865, label %12812

12812:                                            ; preds = %12802
  br label %12813

12813:                                            ; preds = %12812
  br label %12814

12814:                                            ; preds = %12813
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #9
  %12815 = call ptr @__errno_location() #10
  %12816 = load i32, ptr %12815, align 4, !tbaa !5
  store i32 %12816, ptr %264, align 4, !tbaa !5
  %12817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12818 = call i32 @s2n_print_stacktrace(ptr noundef %12817)
  %12819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12820 = trunc i8 %12819 to i1
  br i1 %12820, label %12821, label %12843

12821:                                            ; preds = %12814
  %12822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12823 = call i32 @fileno(ptr noundef %12822) #9
  %12824 = call i32 @isatty(i32 noundef %12823) #9
  %12825 = icmp ne i32 %12824, 0
  br i1 %12825, label %12826, label %12843

12826:                                            ; preds = %12821
  %12827 = load i32, ptr %264, align 4, !tbaa !5
  %12828 = call ptr @__errno_location() #10
  store i32 %12827, ptr %12828, align 4, !tbaa !5
  %12829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12830 = load i32, ptr @test_count, align 4, !tbaa !5
  %12831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12832 = load i32, ptr %12831, align 4, !tbaa !5
  %12833 = call ptr @s2n_strerror(i32 noundef %12832, ptr noundef @.str.4)
  %12834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12835 = load i32, ptr %12834, align 4, !tbaa !5
  %12836 = call ptr @s2n_strerror_debug(i32 noundef %12835, ptr noundef @.str.4)
  %12837 = call ptr @__errno_location() #10
  %12838 = load i32, ptr %12837, align 4, !tbaa !5
  %12839 = call ptr @strerror(i32 noundef %12838) #9
  %12840 = call ptr @__errno_location() #10
  %12841 = load i32, ptr %12840, align 4, !tbaa !5
  %12842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12829, ptr noundef @.str.2, i32 noundef %12830, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 484, ptr noundef %12833, ptr noundef %12836, ptr noundef %12839, i32 noundef %12841) #9
  br label %12860

12843:                                            ; preds = %12821, %12814
  %12844 = load i32, ptr %264, align 4, !tbaa !5
  %12845 = call ptr @__errno_location() #10
  store i32 %12844, ptr %12845, align 4, !tbaa !5
  %12846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12847 = load i32, ptr @test_count, align 4, !tbaa !5
  %12848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12849 = load i32, ptr %12848, align 4, !tbaa !5
  %12850 = call ptr @s2n_strerror(i32 noundef %12849, ptr noundef @.str.4)
  %12851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12852 = load i32, ptr %12851, align 4, !tbaa !5
  %12853 = call ptr @s2n_strerror_debug(i32 noundef %12852, ptr noundef @.str.4)
  %12854 = call ptr @__errno_location() #10
  %12855 = load i32, ptr %12854, align 4, !tbaa !5
  %12856 = call ptr @strerror(i32 noundef %12855) #9
  %12857 = call ptr @__errno_location() #10
  %12858 = load i32, ptr %12857, align 4, !tbaa !5
  %12859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12846, ptr noundef @.str.5, i32 noundef %12847, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 484, ptr noundef %12850, ptr noundef %12853, ptr noundef %12856, i32 noundef %12858) #9
  br label %12860

12860:                                            ; preds = %12843, %12826
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #9
  br label %12861

12861:                                            ; preds = %12860
  br label %12862

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

12863:                                            ; No predecessors!
  br label %12864

12864:                                            ; preds = %12863
  br label %12865

12865:                                            ; preds = %12864, %12802
  br label %12866

12866:                                            ; preds = %12865
  br label %12867

12867:                                            ; preds = %12866
  br label %12868

12868:                                            ; preds = %12867
  %12869 = load i32, ptr @test_count, align 4, !tbaa !5
  %12870 = add nsw i32 %12869, 1
  store i32 %12870, ptr @test_count, align 4, !tbaa !5
  %12871 = call i32 @s2n_stuffer_free(ptr noundef %252)
  %12872 = icmp eq i32 %12871, -1
  br i1 %12872, label %12873, label %12926

12873:                                            ; preds = %12868
  br label %12874

12874:                                            ; preds = %12873
  br label %12875

12875:                                            ; preds = %12874
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #9
  %12876 = call ptr @__errno_location() #10
  %12877 = load i32, ptr %12876, align 4, !tbaa !5
  store i32 %12877, ptr %265, align 4, !tbaa !5
  %12878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12879 = call i32 @s2n_print_stacktrace(ptr noundef %12878)
  %12880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12881 = trunc i8 %12880 to i1
  br i1 %12881, label %12882, label %12904

12882:                                            ; preds = %12875
  %12883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12884 = call i32 @fileno(ptr noundef %12883) #9
  %12885 = call i32 @isatty(i32 noundef %12884) #9
  %12886 = icmp ne i32 %12885, 0
  br i1 %12886, label %12887, label %12904

12887:                                            ; preds = %12882
  %12888 = load i32, ptr %265, align 4, !tbaa !5
  %12889 = call ptr @__errno_location() #10
  store i32 %12888, ptr %12889, align 4, !tbaa !5
  %12890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12891 = load i32, ptr @test_count, align 4, !tbaa !5
  %12892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12893 = load i32, ptr %12892, align 4, !tbaa !5
  %12894 = call ptr @s2n_strerror(i32 noundef %12893, ptr noundef @.str.4)
  %12895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12896 = load i32, ptr %12895, align 4, !tbaa !5
  %12897 = call ptr @s2n_strerror_debug(i32 noundef %12896, ptr noundef @.str.4)
  %12898 = call ptr @__errno_location() #10
  %12899 = load i32, ptr %12898, align 4, !tbaa !5
  %12900 = call ptr @strerror(i32 noundef %12899) #9
  %12901 = call ptr @__errno_location() #10
  %12902 = load i32, ptr %12901, align 4, !tbaa !5
  %12903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12890, ptr noundef @.str.2, i32 noundef %12891, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 486, ptr noundef %12894, ptr noundef %12897, ptr noundef %12900, i32 noundef %12902) #9
  br label %12921

12904:                                            ; preds = %12882, %12875
  %12905 = load i32, ptr %265, align 4, !tbaa !5
  %12906 = call ptr @__errno_location() #10
  store i32 %12905, ptr %12906, align 4, !tbaa !5
  %12907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12908 = load i32, ptr @test_count, align 4, !tbaa !5
  %12909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12910 = load i32, ptr %12909, align 4, !tbaa !5
  %12911 = call ptr @s2n_strerror(i32 noundef %12910, ptr noundef @.str.4)
  %12912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12913 = load i32, ptr %12912, align 4, !tbaa !5
  %12914 = call ptr @s2n_strerror_debug(i32 noundef %12913, ptr noundef @.str.4)
  %12915 = call ptr @__errno_location() #10
  %12916 = load i32, ptr %12915, align 4, !tbaa !5
  %12917 = call ptr @strerror(i32 noundef %12916) #9
  %12918 = call ptr @__errno_location() #10
  %12919 = load i32, ptr %12918, align 4, !tbaa !5
  %12920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12907, ptr noundef @.str.5, i32 noundef %12908, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 486, ptr noundef %12911, ptr noundef %12914, ptr noundef %12917, i32 noundef %12919) #9
  br label %12921

12921:                                            ; preds = %12904, %12887
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #9
  br label %12922

12922:                                            ; preds = %12921
  br label %12923

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

12924:                                            ; No predecessors!
  br label %12925

12925:                                            ; preds = %12924
  br label %12926

12926:                                            ; preds = %12925, %12868
  br label %12927

12927:                                            ; preds = %12926
  br label %12928

12928:                                            ; preds = %12927
  br label %12929

12929:                                            ; preds = %12928
  %12930 = load i32, ptr @test_count, align 4, !tbaa !5
  %12931 = add nsw i32 %12930, 1
  store i32 %12931, ptr @test_count, align 4, !tbaa !5
  %12932 = load ptr, ptr %250, align 8, !tbaa !9
  %12933 = call i32 @s2n_connection_free(ptr noundef %12932)
  %12934 = icmp eq i32 %12933, -1
  br i1 %12934, label %12935, label %12988

12935:                                            ; preds = %12929
  br label %12936

12936:                                            ; preds = %12935
  br label %12937

12937:                                            ; preds = %12936
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #9
  %12938 = call ptr @__errno_location() #10
  %12939 = load i32, ptr %12938, align 4, !tbaa !5
  store i32 %12939, ptr %266, align 4, !tbaa !5
  %12940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12941 = call i32 @s2n_print_stacktrace(ptr noundef %12940)
  %12942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12943 = trunc i8 %12942 to i1
  br i1 %12943, label %12944, label %12966

12944:                                            ; preds = %12937
  %12945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12946 = call i32 @fileno(ptr noundef %12945) #9
  %12947 = call i32 @isatty(i32 noundef %12946) #9
  %12948 = icmp ne i32 %12947, 0
  br i1 %12948, label %12949, label %12966

12949:                                            ; preds = %12944
  %12950 = load i32, ptr %266, align 4, !tbaa !5
  %12951 = call ptr @__errno_location() #10
  store i32 %12950, ptr %12951, align 4, !tbaa !5
  %12952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12953 = load i32, ptr @test_count, align 4, !tbaa !5
  %12954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12955 = load i32, ptr %12954, align 4, !tbaa !5
  %12956 = call ptr @s2n_strerror(i32 noundef %12955, ptr noundef @.str.4)
  %12957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12958 = load i32, ptr %12957, align 4, !tbaa !5
  %12959 = call ptr @s2n_strerror_debug(i32 noundef %12958, ptr noundef @.str.4)
  %12960 = call ptr @__errno_location() #10
  %12961 = load i32, ptr %12960, align 4, !tbaa !5
  %12962 = call ptr @strerror(i32 noundef %12961) #9
  %12963 = call ptr @__errno_location() #10
  %12964 = load i32, ptr %12963, align 4, !tbaa !5
  %12965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12952, ptr noundef @.str.2, i32 noundef %12953, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 487, ptr noundef %12956, ptr noundef %12959, ptr noundef %12962, i32 noundef %12964) #9
  br label %12983

12966:                                            ; preds = %12944, %12937
  %12967 = load i32, ptr %266, align 4, !tbaa !5
  %12968 = call ptr @__errno_location() #10
  store i32 %12967, ptr %12968, align 4, !tbaa !5
  %12969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12970 = load i32, ptr @test_count, align 4, !tbaa !5
  %12971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12972 = load i32, ptr %12971, align 4, !tbaa !5
  %12973 = call ptr @s2n_strerror(i32 noundef %12972, ptr noundef @.str.4)
  %12974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12975 = load i32, ptr %12974, align 4, !tbaa !5
  %12976 = call ptr @s2n_strerror_debug(i32 noundef %12975, ptr noundef @.str.4)
  %12977 = call ptr @__errno_location() #10
  %12978 = load i32, ptr %12977, align 4, !tbaa !5
  %12979 = call ptr @strerror(i32 noundef %12978) #9
  %12980 = call ptr @__errno_location() #10
  %12981 = load i32, ptr %12980, align 4, !tbaa !5
  %12982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12969, ptr noundef @.str.5, i32 noundef %12970, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 487, ptr noundef %12973, ptr noundef %12976, ptr noundef %12979, i32 noundef %12981) #9
  br label %12983

12983:                                            ; preds = %12966, %12949
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #9
  br label %12984

12984:                                            ; preds = %12983
  br label %12985

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

12986:                                            ; No predecessors!
  br label %12987

12987:                                            ; preds = %12986
  br label %12988

12988:                                            ; preds = %12987, %12929
  br label %12989

12989:                                            ; preds = %12988
  br label %12990

12990:                                            ; preds = %12989
  call void @llvm.lifetime.end.p0(i64 8, ptr %254) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %252) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %267) #9
  store ptr null, ptr %267, align 8, !tbaa !9
  br label %12991

12991:                                            ; preds = %12990
  %12992 = load i32, ptr @test_count, align 4, !tbaa !5
  %12993 = add nsw i32 %12992, 1
  store i32 %12993, ptr @test_count, align 4, !tbaa !5
  %12994 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %12994, ptr %267, align 8, !tbaa !9
  %12995 = icmp eq ptr %12994, null
  br i1 %12995, label %12996, label %13049

12996:                                            ; preds = %12991
  br label %12997

12997:                                            ; preds = %12996
  br label %12998

12998:                                            ; preds = %12997
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #9
  %12999 = call ptr @__errno_location() #10
  %13000 = load i32, ptr %12999, align 4, !tbaa !5
  store i32 %13000, ptr %268, align 4, !tbaa !5
  %13001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13002 = call i32 @s2n_print_stacktrace(ptr noundef %13001)
  %13003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13004 = trunc i8 %13003 to i1
  br i1 %13004, label %13005, label %13027

13005:                                            ; preds = %12998
  %13006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13007 = call i32 @fileno(ptr noundef %13006) #9
  %13008 = call i32 @isatty(i32 noundef %13007) #9
  %13009 = icmp ne i32 %13008, 0
  br i1 %13009, label %13010, label %13027

13010:                                            ; preds = %13005
  %13011 = load i32, ptr %268, align 4, !tbaa !5
  %13012 = call ptr @__errno_location() #10
  store i32 %13011, ptr %13012, align 4, !tbaa !5
  %13013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13014 = load i32, ptr @test_count, align 4, !tbaa !5
  %13015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13016 = load i32, ptr %13015, align 4, !tbaa !5
  %13017 = call ptr @s2n_strerror(i32 noundef %13016, ptr noundef @.str.4)
  %13018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13019 = load i32, ptr %13018, align 4, !tbaa !5
  %13020 = call ptr @s2n_strerror_debug(i32 noundef %13019, ptr noundef @.str.4)
  %13021 = call ptr @__errno_location() #10
  %13022 = load i32, ptr %13021, align 4, !tbaa !5
  %13023 = call ptr @strerror(i32 noundef %13022) #9
  %13024 = call ptr @__errno_location() #10
  %13025 = load i32, ptr %13024, align 4, !tbaa !5
  %13026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13013, ptr noundef @.str.2, i32 noundef %13014, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 493, ptr noundef %13017, ptr noundef %13020, ptr noundef %13023, i32 noundef %13025) #9
  br label %13044

13027:                                            ; preds = %13005, %12998
  %13028 = load i32, ptr %268, align 4, !tbaa !5
  %13029 = call ptr @__errno_location() #10
  store i32 %13028, ptr %13029, align 4, !tbaa !5
  %13030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13031 = load i32, ptr @test_count, align 4, !tbaa !5
  %13032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13033 = load i32, ptr %13032, align 4, !tbaa !5
  %13034 = call ptr @s2n_strerror(i32 noundef %13033, ptr noundef @.str.4)
  %13035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13036 = load i32, ptr %13035, align 4, !tbaa !5
  %13037 = call ptr @s2n_strerror_debug(i32 noundef %13036, ptr noundef @.str.4)
  %13038 = call ptr @__errno_location() #10
  %13039 = load i32, ptr %13038, align 4, !tbaa !5
  %13040 = call ptr @strerror(i32 noundef %13039) #9
  %13041 = call ptr @__errno_location() #10
  %13042 = load i32, ptr %13041, align 4, !tbaa !5
  %13043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13030, ptr noundef @.str.5, i32 noundef %13031, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 493, ptr noundef %13034, ptr noundef %13037, ptr noundef %13040, i32 noundef %13042) #9
  br label %13044

13044:                                            ; preds = %13027, %13010
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #9
  br label %13045

13045:                                            ; preds = %13044
  br label %13046

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

13047:                                            ; No predecessors!
  br label %13048

13048:                                            ; preds = %13047
  br label %13049

13049:                                            ; preds = %13048, %12991
  br label %13050

13050:                                            ; preds = %13049
  br label %13051

13051:                                            ; preds = %13050
  call void @llvm.lifetime.start.p0(i64 40, ptr %269) #9
  call void @llvm.memset.p0.i64(ptr align 8 %269, i8 0, i64 40, i1 false)
  br label %13052

13052:                                            ; preds = %13051
  %13053 = load i32, ptr @test_count, align 4, !tbaa !5
  %13054 = add nsw i32 %13053, 1
  store i32 %13054, ptr @test_count, align 4, !tbaa !5
  %13055 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %269, i32 noundef 0)
  %13056 = icmp eq i32 %13055, -1
  br i1 %13056, label %13057, label %13110

13057:                                            ; preds = %13052
  br label %13058

13058:                                            ; preds = %13057
  br label %13059

13059:                                            ; preds = %13058
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #9
  %13060 = call ptr @__errno_location() #10
  %13061 = load i32, ptr %13060, align 4, !tbaa !5
  store i32 %13061, ptr %270, align 4, !tbaa !5
  %13062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13063 = call i32 @s2n_print_stacktrace(ptr noundef %13062)
  %13064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13065 = trunc i8 %13064 to i1
  br i1 %13065, label %13066, label %13088

13066:                                            ; preds = %13059
  %13067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13068 = call i32 @fileno(ptr noundef %13067) #9
  %13069 = call i32 @isatty(i32 noundef %13068) #9
  %13070 = icmp ne i32 %13069, 0
  br i1 %13070, label %13071, label %13088

13071:                                            ; preds = %13066
  %13072 = load i32, ptr %270, align 4, !tbaa !5
  %13073 = call ptr @__errno_location() #10
  store i32 %13072, ptr %13073, align 4, !tbaa !5
  %13074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13075 = load i32, ptr @test_count, align 4, !tbaa !5
  %13076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13077 = load i32, ptr %13076, align 4, !tbaa !5
  %13078 = call ptr @s2n_strerror(i32 noundef %13077, ptr noundef @.str.4)
  %13079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13080 = load i32, ptr %13079, align 4, !tbaa !5
  %13081 = call ptr @s2n_strerror_debug(i32 noundef %13080, ptr noundef @.str.4)
  %13082 = call ptr @__errno_location() #10
  %13083 = load i32, ptr %13082, align 4, !tbaa !5
  %13084 = call ptr @strerror(i32 noundef %13083) #9
  %13085 = call ptr @__errno_location() #10
  %13086 = load i32, ptr %13085, align 4, !tbaa !5
  %13087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13074, ptr noundef @.str.2, i32 noundef %13075, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 496, ptr noundef %13078, ptr noundef %13081, ptr noundef %13084, i32 noundef %13086) #9
  br label %13105

13088:                                            ; preds = %13066, %13059
  %13089 = load i32, ptr %270, align 4, !tbaa !5
  %13090 = call ptr @__errno_location() #10
  store i32 %13089, ptr %13090, align 4, !tbaa !5
  %13091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13092 = load i32, ptr @test_count, align 4, !tbaa !5
  %13093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13094 = load i32, ptr %13093, align 4, !tbaa !5
  %13095 = call ptr @s2n_strerror(i32 noundef %13094, ptr noundef @.str.4)
  %13096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13097 = load i32, ptr %13096, align 4, !tbaa !5
  %13098 = call ptr @s2n_strerror_debug(i32 noundef %13097, ptr noundef @.str.4)
  %13099 = call ptr @__errno_location() #10
  %13100 = load i32, ptr %13099, align 4, !tbaa !5
  %13101 = call ptr @strerror(i32 noundef %13100) #9
  %13102 = call ptr @__errno_location() #10
  %13103 = load i32, ptr %13102, align 4, !tbaa !5
  %13104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13091, ptr noundef @.str.5, i32 noundef %13092, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 496, ptr noundef %13095, ptr noundef %13098, ptr noundef %13101, i32 noundef %13103) #9
  br label %13105

13105:                                            ; preds = %13088, %13071
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #9
  br label %13106

13106:                                            ; preds = %13105
  br label %13107

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

13108:                                            ; No predecessors!
  br label %13109

13109:                                            ; preds = %13108
  br label %13110

13110:                                            ; preds = %13109, %13052
  br label %13111

13111:                                            ; preds = %13110
  br label %13112

13112:                                            ; preds = %13111
  call void @llvm.lifetime.start.p0(i64 8, ptr %271) #9
  store ptr null, ptr %271, align 8, !tbaa !9
  br label %13113

13113:                                            ; preds = %13112
  %13114 = load i32, ptr @test_count, align 4, !tbaa !5
  %13115 = add nsw i32 %13114, 1
  store i32 %13115, ptr @test_count, align 4, !tbaa !5
  %13116 = load ptr, ptr %267, align 8, !tbaa !9
  %13117 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef %13116, ptr noundef %271)
  %13118 = icmp eq i32 %13117, -1
  br i1 %13118, label %13119, label %13172

13119:                                            ; preds = %13113
  br label %13120

13120:                                            ; preds = %13119
  br label %13121

13121:                                            ; preds = %13120
  call void @llvm.lifetime.start.p0(i64 4, ptr %272) #9
  %13122 = call ptr @__errno_location() #10
  %13123 = load i32, ptr %13122, align 4, !tbaa !5
  store i32 %13123, ptr %272, align 4, !tbaa !5
  %13124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13125 = call i32 @s2n_print_stacktrace(ptr noundef %13124)
  %13126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13127 = trunc i8 %13126 to i1
  br i1 %13127, label %13128, label %13150

13128:                                            ; preds = %13121
  %13129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13130 = call i32 @fileno(ptr noundef %13129) #9
  %13131 = call i32 @isatty(i32 noundef %13130) #9
  %13132 = icmp ne i32 %13131, 0
  br i1 %13132, label %13133, label %13150

13133:                                            ; preds = %13128
  %13134 = load i32, ptr %272, align 4, !tbaa !5
  %13135 = call ptr @__errno_location() #10
  store i32 %13134, ptr %13135, align 4, !tbaa !5
  %13136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13137 = load i32, ptr @test_count, align 4, !tbaa !5
  %13138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13139 = load i32, ptr %13138, align 4, !tbaa !5
  %13140 = call ptr @s2n_strerror(i32 noundef %13139, ptr noundef @.str.4)
  %13141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13142 = load i32, ptr %13141, align 4, !tbaa !5
  %13143 = call ptr @s2n_strerror_debug(i32 noundef %13142, ptr noundef @.str.4)
  %13144 = call ptr @__errno_location() #10
  %13145 = load i32, ptr %13144, align 4, !tbaa !5
  %13146 = call ptr @strerror(i32 noundef %13145) #9
  %13147 = call ptr @__errno_location() #10
  %13148 = load i32, ptr %13147, align 4, !tbaa !5
  %13149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13136, ptr noundef @.str.2, i32 noundef %13137, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 499, ptr noundef %13140, ptr noundef %13143, ptr noundef %13146, i32 noundef %13148) #9
  br label %13167

13150:                                            ; preds = %13128, %13121
  %13151 = load i32, ptr %272, align 4, !tbaa !5
  %13152 = call ptr @__errno_location() #10
  store i32 %13151, ptr %13152, align 4, !tbaa !5
  %13153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13154 = load i32, ptr @test_count, align 4, !tbaa !5
  %13155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13156 = load i32, ptr %13155, align 4, !tbaa !5
  %13157 = call ptr @s2n_strerror(i32 noundef %13156, ptr noundef @.str.4)
  %13158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13159 = load i32, ptr %13158, align 4, !tbaa !5
  %13160 = call ptr @s2n_strerror_debug(i32 noundef %13159, ptr noundef @.str.4)
  %13161 = call ptr @__errno_location() #10
  %13162 = load i32, ptr %13161, align 4, !tbaa !5
  %13163 = call ptr @strerror(i32 noundef %13162) #9
  %13164 = call ptr @__errno_location() #10
  %13165 = load i32, ptr %13164, align 4, !tbaa !5
  %13166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13153, ptr noundef @.str.5, i32 noundef %13154, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 499, ptr noundef %13157, ptr noundef %13160, ptr noundef %13163, i32 noundef %13165) #9
  br label %13167

13167:                                            ; preds = %13150, %13133
  call void @llvm.lifetime.end.p0(i64 4, ptr %272) #9
  br label %13168

13168:                                            ; preds = %13167
  br label %13169

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

13170:                                            ; No predecessors!
  br label %13171

13171:                                            ; preds = %13170
  br label %13172

13172:                                            ; preds = %13171, %13113
  br label %13173

13173:                                            ; preds = %13172
  br label %13174

13174:                                            ; preds = %13173
  br label %13175

13175:                                            ; preds = %13174
  %13176 = load i32, ptr @test_count, align 4, !tbaa !5
  %13177 = add nsw i32 %13176, 1
  store i32 %13177, ptr @test_count, align 4, !tbaa !5
  %13178 = load ptr, ptr %271, align 8, !tbaa !9
  %13179 = icmp eq ptr %13178, null
  br i1 %13179, label %13180, label %13233

13180:                                            ; preds = %13175
  br label %13181

13181:                                            ; preds = %13180
  br label %13182

13182:                                            ; preds = %13181
  call void @llvm.lifetime.start.p0(i64 4, ptr %273) #9
  %13183 = call ptr @__errno_location() #10
  %13184 = load i32, ptr %13183, align 4, !tbaa !5
  store i32 %13184, ptr %273, align 4, !tbaa !5
  %13185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13186 = call i32 @s2n_print_stacktrace(ptr noundef %13185)
  %13187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13188 = trunc i8 %13187 to i1
  br i1 %13188, label %13189, label %13211

13189:                                            ; preds = %13182
  %13190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13191 = call i32 @fileno(ptr noundef %13190) #9
  %13192 = call i32 @isatty(i32 noundef %13191) #9
  %13193 = icmp ne i32 %13192, 0
  br i1 %13193, label %13194, label %13211

13194:                                            ; preds = %13189
  %13195 = load i32, ptr %273, align 4, !tbaa !5
  %13196 = call ptr @__errno_location() #10
  store i32 %13195, ptr %13196, align 4, !tbaa !5
  %13197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13198 = load i32, ptr @test_count, align 4, !tbaa !5
  %13199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13200 = load i32, ptr %13199, align 4, !tbaa !5
  %13201 = call ptr @s2n_strerror(i32 noundef %13200, ptr noundef @.str.4)
  %13202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13203 = load i32, ptr %13202, align 4, !tbaa !5
  %13204 = call ptr @s2n_strerror_debug(i32 noundef %13203, ptr noundef @.str.4)
  %13205 = call ptr @__errno_location() #10
  %13206 = load i32, ptr %13205, align 4, !tbaa !5
  %13207 = call ptr @strerror(i32 noundef %13206) #9
  %13208 = call ptr @__errno_location() #10
  %13209 = load i32, ptr %13208, align 4, !tbaa !5
  %13210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13197, ptr noundef @.str.2, i32 noundef %13198, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 500, ptr noundef %13201, ptr noundef %13204, ptr noundef %13207, i32 noundef %13209) #9
  br label %13228

13211:                                            ; preds = %13189, %13182
  %13212 = load i32, ptr %273, align 4, !tbaa !5
  %13213 = call ptr @__errno_location() #10
  store i32 %13212, ptr %13213, align 4, !tbaa !5
  %13214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13215 = load i32, ptr @test_count, align 4, !tbaa !5
  %13216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13217 = load i32, ptr %13216, align 4, !tbaa !5
  %13218 = call ptr @s2n_strerror(i32 noundef %13217, ptr noundef @.str.4)
  %13219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13220 = load i32, ptr %13219, align 4, !tbaa !5
  %13221 = call ptr @s2n_strerror_debug(i32 noundef %13220, ptr noundef @.str.4)
  %13222 = call ptr @__errno_location() #10
  %13223 = load i32, ptr %13222, align 4, !tbaa !5
  %13224 = call ptr @strerror(i32 noundef %13223) #9
  %13225 = call ptr @__errno_location() #10
  %13226 = load i32, ptr %13225, align 4, !tbaa !5
  %13227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13214, ptr noundef @.str.5, i32 noundef %13215, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 500, ptr noundef %13218, ptr noundef %13221, ptr noundef %13224, i32 noundef %13226) #9
  br label %13228

13228:                                            ; preds = %13211, %13194
  call void @llvm.lifetime.end.p0(i64 4, ptr %273) #9
  br label %13229

13229:                                            ; preds = %13228
  br label %13230

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

13231:                                            ; No predecessors!
  br label %13232

13232:                                            ; preds = %13231
  br label %13233

13233:                                            ; preds = %13232, %13175
  br label %13234

13234:                                            ; preds = %13233
  br label %13235

13235:                                            ; preds = %13234
  br label %13236

13236:                                            ; preds = %13235
  %13237 = load i32, ptr @test_count, align 4, !tbaa !5
  %13238 = add nsw i32 %13237, 1
  store i32 %13238, ptr @test_count, align 4, !tbaa !5
  %13239 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 3), align 8, !tbaa !18
  %13240 = load ptr, ptr %267, align 8, !tbaa !9
  %13241 = call i32 %13239(ptr noundef %13240, ptr noundef %269)
  %13242 = icmp eq i32 %13241, -1
  br i1 %13242, label %13243, label %13296

13243:                                            ; preds = %13236
  br label %13244

13244:                                            ; preds = %13243
  br label %13245

13245:                                            ; preds = %13244
  call void @llvm.lifetime.start.p0(i64 4, ptr %274) #9
  %13246 = call ptr @__errno_location() #10
  %13247 = load i32, ptr %13246, align 4, !tbaa !5
  store i32 %13247, ptr %274, align 4, !tbaa !5
  %13248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13249 = call i32 @s2n_print_stacktrace(ptr noundef %13248)
  %13250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13251 = trunc i8 %13250 to i1
  br i1 %13251, label %13252, label %13274

13252:                                            ; preds = %13245
  %13253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13254 = call i32 @fileno(ptr noundef %13253) #9
  %13255 = call i32 @isatty(i32 noundef %13254) #9
  %13256 = icmp ne i32 %13255, 0
  br i1 %13256, label %13257, label %13274

13257:                                            ; preds = %13252
  %13258 = load i32, ptr %274, align 4, !tbaa !5
  %13259 = call ptr @__errno_location() #10
  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() #10
  %13269 = load i32, ptr %13268, align 4, !tbaa !5
  %13270 = call ptr @strerror(i32 noundef %13269) #9
  %13271 = call ptr @__errno_location() #10
  %13272 = load i32, ptr %13271, align 4, !tbaa !5
  %13273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13260, ptr noundef @.str.2, i32 noundef %13261, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 502, ptr noundef %13264, ptr noundef %13267, ptr noundef %13270, i32 noundef %13272) #9
  br label %13291

13274:                                            ; preds = %13252, %13245
  %13275 = load i32, ptr %274, align 4, !tbaa !5
  %13276 = call ptr @__errno_location() #10
  store i32 %13275, ptr %13276, align 4, !tbaa !5
  %13277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13278 = load i32, ptr @test_count, align 4, !tbaa !5
  %13279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13280 = load i32, ptr %13279, align 4, !tbaa !5
  %13281 = call ptr @s2n_strerror(i32 noundef %13280, ptr noundef @.str.4)
  %13282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13283 = load i32, ptr %13282, align 4, !tbaa !5
  %13284 = call ptr @s2n_strerror_debug(i32 noundef %13283, ptr noundef @.str.4)
  %13285 = call ptr @__errno_location() #10
  %13286 = load i32, ptr %13285, align 4, !tbaa !5
  %13287 = call ptr @strerror(i32 noundef %13286) #9
  %13288 = call ptr @__errno_location() #10
  %13289 = load i32, ptr %13288, align 4, !tbaa !5
  %13290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13277, ptr noundef @.str.5, i32 noundef %13278, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 502, ptr noundef %13281, ptr noundef %13284, ptr noundef %13287, i32 noundef %13289) #9
  br label %13291

13291:                                            ; preds = %13274, %13257
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #9
  br label %13292

13292:                                            ; preds = %13291
  br label %13293

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

13294:                                            ; No predecessors!
  br label %13295

13295:                                            ; preds = %13294
  br label %13296

13296:                                            ; preds = %13295, %13236
  br label %13297

13297:                                            ; preds = %13296
  br label %13298

13298:                                            ; preds = %13297
  br label %13299

13299:                                            ; preds = %13298
  %13300 = load i32, ptr @test_count, align 4, !tbaa !5
  %13301 = add nsw i32 %13300, 1
  store i32 %13301, ptr @test_count, align 4, !tbaa !5
  %13302 = call i32 @s2n_stuffer_wipe_n(ptr noundef %269, i32 noundef 1)
  %13303 = icmp eq i32 %13302, -1
  br i1 %13303, label %13304, label %13357

13304:                                            ; preds = %13299
  br label %13305

13305:                                            ; preds = %13304
  br label %13306

13306:                                            ; preds = %13305
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #9
  %13307 = call ptr @__errno_location() #10
  %13308 = load i32, ptr %13307, align 4, !tbaa !5
  store i32 %13308, ptr %275, align 4, !tbaa !5
  %13309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13310 = call i32 @s2n_print_stacktrace(ptr noundef %13309)
  %13311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13312 = trunc i8 %13311 to i1
  br i1 %13312, label %13313, label %13335

13313:                                            ; preds = %13306
  %13314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13315 = call i32 @fileno(ptr noundef %13314) #9
  %13316 = call i32 @isatty(i32 noundef %13315) #9
  %13317 = icmp ne i32 %13316, 0
  br i1 %13317, label %13318, label %13335

13318:                                            ; preds = %13313
  %13319 = load i32, ptr %275, align 4, !tbaa !5
  %13320 = call ptr @__errno_location() #10
  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() #10
  %13330 = load i32, ptr %13329, align 4, !tbaa !5
  %13331 = call ptr @strerror(i32 noundef %13330) #9
  %13332 = call ptr @__errno_location() #10
  %13333 = load i32, ptr %13332, align 4, !tbaa !5
  %13334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13321, ptr noundef @.str.2, i32 noundef %13322, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 503, ptr noundef %13325, ptr noundef %13328, ptr noundef %13331, i32 noundef %13333) #9
  br label %13352

13335:                                            ; preds = %13313, %13306
  %13336 = load i32, ptr %275, align 4, !tbaa !5
  %13337 = call ptr @__errno_location() #10
  store i32 %13336, ptr %13337, align 4, !tbaa !5
  %13338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13339 = load i32, ptr @test_count, align 4, !tbaa !5
  %13340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13341 = load i32, ptr %13340, align 4, !tbaa !5
  %13342 = call ptr @s2n_strerror(i32 noundef %13341, ptr noundef @.str.4)
  %13343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13344 = load i32, ptr %13343, align 4, !tbaa !5
  %13345 = call ptr @s2n_strerror_debug(i32 noundef %13344, ptr noundef @.str.4)
  %13346 = call ptr @__errno_location() #10
  %13347 = load i32, ptr %13346, align 4, !tbaa !5
  %13348 = call ptr @strerror(i32 noundef %13347) #9
  %13349 = call ptr @__errno_location() #10
  %13350 = load i32, ptr %13349, align 4, !tbaa !5
  %13351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13338, ptr noundef @.str.5, i32 noundef %13339, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 503, ptr noundef %13342, ptr noundef %13345, ptr noundef %13348, i32 noundef %13350) #9
  br label %13352

13352:                                            ; preds = %13335, %13318
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #9
  br label %13353

13353:                                            ; preds = %13352
  br label %13354

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

13355:                                            ; No predecessors!
  br label %13356

13356:                                            ; preds = %13355
  br label %13357

13357:                                            ; preds = %13356, %13299
  br label %13358

13358:                                            ; preds = %13357
  br label %13359

13359:                                            ; preds = %13358
  br label %13360

13360:                                            ; preds = %13359
  %13361 = load i32, ptr @test_count, align 4, !tbaa !5
  %13362 = add nsw i32 %13361, 1
  store i32 %13362, ptr @test_count, align 4, !tbaa !5
  %13363 = load ptr, ptr %267, align 8, !tbaa !9
  %13364 = getelementptr inbounds %struct.s2n_connection, ptr %13363, i32 0, i32 31
  %13365 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %13364, i32 0, i32 1
  %13366 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %13365, i32 0, i32 0
  %13367 = load ptr, ptr %13366, align 8, !tbaa !73
  %13368 = icmp eq ptr %13367, null
  br i1 %13368, label %13422, label %13369

13369:                                            ; preds = %13360
  br label %13370

13370:                                            ; preds = %13369
  br label %13371

13371:                                            ; preds = %13370
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #9
  %13372 = call ptr @__errno_location() #10
  %13373 = load i32, ptr %13372, align 4, !tbaa !5
  store i32 %13373, ptr %276, align 4, !tbaa !5
  %13374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13375 = call i32 @s2n_print_stacktrace(ptr noundef %13374)
  %13376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13377 = trunc i8 %13376 to i1
  br i1 %13377, label %13378, label %13400

13378:                                            ; preds = %13371
  %13379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13380 = call i32 @fileno(ptr noundef %13379) #9
  %13381 = call i32 @isatty(i32 noundef %13380) #9
  %13382 = icmp ne i32 %13381, 0
  br i1 %13382, label %13383, label %13400

13383:                                            ; preds = %13378
  %13384 = load i32, ptr %276, align 4, !tbaa !5
  %13385 = call ptr @__errno_location() #10
  store i32 %13384, ptr %13385, align 4, !tbaa !5
  %13386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13387 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %13389, ptr noundef @.str.4)
  %13391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13392 = load i32, ptr %13391, align 4, !tbaa !5
  %13393 = call ptr @s2n_strerror_debug(i32 noundef %13392, ptr noundef @.str.4)
  %13394 = call ptr @__errno_location() #10
  %13395 = load i32, ptr %13394, align 4, !tbaa !5
  %13396 = call ptr @strerror(i32 noundef %13395) #9
  %13397 = call ptr @__errno_location() #10
  %13398 = load i32, ptr %13397, align 4, !tbaa !5
  %13399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13386, ptr noundef @.str.2, i32 noundef %13387, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 505, ptr noundef %13390, ptr noundef %13393, ptr noundef %13396, i32 noundef %13398) #9
  br label %13417

13400:                                            ; preds = %13378, %13371
  %13401 = load i32, ptr %276, align 4, !tbaa !5
  %13402 = call ptr @__errno_location() #10
  store i32 %13401, ptr %13402, align 4, !tbaa !5
  %13403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13404 = load i32, ptr @test_count, align 4, !tbaa !5
  %13405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13406 = load i32, ptr %13405, align 4, !tbaa !5
  %13407 = call ptr @s2n_strerror(i32 noundef %13406, ptr noundef @.str.4)
  %13408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13409 = load i32, ptr %13408, align 4, !tbaa !5
  %13410 = call ptr @s2n_strerror_debug(i32 noundef %13409, ptr noundef @.str.4)
  %13411 = call ptr @__errno_location() #10
  %13412 = load i32, ptr %13411, align 4, !tbaa !5
  %13413 = call ptr @strerror(i32 noundef %13412) #9
  %13414 = call ptr @__errno_location() #10
  %13415 = load i32, ptr %13414, align 4, !tbaa !5
  %13416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13403, ptr noundef @.str.5, i32 noundef %13404, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 505, ptr noundef %13407, ptr noundef %13410, ptr noundef %13413, i32 noundef %13415) #9
  br label %13417

13417:                                            ; preds = %13400, %13383
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #9
  br label %13418

13418:                                            ; preds = %13417
  br label %13419

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

13420:                                            ; No predecessors!
  br label %13421

13421:                                            ; preds = %13420
  br label %13422

13422:                                            ; preds = %13421, %13360
  br label %13423

13423:                                            ; preds = %13422
  br label %13424

13424:                                            ; preds = %13423
  br label %13425

13425:                                            ; preds = %13424
  %13426 = load i32, ptr @test_count, align 4, !tbaa !5
  %13427 = add nsw i32 %13426, 1
  store i32 %13427, ptr @test_count, align 4, !tbaa !5
  %13428 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 4), align 8, !tbaa !77
  %13429 = load ptr, ptr %267, align 8, !tbaa !9
  %13430 = call i32 %13428(ptr noundef %13429, ptr noundef %269)
  %13431 = icmp eq i32 %13430, -1
  br i1 %13431, label %13432, label %13485

13432:                                            ; preds = %13425
  br label %13433

13433:                                            ; preds = %13432
  br label %13434

13434:                                            ; preds = %13433
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #9
  %13435 = call ptr @__errno_location() #10
  %13436 = load i32, ptr %13435, align 4, !tbaa !5
  store i32 %13436, ptr %277, align 4, !tbaa !5
  %13437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13438 = call i32 @s2n_print_stacktrace(ptr noundef %13437)
  %13439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13440 = trunc i8 %13439 to i1
  br i1 %13440, label %13441, label %13463

13441:                                            ; preds = %13434
  %13442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13443 = call i32 @fileno(ptr noundef %13442) #9
  %13444 = call i32 @isatty(i32 noundef %13443) #9
  %13445 = icmp ne i32 %13444, 0
  br i1 %13445, label %13446, label %13463

13446:                                            ; preds = %13441
  %13447 = load i32, ptr %277, align 4, !tbaa !5
  %13448 = call ptr @__errno_location() #10
  store i32 %13447, ptr %13448, align 4, !tbaa !5
  %13449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13450 = load i32, ptr @test_count, align 4, !tbaa !5
  %13451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13452 = load i32, ptr %13451, align 4, !tbaa !5
  %13453 = call ptr @s2n_strerror(i32 noundef %13452, ptr noundef @.str.4)
  %13454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13455 = load i32, ptr %13454, align 4, !tbaa !5
  %13456 = call ptr @s2n_strerror_debug(i32 noundef %13455, ptr noundef @.str.4)
  %13457 = call ptr @__errno_location() #10
  %13458 = load i32, ptr %13457, align 4, !tbaa !5
  %13459 = call ptr @strerror(i32 noundef %13458) #9
  %13460 = call ptr @__errno_location() #10
  %13461 = load i32, ptr %13460, align 4, !tbaa !5
  %13462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13449, ptr noundef @.str.2, i32 noundef %13450, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 506, ptr noundef %13453, ptr noundef %13456, ptr noundef %13459, i32 noundef %13461) #9
  br label %13480

13463:                                            ; preds = %13441, %13434
  %13464 = load i32, ptr %277, align 4, !tbaa !5
  %13465 = call ptr @__errno_location() #10
  store i32 %13464, ptr %13465, align 4, !tbaa !5
  %13466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13467 = load i32, ptr @test_count, align 4, !tbaa !5
  %13468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13469 = load i32, ptr %13468, align 4, !tbaa !5
  %13470 = call ptr @s2n_strerror(i32 noundef %13469, ptr noundef @.str.4)
  %13471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13472 = load i32, ptr %13471, align 4, !tbaa !5
  %13473 = call ptr @s2n_strerror_debug(i32 noundef %13472, ptr noundef @.str.4)
  %13474 = call ptr @__errno_location() #10
  %13475 = load i32, ptr %13474, align 4, !tbaa !5
  %13476 = call ptr @strerror(i32 noundef %13475) #9
  %13477 = call ptr @__errno_location() #10
  %13478 = load i32, ptr %13477, align 4, !tbaa !5
  %13479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13466, ptr noundef @.str.5, i32 noundef %13467, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 506, ptr noundef %13470, ptr noundef %13473, ptr noundef %13476, i32 noundef %13478) #9
  br label %13480

13480:                                            ; preds = %13463, %13446
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #9
  br label %13481

13481:                                            ; preds = %13480
  br label %13482

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

13483:                                            ; No predecessors!
  br label %13484

13484:                                            ; preds = %13483
  br label %13485

13485:                                            ; preds = %13484, %13425
  br label %13486

13486:                                            ; preds = %13485
  br label %13487

13487:                                            ; preds = %13486
  br label %13488

13488:                                            ; preds = %13487
  %13489 = load i32, ptr @test_count, align 4, !tbaa !5
  %13490 = add nsw i32 %13489, 1
  store i32 %13490, ptr @test_count, align 4, !tbaa !5
  %13491 = load ptr, ptr %267, align 8, !tbaa !9
  %13492 = getelementptr inbounds %struct.s2n_connection, ptr %13491, i32 0, i32 31
  %13493 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %13492, i32 0, i32 1
  %13494 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %13493, i32 0, i32 0
  %13495 = load ptr, ptr %13494, align 8, !tbaa !73
  %13496 = icmp eq ptr %13495, null
  br i1 %13496, label %13550, label %13497

13497:                                            ; preds = %13488
  br label %13498

13498:                                            ; preds = %13497
  br label %13499

13499:                                            ; preds = %13498
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #9
  %13500 = call ptr @__errno_location() #10
  %13501 = load i32, ptr %13500, align 4, !tbaa !5
  store i32 %13501, ptr %278, align 4, !tbaa !5
  %13502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13503 = call i32 @s2n_print_stacktrace(ptr noundef %13502)
  %13504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13505 = trunc i8 %13504 to i1
  br i1 %13505, label %13506, label %13528

13506:                                            ; preds = %13499
  %13507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13508 = call i32 @fileno(ptr noundef %13507) #9
  %13509 = call i32 @isatty(i32 noundef %13508) #9
  %13510 = icmp ne i32 %13509, 0
  br i1 %13510, label %13511, label %13528

13511:                                            ; preds = %13506
  %13512 = load i32, ptr %278, align 4, !tbaa !5
  %13513 = call ptr @__errno_location() #10
  store i32 %13512, ptr %13513, align 4, !tbaa !5
  %13514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13515 = load i32, ptr @test_count, align 4, !tbaa !5
  %13516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13517 = load i32, ptr %13516, align 4, !tbaa !5
  %13518 = call ptr @s2n_strerror(i32 noundef %13517, ptr noundef @.str.4)
  %13519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13520 = load i32, ptr %13519, align 4, !tbaa !5
  %13521 = call ptr @s2n_strerror_debug(i32 noundef %13520, ptr noundef @.str.4)
  %13522 = call ptr @__errno_location() #10
  %13523 = load i32, ptr %13522, align 4, !tbaa !5
  %13524 = call ptr @strerror(i32 noundef %13523) #9
  %13525 = call ptr @__errno_location() #10
  %13526 = load i32, ptr %13525, align 4, !tbaa !5
  %13527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13514, ptr noundef @.str.2, i32 noundef %13515, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 507, ptr noundef %13518, ptr noundef %13521, ptr noundef %13524, i32 noundef %13526) #9
  br label %13545

13528:                                            ; preds = %13506, %13499
  %13529 = load i32, ptr %278, align 4, !tbaa !5
  %13530 = call ptr @__errno_location() #10
  store i32 %13529, ptr %13530, align 4, !tbaa !5
  %13531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13532 = load i32, ptr @test_count, align 4, !tbaa !5
  %13533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13534 = load i32, ptr %13533, align 4, !tbaa !5
  %13535 = call ptr @s2n_strerror(i32 noundef %13534, ptr noundef @.str.4)
  %13536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13537 = load i32, ptr %13536, align 4, !tbaa !5
  %13538 = call ptr @s2n_strerror_debug(i32 noundef %13537, ptr noundef @.str.4)
  %13539 = call ptr @__errno_location() #10
  %13540 = load i32, ptr %13539, align 4, !tbaa !5
  %13541 = call ptr @strerror(i32 noundef %13540) #9
  %13542 = call ptr @__errno_location() #10
  %13543 = load i32, ptr %13542, align 4, !tbaa !5
  %13544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13531, ptr noundef @.str.5, i32 noundef %13532, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 507, ptr noundef %13535, ptr noundef %13538, ptr noundef %13541, i32 noundef %13543) #9
  br label %13545

13545:                                            ; preds = %13528, %13511
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #9
  br label %13546

13546:                                            ; preds = %13545
  br label %13547

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

13548:                                            ; No predecessors!
  br label %13549

13549:                                            ; preds = %13548
  br label %13550

13550:                                            ; preds = %13549, %13488
  br label %13551

13551:                                            ; preds = %13550
  br label %13552

13552:                                            ; preds = %13551
  br label %13553

13553:                                            ; preds = %13552
  %13554 = load i32, ptr @test_count, align 4, !tbaa !5
  %13555 = add nsw i32 %13554, 1
  store i32 %13555, ptr @test_count, align 4, !tbaa !5
  %13556 = load ptr, ptr %267, align 8, !tbaa !9
  %13557 = getelementptr inbounds %struct.s2n_connection, ptr %13556, i32 0, i32 31
  %13558 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %13557, i32 0, i32 4
  %13559 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %13558, i32 0, i32 0
  %13560 = load ptr, ptr %13559, align 8, !tbaa !74
  %13561 = icmp eq ptr %13560, null
  br i1 %13561, label %13615, label %13562

13562:                                            ; preds = %13553
  br label %13563

13563:                                            ; preds = %13562
  br label %13564

13564:                                            ; preds = %13563
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #9
  %13565 = call ptr @__errno_location() #10
  %13566 = load i32, ptr %13565, align 4, !tbaa !5
  store i32 %13566, ptr %279, align 4, !tbaa !5
  %13567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13568 = call i32 @s2n_print_stacktrace(ptr noundef %13567)
  %13569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13570 = trunc i8 %13569 to i1
  br i1 %13570, label %13571, label %13593

13571:                                            ; preds = %13564
  %13572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13573 = call i32 @fileno(ptr noundef %13572) #9
  %13574 = call i32 @isatty(i32 noundef %13573) #9
  %13575 = icmp ne i32 %13574, 0
  br i1 %13575, label %13576, label %13593

13576:                                            ; preds = %13571
  %13577 = load i32, ptr %279, align 4, !tbaa !5
  %13578 = call ptr @__errno_location() #10
  store i32 %13577, ptr %13578, align 4, !tbaa !5
  %13579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13580 = load i32, ptr @test_count, align 4, !tbaa !5
  %13581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13582 = load i32, ptr %13581, align 4, !tbaa !5
  %13583 = call ptr @s2n_strerror(i32 noundef %13582, ptr noundef @.str.4)
  %13584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13585 = load i32, ptr %13584, align 4, !tbaa !5
  %13586 = call ptr @s2n_strerror_debug(i32 noundef %13585, ptr noundef @.str.4)
  %13587 = call ptr @__errno_location() #10
  %13588 = load i32, ptr %13587, align 4, !tbaa !5
  %13589 = call ptr @strerror(i32 noundef %13588) #9
  %13590 = call ptr @__errno_location() #10
  %13591 = load i32, ptr %13590, align 4, !tbaa !5
  %13592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13579, ptr noundef @.str.2, i32 noundef %13580, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 508, ptr noundef %13583, ptr noundef %13586, ptr noundef %13589, i32 noundef %13591) #9
  br label %13610

13593:                                            ; preds = %13571, %13564
  %13594 = load i32, ptr %279, align 4, !tbaa !5
  %13595 = call ptr @__errno_location() #10
  store i32 %13594, ptr %13595, align 4, !tbaa !5
  %13596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13597 = load i32, ptr @test_count, align 4, !tbaa !5
  %13598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13599 = load i32, ptr %13598, align 4, !tbaa !5
  %13600 = call ptr @s2n_strerror(i32 noundef %13599, ptr noundef @.str.4)
  %13601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13602 = load i32, ptr %13601, align 4, !tbaa !5
  %13603 = call ptr @s2n_strerror_debug(i32 noundef %13602, ptr noundef @.str.4)
  %13604 = call ptr @__errno_location() #10
  %13605 = load i32, ptr %13604, align 4, !tbaa !5
  %13606 = call ptr @strerror(i32 noundef %13605) #9
  %13607 = call ptr @__errno_location() #10
  %13608 = load i32, ptr %13607, align 4, !tbaa !5
  %13609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13596, ptr noundef @.str.5, i32 noundef %13597, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 508, ptr noundef %13600, ptr noundef %13603, ptr noundef %13606, i32 noundef %13608) #9
  br label %13610

13610:                                            ; preds = %13593, %13576
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #9
  br label %13611

13611:                                            ; preds = %13610
  br label %13612

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

13613:                                            ; No predecessors!
  br label %13614

13614:                                            ; preds = %13613
  br label %13615

13615:                                            ; preds = %13614, %13553
  br label %13616

13616:                                            ; preds = %13615
  br label %13617

13617:                                            ; preds = %13616
  br label %13618

13618:                                            ; preds = %13617
  %13619 = load i32, ptr @test_count, align 4, !tbaa !5
  %13620 = add nsw i32 %13619, 1
  store i32 %13620, ptr @test_count, align 4, !tbaa !5
  %13621 = load ptr, ptr %267, align 8, !tbaa !9
  %13622 = getelementptr inbounds %struct.s2n_connection, ptr %13621, i32 0, i32 31
  %13623 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %13622, i32 0, i32 4
  %13624 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %13623, i32 0, i32 2
  %13625 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %13624, i32 0, i32 0
  %13626 = load ptr, ptr %13625, align 8, !tbaa !75
  %13627 = icmp eq ptr %13626, null
  br i1 %13627, label %13681, label %13628

13628:                                            ; preds = %13618
  br label %13629

13629:                                            ; preds = %13628
  br label %13630

13630:                                            ; preds = %13629
  call void @llvm.lifetime.start.p0(i64 4, ptr %280) #9
  %13631 = call ptr @__errno_location() #10
  %13632 = load i32, ptr %13631, align 4, !tbaa !5
  store i32 %13632, ptr %280, align 4, !tbaa !5
  %13633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13634 = call i32 @s2n_print_stacktrace(ptr noundef %13633)
  %13635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13636 = trunc i8 %13635 to i1
  br i1 %13636, label %13637, label %13659

13637:                                            ; preds = %13630
  %13638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13639 = call i32 @fileno(ptr noundef %13638) #9
  %13640 = call i32 @isatty(i32 noundef %13639) #9
  %13641 = icmp ne i32 %13640, 0
  br i1 %13641, label %13642, label %13659

13642:                                            ; preds = %13637
  %13643 = load i32, ptr %280, align 4, !tbaa !5
  %13644 = call ptr @__errno_location() #10
  store i32 %13643, ptr %13644, align 4, !tbaa !5
  %13645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13646 = load i32, ptr @test_count, align 4, !tbaa !5
  %13647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13648 = load i32, ptr %13647, align 4, !tbaa !5
  %13649 = call ptr @s2n_strerror(i32 noundef %13648, ptr noundef @.str.4)
  %13650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13651 = load i32, ptr %13650, align 4, !tbaa !5
  %13652 = call ptr @s2n_strerror_debug(i32 noundef %13651, ptr noundef @.str.4)
  %13653 = call ptr @__errno_location() #10
  %13654 = load i32, ptr %13653, align 4, !tbaa !5
  %13655 = call ptr @strerror(i32 noundef %13654) #9
  %13656 = call ptr @__errno_location() #10
  %13657 = load i32, ptr %13656, align 4, !tbaa !5
  %13658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13645, ptr noundef @.str.2, i32 noundef %13646, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 509, ptr noundef %13649, ptr noundef %13652, ptr noundef %13655, i32 noundef %13657) #9
  br label %13676

13659:                                            ; preds = %13637, %13630
  %13660 = load i32, ptr %280, align 4, !tbaa !5
  %13661 = call ptr @__errno_location() #10
  store i32 %13660, ptr %13661, align 4, !tbaa !5
  %13662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13663 = load i32, ptr @test_count, align 4, !tbaa !5
  %13664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13665 = load i32, ptr %13664, align 4, !tbaa !5
  %13666 = call ptr @s2n_strerror(i32 noundef %13665, ptr noundef @.str.4)
  %13667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13668 = load i32, ptr %13667, align 4, !tbaa !5
  %13669 = call ptr @s2n_strerror_debug(i32 noundef %13668, ptr noundef @.str.4)
  %13670 = call ptr @__errno_location() #10
  %13671 = load i32, ptr %13670, align 4, !tbaa !5
  %13672 = call ptr @strerror(i32 noundef %13671) #9
  %13673 = call ptr @__errno_location() #10
  %13674 = load i32, ptr %13673, align 4, !tbaa !5
  %13675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13662, ptr noundef @.str.5, i32 noundef %13663, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 509, ptr noundef %13666, ptr noundef %13669, ptr noundef %13672, i32 noundef %13674) #9
  br label %13676

13676:                                            ; preds = %13659, %13642
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #9
  br label %13677

13677:                                            ; preds = %13676
  br label %13678

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

13679:                                            ; No predecessors!
  br label %13680

13680:                                            ; preds = %13679
  br label %13681

13681:                                            ; preds = %13680, %13618
  br label %13682

13682:                                            ; preds = %13681
  br label %13683

13683:                                            ; preds = %13682
  br label %13684

13684:                                            ; preds = %13683
  %13685 = load i32, ptr @test_count, align 4, !tbaa !5
  %13686 = add nsw i32 %13685, 1
  store i32 %13686, ptr @test_count, align 4, !tbaa !5
  %13687 = load ptr, ptr %267, align 8, !tbaa !9
  %13688 = getelementptr inbounds %struct.s2n_connection, ptr %13687, i32 0, i32 31
  %13689 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %13688, i32 0, i32 4
  %13690 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %13689, i32 0, i32 1
  %13691 = getelementptr inbounds %struct.s2n_kem_params, ptr %13690, i32 0, i32 0
  %13692 = load ptr, ptr %13691, align 8, !tbaa !76
  %13693 = icmp eq ptr %13692, null
  br i1 %13693, label %13747, label %13694

13694:                                            ; preds = %13684
  br label %13695

13695:                                            ; preds = %13694
  br label %13696

13696:                                            ; preds = %13695
  call void @llvm.lifetime.start.p0(i64 4, ptr %281) #9
  %13697 = call ptr @__errno_location() #10
  %13698 = load i32, ptr %13697, align 4, !tbaa !5
  store i32 %13698, ptr %281, align 4, !tbaa !5
  %13699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13700 = call i32 @s2n_print_stacktrace(ptr noundef %13699)
  %13701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13702 = trunc i8 %13701 to i1
  br i1 %13702, label %13703, label %13725

13703:                                            ; preds = %13696
  %13704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13705 = call i32 @fileno(ptr noundef %13704) #9
  %13706 = call i32 @isatty(i32 noundef %13705) #9
  %13707 = icmp ne i32 %13706, 0
  br i1 %13707, label %13708, label %13725

13708:                                            ; preds = %13703
  %13709 = load i32, ptr %281, align 4, !tbaa !5
  %13710 = call ptr @__errno_location() #10
  store i32 %13709, ptr %13710, align 4, !tbaa !5
  %13711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13712 = load i32, ptr @test_count, align 4, !tbaa !5
  %13713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13714 = load i32, ptr %13713, align 4, !tbaa !5
  %13715 = call ptr @s2n_strerror(i32 noundef %13714, ptr noundef @.str.4)
  %13716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13717 = load i32, ptr %13716, align 4, !tbaa !5
  %13718 = call ptr @s2n_strerror_debug(i32 noundef %13717, ptr noundef @.str.4)
  %13719 = call ptr @__errno_location() #10
  %13720 = load i32, ptr %13719, align 4, !tbaa !5
  %13721 = call ptr @strerror(i32 noundef %13720) #9
  %13722 = call ptr @__errno_location() #10
  %13723 = load i32, ptr %13722, align 4, !tbaa !5
  %13724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13711, ptr noundef @.str.2, i32 noundef %13712, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 510, ptr noundef %13715, ptr noundef %13718, ptr noundef %13721, i32 noundef %13723) #9
  br label %13742

13725:                                            ; preds = %13703, %13696
  %13726 = load i32, ptr %281, align 4, !tbaa !5
  %13727 = call ptr @__errno_location() #10
  store i32 %13726, ptr %13727, align 4, !tbaa !5
  %13728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13729 = load i32, ptr @test_count, align 4, !tbaa !5
  %13730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13731 = load i32, ptr %13730, align 4, !tbaa !5
  %13732 = call ptr @s2n_strerror(i32 noundef %13731, ptr noundef @.str.4)
  %13733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13734 = load i32, ptr %13733, align 4, !tbaa !5
  %13735 = call ptr @s2n_strerror_debug(i32 noundef %13734, ptr noundef @.str.4)
  %13736 = call ptr @__errno_location() #10
  %13737 = load i32, ptr %13736, align 4, !tbaa !5
  %13738 = call ptr @strerror(i32 noundef %13737) #9
  %13739 = call ptr @__errno_location() #10
  %13740 = load i32, ptr %13739, align 4, !tbaa !5
  %13741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13728, ptr noundef @.str.5, i32 noundef %13729, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 510, ptr noundef %13732, ptr noundef %13735, ptr noundef %13738, i32 noundef %13740) #9
  br label %13742

13742:                                            ; preds = %13725, %13708
  call void @llvm.lifetime.end.p0(i64 4, ptr %281) #9
  br label %13743

13743:                                            ; preds = %13742
  br label %13744

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

13745:                                            ; No predecessors!
  br label %13746

13746:                                            ; preds = %13745
  br label %13747

13747:                                            ; preds = %13746, %13684
  br label %13748

13748:                                            ; preds = %13747
  br label %13749

13749:                                            ; preds = %13748
  br label %13750

13750:                                            ; preds = %13749
  %13751 = load i32, ptr @test_count, align 4, !tbaa !5
  %13752 = add nsw i32 %13751, 1
  store i32 %13752, ptr @test_count, align 4, !tbaa !5
  %13753 = call i32 @s2n_stuffer_free(ptr noundef %269)
  %13754 = icmp eq i32 %13753, -1
  br i1 %13754, label %13755, label %13808

13755:                                            ; preds = %13750
  br label %13756

13756:                                            ; preds = %13755
  br label %13757

13757:                                            ; preds = %13756
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #9
  %13758 = call ptr @__errno_location() #10
  %13759 = load i32, ptr %13758, align 4, !tbaa !5
  store i32 %13759, ptr %282, align 4, !tbaa !5
  %13760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13761 = call i32 @s2n_print_stacktrace(ptr noundef %13760)
  %13762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13763 = trunc i8 %13762 to i1
  br i1 %13763, label %13764, label %13786

13764:                                            ; preds = %13757
  %13765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13766 = call i32 @fileno(ptr noundef %13765) #9
  %13767 = call i32 @isatty(i32 noundef %13766) #9
  %13768 = icmp ne i32 %13767, 0
  br i1 %13768, label %13769, label %13786

13769:                                            ; preds = %13764
  %13770 = load i32, ptr %282, align 4, !tbaa !5
  %13771 = call ptr @__errno_location() #10
  store i32 %13770, ptr %13771, align 4, !tbaa !5
  %13772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13773 = load i32, ptr @test_count, align 4, !tbaa !5
  %13774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13775 = load i32, ptr %13774, align 4, !tbaa !5
  %13776 = call ptr @s2n_strerror(i32 noundef %13775, ptr noundef @.str.4)
  %13777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13778 = load i32, ptr %13777, align 4, !tbaa !5
  %13779 = call ptr @s2n_strerror_debug(i32 noundef %13778, ptr noundef @.str.4)
  %13780 = call ptr @__errno_location() #10
  %13781 = load i32, ptr %13780, align 4, !tbaa !5
  %13782 = call ptr @strerror(i32 noundef %13781) #9
  %13783 = call ptr @__errno_location() #10
  %13784 = load i32, ptr %13783, align 4, !tbaa !5
  %13785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13772, ptr noundef @.str.2, i32 noundef %13773, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 512, ptr noundef %13776, ptr noundef %13779, ptr noundef %13782, i32 noundef %13784) #9
  br label %13803

13786:                                            ; preds = %13764, %13757
  %13787 = load i32, ptr %282, align 4, !tbaa !5
  %13788 = call ptr @__errno_location() #10
  store i32 %13787, ptr %13788, align 4, !tbaa !5
  %13789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13790 = load i32, ptr @test_count, align 4, !tbaa !5
  %13791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13792 = load i32, ptr %13791, align 4, !tbaa !5
  %13793 = call ptr @s2n_strerror(i32 noundef %13792, ptr noundef @.str.4)
  %13794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13795 = load i32, ptr %13794, align 4, !tbaa !5
  %13796 = call ptr @s2n_strerror_debug(i32 noundef %13795, ptr noundef @.str.4)
  %13797 = call ptr @__errno_location() #10
  %13798 = load i32, ptr %13797, align 4, !tbaa !5
  %13799 = call ptr @strerror(i32 noundef %13798) #9
  %13800 = call ptr @__errno_location() #10
  %13801 = load i32, ptr %13800, align 4, !tbaa !5
  %13802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13789, ptr noundef @.str.5, i32 noundef %13790, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 512, ptr noundef %13793, ptr noundef %13796, ptr noundef %13799, i32 noundef %13801) #9
  br label %13803

13803:                                            ; preds = %13786, %13769
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #9
  br label %13804

13804:                                            ; preds = %13803
  br label %13805

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

13806:                                            ; No predecessors!
  br label %13807

13807:                                            ; preds = %13806
  br label %13808

13808:                                            ; preds = %13807, %13750
  br label %13809

13809:                                            ; preds = %13808
  br label %13810

13810:                                            ; preds = %13809
  br label %13811

13811:                                            ; preds = %13810
  %13812 = load i32, ptr @test_count, align 4, !tbaa !5
  %13813 = add nsw i32 %13812, 1
  store i32 %13813, ptr @test_count, align 4, !tbaa !5
  %13814 = load ptr, ptr %267, align 8, !tbaa !9
  %13815 = call i32 @s2n_connection_free(ptr noundef %13814)
  %13816 = icmp eq i32 %13815, -1
  br i1 %13816, label %13817, label %13870

13817:                                            ; preds = %13811
  br label %13818

13818:                                            ; preds = %13817
  br label %13819

13819:                                            ; preds = %13818
  call void @llvm.lifetime.start.p0(i64 4, ptr %283) #9
  %13820 = call ptr @__errno_location() #10
  %13821 = load i32, ptr %13820, align 4, !tbaa !5
  store i32 %13821, ptr %283, align 4, !tbaa !5
  %13822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13823 = call i32 @s2n_print_stacktrace(ptr noundef %13822)
  %13824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13825 = trunc i8 %13824 to i1
  br i1 %13825, label %13826, label %13848

13826:                                            ; preds = %13819
  %13827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13828 = call i32 @fileno(ptr noundef %13827) #9
  %13829 = call i32 @isatty(i32 noundef %13828) #9
  %13830 = icmp ne i32 %13829, 0
  br i1 %13830, label %13831, label %13848

13831:                                            ; preds = %13826
  %13832 = load i32, ptr %283, align 4, !tbaa !5
  %13833 = call ptr @__errno_location() #10
  store i32 %13832, ptr %13833, align 4, !tbaa !5
  %13834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13835 = load i32, ptr @test_count, align 4, !tbaa !5
  %13836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13837 = load i32, ptr %13836, align 4, !tbaa !5
  %13838 = call ptr @s2n_strerror(i32 noundef %13837, ptr noundef @.str.4)
  %13839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13840 = load i32, ptr %13839, align 4, !tbaa !5
  %13841 = call ptr @s2n_strerror_debug(i32 noundef %13840, ptr noundef @.str.4)
  %13842 = call ptr @__errno_location() #10
  %13843 = load i32, ptr %13842, align 4, !tbaa !5
  %13844 = call ptr @strerror(i32 noundef %13843) #9
  %13845 = call ptr @__errno_location() #10
  %13846 = load i32, ptr %13845, align 4, !tbaa !5
  %13847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13834, ptr noundef @.str.2, i32 noundef %13835, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 513, ptr noundef %13838, ptr noundef %13841, ptr noundef %13844, i32 noundef %13846) #9
  br label %13865

13848:                                            ; preds = %13826, %13819
  %13849 = load i32, ptr %283, align 4, !tbaa !5
  %13850 = call ptr @__errno_location() #10
  store i32 %13849, ptr %13850, align 4, !tbaa !5
  %13851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13852 = load i32, ptr @test_count, align 4, !tbaa !5
  %13853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13854 = load i32, ptr %13853, align 4, !tbaa !5
  %13855 = call ptr @s2n_strerror(i32 noundef %13854, ptr noundef @.str.4)
  %13856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13857 = load i32, ptr %13856, align 4, !tbaa !5
  %13858 = call ptr @s2n_strerror_debug(i32 noundef %13857, ptr noundef @.str.4)
  %13859 = call ptr @__errno_location() #10
  %13860 = load i32, ptr %13859, align 4, !tbaa !5
  %13861 = call ptr @strerror(i32 noundef %13860) #9
  %13862 = call ptr @__errno_location() #10
  %13863 = load i32, ptr %13862, align 4, !tbaa !5
  %13864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13851, ptr noundef @.str.5, i32 noundef %13852, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 513, ptr noundef %13855, ptr noundef %13858, ptr noundef %13861, i32 noundef %13863) #9
  br label %13865

13865:                                            ; preds = %13848, %13831
  call void @llvm.lifetime.end.p0(i64 4, ptr %283) #9
  br label %13866

13866:                                            ; preds = %13865
  br label %13867

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

13868:                                            ; No predecessors!
  br label %13869

13869:                                            ; preds = %13868
  br label %13870

13870:                                            ; preds = %13869, %13811
  br label %13871

13871:                                            ; preds = %13870
  br label %13872

13872:                                            ; preds = %13871
  call void @llvm.lifetime.end.p0(i64 8, ptr %271) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %269) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %267) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr %284) #9
  call void @llvm.memset.p0.i64(ptr align 16 %284, i8 0, i64 64, i1 false)
  %13873 = getelementptr inbounds [2 x %struct.s2n_ecc_named_curve], ptr %284, i32 0, i32 1
  %13874 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %13873, i32 0, i32 0
  store i16 -255, ptr %13874, align 16
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #9
  store i32 2, ptr %285, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %286) #9
  store ptr null, ptr %286, align 8, !tbaa !9
  br label %13875

13875:                                            ; preds = %13872
  %13876 = load i32, ptr @test_count, align 4, !tbaa !5
  %13877 = add nsw i32 %13876, 1
  store i32 %13877, ptr @test_count, align 4, !tbaa !5
  %13878 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %13878, ptr %286, align 8, !tbaa !9
  %13879 = icmp eq ptr %13878, null
  br i1 %13879, label %13880, label %13933

13880:                                            ; preds = %13875
  br label %13881

13881:                                            ; preds = %13880
  br label %13882

13882:                                            ; preds = %13881
  call void @llvm.lifetime.start.p0(i64 4, ptr %287) #9
  %13883 = call ptr @__errno_location() #10
  %13884 = load i32, ptr %13883, align 4, !tbaa !5
  store i32 %13884, ptr %287, align 4, !tbaa !5
  %13885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13886 = call i32 @s2n_print_stacktrace(ptr noundef %13885)
  %13887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13888 = trunc i8 %13887 to i1
  br i1 %13888, label %13889, label %13911

13889:                                            ; preds = %13882
  %13890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13891 = call i32 @fileno(ptr noundef %13890) #9
  %13892 = call i32 @isatty(i32 noundef %13891) #9
  %13893 = icmp ne i32 %13892, 0
  br i1 %13893, label %13894, label %13911

13894:                                            ; preds = %13889
  %13895 = load i32, ptr %287, align 4, !tbaa !5
  %13896 = call ptr @__errno_location() #10
  store i32 %13895, ptr %13896, align 4, !tbaa !5
  %13897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13898 = load i32, ptr @test_count, align 4, !tbaa !5
  %13899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13900 = load i32, ptr %13899, align 4, !tbaa !5
  %13901 = call ptr @s2n_strerror(i32 noundef %13900, ptr noundef @.str.4)
  %13902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13903 = load i32, ptr %13902, align 4, !tbaa !5
  %13904 = call ptr @s2n_strerror_debug(i32 noundef %13903, ptr noundef @.str.4)
  %13905 = call ptr @__errno_location() #10
  %13906 = load i32, ptr %13905, align 4, !tbaa !5
  %13907 = call ptr @strerror(i32 noundef %13906) #9
  %13908 = call ptr @__errno_location() #10
  %13909 = load i32, ptr %13908, align 4, !tbaa !5
  %13910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13897, ptr noundef @.str.2, i32 noundef %13898, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 524, ptr noundef %13901, ptr noundef %13904, ptr noundef %13907, i32 noundef %13909) #9
  br label %13928

13911:                                            ; preds = %13889, %13882
  %13912 = load i32, ptr %287, align 4, !tbaa !5
  %13913 = call ptr @__errno_location() #10
  store i32 %13912, ptr %13913, align 4, !tbaa !5
  %13914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13915 = load i32, ptr @test_count, align 4, !tbaa !5
  %13916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13917 = load i32, ptr %13916, align 4, !tbaa !5
  %13918 = call ptr @s2n_strerror(i32 noundef %13917, ptr noundef @.str.4)
  %13919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13920 = load i32, ptr %13919, align 4, !tbaa !5
  %13921 = call ptr @s2n_strerror_debug(i32 noundef %13920, ptr noundef @.str.4)
  %13922 = call ptr @__errno_location() #10
  %13923 = load i32, ptr %13922, align 4, !tbaa !5
  %13924 = call ptr @strerror(i32 noundef %13923) #9
  %13925 = call ptr @__errno_location() #10
  %13926 = load i32, ptr %13925, align 4, !tbaa !5
  %13927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13914, ptr noundef @.str.5, i32 noundef %13915, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 524, ptr noundef %13918, ptr noundef %13921, ptr noundef %13924, i32 noundef %13926) #9
  br label %13928

13928:                                            ; preds = %13911, %13894
  call void @llvm.lifetime.end.p0(i64 4, ptr %287) #9
  br label %13929

13929:                                            ; preds = %13928
  br label %13930

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

13931:                                            ; No predecessors!
  br label %13932

13932:                                            ; preds = %13931
  br label %13933

13933:                                            ; preds = %13932, %13875
  br label %13934

13934:                                            ; preds = %13933
  br label %13935

13935:                                            ; preds = %13934
  call void @llvm.lifetime.start.p0(i64 40, ptr %288) #9
  call void @llvm.memset.p0.i64(ptr align 8 %288, i8 0, i64 40, i1 false)
  br label %13936

13936:                                            ; preds = %13935
  %13937 = load i32, ptr @test_count, align 4, !tbaa !5
  %13938 = add nsw i32 %13937, 1
  store i32 %13938, ptr @test_count, align 4, !tbaa !5
  %13939 = load i32, ptr %285, align 4, !tbaa !5
  %13940 = mul nsw i32 %13939, 2
  %13941 = add nsw i32 2, %13940
  %13942 = call i32 @s2n_stuffer_alloc(ptr noundef %288, i32 noundef %13941)
  %13943 = icmp eq i32 %13942, -1
  br i1 %13943, label %13944, label %13997

13944:                                            ; preds = %13936
  br label %13945

13945:                                            ; preds = %13944
  br label %13946

13946:                                            ; preds = %13945
  call void @llvm.lifetime.start.p0(i64 4, ptr %289) #9
  %13947 = call ptr @__errno_location() #10
  %13948 = load i32, ptr %13947, align 4, !tbaa !5
  store i32 %13948, ptr %289, align 4, !tbaa !5
  %13949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13950 = call i32 @s2n_print_stacktrace(ptr noundef %13949)
  %13951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13952 = trunc i8 %13951 to i1
  br i1 %13952, label %13953, label %13975

13953:                                            ; preds = %13946
  %13954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13955 = call i32 @fileno(ptr noundef %13954) #9
  %13956 = call i32 @isatty(i32 noundef %13955) #9
  %13957 = icmp ne i32 %13956, 0
  br i1 %13957, label %13958, label %13975

13958:                                            ; preds = %13953
  %13959 = load i32, ptr %289, align 4, !tbaa !5
  %13960 = call ptr @__errno_location() #10
  store i32 %13959, ptr %13960, align 4, !tbaa !5
  %13961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13962 = load i32, ptr @test_count, align 4, !tbaa !5
  %13963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13964 = load i32, ptr %13963, align 4, !tbaa !5
  %13965 = call ptr @s2n_strerror(i32 noundef %13964, ptr noundef @.str.4)
  %13966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13967 = load i32, ptr %13966, align 4, !tbaa !5
  %13968 = call ptr @s2n_strerror_debug(i32 noundef %13967, ptr noundef @.str.4)
  %13969 = call ptr @__errno_location() #10
  %13970 = load i32, ptr %13969, align 4, !tbaa !5
  %13971 = call ptr @strerror(i32 noundef %13970) #9
  %13972 = call ptr @__errno_location() #10
  %13973 = load i32, ptr %13972, align 4, !tbaa !5
  %13974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13961, ptr noundef @.str.2, i32 noundef %13962, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 527, ptr noundef %13965, ptr noundef %13968, ptr noundef %13971, i32 noundef %13973) #9
  br label %13992

13975:                                            ; preds = %13953, %13946
  %13976 = load i32, ptr %289, align 4, !tbaa !5
  %13977 = call ptr @__errno_location() #10
  store i32 %13976, ptr %13977, align 4, !tbaa !5
  %13978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13979 = load i32, ptr @test_count, align 4, !tbaa !5
  %13980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13981 = load i32, ptr %13980, align 4, !tbaa !5
  %13982 = call ptr @s2n_strerror(i32 noundef %13981, ptr noundef @.str.4)
  %13983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13984 = load i32, ptr %13983, align 4, !tbaa !5
  %13985 = call ptr @s2n_strerror_debug(i32 noundef %13984, ptr noundef @.str.4)
  %13986 = call ptr @__errno_location() #10
  %13987 = load i32, ptr %13986, align 4, !tbaa !5
  %13988 = call ptr @strerror(i32 noundef %13987) #9
  %13989 = call ptr @__errno_location() #10
  %13990 = load i32, ptr %13989, align 4, !tbaa !5
  %13991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13978, ptr noundef @.str.5, i32 noundef %13979, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 527, ptr noundef %13982, ptr noundef %13985, ptr noundef %13988, i32 noundef %13990) #9
  br label %13992

13992:                                            ; preds = %13975, %13958
  call void @llvm.lifetime.end.p0(i64 4, ptr %289) #9
  br label %13993

13993:                                            ; preds = %13992
  br label %13994

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

13995:                                            ; No predecessors!
  br label %13996

13996:                                            ; preds = %13995
  br label %13997

13997:                                            ; preds = %13996, %13936
  br label %13998

13998:                                            ; preds = %13997
  br label %13999

13999:                                            ; preds = %13998
  br label %14000

14000:                                            ; preds = %13999
  %14001 = load i32, ptr %285, align 4, !tbaa !5
  %14002 = mul nsw i32 %14001, 2
  %14003 = trunc i32 %14002 to i16
  %14004 = call i32 @s2n_stuffer_write_uint16(ptr noundef %288, i16 noundef zeroext %14003)
  %14005 = icmp sgt i32 %14004, -1
  br i1 %14005, label %14007, label %14006

14006:                                            ; preds = %14000
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %88, align 4
  br label %14486

14007:                                            ; preds = %14000
  br label %14008

14008:                                            ; preds = %14007
  br label %14009

14009:                                            ; preds = %14008
  call void @llvm.lifetime.start.p0(i64 8, ptr %290) #9
  store i64 0, ptr %290, align 8, !tbaa !26
  br label %14010

14010:                                            ; preds = %14028, %14009
  %14011 = load i64, ptr %290, align 8, !tbaa !26
  %14012 = load i32, ptr %285, align 4, !tbaa !5
  %14013 = sext i32 %14012 to i64
  %14014 = icmp ult i64 %14011, %14013
  br i1 %14014, label %14016, label %14015

14015:                                            ; preds = %14010
  store i32 1313, ptr %88, align 4
  br label %14031

14016:                                            ; preds = %14010
  br label %14017

14017:                                            ; preds = %14016
  %14018 = load i64, ptr %290, align 8, !tbaa !26
  %14019 = getelementptr inbounds [2 x %struct.s2n_ecc_named_curve], ptr %284, i64 0, i64 %14018
  %14020 = getelementptr inbounds %struct.s2n_ecc_named_curve, ptr %14019, i32 0, i32 0
  %14021 = load i16, ptr %14020, align 16, !tbaa !29
  %14022 = call i32 @s2n_stuffer_write_uint16(ptr noundef %288, i16 noundef zeroext %14021)
  %14023 = icmp sgt i32 %14022, -1
  br i1 %14023, label %14025, label %14024

14024:                                            ; preds = %14017
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %88, align 4
  br label %14031

14025:                                            ; preds = %14017
  br label %14026

14026:                                            ; preds = %14025
  br label %14027

14027:                                            ; preds = %14026
  br label %14028

14028:                                            ; preds = %14027
  %14029 = load i64, ptr %290, align 8, !tbaa !26
  %14030 = add i64 %14029, 1
  store i64 %14030, ptr %290, align 8, !tbaa !26
  br label %14010, !llvm.loop !83

14031:                                            ; preds = %14024, %14015
  call void @llvm.lifetime.end.p0(i64 8, ptr %290) #9
  %14032 = load i32, ptr %88, align 4
  switch i32 %14032, label %14486 [
    i32 1313, label %14033
  ]

14033:                                            ; preds = %14031
  call void @llvm.lifetime.start.p0(i64 32, ptr %291) #9
  call void @llvm.memset.p0.i64(ptr align 8 %291, i8 0, i64 32, i1 false)
  %14034 = load ptr, ptr %286, align 8, !tbaa !9
  %14035 = getelementptr inbounds %struct.s2n_connection, ptr %14034, i32 0, i32 31
  %14036 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14035, i32 0, i32 1
  %14037 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %14036, i32 0, i32 0
  store ptr %291, ptr %14037, align 8, !tbaa !73
  br label %14038

14038:                                            ; preds = %14033
  %14039 = load i32, ptr @test_count, align 4, !tbaa !5
  %14040 = add nsw i32 %14039, 1
  store i32 %14040, ptr @test_count, align 4, !tbaa !5
  %14041 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_supported_groups_extension, i32 0, i32 4), align 8, !tbaa !77
  %14042 = load ptr, ptr %286, align 8, !tbaa !9
  %14043 = call i32 %14041(ptr noundef %14042, ptr noundef %288)
  %14044 = icmp eq i32 %14043, -1
  br i1 %14044, label %14045, label %14098

14045:                                            ; preds = %14038
  br label %14046

14046:                                            ; preds = %14045
  br label %14047

14047:                                            ; preds = %14046
  call void @llvm.lifetime.start.p0(i64 4, ptr %292) #9
  %14048 = call ptr @__errno_location() #10
  %14049 = load i32, ptr %14048, align 4, !tbaa !5
  store i32 %14049, ptr %292, align 4, !tbaa !5
  %14050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14051 = call i32 @s2n_print_stacktrace(ptr noundef %14050)
  %14052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14053 = trunc i8 %14052 to i1
  br i1 %14053, label %14054, label %14076

14054:                                            ; preds = %14047
  %14055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14056 = call i32 @fileno(ptr noundef %14055) #9
  %14057 = call i32 @isatty(i32 noundef %14056) #9
  %14058 = icmp ne i32 %14057, 0
  br i1 %14058, label %14059, label %14076

14059:                                            ; preds = %14054
  %14060 = load i32, ptr %292, align 4, !tbaa !5
  %14061 = call ptr @__errno_location() #10
  store i32 %14060, ptr %14061, align 4, !tbaa !5
  %14062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14063 = load i32, ptr @test_count, align 4, !tbaa !5
  %14064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14065 = load i32, ptr %14064, align 4, !tbaa !5
  %14066 = call ptr @s2n_strerror(i32 noundef %14065, ptr noundef @.str.4)
  %14067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14068 = load i32, ptr %14067, align 4, !tbaa !5
  %14069 = call ptr @s2n_strerror_debug(i32 noundef %14068, ptr noundef @.str.4)
  %14070 = call ptr @__errno_location() #10
  %14071 = load i32, ptr %14070, align 4, !tbaa !5
  %14072 = call ptr @strerror(i32 noundef %14071) #9
  %14073 = call ptr @__errno_location() #10
  %14074 = load i32, ptr %14073, align 4, !tbaa !5
  %14075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14062, ptr noundef @.str.2, i32 noundef %14063, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 536, ptr noundef %14066, ptr noundef %14069, ptr noundef %14072, i32 noundef %14074) #9
  br label %14093

14076:                                            ; preds = %14054, %14047
  %14077 = load i32, ptr %292, align 4, !tbaa !5
  %14078 = call ptr @__errno_location() #10
  store i32 %14077, ptr %14078, align 4, !tbaa !5
  %14079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14080 = load i32, ptr @test_count, align 4, !tbaa !5
  %14081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14082 = load i32, ptr %14081, align 4, !tbaa !5
  %14083 = call ptr @s2n_strerror(i32 noundef %14082, ptr noundef @.str.4)
  %14084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14085 = load i32, ptr %14084, align 4, !tbaa !5
  %14086 = call ptr @s2n_strerror_debug(i32 noundef %14085, ptr noundef @.str.4)
  %14087 = call ptr @__errno_location() #10
  %14088 = load i32, ptr %14087, align 4, !tbaa !5
  %14089 = call ptr @strerror(i32 noundef %14088) #9
  %14090 = call ptr @__errno_location() #10
  %14091 = load i32, ptr %14090, align 4, !tbaa !5
  %14092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14079, ptr noundef @.str.5, i32 noundef %14080, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 536, ptr noundef %14083, ptr noundef %14086, ptr noundef %14089, i32 noundef %14091) #9
  br label %14093

14093:                                            ; preds = %14076, %14059
  call void @llvm.lifetime.end.p0(i64 4, ptr %292) #9
  br label %14094

14094:                                            ; preds = %14093
  br label %14095

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

14096:                                            ; No predecessors!
  br label %14097

14097:                                            ; preds = %14096
  br label %14098

14098:                                            ; preds = %14097, %14038
  br label %14099

14099:                                            ; preds = %14098
  br label %14100

14100:                                            ; preds = %14099
  br label %14101

14101:                                            ; preds = %14100
  %14102 = load i32, ptr @test_count, align 4, !tbaa !5
  %14103 = add nsw i32 %14102, 1
  store i32 %14103, ptr @test_count, align 4, !tbaa !5
  %14104 = load ptr, ptr %286, align 8, !tbaa !9
  %14105 = getelementptr inbounds %struct.s2n_connection, ptr %14104, i32 0, i32 31
  %14106 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14105, i32 0, i32 1
  %14107 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %14106, i32 0, i32 0
  %14108 = load ptr, ptr %14107, align 8, !tbaa !73
  %14109 = icmp eq ptr %14108, null
  br i1 %14109, label %14163, label %14110

14110:                                            ; preds = %14101
  br label %14111

14111:                                            ; preds = %14110
  br label %14112

14112:                                            ; preds = %14111
  call void @llvm.lifetime.start.p0(i64 4, ptr %293) #9
  %14113 = call ptr @__errno_location() #10
  %14114 = load i32, ptr %14113, align 4, !tbaa !5
  store i32 %14114, ptr %293, align 4, !tbaa !5
  %14115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14116 = call i32 @s2n_print_stacktrace(ptr noundef %14115)
  %14117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14118 = trunc i8 %14117 to i1
  br i1 %14118, label %14119, label %14141

14119:                                            ; preds = %14112
  %14120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14121 = call i32 @fileno(ptr noundef %14120) #9
  %14122 = call i32 @isatty(i32 noundef %14121) #9
  %14123 = icmp ne i32 %14122, 0
  br i1 %14123, label %14124, label %14141

14124:                                            ; preds = %14119
  %14125 = load i32, ptr %293, align 4, !tbaa !5
  %14126 = call ptr @__errno_location() #10
  store i32 %14125, ptr %14126, align 4, !tbaa !5
  %14127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14128 = load i32, ptr @test_count, align 4, !tbaa !5
  %14129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14130 = load i32, ptr %14129, align 4, !tbaa !5
  %14131 = call ptr @s2n_strerror(i32 noundef %14130, ptr noundef @.str.4)
  %14132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14133 = load i32, ptr %14132, align 4, !tbaa !5
  %14134 = call ptr @s2n_strerror_debug(i32 noundef %14133, ptr noundef @.str.4)
  %14135 = call ptr @__errno_location() #10
  %14136 = load i32, ptr %14135, align 4, !tbaa !5
  %14137 = call ptr @strerror(i32 noundef %14136) #9
  %14138 = call ptr @__errno_location() #10
  %14139 = load i32, ptr %14138, align 4, !tbaa !5
  %14140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14127, ptr noundef @.str.2, i32 noundef %14128, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 537, ptr noundef %14131, ptr noundef %14134, ptr noundef %14137, i32 noundef %14139) #9
  br label %14158

14141:                                            ; preds = %14119, %14112
  %14142 = load i32, ptr %293, align 4, !tbaa !5
  %14143 = call ptr @__errno_location() #10
  store i32 %14142, ptr %14143, align 4, !tbaa !5
  %14144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14145 = load i32, ptr @test_count, align 4, !tbaa !5
  %14146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14147 = load i32, ptr %14146, align 4, !tbaa !5
  %14148 = call ptr @s2n_strerror(i32 noundef %14147, ptr noundef @.str.4)
  %14149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14150 = load i32, ptr %14149, align 4, !tbaa !5
  %14151 = call ptr @s2n_strerror_debug(i32 noundef %14150, ptr noundef @.str.4)
  %14152 = call ptr @__errno_location() #10
  %14153 = load i32, ptr %14152, align 4, !tbaa !5
  %14154 = call ptr @strerror(i32 noundef %14153) #9
  %14155 = call ptr @__errno_location() #10
  %14156 = load i32, ptr %14155, align 4, !tbaa !5
  %14157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14144, ptr noundef @.str.5, i32 noundef %14145, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 537, ptr noundef %14148, ptr noundef %14151, ptr noundef %14154, i32 noundef %14156) #9
  br label %14158

14158:                                            ; preds = %14141, %14124
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #9
  br label %14159

14159:                                            ; preds = %14158
  br label %14160

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

14161:                                            ; No predecessors!
  br label %14162

14162:                                            ; preds = %14161
  br label %14163

14163:                                            ; preds = %14162, %14101
  br label %14164

14164:                                            ; preds = %14163
  br label %14165

14165:                                            ; preds = %14164
  br label %14166

14166:                                            ; preds = %14165
  %14167 = load i32, ptr @test_count, align 4, !tbaa !5
  %14168 = add nsw i32 %14167, 1
  store i32 %14168, ptr @test_count, align 4, !tbaa !5
  %14169 = load ptr, ptr %286, align 8, !tbaa !9
  %14170 = getelementptr inbounds %struct.s2n_connection, ptr %14169, i32 0, i32 31
  %14171 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14170, i32 0, i32 4
  %14172 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %14171, i32 0, i32 0
  %14173 = load ptr, ptr %14172, align 8, !tbaa !74
  %14174 = icmp eq ptr %14173, null
  br i1 %14174, label %14228, label %14175

14175:                                            ; preds = %14166
  br label %14176

14176:                                            ; preds = %14175
  br label %14177

14177:                                            ; preds = %14176
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #9
  %14178 = call ptr @__errno_location() #10
  %14179 = load i32, ptr %14178, align 4, !tbaa !5
  store i32 %14179, ptr %294, align 4, !tbaa !5
  %14180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14181 = call i32 @s2n_print_stacktrace(ptr noundef %14180)
  %14182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14183 = trunc i8 %14182 to i1
  br i1 %14183, label %14184, label %14206

14184:                                            ; preds = %14177
  %14185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14186 = call i32 @fileno(ptr noundef %14185) #9
  %14187 = call i32 @isatty(i32 noundef %14186) #9
  %14188 = icmp ne i32 %14187, 0
  br i1 %14188, label %14189, label %14206

14189:                                            ; preds = %14184
  %14190 = load i32, ptr %294, align 4, !tbaa !5
  %14191 = call ptr @__errno_location() #10
  store i32 %14190, ptr %14191, align 4, !tbaa !5
  %14192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14193 = load i32, ptr @test_count, align 4, !tbaa !5
  %14194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14195 = load i32, ptr %14194, align 4, !tbaa !5
  %14196 = call ptr @s2n_strerror(i32 noundef %14195, ptr noundef @.str.4)
  %14197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14198 = load i32, ptr %14197, align 4, !tbaa !5
  %14199 = call ptr @s2n_strerror_debug(i32 noundef %14198, ptr noundef @.str.4)
  %14200 = call ptr @__errno_location() #10
  %14201 = load i32, ptr %14200, align 4, !tbaa !5
  %14202 = call ptr @strerror(i32 noundef %14201) #9
  %14203 = call ptr @__errno_location() #10
  %14204 = load i32, ptr %14203, align 4, !tbaa !5
  %14205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14192, ptr noundef @.str.2, i32 noundef %14193, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 538, ptr noundef %14196, ptr noundef %14199, ptr noundef %14202, i32 noundef %14204) #9
  br label %14223

14206:                                            ; preds = %14184, %14177
  %14207 = load i32, ptr %294, align 4, !tbaa !5
  %14208 = call ptr @__errno_location() #10
  store i32 %14207, ptr %14208, align 4, !tbaa !5
  %14209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14210 = load i32, ptr @test_count, align 4, !tbaa !5
  %14211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14212 = load i32, ptr %14211, align 4, !tbaa !5
  %14213 = call ptr @s2n_strerror(i32 noundef %14212, ptr noundef @.str.4)
  %14214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14215 = load i32, ptr %14214, align 4, !tbaa !5
  %14216 = call ptr @s2n_strerror_debug(i32 noundef %14215, ptr noundef @.str.4)
  %14217 = call ptr @__errno_location() #10
  %14218 = load i32, ptr %14217, align 4, !tbaa !5
  %14219 = call ptr @strerror(i32 noundef %14218) #9
  %14220 = call ptr @__errno_location() #10
  %14221 = load i32, ptr %14220, align 4, !tbaa !5
  %14222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14209, ptr noundef @.str.5, i32 noundef %14210, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 538, ptr noundef %14213, ptr noundef %14216, ptr noundef %14219, i32 noundef %14221) #9
  br label %14223

14223:                                            ; preds = %14206, %14189
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #9
  br label %14224

14224:                                            ; preds = %14223
  br label %14225

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

14226:                                            ; No predecessors!
  br label %14227

14227:                                            ; preds = %14226
  br label %14228

14228:                                            ; preds = %14227, %14166
  br label %14229

14229:                                            ; preds = %14228
  br label %14230

14230:                                            ; preds = %14229
  br label %14231

14231:                                            ; preds = %14230
  %14232 = load i32, ptr @test_count, align 4, !tbaa !5
  %14233 = add nsw i32 %14232, 1
  store i32 %14233, ptr @test_count, align 4, !tbaa !5
  %14234 = load ptr, ptr %286, align 8, !tbaa !9
  %14235 = getelementptr inbounds %struct.s2n_connection, ptr %14234, i32 0, i32 31
  %14236 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14235, i32 0, i32 4
  %14237 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %14236, i32 0, i32 2
  %14238 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %14237, i32 0, i32 0
  %14239 = load ptr, ptr %14238, align 8, !tbaa !75
  %14240 = icmp eq ptr %14239, null
  br i1 %14240, label %14294, label %14241

14241:                                            ; preds = %14231
  br label %14242

14242:                                            ; preds = %14241
  br label %14243

14243:                                            ; preds = %14242
  call void @llvm.lifetime.start.p0(i64 4, ptr %295) #9
  %14244 = call ptr @__errno_location() #10
  %14245 = load i32, ptr %14244, align 4, !tbaa !5
  store i32 %14245, ptr %295, align 4, !tbaa !5
  %14246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14247 = call i32 @s2n_print_stacktrace(ptr noundef %14246)
  %14248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14249 = trunc i8 %14248 to i1
  br i1 %14249, label %14250, label %14272

14250:                                            ; preds = %14243
  %14251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14252 = call i32 @fileno(ptr noundef %14251) #9
  %14253 = call i32 @isatty(i32 noundef %14252) #9
  %14254 = icmp ne i32 %14253, 0
  br i1 %14254, label %14255, label %14272

14255:                                            ; preds = %14250
  %14256 = load i32, ptr %295, align 4, !tbaa !5
  %14257 = call ptr @__errno_location() #10
  store i32 %14256, ptr %14257, align 4, !tbaa !5
  %14258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14259 = load i32, ptr @test_count, align 4, !tbaa !5
  %14260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14261 = load i32, ptr %14260, align 4, !tbaa !5
  %14262 = call ptr @s2n_strerror(i32 noundef %14261, ptr noundef @.str.4)
  %14263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14264 = load i32, ptr %14263, align 4, !tbaa !5
  %14265 = call ptr @s2n_strerror_debug(i32 noundef %14264, ptr noundef @.str.4)
  %14266 = call ptr @__errno_location() #10
  %14267 = load i32, ptr %14266, align 4, !tbaa !5
  %14268 = call ptr @strerror(i32 noundef %14267) #9
  %14269 = call ptr @__errno_location() #10
  %14270 = load i32, ptr %14269, align 4, !tbaa !5
  %14271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14258, ptr noundef @.str.2, i32 noundef %14259, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 539, ptr noundef %14262, ptr noundef %14265, ptr noundef %14268, i32 noundef %14270) #9
  br label %14289

14272:                                            ; preds = %14250, %14243
  %14273 = load i32, ptr %295, align 4, !tbaa !5
  %14274 = call ptr @__errno_location() #10
  store i32 %14273, ptr %14274, align 4, !tbaa !5
  %14275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14276 = load i32, ptr @test_count, align 4, !tbaa !5
  %14277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14278 = load i32, ptr %14277, align 4, !tbaa !5
  %14279 = call ptr @s2n_strerror(i32 noundef %14278, ptr noundef @.str.4)
  %14280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14281 = load i32, ptr %14280, align 4, !tbaa !5
  %14282 = call ptr @s2n_strerror_debug(i32 noundef %14281, ptr noundef @.str.4)
  %14283 = call ptr @__errno_location() #10
  %14284 = load i32, ptr %14283, align 4, !tbaa !5
  %14285 = call ptr @strerror(i32 noundef %14284) #9
  %14286 = call ptr @__errno_location() #10
  %14287 = load i32, ptr %14286, align 4, !tbaa !5
  %14288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14275, ptr noundef @.str.5, i32 noundef %14276, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 539, ptr noundef %14279, ptr noundef %14282, ptr noundef %14285, i32 noundef %14287) #9
  br label %14289

14289:                                            ; preds = %14272, %14255
  call void @llvm.lifetime.end.p0(i64 4, ptr %295) #9
  br label %14290

14290:                                            ; preds = %14289
  br label %14291

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

14292:                                            ; No predecessors!
  br label %14293

14293:                                            ; preds = %14292
  br label %14294

14294:                                            ; preds = %14293, %14231
  br label %14295

14295:                                            ; preds = %14294
  br label %14296

14296:                                            ; preds = %14295
  br label %14297

14297:                                            ; preds = %14296
  %14298 = load i32, ptr @test_count, align 4, !tbaa !5
  %14299 = add nsw i32 %14298, 1
  store i32 %14299, ptr @test_count, align 4, !tbaa !5
  %14300 = load ptr, ptr %286, align 8, !tbaa !9
  %14301 = getelementptr inbounds %struct.s2n_connection, ptr %14300, i32 0, i32 31
  %14302 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %14301, i32 0, i32 4
  %14303 = getelementptr inbounds %struct.s2n_kem_group_params, ptr %14302, i32 0, i32 1
  %14304 = getelementptr inbounds %struct.s2n_kem_params, ptr %14303, i32 0, i32 0
  %14305 = load ptr, ptr %14304, align 8, !tbaa !76
  %14306 = icmp eq ptr %14305, null
  br i1 %14306, label %14360, label %14307

14307:                                            ; preds = %14297
  br label %14308

14308:                                            ; preds = %14307
  br label %14309

14309:                                            ; preds = %14308
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #9
  %14310 = call ptr @__errno_location() #10
  %14311 = load i32, ptr %14310, align 4, !tbaa !5
  store i32 %14311, ptr %296, align 4, !tbaa !5
  %14312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14313 = call i32 @s2n_print_stacktrace(ptr noundef %14312)
  %14314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14315 = trunc i8 %14314 to i1
  br i1 %14315, label %14316, label %14338

14316:                                            ; preds = %14309
  %14317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14318 = call i32 @fileno(ptr noundef %14317) #9
  %14319 = call i32 @isatty(i32 noundef %14318) #9
  %14320 = icmp ne i32 %14319, 0
  br i1 %14320, label %14321, label %14338

14321:                                            ; preds = %14316
  %14322 = load i32, ptr %296, align 4, !tbaa !5
  %14323 = call ptr @__errno_location() #10
  store i32 %14322, ptr %14323, align 4, !tbaa !5
  %14324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14325 = load i32, ptr @test_count, align 4, !tbaa !5
  %14326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14327 = load i32, ptr %14326, align 4, !tbaa !5
  %14328 = call ptr @s2n_strerror(i32 noundef %14327, ptr noundef @.str.4)
  %14329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14330 = load i32, ptr %14329, align 4, !tbaa !5
  %14331 = call ptr @s2n_strerror_debug(i32 noundef %14330, ptr noundef @.str.4)
  %14332 = call ptr @__errno_location() #10
  %14333 = load i32, ptr %14332, align 4, !tbaa !5
  %14334 = call ptr @strerror(i32 noundef %14333) #9
  %14335 = call ptr @__errno_location() #10
  %14336 = load i32, ptr %14335, align 4, !tbaa !5
  %14337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14324, ptr noundef @.str.2, i32 noundef %14325, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 540, ptr noundef %14328, ptr noundef %14331, ptr noundef %14334, i32 noundef %14336) #9
  br label %14355

14338:                                            ; preds = %14316, %14309
  %14339 = load i32, ptr %296, align 4, !tbaa !5
  %14340 = call ptr @__errno_location() #10
  store i32 %14339, ptr %14340, align 4, !tbaa !5
  %14341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14342 = load i32, ptr @test_count, align 4, !tbaa !5
  %14343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14344 = load i32, ptr %14343, align 4, !tbaa !5
  %14345 = call ptr @s2n_strerror(i32 noundef %14344, ptr noundef @.str.4)
  %14346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14347 = load i32, ptr %14346, align 4, !tbaa !5
  %14348 = call ptr @s2n_strerror_debug(i32 noundef %14347, ptr noundef @.str.4)
  %14349 = call ptr @__errno_location() #10
  %14350 = load i32, ptr %14349, align 4, !tbaa !5
  %14351 = call ptr @strerror(i32 noundef %14350) #9
  %14352 = call ptr @__errno_location() #10
  %14353 = load i32, ptr %14352, align 4, !tbaa !5
  %14354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14341, ptr noundef @.str.5, i32 noundef %14342, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 540, ptr noundef %14345, ptr noundef %14348, ptr noundef %14351, i32 noundef %14353) #9
  br label %14355

14355:                                            ; preds = %14338, %14321
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #9
  br label %14356

14356:                                            ; preds = %14355
  br label %14357

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

14358:                                            ; No predecessors!
  br label %14359

14359:                                            ; preds = %14358
  br label %14360

14360:                                            ; preds = %14359, %14297
  br label %14361

14361:                                            ; preds = %14360
  br label %14362

14362:                                            ; preds = %14361
  br label %14363

14363:                                            ; preds = %14362
  %14364 = load i32, ptr @test_count, align 4, !tbaa !5
  %14365 = add nsw i32 %14364, 1
  store i32 %14365, ptr @test_count, align 4, !tbaa !5
  %14366 = call i32 @s2n_stuffer_free(ptr noundef %288)
  %14367 = icmp eq i32 %14366, -1
  br i1 %14367, label %14368, label %14421

14368:                                            ; preds = %14363
  br label %14369

14369:                                            ; preds = %14368
  br label %14370

14370:                                            ; preds = %14369
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #9
  %14371 = call ptr @__errno_location() #10
  %14372 = load i32, ptr %14371, align 4, !tbaa !5
  store i32 %14372, ptr %297, align 4, !tbaa !5
  %14373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14374 = call i32 @s2n_print_stacktrace(ptr noundef %14373)
  %14375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14376 = trunc i8 %14375 to i1
  br i1 %14376, label %14377, label %14399

14377:                                            ; preds = %14370
  %14378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14379 = call i32 @fileno(ptr noundef %14378) #9
  %14380 = call i32 @isatty(i32 noundef %14379) #9
  %14381 = icmp ne i32 %14380, 0
  br i1 %14381, label %14382, label %14399

14382:                                            ; preds = %14377
  %14383 = load i32, ptr %297, align 4, !tbaa !5
  %14384 = call ptr @__errno_location() #10
  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() #10
  %14394 = load i32, ptr %14393, align 4, !tbaa !5
  %14395 = call ptr @strerror(i32 noundef %14394) #9
  %14396 = call ptr @__errno_location() #10
  %14397 = load i32, ptr %14396, align 4, !tbaa !5
  %14398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14385, ptr noundef @.str.2, i32 noundef %14386, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 542, ptr noundef %14389, ptr noundef %14392, ptr noundef %14395, i32 noundef %14397) #9
  br label %14416

14399:                                            ; preds = %14377, %14370
  %14400 = load i32, ptr %297, align 4, !tbaa !5
  %14401 = call ptr @__errno_location() #10
  store i32 %14400, ptr %14401, align 4, !tbaa !5
  %14402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14403 = load i32, ptr @test_count, align 4, !tbaa !5
  %14404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14405 = load i32, ptr %14404, align 4, !tbaa !5
  %14406 = call ptr @s2n_strerror(i32 noundef %14405, ptr noundef @.str.4)
  %14407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14408 = load i32, ptr %14407, align 4, !tbaa !5
  %14409 = call ptr @s2n_strerror_debug(i32 noundef %14408, ptr noundef @.str.4)
  %14410 = call ptr @__errno_location() #10
  %14411 = load i32, ptr %14410, align 4, !tbaa !5
  %14412 = call ptr @strerror(i32 noundef %14411) #9
  %14413 = call ptr @__errno_location() #10
  %14414 = load i32, ptr %14413, align 4, !tbaa !5
  %14415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14402, ptr noundef @.str.5, i32 noundef %14403, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 542, ptr noundef %14406, ptr noundef %14409, ptr noundef %14412, i32 noundef %14414) #9
  br label %14416

14416:                                            ; preds = %14399, %14382
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #9
  br label %14417

14417:                                            ; preds = %14416
  br label %14418

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

14419:                                            ; No predecessors!
  br label %14420

14420:                                            ; preds = %14419
  br label %14421

14421:                                            ; preds = %14420, %14363
  br label %14422

14422:                                            ; preds = %14421
  br label %14423

14423:                                            ; preds = %14422
  br label %14424

14424:                                            ; preds = %14423
  %14425 = load i32, ptr @test_count, align 4, !tbaa !5
  %14426 = add nsw i32 %14425, 1
  store i32 %14426, ptr @test_count, align 4, !tbaa !5
  %14427 = load ptr, ptr %286, align 8, !tbaa !9
  %14428 = call i32 @s2n_connection_free(ptr noundef %14427)
  %14429 = icmp eq i32 %14428, -1
  br i1 %14429, label %14430, label %14483

14430:                                            ; preds = %14424
  br label %14431

14431:                                            ; preds = %14430
  br label %14432

14432:                                            ; preds = %14431
  call void @llvm.lifetime.start.p0(i64 4, ptr %298) #9
  %14433 = call ptr @__errno_location() #10
  %14434 = load i32, ptr %14433, align 4, !tbaa !5
  store i32 %14434, ptr %298, align 4, !tbaa !5
  %14435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14436 = call i32 @s2n_print_stacktrace(ptr noundef %14435)
  %14437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14438 = trunc i8 %14437 to i1
  br i1 %14438, label %14439, label %14461

14439:                                            ; preds = %14432
  %14440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14441 = call i32 @fileno(ptr noundef %14440) #9
  %14442 = call i32 @isatty(i32 noundef %14441) #9
  %14443 = icmp ne i32 %14442, 0
  br i1 %14443, label %14444, label %14461

14444:                                            ; preds = %14439
  %14445 = load i32, ptr %298, align 4, !tbaa !5
  %14446 = call ptr @__errno_location() #10
  store i32 %14445, ptr %14446, align 4, !tbaa !5
  %14447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14448 = load i32, ptr @test_count, align 4, !tbaa !5
  %14449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14450 = load i32, ptr %14449, align 4, !tbaa !5
  %14451 = call ptr @s2n_strerror(i32 noundef %14450, ptr noundef @.str.4)
  %14452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14453 = load i32, ptr %14452, align 4, !tbaa !5
  %14454 = call ptr @s2n_strerror_debug(i32 noundef %14453, ptr noundef @.str.4)
  %14455 = call ptr @__errno_location() #10
  %14456 = load i32, ptr %14455, align 4, !tbaa !5
  %14457 = call ptr @strerror(i32 noundef %14456) #9
  %14458 = call ptr @__errno_location() #10
  %14459 = load i32, ptr %14458, align 4, !tbaa !5
  %14460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14447, ptr noundef @.str.2, i32 noundef %14448, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 543, ptr noundef %14451, ptr noundef %14454, ptr noundef %14457, i32 noundef %14459) #9
  br label %14478

14461:                                            ; preds = %14439, %14432
  %14462 = load i32, ptr %298, align 4, !tbaa !5
  %14463 = call ptr @__errno_location() #10
  store i32 %14462, ptr %14463, align 4, !tbaa !5
  %14464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14465 = load i32, ptr @test_count, align 4, !tbaa !5
  %14466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14467 = load i32, ptr %14466, align 4, !tbaa !5
  %14468 = call ptr @s2n_strerror(i32 noundef %14467, ptr noundef @.str.4)
  %14469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14470 = load i32, ptr %14469, align 4, !tbaa !5
  %14471 = call ptr @s2n_strerror_debug(i32 noundef %14470, ptr noundef @.str.4)
  %14472 = call ptr @__errno_location() #10
  %14473 = load i32, ptr %14472, align 4, !tbaa !5
  %14474 = call ptr @strerror(i32 noundef %14473) #9
  %14475 = call ptr @__errno_location() #10
  %14476 = load i32, ptr %14475, align 4, !tbaa !5
  %14477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14464, ptr noundef @.str.5, i32 noundef %14465, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 543, ptr noundef %14468, ptr noundef %14471, ptr noundef %14474, i32 noundef %14476) #9
  br label %14478

14478:                                            ; preds = %14461, %14444
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #9
  br label %14479

14479:                                            ; preds = %14478
  br label %14480

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

14481:                                            ; No predecessors!
  br label %14482

14482:                                            ; preds = %14481
  br label %14483

14483:                                            ; preds = %14482, %14424
  br label %14484

14484:                                            ; preds = %14483
  br label %14485

14485:                                            ; preds = %14484
  call void @llvm.lifetime.end.p0(i64 32, ptr %291) #9
  store i32 0, ptr %88, align 4
  br label %14486

14486:                                            ; preds = %14485, %14031, %14006
  call void @llvm.lifetime.end.p0(i64 40, ptr %288) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %286) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %284) #9
  %14487 = load i32, ptr %88, align 4
  switch i32 %14487, label %14636 [
    i32 0, label %14488
    i32 1, label %14634
  ]

14488:                                            ; preds = %14486
  br label %14489

14489:                                            ; preds = %14488
  br label %14490

14490:                                            ; preds = %14489
  %14491 = call i32 @s2n_cleanup()
  %14492 = icmp eq i32 %14491, -1
  br i1 %14492, label %14493, label %14544

14493:                                            ; preds = %14490
  br label %14494

14494:                                            ; preds = %14493
  br label %14495

14495:                                            ; preds = %14494
  call void @llvm.lifetime.start.p0(i64 4, ptr %299) #9
  %14496 = call ptr @__errno_location() #10
  %14497 = load i32, ptr %14496, align 4, !tbaa !5
  store i32 %14497, ptr %299, align 4, !tbaa !5
  %14498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14499 = call i32 @s2n_print_stacktrace(ptr noundef %14498)
  %14500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14501 = trunc i8 %14500 to i1
  br i1 %14501, label %14502, label %14524

14502:                                            ; preds = %14495
  %14503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14504 = call i32 @fileno(ptr noundef %14503) #9
  %14505 = call i32 @isatty(i32 noundef %14504) #9
  %14506 = icmp ne i32 %14505, 0
  br i1 %14506, label %14507, label %14524

14507:                                            ; preds = %14502
  %14508 = load i32, ptr %299, align 4, !tbaa !5
  %14509 = call ptr @__errno_location() #10
  store i32 %14508, ptr %14509, align 4, !tbaa !5
  %14510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14511 = load i32, ptr @test_count, align 4, !tbaa !5
  %14512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14513 = load i32, ptr %14512, align 4, !tbaa !5
  %14514 = call ptr @s2n_strerror(i32 noundef %14513, ptr noundef @.str.4)
  %14515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14516 = load i32, ptr %14515, align 4, !tbaa !5
  %14517 = call ptr @s2n_strerror_debug(i32 noundef %14516, ptr noundef @.str.4)
  %14518 = call ptr @__errno_location() #10
  %14519 = load i32, ptr %14518, align 4, !tbaa !5
  %14520 = call ptr @strerror(i32 noundef %14519) #9
  %14521 = call ptr @__errno_location() #10
  %14522 = load i32, ptr %14521, align 4, !tbaa !5
  %14523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14510, ptr noundef @.str.2, i32 noundef %14511, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 546, ptr noundef %14514, ptr noundef %14517, ptr noundef %14520, i32 noundef %14522) #9
  br label %14541

14524:                                            ; preds = %14502, %14495
  %14525 = load i32, ptr %299, align 4, !tbaa !5
  %14526 = call ptr @__errno_location() #10
  store i32 %14525, ptr %14526, align 4, !tbaa !5
  %14527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14528 = load i32, ptr @test_count, align 4, !tbaa !5
  %14529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14530 = load i32, ptr %14529, align 4, !tbaa !5
  %14531 = call ptr @s2n_strerror(i32 noundef %14530, ptr noundef @.str.4)
  %14532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14533 = load i32, ptr %14532, align 4, !tbaa !5
  %14534 = call ptr @s2n_strerror_debug(i32 noundef %14533, ptr noundef @.str.4)
  %14535 = call ptr @__errno_location() #10
  %14536 = load i32, ptr %14535, align 4, !tbaa !5
  %14537 = call ptr @strerror(i32 noundef %14536) #9
  %14538 = call ptr @__errno_location() #10
  %14539 = load i32, ptr %14538, align 4, !tbaa !5
  %14540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14527, ptr noundef @.str.5, i32 noundef %14528, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 546, ptr noundef %14531, ptr noundef %14534, ptr noundef %14537, i32 noundef %14539) #9
  br label %14541

14541:                                            ; preds = %14524, %14507
  call void @llvm.lifetime.end.p0(i64 4, ptr %299) #9
  br label %14542

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

14543:                                            ; No predecessors!
  br label %14544

14544:                                            ; preds = %14543, %14490
  br label %14545

14545:                                            ; preds = %14544
  br label %14546

14546:                                            ; preds = %14545
  br label %14547

14547:                                            ; preds = %14546
  %14548 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %14549 = icmp eq i32 %14548, -1
  br i1 %14549, label %14550, label %14601

14550:                                            ; preds = %14547
  br label %14551

14551:                                            ; preds = %14550
  br label %14552

14552:                                            ; preds = %14551
  call void @llvm.lifetime.start.p0(i64 4, ptr %300) #9
  %14553 = call ptr @__errno_location() #10
  %14554 = load i32, ptr %14553, align 4, !tbaa !5
  store i32 %14554, ptr %300, align 4, !tbaa !5
  %14555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14556 = call i32 @s2n_print_stacktrace(ptr noundef %14555)
  %14557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14558 = trunc i8 %14557 to i1
  br i1 %14558, label %14559, label %14581

14559:                                            ; preds = %14552
  %14560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14561 = call i32 @fileno(ptr noundef %14560) #9
  %14562 = call i32 @isatty(i32 noundef %14561) #9
  %14563 = icmp ne i32 %14562, 0
  br i1 %14563, label %14564, label %14581

14564:                                            ; preds = %14559
  %14565 = load i32, ptr %300, align 4, !tbaa !5
  %14566 = call ptr @__errno_location() #10
  store i32 %14565, ptr %14566, align 4, !tbaa !5
  %14567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14568 = load i32, ptr @test_count, align 4, !tbaa !5
  %14569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14570 = load i32, ptr %14569, align 4, !tbaa !5
  %14571 = call ptr @s2n_strerror(i32 noundef %14570, ptr noundef @.str.4)
  %14572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14573 = load i32, ptr %14572, align 4, !tbaa !5
  %14574 = call ptr @s2n_strerror_debug(i32 noundef %14573, ptr noundef @.str.4)
  %14575 = call ptr @__errno_location() #10
  %14576 = load i32, ptr %14575, align 4, !tbaa !5
  %14577 = call ptr @strerror(i32 noundef %14576) #9
  %14578 = call ptr @__errno_location() #10
  %14579 = load i32, ptr %14578, align 4, !tbaa !5
  %14580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14567, ptr noundef @.str.2, i32 noundef %14568, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 546, ptr noundef %14571, ptr noundef %14574, ptr noundef %14577, i32 noundef %14579) #9
  br label %14598

14581:                                            ; preds = %14559, %14552
  %14582 = load i32, ptr %300, align 4, !tbaa !5
  %14583 = call ptr @__errno_location() #10
  store i32 %14582, ptr %14583, align 4, !tbaa !5
  %14584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14585 = load i32, ptr @test_count, align 4, !tbaa !5
  %14586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14587 = load i32, ptr %14586, align 4, !tbaa !5
  %14588 = call ptr @s2n_strerror(i32 noundef %14587, ptr noundef @.str.4)
  %14589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14590 = load i32, ptr %14589, align 4, !tbaa !5
  %14591 = call ptr @s2n_strerror_debug(i32 noundef %14590, ptr noundef @.str.4)
  %14592 = call ptr @__errno_location() #10
  %14593 = load i32, ptr %14592, align 4, !tbaa !5
  %14594 = call ptr @strerror(i32 noundef %14593) #9
  %14595 = call ptr @__errno_location() #10
  %14596 = load i32, ptr %14595, align 4, !tbaa !5
  %14597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14584, ptr noundef @.str.5, i32 noundef %14585, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 546, ptr noundef %14588, ptr noundef %14591, ptr noundef %14594, i32 noundef %14596) #9
  br label %14598

14598:                                            ; preds = %14581, %14564
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #9
  br label %14599

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

14600:                                            ; No predecessors!
  br label %14601

14601:                                            ; preds = %14600, %14547
  br label %14602

14602:                                            ; preds = %14601
  %14603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14604 = trunc i8 %14603 to i1
  br i1 %14604, label %14605, label %14621

14605:                                            ; preds = %14602
  %14606 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14607 = call i32 @fileno(ptr noundef %14606) #9
  %14608 = call i32 @isatty(i32 noundef %14607) #9
  %14609 = icmp ne i32 %14608, 0
  br i1 %14609, label %14610, label %14621

14610:                                            ; preds = %14605
  %14611 = load i32, ptr @test_count, align 4, !tbaa !5
  %14612 = icmp ne i32 %14611, 0
  br i1 %14612, label %14613, label %14617

14613:                                            ; preds = %14610
  %14614 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14615 = load i32, ptr @test_count, align 4, !tbaa !5
  %14616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14614, ptr noundef @.str.86, i32 noundef %14615) #9
  br label %14620

14617:                                            ; preds = %14610
  %14618 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14618, ptr noundef @.str.87) #9
  br label %14620

14620:                                            ; preds = %14617, %14613
  br label %14632

14621:                                            ; preds = %14605, %14602
  %14622 = load i32, ptr @test_count, align 4, !tbaa !5
  %14623 = icmp ne i32 %14622, 0
  br i1 %14623, label %14624, label %14628

14624:                                            ; preds = %14621
  %14625 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14626 = load i32, ptr @test_count, align 4, !tbaa !5
  %14627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14625, ptr noundef @.str.88, i32 noundef %14626) #9
  br label %14631

14628:                                            ; preds = %14621
  %14629 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14629, ptr noundef @.str.89) #9
  br label %14631

14631:                                            ; preds = %14628, %14624
  br label %14632

14632:                                            ; preds = %14631, %14620
  store i32 0, ptr %1, align 4
  br label %14634

14633:                                            ; No predecessors!
  br label %14634

14634:                                            ; preds = %14633, %14632, %14486, %11279
  %14635 = load i32, ptr %1, align 4
  ret i32 %14635

14636:                                            ; preds = %14486, %11279
  unreachable
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #1

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #4

declare i32 @s2n_print_stacktrace(ptr noundef) #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #1

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) #2

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #1

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #6

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #7

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) #2

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

declare i32 @s2n_connection_get_kem_preferences(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_free(ptr noundef) #2

declare i32 @s2n_enable_tls13_in_test(...) #2

declare zeroext i1 @s2n_pq_is_enabled() #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 zeroext i1 @s2n_kem_group_is_available(ptr noundef) #2

declare zeroext i8 @s2n_connection_get_protocol_version(ptr noundef) #2

declare ptr @s2n_kem_preferences_get_highest_priority_group(ptr noundef) #2

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_reserve_uint16(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) #2

declare i32 @s2n_stuffer_write_vector_size(ptr noundef) #2

declare i32 @s2n_stuffer_wipe_n(ptr noundef, i32 noundef) #2

declare i32 @s2n_stuffer_alloc(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 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 24}
!16 = !{!"", !17, i64 0, !6, i64 2, !17, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!17 = !{!"short", !7, i64 0}
!18 = !{!16, !10, i64 8}
!19 = !{!17, !17, i64 0}
!20 = !{!21, !6, i64 28}
!21 = !{!"s2n_stuffer", !22, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!22 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!23 = !{!21, !6, i64 24}
!24 = !{!25, !7, i64 0}
!25 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!26 = !{!27, !27, i64 0}
!27 = !{!"long", !7, i64 0}
!28 = !{!25, !10, i64 8}
!29 = !{!30, !17, i64 0}
!30 = !{!"s2n_ecc_named_curve", !17, i64 0, !6, i64 4, !10, i64 8, !7, i64 16, !10, i64 24}
!31 = distinct !{!31, !32}
!32 = !{!"llvm.loop.mustprogress"}
!33 = !{!34, !7, i64 16}
!34 = !{!"s2n_kem_preferences", !7, i64 0, !10, i64 8, !7, i64 16, !10, i64 24, !7, i64 32}
!35 = !{!34, !10, i64 24}
!36 = !{!37, !7, i64 0}
!37 = !{!"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}
!38 = !{!37, !10, i64 8}
!39 = !{!37, !10, i64 16}
!40 = !{!37, !10, i64 24}
!41 = !{!37, !10, i64 32}
!42 = !{!37, !10, i64 40}
!43 = !{!37, !10, i64 48}
!44 = !{!37, !12, i64 56}
!45 = !{!46, !10, i64 16}
!46 = !{!"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, !47, i64 160, !27, i64 168, !27, 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, !48, i64 240, !10, i64 632, !10, i64 640, !49, i64 648, !54, i64 1144, !57, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !21, i64 1776, !21, i64 1816, !21, i64 1856, !21, i64 1896, !6, i64 1936, !27, i64 1944, !7, i64 1952, !21, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !59, i64 2004, !59, i64 2008, !60, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !27, i64 2224, !7, i64 2232, !27, i64 2240, !27, i64 2248, !27, i64 2256, !59, i64 2264, !59, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !22, i64 2792, !6, i64 2816, !22, i64 2824, !22, i64 2848, !22, i64 2872, !62, i64 2896, !64, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !22, i64 3784, !6, i64 3808, !66, i64 3816, !7, i64 3848, !21, i64 3992, !22, i64 4032, !22, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !22, i64 4096, !6, i64 4120, !67, i64 4128, !59, i64 4176, !7, i64 4180, !7, i64 4181}
!47 = !{!"s2n_timer", !27, i64 0}
!48 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!49 = !{!"s2n_kex_parameters", !50, i64 0, !51, i64 8, !7, i64 24, !51, i64 56, !52, i64 72, !52, i64 184, !7, i64 296, !53, i64 360, !22, i64 448, !22, i64 472}
!50 = !{!"s2n_dh_params", !10, i64 0}
!51 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!52 = !{!"s2n_kem_group_params", !10, i64 0, !53, i64 8, !51, i64 96}
!53 = !{!"s2n_kem_params", !10, i64 0, !22, i64 8, !22, i64 32, !22, i64 56, !12, i64 80}
!54 = !{!"s2n_handshake_parameters", !55, i64 0, !55, i64 48, !22, i64 96, !6, i64 120, !56, 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}
!55 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!56 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!57 = !{!"s2n_psk_parameters", !6, i64 0, !58, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!58 = !{!"s2n_array", !22, i64 0, !6, i64 24, !6, i64 28}
!59 = !{!"", !6, i64 0}
!60 = !{!"s2n_handshake", !21, 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, !61, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!61 = !{!"s2n_offered_early_data", !10, i64 0}
!62 = !{!"s2n_client_hello", !22, i64 0, !63, i64 24, !22, i64 728, !22, i64 752, !22, 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}
!63 = !{!"", !7, i64 0, !22, i64 672, !17, i64 696}
!64 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !17, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !65, i64 48, !12, i64 52}
!65 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!66 = !{!"s2n_ticket_fields", !22, i64 0, !6, i64 24}
!67 = !{!"s2n_post_handshake", !21, i64 0, !7, i64 40}
!68 = !{!69, !17, i64 8}
!69 = !{!"s2n_kem_group", !10, i64 0, !17, i64 8, !10, i64 16, !10, i64 24, !12, i64 32}
!70 = distinct !{!70, !32}
!71 = distinct !{!71, !32}
!72 = distinct !{!72, !32}
!73 = !{!46, !10, i64 656}
!74 = !{!46, !10, i64 720}
!75 = !{!46, !10, i64 816}
!76 = !{!46, !10, i64 728}
!77 = !{!16, !10, i64 16}
!78 = distinct !{!78, !32}
!79 = !{!69, !10, i64 16}
!80 = !{!69, !10, i64 24}
!81 = distinct !{!81, !32}
!82 = distinct !{!82, !32}
!83 = distinct !{!83, !32}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_stuffer_reservation = type { ptr, i32, i8 }
%struct.s2n_ecc_named_curve = type { i16, i32, ptr, i8, ptr }

@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 [101 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_client_supported_groups_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.10 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [43 x i8], align 1
@kem_preferences_null = external constant %struct.s2n_kem_preferences, align 8
@.str.19 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [55 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.27 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [114 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local range(i32 -1, 1) i32 @main() local_unnamed_addr #0 {
  %1 = alloca %struct.s2n_stuffer, align 8
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca i16, align 2
  %5 = alloca i16, align 2
  %6 = alloca %struct.s2n_kem_preferences, align 8
  %7 = alloca %struct.s2n_security_policy, align 8
  %8 = alloca %struct.s2n_stuffer, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i16, align 2
  %12 = alloca i32, align 4
  %13 = alloca i16, align 2
  %14 = alloca i16, align 2
  %15 = alloca %struct.s2n_stuffer, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i16, align 2
  %19 = alloca i16, align 2
  %20 = alloca %struct.s2n_stuffer, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca [3 x [2 x ptr]], align 16
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca %struct.s2n_stuffer, align 8
  %27 = alloca %struct.s2n_stuffer, align 8
  %28 = alloca %struct.s2n_stuffer_reservation, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca %struct.s2n_stuffer, align 8
  %32 = alloca %struct.s2n_stuffer_reservation, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca %struct.s2n_stuffer, align 8
  %36 = alloca %struct.s2n_stuffer_reservation, align 8
  %37 = alloca %struct.s2n_stuffer, align 8
  %38 = alloca ptr, align 8
  %39 = alloca %struct.s2n_stuffer, align 8
  %40 = alloca ptr, align 8
  %41 = alloca %struct.s2n_stuffer, align 8
  %42 = alloca ptr, align 8
  %43 = alloca %struct.s2n_stuffer, align 8
  %44 = alloca %struct.s2n_ecc_named_curve, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %45 = load ptr, ptr @stdout, align 8, !tbaa !9
  %46 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %45, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #10
  %47 = load ptr, ptr @stdout, align 8, !tbaa !9
  %48 = tail call i32 @fflush(ptr noundef %47)
  %49 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #10
  %50 = icmp eq i32 %49, -1
  br i1 %50, label %51, label %75

51:                                               ; preds = %0
  %52 = tail call ptr @__errno_location() #11
  %53 = load i32, ptr %52, align 4, !tbaa !5
  %54 = load ptr, ptr @stderr, align 8, !tbaa !9
  %55 = tail call i32 @s2n_print_stacktrace(ptr noundef %54) #10
  %56 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %57 = trunc nuw i8 %56 to i1
  br i1 %57, label %58, label %62

58:                                               ; preds = %51
  %59 = load ptr, ptr @stderr, align 8, !tbaa !9
  %60 = tail call i32 @fileno(ptr noundef %59) #10
  %61 = tail call i32 @isatty(i32 noundef %60) #10
  %.not882 = icmp eq i32 %61, 0
  br i1 %.not882, label %62, label %63

62:                                               ; preds = %58, %51
  br label %63

63:                                               ; preds = %58, %62
  %.str.5.sink = phi ptr [ @.str.5, %62 ], [ @.str.2, %58 ]
  store i32 %53, ptr %52, align 4, !tbaa !5
  %64 = load ptr, ptr @stderr, align 8, !tbaa !9
  %65 = load i32, ptr @test_count, align 4, !tbaa !5
  %66 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %67 = load i32, ptr %66, align 4, !tbaa !5
  %68 = tail call ptr @s2n_strerror(i32 noundef %67, ptr noundef nonnull @.str.4) #10
  %69 = load i32, ptr %66, align 4, !tbaa !5
  %70 = tail call ptr @s2n_strerror_debug(i32 noundef %69, ptr noundef nonnull @.str.4) #10
  %71 = load i32, ptr %52, align 4, !tbaa !5
  %72 = tail call ptr @strerror(i32 noundef %71) #10
  %73 = load i32, ptr %52, align 4, !tbaa !5
  %74 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %64, ptr noundef nonnull %.str.5.sink, i32 noundef %65, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %68, ptr noundef %70, ptr noundef %72, i32 noundef %73) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

75:                                               ; preds = %0
  %76 = load i32, ptr @test_count, align 4, !tbaa !5
  %77 = add nsw i32 %76, 1
  store i32 %77, ptr @test_count, align 4, !tbaa !5
  %78 = tail call i32 @s2n_enable_atexit() #10
  %79 = icmp eq i32 %78, -1
  br i1 %79, label %80, label %104

80:                                               ; preds = %75
  %81 = tail call ptr @__errno_location() #11
  %82 = load i32, ptr %81, align 4, !tbaa !5
  %83 = load ptr, ptr @stderr, align 8, !tbaa !9
  %84 = tail call i32 @s2n_print_stacktrace(ptr noundef %83) #10
  %85 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %86 = trunc nuw i8 %85 to i1
  br i1 %86, label %87, label %91

87:                                               ; preds = %80
  %88 = load ptr, ptr @stderr, align 8, !tbaa !9
  %89 = tail call i32 @fileno(ptr noundef %88) #10
  %90 = tail call i32 @isatty(i32 noundef %89) #10
  %.not881 = icmp eq i32 %90, 0
  br i1 %.not881, label %91, label %92

91:                                               ; preds = %87, %80
  br label %92

92:                                               ; preds = %87, %91
  %.str.5.sink953 = phi ptr [ @.str.5, %91 ], [ @.str.2, %87 ]
  store i32 %82, ptr %81, align 4, !tbaa !5
  %93 = load ptr, ptr @stderr, align 8, !tbaa !9
  %94 = load i32, ptr @test_count, align 4, !tbaa !5
  %95 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %96 = load i32, ptr %95, align 4, !tbaa !5
  %97 = tail call ptr @s2n_strerror(i32 noundef %96, ptr noundef nonnull @.str.4) #10
  %98 = load i32, ptr %95, align 4, !tbaa !5
  %99 = tail call ptr @s2n_strerror_debug(i32 noundef %98, ptr noundef nonnull @.str.4) #10
  %100 = load i32, ptr %81, align 4, !tbaa !5
  %101 = tail call ptr @strerror(i32 noundef %100) #10
  %102 = load i32, ptr %81, align 4, !tbaa !5
  %103 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %93, ptr noundef nonnull %.str.5.sink953, i32 noundef %94, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %97, ptr noundef %99, ptr noundef %101, i32 noundef %102) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

104:                                              ; preds = %75
  %105 = tail call i32 @s2n_init() #10
  %106 = icmp eq i32 %105, -1
  br i1 %106, label %107, label %131

107:                                              ; preds = %104
  %108 = tail call ptr @__errno_location() #11
  %109 = load i32, ptr %108, align 4, !tbaa !5
  %110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %111 = tail call i32 @s2n_print_stacktrace(ptr noundef %110) #10
  %112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %113 = trunc nuw i8 %112 to i1
  br i1 %113, label %114, label %118

114:                                              ; preds = %107
  %115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %116 = tail call i32 @fileno(ptr noundef %115) #10
  %117 = tail call i32 @isatty(i32 noundef %116) #10
  %.not880 = icmp eq i32 %117, 0
  br i1 %.not880, label %118, label %119

118:                                              ; preds = %114, %107
  br label %119

119:                                              ; preds = %114, %118
  %.str.5.sink964 = phi ptr [ @.str.5, %118 ], [ @.str.2, %114 ]
  store i32 %109, ptr %108, align 4, !tbaa !5
  %120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %121 = load i32, ptr @test_count, align 4, !tbaa !5
  %122 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %123 = load i32, ptr %122, align 4, !tbaa !5
  %124 = tail call ptr @s2n_strerror(i32 noundef %123, ptr noundef nonnull @.str.4) #10
  %125 = load i32, ptr %122, align 4, !tbaa !5
  %126 = tail call ptr @s2n_strerror_debug(i32 noundef %125, ptr noundef nonnull @.str.4) #10
  %127 = load i32, ptr %108, align 4, !tbaa !5
  %128 = tail call ptr @strerror(i32 noundef %127) #10
  %129 = load i32, ptr %108, align 4, !tbaa !5
  %130 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %120, ptr noundef nonnull %.str.5.sink964, i32 noundef %121, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %124, ptr noundef %126, ptr noundef %128, i32 noundef %129) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

131:                                              ; preds = %104
  %132 = load i32, ptr @test_count, align 4, !tbaa !5
  %133 = add nsw i32 %132, 1
  store i32 %133, ptr @test_count, align 4, !tbaa !5
  %134 = tail call i32 (...) @s2n_disable_tls13_in_test() #10
  %135 = icmp eq i32 %134, -1
  br i1 %135, label %136, label %160

136:                                              ; preds = %131
  %137 = tail call ptr @__errno_location() #11
  %138 = load i32, ptr %137, align 4, !tbaa !5
  %139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %140 = tail call i32 @s2n_print_stacktrace(ptr noundef %139) #10
  %141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %142 = trunc nuw i8 %141 to i1
  br i1 %142, label %143, label %147

143:                                              ; preds = %136
  %144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %145 = tail call i32 @fileno(ptr noundef %144) #10
  %146 = tail call i32 @isatty(i32 noundef %145) #10
  %.not879 = icmp eq i32 %146, 0
  br i1 %.not879, label %147, label %148

147:                                              ; preds = %143, %136
  br label %148

148:                                              ; preds = %143, %147
  %.str.5.sink975 = phi ptr [ @.str.5, %147 ], [ @.str.2, %143 ]
  store i32 %138, ptr %137, align 4, !tbaa !5
  %149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %150 = load i32, ptr @test_count, align 4, !tbaa !5
  %151 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %152 = load i32, ptr %151, align 4, !tbaa !5
  %153 = tail call ptr @s2n_strerror(i32 noundef %152, ptr noundef nonnull @.str.4) #10
  %154 = load i32, ptr %151, align 4, !tbaa !5
  %155 = tail call ptr @s2n_strerror_debug(i32 noundef %154, ptr noundef nonnull @.str.4) #10
  %156 = load i32, ptr %137, align 4, !tbaa !5
  %157 = tail call ptr @strerror(i32 noundef %156) #10
  %158 = load i32, ptr %137, align 4, !tbaa !5
  %159 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %149, ptr noundef nonnull %.str.5.sink975, i32 noundef %150, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 31, ptr noundef %153, ptr noundef %155, ptr noundef %157, i32 noundef %158) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

160:                                              ; preds = %131
  %161 = load i32, ptr @test_count, align 4, !tbaa !5
  %162 = add nsw i32 %161, 1
  store i32 %162, ptr @test_count, align 4, !tbaa !5
  %163 = tail call ptr @s2n_connection_new(i32 noundef 1) #10
  %164 = icmp eq ptr %163, null
  br i1 %164, label %165, label %189

165:                                              ; preds = %160
  %166 = tail call ptr @__errno_location() #11
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %169 = tail call i32 @s2n_print_stacktrace(ptr noundef %168) #10
  %170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %171 = trunc nuw i8 %170 to i1
  br i1 %171, label %172, label %176

172:                                              ; preds = %165
  %173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %174 = tail call i32 @fileno(ptr noundef %173) #10
  %175 = tail call i32 @isatty(i32 noundef %174) #10
  %.not878 = icmp eq i32 %175, 0
  br i1 %.not878, label %176, label %177

176:                                              ; preds = %172, %165
  br label %177

177:                                              ; preds = %172, %176
  %.str.5.sink986 = phi ptr [ @.str.5, %176 ], [ @.str.2, %172 ]
  store i32 %167, ptr %166, align 4, !tbaa !5
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %180 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = tail call ptr @s2n_strerror(i32 noundef %181, ptr noundef nonnull @.str.4) #10
  %183 = load i32, ptr %180, align 4, !tbaa !5
  %184 = tail call ptr @s2n_strerror_debug(i32 noundef %183, ptr noundef nonnull @.str.4) #10
  %185 = load i32, ptr %166, align 4, !tbaa !5
  %186 = tail call ptr @strerror(i32 noundef %185) #10
  %187 = load i32, ptr %166, align 4, !tbaa !5
  %188 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %178, ptr noundef nonnull %.str.5.sink986, i32 noundef %179, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 36, ptr noundef %182, ptr noundef %184, ptr noundef %186, i32 noundef %187) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

189:                                              ; preds = %160
  %190 = load i32, ptr @test_count, align 4, !tbaa !5
  %191 = add nsw i32 %190, 1
  store i32 %191, ptr @test_count, align 4, !tbaa !5
  %192 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_supported_groups_extension, i64 24), align 8, !tbaa !15
  %193 = tail call zeroext i1 %192(ptr noundef nonnull %163) #10
  br i1 %193, label %218, label %194

194:                                              ; preds = %189
  %195 = tail call ptr @__errno_location() #11
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %198 = tail call i32 @s2n_print_stacktrace(ptr noundef %197) #10
  %199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %200 = trunc nuw i8 %199 to i1
  br i1 %200, label %201, label %205

201:                                              ; preds = %194
  %202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %203 = tail call i32 @fileno(ptr noundef %202) #10
  %204 = tail call i32 @isatty(i32 noundef %203) #10
  %.not = icmp eq i32 %204, 0
  br i1 %.not, label %205, label %206

205:                                              ; preds = %201, %194
  br label %206

206:                                              ; preds = %201, %205
  %.str.5.sink997 = phi ptr [ @.str.5, %205 ], [ @.str.2, %201 ]
  store i32 %196, ptr %195, align 4, !tbaa !5
  %207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %208 = load i32, ptr @test_count, align 4, !tbaa !5
  %209 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = tail call ptr @s2n_strerror(i32 noundef %210, ptr noundef nonnull @.str.4) #10
  %212 = load i32, ptr %209, align 4, !tbaa !5
  %213 = tail call ptr @s2n_strerror_debug(i32 noundef %212, ptr noundef nonnull @.str.4) #10
  %214 = load i32, ptr %195, align 4, !tbaa !5
  %215 = tail call ptr @strerror(i32 noundef %214) #10
  %216 = load i32, ptr %195, align 4, !tbaa !5
  %217 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %207, ptr noundef nonnull %.str.5.sink997, i32 noundef %208, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %211, ptr noundef %213, ptr noundef %215, i32 noundef %216) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

218:                                              ; preds = %189
  %219 = load i32, ptr @test_count, align 4, !tbaa !5
  %220 = add nsw i32 %219, 1
  store i32 %220, ptr @test_count, align 4, !tbaa !5
  %221 = tail call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %163, ptr noundef nonnull @.str.11) #10
  %222 = icmp eq i32 %221, -1
  br i1 %222, label %223, label %247

223:                                              ; preds = %218
  %224 = tail call ptr @__errno_location() #11
  %225 = load i32, ptr %224, align 4, !tbaa !5
  %226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %227 = tail call i32 @s2n_print_stacktrace(ptr noundef %226) #10
  %228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %229 = trunc nuw i8 %228 to i1
  br i1 %229, label %230, label %234

230:                                              ; preds = %223
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = tail call i32 @fileno(ptr noundef %231) #10
  %233 = tail call i32 @isatty(i32 noundef %232) #10
  %.not877 = icmp eq i32 %233, 0
  br i1 %.not877, label %234, label %235

234:                                              ; preds = %230, %223
  br label %235

235:                                              ; preds = %230, %234
  %.str.5.sink1008 = phi ptr [ @.str.5, %234 ], [ @.str.2, %230 ]
  store i32 %225, ptr %224, align 4, !tbaa !5
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = load i32, ptr @test_count, align 4, !tbaa !5
  %238 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = tail call ptr @s2n_strerror(i32 noundef %239, ptr noundef nonnull @.str.4) #10
  %241 = load i32, ptr %238, align 4, !tbaa !5
  %242 = tail call ptr @s2n_strerror_debug(i32 noundef %241, ptr noundef nonnull @.str.4) #10
  %243 = load i32, ptr %224, align 4, !tbaa !5
  %244 = tail call ptr @strerror(i32 noundef %243) #10
  %245 = load i32, ptr %224, align 4, !tbaa !5
  %246 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %236, ptr noundef nonnull %.str.5.sink1008, i32 noundef %237, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 42, ptr noundef %240, ptr noundef %242, ptr noundef %244, i32 noundef %245) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

247:                                              ; preds = %218
  %248 = load i32, ptr @test_count, align 4, !tbaa !5
  %249 = add nsw i32 %248, 1
  store i32 %249, ptr @test_count, align 4, !tbaa !5
  %250 = tail call i32 @s2n_connection_free(ptr noundef nonnull %163) #10
  %251 = icmp eq i32 %250, -1
  br i1 %251, label %252, label %276

252:                                              ; preds = %247
  %253 = tail call ptr @__errno_location() #11
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %256 = tail call i32 @s2n_print_stacktrace(ptr noundef %255) #10
  %257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %258 = trunc nuw i8 %257 to i1
  br i1 %258, label %259, label %263

259:                                              ; preds = %252
  %260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %261 = tail call i32 @fileno(ptr noundef %260) #10
  %262 = tail call i32 @isatty(i32 noundef %261) #10
  %.not876 = icmp eq i32 %262, 0
  br i1 %.not876, label %263, label %264

263:                                              ; preds = %259, %252
  br label %264

264:                                              ; preds = %259, %263
  %.str.5.sink1019 = phi ptr [ @.str.5, %263 ], [ @.str.2, %259 ]
  store i32 %254, ptr %253, align 4, !tbaa !5
  %265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %266 = load i32, ptr @test_count, align 4, !tbaa !5
  %267 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = tail call ptr @s2n_strerror(i32 noundef %268, ptr noundef nonnull @.str.4) #10
  %270 = load i32, ptr %267, align 4, !tbaa !5
  %271 = tail call ptr @s2n_strerror_debug(i32 noundef %270, ptr noundef nonnull @.str.4) #10
  %272 = load i32, ptr %253, align 4, !tbaa !5
  %273 = tail call ptr @strerror(i32 noundef %272) #10
  %274 = load i32, ptr %253, align 4, !tbaa !5
  %275 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %265, ptr noundef nonnull %.str.5.sink1019, i32 noundef %266, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %269, ptr noundef %271, ptr noundef %273, i32 noundef %274) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

276:                                              ; preds = %247
  %277 = load i32, ptr @test_count, align 4, !tbaa !5
  %278 = add nsw i32 %277, 1
  store i32 %278, ptr @test_count, align 4, !tbaa !5
  %279 = tail call ptr @s2n_connection_new(i32 noundef 1) #10
  %280 = icmp eq ptr %279, null
  br i1 %280, label %281, label %305

281:                                              ; preds = %276
  %282 = tail call ptr @__errno_location() #11
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = tail call i32 @s2n_print_stacktrace(ptr noundef %284) #10
  %286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %287 = trunc nuw i8 %286 to i1
  br i1 %287, label %288, label %292

288:                                              ; preds = %281
  %289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %290 = tail call i32 @fileno(ptr noundef %289) #10
  %291 = tail call i32 @isatty(i32 noundef %290) #10
  %.not875 = icmp eq i32 %291, 0
  br i1 %.not875, label %292, label %293

292:                                              ; preds = %288, %281
  br label %293

293:                                              ; preds = %288, %292
  %.str.5.sink1030 = phi ptr [ @.str.5, %292 ], [ @.str.2, %288 ]
  store i32 %283, ptr %282, align 4, !tbaa !5
  %294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %295 = load i32, ptr @test_count, align 4, !tbaa !5
  %296 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = tail call ptr @s2n_strerror(i32 noundef %297, ptr noundef nonnull @.str.4) #10
  %299 = load i32, ptr %296, align 4, !tbaa !5
  %300 = tail call ptr @s2n_strerror_debug(i32 noundef %299, ptr noundef nonnull @.str.4) #10
  %301 = load i32, ptr %282, align 4, !tbaa !5
  %302 = tail call ptr @strerror(i32 noundef %301) #10
  %303 = load i32, ptr %282, align 4, !tbaa !5
  %304 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %294, ptr noundef nonnull %.str.5.sink1030, i32 noundef %295, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %298, ptr noundef %300, ptr noundef %302, i32 noundef %303) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

305:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %1) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %1, i8 0, i64 40, i1 false)
  %306 = load i32, ptr @test_count, align 4, !tbaa !5
  %307 = add nsw i32 %306, 1
  store i32 %307, ptr @test_count, align 4, !tbaa !5
  %308 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %1, i32 noundef 0) #10
  %309 = icmp eq i32 %308, -1
  br i1 %309, label %310, label %334

310:                                              ; preds = %305
  %311 = tail call ptr @__errno_location() #11
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %314 = call i32 @s2n_print_stacktrace(ptr noundef %313) #10
  %315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %316 = trunc nuw i8 %315 to i1
  br i1 %316, label %317, label %321

317:                                              ; preds = %310
  %318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %319 = call i32 @fileno(ptr noundef %318) #10
  %320 = call i32 @isatty(i32 noundef %319) #10
  %.not874 = icmp eq i32 %320, 0
  br i1 %.not874, label %321, label %322

321:                                              ; preds = %317, %310
  br label %322

322:                                              ; preds = %317, %321
  %.str.5.sink1041 = phi ptr [ @.str.5, %321 ], [ @.str.2, %317 ]
  store i32 %312, ptr %311, align 4, !tbaa !5
  %323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %324 = load i32, ptr @test_count, align 4, !tbaa !5
  %325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %326 = load i32, ptr %325, align 4, !tbaa !5
  %327 = call ptr @s2n_strerror(i32 noundef %326, ptr noundef nonnull @.str.4) #10
  %328 = load i32, ptr %325, align 4, !tbaa !5
  %329 = call ptr @s2n_strerror_debug(i32 noundef %328, ptr noundef nonnull @.str.4) #10
  %330 = load i32, ptr %311, align 4, !tbaa !5
  %331 = call ptr @strerror(i32 noundef %330) #10
  %332 = load i32, ptr %311, align 4, !tbaa !5
  %333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %323, ptr noundef nonnull %.str.5.sink1041, i32 noundef %324, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 53, ptr noundef %327, ptr noundef %329, ptr noundef %331, i32 noundef %332) #12
  call void @exit(i32 noundef 1) #13
  unreachable

334:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #10
  store ptr null, ptr %2, align 8, !tbaa !9
  %335 = load i32, ptr @test_count, align 4, !tbaa !5
  %336 = add nsw i32 %335, 1
  store i32 %336, ptr @test_count, align 4, !tbaa !5
  %337 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %279, ptr noundef nonnull %2) #10
  %338 = icmp eq i32 %337, -1
  br i1 %338, label %339, label %363

339:                                              ; preds = %334
  %340 = tail call ptr @__errno_location() #11
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %343 = call i32 @s2n_print_stacktrace(ptr noundef %342) #10
  %344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %345 = trunc nuw i8 %344 to i1
  br i1 %345, label %346, label %350

346:                                              ; preds = %339
  %347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %348 = call i32 @fileno(ptr noundef %347) #10
  %349 = call i32 @isatty(i32 noundef %348) #10
  %.not873 = icmp eq i32 %349, 0
  br i1 %.not873, label %350, label %351

350:                                              ; preds = %346, %339
  br label %351

351:                                              ; preds = %346, %350
  %.str.5.sink1052 = phi ptr [ @.str.5, %350 ], [ @.str.2, %346 ]
  store i32 %341, ptr %340, align 4, !tbaa !5
  %352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %353 = load i32, ptr @test_count, align 4, !tbaa !5
  %354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = call ptr @s2n_strerror(i32 noundef %355, ptr noundef nonnull @.str.4) #10
  %357 = load i32, ptr %354, align 4, !tbaa !5
  %358 = call ptr @s2n_strerror_debug(i32 noundef %357, ptr noundef nonnull @.str.4) #10
  %359 = load i32, ptr %340, align 4, !tbaa !5
  %360 = call ptr @strerror(i32 noundef %359) #10
  %361 = load i32, ptr %340, align 4, !tbaa !5
  %362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %352, ptr noundef nonnull %.str.5.sink1052, i32 noundef %353, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 56, ptr noundef %356, ptr noundef %358, ptr noundef %360, i32 noundef %361) #12
  call void @exit(i32 noundef 1) #13
  unreachable

363:                                              ; preds = %334
  %364 = load i32, ptr @test_count, align 4, !tbaa !5
  %365 = add nsw i32 %364, 1
  store i32 %365, ptr @test_count, align 4, !tbaa !5
  %366 = load ptr, ptr %2, align 8, !tbaa !9
  %367 = icmp eq ptr %366, null
  br i1 %367, label %368, label %392

368:                                              ; preds = %363
  %369 = tail call ptr @__errno_location() #11
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = call i32 @s2n_print_stacktrace(ptr noundef %371) #10
  %373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %374 = trunc nuw i8 %373 to i1
  br i1 %374, label %375, label %379

375:                                              ; preds = %368
  %376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %377 = call i32 @fileno(ptr noundef %376) #10
  %378 = call i32 @isatty(i32 noundef %377) #10
  %.not872 = icmp eq i32 %378, 0
  br i1 %.not872, label %379, label %380

379:                                              ; preds = %375, %368
  br label %380

380:                                              ; preds = %375, %379
  %.str.5.sink1063 = phi ptr [ @.str.5, %379 ], [ @.str.2, %375 ]
  store i32 %370, ptr %369, align 4, !tbaa !5
  %381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %382 = load i32, ptr @test_count, align 4, !tbaa !5
  %383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %384 = load i32, ptr %383, align 4, !tbaa !5
  %385 = call ptr @s2n_strerror(i32 noundef %384, ptr noundef nonnull @.str.4) #10
  %386 = load i32, ptr %383, align 4, !tbaa !5
  %387 = call ptr @s2n_strerror_debug(i32 noundef %386, ptr noundef nonnull @.str.4) #10
  %388 = load i32, ptr %369, align 4, !tbaa !5
  %389 = call ptr @strerror(i32 noundef %388) #10
  %390 = load i32, ptr %369, align 4, !tbaa !5
  %391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %381, ptr noundef nonnull %.str.5.sink1063, i32 noundef %382, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %385, ptr noundef %387, ptr noundef %389, i32 noundef %390) #12
  call void @exit(i32 noundef 1) #13
  unreachable

392:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #10
  store ptr null, ptr %3, align 8, !tbaa !9
  %393 = add nsw i32 %364, 2
  store i32 %393, ptr @test_count, align 4, !tbaa !5
  %394 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %279, ptr noundef nonnull %3) #10
  %395 = icmp eq i32 %394, -1
  br i1 %395, label %396, label %420

396:                                              ; preds = %392
  %397 = tail call ptr @__errno_location() #11
  %398 = load i32, ptr %397, align 4, !tbaa !5
  %399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %400 = call i32 @s2n_print_stacktrace(ptr noundef %399) #10
  %401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %402 = trunc nuw i8 %401 to i1
  br i1 %402, label %403, label %407

403:                                              ; preds = %396
  %404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %405 = call i32 @fileno(ptr noundef %404) #10
  %406 = call i32 @isatty(i32 noundef %405) #10
  %.not871 = icmp eq i32 %406, 0
  br i1 %.not871, label %407, label %408

407:                                              ; preds = %403, %396
  br label %408

408:                                              ; preds = %403, %407
  %.str.5.sink1074 = phi ptr [ @.str.5, %407 ], [ @.str.2, %403 ]
  store i32 %398, ptr %397, align 4, !tbaa !5
  %409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %410 = load i32, ptr @test_count, align 4, !tbaa !5
  %411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %412 = load i32, ptr %411, align 4, !tbaa !5
  %413 = call ptr @s2n_strerror(i32 noundef %412, ptr noundef nonnull @.str.4) #10
  %414 = load i32, ptr %411, align 4, !tbaa !5
  %415 = call ptr @s2n_strerror_debug(i32 noundef %414, ptr noundef nonnull @.str.4) #10
  %416 = load i32, ptr %397, align 4, !tbaa !5
  %417 = call ptr @strerror(i32 noundef %416) #10
  %418 = load i32, ptr %397, align 4, !tbaa !5
  %419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %409, ptr noundef nonnull %.str.5.sink1074, i32 noundef %410, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %413, ptr noundef %415, ptr noundef %417, i32 noundef %418) #12
  call void @exit(i32 noundef 1) #13
  unreachable

420:                                              ; preds = %392
  %421 = load i32, ptr @test_count, align 4, !tbaa !5
  %422 = add nsw i32 %421, 1
  store i32 %422, ptr @test_count, align 4, !tbaa !5
  %423 = load ptr, ptr %3, align 8, !tbaa !9
  %424 = icmp eq ptr %423, null
  br i1 %424, label %425, label %449

425:                                              ; preds = %420
  %426 = tail call ptr @__errno_location() #11
  %427 = load i32, ptr %426, align 4, !tbaa !5
  %428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %429 = call i32 @s2n_print_stacktrace(ptr noundef %428) #10
  %430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %431 = trunc nuw i8 %430 to i1
  br i1 %431, label %432, label %436

432:                                              ; preds = %425
  %433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %434 = call i32 @fileno(ptr noundef %433) #10
  %435 = call i32 @isatty(i32 noundef %434) #10
  %.not870 = icmp eq i32 %435, 0
  br i1 %.not870, label %436, label %437

436:                                              ; preds = %432, %425
  br label %437

437:                                              ; preds = %432, %436
  %.str.5.sink1085 = phi ptr [ @.str.5, %436 ], [ @.str.2, %432 ]
  store i32 %427, ptr %426, align 4, !tbaa !5
  %438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %439 = load i32, ptr @test_count, align 4, !tbaa !5
  %440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %441 = load i32, ptr %440, align 4, !tbaa !5
  %442 = call ptr @s2n_strerror(i32 noundef %441, ptr noundef nonnull @.str.4) #10
  %443 = load i32, ptr %440, align 4, !tbaa !5
  %444 = call ptr @s2n_strerror_debug(i32 noundef %443, ptr noundef nonnull @.str.4) #10
  %445 = load i32, ptr %426, align 4, !tbaa !5
  %446 = call ptr @strerror(i32 noundef %445) #10
  %447 = load i32, ptr %426, align 4, !tbaa !5
  %448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %438, ptr noundef nonnull %.str.5.sink1085, i32 noundef %439, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %442, ptr noundef %444, ptr noundef %446, i32 noundef %447) #12
  call void @exit(i32 noundef 1) #13
  unreachable

449:                                              ; preds = %420
  %450 = add nsw i32 %421, 2
  store i32 %450, ptr @test_count, align 4, !tbaa !5
  %451 = icmp eq ptr %423, @kem_preferences_null
  br i1 %451, label %476, label %452

452:                                              ; preds = %449
  %453 = tail call ptr @__errno_location() #11
  %454 = load i32, ptr %453, align 4, !tbaa !5
  %455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %456 = call i32 @s2n_print_stacktrace(ptr noundef %455) #10
  %457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %458 = trunc nuw i8 %457 to i1
  br i1 %458, label %459, label %463

459:                                              ; preds = %452
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = call i32 @fileno(ptr noundef %460) #10
  %462 = call i32 @isatty(i32 noundef %461) #10
  %.not659 = icmp eq i32 %462, 0
  br i1 %.not659, label %463, label %464

463:                                              ; preds = %459, %452
  br label %464

464:                                              ; preds = %459, %463
  %.str.5.sink1096 = phi ptr [ @.str.5, %463 ], [ @.str.2, %459 ]
  store i32 %454, ptr %453, align 4, !tbaa !5
  %465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %466 = load i32, ptr @test_count, align 4, !tbaa !5
  %467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %468 = load i32, ptr %467, align 4, !tbaa !5
  %469 = call ptr @s2n_strerror(i32 noundef %468, ptr noundef nonnull @.str.4) #10
  %470 = load i32, ptr %467, align 4, !tbaa !5
  %471 = call ptr @s2n_strerror_debug(i32 noundef %470, ptr noundef nonnull @.str.4) #10
  %472 = load i32, ptr %453, align 4, !tbaa !5
  %473 = call ptr @strerror(i32 noundef %472) #10
  %474 = load i32, ptr %453, align 4, !tbaa !5
  %475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %465, ptr noundef nonnull %.str.5.sink1096, i32 noundef %466, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %469, ptr noundef %471, ptr noundef %473, i32 noundef %474) #12
  call void @exit(i32 noundef 1) #13
  unreachable

476:                                              ; preds = %449
  %477 = add nsw i32 %421, 3
  store i32 %477, ptr @test_count, align 4, !tbaa !5
  %478 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_supported_groups_extension, i64 8), align 8, !tbaa !18
  %479 = call i32 %478(ptr noundef nonnull %279, ptr noundef nonnull %1) #10
  %480 = icmp eq i32 %479, -1
  br i1 %480, label %481, label %505

481:                                              ; preds = %476
  %482 = tail call ptr @__errno_location() #11
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %485 = call i32 @s2n_print_stacktrace(ptr noundef %484) #10
  %486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %487 = trunc nuw i8 %486 to i1
  br i1 %487, label %488, label %492

488:                                              ; preds = %481
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = call i32 @fileno(ptr noundef %489) #10
  %491 = call i32 @isatty(i32 noundef %490) #10
  %.not869 = icmp eq i32 %491, 0
  br i1 %.not869, label %492, label %493

492:                                              ; preds = %488, %481
  br label %493

493:                                              ; preds = %488, %492
  %.str.5.sink1107 = phi ptr [ @.str.5, %492 ], [ @.str.2, %488 ]
  store i32 %483, ptr %482, align 4, !tbaa !5
  %494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %495 = load i32, ptr @test_count, align 4, !tbaa !5
  %496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call ptr @s2n_strerror(i32 noundef %497, ptr noundef nonnull @.str.4) #10
  %499 = load i32, ptr %496, align 4, !tbaa !5
  %500 = call ptr @s2n_strerror_debug(i32 noundef %499, ptr noundef nonnull @.str.4) #10
  %501 = load i32, ptr %482, align 4, !tbaa !5
  %502 = call ptr @strerror(i32 noundef %501) #10
  %503 = load i32, ptr %482, align 4, !tbaa !5
  %504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %494, ptr noundef nonnull %.str.5.sink1107, i32 noundef %495, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %498, ptr noundef %500, ptr noundef %502, i32 noundef %503) #12
  call void @exit(i32 noundef 1) #13
  unreachable

505:                                              ; preds = %476
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %4) #10
  store i16 0, ptr %4, align 2, !tbaa !19
  %506 = load i32, ptr @test_count, align 4, !tbaa !5
  %507 = add nsw i32 %506, 1
  store i32 %507, ptr @test_count, align 4, !tbaa !5
  %508 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %1, ptr noundef nonnull %4) #10
  %509 = icmp eq i32 %508, -1
  br i1 %509, label %510, label %534

510:                                              ; preds = %505
  %511 = tail call ptr @__errno_location() #11
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = call i32 @s2n_print_stacktrace(ptr noundef %513) #10
  %515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %516 = trunc nuw i8 %515 to i1
  br i1 %516, label %517, label %521

517:                                              ; preds = %510
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = call i32 @fileno(ptr noundef %518) #10
  %520 = call i32 @isatty(i32 noundef %519) #10
  %.not868 = icmp eq i32 %520, 0
  br i1 %.not868, label %521, label %522

521:                                              ; preds = %517, %510
  br label %522

522:                                              ; preds = %517, %521
  %.str.5.sink1118 = phi ptr [ @.str.5, %521 ], [ @.str.2, %517 ]
  store i32 %512, ptr %511, align 4, !tbaa !5
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = load i32, ptr @test_count, align 4, !tbaa !5
  %525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror(i32 noundef %526, ptr noundef nonnull @.str.4) #10
  %528 = load i32, ptr %525, align 4, !tbaa !5
  %529 = call ptr @s2n_strerror_debug(i32 noundef %528, ptr noundef nonnull @.str.4) #10
  %530 = load i32, ptr %511, align 4, !tbaa !5
  %531 = call ptr @strerror(i32 noundef %530) #10
  %532 = load i32, ptr %511, align 4, !tbaa !5
  %533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %523, ptr noundef nonnull %.str.5.sink1118, i32 noundef %524, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %527, ptr noundef %529, ptr noundef %531, i32 noundef %532) #12
  call void @exit(i32 noundef 1) #13
  unreachable

534:                                              ; preds = %505
  %535 = load i32, ptr @test_count, align 4, !tbaa !5
  %536 = add nsw i32 %535, 1
  store i32 %536, ptr @test_count, align 4, !tbaa !5
  %537 = load i16, ptr %4, align 2, !tbaa !19
  %538 = zext i16 %537 to i32
  %539 = getelementptr inbounds i8, ptr %1, i64 28
  %540 = load i32, ptr %539, align 4, !tbaa !20
  %541 = getelementptr inbounds i8, ptr %1, i64 24
  %542 = load i32, ptr %541, align 8, !tbaa !23
  %543 = sub i32 %540, %542
  %544 = icmp eq i32 %543, %538
  br i1 %544, label %569, label %545

545:                                              ; preds = %534
  %546 = tail call ptr @__errno_location() #11
  %547 = load i32, ptr %546, align 4, !tbaa !5
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = call i32 @s2n_print_stacktrace(ptr noundef %548) #10
  %550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %551 = trunc nuw i8 %550 to i1
  br i1 %551, label %552, label %556

552:                                              ; preds = %545
  %553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %554 = call i32 @fileno(ptr noundef %553) #10
  %555 = call i32 @isatty(i32 noundef %554) #10
  %.not660 = icmp eq i32 %555, 0
  br i1 %.not660, label %556, label %557

556:                                              ; preds = %552, %545
  br label %557

557:                                              ; preds = %552, %556
  %.str.5.sink1129 = phi ptr [ @.str.5, %556 ], [ @.str.2, %552 ]
  store i32 %547, ptr %546, 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 nonnull @.str.4) #10
  %563 = load i32, ptr %560, align 4, !tbaa !5
  %564 = call ptr @s2n_strerror_debug(i32 noundef %563, ptr noundef nonnull @.str.4) #10
  %565 = load i32, ptr %546, align 4, !tbaa !5
  %566 = call ptr @strerror(i32 noundef %565) #10
  %567 = load i32, ptr %546, align 4, !tbaa !5
  %568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %558, ptr noundef nonnull %.str.5.sink1129, i32 noundef %559, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %562, ptr noundef %564, ptr noundef %566, i32 noundef %567) #12
  call void @exit(i32 noundef 1) #13
  unreachable

569:                                              ; preds = %534
  %570 = add nsw i32 %535, 2
  store i32 %570, ptr @test_count, align 4, !tbaa !5
  %571 = zext i16 %537 to i64
  %572 = load ptr, ptr %2, align 8, !tbaa !9
  %573 = load i8, ptr %572, align 8, !tbaa !24
  %574 = zext i8 %573 to i64
  %575 = shl nuw nsw i64 %574, 1
  %576 = icmp eq i64 %575, %571
  br i1 %576, label %601, label %577

577:                                              ; preds = %569
  %578 = tail call ptr @__errno_location() #11
  %579 = load i32, ptr %578, align 4, !tbaa !5
  %580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %581 = call i32 @s2n_print_stacktrace(ptr noundef %580) #10
  %582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %583 = trunc nuw i8 %582 to i1
  br i1 %583, label %584, label %588

584:                                              ; preds = %577
  %585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %586 = call i32 @fileno(ptr noundef %585) #10
  %587 = call i32 @isatty(i32 noundef %586) #10
  %.not661 = icmp eq i32 %587, 0
  br i1 %.not661, label %588, label %589

588:                                              ; preds = %584, %577
  br label %589

589:                                              ; preds = %584, %588
  %.str.5.sink1140 = phi ptr [ @.str.5, %588 ], [ @.str.2, %584 ]
  store i32 %579, ptr %578, align 4, !tbaa !5
  %590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %591 = load i32, ptr @test_count, align 4, !tbaa !5
  %592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %593 = load i32, ptr %592, align 4, !tbaa !5
  %594 = call ptr @s2n_strerror(i32 noundef %593, ptr noundef nonnull @.str.4) #10
  %595 = load i32, ptr %592, align 4, !tbaa !5
  %596 = call ptr @s2n_strerror_debug(i32 noundef %595, ptr noundef nonnull @.str.4) #10
  %597 = load i32, ptr %578, align 4, !tbaa !5
  %598 = call ptr @strerror(i32 noundef %597) #10
  %599 = load i32, ptr %578, align 4, !tbaa !5
  %600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %590, ptr noundef nonnull %.str.5.sink1140, i32 noundef %591, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %594, ptr noundef %596, ptr noundef %598, i32 noundef %599) #12
  call void @exit(i32 noundef 1) #13
  unreachable

601:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %5) #10
  store i16 0, ptr %5, align 2, !tbaa !19
  %.not925 = icmp eq i8 %573, 0
  br i1 %.not925, label %._crit_edge, label %.lr.ph

602:                                              ; preds = %639
  %603 = add nuw nsw i64 %.0624907, 1
  %604 = load i8, ptr %643, align 8, !tbaa !24
  %605 = zext i8 %604 to i64
  %606 = icmp ult i64 %603, %605
  br i1 %606, label %.lr.ph, label %._crit_edge, !llvm.loop !26

._crit_edge:                                      ; preds = %602, %601
  %607 = phi i32 [ %570, %601 ], [ %641, %602 ]
  %608 = add nsw i32 %607, 1
  store i32 %608, ptr @test_count, align 4, !tbaa !5
  %609 = call i32 @s2n_stuffer_free(ptr noundef nonnull %1) #10
  %610 = icmp eq i32 %609, -1
  br i1 %610, label %674, label %698

.lr.ph:                                           ; preds = %601, %602
  %611 = phi i32 [ %641, %602 ], [ %570, %601 ]
  %.0624907 = phi i64 [ %603, %602 ], [ 0, %601 ]
  %612 = add nsw i32 %611, 1
  store i32 %612, ptr @test_count, align 4, !tbaa !5
  %613 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %1, ptr noundef nonnull %5) #10
  %614 = icmp eq i32 %613, -1
  br i1 %614, label %615, label %639

615:                                              ; preds = %.lr.ph
  %616 = tail call ptr @__errno_location() #11
  %617 = load i32, ptr %616, align 4, !tbaa !5
  %618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %619 = call i32 @s2n_print_stacktrace(ptr noundef %618) #10
  %620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %621 = trunc nuw i8 %620 to i1
  br i1 %621, label %622, label %626

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

626:                                              ; preds = %622, %615
  br label %627

627:                                              ; preds = %622, %626
  %.str.5.sink1151 = phi ptr [ @.str.5, %626 ], [ @.str.2, %622 ]
  store i32 %617, ptr %616, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %631 = load i32, ptr %630, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror(i32 noundef %631, ptr noundef nonnull @.str.4) #10
  %633 = load i32, ptr %630, align 4, !tbaa !5
  %634 = call ptr @s2n_strerror_debug(i32 noundef %633, ptr noundef nonnull @.str.4) #10
  %635 = load i32, ptr %616, align 4, !tbaa !5
  %636 = call ptr @strerror(i32 noundef %635) #10
  %637 = load i32, ptr %616, align 4, !tbaa !5
  %638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %628, ptr noundef nonnull %.str.5.sink1151, i32 noundef %629, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %632, ptr noundef %634, ptr noundef %636, i32 noundef %637) #12
  call void @exit(i32 noundef 1) #13
  unreachable

639:                                              ; preds = %.lr.ph
  %640 = load i32, ptr @test_count, align 4, !tbaa !5
  %641 = add nsw i32 %640, 1
  store i32 %641, ptr @test_count, align 4, !tbaa !5
  %642 = load i16, ptr %5, align 2, !tbaa !19
  %643 = load ptr, ptr %2, align 8, !tbaa !9
  %644 = getelementptr inbounds i8, ptr %643, i64 8
  %645 = load ptr, ptr %644, align 8, !tbaa !28
  %646 = getelementptr inbounds ptr, ptr %645, i64 %.0624907
  %647 = load ptr, ptr %646, align 8, !tbaa !9
  %648 = load i16, ptr %647, align 8, !tbaa !29
  %649 = icmp eq i16 %642, %648
  br i1 %649, label %602, label %650

650:                                              ; preds = %639
  %651 = tail call ptr @__errno_location() #11
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %654 = call i32 @s2n_print_stacktrace(ptr noundef %653) #10
  %655 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %656 = trunc nuw i8 %655 to i1
  br i1 %656, label %657, label %661

657:                                              ; preds = %650
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = call i32 @fileno(ptr noundef %658) #10
  %660 = call i32 @isatty(i32 noundef %659) #10
  %.not866 = icmp eq i32 %660, 0
  br i1 %.not866, label %661, label %662

661:                                              ; preds = %657, %650
  br label %662

662:                                              ; preds = %657, %661
  %.str.5.sink1162 = phi ptr [ @.str.5, %661 ], [ @.str.2, %657 ]
  store i32 %652, ptr %651, align 4, !tbaa !5
  %663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %664 = load i32, ptr @test_count, align 4, !tbaa !5
  %665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %666 = load i32, ptr %665, align 4, !tbaa !5
  %667 = call ptr @s2n_strerror(i32 noundef %666, ptr noundef nonnull @.str.4) #10
  %668 = load i32, ptr %665, align 4, !tbaa !5
  %669 = call ptr @s2n_strerror_debug(i32 noundef %668, ptr noundef nonnull @.str.4) #10
  %670 = load i32, ptr %651, align 4, !tbaa !5
  %671 = call ptr @strerror(i32 noundef %670) #10
  %672 = load i32, ptr %651, align 4, !tbaa !5
  %673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %663, ptr noundef nonnull %.str.5.sink1162, i32 noundef %664, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %667, ptr noundef %669, ptr noundef %671, i32 noundef %672) #12
  call void @exit(i32 noundef 1) #13
  unreachable

674:                                              ; preds = %._crit_edge
  %675 = tail call ptr @__errno_location() #11
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %678 = call i32 @s2n_print_stacktrace(ptr noundef %677) #10
  %679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %680 = trunc nuw i8 %679 to i1
  br i1 %680, label %681, label %685

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

685:                                              ; preds = %681, %674
  br label %686

686:                                              ; preds = %681, %685
  %.str.5.sink1173 = phi ptr [ @.str.5, %685 ], [ @.str.2, %681 ]
  store i32 %676, ptr %675, align 4, !tbaa !5
  %687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %688 = load i32, ptr @test_count, align 4, !tbaa !5
  %689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %690 = load i32, ptr %689, align 4, !tbaa !5
  %691 = call ptr @s2n_strerror(i32 noundef %690, ptr noundef nonnull @.str.4) #10
  %692 = load i32, ptr %689, align 4, !tbaa !5
  %693 = call ptr @s2n_strerror_debug(i32 noundef %692, ptr noundef nonnull @.str.4) #10
  %694 = load i32, ptr %675, align 4, !tbaa !5
  %695 = call ptr @strerror(i32 noundef %694) #10
  %696 = load i32, ptr %675, align 4, !tbaa !5
  %697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %687, ptr noundef nonnull %.str.5.sink1173, i32 noundef %688, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %691, ptr noundef %693, ptr noundef %695, i32 noundef %696) #12
  call void @exit(i32 noundef 1) #13
  unreachable

698:                                              ; preds = %._crit_edge
  %699 = load i32, ptr @test_count, align 4, !tbaa !5
  %700 = add nsw i32 %699, 1
  store i32 %700, ptr @test_count, align 4, !tbaa !5
  %701 = call i32 @s2n_connection_free(ptr noundef nonnull %279) #10
  %702 = icmp eq i32 %701, -1
  br i1 %702, label %703, label %727

703:                                              ; preds = %698
  %704 = tail call ptr @__errno_location() #11
  %705 = load i32, ptr %704, align 4, !tbaa !5
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = call i32 @s2n_print_stacktrace(ptr noundef %706) #10
  %708 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %709 = trunc nuw i8 %708 to i1
  br i1 %709, label %710, label %714

710:                                              ; preds = %703
  %711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %712 = call i32 @fileno(ptr noundef %711) #10
  %713 = call i32 @isatty(i32 noundef %712) #10
  %.not864 = icmp eq i32 %713, 0
  br i1 %.not864, label %714, label %715

714:                                              ; preds = %710, %703
  br label %715

715:                                              ; preds = %710, %714
  %.str.5.sink1184 = phi ptr [ @.str.5, %714 ], [ @.str.2, %710 ]
  store i32 %705, ptr %704, align 4, !tbaa !5
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = load i32, ptr @test_count, align 4, !tbaa !5
  %718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = call ptr @s2n_strerror(i32 noundef %719, ptr noundef nonnull @.str.4) #10
  %721 = load i32, ptr %718, align 4, !tbaa !5
  %722 = call ptr @s2n_strerror_debug(i32 noundef %721, ptr noundef nonnull @.str.4) #10
  %723 = load i32, ptr %704, align 4, !tbaa !5
  %724 = call ptr @strerror(i32 noundef %723) #10
  %725 = load i32, ptr %704, align 4, !tbaa !5
  %726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %716, ptr noundef nonnull %.str.5.sink1184, i32 noundef %717, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %720, ptr noundef %722, ptr noundef %724, i32 noundef %725) #12
  call void @exit(i32 noundef 1) #13
  unreachable

727:                                              ; preds = %698
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %1) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  %728 = getelementptr inbounds i8, ptr %6, i64 16
  %729 = load i8, ptr getelementptr inbounds (i8, ptr @kem_preferences_all, i64 16), align 8, !tbaa !31
  store i8 %729, ptr %728, align 8, !tbaa !31
  %730 = getelementptr inbounds i8, ptr %6, i64 24
  %731 = load ptr, ptr getelementptr inbounds (i8, ptr @kem_preferences_all, i64 24), align 8, !tbaa !33
  store ptr %731, ptr %730, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %7) #10
  store i8 30, ptr %7, align 8, !tbaa !34
  %732 = getelementptr inbounds i8, ptr %7, i64 8
  store ptr @cipher_preferences_test_all_tls13, ptr %732, align 8, !tbaa !36
  %733 = getelementptr inbounds i8, ptr %7, i64 16
  store ptr %6, ptr %733, align 8, !tbaa !37
  %734 = getelementptr inbounds i8, ptr %7, i64 24
  store ptr @s2n_signature_preferences_20200207, ptr %734, align 8, !tbaa !38
  %735 = getelementptr inbounds i8, ptr %7, i64 32
  store ptr null, ptr %735, align 8, !tbaa !39
  %736 = getelementptr inbounds i8, ptr %7, i64 40
  store ptr @s2n_ecc_preferences_20200310, ptr %736, align 8, !tbaa !40
  %737 = getelementptr inbounds i8, ptr %7, i64 48
  store ptr null, ptr %737, align 8, !tbaa !41
  %738 = getelementptr inbounds i8, ptr %7, i64 56
  store i8 0, ptr %738, align 8, !tbaa !42
  %739 = getelementptr inbounds i8, ptr %7, i64 57
  store i16 0, ptr %739, align 1
  %740 = load i32, ptr @test_count, align 4, !tbaa !5
  %741 = add nsw i32 %740, 1
  store i32 %741, ptr @test_count, align 4, !tbaa !5
  %742 = call i32 (...) @s2n_enable_tls13_in_test() #10
  %743 = icmp eq i32 %742, -1
  br i1 %743, label %744, label %768

744:                                              ; preds = %727
  %745 = tail call ptr @__errno_location() #11
  %746 = load i32, ptr %745, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = call i32 @s2n_print_stacktrace(ptr noundef %747) #10
  %749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %750 = trunc nuw i8 %749 to i1
  br i1 %750, label %751, label %755

751:                                              ; preds = %744
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = call i32 @fileno(ptr noundef %752) #10
  %754 = call i32 @isatty(i32 noundef %753) #10
  %.not863 = icmp eq i32 %754, 0
  br i1 %.not863, label %755, label %756

755:                                              ; preds = %751, %744
  br label %756

756:                                              ; preds = %751, %755
  %.str.5.sink1195 = phi ptr [ @.str.5, %755 ], [ @.str.2, %751 ]
  store i32 %746, ptr %745, align 4, !tbaa !5
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = load i32, ptr @test_count, align 4, !tbaa !5
  %759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %760 = load i32, ptr %759, align 4, !tbaa !5
  %761 = call ptr @s2n_strerror(i32 noundef %760, ptr noundef nonnull @.str.4) #10
  %762 = load i32, ptr %759, align 4, !tbaa !5
  %763 = call ptr @s2n_strerror_debug(i32 noundef %762, ptr noundef nonnull @.str.4) #10
  %764 = load i32, ptr %745, align 4, !tbaa !5
  %765 = call ptr @strerror(i32 noundef %764) #10
  %766 = load i32, ptr %745, align 4, !tbaa !5
  %767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %757, ptr noundef nonnull %.str.5.sink1195, i32 noundef %758, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %761, ptr noundef %763, ptr noundef %765, i32 noundef %766) #12
  call void @exit(i32 noundef 1) #13
  unreachable

768:                                              ; preds = %727
  %769 = load i32, ptr @test_count, align 4, !tbaa !5
  %770 = add nsw i32 %769, 1
  store i32 %770, ptr @test_count, align 4, !tbaa !5
  %771 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %772 = icmp eq ptr %771, null
  br i1 %772, label %773, label %797

773:                                              ; preds = %768
  %774 = tail call ptr @__errno_location() #11
  %775 = load i32, ptr %774, align 4, !tbaa !5
  %776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %777 = call i32 @s2n_print_stacktrace(ptr noundef %776) #10
  %778 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %779 = trunc nuw i8 %778 to i1
  br i1 %779, label %780, label %784

780:                                              ; preds = %773
  %781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %782 = call i32 @fileno(ptr noundef %781) #10
  %783 = call i32 @isatty(i32 noundef %782) #10
  %.not862 = icmp eq i32 %783, 0
  br i1 %.not862, label %784, label %785

784:                                              ; preds = %780, %773
  br label %785

785:                                              ; preds = %780, %784
  %.str.5.sink1206 = phi ptr [ @.str.5, %784 ], [ @.str.2, %780 ]
  store i32 %775, ptr %774, align 4, !tbaa !5
  %786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %787 = load i32, ptr @test_count, align 4, !tbaa !5
  %788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %789 = load i32, ptr %788, align 4, !tbaa !5
  %790 = call ptr @s2n_strerror(i32 noundef %789, ptr noundef nonnull @.str.4) #10
  %791 = load i32, ptr %788, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror_debug(i32 noundef %791, ptr noundef nonnull @.str.4) #10
  %793 = load i32, ptr %774, align 4, !tbaa !5
  %794 = call ptr @strerror(i32 noundef %793) #10
  %795 = load i32, ptr %774, align 4, !tbaa !5
  %796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %786, ptr noundef nonnull %.str.5.sink1206, i32 noundef %787, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %790, ptr noundef %792, ptr noundef %794, i32 noundef %795) #12
  call void @exit(i32 noundef 1) #13
  unreachable

797:                                              ; preds = %768
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, i8 0, i64 40, i1 false)
  %798 = load i32, ptr @test_count, align 4, !tbaa !5
  %799 = add nsw i32 %798, 1
  store i32 %799, ptr @test_count, align 4, !tbaa !5
  %800 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %8, i32 noundef 0) #10
  %801 = icmp eq i32 %800, -1
  br i1 %801, label %802, label %826

802:                                              ; preds = %797
  %803 = tail call ptr @__errno_location() #11
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = call i32 @s2n_print_stacktrace(ptr noundef %805) #10
  %807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %808 = trunc nuw i8 %807 to i1
  br i1 %808, label %809, label %813

809:                                              ; preds = %802
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = call i32 @fileno(ptr noundef %810) #10
  %812 = call i32 @isatty(i32 noundef %811) #10
  %.not861 = icmp eq i32 %812, 0
  br i1 %.not861, label %813, label %814

813:                                              ; preds = %809, %802
  br label %814

814:                                              ; preds = %809, %813
  %.str.5.sink1217 = phi ptr [ @.str.5, %813 ], [ @.str.2, %809 ]
  store i32 %804, ptr %803, align 4, !tbaa !5
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = load i32, ptr @test_count, align 4, !tbaa !5
  %817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %818 = load i32, ptr %817, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror(i32 noundef %818, ptr noundef nonnull @.str.4) #10
  %820 = load i32, ptr %817, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror_debug(i32 noundef %820, ptr noundef nonnull @.str.4) #10
  %822 = load i32, ptr %803, align 4, !tbaa !5
  %823 = call ptr @strerror(i32 noundef %822) #10
  %824 = load i32, ptr %803, align 4, !tbaa !5
  %825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %815, ptr noundef nonnull %.str.5.sink1217, i32 noundef %816, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %819, ptr noundef %821, ptr noundef %823, i32 noundef %824) #12
  call void @exit(i32 noundef 1) #13
  unreachable

826:                                              ; preds = %797
  %827 = getelementptr inbounds i8, ptr %771, i64 16
  store ptr %7, ptr %827, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #10
  store ptr null, ptr %9, align 8, !tbaa !9
  %828 = load i32, ptr @test_count, align 4, !tbaa !5
  %829 = add nsw i32 %828, 1
  store i32 %829, ptr @test_count, align 4, !tbaa !5
  %830 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %771, ptr noundef nonnull %9) #10
  %831 = icmp eq i32 %830, -1
  br i1 %831, label %832, label %856

832:                                              ; preds = %826
  %833 = tail call ptr @__errno_location() #11
  %834 = load i32, ptr %833, align 4, !tbaa !5
  %835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %836 = call i32 @s2n_print_stacktrace(ptr noundef %835) #10
  %837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %838 = trunc nuw i8 %837 to i1
  br i1 %838, label %839, label %843

839:                                              ; preds = %832
  %840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %841 = call i32 @fileno(ptr noundef %840) #10
  %842 = call i32 @isatty(i32 noundef %841) #10
  %.not860 = icmp eq i32 %842, 0
  br i1 %.not860, label %843, label %844

843:                                              ; preds = %839, %832
  br label %844

844:                                              ; preds = %839, %843
  %.str.5.sink1228 = phi ptr [ @.str.5, %843 ], [ @.str.2, %839 ]
  store i32 %834, ptr %833, 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 nonnull @.str.4) #10
  %850 = load i32, ptr %847, align 4, !tbaa !5
  %851 = call ptr @s2n_strerror_debug(i32 noundef %850, ptr noundef nonnull @.str.4) #10
  %852 = load i32, ptr %833, align 4, !tbaa !5
  %853 = call ptr @strerror(i32 noundef %852) #10
  %854 = load i32, ptr %833, align 4, !tbaa !5
  %855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %845, ptr noundef nonnull %.str.5.sink1228, i32 noundef %846, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %849, ptr noundef %851, ptr noundef %853, i32 noundef %854) #12
  call void @exit(i32 noundef 1) #13
  unreachable

856:                                              ; preds = %826
  %857 = load i32, ptr @test_count, align 4, !tbaa !5
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr @test_count, align 4, !tbaa !5
  %859 = load ptr, ptr %9, align 8, !tbaa !9
  %860 = icmp eq ptr %859, null
  br i1 %860, label %861, label %885

861:                                              ; preds = %856
  %862 = tail call ptr @__errno_location() #11
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %865 = call i32 @s2n_print_stacktrace(ptr noundef %864) #10
  %866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %867 = trunc nuw i8 %866 to i1
  br i1 %867, label %868, label %872

868:                                              ; preds = %861
  %869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %870 = call i32 @fileno(ptr noundef %869) #10
  %871 = call i32 @isatty(i32 noundef %870) #10
  %.not859 = icmp eq i32 %871, 0
  br i1 %.not859, label %872, label %873

872:                                              ; preds = %868, %861
  br label %873

873:                                              ; preds = %868, %872
  %.str.5.sink1239 = phi ptr [ @.str.5, %872 ], [ @.str.2, %868 ]
  store i32 %863, ptr %862, align 4, !tbaa !5
  %874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %875 = load i32, ptr @test_count, align 4, !tbaa !5
  %876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = call ptr @s2n_strerror(i32 noundef %877, ptr noundef nonnull @.str.4) #10
  %879 = load i32, ptr %876, align 4, !tbaa !5
  %880 = call ptr @s2n_strerror_debug(i32 noundef %879, ptr noundef nonnull @.str.4) #10
  %881 = load i32, ptr %862, align 4, !tbaa !5
  %882 = call ptr @strerror(i32 noundef %881) #10
  %883 = load i32, ptr %862, align 4, !tbaa !5
  %884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %874, ptr noundef nonnull %.str.5.sink1239, i32 noundef %875, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %878, ptr noundef %880, ptr noundef %882, i32 noundef %883) #12
  call void @exit(i32 noundef 1) #13
  unreachable

885:                                              ; preds = %856
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #10
  store ptr null, ptr %10, align 8, !tbaa !9
  %886 = add nsw i32 %857, 2
  store i32 %886, ptr @test_count, align 4, !tbaa !5
  %887 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %771, ptr noundef nonnull %10) #10
  %888 = icmp eq i32 %887, -1
  br i1 %888, label %889, label %913

889:                                              ; preds = %885
  %890 = tail call ptr @__errno_location() #11
  %891 = load i32, ptr %890, align 4, !tbaa !5
  %892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %893 = call i32 @s2n_print_stacktrace(ptr noundef %892) #10
  %894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %895 = trunc nuw i8 %894 to i1
  br i1 %895, label %896, label %900

896:                                              ; preds = %889
  %897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %898 = call i32 @fileno(ptr noundef %897) #10
  %899 = call i32 @isatty(i32 noundef %898) #10
  %.not858 = icmp eq i32 %899, 0
  br i1 %.not858, label %900, label %901

900:                                              ; preds = %896, %889
  br label %901

901:                                              ; preds = %896, %900
  %.str.5.sink1250 = phi ptr [ @.str.5, %900 ], [ @.str.2, %896 ]
  store i32 %891, ptr %890, align 4, !tbaa !5
  %902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %903 = load i32, ptr @test_count, align 4, !tbaa !5
  %904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %905 = load i32, ptr %904, align 4, !tbaa !5
  %906 = call ptr @s2n_strerror(i32 noundef %905, ptr noundef nonnull @.str.4) #10
  %907 = load i32, ptr %904, align 4, !tbaa !5
  %908 = call ptr @s2n_strerror_debug(i32 noundef %907, ptr noundef nonnull @.str.4) #10
  %909 = load i32, ptr %890, align 4, !tbaa !5
  %910 = call ptr @strerror(i32 noundef %909) #10
  %911 = load i32, ptr %890, align 4, !tbaa !5
  %912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %902, ptr noundef nonnull %.str.5.sink1250, i32 noundef %903, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %906, ptr noundef %908, ptr noundef %910, i32 noundef %911) #12
  call void @exit(i32 noundef 1) #13
  unreachable

913:                                              ; preds = %885
  %914 = load i32, ptr @test_count, align 4, !tbaa !5
  %915 = add nsw i32 %914, 1
  store i32 %915, ptr @test_count, align 4, !tbaa !5
  %916 = load ptr, ptr %10, align 8, !tbaa !9
  %917 = icmp eq ptr %916, null
  br i1 %917, label %918, label %942

918:                                              ; preds = %913
  %919 = tail call ptr @__errno_location() #11
  %920 = load i32, ptr %919, align 4, !tbaa !5
  %921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %922 = call i32 @s2n_print_stacktrace(ptr noundef %921) #10
  %923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %924 = trunc nuw i8 %923 to i1
  br i1 %924, label %925, label %929

925:                                              ; preds = %918
  %926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %927 = call i32 @fileno(ptr noundef %926) #10
  %928 = call i32 @isatty(i32 noundef %927) #10
  %.not857 = icmp eq i32 %928, 0
  br i1 %.not857, label %929, label %930

929:                                              ; preds = %925, %918
  br label %930

930:                                              ; preds = %925, %929
  %.str.5.sink1261 = phi ptr [ @.str.5, %929 ], [ @.str.2, %925 ]
  store i32 %920, ptr %919, align 4, !tbaa !5
  %931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %932 = load i32, ptr @test_count, align 4, !tbaa !5
  %933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %934 = load i32, ptr %933, align 4, !tbaa !5
  %935 = call ptr @s2n_strerror(i32 noundef %934, ptr noundef nonnull @.str.4) #10
  %936 = load i32, ptr %933, align 4, !tbaa !5
  %937 = call ptr @s2n_strerror_debug(i32 noundef %936, ptr noundef nonnull @.str.4) #10
  %938 = load i32, ptr %919, align 4, !tbaa !5
  %939 = call ptr @strerror(i32 noundef %938) #10
  %940 = load i32, ptr %919, align 4, !tbaa !5
  %941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %931, ptr noundef nonnull %.str.5.sink1261, i32 noundef %932, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %935, ptr noundef %937, ptr noundef %939, i32 noundef %940) #12
  call void @exit(i32 noundef 1) #13
  unreachable

942:                                              ; preds = %913
  %943 = add nsw i32 %914, 2
  store i32 %943, ptr @test_count, align 4, !tbaa !5
  %944 = call i32 %478(ptr noundef nonnull %771, ptr noundef nonnull %8) #10
  %945 = icmp eq i32 %944, -1
  br i1 %945, label %946, label %970

946:                                              ; preds = %942
  %947 = tail call ptr @__errno_location() #11
  %948 = load i32, ptr %947, align 4, !tbaa !5
  %949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %950 = call i32 @s2n_print_stacktrace(ptr noundef %949) #10
  %951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %952 = trunc nuw i8 %951 to i1
  br i1 %952, label %953, label %957

953:                                              ; preds = %946
  %954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %955 = call i32 @fileno(ptr noundef %954) #10
  %956 = call i32 @isatty(i32 noundef %955) #10
  %.not856 = icmp eq i32 %956, 0
  br i1 %.not856, label %957, label %958

957:                                              ; preds = %953, %946
  br label %958

958:                                              ; preds = %953, %957
  %.str.5.sink1272 = phi ptr [ @.str.5, %957 ], [ @.str.2, %953 ]
  store i32 %948, ptr %947, align 4, !tbaa !5
  %959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %960 = load i32, ptr @test_count, align 4, !tbaa !5
  %961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %962 = load i32, ptr %961, align 4, !tbaa !5
  %963 = call ptr @s2n_strerror(i32 noundef %962, ptr noundef nonnull @.str.4) #10
  %964 = load i32, ptr %961, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror_debug(i32 noundef %964, ptr noundef nonnull @.str.4) #10
  %966 = load i32, ptr %947, align 4, !tbaa !5
  %967 = call ptr @strerror(i32 noundef %966) #10
  %968 = load i32, ptr %947, align 4, !tbaa !5
  %969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %959, ptr noundef nonnull %.str.5.sink1272, i32 noundef %960, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %963, ptr noundef %965, ptr noundef %967, i32 noundef %968) #12
  call void @exit(i32 noundef 1) #13
  unreachable

970:                                              ; preds = %942
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %11) #10
  store i16 0, ptr %11, align 2, !tbaa !19
  %971 = load i32, ptr @test_count, align 4, !tbaa !5
  %972 = add nsw i32 %971, 1
  store i32 %972, ptr @test_count, align 4, !tbaa !5
  %973 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %8, ptr noundef nonnull %11) #10
  %974 = icmp eq i32 %973, -1
  br i1 %974, label %975, label %999

975:                                              ; preds = %970
  %976 = tail call ptr @__errno_location() #11
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = call i32 @s2n_print_stacktrace(ptr noundef %978) #10
  %980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %981 = trunc nuw i8 %980 to i1
  br i1 %981, label %982, label %986

982:                                              ; preds = %975
  %983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %984 = call i32 @fileno(ptr noundef %983) #10
  %985 = call i32 @isatty(i32 noundef %984) #10
  %.not855 = icmp eq i32 %985, 0
  br i1 %.not855, label %986, label %987

986:                                              ; preds = %982, %975
  br label %987

987:                                              ; preds = %982, %986
  %.str.5.sink1283 = phi ptr [ @.str.5, %986 ], [ @.str.2, %982 ]
  store i32 %977, ptr %976, align 4, !tbaa !5
  %988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %989 = load i32, ptr @test_count, align 4, !tbaa !5
  %990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %991 = load i32, ptr %990, align 4, !tbaa !5
  %992 = call ptr @s2n_strerror(i32 noundef %991, ptr noundef nonnull @.str.4) #10
  %993 = load i32, ptr %990, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror_debug(i32 noundef %993, ptr noundef nonnull @.str.4) #10
  %995 = load i32, ptr %976, align 4, !tbaa !5
  %996 = call ptr @strerror(i32 noundef %995) #10
  %997 = load i32, ptr %976, align 4, !tbaa !5
  %998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %988, ptr noundef nonnull %.str.5.sink1283, i32 noundef %989, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %992, ptr noundef %994, ptr noundef %996, i32 noundef %997) #12
  call void @exit(i32 noundef 1) #13
  unreachable

999:                                              ; preds = %970
  %1000 = load ptr, ptr %9, align 8, !tbaa !9
  %1001 = load i8, ptr %1000, align 8, !tbaa !24
  %1002 = zext i8 %1001 to i16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #10
  store i32 0, ptr %12, align 4, !tbaa !5
  %1003 = call zeroext i1 @s2n_pq_is_enabled() #10
  br i1 %1003, label %1004, label %1038

1004:                                             ; preds = %999
  %1005 = load i32, ptr @test_count, align 4, !tbaa !5
  %1006 = add nsw i32 %1005, 1
  store i32 %1006, ptr @test_count, align 4, !tbaa !5
  %1007 = load ptr, ptr %10, align 8, !tbaa !9
  %1008 = call i32 @s2n_kem_preferences_groups_available(ptr noundef %1007, ptr noundef nonnull %12) #10
  %1009 = call zeroext i1 @s2n_result_is_ok(i32 %1008)
  br i1 %1009, label %1034, label %1010

1010:                                             ; preds = %1004
  %1011 = tail call ptr @__errno_location() #11
  %1012 = load i32, ptr %1011, align 4, !tbaa !5
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = call i32 @s2n_print_stacktrace(ptr noundef %1013) #10
  %1015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1016 = trunc nuw i8 %1015 to i1
  br i1 %1016, label %1017, label %1021

1017:                                             ; preds = %1010
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = call i32 @fileno(ptr noundef %1018) #10
  %1020 = call i32 @isatty(i32 noundef %1019) #10
  %.not662 = icmp eq i32 %1020, 0
  br i1 %.not662, label %1021, label %1022

1021:                                             ; preds = %1017, %1010
  br label %1022

1022:                                             ; preds = %1017, %1021
  %.str.5.sink1294 = phi ptr [ @.str.5, %1021 ], [ @.str.2, %1017 ]
  store i32 %1012, ptr %1011, align 4, !tbaa !5
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror(i32 noundef %1026, ptr noundef nonnull @.str.4) #10
  %1028 = load i32, ptr %1025, align 4, !tbaa !5
  %1029 = call ptr @s2n_strerror_debug(i32 noundef %1028, ptr noundef nonnull @.str.4) #10
  %1030 = load i32, ptr %1011, align 4, !tbaa !5
  %1031 = call ptr @strerror(i32 noundef %1030) #10
  %1032 = load i32, ptr %1011, align 4, !tbaa !5
  %1033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1023, ptr noundef nonnull %.str.5.sink1294, i32 noundef %1024, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %1027, ptr noundef %1029, ptr noundef %1031, i32 noundef %1032) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1034:                                             ; preds = %1004
  %1035 = load i32, ptr %12, align 4, !tbaa !5
  %1036 = trunc i32 %1035 to i16
  %1037 = add i16 %1036, %1002
  br label %1038

1038:                                             ; preds = %999, %1034
  %.0625.in = phi i16 [ %1037, %1034 ], [ %1002, %999 ]
  %1039 = load i32, ptr @test_count, align 4, !tbaa !5
  %1040 = add nsw i32 %1039, 1
  store i32 %1040, ptr @test_count, align 4, !tbaa !5
  %1041 = load i16, ptr %11, align 2, !tbaa !19
  %1042 = zext i16 %1041 to i32
  %1043 = getelementptr inbounds i8, ptr %8, i64 28
  %1044 = load i32, ptr %1043, align 4, !tbaa !20
  %1045 = getelementptr inbounds i8, ptr %8, i64 24
  %1046 = load i32, ptr %1045, align 8, !tbaa !23
  %1047 = sub i32 %1044, %1046
  %1048 = icmp eq i32 %1047, %1042
  br i1 %1048, label %1073, label %1049

1049:                                             ; preds = %1038
  %1050 = tail call ptr @__errno_location() #11
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = call i32 @s2n_print_stacktrace(ptr noundef %1052) #10
  %1054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1055 = trunc nuw i8 %1054 to i1
  br i1 %1055, label %1056, label %1060

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

1060:                                             ; preds = %1056, %1049
  br label %1061

1061:                                             ; preds = %1056, %1060
  %.str.5.sink1305 = phi ptr [ @.str.5, %1060 ], [ @.str.2, %1056 ]
  store i32 %1051, ptr %1050, align 4, !tbaa !5
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call ptr @s2n_strerror(i32 noundef %1065, ptr noundef nonnull @.str.4) #10
  %1067 = load i32, ptr %1064, align 4, !tbaa !5
  %1068 = call ptr @s2n_strerror_debug(i32 noundef %1067, ptr noundef nonnull @.str.4) #10
  %1069 = load i32, ptr %1050, align 4, !tbaa !5
  %1070 = call ptr @strerror(i32 noundef %1069) #10
  %1071 = load i32, ptr %1050, align 4, !tbaa !5
  %1072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1062, ptr noundef nonnull %.str.5.sink1305, i32 noundef %1063, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 127, ptr noundef %1066, ptr noundef %1068, ptr noundef %1070, i32 noundef %1071) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1073:                                             ; preds = %1038
  %.0625 = shl i16 %.0625.in, 1
  %1074 = add nsw i32 %1039, 2
  store i32 %1074, ptr @test_count, align 4, !tbaa !5
  %1075 = icmp eq i16 %1041, %.0625
  br i1 %1075, label %1100, label %1076

1076:                                             ; preds = %1073
  %1077 = tail call ptr @__errno_location() #11
  %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) #10
  %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) #10
  %1086 = call i32 @isatty(i32 noundef %1085) #10
  %.not664 = icmp eq i32 %1086, 0
  br i1 %.not664, label %1087, label %1088

1087:                                             ; preds = %1083, %1076
  br label %1088

1088:                                             ; preds = %1083, %1087
  %.str.5.sink1316 = 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) #10
  %1094 = load i32, ptr %1091, align 4, !tbaa !5
  %1095 = call ptr @s2n_strerror_debug(i32 noundef %1094, ptr noundef nonnull @.str.4) #10
  %1096 = load i32, ptr %1077, align 4, !tbaa !5
  %1097 = call ptr @strerror(i32 noundef %1096) #10
  %1098 = load i32, ptr %1077, align 4, !tbaa !5
  %1099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1089, ptr noundef nonnull %.str.5.sink1316, i32 noundef %1090, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1093, ptr noundef %1095, ptr noundef %1097, i32 noundef %1098) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1100:                                             ; preds = %1073
  %1101 = call zeroext i1 @s2n_pq_is_enabled() #10
  br i1 %1101, label %1102, label %1184

1102:                                             ; preds = %1100
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %13) #10
  store i16 0, ptr %13, align 2, !tbaa !19
  %1103 = load ptr, ptr %10, align 8, !tbaa !9
  %1104 = getelementptr inbounds i8, ptr %1103, i64 16
  %1105 = load i8, ptr %1104, align 8, !tbaa !31
  %.not926 = icmp eq i8 %1105, 0
  br i1 %.not926, label %._crit_edge911, label %.lr.ph910

._crit_edge911:                                   ; preds = %1177, %1102
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %13) #10
  br label %1184

.lr.ph910:                                        ; preds = %1102, %1177
  %1106 = phi ptr [ %1178, %1177 ], [ %1103, %1102 ]
  %.0626908 = phi i64 [ %1179, %1177 ], [ 0, %1102 ]
  %1107 = getelementptr inbounds i8, ptr %1106, i64 24
  %1108 = load ptr, ptr %1107, align 8, !tbaa !33
  %1109 = getelementptr inbounds ptr, ptr %1108, i64 %.0626908
  %1110 = load ptr, ptr %1109, align 8, !tbaa !9
  %1111 = call zeroext i1 @s2n_kem_group_is_available(ptr noundef %1110) #10
  br i1 %1111, label %1112, label %.lr.ph910._crit_edge

.lr.ph910._crit_edge:                             ; preds = %.lr.ph910
  %.pre = load ptr, ptr %10, align 8, !tbaa !9
  br label %1177

1112:                                             ; preds = %.lr.ph910
  %1113 = load i32, ptr @test_count, align 4, !tbaa !5
  %1114 = add nsw i32 %1113, 1
  store i32 %1114, ptr @test_count, align 4, !tbaa !5
  %1115 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %8, ptr noundef nonnull %13) #10
  %1116 = icmp eq i32 %1115, -1
  br i1 %1116, label %1117, label %1141

1117:                                             ; preds = %1112
  %1118 = tail call ptr @__errno_location() #11
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1121 = call i32 @s2n_print_stacktrace(ptr noundef %1120) #10
  %1122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1123 = trunc nuw i8 %1122 to i1
  br i1 %1123, label %1124, label %1128

1124:                                             ; preds = %1117
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = call i32 @fileno(ptr noundef %1125) #10
  %1127 = call i32 @isatty(i32 noundef %1126) #10
  %.not854 = icmp eq i32 %1127, 0
  br i1 %.not854, label %1128, label %1129

1128:                                             ; preds = %1124, %1117
  br label %1129

1129:                                             ; preds = %1124, %1128
  %.str.5.sink1327 = phi ptr [ @.str.5, %1128 ], [ @.str.2, %1124 ]
  store i32 %1119, ptr %1118, align 4, !tbaa !5
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = load i32, ptr @test_count, align 4, !tbaa !5
  %1132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror(i32 noundef %1133, ptr noundef nonnull @.str.4) #10
  %1135 = load i32, ptr %1132, align 4, !tbaa !5
  %1136 = call ptr @s2n_strerror_debug(i32 noundef %1135, ptr noundef nonnull @.str.4) #10
  %1137 = load i32, ptr %1118, align 4, !tbaa !5
  %1138 = call ptr @strerror(i32 noundef %1137) #10
  %1139 = load i32, ptr %1118, align 4, !tbaa !5
  %1140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1130, ptr noundef nonnull %.str.5.sink1327, i32 noundef %1131, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %1134, ptr noundef %1136, ptr noundef %1138, i32 noundef %1139) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1141:                                             ; preds = %1112
  %1142 = load i32, ptr @test_count, align 4, !tbaa !5
  %1143 = add nsw i32 %1142, 1
  store i32 %1143, ptr @test_count, align 4, !tbaa !5
  %1144 = load i16, ptr %13, align 2, !tbaa !19
  %1145 = load ptr, ptr %10, align 8, !tbaa !9
  %1146 = getelementptr inbounds i8, ptr %1145, i64 24
  %1147 = load ptr, ptr %1146, align 8, !tbaa !33
  %1148 = getelementptr inbounds ptr, ptr %1147, i64 %.0626908
  %1149 = load ptr, ptr %1148, align 8, !tbaa !9
  %1150 = getelementptr inbounds i8, ptr %1149, i64 8
  %1151 = load i16, ptr %1150, align 8, !tbaa !67
  %1152 = icmp eq i16 %1144, %1151
  br i1 %1152, label %1177, label %1153

1153:                                             ; preds = %1141
  %1154 = tail call ptr @__errno_location() #11
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  %1156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1157 = call i32 @s2n_print_stacktrace(ptr noundef %1156) #10
  %1158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1159 = trunc nuw i8 %1158 to i1
  br i1 %1159, label %1160, label %1164

1160:                                             ; preds = %1153
  %1161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1162 = call i32 @fileno(ptr noundef %1161) #10
  %1163 = call i32 @isatty(i32 noundef %1162) #10
  %.not853 = icmp eq i32 %1163, 0
  br i1 %.not853, label %1164, label %1165

1164:                                             ; preds = %1160, %1153
  br label %1165

1165:                                             ; preds = %1160, %1164
  %.str.5.sink1338 = phi ptr [ @.str.5, %1164 ], [ @.str.2, %1160 ]
  store i32 %1155, ptr %1154, align 4, !tbaa !5
  %1166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1167 = load i32, ptr @test_count, align 4, !tbaa !5
  %1168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1169 = load i32, ptr %1168, align 4, !tbaa !5
  %1170 = call ptr @s2n_strerror(i32 noundef %1169, ptr noundef nonnull @.str.4) #10
  %1171 = load i32, ptr %1168, align 4, !tbaa !5
  %1172 = call ptr @s2n_strerror_debug(i32 noundef %1171, ptr noundef nonnull @.str.4) #10
  %1173 = load i32, ptr %1154, align 4, !tbaa !5
  %1174 = call ptr @strerror(i32 noundef %1173) #10
  %1175 = load i32, ptr %1154, align 4, !tbaa !5
  %1176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1166, ptr noundef nonnull %.str.5.sink1338, i32 noundef %1167, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1170, ptr noundef %1172, ptr noundef %1174, i32 noundef %1175) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1177:                                             ; preds = %.lr.ph910._crit_edge, %1141
  %1178 = phi ptr [ %.pre, %.lr.ph910._crit_edge ], [ %1145, %1141 ]
  %1179 = add nuw nsw i64 %.0626908, 1
  %1180 = getelementptr inbounds i8, ptr %1178, i64 16
  %1181 = load i8, ptr %1180, align 8, !tbaa !31
  %1182 = zext i8 %1181 to i64
  %1183 = icmp ult i64 %1179, %1182
  br i1 %1183, label %.lr.ph910, label %._crit_edge911, !llvm.loop !69

1184:                                             ; preds = %._crit_edge911, %1100
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %14) #10
  store i16 0, ptr %14, align 2, !tbaa !19
  %1185 = load ptr, ptr %9, align 8, !tbaa !9
  %1186 = load i8, ptr %1185, align 8, !tbaa !24
  %.not927 = icmp eq i8 %1186, 0
  %.pre935 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not927, label %._crit_edge915, label %.lr.ph914

1187:                                             ; preds = %1224
  %1188 = add nuw nsw i64 %.0627912, 1
  %1189 = load i8, ptr %1228, align 8, !tbaa !24
  %1190 = zext i8 %1189 to i64
  %1191 = icmp ult i64 %1188, %1190
  br i1 %1191, label %.lr.ph914, label %._crit_edge915, !llvm.loop !70

._crit_edge915:                                   ; preds = %1187, %1184
  %1192 = phi i32 [ %.pre935, %1184 ], [ %1226, %1187 ]
  %1193 = add nsw i32 %1192, 1
  store i32 %1193, ptr @test_count, align 4, !tbaa !5
  %1194 = call i32 @s2n_connection_free(ptr noundef nonnull %771) #10
  %1195 = icmp eq i32 %1194, -1
  br i1 %1195, label %1259, label %1283

.lr.ph914:                                        ; preds = %1184, %1187
  %1196 = phi i32 [ %1226, %1187 ], [ %.pre935, %1184 ]
  %.0627912 = phi i64 [ %1188, %1187 ], [ 0, %1184 ]
  %1197 = add nsw i32 %1196, 1
  store i32 %1197, ptr @test_count, align 4, !tbaa !5
  %1198 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %8, ptr noundef nonnull %14) #10
  %1199 = icmp eq i32 %1198, -1
  br i1 %1199, label %1200, label %1224

1200:                                             ; preds = %.lr.ph914
  %1201 = tail call ptr @__errno_location() #11
  %1202 = load i32, ptr %1201, align 4, !tbaa !5
  %1203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1204 = call i32 @s2n_print_stacktrace(ptr noundef %1203) #10
  %1205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1206 = trunc nuw i8 %1205 to i1
  br i1 %1206, label %1207, label %1211

1207:                                             ; preds = %1200
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = call i32 @fileno(ptr noundef %1208) #10
  %1210 = call i32 @isatty(i32 noundef %1209) #10
  %.not852 = icmp eq i32 %1210, 0
  br i1 %.not852, label %1211, label %1212

1211:                                             ; preds = %1207, %1200
  br label %1212

1212:                                             ; preds = %1207, %1211
  %.str.5.sink1349 = phi ptr [ @.str.5, %1211 ], [ @.str.2, %1207 ]
  store i32 %1202, ptr %1201, align 4, !tbaa !5
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = load i32, ptr @test_count, align 4, !tbaa !5
  %1215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1216 = load i32, ptr %1215, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror(i32 noundef %1216, ptr noundef nonnull @.str.4) #10
  %1218 = load i32, ptr %1215, align 4, !tbaa !5
  %1219 = call ptr @s2n_strerror_debug(i32 noundef %1218, ptr noundef nonnull @.str.4) #10
  %1220 = load i32, ptr %1201, align 4, !tbaa !5
  %1221 = call ptr @strerror(i32 noundef %1220) #10
  %1222 = load i32, ptr %1201, align 4, !tbaa !5
  %1223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1213, ptr noundef nonnull %.str.5.sink1349, i32 noundef %1214, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %1217, ptr noundef %1219, ptr noundef %1221, i32 noundef %1222) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1224:                                             ; preds = %.lr.ph914
  %1225 = load i32, ptr @test_count, align 4, !tbaa !5
  %1226 = add nsw i32 %1225, 1
  store i32 %1226, ptr @test_count, align 4, !tbaa !5
  %1227 = load i16, ptr %14, align 2, !tbaa !19
  %1228 = load ptr, ptr %9, align 8, !tbaa !9
  %1229 = getelementptr inbounds i8, ptr %1228, i64 8
  %1230 = load ptr, ptr %1229, align 8, !tbaa !28
  %1231 = getelementptr inbounds ptr, ptr %1230, i64 %.0627912
  %1232 = load ptr, ptr %1231, align 8, !tbaa !9
  %1233 = load i16, ptr %1232, align 8, !tbaa !29
  %1234 = icmp eq i16 %1227, %1233
  br i1 %1234, label %1187, label %1235

1235:                                             ; preds = %1224
  %1236 = tail call ptr @__errno_location() #11
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1239 = call i32 @s2n_print_stacktrace(ptr noundef %1238) #10
  %1240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1241 = trunc nuw i8 %1240 to i1
  br i1 %1241, label %1242, label %1246

1242:                                             ; preds = %1235
  %1243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1244 = call i32 @fileno(ptr noundef %1243) #10
  %1245 = call i32 @isatty(i32 noundef %1244) #10
  %.not851 = icmp eq i32 %1245, 0
  br i1 %.not851, label %1246, label %1247

1246:                                             ; preds = %1242, %1235
  br label %1247

1247:                                             ; preds = %1242, %1246
  %.str.5.sink1360 = phi ptr [ @.str.5, %1246 ], [ @.str.2, %1242 ]
  store i32 %1237, ptr %1236, align 4, !tbaa !5
  %1248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1249 = load i32, ptr @test_count, align 4, !tbaa !5
  %1250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  %1252 = call ptr @s2n_strerror(i32 noundef %1251, ptr noundef nonnull @.str.4) #10
  %1253 = load i32, ptr %1250, align 4, !tbaa !5
  %1254 = call ptr @s2n_strerror_debug(i32 noundef %1253, ptr noundef nonnull @.str.4) #10
  %1255 = load i32, ptr %1236, align 4, !tbaa !5
  %1256 = call ptr @strerror(i32 noundef %1255) #10
  %1257 = load i32, ptr %1236, align 4, !tbaa !5
  %1258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1248, ptr noundef nonnull %.str.5.sink1360, i32 noundef %1249, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 144, ptr noundef %1252, ptr noundef %1254, ptr noundef %1256, i32 noundef %1257) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1259:                                             ; preds = %._crit_edge915
  %1260 = tail call ptr @__errno_location() #11
  %1261 = load i32, ptr %1260, align 4, !tbaa !5
  %1262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1263 = call i32 @s2n_print_stacktrace(ptr noundef %1262) #10
  %1264 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1265 = trunc nuw i8 %1264 to i1
  br i1 %1265, label %1266, label %1270

1266:                                             ; preds = %1259
  %1267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1268 = call i32 @fileno(ptr noundef %1267) #10
  %1269 = call i32 @isatty(i32 noundef %1268) #10
  %.not850 = icmp eq i32 %1269, 0
  br i1 %.not850, label %1270, label %1271

1270:                                             ; preds = %1266, %1259
  br label %1271

1271:                                             ; preds = %1266, %1270
  %.str.5.sink1371 = phi ptr [ @.str.5, %1270 ], [ @.str.2, %1266 ]
  store i32 %1261, ptr %1260, align 4, !tbaa !5
  %1272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1273 = load i32, ptr @test_count, align 4, !tbaa !5
  %1274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1275 = load i32, ptr %1274, align 4, !tbaa !5
  %1276 = call ptr @s2n_strerror(i32 noundef %1275, ptr noundef nonnull @.str.4) #10
  %1277 = load i32, ptr %1274, align 4, !tbaa !5
  %1278 = call ptr @s2n_strerror_debug(i32 noundef %1277, ptr noundef nonnull @.str.4) #10
  %1279 = load i32, ptr %1260, align 4, !tbaa !5
  %1280 = call ptr @strerror(i32 noundef %1279) #10
  %1281 = load i32, ptr %1260, align 4, !tbaa !5
  %1282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1272, ptr noundef nonnull %.str.5.sink1371, i32 noundef %1273, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %1276, ptr noundef %1278, ptr noundef %1280, i32 noundef %1281) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1283:                                             ; preds = %._crit_edge915
  %1284 = load i32, ptr @test_count, align 4, !tbaa !5
  %1285 = add nsw i32 %1284, 1
  store i32 %1285, ptr @test_count, align 4, !tbaa !5
  %1286 = call i32 (...) @s2n_disable_tls13_in_test() #10
  %1287 = icmp eq i32 %1286, -1
  br i1 %1287, label %1288, label %1312

1288:                                             ; preds = %1283
  %1289 = tail call ptr @__errno_location() #11
  %1290 = load i32, ptr %1289, align 4, !tbaa !5
  %1291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1292 = call i32 @s2n_print_stacktrace(ptr noundef %1291) #10
  %1293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1294 = trunc nuw i8 %1293 to i1
  br i1 %1294, label %1295, label %1299

1295:                                             ; preds = %1288
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = call i32 @fileno(ptr noundef %1296) #10
  %1298 = call i32 @isatty(i32 noundef %1297) #10
  %.not849 = icmp eq i32 %1298, 0
  br i1 %.not849, label %1299, label %1300

1299:                                             ; preds = %1295, %1288
  br label %1300

1300:                                             ; preds = %1295, %1299
  %.str.5.sink1382 = phi ptr [ @.str.5, %1299 ], [ @.str.2, %1295 ]
  store i32 %1290, ptr %1289, align 4, !tbaa !5
  %1301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1302 = load i32, ptr @test_count, align 4, !tbaa !5
  %1303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  %1305 = call ptr @s2n_strerror(i32 noundef %1304, ptr noundef nonnull @.str.4) #10
  %1306 = load i32, ptr %1303, align 4, !tbaa !5
  %1307 = call ptr @s2n_strerror_debug(i32 noundef %1306, ptr noundef nonnull @.str.4) #10
  %1308 = load i32, ptr %1289, align 4, !tbaa !5
  %1309 = call ptr @strerror(i32 noundef %1308) #10
  %1310 = load i32, ptr %1289, align 4, !tbaa !5
  %1311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1301, ptr noundef nonnull %.str.5.sink1382, i32 noundef %1302, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1305, ptr noundef %1307, ptr noundef %1309, i32 noundef %1310) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1312:                                             ; preds = %1283
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  %1313 = call i32 @s2n_stuffer_free(ptr noundef nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #10
  %1314 = load i32, ptr @test_count, align 4, !tbaa !5
  %1315 = add nsw i32 %1314, 1
  store i32 %1315, ptr @test_count, align 4, !tbaa !5
  %1316 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %1317 = icmp eq ptr %1316, null
  br i1 %1317, label %1318, label %1342

1318:                                             ; preds = %1312
  %1319 = tail call ptr @__errno_location() #11
  %1320 = load i32, ptr %1319, align 4, !tbaa !5
  %1321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1322 = call i32 @s2n_print_stacktrace(ptr noundef %1321) #10
  %1323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1324 = trunc nuw i8 %1323 to i1
  br i1 %1324, label %1325, label %1329

1325:                                             ; preds = %1318
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1327 = call i32 @fileno(ptr noundef %1326) #10
  %1328 = call i32 @isatty(i32 noundef %1327) #10
  %.not848 = icmp eq i32 %1328, 0
  br i1 %.not848, label %1329, label %1330

1329:                                             ; preds = %1325, %1318
  br label %1330

1330:                                             ; preds = %1325, %1329
  %.str.5.sink1393 = phi ptr [ @.str.5, %1329 ], [ @.str.2, %1325 ]
  store i32 %1320, ptr %1319, align 4, !tbaa !5
  %1331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1332 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1334, ptr noundef nonnull @.str.4) #10
  %1336 = load i32, ptr %1333, align 4, !tbaa !5
  %1337 = call ptr @s2n_strerror_debug(i32 noundef %1336, ptr noundef nonnull @.str.4) #10
  %1338 = load i32, ptr %1319, align 4, !tbaa !5
  %1339 = call ptr @strerror(i32 noundef %1338) #10
  %1340 = load i32, ptr %1319, align 4, !tbaa !5
  %1341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1331, ptr noundef nonnull %.str.5.sink1393, i32 noundef %1332, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1335, ptr noundef %1337, ptr noundef %1339, i32 noundef %1340) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1342:                                             ; preds = %1312
  %1343 = load i32, ptr @test_count, align 4, !tbaa !5
  %1344 = add nsw i32 %1343, 1
  store i32 %1344, ptr @test_count, align 4, !tbaa !5
  %1345 = call zeroext i8 @s2n_connection_get_protocol_version(ptr noundef nonnull %1316) #10
  %1346 = icmp eq i8 %1345, 33
  br i1 %1346, label %1371, label %1347

1347:                                             ; preds = %1342
  %1348 = tail call ptr @__errno_location() #11
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  %1350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1351 = call i32 @s2n_print_stacktrace(ptr noundef %1350) #10
  %1352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1353 = trunc nuw i8 %1352 to i1
  br i1 %1353, label %1354, label %1358

1354:                                             ; preds = %1347
  %1355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1356 = call i32 @fileno(ptr noundef %1355) #10
  %1357 = call i32 @isatty(i32 noundef %1356) #10
  %.not665 = icmp eq i32 %1357, 0
  br i1 %.not665, label %1358, label %1359

1358:                                             ; preds = %1354, %1347
  br label %1359

1359:                                             ; preds = %1354, %1358
  %.str.5.sink1404 = phi ptr [ @.str.5, %1358 ], [ @.str.2, %1354 ]
  store i32 %1349, ptr %1348, align 4, !tbaa !5
  %1360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1361 = load i32, ptr @test_count, align 4, !tbaa !5
  %1362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = call ptr @s2n_strerror(i32 noundef %1363, ptr noundef nonnull @.str.4) #10
  %1365 = load i32, ptr %1362, align 4, !tbaa !5
  %1366 = call ptr @s2n_strerror_debug(i32 noundef %1365, ptr noundef nonnull @.str.4) #10
  %1367 = load i32, ptr %1348, align 4, !tbaa !5
  %1368 = call ptr @strerror(i32 noundef %1367) #10
  %1369 = load i32, ptr %1348, align 4, !tbaa !5
  %1370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1360, ptr noundef nonnull %.str.5.sink1404, i32 noundef %1361, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %1364, ptr noundef %1366, ptr noundef %1368, i32 noundef %1369) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1371:                                             ; preds = %1342
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %15) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %15, i8 0, i64 40, i1 false)
  %1372 = load i32, ptr @test_count, align 4, !tbaa !5
  %1373 = add nsw i32 %1372, 1
  store i32 %1373, ptr @test_count, align 4, !tbaa !5
  %1374 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %15, i32 noundef 0) #10
  %1375 = icmp eq i32 %1374, -1
  br i1 %1375, label %1376, label %1400

1376:                                             ; preds = %1371
  %1377 = tail call ptr @__errno_location() #11
  %1378 = load i32, ptr %1377, align 4, !tbaa !5
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1380 = call i32 @s2n_print_stacktrace(ptr noundef %1379) #10
  %1381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1382 = trunc nuw i8 %1381 to i1
  br i1 %1382, label %1383, label %1387

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

1387:                                             ; preds = %1383, %1376
  br label %1388

1388:                                             ; preds = %1383, %1387
  %.str.5.sink1415 = phi ptr [ @.str.5, %1387 ], [ @.str.2, %1383 ]
  store i32 %1378, ptr %1377, align 4, !tbaa !5
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = load i32, ptr @test_count, align 4, !tbaa !5
  %1391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1392 = load i32, ptr %1391, align 4, !tbaa !5
  %1393 = call ptr @s2n_strerror(i32 noundef %1392, ptr noundef nonnull @.str.4) #10
  %1394 = load i32, ptr %1391, align 4, !tbaa !5
  %1395 = call ptr @s2n_strerror_debug(i32 noundef %1394, ptr noundef nonnull @.str.4) #10
  %1396 = load i32, ptr %1377, align 4, !tbaa !5
  %1397 = call ptr @strerror(i32 noundef %1396) #10
  %1398 = load i32, ptr %1377, align 4, !tbaa !5
  %1399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1389, ptr noundef nonnull %.str.5.sink1415, i32 noundef %1390, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1393, ptr noundef %1395, ptr noundef %1397, i32 noundef %1398) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1400:                                             ; preds = %1371
  %1401 = getelementptr inbounds i8, ptr %1316, i64 16
  store ptr %7, ptr %1401, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #10
  store ptr null, ptr %16, align 8, !tbaa !9
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = add nsw i32 %1402, 1
  store i32 %1403, ptr @test_count, align 4, !tbaa !5
  %1404 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %1316, ptr noundef nonnull %16) #10
  %1405 = icmp eq i32 %1404, -1
  br i1 %1405, label %1406, label %1430

1406:                                             ; preds = %1400
  %1407 = tail call ptr @__errno_location() #11
  %1408 = load i32, ptr %1407, align 4, !tbaa !5
  %1409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1410 = call i32 @s2n_print_stacktrace(ptr noundef %1409) #10
  %1411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1412 = trunc nuw i8 %1411 to i1
  br i1 %1412, label %1413, label %1417

1413:                                             ; preds = %1406
  %1414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1415 = call i32 @fileno(ptr noundef %1414) #10
  %1416 = call i32 @isatty(i32 noundef %1415) #10
  %.not846 = icmp eq i32 %1416, 0
  br i1 %.not846, label %1417, label %1418

1417:                                             ; preds = %1413, %1406
  br label %1418

1418:                                             ; preds = %1413, %1417
  %.str.5.sink1426 = phi ptr [ @.str.5, %1417 ], [ @.str.2, %1413 ]
  store i32 %1408, ptr %1407, align 4, !tbaa !5
  %1419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1420 = load i32, ptr @test_count, align 4, !tbaa !5
  %1421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1422 = load i32, ptr %1421, align 4, !tbaa !5
  %1423 = call ptr @s2n_strerror(i32 noundef %1422, ptr noundef nonnull @.str.4) #10
  %1424 = load i32, ptr %1421, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror_debug(i32 noundef %1424, ptr noundef nonnull @.str.4) #10
  %1426 = load i32, ptr %1407, align 4, !tbaa !5
  %1427 = call ptr @strerror(i32 noundef %1426) #10
  %1428 = load i32, ptr %1407, align 4, !tbaa !5
  %1429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1419, ptr noundef nonnull %.str.5.sink1426, i32 noundef %1420, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %1423, ptr noundef %1425, ptr noundef %1427, i32 noundef %1428) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1430:                                             ; preds = %1400
  %1431 = load i32, ptr @test_count, align 4, !tbaa !5
  %1432 = add nsw i32 %1431, 1
  store i32 %1432, ptr @test_count, align 4, !tbaa !5
  %1433 = load ptr, ptr %16, align 8, !tbaa !9
  %1434 = icmp eq ptr %1433, null
  br i1 %1434, label %1435, label %1459

1435:                                             ; preds = %1430
  %1436 = tail call ptr @__errno_location() #11
  %1437 = load i32, ptr %1436, align 4, !tbaa !5
  %1438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1439 = call i32 @s2n_print_stacktrace(ptr noundef %1438) #10
  %1440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1441 = trunc nuw i8 %1440 to i1
  br i1 %1441, label %1442, label %1446

1442:                                             ; preds = %1435
  %1443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1444 = call i32 @fileno(ptr noundef %1443) #10
  %1445 = call i32 @isatty(i32 noundef %1444) #10
  %.not845 = icmp eq i32 %1445, 0
  br i1 %.not845, label %1446, label %1447

1446:                                             ; preds = %1442, %1435
  br label %1447

1447:                                             ; preds = %1442, %1446
  %.str.5.sink1437 = phi ptr [ @.str.5, %1446 ], [ @.str.2, %1442 ]
  store i32 %1437, ptr %1436, align 4, !tbaa !5
  %1448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1449 = load i32, ptr @test_count, align 4, !tbaa !5
  %1450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  %1452 = call ptr @s2n_strerror(i32 noundef %1451, ptr noundef nonnull @.str.4) #10
  %1453 = load i32, ptr %1450, align 4, !tbaa !5
  %1454 = call ptr @s2n_strerror_debug(i32 noundef %1453, ptr noundef nonnull @.str.4) #10
  %1455 = load i32, ptr %1436, align 4, !tbaa !5
  %1456 = call ptr @strerror(i32 noundef %1455) #10
  %1457 = load i32, ptr %1436, align 4, !tbaa !5
  %1458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1448, ptr noundef nonnull %.str.5.sink1437, i32 noundef %1449, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1452, ptr noundef %1454, ptr noundef %1456, i32 noundef %1457) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1459:                                             ; preds = %1430
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #10
  store ptr null, ptr %17, align 8, !tbaa !9
  %1460 = add nsw i32 %1431, 2
  store i32 %1460, ptr @test_count, align 4, !tbaa !5
  %1461 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %1316, ptr noundef nonnull %17) #10
  %1462 = icmp eq i32 %1461, -1
  br i1 %1462, label %1463, label %1487

1463:                                             ; preds = %1459
  %1464 = tail call ptr @__errno_location() #11
  %1465 = load i32, ptr %1464, align 4, !tbaa !5
  %1466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1467 = call i32 @s2n_print_stacktrace(ptr noundef %1466) #10
  %1468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1469 = trunc nuw i8 %1468 to i1
  br i1 %1469, label %1470, label %1474

1470:                                             ; preds = %1463
  %1471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1472 = call i32 @fileno(ptr noundef %1471) #10
  %1473 = call i32 @isatty(i32 noundef %1472) #10
  %.not844 = icmp eq i32 %1473, 0
  br i1 %.not844, label %1474, label %1475

1474:                                             ; preds = %1470, %1463
  br label %1475

1475:                                             ; preds = %1470, %1474
  %.str.5.sink1448 = phi ptr [ @.str.5, %1474 ], [ @.str.2, %1470 ]
  store i32 %1465, ptr %1464, 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 nonnull @.str.4) #10
  %1481 = load i32, ptr %1478, align 4, !tbaa !5
  %1482 = call ptr @s2n_strerror_debug(i32 noundef %1481, ptr noundef nonnull @.str.4) #10
  %1483 = load i32, ptr %1464, align 4, !tbaa !5
  %1484 = call ptr @strerror(i32 noundef %1483) #10
  %1485 = load i32, ptr %1464, align 4, !tbaa !5
  %1486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1476, ptr noundef nonnull %.str.5.sink1448, i32 noundef %1477, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %1480, ptr noundef %1482, ptr noundef %1484, i32 noundef %1485) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1487:                                             ; preds = %1459
  %1488 = load i32, ptr @test_count, align 4, !tbaa !5
  %1489 = add nsw i32 %1488, 1
  store i32 %1489, ptr @test_count, align 4, !tbaa !5
  %1490 = load ptr, ptr %17, align 8, !tbaa !9
  %1491 = icmp eq ptr %1490, null
  br i1 %1491, label %1492, label %1516

1492:                                             ; preds = %1487
  %1493 = tail call ptr @__errno_location() #11
  %1494 = load i32, ptr %1493, align 4, !tbaa !5
  %1495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1496 = call i32 @s2n_print_stacktrace(ptr noundef %1495) #10
  %1497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1498 = trunc nuw i8 %1497 to i1
  br i1 %1498, label %1499, label %1503

1499:                                             ; preds = %1492
  %1500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1501 = call i32 @fileno(ptr noundef %1500) #10
  %1502 = call i32 @isatty(i32 noundef %1501) #10
  %.not843 = icmp eq i32 %1502, 0
  br i1 %.not843, label %1503, label %1504

1503:                                             ; preds = %1499, %1492
  br label %1504

1504:                                             ; preds = %1499, %1503
  %.str.5.sink1459 = phi ptr [ @.str.5, %1503 ], [ @.str.2, %1499 ]
  store i32 %1494, ptr %1493, align 4, !tbaa !5
  %1505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1506 = load i32, ptr @test_count, align 4, !tbaa !5
  %1507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1508 = load i32, ptr %1507, align 4, !tbaa !5
  %1509 = call ptr @s2n_strerror(i32 noundef %1508, ptr noundef nonnull @.str.4) #10
  %1510 = load i32, ptr %1507, align 4, !tbaa !5
  %1511 = call ptr @s2n_strerror_debug(i32 noundef %1510, ptr noundef nonnull @.str.4) #10
  %1512 = load i32, ptr %1493, align 4, !tbaa !5
  %1513 = call ptr @strerror(i32 noundef %1512) #10
  %1514 = load i32, ptr %1493, align 4, !tbaa !5
  %1515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1505, ptr noundef nonnull %.str.5.sink1459, i32 noundef %1506, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1509, ptr noundef %1511, ptr noundef %1513, i32 noundef %1514) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1516:                                             ; preds = %1487
  %1517 = add nsw i32 %1488, 2
  store i32 %1517, ptr @test_count, align 4, !tbaa !5
  %1518 = call i32 %478(ptr noundef nonnull %1316, ptr noundef nonnull %15) #10
  %1519 = icmp eq i32 %1518, -1
  br i1 %1519, label %1520, label %1544

1520:                                             ; preds = %1516
  %1521 = tail call ptr @__errno_location() #11
  %1522 = load i32, ptr %1521, align 4, !tbaa !5
  %1523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1524 = call i32 @s2n_print_stacktrace(ptr noundef %1523) #10
  %1525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1526 = trunc nuw i8 %1525 to i1
  br i1 %1526, label %1527, label %1531

1527:                                             ; preds = %1520
  %1528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1529 = call i32 @fileno(ptr noundef %1528) #10
  %1530 = call i32 @isatty(i32 noundef %1529) #10
  %.not842 = icmp eq i32 %1530, 0
  br i1 %.not842, label %1531, label %1532

1531:                                             ; preds = %1527, %1520
  br label %1532

1532:                                             ; preds = %1527, %1531
  %.str.5.sink1470 = phi ptr [ @.str.5, %1531 ], [ @.str.2, %1527 ]
  store i32 %1522, ptr %1521, align 4, !tbaa !5
  %1533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1534 = load i32, ptr @test_count, align 4, !tbaa !5
  %1535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1536 = load i32, ptr %1535, align 4, !tbaa !5
  %1537 = call ptr @s2n_strerror(i32 noundef %1536, ptr noundef nonnull @.str.4) #10
  %1538 = load i32, ptr %1535, align 4, !tbaa !5
  %1539 = call ptr @s2n_strerror_debug(i32 noundef %1538, ptr noundef nonnull @.str.4) #10
  %1540 = load i32, ptr %1521, align 4, !tbaa !5
  %1541 = call ptr @strerror(i32 noundef %1540) #10
  %1542 = load i32, ptr %1521, align 4, !tbaa !5
  %1543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1533, ptr noundef nonnull %.str.5.sink1470, i32 noundef %1534, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %1537, ptr noundef %1539, ptr noundef %1541, i32 noundef %1542) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1544:                                             ; preds = %1516
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %18) #10
  store i16 0, ptr %18, align 2, !tbaa !19
  %1545 = load i32, ptr @test_count, align 4, !tbaa !5
  %1546 = add nsw i32 %1545, 1
  store i32 %1546, ptr @test_count, align 4, !tbaa !5
  %1547 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %15, ptr noundef nonnull %18) #10
  %1548 = icmp eq i32 %1547, -1
  br i1 %1548, label %1549, label %1573

1549:                                             ; preds = %1544
  %1550 = tail call ptr @__errno_location() #11
  %1551 = load i32, ptr %1550, align 4, !tbaa !5
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = call i32 @s2n_print_stacktrace(ptr noundef %1552) #10
  %1554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1555 = trunc nuw i8 %1554 to i1
  br i1 %1555, label %1556, label %1560

1556:                                             ; preds = %1549
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = call i32 @fileno(ptr noundef %1557) #10
  %1559 = call i32 @isatty(i32 noundef %1558) #10
  %.not841 = icmp eq i32 %1559, 0
  br i1 %.not841, label %1560, label %1561

1560:                                             ; preds = %1556, %1549
  br label %1561

1561:                                             ; preds = %1556, %1560
  %.str.5.sink1481 = phi ptr [ @.str.5, %1560 ], [ @.str.2, %1556 ]
  store i32 %1551, ptr %1550, align 4, !tbaa !5
  %1562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1563 = load i32, ptr @test_count, align 4, !tbaa !5
  %1564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call ptr @s2n_strerror(i32 noundef %1565, ptr noundef nonnull @.str.4) #10
  %1567 = load i32, ptr %1564, align 4, !tbaa !5
  %1568 = call ptr @s2n_strerror_debug(i32 noundef %1567, ptr noundef nonnull @.str.4) #10
  %1569 = load i32, ptr %1550, align 4, !tbaa !5
  %1570 = call ptr @strerror(i32 noundef %1569) #10
  %1571 = load i32, ptr %1550, align 4, !tbaa !5
  %1572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1562, ptr noundef nonnull %.str.5.sink1481, i32 noundef %1563, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %1566, ptr noundef %1568, ptr noundef %1570, i32 noundef %1571) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1573:                                             ; preds = %1544
  %1574 = load i32, ptr @test_count, align 4, !tbaa !5
  %1575 = add nsw i32 %1574, 1
  store i32 %1575, ptr @test_count, align 4, !tbaa !5
  %1576 = load i16, ptr %18, align 2, !tbaa !19
  %1577 = zext i16 %1576 to i32
  %1578 = getelementptr inbounds i8, ptr %15, i64 28
  %1579 = load i32, ptr %1578, align 4, !tbaa !20
  %1580 = getelementptr inbounds i8, ptr %15, i64 24
  %1581 = load i32, ptr %1580, align 8, !tbaa !23
  %1582 = sub i32 %1579, %1581
  %1583 = icmp eq i32 %1582, %1577
  br i1 %1583, label %1608, label %1584

1584:                                             ; preds = %1573
  %1585 = tail call ptr @__errno_location() #11
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = call i32 @s2n_print_stacktrace(ptr noundef %1587) #10
  %1589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1590 = trunc nuw i8 %1589 to i1
  br i1 %1590, label %1591, label %1595

1591:                                             ; preds = %1584
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = call i32 @fileno(ptr noundef %1592) #10
  %1594 = call i32 @isatty(i32 noundef %1593) #10
  %.not666 = icmp eq i32 %1594, 0
  br i1 %.not666, label %1595, label %1596

1595:                                             ; preds = %1591, %1584
  br label %1596

1596:                                             ; preds = %1591, %1595
  %.str.5.sink1492 = phi ptr [ @.str.5, %1595 ], [ @.str.2, %1591 ]
  store i32 %1586, ptr %1585, align 4, !tbaa !5
  %1597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1598 = load i32, ptr @test_count, align 4, !tbaa !5
  %1599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  %1601 = call ptr @s2n_strerror(i32 noundef %1600, ptr noundef nonnull @.str.4) #10
  %1602 = load i32, ptr %1599, align 4, !tbaa !5
  %1603 = call ptr @s2n_strerror_debug(i32 noundef %1602, ptr noundef nonnull @.str.4) #10
  %1604 = load i32, ptr %1585, align 4, !tbaa !5
  %1605 = call ptr @strerror(i32 noundef %1604) #10
  %1606 = load i32, ptr %1585, align 4, !tbaa !5
  %1607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1597, ptr noundef nonnull %.str.5.sink1492, i32 noundef %1598, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1601, ptr noundef %1603, ptr noundef %1605, i32 noundef %1606) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1608:                                             ; preds = %1573
  %1609 = add nsw i32 %1574, 2
  store i32 %1609, ptr @test_count, align 4, !tbaa !5
  %1610 = zext i16 %1576 to i64
  %1611 = load ptr, ptr %16, align 8, !tbaa !9
  %1612 = load i8, ptr %1611, align 8, !tbaa !24
  %1613 = zext i8 %1612 to i64
  %1614 = shl nuw nsw i64 %1613, 1
  %1615 = icmp eq i64 %1614, %1610
  br i1 %1615, label %1640, label %1616

1616:                                             ; preds = %1608
  %1617 = tail call ptr @__errno_location() #11
  %1618 = load i32, ptr %1617, align 4, !tbaa !5
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = call i32 @s2n_print_stacktrace(ptr noundef %1619) #10
  %1621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1622 = trunc nuw i8 %1621 to i1
  br i1 %1622, label %1623, label %1627

1623:                                             ; preds = %1616
  %1624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1625 = call i32 @fileno(ptr noundef %1624) #10
  %1626 = call i32 @isatty(i32 noundef %1625) #10
  %.not667 = icmp eq i32 %1626, 0
  br i1 %.not667, label %1627, label %1628

1627:                                             ; preds = %1623, %1616
  br label %1628

1628:                                             ; preds = %1623, %1627
  %.str.5.sink1503 = phi ptr [ @.str.5, %1627 ], [ @.str.2, %1623 ]
  store i32 %1618, ptr %1617, align 4, !tbaa !5
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = load i32, ptr @test_count, align 4, !tbaa !5
  %1631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  %1633 = call ptr @s2n_strerror(i32 noundef %1632, ptr noundef nonnull @.str.4) #10
  %1634 = load i32, ptr %1631, align 4, !tbaa !5
  %1635 = call ptr @s2n_strerror_debug(i32 noundef %1634, ptr noundef nonnull @.str.4) #10
  %1636 = load i32, ptr %1617, align 4, !tbaa !5
  %1637 = call ptr @strerror(i32 noundef %1636) #10
  %1638 = load i32, ptr %1617, align 4, !tbaa !5
  %1639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1629, ptr noundef nonnull %.str.5.sink1503, i32 noundef %1630, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1633, ptr noundef %1635, ptr noundef %1637, i32 noundef %1638) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1640:                                             ; preds = %1608
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %19) #10
  store i16 0, ptr %19, align 2, !tbaa !19
  %.not928 = icmp eq i8 %1612, 0
  br i1 %.not928, label %._crit_edge919, label %.lr.ph918

1641:                                             ; preds = %1678
  %1642 = add nuw nsw i64 %.0629916, 1
  %1643 = load i8, ptr %1682, align 8, !tbaa !24
  %1644 = zext i8 %1643 to i64
  %1645 = icmp ult i64 %1642, %1644
  br i1 %1645, label %.lr.ph918, label %._crit_edge919, !llvm.loop !71

._crit_edge919:                                   ; preds = %1641, %1640
  %1646 = phi i32 [ %1609, %1640 ], [ %1680, %1641 ]
  %1647 = add nsw i32 %1646, 1
  store i32 %1647, ptr @test_count, align 4, !tbaa !5
  %1648 = call i32 @s2n_connection_free(ptr noundef nonnull %1316) #10
  %1649 = icmp eq i32 %1648, -1
  br i1 %1649, label %1713, label %.critedge

.lr.ph918:                                        ; preds = %1640, %1641
  %1650 = phi i32 [ %1680, %1641 ], [ %1609, %1640 ]
  %.0629916 = phi i64 [ %1642, %1641 ], [ 0, %1640 ]
  %1651 = add nsw i32 %1650, 1
  store i32 %1651, ptr @test_count, align 4, !tbaa !5
  %1652 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %15, ptr noundef nonnull %19) #10
  %1653 = icmp eq i32 %1652, -1
  br i1 %1653, label %1654, label %1678

1654:                                             ; preds = %.lr.ph918
  %1655 = tail call ptr @__errno_location() #11
  %1656 = load i32, ptr %1655, align 4, !tbaa !5
  %1657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1658 = call i32 @s2n_print_stacktrace(ptr noundef %1657) #10
  %1659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1660 = trunc nuw i8 %1659 to i1
  br i1 %1660, label %1661, label %1665

1661:                                             ; preds = %1654
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = call i32 @fileno(ptr noundef %1662) #10
  %1664 = call i32 @isatty(i32 noundef %1663) #10
  %.not840 = icmp eq i32 %1664, 0
  br i1 %.not840, label %1665, label %1666

1665:                                             ; preds = %1661, %1654
  br label %1666

1666:                                             ; preds = %1661, %1665
  %.str.5.sink1514 = phi ptr [ @.str.5, %1665 ], [ @.str.2, %1661 ]
  store i32 %1656, ptr %1655, align 4, !tbaa !5
  %1667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1668 = load i32, ptr @test_count, align 4, !tbaa !5
  %1669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  %1671 = call ptr @s2n_strerror(i32 noundef %1670, ptr noundef nonnull @.str.4) #10
  %1672 = load i32, ptr %1669, align 4, !tbaa !5
  %1673 = call ptr @s2n_strerror_debug(i32 noundef %1672, ptr noundef nonnull @.str.4) #10
  %1674 = load i32, ptr %1655, align 4, !tbaa !5
  %1675 = call ptr @strerror(i32 noundef %1674) #10
  %1676 = load i32, ptr %1655, align 4, !tbaa !5
  %1677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1667, ptr noundef nonnull %.str.5.sink1514, i32 noundef %1668, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %1671, ptr noundef %1673, ptr noundef %1675, i32 noundef %1676) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1678:                                             ; preds = %.lr.ph918
  %1679 = load i32, ptr @test_count, align 4, !tbaa !5
  %1680 = add nsw i32 %1679, 1
  store i32 %1680, ptr @test_count, align 4, !tbaa !5
  %1681 = load i16, ptr %19, align 2, !tbaa !19
  %1682 = load ptr, ptr %16, align 8, !tbaa !9
  %1683 = getelementptr inbounds i8, ptr %1682, i64 8
  %1684 = load ptr, ptr %1683, align 8, !tbaa !28
  %1685 = getelementptr inbounds ptr, ptr %1684, i64 %.0629916
  %1686 = load ptr, ptr %1685, align 8, !tbaa !9
  %1687 = load i16, ptr %1686, align 8, !tbaa !29
  %1688 = icmp eq i16 %1681, %1687
  br i1 %1688, label %1641, label %1689

1689:                                             ; preds = %1678
  %1690 = tail call ptr @__errno_location() #11
  %1691 = load i32, ptr %1690, align 4, !tbaa !5
  %1692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1693 = call i32 @s2n_print_stacktrace(ptr noundef %1692) #10
  %1694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1695 = trunc nuw i8 %1694 to i1
  br i1 %1695, label %1696, label %1700

1696:                                             ; preds = %1689
  %1697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1698 = call i32 @fileno(ptr noundef %1697) #10
  %1699 = call i32 @isatty(i32 noundef %1698) #10
  %.not839 = icmp eq i32 %1699, 0
  br i1 %.not839, label %1700, label %1701

1700:                                             ; preds = %1696, %1689
  br label %1701

1701:                                             ; preds = %1696, %1700
  %.str.5.sink1525 = phi ptr [ @.str.5, %1700 ], [ @.str.2, %1696 ]
  store i32 %1691, ptr %1690, align 4, !tbaa !5
  %1702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1703 = load i32, ptr @test_count, align 4, !tbaa !5
  %1704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1705 = load i32, ptr %1704, align 4, !tbaa !5
  %1706 = call ptr @s2n_strerror(i32 noundef %1705, ptr noundef nonnull @.str.4) #10
  %1707 = load i32, ptr %1704, align 4, !tbaa !5
  %1708 = call ptr @s2n_strerror_debug(i32 noundef %1707, ptr noundef nonnull @.str.4) #10
  %1709 = load i32, ptr %1690, align 4, !tbaa !5
  %1710 = call ptr @strerror(i32 noundef %1709) #10
  %1711 = load i32, ptr %1690, align 4, !tbaa !5
  %1712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1702, ptr noundef nonnull %.str.5.sink1525, i32 noundef %1703, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1706, ptr noundef %1708, ptr noundef %1710, i32 noundef %1711) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1713:                                             ; preds = %._crit_edge919
  %1714 = tail call ptr @__errno_location() #11
  %1715 = load i32, ptr %1714, align 4, !tbaa !5
  %1716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1717 = call i32 @s2n_print_stacktrace(ptr noundef %1716) #10
  %1718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1719 = trunc nuw i8 %1718 to i1
  br i1 %1719, label %1720, label %1724

1720:                                             ; preds = %1713
  %1721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1722 = call i32 @fileno(ptr noundef %1721) #10
  %1723 = call i32 @isatty(i32 noundef %1722) #10
  %.not838 = icmp eq i32 %1723, 0
  br i1 %.not838, label %1724, label %1725

1724:                                             ; preds = %1720, %1713
  br label %1725

1725:                                             ; preds = %1720, %1724
  %.str.5.sink1536 = phi ptr [ @.str.5, %1724 ], [ @.str.2, %1720 ]
  store i32 %1715, ptr %1714, align 4, !tbaa !5
  %1726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1727 = load i32, ptr @test_count, align 4, !tbaa !5
  %1728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = call ptr @s2n_strerror(i32 noundef %1729, ptr noundef nonnull @.str.4) #10
  %1731 = load i32, ptr %1728, align 4, !tbaa !5
  %1732 = call ptr @s2n_strerror_debug(i32 noundef %1731, ptr noundef nonnull @.str.4) #10
  %1733 = load i32, ptr %1714, align 4, !tbaa !5
  %1734 = call ptr @strerror(i32 noundef %1733) #10
  %1735 = load i32, ptr %1714, align 4, !tbaa !5
  %1736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1726, ptr noundef nonnull %.str.5.sink1536, i32 noundef %1727, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1730, ptr noundef %1732, ptr noundef %1734, i32 noundef %1735) #12
  call void @exit(i32 noundef 1) #13
  unreachable

.critedge:                                        ; preds = %._crit_edge919
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %19) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #10
  %1737 = call i32 @s2n_stuffer_free(ptr noundef nonnull %15) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #10
  %1738 = load i32, ptr @test_count, align 4, !tbaa !5
  %1739 = add nsw i32 %1738, 1
  store i32 %1739, ptr @test_count, align 4, !tbaa !5
  %1740 = call i32 (...) @s2n_enable_tls13_in_test() #10
  %1741 = icmp eq i32 %1740, -1
  br i1 %1741, label %1742, label %1766

1742:                                             ; preds = %.critedge
  %1743 = tail call ptr @__errno_location() #11
  %1744 = load i32, ptr %1743, align 4, !tbaa !5
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = call i32 @s2n_print_stacktrace(ptr noundef %1745) #10
  %1747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1748 = trunc nuw i8 %1747 to i1
  br i1 %1748, label %1749, label %1753

1749:                                             ; preds = %1742
  %1750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1751 = call i32 @fileno(ptr noundef %1750) #10
  %1752 = call i32 @isatty(i32 noundef %1751) #10
  %.not837 = icmp eq i32 %1752, 0
  br i1 %.not837, label %1753, label %1754

1753:                                             ; preds = %1749, %1742
  br label %1754

1754:                                             ; preds = %1749, %1753
  %.str.5.sink1547 = phi ptr [ @.str.5, %1753 ], [ @.str.2, %1749 ]
  store i32 %1744, ptr %1743, align 4, !tbaa !5
  %1755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1756 = load i32, ptr @test_count, align 4, !tbaa !5
  %1757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  %1759 = call ptr @s2n_strerror(i32 noundef %1758, ptr noundef nonnull @.str.4) #10
  %1760 = load i32, ptr %1757, align 4, !tbaa !5
  %1761 = call ptr @s2n_strerror_debug(i32 noundef %1760, ptr noundef nonnull @.str.4) #10
  %1762 = load i32, ptr %1743, align 4, !tbaa !5
  %1763 = call ptr @strerror(i32 noundef %1762) #10
  %1764 = load i32, ptr %1743, align 4, !tbaa !5
  %1765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1755, ptr noundef nonnull %.str.5.sink1547, i32 noundef %1756, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %1759, ptr noundef %1761, ptr noundef %1763, i32 noundef %1764) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1766:                                             ; preds = %.critedge
  %1767 = load i32, ptr @test_count, align 4, !tbaa !5
  %1768 = add nsw i32 %1767, 1
  store i32 %1768, ptr @test_count, align 4, !tbaa !5
  %1769 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %1770 = icmp eq ptr %1769, null
  br i1 %1770, label %1771, label %1795

1771:                                             ; preds = %1766
  %1772 = tail call ptr @__errno_location() #11
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1775 = call i32 @s2n_print_stacktrace(ptr noundef %1774) #10
  %1776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1777 = trunc nuw i8 %1776 to i1
  br i1 %1777, label %1778, label %1782

1778:                                             ; preds = %1771
  %1779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1780 = call i32 @fileno(ptr noundef %1779) #10
  %1781 = call i32 @isatty(i32 noundef %1780) #10
  %.not836 = icmp eq i32 %1781, 0
  br i1 %.not836, label %1782, label %1783

1782:                                             ; preds = %1778, %1771
  br label %1783

1783:                                             ; preds = %1778, %1782
  %.str.5.sink1558 = phi ptr [ @.str.5, %1782 ], [ @.str.2, %1778 ]
  store i32 %1773, ptr %1772, align 4, !tbaa !5
  %1784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1785 = load i32, ptr @test_count, align 4, !tbaa !5
  %1786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1787 = load i32, ptr %1786, align 4, !tbaa !5
  %1788 = call ptr @s2n_strerror(i32 noundef %1787, ptr noundef nonnull @.str.4) #10
  %1789 = load i32, ptr %1786, align 4, !tbaa !5
  %1790 = call ptr @s2n_strerror_debug(i32 noundef %1789, ptr noundef nonnull @.str.4) #10
  %1791 = load i32, ptr %1772, align 4, !tbaa !5
  %1792 = call ptr @strerror(i32 noundef %1791) #10
  %1793 = load i32, ptr %1772, align 4, !tbaa !5
  %1794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1784, ptr noundef nonnull %.str.5.sink1558, i32 noundef %1785, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %1788, ptr noundef %1790, ptr noundef %1792, i32 noundef %1793) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1795:                                             ; preds = %1766
  %1796 = getelementptr inbounds i8, ptr %1769, i64 16
  store ptr %7, ptr %1796, align 8, !tbaa !43
  %1797 = load i32, ptr @test_count, align 4, !tbaa !5
  %1798 = add nsw i32 %1797, 1
  store i32 %1798, ptr @test_count, align 4, !tbaa !5
  %1799 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %1800 = icmp eq ptr %1799, null
  br i1 %1800, label %1801, label %1825

1801:                                             ; preds = %1795
  %1802 = tail call ptr @__errno_location() #11
  %1803 = load i32, ptr %1802, align 4, !tbaa !5
  %1804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1805 = call i32 @s2n_print_stacktrace(ptr noundef %1804) #10
  %1806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1807 = trunc nuw i8 %1806 to i1
  br i1 %1807, label %1808, label %1812

1808:                                             ; preds = %1801
  %1809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1810 = call i32 @fileno(ptr noundef %1809) #10
  %1811 = call i32 @isatty(i32 noundef %1810) #10
  %.not835 = icmp eq i32 %1811, 0
  br i1 %.not835, label %1812, label %1813

1812:                                             ; preds = %1808, %1801
  br label %1813

1813:                                             ; preds = %1808, %1812
  %.str.5.sink1569 = phi ptr [ @.str.5, %1812 ], [ @.str.2, %1808 ]
  store i32 %1803, ptr %1802, align 4, !tbaa !5
  %1814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1815 = load i32, ptr @test_count, align 4, !tbaa !5
  %1816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  %1818 = call ptr @s2n_strerror(i32 noundef %1817, ptr noundef nonnull @.str.4) #10
  %1819 = load i32, ptr %1816, align 4, !tbaa !5
  %1820 = call ptr @s2n_strerror_debug(i32 noundef %1819, ptr noundef nonnull @.str.4) #10
  %1821 = load i32, ptr %1802, align 4, !tbaa !5
  %1822 = call ptr @strerror(i32 noundef %1821) #10
  %1823 = load i32, ptr %1802, align 4, !tbaa !5
  %1824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1814, ptr noundef nonnull %.str.5.sink1569, i32 noundef %1815, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1818, ptr noundef %1820, ptr noundef %1822, i32 noundef %1823) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1825:                                             ; preds = %1795
  %1826 = getelementptr inbounds i8, ptr %1799, i64 16
  store ptr %7, ptr %1826, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %20) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %20, i8 0, i64 40, i1 false)
  %1827 = load i32, ptr @test_count, align 4, !tbaa !5
  %1828 = add nsw i32 %1827, 1
  store i32 %1828, ptr @test_count, align 4, !tbaa !5
  %1829 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %20, i32 noundef 0) #10
  %1830 = icmp eq i32 %1829, -1
  br i1 %1830, label %1831, label %1855

1831:                                             ; preds = %1825
  %1832 = tail call ptr @__errno_location() #11
  %1833 = load i32, ptr %1832, align 4, !tbaa !5
  %1834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1835 = call i32 @s2n_print_stacktrace(ptr noundef %1834) #10
  %1836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1837 = trunc nuw i8 %1836 to i1
  br i1 %1837, label %1838, label %1842

1838:                                             ; preds = %1831
  %1839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1840 = call i32 @fileno(ptr noundef %1839) #10
  %1841 = call i32 @isatty(i32 noundef %1840) #10
  %.not834 = icmp eq i32 %1841, 0
  br i1 %.not834, label %1842, label %1843

1842:                                             ; preds = %1838, %1831
  br label %1843

1843:                                             ; preds = %1838, %1842
  %.str.5.sink1580 = phi ptr [ @.str.5, %1842 ], [ @.str.2, %1838 ]
  store i32 %1833, ptr %1832, align 4, !tbaa !5
  %1844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1845 = load i32, ptr @test_count, align 4, !tbaa !5
  %1846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = call ptr @s2n_strerror(i32 noundef %1847, ptr noundef nonnull @.str.4) #10
  %1849 = load i32, ptr %1846, align 4, !tbaa !5
  %1850 = call ptr @s2n_strerror_debug(i32 noundef %1849, ptr noundef nonnull @.str.4) #10
  %1851 = load i32, ptr %1832, align 4, !tbaa !5
  %1852 = call ptr @strerror(i32 noundef %1851) #10
  %1853 = load i32, ptr %1832, align 4, !tbaa !5
  %1854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1844, ptr noundef nonnull %.str.5.sink1580, i32 noundef %1845, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %1848, ptr noundef %1850, ptr noundef %1852, i32 noundef %1853) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1855:                                             ; preds = %1825
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #10
  store ptr null, ptr %21, align 8, !tbaa !9
  %1856 = load i32, ptr @test_count, align 4, !tbaa !5
  %1857 = add nsw i32 %1856, 1
  store i32 %1857, ptr @test_count, align 4, !tbaa !5
  %1858 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %1799, ptr noundef nonnull %21) #10
  %1859 = icmp eq i32 %1858, -1
  br i1 %1859, label %1860, label %1884

1860:                                             ; preds = %1855
  %1861 = tail call ptr @__errno_location() #11
  %1862 = load i32, ptr %1861, align 4, !tbaa !5
  %1863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1864 = call i32 @s2n_print_stacktrace(ptr noundef %1863) #10
  %1865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1866 = trunc nuw i8 %1865 to i1
  br i1 %1866, label %1867, label %1871

1867:                                             ; preds = %1860
  %1868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1869 = call i32 @fileno(ptr noundef %1868) #10
  %1870 = call i32 @isatty(i32 noundef %1869) #10
  %.not833 = icmp eq i32 %1870, 0
  br i1 %.not833, label %1871, label %1872

1871:                                             ; preds = %1867, %1860
  br label %1872

1872:                                             ; preds = %1867, %1871
  %.str.5.sink1591 = phi ptr [ @.str.5, %1871 ], [ @.str.2, %1867 ]
  store i32 %1862, ptr %1861, align 4, !tbaa !5
  %1873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1874 = load i32, ptr @test_count, align 4, !tbaa !5
  %1875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1876 = load i32, ptr %1875, align 4, !tbaa !5
  %1877 = call ptr @s2n_strerror(i32 noundef %1876, ptr noundef nonnull @.str.4) #10
  %1878 = load i32, ptr %1875, align 4, !tbaa !5
  %1879 = call ptr @s2n_strerror_debug(i32 noundef %1878, ptr noundef nonnull @.str.4) #10
  %1880 = load i32, ptr %1861, align 4, !tbaa !5
  %1881 = call ptr @strerror(i32 noundef %1880) #10
  %1882 = load i32, ptr %1861, align 4, !tbaa !5
  %1883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1873, ptr noundef nonnull %.str.5.sink1591, i32 noundef %1874, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1877, ptr noundef %1879, ptr noundef %1881, i32 noundef %1882) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1884:                                             ; preds = %1855
  %1885 = load i32, ptr @test_count, align 4, !tbaa !5
  %1886 = add nsw i32 %1885, 1
  store i32 %1886, ptr @test_count, align 4, !tbaa !5
  %1887 = load ptr, ptr %21, align 8, !tbaa !9
  %1888 = icmp eq ptr %1887, null
  br i1 %1888, label %1889, label %1913

1889:                                             ; preds = %1884
  %1890 = tail call ptr @__errno_location() #11
  %1891 = load i32, ptr %1890, align 4, !tbaa !5
  %1892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1893 = call i32 @s2n_print_stacktrace(ptr noundef %1892) #10
  %1894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1895 = trunc nuw i8 %1894 to i1
  br i1 %1895, label %1896, label %1900

1896:                                             ; preds = %1889
  %1897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1898 = call i32 @fileno(ptr noundef %1897) #10
  %1899 = call i32 @isatty(i32 noundef %1898) #10
  %.not832 = icmp eq i32 %1899, 0
  br i1 %.not832, label %1900, label %1901

1900:                                             ; preds = %1896, %1889
  br label %1901

1901:                                             ; preds = %1896, %1900
  %.str.5.sink1602 = phi ptr [ @.str.5, %1900 ], [ @.str.2, %1896 ]
  store i32 %1891, ptr %1890, align 4, !tbaa !5
  %1902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1903 = load i32, ptr @test_count, align 4, !tbaa !5
  %1904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  %1906 = call ptr @s2n_strerror(i32 noundef %1905, ptr noundef nonnull @.str.4) #10
  %1907 = load i32, ptr %1904, align 4, !tbaa !5
  %1908 = call ptr @s2n_strerror_debug(i32 noundef %1907, ptr noundef nonnull @.str.4) #10
  %1909 = load i32, ptr %1890, align 4, !tbaa !5
  %1910 = call ptr @strerror(i32 noundef %1909) #10
  %1911 = load i32, ptr %1890, align 4, !tbaa !5
  %1912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1902, ptr noundef nonnull %.str.5.sink1602, i32 noundef %1903, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 207, ptr noundef %1906, ptr noundef %1908, ptr noundef %1910, i32 noundef %1911) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1913:                                             ; preds = %1884
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #10
  store ptr null, ptr %22, align 8, !tbaa !9
  %1914 = add nsw i32 %1885, 2
  store i32 %1914, ptr @test_count, align 4, !tbaa !5
  %1915 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %1799, ptr noundef nonnull %22) #10
  %1916 = icmp eq i32 %1915, -1
  br i1 %1916, label %1917, label %1941

1917:                                             ; preds = %1913
  %1918 = tail call ptr @__errno_location() #11
  %1919 = load i32, ptr %1918, align 4, !tbaa !5
  %1920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1921 = call i32 @s2n_print_stacktrace(ptr noundef %1920) #10
  %1922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1923 = trunc nuw i8 %1922 to i1
  br i1 %1923, label %1924, label %1928

1924:                                             ; preds = %1917
  %1925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1926 = call i32 @fileno(ptr noundef %1925) #10
  %1927 = call i32 @isatty(i32 noundef %1926) #10
  %.not831 = icmp eq i32 %1927, 0
  br i1 %.not831, label %1928, label %1929

1928:                                             ; preds = %1924, %1917
  br label %1929

1929:                                             ; preds = %1924, %1928
  %.str.5.sink1613 = phi ptr [ @.str.5, %1928 ], [ @.str.2, %1924 ]
  store i32 %1919, ptr %1918, align 4, !tbaa !5
  %1930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1931 = load i32, ptr @test_count, align 4, !tbaa !5
  %1932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1933 = load i32, ptr %1932, align 4, !tbaa !5
  %1934 = call ptr @s2n_strerror(i32 noundef %1933, ptr noundef nonnull @.str.4) #10
  %1935 = load i32, ptr %1932, align 4, !tbaa !5
  %1936 = call ptr @s2n_strerror_debug(i32 noundef %1935, ptr noundef nonnull @.str.4) #10
  %1937 = load i32, ptr %1918, align 4, !tbaa !5
  %1938 = call ptr @strerror(i32 noundef %1937) #10
  %1939 = load i32, ptr %1918, align 4, !tbaa !5
  %1940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1930, ptr noundef nonnull %.str.5.sink1613, i32 noundef %1931, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 210, ptr noundef %1934, ptr noundef %1936, ptr noundef %1938, i32 noundef %1939) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1941:                                             ; preds = %1913
  %1942 = load i32, ptr @test_count, align 4, !tbaa !5
  %1943 = add nsw i32 %1942, 1
  store i32 %1943, ptr @test_count, align 4, !tbaa !5
  %1944 = load ptr, ptr %22, align 8, !tbaa !9
  %1945 = icmp eq ptr %1944, null
  br i1 %1945, label %1946, label %1970

1946:                                             ; preds = %1941
  %1947 = tail call ptr @__errno_location() #11
  %1948 = load i32, ptr %1947, align 4, !tbaa !5
  %1949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1950 = call i32 @s2n_print_stacktrace(ptr noundef %1949) #10
  %1951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1952 = trunc nuw i8 %1951 to i1
  br i1 %1952, label %1953, label %1957

1953:                                             ; preds = %1946
  %1954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1955 = call i32 @fileno(ptr noundef %1954) #10
  %1956 = call i32 @isatty(i32 noundef %1955) #10
  %.not830 = icmp eq i32 %1956, 0
  br i1 %.not830, label %1957, label %1958

1957:                                             ; preds = %1953, %1946
  br label %1958

1958:                                             ; preds = %1953, %1957
  %.str.5.sink1624 = phi ptr [ @.str.5, %1957 ], [ @.str.2, %1953 ]
  store i32 %1948, ptr %1947, align 4, !tbaa !5
  %1959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1960 = load i32, ptr @test_count, align 4, !tbaa !5
  %1961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1962 = load i32, ptr %1961, align 4, !tbaa !5
  %1963 = call ptr @s2n_strerror(i32 noundef %1962, ptr noundef nonnull @.str.4) #10
  %1964 = load i32, ptr %1961, align 4, !tbaa !5
  %1965 = call ptr @s2n_strerror_debug(i32 noundef %1964, ptr noundef nonnull @.str.4) #10
  %1966 = load i32, ptr %1947, align 4, !tbaa !5
  %1967 = call ptr @strerror(i32 noundef %1966) #10
  %1968 = load i32, ptr %1947, align 4, !tbaa !5
  %1969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1959, ptr noundef nonnull %.str.5.sink1624, i32 noundef %1960, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 211, ptr noundef %1963, ptr noundef %1965, ptr noundef %1967, i32 noundef %1968) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1970:                                             ; preds = %1941
  %1971 = add nsw i32 %1942, 2
  store i32 %1971, ptr @test_count, align 4, !tbaa !5
  %1972 = call i32 %478(ptr noundef nonnull %1769, ptr noundef nonnull %20) #10
  %1973 = icmp eq i32 %1972, -1
  br i1 %1973, label %1974, label %1998

1974:                                             ; preds = %1970
  %1975 = tail call ptr @__errno_location() #11
  %1976 = load i32, ptr %1975, align 4, !tbaa !5
  %1977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1978 = call i32 @s2n_print_stacktrace(ptr noundef %1977) #10
  %1979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1980 = trunc nuw i8 %1979 to i1
  br i1 %1980, label %1981, label %1985

1981:                                             ; preds = %1974
  %1982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1983 = call i32 @fileno(ptr noundef %1982) #10
  %1984 = call i32 @isatty(i32 noundef %1983) #10
  %.not829 = icmp eq i32 %1984, 0
  br i1 %.not829, label %1985, label %1986

1985:                                             ; preds = %1981, %1974
  br label %1986

1986:                                             ; preds = %1981, %1985
  %.str.5.sink1635 = phi ptr [ @.str.5, %1985 ], [ @.str.2, %1981 ]
  store i32 %1976, ptr %1975, align 4, !tbaa !5
  %1987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1988 = load i32, ptr @test_count, align 4, !tbaa !5
  %1989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1990 = load i32, ptr %1989, align 4, !tbaa !5
  %1991 = call ptr @s2n_strerror(i32 noundef %1990, ptr noundef nonnull @.str.4) #10
  %1992 = load i32, ptr %1989, align 4, !tbaa !5
  %1993 = call ptr @s2n_strerror_debug(i32 noundef %1992, ptr noundef nonnull @.str.4) #10
  %1994 = load i32, ptr %1975, align 4, !tbaa !5
  %1995 = call ptr @strerror(i32 noundef %1994) #10
  %1996 = load i32, ptr %1975, align 4, !tbaa !5
  %1997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1987, ptr noundef nonnull %.str.5.sink1635, i32 noundef %1988, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 213, ptr noundef %1991, ptr noundef %1993, ptr noundef %1995, i32 noundef %1996) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1998:                                             ; preds = %1970
  %1999 = load i32, ptr @test_count, align 4, !tbaa !5
  %2000 = add nsw i32 %1999, 1
  store i32 %2000, ptr @test_count, align 4, !tbaa !5
  %2001 = getelementptr inbounds i8, ptr %1799, i64 656
  %2002 = load ptr, ptr %2001, align 8, !tbaa !72
  %2003 = icmp eq ptr %2002, null
  br i1 %2003, label %2028, label %2004

2004:                                             ; preds = %1998
  %2005 = tail call ptr @__errno_location() #11
  %2006 = load i32, ptr %2005, align 4, !tbaa !5
  %2007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2008 = call i32 @s2n_print_stacktrace(ptr noundef %2007) #10
  %2009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2010 = trunc nuw i8 %2009 to i1
  br i1 %2010, label %2011, label %2015

2011:                                             ; preds = %2004
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = call i32 @fileno(ptr noundef %2012) #10
  %2014 = call i32 @isatty(i32 noundef %2013) #10
  %.not810 = icmp eq i32 %2014, 0
  br i1 %.not810, label %2015, label %2016

2015:                                             ; preds = %2011, %2004
  br label %2016

2016:                                             ; preds = %2011, %2015
  %.str.5.sink1646 = phi ptr [ @.str.5, %2015 ], [ @.str.2, %2011 ]
  store i32 %2006, ptr %2005, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = load i32, ptr @test_count, align 4, !tbaa !5
  %2019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2020 = load i32, ptr %2019, align 4, !tbaa !5
  %2021 = call ptr @s2n_strerror(i32 noundef %2020, ptr noundef nonnull @.str.4) #10
  %2022 = load i32, ptr %2019, align 4, !tbaa !5
  %2023 = call ptr @s2n_strerror_debug(i32 noundef %2022, ptr noundef nonnull @.str.4) #10
  %2024 = load i32, ptr %2005, align 4, !tbaa !5
  %2025 = call ptr @strerror(i32 noundef %2024) #10
  %2026 = load i32, ptr %2005, align 4, !tbaa !5
  %2027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2017, ptr noundef nonnull %.str.5.sink1646, i32 noundef %2018, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %2021, ptr noundef %2023, ptr noundef %2025, i32 noundef %2026) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2028:                                             ; preds = %1998
  %2029 = add nsw i32 %1999, 2
  store i32 %2029, ptr @test_count, align 4, !tbaa !5
  %2030 = getelementptr inbounds i8, ptr %1799, i64 720
  %2031 = load ptr, ptr %2030, align 8, !tbaa !73
  %2032 = icmp eq ptr %2031, null
  br i1 %2032, label %2057, label %2033

2033:                                             ; preds = %2028
  %2034 = tail call ptr @__errno_location() #11
  %2035 = load i32, ptr %2034, align 4, !tbaa !5
  %2036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2037 = call i32 @s2n_print_stacktrace(ptr noundef %2036) #10
  %2038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2039 = trunc nuw i8 %2038 to i1
  br i1 %2039, label %2040, label %2044

2040:                                             ; preds = %2033
  %2041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2042 = call i32 @fileno(ptr noundef %2041) #10
  %2043 = call i32 @isatty(i32 noundef %2042) #10
  %.not811 = icmp eq i32 %2043, 0
  br i1 %.not811, label %2044, label %2045

2044:                                             ; preds = %2040, %2033
  br label %2045

2045:                                             ; preds = %2040, %2044
  %.str.5.sink1657 = phi ptr [ @.str.5, %2044 ], [ @.str.2, %2040 ]
  store i32 %2035, ptr %2034, align 4, !tbaa !5
  %2046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2047 = load i32, ptr @test_count, align 4, !tbaa !5
  %2048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2049 = load i32, ptr %2048, align 4, !tbaa !5
  %2050 = call ptr @s2n_strerror(i32 noundef %2049, ptr noundef nonnull @.str.4) #10
  %2051 = load i32, ptr %2048, align 4, !tbaa !5
  %2052 = call ptr @s2n_strerror_debug(i32 noundef %2051, ptr noundef nonnull @.str.4) #10
  %2053 = load i32, ptr %2034, align 4, !tbaa !5
  %2054 = call ptr @strerror(i32 noundef %2053) #10
  %2055 = load i32, ptr %2034, align 4, !tbaa !5
  %2056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2046, ptr noundef nonnull %.str.5.sink1657, i32 noundef %2047, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %2050, ptr noundef %2052, ptr noundef %2054, i32 noundef %2055) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2057:                                             ; preds = %2028
  %2058 = add nsw i32 %1999, 3
  store i32 %2058, ptr @test_count, align 4, !tbaa !5
  %2059 = getelementptr inbounds i8, ptr %1799, i64 816
  %2060 = load ptr, ptr %2059, align 8, !tbaa !74
  %2061 = icmp eq ptr %2060, null
  br i1 %2061, label %2086, label %2062

2062:                                             ; preds = %2057
  %2063 = tail call ptr @__errno_location() #11
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  %2065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2066 = call i32 @s2n_print_stacktrace(ptr noundef %2065) #10
  %2067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2068 = trunc nuw i8 %2067 to i1
  br i1 %2068, label %2069, label %2073

2069:                                             ; preds = %2062
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = call i32 @fileno(ptr noundef %2070) #10
  %2072 = call i32 @isatty(i32 noundef %2071) #10
  %.not812 = icmp eq i32 %2072, 0
  br i1 %.not812, label %2073, label %2074

2073:                                             ; preds = %2069, %2062
  br label %2074

2074:                                             ; preds = %2069, %2073
  %.str.5.sink1668 = phi ptr [ @.str.5, %2073 ], [ @.str.2, %2069 ]
  store i32 %2064, ptr %2063, align 4, !tbaa !5
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2076 = load i32, ptr @test_count, align 4, !tbaa !5
  %2077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = call ptr @s2n_strerror(i32 noundef %2078, ptr noundef nonnull @.str.4) #10
  %2080 = load i32, ptr %2077, align 4, !tbaa !5
  %2081 = call ptr @s2n_strerror_debug(i32 noundef %2080, ptr noundef nonnull @.str.4) #10
  %2082 = load i32, ptr %2063, align 4, !tbaa !5
  %2083 = call ptr @strerror(i32 noundef %2082) #10
  %2084 = load i32, ptr %2063, align 4, !tbaa !5
  %2085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2075, ptr noundef nonnull %.str.5.sink1668, i32 noundef %2076, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %2079, ptr noundef %2081, ptr noundef %2083, i32 noundef %2084) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2086:                                             ; preds = %2057
  %2087 = add nsw i32 %1999, 4
  store i32 %2087, ptr @test_count, align 4, !tbaa !5
  %2088 = getelementptr inbounds i8, ptr %1799, i64 728
  %2089 = load ptr, ptr %2088, align 8, !tbaa !75
  %2090 = icmp eq ptr %2089, null
  br i1 %2090, label %2115, label %2091

2091:                                             ; preds = %2086
  %2092 = tail call ptr @__errno_location() #11
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = call i32 @s2n_print_stacktrace(ptr noundef %2094) #10
  %2096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2097 = trunc nuw i8 %2096 to i1
  br i1 %2097, label %2098, label %2102

2098:                                             ; preds = %2091
  %2099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2100 = call i32 @fileno(ptr noundef %2099) #10
  %2101 = call i32 @isatty(i32 noundef %2100) #10
  %.not813 = icmp eq i32 %2101, 0
  br i1 %.not813, label %2102, label %2103

2102:                                             ; preds = %2098, %2091
  br label %2103

2103:                                             ; preds = %2098, %2102
  %.str.5.sink1679 = phi ptr [ @.str.5, %2102 ], [ @.str.2, %2098 ]
  store i32 %2093, ptr %2092, align 4, !tbaa !5
  %2104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2105 = load i32, ptr @test_count, align 4, !tbaa !5
  %2106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2107 = load i32, ptr %2106, align 4, !tbaa !5
  %2108 = call ptr @s2n_strerror(i32 noundef %2107, ptr noundef nonnull @.str.4) #10
  %2109 = load i32, ptr %2106, align 4, !tbaa !5
  %2110 = call ptr @s2n_strerror_debug(i32 noundef %2109, ptr noundef nonnull @.str.4) #10
  %2111 = load i32, ptr %2092, align 4, !tbaa !5
  %2112 = call ptr @strerror(i32 noundef %2111) #10
  %2113 = load i32, ptr %2092, align 4, !tbaa !5
  %2114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2104, ptr noundef nonnull %.str.5.sink1679, i32 noundef %2105, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 218, ptr noundef %2108, ptr noundef %2110, ptr noundef %2112, i32 noundef %2113) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2115:                                             ; preds = %2086
  %2116 = add nsw i32 %1999, 5
  store i32 %2116, ptr @test_count, align 4, !tbaa !5
  %2117 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_supported_groups_extension, i64 16), align 8, !tbaa !76
  %2118 = call i32 %2117(ptr noundef nonnull %1799, ptr noundef nonnull %20) #10
  %2119 = icmp eq i32 %2118, -1
  br i1 %2119, label %2120, label %2144

2120:                                             ; preds = %2115
  %2121 = tail call ptr @__errno_location() #11
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2124 = call i32 @s2n_print_stacktrace(ptr noundef %2123) #10
  %2125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2126 = trunc nuw i8 %2125 to i1
  br i1 %2126, label %2127, label %2131

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

2131:                                             ; preds = %2127, %2120
  br label %2132

2132:                                             ; preds = %2127, %2131
  %.str.5.sink1690 = phi ptr [ @.str.5, %2131 ], [ @.str.2, %2127 ]
  store i32 %2122, ptr %2121, align 4, !tbaa !5
  %2133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2134 = load i32, ptr @test_count, align 4, !tbaa !5
  %2135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2136 = load i32, ptr %2135, align 4, !tbaa !5
  %2137 = call ptr @s2n_strerror(i32 noundef %2136, ptr noundef nonnull @.str.4) #10
  %2138 = load i32, ptr %2135, align 4, !tbaa !5
  %2139 = call ptr @s2n_strerror_debug(i32 noundef %2138, ptr noundef nonnull @.str.4) #10
  %2140 = load i32, ptr %2121, align 4, !tbaa !5
  %2141 = call ptr @strerror(i32 noundef %2140) #10
  %2142 = load i32, ptr %2121, align 4, !tbaa !5
  %2143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2133, ptr noundef nonnull %.str.5.sink1690, i32 noundef %2134, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %2137, ptr noundef %2139, ptr noundef %2141, i32 noundef %2142) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2144:                                             ; preds = %2115
  %2145 = call zeroext i1 @s2n_pq_is_enabled() #10
  %2146 = load i32, ptr @test_count, align 4, !tbaa !5
  %2147 = add nsw i32 %2146, 1
  store i32 %2147, ptr @test_count, align 4, !tbaa !5
  %2148 = load ptr, ptr %2001, align 8, !tbaa !72
  br i1 %2145, label %2302, label %2149

2149:                                             ; preds = %2144
  %2150 = load ptr, ptr %21, align 8, !tbaa !9
  %2151 = getelementptr inbounds i8, ptr %2150, i64 8
  %2152 = load ptr, ptr %2151, align 8, !tbaa !28
  %2153 = load ptr, ptr %2152, align 8, !tbaa !9
  %2154 = icmp eq ptr %2148, %2153
  br i1 %2154, label %2179, label %2155

2155:                                             ; preds = %2149
  %2156 = tail call ptr @__errno_location() #11
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2159 = call i32 @s2n_print_stacktrace(ptr noundef %2158) #10
  %2160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2161 = trunc nuw i8 %2160 to i1
  br i1 %2161, label %2162, label %2166

2162:                                             ; preds = %2155
  %2163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2164 = call i32 @fileno(ptr noundef %2163) #10
  %2165 = call i32 @isatty(i32 noundef %2164) #10
  %.not814 = icmp eq i32 %2165, 0
  br i1 %.not814, label %2166, label %2167

2166:                                             ; preds = %2162, %2155
  br label %2167

2167:                                             ; preds = %2162, %2166
  %.str.5.sink1701 = phi ptr [ @.str.5, %2166 ], [ @.str.2, %2162 ]
  store i32 %2157, ptr %2156, align 4, !tbaa !5
  %2168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2169 = load i32, ptr @test_count, align 4, !tbaa !5
  %2170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2171 = load i32, ptr %2170, align 4, !tbaa !5
  %2172 = call ptr @s2n_strerror(i32 noundef %2171, ptr noundef nonnull @.str.4) #10
  %2173 = load i32, ptr %2170, align 4, !tbaa !5
  %2174 = call ptr @s2n_strerror_debug(i32 noundef %2173, ptr noundef nonnull @.str.4) #10
  %2175 = load i32, ptr %2156, align 4, !tbaa !5
  %2176 = call ptr @strerror(i32 noundef %2175) #10
  %2177 = load i32, ptr %2156, align 4, !tbaa !5
  %2178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2168, ptr noundef nonnull %.str.5.sink1701, i32 noundef %2169, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %2172, ptr noundef %2174, ptr noundef %2176, i32 noundef %2177) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2179:                                             ; preds = %2149
  %2180 = add nsw i32 %2146, 2
  store i32 %2180, ptr @test_count, align 4, !tbaa !5
  %2181 = load ptr, ptr %2030, align 8, !tbaa !73
  %2182 = icmp eq ptr %2181, null
  br i1 %2182, label %2207, label %2183

2183:                                             ; preds = %2179
  %2184 = tail call ptr @__errno_location() #11
  %2185 = load i32, ptr %2184, align 4, !tbaa !5
  %2186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2187 = call i32 @s2n_print_stacktrace(ptr noundef %2186) #10
  %2188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2189 = trunc nuw i8 %2188 to i1
  br i1 %2189, label %2190, label %2194

2190:                                             ; preds = %2183
  %2191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2192 = call i32 @fileno(ptr noundef %2191) #10
  %2193 = call i32 @isatty(i32 noundef %2192) #10
  %.not815 = icmp eq i32 %2193, 0
  br i1 %.not815, label %2194, label %2195

2194:                                             ; preds = %2190, %2183
  br label %2195

2195:                                             ; preds = %2190, %2194
  %.str.5.sink1712 = phi ptr [ @.str.5, %2194 ], [ @.str.2, %2190 ]
  store i32 %2185, ptr %2184, align 4, !tbaa !5
  %2196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2197 = load i32, ptr @test_count, align 4, !tbaa !5
  %2198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = call ptr @s2n_strerror(i32 noundef %2199, ptr noundef nonnull @.str.4) #10
  %2201 = load i32, ptr %2198, align 4, !tbaa !5
  %2202 = call ptr @s2n_strerror_debug(i32 noundef %2201, ptr noundef nonnull @.str.4) #10
  %2203 = load i32, ptr %2184, align 4, !tbaa !5
  %2204 = call ptr @strerror(i32 noundef %2203) #10
  %2205 = load i32, ptr %2184, align 4, !tbaa !5
  %2206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2196, ptr noundef nonnull %.str.5.sink1712, i32 noundef %2197, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 225, ptr noundef %2200, ptr noundef %2202, ptr noundef %2204, i32 noundef %2205) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2207:                                             ; preds = %2179
  %2208 = add nsw i32 %2146, 3
  store i32 %2208, ptr @test_count, align 4, !tbaa !5
  %2209 = load ptr, ptr %2059, align 8, !tbaa !74
  %2210 = icmp eq ptr %2209, null
  br i1 %2210, label %2235, label %2211

2211:                                             ; preds = %2207
  %2212 = tail call ptr @__errno_location() #11
  %2213 = load i32, ptr %2212, align 4, !tbaa !5
  %2214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2215 = call i32 @s2n_print_stacktrace(ptr noundef %2214) #10
  %2216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2217 = trunc nuw i8 %2216 to i1
  br i1 %2217, label %2218, label %2222

2218:                                             ; preds = %2211
  %2219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2220 = call i32 @fileno(ptr noundef %2219) #10
  %2221 = call i32 @isatty(i32 noundef %2220) #10
  %.not816 = icmp eq i32 %2221, 0
  br i1 %.not816, label %2222, label %2223

2222:                                             ; preds = %2218, %2211
  br label %2223

2223:                                             ; preds = %2218, %2222
  %.str.5.sink1723 = phi ptr [ @.str.5, %2222 ], [ @.str.2, %2218 ]
  store i32 %2213, ptr %2212, align 4, !tbaa !5
  %2224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2225 = load i32, ptr @test_count, align 4, !tbaa !5
  %2226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2227 = load i32, ptr %2226, align 4, !tbaa !5
  %2228 = call ptr @s2n_strerror(i32 noundef %2227, ptr noundef nonnull @.str.4) #10
  %2229 = load i32, ptr %2226, align 4, !tbaa !5
  %2230 = call ptr @s2n_strerror_debug(i32 noundef %2229, ptr noundef nonnull @.str.4) #10
  %2231 = load i32, ptr %2212, align 4, !tbaa !5
  %2232 = call ptr @strerror(i32 noundef %2231) #10
  %2233 = load i32, ptr %2212, align 4, !tbaa !5
  %2234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2224, ptr noundef nonnull %.str.5.sink1723, i32 noundef %2225, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 226, ptr noundef %2228, ptr noundef %2230, ptr noundef %2232, i32 noundef %2233) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2235:                                             ; preds = %2207
  %2236 = add nsw i32 %2146, 4
  store i32 %2236, ptr @test_count, align 4, !tbaa !5
  %2237 = load ptr, ptr %2088, align 8, !tbaa !75
  %2238 = icmp eq ptr %2237, null
  br i1 %2238, label %.preheader906, label %2246

.preheader906:                                    ; preds = %2235
  %2239 = load ptr, ptr %22, align 8, !tbaa !9
  %2240 = getelementptr inbounds i8, ptr %2239, i64 16
  %2241 = load i8, ptr %2240, align 8, !tbaa !31
  %2242 = zext i8 %2241 to i64
  %.not929 = icmp eq i8 %2241, 0
  br i1 %.not929, label %.loopexit, label %.lr.ph921

.lr.ph921:                                        ; preds = %.preheader906
  %2243 = getelementptr inbounds i8, ptr %1799, i64 944
  %2244 = zext i8 %2241 to i32
  %2245 = add i32 %2236, %2244
  br label %2272

2246:                                             ; preds = %2235
  %2247 = tail call ptr @__errno_location() #11
  %2248 = load i32, ptr %2247, align 4, !tbaa !5
  %2249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2250 = call i32 @s2n_print_stacktrace(ptr noundef %2249) #10
  %2251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2252 = trunc nuw i8 %2251 to i1
  br i1 %2252, label %2253, label %2257

2253:                                             ; preds = %2246
  %2254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2255 = call i32 @fileno(ptr noundef %2254) #10
  %2256 = call i32 @isatty(i32 noundef %2255) #10
  %.not817 = icmp eq i32 %2256, 0
  br i1 %.not817, label %2257, label %2258

2257:                                             ; preds = %2253, %2246
  br label %2258

2258:                                             ; preds = %2253, %2257
  %.str.5.sink1734 = phi ptr [ @.str.5, %2257 ], [ @.str.2, %2253 ]
  store i32 %2248, ptr %2247, align 4, !tbaa !5
  %2259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2260 = load i32, ptr @test_count, align 4, !tbaa !5
  %2261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2262 = load i32, ptr %2261, align 4, !tbaa !5
  %2263 = call ptr @s2n_strerror(i32 noundef %2262, ptr noundef nonnull @.str.4) #10
  %2264 = load i32, ptr %2261, align 4, !tbaa !5
  %2265 = call ptr @s2n_strerror_debug(i32 noundef %2264, ptr noundef nonnull @.str.4) #10
  %2266 = load i32, ptr %2247, align 4, !tbaa !5
  %2267 = call ptr @strerror(i32 noundef %2266) #10
  %2268 = load i32, ptr %2247, align 4, !tbaa !5
  %2269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2259, ptr noundef nonnull %.str.5.sink1734, i32 noundef %2260, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %2263, ptr noundef %2265, ptr noundef %2267, i32 noundef %2268) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2270:                                             ; preds = %2272
  %2271 = add nuw nsw i64 %.0637920, 1
  %exitcond.not = icmp eq i64 %2271, %2242
  br i1 %exitcond.not, label %.loopexit, label %2272, !llvm.loop !77

2272:                                             ; preds = %.lr.ph921, %2270
  %.0637920 = phi i64 [ 0, %.lr.ph921 ], [ %2271, %2270 ]
  %2273 = phi i32 [ %2236, %.lr.ph921 ], [ %2274, %2270 ]
  %2274 = add nsw i32 %2273, 1
  %2275 = getelementptr inbounds [8 x ptr], ptr %2243, i64 0, i64 %.0637920
  %2276 = load ptr, ptr %2275, align 8, !tbaa !9
  %2277 = icmp eq ptr %2276, null
  br i1 %2277, label %2270, label %2278

2278:                                             ; preds = %2272
  store i32 %2274, ptr @test_count, align 4, !tbaa !5
  %2279 = tail call ptr @__errno_location() #11
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2282 = call i32 @s2n_print_stacktrace(ptr noundef %2281) #10
  %2283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2284 = trunc nuw i8 %2283 to i1
  br i1 %2284, label %2285, label %2289

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

2289:                                             ; preds = %2285, %2278
  br label %2290

2290:                                             ; preds = %2285, %2289
  %.str.5.sink1745 = phi ptr [ @.str.5, %2289 ], [ @.str.2, %2285 ]
  store i32 %2280, ptr %2279, align 4, !tbaa !5
  %2291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2292 = load i32, ptr @test_count, align 4, !tbaa !5
  %2293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %2295 = call ptr @s2n_strerror(i32 noundef %2294, ptr noundef nonnull @.str.4) #10
  %2296 = load i32, ptr %2293, align 4, !tbaa !5
  %2297 = call ptr @s2n_strerror_debug(i32 noundef %2296, ptr noundef nonnull @.str.4) #10
  %2298 = load i32, ptr %2279, align 4, !tbaa !5
  %2299 = call ptr @strerror(i32 noundef %2298) #10
  %2300 = load i32, ptr %2279, align 4, !tbaa !5
  %2301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2291, ptr noundef nonnull %.str.5.sink1745, i32 noundef %2292, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %2295, ptr noundef %2297, ptr noundef %2299, i32 noundef %2300) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2302:                                             ; preds = %2144
  %2303 = icmp eq ptr %2148, null
  br i1 %2303, label %2328, label %2304

2304:                                             ; preds = %2302
  %2305 = tail call ptr @__errno_location() #11
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2308 = call i32 @s2n_print_stacktrace(ptr noundef %2307) #10
  %2309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2310 = trunc nuw i8 %2309 to i1
  br i1 %2310, label %2311, label %2315

2311:                                             ; preds = %2304
  %2312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2313 = call i32 @fileno(ptr noundef %2312) #10
  %2314 = call i32 @isatty(i32 noundef %2313) #10
  %.not819 = icmp eq i32 %2314, 0
  br i1 %.not819, label %2315, label %2316

2315:                                             ; preds = %2311, %2304
  br label %2316

2316:                                             ; preds = %2311, %2315
  %.str.5.sink1756 = phi ptr [ @.str.5, %2315 ], [ @.str.2, %2311 ]
  store i32 %2306, ptr %2305, align 4, !tbaa !5
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = load i32, ptr @test_count, align 4, !tbaa !5
  %2319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2320 = load i32, ptr %2319, align 4, !tbaa !5
  %2321 = call ptr @s2n_strerror(i32 noundef %2320, ptr noundef nonnull @.str.4) #10
  %2322 = load i32, ptr %2319, align 4, !tbaa !5
  %2323 = call ptr @s2n_strerror_debug(i32 noundef %2322, ptr noundef nonnull @.str.4) #10
  %2324 = load i32, ptr %2305, align 4, !tbaa !5
  %2325 = call ptr @strerror(i32 noundef %2324) #10
  %2326 = load i32, ptr %2305, align 4, !tbaa !5
  %2327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2317, ptr noundef nonnull %.str.5.sink1756, i32 noundef %2318, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %2321, ptr noundef %2323, ptr noundef %2325, i32 noundef %2326) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2328:                                             ; preds = %2302
  %2329 = add nsw i32 %2146, 2
  store i32 %2329, ptr @test_count, align 4, !tbaa !5
  %2330 = load ptr, ptr %2030, align 8, !tbaa !73
  %2331 = icmp eq ptr %2330, null
  br i1 %2331, label %2332, label %2356

2332:                                             ; preds = %2328
  %2333 = tail call ptr @__errno_location() #11
  %2334 = load i32, ptr %2333, align 4, !tbaa !5
  %2335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2336 = call i32 @s2n_print_stacktrace(ptr noundef %2335) #10
  %2337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2338 = trunc nuw i8 %2337 to i1
  br i1 %2338, label %2339, label %2343

2339:                                             ; preds = %2332
  %2340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2341 = call i32 @fileno(ptr noundef %2340) #10
  %2342 = call i32 @isatty(i32 noundef %2341) #10
  %.not827 = icmp eq i32 %2342, 0
  br i1 %.not827, label %2343, label %2344

2343:                                             ; preds = %2339, %2332
  br label %2344

2344:                                             ; preds = %2339, %2343
  %.str.5.sink1767 = phi ptr [ @.str.5, %2343 ], [ @.str.2, %2339 ]
  store i32 %2334, ptr %2333, align 4, !tbaa !5
  %2345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2346 = load i32, ptr @test_count, align 4, !tbaa !5
  %2347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2348 = load i32, ptr %2347, align 4, !tbaa !5
  %2349 = call ptr @s2n_strerror(i32 noundef %2348, ptr noundef nonnull @.str.4) #10
  %2350 = load i32, ptr %2347, align 4, !tbaa !5
  %2351 = call ptr @s2n_strerror_debug(i32 noundef %2350, ptr noundef nonnull @.str.4) #10
  %2352 = load i32, ptr %2333, align 4, !tbaa !5
  %2353 = call ptr @strerror(i32 noundef %2352) #10
  %2354 = load i32, ptr %2333, align 4, !tbaa !5
  %2355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2345, ptr noundef nonnull %.str.5.sink1767, i32 noundef %2346, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 234, ptr noundef %2349, ptr noundef %2351, ptr noundef %2353, i32 noundef %2354) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2356:                                             ; preds = %2328
  %2357 = load ptr, ptr %22, align 8, !tbaa !9
  %2358 = call ptr @s2n_kem_preferences_get_highest_priority_group(ptr noundef %2357) #10
  %2359 = load i32, ptr @test_count, align 4, !tbaa !5
  %2360 = add nsw i32 %2359, 1
  store i32 %2360, ptr @test_count, align 4, !tbaa !5
  %2361 = icmp eq ptr %2358, null
  br i1 %2361, label %2362, label %2386

2362:                                             ; preds = %2356
  %2363 = tail call ptr @__errno_location() #11
  %2364 = load i32, ptr %2363, align 4, !tbaa !5
  %2365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2366 = call i32 @s2n_print_stacktrace(ptr noundef %2365) #10
  %2367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2368 = trunc nuw i8 %2367 to i1
  br i1 %2368, label %2369, label %2373

2369:                                             ; preds = %2362
  %2370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2371 = call i32 @fileno(ptr noundef %2370) #10
  %2372 = call i32 @isatty(i32 noundef %2371) #10
  %.not826 = icmp eq i32 %2372, 0
  br i1 %.not826, label %2373, label %2374

2373:                                             ; preds = %2369, %2362
  br label %2374

2374:                                             ; preds = %2369, %2373
  %.str.5.sink1778 = phi ptr [ @.str.5, %2373 ], [ @.str.2, %2369 ]
  store i32 %2364, ptr %2363, align 4, !tbaa !5
  %2375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2376 = load i32, ptr @test_count, align 4, !tbaa !5
  %2377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2378 = load i32, ptr %2377, align 4, !tbaa !5
  %2379 = call ptr @s2n_strerror(i32 noundef %2378, ptr noundef nonnull @.str.4) #10
  %2380 = load i32, ptr %2377, align 4, !tbaa !5
  %2381 = call ptr @s2n_strerror_debug(i32 noundef %2380, ptr noundef nonnull @.str.4) #10
  %2382 = load i32, ptr %2363, align 4, !tbaa !5
  %2383 = call ptr @strerror(i32 noundef %2382) #10
  %2384 = load i32, ptr %2363, align 4, !tbaa !5
  %2385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2375, ptr noundef nonnull %.str.5.sink1778, i32 noundef %2376, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 236, ptr noundef %2379, ptr noundef %2381, ptr noundef %2383, i32 noundef %2384) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2386:                                             ; preds = %2356
  %2387 = add nsw i32 %2359, 2
  store i32 %2387, ptr @test_count, align 4, !tbaa !5
  %2388 = load ptr, ptr %2030, align 8, !tbaa !73
  %2389 = icmp eq ptr %2388, %2358
  br i1 %2389, label %2414, label %2390

2390:                                             ; preds = %2386
  %2391 = tail call ptr @__errno_location() #11
  %2392 = load i32, ptr %2391, align 4, !tbaa !5
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = call i32 @s2n_print_stacktrace(ptr noundef %2393) #10
  %2395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2396 = trunc nuw i8 %2395 to i1
  br i1 %2396, label %2397, label %2401

2397:                                             ; preds = %2390
  %2398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2399 = call i32 @fileno(ptr noundef %2398) #10
  %2400 = call i32 @isatty(i32 noundef %2399) #10
  %.not820 = icmp eq i32 %2400, 0
  br i1 %.not820, label %2401, label %2402

2401:                                             ; preds = %2397, %2390
  br label %2402

2402:                                             ; preds = %2397, %2401
  %.str.5.sink1789 = phi ptr [ @.str.5, %2401 ], [ @.str.2, %2397 ]
  store i32 %2392, ptr %2391, align 4, !tbaa !5
  %2403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2404 = load i32, ptr @test_count, align 4, !tbaa !5
  %2405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2406 = load i32, ptr %2405, align 4, !tbaa !5
  %2407 = call ptr @s2n_strerror(i32 noundef %2406, ptr noundef nonnull @.str.4) #10
  %2408 = load i32, ptr %2405, align 4, !tbaa !5
  %2409 = call ptr @s2n_strerror_debug(i32 noundef %2408, ptr noundef nonnull @.str.4) #10
  %2410 = load i32, ptr %2391, align 4, !tbaa !5
  %2411 = call ptr @strerror(i32 noundef %2410) #10
  %2412 = load i32, ptr %2391, align 4, !tbaa !5
  %2413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2403, ptr noundef nonnull %.str.5.sink1789, i32 noundef %2404, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %2407, ptr noundef %2409, ptr noundef %2411, i32 noundef %2412) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2414:                                             ; preds = %2386
  %2415 = add nsw i32 %2359, 3
  store i32 %2415, ptr @test_count, align 4, !tbaa !5
  %2416 = load ptr, ptr %2059, align 8, !tbaa !74
  %2417 = getelementptr inbounds i8, ptr %2358, i64 16
  %2418 = load ptr, ptr %2417, align 8, !tbaa !78
  %2419 = icmp eq ptr %2416, %2418
  br i1 %2419, label %2444, label %2420

2420:                                             ; preds = %2414
  %2421 = tail call ptr @__errno_location() #11
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2424 = call i32 @s2n_print_stacktrace(ptr noundef %2423) #10
  %2425 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2426 = trunc nuw i8 %2425 to i1
  br i1 %2426, label %2427, label %2431

2427:                                             ; preds = %2420
  %2428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2429 = call i32 @fileno(ptr noundef %2428) #10
  %2430 = call i32 @isatty(i32 noundef %2429) #10
  %.not821 = icmp eq i32 %2430, 0
  br i1 %.not821, label %2431, label %2432

2431:                                             ; preds = %2427, %2420
  br label %2432

2432:                                             ; preds = %2427, %2431
  %.str.5.sink1800 = phi ptr [ @.str.5, %2431 ], [ @.str.2, %2427 ]
  store i32 %2422, ptr %2421, align 4, !tbaa !5
  %2433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2434 = load i32, ptr @test_count, align 4, !tbaa !5
  %2435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call ptr @s2n_strerror(i32 noundef %2436, ptr noundef nonnull @.str.4) #10
  %2438 = load i32, ptr %2435, align 4, !tbaa !5
  %2439 = call ptr @s2n_strerror_debug(i32 noundef %2438, ptr noundef nonnull @.str.4) #10
  %2440 = load i32, ptr %2421, align 4, !tbaa !5
  %2441 = call ptr @strerror(i32 noundef %2440) #10
  %2442 = load i32, ptr %2421, align 4, !tbaa !5
  %2443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2433, ptr noundef nonnull %.str.5.sink1800, i32 noundef %2434, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 238, ptr noundef %2437, ptr noundef %2439, ptr noundef %2441, i32 noundef %2442) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2444:                                             ; preds = %2414
  %2445 = add nsw i32 %2359, 4
  store i32 %2445, ptr @test_count, align 4, !tbaa !5
  %2446 = load ptr, ptr %2088, align 8, !tbaa !75
  %2447 = getelementptr inbounds i8, ptr %2358, i64 24
  %2448 = load ptr, ptr %2447, align 8, !tbaa !79
  %2449 = icmp eq ptr %2446, %2448
  br i1 %2449, label %.loopexit, label %2450

2450:                                             ; preds = %2444
  %2451 = tail call ptr @__errno_location() #11
  %2452 = load i32, ptr %2451, align 4, !tbaa !5
  %2453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2454 = call i32 @s2n_print_stacktrace(ptr noundef %2453) #10
  %2455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2456 = trunc nuw i8 %2455 to i1
  br i1 %2456, label %2457, label %2461

2457:                                             ; preds = %2450
  %2458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2459 = call i32 @fileno(ptr noundef %2458) #10
  %2460 = call i32 @isatty(i32 noundef %2459) #10
  %.not822 = icmp eq i32 %2460, 0
  br i1 %.not822, label %2461, label %2462

2461:                                             ; preds = %2457, %2450
  br label %2462

2462:                                             ; preds = %2457, %2461
  %.str.5.sink1811 = phi ptr [ @.str.5, %2461 ], [ @.str.2, %2457 ]
  store i32 %2452, ptr %2451, align 4, !tbaa !5
  %2463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2464 = load i32, ptr @test_count, align 4, !tbaa !5
  %2465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call ptr @s2n_strerror(i32 noundef %2466, ptr noundef nonnull @.str.4) #10
  %2468 = load i32, ptr %2465, align 4, !tbaa !5
  %2469 = call ptr @s2n_strerror_debug(i32 noundef %2468, ptr noundef nonnull @.str.4) #10
  %2470 = load i32, ptr %2451, align 4, !tbaa !5
  %2471 = call ptr @strerror(i32 noundef %2470) #10
  %2472 = load i32, ptr %2451, align 4, !tbaa !5
  %2473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2463, ptr noundef nonnull %.str.5.sink1811, i32 noundef %2464, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 239, ptr noundef %2467, ptr noundef %2469, ptr noundef %2471, i32 noundef %2472) #12
  call void @exit(i32 noundef 1) #13
  unreachable

.loopexit:                                        ; preds = %2270, %.preheader906, %2444
  %2474 = phi i32 [ %2236, %.preheader906 ], [ %2445, %2444 ], [ %2245, %2270 ]
  %2475 = add nsw i32 %2474, 1
  store i32 %2475, ptr @test_count, align 4, !tbaa !5
  %2476 = call i32 @s2n_connection_free(ptr noundef nonnull %1769) #10
  %2477 = icmp eq i32 %2476, -1
  br i1 %2477, label %2478, label %2502

2478:                                             ; preds = %.loopexit
  %2479 = tail call ptr @__errno_location() #11
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2482 = call i32 @s2n_print_stacktrace(ptr noundef %2481) #10
  %2483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2484 = trunc nuw i8 %2483 to i1
  br i1 %2484, label %2485, label %2489

2485:                                             ; preds = %2478
  %2486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2487 = call i32 @fileno(ptr noundef %2486) #10
  %2488 = call i32 @isatty(i32 noundef %2487) #10
  %.not825 = icmp eq i32 %2488, 0
  br i1 %.not825, label %2489, label %2490

2489:                                             ; preds = %2485, %2478
  br label %2490

2490:                                             ; preds = %2485, %2489
  %.str.5.sink1822 = phi ptr [ @.str.5, %2489 ], [ @.str.2, %2485 ]
  store i32 %2480, ptr %2479, align 4, !tbaa !5
  %2491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2492 = load i32, ptr @test_count, align 4, !tbaa !5
  %2493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  %2495 = call ptr @s2n_strerror(i32 noundef %2494, ptr noundef nonnull @.str.4) #10
  %2496 = load i32, ptr %2493, align 4, !tbaa !5
  %2497 = call ptr @s2n_strerror_debug(i32 noundef %2496, ptr noundef nonnull @.str.4) #10
  %2498 = load i32, ptr %2479, align 4, !tbaa !5
  %2499 = call ptr @strerror(i32 noundef %2498) #10
  %2500 = load i32, ptr %2479, align 4, !tbaa !5
  %2501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2491, ptr noundef nonnull %.str.5.sink1822, i32 noundef %2492, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %2495, ptr noundef %2497, ptr noundef %2499, i32 noundef %2500) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2502:                                             ; preds = %.loopexit
  %2503 = load i32, ptr @test_count, align 4, !tbaa !5
  %2504 = add nsw i32 %2503, 1
  store i32 %2504, ptr @test_count, align 4, !tbaa !5
  %2505 = call i32 @s2n_connection_free(ptr noundef nonnull %1799) #10
  %2506 = icmp eq i32 %2505, -1
  br i1 %2506, label %2507, label %2531

2507:                                             ; preds = %2502
  %2508 = tail call ptr @__errno_location() #11
  %2509 = load i32, ptr %2508, align 4, !tbaa !5
  %2510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2511 = call i32 @s2n_print_stacktrace(ptr noundef %2510) #10
  %2512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2513 = trunc nuw i8 %2512 to i1
  br i1 %2513, label %2514, label %2518

2514:                                             ; preds = %2507
  %2515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2516 = call i32 @fileno(ptr noundef %2515) #10
  %2517 = call i32 @isatty(i32 noundef %2516) #10
  %.not824 = icmp eq i32 %2517, 0
  br i1 %.not824, label %2518, label %2519

2518:                                             ; preds = %2514, %2507
  br label %2519

2519:                                             ; preds = %2514, %2518
  %.str.5.sink1833 = phi ptr [ @.str.5, %2518 ], [ @.str.2, %2514 ]
  store i32 %2509, ptr %2508, align 4, !tbaa !5
  %2520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2521 = load i32, ptr @test_count, align 4, !tbaa !5
  %2522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2523 = load i32, ptr %2522, align 4, !tbaa !5
  %2524 = call ptr @s2n_strerror(i32 noundef %2523, ptr noundef nonnull @.str.4) #10
  %2525 = load i32, ptr %2522, align 4, !tbaa !5
  %2526 = call ptr @s2n_strerror_debug(i32 noundef %2525, ptr noundef nonnull @.str.4) #10
  %2527 = load i32, ptr %2508, align 4, !tbaa !5
  %2528 = call ptr @strerror(i32 noundef %2527) #10
  %2529 = load i32, ptr %2508, align 4, !tbaa !5
  %2530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2520, ptr noundef nonnull %.str.5.sink1833, i32 noundef %2521, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %2524, ptr noundef %2526, ptr noundef %2528, i32 noundef %2529) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2531:                                             ; preds = %2502
  %2532 = load i32, ptr @test_count, align 4, !tbaa !5
  %2533 = add nsw i32 %2532, 1
  store i32 %2533, ptr @test_count, align 4, !tbaa !5
  %2534 = call i32 (...) @s2n_disable_tls13_in_test() #10
  %2535 = icmp eq i32 %2534, -1
  br i1 %2535, label %2536, label %2560

2536:                                             ; preds = %2531
  %2537 = tail call ptr @__errno_location() #11
  %2538 = load i32, ptr %2537, align 4, !tbaa !5
  %2539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2540 = call i32 @s2n_print_stacktrace(ptr noundef %2539) #10
  %2541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2542 = trunc nuw i8 %2541 to i1
  br i1 %2542, label %2543, label %2547

2543:                                             ; preds = %2536
  %2544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2545 = call i32 @fileno(ptr noundef %2544) #10
  %2546 = call i32 @isatty(i32 noundef %2545) #10
  %.not823 = icmp eq i32 %2546, 0
  br i1 %.not823, label %2547, label %2548

2547:                                             ; preds = %2543, %2536
  br label %2548

2548:                                             ; preds = %2543, %2547
  %.str.5.sink1844 = phi ptr [ @.str.5, %2547 ], [ @.str.2, %2543 ]
  store i32 %2538, ptr %2537, align 4, !tbaa !5
  %2549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2550 = load i32, ptr @test_count, align 4, !tbaa !5
  %2551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2552 = load i32, ptr %2551, align 4, !tbaa !5
  %2553 = call ptr @s2n_strerror(i32 noundef %2552, ptr noundef nonnull @.str.4) #10
  %2554 = load i32, ptr %2551, align 4, !tbaa !5
  %2555 = call ptr @s2n_strerror_debug(i32 noundef %2554, ptr noundef nonnull @.str.4) #10
  %2556 = load i32, ptr %2537, align 4, !tbaa !5
  %2557 = call ptr @strerror(i32 noundef %2556) #10
  %2558 = load i32, ptr %2537, align 4, !tbaa !5
  %2559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2549, ptr noundef nonnull %.str.5.sink1844, i32 noundef %2550, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %2553, ptr noundef %2555, ptr noundef %2557, i32 noundef %2558) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2560:                                             ; preds = %2531
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #10
  %2561 = call i32 @s2n_stuffer_free(ptr noundef nonnull %20) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %23) #10
  store ptr %7, ptr %23, align 16, !tbaa !9
  %2562 = getelementptr inbounds i8, ptr %23, i64 8
  %2563 = getelementptr inbounds i8, ptr %23, i64 24
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %2562, i8 0, i64 16, i1 false)
  store ptr %7, ptr %2563, align 8, !tbaa !9
  %2564 = getelementptr inbounds i8, ptr %23, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %2564, i8 0, i64 16, i1 false)
  br label %2570

2565:                                             ; preds = %3243
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %23) #10
  %2566 = load i32, ptr @test_count, align 4, !tbaa !5
  %2567 = add nsw i32 %2566, 1
  store i32 %2567, ptr @test_count, align 4, !tbaa !5
  %2568 = call i32 (...) @s2n_enable_tls13_in_test() #10
  %2569 = icmp eq i32 %2568, -1
  br i1 %2569, label %3247, label %3271

2570:                                             ; preds = %2560, %3243
  %.0638923 = phi i64 [ 0, %2560 ], [ %3246, %3243 ]
  %2571 = load i32, ptr @test_count, align 4, !tbaa !5
  %2572 = add nsw i32 %2571, 1
  store i32 %2572, ptr @test_count, align 4, !tbaa !5
  %2573 = call i32 (...) @s2n_enable_tls13_in_test() #10
  %2574 = icmp eq i32 %2573, -1
  br i1 %2574, label %2575, label %2599

2575:                                             ; preds = %2570
  %2576 = tail call ptr @__errno_location() #11
  %2577 = load i32, ptr %2576, align 4, !tbaa !5
  %2578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2579 = call i32 @s2n_print_stacktrace(ptr noundef %2578) #10
  %2580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2581 = trunc nuw i8 %2580 to i1
  br i1 %2581, label %2582, label %2586

2582:                                             ; preds = %2575
  %2583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2584 = call i32 @fileno(ptr noundef %2583) #10
  %2585 = call i32 @isatty(i32 noundef %2584) #10
  %.not809 = icmp eq i32 %2585, 0
  br i1 %.not809, label %2586, label %2587

2586:                                             ; preds = %2582, %2575
  br label %2587

2587:                                             ; preds = %2582, %2586
  %.str.5.sink1855 = phi ptr [ @.str.5, %2586 ], [ @.str.2, %2582 ]
  store i32 %2577, ptr %2576, align 4, !tbaa !5
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = load i32, ptr @test_count, align 4, !tbaa !5
  %2590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2591 = load i32, ptr %2590, align 4, !tbaa !5
  %2592 = call ptr @s2n_strerror(i32 noundef %2591, ptr noundef nonnull @.str.4) #10
  %2593 = load i32, ptr %2590, align 4, !tbaa !5
  %2594 = call ptr @s2n_strerror_debug(i32 noundef %2593, ptr noundef nonnull @.str.4) #10
  %2595 = load i32, ptr %2576, align 4, !tbaa !5
  %2596 = call ptr @strerror(i32 noundef %2595) #10
  %2597 = load i32, ptr %2576, align 4, !tbaa !5
  %2598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2588, ptr noundef nonnull %.str.5.sink1855, i32 noundef %2589, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %2592, ptr noundef %2594, ptr noundef %2596, i32 noundef %2597) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2599:                                             ; preds = %2570
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #10
  %2600 = call ptr @s2n_config_new() #10
  store ptr %2600, ptr %24, align 8, !tbaa !9
  %2601 = load i32, ptr @test_count, align 4, !tbaa !5
  %2602 = add nsw i32 %2601, 1
  store i32 %2602, ptr @test_count, align 4, !tbaa !5
  %2603 = icmp eq ptr %2600, null
  br i1 %2603, label %2604, label %2628

2604:                                             ; preds = %2599
  %2605 = tail call ptr @__errno_location() #11
  %2606 = load i32, ptr %2605, align 4, !tbaa !5
  %2607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2608 = call i32 @s2n_print_stacktrace(ptr noundef %2607) #10
  %2609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2610 = trunc nuw i8 %2609 to i1
  br i1 %2610, label %2611, label %2615

2611:                                             ; preds = %2604
  %2612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2613 = call i32 @fileno(ptr noundef %2612) #10
  %2614 = call i32 @isatty(i32 noundef %2613) #10
  %.not808 = icmp eq i32 %2614, 0
  br i1 %.not808, label %2615, label %2616

2615:                                             ; preds = %2611, %2604
  br label %2616

2616:                                             ; preds = %2611, %2615
  %.str.5.sink1866 = phi ptr [ @.str.5, %2615 ], [ @.str.2, %2611 ]
  store i32 %2606, ptr %2605, align 4, !tbaa !5
  %2617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2618 = load i32, ptr @test_count, align 4, !tbaa !5
  %2619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2620 = load i32, ptr %2619, align 4, !tbaa !5
  %2621 = call ptr @s2n_strerror(i32 noundef %2620, ptr noundef nonnull @.str.4) #10
  %2622 = load i32, ptr %2619, align 4, !tbaa !5
  %2623 = call ptr @s2n_strerror_debug(i32 noundef %2622, ptr noundef nonnull @.str.4) #10
  %2624 = load i32, ptr %2605, align 4, !tbaa !5
  %2625 = call ptr @strerror(i32 noundef %2624) #10
  %2626 = load i32, ptr %2605, align 4, !tbaa !5
  %2627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2617, ptr noundef nonnull %.str.5.sink1866, i32 noundef %2618, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 266, ptr noundef %2621, ptr noundef %2623, ptr noundef %2625, i32 noundef %2626) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2628:                                             ; preds = %2599
  %2629 = add nsw i32 %2601, 2
  store i32 %2629, ptr @test_count, align 4, !tbaa !5
  %2630 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %2600, ptr noundef nonnull @.str.55) #10
  %2631 = icmp eq i32 %2630, -1
  br i1 %2631, label %2632, label %2656

2632:                                             ; preds = %2628
  %2633 = tail call ptr @__errno_location() #11
  %2634 = load i32, ptr %2633, align 4, !tbaa !5
  %2635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2636 = call i32 @s2n_print_stacktrace(ptr noundef %2635) #10
  %2637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2638 = trunc nuw i8 %2637 to i1
  br i1 %2638, label %2639, label %2643

2639:                                             ; preds = %2632
  %2640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2641 = call i32 @fileno(ptr noundef %2640) #10
  %2642 = call i32 @isatty(i32 noundef %2641) #10
  %.not807 = icmp eq i32 %2642, 0
  br i1 %.not807, label %2643, label %2644

2643:                                             ; preds = %2639, %2632
  br label %2644

2644:                                             ; preds = %2639, %2643
  %.str.5.sink1877 = phi ptr [ @.str.5, %2643 ], [ @.str.2, %2639 ]
  store i32 %2634, ptr %2633, align 4, !tbaa !5
  %2645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2646 = load i32, ptr @test_count, align 4, !tbaa !5
  %2647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2648 = load i32, ptr %2647, align 4, !tbaa !5
  %2649 = call ptr @s2n_strerror(i32 noundef %2648, ptr noundef nonnull @.str.4) #10
  %2650 = load i32, ptr %2647, align 4, !tbaa !5
  %2651 = call ptr @s2n_strerror_debug(i32 noundef %2650, ptr noundef nonnull @.str.4) #10
  %2652 = load i32, ptr %2633, align 4, !tbaa !5
  %2653 = call ptr @strerror(i32 noundef %2652) #10
  %2654 = load i32, ptr %2633, align 4, !tbaa !5
  %2655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2645, ptr noundef nonnull %.str.5.sink1877, i32 noundef %2646, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 271, ptr noundef %2649, ptr noundef %2651, ptr noundef %2653, i32 noundef %2654) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2656:                                             ; preds = %2628
  %2657 = load i32, ptr @test_count, align 4, !tbaa !5
  %2658 = add nsw i32 %2657, 1
  store i32 %2658, ptr @test_count, align 4, !tbaa !5
  %2659 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %2660 = icmp eq ptr %2659, null
  br i1 %2660, label %2661, label %2685

2661:                                             ; preds = %2656
  %2662 = tail call ptr @__errno_location() #11
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = call i32 @s2n_print_stacktrace(ptr noundef %2664) #10
  %2666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2667 = trunc nuw i8 %2666 to i1
  br i1 %2667, label %2668, label %2672

2668:                                             ; preds = %2661
  %2669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2670 = call i32 @fileno(ptr noundef %2669) #10
  %2671 = call i32 @isatty(i32 noundef %2670) #10
  %.not806 = icmp eq i32 %2671, 0
  br i1 %.not806, label %2672, label %2673

2672:                                             ; preds = %2668, %2661
  br label %2673

2673:                                             ; preds = %2668, %2672
  %.str.5.sink1888 = phi ptr [ @.str.5, %2672 ], [ @.str.2, %2668 ]
  store i32 %2663, ptr %2662, align 4, !tbaa !5
  %2674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2675 = load i32, ptr @test_count, align 4, !tbaa !5
  %2676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2677 = load i32, ptr %2676, align 4, !tbaa !5
  %2678 = call ptr @s2n_strerror(i32 noundef %2677, ptr noundef nonnull @.str.4) #10
  %2679 = load i32, ptr %2676, align 4, !tbaa !5
  %2680 = call ptr @s2n_strerror_debug(i32 noundef %2679, ptr noundef nonnull @.str.4) #10
  %2681 = load i32, ptr %2662, align 4, !tbaa !5
  %2682 = call ptr @strerror(i32 noundef %2681) #10
  %2683 = load i32, ptr %2662, align 4, !tbaa !5
  %2684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2674, ptr noundef nonnull %.str.5.sink1888, i32 noundef %2675, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 274, ptr noundef %2678, ptr noundef %2680, ptr noundef %2682, i32 noundef %2683) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2685:                                             ; preds = %2656
  %2686 = load i32, ptr @test_count, align 4, !tbaa !5
  %2687 = add nsw i32 %2686, 1
  store i32 %2687, ptr @test_count, align 4, !tbaa !5
  %2688 = load ptr, ptr %24, align 8, !tbaa !9
  %2689 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2659, ptr noundef %2688) #10
  %2690 = icmp eq i32 %2689, -1
  br i1 %2690, label %2691, label %2715

2691:                                             ; preds = %2685
  %2692 = tail call ptr @__errno_location() #11
  %2693 = load i32, ptr %2692, align 4, !tbaa !5
  %2694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2695 = call i32 @s2n_print_stacktrace(ptr noundef %2694) #10
  %2696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2697 = trunc nuw i8 %2696 to i1
  br i1 %2697, label %2698, label %2702

2698:                                             ; preds = %2691
  %2699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2700 = call i32 @fileno(ptr noundef %2699) #10
  %2701 = call i32 @isatty(i32 noundef %2700) #10
  %.not805 = icmp eq i32 %2701, 0
  br i1 %.not805, label %2702, label %2703

2702:                                             ; preds = %2698, %2691
  br label %2703

2703:                                             ; preds = %2698, %2702
  %.str.5.sink1899 = phi ptr [ @.str.5, %2702 ], [ @.str.2, %2698 ]
  store i32 %2693, ptr %2692, align 4, !tbaa !5
  %2704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2705 = load i32, ptr @test_count, align 4, !tbaa !5
  %2706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2707 = load i32, ptr %2706, align 4, !tbaa !5
  %2708 = call ptr @s2n_strerror(i32 noundef %2707, ptr noundef nonnull @.str.4) #10
  %2709 = load i32, ptr %2706, align 4, !tbaa !5
  %2710 = call ptr @s2n_strerror_debug(i32 noundef %2709, ptr noundef nonnull @.str.4) #10
  %2711 = load i32, ptr %2692, align 4, !tbaa !5
  %2712 = call ptr @strerror(i32 noundef %2711) #10
  %2713 = load i32, ptr %2692, align 4, !tbaa !5
  %2714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2704, ptr noundef nonnull %.str.5.sink1899, i32 noundef %2705, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 275, ptr noundef %2708, ptr noundef %2710, ptr noundef %2712, i32 noundef %2713) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2715:                                             ; preds = %2685
  %2716 = getelementptr inbounds [3 x [2 x ptr]], ptr %23, i64 0, i64 %.0638923
  %2717 = load ptr, ptr %2716, align 16, !tbaa !9
  %2718 = getelementptr inbounds i8, ptr %2659, i64 16
  store ptr %2717, ptr %2718, align 8, !tbaa !43
  %2719 = load i32, ptr @test_count, align 4, !tbaa !5
  %2720 = add nsw i32 %2719, 1
  store i32 %2720, ptr @test_count, align 4, !tbaa !5
  %2721 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %2722 = icmp eq ptr %2721, null
  br i1 %2722, label %2723, label %2747

2723:                                             ; preds = %2715
  %2724 = tail call ptr @__errno_location() #11
  %2725 = load i32, ptr %2724, align 4, !tbaa !5
  %2726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2727 = call i32 @s2n_print_stacktrace(ptr noundef %2726) #10
  %2728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2729 = trunc nuw i8 %2728 to i1
  br i1 %2729, label %2730, label %2734

2730:                                             ; preds = %2723
  %2731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2732 = call i32 @fileno(ptr noundef %2731) #10
  %2733 = call i32 @isatty(i32 noundef %2732) #10
  %.not804 = icmp eq i32 %2733, 0
  br i1 %.not804, label %2734, label %2735

2734:                                             ; preds = %2730, %2723
  br label %2735

2735:                                             ; preds = %2730, %2734
  %.str.5.sink1910 = phi ptr [ @.str.5, %2734 ], [ @.str.2, %2730 ]
  store i32 %2725, ptr %2724, align 4, !tbaa !5
  %2736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2737 = load i32, ptr @test_count, align 4, !tbaa !5
  %2738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2739 = load i32, ptr %2738, align 4, !tbaa !5
  %2740 = call ptr @s2n_strerror(i32 noundef %2739, ptr noundef nonnull @.str.4) #10
  %2741 = load i32, ptr %2738, align 4, !tbaa !5
  %2742 = call ptr @s2n_strerror_debug(i32 noundef %2741, ptr noundef nonnull @.str.4) #10
  %2743 = load i32, ptr %2724, align 4, !tbaa !5
  %2744 = call ptr @strerror(i32 noundef %2743) #10
  %2745 = load i32, ptr %2724, align 4, !tbaa !5
  %2746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2736, ptr noundef nonnull %.str.5.sink1910, i32 noundef %2737, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 279, ptr noundef %2740, ptr noundef %2742, ptr noundef %2744, i32 noundef %2745) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2747:                                             ; preds = %2715
  %2748 = load i32, ptr @test_count, align 4, !tbaa !5
  %2749 = add nsw i32 %2748, 1
  store i32 %2749, ptr @test_count, align 4, !tbaa !5
  %2750 = load ptr, ptr %24, align 8, !tbaa !9
  %2751 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2721, ptr noundef %2750) #10
  %2752 = icmp eq i32 %2751, -1
  br i1 %2752, label %2753, label %2777

2753:                                             ; preds = %2747
  %2754 = tail call ptr @__errno_location() #11
  %2755 = load i32, ptr %2754, align 4, !tbaa !5
  %2756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2757 = call i32 @s2n_print_stacktrace(ptr noundef %2756) #10
  %2758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2759 = trunc nuw i8 %2758 to i1
  br i1 %2759, label %2760, label %2764

2760:                                             ; preds = %2753
  %2761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2762 = call i32 @fileno(ptr noundef %2761) #10
  %2763 = call i32 @isatty(i32 noundef %2762) #10
  %.not803 = icmp eq i32 %2763, 0
  br i1 %.not803, label %2764, label %2765

2764:                                             ; preds = %2760, %2753
  br label %2765

2765:                                             ; preds = %2760, %2764
  %.str.5.sink1921 = phi ptr [ @.str.5, %2764 ], [ @.str.2, %2760 ]
  store i32 %2755, ptr %2754, align 4, !tbaa !5
  %2766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2767 = load i32, ptr @test_count, align 4, !tbaa !5
  %2768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2769 = load i32, ptr %2768, align 4, !tbaa !5
  %2770 = call ptr @s2n_strerror(i32 noundef %2769, ptr noundef nonnull @.str.4) #10
  %2771 = load i32, ptr %2768, align 4, !tbaa !5
  %2772 = call ptr @s2n_strerror_debug(i32 noundef %2771, ptr noundef nonnull @.str.4) #10
  %2773 = load i32, ptr %2754, align 4, !tbaa !5
  %2774 = call ptr @strerror(i32 noundef %2773) #10
  %2775 = load i32, ptr %2754, align 4, !tbaa !5
  %2776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2766, ptr noundef nonnull %.str.5.sink1921, i32 noundef %2767, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 280, ptr noundef %2770, ptr noundef %2772, ptr noundef %2774, i32 noundef %2775) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2777:                                             ; preds = %2747
  %2778 = getelementptr inbounds i8, ptr %2716, i64 8
  %2779 = load ptr, ptr %2778, align 8, !tbaa !9
  %2780 = getelementptr inbounds i8, ptr %2721, i64 16
  store ptr %2779, ptr %2780, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #10
  store ptr null, ptr %25, align 8, !tbaa !9
  %2781 = load i32, ptr @test_count, align 4, !tbaa !5
  %2782 = add nsw i32 %2781, 1
  store i32 %2782, ptr @test_count, align 4, !tbaa !5
  %2783 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %2721, ptr noundef nonnull %25) #10
  %2784 = icmp eq i32 %2783, -1
  br i1 %2784, label %2785, label %2809

2785:                                             ; preds = %2777
  %2786 = tail call ptr @__errno_location() #11
  %2787 = load i32, ptr %2786, align 4, !tbaa !5
  %2788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2789 = call i32 @s2n_print_stacktrace(ptr noundef %2788) #10
  %2790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2791 = trunc nuw i8 %2790 to i1
  br i1 %2791, label %2792, label %2796

2792:                                             ; preds = %2785
  %2793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2794 = call i32 @fileno(ptr noundef %2793) #10
  %2795 = call i32 @isatty(i32 noundef %2794) #10
  %.not802 = icmp eq i32 %2795, 0
  br i1 %.not802, label %2796, label %2797

2796:                                             ; preds = %2792, %2785
  br label %2797

2797:                                             ; preds = %2792, %2796
  %.str.5.sink1932 = phi ptr [ @.str.5, %2796 ], [ @.str.2, %2792 ]
  store i32 %2787, ptr %2786, 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 nonnull @.str.4) #10
  %2803 = load i32, ptr %2800, align 4, !tbaa !5
  %2804 = call ptr @s2n_strerror_debug(i32 noundef %2803, ptr noundef nonnull @.str.4) #10
  %2805 = load i32, ptr %2786, align 4, !tbaa !5
  %2806 = call ptr @strerror(i32 noundef %2805) #10
  %2807 = load i32, ptr %2786, align 4, !tbaa !5
  %2808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2798, ptr noundef nonnull %.str.5.sink1932, i32 noundef %2799, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %2802, ptr noundef %2804, ptr noundef %2806, i32 noundef %2807) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2809:                                             ; preds = %2777
  %2810 = load i32, ptr @test_count, align 4, !tbaa !5
  %2811 = add nsw i32 %2810, 1
  store i32 %2811, ptr @test_count, align 4, !tbaa !5
  %2812 = load ptr, ptr %25, align 8, !tbaa !9
  %2813 = icmp eq ptr %2812, null
  br i1 %2813, label %2814, label %2838

2814:                                             ; preds = %2809
  %2815 = tail call ptr @__errno_location() #11
  %2816 = load i32, ptr %2815, align 4, !tbaa !5
  %2817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2818 = call i32 @s2n_print_stacktrace(ptr noundef %2817) #10
  %2819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2820 = trunc nuw i8 %2819 to i1
  br i1 %2820, label %2821, label %2825

2821:                                             ; preds = %2814
  %2822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2823 = call i32 @fileno(ptr noundef %2822) #10
  %2824 = call i32 @isatty(i32 noundef %2823) #10
  %.not801 = icmp eq i32 %2824, 0
  br i1 %.not801, label %2825, label %2826

2825:                                             ; preds = %2821, %2814
  br label %2826

2826:                                             ; preds = %2821, %2825
  %.str.5.sink1943 = phi ptr [ @.str.5, %2825 ], [ @.str.2, %2821 ]
  store i32 %2816, ptr %2815, align 4, !tbaa !5
  %2827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2828 = load i32, ptr @test_count, align 4, !tbaa !5
  %2829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2830 = load i32, ptr %2829, align 4, !tbaa !5
  %2831 = call ptr @s2n_strerror(i32 noundef %2830, ptr noundef nonnull @.str.4) #10
  %2832 = load i32, ptr %2829, align 4, !tbaa !5
  %2833 = call ptr @s2n_strerror_debug(i32 noundef %2832, ptr noundef nonnull @.str.4) #10
  %2834 = load i32, ptr %2815, align 4, !tbaa !5
  %2835 = call ptr @strerror(i32 noundef %2834) #10
  %2836 = load i32, ptr %2815, align 4, !tbaa !5
  %2837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2827, ptr noundef nonnull %.str.5.sink1943, i32 noundef %2828, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %2831, ptr noundef %2833, ptr noundef %2835, i32 noundef %2836) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2838:                                             ; preds = %2809
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %26) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %26, i8 0, i64 40, i1 false)
  %2839 = add nsw i32 %2810, 2
  store i32 %2839, ptr @test_count, align 4, !tbaa !5
  %2840 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %26, i32 noundef 0) #10
  %2841 = icmp eq i32 %2840, -1
  br i1 %2841, label %2842, label %2866

2842:                                             ; preds = %2838
  %2843 = tail call ptr @__errno_location() #11
  %2844 = load i32, ptr %2843, align 4, !tbaa !5
  %2845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2846 = call i32 @s2n_print_stacktrace(ptr noundef %2845) #10
  %2847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2848 = trunc nuw i8 %2847 to i1
  br i1 %2848, label %2849, label %2853

2849:                                             ; preds = %2842
  %2850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2851 = call i32 @fileno(ptr noundef %2850) #10
  %2852 = call i32 @isatty(i32 noundef %2851) #10
  %.not800 = icmp eq i32 %2852, 0
  br i1 %.not800, label %2853, label %2854

2853:                                             ; preds = %2849, %2842
  br label %2854

2854:                                             ; preds = %2849, %2853
  %.str.5.sink1954 = phi ptr [ @.str.5, %2853 ], [ @.str.2, %2849 ]
  store i32 %2844, ptr %2843, align 4, !tbaa !5
  %2855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2856 = load i32, ptr @test_count, align 4, !tbaa !5
  %2857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2858 = load i32, ptr %2857, align 4, !tbaa !5
  %2859 = call ptr @s2n_strerror(i32 noundef %2858, ptr noundef nonnull @.str.4) #10
  %2860 = load i32, ptr %2857, align 4, !tbaa !5
  %2861 = call ptr @s2n_strerror_debug(i32 noundef %2860, ptr noundef nonnull @.str.4) #10
  %2862 = load i32, ptr %2843, align 4, !tbaa !5
  %2863 = call ptr @strerror(i32 noundef %2862) #10
  %2864 = load i32, ptr %2843, align 4, !tbaa !5
  %2865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2855, ptr noundef nonnull %.str.5.sink1954, i32 noundef %2856, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %2859, ptr noundef %2861, ptr noundef %2863, i32 noundef %2864) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2866:                                             ; preds = %2838
  %2867 = load i32, ptr @test_count, align 4, !tbaa !5
  %2868 = add nsw i32 %2867, 1
  store i32 %2868, ptr @test_count, align 4, !tbaa !5
  %2869 = call i32 %478(ptr noundef nonnull %2659, ptr noundef nonnull %26) #10
  %2870 = icmp eq i32 %2869, -1
  br i1 %2870, label %2871, label %2895

2871:                                             ; preds = %2866
  %2872 = tail call ptr @__errno_location() #11
  %2873 = load i32, ptr %2872, align 4, !tbaa !5
  %2874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2875 = call i32 @s2n_print_stacktrace(ptr noundef %2874) #10
  %2876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2877 = trunc nuw i8 %2876 to i1
  br i1 %2877, label %2878, label %2882

2878:                                             ; preds = %2871
  %2879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2880 = call i32 @fileno(ptr noundef %2879) #10
  %2881 = call i32 @isatty(i32 noundef %2880) #10
  %.not799 = icmp eq i32 %2881, 0
  br i1 %.not799, label %2882, label %2883

2882:                                             ; preds = %2878, %2871
  br label %2883

2883:                                             ; preds = %2878, %2882
  %.str.5.sink1965 = phi ptr [ @.str.5, %2882 ], [ @.str.2, %2878 ]
  store i32 %2873, ptr %2872, align 4, !tbaa !5
  %2884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2885 = load i32, ptr @test_count, align 4, !tbaa !5
  %2886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2887 = load i32, ptr %2886, align 4, !tbaa !5
  %2888 = call ptr @s2n_strerror(i32 noundef %2887, ptr noundef nonnull @.str.4) #10
  %2889 = load i32, ptr %2886, align 4, !tbaa !5
  %2890 = call ptr @s2n_strerror_debug(i32 noundef %2889, ptr noundef nonnull @.str.4) #10
  %2891 = load i32, ptr %2872, align 4, !tbaa !5
  %2892 = call ptr @strerror(i32 noundef %2891) #10
  %2893 = load i32, ptr %2872, align 4, !tbaa !5
  %2894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2884, ptr noundef nonnull %.str.5.sink1965, i32 noundef %2885, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %2888, ptr noundef %2890, ptr noundef %2892, i32 noundef %2893) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2895:                                             ; preds = %2866
  %2896 = load i32, ptr @test_count, align 4, !tbaa !5
  %2897 = add nsw i32 %2896, 1
  store i32 %2897, ptr @test_count, align 4, !tbaa !5
  %2898 = getelementptr inbounds i8, ptr %2721, i64 656
  %2899 = load ptr, ptr %2898, align 8, !tbaa !72
  %2900 = icmp eq ptr %2899, null
  br i1 %2900, label %2925, label %2901

2901:                                             ; preds = %2895
  %2902 = tail call ptr @__errno_location() #11
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2905 = call i32 @s2n_print_stacktrace(ptr noundef %2904) #10
  %2906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2907 = trunc nuw i8 %2906 to i1
  br i1 %2907, label %2908, label %2912

2908:                                             ; preds = %2901
  %2909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2910 = call i32 @fileno(ptr noundef %2909) #10
  %2911 = call i32 @isatty(i32 noundef %2910) #10
  %.not787 = icmp eq i32 %2911, 0
  br i1 %.not787, label %2912, label %2913

2912:                                             ; preds = %2908, %2901
  br label %2913

2913:                                             ; preds = %2908, %2912
  %.str.5.sink1976 = phi ptr [ @.str.5, %2912 ], [ @.str.2, %2908 ]
  store i32 %2903, ptr %2902, align 4, !tbaa !5
  %2914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2915 = load i32, ptr @test_count, align 4, !tbaa !5
  %2916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2917 = load i32, ptr %2916, align 4, !tbaa !5
  %2918 = call ptr @s2n_strerror(i32 noundef %2917, ptr noundef nonnull @.str.4) #10
  %2919 = load i32, ptr %2916, align 4, !tbaa !5
  %2920 = call ptr @s2n_strerror_debug(i32 noundef %2919, ptr noundef nonnull @.str.4) #10
  %2921 = load i32, ptr %2902, align 4, !tbaa !5
  %2922 = call ptr @strerror(i32 noundef %2921) #10
  %2923 = load i32, ptr %2902, align 4, !tbaa !5
  %2924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2914, ptr noundef nonnull %.str.5.sink1976, i32 noundef %2915, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 292, ptr noundef %2918, ptr noundef %2920, ptr noundef %2922, i32 noundef %2923) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2925:                                             ; preds = %2895
  %2926 = add nsw i32 %2896, 2
  store i32 %2926, ptr @test_count, align 4, !tbaa !5
  %2927 = getelementptr inbounds i8, ptr %2721, i64 720
  %2928 = load ptr, ptr %2927, align 8, !tbaa !73
  %2929 = icmp eq ptr %2928, null
  br i1 %2929, label %2954, label %2930

2930:                                             ; preds = %2925
  %2931 = tail call ptr @__errno_location() #11
  %2932 = load i32, ptr %2931, align 4, !tbaa !5
  %2933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2934 = call i32 @s2n_print_stacktrace(ptr noundef %2933) #10
  %2935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2936 = trunc nuw i8 %2935 to i1
  br i1 %2936, label %2937, label %2941

2937:                                             ; preds = %2930
  %2938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2939 = call i32 @fileno(ptr noundef %2938) #10
  %2940 = call i32 @isatty(i32 noundef %2939) #10
  %.not788 = icmp eq i32 %2940, 0
  br i1 %.not788, label %2941, label %2942

2941:                                             ; preds = %2937, %2930
  br label %2942

2942:                                             ; preds = %2937, %2941
  %.str.5.sink1987 = phi ptr [ @.str.5, %2941 ], [ @.str.2, %2937 ]
  store i32 %2932, ptr %2931, align 4, !tbaa !5
  %2943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2944 = load i32, ptr @test_count, align 4, !tbaa !5
  %2945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror(i32 noundef %2946, ptr noundef nonnull @.str.4) #10
  %2948 = load i32, ptr %2945, align 4, !tbaa !5
  %2949 = call ptr @s2n_strerror_debug(i32 noundef %2948, ptr noundef nonnull @.str.4) #10
  %2950 = load i32, ptr %2931, align 4, !tbaa !5
  %2951 = call ptr @strerror(i32 noundef %2950) #10
  %2952 = load i32, ptr %2931, align 4, !tbaa !5
  %2953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2943, ptr noundef nonnull %.str.5.sink1987, i32 noundef %2944, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %2947, ptr noundef %2949, ptr noundef %2951, i32 noundef %2952) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2954:                                             ; preds = %2925
  %2955 = add nsw i32 %2896, 3
  store i32 %2955, ptr @test_count, align 4, !tbaa !5
  %2956 = getelementptr inbounds i8, ptr %2721, i64 816
  %2957 = load ptr, ptr %2956, align 8, !tbaa !74
  %2958 = icmp eq ptr %2957, null
  br i1 %2958, label %2983, label %2959

2959:                                             ; preds = %2954
  %2960 = tail call ptr @__errno_location() #11
  %2961 = load i32, ptr %2960, align 4, !tbaa !5
  %2962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2963 = call i32 @s2n_print_stacktrace(ptr noundef %2962) #10
  %2964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2965 = trunc nuw i8 %2964 to i1
  br i1 %2965, label %2966, label %2970

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

2970:                                             ; preds = %2966, %2959
  br label %2971

2971:                                             ; preds = %2966, %2970
  %.str.5.sink1998 = phi ptr [ @.str.5, %2970 ], [ @.str.2, %2966 ]
  store i32 %2961, ptr %2960, align 4, !tbaa !5
  %2972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2973 = load i32, ptr @test_count, align 4, !tbaa !5
  %2974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2975 = load i32, ptr %2974, align 4, !tbaa !5
  %2976 = call ptr @s2n_strerror(i32 noundef %2975, ptr noundef nonnull @.str.4) #10
  %2977 = load i32, ptr %2974, align 4, !tbaa !5
  %2978 = call ptr @s2n_strerror_debug(i32 noundef %2977, ptr noundef nonnull @.str.4) #10
  %2979 = load i32, ptr %2960, align 4, !tbaa !5
  %2980 = call ptr @strerror(i32 noundef %2979) #10
  %2981 = load i32, ptr %2960, align 4, !tbaa !5
  %2982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2972, ptr noundef nonnull %.str.5.sink1998, i32 noundef %2973, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 294, ptr noundef %2976, ptr noundef %2978, ptr noundef %2980, i32 noundef %2981) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2983:                                             ; preds = %2954
  %2984 = add nsw i32 %2896, 4
  store i32 %2984, ptr @test_count, align 4, !tbaa !5
  %2985 = getelementptr inbounds i8, ptr %2721, i64 728
  %2986 = load ptr, ptr %2985, align 8, !tbaa !75
  %2987 = icmp eq ptr %2986, null
  br i1 %2987, label %3012, label %2988

2988:                                             ; preds = %2983
  %2989 = tail call ptr @__errno_location() #11
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2992 = call i32 @s2n_print_stacktrace(ptr noundef %2991) #10
  %2993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2994 = trunc nuw i8 %2993 to i1
  br i1 %2994, label %2995, label %2999

2995:                                             ; preds = %2988
  %2996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2997 = call i32 @fileno(ptr noundef %2996) #10
  %2998 = call i32 @isatty(i32 noundef %2997) #10
  %.not790 = icmp eq i32 %2998, 0
  br i1 %.not790, label %2999, label %3000

2999:                                             ; preds = %2995, %2988
  br label %3000

3000:                                             ; preds = %2995, %2999
  %.str.5.sink2009 = phi ptr [ @.str.5, %2999 ], [ @.str.2, %2995 ]
  store i32 %2990, ptr %2989, align 4, !tbaa !5
  %3001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3002 = load i32, ptr @test_count, align 4, !tbaa !5
  %3003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3004 = load i32, ptr %3003, align 4, !tbaa !5
  %3005 = call ptr @s2n_strerror(i32 noundef %3004, ptr noundef nonnull @.str.4) #10
  %3006 = load i32, ptr %3003, align 4, !tbaa !5
  %3007 = call ptr @s2n_strerror_debug(i32 noundef %3006, ptr noundef nonnull @.str.4) #10
  %3008 = load i32, ptr %2989, align 4, !tbaa !5
  %3009 = call ptr @strerror(i32 noundef %3008) #10
  %3010 = load i32, ptr %2989, align 4, !tbaa !5
  %3011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3001, ptr noundef nonnull %.str.5.sink2009, i32 noundef %3002, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 295, ptr noundef %3005, ptr noundef %3007, ptr noundef %3009, i32 noundef %3010) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3012:                                             ; preds = %2983
  %3013 = add nsw i32 %2896, 5
  store i32 %3013, ptr @test_count, align 4, !tbaa !5
  %3014 = call i32 %2117(ptr noundef nonnull %2721, ptr noundef nonnull %26) #10
  %3015 = icmp eq i32 %3014, -1
  br i1 %3015, label %3016, label %3040

3016:                                             ; preds = %3012
  %3017 = tail call ptr @__errno_location() #11
  %3018 = load i32, ptr %3017, align 4, !tbaa !5
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = call i32 @s2n_print_stacktrace(ptr noundef %3019) #10
  %3021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3022 = trunc nuw i8 %3021 to i1
  br i1 %3022, label %3023, label %3027

3023:                                             ; preds = %3016
  %3024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3025 = call i32 @fileno(ptr noundef %3024) #10
  %3026 = call i32 @isatty(i32 noundef %3025) #10
  %.not798 = icmp eq i32 %3026, 0
  br i1 %.not798, label %3027, label %3028

3027:                                             ; preds = %3023, %3016
  br label %3028

3028:                                             ; preds = %3023, %3027
  %.str.5.sink2020 = phi ptr [ @.str.5, %3027 ], [ @.str.2, %3023 ]
  store i32 %3018, ptr %3017, align 4, !tbaa !5
  %3029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3030 = load i32, ptr @test_count, align 4, !tbaa !5
  %3031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3032 = load i32, ptr %3031, align 4, !tbaa !5
  %3033 = call ptr @s2n_strerror(i32 noundef %3032, ptr noundef nonnull @.str.4) #10
  %3034 = load i32, ptr %3031, align 4, !tbaa !5
  %3035 = call ptr @s2n_strerror_debug(i32 noundef %3034, ptr noundef nonnull @.str.4) #10
  %3036 = load i32, ptr %3017, align 4, !tbaa !5
  %3037 = call ptr @strerror(i32 noundef %3036) #10
  %3038 = load i32, ptr %3017, align 4, !tbaa !5
  %3039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3029, ptr noundef nonnull %.str.5.sink2020, i32 noundef %3030, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %3033, ptr noundef %3035, ptr noundef %3037, i32 noundef %3038) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3040:                                             ; preds = %3012
  %3041 = load i32, ptr @test_count, align 4, !tbaa !5
  %3042 = add nsw i32 %3041, 1
  store i32 %3042, ptr @test_count, align 4, !tbaa !5
  %3043 = load ptr, ptr %2898, align 8, !tbaa !72
  %3044 = load ptr, ptr %25, align 8, !tbaa !9
  %3045 = getelementptr inbounds i8, ptr %3044, i64 8
  %3046 = load ptr, ptr %3045, align 8, !tbaa !28
  %3047 = load ptr, ptr %3046, align 8, !tbaa !9
  %3048 = icmp eq ptr %3043, %3047
  br i1 %3048, label %3073, label %3049

3049:                                             ; preds = %3040
  %3050 = tail call ptr @__errno_location() #11
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  %3052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3053 = call i32 @s2n_print_stacktrace(ptr noundef %3052) #10
  %3054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3055 = trunc nuw i8 %3054 to i1
  br i1 %3055, label %3056, label %3060

3056:                                             ; preds = %3049
  %3057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3058 = call i32 @fileno(ptr noundef %3057) #10
  %3059 = call i32 @isatty(i32 noundef %3058) #10
  %.not791 = icmp eq i32 %3059, 0
  br i1 %.not791, label %3060, label %3061

3060:                                             ; preds = %3056, %3049
  br label %3061

3061:                                             ; preds = %3056, %3060
  %.str.5.sink2031 = phi ptr [ @.str.5, %3060 ], [ @.str.2, %3056 ]
  store i32 %3051, ptr %3050, align 4, !tbaa !5
  %3062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3063 = load i32, ptr @test_count, align 4, !tbaa !5
  %3064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3065 = load i32, ptr %3064, align 4, !tbaa !5
  %3066 = call ptr @s2n_strerror(i32 noundef %3065, ptr noundef nonnull @.str.4) #10
  %3067 = load i32, ptr %3064, align 4, !tbaa !5
  %3068 = call ptr @s2n_strerror_debug(i32 noundef %3067, ptr noundef nonnull @.str.4) #10
  %3069 = load i32, ptr %3050, align 4, !tbaa !5
  %3070 = call ptr @strerror(i32 noundef %3069) #10
  %3071 = load i32, ptr %3050, align 4, !tbaa !5
  %3072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3062, ptr noundef nonnull %.str.5.sink2031, i32 noundef %3063, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %3066, ptr noundef %3068, ptr noundef %3070, i32 noundef %3071) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3073:                                             ; preds = %3040
  %3074 = add nsw i32 %3041, 2
  store i32 %3074, ptr @test_count, align 4, !tbaa !5
  %3075 = load ptr, ptr %2927, align 8, !tbaa !73
  %3076 = icmp eq ptr %3075, null
  br i1 %3076, label %3101, label %3077

3077:                                             ; preds = %3073
  %3078 = tail call ptr @__errno_location() #11
  %3079 = load i32, ptr %3078, align 4, !tbaa !5
  %3080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3081 = call i32 @s2n_print_stacktrace(ptr noundef %3080) #10
  %3082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3083 = trunc nuw i8 %3082 to i1
  br i1 %3083, label %3084, label %3088

3084:                                             ; preds = %3077
  %3085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3086 = call i32 @fileno(ptr noundef %3085) #10
  %3087 = call i32 @isatty(i32 noundef %3086) #10
  %.not792 = icmp eq i32 %3087, 0
  br i1 %.not792, label %3088, label %3089

3088:                                             ; preds = %3084, %3077
  br label %3089

3089:                                             ; preds = %3084, %3088
  %.str.5.sink2042 = phi ptr [ @.str.5, %3088 ], [ @.str.2, %3084 ]
  store i32 %3079, ptr %3078, align 4, !tbaa !5
  %3090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3091 = load i32, ptr @test_count, align 4, !tbaa !5
  %3092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3093 = load i32, ptr %3092, align 4, !tbaa !5
  %3094 = call ptr @s2n_strerror(i32 noundef %3093, ptr noundef nonnull @.str.4) #10
  %3095 = load i32, ptr %3092, align 4, !tbaa !5
  %3096 = call ptr @s2n_strerror_debug(i32 noundef %3095, ptr noundef nonnull @.str.4) #10
  %3097 = load i32, ptr %3078, align 4, !tbaa !5
  %3098 = call ptr @strerror(i32 noundef %3097) #10
  %3099 = load i32, ptr %3078, align 4, !tbaa !5
  %3100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3090, ptr noundef nonnull %.str.5.sink2042, i32 noundef %3091, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 300, ptr noundef %3094, ptr noundef %3096, ptr noundef %3098, i32 noundef %3099) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3101:                                             ; preds = %3073
  %3102 = add nsw i32 %3041, 3
  store i32 %3102, ptr @test_count, align 4, !tbaa !5
  %3103 = load ptr, ptr %2956, align 8, !tbaa !74
  %3104 = icmp eq ptr %3103, null
  br i1 %3104, label %3129, label %3105

3105:                                             ; preds = %3101
  %3106 = tail call ptr @__errno_location() #11
  %3107 = load i32, ptr %3106, align 4, !tbaa !5
  %3108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3109 = call i32 @s2n_print_stacktrace(ptr noundef %3108) #10
  %3110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3111 = trunc nuw i8 %3110 to i1
  br i1 %3111, label %3112, label %3116

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

3116:                                             ; preds = %3112, %3105
  br label %3117

3117:                                             ; preds = %3112, %3116
  %.str.5.sink2053 = phi ptr [ @.str.5, %3116 ], [ @.str.2, %3112 ]
  store i32 %3107, ptr %3106, align 4, !tbaa !5
  %3118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3119 = load i32, ptr @test_count, align 4, !tbaa !5
  %3120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3121 = load i32, ptr %3120, align 4, !tbaa !5
  %3122 = call ptr @s2n_strerror(i32 noundef %3121, ptr noundef nonnull @.str.4) #10
  %3123 = load i32, ptr %3120, align 4, !tbaa !5
  %3124 = call ptr @s2n_strerror_debug(i32 noundef %3123, ptr noundef nonnull @.str.4) #10
  %3125 = load i32, ptr %3106, align 4, !tbaa !5
  %3126 = call ptr @strerror(i32 noundef %3125) #10
  %3127 = load i32, ptr %3106, align 4, !tbaa !5
  %3128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3118, ptr noundef nonnull %.str.5.sink2053, i32 noundef %3119, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %3122, ptr noundef %3124, ptr noundef %3126, i32 noundef %3127) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3129:                                             ; preds = %3101
  %3130 = add nsw i32 %3041, 4
  store i32 %3130, ptr @test_count, align 4, !tbaa !5
  %3131 = load ptr, ptr %2985, align 8, !tbaa !75
  %3132 = icmp eq ptr %3131, null
  br i1 %3132, label %3157, label %3133

3133:                                             ; preds = %3129
  %3134 = tail call ptr @__errno_location() #11
  %3135 = load i32, ptr %3134, align 4, !tbaa !5
  %3136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3137 = call i32 @s2n_print_stacktrace(ptr noundef %3136) #10
  %3138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3139 = trunc nuw i8 %3138 to i1
  br i1 %3139, label %3140, label %3144

3140:                                             ; preds = %3133
  %3141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3142 = call i32 @fileno(ptr noundef %3141) #10
  %3143 = call i32 @isatty(i32 noundef %3142) #10
  %.not794 = icmp eq i32 %3143, 0
  br i1 %.not794, label %3144, label %3145

3144:                                             ; preds = %3140, %3133
  br label %3145

3145:                                             ; preds = %3140, %3144
  %.str.5.sink2064 = phi ptr [ @.str.5, %3144 ], [ @.str.2, %3140 ]
  store i32 %3135, ptr %3134, align 4, !tbaa !5
  %3146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3147 = load i32, ptr @test_count, align 4, !tbaa !5
  %3148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3149 = load i32, ptr %3148, align 4, !tbaa !5
  %3150 = call ptr @s2n_strerror(i32 noundef %3149, ptr noundef nonnull @.str.4) #10
  %3151 = load i32, ptr %3148, align 4, !tbaa !5
  %3152 = call ptr @s2n_strerror_debug(i32 noundef %3151, ptr noundef nonnull @.str.4) #10
  %3153 = load i32, ptr %3134, align 4, !tbaa !5
  %3154 = call ptr @strerror(i32 noundef %3153) #10
  %3155 = load i32, ptr %3134, align 4, !tbaa !5
  %3156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3146, ptr noundef nonnull %.str.5.sink2064, i32 noundef %3147, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %3150, ptr noundef %3152, ptr noundef %3154, i32 noundef %3155) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3157:                                             ; preds = %3129
  %3158 = add nsw i32 %3041, 5
  store i32 %3158, ptr @test_count, align 4, !tbaa !5
  %3159 = call i32 @s2n_connection_free(ptr noundef nonnull %2659) #10
  %3160 = icmp eq i32 %3159, -1
  br i1 %3160, label %3161, label %3185

3161:                                             ; preds = %3157
  %3162 = tail call ptr @__errno_location() #11
  %3163 = load i32, ptr %3162, align 4, !tbaa !5
  %3164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3165 = call i32 @s2n_print_stacktrace(ptr noundef %3164) #10
  %3166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3167 = trunc nuw i8 %3166 to i1
  br i1 %3167, label %3168, label %3172

3168:                                             ; preds = %3161
  %3169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3170 = call i32 @fileno(ptr noundef %3169) #10
  %3171 = call i32 @isatty(i32 noundef %3170) #10
  %.not797 = icmp eq i32 %3171, 0
  br i1 %.not797, label %3172, label %3173

3172:                                             ; preds = %3168, %3161
  br label %3173

3173:                                             ; preds = %3168, %3172
  %.str.5.sink2075 = phi ptr [ @.str.5, %3172 ], [ @.str.2, %3168 ]
  store i32 %3163, ptr %3162, align 4, !tbaa !5
  %3174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3175 = load i32, ptr @test_count, align 4, !tbaa !5
  %3176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3177 = load i32, ptr %3176, align 4, !tbaa !5
  %3178 = call ptr @s2n_strerror(i32 noundef %3177, ptr noundef nonnull @.str.4) #10
  %3179 = load i32, ptr %3176, align 4, !tbaa !5
  %3180 = call ptr @s2n_strerror_debug(i32 noundef %3179, ptr noundef nonnull @.str.4) #10
  %3181 = load i32, ptr %3162, align 4, !tbaa !5
  %3182 = call ptr @strerror(i32 noundef %3181) #10
  %3183 = load i32, ptr %3162, align 4, !tbaa !5
  %3184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3174, ptr noundef nonnull %.str.5.sink2075, i32 noundef %3175, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 304, ptr noundef %3178, ptr noundef %3180, ptr noundef %3182, i32 noundef %3183) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3185:                                             ; preds = %3157
  %3186 = load i32, ptr @test_count, align 4, !tbaa !5
  %3187 = add nsw i32 %3186, 1
  store i32 %3187, ptr @test_count, align 4, !tbaa !5
  %3188 = call i32 @s2n_connection_free(ptr noundef nonnull %2721) #10
  %3189 = icmp eq i32 %3188, -1
  br i1 %3189, label %3190, label %3214

3190:                                             ; preds = %3185
  %3191 = tail call ptr @__errno_location() #11
  %3192 = load i32, ptr %3191, align 4, !tbaa !5
  %3193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3194 = call i32 @s2n_print_stacktrace(ptr noundef %3193) #10
  %3195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3196 = trunc nuw i8 %3195 to i1
  br i1 %3196, label %3197, label %3201

3197:                                             ; preds = %3190
  %3198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3199 = call i32 @fileno(ptr noundef %3198) #10
  %3200 = call i32 @isatty(i32 noundef %3199) #10
  %.not796 = icmp eq i32 %3200, 0
  br i1 %.not796, label %3201, label %3202

3201:                                             ; preds = %3197, %3190
  br label %3202

3202:                                             ; preds = %3197, %3201
  %.str.5.sink2086 = phi ptr [ @.str.5, %3201 ], [ @.str.2, %3197 ]
  store i32 %3192, ptr %3191, align 4, !tbaa !5
  %3203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3204 = load i32, ptr @test_count, align 4, !tbaa !5
  %3205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3206 = load i32, ptr %3205, align 4, !tbaa !5
  %3207 = call ptr @s2n_strerror(i32 noundef %3206, ptr noundef nonnull @.str.4) #10
  %3208 = load i32, ptr %3205, align 4, !tbaa !5
  %3209 = call ptr @s2n_strerror_debug(i32 noundef %3208, ptr noundef nonnull @.str.4) #10
  %3210 = load i32, ptr %3191, align 4, !tbaa !5
  %3211 = call ptr @strerror(i32 noundef %3210) #10
  %3212 = load i32, ptr %3191, align 4, !tbaa !5
  %3213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3203, ptr noundef nonnull %.str.5.sink2086, i32 noundef %3204, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %3207, ptr noundef %3209, ptr noundef %3211, i32 noundef %3212) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3214:                                             ; preds = %3185
  %3215 = load i32, ptr @test_count, align 4, !tbaa !5
  %3216 = add nsw i32 %3215, 1
  store i32 %3216, ptr @test_count, align 4, !tbaa !5
  %3217 = call i32 (...) @s2n_disable_tls13_in_test() #10
  %3218 = icmp eq i32 %3217, -1
  br i1 %3218, label %3219, label %3243

3219:                                             ; preds = %3214
  %3220 = tail call ptr @__errno_location() #11
  %3221 = load i32, ptr %3220, align 4, !tbaa !5
  %3222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3223 = call i32 @s2n_print_stacktrace(ptr noundef %3222) #10
  %3224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3225 = trunc nuw i8 %3224 to i1
  br i1 %3225, label %3226, label %3230

3226:                                             ; preds = %3219
  %3227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3228 = call i32 @fileno(ptr noundef %3227) #10
  %3229 = call i32 @isatty(i32 noundef %3228) #10
  %.not795 = icmp eq i32 %3229, 0
  br i1 %.not795, label %3230, label %3231

3230:                                             ; preds = %3226, %3219
  br label %3231

3231:                                             ; preds = %3226, %3230
  %.str.5.sink2097 = phi ptr [ @.str.5, %3230 ], [ @.str.2, %3226 ]
  store i32 %3221, ptr %3220, align 4, !tbaa !5
  %3232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3233 = load i32, ptr @test_count, align 4, !tbaa !5
  %3234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3235 = load i32, ptr %3234, align 4, !tbaa !5
  %3236 = call ptr @s2n_strerror(i32 noundef %3235, ptr noundef nonnull @.str.4) #10
  %3237 = load i32, ptr %3234, align 4, !tbaa !5
  %3238 = call ptr @s2n_strerror_debug(i32 noundef %3237, ptr noundef nonnull @.str.4) #10
  %3239 = load i32, ptr %3220, align 4, !tbaa !5
  %3240 = call ptr @strerror(i32 noundef %3239) #10
  %3241 = load i32, ptr %3220, align 4, !tbaa !5
  %3242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3232, ptr noundef nonnull %.str.5.sink2097, i32 noundef %3233, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %3236, ptr noundef %3238, ptr noundef %3240, i32 noundef %3241) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3243:                                             ; preds = %3214
  %3244 = call i32 @s2n_stuffer_free(ptr noundef nonnull %26) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %26) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #10
  %3245 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #10
  %3246 = add nuw nsw i64 %.0638923, 1
  %exitcond932.not = icmp eq i64 %3246, 3
  br i1 %exitcond932.not, label %2565, label %2570, !llvm.loop !80

3247:                                             ; preds = %2565
  %3248 = tail call ptr @__errno_location() #11
  %3249 = load i32, ptr %3248, align 4, !tbaa !5
  %3250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3251 = call i32 @s2n_print_stacktrace(ptr noundef %3250) #10
  %3252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3253 = trunc nuw i8 %3252 to i1
  br i1 %3253, label %3254, label %3258

3254:                                             ; preds = %3247
  %3255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3256 = call i32 @fileno(ptr noundef %3255) #10
  %3257 = call i32 @isatty(i32 noundef %3256) #10
  %.not786 = icmp eq i32 %3257, 0
  br i1 %.not786, label %3258, label %3259

3258:                                             ; preds = %3254, %3247
  br label %3259

3259:                                             ; preds = %3254, %3258
  %.str.5.sink2108 = phi ptr [ @.str.5, %3258 ], [ @.str.2, %3254 ]
  store i32 %3249, ptr %3248, align 4, !tbaa !5
  %3260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3261 = load i32, ptr @test_count, align 4, !tbaa !5
  %3262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3263 = load i32, ptr %3262, align 4, !tbaa !5
  %3264 = call ptr @s2n_strerror(i32 noundef %3263, ptr noundef nonnull @.str.4) #10
  %3265 = load i32, ptr %3262, align 4, !tbaa !5
  %3266 = call ptr @s2n_strerror_debug(i32 noundef %3265, ptr noundef nonnull @.str.4) #10
  %3267 = load i32, ptr %3248, align 4, !tbaa !5
  %3268 = call ptr @strerror(i32 noundef %3267) #10
  %3269 = load i32, ptr %3248, align 4, !tbaa !5
  %3270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3260, ptr noundef nonnull %.str.5.sink2108, i32 noundef %3261, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 312, ptr noundef %3264, ptr noundef %3266, ptr noundef %3268, i32 noundef %3269) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3271:                                             ; preds = %2565
  %3272 = load i32, ptr @test_count, align 4, !tbaa !5
  %3273 = add nsw i32 %3272, 1
  store i32 %3273, ptr @test_count, align 4, !tbaa !5
  %3274 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %3275 = icmp eq ptr %3274, null
  br i1 %3275, label %3276, label %3300

3276:                                             ; preds = %3271
  %3277 = tail call ptr @__errno_location() #11
  %3278 = load i32, ptr %3277, align 4, !tbaa !5
  %3279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3280 = call i32 @s2n_print_stacktrace(ptr noundef %3279) #10
  %3281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3282 = trunc nuw i8 %3281 to i1
  br i1 %3282, label %3283, label %3287

3283:                                             ; preds = %3276
  %3284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3285 = call i32 @fileno(ptr noundef %3284) #10
  %3286 = call i32 @isatty(i32 noundef %3285) #10
  %.not785 = icmp eq i32 %3286, 0
  br i1 %.not785, label %3287, label %3288

3287:                                             ; preds = %3283, %3276
  br label %3288

3288:                                             ; preds = %3283, %3287
  %.str.5.sink2119 = phi ptr [ @.str.5, %3287 ], [ @.str.2, %3283 ]
  store i32 %3278, ptr %3277, align 4, !tbaa !5
  %3289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3290 = load i32, ptr @test_count, align 4, !tbaa !5
  %3291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3292 = load i32, ptr %3291, align 4, !tbaa !5
  %3293 = call ptr @s2n_strerror(i32 noundef %3292, ptr noundef nonnull @.str.4) #10
  %3294 = load i32, ptr %3291, align 4, !tbaa !5
  %3295 = call ptr @s2n_strerror_debug(i32 noundef %3294, ptr noundef nonnull @.str.4) #10
  %3296 = load i32, ptr %3277, align 4, !tbaa !5
  %3297 = call ptr @strerror(i32 noundef %3296) #10
  %3298 = load i32, ptr %3277, align 4, !tbaa !5
  %3299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3289, ptr noundef nonnull %.str.5.sink2119, i32 noundef %3290, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %3293, ptr noundef %3295, ptr noundef %3297, i32 noundef %3298) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3300:                                             ; preds = %3271
  %3301 = getelementptr inbounds i8, ptr %3274, i64 16
  store ptr %7, ptr %3301, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %27) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %27, i8 0, i64 40, i1 false)
  %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_growable_alloc(ptr noundef nonnull %27, i32 noundef 0) #10
  %3305 = icmp eq i32 %3304, -1
  br i1 %3305, label %3306, label %3330

3306:                                             ; preds = %3300
  %3307 = tail call ptr @__errno_location() #11
  %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) #10
  %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) #10
  %3316 = call i32 @isatty(i32 noundef %3315) #10
  %.not784 = icmp eq i32 %3316, 0
  br i1 %.not784, label %3317, label %3318

3317:                                             ; preds = %3313, %3306
  br label %3318

3318:                                             ; preds = %3313, %3317
  %.str.5.sink2130 = 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) #10
  %3324 = load i32, ptr %3321, align 4, !tbaa !5
  %3325 = call ptr @s2n_strerror_debug(i32 noundef %3324, ptr noundef nonnull @.str.4) #10
  %3326 = load i32, ptr %3307, align 4, !tbaa !5
  %3327 = call ptr @strerror(i32 noundef %3326) #10
  %3328 = load i32, ptr %3307, align 4, !tbaa !5
  %3329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3319, ptr noundef nonnull %.str.5.sink2130, i32 noundef %3320, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 320, ptr noundef %3323, ptr noundef %3325, ptr noundef %3327, i32 noundef %3328) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3330:                                             ; preds = %3300
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %28, i8 0, i64 16, i1 false)
  %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 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %27, ptr noundef nonnull %28) #10
  %3334 = icmp eq i32 %3333, -1
  br i1 %3334, label %3335, label %3359

3335:                                             ; preds = %3330
  %3336 = tail call ptr @__errno_location() #11
  %3337 = load i32, ptr %3336, align 4, !tbaa !5
  %3338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3339 = call i32 @s2n_print_stacktrace(ptr noundef %3338) #10
  %3340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3341 = trunc nuw i8 %3340 to i1
  br i1 %3341, label %3342, label %3346

3342:                                             ; preds = %3335
  %3343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3344 = call i32 @fileno(ptr noundef %3343) #10
  %3345 = call i32 @isatty(i32 noundef %3344) #10
  %.not783 = icmp eq i32 %3345, 0
  br i1 %.not783, label %3346, label %3347

3346:                                             ; preds = %3342, %3335
  br label %3347

3347:                                             ; preds = %3342, %3346
  %.str.5.sink2141 = phi ptr [ @.str.5, %3346 ], [ @.str.2, %3342 ]
  store i32 %3337, ptr %3336, align 4, !tbaa !5
  %3348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3349 = load i32, ptr @test_count, align 4, !tbaa !5
  %3350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3351 = load i32, ptr %3350, align 4, !tbaa !5
  %3352 = call ptr @s2n_strerror(i32 noundef %3351, ptr noundef nonnull @.str.4) #10
  %3353 = load i32, ptr %3350, align 4, !tbaa !5
  %3354 = call ptr @s2n_strerror_debug(i32 noundef %3353, ptr noundef nonnull @.str.4) #10
  %3355 = load i32, ptr %3336, align 4, !tbaa !5
  %3356 = call ptr @strerror(i32 noundef %3355) #10
  %3357 = load i32, ptr %3336, align 4, !tbaa !5
  %3358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3348, ptr noundef nonnull %.str.5.sink2141, i32 noundef %3349, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 322, ptr noundef %3352, ptr noundef %3354, ptr noundef %3356, i32 noundef %3357) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3359:                                             ; preds = %3330
  %3360 = load i32, ptr @test_count, align 4, !tbaa !5
  %3361 = add nsw i32 %3360, 1
  store i32 %3361, ptr @test_count, align 4, !tbaa !5
  %3362 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %27, i16 noundef zeroext 100) #10
  %3363 = icmp eq i32 %3362, -1
  br i1 %3363, label %3364, label %3388

3364:                                             ; preds = %3359
  %3365 = tail call ptr @__errno_location() #11
  %3366 = load i32, ptr %3365, align 4, !tbaa !5
  %3367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3368 = call i32 @s2n_print_stacktrace(ptr noundef %3367) #10
  %3369 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3370 = trunc nuw i8 %3369 to i1
  br i1 %3370, label %3371, label %3375

3371:                                             ; preds = %3364
  %3372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3373 = call i32 @fileno(ptr noundef %3372) #10
  %3374 = call i32 @isatty(i32 noundef %3373) #10
  %.not782 = icmp eq i32 %3374, 0
  br i1 %.not782, label %3375, label %3376

3375:                                             ; preds = %3371, %3364
  br label %3376

3376:                                             ; preds = %3371, %3375
  %.str.5.sink2152 = phi ptr [ @.str.5, %3375 ], [ @.str.2, %3371 ]
  store i32 %3366, ptr %3365, align 4, !tbaa !5
  %3377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3378 = load i32, ptr @test_count, align 4, !tbaa !5
  %3379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3380 = load i32, ptr %3379, align 4, !tbaa !5
  %3381 = call ptr @s2n_strerror(i32 noundef %3380, ptr noundef nonnull @.str.4) #10
  %3382 = load i32, ptr %3379, align 4, !tbaa !5
  %3383 = call ptr @s2n_strerror_debug(i32 noundef %3382, ptr noundef nonnull @.str.4) #10
  %3384 = load i32, ptr %3365, align 4, !tbaa !5
  %3385 = call ptr @strerror(i32 noundef %3384) #10
  %3386 = load i32, ptr %3365, align 4, !tbaa !5
  %3387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3377, ptr noundef nonnull %.str.5.sink2152, i32 noundef %3378, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 323, ptr noundef %3381, ptr noundef %3383, ptr noundef %3385, i32 noundef %3386) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3388:                                             ; preds = %3359
  %3389 = load i32, ptr @test_count, align 4, !tbaa !5
  %3390 = add nsw i32 %3389, 1
  store i32 %3390, ptr @test_count, align 4, !tbaa !5
  %3391 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %27, i16 noundef zeroext 101) #10
  %3392 = icmp eq i32 %3391, -1
  br i1 %3392, label %3393, label %3417

3393:                                             ; preds = %3388
  %3394 = tail call ptr @__errno_location() #11
  %3395 = load i32, ptr %3394, align 4, !tbaa !5
  %3396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3397 = call i32 @s2n_print_stacktrace(ptr noundef %3396) #10
  %3398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3399 = trunc nuw i8 %3398 to i1
  br i1 %3399, label %3400, label %3404

3400:                                             ; preds = %3393
  %3401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3402 = call i32 @fileno(ptr noundef %3401) #10
  %3403 = call i32 @isatty(i32 noundef %3402) #10
  %.not781 = icmp eq i32 %3403, 0
  br i1 %.not781, label %3404, label %3405

3404:                                             ; preds = %3400, %3393
  br label %3405

3405:                                             ; preds = %3400, %3404
  %.str.5.sink2163 = phi ptr [ @.str.5, %3404 ], [ @.str.2, %3400 ]
  store i32 %3395, ptr %3394, align 4, !tbaa !5
  %3406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3407 = load i32, ptr @test_count, align 4, !tbaa !5
  %3408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3409 = load i32, ptr %3408, align 4, !tbaa !5
  %3410 = call ptr @s2n_strerror(i32 noundef %3409, ptr noundef nonnull @.str.4) #10
  %3411 = load i32, ptr %3408, align 4, !tbaa !5
  %3412 = call ptr @s2n_strerror_debug(i32 noundef %3411, ptr noundef nonnull @.str.4) #10
  %3413 = load i32, ptr %3394, align 4, !tbaa !5
  %3414 = call ptr @strerror(i32 noundef %3413) #10
  %3415 = load i32, ptr %3394, align 4, !tbaa !5
  %3416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3406, ptr noundef nonnull %.str.5.sink2163, i32 noundef %3407, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 324, ptr noundef %3410, ptr noundef %3412, ptr noundef %3414, i32 noundef %3415) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3417:                                             ; preds = %3388
  %3418 = load i32, ptr @test_count, align 4, !tbaa !5
  %3419 = add nsw i32 %3418, 1
  store i32 %3419, ptr @test_count, align 4, !tbaa !5
  %3420 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %27, i16 noundef zeroext 102) #10
  %3421 = icmp eq i32 %3420, -1
  br i1 %3421, label %3422, label %3446

3422:                                             ; preds = %3417
  %3423 = tail call ptr @__errno_location() #11
  %3424 = load i32, ptr %3423, align 4, !tbaa !5
  %3425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3426 = call i32 @s2n_print_stacktrace(ptr noundef %3425) #10
  %3427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3428 = trunc nuw i8 %3427 to i1
  br i1 %3428, label %3429, label %3433

3429:                                             ; preds = %3422
  %3430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3431 = call i32 @fileno(ptr noundef %3430) #10
  %3432 = call i32 @isatty(i32 noundef %3431) #10
  %.not780 = icmp eq i32 %3432, 0
  br i1 %.not780, label %3433, label %3434

3433:                                             ; preds = %3429, %3422
  br label %3434

3434:                                             ; preds = %3429, %3433
  %.str.5.sink2174 = phi ptr [ @.str.5, %3433 ], [ @.str.2, %3429 ]
  store i32 %3424, ptr %3423, align 4, !tbaa !5
  %3435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3436 = load i32, ptr @test_count, align 4, !tbaa !5
  %3437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3438 = load i32, ptr %3437, align 4, !tbaa !5
  %3439 = call ptr @s2n_strerror(i32 noundef %3438, ptr noundef nonnull @.str.4) #10
  %3440 = load i32, ptr %3437, align 4, !tbaa !5
  %3441 = call ptr @s2n_strerror_debug(i32 noundef %3440, ptr noundef nonnull @.str.4) #10
  %3442 = load i32, ptr %3423, align 4, !tbaa !5
  %3443 = call ptr @strerror(i32 noundef %3442) #10
  %3444 = load i32, ptr %3423, align 4, !tbaa !5
  %3445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3435, ptr noundef nonnull %.str.5.sink2174, i32 noundef %3436, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 325, ptr noundef %3439, ptr noundef %3441, ptr noundef %3443, i32 noundef %3444) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3446:                                             ; preds = %3417
  %3447 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %28) #10
  %3448 = icmp sgt i32 %3447, -1
  br i1 %3448, label %3449, label %3764

3449:                                             ; preds = %3446
  %3450 = load i32, ptr @test_count, align 4, !tbaa !5
  %3451 = add nsw i32 %3450, 1
  store i32 %3451, ptr @test_count, align 4, !tbaa !5
  %3452 = getelementptr inbounds i8, ptr %3274, i64 656
  %3453 = load ptr, ptr %3452, align 8, !tbaa !72
  %3454 = icmp eq ptr %3453, null
  br i1 %3454, label %3479, label %3455

3455:                                             ; preds = %3449
  %3456 = tail call ptr @__errno_location() #11
  %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) #10
  %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) #10
  %3465 = call i32 @isatty(i32 noundef %3464) #10
  %.not668 = icmp eq i32 %3465, 0
  br i1 %.not668, label %3466, label %3467

3466:                                             ; preds = %3462, %3455
  br label %3467

3467:                                             ; preds = %3462, %3466
  %.str.5.sink2185 = 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) #10
  %3473 = load i32, ptr %3470, align 4, !tbaa !5
  %3474 = call ptr @s2n_strerror_debug(i32 noundef %3473, ptr noundef nonnull @.str.4) #10
  %3475 = load i32, ptr %3456, align 4, !tbaa !5
  %3476 = call ptr @strerror(i32 noundef %3475) #10
  %3477 = load i32, ptr %3456, align 4, !tbaa !5
  %3478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3468, ptr noundef nonnull %.str.5.sink2185, i32 noundef %3469, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 328, ptr noundef %3472, ptr noundef %3474, ptr noundef %3476, i32 noundef %3477) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3479:                                             ; preds = %3449
  %3480 = add nsw i32 %3450, 2
  store i32 %3480, ptr @test_count, align 4, !tbaa !5
  %3481 = getelementptr inbounds i8, ptr %3274, i64 720
  %3482 = load ptr, ptr %3481, align 8, !tbaa !73
  %3483 = icmp eq ptr %3482, null
  br i1 %3483, label %3508, label %3484

3484:                                             ; preds = %3479
  %3485 = tail call ptr @__errno_location() #11
  %3486 = load i32, ptr %3485, align 4, !tbaa !5
  %3487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3488 = call i32 @s2n_print_stacktrace(ptr noundef %3487) #10
  %3489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3490 = trunc nuw i8 %3489 to i1
  br i1 %3490, label %3491, label %3495

3491:                                             ; preds = %3484
  %3492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3493 = call i32 @fileno(ptr noundef %3492) #10
  %3494 = call i32 @isatty(i32 noundef %3493) #10
  %.not669 = icmp eq i32 %3494, 0
  br i1 %.not669, label %3495, label %3496

3495:                                             ; preds = %3491, %3484
  br label %3496

3496:                                             ; preds = %3491, %3495
  %.str.5.sink2196 = phi ptr [ @.str.5, %3495 ], [ @.str.2, %3491 ]
  store i32 %3486, ptr %3485, align 4, !tbaa !5
  %3497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3498 = load i32, ptr @test_count, align 4, !tbaa !5
  %3499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3500 = load i32, ptr %3499, align 4, !tbaa !5
  %3501 = call ptr @s2n_strerror(i32 noundef %3500, ptr noundef nonnull @.str.4) #10
  %3502 = load i32, ptr %3499, align 4, !tbaa !5
  %3503 = call ptr @s2n_strerror_debug(i32 noundef %3502, ptr noundef nonnull @.str.4) #10
  %3504 = load i32, ptr %3485, align 4, !tbaa !5
  %3505 = call ptr @strerror(i32 noundef %3504) #10
  %3506 = load i32, ptr %3485, align 4, !tbaa !5
  %3507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3497, ptr noundef nonnull %.str.5.sink2196, i32 noundef %3498, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 329, ptr noundef %3501, ptr noundef %3503, ptr noundef %3505, i32 noundef %3506) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3508:                                             ; preds = %3479
  %3509 = add nsw i32 %3450, 3
  store i32 %3509, ptr @test_count, align 4, !tbaa !5
  %3510 = getelementptr inbounds i8, ptr %3274, i64 816
  %3511 = load ptr, ptr %3510, align 8, !tbaa !74
  %3512 = icmp eq ptr %3511, null
  br i1 %3512, label %3537, label %3513

3513:                                             ; preds = %3508
  %3514 = tail call ptr @__errno_location() #11
  %3515 = load i32, ptr %3514, align 4, !tbaa !5
  %3516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3517 = call i32 @s2n_print_stacktrace(ptr noundef %3516) #10
  %3518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3519 = trunc nuw i8 %3518 to i1
  br i1 %3519, label %3520, label %3524

3520:                                             ; preds = %3513
  %3521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3522 = call i32 @fileno(ptr noundef %3521) #10
  %3523 = call i32 @isatty(i32 noundef %3522) #10
  %.not670 = icmp eq i32 %3523, 0
  br i1 %.not670, label %3524, label %3525

3524:                                             ; preds = %3520, %3513
  br label %3525

3525:                                             ; preds = %3520, %3524
  %.str.5.sink2207 = phi ptr [ @.str.5, %3524 ], [ @.str.2, %3520 ]
  store i32 %3515, ptr %3514, 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 nonnull @.str.4) #10
  %3531 = load i32, ptr %3528, align 4, !tbaa !5
  %3532 = call ptr @s2n_strerror_debug(i32 noundef %3531, ptr noundef nonnull @.str.4) #10
  %3533 = load i32, ptr %3514, align 4, !tbaa !5
  %3534 = call ptr @strerror(i32 noundef %3533) #10
  %3535 = load i32, ptr %3514, align 4, !tbaa !5
  %3536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3526, ptr noundef nonnull %.str.5.sink2207, i32 noundef %3527, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 330, ptr noundef %3530, ptr noundef %3532, ptr noundef %3534, i32 noundef %3535) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3537:                                             ; preds = %3508
  %3538 = add nsw i32 %3450, 4
  store i32 %3538, ptr @test_count, align 4, !tbaa !5
  %3539 = getelementptr inbounds i8, ptr %3274, i64 728
  %3540 = load ptr, ptr %3539, align 8, !tbaa !75
  %3541 = icmp eq ptr %3540, null
  br i1 %3541, label %3566, label %3542

3542:                                             ; preds = %3537
  %3543 = tail call ptr @__errno_location() #11
  %3544 = load i32, ptr %3543, align 4, !tbaa !5
  %3545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3546 = call i32 @s2n_print_stacktrace(ptr noundef %3545) #10
  %3547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3548 = trunc nuw i8 %3547 to i1
  br i1 %3548, label %3549, label %3553

3549:                                             ; preds = %3542
  %3550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3551 = call i32 @fileno(ptr noundef %3550) #10
  %3552 = call i32 @isatty(i32 noundef %3551) #10
  %.not671 = icmp eq i32 %3552, 0
  br i1 %.not671, label %3553, label %3554

3553:                                             ; preds = %3549, %3542
  br label %3554

3554:                                             ; preds = %3549, %3553
  %.str.5.sink2218 = phi ptr [ @.str.5, %3553 ], [ @.str.2, %3549 ]
  store i32 %3544, ptr %3543, align 4, !tbaa !5
  %3555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3556 = load i32, ptr @test_count, align 4, !tbaa !5
  %3557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3558 = load i32, ptr %3557, align 4, !tbaa !5
  %3559 = call ptr @s2n_strerror(i32 noundef %3558, ptr noundef nonnull @.str.4) #10
  %3560 = load i32, ptr %3557, align 4, !tbaa !5
  %3561 = call ptr @s2n_strerror_debug(i32 noundef %3560, ptr noundef nonnull @.str.4) #10
  %3562 = load i32, ptr %3543, align 4, !tbaa !5
  %3563 = call ptr @strerror(i32 noundef %3562) #10
  %3564 = load i32, ptr %3543, align 4, !tbaa !5
  %3565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3555, ptr noundef nonnull %.str.5.sink2218, i32 noundef %3556, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 331, ptr noundef %3559, ptr noundef %3561, ptr noundef %3563, i32 noundef %3564) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3566:                                             ; preds = %3537
  %3567 = add nsw i32 %3450, 5
  store i32 %3567, ptr @test_count, align 4, !tbaa !5
  %3568 = call i32 %2117(ptr noundef nonnull %3274, ptr noundef nonnull %27) #10
  %3569 = icmp eq i32 %3568, -1
  br i1 %3569, label %3570, label %3594

3570:                                             ; preds = %3566
  %3571 = tail call ptr @__errno_location() #11
  %3572 = load i32, ptr %3571, align 4, !tbaa !5
  %3573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3574 = call i32 @s2n_print_stacktrace(ptr noundef %3573) #10
  %3575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3576 = trunc nuw i8 %3575 to i1
  br i1 %3576, label %3577, label %3581

3577:                                             ; preds = %3570
  %3578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3579 = call i32 @fileno(ptr noundef %3578) #10
  %3580 = call i32 @isatty(i32 noundef %3579) #10
  %.not779 = icmp eq i32 %3580, 0
  br i1 %.not779, label %3581, label %3582

3581:                                             ; preds = %3577, %3570
  br label %3582

3582:                                             ; preds = %3577, %3581
  %.str.5.sink2229 = phi ptr [ @.str.5, %3581 ], [ @.str.2, %3577 ]
  store i32 %3572, ptr %3571, align 4, !tbaa !5
  %3583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3584 = load i32, ptr @test_count, align 4, !tbaa !5
  %3585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3586 = load i32, ptr %3585, align 4, !tbaa !5
  %3587 = call ptr @s2n_strerror(i32 noundef %3586, ptr noundef nonnull @.str.4) #10
  %3588 = load i32, ptr %3585, align 4, !tbaa !5
  %3589 = call ptr @s2n_strerror_debug(i32 noundef %3588, ptr noundef nonnull @.str.4) #10
  %3590 = load i32, ptr %3571, align 4, !tbaa !5
  %3591 = call ptr @strerror(i32 noundef %3590) #10
  %3592 = load i32, ptr %3571, align 4, !tbaa !5
  %3593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3583, ptr noundef nonnull %.str.5.sink2229, i32 noundef %3584, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 333, ptr noundef %3587, ptr noundef %3589, ptr noundef %3591, i32 noundef %3592) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3594:                                             ; preds = %3566
  %3595 = load i32, ptr @test_count, align 4, !tbaa !5
  %3596 = add nsw i32 %3595, 1
  store i32 %3596, ptr @test_count, align 4, !tbaa !5
  %3597 = load ptr, ptr %3452, align 8, !tbaa !72
  %3598 = icmp eq ptr %3597, null
  br i1 %3598, label %3623, label %3599

3599:                                             ; preds = %3594
  %3600 = tail call ptr @__errno_location() #11
  %3601 = load i32, ptr %3600, align 4, !tbaa !5
  %3602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3603 = call i32 @s2n_print_stacktrace(ptr noundef %3602) #10
  %3604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3605 = trunc nuw i8 %3604 to i1
  br i1 %3605, label %3606, label %3610

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

3610:                                             ; preds = %3606, %3599
  br label %3611

3611:                                             ; preds = %3606, %3610
  %.str.5.sink2240 = phi ptr [ @.str.5, %3610 ], [ @.str.2, %3606 ]
  store i32 %3601, ptr %3600, align 4, !tbaa !5
  %3612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3613 = load i32, ptr @test_count, align 4, !tbaa !5
  %3614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3615 = load i32, ptr %3614, align 4, !tbaa !5
  %3616 = call ptr @s2n_strerror(i32 noundef %3615, ptr noundef nonnull @.str.4) #10
  %3617 = load i32, ptr %3614, align 4, !tbaa !5
  %3618 = call ptr @s2n_strerror_debug(i32 noundef %3617, ptr noundef nonnull @.str.4) #10
  %3619 = load i32, ptr %3600, align 4, !tbaa !5
  %3620 = call ptr @strerror(i32 noundef %3619) #10
  %3621 = load i32, ptr %3600, align 4, !tbaa !5
  %3622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3612, ptr noundef nonnull %.str.5.sink2240, i32 noundef %3613, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 335, ptr noundef %3616, ptr noundef %3618, ptr noundef %3620, i32 noundef %3621) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3623:                                             ; preds = %3594
  %3624 = add nsw i32 %3595, 2
  store i32 %3624, ptr @test_count, align 4, !tbaa !5
  %3625 = load ptr, ptr %3481, align 8, !tbaa !73
  %3626 = icmp eq ptr %3625, null
  br i1 %3626, label %3651, label %3627

3627:                                             ; preds = %3623
  %3628 = tail call ptr @__errno_location() #11
  %3629 = load i32, ptr %3628, align 4, !tbaa !5
  %3630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3631 = call i32 @s2n_print_stacktrace(ptr noundef %3630) #10
  %3632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3633 = trunc nuw i8 %3632 to i1
  br i1 %3633, label %3634, label %3638

3634:                                             ; preds = %3627
  %3635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3636 = call i32 @fileno(ptr noundef %3635) #10
  %3637 = call i32 @isatty(i32 noundef %3636) #10
  %.not673 = icmp eq i32 %3637, 0
  br i1 %.not673, label %3638, label %3639

3638:                                             ; preds = %3634, %3627
  br label %3639

3639:                                             ; preds = %3634, %3638
  %.str.5.sink2251 = phi ptr [ @.str.5, %3638 ], [ @.str.2, %3634 ]
  store i32 %3629, ptr %3628, align 4, !tbaa !5
  %3640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3641 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3643, ptr noundef nonnull @.str.4) #10
  %3645 = load i32, ptr %3642, align 4, !tbaa !5
  %3646 = call ptr @s2n_strerror_debug(i32 noundef %3645, ptr noundef nonnull @.str.4) #10
  %3647 = load i32, ptr %3628, align 4, !tbaa !5
  %3648 = call ptr @strerror(i32 noundef %3647) #10
  %3649 = load i32, ptr %3628, align 4, !tbaa !5
  %3650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3640, ptr noundef nonnull %.str.5.sink2251, i32 noundef %3641, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 336, ptr noundef %3644, ptr noundef %3646, ptr noundef %3648, i32 noundef %3649) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3651:                                             ; preds = %3623
  %3652 = add nsw i32 %3595, 3
  store i32 %3652, ptr @test_count, align 4, !tbaa !5
  %3653 = load ptr, ptr %3510, align 8, !tbaa !74
  %3654 = icmp eq ptr %3653, null
  br i1 %3654, label %3679, label %3655

3655:                                             ; preds = %3651
  %3656 = tail call ptr @__errno_location() #11
  %3657 = load i32, ptr %3656, align 4, !tbaa !5
  %3658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3659 = call i32 @s2n_print_stacktrace(ptr noundef %3658) #10
  %3660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3661 = trunc nuw i8 %3660 to i1
  br i1 %3661, label %3662, label %3666

3662:                                             ; preds = %3655
  %3663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3664 = call i32 @fileno(ptr noundef %3663) #10
  %3665 = call i32 @isatty(i32 noundef %3664) #10
  %.not674 = icmp eq i32 %3665, 0
  br i1 %.not674, label %3666, label %3667

3666:                                             ; preds = %3662, %3655
  br label %3667

3667:                                             ; preds = %3662, %3666
  %.str.5.sink2262 = phi ptr [ @.str.5, %3666 ], [ @.str.2, %3662 ]
  store i32 %3657, ptr %3656, align 4, !tbaa !5
  %3668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3669 = load i32, ptr @test_count, align 4, !tbaa !5
  %3670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3671 = load i32, ptr %3670, align 4, !tbaa !5
  %3672 = call ptr @s2n_strerror(i32 noundef %3671, ptr noundef nonnull @.str.4) #10
  %3673 = load i32, ptr %3670, align 4, !tbaa !5
  %3674 = call ptr @s2n_strerror_debug(i32 noundef %3673, ptr noundef nonnull @.str.4) #10
  %3675 = load i32, ptr %3656, align 4, !tbaa !5
  %3676 = call ptr @strerror(i32 noundef %3675) #10
  %3677 = load i32, ptr %3656, align 4, !tbaa !5
  %3678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3668, ptr noundef nonnull %.str.5.sink2262, i32 noundef %3669, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 337, ptr noundef %3672, ptr noundef %3674, ptr noundef %3676, i32 noundef %3677) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3679:                                             ; preds = %3651
  %3680 = add nsw i32 %3595, 4
  store i32 %3680, ptr @test_count, align 4, !tbaa !5
  %3681 = load ptr, ptr %3539, align 8, !tbaa !75
  %3682 = icmp eq ptr %3681, null
  br i1 %3682, label %3707, label %3683

3683:                                             ; preds = %3679
  %3684 = tail call ptr @__errno_location() #11
  %3685 = load i32, ptr %3684, align 4, !tbaa !5
  %3686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3687 = call i32 @s2n_print_stacktrace(ptr noundef %3686) #10
  %3688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3689 = trunc nuw i8 %3688 to i1
  br i1 %3689, label %3690, label %3694

3690:                                             ; preds = %3683
  %3691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3692 = call i32 @fileno(ptr noundef %3691) #10
  %3693 = call i32 @isatty(i32 noundef %3692) #10
  %.not675 = icmp eq i32 %3693, 0
  br i1 %.not675, label %3694, label %3695

3694:                                             ; preds = %3690, %3683
  br label %3695

3695:                                             ; preds = %3690, %3694
  %.str.5.sink2273 = phi ptr [ @.str.5, %3694 ], [ @.str.2, %3690 ]
  store i32 %3685, ptr %3684, align 4, !tbaa !5
  %3696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3697 = load i32, ptr @test_count, align 4, !tbaa !5
  %3698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3699 = load i32, ptr %3698, align 4, !tbaa !5
  %3700 = call ptr @s2n_strerror(i32 noundef %3699, ptr noundef nonnull @.str.4) #10
  %3701 = load i32, ptr %3698, align 4, !tbaa !5
  %3702 = call ptr @s2n_strerror_debug(i32 noundef %3701, ptr noundef nonnull @.str.4) #10
  %3703 = load i32, ptr %3684, align 4, !tbaa !5
  %3704 = call ptr @strerror(i32 noundef %3703) #10
  %3705 = load i32, ptr %3684, align 4, !tbaa !5
  %3706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3696, ptr noundef nonnull %.str.5.sink2273, i32 noundef %3697, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 338, ptr noundef %3700, ptr noundef %3702, ptr noundef %3704, i32 noundef %3705) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3707:                                             ; preds = %3679
  %3708 = add nsw i32 %3595, 5
  store i32 %3708, ptr @test_count, align 4, !tbaa !5
  %3709 = call i32 @s2n_connection_free(ptr noundef nonnull %3274) #10
  %3710 = icmp eq i32 %3709, -1
  br i1 %3710, label %3711, label %3735

3711:                                             ; preds = %3707
  %3712 = tail call ptr @__errno_location() #11
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  %3714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3715 = call i32 @s2n_print_stacktrace(ptr noundef %3714) #10
  %3716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3717 = trunc nuw i8 %3716 to i1
  br i1 %3717, label %3718, label %3722

3718:                                             ; preds = %3711
  %3719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3720 = call i32 @fileno(ptr noundef %3719) #10
  %3721 = call i32 @isatty(i32 noundef %3720) #10
  %.not778 = icmp eq i32 %3721, 0
  br i1 %.not778, label %3722, label %3723

3722:                                             ; preds = %3718, %3711
  br label %3723

3723:                                             ; preds = %3718, %3722
  %.str.5.sink2284 = phi ptr [ @.str.5, %3722 ], [ @.str.2, %3718 ]
  store i32 %3713, ptr %3712, align 4, !tbaa !5
  %3724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3725 = load i32, ptr @test_count, align 4, !tbaa !5
  %3726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call ptr @s2n_strerror(i32 noundef %3727, ptr noundef nonnull @.str.4) #10
  %3729 = load i32, ptr %3726, align 4, !tbaa !5
  %3730 = call ptr @s2n_strerror_debug(i32 noundef %3729, ptr noundef nonnull @.str.4) #10
  %3731 = load i32, ptr %3712, align 4, !tbaa !5
  %3732 = call ptr @strerror(i32 noundef %3731) #10
  %3733 = load i32, ptr %3712, align 4, !tbaa !5
  %3734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3724, ptr noundef nonnull %.str.5.sink2284, i32 noundef %3725, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 340, ptr noundef %3728, ptr noundef %3730, ptr noundef %3732, i32 noundef %3733) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3735:                                             ; preds = %3707
  %3736 = load i32, ptr @test_count, align 4, !tbaa !5
  %3737 = add nsw i32 %3736, 1
  store i32 %3737, ptr @test_count, align 4, !tbaa !5
  %3738 = call i32 (...) @s2n_disable_tls13_in_test() #10
  %3739 = icmp eq i32 %3738, -1
  br i1 %3739, label %3740, label %3766

3740:                                             ; preds = %3735
  %3741 = tail call ptr @__errno_location() #11
  %3742 = load i32, ptr %3741, align 4, !tbaa !5
  %3743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3744 = call i32 @s2n_print_stacktrace(ptr noundef %3743) #10
  %3745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3746 = trunc nuw i8 %3745 to i1
  br i1 %3746, label %3747, label %3751

3747:                                             ; preds = %3740
  %3748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3749 = call i32 @fileno(ptr noundef %3748) #10
  %3750 = call i32 @isatty(i32 noundef %3749) #10
  %.not777 = icmp eq i32 %3750, 0
  br i1 %.not777, label %3751, label %3752

3751:                                             ; preds = %3747, %3740
  br label %3752

3752:                                             ; preds = %3747, %3751
  %.str.5.sink2295 = phi ptr [ @.str.5, %3751 ], [ @.str.2, %3747 ]
  store i32 %3742, ptr %3741, align 4, !tbaa !5
  %3753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3754 = load i32, ptr @test_count, align 4, !tbaa !5
  %3755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3756 = load i32, ptr %3755, align 4, !tbaa !5
  %3757 = call ptr @s2n_strerror(i32 noundef %3756, ptr noundef nonnull @.str.4) #10
  %3758 = load i32, ptr %3755, align 4, !tbaa !5
  %3759 = call ptr @s2n_strerror_debug(i32 noundef %3758, ptr noundef nonnull @.str.4) #10
  %3760 = load i32, ptr %3741, align 4, !tbaa !5
  %3761 = call ptr @strerror(i32 noundef %3760) #10
  %3762 = load i32, ptr %3741, align 4, !tbaa !5
  %3763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3753, ptr noundef nonnull %.str.5.sink2295, i32 noundef %3754, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 341, ptr noundef %3757, ptr noundef %3759, ptr noundef %3761, i32 noundef %3762) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3764:                                             ; preds = %3446
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #10
  %3765 = call i32 @s2n_stuffer_free(ptr noundef nonnull %27) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %27) #10
  br label %.thread890

3766:                                             ; preds = %3735
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #10
  %3767 = call i32 @s2n_stuffer_free(ptr noundef nonnull %27) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %27) #10
  %3768 = load i32, ptr @test_count, align 4, !tbaa !5
  %3769 = add nsw i32 %3768, 1
  store i32 %3769, ptr @test_count, align 4, !tbaa !5
  %3770 = call i32 (...) @s2n_disable_tls13_in_test() #10
  %3771 = icmp eq i32 %3770, -1
  br i1 %3771, label %3772, label %3796

3772:                                             ; preds = %3766
  %3773 = tail call ptr @__errno_location() #11
  %3774 = load i32, ptr %3773, align 4, !tbaa !5
  %3775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3776 = call i32 @s2n_print_stacktrace(ptr noundef %3775) #10
  %3777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3778 = trunc nuw i8 %3777 to i1
  br i1 %3778, label %3779, label %3783

3779:                                             ; preds = %3772
  %3780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3781 = call i32 @fileno(ptr noundef %3780) #10
  %3782 = call i32 @isatty(i32 noundef %3781) #10
  %.not776 = icmp eq i32 %3782, 0
  br i1 %.not776, label %3783, label %3784

3783:                                             ; preds = %3779, %3772
  br label %3784

3784:                                             ; preds = %3779, %3783
  %.str.5.sink2306 = phi ptr [ @.str.5, %3783 ], [ @.str.2, %3779 ]
  store i32 %3774, ptr %3773, align 4, !tbaa !5
  %3785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3786 = load i32, ptr @test_count, align 4, !tbaa !5
  %3787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3788 = load i32, ptr %3787, align 4, !tbaa !5
  %3789 = call ptr @s2n_strerror(i32 noundef %3788, ptr noundef nonnull @.str.4) #10
  %3790 = load i32, ptr %3787, align 4, !tbaa !5
  %3791 = call ptr @s2n_strerror_debug(i32 noundef %3790, ptr noundef nonnull @.str.4) #10
  %3792 = load i32, ptr %3773, align 4, !tbaa !5
  %3793 = call ptr @strerror(i32 noundef %3792) #10
  %3794 = load i32, ptr %3773, align 4, !tbaa !5
  %3795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3785, ptr noundef nonnull %.str.5.sink2306, i32 noundef %3786, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 346, ptr noundef %3789, ptr noundef %3791, ptr noundef %3793, i32 noundef %3794) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3796:                                             ; preds = %3766
  %3797 = load i32, ptr @test_count, align 4, !tbaa !5
  %3798 = add nsw i32 %3797, 1
  store i32 %3798, ptr @test_count, align 4, !tbaa !5
  %3799 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %3800 = icmp eq ptr %3799, null
  br i1 %3800, label %3801, label %3825

3801:                                             ; preds = %3796
  %3802 = tail call ptr @__errno_location() #11
  %3803 = load i32, ptr %3802, align 4, !tbaa !5
  %3804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3805 = call i32 @s2n_print_stacktrace(ptr noundef %3804) #10
  %3806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3807 = trunc nuw i8 %3806 to i1
  br i1 %3807, label %3808, label %3812

3808:                                             ; preds = %3801
  %3809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3810 = call i32 @fileno(ptr noundef %3809) #10
  %3811 = call i32 @isatty(i32 noundef %3810) #10
  %.not775 = icmp eq i32 %3811, 0
  br i1 %.not775, label %3812, label %3813

3812:                                             ; preds = %3808, %3801
  br label %3813

3813:                                             ; preds = %3808, %3812
  %.str.5.sink2317 = phi ptr [ @.str.5, %3812 ], [ @.str.2, %3808 ]
  store i32 %3803, ptr %3802, align 4, !tbaa !5
  %3814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3815 = load i32, ptr @test_count, align 4, !tbaa !5
  %3816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3817 = load i32, ptr %3816, align 4, !tbaa !5
  %3818 = call ptr @s2n_strerror(i32 noundef %3817, ptr noundef nonnull @.str.4) #10
  %3819 = load i32, ptr %3816, align 4, !tbaa !5
  %3820 = call ptr @s2n_strerror_debug(i32 noundef %3819, ptr noundef nonnull @.str.4) #10
  %3821 = load i32, ptr %3802, align 4, !tbaa !5
  %3822 = call ptr @strerror(i32 noundef %3821) #10
  %3823 = load i32, ptr %3802, align 4, !tbaa !5
  %3824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3814, ptr noundef nonnull %.str.5.sink2317, i32 noundef %3815, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 348, ptr noundef %3818, ptr noundef %3820, ptr noundef %3822, i32 noundef %3823) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3825:                                             ; preds = %3796
  %3826 = load i32, ptr @test_count, align 4, !tbaa !5
  %3827 = add nsw i32 %3826, 1
  store i32 %3827, ptr @test_count, align 4, !tbaa !5
  %3828 = call zeroext i8 @s2n_connection_get_protocol_version(ptr noundef nonnull %3799) #10
  %3829 = icmp eq i8 %3828, 33
  br i1 %3829, label %3854, label %3830

3830:                                             ; preds = %3825
  %3831 = tail call ptr @__errno_location() #11
  %3832 = load i32, ptr %3831, align 4, !tbaa !5
  %3833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3834 = call i32 @s2n_print_stacktrace(ptr noundef %3833) #10
  %3835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3836 = trunc nuw i8 %3835 to i1
  br i1 %3836, label %3837, label %3841

3837:                                             ; preds = %3830
  %3838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3839 = call i32 @fileno(ptr noundef %3838) #10
  %3840 = call i32 @isatty(i32 noundef %3839) #10
  %.not676 = icmp eq i32 %3840, 0
  br i1 %.not676, label %3841, label %3842

3841:                                             ; preds = %3837, %3830
  br label %3842

3842:                                             ; preds = %3837, %3841
  %.str.5.sink2328 = phi ptr [ @.str.5, %3841 ], [ @.str.2, %3837 ]
  store i32 %3832, ptr %3831, 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 nonnull @.str.4) #10
  %3848 = load i32, ptr %3845, align 4, !tbaa !5
  %3849 = call ptr @s2n_strerror_debug(i32 noundef %3848, ptr noundef nonnull @.str.4) #10
  %3850 = load i32, ptr %3831, align 4, !tbaa !5
  %3851 = call ptr @strerror(i32 noundef %3850) #10
  %3852 = load i32, ptr %3831, align 4, !tbaa !5
  %3853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3843, ptr noundef nonnull %.str.5.sink2328, i32 noundef %3844, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 349, ptr noundef %3847, ptr noundef %3849, ptr noundef %3851, i32 noundef %3852) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3854:                                             ; preds = %3825
  %3855 = getelementptr inbounds i8, ptr %3799, i64 16
  store ptr %7, ptr %3855, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #10
  store ptr null, ptr %29, align 8, !tbaa !9
  %3856 = load i32, ptr @test_count, align 4, !tbaa !5
  %3857 = add nsw i32 %3856, 1
  store i32 %3857, ptr @test_count, align 4, !tbaa !5
  %3858 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %3799, ptr noundef nonnull %29) #10
  %3859 = icmp eq i32 %3858, -1
  br i1 %3859, label %3860, label %3884

3860:                                             ; preds = %3854
  %3861 = tail call ptr @__errno_location() #11
  %3862 = load i32, ptr %3861, align 4, !tbaa !5
  %3863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3864 = call i32 @s2n_print_stacktrace(ptr noundef %3863) #10
  %3865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3866 = trunc nuw i8 %3865 to i1
  br i1 %3866, label %3867, label %3871

3867:                                             ; preds = %3860
  %3868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3869 = call i32 @fileno(ptr noundef %3868) #10
  %3870 = call i32 @isatty(i32 noundef %3869) #10
  %.not774 = icmp eq i32 %3870, 0
  br i1 %.not774, label %3871, label %3872

3871:                                             ; preds = %3867, %3860
  br label %3872

3872:                                             ; preds = %3867, %3871
  %.str.5.sink2339 = phi ptr [ @.str.5, %3871 ], [ @.str.2, %3867 ]
  store i32 %3862, ptr %3861, align 4, !tbaa !5
  %3873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3874 = load i32, ptr @test_count, align 4, !tbaa !5
  %3875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3876 = load i32, ptr %3875, align 4, !tbaa !5
  %3877 = call ptr @s2n_strerror(i32 noundef %3876, ptr noundef nonnull @.str.4) #10
  %3878 = load i32, ptr %3875, align 4, !tbaa !5
  %3879 = call ptr @s2n_strerror_debug(i32 noundef %3878, ptr noundef nonnull @.str.4) #10
  %3880 = load i32, ptr %3861, align 4, !tbaa !5
  %3881 = call ptr @strerror(i32 noundef %3880) #10
  %3882 = load i32, ptr %3861, align 4, !tbaa !5
  %3883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3873, ptr noundef nonnull %.str.5.sink2339, i32 noundef %3874, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 353, ptr noundef %3877, ptr noundef %3879, ptr noundef %3881, i32 noundef %3882) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3884:                                             ; preds = %3854
  %3885 = load i32, ptr @test_count, align 4, !tbaa !5
  %3886 = add nsw i32 %3885, 1
  store i32 %3886, ptr @test_count, align 4, !tbaa !5
  %3887 = load ptr, ptr %29, align 8, !tbaa !9
  %3888 = icmp eq ptr %3887, null
  br i1 %3888, label %3889, label %3913

3889:                                             ; preds = %3884
  %3890 = tail call ptr @__errno_location() #11
  %3891 = load i32, ptr %3890, align 4, !tbaa !5
  %3892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3893 = call i32 @s2n_print_stacktrace(ptr noundef %3892) #10
  %3894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3895 = trunc nuw i8 %3894 to i1
  br i1 %3895, label %3896, label %3900

3896:                                             ; preds = %3889
  %3897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3898 = call i32 @fileno(ptr noundef %3897) #10
  %3899 = call i32 @isatty(i32 noundef %3898) #10
  %.not773 = icmp eq i32 %3899, 0
  br i1 %.not773, label %3900, label %3901

3900:                                             ; preds = %3896, %3889
  br label %3901

3901:                                             ; preds = %3896, %3900
  %.str.5.sink2350 = phi ptr [ @.str.5, %3900 ], [ @.str.2, %3896 ]
  store i32 %3891, ptr %3890, align 4, !tbaa !5
  %3902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3903 = load i32, ptr @test_count, align 4, !tbaa !5
  %3904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3905 = load i32, ptr %3904, align 4, !tbaa !5
  %3906 = call ptr @s2n_strerror(i32 noundef %3905, ptr noundef nonnull @.str.4) #10
  %3907 = load i32, ptr %3904, align 4, !tbaa !5
  %3908 = call ptr @s2n_strerror_debug(i32 noundef %3907, ptr noundef nonnull @.str.4) #10
  %3909 = load i32, ptr %3890, align 4, !tbaa !5
  %3910 = call ptr @strerror(i32 noundef %3909) #10
  %3911 = load i32, ptr %3890, align 4, !tbaa !5
  %3912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3902, ptr noundef nonnull %.str.5.sink2350, i32 noundef %3903, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 354, ptr noundef %3906, ptr noundef %3908, ptr noundef %3910, i32 noundef %3911) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3913:                                             ; preds = %3884
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #10
  store ptr null, ptr %30, align 8, !tbaa !9
  %3914 = add nsw i32 %3885, 2
  store i32 %3914, ptr @test_count, align 4, !tbaa !5
  %3915 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %3799, ptr noundef nonnull %30) #10
  %3916 = icmp eq i32 %3915, -1
  br i1 %3916, label %3917, label %3941

3917:                                             ; preds = %3913
  %3918 = tail call ptr @__errno_location() #11
  %3919 = load i32, ptr %3918, align 4, !tbaa !5
  %3920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3921 = call i32 @s2n_print_stacktrace(ptr noundef %3920) #10
  %3922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3923 = trunc nuw i8 %3922 to i1
  br i1 %3923, label %3924, label %3928

3924:                                             ; preds = %3917
  %3925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3926 = call i32 @fileno(ptr noundef %3925) #10
  %3927 = call i32 @isatty(i32 noundef %3926) #10
  %.not772 = icmp eq i32 %3927, 0
  br i1 %.not772, label %3928, label %3929

3928:                                             ; preds = %3924, %3917
  br label %3929

3929:                                             ; preds = %3924, %3928
  %.str.5.sink2361 = phi ptr [ @.str.5, %3928 ], [ @.str.2, %3924 ]
  store i32 %3919, ptr %3918, align 4, !tbaa !5
  %3930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3931 = load i32, ptr @test_count, align 4, !tbaa !5
  %3932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3933 = load i32, ptr %3932, align 4, !tbaa !5
  %3934 = call ptr @s2n_strerror(i32 noundef %3933, ptr noundef nonnull @.str.4) #10
  %3935 = load i32, ptr %3932, align 4, !tbaa !5
  %3936 = call ptr @s2n_strerror_debug(i32 noundef %3935, ptr noundef nonnull @.str.4) #10
  %3937 = load i32, ptr %3918, align 4, !tbaa !5
  %3938 = call ptr @strerror(i32 noundef %3937) #10
  %3939 = load i32, ptr %3918, align 4, !tbaa !5
  %3940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3930, ptr noundef nonnull %.str.5.sink2361, i32 noundef %3931, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 357, ptr noundef %3934, ptr noundef %3936, ptr noundef %3938, i32 noundef %3939) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3941:                                             ; preds = %3913
  %3942 = load i32, ptr @test_count, align 4, !tbaa !5
  %3943 = add nsw i32 %3942, 1
  store i32 %3943, ptr @test_count, align 4, !tbaa !5
  %3944 = load ptr, ptr %30, align 8, !tbaa !9
  %3945 = icmp eq ptr %3944, null
  br i1 %3945, label %3946, label %3970

3946:                                             ; preds = %3941
  %3947 = tail call ptr @__errno_location() #11
  %3948 = load i32, ptr %3947, align 4, !tbaa !5
  %3949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3950 = call i32 @s2n_print_stacktrace(ptr noundef %3949) #10
  %3951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3952 = trunc nuw i8 %3951 to i1
  br i1 %3952, label %3953, label %3957

3953:                                             ; preds = %3946
  %3954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3955 = call i32 @fileno(ptr noundef %3954) #10
  %3956 = call i32 @isatty(i32 noundef %3955) #10
  %.not771 = icmp eq i32 %3956, 0
  br i1 %.not771, label %3957, label %3958

3957:                                             ; preds = %3953, %3946
  br label %3958

3958:                                             ; preds = %3953, %3957
  %.str.5.sink2372 = phi ptr [ @.str.5, %3957 ], [ @.str.2, %3953 ]
  store i32 %3948, ptr %3947, align 4, !tbaa !5
  %3959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3960 = load i32, ptr @test_count, align 4, !tbaa !5
  %3961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3962 = load i32, ptr %3961, align 4, !tbaa !5
  %3963 = call ptr @s2n_strerror(i32 noundef %3962, ptr noundef nonnull @.str.4) #10
  %3964 = load i32, ptr %3961, align 4, !tbaa !5
  %3965 = call ptr @s2n_strerror_debug(i32 noundef %3964, ptr noundef nonnull @.str.4) #10
  %3966 = load i32, ptr %3947, align 4, !tbaa !5
  %3967 = call ptr @strerror(i32 noundef %3966) #10
  %3968 = load i32, ptr %3947, align 4, !tbaa !5
  %3969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3959, ptr noundef nonnull %.str.5.sink2372, i32 noundef %3960, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 358, ptr noundef %3963, ptr noundef %3965, ptr noundef %3967, i32 noundef %3968) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3970:                                             ; preds = %3941
  %3971 = add nsw i32 %3942, 2
  store i32 %3971, ptr @test_count, align 4, !tbaa !5
  %3972 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %3973 = icmp eq ptr %3972, null
  br i1 %3973, label %3974, label %3998

3974:                                             ; preds = %3970
  %3975 = tail call ptr @__errno_location() #11
  %3976 = load i32, ptr %3975, align 4, !tbaa !5
  %3977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3978 = call i32 @s2n_print_stacktrace(ptr noundef %3977) #10
  %3979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3980 = trunc nuw i8 %3979 to i1
  br i1 %3980, label %3981, label %3985

3981:                                             ; preds = %3974
  %3982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3983 = call i32 @fileno(ptr noundef %3982) #10
  %3984 = call i32 @isatty(i32 noundef %3983) #10
  %.not770 = icmp eq i32 %3984, 0
  br i1 %.not770, label %3985, label %3986

3985:                                             ; preds = %3981, %3974
  br label %3986

3986:                                             ; preds = %3981, %3985
  %.str.5.sink2383 = phi ptr [ @.str.5, %3985 ], [ @.str.2, %3981 ]
  store i32 %3976, ptr %3975, align 4, !tbaa !5
  %3987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3988 = load i32, ptr @test_count, align 4, !tbaa !5
  %3989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3990 = load i32, ptr %3989, align 4, !tbaa !5
  %3991 = call ptr @s2n_strerror(i32 noundef %3990, ptr noundef nonnull @.str.4) #10
  %3992 = load i32, ptr %3989, align 4, !tbaa !5
  %3993 = call ptr @s2n_strerror_debug(i32 noundef %3992, ptr noundef nonnull @.str.4) #10
  %3994 = load i32, ptr %3975, align 4, !tbaa !5
  %3995 = call ptr @strerror(i32 noundef %3994) #10
  %3996 = load i32, ptr %3975, align 4, !tbaa !5
  %3997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3987, ptr noundef nonnull %.str.5.sink2383, i32 noundef %3988, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 361, ptr noundef %3991, ptr noundef %3993, ptr noundef %3995, i32 noundef %3996) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3998:                                             ; preds = %3970
  %3999 = getelementptr inbounds i8, ptr %3972, i64 16
  store ptr %7, ptr %3999, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %31) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %31, i8 0, i64 40, i1 false)
  %4000 = load i32, ptr @test_count, align 4, !tbaa !5
  %4001 = add nsw i32 %4000, 1
  store i32 %4001, ptr @test_count, align 4, !tbaa !5
  %4002 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %31, i32 noundef 0) #10
  %4003 = icmp eq i32 %4002, -1
  br i1 %4003, label %4004, label %4028

4004:                                             ; preds = %3998
  %4005 = tail call ptr @__errno_location() #11
  %4006 = load i32, ptr %4005, align 4, !tbaa !5
  %4007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4008 = call i32 @s2n_print_stacktrace(ptr noundef %4007) #10
  %4009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4010 = trunc nuw i8 %4009 to i1
  br i1 %4010, label %4011, label %4015

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

4015:                                             ; preds = %4011, %4004
  br label %4016

4016:                                             ; preds = %4011, %4015
  %.str.5.sink2394 = phi ptr [ @.str.5, %4015 ], [ @.str.2, %4011 ]
  store i32 %4006, ptr %4005, align 4, !tbaa !5
  %4017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4018 = load i32, ptr @test_count, align 4, !tbaa !5
  %4019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4020 = load i32, ptr %4019, align 4, !tbaa !5
  %4021 = call ptr @s2n_strerror(i32 noundef %4020, ptr noundef nonnull @.str.4) #10
  %4022 = load i32, ptr %4019, align 4, !tbaa !5
  %4023 = call ptr @s2n_strerror_debug(i32 noundef %4022, ptr noundef nonnull @.str.4) #10
  %4024 = load i32, ptr %4005, align 4, !tbaa !5
  %4025 = call ptr @strerror(i32 noundef %4024) #10
  %4026 = load i32, ptr %4005, align 4, !tbaa !5
  %4027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4017, ptr noundef nonnull %.str.5.sink2394, i32 noundef %4018, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 367, ptr noundef %4021, ptr noundef %4023, ptr noundef %4025, i32 noundef %4026) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4028:                                             ; preds = %3998
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %32, i8 0, i64 16, i1 false)
  %4029 = load i32, ptr @test_count, align 4, !tbaa !5
  %4030 = add nsw i32 %4029, 1
  store i32 %4030, ptr @test_count, align 4, !tbaa !5
  %4031 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %31, ptr noundef nonnull %32) #10
  %4032 = icmp eq i32 %4031, -1
  br i1 %4032, label %4033, label %4057

4033:                                             ; preds = %4028
  %4034 = tail call ptr @__errno_location() #11
  %4035 = load i32, ptr %4034, align 4, !tbaa !5
  %4036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4037 = call i32 @s2n_print_stacktrace(ptr noundef %4036) #10
  %4038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4039 = trunc nuw i8 %4038 to i1
  br i1 %4039, label %4040, label %4044

4040:                                             ; preds = %4033
  %4041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4042 = call i32 @fileno(ptr noundef %4041) #10
  %4043 = call i32 @isatty(i32 noundef %4042) #10
  %.not768 = icmp eq i32 %4043, 0
  br i1 %.not768, label %4044, label %4045

4044:                                             ; preds = %4040, %4033
  br label %4045

4045:                                             ; preds = %4040, %4044
  %.str.5.sink2405 = phi ptr [ @.str.5, %4044 ], [ @.str.2, %4040 ]
  store i32 %4035, ptr %4034, align 4, !tbaa !5
  %4046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4047 = load i32, ptr @test_count, align 4, !tbaa !5
  %4048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4049 = load i32, ptr %4048, align 4, !tbaa !5
  %4050 = call ptr @s2n_strerror(i32 noundef %4049, ptr noundef nonnull @.str.4) #10
  %4051 = load i32, ptr %4048, align 4, !tbaa !5
  %4052 = call ptr @s2n_strerror_debug(i32 noundef %4051, ptr noundef nonnull @.str.4) #10
  %4053 = load i32, ptr %4034, align 4, !tbaa !5
  %4054 = call ptr @strerror(i32 noundef %4053) #10
  %4055 = load i32, ptr %4034, align 4, !tbaa !5
  %4056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4046, ptr noundef nonnull %.str.5.sink2405, i32 noundef %4047, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 369, ptr noundef %4050, ptr noundef %4052, ptr noundef %4054, i32 noundef %4055) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4057:                                             ; preds = %4028
  %4058 = load i32, ptr @test_count, align 4, !tbaa !5
  %4059 = add nsw i32 %4058, 1
  store i32 %4059, ptr @test_count, align 4, !tbaa !5
  %4060 = load ptr, ptr %30, align 8, !tbaa !9
  %4061 = getelementptr inbounds i8, ptr %4060, i64 24
  %4062 = load ptr, ptr %4061, align 8, !tbaa !33
  %4063 = load ptr, ptr %4062, align 8, !tbaa !9
  %4064 = getelementptr inbounds i8, ptr %4063, i64 8
  %4065 = load i16, ptr %4064, align 8, !tbaa !67
  %4066 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %31, i16 noundef zeroext %4065) #10
  %4067 = icmp eq i32 %4066, -1
  br i1 %4067, label %4068, label %4092

4068:                                             ; preds = %4057
  %4069 = tail call ptr @__errno_location() #11
  %4070 = load i32, ptr %4069, align 4, !tbaa !5
  %4071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4072 = call i32 @s2n_print_stacktrace(ptr noundef %4071) #10
  %4073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4074 = trunc nuw i8 %4073 to i1
  br i1 %4074, label %4075, label %4079

4075:                                             ; preds = %4068
  %4076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4077 = call i32 @fileno(ptr noundef %4076) #10
  %4078 = call i32 @isatty(i32 noundef %4077) #10
  %.not767 = icmp eq i32 %4078, 0
  br i1 %.not767, label %4079, label %4080

4079:                                             ; preds = %4075, %4068
  br label %4080

4080:                                             ; preds = %4075, %4079
  %.str.5.sink2416 = phi ptr [ @.str.5, %4079 ], [ @.str.2, %4075 ]
  store i32 %4070, ptr %4069, align 4, !tbaa !5
  %4081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4082 = load i32, ptr @test_count, align 4, !tbaa !5
  %4083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4084 = load i32, ptr %4083, align 4, !tbaa !5
  %4085 = call ptr @s2n_strerror(i32 noundef %4084, ptr noundef nonnull @.str.4) #10
  %4086 = load i32, ptr %4083, align 4, !tbaa !5
  %4087 = call ptr @s2n_strerror_debug(i32 noundef %4086, ptr noundef nonnull @.str.4) #10
  %4088 = load i32, ptr %4069, align 4, !tbaa !5
  %4089 = call ptr @strerror(i32 noundef %4088) #10
  %4090 = load i32, ptr %4069, align 4, !tbaa !5
  %4091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4081, ptr noundef nonnull %.str.5.sink2416, i32 noundef %4082, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %4085, ptr noundef %4087, ptr noundef %4089, i32 noundef %4090) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4092:                                             ; preds = %4057
  %4093 = load i32, ptr @test_count, align 4, !tbaa !5
  %4094 = add nsw i32 %4093, 1
  store i32 %4094, ptr @test_count, align 4, !tbaa !5
  %4095 = load ptr, ptr %29, align 8, !tbaa !9
  %4096 = getelementptr inbounds i8, ptr %4095, i64 8
  %4097 = load ptr, ptr %4096, align 8, !tbaa !28
  %4098 = load ptr, ptr %4097, align 8, !tbaa !9
  %4099 = load i16, ptr %4098, align 8, !tbaa !29
  %4100 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %31, i16 noundef zeroext %4099) #10
  %4101 = icmp eq i32 %4100, -1
  br i1 %4101, label %4102, label %4126

4102:                                             ; preds = %4092
  %4103 = tail call ptr @__errno_location() #11
  %4104 = load i32, ptr %4103, align 4, !tbaa !5
  %4105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4106 = call i32 @s2n_print_stacktrace(ptr noundef %4105) #10
  %4107 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4108 = trunc nuw i8 %4107 to i1
  br i1 %4108, label %4109, label %4113

4109:                                             ; preds = %4102
  %4110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4111 = call i32 @fileno(ptr noundef %4110) #10
  %4112 = call i32 @isatty(i32 noundef %4111) #10
  %.not766 = icmp eq i32 %4112, 0
  br i1 %.not766, label %4113, label %4114

4113:                                             ; preds = %4109, %4102
  br label %4114

4114:                                             ; preds = %4109, %4113
  %.str.5.sink2427 = phi ptr [ @.str.5, %4113 ], [ @.str.2, %4109 ]
  store i32 %4104, ptr %4103, align 4, !tbaa !5
  %4115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4116 = load i32, ptr @test_count, align 4, !tbaa !5
  %4117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4118 = load i32, ptr %4117, align 4, !tbaa !5
  %4119 = call ptr @s2n_strerror(i32 noundef %4118, ptr noundef nonnull @.str.4) #10
  %4120 = load i32, ptr %4117, align 4, !tbaa !5
  %4121 = call ptr @s2n_strerror_debug(i32 noundef %4120, ptr noundef nonnull @.str.4) #10
  %4122 = load i32, ptr %4103, align 4, !tbaa !5
  %4123 = call ptr @strerror(i32 noundef %4122) #10
  %4124 = load i32, ptr %4103, align 4, !tbaa !5
  %4125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4115, ptr noundef nonnull %.str.5.sink2427, i32 noundef %4116, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %4119, ptr noundef %4121, ptr noundef %4123, i32 noundef %4124) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4126:                                             ; preds = %4092
  %4127 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %32) #10
  %4128 = icmp sgt i32 %4127, -1
  br i1 %4128, label %4129, label %4448

4129:                                             ; preds = %4126
  %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 i8, ptr %3972, i64 656
  %4133 = load ptr, ptr %4132, align 8, !tbaa !72
  %4134 = icmp eq ptr %4133, null
  br i1 %4134, label %4159, label %4135

4135:                                             ; preds = %4129
  %4136 = tail call ptr @__errno_location() #11
  %4137 = load i32, ptr %4136, align 4, !tbaa !5
  %4138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4139 = call i32 @s2n_print_stacktrace(ptr noundef %4138) #10
  %4140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4141 = trunc nuw i8 %4140 to i1
  br i1 %4141, label %4142, label %4146

4142:                                             ; preds = %4135
  %4143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4144 = call i32 @fileno(ptr noundef %4143) #10
  %4145 = call i32 @isatty(i32 noundef %4144) #10
  %.not677 = icmp eq i32 %4145, 0
  br i1 %.not677, label %4146, label %4147

4146:                                             ; preds = %4142, %4135
  br label %4147

4147:                                             ; preds = %4142, %4146
  %.str.5.sink2438 = phi ptr [ @.str.5, %4146 ], [ @.str.2, %4142 ]
  store i32 %4137, ptr %4136, align 4, !tbaa !5
  %4148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4149 = load i32, ptr @test_count, align 4, !tbaa !5
  %4150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4151 = load i32, ptr %4150, align 4, !tbaa !5
  %4152 = call ptr @s2n_strerror(i32 noundef %4151, ptr noundef nonnull @.str.4) #10
  %4153 = load i32, ptr %4150, align 4, !tbaa !5
  %4154 = call ptr @s2n_strerror_debug(i32 noundef %4153, ptr noundef nonnull @.str.4) #10
  %4155 = load i32, ptr %4136, align 4, !tbaa !5
  %4156 = call ptr @strerror(i32 noundef %4155) #10
  %4157 = load i32, ptr %4136, align 4, !tbaa !5
  %4158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4148, ptr noundef nonnull %.str.5.sink2438, i32 noundef %4149, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %4152, ptr noundef %4154, ptr noundef %4156, i32 noundef %4157) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4159:                                             ; preds = %4129
  %4160 = add nsw i32 %4130, 2
  store i32 %4160, ptr @test_count, align 4, !tbaa !5
  %4161 = getelementptr inbounds i8, ptr %3972, i64 720
  %4162 = load ptr, ptr %4161, align 8, !tbaa !73
  %4163 = icmp eq ptr %4162, null
  br i1 %4163, label %4188, label %4164

4164:                                             ; preds = %4159
  %4165 = tail call ptr @__errno_location() #11
  %4166 = load i32, ptr %4165, align 4, !tbaa !5
  %4167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4168 = call i32 @s2n_print_stacktrace(ptr noundef %4167) #10
  %4169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4170 = trunc nuw i8 %4169 to i1
  br i1 %4170, label %4171, label %4175

4171:                                             ; preds = %4164
  %4172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4173 = call i32 @fileno(ptr noundef %4172) #10
  %4174 = call i32 @isatty(i32 noundef %4173) #10
  %.not678 = icmp eq i32 %4174, 0
  br i1 %.not678, label %4175, label %4176

4175:                                             ; preds = %4171, %4164
  br label %4176

4176:                                             ; preds = %4171, %4175
  %.str.5.sink2449 = phi ptr [ @.str.5, %4175 ], [ @.str.2, %4171 ]
  store i32 %4166, ptr %4165, align 4, !tbaa !5
  %4177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4178 = load i32, ptr @test_count, align 4, !tbaa !5
  %4179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4180 = load i32, ptr %4179, align 4, !tbaa !5
  %4181 = call ptr @s2n_strerror(i32 noundef %4180, ptr noundef nonnull @.str.4) #10
  %4182 = load i32, ptr %4179, align 4, !tbaa !5
  %4183 = call ptr @s2n_strerror_debug(i32 noundef %4182, ptr noundef nonnull @.str.4) #10
  %4184 = load i32, ptr %4165, align 4, !tbaa !5
  %4185 = call ptr @strerror(i32 noundef %4184) #10
  %4186 = load i32, ptr %4165, align 4, !tbaa !5
  %4187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4177, ptr noundef nonnull %.str.5.sink2449, i32 noundef %4178, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 375, ptr noundef %4181, ptr noundef %4183, ptr noundef %4185, i32 noundef %4186) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4188:                                             ; preds = %4159
  %4189 = add nsw i32 %4130, 3
  store i32 %4189, ptr @test_count, align 4, !tbaa !5
  %4190 = getelementptr inbounds i8, ptr %3972, i64 816
  %4191 = load ptr, ptr %4190, align 8, !tbaa !74
  %4192 = icmp eq ptr %4191, null
  br i1 %4192, label %4217, label %4193

4193:                                             ; preds = %4188
  %4194 = tail call ptr @__errno_location() #11
  %4195 = load i32, ptr %4194, align 4, !tbaa !5
  %4196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4197 = call i32 @s2n_print_stacktrace(ptr noundef %4196) #10
  %4198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4199 = trunc nuw i8 %4198 to i1
  br i1 %4199, label %4200, label %4204

4200:                                             ; preds = %4193
  %4201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4202 = call i32 @fileno(ptr noundef %4201) #10
  %4203 = call i32 @isatty(i32 noundef %4202) #10
  %.not679 = icmp eq i32 %4203, 0
  br i1 %.not679, label %4204, label %4205

4204:                                             ; preds = %4200, %4193
  br label %4205

4205:                                             ; preds = %4200, %4204
  %.str.5.sink2460 = phi ptr [ @.str.5, %4204 ], [ @.str.2, %4200 ]
  store i32 %4195, ptr %4194, align 4, !tbaa !5
  %4206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4207 = load i32, ptr @test_count, align 4, !tbaa !5
  %4208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4209 = load i32, ptr %4208, align 4, !tbaa !5
  %4210 = call ptr @s2n_strerror(i32 noundef %4209, ptr noundef nonnull @.str.4) #10
  %4211 = load i32, ptr %4208, align 4, !tbaa !5
  %4212 = call ptr @s2n_strerror_debug(i32 noundef %4211, ptr noundef nonnull @.str.4) #10
  %4213 = load i32, ptr %4194, align 4, !tbaa !5
  %4214 = call ptr @strerror(i32 noundef %4213) #10
  %4215 = load i32, ptr %4194, align 4, !tbaa !5
  %4216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4206, ptr noundef nonnull %.str.5.sink2460, i32 noundef %4207, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %4210, ptr noundef %4212, ptr noundef %4214, i32 noundef %4215) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4217:                                             ; preds = %4188
  %4218 = add nsw i32 %4130, 4
  store i32 %4218, ptr @test_count, align 4, !tbaa !5
  %4219 = getelementptr inbounds i8, ptr %3972, i64 728
  %4220 = load ptr, ptr %4219, align 8, !tbaa !75
  %4221 = icmp eq ptr %4220, null
  br i1 %4221, label %4246, label %4222

4222:                                             ; preds = %4217
  %4223 = tail call ptr @__errno_location() #11
  %4224 = load i32, ptr %4223, align 4, !tbaa !5
  %4225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4226 = call i32 @s2n_print_stacktrace(ptr noundef %4225) #10
  %4227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4228 = trunc nuw i8 %4227 to i1
  br i1 %4228, label %4229, label %4233

4229:                                             ; preds = %4222
  %4230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4231 = call i32 @fileno(ptr noundef %4230) #10
  %4232 = call i32 @isatty(i32 noundef %4231) #10
  %.not680 = icmp eq i32 %4232, 0
  br i1 %.not680, label %4233, label %4234

4233:                                             ; preds = %4229, %4222
  br label %4234

4234:                                             ; preds = %4229, %4233
  %.str.5.sink2471 = phi ptr [ @.str.5, %4233 ], [ @.str.2, %4229 ]
  store i32 %4224, ptr %4223, align 4, !tbaa !5
  %4235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4236 = load i32, ptr @test_count, align 4, !tbaa !5
  %4237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4238 = load i32, ptr %4237, align 4, !tbaa !5
  %4239 = call ptr @s2n_strerror(i32 noundef %4238, ptr noundef nonnull @.str.4) #10
  %4240 = load i32, ptr %4237, align 4, !tbaa !5
  %4241 = call ptr @s2n_strerror_debug(i32 noundef %4240, ptr noundef nonnull @.str.4) #10
  %4242 = load i32, ptr %4223, align 4, !tbaa !5
  %4243 = call ptr @strerror(i32 noundef %4242) #10
  %4244 = load i32, ptr %4223, align 4, !tbaa !5
  %4245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4235, ptr noundef nonnull %.str.5.sink2471, i32 noundef %4236, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %4239, ptr noundef %4241, ptr noundef %4243, i32 noundef %4244) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4246:                                             ; preds = %4217
  %4247 = add nsw i32 %4130, 5
  store i32 %4247, ptr @test_count, align 4, !tbaa !5
  %4248 = call i32 %2117(ptr noundef nonnull %3972, ptr noundef nonnull %31) #10
  %4249 = icmp eq i32 %4248, -1
  br i1 %4249, label %4250, label %4274

4250:                                             ; preds = %4246
  %4251 = tail call ptr @__errno_location() #11
  %4252 = load i32, ptr %4251, align 4, !tbaa !5
  %4253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4254 = call i32 @s2n_print_stacktrace(ptr noundef %4253) #10
  %4255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4256 = trunc nuw i8 %4255 to i1
  br i1 %4256, label %4257, label %4261

4257:                                             ; preds = %4250
  %4258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4259 = call i32 @fileno(ptr noundef %4258) #10
  %4260 = call i32 @isatty(i32 noundef %4259) #10
  %.not765 = icmp eq i32 %4260, 0
  br i1 %.not765, label %4261, label %4262

4261:                                             ; preds = %4257, %4250
  br label %4262

4262:                                             ; preds = %4257, %4261
  %.str.5.sink2482 = phi ptr [ @.str.5, %4261 ], [ @.str.2, %4257 ]
  store i32 %4252, ptr %4251, align 4, !tbaa !5
  %4263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4264 = load i32, ptr @test_count, align 4, !tbaa !5
  %4265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4266 = load i32, ptr %4265, align 4, !tbaa !5
  %4267 = call ptr @s2n_strerror(i32 noundef %4266, ptr noundef nonnull @.str.4) #10
  %4268 = load i32, ptr %4265, align 4, !tbaa !5
  %4269 = call ptr @s2n_strerror_debug(i32 noundef %4268, ptr noundef nonnull @.str.4) #10
  %4270 = load i32, ptr %4251, align 4, !tbaa !5
  %4271 = call ptr @strerror(i32 noundef %4270) #10
  %4272 = load i32, ptr %4251, align 4, !tbaa !5
  %4273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4263, ptr noundef nonnull %.str.5.sink2482, i32 noundef %4264, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 379, ptr noundef %4267, ptr noundef %4269, ptr noundef %4271, i32 noundef %4272) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4274:                                             ; preds = %4246
  %4275 = load i32, ptr @test_count, align 4, !tbaa !5
  %4276 = add nsw i32 %4275, 1
  store i32 %4276, ptr @test_count, align 4, !tbaa !5
  %4277 = load ptr, ptr %4132, align 8, !tbaa !72
  %4278 = load ptr, ptr %29, align 8, !tbaa !9
  %4279 = getelementptr inbounds i8, ptr %4278, i64 8
  %4280 = load ptr, ptr %4279, align 8, !tbaa !28
  %4281 = load ptr, ptr %4280, align 8, !tbaa !9
  %4282 = icmp eq ptr %4277, %4281
  br i1 %4282, label %4307, label %4283

4283:                                             ; preds = %4274
  %4284 = tail call ptr @__errno_location() #11
  %4285 = load i32, ptr %4284, align 4, !tbaa !5
  %4286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4287 = call i32 @s2n_print_stacktrace(ptr noundef %4286) #10
  %4288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4289 = trunc nuw i8 %4288 to i1
  br i1 %4289, label %4290, label %4294

4290:                                             ; preds = %4283
  %4291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4292 = call i32 @fileno(ptr noundef %4291) #10
  %4293 = call i32 @isatty(i32 noundef %4292) #10
  %.not681 = icmp eq i32 %4293, 0
  br i1 %.not681, label %4294, label %4295

4294:                                             ; preds = %4290, %4283
  br label %4295

4295:                                             ; preds = %4290, %4294
  %.str.5.sink2493 = phi ptr [ @.str.5, %4294 ], [ @.str.2, %4290 ]
  store i32 %4285, ptr %4284, align 4, !tbaa !5
  %4296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4297 = load i32, ptr @test_count, align 4, !tbaa !5
  %4298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4299 = load i32, ptr %4298, align 4, !tbaa !5
  %4300 = call ptr @s2n_strerror(i32 noundef %4299, ptr noundef nonnull @.str.4) #10
  %4301 = load i32, ptr %4298, align 4, !tbaa !5
  %4302 = call ptr @s2n_strerror_debug(i32 noundef %4301, ptr noundef nonnull @.str.4) #10
  %4303 = load i32, ptr %4284, align 4, !tbaa !5
  %4304 = call ptr @strerror(i32 noundef %4303) #10
  %4305 = load i32, ptr %4284, align 4, !tbaa !5
  %4306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4296, ptr noundef nonnull %.str.5.sink2493, i32 noundef %4297, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 381, ptr noundef %4300, ptr noundef %4302, ptr noundef %4304, i32 noundef %4305) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4307:                                             ; preds = %4274
  %4308 = add nsw i32 %4275, 2
  store i32 %4308, ptr @test_count, align 4, !tbaa !5
  %4309 = load ptr, ptr %4161, align 8, !tbaa !73
  %4310 = icmp eq ptr %4309, null
  br i1 %4310, label %4335, label %4311

4311:                                             ; preds = %4307
  %4312 = tail call ptr @__errno_location() #11
  %4313 = load i32, ptr %4312, align 4, !tbaa !5
  %4314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4315 = call i32 @s2n_print_stacktrace(ptr noundef %4314) #10
  %4316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4317 = trunc nuw i8 %4316 to i1
  br i1 %4317, label %4318, label %4322

4318:                                             ; preds = %4311
  %4319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4320 = call i32 @fileno(ptr noundef %4319) #10
  %4321 = call i32 @isatty(i32 noundef %4320) #10
  %.not682 = icmp eq i32 %4321, 0
  br i1 %.not682, label %4322, label %4323

4322:                                             ; preds = %4318, %4311
  br label %4323

4323:                                             ; preds = %4318, %4322
  %.str.5.sink2504 = phi ptr [ @.str.5, %4322 ], [ @.str.2, %4318 ]
  store i32 %4313, ptr %4312, align 4, !tbaa !5
  %4324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4325 = load i32, ptr @test_count, align 4, !tbaa !5
  %4326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4327 = load i32, ptr %4326, align 4, !tbaa !5
  %4328 = call ptr @s2n_strerror(i32 noundef %4327, ptr noundef nonnull @.str.4) #10
  %4329 = load i32, ptr %4326, align 4, !tbaa !5
  %4330 = call ptr @s2n_strerror_debug(i32 noundef %4329, ptr noundef nonnull @.str.4) #10
  %4331 = load i32, ptr %4312, align 4, !tbaa !5
  %4332 = call ptr @strerror(i32 noundef %4331) #10
  %4333 = load i32, ptr %4312, align 4, !tbaa !5
  %4334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4324, ptr noundef nonnull %.str.5.sink2504, i32 noundef %4325, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 382, ptr noundef %4328, ptr noundef %4330, ptr noundef %4332, i32 noundef %4333) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4335:                                             ; preds = %4307
  %4336 = add nsw i32 %4275, 3
  store i32 %4336, ptr @test_count, align 4, !tbaa !5
  %4337 = load ptr, ptr %4190, align 8, !tbaa !74
  %4338 = icmp eq ptr %4337, null
  br i1 %4338, label %4363, label %4339

4339:                                             ; preds = %4335
  %4340 = tail call ptr @__errno_location() #11
  %4341 = load i32, ptr %4340, align 4, !tbaa !5
  %4342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4343 = call i32 @s2n_print_stacktrace(ptr noundef %4342) #10
  %4344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4345 = trunc nuw i8 %4344 to i1
  br i1 %4345, label %4346, label %4350

4346:                                             ; preds = %4339
  %4347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4348 = call i32 @fileno(ptr noundef %4347) #10
  %4349 = call i32 @isatty(i32 noundef %4348) #10
  %.not683 = icmp eq i32 %4349, 0
  br i1 %.not683, label %4350, label %4351

4350:                                             ; preds = %4346, %4339
  br label %4351

4351:                                             ; preds = %4346, %4350
  %.str.5.sink2515 = phi ptr [ @.str.5, %4350 ], [ @.str.2, %4346 ]
  store i32 %4341, ptr %4340, align 4, !tbaa !5
  %4352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4353 = load i32, ptr @test_count, align 4, !tbaa !5
  %4354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4355 = load i32, ptr %4354, align 4, !tbaa !5
  %4356 = call ptr @s2n_strerror(i32 noundef %4355, ptr noundef nonnull @.str.4) #10
  %4357 = load i32, ptr %4354, align 4, !tbaa !5
  %4358 = call ptr @s2n_strerror_debug(i32 noundef %4357, ptr noundef nonnull @.str.4) #10
  %4359 = load i32, ptr %4340, align 4, !tbaa !5
  %4360 = call ptr @strerror(i32 noundef %4359) #10
  %4361 = load i32, ptr %4340, align 4, !tbaa !5
  %4362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4352, ptr noundef nonnull %.str.5.sink2515, i32 noundef %4353, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 383, ptr noundef %4356, ptr noundef %4358, ptr noundef %4360, i32 noundef %4361) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4363:                                             ; preds = %4335
  %4364 = add nsw i32 %4275, 4
  store i32 %4364, ptr @test_count, align 4, !tbaa !5
  %4365 = load ptr, ptr %4219, align 8, !tbaa !75
  %4366 = icmp eq ptr %4365, null
  br i1 %4366, label %4391, label %4367

4367:                                             ; preds = %4363
  %4368 = tail call ptr @__errno_location() #11
  %4369 = load i32, ptr %4368, align 4, !tbaa !5
  %4370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4371 = call i32 @s2n_print_stacktrace(ptr noundef %4370) #10
  %4372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4373 = trunc nuw i8 %4372 to i1
  br i1 %4373, label %4374, label %4378

4374:                                             ; preds = %4367
  %4375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4376 = call i32 @fileno(ptr noundef %4375) #10
  %4377 = call i32 @isatty(i32 noundef %4376) #10
  %.not684 = icmp eq i32 %4377, 0
  br i1 %.not684, label %4378, label %4379

4378:                                             ; preds = %4374, %4367
  br label %4379

4379:                                             ; preds = %4374, %4378
  %.str.5.sink2526 = phi ptr [ @.str.5, %4378 ], [ @.str.2, %4374 ]
  store i32 %4369, ptr %4368, align 4, !tbaa !5
  %4380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4381 = load i32, ptr @test_count, align 4, !tbaa !5
  %4382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4383 = load i32, ptr %4382, align 4, !tbaa !5
  %4384 = call ptr @s2n_strerror(i32 noundef %4383, ptr noundef nonnull @.str.4) #10
  %4385 = load i32, ptr %4382, align 4, !tbaa !5
  %4386 = call ptr @s2n_strerror_debug(i32 noundef %4385, ptr noundef nonnull @.str.4) #10
  %4387 = load i32, ptr %4368, align 4, !tbaa !5
  %4388 = call ptr @strerror(i32 noundef %4387) #10
  %4389 = load i32, ptr %4368, align 4, !tbaa !5
  %4390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4380, ptr noundef nonnull %.str.5.sink2526, i32 noundef %4381, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 384, ptr noundef %4384, ptr noundef %4386, ptr noundef %4388, i32 noundef %4389) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4391:                                             ; preds = %4363
  %4392 = add nsw i32 %4275, 5
  store i32 %4392, ptr @test_count, align 4, !tbaa !5
  %4393 = call i32 @s2n_connection_free(ptr noundef nonnull %3799) #10
  %4394 = icmp eq i32 %4393, -1
  br i1 %4394, label %4395, label %4419

4395:                                             ; preds = %4391
  %4396 = tail call ptr @__errno_location() #11
  %4397 = load i32, ptr %4396, align 4, !tbaa !5
  %4398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4399 = call i32 @s2n_print_stacktrace(ptr noundef %4398) #10
  %4400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4401 = trunc nuw i8 %4400 to i1
  br i1 %4401, label %4402, label %4406

4402:                                             ; preds = %4395
  %4403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4404 = call i32 @fileno(ptr noundef %4403) #10
  %4405 = call i32 @isatty(i32 noundef %4404) #10
  %.not764 = icmp eq i32 %4405, 0
  br i1 %.not764, label %4406, label %4407

4406:                                             ; preds = %4402, %4395
  br label %4407

4407:                                             ; preds = %4402, %4406
  %.str.5.sink2537 = phi ptr [ @.str.5, %4406 ], [ @.str.2, %4402 ]
  store i32 %4397, ptr %4396, align 4, !tbaa !5
  %4408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4409 = load i32, ptr @test_count, align 4, !tbaa !5
  %4410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4411 = load i32, ptr %4410, align 4, !tbaa !5
  %4412 = call ptr @s2n_strerror(i32 noundef %4411, ptr noundef nonnull @.str.4) #10
  %4413 = load i32, ptr %4410, align 4, !tbaa !5
  %4414 = call ptr @s2n_strerror_debug(i32 noundef %4413, ptr noundef nonnull @.str.4) #10
  %4415 = load i32, ptr %4396, align 4, !tbaa !5
  %4416 = call ptr @strerror(i32 noundef %4415) #10
  %4417 = load i32, ptr %4396, align 4, !tbaa !5
  %4418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4408, ptr noundef nonnull %.str.5.sink2537, i32 noundef %4409, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 386, ptr noundef %4412, ptr noundef %4414, ptr noundef %4416, i32 noundef %4417) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4419:                                             ; preds = %4391
  %4420 = load i32, ptr @test_count, align 4, !tbaa !5
  %4421 = add nsw i32 %4420, 1
  store i32 %4421, ptr @test_count, align 4, !tbaa !5
  %4422 = call i32 @s2n_connection_free(ptr noundef nonnull %3972) #10
  %4423 = icmp eq i32 %4422, -1
  br i1 %4423, label %4424, label %4450

4424:                                             ; preds = %4419
  %4425 = tail call ptr @__errno_location() #11
  %4426 = load i32, ptr %4425, align 4, !tbaa !5
  %4427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4428 = call i32 @s2n_print_stacktrace(ptr noundef %4427) #10
  %4429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4430 = trunc nuw i8 %4429 to i1
  br i1 %4430, label %4431, label %4435

4431:                                             ; preds = %4424
  %4432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4433 = call i32 @fileno(ptr noundef %4432) #10
  %4434 = call i32 @isatty(i32 noundef %4433) #10
  %.not763 = icmp eq i32 %4434, 0
  br i1 %.not763, label %4435, label %4436

4435:                                             ; preds = %4431, %4424
  br label %4436

4436:                                             ; preds = %4431, %4435
  %.str.5.sink2548 = phi ptr [ @.str.5, %4435 ], [ @.str.2, %4431 ]
  store i32 %4426, ptr %4425, align 4, !tbaa !5
  %4437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4438 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4440, ptr noundef nonnull @.str.4) #10
  %4442 = load i32, ptr %4439, align 4, !tbaa !5
  %4443 = call ptr @s2n_strerror_debug(i32 noundef %4442, ptr noundef nonnull @.str.4) #10
  %4444 = load i32, ptr %4425, align 4, !tbaa !5
  %4445 = call ptr @strerror(i32 noundef %4444) #10
  %4446 = load i32, ptr %4425, align 4, !tbaa !5
  %4447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4437, ptr noundef nonnull %.str.5.sink2548, i32 noundef %4438, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 387, ptr noundef %4441, ptr noundef %4443, ptr noundef %4445, i32 noundef %4446) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4448:                                             ; preds = %4126
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #10
  %4449 = call i32 @s2n_stuffer_free(ptr noundef nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  br label %.thread890

4450:                                             ; preds = %4419
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #10
  %4451 = call i32 @s2n_stuffer_free(ptr noundef nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  %4452 = call zeroext i1 @s2n_pq_is_enabled() #10
  br i1 %4452, label %5137, label %4453

4453:                                             ; preds = %4450
  %4454 = load i32, ptr @test_count, align 4, !tbaa !5
  %4455 = add nsw i32 %4454, 1
  store i32 %4455, ptr @test_count, align 4, !tbaa !5
  %4456 = call i32 (...) @s2n_enable_tls13_in_test() #10
  %4457 = icmp eq i32 %4456, -1
  br i1 %4457, label %4458, label %4482

4458:                                             ; preds = %4453
  %4459 = tail call ptr @__errno_location() #11
  %4460 = load i32, ptr %4459, align 4, !tbaa !5
  %4461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4462 = call i32 @s2n_print_stacktrace(ptr noundef %4461) #10
  %4463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4464 = trunc nuw i8 %4463 to i1
  br i1 %4464, label %4465, label %4469

4465:                                             ; preds = %4458
  %4466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4467 = call i32 @fileno(ptr noundef %4466) #10
  %4468 = call i32 @isatty(i32 noundef %4467) #10
  %.not707 = icmp eq i32 %4468, 0
  br i1 %.not707, label %4469, label %4470

4469:                                             ; preds = %4465, %4458
  br label %4470

4470:                                             ; preds = %4465, %4469
  %.str.5.sink2559 = phi ptr [ @.str.5, %4469 ], [ @.str.2, %4465 ]
  store i32 %4460, ptr %4459, align 4, !tbaa !5
  %4471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4472 = load i32, ptr @test_count, align 4, !tbaa !5
  %4473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4474 = load i32, ptr %4473, align 4, !tbaa !5
  %4475 = call ptr @s2n_strerror(i32 noundef %4474, ptr noundef nonnull @.str.4) #10
  %4476 = load i32, ptr %4473, align 4, !tbaa !5
  %4477 = call ptr @s2n_strerror_debug(i32 noundef %4476, ptr noundef nonnull @.str.4) #10
  %4478 = load i32, ptr %4459, align 4, !tbaa !5
  %4479 = call ptr @strerror(i32 noundef %4478) #10
  %4480 = load i32, ptr %4459, align 4, !tbaa !5
  %4481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4471, ptr noundef nonnull %.str.5.sink2559, i32 noundef %4472, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 393, ptr noundef %4475, ptr noundef %4477, ptr noundef %4479, i32 noundef %4480) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4482:                                             ; preds = %4453
  %4483 = load i32, ptr @test_count, align 4, !tbaa !5
  %4484 = add nsw i32 %4483, 1
  store i32 %4484, ptr @test_count, align 4, !tbaa !5
  %4485 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %4486 = icmp eq ptr %4485, null
  br i1 %4486, label %4487, label %4511

4487:                                             ; preds = %4482
  %4488 = tail call ptr @__errno_location() #11
  %4489 = load i32, ptr %4488, align 4, !tbaa !5
  %4490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4491 = call i32 @s2n_print_stacktrace(ptr noundef %4490) #10
  %4492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4493 = trunc nuw i8 %4492 to i1
  br i1 %4493, label %4494, label %4498

4494:                                             ; preds = %4487
  %4495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4496 = call i32 @fileno(ptr noundef %4495) #10
  %4497 = call i32 @isatty(i32 noundef %4496) #10
  %.not706 = icmp eq i32 %4497, 0
  br i1 %.not706, label %4498, label %4499

4498:                                             ; preds = %4494, %4487
  br label %4499

4499:                                             ; preds = %4494, %4498
  %.str.5.sink2570 = phi ptr [ @.str.5, %4498 ], [ @.str.2, %4494 ]
  store i32 %4489, ptr %4488, align 4, !tbaa !5
  %4500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4501 = load i32, ptr @test_count, align 4, !tbaa !5
  %4502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4503 = load i32, ptr %4502, align 4, !tbaa !5
  %4504 = call ptr @s2n_strerror(i32 noundef %4503, ptr noundef nonnull @.str.4) #10
  %4505 = load i32, ptr %4502, align 4, !tbaa !5
  %4506 = call ptr @s2n_strerror_debug(i32 noundef %4505, ptr noundef nonnull @.str.4) #10
  %4507 = load i32, ptr %4488, align 4, !tbaa !5
  %4508 = call ptr @strerror(i32 noundef %4507) #10
  %4509 = load i32, ptr %4488, align 4, !tbaa !5
  %4510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4500, ptr noundef nonnull %.str.5.sink2570, i32 noundef %4501, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 395, ptr noundef %4504, ptr noundef %4506, ptr noundef %4508, i32 noundef %4509) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4511:                                             ; preds = %4482
  %4512 = getelementptr inbounds i8, ptr %4485, i64 16
  store ptr %7, ptr %4512, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #10
  store ptr null, ptr %33, align 8, !tbaa !9
  %4513 = load i32, ptr @test_count, align 4, !tbaa !5
  %4514 = add nsw i32 %4513, 1
  store i32 %4514, ptr @test_count, align 4, !tbaa !5
  %4515 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %4485, ptr noundef nonnull %33) #10
  %4516 = icmp eq i32 %4515, -1
  br i1 %4516, label %4517, label %4541

4517:                                             ; preds = %4511
  %4518 = tail call ptr @__errno_location() #11
  %4519 = load i32, ptr %4518, align 4, !tbaa !5
  %4520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4521 = call i32 @s2n_print_stacktrace(ptr noundef %4520) #10
  %4522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4523 = trunc nuw i8 %4522 to i1
  br i1 %4523, label %4524, label %4528

4524:                                             ; preds = %4517
  %4525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4526 = call i32 @fileno(ptr noundef %4525) #10
  %4527 = call i32 @isatty(i32 noundef %4526) #10
  %.not705 = icmp eq i32 %4527, 0
  br i1 %.not705, label %4528, label %4529

4528:                                             ; preds = %4524, %4517
  br label %4529

4529:                                             ; preds = %4524, %4528
  %.str.5.sink2581 = phi ptr [ @.str.5, %4528 ], [ @.str.2, %4524 ]
  store i32 %4519, ptr %4518, align 4, !tbaa !5
  %4530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4531 = load i32, ptr @test_count, align 4, !tbaa !5
  %4532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4533 = load i32, ptr %4532, align 4, !tbaa !5
  %4534 = call ptr @s2n_strerror(i32 noundef %4533, ptr noundef nonnull @.str.4) #10
  %4535 = load i32, ptr %4532, align 4, !tbaa !5
  %4536 = call ptr @s2n_strerror_debug(i32 noundef %4535, ptr noundef nonnull @.str.4) #10
  %4537 = load i32, ptr %4518, align 4, !tbaa !5
  %4538 = call ptr @strerror(i32 noundef %4537) #10
  %4539 = load i32, ptr %4518, align 4, !tbaa !5
  %4540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4530, ptr noundef nonnull %.str.5.sink2581, i32 noundef %4531, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 399, ptr noundef %4534, ptr noundef %4536, ptr noundef %4538, i32 noundef %4539) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4541:                                             ; preds = %4511
  %4542 = load i32, ptr @test_count, align 4, !tbaa !5
  %4543 = add nsw i32 %4542, 1
  store i32 %4543, ptr @test_count, align 4, !tbaa !5
  %4544 = load ptr, ptr %33, align 8, !tbaa !9
  %4545 = icmp eq ptr %4544, null
  br i1 %4545, label %4546, label %4570

4546:                                             ; preds = %4541
  %4547 = tail call ptr @__errno_location() #11
  %4548 = load i32, ptr %4547, align 4, !tbaa !5
  %4549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4550 = call i32 @s2n_print_stacktrace(ptr noundef %4549) #10
  %4551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4552 = trunc nuw i8 %4551 to i1
  br i1 %4552, label %4553, label %4557

4553:                                             ; preds = %4546
  %4554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4555 = call i32 @fileno(ptr noundef %4554) #10
  %4556 = call i32 @isatty(i32 noundef %4555) #10
  %.not704 = icmp eq i32 %4556, 0
  br i1 %.not704, label %4557, label %4558

4557:                                             ; preds = %4553, %4546
  br label %4558

4558:                                             ; preds = %4553, %4557
  %.str.5.sink2592 = phi ptr [ @.str.5, %4557 ], [ @.str.2, %4553 ]
  store i32 %4548, ptr %4547, align 4, !tbaa !5
  %4559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4560 = load i32, ptr @test_count, align 4, !tbaa !5
  %4561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4562 = load i32, ptr %4561, align 4, !tbaa !5
  %4563 = call ptr @s2n_strerror(i32 noundef %4562, ptr noundef nonnull @.str.4) #10
  %4564 = load i32, ptr %4561, align 4, !tbaa !5
  %4565 = call ptr @s2n_strerror_debug(i32 noundef %4564, ptr noundef nonnull @.str.4) #10
  %4566 = load i32, ptr %4547, align 4, !tbaa !5
  %4567 = call ptr @strerror(i32 noundef %4566) #10
  %4568 = load i32, ptr %4547, align 4, !tbaa !5
  %4569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4559, ptr noundef nonnull %.str.5.sink2592, i32 noundef %4560, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 400, ptr noundef %4563, ptr noundef %4565, ptr noundef %4567, i32 noundef %4568) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4570:                                             ; preds = %4541
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #10
  store ptr null, ptr %34, align 8, !tbaa !9
  %4571 = add nsw i32 %4542, 2
  store i32 %4571, ptr @test_count, align 4, !tbaa !5
  %4572 = call i32 @s2n_connection_get_kem_preferences(ptr noundef nonnull %4485, ptr noundef nonnull %34) #10
  %4573 = icmp eq i32 %4572, -1
  br i1 %4573, label %4574, label %4598

4574:                                             ; preds = %4570
  %4575 = tail call ptr @__errno_location() #11
  %4576 = load i32, ptr %4575, align 4, !tbaa !5
  %4577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4578 = call i32 @s2n_print_stacktrace(ptr noundef %4577) #10
  %4579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4580 = trunc nuw i8 %4579 to i1
  br i1 %4580, label %4581, label %4585

4581:                                             ; preds = %4574
  %4582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4583 = call i32 @fileno(ptr noundef %4582) #10
  %4584 = call i32 @isatty(i32 noundef %4583) #10
  %.not703 = icmp eq i32 %4584, 0
  br i1 %.not703, label %4585, label %4586

4585:                                             ; preds = %4581, %4574
  br label %4586

4586:                                             ; preds = %4581, %4585
  %.str.5.sink2603 = phi ptr [ @.str.5, %4585 ], [ @.str.2, %4581 ]
  store i32 %4576, ptr %4575, align 4, !tbaa !5
  %4587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4588 = load i32, ptr @test_count, align 4, !tbaa !5
  %4589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4590 = load i32, ptr %4589, align 4, !tbaa !5
  %4591 = call ptr @s2n_strerror(i32 noundef %4590, ptr noundef nonnull @.str.4) #10
  %4592 = load i32, ptr %4589, align 4, !tbaa !5
  %4593 = call ptr @s2n_strerror_debug(i32 noundef %4592, ptr noundef nonnull @.str.4) #10
  %4594 = load i32, ptr %4575, align 4, !tbaa !5
  %4595 = call ptr @strerror(i32 noundef %4594) #10
  %4596 = load i32, ptr %4575, align 4, !tbaa !5
  %4597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4587, ptr noundef nonnull %.str.5.sink2603, i32 noundef %4588, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 403, ptr noundef %4591, ptr noundef %4593, ptr noundef %4595, i32 noundef %4596) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4598:                                             ; preds = %4570
  %4599 = load i32, ptr @test_count, align 4, !tbaa !5
  %4600 = add nsw i32 %4599, 1
  store i32 %4600, ptr @test_count, align 4, !tbaa !5
  %4601 = load ptr, ptr %34, align 8, !tbaa !9
  %4602 = icmp eq ptr %4601, null
  br i1 %4602, label %4603, label %4627

4603:                                             ; preds = %4598
  %4604 = tail call ptr @__errno_location() #11
  %4605 = load i32, ptr %4604, align 4, !tbaa !5
  %4606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4607 = call i32 @s2n_print_stacktrace(ptr noundef %4606) #10
  %4608 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4609 = trunc nuw i8 %4608 to i1
  br i1 %4609, label %4610, label %4614

4610:                                             ; preds = %4603
  %4611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4612 = call i32 @fileno(ptr noundef %4611) #10
  %4613 = call i32 @isatty(i32 noundef %4612) #10
  %.not702 = icmp eq i32 %4613, 0
  br i1 %.not702, label %4614, label %4615

4614:                                             ; preds = %4610, %4603
  br label %4615

4615:                                             ; preds = %4610, %4614
  %.str.5.sink2614 = phi ptr [ @.str.5, %4614 ], [ @.str.2, %4610 ]
  store i32 %4605, ptr %4604, align 4, !tbaa !5
  %4616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4617 = load i32, ptr @test_count, align 4, !tbaa !5
  %4618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4619 = load i32, ptr %4618, align 4, !tbaa !5
  %4620 = call ptr @s2n_strerror(i32 noundef %4619, ptr noundef nonnull @.str.4) #10
  %4621 = load i32, ptr %4618, align 4, !tbaa !5
  %4622 = call ptr @s2n_strerror_debug(i32 noundef %4621, ptr noundef nonnull @.str.4) #10
  %4623 = load i32, ptr %4604, align 4, !tbaa !5
  %4624 = call ptr @strerror(i32 noundef %4623) #10
  %4625 = load i32, ptr %4604, align 4, !tbaa !5
  %4626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4616, ptr noundef nonnull %.str.5.sink2614, i32 noundef %4617, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 404, ptr noundef %4620, ptr noundef %4622, ptr noundef %4624, i32 noundef %4625) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4627:                                             ; preds = %4598
  %4628 = add nsw i32 %4599, 2
  store i32 %4628, ptr @test_count, align 4, !tbaa !5
  %4629 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %4630 = icmp eq ptr %4629, null
  br i1 %4630, label %4631, label %4655

4631:                                             ; preds = %4627
  %4632 = tail call ptr @__errno_location() #11
  %4633 = load i32, ptr %4632, align 4, !tbaa !5
  %4634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4635 = call i32 @s2n_print_stacktrace(ptr noundef %4634) #10
  %4636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4637 = trunc nuw i8 %4636 to i1
  br i1 %4637, label %4638, label %4642

4638:                                             ; preds = %4631
  %4639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4640 = call i32 @fileno(ptr noundef %4639) #10
  %4641 = call i32 @isatty(i32 noundef %4640) #10
  %.not701 = icmp eq i32 %4641, 0
  br i1 %.not701, label %4642, label %4643

4642:                                             ; preds = %4638, %4631
  br label %4643

4643:                                             ; preds = %4638, %4642
  %.str.5.sink2625 = phi ptr [ @.str.5, %4642 ], [ @.str.2, %4638 ]
  store i32 %4633, ptr %4632, align 4, !tbaa !5
  %4644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4645 = load i32, ptr @test_count, align 4, !tbaa !5
  %4646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4647 = load i32, ptr %4646, align 4, !tbaa !5
  %4648 = call ptr @s2n_strerror(i32 noundef %4647, ptr noundef nonnull @.str.4) #10
  %4649 = load i32, ptr %4646, align 4, !tbaa !5
  %4650 = call ptr @s2n_strerror_debug(i32 noundef %4649, ptr noundef nonnull @.str.4) #10
  %4651 = load i32, ptr %4632, align 4, !tbaa !5
  %4652 = call ptr @strerror(i32 noundef %4651) #10
  %4653 = load i32, ptr %4632, align 4, !tbaa !5
  %4654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4644, ptr noundef nonnull %.str.5.sink2625, i32 noundef %4645, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 407, ptr noundef %4648, ptr noundef %4650, ptr noundef %4652, i32 noundef %4653) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4655:                                             ; preds = %4627
  %4656 = getelementptr inbounds i8, ptr %4629, i64 16
  store ptr %7, ptr %4656, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %35) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %35, i8 0, i64 40, i1 false)
  %4657 = load i32, ptr @test_count, align 4, !tbaa !5
  %4658 = add nsw i32 %4657, 1
  store i32 %4658, ptr @test_count, align 4, !tbaa !5
  %4659 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %35, i32 noundef 0) #10
  %4660 = icmp eq i32 %4659, -1
  br i1 %4660, label %4661, label %4685

4661:                                             ; preds = %4655
  %4662 = tail call ptr @__errno_location() #11
  %4663 = load i32, ptr %4662, align 4, !tbaa !5
  %4664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4665 = call i32 @s2n_print_stacktrace(ptr noundef %4664) #10
  %4666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4667 = trunc nuw i8 %4666 to i1
  br i1 %4667, label %4668, label %4672

4668:                                             ; preds = %4661
  %4669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4670 = call i32 @fileno(ptr noundef %4669) #10
  %4671 = call i32 @isatty(i32 noundef %4670) #10
  %.not700 = icmp eq i32 %4671, 0
  br i1 %.not700, label %4672, label %4673

4672:                                             ; preds = %4668, %4661
  br label %4673

4673:                                             ; preds = %4668, %4672
  %.str.5.sink2636 = phi ptr [ @.str.5, %4672 ], [ @.str.2, %4668 ]
  store i32 %4663, ptr %4662, align 4, !tbaa !5
  %4674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4675 = load i32, ptr @test_count, align 4, !tbaa !5
  %4676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4677 = load i32, ptr %4676, align 4, !tbaa !5
  %4678 = call ptr @s2n_strerror(i32 noundef %4677, ptr noundef nonnull @.str.4) #10
  %4679 = load i32, ptr %4676, align 4, !tbaa !5
  %4680 = call ptr @s2n_strerror_debug(i32 noundef %4679, ptr noundef nonnull @.str.4) #10
  %4681 = load i32, ptr %4662, align 4, !tbaa !5
  %4682 = call ptr @strerror(i32 noundef %4681) #10
  %4683 = load i32, ptr %4662, align 4, !tbaa !5
  %4684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4674, ptr noundef nonnull %.str.5.sink2636, i32 noundef %4675, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 413, ptr noundef %4678, ptr noundef %4680, ptr noundef %4682, i32 noundef %4683) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4685:                                             ; preds = %4655
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %36, i8 0, i64 16, i1 false)
  %4686 = load i32, ptr @test_count, align 4, !tbaa !5
  %4687 = add nsw i32 %4686, 1
  store i32 %4687, ptr @test_count, align 4, !tbaa !5
  %4688 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %35, ptr noundef nonnull %36) #10
  %4689 = icmp eq i32 %4688, -1
  br i1 %4689, label %4690, label %4714

4690:                                             ; preds = %4685
  %4691 = tail call ptr @__errno_location() #11
  %4692 = load i32, ptr %4691, align 4, !tbaa !5
  %4693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4694 = call i32 @s2n_print_stacktrace(ptr noundef %4693) #10
  %4695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4696 = trunc nuw i8 %4695 to i1
  br i1 %4696, label %4697, label %4701

4697:                                             ; preds = %4690
  %4698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4699 = call i32 @fileno(ptr noundef %4698) #10
  %4700 = call i32 @isatty(i32 noundef %4699) #10
  %.not699 = icmp eq i32 %4700, 0
  br i1 %.not699, label %4701, label %4702

4701:                                             ; preds = %4697, %4690
  br label %4702

4702:                                             ; preds = %4697, %4701
  %.str.5.sink2647 = phi ptr [ @.str.5, %4701 ], [ @.str.2, %4697 ]
  store i32 %4692, ptr %4691, align 4, !tbaa !5
  %4703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4704 = load i32, ptr @test_count, align 4, !tbaa !5
  %4705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4706 = load i32, ptr %4705, align 4, !tbaa !5
  %4707 = call ptr @s2n_strerror(i32 noundef %4706, ptr noundef nonnull @.str.4) #10
  %4708 = load i32, ptr %4705, align 4, !tbaa !5
  %4709 = call ptr @s2n_strerror_debug(i32 noundef %4708, ptr noundef nonnull @.str.4) #10
  %4710 = load i32, ptr %4691, align 4, !tbaa !5
  %4711 = call ptr @strerror(i32 noundef %4710) #10
  %4712 = load i32, ptr %4691, align 4, !tbaa !5
  %4713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4703, ptr noundef nonnull %.str.5.sink2647, i32 noundef %4704, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 415, ptr noundef %4707, ptr noundef %4709, ptr noundef %4711, i32 noundef %4712) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4714:                                             ; preds = %4685
  %4715 = load i32, ptr @test_count, align 4, !tbaa !5
  %4716 = add nsw i32 %4715, 1
  store i32 %4716, ptr @test_count, align 4, !tbaa !5
  %4717 = load ptr, ptr %34, align 8, !tbaa !9
  %4718 = getelementptr inbounds i8, ptr %4717, i64 24
  %4719 = load ptr, ptr %4718, align 8, !tbaa !33
  %4720 = load ptr, ptr %4719, align 8, !tbaa !9
  %4721 = getelementptr inbounds i8, ptr %4720, i64 8
  %4722 = load i16, ptr %4721, align 8, !tbaa !67
  %4723 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %35, i16 noundef zeroext %4722) #10
  %4724 = icmp eq i32 %4723, -1
  br i1 %4724, label %4725, label %4749

4725:                                             ; preds = %4714
  %4726 = tail call ptr @__errno_location() #11
  %4727 = load i32, ptr %4726, align 4, !tbaa !5
  %4728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4729 = call i32 @s2n_print_stacktrace(ptr noundef %4728) #10
  %4730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4731 = trunc nuw i8 %4730 to i1
  br i1 %4731, label %4732, label %4736

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

4736:                                             ; preds = %4732, %4725
  br label %4737

4737:                                             ; preds = %4732, %4736
  %.str.5.sink2658 = phi ptr [ @.str.5, %4736 ], [ @.str.2, %4732 ]
  store i32 %4727, ptr %4726, align 4, !tbaa !5
  %4738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4739 = load i32, ptr @test_count, align 4, !tbaa !5
  %4740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4741 = load i32, ptr %4740, align 4, !tbaa !5
  %4742 = call ptr @s2n_strerror(i32 noundef %4741, ptr noundef nonnull @.str.4) #10
  %4743 = load i32, ptr %4740, align 4, !tbaa !5
  %4744 = call ptr @s2n_strerror_debug(i32 noundef %4743, ptr noundef nonnull @.str.4) #10
  %4745 = load i32, ptr %4726, align 4, !tbaa !5
  %4746 = call ptr @strerror(i32 noundef %4745) #10
  %4747 = load i32, ptr %4726, align 4, !tbaa !5
  %4748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4738, ptr noundef nonnull %.str.5.sink2658, i32 noundef %4739, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 416, ptr noundef %4742, ptr noundef %4744, ptr noundef %4746, i32 noundef %4747) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4749:                                             ; preds = %4714
  %4750 = load i32, ptr @test_count, align 4, !tbaa !5
  %4751 = add nsw i32 %4750, 1
  store i32 %4751, ptr @test_count, align 4, !tbaa !5
  %4752 = load ptr, ptr %33, align 8, !tbaa !9
  %4753 = getelementptr inbounds i8, ptr %4752, i64 8
  %4754 = load ptr, ptr %4753, align 8, !tbaa !28
  %4755 = load ptr, ptr %4754, align 8, !tbaa !9
  %4756 = load i16, ptr %4755, align 8, !tbaa !29
  %4757 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %35, i16 noundef zeroext %4756) #10
  %4758 = icmp eq i32 %4757, -1
  br i1 %4758, label %4759, label %4783

4759:                                             ; preds = %4749
  %4760 = tail call ptr @__errno_location() #11
  %4761 = load i32, ptr %4760, align 4, !tbaa !5
  %4762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4763 = call i32 @s2n_print_stacktrace(ptr noundef %4762) #10
  %4764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4765 = trunc nuw i8 %4764 to i1
  br i1 %4765, label %4766, label %4770

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

4770:                                             ; preds = %4766, %4759
  br label %4771

4771:                                             ; preds = %4766, %4770
  %.str.5.sink2669 = phi ptr [ @.str.5, %4770 ], [ @.str.2, %4766 ]
  store i32 %4761, ptr %4760, align 4, !tbaa !5
  %4772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4773 = load i32, ptr @test_count, align 4, !tbaa !5
  %4774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4775 = load i32, ptr %4774, align 4, !tbaa !5
  %4776 = call ptr @s2n_strerror(i32 noundef %4775, ptr noundef nonnull @.str.4) #10
  %4777 = load i32, ptr %4774, align 4, !tbaa !5
  %4778 = call ptr @s2n_strerror_debug(i32 noundef %4777, ptr noundef nonnull @.str.4) #10
  %4779 = load i32, ptr %4760, align 4, !tbaa !5
  %4780 = call ptr @strerror(i32 noundef %4779) #10
  %4781 = load i32, ptr %4760, align 4, !tbaa !5
  %4782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4772, ptr noundef nonnull %.str.5.sink2669, i32 noundef %4773, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 417, ptr noundef %4776, ptr noundef %4778, ptr noundef %4780, i32 noundef %4781) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4783:                                             ; preds = %4749
  %4784 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %36) #10
  %4785 = icmp sgt i32 %4784, -1
  br i1 %4785, label %4786, label %5134

4786:                                             ; preds = %4783
  %4787 = load i32, ptr @test_count, align 4, !tbaa !5
  %4788 = add nsw i32 %4787, 1
  store i32 %4788, ptr @test_count, align 4, !tbaa !5
  %4789 = getelementptr inbounds i8, ptr %4629, i64 656
  %4790 = load ptr, ptr %4789, align 8, !tbaa !72
  %4791 = icmp eq ptr %4790, null
  br i1 %4791, label %4816, label %4792

4792:                                             ; preds = %4786
  %4793 = tail call ptr @__errno_location() #11
  %4794 = load i32, ptr %4793, align 4, !tbaa !5
  %4795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4796 = call i32 @s2n_print_stacktrace(ptr noundef %4795) #10
  %4797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4798 = trunc nuw i8 %4797 to i1
  br i1 %4798, label %4799, label %4803

4799:                                             ; preds = %4792
  %4800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4801 = call i32 @fileno(ptr noundef %4800) #10
  %4802 = call i32 @isatty(i32 noundef %4801) #10
  %.not685 = icmp eq i32 %4802, 0
  br i1 %.not685, label %4803, label %4804

4803:                                             ; preds = %4799, %4792
  br label %4804

4804:                                             ; preds = %4799, %4803
  %.str.5.sink2680 = phi ptr [ @.str.5, %4803 ], [ @.str.2, %4799 ]
  store i32 %4794, ptr %4793, align 4, !tbaa !5
  %4805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4806 = load i32, ptr @test_count, align 4, !tbaa !5
  %4807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4808 = load i32, ptr %4807, align 4, !tbaa !5
  %4809 = call ptr @s2n_strerror(i32 noundef %4808, ptr noundef nonnull @.str.4) #10
  %4810 = load i32, ptr %4807, align 4, !tbaa !5
  %4811 = call ptr @s2n_strerror_debug(i32 noundef %4810, ptr noundef nonnull @.str.4) #10
  %4812 = load i32, ptr %4793, align 4, !tbaa !5
  %4813 = call ptr @strerror(i32 noundef %4812) #10
  %4814 = load i32, ptr %4793, align 4, !tbaa !5
  %4815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4805, ptr noundef nonnull %.str.5.sink2680, i32 noundef %4806, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 420, ptr noundef %4809, ptr noundef %4811, ptr noundef %4813, i32 noundef %4814) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4816:                                             ; preds = %4786
  %4817 = add nsw i32 %4787, 2
  store i32 %4817, ptr @test_count, align 4, !tbaa !5
  %4818 = getelementptr inbounds i8, ptr %4629, i64 720
  %4819 = load ptr, ptr %4818, align 8, !tbaa !73
  %4820 = icmp eq ptr %4819, null
  br i1 %4820, label %4845, label %4821

4821:                                             ; preds = %4816
  %4822 = tail call ptr @__errno_location() #11
  %4823 = load i32, ptr %4822, align 4, !tbaa !5
  %4824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4825 = call i32 @s2n_print_stacktrace(ptr noundef %4824) #10
  %4826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4827 = trunc nuw i8 %4826 to i1
  br i1 %4827, label %4828, label %4832

4828:                                             ; preds = %4821
  %4829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4830 = call i32 @fileno(ptr noundef %4829) #10
  %4831 = call i32 @isatty(i32 noundef %4830) #10
  %.not686 = icmp eq i32 %4831, 0
  br i1 %.not686, label %4832, label %4833

4832:                                             ; preds = %4828, %4821
  br label %4833

4833:                                             ; preds = %4828, %4832
  %.str.5.sink2691 = phi ptr [ @.str.5, %4832 ], [ @.str.2, %4828 ]
  store i32 %4823, ptr %4822, align 4, !tbaa !5
  %4834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4835 = load i32, ptr @test_count, align 4, !tbaa !5
  %4836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4837 = load i32, ptr %4836, align 4, !tbaa !5
  %4838 = call ptr @s2n_strerror(i32 noundef %4837, ptr noundef nonnull @.str.4) #10
  %4839 = load i32, ptr %4836, align 4, !tbaa !5
  %4840 = call ptr @s2n_strerror_debug(i32 noundef %4839, ptr noundef nonnull @.str.4) #10
  %4841 = load i32, ptr %4822, align 4, !tbaa !5
  %4842 = call ptr @strerror(i32 noundef %4841) #10
  %4843 = load i32, ptr %4822, align 4, !tbaa !5
  %4844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4834, ptr noundef nonnull %.str.5.sink2691, i32 noundef %4835, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 421, ptr noundef %4838, ptr noundef %4840, ptr noundef %4842, i32 noundef %4843) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4845:                                             ; preds = %4816
  %4846 = add nsw i32 %4787, 3
  store i32 %4846, ptr @test_count, align 4, !tbaa !5
  %4847 = getelementptr inbounds i8, ptr %4629, i64 816
  %4848 = load ptr, ptr %4847, align 8, !tbaa !74
  %4849 = icmp eq ptr %4848, null
  br i1 %4849, label %4874, label %4850

4850:                                             ; preds = %4845
  %4851 = tail call ptr @__errno_location() #11
  %4852 = load i32, ptr %4851, align 4, !tbaa !5
  %4853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4854 = call i32 @s2n_print_stacktrace(ptr noundef %4853) #10
  %4855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4856 = trunc nuw i8 %4855 to i1
  br i1 %4856, label %4857, label %4861

4857:                                             ; preds = %4850
  %4858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4859 = call i32 @fileno(ptr noundef %4858) #10
  %4860 = call i32 @isatty(i32 noundef %4859) #10
  %.not687 = icmp eq i32 %4860, 0
  br i1 %.not687, label %4861, label %4862

4861:                                             ; preds = %4857, %4850
  br label %4862

4862:                                             ; preds = %4857, %4861
  %.str.5.sink2702 = phi ptr [ @.str.5, %4861 ], [ @.str.2, %4857 ]
  store i32 %4852, ptr %4851, align 4, !tbaa !5
  %4863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4864 = load i32, ptr @test_count, align 4, !tbaa !5
  %4865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4866 = load i32, ptr %4865, align 4, !tbaa !5
  %4867 = call ptr @s2n_strerror(i32 noundef %4866, ptr noundef nonnull @.str.4) #10
  %4868 = load i32, ptr %4865, align 4, !tbaa !5
  %4869 = call ptr @s2n_strerror_debug(i32 noundef %4868, ptr noundef nonnull @.str.4) #10
  %4870 = load i32, ptr %4851, align 4, !tbaa !5
  %4871 = call ptr @strerror(i32 noundef %4870) #10
  %4872 = load i32, ptr %4851, align 4, !tbaa !5
  %4873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4863, ptr noundef nonnull %.str.5.sink2702, i32 noundef %4864, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 422, ptr noundef %4867, ptr noundef %4869, ptr noundef %4871, i32 noundef %4872) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4874:                                             ; preds = %4845
  %4875 = add nsw i32 %4787, 4
  store i32 %4875, ptr @test_count, align 4, !tbaa !5
  %4876 = getelementptr inbounds i8, ptr %4629, i64 728
  %4877 = load ptr, ptr %4876, align 8, !tbaa !75
  %4878 = icmp eq ptr %4877, null
  br i1 %4878, label %4903, label %4879

4879:                                             ; preds = %4874
  %4880 = tail call ptr @__errno_location() #11
  %4881 = load i32, ptr %4880, align 4, !tbaa !5
  %4882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4883 = call i32 @s2n_print_stacktrace(ptr noundef %4882) #10
  %4884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4885 = trunc nuw i8 %4884 to i1
  br i1 %4885, label %4886, label %4890

4886:                                             ; preds = %4879
  %4887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4888 = call i32 @fileno(ptr noundef %4887) #10
  %4889 = call i32 @isatty(i32 noundef %4888) #10
  %.not688 = icmp eq i32 %4889, 0
  br i1 %.not688, label %4890, label %4891

4890:                                             ; preds = %4886, %4879
  br label %4891

4891:                                             ; preds = %4886, %4890
  %.str.5.sink2713 = phi ptr [ @.str.5, %4890 ], [ @.str.2, %4886 ]
  store i32 %4881, ptr %4880, align 4, !tbaa !5
  %4892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4893 = load i32, ptr @test_count, align 4, !tbaa !5
  %4894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4895 = load i32, ptr %4894, align 4, !tbaa !5
  %4896 = call ptr @s2n_strerror(i32 noundef %4895, ptr noundef nonnull @.str.4) #10
  %4897 = load i32, ptr %4894, align 4, !tbaa !5
  %4898 = call ptr @s2n_strerror_debug(i32 noundef %4897, ptr noundef nonnull @.str.4) #10
  %4899 = load i32, ptr %4880, align 4, !tbaa !5
  %4900 = call ptr @strerror(i32 noundef %4899) #10
  %4901 = load i32, ptr %4880, align 4, !tbaa !5
  %4902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4892, ptr noundef nonnull %.str.5.sink2713, i32 noundef %4893, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 423, ptr noundef %4896, ptr noundef %4898, ptr noundef %4900, i32 noundef %4901) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4903:                                             ; preds = %4874
  %4904 = add nsw i32 %4787, 5
  store i32 %4904, ptr @test_count, align 4, !tbaa !5
  %4905 = call i32 %2117(ptr noundef nonnull %4629, ptr noundef nonnull %35) #10
  %4906 = icmp eq i32 %4905, -1
  br i1 %4906, label %4907, label %4931

4907:                                             ; preds = %4903
  %4908 = tail call ptr @__errno_location() #11
  %4909 = load i32, ptr %4908, align 4, !tbaa !5
  %4910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4911 = call i32 @s2n_print_stacktrace(ptr noundef %4910) #10
  %4912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4913 = trunc nuw i8 %4912 to i1
  br i1 %4913, label %4914, label %4918

4914:                                             ; preds = %4907
  %4915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4916 = call i32 @fileno(ptr noundef %4915) #10
  %4917 = call i32 @isatty(i32 noundef %4916) #10
  %.not696 = icmp eq i32 %4917, 0
  br i1 %.not696, label %4918, label %4919

4918:                                             ; preds = %4914, %4907
  br label %4919

4919:                                             ; preds = %4914, %4918
  %.str.5.sink2724 = phi ptr [ @.str.5, %4918 ], [ @.str.2, %4914 ]
  store i32 %4909, ptr %4908, align 4, !tbaa !5
  %4920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4921 = load i32, ptr @test_count, align 4, !tbaa !5
  %4922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4923 = load i32, ptr %4922, align 4, !tbaa !5
  %4924 = call ptr @s2n_strerror(i32 noundef %4923, ptr noundef nonnull @.str.4) #10
  %4925 = load i32, ptr %4922, align 4, !tbaa !5
  %4926 = call ptr @s2n_strerror_debug(i32 noundef %4925, ptr noundef nonnull @.str.4) #10
  %4927 = load i32, ptr %4908, align 4, !tbaa !5
  %4928 = call ptr @strerror(i32 noundef %4927) #10
  %4929 = load i32, ptr %4908, align 4, !tbaa !5
  %4930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4920, ptr noundef nonnull %.str.5.sink2724, i32 noundef %4921, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 425, ptr noundef %4924, ptr noundef %4926, ptr noundef %4928, i32 noundef %4929) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4931:                                             ; preds = %4903
  %4932 = load i32, ptr @test_count, align 4, !tbaa !5
  %4933 = add nsw i32 %4932, 1
  store i32 %4933, ptr @test_count, align 4, !tbaa !5
  %4934 = load ptr, ptr %4789, align 8, !tbaa !72
  %4935 = load ptr, ptr %33, align 8, !tbaa !9
  %4936 = getelementptr inbounds i8, ptr %4935, i64 8
  %4937 = load ptr, ptr %4936, align 8, !tbaa !28
  %4938 = load ptr, ptr %4937, align 8, !tbaa !9
  %4939 = icmp eq ptr %4934, %4938
  br i1 %4939, label %4964, label %4940

4940:                                             ; preds = %4931
  %4941 = tail call ptr @__errno_location() #11
  %4942 = load i32, ptr %4941, align 4, !tbaa !5
  %4943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4944 = call i32 @s2n_print_stacktrace(ptr noundef %4943) #10
  %4945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4946 = trunc nuw i8 %4945 to i1
  br i1 %4946, label %4947, label %4951

4947:                                             ; preds = %4940
  %4948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4949 = call i32 @fileno(ptr noundef %4948) #10
  %4950 = call i32 @isatty(i32 noundef %4949) #10
  %.not689 = icmp eq i32 %4950, 0
  br i1 %.not689, label %4951, label %4952

4951:                                             ; preds = %4947, %4940
  br label %4952

4952:                                             ; preds = %4947, %4951
  %.str.5.sink2735 = phi ptr [ @.str.5, %4951 ], [ @.str.2, %4947 ]
  store i32 %4942, ptr %4941, align 4, !tbaa !5
  %4953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4954 = load i32, ptr @test_count, align 4, !tbaa !5
  %4955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4956 = load i32, ptr %4955, align 4, !tbaa !5
  %4957 = call ptr @s2n_strerror(i32 noundef %4956, ptr noundef nonnull @.str.4) #10
  %4958 = load i32, ptr %4955, align 4, !tbaa !5
  %4959 = call ptr @s2n_strerror_debug(i32 noundef %4958, ptr noundef nonnull @.str.4) #10
  %4960 = load i32, ptr %4941, align 4, !tbaa !5
  %4961 = call ptr @strerror(i32 noundef %4960) #10
  %4962 = load i32, ptr %4941, align 4, !tbaa !5
  %4963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4953, ptr noundef nonnull %.str.5.sink2735, i32 noundef %4954, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 427, ptr noundef %4957, ptr noundef %4959, ptr noundef %4961, i32 noundef %4962) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4964:                                             ; preds = %4931
  %4965 = add nsw i32 %4932, 2
  store i32 %4965, ptr @test_count, align 4, !tbaa !5
  %4966 = load ptr, ptr %4818, align 8, !tbaa !73
  %4967 = icmp eq ptr %4966, null
  br i1 %4967, label %4992, label %4968

4968:                                             ; preds = %4964
  %4969 = tail call ptr @__errno_location() #11
  %4970 = load i32, ptr %4969, align 4, !tbaa !5
  %4971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4972 = call i32 @s2n_print_stacktrace(ptr noundef %4971) #10
  %4973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4974 = trunc nuw i8 %4973 to i1
  br i1 %4974, label %4975, label %4979

4975:                                             ; preds = %4968
  %4976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4977 = call i32 @fileno(ptr noundef %4976) #10
  %4978 = call i32 @isatty(i32 noundef %4977) #10
  %.not690 = icmp eq i32 %4978, 0
  br i1 %.not690, label %4979, label %4980

4979:                                             ; preds = %4975, %4968
  br label %4980

4980:                                             ; preds = %4975, %4979
  %.str.5.sink2746 = phi ptr [ @.str.5, %4979 ], [ @.str.2, %4975 ]
  store i32 %4970, ptr %4969, align 4, !tbaa !5
  %4981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4982 = load i32, ptr @test_count, align 4, !tbaa !5
  %4983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4984 = load i32, ptr %4983, align 4, !tbaa !5
  %4985 = call ptr @s2n_strerror(i32 noundef %4984, ptr noundef nonnull @.str.4) #10
  %4986 = load i32, ptr %4983, align 4, !tbaa !5
  %4987 = call ptr @s2n_strerror_debug(i32 noundef %4986, ptr noundef nonnull @.str.4) #10
  %4988 = load i32, ptr %4969, align 4, !tbaa !5
  %4989 = call ptr @strerror(i32 noundef %4988) #10
  %4990 = load i32, ptr %4969, align 4, !tbaa !5
  %4991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4981, ptr noundef nonnull %.str.5.sink2746, i32 noundef %4982, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %4985, ptr noundef %4987, ptr noundef %4989, i32 noundef %4990) #12
  call void @exit(i32 noundef 1) #13
  unreachable

4992:                                             ; preds = %4964
  %4993 = add nsw i32 %4932, 3
  store i32 %4993, ptr @test_count, align 4, !tbaa !5
  %4994 = load ptr, ptr %4847, align 8, !tbaa !74
  %4995 = icmp eq ptr %4994, null
  br i1 %4995, label %5020, label %4996

4996:                                             ; preds = %4992
  %4997 = tail call ptr @__errno_location() #11
  %4998 = load i32, ptr %4997, align 4, !tbaa !5
  %4999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5000 = call i32 @s2n_print_stacktrace(ptr noundef %4999) #10
  %5001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5002 = trunc nuw i8 %5001 to i1
  br i1 %5002, label %5003, label %5007

5003:                                             ; preds = %4996
  %5004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5005 = call i32 @fileno(ptr noundef %5004) #10
  %5006 = call i32 @isatty(i32 noundef %5005) #10
  %.not691 = icmp eq i32 %5006, 0
  br i1 %.not691, label %5007, label %5008

5007:                                             ; preds = %5003, %4996
  br label %5008

5008:                                             ; preds = %5003, %5007
  %.str.5.sink2757 = phi ptr [ @.str.5, %5007 ], [ @.str.2, %5003 ]
  store i32 %4998, ptr %4997, align 4, !tbaa !5
  %5009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5010 = load i32, ptr @test_count, align 4, !tbaa !5
  %5011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5012 = load i32, ptr %5011, align 4, !tbaa !5
  %5013 = call ptr @s2n_strerror(i32 noundef %5012, ptr noundef nonnull @.str.4) #10
  %5014 = load i32, ptr %5011, align 4, !tbaa !5
  %5015 = call ptr @s2n_strerror_debug(i32 noundef %5014, ptr noundef nonnull @.str.4) #10
  %5016 = load i32, ptr %4997, align 4, !tbaa !5
  %5017 = call ptr @strerror(i32 noundef %5016) #10
  %5018 = load i32, ptr %4997, align 4, !tbaa !5
  %5019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5009, ptr noundef nonnull %.str.5.sink2757, i32 noundef %5010, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 429, ptr noundef %5013, ptr noundef %5015, ptr noundef %5017, i32 noundef %5018) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5020:                                             ; preds = %4992
  %5021 = add nsw i32 %4932, 4
  store i32 %5021, ptr @test_count, align 4, !tbaa !5
  %5022 = load ptr, ptr %4876, align 8, !tbaa !75
  %5023 = icmp eq ptr %5022, null
  br i1 %5023, label %5048, label %5024

5024:                                             ; preds = %5020
  %5025 = tail call ptr @__errno_location() #11
  %5026 = load i32, ptr %5025, align 4, !tbaa !5
  %5027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5028 = call i32 @s2n_print_stacktrace(ptr noundef %5027) #10
  %5029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5030 = trunc nuw i8 %5029 to i1
  br i1 %5030, label %5031, label %5035

5031:                                             ; preds = %5024
  %5032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5033 = call i32 @fileno(ptr noundef %5032) #10
  %5034 = call i32 @isatty(i32 noundef %5033) #10
  %.not692 = icmp eq i32 %5034, 0
  br i1 %.not692, label %5035, label %5036

5035:                                             ; preds = %5031, %5024
  br label %5036

5036:                                             ; preds = %5031, %5035
  %.str.5.sink2768 = phi ptr [ @.str.5, %5035 ], [ @.str.2, %5031 ]
  store i32 %5026, ptr %5025, align 4, !tbaa !5
  %5037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5038 = load i32, ptr @test_count, align 4, !tbaa !5
  %5039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5040 = load i32, ptr %5039, align 4, !tbaa !5
  %5041 = call ptr @s2n_strerror(i32 noundef %5040, ptr noundef nonnull @.str.4) #10
  %5042 = load i32, ptr %5039, align 4, !tbaa !5
  %5043 = call ptr @s2n_strerror_debug(i32 noundef %5042, ptr noundef nonnull @.str.4) #10
  %5044 = load i32, ptr %5025, align 4, !tbaa !5
  %5045 = call ptr @strerror(i32 noundef %5044) #10
  %5046 = load i32, ptr %5025, align 4, !tbaa !5
  %5047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5037, ptr noundef nonnull %.str.5.sink2768, i32 noundef %5038, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 430, ptr noundef %5041, ptr noundef %5043, ptr noundef %5045, i32 noundef %5046) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5048:                                             ; preds = %5020
  %5049 = add nsw i32 %4932, 5
  store i32 %5049, ptr @test_count, align 4, !tbaa !5
  %5050 = call i32 @s2n_connection_free(ptr noundef nonnull %4485) #10
  %5051 = icmp eq i32 %5050, -1
  br i1 %5051, label %5052, label %5076

5052:                                             ; preds = %5048
  %5053 = tail call ptr @__errno_location() #11
  %5054 = load i32, ptr %5053, align 4, !tbaa !5
  %5055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5056 = call i32 @s2n_print_stacktrace(ptr noundef %5055) #10
  %5057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5058 = trunc nuw i8 %5057 to i1
  br i1 %5058, label %5059, label %5063

5059:                                             ; preds = %5052
  %5060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5061 = call i32 @fileno(ptr noundef %5060) #10
  %5062 = call i32 @isatty(i32 noundef %5061) #10
  %.not695 = icmp eq i32 %5062, 0
  br i1 %.not695, label %5063, label %5064

5063:                                             ; preds = %5059, %5052
  br label %5064

5064:                                             ; preds = %5059, %5063
  %.str.5.sink2779 = phi ptr [ @.str.5, %5063 ], [ @.str.2, %5059 ]
  store i32 %5054, ptr %5053, align 4, !tbaa !5
  %5065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5066 = load i32, ptr @test_count, align 4, !tbaa !5
  %5067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5068 = load i32, ptr %5067, align 4, !tbaa !5
  %5069 = call ptr @s2n_strerror(i32 noundef %5068, ptr noundef nonnull @.str.4) #10
  %5070 = load i32, ptr %5067, align 4, !tbaa !5
  %5071 = call ptr @s2n_strerror_debug(i32 noundef %5070, ptr noundef nonnull @.str.4) #10
  %5072 = load i32, ptr %5053, align 4, !tbaa !5
  %5073 = call ptr @strerror(i32 noundef %5072) #10
  %5074 = load i32, ptr %5053, align 4, !tbaa !5
  %5075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5065, ptr noundef nonnull %.str.5.sink2779, i32 noundef %5066, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 432, ptr noundef %5069, ptr noundef %5071, ptr noundef %5073, i32 noundef %5074) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5076:                                             ; preds = %5048
  %5077 = load i32, ptr @test_count, align 4, !tbaa !5
  %5078 = add nsw i32 %5077, 1
  store i32 %5078, ptr @test_count, align 4, !tbaa !5
  %5079 = call i32 @s2n_connection_free(ptr noundef nonnull %4629) #10
  %5080 = icmp eq i32 %5079, -1
  br i1 %5080, label %5081, label %5105

5081:                                             ; preds = %5076
  %5082 = tail call ptr @__errno_location() #11
  %5083 = load i32, ptr %5082, align 4, !tbaa !5
  %5084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5085 = call i32 @s2n_print_stacktrace(ptr noundef %5084) #10
  %5086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5087 = trunc nuw i8 %5086 to i1
  br i1 %5087, label %5088, label %5092

5088:                                             ; preds = %5081
  %5089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5090 = call i32 @fileno(ptr noundef %5089) #10
  %5091 = call i32 @isatty(i32 noundef %5090) #10
  %.not694 = icmp eq i32 %5091, 0
  br i1 %.not694, label %5092, label %5093

5092:                                             ; preds = %5088, %5081
  br label %5093

5093:                                             ; preds = %5088, %5092
  %.str.5.sink2790 = phi ptr [ @.str.5, %5092 ], [ @.str.2, %5088 ]
  store i32 %5083, ptr %5082, align 4, !tbaa !5
  %5094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5095 = load i32, ptr @test_count, align 4, !tbaa !5
  %5096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5097 = load i32, ptr %5096, align 4, !tbaa !5
  %5098 = call ptr @s2n_strerror(i32 noundef %5097, ptr noundef nonnull @.str.4) #10
  %5099 = load i32, ptr %5096, align 4, !tbaa !5
  %5100 = call ptr @s2n_strerror_debug(i32 noundef %5099, ptr noundef nonnull @.str.4) #10
  %5101 = load i32, ptr %5082, align 4, !tbaa !5
  %5102 = call ptr @strerror(i32 noundef %5101) #10
  %5103 = load i32, ptr %5082, align 4, !tbaa !5
  %5104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5094, ptr noundef nonnull %.str.5.sink2790, i32 noundef %5095, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 433, ptr noundef %5098, ptr noundef %5100, ptr noundef %5102, i32 noundef %5103) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5105:                                             ; preds = %5076
  %5106 = load i32, ptr @test_count, align 4, !tbaa !5
  %5107 = add nsw i32 %5106, 1
  store i32 %5107, ptr @test_count, align 4, !tbaa !5
  %5108 = call i32 (...) @s2n_disable_tls13_in_test() #10
  %5109 = icmp eq i32 %5108, -1
  br i1 %5109, label %5110, label %select.unfold

5110:                                             ; preds = %5105
  %5111 = tail call ptr @__errno_location() #11
  %5112 = load i32, ptr %5111, align 4, !tbaa !5
  %5113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5114 = call i32 @s2n_print_stacktrace(ptr noundef %5113) #10
  %5115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5116 = trunc nuw i8 %5115 to i1
  br i1 %5116, label %5117, label %5121

5117:                                             ; preds = %5110
  %5118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5119 = call i32 @fileno(ptr noundef %5118) #10
  %5120 = call i32 @isatty(i32 noundef %5119) #10
  %.not693 = icmp eq i32 %5120, 0
  br i1 %.not693, label %5121, label %5122

5121:                                             ; preds = %5117, %5110
  br label %5122

5122:                                             ; preds = %5117, %5121
  %.str.5.sink2801 = phi ptr [ @.str.5, %5121 ], [ @.str.2, %5117 ]
  store i32 %5112, ptr %5111, align 4, !tbaa !5
  %5123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5124 = load i32, ptr @test_count, align 4, !tbaa !5
  %5125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5126 = load i32, ptr %5125, align 4, !tbaa !5
  %5127 = call ptr @s2n_strerror(i32 noundef %5126, ptr noundef nonnull @.str.4) #10
  %5128 = load i32, ptr %5125, align 4, !tbaa !5
  %5129 = call ptr @s2n_strerror_debug(i32 noundef %5128, ptr noundef nonnull @.str.4) #10
  %5130 = load i32, ptr %5111, align 4, !tbaa !5
  %5131 = call ptr @strerror(i32 noundef %5130) #10
  %5132 = load i32, ptr %5111, align 4, !tbaa !5
  %5133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5123, ptr noundef nonnull %.str.5.sink2801, i32 noundef %5124, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 434, ptr noundef %5127, ptr noundef %5129, ptr noundef %5131, i32 noundef %5132) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5134:                                             ; preds = %4783
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #10
  %5135 = call i32 @s2n_stuffer_free(ptr noundef nonnull %35) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #10
  br label %.thread890

select.unfold:                                    ; preds = %5105
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #10
  %5136 = call i32 @s2n_stuffer_free(ptr noundef nonnull %35) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #10
  br label %5137

.thread890:                                       ; preds = %4448, %3764, %5134
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #10
  br label %6667

5137:                                             ; preds = %4450, %select.unfold
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #10
  %5138 = load i32, ptr @test_count, align 4, !tbaa !5
  %5139 = add nsw i32 %5138, 1
  store i32 %5139, ptr @test_count, align 4, !tbaa !5
  %5140 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %5141 = icmp eq ptr %5140, null
  br i1 %5141, label %5142, label %5166

5142:                                             ; preds = %5137
  %5143 = tail call ptr @__errno_location() #11
  %5144 = load i32, ptr %5143, align 4, !tbaa !5
  %5145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5146 = call i32 @s2n_print_stacktrace(ptr noundef %5145) #10
  %5147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5148 = trunc nuw i8 %5147 to i1
  br i1 %5148, label %5149, label %5153

5149:                                             ; preds = %5142
  %5150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5151 = call i32 @fileno(ptr noundef %5150) #10
  %5152 = call i32 @isatty(i32 noundef %5151) #10
  %.not762 = icmp eq i32 %5152, 0
  br i1 %.not762, label %5153, label %5154

5153:                                             ; preds = %5149, %5142
  br label %5154

5154:                                             ; preds = %5149, %5153
  %.str.5.sink2812 = phi ptr [ @.str.5, %5153 ], [ @.str.2, %5149 ]
  store i32 %5144, ptr %5143, align 4, !tbaa !5
  %5155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5156 = load i32, ptr @test_count, align 4, !tbaa !5
  %5157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5158 = load i32, ptr %5157, align 4, !tbaa !5
  %5159 = call ptr @s2n_strerror(i32 noundef %5158, ptr noundef nonnull @.str.4) #10
  %5160 = load i32, ptr %5157, align 4, !tbaa !5
  %5161 = call ptr @s2n_strerror_debug(i32 noundef %5160, ptr noundef nonnull @.str.4) #10
  %5162 = load i32, ptr %5143, align 4, !tbaa !5
  %5163 = call ptr @strerror(i32 noundef %5162) #10
  %5164 = load i32, ptr %5143, align 4, !tbaa !5
  %5165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5155, ptr noundef nonnull %.str.5.sink2812, i32 noundef %5156, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef %5159, ptr noundef %5161, ptr noundef %5163, i32 noundef %5164) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5166:                                             ; preds = %5137
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %37) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %37, i8 0, i64 40, i1 false)
  %5167 = load i32, ptr @test_count, align 4, !tbaa !5
  %5168 = add nsw i32 %5167, 1
  store i32 %5168, ptr @test_count, align 4, !tbaa !5
  %5169 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %37, i32 noundef 0) #10
  %5170 = icmp eq i32 %5169, -1
  br i1 %5170, label %5171, label %5195

5171:                                             ; preds = %5166
  %5172 = tail call ptr @__errno_location() #11
  %5173 = load i32, ptr %5172, align 4, !tbaa !5
  %5174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5175 = call i32 @s2n_print_stacktrace(ptr noundef %5174) #10
  %5176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5177 = trunc nuw i8 %5176 to i1
  br i1 %5177, label %5178, label %5182

5178:                                             ; preds = %5171
  %5179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5180 = call i32 @fileno(ptr noundef %5179) #10
  %5181 = call i32 @isatty(i32 noundef %5180) #10
  %.not761 = icmp eq i32 %5181, 0
  br i1 %.not761, label %5182, label %5183

5182:                                             ; preds = %5178, %5171
  br label %5183

5183:                                             ; preds = %5178, %5182
  %.str.5.sink2823 = phi ptr [ @.str.5, %5182 ], [ @.str.2, %5178 ]
  store i32 %5173, ptr %5172, align 4, !tbaa !5
  %5184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5185 = load i32, ptr @test_count, align 4, !tbaa !5
  %5186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5187 = load i32, ptr %5186, align 4, !tbaa !5
  %5188 = call ptr @s2n_strerror(i32 noundef %5187, ptr noundef nonnull @.str.4) #10
  %5189 = load i32, ptr %5186, align 4, !tbaa !5
  %5190 = call ptr @s2n_strerror_debug(i32 noundef %5189, ptr noundef nonnull @.str.4) #10
  %5191 = load i32, ptr %5172, align 4, !tbaa !5
  %5192 = call ptr @strerror(i32 noundef %5191) #10
  %5193 = load i32, ptr %5172, align 4, !tbaa !5
  %5194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5184, ptr noundef nonnull %.str.5.sink2823, i32 noundef %5185, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 445, ptr noundef %5188, ptr noundef %5190, ptr noundef %5192, i32 noundef %5193) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5195:                                             ; preds = %5166
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #10
  store ptr null, ptr %38, align 8, !tbaa !9
  %5196 = load i32, ptr @test_count, align 4, !tbaa !5
  %5197 = add nsw i32 %5196, 1
  store i32 %5197, ptr @test_count, align 4, !tbaa !5
  %5198 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %5140, ptr noundef nonnull %38) #10
  %5199 = icmp eq i32 %5198, -1
  br i1 %5199, label %5200, label %5224

5200:                                             ; preds = %5195
  %5201 = tail call ptr @__errno_location() #11
  %5202 = load i32, ptr %5201, align 4, !tbaa !5
  %5203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5204 = call i32 @s2n_print_stacktrace(ptr noundef %5203) #10
  %5205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5206 = trunc nuw i8 %5205 to i1
  br i1 %5206, label %5207, label %5211

5207:                                             ; preds = %5200
  %5208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5209 = call i32 @fileno(ptr noundef %5208) #10
  %5210 = call i32 @isatty(i32 noundef %5209) #10
  %.not760 = icmp eq i32 %5210, 0
  br i1 %.not760, label %5211, label %5212

5211:                                             ; preds = %5207, %5200
  br label %5212

5212:                                             ; preds = %5207, %5211
  %.str.5.sink2834 = phi ptr [ @.str.5, %5211 ], [ @.str.2, %5207 ]
  store i32 %5202, ptr %5201, align 4, !tbaa !5
  %5213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5214 = load i32, ptr @test_count, align 4, !tbaa !5
  %5215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5216 = load i32, ptr %5215, align 4, !tbaa !5
  %5217 = call ptr @s2n_strerror(i32 noundef %5216, ptr noundef nonnull @.str.4) #10
  %5218 = load i32, ptr %5215, align 4, !tbaa !5
  %5219 = call ptr @s2n_strerror_debug(i32 noundef %5218, ptr noundef nonnull @.str.4) #10
  %5220 = load i32, ptr %5201, align 4, !tbaa !5
  %5221 = call ptr @strerror(i32 noundef %5220) #10
  %5222 = load i32, ptr %5201, align 4, !tbaa !5
  %5223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5213, ptr noundef nonnull %.str.5.sink2834, i32 noundef %5214, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 448, ptr noundef %5217, ptr noundef %5219, ptr noundef %5221, i32 noundef %5222) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5224:                                             ; preds = %5195
  %5225 = load i32, ptr @test_count, align 4, !tbaa !5
  %5226 = add nsw i32 %5225, 1
  store i32 %5226, ptr @test_count, align 4, !tbaa !5
  %5227 = load ptr, ptr %38, align 8, !tbaa !9
  %5228 = icmp eq ptr %5227, null
  br i1 %5228, label %5229, label %5253

5229:                                             ; preds = %5224
  %5230 = tail call ptr @__errno_location() #11
  %5231 = load i32, ptr %5230, align 4, !tbaa !5
  %5232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5233 = call i32 @s2n_print_stacktrace(ptr noundef %5232) #10
  %5234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5235 = trunc nuw i8 %5234 to i1
  br i1 %5235, label %5236, label %5240

5236:                                             ; preds = %5229
  %5237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5238 = call i32 @fileno(ptr noundef %5237) #10
  %5239 = call i32 @isatty(i32 noundef %5238) #10
  %.not759 = icmp eq i32 %5239, 0
  br i1 %.not759, label %5240, label %5241

5240:                                             ; preds = %5236, %5229
  br label %5241

5241:                                             ; preds = %5236, %5240
  %.str.5.sink2845 = phi ptr [ @.str.5, %5240 ], [ @.str.2, %5236 ]
  store i32 %5231, ptr %5230, 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 nonnull @.str.4) #10
  %5247 = load i32, ptr %5244, align 4, !tbaa !5
  %5248 = call ptr @s2n_strerror_debug(i32 noundef %5247, ptr noundef nonnull @.str.4) #10
  %5249 = load i32, ptr %5230, align 4, !tbaa !5
  %5250 = call ptr @strerror(i32 noundef %5249) #10
  %5251 = load i32, ptr %5230, align 4, !tbaa !5
  %5252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5242, ptr noundef nonnull %.str.5.sink2845, i32 noundef %5243, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 449, ptr noundef %5246, ptr noundef %5248, ptr noundef %5250, i32 noundef %5251) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5253:                                             ; preds = %5224
  %5254 = add nsw i32 %5225, 2
  store i32 %5254, ptr @test_count, align 4, !tbaa !5
  %5255 = call i32 %478(ptr noundef nonnull %5140, ptr noundef nonnull %37) #10
  %5256 = icmp eq i32 %5255, -1
  br i1 %5256, label %5257, label %5281

5257:                                             ; preds = %5253
  %5258 = tail call ptr @__errno_location() #11
  %5259 = load i32, ptr %5258, align 4, !tbaa !5
  %5260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5261 = call i32 @s2n_print_stacktrace(ptr noundef %5260) #10
  %5262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5263 = trunc nuw i8 %5262 to i1
  br i1 %5263, label %5264, label %5268

5264:                                             ; preds = %5257
  %5265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5266 = call i32 @fileno(ptr noundef %5265) #10
  %5267 = call i32 @isatty(i32 noundef %5266) #10
  %.not758 = icmp eq i32 %5267, 0
  br i1 %.not758, label %5268, label %5269

5268:                                             ; preds = %5264, %5257
  br label %5269

5269:                                             ; preds = %5264, %5268
  %.str.5.sink2856 = phi ptr [ @.str.5, %5268 ], [ @.str.2, %5264 ]
  store i32 %5259, ptr %5258, align 4, !tbaa !5
  %5270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5271 = load i32, ptr @test_count, align 4, !tbaa !5
  %5272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5273 = load i32, ptr %5272, align 4, !tbaa !5
  %5274 = call ptr @s2n_strerror(i32 noundef %5273, ptr noundef nonnull @.str.4) #10
  %5275 = load i32, ptr %5272, align 4, !tbaa !5
  %5276 = call ptr @s2n_strerror_debug(i32 noundef %5275, ptr noundef nonnull @.str.4) #10
  %5277 = load i32, ptr %5258, align 4, !tbaa !5
  %5278 = call ptr @strerror(i32 noundef %5277) #10
  %5279 = load i32, ptr %5258, align 4, !tbaa !5
  %5280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5270, ptr noundef nonnull %.str.5.sink2856, i32 noundef %5271, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 451, ptr noundef %5274, ptr noundef %5276, ptr noundef %5278, i32 noundef %5279) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5281:                                             ; preds = %5253
  %5282 = load i32, ptr @test_count, align 4, !tbaa !5
  %5283 = add nsw i32 %5282, 1
  store i32 %5283, ptr @test_count, align 4, !tbaa !5
  %5284 = getelementptr inbounds i8, ptr %5140, i64 656
  %5285 = load ptr, ptr %5284, align 8, !tbaa !72
  %5286 = icmp eq ptr %5285, null
  br i1 %5286, label %5311, label %5287

5287:                                             ; preds = %5281
  %5288 = tail call ptr @__errno_location() #11
  %5289 = load i32, ptr %5288, align 4, !tbaa !5
  %5290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5291 = call i32 @s2n_print_stacktrace(ptr noundef %5290) #10
  %5292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5293 = trunc nuw i8 %5292 to i1
  br i1 %5293, label %5294, label %5298

5294:                                             ; preds = %5287
  %5295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5296 = call i32 @fileno(ptr noundef %5295) #10
  %5297 = call i32 @isatty(i32 noundef %5296) #10
  %.not708 = icmp eq i32 %5297, 0
  br i1 %.not708, label %5298, label %5299

5298:                                             ; preds = %5294, %5287
  br label %5299

5299:                                             ; preds = %5294, %5298
  %.str.5.sink2867 = phi ptr [ @.str.5, %5298 ], [ @.str.2, %5294 ]
  store i32 %5289, ptr %5288, align 4, !tbaa !5
  %5300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5301 = load i32, ptr @test_count, align 4, !tbaa !5
  %5302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5303 = load i32, ptr %5302, align 4, !tbaa !5
  %5304 = call ptr @s2n_strerror(i32 noundef %5303, ptr noundef nonnull @.str.4) #10
  %5305 = load i32, ptr %5302, align 4, !tbaa !5
  %5306 = call ptr @s2n_strerror_debug(i32 noundef %5305, ptr noundef nonnull @.str.4) #10
  %5307 = load i32, ptr %5288, align 4, !tbaa !5
  %5308 = call ptr @strerror(i32 noundef %5307) #10
  %5309 = load i32, ptr %5288, align 4, !tbaa !5
  %5310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5300, ptr noundef nonnull %.str.5.sink2867, i32 noundef %5301, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 453, ptr noundef %5304, ptr noundef %5306, ptr noundef %5308, i32 noundef %5309) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5311:                                             ; preds = %5281
  %5312 = add nsw i32 %5282, 2
  store i32 %5312, ptr @test_count, align 4, !tbaa !5
  %5313 = call i32 %2117(ptr noundef nonnull %5140, ptr noundef nonnull %37) #10
  %5314 = icmp eq i32 %5313, -1
  br i1 %5314, label %5315, label %5339

5315:                                             ; preds = %5311
  %5316 = tail call ptr @__errno_location() #11
  %5317 = load i32, ptr %5316, align 4, !tbaa !5
  %5318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5319 = call i32 @s2n_print_stacktrace(ptr noundef %5318) #10
  %5320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5321 = trunc nuw i8 %5320 to i1
  br i1 %5321, label %5322, label %5326

5322:                                             ; preds = %5315
  %5323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5324 = call i32 @fileno(ptr noundef %5323) #10
  %5325 = call i32 @isatty(i32 noundef %5324) #10
  %.not757 = icmp eq i32 %5325, 0
  br i1 %.not757, label %5326, label %5327

5326:                                             ; preds = %5322, %5315
  br label %5327

5327:                                             ; preds = %5322, %5326
  %.str.5.sink2878 = phi ptr [ @.str.5, %5326 ], [ @.str.2, %5322 ]
  store i32 %5317, ptr %5316, align 4, !tbaa !5
  %5328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5329 = load i32, ptr @test_count, align 4, !tbaa !5
  %5330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5331 = load i32, ptr %5330, align 4, !tbaa !5
  %5332 = call ptr @s2n_strerror(i32 noundef %5331, ptr noundef nonnull @.str.4) #10
  %5333 = load i32, ptr %5330, align 4, !tbaa !5
  %5334 = call ptr @s2n_strerror_debug(i32 noundef %5333, ptr noundef nonnull @.str.4) #10
  %5335 = load i32, ptr %5316, align 4, !tbaa !5
  %5336 = call ptr @strerror(i32 noundef %5335) #10
  %5337 = load i32, ptr %5316, align 4, !tbaa !5
  %5338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5328, ptr noundef nonnull %.str.5.sink2878, i32 noundef %5329, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 454, ptr noundef %5332, ptr noundef %5334, ptr noundef %5336, i32 noundef %5337) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5339:                                             ; preds = %5311
  %5340 = load i32, ptr @test_count, align 4, !tbaa !5
  %5341 = add nsw i32 %5340, 1
  store i32 %5341, ptr @test_count, align 4, !tbaa !5
  %5342 = load ptr, ptr %5284, align 8, !tbaa !72
  %5343 = load ptr, ptr %38, align 8, !tbaa !9
  %5344 = getelementptr inbounds i8, ptr %5343, i64 8
  %5345 = load ptr, ptr %5344, align 8, !tbaa !28
  %5346 = load ptr, ptr %5345, align 8, !tbaa !9
  %5347 = icmp eq ptr %5342, %5346
  br i1 %5347, label %5372, label %5348

5348:                                             ; preds = %5339
  %5349 = tail call ptr @__errno_location() #11
  %5350 = load i32, ptr %5349, align 4, !tbaa !5
  %5351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5352 = call i32 @s2n_print_stacktrace(ptr noundef %5351) #10
  %5353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5354 = trunc nuw i8 %5353 to i1
  br i1 %5354, label %5355, label %5359

5355:                                             ; preds = %5348
  %5356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5357 = call i32 @fileno(ptr noundef %5356) #10
  %5358 = call i32 @isatty(i32 noundef %5357) #10
  %.not709 = icmp eq i32 %5358, 0
  br i1 %.not709, label %5359, label %5360

5359:                                             ; preds = %5355, %5348
  br label %5360

5360:                                             ; preds = %5355, %5359
  %.str.5.sink2889 = phi ptr [ @.str.5, %5359 ], [ @.str.2, %5355 ]
  store i32 %5350, ptr %5349, 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 nonnull @.str.4) #10
  %5366 = load i32, ptr %5363, align 4, !tbaa !5
  %5367 = call ptr @s2n_strerror_debug(i32 noundef %5366, ptr noundef nonnull @.str.4) #10
  %5368 = load i32, ptr %5349, align 4, !tbaa !5
  %5369 = call ptr @strerror(i32 noundef %5368) #10
  %5370 = load i32, ptr %5349, align 4, !tbaa !5
  %5371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5361, ptr noundef nonnull %.str.5.sink2889, i32 noundef %5362, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 455, ptr noundef %5365, ptr noundef %5367, ptr noundef %5369, i32 noundef %5370) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5372:                                             ; preds = %5339
  %5373 = add nsw i32 %5340, 2
  store i32 %5373, ptr @test_count, align 4, !tbaa !5
  %5374 = getelementptr inbounds i8, ptr %5140, i64 720
  %5375 = load ptr, ptr %5374, align 8, !tbaa !73
  %5376 = icmp eq ptr %5375, null
  br i1 %5376, label %5401, label %5377

5377:                                             ; preds = %5372
  %5378 = tail call ptr @__errno_location() #11
  %5379 = load i32, ptr %5378, align 4, !tbaa !5
  %5380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5381 = call i32 @s2n_print_stacktrace(ptr noundef %5380) #10
  %5382 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5383 = trunc nuw i8 %5382 to i1
  br i1 %5383, label %5384, label %5388

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

5388:                                             ; preds = %5384, %5377
  br label %5389

5389:                                             ; preds = %5384, %5388
  %.str.5.sink2900 = phi ptr [ @.str.5, %5388 ], [ @.str.2, %5384 ]
  store i32 %5379, ptr %5378, align 4, !tbaa !5
  %5390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5391 = load i32, ptr @test_count, align 4, !tbaa !5
  %5392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5393 = load i32, ptr %5392, align 4, !tbaa !5
  %5394 = call ptr @s2n_strerror(i32 noundef %5393, ptr noundef nonnull @.str.4) #10
  %5395 = load i32, ptr %5392, align 4, !tbaa !5
  %5396 = call ptr @s2n_strerror_debug(i32 noundef %5395, ptr noundef nonnull @.str.4) #10
  %5397 = load i32, ptr %5378, align 4, !tbaa !5
  %5398 = call ptr @strerror(i32 noundef %5397) #10
  %5399 = load i32, ptr %5378, align 4, !tbaa !5
  %5400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5390, ptr noundef nonnull %.str.5.sink2900, i32 noundef %5391, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 456, ptr noundef %5394, ptr noundef %5396, ptr noundef %5398, i32 noundef %5399) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5401:                                             ; preds = %5372
  %5402 = add nsw i32 %5340, 3
  store i32 %5402, ptr @test_count, align 4, !tbaa !5
  %5403 = getelementptr inbounds i8, ptr %5140, i64 816
  %5404 = load ptr, ptr %5403, align 8, !tbaa !74
  %5405 = icmp eq ptr %5404, null
  br i1 %5405, label %5430, label %5406

5406:                                             ; preds = %5401
  %5407 = tail call ptr @__errno_location() #11
  %5408 = load i32, ptr %5407, align 4, !tbaa !5
  %5409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5410 = call i32 @s2n_print_stacktrace(ptr noundef %5409) #10
  %5411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5412 = trunc nuw i8 %5411 to i1
  br i1 %5412, label %5413, label %5417

5413:                                             ; preds = %5406
  %5414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5415 = call i32 @fileno(ptr noundef %5414) #10
  %5416 = call i32 @isatty(i32 noundef %5415) #10
  %.not711 = icmp eq i32 %5416, 0
  br i1 %.not711, label %5417, label %5418

5417:                                             ; preds = %5413, %5406
  br label %5418

5418:                                             ; preds = %5413, %5417
  %.str.5.sink2911 = phi ptr [ @.str.5, %5417 ], [ @.str.2, %5413 ]
  store i32 %5408, ptr %5407, align 4, !tbaa !5
  %5419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5420 = load i32, ptr @test_count, align 4, !tbaa !5
  %5421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5422 = load i32, ptr %5421, align 4, !tbaa !5
  %5423 = call ptr @s2n_strerror(i32 noundef %5422, ptr noundef nonnull @.str.4) #10
  %5424 = load i32, ptr %5421, align 4, !tbaa !5
  %5425 = call ptr @s2n_strerror_debug(i32 noundef %5424, ptr noundef nonnull @.str.4) #10
  %5426 = load i32, ptr %5407, align 4, !tbaa !5
  %5427 = call ptr @strerror(i32 noundef %5426) #10
  %5428 = load i32, ptr %5407, align 4, !tbaa !5
  %5429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5419, ptr noundef nonnull %.str.5.sink2911, i32 noundef %5420, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 457, ptr noundef %5423, ptr noundef %5425, ptr noundef %5427, i32 noundef %5428) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5430:                                             ; preds = %5401
  %5431 = add nsw i32 %5340, 4
  store i32 %5431, ptr @test_count, align 4, !tbaa !5
  %5432 = getelementptr inbounds i8, ptr %5140, i64 728
  %5433 = load ptr, ptr %5432, align 8, !tbaa !75
  %5434 = icmp eq ptr %5433, null
  br i1 %5434, label %5459, label %5435

5435:                                             ; preds = %5430
  %5436 = tail call ptr @__errno_location() #11
  %5437 = load i32, ptr %5436, align 4, !tbaa !5
  %5438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5439 = call i32 @s2n_print_stacktrace(ptr noundef %5438) #10
  %5440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5441 = trunc nuw i8 %5440 to i1
  br i1 %5441, label %5442, label %5446

5442:                                             ; preds = %5435
  %5443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5444 = call i32 @fileno(ptr noundef %5443) #10
  %5445 = call i32 @isatty(i32 noundef %5444) #10
  %.not712 = icmp eq i32 %5445, 0
  br i1 %.not712, label %5446, label %5447

5446:                                             ; preds = %5442, %5435
  br label %5447

5447:                                             ; preds = %5442, %5446
  %.str.5.sink2922 = phi ptr [ @.str.5, %5446 ], [ @.str.2, %5442 ]
  store i32 %5437, ptr %5436, align 4, !tbaa !5
  %5448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5449 = load i32, ptr @test_count, align 4, !tbaa !5
  %5450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5451 = load i32, ptr %5450, align 4, !tbaa !5
  %5452 = call ptr @s2n_strerror(i32 noundef %5451, ptr noundef nonnull @.str.4) #10
  %5453 = load i32, ptr %5450, align 4, !tbaa !5
  %5454 = call ptr @s2n_strerror_debug(i32 noundef %5453, ptr noundef nonnull @.str.4) #10
  %5455 = load i32, ptr %5436, align 4, !tbaa !5
  %5456 = call ptr @strerror(i32 noundef %5455) #10
  %5457 = load i32, ptr %5436, align 4, !tbaa !5
  %5458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5448, ptr noundef nonnull %.str.5.sink2922, i32 noundef %5449, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 458, ptr noundef %5452, ptr noundef %5454, ptr noundef %5456, i32 noundef %5457) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5459:                                             ; preds = %5430
  %5460 = add nsw i32 %5340, 5
  store i32 %5460, ptr @test_count, align 4, !tbaa !5
  %5461 = call i32 @s2n_stuffer_free(ptr noundef nonnull %37) #10
  %5462 = icmp eq i32 %5461, -1
  br i1 %5462, label %5463, label %5487

5463:                                             ; preds = %5459
  %5464 = tail call ptr @__errno_location() #11
  %5465 = load i32, ptr %5464, align 4, !tbaa !5
  %5466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5467 = call i32 @s2n_print_stacktrace(ptr noundef %5466) #10
  %5468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5469 = trunc nuw i8 %5468 to i1
  br i1 %5469, label %5470, label %5474

5470:                                             ; preds = %5463
  %5471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5472 = call i32 @fileno(ptr noundef %5471) #10
  %5473 = call i32 @isatty(i32 noundef %5472) #10
  %.not756 = icmp eq i32 %5473, 0
  br i1 %.not756, label %5474, label %5475

5474:                                             ; preds = %5470, %5463
  br label %5475

5475:                                             ; preds = %5470, %5474
  %.str.5.sink2933 = phi ptr [ @.str.5, %5474 ], [ @.str.2, %5470 ]
  store i32 %5465, ptr %5464, align 4, !tbaa !5
  %5476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5477 = load i32, ptr @test_count, align 4, !tbaa !5
  %5478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5479 = load i32, ptr %5478, align 4, !tbaa !5
  %5480 = call ptr @s2n_strerror(i32 noundef %5479, ptr noundef nonnull @.str.4) #10
  %5481 = load i32, ptr %5478, align 4, !tbaa !5
  %5482 = call ptr @s2n_strerror_debug(i32 noundef %5481, ptr noundef nonnull @.str.4) #10
  %5483 = load i32, ptr %5464, align 4, !tbaa !5
  %5484 = call ptr @strerror(i32 noundef %5483) #10
  %5485 = load i32, ptr %5464, align 4, !tbaa !5
  %5486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5476, ptr noundef nonnull %.str.5.sink2933, i32 noundef %5477, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 460, ptr noundef %5480, ptr noundef %5482, ptr noundef %5484, i32 noundef %5485) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5487:                                             ; preds = %5459
  %5488 = load i32, ptr @test_count, align 4, !tbaa !5
  %5489 = add nsw i32 %5488, 1
  store i32 %5489, ptr @test_count, align 4, !tbaa !5
  %5490 = call i32 @s2n_connection_free(ptr noundef nonnull %5140) #10
  %5491 = icmp eq i32 %5490, -1
  br i1 %5491, label %5492, label %5516

5492:                                             ; preds = %5487
  %5493 = tail call ptr @__errno_location() #11
  %5494 = load i32, ptr %5493, align 4, !tbaa !5
  %5495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5496 = call i32 @s2n_print_stacktrace(ptr noundef %5495) #10
  %5497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5498 = trunc nuw i8 %5497 to i1
  br i1 %5498, label %5499, label %5503

5499:                                             ; preds = %5492
  %5500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5501 = call i32 @fileno(ptr noundef %5500) #10
  %5502 = call i32 @isatty(i32 noundef %5501) #10
  %.not755 = icmp eq i32 %5502, 0
  br i1 %.not755, label %5503, label %5504

5503:                                             ; preds = %5499, %5492
  br label %5504

5504:                                             ; preds = %5499, %5503
  %.str.5.sink2944 = phi ptr [ @.str.5, %5503 ], [ @.str.2, %5499 ]
  store i32 %5494, ptr %5493, align 4, !tbaa !5
  %5505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5506 = load i32, ptr @test_count, align 4, !tbaa !5
  %5507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5508 = load i32, ptr %5507, align 4, !tbaa !5
  %5509 = call ptr @s2n_strerror(i32 noundef %5508, ptr noundef nonnull @.str.4) #10
  %5510 = load i32, ptr %5507, align 4, !tbaa !5
  %5511 = call ptr @s2n_strerror_debug(i32 noundef %5510, ptr noundef nonnull @.str.4) #10
  %5512 = load i32, ptr %5493, align 4, !tbaa !5
  %5513 = call ptr @strerror(i32 noundef %5512) #10
  %5514 = load i32, ptr %5493, align 4, !tbaa !5
  %5515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5505, ptr noundef nonnull %.str.5.sink2944, i32 noundef %5506, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 461, ptr noundef %5509, ptr noundef %5511, ptr noundef %5513, i32 noundef %5514) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5516:                                             ; preds = %5487
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %37) #10
  %5517 = load i32, ptr @test_count, align 4, !tbaa !5
  %5518 = add nsw i32 %5517, 1
  store i32 %5518, ptr @test_count, align 4, !tbaa !5
  %5519 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %5520 = icmp eq ptr %5519, null
  br i1 %5520, label %5521, label %5545

5521:                                             ; preds = %5516
  %5522 = tail call ptr @__errno_location() #11
  %5523 = load i32, ptr %5522, align 4, !tbaa !5
  %5524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5525 = call i32 @s2n_print_stacktrace(ptr noundef %5524) #10
  %5526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5527 = trunc nuw i8 %5526 to i1
  br i1 %5527, label %5528, label %5532

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

5532:                                             ; preds = %5528, %5521
  br label %5533

5533:                                             ; preds = %5528, %5532
  %.str.5.sink2955 = phi ptr [ @.str.5, %5532 ], [ @.str.2, %5528 ]
  store i32 %5523, ptr %5522, align 4, !tbaa !5
  %5534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5535 = load i32, ptr @test_count, align 4, !tbaa !5
  %5536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5537 = load i32, ptr %5536, align 4, !tbaa !5
  %5538 = call ptr @s2n_strerror(i32 noundef %5537, ptr noundef nonnull @.str.4) #10
  %5539 = load i32, ptr %5536, align 4, !tbaa !5
  %5540 = call ptr @s2n_strerror_debug(i32 noundef %5539, ptr noundef nonnull @.str.4) #10
  %5541 = load i32, ptr %5522, align 4, !tbaa !5
  %5542 = call ptr @strerror(i32 noundef %5541) #10
  %5543 = load i32, ptr %5522, align 4, !tbaa !5
  %5544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5534, ptr noundef nonnull %.str.5.sink2955, i32 noundef %5535, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 467, ptr noundef %5538, ptr noundef %5540, ptr noundef %5542, i32 noundef %5543) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5545:                                             ; preds = %5516
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %39) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %39, i8 0, i64 40, i1 false)
  %5546 = load i32, ptr @test_count, align 4, !tbaa !5
  %5547 = add nsw i32 %5546, 1
  store i32 %5547, ptr @test_count, align 4, !tbaa !5
  %5548 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %39, i32 noundef 0) #10
  %5549 = icmp eq i32 %5548, -1
  br i1 %5549, label %5550, label %5574

5550:                                             ; preds = %5545
  %5551 = tail call ptr @__errno_location() #11
  %5552 = load i32, ptr %5551, align 4, !tbaa !5
  %5553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5554 = call i32 @s2n_print_stacktrace(ptr noundef %5553) #10
  %5555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5556 = trunc nuw i8 %5555 to i1
  br i1 %5556, label %5557, label %5561

5557:                                             ; preds = %5550
  %5558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5559 = call i32 @fileno(ptr noundef %5558) #10
  %5560 = call i32 @isatty(i32 noundef %5559) #10
  %.not753 = icmp eq i32 %5560, 0
  br i1 %.not753, label %5561, label %5562

5561:                                             ; preds = %5557, %5550
  br label %5562

5562:                                             ; preds = %5557, %5561
  %.str.5.sink2966 = phi ptr [ @.str.5, %5561 ], [ @.str.2, %5557 ]
  store i32 %5552, ptr %5551, align 4, !tbaa !5
  %5563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5564 = load i32, ptr @test_count, align 4, !tbaa !5
  %5565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5566 = load i32, ptr %5565, align 4, !tbaa !5
  %5567 = call ptr @s2n_strerror(i32 noundef %5566, ptr noundef nonnull @.str.4) #10
  %5568 = load i32, ptr %5565, align 4, !tbaa !5
  %5569 = call ptr @s2n_strerror_debug(i32 noundef %5568, ptr noundef nonnull @.str.4) #10
  %5570 = load i32, ptr %5551, align 4, !tbaa !5
  %5571 = call ptr @strerror(i32 noundef %5570) #10
  %5572 = load i32, ptr %5551, align 4, !tbaa !5
  %5573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5563, ptr noundef nonnull %.str.5.sink2966, i32 noundef %5564, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 470, ptr noundef %5567, ptr noundef %5569, ptr noundef %5571, i32 noundef %5572) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5574:                                             ; preds = %5545
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #10
  store ptr null, ptr %40, align 8, !tbaa !9
  %5575 = load i32, ptr @test_count, align 4, !tbaa !5
  %5576 = add nsw i32 %5575, 1
  store i32 %5576, ptr @test_count, align 4, !tbaa !5
  %5577 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %5519, ptr noundef nonnull %40) #10
  %5578 = icmp eq i32 %5577, -1
  br i1 %5578, label %5579, label %5603

5579:                                             ; preds = %5574
  %5580 = tail call ptr @__errno_location() #11
  %5581 = load i32, ptr %5580, align 4, !tbaa !5
  %5582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5583 = call i32 @s2n_print_stacktrace(ptr noundef %5582) #10
  %5584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5585 = trunc nuw i8 %5584 to i1
  br i1 %5585, label %5586, label %5590

5586:                                             ; preds = %5579
  %5587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5588 = call i32 @fileno(ptr noundef %5587) #10
  %5589 = call i32 @isatty(i32 noundef %5588) #10
  %.not752 = icmp eq i32 %5589, 0
  br i1 %.not752, label %5590, label %5591

5590:                                             ; preds = %5586, %5579
  br label %5591

5591:                                             ; preds = %5586, %5590
  %.str.5.sink2977 = phi ptr [ @.str.5, %5590 ], [ @.str.2, %5586 ]
  store i32 %5581, ptr %5580, align 4, !tbaa !5
  %5592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5593 = load i32, ptr @test_count, align 4, !tbaa !5
  %5594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5595 = load i32, ptr %5594, align 4, !tbaa !5
  %5596 = call ptr @s2n_strerror(i32 noundef %5595, ptr noundef nonnull @.str.4) #10
  %5597 = load i32, ptr %5594, align 4, !tbaa !5
  %5598 = call ptr @s2n_strerror_debug(i32 noundef %5597, ptr noundef nonnull @.str.4) #10
  %5599 = load i32, ptr %5580, align 4, !tbaa !5
  %5600 = call ptr @strerror(i32 noundef %5599) #10
  %5601 = load i32, ptr %5580, align 4, !tbaa !5
  %5602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5592, ptr noundef nonnull %.str.5.sink2977, i32 noundef %5593, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %5596, ptr noundef %5598, ptr noundef %5600, i32 noundef %5601) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5603:                                             ; preds = %5574
  %5604 = load i32, ptr @test_count, align 4, !tbaa !5
  %5605 = add nsw i32 %5604, 1
  store i32 %5605, ptr @test_count, align 4, !tbaa !5
  %5606 = load ptr, ptr %40, align 8, !tbaa !9
  %5607 = icmp eq ptr %5606, null
  br i1 %5607, label %5608, label %5632

5608:                                             ; preds = %5603
  %5609 = tail call ptr @__errno_location() #11
  %5610 = load i32, ptr %5609, align 4, !tbaa !5
  %5611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5612 = call i32 @s2n_print_stacktrace(ptr noundef %5611) #10
  %5613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5614 = trunc nuw i8 %5613 to i1
  br i1 %5614, label %5615, label %5619

5615:                                             ; preds = %5608
  %5616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5617 = call i32 @fileno(ptr noundef %5616) #10
  %5618 = call i32 @isatty(i32 noundef %5617) #10
  %.not751 = icmp eq i32 %5618, 0
  br i1 %.not751, label %5619, label %5620

5619:                                             ; preds = %5615, %5608
  br label %5620

5620:                                             ; preds = %5615, %5619
  %.str.5.sink2988 = phi ptr [ @.str.5, %5619 ], [ @.str.2, %5615 ]
  store i32 %5610, ptr %5609, align 4, !tbaa !5
  %5621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5622 = load i32, ptr @test_count, align 4, !tbaa !5
  %5623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5624 = load i32, ptr %5623, align 4, !tbaa !5
  %5625 = call ptr @s2n_strerror(i32 noundef %5624, ptr noundef nonnull @.str.4) #10
  %5626 = load i32, ptr %5623, align 4, !tbaa !5
  %5627 = call ptr @s2n_strerror_debug(i32 noundef %5626, ptr noundef nonnull @.str.4) #10
  %5628 = load i32, ptr %5609, align 4, !tbaa !5
  %5629 = call ptr @strerror(i32 noundef %5628) #10
  %5630 = load i32, ptr %5609, align 4, !tbaa !5
  %5631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5621, ptr noundef nonnull %.str.5.sink2988, i32 noundef %5622, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 474, ptr noundef %5625, ptr noundef %5627, ptr noundef %5629, i32 noundef %5630) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5632:                                             ; preds = %5603
  %5633 = add nsw i32 %5604, 2
  store i32 %5633, ptr @test_count, align 4, !tbaa !5
  %5634 = call i32 %478(ptr noundef nonnull %5519, ptr noundef nonnull %39) #10
  %5635 = icmp eq i32 %5634, -1
  br i1 %5635, label %5636, label %5660

5636:                                             ; preds = %5632
  %5637 = tail call ptr @__errno_location() #11
  %5638 = load i32, ptr %5637, align 4, !tbaa !5
  %5639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5640 = call i32 @s2n_print_stacktrace(ptr noundef %5639) #10
  %5641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5642 = trunc nuw i8 %5641 to i1
  br i1 %5642, label %5643, label %5647

5643:                                             ; preds = %5636
  %5644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5645 = call i32 @fileno(ptr noundef %5644) #10
  %5646 = call i32 @isatty(i32 noundef %5645) #10
  %.not750 = icmp eq i32 %5646, 0
  br i1 %.not750, label %5647, label %5648

5647:                                             ; preds = %5643, %5636
  br label %5648

5648:                                             ; preds = %5643, %5647
  %.str.5.sink2999 = phi ptr [ @.str.5, %5647 ], [ @.str.2, %5643 ]
  store i32 %5638, ptr %5637, align 4, !tbaa !5
  %5649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5650 = load i32, ptr @test_count, align 4, !tbaa !5
  %5651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5652 = load i32, ptr %5651, align 4, !tbaa !5
  %5653 = call ptr @s2n_strerror(i32 noundef %5652, ptr noundef nonnull @.str.4) #10
  %5654 = load i32, ptr %5651, align 4, !tbaa !5
  %5655 = call ptr @s2n_strerror_debug(i32 noundef %5654, ptr noundef nonnull @.str.4) #10
  %5656 = load i32, ptr %5637, align 4, !tbaa !5
  %5657 = call ptr @strerror(i32 noundef %5656) #10
  %5658 = load i32, ptr %5637, align 4, !tbaa !5
  %5659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5649, ptr noundef nonnull %.str.5.sink2999, i32 noundef %5650, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 476, ptr noundef %5653, ptr noundef %5655, ptr noundef %5657, i32 noundef %5658) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5660:                                             ; preds = %5632
  %5661 = load i32, ptr @test_count, align 4, !tbaa !5
  %5662 = add nsw i32 %5661, 1
  store i32 %5662, ptr @test_count, align 4, !tbaa !5
  %5663 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %5519, ptr noundef nonnull @.str.77) #10
  %5664 = icmp eq i32 %5663, -1
  br i1 %5664, label %5665, label %5689

5665:                                             ; preds = %5660
  %5666 = tail call ptr @__errno_location() #11
  %5667 = load i32, ptr %5666, align 4, !tbaa !5
  %5668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5669 = call i32 @s2n_print_stacktrace(ptr noundef %5668) #10
  %5670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5671 = trunc nuw i8 %5670 to i1
  br i1 %5671, label %5672, label %5676

5672:                                             ; preds = %5665
  %5673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5674 = call i32 @fileno(ptr noundef %5673) #10
  %5675 = call i32 @isatty(i32 noundef %5674) #10
  %.not749 = icmp eq i32 %5675, 0
  br i1 %.not749, label %5676, label %5677

5676:                                             ; preds = %5672, %5665
  br label %5677

5677:                                             ; preds = %5672, %5676
  %.str.5.sink3010 = phi ptr [ @.str.5, %5676 ], [ @.str.2, %5672 ]
  store i32 %5667, ptr %5666, align 4, !tbaa !5
  %5678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5679 = load i32, ptr @test_count, align 4, !tbaa !5
  %5680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5681 = load i32, ptr %5680, align 4, !tbaa !5
  %5682 = call ptr @s2n_strerror(i32 noundef %5681, ptr noundef nonnull @.str.4) #10
  %5683 = load i32, ptr %5680, align 4, !tbaa !5
  %5684 = call ptr @s2n_strerror_debug(i32 noundef %5683, ptr noundef nonnull @.str.4) #10
  %5685 = load i32, ptr %5666, align 4, !tbaa !5
  %5686 = call ptr @strerror(i32 noundef %5685) #10
  %5687 = load i32, ptr %5666, align 4, !tbaa !5
  %5688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5678, ptr noundef nonnull %.str.5.sink3010, i32 noundef %5679, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 477, ptr noundef %5682, ptr noundef %5684, ptr noundef %5686, i32 noundef %5687) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5689:                                             ; preds = %5660
  %5690 = load i32, ptr @test_count, align 4, !tbaa !5
  %5691 = add nsw i32 %5690, 1
  store i32 %5691, ptr @test_count, align 4, !tbaa !5
  %5692 = getelementptr inbounds i8, ptr %5519, i64 656
  %5693 = load ptr, ptr %5692, align 8, !tbaa !72
  %5694 = icmp eq ptr %5693, null
  br i1 %5694, label %5719, label %5695

5695:                                             ; preds = %5689
  %5696 = tail call ptr @__errno_location() #11
  %5697 = load i32, ptr %5696, align 4, !tbaa !5
  %5698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5699 = call i32 @s2n_print_stacktrace(ptr noundef %5698) #10
  %5700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5701 = trunc nuw i8 %5700 to i1
  br i1 %5701, label %5702, label %5706

5702:                                             ; preds = %5695
  %5703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5704 = call i32 @fileno(ptr noundef %5703) #10
  %5705 = call i32 @isatty(i32 noundef %5704) #10
  %.not713 = icmp eq i32 %5705, 0
  br i1 %.not713, label %5706, label %5707

5706:                                             ; preds = %5702, %5695
  br label %5707

5707:                                             ; preds = %5702, %5706
  %.str.5.sink3021 = phi ptr [ @.str.5, %5706 ], [ @.str.2, %5702 ]
  store i32 %5697, ptr %5696, align 4, !tbaa !5
  %5708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5709 = load i32, ptr @test_count, align 4, !tbaa !5
  %5710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5711 = load i32, ptr %5710, align 4, !tbaa !5
  %5712 = call ptr @s2n_strerror(i32 noundef %5711, ptr noundef nonnull @.str.4) #10
  %5713 = load i32, ptr %5710, align 4, !tbaa !5
  %5714 = call ptr @s2n_strerror_debug(i32 noundef %5713, ptr noundef nonnull @.str.4) #10
  %5715 = load i32, ptr %5696, align 4, !tbaa !5
  %5716 = call ptr @strerror(i32 noundef %5715) #10
  %5717 = load i32, ptr %5696, align 4, !tbaa !5
  %5718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5708, ptr noundef nonnull %.str.5.sink3021, i32 noundef %5709, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 479, ptr noundef %5712, ptr noundef %5714, ptr noundef %5716, i32 noundef %5717) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5719:                                             ; preds = %5689
  %5720 = add nsw i32 %5690, 2
  store i32 %5720, ptr @test_count, align 4, !tbaa !5
  %5721 = call i32 %2117(ptr noundef nonnull %5519, ptr noundef nonnull %39) #10
  %5722 = icmp eq i32 %5721, -1
  br i1 %5722, label %5723, label %5747

5723:                                             ; preds = %5719
  %5724 = tail call ptr @__errno_location() #11
  %5725 = load i32, ptr %5724, align 4, !tbaa !5
  %5726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5727 = call i32 @s2n_print_stacktrace(ptr noundef %5726) #10
  %5728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5729 = trunc nuw i8 %5728 to i1
  br i1 %5729, label %5730, label %5734

5730:                                             ; preds = %5723
  %5731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5732 = call i32 @fileno(ptr noundef %5731) #10
  %5733 = call i32 @isatty(i32 noundef %5732) #10
  %.not748 = icmp eq i32 %5733, 0
  br i1 %.not748, label %5734, label %5735

5734:                                             ; preds = %5730, %5723
  br label %5735

5735:                                             ; preds = %5730, %5734
  %.str.5.sink3032 = phi ptr [ @.str.5, %5734 ], [ @.str.2, %5730 ]
  store i32 %5725, ptr %5724, align 4, !tbaa !5
  %5736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5737 = load i32, ptr @test_count, align 4, !tbaa !5
  %5738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5739 = load i32, ptr %5738, align 4, !tbaa !5
  %5740 = call ptr @s2n_strerror(i32 noundef %5739, ptr noundef nonnull @.str.4) #10
  %5741 = load i32, ptr %5738, align 4, !tbaa !5
  %5742 = call ptr @s2n_strerror_debug(i32 noundef %5741, ptr noundef nonnull @.str.4) #10
  %5743 = load i32, ptr %5724, align 4, !tbaa !5
  %5744 = call ptr @strerror(i32 noundef %5743) #10
  %5745 = load i32, ptr %5724, align 4, !tbaa !5
  %5746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5736, ptr noundef nonnull %.str.5.sink3032, i32 noundef %5737, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 480, ptr noundef %5740, ptr noundef %5742, ptr noundef %5744, i32 noundef %5745) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5747:                                             ; preds = %5719
  %5748 = load i32, ptr @test_count, align 4, !tbaa !5
  %5749 = add nsw i32 %5748, 1
  store i32 %5749, ptr @test_count, align 4, !tbaa !5
  %5750 = load ptr, ptr %5692, align 8, !tbaa !72
  %5751 = icmp eq ptr %5750, null
  br i1 %5751, label %5776, label %5752

5752:                                             ; preds = %5747
  %5753 = tail call ptr @__errno_location() #11
  %5754 = load i32, ptr %5753, align 4, !tbaa !5
  %5755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5756 = call i32 @s2n_print_stacktrace(ptr noundef %5755) #10
  %5757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5758 = trunc nuw i8 %5757 to i1
  br i1 %5758, label %5759, label %5763

5759:                                             ; preds = %5752
  %5760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5761 = call i32 @fileno(ptr noundef %5760) #10
  %5762 = call i32 @isatty(i32 noundef %5761) #10
  %.not714 = icmp eq i32 %5762, 0
  br i1 %.not714, label %5763, label %5764

5763:                                             ; preds = %5759, %5752
  br label %5764

5764:                                             ; preds = %5759, %5763
  %.str.5.sink3043 = phi ptr [ @.str.5, %5763 ], [ @.str.2, %5759 ]
  store i32 %5754, ptr %5753, align 4, !tbaa !5
  %5765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5766 = load i32, ptr @test_count, align 4, !tbaa !5
  %5767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5768 = load i32, ptr %5767, align 4, !tbaa !5
  %5769 = call ptr @s2n_strerror(i32 noundef %5768, ptr noundef nonnull @.str.4) #10
  %5770 = load i32, ptr %5767, align 4, !tbaa !5
  %5771 = call ptr @s2n_strerror_debug(i32 noundef %5770, ptr noundef nonnull @.str.4) #10
  %5772 = load i32, ptr %5753, align 4, !tbaa !5
  %5773 = call ptr @strerror(i32 noundef %5772) #10
  %5774 = load i32, ptr %5753, align 4, !tbaa !5
  %5775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5765, ptr noundef nonnull %.str.5.sink3043, i32 noundef %5766, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 481, ptr noundef %5769, ptr noundef %5771, ptr noundef %5773, i32 noundef %5774) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5776:                                             ; preds = %5747
  %5777 = add nsw i32 %5748, 2
  store i32 %5777, ptr @test_count, align 4, !tbaa !5
  %5778 = getelementptr inbounds i8, ptr %5519, i64 720
  %5779 = load ptr, ptr %5778, align 8, !tbaa !73
  %5780 = icmp eq ptr %5779, null
  br i1 %5780, label %5805, label %5781

5781:                                             ; preds = %5776
  %5782 = tail call ptr @__errno_location() #11
  %5783 = load i32, ptr %5782, align 4, !tbaa !5
  %5784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5785 = call i32 @s2n_print_stacktrace(ptr noundef %5784) #10
  %5786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5787 = trunc nuw i8 %5786 to i1
  br i1 %5787, label %5788, label %5792

5788:                                             ; preds = %5781
  %5789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5790 = call i32 @fileno(ptr noundef %5789) #10
  %5791 = call i32 @isatty(i32 noundef %5790) #10
  %.not715 = icmp eq i32 %5791, 0
  br i1 %.not715, label %5792, label %5793

5792:                                             ; preds = %5788, %5781
  br label %5793

5793:                                             ; preds = %5788, %5792
  %.str.5.sink3054 = phi ptr [ @.str.5, %5792 ], [ @.str.2, %5788 ]
  store i32 %5783, ptr %5782, align 4, !tbaa !5
  %5794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5795 = load i32, ptr @test_count, align 4, !tbaa !5
  %5796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5797 = load i32, ptr %5796, align 4, !tbaa !5
  %5798 = call ptr @s2n_strerror(i32 noundef %5797, ptr noundef nonnull @.str.4) #10
  %5799 = load i32, ptr %5796, align 4, !tbaa !5
  %5800 = call ptr @s2n_strerror_debug(i32 noundef %5799, ptr noundef nonnull @.str.4) #10
  %5801 = load i32, ptr %5782, align 4, !tbaa !5
  %5802 = call ptr @strerror(i32 noundef %5801) #10
  %5803 = load i32, ptr %5782, align 4, !tbaa !5
  %5804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5794, ptr noundef nonnull %.str.5.sink3054, i32 noundef %5795, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 482, ptr noundef %5798, ptr noundef %5800, ptr noundef %5802, i32 noundef %5803) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5805:                                             ; preds = %5776
  %5806 = add nsw i32 %5748, 3
  store i32 %5806, ptr @test_count, align 4, !tbaa !5
  %5807 = getelementptr inbounds i8, ptr %5519, i64 816
  %5808 = load ptr, ptr %5807, align 8, !tbaa !74
  %5809 = icmp eq ptr %5808, null
  br i1 %5809, label %5834, label %5810

5810:                                             ; preds = %5805
  %5811 = tail call ptr @__errno_location() #11
  %5812 = load i32, ptr %5811, align 4, !tbaa !5
  %5813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5814 = call i32 @s2n_print_stacktrace(ptr noundef %5813) #10
  %5815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5816 = trunc nuw i8 %5815 to i1
  br i1 %5816, label %5817, label %5821

5817:                                             ; preds = %5810
  %5818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5819 = call i32 @fileno(ptr noundef %5818) #10
  %5820 = call i32 @isatty(i32 noundef %5819) #10
  %.not716 = icmp eq i32 %5820, 0
  br i1 %.not716, label %5821, label %5822

5821:                                             ; preds = %5817, %5810
  br label %5822

5822:                                             ; preds = %5817, %5821
  %.str.5.sink3065 = phi ptr [ @.str.5, %5821 ], [ @.str.2, %5817 ]
  store i32 %5812, ptr %5811, align 4, !tbaa !5
  %5823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5824 = load i32, ptr @test_count, align 4, !tbaa !5
  %5825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5826 = load i32, ptr %5825, align 4, !tbaa !5
  %5827 = call ptr @s2n_strerror(i32 noundef %5826, ptr noundef nonnull @.str.4) #10
  %5828 = load i32, ptr %5825, align 4, !tbaa !5
  %5829 = call ptr @s2n_strerror_debug(i32 noundef %5828, ptr noundef nonnull @.str.4) #10
  %5830 = load i32, ptr %5811, align 4, !tbaa !5
  %5831 = call ptr @strerror(i32 noundef %5830) #10
  %5832 = load i32, ptr %5811, align 4, !tbaa !5
  %5833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5823, ptr noundef nonnull %.str.5.sink3065, i32 noundef %5824, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 483, ptr noundef %5827, ptr noundef %5829, ptr noundef %5831, i32 noundef %5832) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5834:                                             ; preds = %5805
  %5835 = add nsw i32 %5748, 4
  store i32 %5835, ptr @test_count, align 4, !tbaa !5
  %5836 = getelementptr inbounds i8, ptr %5519, i64 728
  %5837 = load ptr, ptr %5836, align 8, !tbaa !75
  %5838 = icmp eq ptr %5837, null
  br i1 %5838, label %5863, label %5839

5839:                                             ; preds = %5834
  %5840 = tail call ptr @__errno_location() #11
  %5841 = load i32, ptr %5840, align 4, !tbaa !5
  %5842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5843 = call i32 @s2n_print_stacktrace(ptr noundef %5842) #10
  %5844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5845 = trunc nuw i8 %5844 to i1
  br i1 %5845, label %5846, label %5850

5846:                                             ; preds = %5839
  %5847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5848 = call i32 @fileno(ptr noundef %5847) #10
  %5849 = call i32 @isatty(i32 noundef %5848) #10
  %.not717 = icmp eq i32 %5849, 0
  br i1 %.not717, label %5850, label %5851

5850:                                             ; preds = %5846, %5839
  br label %5851

5851:                                             ; preds = %5846, %5850
  %.str.5.sink3076 = phi ptr [ @.str.5, %5850 ], [ @.str.2, %5846 ]
  store i32 %5841, ptr %5840, align 4, !tbaa !5
  %5852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5853 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5855, ptr noundef nonnull @.str.4) #10
  %5857 = load i32, ptr %5854, align 4, !tbaa !5
  %5858 = call ptr @s2n_strerror_debug(i32 noundef %5857, ptr noundef nonnull @.str.4) #10
  %5859 = load i32, ptr %5840, align 4, !tbaa !5
  %5860 = call ptr @strerror(i32 noundef %5859) #10
  %5861 = load i32, ptr %5840, align 4, !tbaa !5
  %5862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5852, ptr noundef nonnull %.str.5.sink3076, i32 noundef %5853, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 484, ptr noundef %5856, ptr noundef %5858, ptr noundef %5860, i32 noundef %5861) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5863:                                             ; preds = %5834
  %5864 = add nsw i32 %5748, 5
  store i32 %5864, ptr @test_count, align 4, !tbaa !5
  %5865 = call i32 @s2n_stuffer_free(ptr noundef nonnull %39) #10
  %5866 = icmp eq i32 %5865, -1
  br i1 %5866, label %5867, label %5891

5867:                                             ; preds = %5863
  %5868 = tail call ptr @__errno_location() #11
  %5869 = load i32, ptr %5868, align 4, !tbaa !5
  %5870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5871 = call i32 @s2n_print_stacktrace(ptr noundef %5870) #10
  %5872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5873 = trunc nuw i8 %5872 to i1
  br i1 %5873, label %5874, label %5878

5874:                                             ; preds = %5867
  %5875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5876 = call i32 @fileno(ptr noundef %5875) #10
  %5877 = call i32 @isatty(i32 noundef %5876) #10
  %.not747 = icmp eq i32 %5877, 0
  br i1 %.not747, label %5878, label %5879

5878:                                             ; preds = %5874, %5867
  br label %5879

5879:                                             ; preds = %5874, %5878
  %.str.5.sink3087 = phi ptr [ @.str.5, %5878 ], [ @.str.2, %5874 ]
  store i32 %5869, ptr %5868, align 4, !tbaa !5
  %5880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5881 = load i32, ptr @test_count, align 4, !tbaa !5
  %5882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5883 = load i32, ptr %5882, align 4, !tbaa !5
  %5884 = call ptr @s2n_strerror(i32 noundef %5883, ptr noundef nonnull @.str.4) #10
  %5885 = load i32, ptr %5882, align 4, !tbaa !5
  %5886 = call ptr @s2n_strerror_debug(i32 noundef %5885, ptr noundef nonnull @.str.4) #10
  %5887 = load i32, ptr %5868, align 4, !tbaa !5
  %5888 = call ptr @strerror(i32 noundef %5887) #10
  %5889 = load i32, ptr %5868, align 4, !tbaa !5
  %5890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5880, ptr noundef nonnull %.str.5.sink3087, i32 noundef %5881, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 486, ptr noundef %5884, ptr noundef %5886, ptr noundef %5888, i32 noundef %5889) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5891:                                             ; preds = %5863
  %5892 = load i32, ptr @test_count, align 4, !tbaa !5
  %5893 = add nsw i32 %5892, 1
  store i32 %5893, ptr @test_count, align 4, !tbaa !5
  %5894 = call i32 @s2n_connection_free(ptr noundef nonnull %5519) #10
  %5895 = icmp eq i32 %5894, -1
  br i1 %5895, label %5896, label %5920

5896:                                             ; preds = %5891
  %5897 = tail call ptr @__errno_location() #11
  %5898 = load i32, ptr %5897, align 4, !tbaa !5
  %5899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5900 = call i32 @s2n_print_stacktrace(ptr noundef %5899) #10
  %5901 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5902 = trunc nuw i8 %5901 to i1
  br i1 %5902, label %5903, label %5907

5903:                                             ; preds = %5896
  %5904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5905 = call i32 @fileno(ptr noundef %5904) #10
  %5906 = call i32 @isatty(i32 noundef %5905) #10
  %.not746 = icmp eq i32 %5906, 0
  br i1 %.not746, label %5907, label %5908

5907:                                             ; preds = %5903, %5896
  br label %5908

5908:                                             ; preds = %5903, %5907
  %.str.5.sink3098 = phi ptr [ @.str.5, %5907 ], [ @.str.2, %5903 ]
  store i32 %5898, ptr %5897, align 4, !tbaa !5
  %5909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5910 = load i32, ptr @test_count, align 4, !tbaa !5
  %5911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5912 = load i32, ptr %5911, align 4, !tbaa !5
  %5913 = call ptr @s2n_strerror(i32 noundef %5912, ptr noundef nonnull @.str.4) #10
  %5914 = load i32, ptr %5911, align 4, !tbaa !5
  %5915 = call ptr @s2n_strerror_debug(i32 noundef %5914, ptr noundef nonnull @.str.4) #10
  %5916 = load i32, ptr %5897, align 4, !tbaa !5
  %5917 = call ptr @strerror(i32 noundef %5916) #10
  %5918 = load i32, ptr %5897, align 4, !tbaa !5
  %5919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5909, ptr noundef nonnull %.str.5.sink3098, i32 noundef %5910, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %5913, ptr noundef %5915, ptr noundef %5917, i32 noundef %5918) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5920:                                             ; preds = %5891
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %39) #10
  %5921 = load i32, ptr @test_count, align 4, !tbaa !5
  %5922 = add nsw i32 %5921, 1
  store i32 %5922, ptr @test_count, align 4, !tbaa !5
  %5923 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %5924 = icmp eq ptr %5923, null
  br i1 %5924, label %5925, label %5949

5925:                                             ; preds = %5920
  %5926 = tail call ptr @__errno_location() #11
  %5927 = load i32, ptr %5926, align 4, !tbaa !5
  %5928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5929 = call i32 @s2n_print_stacktrace(ptr noundef %5928) #10
  %5930 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5931 = trunc nuw i8 %5930 to i1
  br i1 %5931, label %5932, label %5936

5932:                                             ; preds = %5925
  %5933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5934 = call i32 @fileno(ptr noundef %5933) #10
  %5935 = call i32 @isatty(i32 noundef %5934) #10
  %.not745 = icmp eq i32 %5935, 0
  br i1 %.not745, label %5936, label %5937

5936:                                             ; preds = %5932, %5925
  br label %5937

5937:                                             ; preds = %5932, %5936
  %.str.5.sink3109 = phi ptr [ @.str.5, %5936 ], [ @.str.2, %5932 ]
  store i32 %5927, ptr %5926, align 4, !tbaa !5
  %5938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5939 = load i32, ptr @test_count, align 4, !tbaa !5
  %5940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5941 = load i32, ptr %5940, align 4, !tbaa !5
  %5942 = call ptr @s2n_strerror(i32 noundef %5941, ptr noundef nonnull @.str.4) #10
  %5943 = load i32, ptr %5940, align 4, !tbaa !5
  %5944 = call ptr @s2n_strerror_debug(i32 noundef %5943, ptr noundef nonnull @.str.4) #10
  %5945 = load i32, ptr %5926, align 4, !tbaa !5
  %5946 = call ptr @strerror(i32 noundef %5945) #10
  %5947 = load i32, ptr %5926, align 4, !tbaa !5
  %5948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5938, ptr noundef nonnull %.str.5.sink3109, i32 noundef %5939, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 493, ptr noundef %5942, ptr noundef %5944, ptr noundef %5946, i32 noundef %5947) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5949:                                             ; preds = %5920
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %41) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %41, i8 0, i64 40, i1 false)
  %5950 = load i32, ptr @test_count, align 4, !tbaa !5
  %5951 = add nsw i32 %5950, 1
  store i32 %5951, ptr @test_count, align 4, !tbaa !5
  %5952 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %41, i32 noundef 0) #10
  %5953 = icmp eq i32 %5952, -1
  br i1 %5953, label %5954, label %5978

5954:                                             ; preds = %5949
  %5955 = tail call ptr @__errno_location() #11
  %5956 = load i32, ptr %5955, align 4, !tbaa !5
  %5957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5958 = call i32 @s2n_print_stacktrace(ptr noundef %5957) #10
  %5959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5960 = trunc nuw i8 %5959 to i1
  br i1 %5960, label %5961, label %5965

5961:                                             ; preds = %5954
  %5962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5963 = call i32 @fileno(ptr noundef %5962) #10
  %5964 = call i32 @isatty(i32 noundef %5963) #10
  %.not744 = icmp eq i32 %5964, 0
  br i1 %.not744, label %5965, label %5966

5965:                                             ; preds = %5961, %5954
  br label %5966

5966:                                             ; preds = %5961, %5965
  %.str.5.sink3120 = phi ptr [ @.str.5, %5965 ], [ @.str.2, %5961 ]
  store i32 %5956, ptr %5955, align 4, !tbaa !5
  %5967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5968 = load i32, ptr @test_count, align 4, !tbaa !5
  %5969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5970 = load i32, ptr %5969, align 4, !tbaa !5
  %5971 = call ptr @s2n_strerror(i32 noundef %5970, ptr noundef nonnull @.str.4) #10
  %5972 = load i32, ptr %5969, align 4, !tbaa !5
  %5973 = call ptr @s2n_strerror_debug(i32 noundef %5972, ptr noundef nonnull @.str.4) #10
  %5974 = load i32, ptr %5955, align 4, !tbaa !5
  %5975 = call ptr @strerror(i32 noundef %5974) #10
  %5976 = load i32, ptr %5955, align 4, !tbaa !5
  %5977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5967, ptr noundef nonnull %.str.5.sink3120, i32 noundef %5968, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 496, ptr noundef %5971, ptr noundef %5973, ptr noundef %5975, i32 noundef %5976) #12
  call void @exit(i32 noundef 1) #13
  unreachable

5978:                                             ; preds = %5949
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #10
  store ptr null, ptr %42, align 8, !tbaa !9
  %5979 = load i32, ptr @test_count, align 4, !tbaa !5
  %5980 = add nsw i32 %5979, 1
  store i32 %5980, ptr @test_count, align 4, !tbaa !5
  %5981 = call i32 @s2n_connection_get_ecc_preferences(ptr noundef nonnull %5923, ptr noundef nonnull %42) #10
  %5982 = icmp eq i32 %5981, -1
  br i1 %5982, label %5983, label %6007

5983:                                             ; preds = %5978
  %5984 = tail call ptr @__errno_location() #11
  %5985 = load i32, ptr %5984, align 4, !tbaa !5
  %5986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5987 = call i32 @s2n_print_stacktrace(ptr noundef %5986) #10
  %5988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5989 = trunc nuw i8 %5988 to i1
  br i1 %5989, label %5990, label %5994

5990:                                             ; preds = %5983
  %5991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5992 = call i32 @fileno(ptr noundef %5991) #10
  %5993 = call i32 @isatty(i32 noundef %5992) #10
  %.not743 = icmp eq i32 %5993, 0
  br i1 %.not743, label %5994, label %5995

5994:                                             ; preds = %5990, %5983
  br label %5995

5995:                                             ; preds = %5990, %5994
  %.str.5.sink3131 = phi ptr [ @.str.5, %5994 ], [ @.str.2, %5990 ]
  store i32 %5985, ptr %5984, align 4, !tbaa !5
  %5996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5997 = load i32, ptr @test_count, align 4, !tbaa !5
  %5998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5999 = load i32, ptr %5998, align 4, !tbaa !5
  %6000 = call ptr @s2n_strerror(i32 noundef %5999, ptr noundef nonnull @.str.4) #10
  %6001 = load i32, ptr %5998, align 4, !tbaa !5
  %6002 = call ptr @s2n_strerror_debug(i32 noundef %6001, ptr noundef nonnull @.str.4) #10
  %6003 = load i32, ptr %5984, align 4, !tbaa !5
  %6004 = call ptr @strerror(i32 noundef %6003) #10
  %6005 = load i32, ptr %5984, align 4, !tbaa !5
  %6006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5996, ptr noundef nonnull %.str.5.sink3131, i32 noundef %5997, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 499, ptr noundef %6000, ptr noundef %6002, ptr noundef %6004, i32 noundef %6005) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6007:                                             ; preds = %5978
  %6008 = load i32, ptr @test_count, align 4, !tbaa !5
  %6009 = add nsw i32 %6008, 1
  store i32 %6009, ptr @test_count, align 4, !tbaa !5
  %6010 = load ptr, ptr %42, align 8, !tbaa !9
  %6011 = icmp eq ptr %6010, null
  br i1 %6011, label %6012, label %6036

6012:                                             ; preds = %6007
  %6013 = tail call ptr @__errno_location() #11
  %6014 = load i32, ptr %6013, align 4, !tbaa !5
  %6015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6016 = call i32 @s2n_print_stacktrace(ptr noundef %6015) #10
  %6017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6018 = trunc nuw i8 %6017 to i1
  br i1 %6018, label %6019, label %6023

6019:                                             ; preds = %6012
  %6020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6021 = call i32 @fileno(ptr noundef %6020) #10
  %6022 = call i32 @isatty(i32 noundef %6021) #10
  %.not742 = icmp eq i32 %6022, 0
  br i1 %.not742, label %6023, label %6024

6023:                                             ; preds = %6019, %6012
  br label %6024

6024:                                             ; preds = %6019, %6023
  %.str.5.sink3142 = phi ptr [ @.str.5, %6023 ], [ @.str.2, %6019 ]
  store i32 %6014, ptr %6013, align 4, !tbaa !5
  %6025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6026 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6028, ptr noundef nonnull @.str.4) #10
  %6030 = load i32, ptr %6027, align 4, !tbaa !5
  %6031 = call ptr @s2n_strerror_debug(i32 noundef %6030, ptr noundef nonnull @.str.4) #10
  %6032 = load i32, ptr %6013, align 4, !tbaa !5
  %6033 = call ptr @strerror(i32 noundef %6032) #10
  %6034 = load i32, ptr %6013, align 4, !tbaa !5
  %6035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6025, ptr noundef nonnull %.str.5.sink3142, i32 noundef %6026, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 500, ptr noundef %6029, ptr noundef %6031, ptr noundef %6033, i32 noundef %6034) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6036:                                             ; preds = %6007
  %6037 = add nsw i32 %6008, 2
  store i32 %6037, ptr @test_count, align 4, !tbaa !5
  %6038 = call i32 %478(ptr noundef nonnull %5923, ptr noundef nonnull %41) #10
  %6039 = icmp eq i32 %6038, -1
  br i1 %6039, label %6040, label %6064

6040:                                             ; preds = %6036
  %6041 = tail call ptr @__errno_location() #11
  %6042 = load i32, ptr %6041, align 4, !tbaa !5
  %6043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6044 = call i32 @s2n_print_stacktrace(ptr noundef %6043) #10
  %6045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6046 = trunc nuw i8 %6045 to i1
  br i1 %6046, label %6047, label %6051

6047:                                             ; preds = %6040
  %6048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6049 = call i32 @fileno(ptr noundef %6048) #10
  %6050 = call i32 @isatty(i32 noundef %6049) #10
  %.not741 = icmp eq i32 %6050, 0
  br i1 %.not741, label %6051, label %6052

6051:                                             ; preds = %6047, %6040
  br label %6052

6052:                                             ; preds = %6047, %6051
  %.str.5.sink3153 = phi ptr [ @.str.5, %6051 ], [ @.str.2, %6047 ]
  store i32 %6042, ptr %6041, align 4, !tbaa !5
  %6053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6054 = load i32, ptr @test_count, align 4, !tbaa !5
  %6055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6056 = load i32, ptr %6055, align 4, !tbaa !5
  %6057 = call ptr @s2n_strerror(i32 noundef %6056, ptr noundef nonnull @.str.4) #10
  %6058 = load i32, ptr %6055, align 4, !tbaa !5
  %6059 = call ptr @s2n_strerror_debug(i32 noundef %6058, ptr noundef nonnull @.str.4) #10
  %6060 = load i32, ptr %6041, align 4, !tbaa !5
  %6061 = call ptr @strerror(i32 noundef %6060) #10
  %6062 = load i32, ptr %6041, align 4, !tbaa !5
  %6063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6053, ptr noundef nonnull %.str.5.sink3153, i32 noundef %6054, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 502, ptr noundef %6057, ptr noundef %6059, ptr noundef %6061, i32 noundef %6062) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6064:                                             ; preds = %6036
  %6065 = load i32, ptr @test_count, align 4, !tbaa !5
  %6066 = add nsw i32 %6065, 1
  store i32 %6066, ptr @test_count, align 4, !tbaa !5
  %6067 = call i32 @s2n_stuffer_wipe_n(ptr noundef nonnull %41, i32 noundef 1) #10
  %6068 = icmp eq i32 %6067, -1
  br i1 %6068, label %6069, label %6093

6069:                                             ; preds = %6064
  %6070 = tail call ptr @__errno_location() #11
  %6071 = load i32, ptr %6070, align 4, !tbaa !5
  %6072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6073 = call i32 @s2n_print_stacktrace(ptr noundef %6072) #10
  %6074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6075 = trunc nuw i8 %6074 to i1
  br i1 %6075, label %6076, label %6080

6076:                                             ; preds = %6069
  %6077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6078 = call i32 @fileno(ptr noundef %6077) #10
  %6079 = call i32 @isatty(i32 noundef %6078) #10
  %.not740 = icmp eq i32 %6079, 0
  br i1 %.not740, label %6080, label %6081

6080:                                             ; preds = %6076, %6069
  br label %6081

6081:                                             ; preds = %6076, %6080
  %.str.5.sink3164 = phi ptr [ @.str.5, %6080 ], [ @.str.2, %6076 ]
  store i32 %6071, ptr %6070, align 4, !tbaa !5
  %6082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6083 = load i32, ptr @test_count, align 4, !tbaa !5
  %6084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6085 = load i32, ptr %6084, align 4, !tbaa !5
  %6086 = call ptr @s2n_strerror(i32 noundef %6085, ptr noundef nonnull @.str.4) #10
  %6087 = load i32, ptr %6084, align 4, !tbaa !5
  %6088 = call ptr @s2n_strerror_debug(i32 noundef %6087, ptr noundef nonnull @.str.4) #10
  %6089 = load i32, ptr %6070, align 4, !tbaa !5
  %6090 = call ptr @strerror(i32 noundef %6089) #10
  %6091 = load i32, ptr %6070, align 4, !tbaa !5
  %6092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6082, ptr noundef nonnull %.str.5.sink3164, i32 noundef %6083, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 503, ptr noundef %6086, ptr noundef %6088, ptr noundef %6090, i32 noundef %6091) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6093:                                             ; preds = %6064
  %6094 = load i32, ptr @test_count, align 4, !tbaa !5
  %6095 = add nsw i32 %6094, 1
  store i32 %6095, ptr @test_count, align 4, !tbaa !5
  %6096 = getelementptr inbounds i8, ptr %5923, i64 656
  %6097 = load ptr, ptr %6096, align 8, !tbaa !72
  %6098 = icmp eq ptr %6097, null
  br i1 %6098, label %6123, label %6099

6099:                                             ; preds = %6093
  %6100 = tail call ptr @__errno_location() #11
  %6101 = load i32, ptr %6100, align 4, !tbaa !5
  %6102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6103 = call i32 @s2n_print_stacktrace(ptr noundef %6102) #10
  %6104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6105 = trunc nuw i8 %6104 to i1
  br i1 %6105, label %6106, label %6110

6106:                                             ; preds = %6099
  %6107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6108 = call i32 @fileno(ptr noundef %6107) #10
  %6109 = call i32 @isatty(i32 noundef %6108) #10
  %.not718 = icmp eq i32 %6109, 0
  br i1 %.not718, label %6110, label %6111

6110:                                             ; preds = %6106, %6099
  br label %6111

6111:                                             ; preds = %6106, %6110
  %.str.5.sink3175 = phi ptr [ @.str.5, %6110 ], [ @.str.2, %6106 ]
  store i32 %6101, ptr %6100, align 4, !tbaa !5
  %6112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6113 = load i32, ptr @test_count, align 4, !tbaa !5
  %6114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6115 = load i32, ptr %6114, align 4, !tbaa !5
  %6116 = call ptr @s2n_strerror(i32 noundef %6115, ptr noundef nonnull @.str.4) #10
  %6117 = load i32, ptr %6114, align 4, !tbaa !5
  %6118 = call ptr @s2n_strerror_debug(i32 noundef %6117, ptr noundef nonnull @.str.4) #10
  %6119 = load i32, ptr %6100, align 4, !tbaa !5
  %6120 = call ptr @strerror(i32 noundef %6119) #10
  %6121 = load i32, ptr %6100, align 4, !tbaa !5
  %6122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6112, ptr noundef nonnull %.str.5.sink3175, i32 noundef %6113, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 505, ptr noundef %6116, ptr noundef %6118, ptr noundef %6120, i32 noundef %6121) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6123:                                             ; preds = %6093
  %6124 = add nsw i32 %6094, 2
  store i32 %6124, ptr @test_count, align 4, !tbaa !5
  %6125 = call i32 %2117(ptr noundef nonnull %5923, ptr noundef nonnull %41) #10
  %6126 = icmp eq i32 %6125, -1
  br i1 %6126, label %6127, label %6151

6127:                                             ; preds = %6123
  %6128 = tail call ptr @__errno_location() #11
  %6129 = load i32, ptr %6128, align 4, !tbaa !5
  %6130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6131 = call i32 @s2n_print_stacktrace(ptr noundef %6130) #10
  %6132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6133 = trunc nuw i8 %6132 to i1
  br i1 %6133, label %6134, label %6138

6134:                                             ; preds = %6127
  %6135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6136 = call i32 @fileno(ptr noundef %6135) #10
  %6137 = call i32 @isatty(i32 noundef %6136) #10
  %.not739 = icmp eq i32 %6137, 0
  br i1 %.not739, label %6138, label %6139

6138:                                             ; preds = %6134, %6127
  br label %6139

6139:                                             ; preds = %6134, %6138
  %.str.5.sink3186 = phi ptr [ @.str.5, %6138 ], [ @.str.2, %6134 ]
  store i32 %6129, ptr %6128, align 4, !tbaa !5
  %6140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6141 = load i32, ptr @test_count, align 4, !tbaa !5
  %6142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6143 = load i32, ptr %6142, align 4, !tbaa !5
  %6144 = call ptr @s2n_strerror(i32 noundef %6143, ptr noundef nonnull @.str.4) #10
  %6145 = load i32, ptr %6142, align 4, !tbaa !5
  %6146 = call ptr @s2n_strerror_debug(i32 noundef %6145, ptr noundef nonnull @.str.4) #10
  %6147 = load i32, ptr %6128, align 4, !tbaa !5
  %6148 = call ptr @strerror(i32 noundef %6147) #10
  %6149 = load i32, ptr %6128, align 4, !tbaa !5
  %6150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6140, ptr noundef nonnull %.str.5.sink3186, i32 noundef %6141, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 506, ptr noundef %6144, ptr noundef %6146, ptr noundef %6148, i32 noundef %6149) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6151:                                             ; preds = %6123
  %6152 = load i32, ptr @test_count, align 4, !tbaa !5
  %6153 = add nsw i32 %6152, 1
  store i32 %6153, ptr @test_count, align 4, !tbaa !5
  %6154 = load ptr, ptr %6096, align 8, !tbaa !72
  %6155 = icmp eq ptr %6154, null
  br i1 %6155, label %6180, label %6156

6156:                                             ; preds = %6151
  %6157 = tail call ptr @__errno_location() #11
  %6158 = load i32, ptr %6157, align 4, !tbaa !5
  %6159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6160 = call i32 @s2n_print_stacktrace(ptr noundef %6159) #10
  %6161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6162 = trunc nuw i8 %6161 to i1
  br i1 %6162, label %6163, label %6167

6163:                                             ; preds = %6156
  %6164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6165 = call i32 @fileno(ptr noundef %6164) #10
  %6166 = call i32 @isatty(i32 noundef %6165) #10
  %.not719 = icmp eq i32 %6166, 0
  br i1 %.not719, label %6167, label %6168

6167:                                             ; preds = %6163, %6156
  br label %6168

6168:                                             ; preds = %6163, %6167
  %.str.5.sink3197 = phi ptr [ @.str.5, %6167 ], [ @.str.2, %6163 ]
  store i32 %6158, ptr %6157, align 4, !tbaa !5
  %6169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6170 = load i32, ptr @test_count, align 4, !tbaa !5
  %6171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6172 = load i32, ptr %6171, align 4, !tbaa !5
  %6173 = call ptr @s2n_strerror(i32 noundef %6172, ptr noundef nonnull @.str.4) #10
  %6174 = load i32, ptr %6171, align 4, !tbaa !5
  %6175 = call ptr @s2n_strerror_debug(i32 noundef %6174, ptr noundef nonnull @.str.4) #10
  %6176 = load i32, ptr %6157, align 4, !tbaa !5
  %6177 = call ptr @strerror(i32 noundef %6176) #10
  %6178 = load i32, ptr %6157, align 4, !tbaa !5
  %6179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6169, ptr noundef nonnull %.str.5.sink3197, i32 noundef %6170, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 507, ptr noundef %6173, ptr noundef %6175, ptr noundef %6177, i32 noundef %6178) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6180:                                             ; preds = %6151
  %6181 = add nsw i32 %6152, 2
  store i32 %6181, ptr @test_count, align 4, !tbaa !5
  %6182 = getelementptr inbounds i8, ptr %5923, i64 720
  %6183 = load ptr, ptr %6182, align 8, !tbaa !73
  %6184 = icmp eq ptr %6183, null
  br i1 %6184, label %6209, label %6185

6185:                                             ; preds = %6180
  %6186 = tail call ptr @__errno_location() #11
  %6187 = load i32, ptr %6186, align 4, !tbaa !5
  %6188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6189 = call i32 @s2n_print_stacktrace(ptr noundef %6188) #10
  %6190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6191 = trunc nuw i8 %6190 to i1
  br i1 %6191, label %6192, label %6196

6192:                                             ; preds = %6185
  %6193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6194 = call i32 @fileno(ptr noundef %6193) #10
  %6195 = call i32 @isatty(i32 noundef %6194) #10
  %.not720 = icmp eq i32 %6195, 0
  br i1 %.not720, label %6196, label %6197

6196:                                             ; preds = %6192, %6185
  br label %6197

6197:                                             ; preds = %6192, %6196
  %.str.5.sink3208 = phi ptr [ @.str.5, %6196 ], [ @.str.2, %6192 ]
  store i32 %6187, ptr %6186, align 4, !tbaa !5
  %6198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6199 = load i32, ptr @test_count, align 4, !tbaa !5
  %6200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6201 = load i32, ptr %6200, align 4, !tbaa !5
  %6202 = call ptr @s2n_strerror(i32 noundef %6201, ptr noundef nonnull @.str.4) #10
  %6203 = load i32, ptr %6200, align 4, !tbaa !5
  %6204 = call ptr @s2n_strerror_debug(i32 noundef %6203, ptr noundef nonnull @.str.4) #10
  %6205 = load i32, ptr %6186, align 4, !tbaa !5
  %6206 = call ptr @strerror(i32 noundef %6205) #10
  %6207 = load i32, ptr %6186, align 4, !tbaa !5
  %6208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6198, ptr noundef nonnull %.str.5.sink3208, i32 noundef %6199, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 508, ptr noundef %6202, ptr noundef %6204, ptr noundef %6206, i32 noundef %6207) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6209:                                             ; preds = %6180
  %6210 = add nsw i32 %6152, 3
  store i32 %6210, ptr @test_count, align 4, !tbaa !5
  %6211 = getelementptr inbounds i8, ptr %5923, i64 816
  %6212 = load ptr, ptr %6211, align 8, !tbaa !74
  %6213 = icmp eq ptr %6212, null
  br i1 %6213, label %6238, label %6214

6214:                                             ; preds = %6209
  %6215 = tail call ptr @__errno_location() #11
  %6216 = load i32, ptr %6215, align 4, !tbaa !5
  %6217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6218 = call i32 @s2n_print_stacktrace(ptr noundef %6217) #10
  %6219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6220 = trunc nuw i8 %6219 to i1
  br i1 %6220, label %6221, label %6225

6221:                                             ; preds = %6214
  %6222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6223 = call i32 @fileno(ptr noundef %6222) #10
  %6224 = call i32 @isatty(i32 noundef %6223) #10
  %.not721 = icmp eq i32 %6224, 0
  br i1 %.not721, label %6225, label %6226

6225:                                             ; preds = %6221, %6214
  br label %6226

6226:                                             ; preds = %6221, %6225
  %.str.5.sink3219 = phi ptr [ @.str.5, %6225 ], [ @.str.2, %6221 ]
  store i32 %6216, ptr %6215, align 4, !tbaa !5
  %6227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6228 = load i32, ptr @test_count, align 4, !tbaa !5
  %6229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6230 = load i32, ptr %6229, align 4, !tbaa !5
  %6231 = call ptr @s2n_strerror(i32 noundef %6230, ptr noundef nonnull @.str.4) #10
  %6232 = load i32, ptr %6229, align 4, !tbaa !5
  %6233 = call ptr @s2n_strerror_debug(i32 noundef %6232, ptr noundef nonnull @.str.4) #10
  %6234 = load i32, ptr %6215, align 4, !tbaa !5
  %6235 = call ptr @strerror(i32 noundef %6234) #10
  %6236 = load i32, ptr %6215, align 4, !tbaa !5
  %6237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6227, ptr noundef nonnull %.str.5.sink3219, i32 noundef %6228, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 509, ptr noundef %6231, ptr noundef %6233, ptr noundef %6235, i32 noundef %6236) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6238:                                             ; preds = %6209
  %6239 = add nsw i32 %6152, 4
  store i32 %6239, ptr @test_count, align 4, !tbaa !5
  %6240 = getelementptr inbounds i8, ptr %5923, i64 728
  %6241 = load ptr, ptr %6240, align 8, !tbaa !75
  %6242 = icmp eq ptr %6241, null
  br i1 %6242, label %6267, label %6243

6243:                                             ; preds = %6238
  %6244 = tail call ptr @__errno_location() #11
  %6245 = load i32, ptr %6244, align 4, !tbaa !5
  %6246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6247 = call i32 @s2n_print_stacktrace(ptr noundef %6246) #10
  %6248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6249 = trunc nuw i8 %6248 to i1
  br i1 %6249, label %6250, label %6254

6250:                                             ; preds = %6243
  %6251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6252 = call i32 @fileno(ptr noundef %6251) #10
  %6253 = call i32 @isatty(i32 noundef %6252) #10
  %.not722 = icmp eq i32 %6253, 0
  br i1 %.not722, label %6254, label %6255

6254:                                             ; preds = %6250, %6243
  br label %6255

6255:                                             ; preds = %6250, %6254
  %.str.5.sink3230 = phi ptr [ @.str.5, %6254 ], [ @.str.2, %6250 ]
  store i32 %6245, ptr %6244, align 4, !tbaa !5
  %6256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6257 = load i32, ptr @test_count, align 4, !tbaa !5
  %6258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6259 = load i32, ptr %6258, align 4, !tbaa !5
  %6260 = call ptr @s2n_strerror(i32 noundef %6259, ptr noundef nonnull @.str.4) #10
  %6261 = load i32, ptr %6258, align 4, !tbaa !5
  %6262 = call ptr @s2n_strerror_debug(i32 noundef %6261, ptr noundef nonnull @.str.4) #10
  %6263 = load i32, ptr %6244, align 4, !tbaa !5
  %6264 = call ptr @strerror(i32 noundef %6263) #10
  %6265 = load i32, ptr %6244, align 4, !tbaa !5
  %6266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6256, ptr noundef nonnull %.str.5.sink3230, i32 noundef %6257, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 510, ptr noundef %6260, ptr noundef %6262, ptr noundef %6264, i32 noundef %6265) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6267:                                             ; preds = %6238
  %6268 = add nsw i32 %6152, 5
  store i32 %6268, ptr @test_count, align 4, !tbaa !5
  %6269 = call i32 @s2n_stuffer_free(ptr noundef nonnull %41) #10
  %6270 = icmp eq i32 %6269, -1
  br i1 %6270, label %6271, label %6295

6271:                                             ; preds = %6267
  %6272 = tail call ptr @__errno_location() #11
  %6273 = load i32, ptr %6272, align 4, !tbaa !5
  %6274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6275 = call i32 @s2n_print_stacktrace(ptr noundef %6274) #10
  %6276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6277 = trunc nuw i8 %6276 to i1
  br i1 %6277, label %6278, label %6282

6278:                                             ; preds = %6271
  %6279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6280 = call i32 @fileno(ptr noundef %6279) #10
  %6281 = call i32 @isatty(i32 noundef %6280) #10
  %.not738 = icmp eq i32 %6281, 0
  br i1 %.not738, label %6282, label %6283

6282:                                             ; preds = %6278, %6271
  br label %6283

6283:                                             ; preds = %6278, %6282
  %.str.5.sink3241 = phi ptr [ @.str.5, %6282 ], [ @.str.2, %6278 ]
  store i32 %6273, ptr %6272, align 4, !tbaa !5
  %6284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6285 = load i32, ptr @test_count, align 4, !tbaa !5
  %6286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6287 = load i32, ptr %6286, align 4, !tbaa !5
  %6288 = call ptr @s2n_strerror(i32 noundef %6287, ptr noundef nonnull @.str.4) #10
  %6289 = load i32, ptr %6286, align 4, !tbaa !5
  %6290 = call ptr @s2n_strerror_debug(i32 noundef %6289, ptr noundef nonnull @.str.4) #10
  %6291 = load i32, ptr %6272, align 4, !tbaa !5
  %6292 = call ptr @strerror(i32 noundef %6291) #10
  %6293 = load i32, ptr %6272, align 4, !tbaa !5
  %6294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6284, ptr noundef nonnull %.str.5.sink3241, i32 noundef %6285, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 512, ptr noundef %6288, ptr noundef %6290, ptr noundef %6292, i32 noundef %6293) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6295:                                             ; preds = %6267
  %6296 = load i32, ptr @test_count, align 4, !tbaa !5
  %6297 = add nsw i32 %6296, 1
  store i32 %6297, ptr @test_count, align 4, !tbaa !5
  %6298 = call i32 @s2n_connection_free(ptr noundef nonnull %5923) #10
  %6299 = icmp eq i32 %6298, -1
  br i1 %6299, label %6300, label %6324

6300:                                             ; preds = %6295
  %6301 = tail call ptr @__errno_location() #11
  %6302 = load i32, ptr %6301, align 4, !tbaa !5
  %6303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6304 = call i32 @s2n_print_stacktrace(ptr noundef %6303) #10
  %6305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6306 = trunc nuw i8 %6305 to i1
  br i1 %6306, label %6307, label %6311

6307:                                             ; preds = %6300
  %6308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6309 = call i32 @fileno(ptr noundef %6308) #10
  %6310 = call i32 @isatty(i32 noundef %6309) #10
  %.not737 = icmp eq i32 %6310, 0
  br i1 %.not737, label %6311, label %6312

6311:                                             ; preds = %6307, %6300
  br label %6312

6312:                                             ; preds = %6307, %6311
  %.str.5.sink3252 = phi ptr [ @.str.5, %6311 ], [ @.str.2, %6307 ]
  store i32 %6302, ptr %6301, align 4, !tbaa !5
  %6313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6314 = load i32, ptr @test_count, align 4, !tbaa !5
  %6315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6316 = load i32, ptr %6315, align 4, !tbaa !5
  %6317 = call ptr @s2n_strerror(i32 noundef %6316, ptr noundef nonnull @.str.4) #10
  %6318 = load i32, ptr %6315, align 4, !tbaa !5
  %6319 = call ptr @s2n_strerror_debug(i32 noundef %6318, ptr noundef nonnull @.str.4) #10
  %6320 = load i32, ptr %6301, align 4, !tbaa !5
  %6321 = call ptr @strerror(i32 noundef %6320) #10
  %6322 = load i32, ptr %6301, align 4, !tbaa !5
  %6323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6313, ptr noundef nonnull %.str.5.sink3252, i32 noundef %6314, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 513, ptr noundef %6317, ptr noundef %6319, ptr noundef %6321, i32 noundef %6322) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6324:                                             ; preds = %6295
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %41) #10
  %6325 = load i32, ptr @test_count, align 4, !tbaa !5
  %6326 = add nsw i32 %6325, 1
  store i32 %6326, ptr @test_count, align 4, !tbaa !5
  %6327 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %6328 = icmp eq ptr %6327, null
  br i1 %6328, label %6329, label %6353

6329:                                             ; preds = %6324
  %6330 = tail call ptr @__errno_location() #11
  %6331 = load i32, ptr %6330, align 4, !tbaa !5
  %6332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6333 = call i32 @s2n_print_stacktrace(ptr noundef %6332) #10
  %6334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6335 = trunc nuw i8 %6334 to i1
  br i1 %6335, label %6336, label %6340

6336:                                             ; preds = %6329
  %6337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6338 = call i32 @fileno(ptr noundef %6337) #10
  %6339 = call i32 @isatty(i32 noundef %6338) #10
  %.not736 = icmp eq i32 %6339, 0
  br i1 %.not736, label %6340, label %6341

6340:                                             ; preds = %6336, %6329
  br label %6341

6341:                                             ; preds = %6336, %6340
  %.str.5.sink3263 = phi ptr [ @.str.5, %6340 ], [ @.str.2, %6336 ]
  store i32 %6331, ptr %6330, 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 nonnull @.str.4) #10
  %6347 = load i32, ptr %6344, align 4, !tbaa !5
  %6348 = call ptr @s2n_strerror_debug(i32 noundef %6347, ptr noundef nonnull @.str.4) #10
  %6349 = load i32, ptr %6330, align 4, !tbaa !5
  %6350 = call ptr @strerror(i32 noundef %6349) #10
  %6351 = load i32, ptr %6330, align 4, !tbaa !5
  %6352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6342, ptr noundef nonnull %.str.5.sink3263, i32 noundef %6343, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 524, ptr noundef %6346, ptr noundef %6348, ptr noundef %6350, i32 noundef %6351) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6353:                                             ; preds = %6324
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %43) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %43, i8 0, i64 40, i1 false)
  %6354 = load i32, ptr @test_count, align 4, !tbaa !5
  %6355 = add nsw i32 %6354, 1
  store i32 %6355, ptr @test_count, align 4, !tbaa !5
  %6356 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %43, i32 noundef 6) #10
  %6357 = icmp eq i32 %6356, -1
  br i1 %6357, label %6358, label %6382

6358:                                             ; preds = %6353
  %6359 = tail call ptr @__errno_location() #11
  %6360 = load i32, ptr %6359, align 4, !tbaa !5
  %6361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6362 = call i32 @s2n_print_stacktrace(ptr noundef %6361) #10
  %6363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6364 = trunc nuw i8 %6363 to i1
  br i1 %6364, label %6365, label %6369

6365:                                             ; preds = %6358
  %6366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6367 = call i32 @fileno(ptr noundef %6366) #10
  %6368 = call i32 @isatty(i32 noundef %6367) #10
  %.not735 = icmp eq i32 %6368, 0
  br i1 %.not735, label %6369, label %6370

6369:                                             ; preds = %6365, %6358
  br label %6370

6370:                                             ; preds = %6365, %6369
  %.str.5.sink3274 = phi ptr [ @.str.5, %6369 ], [ @.str.2, %6365 ]
  store i32 %6360, ptr %6359, align 4, !tbaa !5
  %6371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6372 = load i32, ptr @test_count, align 4, !tbaa !5
  %6373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6374 = load i32, ptr %6373, align 4, !tbaa !5
  %6375 = call ptr @s2n_strerror(i32 noundef %6374, ptr noundef nonnull @.str.4) #10
  %6376 = load i32, ptr %6373, align 4, !tbaa !5
  %6377 = call ptr @s2n_strerror_debug(i32 noundef %6376, ptr noundef nonnull @.str.4) #10
  %6378 = load i32, ptr %6359, align 4, !tbaa !5
  %6379 = call ptr @strerror(i32 noundef %6378) #10
  %6380 = load i32, ptr %6359, align 4, !tbaa !5
  %6381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6371, ptr noundef nonnull %.str.5.sink3274, i32 noundef %6372, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 527, ptr noundef %6375, ptr noundef %6377, ptr noundef %6379, i32 noundef %6380) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6382:                                             ; preds = %6353
  %6383 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %43, i16 noundef zeroext 4) #10
  %6384 = icmp sgt i32 %6383, -1
  br i1 %6384, label %.preheader.preheader, label %.thread899

.preheader.preheader:                             ; preds = %6382
  %6385 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %43, i16 noundef zeroext 0) #10
  %6386 = icmp sgt i32 %6385, -1
  br i1 %6386, label %.preheader.1, label %.thread899

.preheader.1:                                     ; preds = %.preheader.preheader
  %6387 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %43, i16 noundef zeroext -255) #10
  %6388 = icmp sgt i32 %6387, -1
  br i1 %6388, label %6389, label %.thread899

6389:                                             ; preds = %.preheader.1
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %44, i8 0, i64 32, i1 false)
  %6390 = getelementptr inbounds i8, ptr %6327, i64 656
  store ptr %44, ptr %6390, align 8, !tbaa !72
  %6391 = load i32, ptr @test_count, align 4, !tbaa !5
  %6392 = add nsw i32 %6391, 1
  store i32 %6392, ptr @test_count, align 4, !tbaa !5
  %6393 = call i32 %2117(ptr noundef nonnull %6327, ptr noundef nonnull %43) #10
  %6394 = icmp eq i32 %6393, -1
  br i1 %6394, label %6395, label %6419

6395:                                             ; preds = %6389
  %6396 = tail call ptr @__errno_location() #11
  %6397 = load i32, ptr %6396, align 4, !tbaa !5
  %6398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6399 = call i32 @s2n_print_stacktrace(ptr noundef %6398) #10
  %6400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6401 = trunc nuw i8 %6400 to i1
  br i1 %6401, label %6402, label %6406

6402:                                             ; preds = %6395
  %6403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6404 = call i32 @fileno(ptr noundef %6403) #10
  %6405 = call i32 @isatty(i32 noundef %6404) #10
  %.not734 = icmp eq i32 %6405, 0
  br i1 %.not734, label %6406, label %6407

6406:                                             ; preds = %6402, %6395
  br label %6407

6407:                                             ; preds = %6402, %6406
  %.str.5.sink3285 = phi ptr [ @.str.5, %6406 ], [ @.str.2, %6402 ]
  store i32 %6397, ptr %6396, align 4, !tbaa !5
  %6408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6409 = load i32, ptr @test_count, align 4, !tbaa !5
  %6410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6411 = load i32, ptr %6410, align 4, !tbaa !5
  %6412 = call ptr @s2n_strerror(i32 noundef %6411, ptr noundef nonnull @.str.4) #10
  %6413 = load i32, ptr %6410, align 4, !tbaa !5
  %6414 = call ptr @s2n_strerror_debug(i32 noundef %6413, ptr noundef nonnull @.str.4) #10
  %6415 = load i32, ptr %6396, align 4, !tbaa !5
  %6416 = call ptr @strerror(i32 noundef %6415) #10
  %6417 = load i32, ptr %6396, align 4, !tbaa !5
  %6418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6408, ptr noundef nonnull %.str.5.sink3285, i32 noundef %6409, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 536, ptr noundef %6412, ptr noundef %6414, ptr noundef %6416, i32 noundef %6417) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6419:                                             ; preds = %6389
  %6420 = load i32, ptr @test_count, align 4, !tbaa !5
  %6421 = add nsw i32 %6420, 1
  store i32 %6421, ptr @test_count, align 4, !tbaa !5
  %6422 = load ptr, ptr %6390, align 8, !tbaa !72
  %6423 = icmp eq ptr %6422, null
  br i1 %6423, label %6448, label %6424

6424:                                             ; preds = %6419
  %6425 = tail call ptr @__errno_location() #11
  %6426 = load i32, ptr %6425, align 4, !tbaa !5
  %6427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6428 = call i32 @s2n_print_stacktrace(ptr noundef %6427) #10
  %6429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6430 = trunc nuw i8 %6429 to i1
  br i1 %6430, label %6431, label %6435

6431:                                             ; preds = %6424
  %6432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6433 = call i32 @fileno(ptr noundef %6432) #10
  %6434 = call i32 @isatty(i32 noundef %6433) #10
  %.not723 = icmp eq i32 %6434, 0
  br i1 %.not723, label %6435, label %6436

6435:                                             ; preds = %6431, %6424
  br label %6436

6436:                                             ; preds = %6431, %6435
  %.str.5.sink3296 = phi ptr [ @.str.5, %6435 ], [ @.str.2, %6431 ]
  store i32 %6426, ptr %6425, align 4, !tbaa !5
  %6437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6438 = load i32, ptr @test_count, align 4, !tbaa !5
  %6439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6440 = load i32, ptr %6439, align 4, !tbaa !5
  %6441 = call ptr @s2n_strerror(i32 noundef %6440, ptr noundef nonnull @.str.4) #10
  %6442 = load i32, ptr %6439, align 4, !tbaa !5
  %6443 = call ptr @s2n_strerror_debug(i32 noundef %6442, ptr noundef nonnull @.str.4) #10
  %6444 = load i32, ptr %6425, align 4, !tbaa !5
  %6445 = call ptr @strerror(i32 noundef %6444) #10
  %6446 = load i32, ptr %6425, align 4, !tbaa !5
  %6447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6437, ptr noundef nonnull %.str.5.sink3296, i32 noundef %6438, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 537, ptr noundef %6441, ptr noundef %6443, ptr noundef %6445, i32 noundef %6446) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6448:                                             ; preds = %6419
  %6449 = add nsw i32 %6420, 2
  store i32 %6449, ptr @test_count, align 4, !tbaa !5
  %6450 = getelementptr inbounds i8, ptr %6327, i64 720
  %6451 = load ptr, ptr %6450, align 8, !tbaa !73
  %6452 = icmp eq ptr %6451, null
  br i1 %6452, label %6477, label %6453

6453:                                             ; preds = %6448
  %6454 = tail call ptr @__errno_location() #11
  %6455 = load i32, ptr %6454, align 4, !tbaa !5
  %6456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6457 = call i32 @s2n_print_stacktrace(ptr noundef %6456) #10
  %6458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6459 = trunc nuw i8 %6458 to i1
  br i1 %6459, label %6460, label %6464

6460:                                             ; preds = %6453
  %6461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6462 = call i32 @fileno(ptr noundef %6461) #10
  %6463 = call i32 @isatty(i32 noundef %6462) #10
  %.not724 = icmp eq i32 %6463, 0
  br i1 %.not724, label %6464, label %6465

6464:                                             ; preds = %6460, %6453
  br label %6465

6465:                                             ; preds = %6460, %6464
  %.str.5.sink3307 = phi ptr [ @.str.5, %6464 ], [ @.str.2, %6460 ]
  store i32 %6455, ptr %6454, align 4, !tbaa !5
  %6466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6467 = load i32, ptr @test_count, align 4, !tbaa !5
  %6468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6469 = load i32, ptr %6468, align 4, !tbaa !5
  %6470 = call ptr @s2n_strerror(i32 noundef %6469, ptr noundef nonnull @.str.4) #10
  %6471 = load i32, ptr %6468, align 4, !tbaa !5
  %6472 = call ptr @s2n_strerror_debug(i32 noundef %6471, ptr noundef nonnull @.str.4) #10
  %6473 = load i32, ptr %6454, align 4, !tbaa !5
  %6474 = call ptr @strerror(i32 noundef %6473) #10
  %6475 = load i32, ptr %6454, align 4, !tbaa !5
  %6476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6466, ptr noundef nonnull %.str.5.sink3307, i32 noundef %6467, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 538, ptr noundef %6470, ptr noundef %6472, ptr noundef %6474, i32 noundef %6475) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6477:                                             ; preds = %6448
  %6478 = add nsw i32 %6420, 3
  store i32 %6478, ptr @test_count, align 4, !tbaa !5
  %6479 = getelementptr inbounds i8, ptr %6327, i64 816
  %6480 = load ptr, ptr %6479, align 8, !tbaa !74
  %6481 = icmp eq ptr %6480, null
  br i1 %6481, label %6506, label %6482

6482:                                             ; preds = %6477
  %6483 = tail call ptr @__errno_location() #11
  %6484 = load i32, ptr %6483, align 4, !tbaa !5
  %6485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6486 = call i32 @s2n_print_stacktrace(ptr noundef %6485) #10
  %6487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6488 = trunc nuw i8 %6487 to i1
  br i1 %6488, label %6489, label %6493

6489:                                             ; preds = %6482
  %6490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6491 = call i32 @fileno(ptr noundef %6490) #10
  %6492 = call i32 @isatty(i32 noundef %6491) #10
  %.not725 = icmp eq i32 %6492, 0
  br i1 %.not725, label %6493, label %6494

6493:                                             ; preds = %6489, %6482
  br label %6494

6494:                                             ; preds = %6489, %6493
  %.str.5.sink3318 = phi ptr [ @.str.5, %6493 ], [ @.str.2, %6489 ]
  store i32 %6484, ptr %6483, align 4, !tbaa !5
  %6495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6496 = load i32, ptr @test_count, align 4, !tbaa !5
  %6497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6498 = load i32, ptr %6497, align 4, !tbaa !5
  %6499 = call ptr @s2n_strerror(i32 noundef %6498, ptr noundef nonnull @.str.4) #10
  %6500 = load i32, ptr %6497, align 4, !tbaa !5
  %6501 = call ptr @s2n_strerror_debug(i32 noundef %6500, ptr noundef nonnull @.str.4) #10
  %6502 = load i32, ptr %6483, align 4, !tbaa !5
  %6503 = call ptr @strerror(i32 noundef %6502) #10
  %6504 = load i32, ptr %6483, align 4, !tbaa !5
  %6505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6495, ptr noundef nonnull %.str.5.sink3318, i32 noundef %6496, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 539, ptr noundef %6499, ptr noundef %6501, ptr noundef %6503, i32 noundef %6504) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6506:                                             ; preds = %6477
  %6507 = add nsw i32 %6420, 4
  store i32 %6507, ptr @test_count, align 4, !tbaa !5
  %6508 = getelementptr inbounds i8, ptr %6327, i64 728
  %6509 = load ptr, ptr %6508, align 8, !tbaa !75
  %6510 = icmp eq ptr %6509, null
  br i1 %6510, label %6535, label %6511

6511:                                             ; preds = %6506
  %6512 = tail call ptr @__errno_location() #11
  %6513 = load i32, ptr %6512, align 4, !tbaa !5
  %6514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6515 = call i32 @s2n_print_stacktrace(ptr noundef %6514) #10
  %6516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6517 = trunc nuw i8 %6516 to i1
  br i1 %6517, label %6518, label %6522

6518:                                             ; preds = %6511
  %6519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6520 = call i32 @fileno(ptr noundef %6519) #10
  %6521 = call i32 @isatty(i32 noundef %6520) #10
  %.not726 = icmp eq i32 %6521, 0
  br i1 %.not726, label %6522, label %6523

6522:                                             ; preds = %6518, %6511
  br label %6523

6523:                                             ; preds = %6518, %6522
  %.str.5.sink3329 = phi ptr [ @.str.5, %6522 ], [ @.str.2, %6518 ]
  store i32 %6513, ptr %6512, align 4, !tbaa !5
  %6524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6525 = load i32, ptr @test_count, align 4, !tbaa !5
  %6526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6527 = load i32, ptr %6526, align 4, !tbaa !5
  %6528 = call ptr @s2n_strerror(i32 noundef %6527, ptr noundef nonnull @.str.4) #10
  %6529 = load i32, ptr %6526, align 4, !tbaa !5
  %6530 = call ptr @s2n_strerror_debug(i32 noundef %6529, ptr noundef nonnull @.str.4) #10
  %6531 = load i32, ptr %6512, align 4, !tbaa !5
  %6532 = call ptr @strerror(i32 noundef %6531) #10
  %6533 = load i32, ptr %6512, align 4, !tbaa !5
  %6534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6524, ptr noundef nonnull %.str.5.sink3329, i32 noundef %6525, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 540, ptr noundef %6528, ptr noundef %6530, ptr noundef %6532, i32 noundef %6533) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6535:                                             ; preds = %6506
  %6536 = add nsw i32 %6420, 5
  store i32 %6536, ptr @test_count, align 4, !tbaa !5
  %6537 = call i32 @s2n_stuffer_free(ptr noundef nonnull %43) #10
  %6538 = icmp eq i32 %6537, -1
  br i1 %6538, label %6539, label %6563

6539:                                             ; preds = %6535
  %6540 = tail call ptr @__errno_location() #11
  %6541 = load i32, ptr %6540, align 4, !tbaa !5
  %6542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6543 = call i32 @s2n_print_stacktrace(ptr noundef %6542) #10
  %6544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6545 = trunc nuw i8 %6544 to i1
  br i1 %6545, label %6546, label %6550

6546:                                             ; preds = %6539
  %6547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6548 = call i32 @fileno(ptr noundef %6547) #10
  %6549 = call i32 @isatty(i32 noundef %6548) #10
  %.not733 = icmp eq i32 %6549, 0
  br i1 %.not733, label %6550, label %6551

6550:                                             ; preds = %6546, %6539
  br label %6551

6551:                                             ; preds = %6546, %6550
  %.str.5.sink3340 = phi ptr [ @.str.5, %6550 ], [ @.str.2, %6546 ]
  store i32 %6541, ptr %6540, align 4, !tbaa !5
  %6552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6553 = load i32, ptr @test_count, align 4, !tbaa !5
  %6554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6555 = load i32, ptr %6554, align 4, !tbaa !5
  %6556 = call ptr @s2n_strerror(i32 noundef %6555, ptr noundef nonnull @.str.4) #10
  %6557 = load i32, ptr %6554, align 4, !tbaa !5
  %6558 = call ptr @s2n_strerror_debug(i32 noundef %6557, ptr noundef nonnull @.str.4) #10
  %6559 = load i32, ptr %6540, align 4, !tbaa !5
  %6560 = call ptr @strerror(i32 noundef %6559) #10
  %6561 = load i32, ptr %6540, align 4, !tbaa !5
  %6562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6552, ptr noundef nonnull %.str.5.sink3340, i32 noundef %6553, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 542, ptr noundef %6556, ptr noundef %6558, ptr noundef %6560, i32 noundef %6561) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6563:                                             ; preds = %6535
  %6564 = load i32, ptr @test_count, align 4, !tbaa !5
  %6565 = add nsw i32 %6564, 1
  store i32 %6565, ptr @test_count, align 4, !tbaa !5
  %6566 = call i32 @s2n_connection_free(ptr noundef nonnull %6327) #10
  %6567 = icmp eq i32 %6566, -1
  br i1 %6567, label %6568, label %6592

6568:                                             ; preds = %6563
  %6569 = tail call ptr @__errno_location() #11
  %6570 = load i32, ptr %6569, align 4, !tbaa !5
  %6571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6572 = call i32 @s2n_print_stacktrace(ptr noundef %6571) #10
  %6573 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6574 = trunc nuw i8 %6573 to i1
  br i1 %6574, label %6575, label %6579

6575:                                             ; preds = %6568
  %6576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6577 = call i32 @fileno(ptr noundef %6576) #10
  %6578 = call i32 @isatty(i32 noundef %6577) #10
  %.not732 = icmp eq i32 %6578, 0
  br i1 %.not732, label %6579, label %6580

6579:                                             ; preds = %6575, %6568
  br label %6580

6580:                                             ; preds = %6575, %6579
  %.str.5.sink3351 = phi ptr [ @.str.5, %6579 ], [ @.str.2, %6575 ]
  store i32 %6570, ptr %6569, align 4, !tbaa !5
  %6581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6582 = load i32, ptr @test_count, align 4, !tbaa !5
  %6583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6584 = load i32, ptr %6583, align 4, !tbaa !5
  %6585 = call ptr @s2n_strerror(i32 noundef %6584, ptr noundef nonnull @.str.4) #10
  %6586 = load i32, ptr %6583, align 4, !tbaa !5
  %6587 = call ptr @s2n_strerror_debug(i32 noundef %6586, ptr noundef nonnull @.str.4) #10
  %6588 = load i32, ptr %6569, align 4, !tbaa !5
  %6589 = call ptr @strerror(i32 noundef %6588) #10
  %6590 = load i32, ptr %6569, align 4, !tbaa !5
  %6591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6581, ptr noundef nonnull %.str.5.sink3351, i32 noundef %6582, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 543, ptr noundef %6585, ptr noundef %6587, ptr noundef %6589, i32 noundef %6590) #12
  call void @exit(i32 noundef 1) #13
  unreachable

.thread899:                                       ; preds = %.preheader.preheader, %.preheader.1, %6382
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %43) #10
  br label %6667

6592:                                             ; preds = %6563
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %43) #10
  %6593 = call i32 @s2n_cleanup() #10
  %6594 = icmp eq i32 %6593, -1
  br i1 %6594, label %6595, label %6619

6595:                                             ; preds = %6592
  %6596 = tail call ptr @__errno_location() #11
  %6597 = load i32, ptr %6596, align 4, !tbaa !5
  %6598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6599 = call i32 @s2n_print_stacktrace(ptr noundef %6598) #10
  %6600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6601 = trunc nuw i8 %6600 to i1
  br i1 %6601, label %6602, label %6606

6602:                                             ; preds = %6595
  %6603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6604 = call i32 @fileno(ptr noundef %6603) #10
  %6605 = call i32 @isatty(i32 noundef %6604) #10
  %.not731 = icmp eq i32 %6605, 0
  br i1 %.not731, label %6606, label %6607

6606:                                             ; preds = %6602, %6595
  br label %6607

6607:                                             ; preds = %6602, %6606
  %.str.5.sink3362 = phi ptr [ @.str.5, %6606 ], [ @.str.2, %6602 ]
  store i32 %6597, ptr %6596, align 4, !tbaa !5
  %6608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6609 = load i32, ptr @test_count, align 4, !tbaa !5
  %6610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6611 = load i32, ptr %6610, align 4, !tbaa !5
  %6612 = call ptr @s2n_strerror(i32 noundef %6611, ptr noundef nonnull @.str.4) #10
  %6613 = load i32, ptr %6610, align 4, !tbaa !5
  %6614 = call ptr @s2n_strerror_debug(i32 noundef %6613, ptr noundef nonnull @.str.4) #10
  %6615 = load i32, ptr %6596, align 4, !tbaa !5
  %6616 = call ptr @strerror(i32 noundef %6615) #10
  %6617 = load i32, ptr %6596, align 4, !tbaa !5
  %6618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6608, ptr noundef nonnull %.str.5.sink3362, i32 noundef %6609, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 546, ptr noundef %6612, ptr noundef %6614, ptr noundef %6616, i32 noundef %6617) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6619:                                             ; preds = %6592
  %6620 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %6621 = icmp eq i32 %6620, -1
  br i1 %6621, label %6622, label %6646

6622:                                             ; preds = %6619
  %6623 = tail call ptr @__errno_location() #11
  %6624 = load i32, ptr %6623, align 4, !tbaa !5
  %6625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6626 = call i32 @s2n_print_stacktrace(ptr noundef %6625) #10
  %6627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6628 = trunc nuw i8 %6627 to i1
  br i1 %6628, label %6629, label %6633

6629:                                             ; preds = %6622
  %6630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6631 = call i32 @fileno(ptr noundef %6630) #10
  %6632 = call i32 @isatty(i32 noundef %6631) #10
  %.not730 = icmp eq i32 %6632, 0
  br i1 %.not730, label %6633, label %6634

6633:                                             ; preds = %6629, %6622
  br label %6634

6634:                                             ; preds = %6629, %6633
  %.str.5.sink3373 = phi ptr [ @.str.5, %6633 ], [ @.str.2, %6629 ]
  store i32 %6624, ptr %6623, align 4, !tbaa !5
  %6635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6636 = load i32, ptr @test_count, align 4, !tbaa !5
  %6637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6638 = load i32, ptr %6637, align 4, !tbaa !5
  %6639 = call ptr @s2n_strerror(i32 noundef %6638, ptr noundef nonnull @.str.4) #10
  %6640 = load i32, ptr %6637, align 4, !tbaa !5
  %6641 = call ptr @s2n_strerror_debug(i32 noundef %6640, ptr noundef nonnull @.str.4) #10
  %6642 = load i32, ptr %6623, align 4, !tbaa !5
  %6643 = call ptr @strerror(i32 noundef %6642) #10
  %6644 = load i32, ptr %6623, align 4, !tbaa !5
  %6645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6635, ptr noundef nonnull %.str.5.sink3373, i32 noundef %6636, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 546, ptr noundef %6639, ptr noundef %6641, ptr noundef %6643, i32 noundef %6644) #12
  call void @exit(i32 noundef 1) #13
  unreachable

6646:                                             ; preds = %6619
  %6647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6648 = trunc nuw i8 %6647 to i1
  br i1 %6648, label %6649, label %6660

6649:                                             ; preds = %6646
  %6650 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6651 = call i32 @fileno(ptr noundef %6650) #10
  %6652 = call i32 @isatty(i32 noundef %6651) #10
  %.not727 = icmp eq i32 %6652, 0
  br i1 %.not727, label %6660, label %6653

6653:                                             ; preds = %6649
  %6654 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not729 = icmp eq i32 %6654, 0
  %6655 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not729, label %6658, label %6656

6656:                                             ; preds = %6653
  %6657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6655, ptr noundef nonnull @.str.86, i32 noundef %6654) #10
  br label %6667

6658:                                             ; preds = %6653
  %6659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6655, ptr noundef nonnull @.str.87) #10
  br label %6667

6660:                                             ; preds = %6649, %6646
  %6661 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not728 = icmp eq i32 %6661, 0
  %6662 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not728, label %6665, label %6663

6663:                                             ; preds = %6660
  %6664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6662, ptr noundef nonnull @.str.88, i32 noundef %6661) #10
  br label %6667

6665:                                             ; preds = %6660
  %6666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6662, ptr noundef nonnull @.str.89) #10
  br label %6667

6667:                                             ; preds = %.thread899, %.thread890, %6658, %6656, %6665, %6663
  %.7 = phi i32 [ 0, %6663 ], [ 0, %6665 ], [ 0, %6656 ], [ 0, %6658 ], [ -1, %.thread890 ], [ -1, %.thread899 ]
  ret i32 %.7
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #4

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #2

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) local_unnamed_addr #5

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #7

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) 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 i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_get_ecc_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_get_kem_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_enable_tls13_in_test(...) local_unnamed_addr #2

declare zeroext i1 @s2n_pq_is_enabled() 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 zeroext i1 @s2n_kem_group_is_available(ptr noundef) local_unnamed_addr #2

declare zeroext i8 @s2n_connection_get_protocol_version(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_kem_preferences_get_highest_priority_group(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_reserve_uint16(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_vector_size(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_wipe_n(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { 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 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { cold nounwind }
attributes #13 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 24}
!16 = !{!"", !17, i64 0, !6, i64 2, !17, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!17 = !{!"short", !7, i64 0}
!18 = !{!16, !10, i64 8}
!19 = !{!17, !17, i64 0}
!20 = !{!21, !6, i64 28}
!21 = !{!"s2n_stuffer", !22, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!22 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!23 = !{!21, !6, i64 24}
!24 = !{!25, !7, i64 0}
!25 = !{!"s2n_ecc_preferences", !7, i64 0, !10, i64 8}
!26 = distinct !{!26, !27}
!27 = !{!"llvm.loop.mustprogress"}
!28 = !{!25, !10, i64 8}
!29 = !{!30, !17, i64 0}
!30 = !{!"s2n_ecc_named_curve", !17, i64 0, !6, i64 4, !10, i64 8, !7, i64 16, !10, i64 24}
!31 = !{!32, !7, i64 16}
!32 = !{!"s2n_kem_preferences", !7, i64 0, !10, i64 8, !7, i64 16, !10, i64 24, !7, i64 32}
!33 = !{!32, !10, i64 24}
!34 = !{!35, !7, i64 0}
!35 = !{!"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}
!36 = !{!35, !10, i64 8}
!37 = !{!35, !10, i64 16}
!38 = !{!35, !10, i64 24}
!39 = !{!35, !10, i64 32}
!40 = !{!35, !10, i64 40}
!41 = !{!35, !10, i64 48}
!42 = !{!35, !12, i64 56}
!43 = !{!44, !10, i64 16}
!44 = !{!"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, !45, i64 160, !46, i64 168, !46, 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, !47, i64 240, !10, i64 632, !10, i64 640, !48, i64 648, !53, i64 1144, !56, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !21, i64 1776, !21, i64 1816, !21, i64 1856, !21, i64 1896, !6, i64 1936, !46, i64 1944, !7, i64 1952, !21, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !58, i64 2004, !58, i64 2008, !59, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !46, i64 2224, !7, i64 2232, !46, i64 2240, !46, i64 2248, !46, i64 2256, !58, i64 2264, !58, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !22, i64 2792, !6, i64 2816, !22, i64 2824, !22, i64 2848, !22, i64 2872, !61, i64 2896, !63, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !22, i64 3784, !6, i64 3808, !65, i64 3816, !7, i64 3848, !21, i64 3992, !22, i64 4032, !22, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !22, i64 4096, !6, i64 4120, !66, i64 4128, !58, i64 4176, !7, i64 4180, !7, i64 4181}
!45 = !{!"s2n_timer", !46, i64 0}
!46 = !{!"long", !7, i64 0}
!47 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!48 = !{!"s2n_kex_parameters", !49, i64 0, !50, i64 8, !7, i64 24, !50, i64 56, !51, i64 72, !51, i64 184, !7, i64 296, !52, i64 360, !22, i64 448, !22, i64 472}
!49 = !{!"s2n_dh_params", !10, i64 0}
!50 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!51 = !{!"s2n_kem_group_params", !10, i64 0, !52, i64 8, !50, i64 96}
!52 = !{!"s2n_kem_params", !10, i64 0, !22, i64 8, !22, i64 32, !22, i64 56, !12, i64 80}
!53 = !{!"s2n_handshake_parameters", !54, i64 0, !54, i64 48, !22, i64 96, !6, i64 120, !55, 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}
!54 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!55 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!56 = !{!"s2n_psk_parameters", !6, i64 0, !57, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!57 = !{!"s2n_array", !22, i64 0, !6, i64 24, !6, i64 28}
!58 = !{!"", !6, i64 0}
!59 = !{!"s2n_handshake", !21, 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, !60, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!60 = !{!"s2n_offered_early_data", !10, i64 0}
!61 = !{!"s2n_client_hello", !22, i64 0, !62, i64 24, !22, i64 728, !22, i64 752, !22, 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}
!62 = !{!"", !7, i64 0, !22, i64 672, !17, i64 696}
!63 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !17, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !64, i64 48, !12, i64 52}
!64 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!65 = !{!"s2n_ticket_fields", !22, i64 0, !6, i64 24}
!66 = !{!"s2n_post_handshake", !21, i64 0, !7, i64 40}
!67 = !{!68, !17, i64 8}
!68 = !{!"s2n_kem_group", !10, i64 0, !17, i64 8, !10, i64 16, !10, i64 24, !12, i64 32}
!69 = distinct !{!69, !27}
!70 = distinct !{!70, !27}
!71 = distinct !{!71, !27}
!72 = !{!44, !10, i64 656}
!73 = !{!44, !10, i64 720}
!74 = !{!44, !10, i64 816}
!75 = !{!44, !10, i64 728}
!76 = !{!16, !10, i64 16}
!77 = distinct !{!77, !27}
!78 = !{!68, !10, i64 16}
!79 = !{!68, !10, i64 24}
!80 = distinct !{!80, !27}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,SROAPass,SimplifyCFGPass,TailCallElimPass