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

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [83 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 [89 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [129 x i8], align 1
@__const.main.send_msg_iov = external hidden unnamed_addr constant %struct.iovec, align 8
@.str.27 = external hidden unnamed_addr constant [147 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [76 x i8], align 1
@__const.main.send_msg_iov.30 = external hidden unnamed_addr constant %struct.iovec, align 8
@.str.31 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [25 x i8], align 1

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

412:                                              ; preds = %2
  br label %413

413:                                              ; preds = %412
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %414 = load ptr, ptr @stdout, align 8, !tbaa !9
  %415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %414, ptr noundef @.str, ptr noundef @.str.1) #11
  %416 = load ptr, ptr @stdout, align 8, !tbaa !9
  %417 = call i32 @fflush(ptr noundef %416)
  br label %418

418:                                              ; preds = %413
  %419 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %420 = icmp eq i32 %419, -1
  br i1 %420, label %421, label %472

421:                                              ; preds = %418
  br label %422

422:                                              ; preds = %421
  br label %423

423:                                              ; preds = %422
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %424 = call ptr @__errno_location() #12
  %425 = load i32, ptr %424, align 4, !tbaa !5
  store i32 %425, ptr %6, align 4, !tbaa !5
  %426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %427 = call i32 @s2n_print_stacktrace(ptr noundef %426)
  %428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %429 = trunc i8 %428 to i1
  br i1 %429, label %430, label %452

430:                                              ; preds = %423
  %431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %432 = call i32 @fileno(ptr noundef %431) #11
  %433 = call i32 @isatty(i32 noundef %432) #11
  %434 = icmp ne i32 %433, 0
  br i1 %434, label %435, label %452

435:                                              ; preds = %430
  %436 = load i32, ptr %6, align 4, !tbaa !5
  %437 = call ptr @__errno_location() #12
  store i32 %436, ptr %437, 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 @.str.4)
  %443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %444 = load i32, ptr %443, align 4, !tbaa !5
  %445 = call ptr @s2n_strerror_debug(i32 noundef %444, ptr noundef @.str.4)
  %446 = call ptr @__errno_location() #12
  %447 = load i32, ptr %446, align 4, !tbaa !5
  %448 = call ptr @strerror(i32 noundef %447) #11
  %449 = call ptr @__errno_location() #12
  %450 = load i32, ptr %449, align 4, !tbaa !5
  %451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %438, ptr noundef @.str.2, i32 noundef %439, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 32, ptr noundef %442, ptr noundef %445, ptr noundef %448, i32 noundef %450) #11
  br label %469

452:                                              ; preds = %430, %423
  %453 = load i32, ptr %6, align 4, !tbaa !5
  %454 = call ptr @__errno_location() #12
  store i32 %453, ptr %454, align 4, !tbaa !5
  %455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %456 = load i32, ptr @test_count, align 4, !tbaa !5
  %457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %458 = load i32, ptr %457, align 4, !tbaa !5
  %459 = call ptr @s2n_strerror(i32 noundef %458, ptr noundef @.str.4)
  %460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = call ptr @s2n_strerror_debug(i32 noundef %461, ptr noundef @.str.4)
  %463 = call ptr @__errno_location() #12
  %464 = load i32, ptr %463, align 4, !tbaa !5
  %465 = call ptr @strerror(i32 noundef %464) #11
  %466 = call ptr @__errno_location() #12
  %467 = load i32, ptr %466, align 4, !tbaa !5
  %468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %455, ptr noundef @.str.5, i32 noundef %456, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 32, ptr noundef %459, ptr noundef %462, ptr noundef %465, i32 noundef %467) #11
  br label %469

469:                                              ; preds = %452, %435
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %470

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

471:                                              ; No predecessors!
  br label %472

472:                                              ; preds = %471, %418
  br label %473

473:                                              ; preds = %472
  br label %474

474:                                              ; preds = %473
  %475 = load i32, ptr @test_count, align 4, !tbaa !5
  %476 = add nsw i32 %475, 1
  store i32 %476, ptr @test_count, align 4, !tbaa !5
  %477 = call i32 @s2n_enable_atexit()
  %478 = icmp eq i32 %477, -1
  br i1 %478, label %479, label %530

479:                                              ; preds = %474
  br label %480

480:                                              ; preds = %479
  br label %481

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

488:                                              ; preds = %481
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = call i32 @fileno(ptr noundef %489) #11
  %491 = call i32 @isatty(i32 noundef %490) #11
  %492 = icmp ne i32 %491, 0
  br i1 %492, label %493, label %510

493:                                              ; preds = %488
  %494 = load i32, ptr %7, align 4, !tbaa !5
  %495 = call ptr @__errno_location() #12
  store i32 %494, ptr %495, align 4, !tbaa !5
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %499 = load i32, ptr %498, align 4, !tbaa !5
  %500 = call ptr @s2n_strerror(i32 noundef %499, ptr noundef @.str.4)
  %501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %502 = load i32, ptr %501, align 4, !tbaa !5
  %503 = call ptr @s2n_strerror_debug(i32 noundef %502, ptr noundef @.str.4)
  %504 = call ptr @__errno_location() #12
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %506 = call ptr @strerror(i32 noundef %505) #11
  %507 = call ptr @__errno_location() #12
  %508 = load i32, ptr %507, align 4, !tbaa !5
  %509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %496, ptr noundef @.str.2, i32 noundef %497, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 32, ptr noundef %500, ptr noundef %503, ptr noundef %506, i32 noundef %508) #11
  br label %527

510:                                              ; preds = %488, %481
  %511 = load i32, ptr %7, align 4, !tbaa !5
  %512 = call ptr @__errno_location() #12
  store i32 %511, ptr %512, align 4, !tbaa !5
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = load i32, ptr @test_count, align 4, !tbaa !5
  %515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %516 = load i32, ptr %515, align 4, !tbaa !5
  %517 = call ptr @s2n_strerror(i32 noundef %516, ptr noundef @.str.4)
  %518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %519 = load i32, ptr %518, align 4, !tbaa !5
  %520 = call ptr @s2n_strerror_debug(i32 noundef %519, ptr noundef @.str.4)
  %521 = call ptr @__errno_location() #12
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = call ptr @strerror(i32 noundef %522) #11
  %524 = call ptr @__errno_location() #12
  %525 = load i32, ptr %524, align 4, !tbaa !5
  %526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %513, ptr noundef @.str.5, i32 noundef %514, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 32, ptr noundef %517, ptr noundef %520, ptr noundef %523, i32 noundef %525) #11
  br label %527

527:                                              ; preds = %510, %493
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %528

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

529:                                              ; No predecessors!
  br label %530

530:                                              ; preds = %529, %474
  br label %531

531:                                              ; preds = %530
  br label %532

532:                                              ; preds = %531
  br label %533

533:                                              ; preds = %532
  %534 = call i32 @s2n_init()
  %535 = icmp eq i32 %534, -1
  br i1 %535, label %536, label %587

536:                                              ; preds = %533
  br label %537

537:                                              ; preds = %536
  br label %538

538:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %539 = call ptr @__errno_location() #12
  %540 = load i32, ptr %539, align 4, !tbaa !5
  store i32 %540, ptr %8, align 4, !tbaa !5
  %541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %542 = call i32 @s2n_print_stacktrace(ptr noundef %541)
  %543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %544 = trunc i8 %543 to i1
  br i1 %544, label %545, label %567

545:                                              ; preds = %538
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = call i32 @fileno(ptr noundef %546) #11
  %548 = call i32 @isatty(i32 noundef %547) #11
  %549 = icmp ne i32 %548, 0
  br i1 %549, label %550, label %567

550:                                              ; preds = %545
  %551 = load i32, ptr %8, align 4, !tbaa !5
  %552 = call ptr @__errno_location() #12
  store i32 %551, ptr %552, align 4, !tbaa !5
  %553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %554 = load i32, ptr @test_count, align 4, !tbaa !5
  %555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror(i32 noundef %556, ptr noundef @.str.4)
  %558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call ptr @s2n_strerror_debug(i32 noundef %559, ptr noundef @.str.4)
  %561 = call ptr @__errno_location() #12
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call ptr @strerror(i32 noundef %562) #11
  %564 = call ptr @__errno_location() #12
  %565 = load i32, ptr %564, align 4, !tbaa !5
  %566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %553, ptr noundef @.str.2, i32 noundef %554, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 32, ptr noundef %557, ptr noundef %560, ptr noundef %563, i32 noundef %565) #11
  br label %584

567:                                              ; preds = %545, %538
  %568 = load i32, ptr %8, align 4, !tbaa !5
  %569 = call ptr @__errno_location() #12
  store i32 %568, ptr %569, align 4, !tbaa !5
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = load i32, ptr @test_count, align 4, !tbaa !5
  %572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %573 = load i32, ptr %572, align 4, !tbaa !5
  %574 = call ptr @s2n_strerror(i32 noundef %573, ptr noundef @.str.4)
  %575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %576 = load i32, ptr %575, align 4, !tbaa !5
  %577 = call ptr @s2n_strerror_debug(i32 noundef %576, ptr noundef @.str.4)
  %578 = call ptr @__errno_location() #12
  %579 = load i32, ptr %578, align 4, !tbaa !5
  %580 = call ptr @strerror(i32 noundef %579) #11
  %581 = call ptr @__errno_location() #12
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %570, ptr noundef @.str.5, i32 noundef %571, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 32, ptr noundef %574, ptr noundef %577, ptr noundef %580, i32 noundef %582) #11
  br label %584

584:                                              ; preds = %567, %550
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %585

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

586:                                              ; No predecessors!
  br label %587

587:                                              ; preds = %586, %533
  br label %588

588:                                              ; preds = %587
  br label %589

589:                                              ; preds = %588
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #11
  store i8 43, ptr %9, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16384, ptr %10) #11
  call void @llvm.memset.p0.i64(ptr align 16 %10, i8 0, i64 16384, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #11
  call void @llvm.memset.p0.i64(ptr align 8 %11, i8 0, i64 24, i1 false)
  br label %590

590:                                              ; preds = %589
  %591 = load i32, ptr @test_count, align 4, !tbaa !5
  %592 = add nsw i32 %591, 1
  store i32 %592, ptr @test_count, align 4, !tbaa !5
  %593 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %594 = call i32 @s2n_blob_init(ptr noundef %11, ptr noundef %593, i32 noundef 16384)
  %595 = icmp eq i32 %594, -1
  br i1 %595, label %596, label %649

596:                                              ; preds = %590
  br label %597

597:                                              ; preds = %596
  br label %598

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

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

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

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

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

645:                                              ; preds = %644
  br label %646

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

647:                                              ; No predecessors!
  br label %648

648:                                              ; preds = %647
  br label %649

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

650:                                              ; preds = %649
  br label %651

651:                                              ; preds = %650
  br label %652

652:                                              ; preds = %651
  %653 = load i32, ptr @test_count, align 4, !tbaa !5
  %654 = add nsw i32 %653, 1
  store i32 %654, ptr @test_count, align 4, !tbaa !5
  %655 = call i32 @s2n_get_public_random_data(ptr noundef %11)
  %656 = getelementptr inbounds %struct.s2n_result, ptr %13, i32 0, i32 0
  store i32 %655, ptr %656, align 4
  %657 = getelementptr inbounds %struct.s2n_result, ptr %13, i32 0, i32 0
  %658 = load i32, ptr %657, align 4
  %659 = call zeroext i1 @s2n_result_is_ok(i32 %658)
  br i1 %659, label %713, label %660

660:                                              ; preds = %652
  br label %661

661:                                              ; preds = %660
  br label %662

662:                                              ; preds = %661
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %663 = call ptr @__errno_location() #12
  %664 = load i32, ptr %663, align 4, !tbaa !5
  store i32 %664, ptr %14, align 4, !tbaa !5
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = call i32 @s2n_print_stacktrace(ptr noundef %665)
  %667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %668 = trunc i8 %667 to i1
  br i1 %668, label %669, label %691

669:                                              ; preds = %662
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = call i32 @fileno(ptr noundef %670) #11
  %672 = call i32 @isatty(i32 noundef %671) #11
  %673 = icmp ne i32 %672, 0
  br i1 %673, label %674, label %691

674:                                              ; preds = %669
  %675 = load i32, ptr %14, align 4, !tbaa !5
  %676 = call ptr @__errno_location() #12
  store i32 %675, ptr %676, align 4, !tbaa !5
  %677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %678 = load i32, ptr @test_count, align 4, !tbaa !5
  %679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = call ptr @s2n_strerror(i32 noundef %680, ptr noundef @.str.4)
  %682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = call ptr @s2n_strerror_debug(i32 noundef %683, ptr noundef @.str.4)
  %685 = call ptr @__errno_location() #12
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = call ptr @strerror(i32 noundef %686) #11
  %688 = call ptr @__errno_location() #12
  %689 = load i32, ptr %688, align 4, !tbaa !5
  %690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %677, ptr noundef @.str.2, i32 noundef %678, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 39, ptr noundef %681, ptr noundef %684, ptr noundef %687, i32 noundef %689) #11
  br label %708

691:                                              ; preds = %669, %662
  %692 = load i32, ptr %14, align 4, !tbaa !5
  %693 = call ptr @__errno_location() #12
  store i32 %692, ptr %693, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = load i32, ptr @test_count, align 4, !tbaa !5
  %696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call ptr @s2n_strerror(i32 noundef %697, ptr noundef @.str.4)
  %699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %700 = load i32, ptr %699, align 4, !tbaa !5
  %701 = call ptr @s2n_strerror_debug(i32 noundef %700, ptr noundef @.str.4)
  %702 = call ptr @__errno_location() #12
  %703 = load i32, ptr %702, align 4, !tbaa !5
  %704 = call ptr @strerror(i32 noundef %703) #11
  %705 = call ptr @__errno_location() #12
  %706 = load i32, ptr %705, align 4, !tbaa !5
  %707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %694, ptr noundef @.str.5, i32 noundef %695, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 39, ptr noundef %698, ptr noundef %701, ptr noundef %704, i32 noundef %706) #11
  br label %708

708:                                              ; preds = %691, %674
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %709

709:                                              ; preds = %708
  br label %710

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

711:                                              ; No predecessors!
  br label %712

712:                                              ; preds = %711
  br label %713

713:                                              ; preds = %712, %652
  br label %714

714:                                              ; preds = %713
  br label %715

715:                                              ; preds = %714
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #11
  %716 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %716, ptr %15, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #11
  %717 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %717, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr %17) #11
  call void @llvm.memset.p0.i64(ptr align 8 %17, i8 0, i64 192, i1 false)
  br label %718

718:                                              ; preds = %715
  %719 = load i32, ptr @test_count, align 4, !tbaa !5
  %720 = add nsw i32 %719, 1
  store i32 %720, ptr @test_count, align 4, !tbaa !5
  %721 = load ptr, ptr %15, align 8, !tbaa !9
  %722 = load ptr, ptr %16, align 8, !tbaa !9
  %723 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %721, ptr noundef %722, ptr noundef %17)
  %724 = getelementptr inbounds %struct.s2n_result, ptr %18, i32 0, i32 0
  store i32 %723, ptr %724, align 4
  %725 = getelementptr inbounds %struct.s2n_result, ptr %18, i32 0, i32 0
  %726 = load i32, ptr %725, align 4
  %727 = call zeroext i1 @s2n_result_is_ok(i32 %726)
  br i1 %727, label %781, label %728

728:                                              ; preds = %718
  br label %729

729:                                              ; preds = %728
  br label %730

730:                                              ; preds = %729
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #11
  %731 = call ptr @__errno_location() #12
  %732 = load i32, ptr %731, align 4, !tbaa !5
  store i32 %732, ptr %19, 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) #11
  %740 = call i32 @isatty(i32 noundef %739) #11
  %741 = icmp ne i32 %740, 0
  br i1 %741, label %742, label %759

742:                                              ; preds = %737
  %743 = load i32, ptr %19, align 4, !tbaa !5
  %744 = call ptr @__errno_location() #12
  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() #12
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = call ptr @strerror(i32 noundef %754) #11
  %756 = call ptr @__errno_location() #12
  %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.10, ptr noundef @.str.1, i32 noundef 51, ptr noundef %749, ptr noundef %752, ptr noundef %755, i32 noundef %757) #11
  br label %776

759:                                              ; preds = %737, %730
  %760 = load i32, ptr %19, align 4, !tbaa !5
  %761 = call ptr @__errno_location() #12
  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() #12
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %772 = call ptr @strerror(i32 noundef %771) #11
  %773 = call ptr @__errno_location() #12
  %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.10, ptr noundef @.str.1, i32 noundef 51, ptr noundef %766, ptr noundef %769, ptr noundef %772, i32 noundef %774) #11
  br label %776

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

777:                                              ; preds = %776
  br label %778

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

779:                                              ; No predecessors!
  br label %780

780:                                              ; preds = %779
  br label %781

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

782:                                              ; preds = %781
  br label %783

783:                                              ; preds = %782
  call void @llvm.lifetime.start.p0(i64 16, ptr %20) #11
  %784 = getelementptr inbounds %struct.iovec, ptr %20, i32 0, i32 0
  %785 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  store ptr %785, ptr %784, align 8, !tbaa !16
  %786 = getelementptr inbounds %struct.iovec, ptr %20, i32 0, i32 1
  store i64 10, ptr %786, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 56, ptr %21) #11
  %787 = getelementptr inbounds %struct.msghdr, ptr %21, i32 0, i32 0
  store ptr null, ptr %787, align 8, !tbaa !20
  %788 = getelementptr inbounds %struct.msghdr, ptr %21, i32 0, i32 1
  store i32 0, ptr %788, align 8, !tbaa !22
  %789 = getelementptr inbounds %struct.msghdr, ptr %21, i32 0, i32 2
  store ptr %20, ptr %789, align 8, !tbaa !23
  %790 = getelementptr inbounds %struct.msghdr, ptr %21, i32 0, i32 3
  store i64 1, ptr %790, align 8, !tbaa !24
  %791 = getelementptr inbounds %struct.msghdr, ptr %21, i32 0, i32 4
  store ptr null, ptr %791, align 8, !tbaa !25
  %792 = getelementptr inbounds %struct.msghdr, ptr %21, i32 0, i32 5
  store i64 0, ptr %792, align 8, !tbaa !26
  %793 = getelementptr inbounds %struct.msghdr, ptr %21, i32 0, i32 6
  store i32 0, ptr %793, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 100, ptr %22) #11
  call void @llvm.memset.p0.i64(ptr align 16 %22, i8 0, i64 100, i1 false)
  br label %794

794:                                              ; preds = %783
  %795 = load i32, ptr @test_count, align 4, !tbaa !5
  %796 = add nsw i32 %795, 1
  store i32 %796, ptr @test_count, align 4, !tbaa !5
  %797 = getelementptr inbounds [100 x i8], ptr %22, i64 0, i64 0
  %798 = call i32 @s2n_ktls_set_control_data(ptr noundef %21, ptr noundef %797, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43)
  %799 = getelementptr inbounds %struct.s2n_result, ptr %23, i32 0, i32 0
  store i32 %798, ptr %799, align 4
  %800 = getelementptr inbounds %struct.s2n_result, ptr %23, i32 0, i32 0
  %801 = load i32, ptr %800, align 4
  %802 = call zeroext i1 @s2n_result_is_ok(i32 %801)
  br i1 %802, label %856, label %803

803:                                              ; preds = %794
  br label %804

804:                                              ; preds = %803
  br label %805

805:                                              ; preds = %804
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %806 = call ptr @__errno_location() #12
  %807 = load i32, ptr %806, align 4, !tbaa !5
  store i32 %807, ptr %24, align 4, !tbaa !5
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = call i32 @s2n_print_stacktrace(ptr noundef %808)
  %810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %811 = trunc i8 %810 to i1
  br i1 %811, label %812, label %834

812:                                              ; preds = %805
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = call i32 @fileno(ptr noundef %813) #11
  %815 = call i32 @isatty(i32 noundef %814) #11
  %816 = icmp ne i32 %815, 0
  br i1 %816, label %817, label %834

817:                                              ; preds = %812
  %818 = load i32, ptr %24, align 4, !tbaa !5
  %819 = call ptr @__errno_location() #12
  store i32 %818, ptr %819, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = load i32, ptr @test_count, align 4, !tbaa !5
  %822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %823 = load i32, ptr %822, align 4, !tbaa !5
  %824 = call ptr @s2n_strerror(i32 noundef %823, ptr noundef @.str.4)
  %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_debug(i32 noundef %826, ptr noundef @.str.4)
  %828 = call ptr @__errno_location() #12
  %829 = load i32, ptr %828, align 4, !tbaa !5
  %830 = call ptr @strerror(i32 noundef %829) #11
  %831 = call ptr @__errno_location() #12
  %832 = load i32, ptr %831, align 4, !tbaa !5
  %833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %820, ptr noundef @.str.2, i32 noundef %821, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 57, ptr noundef %824, ptr noundef %827, ptr noundef %830, i32 noundef %832) #11
  br label %851

834:                                              ; preds = %812, %805
  %835 = load i32, ptr %24, align 4, !tbaa !5
  %836 = call ptr @__errno_location() #12
  store i32 %835, ptr %836, align 4, !tbaa !5
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = load i32, ptr @test_count, align 4, !tbaa !5
  %839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = call ptr @s2n_strerror(i32 noundef %840, ptr noundef @.str.4)
  %842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %843 = load i32, ptr %842, align 4, !tbaa !5
  %844 = call ptr @s2n_strerror_debug(i32 noundef %843, ptr noundef @.str.4)
  %845 = call ptr @__errno_location() #12
  %846 = load i32, ptr %845, align 4, !tbaa !5
  %847 = call ptr @strerror(i32 noundef %846) #11
  %848 = call ptr @__errno_location() #12
  %849 = load i32, ptr %848, align 4, !tbaa !5
  %850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %837, ptr noundef @.str.5, i32 noundef %838, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 57, ptr noundef %841, ptr noundef %844, ptr noundef %847, i32 noundef %849) #11
  br label %851

851:                                              ; preds = %834, %817
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %852

852:                                              ; preds = %851
  br label %853

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

854:                                              ; No predecessors!
  br label %855

855:                                              ; preds = %854
  br label %856

856:                                              ; preds = %855, %794
  br label %857

857:                                              ; preds = %856
  br label %858

858:                                              ; preds = %857
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #11
  %859 = load ptr, ptr %15, align 8, !tbaa !9
  %860 = getelementptr inbounds %struct.s2n_connection, ptr %859, i32 0, i32 8
  %861 = load ptr, ptr %860, align 8, !tbaa !28
  %862 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %861, ptr noundef %21)
  store i64 %862, ptr %25, align 8, !tbaa !54
  br label %863

863:                                              ; preds = %858
  %864 = load i32, ptr @test_count, align 4, !tbaa !5
  %865 = add nsw i32 %864, 1
  store i32 %865, ptr @test_count, align 4, !tbaa !5
  %866 = load i64, ptr %25, align 8, !tbaa !54
  %867 = icmp eq i64 %866, 10
  br i1 %867, label %921, label %868

868:                                              ; preds = %863
  br label %869

869:                                              ; preds = %868
  br label %870

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

877:                                              ; preds = %870
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = call i32 @fileno(ptr noundef %878) #11
  %880 = call i32 @isatty(i32 noundef %879) #11
  %881 = icmp ne i32 %880, 0
  br i1 %881, label %882, label %899

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

899:                                              ; preds = %877, %870
  %900 = load i32, ptr %26, align 4, !tbaa !5
  %901 = call ptr @__errno_location() #12
  store i32 %900, ptr %901, 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 @.str.4)
  %907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %908 = load i32, ptr %907, align 4, !tbaa !5
  %909 = call ptr @s2n_strerror_debug(i32 noundef %908, ptr noundef @.str.4)
  %910 = call ptr @__errno_location() #12
  %911 = load i32, ptr %910, align 4, !tbaa !5
  %912 = call ptr @strerror(i32 noundef %911) #11
  %913 = call ptr @__errno_location() #12
  %914 = load i32, ptr %913, align 4, !tbaa !5
  %915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %902, ptr noundef @.str.5, i32 noundef %903, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 59, ptr noundef %906, ptr noundef %909, ptr noundef %912, i32 noundef %914) #11
  br label %916

916:                                              ; preds = %899, %882
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %917

917:                                              ; preds = %916
  br label %918

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

919:                                              ; No predecessors!
  br label %920

920:                                              ; preds = %919
  br label %921

921:                                              ; preds = %920, %863
  br label %922

922:                                              ; preds = %921
  br label %923

923:                                              ; preds = %922
  br label %924

924:                                              ; preds = %923
  %925 = load i32, ptr @test_count, align 4, !tbaa !5
  %926 = add nsw i32 %925, 1
  store i32 %926, ptr @test_count, align 4, !tbaa !5
  %927 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %17, i32 0, i32 0
  %928 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %929 = call i32 @s2n_test_validate_data(ptr noundef %927, ptr noundef %928, i16 noundef zeroext 10)
  %930 = getelementptr inbounds %struct.s2n_result, ptr %27, i32 0, i32 0
  store i32 %929, ptr %930, align 4
  %931 = getelementptr inbounds %struct.s2n_result, ptr %27, i32 0, i32 0
  %932 = load i32, ptr %931, align 4
  %933 = call zeroext i1 @s2n_result_is_ok(i32 %932)
  br i1 %933, label %987, label %934

934:                                              ; preds = %924
  br label %935

935:                                              ; preds = %934
  br label %936

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

943:                                              ; preds = %936
  %944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %945 = call i32 @fileno(ptr noundef %944) #11
  %946 = call i32 @isatty(i32 noundef %945) #11
  %947 = icmp ne i32 %946, 0
  br i1 %947, label %948, label %965

948:                                              ; preds = %943
  %949 = load i32, ptr %28, align 4, !tbaa !5
  %950 = call ptr @__errno_location() #12
  store i32 %949, ptr %950, align 4, !tbaa !5
  %951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %952 = load i32, ptr @test_count, align 4, !tbaa !5
  %953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %954 = load i32, ptr %953, align 4, !tbaa !5
  %955 = call ptr @s2n_strerror(i32 noundef %954, ptr noundef @.str.4)
  %956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %957 = load i32, ptr %956, align 4, !tbaa !5
  %958 = call ptr @s2n_strerror_debug(i32 noundef %957, ptr noundef @.str.4)
  %959 = call ptr @__errno_location() #12
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = call ptr @strerror(i32 noundef %960) #11
  %962 = call ptr @__errno_location() #12
  %963 = load i32, ptr %962, align 4, !tbaa !5
  %964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %951, ptr noundef @.str.2, i32 noundef %952, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 62, ptr noundef %955, ptr noundef %958, ptr noundef %961, i32 noundef %963) #11
  br label %982

965:                                              ; preds = %943, %936
  %966 = load i32, ptr %28, align 4, !tbaa !5
  %967 = call ptr @__errno_location() #12
  store i32 %966, ptr %967, align 4, !tbaa !5
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = load i32, ptr @test_count, align 4, !tbaa !5
  %970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %971 = load i32, ptr %970, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror(i32 noundef %971, ptr noundef @.str.4)
  %973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %974 = load i32, ptr %973, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror_debug(i32 noundef %974, ptr noundef @.str.4)
  %976 = call ptr @__errno_location() #12
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = call ptr @strerror(i32 noundef %977) #11
  %979 = call ptr @__errno_location() #12
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %968, ptr noundef @.str.5, i32 noundef %969, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 62, ptr noundef %972, ptr noundef %975, ptr noundef %978, i32 noundef %980) #11
  br label %982

982:                                              ; preds = %965, %948
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %983

983:                                              ; preds = %982
  br label %984

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

985:                                              ; No predecessors!
  br label %986

986:                                              ; preds = %985
  br label %987

987:                                              ; preds = %986, %924
  br label %988

988:                                              ; preds = %987
  br label %989

989:                                              ; preds = %988
  br label %990

990:                                              ; preds = %989
  %991 = load i32, ptr @test_count, align 4, !tbaa !5
  %992 = add nsw i32 %991, 1
  store i32 %992, ptr @test_count, align 4, !tbaa !5
  %993 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %17, i32 0, i32 0
  %994 = call i32 @s2n_test_validate_ancillary(ptr noundef %993, i8 noundef zeroext 43, i16 noundef zeroext 10)
  %995 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  store i32 %994, ptr %995, align 4
  %996 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  %997 = load i32, ptr %996, align 4
  %998 = call zeroext i1 @s2n_result_is_ok(i32 %997)
  br i1 %998, label %1052, label %999

999:                                              ; preds = %990
  br label %1000

1000:                                             ; preds = %999
  br label %1001

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

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

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

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

1047:                                             ; preds = %1030, %1013
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %1048

1048:                                             ; preds = %1047
  br label %1049

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

1050:                                             ; No predecessors!
  br label %1051

1051:                                             ; preds = %1050
  br label %1052

1052:                                             ; preds = %1051, %990
  br label %1053

1053:                                             ; preds = %1052
  br label %1054

1054:                                             ; preds = %1053
  br label %1055

1055:                                             ; preds = %1054
  %1056 = load i32, ptr @test_count, align 4, !tbaa !5
  %1057 = add nsw i32 %1056, 1
  store i32 %1057, ptr @test_count, align 4, !tbaa !5
  %1058 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %17, i32 0, i32 0
  %1059 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %1058, i32 0, i32 2
  %1060 = load i64, ptr %1059, align 8, !tbaa !55
  %1061 = icmp eq i64 %1060, 1
  br i1 %1061, label %1115, label %1062

1062:                                             ; preds = %1055
  br label %1063

1063:                                             ; preds = %1062
  br label %1064

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

1071:                                             ; preds = %1064
  %1072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1073 = call i32 @fileno(ptr noundef %1072) #11
  %1074 = call i32 @isatty(i32 noundef %1073) #11
  %1075 = icmp ne i32 %1074, 0
  br i1 %1075, label %1076, label %1093

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

1093:                                             ; preds = %1071, %1064
  %1094 = load i32, ptr %31, align 4, !tbaa !5
  %1095 = call ptr @__errno_location() #12
  store i32 %1094, ptr %1095, align 4, !tbaa !5
  %1096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1097 = load i32, ptr @test_count, align 4, !tbaa !5
  %1098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1099 = load i32, ptr %1098, align 4, !tbaa !5
  %1100 = call ptr @s2n_strerror(i32 noundef %1099, ptr noundef @.str.4)
  %1101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1102 = load i32, ptr %1101, align 4, !tbaa !5
  %1103 = call ptr @s2n_strerror_debug(i32 noundef %1102, ptr noundef @.str.4)
  %1104 = call ptr @__errno_location() #12
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  %1106 = call ptr @strerror(i32 noundef %1105) #11
  %1107 = call ptr @__errno_location() #12
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1096, ptr noundef @.str.5, i32 noundef %1097, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 65, ptr noundef %1100, ptr noundef %1103, ptr noundef %1106, i32 noundef %1108) #11
  br label %1110

1110:                                             ; preds = %1093, %1076
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %1111

1111:                                             ; preds = %1110
  br label %1112

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

1113:                                             ; No predecessors!
  br label %1114

1114:                                             ; preds = %1113
  br label %1115

1115:                                             ; preds = %1114, %1055
  br label %1116

1116:                                             ; preds = %1115
  br label %1117

1117:                                             ; preds = %1116
  br label %1118

1118:                                             ; preds = %1117
  %1119 = load i32, ptr @test_count, align 4, !tbaa !5
  %1120 = add nsw i32 %1119, 1
  store i32 %1120, ptr @test_count, align 4, !tbaa !5
  %1121 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %17, i32 0, i32 1
  %1122 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %1121, i32 0, i32 2
  %1123 = load i64, ptr %1122, align 8, !tbaa !58
  %1124 = icmp eq i64 %1123, 0
  br i1 %1124, label %1178, label %1125

1125:                                             ; preds = %1118
  br label %1126

1126:                                             ; preds = %1125
  br label %1127

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

1134:                                             ; preds = %1127
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = call i32 @fileno(ptr noundef %1135) #11
  %1137 = call i32 @isatty(i32 noundef %1136) #11
  %1138 = icmp ne i32 %1137, 0
  br i1 %1138, label %1139, label %1156

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

1156:                                             ; preds = %1134, %1127
  %1157 = load i32, ptr %32, align 4, !tbaa !5
  %1158 = call ptr @__errno_location() #12
  store i32 %1157, ptr %1158, align 4, !tbaa !5
  %1159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1160 = load i32, ptr @test_count, align 4, !tbaa !5
  %1161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1162 = load i32, ptr %1161, align 4, !tbaa !5
  %1163 = call ptr @s2n_strerror(i32 noundef %1162, ptr noundef @.str.4)
  %1164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror_debug(i32 noundef %1165, ptr noundef @.str.4)
  %1167 = call ptr @__errno_location() #12
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  %1169 = call ptr @strerror(i32 noundef %1168) #11
  %1170 = call ptr @__errno_location() #12
  %1171 = load i32, ptr %1170, align 4, !tbaa !5
  %1172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1159, ptr noundef @.str.5, i32 noundef %1160, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1163, ptr noundef %1166, ptr noundef %1169, i32 noundef %1171) #11
  br label %1173

1173:                                             ; preds = %1156, %1139
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1174

1174:                                             ; preds = %1173
  br label %1175

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

1176:                                             ; No predecessors!
  br label %1177

1177:                                             ; preds = %1176
  br label %1178

1178:                                             ; preds = %1177, %1118
  br label %1179

1179:                                             ; preds = %1178
  br label %1180

1180:                                             ; preds = %1179
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #11
  %1181 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef %17)
  %1182 = getelementptr inbounds %struct.s2n_result, ptr %33, i32 0, i32 0
  store i32 %1181, ptr %1182, align 4
  call void @llvm.lifetime.end.p0(i64 192, ptr %17) #11
  %1183 = call i32 @s2n_connection_ptr_free(ptr noundef %16)
  %1184 = getelementptr inbounds %struct.s2n_result, ptr %34, i32 0, i32 0
  store i32 %1183, ptr %1184, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  %1185 = call i32 @s2n_connection_ptr_free(ptr noundef %15)
  %1186 = getelementptr inbounds %struct.s2n_result, ptr %35, i32 0, i32 0
  store i32 %1185, ptr %1186, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #11
  %1187 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1187, ptr %36, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #11
  %1188 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1188, ptr %37, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr %38) #11
  call void @llvm.memset.p0.i64(ptr align 8 %38, i8 0, i64 192, i1 false)
  br label %1189

1189:                                             ; preds = %1180
  %1190 = load i32, ptr @test_count, align 4, !tbaa !5
  %1191 = add nsw i32 %1190, 1
  store i32 %1191, ptr @test_count, align 4, !tbaa !5
  %1192 = load ptr, ptr %36, align 8, !tbaa !9
  %1193 = load ptr, ptr %37, align 8, !tbaa !9
  %1194 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %1192, ptr noundef %1193, ptr noundef %38)
  %1195 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  store i32 %1194, ptr %1195, align 4
  %1196 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  %1197 = load i32, ptr %1196, align 4
  %1198 = call zeroext i1 @s2n_result_is_ok(i32 %1197)
  br i1 %1198, label %1252, label %1199

1199:                                             ; preds = %1189
  br label %1200

1200:                                             ; preds = %1199
  br label %1201

1201:                                             ; preds = %1200
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %1202 = call ptr @__errno_location() #12
  %1203 = load i32, ptr %1202, align 4, !tbaa !5
  store i32 %1203, ptr %40, align 4, !tbaa !5
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = call i32 @s2n_print_stacktrace(ptr noundef %1204)
  %1206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1207 = trunc i8 %1206 to i1
  br i1 %1207, label %1208, label %1230

1208:                                             ; preds = %1201
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = call i32 @fileno(ptr noundef %1209) #11
  %1211 = call i32 @isatty(i32 noundef %1210) #11
  %1212 = icmp ne i32 %1211, 0
  br i1 %1212, label %1213, label %1230

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

1230:                                             ; preds = %1208, %1201
  %1231 = load i32, ptr %40, align 4, !tbaa !5
  %1232 = call ptr @__errno_location() #12
  store i32 %1231, ptr %1232, align 4, !tbaa !5
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = load i32, ptr @test_count, align 4, !tbaa !5
  %1235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  %1237 = call ptr @s2n_strerror(i32 noundef %1236, ptr noundef @.str.4)
  %1238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = call ptr @s2n_strerror_debug(i32 noundef %1239, ptr noundef @.str.4)
  %1241 = call ptr @__errno_location() #12
  %1242 = load i32, ptr %1241, align 4, !tbaa !5
  %1243 = call ptr @strerror(i32 noundef %1242) #11
  %1244 = call ptr @__errno_location() #12
  %1245 = load i32, ptr %1244, align 4, !tbaa !5
  %1246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1233, ptr noundef @.str.5, i32 noundef %1234, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1237, ptr noundef %1240, ptr noundef %1243, i32 noundef %1245) #11
  br label %1247

1247:                                             ; preds = %1230, %1213
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

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

1250:                                             ; No predecessors!
  br label %1251

1251:                                             ; preds = %1250
  br label %1252

1252:                                             ; preds = %1251, %1189
  br label %1253

1253:                                             ; preds = %1252
  br label %1254

1254:                                             ; preds = %1253
  call void @llvm.lifetime.start.p0(i64 16, ptr %41) #11
  %1255 = getelementptr inbounds %struct.iovec, ptr %41, i32 0, i32 0
  %1256 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  store ptr %1256, ptr %1255, align 8, !tbaa !16
  %1257 = getelementptr inbounds %struct.iovec, ptr %41, i32 0, i32 1
  store i64 10, ptr %1257, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 56, ptr %42) #11
  %1258 = getelementptr inbounds %struct.msghdr, ptr %42, i32 0, i32 0
  store ptr null, ptr %1258, align 8, !tbaa !20
  %1259 = getelementptr inbounds %struct.msghdr, ptr %42, i32 0, i32 1
  store i32 0, ptr %1259, align 8, !tbaa !22
  %1260 = getelementptr inbounds %struct.msghdr, ptr %42, i32 0, i32 2
  store ptr %41, ptr %1260, align 8, !tbaa !23
  %1261 = getelementptr inbounds %struct.msghdr, ptr %42, i32 0, i32 3
  store i64 1, ptr %1261, align 8, !tbaa !24
  %1262 = getelementptr inbounds %struct.msghdr, ptr %42, i32 0, i32 4
  store ptr null, ptr %1262, align 8, !tbaa !25
  %1263 = getelementptr inbounds %struct.msghdr, ptr %42, i32 0, i32 5
  store i64 0, ptr %1263, align 8, !tbaa !26
  %1264 = getelementptr inbounds %struct.msghdr, ptr %42, i32 0, i32 6
  store i32 0, ptr %1264, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 100, ptr %43) #11
  call void @llvm.memset.p0.i64(ptr align 16 %43, i8 0, i64 100, i1 false)
  br label %1265

1265:                                             ; preds = %1254
  %1266 = load i32, ptr @test_count, align 4, !tbaa !5
  %1267 = add nsw i32 %1266, 1
  store i32 %1267, ptr @test_count, align 4, !tbaa !5
  %1268 = getelementptr inbounds [100 x i8], ptr %43, i64 0, i64 0
  %1269 = call i32 @s2n_ktls_set_control_data(ptr noundef %42, ptr noundef %1268, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43)
  %1270 = getelementptr inbounds %struct.s2n_result, ptr %44, i32 0, i32 0
  store i32 %1269, ptr %1270, align 4
  %1271 = getelementptr inbounds %struct.s2n_result, ptr %44, i32 0, i32 0
  %1272 = load i32, ptr %1271, align 4
  %1273 = call zeroext i1 @s2n_result_is_ok(i32 %1272)
  br i1 %1273, label %1327, label %1274

1274:                                             ; preds = %1265
  br label %1275

1275:                                             ; preds = %1274
  br label %1276

1276:                                             ; preds = %1275
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #11
  %1277 = call ptr @__errno_location() #12
  %1278 = load i32, ptr %1277, align 4, !tbaa !5
  store i32 %1278, ptr %45, align 4, !tbaa !5
  %1279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1280 = call i32 @s2n_print_stacktrace(ptr noundef %1279)
  %1281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1282 = trunc i8 %1281 to i1
  br i1 %1282, label %1283, label %1305

1283:                                             ; preds = %1276
  %1284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1285 = call i32 @fileno(ptr noundef %1284) #11
  %1286 = call i32 @isatty(i32 noundef %1285) #11
  %1287 = icmp ne i32 %1286, 0
  br i1 %1287, label %1288, label %1305

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

1305:                                             ; preds = %1283, %1276
  %1306 = load i32, ptr %45, align 4, !tbaa !5
  %1307 = call ptr @__errno_location() #12
  store i32 %1306, ptr %1307, align 4, !tbaa !5
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = load i32, ptr @test_count, align 4, !tbaa !5
  %1310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1311 = load i32, ptr %1310, align 4, !tbaa !5
  %1312 = call ptr @s2n_strerror(i32 noundef %1311, ptr noundef @.str.4)
  %1313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1314 = load i32, ptr %1313, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror_debug(i32 noundef %1314, ptr noundef @.str.4)
  %1316 = call ptr @__errno_location() #12
  %1317 = load i32, ptr %1316, align 4, !tbaa !5
  %1318 = call ptr @strerror(i32 noundef %1317) #11
  %1319 = call ptr @__errno_location() #12
  %1320 = load i32, ptr %1319, align 4, !tbaa !5
  %1321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1308, ptr noundef @.str.5, i32 noundef %1309, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1312, ptr noundef %1315, ptr noundef %1318, i32 noundef %1320) #11
  br label %1322

1322:                                             ; preds = %1305, %1288
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %1323

1323:                                             ; preds = %1322
  br label %1324

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

1325:                                             ; No predecessors!
  br label %1326

1326:                                             ; preds = %1325
  br label %1327

1327:                                             ; preds = %1326, %1265
  br label %1328

1328:                                             ; preds = %1327
  br label %1329

1329:                                             ; preds = %1328
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #11
  %1330 = load ptr, ptr %37, align 8, !tbaa !9
  %1331 = getelementptr inbounds %struct.s2n_connection, ptr %1330, i32 0, i32 8
  %1332 = load ptr, ptr %1331, align 8, !tbaa !28
  %1333 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1332, ptr noundef %42)
  store i64 %1333, ptr %46, align 8, !tbaa !54
  br label %1334

1334:                                             ; preds = %1329
  %1335 = load i32, ptr @test_count, align 4, !tbaa !5
  %1336 = add nsw i32 %1335, 1
  store i32 %1336, ptr @test_count, align 4, !tbaa !5
  %1337 = load i64, ptr %46, align 8, !tbaa !54
  %1338 = icmp eq i64 %1337, 10
  br i1 %1338, label %1392, label %1339

1339:                                             ; preds = %1334
  br label %1340

1340:                                             ; preds = %1339
  br label %1341

1341:                                             ; preds = %1340
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #11
  %1342 = call ptr @__errno_location() #12
  %1343 = load i32, ptr %1342, align 4, !tbaa !5
  store i32 %1343, ptr %47, align 4, !tbaa !5
  %1344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1345 = call i32 @s2n_print_stacktrace(ptr noundef %1344)
  %1346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1347 = trunc i8 %1346 to i1
  br i1 %1347, label %1348, label %1370

1348:                                             ; preds = %1341
  %1349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1350 = call i32 @fileno(ptr noundef %1349) #11
  %1351 = call i32 @isatty(i32 noundef %1350) #11
  %1352 = icmp ne i32 %1351, 0
  br i1 %1352, label %1353, label %1370

1353:                                             ; preds = %1348
  %1354 = load i32, ptr %47, align 4, !tbaa !5
  %1355 = call ptr @__errno_location() #12
  store i32 %1354, ptr %1355, align 4, !tbaa !5
  %1356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1357 = load i32, ptr @test_count, align 4, !tbaa !5
  %1358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1359 = load i32, ptr %1358, align 4, !tbaa !5
  %1360 = call ptr @s2n_strerror(i32 noundef %1359, ptr noundef @.str.4)
  %1361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = call ptr @s2n_strerror_debug(i32 noundef %1362, ptr noundef @.str.4)
  %1364 = call ptr @__errno_location() #12
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call ptr @strerror(i32 noundef %1365) #11
  %1367 = call ptr @__errno_location() #12
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1356, ptr noundef @.str.2, i32 noundef %1357, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1360, ptr noundef %1363, ptr noundef %1366, i32 noundef %1368) #11
  br label %1387

1370:                                             ; preds = %1348, %1341
  %1371 = load i32, ptr %47, align 4, !tbaa !5
  %1372 = call ptr @__errno_location() #12
  store i32 %1371, ptr %1372, align 4, !tbaa !5
  %1373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1374 = load i32, ptr @test_count, align 4, !tbaa !5
  %1375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1376 = load i32, ptr %1375, align 4, !tbaa !5
  %1377 = call ptr @s2n_strerror(i32 noundef %1376, ptr noundef @.str.4)
  %1378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1379 = load i32, ptr %1378, align 4, !tbaa !5
  %1380 = call ptr @s2n_strerror_debug(i32 noundef %1379, ptr noundef @.str.4)
  %1381 = call ptr @__errno_location() #12
  %1382 = load i32, ptr %1381, align 4, !tbaa !5
  %1383 = call ptr @strerror(i32 noundef %1382) #11
  %1384 = call ptr @__errno_location() #12
  %1385 = load i32, ptr %1384, align 4, !tbaa !5
  %1386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1373, ptr noundef @.str.5, i32 noundef %1374, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1377, ptr noundef %1380, ptr noundef %1383, i32 noundef %1385) #11
  br label %1387

1387:                                             ; preds = %1370, %1353
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %1388

1388:                                             ; preds = %1387
  br label %1389

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

1390:                                             ; No predecessors!
  br label %1391

1391:                                             ; preds = %1390
  br label %1392

1392:                                             ; preds = %1391, %1334
  br label %1393

1393:                                             ; preds = %1392
  br label %1394

1394:                                             ; preds = %1393
  br label %1395

1395:                                             ; preds = %1394
  %1396 = load i32, ptr @test_count, align 4, !tbaa !5
  %1397 = add nsw i32 %1396, 1
  store i32 %1397, ptr @test_count, align 4, !tbaa !5
  %1398 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %38, i32 0, i32 1
  %1399 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %1400 = call i32 @s2n_test_validate_data(ptr noundef %1398, ptr noundef %1399, i16 noundef zeroext 10)
  %1401 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  store i32 %1400, ptr %1401, align 4
  %1402 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  %1403 = load i32, ptr %1402, align 4
  %1404 = call zeroext i1 @s2n_result_is_ok(i32 %1403)
  br i1 %1404, label %1458, label %1405

1405:                                             ; preds = %1395
  br label %1406

1406:                                             ; preds = %1405
  br label %1407

1407:                                             ; preds = %1406
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %1408 = call ptr @__errno_location() #12
  %1409 = load i32, ptr %1408, align 4, !tbaa !5
  store i32 %1409, ptr %49, align 4, !tbaa !5
  %1410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1411 = call i32 @s2n_print_stacktrace(ptr noundef %1410)
  %1412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1413 = trunc i8 %1412 to i1
  br i1 %1413, label %1414, label %1436

1414:                                             ; preds = %1407
  %1415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1416 = call i32 @fileno(ptr noundef %1415) #11
  %1417 = call i32 @isatty(i32 noundef %1416) #11
  %1418 = icmp ne i32 %1417, 0
  br i1 %1418, label %1419, label %1436

1419:                                             ; preds = %1414
  %1420 = load i32, ptr %49, align 4, !tbaa !5
  %1421 = call ptr @__errno_location() #12
  store i32 %1420, ptr %1421, align 4, !tbaa !5
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = load i32, ptr @test_count, align 4, !tbaa !5
  %1424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1425 = load i32, ptr %1424, align 4, !tbaa !5
  %1426 = call ptr @s2n_strerror(i32 noundef %1425, ptr noundef @.str.4)
  %1427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  %1429 = call ptr @s2n_strerror_debug(i32 noundef %1428, ptr noundef @.str.4)
  %1430 = call ptr @__errno_location() #12
  %1431 = load i32, ptr %1430, align 4, !tbaa !5
  %1432 = call ptr @strerror(i32 noundef %1431) #11
  %1433 = call ptr @__errno_location() #12
  %1434 = load i32, ptr %1433, align 4, !tbaa !5
  %1435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1422, ptr noundef @.str.2, i32 noundef %1423, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1426, ptr noundef %1429, ptr noundef %1432, i32 noundef %1434) #11
  br label %1453

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

1453:                                             ; preds = %1436, %1419
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %1454

1454:                                             ; preds = %1453
  br label %1455

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

1456:                                             ; No predecessors!
  br label %1457

1457:                                             ; preds = %1456
  br label %1458

1458:                                             ; preds = %1457, %1395
  br label %1459

1459:                                             ; preds = %1458
  br label %1460

1460:                                             ; preds = %1459
  br label %1461

1461:                                             ; preds = %1460
  %1462 = load i32, ptr @test_count, align 4, !tbaa !5
  %1463 = add nsw i32 %1462, 1
  store i32 %1463, ptr @test_count, align 4, !tbaa !5
  %1464 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %38, i32 0, i32 1
  %1465 = call i32 @s2n_test_validate_ancillary(ptr noundef %1464, i8 noundef zeroext 43, i16 noundef zeroext 10)
  %1466 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  store i32 %1465, ptr %1466, align 4
  %1467 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  %1468 = load i32, ptr %1467, align 4
  %1469 = call zeroext i1 @s2n_result_is_ok(i32 %1468)
  br i1 %1469, label %1523, label %1470

1470:                                             ; preds = %1461
  br label %1471

1471:                                             ; preds = %1470
  br label %1472

1472:                                             ; preds = %1471
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #11
  %1473 = call ptr @__errno_location() #12
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  store i32 %1474, ptr %51, align 4, !tbaa !5
  %1475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1476 = call i32 @s2n_print_stacktrace(ptr noundef %1475)
  %1477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1478 = trunc i8 %1477 to i1
  br i1 %1478, label %1479, label %1501

1479:                                             ; preds = %1472
  %1480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1481 = call i32 @fileno(ptr noundef %1480) #11
  %1482 = call i32 @isatty(i32 noundef %1481) #11
  %1483 = icmp ne i32 %1482, 0
  br i1 %1483, label %1484, label %1501

1484:                                             ; preds = %1479
  %1485 = load i32, ptr %51, align 4, !tbaa !5
  %1486 = call ptr @__errno_location() #12
  store i32 %1485, ptr %1486, align 4, !tbaa !5
  %1487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1488 = load i32, ptr @test_count, align 4, !tbaa !5
  %1489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror(i32 noundef %1490, ptr noundef @.str.4)
  %1492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call ptr @s2n_strerror_debug(i32 noundef %1493, ptr noundef @.str.4)
  %1495 = call ptr @__errno_location() #12
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = call ptr @strerror(i32 noundef %1496) #11
  %1498 = call ptr @__errno_location() #12
  %1499 = load i32, ptr %1498, align 4, !tbaa !5
  %1500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1487, ptr noundef @.str.2, i32 noundef %1488, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1491, ptr noundef %1494, ptr noundef %1497, i32 noundef %1499) #11
  br label %1518

1501:                                             ; preds = %1479, %1472
  %1502 = load i32, ptr %51, align 4, !tbaa !5
  %1503 = call ptr @__errno_location() #12
  store i32 %1502, ptr %1503, align 4, !tbaa !5
  %1504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1505 = load i32, ptr @test_count, align 4, !tbaa !5
  %1506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1507 = load i32, ptr %1506, align 4, !tbaa !5
  %1508 = call ptr @s2n_strerror(i32 noundef %1507, ptr noundef @.str.4)
  %1509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = call ptr @s2n_strerror_debug(i32 noundef %1510, ptr noundef @.str.4)
  %1512 = call ptr @__errno_location() #12
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = call ptr @strerror(i32 noundef %1513) #11
  %1515 = call ptr @__errno_location() #12
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  %1517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1504, ptr noundef @.str.5, i32 noundef %1505, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1508, ptr noundef %1511, ptr noundef %1514, i32 noundef %1516) #11
  br label %1518

1518:                                             ; preds = %1501, %1484
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %1519

1519:                                             ; preds = %1518
  br label %1520

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

1521:                                             ; No predecessors!
  br label %1522

1522:                                             ; preds = %1521
  br label %1523

1523:                                             ; preds = %1522, %1461
  br label %1524

1524:                                             ; preds = %1523
  br label %1525

1525:                                             ; preds = %1524
  br label %1526

1526:                                             ; preds = %1525
  %1527 = load i32, ptr @test_count, align 4, !tbaa !5
  %1528 = add nsw i32 %1527, 1
  store i32 %1528, ptr @test_count, align 4, !tbaa !5
  %1529 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %38, i32 0, i32 0
  %1530 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %1529, i32 0, i32 2
  %1531 = load i64, ptr %1530, align 8, !tbaa !55
  %1532 = icmp eq i64 %1531, 0
  br i1 %1532, label %1586, label %1533

1533:                                             ; preds = %1526
  br label %1534

1534:                                             ; preds = %1533
  br label %1535

1535:                                             ; preds = %1534
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #11
  %1536 = call ptr @__errno_location() #12
  %1537 = load i32, ptr %1536, align 4, !tbaa !5
  store i32 %1537, ptr %52, align 4, !tbaa !5
  %1538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1539 = call i32 @s2n_print_stacktrace(ptr noundef %1538)
  %1540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1541 = trunc i8 %1540 to i1
  br i1 %1541, label %1542, label %1564

1542:                                             ; preds = %1535
  %1543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1544 = call i32 @fileno(ptr noundef %1543) #11
  %1545 = call i32 @isatty(i32 noundef %1544) #11
  %1546 = icmp ne i32 %1545, 0
  br i1 %1546, label %1547, label %1564

1547:                                             ; preds = %1542
  %1548 = load i32, ptr %52, align 4, !tbaa !5
  %1549 = call ptr @__errno_location() #12
  store i32 %1548, ptr %1549, align 4, !tbaa !5
  %1550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1551 = load i32, ptr @test_count, align 4, !tbaa !5
  %1552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1553 = load i32, ptr %1552, align 4, !tbaa !5
  %1554 = call ptr @s2n_strerror(i32 noundef %1553, ptr noundef @.str.4)
  %1555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1556 = load i32, ptr %1555, align 4, !tbaa !5
  %1557 = call ptr @s2n_strerror_debug(i32 noundef %1556, ptr noundef @.str.4)
  %1558 = call ptr @__errno_location() #12
  %1559 = load i32, ptr %1558, align 4, !tbaa !5
  %1560 = call ptr @strerror(i32 noundef %1559) #11
  %1561 = call ptr @__errno_location() #12
  %1562 = load i32, ptr %1561, align 4, !tbaa !5
  %1563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1550, ptr noundef @.str.2, i32 noundef %1551, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1554, ptr noundef %1557, ptr noundef %1560, i32 noundef %1562) #11
  br label %1581

1564:                                             ; preds = %1542, %1535
  %1565 = load i32, ptr %52, align 4, !tbaa !5
  %1566 = call ptr @__errno_location() #12
  store i32 %1565, ptr %1566, align 4, !tbaa !5
  %1567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1568 = load i32, ptr @test_count, align 4, !tbaa !5
  %1569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror(i32 noundef %1570, ptr noundef @.str.4)
  %1572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call ptr @s2n_strerror_debug(i32 noundef %1573, ptr noundef @.str.4)
  %1575 = call ptr @__errno_location() #12
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call ptr @strerror(i32 noundef %1576) #11
  %1578 = call ptr @__errno_location() #12
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1567, ptr noundef @.str.5, i32 noundef %1568, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1571, ptr noundef %1574, ptr noundef %1577, i32 noundef %1579) #11
  br label %1581

1581:                                             ; preds = %1564, %1547
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %1582

1582:                                             ; preds = %1581
  br label %1583

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

1584:                                             ; No predecessors!
  br label %1585

1585:                                             ; preds = %1584
  br label %1586

1586:                                             ; preds = %1585, %1526
  br label %1587

1587:                                             ; preds = %1586
  br label %1588

1588:                                             ; preds = %1587
  br label %1589

1589:                                             ; preds = %1588
  %1590 = load i32, ptr @test_count, align 4, !tbaa !5
  %1591 = add nsw i32 %1590, 1
  store i32 %1591, ptr @test_count, align 4, !tbaa !5
  %1592 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %38, i32 0, i32 1
  %1593 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %1592, i32 0, i32 2
  %1594 = load i64, ptr %1593, align 8, !tbaa !58
  %1595 = icmp eq i64 %1594, 1
  br i1 %1595, label %1649, label %1596

1596:                                             ; preds = %1589
  br label %1597

1597:                                             ; preds = %1596
  br label %1598

1598:                                             ; preds = %1597
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #11
  %1599 = call ptr @__errno_location() #12
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  store i32 %1600, ptr %53, align 4, !tbaa !5
  %1601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1602 = call i32 @s2n_print_stacktrace(ptr noundef %1601)
  %1603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1604 = trunc i8 %1603 to i1
  br i1 %1604, label %1605, label %1627

1605:                                             ; preds = %1598
  %1606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1607 = call i32 @fileno(ptr noundef %1606) #11
  %1608 = call i32 @isatty(i32 noundef %1607) #11
  %1609 = icmp ne i32 %1608, 0
  br i1 %1609, label %1610, label %1627

1610:                                             ; preds = %1605
  %1611 = load i32, ptr %53, align 4, !tbaa !5
  %1612 = call ptr @__errno_location() #12
  store i32 %1611, ptr %1612, align 4, !tbaa !5
  %1613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1614 = load i32, ptr @test_count, align 4, !tbaa !5
  %1615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1616 = load i32, ptr %1615, align 4, !tbaa !5
  %1617 = call ptr @s2n_strerror(i32 noundef %1616, ptr noundef @.str.4)
  %1618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call ptr @s2n_strerror_debug(i32 noundef %1619, ptr noundef @.str.4)
  %1621 = call ptr @__errno_location() #12
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call ptr @strerror(i32 noundef %1622) #11
  %1624 = call ptr @__errno_location() #12
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1613, ptr noundef @.str.2, i32 noundef %1614, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1617, ptr noundef %1620, ptr noundef %1623, i32 noundef %1625) #11
  br label %1644

1627:                                             ; preds = %1605, %1598
  %1628 = load i32, ptr %53, align 4, !tbaa !5
  %1629 = call ptr @__errno_location() #12
  store i32 %1628, ptr %1629, align 4, !tbaa !5
  %1630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1631 = load i32, ptr @test_count, align 4, !tbaa !5
  %1632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = call ptr @s2n_strerror(i32 noundef %1633, ptr noundef @.str.4)
  %1635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror_debug(i32 noundef %1636, ptr noundef @.str.4)
  %1638 = call ptr @__errno_location() #12
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @strerror(i32 noundef %1639) #11
  %1641 = call ptr @__errno_location() #12
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1630, ptr noundef @.str.5, i32 noundef %1631, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1634, ptr noundef %1637, ptr noundef %1640, i32 noundef %1642) #11
  br label %1644

1644:                                             ; preds = %1627, %1610
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %1645

1645:                                             ; preds = %1644
  br label %1646

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

1647:                                             ; No predecessors!
  br label %1648

1648:                                             ; preds = %1647
  br label %1649

1649:                                             ; preds = %1648, %1589
  br label %1650

1650:                                             ; preds = %1649
  br label %1651

1651:                                             ; preds = %1650
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %43) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %42) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #11
  %1652 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef %38)
  %1653 = getelementptr inbounds %struct.s2n_result, ptr %54, i32 0, i32 0
  store i32 %1652, ptr %1653, align 4
  call void @llvm.lifetime.end.p0(i64 192, ptr %38) #11
  %1654 = call i32 @s2n_connection_ptr_free(ptr noundef %37)
  %1655 = getelementptr inbounds %struct.s2n_result, ptr %55, i32 0, i32 0
  store i32 %1654, ptr %1655, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #11
  %1656 = call i32 @s2n_connection_ptr_free(ptr noundef %36)
  %1657 = getelementptr inbounds %struct.s2n_result, ptr %56, i32 0, i32 0
  store i32 %1656, ptr %1657, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #11
  %1658 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1658, ptr %57, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #11
  %1659 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1659, ptr %58, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr %59) #11
  call void @llvm.memset.p0.i64(ptr align 8 %59, i8 0, i64 192, i1 false)
  br label %1660

1660:                                             ; preds = %1651
  %1661 = load i32, ptr @test_count, align 4, !tbaa !5
  %1662 = add nsw i32 %1661, 1
  store i32 %1662, ptr @test_count, align 4, !tbaa !5
  %1663 = load ptr, ptr %57, align 8, !tbaa !9
  %1664 = load ptr, ptr %58, align 8, !tbaa !9
  %1665 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %1663, ptr noundef %1664, ptr noundef %59)
  %1666 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  store i32 %1665, ptr %1666, align 4
  %1667 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  %1668 = load i32, ptr %1667, align 4
  %1669 = call zeroext i1 @s2n_result_is_ok(i32 %1668)
  br i1 %1669, label %1723, label %1670

1670:                                             ; preds = %1660
  br label %1671

1671:                                             ; preds = %1670
  br label %1672

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

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

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

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

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

1719:                                             ; preds = %1718
  br label %1720

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

1721:                                             ; No predecessors!
  br label %1722

1722:                                             ; preds = %1721
  br label %1723

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

1724:                                             ; preds = %1723
  br label %1725

1725:                                             ; preds = %1724
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #11
  store i64 0, ptr %62, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 16, ptr %63) #11
  %1726 = getelementptr inbounds %struct.iovec, ptr %63, i32 0, i32 0
  %1727 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  store ptr %1727, ptr %1726, align 8, !tbaa !16
  %1728 = getelementptr inbounds %struct.iovec, ptr %63, i32 0, i32 1
  %1729 = load i64, ptr %62, align 8, !tbaa !54
  store i64 %1729, ptr %1728, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 56, ptr %64) #11
  %1730 = getelementptr inbounds %struct.msghdr, ptr %64, i32 0, i32 0
  store ptr null, ptr %1730, align 8, !tbaa !20
  %1731 = getelementptr inbounds %struct.msghdr, ptr %64, i32 0, i32 1
  store i32 0, ptr %1731, align 8, !tbaa !22
  %1732 = getelementptr inbounds %struct.msghdr, ptr %64, i32 0, i32 2
  store ptr %63, ptr %1732, align 8, !tbaa !23
  %1733 = getelementptr inbounds %struct.msghdr, ptr %64, i32 0, i32 3
  store i64 1, ptr %1733, align 8, !tbaa !24
  %1734 = getelementptr inbounds %struct.msghdr, ptr %64, i32 0, i32 4
  store ptr null, ptr %1734, align 8, !tbaa !25
  %1735 = getelementptr inbounds %struct.msghdr, ptr %64, i32 0, i32 5
  store i64 0, ptr %1735, align 8, !tbaa !26
  %1736 = getelementptr inbounds %struct.msghdr, ptr %64, i32 0, i32 6
  store i32 0, ptr %1736, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 100, ptr %65) #11
  call void @llvm.memset.p0.i64(ptr align 16 %65, i8 0, i64 100, i1 false)
  br label %1737

1737:                                             ; preds = %1725
  %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 = getelementptr inbounds [100 x i8], ptr %65, i64 0, i64 0
  %1741 = call i32 @s2n_ktls_set_control_data(ptr noundef %64, ptr noundef %1740, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43)
  %1742 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  store i32 %1741, ptr %1742, align 4
  %1743 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  %1744 = load i32, ptr %1743, align 4
  %1745 = call zeroext i1 @s2n_result_is_ok(i32 %1744)
  br i1 %1745, label %1799, label %1746

1746:                                             ; preds = %1737
  br label %1747

1747:                                             ; preds = %1746
  br label %1748

1748:                                             ; preds = %1747
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %1749 = call ptr @__errno_location() #12
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  store i32 %1750, ptr %67, align 4, !tbaa !5
  %1751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1752 = call i32 @s2n_print_stacktrace(ptr noundef %1751)
  %1753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1754 = trunc i8 %1753 to i1
  br i1 %1754, label %1755, label %1777

1755:                                             ; preds = %1748
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = call i32 @fileno(ptr noundef %1756) #11
  %1758 = call i32 @isatty(i32 noundef %1757) #11
  %1759 = icmp ne i32 %1758, 0
  br i1 %1759, label %1760, label %1777

1760:                                             ; preds = %1755
  %1761 = load i32, ptr %67, align 4, !tbaa !5
  %1762 = call ptr @__errno_location() #12
  store i32 %1761, ptr %1762, align 4, !tbaa !5
  %1763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = call ptr @s2n_strerror(i32 noundef %1766, ptr noundef @.str.4)
  %1768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call ptr @s2n_strerror_debug(i32 noundef %1769, ptr noundef @.str.4)
  %1771 = call ptr @__errno_location() #12
  %1772 = load i32, ptr %1771, align 4, !tbaa !5
  %1773 = call ptr @strerror(i32 noundef %1772) #11
  %1774 = call ptr @__errno_location() #12
  %1775 = load i32, ptr %1774, align 4, !tbaa !5
  %1776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1763, ptr noundef @.str.2, i32 noundef %1764, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1767, ptr noundef %1770, ptr noundef %1773, i32 noundef %1775) #11
  br label %1794

1777:                                             ; preds = %1755, %1748
  %1778 = load i32, ptr %67, align 4, !tbaa !5
  %1779 = call ptr @__errno_location() #12
  store i32 %1778, ptr %1779, align 4, !tbaa !5
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1783, ptr noundef @.str.4)
  %1785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = call ptr @s2n_strerror_debug(i32 noundef %1786, ptr noundef @.str.4)
  %1788 = call ptr @__errno_location() #12
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call ptr @strerror(i32 noundef %1789) #11
  %1791 = call ptr @__errno_location() #12
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1780, ptr noundef @.str.5, i32 noundef %1781, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1784, ptr noundef %1787, ptr noundef %1790, i32 noundef %1792) #11
  br label %1794

1794:                                             ; preds = %1777, %1760
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %1795

1795:                                             ; preds = %1794
  br label %1796

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

1797:                                             ; No predecessors!
  br label %1798

1798:                                             ; preds = %1797
  br label %1799

1799:                                             ; preds = %1798, %1737
  br label %1800

1800:                                             ; preds = %1799
  br label %1801

1801:                                             ; preds = %1800
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #11
  %1802 = load ptr, ptr %57, align 8, !tbaa !9
  %1803 = getelementptr inbounds %struct.s2n_connection, ptr %1802, i32 0, i32 8
  %1804 = load ptr, ptr %1803, align 8, !tbaa !28
  %1805 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1804, ptr noundef %64)
  store i64 %1805, ptr %68, align 8, !tbaa !54
  br label %1806

1806:                                             ; preds = %1801
  %1807 = load i32, ptr @test_count, align 4, !tbaa !5
  %1808 = add nsw i32 %1807, 1
  store i32 %1808, ptr @test_count, align 4, !tbaa !5
  %1809 = load i64, ptr %68, align 8, !tbaa !54
  %1810 = load i64, ptr %62, align 8, !tbaa !54
  %1811 = icmp eq i64 %1809, %1810
  br i1 %1811, label %1865, label %1812

1812:                                             ; preds = %1806
  br label %1813

1813:                                             ; preds = %1812
  br label %1814

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

1821:                                             ; preds = %1814
  %1822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1823 = call i32 @fileno(ptr noundef %1822) #11
  %1824 = call i32 @isatty(i32 noundef %1823) #11
  %1825 = icmp ne i32 %1824, 0
  br i1 %1825, label %1826, label %1843

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

1843:                                             ; preds = %1821, %1814
  %1844 = load i32, ptr %69, align 4, !tbaa !5
  %1845 = call ptr @__errno_location() #12
  store i32 %1844, ptr %1845, align 4, !tbaa !5
  %1846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1847 = load i32, ptr @test_count, align 4, !tbaa !5
  %1848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1849 = load i32, ptr %1848, align 4, !tbaa !5
  %1850 = call ptr @s2n_strerror(i32 noundef %1849, ptr noundef @.str.4)
  %1851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  %1853 = call ptr @s2n_strerror_debug(i32 noundef %1852, ptr noundef @.str.4)
  %1854 = call ptr @__errno_location() #12
  %1855 = load i32, ptr %1854, align 4, !tbaa !5
  %1856 = call ptr @strerror(i32 noundef %1855) #11
  %1857 = call ptr @__errno_location() #12
  %1858 = load i32, ptr %1857, align 4, !tbaa !5
  %1859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1846, ptr noundef @.str.5, i32 noundef %1847, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1850, ptr noundef %1853, ptr noundef %1856, i32 noundef %1858) #11
  br label %1860

1860:                                             ; preds = %1843, %1826
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %1861

1861:                                             ; preds = %1860
  br label %1862

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

1863:                                             ; No predecessors!
  br label %1864

1864:                                             ; preds = %1863
  br label %1865

1865:                                             ; preds = %1864, %1806
  br label %1866

1866:                                             ; preds = %1865
  br label %1867

1867:                                             ; preds = %1866
  br label %1868

1868:                                             ; preds = %1867
  %1869 = load i32, ptr @test_count, align 4, !tbaa !5
  %1870 = add nsw i32 %1869, 1
  store i32 %1870, ptr @test_count, align 4, !tbaa !5
  %1871 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %59, i32 0, i32 0
  %1872 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %1871, i32 0, i32 0
  %1873 = getelementptr inbounds %struct.s2n_stuffer, ptr %1872, i32 0, i32 2
  %1874 = load i32, ptr %1873, align 4, !tbaa !59
  %1875 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %59, i32 0, i32 0
  %1876 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %1875, i32 0, i32 0
  %1877 = getelementptr inbounds %struct.s2n_stuffer, ptr %1876, i32 0, i32 1
  %1878 = load i32, ptr %1877, align 8, !tbaa !60
  %1879 = sub i32 %1874, %1878
  %1880 = icmp eq i32 %1879, 0
  br i1 %1880, label %1934, label %1881

1881:                                             ; preds = %1868
  br label %1882

1882:                                             ; preds = %1881
  br label %1883

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

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

1895:                                             ; preds = %1890
  %1896 = load i32, ptr %70, align 4, !tbaa !5
  %1897 = call ptr @__errno_location() #12
  store i32 %1896, ptr %1897, align 4, !tbaa !5
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1899 = load i32, ptr @test_count, align 4, !tbaa !5
  %1900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  %1902 = call ptr @s2n_strerror(i32 noundef %1901, ptr noundef @.str.4)
  %1903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1904 = load i32, ptr %1903, align 4, !tbaa !5
  %1905 = call ptr @s2n_strerror_debug(i32 noundef %1904, ptr noundef @.str.4)
  %1906 = call ptr @__errno_location() #12
  %1907 = load i32, ptr %1906, align 4, !tbaa !5
  %1908 = call ptr @strerror(i32 noundef %1907) #11
  %1909 = call ptr @__errno_location() #12
  %1910 = load i32, ptr %1909, align 4, !tbaa !5
  %1911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1898, ptr noundef @.str.2, i32 noundef %1899, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 115, ptr noundef %1902, ptr noundef %1905, ptr noundef %1908, i32 noundef %1910) #11
  br label %1929

1912:                                             ; preds = %1890, %1883
  %1913 = load i32, ptr %70, align 4, !tbaa !5
  %1914 = call ptr @__errno_location() #12
  store i32 %1913, ptr %1914, align 4, !tbaa !5
  %1915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1916 = load i32, ptr @test_count, align 4, !tbaa !5
  %1917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1918 = load i32, ptr %1917, align 4, !tbaa !5
  %1919 = call ptr @s2n_strerror(i32 noundef %1918, ptr noundef @.str.4)
  %1920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1921 = load i32, ptr %1920, align 4, !tbaa !5
  %1922 = call ptr @s2n_strerror_debug(i32 noundef %1921, ptr noundef @.str.4)
  %1923 = call ptr @__errno_location() #12
  %1924 = load i32, ptr %1923, align 4, !tbaa !5
  %1925 = call ptr @strerror(i32 noundef %1924) #11
  %1926 = call ptr @__errno_location() #12
  %1927 = load i32, ptr %1926, align 4, !tbaa !5
  %1928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1915, ptr noundef @.str.5, i32 noundef %1916, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 115, ptr noundef %1919, ptr noundef %1922, ptr noundef %1925, i32 noundef %1927) #11
  br label %1929

1929:                                             ; preds = %1912, %1895
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %1930

1930:                                             ; preds = %1929
  br label %1931

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

1932:                                             ; No predecessors!
  br label %1933

1933:                                             ; preds = %1932
  br label %1934

1934:                                             ; preds = %1933, %1868
  br label %1935

1935:                                             ; preds = %1934
  br label %1936

1936:                                             ; preds = %1935
  br label %1937

1937:                                             ; preds = %1936
  %1938 = load i32, ptr @test_count, align 4, !tbaa !5
  %1939 = add nsw i32 %1938, 1
  store i32 %1939, ptr @test_count, align 4, !tbaa !5
  %1940 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %59, i32 0, i32 0
  %1941 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %1940, i32 0, i32 2
  %1942 = load i64, ptr %1941, align 8, !tbaa !55
  %1943 = icmp eq i64 %1942, 1
  br i1 %1943, label %1997, label %1944

1944:                                             ; preds = %1937
  br label %1945

1945:                                             ; preds = %1944
  br label %1946

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

1953:                                             ; preds = %1946
  %1954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1955 = call i32 @fileno(ptr noundef %1954) #11
  %1956 = call i32 @isatty(i32 noundef %1955) #11
  %1957 = icmp ne i32 %1956, 0
  br i1 %1957, label %1958, label %1975

1958:                                             ; preds = %1953
  %1959 = load i32, ptr %71, align 4, !tbaa !5
  %1960 = call ptr @__errno_location() #12
  store i32 %1959, ptr %1960, align 4, !tbaa !5
  %1961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1962 = load i32, ptr @test_count, align 4, !tbaa !5
  %1963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1964 = load i32, ptr %1963, align 4, !tbaa !5
  %1965 = call ptr @s2n_strerror(i32 noundef %1964, ptr noundef @.str.4)
  %1966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1967 = load i32, ptr %1966, align 4, !tbaa !5
  %1968 = call ptr @s2n_strerror_debug(i32 noundef %1967, ptr noundef @.str.4)
  %1969 = call ptr @__errno_location() #12
  %1970 = load i32, ptr %1969, align 4, !tbaa !5
  %1971 = call ptr @strerror(i32 noundef %1970) #11
  %1972 = call ptr @__errno_location() #12
  %1973 = load i32, ptr %1972, align 4, !tbaa !5
  %1974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1961, ptr noundef @.str.2, i32 noundef %1962, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 117, ptr noundef %1965, ptr noundef %1968, ptr noundef %1971, i32 noundef %1973) #11
  br label %1992

1975:                                             ; preds = %1953, %1946
  %1976 = load i32, ptr %71, align 4, !tbaa !5
  %1977 = call ptr @__errno_location() #12
  store i32 %1976, ptr %1977, align 4, !tbaa !5
  %1978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1979 = load i32, ptr @test_count, align 4, !tbaa !5
  %1980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1981 = load i32, ptr %1980, align 4, !tbaa !5
  %1982 = call ptr @s2n_strerror(i32 noundef %1981, ptr noundef @.str.4)
  %1983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1984 = load i32, ptr %1983, align 4, !tbaa !5
  %1985 = call ptr @s2n_strerror_debug(i32 noundef %1984, ptr noundef @.str.4)
  %1986 = call ptr @__errno_location() #12
  %1987 = load i32, ptr %1986, align 4, !tbaa !5
  %1988 = call ptr @strerror(i32 noundef %1987) #11
  %1989 = call ptr @__errno_location() #12
  %1990 = load i32, ptr %1989, align 4, !tbaa !5
  %1991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1978, ptr noundef @.str.5, i32 noundef %1979, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 117, ptr noundef %1982, ptr noundef %1985, ptr noundef %1988, i32 noundef %1990) #11
  br label %1992

1992:                                             ; preds = %1975, %1958
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %1993

1993:                                             ; preds = %1992
  br label %1994

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

1995:                                             ; No predecessors!
  br label %1996

1996:                                             ; preds = %1995
  br label %1997

1997:                                             ; preds = %1996, %1937
  br label %1998

1998:                                             ; preds = %1997
  br label %1999

1999:                                             ; preds = %1998
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %65) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %64) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  %2000 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef %59)
  %2001 = getelementptr inbounds %struct.s2n_result, ptr %72, i32 0, i32 0
  store i32 %2000, ptr %2001, align 4
  call void @llvm.lifetime.end.p0(i64 192, ptr %59) #11
  %2002 = call i32 @s2n_connection_ptr_free(ptr noundef %58)
  %2003 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  store i32 %2002, ptr %2003, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #11
  %2004 = call i32 @s2n_connection_ptr_free(ptr noundef %57)
  %2005 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  store i32 %2004, ptr %2005, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #11
  %2006 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2006, ptr %75, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #11
  %2007 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2007, ptr %76, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr %77) #11
  call void @llvm.memset.p0.i64(ptr align 8 %77, i8 0, i64 192, i1 false)
  br label %2008

2008:                                             ; preds = %1999
  %2009 = load i32, ptr @test_count, align 4, !tbaa !5
  %2010 = add nsw i32 %2009, 1
  store i32 %2010, ptr @test_count, align 4, !tbaa !5
  %2011 = load ptr, ptr %75, align 8, !tbaa !9
  %2012 = load ptr, ptr %76, align 8, !tbaa !9
  %2013 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %2011, ptr noundef %2012, ptr noundef %77)
  %2014 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  store i32 %2013, ptr %2014, align 4
  %2015 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  %2016 = load i32, ptr %2015, align 4
  %2017 = call zeroext i1 @s2n_result_is_ok(i32 %2016)
  br i1 %2017, label %2071, label %2018

2018:                                             ; preds = %2008
  br label %2019

2019:                                             ; preds = %2018
  br label %2020

2020:                                             ; preds = %2019
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  %2021 = call ptr @__errno_location() #12
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  store i32 %2022, ptr %79, align 4, !tbaa !5
  %2023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2024 = call i32 @s2n_print_stacktrace(ptr noundef %2023)
  %2025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2026 = trunc i8 %2025 to i1
  br i1 %2026, label %2027, label %2049

2027:                                             ; preds = %2020
  %2028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2029 = call i32 @fileno(ptr noundef %2028) #11
  %2030 = call i32 @isatty(i32 noundef %2029) #11
  %2031 = icmp ne i32 %2030, 0
  br i1 %2031, label %2032, label %2049

2032:                                             ; preds = %2027
  %2033 = load i32, ptr %79, align 4, !tbaa !5
  %2034 = call ptr @__errno_location() #12
  store i32 %2033, ptr %2034, align 4, !tbaa !5
  %2035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2036 = load i32, ptr @test_count, align 4, !tbaa !5
  %2037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2038 = load i32, ptr %2037, align 4, !tbaa !5
  %2039 = call ptr @s2n_strerror(i32 noundef %2038, ptr noundef @.str.4)
  %2040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2041 = load i32, ptr %2040, align 4, !tbaa !5
  %2042 = call ptr @s2n_strerror_debug(i32 noundef %2041, ptr noundef @.str.4)
  %2043 = call ptr @__errno_location() #12
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  %2045 = call ptr @strerror(i32 noundef %2044) #11
  %2046 = call ptr @__errno_location() #12
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2035, ptr noundef @.str.2, i32 noundef %2036, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2039, ptr noundef %2042, ptr noundef %2045, i32 noundef %2047) #11
  br label %2066

2049:                                             ; preds = %2027, %2020
  %2050 = load i32, ptr %79, align 4, !tbaa !5
  %2051 = call ptr @__errno_location() #12
  store i32 %2050, ptr %2051, align 4, !tbaa !5
  %2052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2053 = load i32, ptr @test_count, align 4, !tbaa !5
  %2054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2055 = load i32, ptr %2054, align 4, !tbaa !5
  %2056 = call ptr @s2n_strerror(i32 noundef %2055, ptr noundef @.str.4)
  %2057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2058 = load i32, ptr %2057, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror_debug(i32 noundef %2058, ptr noundef @.str.4)
  %2060 = call ptr @__errno_location() #12
  %2061 = load i32, ptr %2060, align 4, !tbaa !5
  %2062 = call ptr @strerror(i32 noundef %2061) #11
  %2063 = call ptr @__errno_location() #12
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  %2065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2052, ptr noundef @.str.5, i32 noundef %2053, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2056, ptr noundef %2059, ptr noundef %2062, i32 noundef %2064) #11
  br label %2066

2066:                                             ; preds = %2049, %2032
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %2067

2067:                                             ; preds = %2066
  br label %2068

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

2069:                                             ; No predecessors!
  br label %2070

2070:                                             ; preds = %2069
  br label %2071

2071:                                             ; preds = %2070, %2008
  br label %2072

2072:                                             ; preds = %2071
  br label %2073

2073:                                             ; preds = %2072
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #11
  store i64 0, ptr %80, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 80, ptr %81) #11
  call void @llvm.memset.p0.i64(ptr align 16 %81, i8 0, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #11
  store i64 0, ptr %82, align 8, !tbaa !54
  br label %2074

2074:                                             ; preds = %2090, %2073
  %2075 = load i64, ptr %82, align 8, !tbaa !54
  %2076 = icmp ult i64 %2075, 5
  br i1 %2076, label %2078, label %2077

2077:                                             ; preds = %2074
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #11
  br label %2093

2078:                                             ; preds = %2074
  %2079 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %2080 = load i64, ptr %80, align 8, !tbaa !54
  %2081 = getelementptr inbounds i8, ptr %2079, i64 %2080
  %2082 = load i64, ptr %82, align 8, !tbaa !54
  %2083 = getelementptr inbounds [5 x %struct.iovec], ptr %81, i64 0, i64 %2082
  %2084 = getelementptr inbounds %struct.iovec, ptr %2083, i32 0, i32 0
  store ptr %2081, ptr %2084, align 16, !tbaa !16
  %2085 = load i64, ptr %82, align 8, !tbaa !54
  %2086 = getelementptr inbounds [5 x %struct.iovec], ptr %81, i64 0, i64 %2085
  %2087 = getelementptr inbounds %struct.iovec, ptr %2086, i32 0, i32 1
  store i64 10, ptr %2087, align 8, !tbaa !19
  %2088 = load i64, ptr %80, align 8, !tbaa !54
  %2089 = add i64 %2088, 10
  store i64 %2089, ptr %80, align 8, !tbaa !54
  br label %2090

2090:                                             ; preds = %2078
  %2091 = load i64, ptr %82, align 8, !tbaa !54
  %2092 = add i64 %2091, 1
  store i64 %2092, ptr %82, align 8, !tbaa !54
  br label %2074, !llvm.loop !61

2093:                                             ; preds = %2077
  call void @llvm.lifetime.start.p0(i64 56, ptr %83) #11
  %2094 = getelementptr inbounds %struct.msghdr, ptr %83, i32 0, i32 0
  store ptr null, ptr %2094, align 8, !tbaa !20
  %2095 = getelementptr inbounds %struct.msghdr, ptr %83, i32 0, i32 1
  store i32 0, ptr %2095, align 8, !tbaa !22
  %2096 = getelementptr inbounds %struct.msghdr, ptr %83, i32 0, i32 2
  %2097 = getelementptr inbounds [5 x %struct.iovec], ptr %81, i64 0, i64 0
  store ptr %2097, ptr %2096, align 8, !tbaa !23
  %2098 = getelementptr inbounds %struct.msghdr, ptr %83, i32 0, i32 3
  store i64 5, ptr %2098, align 8, !tbaa !24
  %2099 = getelementptr inbounds %struct.msghdr, ptr %83, i32 0, i32 4
  store ptr null, ptr %2099, align 8, !tbaa !25
  %2100 = getelementptr inbounds %struct.msghdr, ptr %83, i32 0, i32 5
  store i64 0, ptr %2100, align 8, !tbaa !26
  %2101 = getelementptr inbounds %struct.msghdr, ptr %83, i32 0, i32 6
  store i32 0, ptr %2101, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 100, ptr %84) #11
  call void @llvm.memset.p0.i64(ptr align 16 %84, i8 0, i64 100, i1 false)
  br label %2102

2102:                                             ; preds = %2093
  %2103 = load i32, ptr @test_count, align 4, !tbaa !5
  %2104 = add nsw i32 %2103, 1
  store i32 %2104, ptr @test_count, align 4, !tbaa !5
  %2105 = getelementptr inbounds [100 x i8], ptr %84, i64 0, i64 0
  %2106 = call i32 @s2n_ktls_set_control_data(ptr noundef %83, ptr noundef %2105, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43)
  %2107 = getelementptr inbounds %struct.s2n_result, ptr %85, i32 0, i32 0
  store i32 %2106, ptr %2107, align 4
  %2108 = getelementptr inbounds %struct.s2n_result, ptr %85, i32 0, i32 0
  %2109 = load i32, ptr %2108, align 4
  %2110 = call zeroext i1 @s2n_result_is_ok(i32 %2109)
  br i1 %2110, label %2164, label %2111

2111:                                             ; preds = %2102
  br label %2112

2112:                                             ; preds = %2111
  br label %2113

2113:                                             ; preds = %2112
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  %2114 = call ptr @__errno_location() #12
  %2115 = load i32, ptr %2114, align 4, !tbaa !5
  store i32 %2115, ptr %86, align 4, !tbaa !5
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = call i32 @s2n_print_stacktrace(ptr noundef %2116)
  %2118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2119 = trunc i8 %2118 to i1
  br i1 %2119, label %2120, label %2142

2120:                                             ; preds = %2113
  %2121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2122 = call i32 @fileno(ptr noundef %2121) #11
  %2123 = call i32 @isatty(i32 noundef %2122) #11
  %2124 = icmp ne i32 %2123, 0
  br i1 %2124, label %2125, label %2142

2125:                                             ; preds = %2120
  %2126 = load i32, ptr %86, align 4, !tbaa !5
  %2127 = call ptr @__errno_location() #12
  store i32 %2126, ptr %2127, align 4, !tbaa !5
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = load i32, ptr @test_count, align 4, !tbaa !5
  %2130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call ptr @s2n_strerror(i32 noundef %2131, ptr noundef @.str.4)
  %2133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  %2135 = call ptr @s2n_strerror_debug(i32 noundef %2134, ptr noundef @.str.4)
  %2136 = call ptr @__errno_location() #12
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call ptr @strerror(i32 noundef %2137) #11
  %2139 = call ptr @__errno_location() #12
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2128, ptr noundef @.str.2, i32 noundef %2129, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2132, ptr noundef %2135, ptr noundef %2138, i32 noundef %2140) #11
  br label %2159

2142:                                             ; preds = %2120, %2113
  %2143 = load i32, ptr %86, align 4, !tbaa !5
  %2144 = call ptr @__errno_location() #12
  store i32 %2143, ptr %2144, align 4, !tbaa !5
  %2145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2146 = load i32, ptr @test_count, align 4, !tbaa !5
  %2147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call ptr @s2n_strerror(i32 noundef %2148, ptr noundef @.str.4)
  %2150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2151 = load i32, ptr %2150, align 4, !tbaa !5
  %2152 = call ptr @s2n_strerror_debug(i32 noundef %2151, ptr noundef @.str.4)
  %2153 = call ptr @__errno_location() #12
  %2154 = load i32, ptr %2153, align 4, !tbaa !5
  %2155 = call ptr @strerror(i32 noundef %2154) #11
  %2156 = call ptr @__errno_location() #12
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2145, ptr noundef @.str.5, i32 noundef %2146, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2149, ptr noundef %2152, ptr noundef %2155, i32 noundef %2157) #11
  br label %2159

2159:                                             ; preds = %2142, %2125
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %2160

2160:                                             ; preds = %2159
  br label %2161

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

2162:                                             ; No predecessors!
  br label %2163

2163:                                             ; preds = %2162
  br label %2164

2164:                                             ; preds = %2163, %2102
  br label %2165

2165:                                             ; preds = %2164
  br label %2166

2166:                                             ; preds = %2165
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #11
  %2167 = load ptr, ptr %75, align 8, !tbaa !9
  %2168 = getelementptr inbounds %struct.s2n_connection, ptr %2167, i32 0, i32 8
  %2169 = load ptr, ptr %2168, align 8, !tbaa !28
  %2170 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %2169, ptr noundef %83)
  store i64 %2170, ptr %87, align 8, !tbaa !54
  br label %2171

2171:                                             ; preds = %2166
  %2172 = load i32, ptr @test_count, align 4, !tbaa !5
  %2173 = add nsw i32 %2172, 1
  store i32 %2173, ptr @test_count, align 4, !tbaa !5
  %2174 = load i64, ptr %87, align 8, !tbaa !54
  %2175 = load i64, ptr %80, align 8, !tbaa !54
  %2176 = icmp eq i64 %2174, %2175
  br i1 %2176, label %2230, label %2177

2177:                                             ; preds = %2171
  br label %2178

2178:                                             ; preds = %2177
  br label %2179

2179:                                             ; preds = %2178
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %2180 = call ptr @__errno_location() #12
  %2181 = load i32, ptr %2180, align 4, !tbaa !5
  store i32 %2181, ptr %88, align 4, !tbaa !5
  %2182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2183 = call i32 @s2n_print_stacktrace(ptr noundef %2182)
  %2184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2185 = trunc i8 %2184 to i1
  br i1 %2185, label %2186, label %2208

2186:                                             ; preds = %2179
  %2187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2188 = call i32 @fileno(ptr noundef %2187) #11
  %2189 = call i32 @isatty(i32 noundef %2188) #11
  %2190 = icmp ne i32 %2189, 0
  br i1 %2190, label %2191, label %2208

2191:                                             ; preds = %2186
  %2192 = load i32, ptr %88, align 4, !tbaa !5
  %2193 = call ptr @__errno_location() #12
  store i32 %2192, ptr %2193, align 4, !tbaa !5
  %2194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2195 = load i32, ptr @test_count, align 4, !tbaa !5
  %2196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2197 = load i32, ptr %2196, align 4, !tbaa !5
  %2198 = call ptr @s2n_strerror(i32 noundef %2197, ptr noundef @.str.4)
  %2199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2200 = load i32, ptr %2199, align 4, !tbaa !5
  %2201 = call ptr @s2n_strerror_debug(i32 noundef %2200, ptr noundef @.str.4)
  %2202 = call ptr @__errno_location() #12
  %2203 = load i32, ptr %2202, align 4, !tbaa !5
  %2204 = call ptr @strerror(i32 noundef %2203) #11
  %2205 = call ptr @__errno_location() #12
  %2206 = load i32, ptr %2205, align 4, !tbaa !5
  %2207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2194, ptr noundef @.str.2, i32 noundef %2195, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2198, ptr noundef %2201, ptr noundef %2204, i32 noundef %2206) #11
  br label %2225

2208:                                             ; preds = %2186, %2179
  %2209 = load i32, ptr %88, align 4, !tbaa !5
  %2210 = call ptr @__errno_location() #12
  store i32 %2209, ptr %2210, align 4, !tbaa !5
  %2211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2212 = load i32, ptr @test_count, align 4, !tbaa !5
  %2213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2214 = load i32, ptr %2213, align 4, !tbaa !5
  %2215 = call ptr @s2n_strerror(i32 noundef %2214, ptr noundef @.str.4)
  %2216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2217 = load i32, ptr %2216, align 4, !tbaa !5
  %2218 = call ptr @s2n_strerror_debug(i32 noundef %2217, ptr noundef @.str.4)
  %2219 = call ptr @__errno_location() #12
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  %2221 = call ptr @strerror(i32 noundef %2220) #11
  %2222 = call ptr @__errno_location() #12
  %2223 = load i32, ptr %2222, align 4, !tbaa !5
  %2224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2211, ptr noundef @.str.5, i32 noundef %2212, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2215, ptr noundef %2218, ptr noundef %2221, i32 noundef %2223) #11
  br label %2225

2225:                                             ; preds = %2208, %2191
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %2226

2226:                                             ; preds = %2225
  br label %2227

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

2228:                                             ; No predecessors!
  br label %2229

2229:                                             ; preds = %2228
  br label %2230

2230:                                             ; preds = %2229, %2171
  br label %2231

2231:                                             ; preds = %2230
  br label %2232

2232:                                             ; preds = %2231
  br label %2233

2233:                                             ; preds = %2232
  %2234 = load i32, ptr @test_count, align 4, !tbaa !5
  %2235 = add nsw i32 %2234, 1
  store i32 %2235, ptr @test_count, align 4, !tbaa !5
  %2236 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %77, i32 0, i32 0
  %2237 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %2238 = load i64, ptr %80, align 8, !tbaa !54
  %2239 = trunc i64 %2238 to i16
  %2240 = call i32 @s2n_test_validate_data(ptr noundef %2236, ptr noundef %2237, i16 noundef zeroext %2239)
  %2241 = getelementptr inbounds %struct.s2n_result, ptr %89, i32 0, i32 0
  store i32 %2240, ptr %2241, align 4
  %2242 = getelementptr inbounds %struct.s2n_result, ptr %89, i32 0, i32 0
  %2243 = load i32, ptr %2242, align 4
  %2244 = call zeroext i1 @s2n_result_is_ok(i32 %2243)
  br i1 %2244, label %2298, label %2245

2245:                                             ; preds = %2233
  br label %2246

2246:                                             ; preds = %2245
  br label %2247

2247:                                             ; preds = %2246
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %2248 = call ptr @__errno_location() #12
  %2249 = load i32, ptr %2248, align 4, !tbaa !5
  store i32 %2249, ptr %90, align 4, !tbaa !5
  %2250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2251 = call i32 @s2n_print_stacktrace(ptr noundef %2250)
  %2252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2253 = trunc i8 %2252 to i1
  br i1 %2253, label %2254, label %2276

2254:                                             ; preds = %2247
  %2255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2256 = call i32 @fileno(ptr noundef %2255) #11
  %2257 = call i32 @isatty(i32 noundef %2256) #11
  %2258 = icmp ne i32 %2257, 0
  br i1 %2258, label %2259, label %2276

2259:                                             ; preds = %2254
  %2260 = load i32, ptr %90, align 4, !tbaa !5
  %2261 = call ptr @__errno_location() #12
  store i32 %2260, ptr %2261, align 4, !tbaa !5
  %2262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2263 = load i32, ptr @test_count, align 4, !tbaa !5
  %2264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2265 = load i32, ptr %2264, align 4, !tbaa !5
  %2266 = call ptr @s2n_strerror(i32 noundef %2265, ptr noundef @.str.4)
  %2267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2268 = load i32, ptr %2267, align 4, !tbaa !5
  %2269 = call ptr @s2n_strerror_debug(i32 noundef %2268, ptr noundef @.str.4)
  %2270 = call ptr @__errno_location() #12
  %2271 = load i32, ptr %2270, align 4, !tbaa !5
  %2272 = call ptr @strerror(i32 noundef %2271) #11
  %2273 = call ptr @__errno_location() #12
  %2274 = load i32, ptr %2273, align 4, !tbaa !5
  %2275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2262, ptr noundef @.str.2, i32 noundef %2263, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 146, ptr noundef %2266, ptr noundef %2269, ptr noundef %2272, i32 noundef %2274) #11
  br label %2293

2276:                                             ; preds = %2254, %2247
  %2277 = load i32, ptr %90, align 4, !tbaa !5
  %2278 = call ptr @__errno_location() #12
  store i32 %2277, ptr %2278, align 4, !tbaa !5
  %2279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2280 = load i32, ptr @test_count, align 4, !tbaa !5
  %2281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2282 = load i32, ptr %2281, align 4, !tbaa !5
  %2283 = call ptr @s2n_strerror(i32 noundef %2282, ptr noundef @.str.4)
  %2284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2285 = load i32, ptr %2284, align 4, !tbaa !5
  %2286 = call ptr @s2n_strerror_debug(i32 noundef %2285, ptr noundef @.str.4)
  %2287 = call ptr @__errno_location() #12
  %2288 = load i32, ptr %2287, align 4, !tbaa !5
  %2289 = call ptr @strerror(i32 noundef %2288) #11
  %2290 = call ptr @__errno_location() #12
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %2292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2279, ptr noundef @.str.5, i32 noundef %2280, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 146, ptr noundef %2283, ptr noundef %2286, ptr noundef %2289, i32 noundef %2291) #11
  br label %2293

2293:                                             ; preds = %2276, %2259
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %2294

2294:                                             ; preds = %2293
  br label %2295

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

2296:                                             ; No predecessors!
  br label %2297

2297:                                             ; preds = %2296
  br label %2298

2298:                                             ; preds = %2297, %2233
  br label %2299

2299:                                             ; preds = %2298
  br label %2300

2300:                                             ; preds = %2299
  br label %2301

2301:                                             ; preds = %2300
  %2302 = load i32, ptr @test_count, align 4, !tbaa !5
  %2303 = add nsw i32 %2302, 1
  store i32 %2303, ptr @test_count, align 4, !tbaa !5
  %2304 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %77, i32 0, i32 0
  %2305 = load i64, ptr %80, align 8, !tbaa !54
  %2306 = trunc i64 %2305 to i16
  %2307 = call i32 @s2n_test_validate_ancillary(ptr noundef %2304, i8 noundef zeroext 43, i16 noundef zeroext %2306)
  %2308 = getelementptr inbounds %struct.s2n_result, ptr %91, i32 0, i32 0
  store i32 %2307, ptr %2308, align 4
  %2309 = getelementptr inbounds %struct.s2n_result, ptr %91, i32 0, i32 0
  %2310 = load i32, ptr %2309, align 4
  %2311 = call zeroext i1 @s2n_result_is_ok(i32 %2310)
  br i1 %2311, label %2365, label %2312

2312:                                             ; preds = %2301
  br label %2313

2313:                                             ; preds = %2312
  br label %2314

2314:                                             ; preds = %2313
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %2315 = call ptr @__errno_location() #12
  %2316 = load i32, ptr %2315, align 4, !tbaa !5
  store i32 %2316, ptr %92, align 4, !tbaa !5
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = call i32 @s2n_print_stacktrace(ptr noundef %2317)
  %2319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2320 = trunc i8 %2319 to i1
  br i1 %2320, label %2321, label %2343

2321:                                             ; preds = %2314
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = call i32 @fileno(ptr noundef %2322) #11
  %2324 = call i32 @isatty(i32 noundef %2323) #11
  %2325 = icmp ne i32 %2324, 0
  br i1 %2325, label %2326, label %2343

2326:                                             ; preds = %2321
  %2327 = load i32, ptr %92, align 4, !tbaa !5
  %2328 = call ptr @__errno_location() #12
  store i32 %2327, ptr %2328, align 4, !tbaa !5
  %2329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2330 = load i32, ptr @test_count, align 4, !tbaa !5
  %2331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2332 = load i32, ptr %2331, align 4, !tbaa !5
  %2333 = call ptr @s2n_strerror(i32 noundef %2332, ptr noundef @.str.4)
  %2334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = call ptr @s2n_strerror_debug(i32 noundef %2335, ptr noundef @.str.4)
  %2337 = call ptr @__errno_location() #12
  %2338 = load i32, ptr %2337, align 4, !tbaa !5
  %2339 = call ptr @strerror(i32 noundef %2338) #11
  %2340 = call ptr @__errno_location() #12
  %2341 = load i32, ptr %2340, align 4, !tbaa !5
  %2342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2329, ptr noundef @.str.2, i32 noundef %2330, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2333, ptr noundef %2336, ptr noundef %2339, i32 noundef %2341) #11
  br label %2360

2343:                                             ; preds = %2321, %2314
  %2344 = load i32, ptr %92, align 4, !tbaa !5
  %2345 = call ptr @__errno_location() #12
  store i32 %2344, ptr %2345, align 4, !tbaa !5
  %2346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2347 = load i32, ptr @test_count, align 4, !tbaa !5
  %2348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror(i32 noundef %2349, ptr noundef @.str.4)
  %2351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2352 = load i32, ptr %2351, align 4, !tbaa !5
  %2353 = call ptr @s2n_strerror_debug(i32 noundef %2352, ptr noundef @.str.4)
  %2354 = call ptr @__errno_location() #12
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  %2356 = call ptr @strerror(i32 noundef %2355) #11
  %2357 = call ptr @__errno_location() #12
  %2358 = load i32, ptr %2357, align 4, !tbaa !5
  %2359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2346, ptr noundef @.str.5, i32 noundef %2347, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2350, ptr noundef %2353, ptr noundef %2356, i32 noundef %2358) #11
  br label %2360

2360:                                             ; preds = %2343, %2326
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %2361

2361:                                             ; preds = %2360
  br label %2362

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

2363:                                             ; No predecessors!
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

2365:                                             ; preds = %2364, %2301
  br label %2366

2366:                                             ; preds = %2365
  br label %2367

2367:                                             ; preds = %2366
  br label %2368

2368:                                             ; preds = %2367
  %2369 = load i32, ptr @test_count, align 4, !tbaa !5
  %2370 = add nsw i32 %2369, 1
  store i32 %2370, ptr @test_count, align 4, !tbaa !5
  %2371 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %77, i32 0, i32 0
  %2372 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %2371, i32 0, i32 0
  %2373 = getelementptr inbounds %struct.s2n_stuffer, ptr %2372, i32 0, i32 2
  %2374 = load i32, ptr %2373, align 4, !tbaa !59
  %2375 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %77, i32 0, i32 0
  %2376 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %2375, i32 0, i32 0
  %2377 = getelementptr inbounds %struct.s2n_stuffer, ptr %2376, i32 0, i32 1
  %2378 = load i32, ptr %2377, align 8, !tbaa !60
  %2379 = sub i32 %2374, %2378
  %2380 = icmp eq i32 %2379, 3
  br i1 %2380, label %2434, label %2381

2381:                                             ; preds = %2368
  br label %2382

2382:                                             ; preds = %2381
  br label %2383

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

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

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

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

2429:                                             ; preds = %2412, %2395
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %2430

2430:                                             ; preds = %2429
  br label %2431

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

2432:                                             ; No predecessors!
  br label %2433

2433:                                             ; preds = %2432
  br label %2434

2434:                                             ; preds = %2433, %2368
  br label %2435

2435:                                             ; preds = %2434
  br label %2436

2436:                                             ; preds = %2435
  br label %2437

2437:                                             ; preds = %2436
  %2438 = load i32, ptr @test_count, align 4, !tbaa !5
  %2439 = add nsw i32 %2438, 1
  store i32 %2439, ptr @test_count, align 4, !tbaa !5
  %2440 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %77, i32 0, i32 0
  %2441 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %2440, i32 0, i32 2
  %2442 = load i64, ptr %2441, align 8, !tbaa !55
  %2443 = icmp eq i64 %2442, 1
  br i1 %2443, label %2497, label %2444

2444:                                             ; preds = %2437
  br label %2445

2445:                                             ; preds = %2444
  br label %2446

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

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

2458:                                             ; preds = %2453
  %2459 = load i32, ptr %94, align 4, !tbaa !5
  %2460 = call ptr @__errno_location() #12
  store i32 %2459, ptr %2460, align 4, !tbaa !5
  %2461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2462 = load i32, ptr @test_count, align 4, !tbaa !5
  %2463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2464 = load i32, ptr %2463, align 4, !tbaa !5
  %2465 = call ptr @s2n_strerror(i32 noundef %2464, ptr noundef @.str.4)
  %2466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2467 = load i32, ptr %2466, align 4, !tbaa !5
  %2468 = call ptr @s2n_strerror_debug(i32 noundef %2467, ptr noundef @.str.4)
  %2469 = call ptr @__errno_location() #12
  %2470 = load i32, ptr %2469, align 4, !tbaa !5
  %2471 = call ptr @strerror(i32 noundef %2470) #11
  %2472 = call ptr @__errno_location() #12
  %2473 = load i32, ptr %2472, align 4, !tbaa !5
  %2474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2461, ptr noundef @.str.2, i32 noundef %2462, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 150, ptr noundef %2465, ptr noundef %2468, ptr noundef %2471, i32 noundef %2473) #11
  br label %2492

2475:                                             ; preds = %2453, %2446
  %2476 = load i32, ptr %94, align 4, !tbaa !5
  %2477 = call ptr @__errno_location() #12
  store i32 %2476, ptr %2477, align 4, !tbaa !5
  %2478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2479 = load i32, ptr @test_count, align 4, !tbaa !5
  %2480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2481 = load i32, ptr %2480, align 4, !tbaa !5
  %2482 = call ptr @s2n_strerror(i32 noundef %2481, ptr noundef @.str.4)
  %2483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  %2485 = call ptr @s2n_strerror_debug(i32 noundef %2484, ptr noundef @.str.4)
  %2486 = call ptr @__errno_location() #12
  %2487 = load i32, ptr %2486, align 4, !tbaa !5
  %2488 = call ptr @strerror(i32 noundef %2487) #11
  %2489 = call ptr @__errno_location() #12
  %2490 = load i32, ptr %2489, align 4, !tbaa !5
  %2491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2478, ptr noundef @.str.5, i32 noundef %2479, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 150, ptr noundef %2482, ptr noundef %2485, ptr noundef %2488, i32 noundef %2490) #11
  br label %2492

2492:                                             ; preds = %2475, %2458
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %2493

2493:                                             ; preds = %2492
  br label %2494

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

2495:                                             ; No predecessors!
  br label %2496

2496:                                             ; preds = %2495
  br label %2497

2497:                                             ; preds = %2496, %2437
  br label %2498

2498:                                             ; preds = %2497
  br label %2499

2499:                                             ; preds = %2498
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %84) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %83) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr %81) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #11
  %2500 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef %77)
  %2501 = getelementptr inbounds %struct.s2n_result, ptr %95, i32 0, i32 0
  store i32 %2500, ptr %2501, align 4
  call void @llvm.lifetime.end.p0(i64 192, ptr %77) #11
  %2502 = call i32 @s2n_connection_ptr_free(ptr noundef %76)
  %2503 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  store i32 %2502, ptr %2503, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #11
  %2504 = call i32 @s2n_connection_ptr_free(ptr noundef %75)
  %2505 = getelementptr inbounds %struct.s2n_result, ptr %97, i32 0, i32 0
  store i32 %2504, ptr %2505, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #11
  %2506 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2506, ptr %98, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #11
  %2507 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2507, ptr %99, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr %100) #11
  call void @llvm.memset.p0.i64(ptr align 8 %100, i8 0, i64 192, i1 false)
  br label %2508

2508:                                             ; preds = %2499
  %2509 = load i32, ptr @test_count, align 4, !tbaa !5
  %2510 = add nsw i32 %2509, 1
  store i32 %2510, ptr @test_count, align 4, !tbaa !5
  %2511 = load ptr, ptr %98, align 8, !tbaa !9
  %2512 = load ptr, ptr %99, align 8, !tbaa !9
  %2513 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %2511, ptr noundef %2512, ptr noundef %100)
  %2514 = getelementptr inbounds %struct.s2n_result, ptr %101, i32 0, i32 0
  store i32 %2513, ptr %2514, align 4
  %2515 = getelementptr inbounds %struct.s2n_result, ptr %101, i32 0, i32 0
  %2516 = load i32, ptr %2515, align 4
  %2517 = call zeroext i1 @s2n_result_is_ok(i32 %2516)
  br i1 %2517, label %2571, label %2518

2518:                                             ; preds = %2508
  br label %2519

2519:                                             ; preds = %2518
  br label %2520

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

2527:                                             ; preds = %2520
  %2528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2529 = call i32 @fileno(ptr noundef %2528) #11
  %2530 = call i32 @isatty(i32 noundef %2529) #11
  %2531 = icmp ne i32 %2530, 0
  br i1 %2531, label %2532, label %2549

2532:                                             ; preds = %2527
  %2533 = load i32, ptr %102, align 4, !tbaa !5
  %2534 = call ptr @__errno_location() #12
  store i32 %2533, ptr %2534, align 4, !tbaa !5
  %2535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2536 = load i32, ptr @test_count, align 4, !tbaa !5
  %2537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2538 = load i32, ptr %2537, align 4, !tbaa !5
  %2539 = call ptr @s2n_strerror(i32 noundef %2538, ptr noundef @.str.4)
  %2540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2541 = load i32, ptr %2540, align 4, !tbaa !5
  %2542 = call ptr @s2n_strerror_debug(i32 noundef %2541, ptr noundef @.str.4)
  %2543 = call ptr @__errno_location() #12
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call ptr @strerror(i32 noundef %2544) #11
  %2546 = call ptr @__errno_location() #12
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  %2548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2535, ptr noundef @.str.2, i32 noundef %2536, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 161, ptr noundef %2539, ptr noundef %2542, ptr noundef %2545, i32 noundef %2547) #11
  br label %2566

2549:                                             ; preds = %2527, %2520
  %2550 = load i32, ptr %102, align 4, !tbaa !5
  %2551 = call ptr @__errno_location() #12
  store i32 %2550, ptr %2551, align 4, !tbaa !5
  %2552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2553 = load i32, ptr @test_count, align 4, !tbaa !5
  %2554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2555 = load i32, ptr %2554, align 4, !tbaa !5
  %2556 = call ptr @s2n_strerror(i32 noundef %2555, ptr noundef @.str.4)
  %2557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2558 = load i32, ptr %2557, align 4, !tbaa !5
  %2559 = call ptr @s2n_strerror_debug(i32 noundef %2558, ptr noundef @.str.4)
  %2560 = call ptr @__errno_location() #12
  %2561 = load i32, ptr %2560, align 4, !tbaa !5
  %2562 = call ptr @strerror(i32 noundef %2561) #11
  %2563 = call ptr @__errno_location() #12
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2552, ptr noundef @.str.5, i32 noundef %2553, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 161, ptr noundef %2556, ptr noundef %2559, ptr noundef %2562, i32 noundef %2564) #11
  br label %2566

2566:                                             ; preds = %2549, %2532
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %2567

2567:                                             ; preds = %2566
  br label %2568

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

2569:                                             ; No predecessors!
  br label %2570

2570:                                             ; preds = %2569
  br label %2571

2571:                                             ; preds = %2570, %2508
  br label %2572

2572:                                             ; preds = %2571
  br label %2573

2573:                                             ; preds = %2572
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #11
  store i64 5, ptr %103, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 16, ptr %104) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %104, ptr align 8 @__const.main.send_msg_iov, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr %105) #11
  %2574 = getelementptr inbounds %struct.msghdr, ptr %105, i32 0, i32 0
  store ptr null, ptr %2574, align 8, !tbaa !20
  %2575 = getelementptr inbounds %struct.msghdr, ptr %105, i32 0, i32 1
  store i32 0, ptr %2575, align 8, !tbaa !22
  %2576 = getelementptr inbounds %struct.msghdr, ptr %105, i32 0, i32 2
  store ptr %104, ptr %2576, align 8, !tbaa !23
  %2577 = getelementptr inbounds %struct.msghdr, ptr %105, i32 0, i32 3
  store i64 1, ptr %2577, align 8, !tbaa !24
  %2578 = getelementptr inbounds %struct.msghdr, ptr %105, i32 0, i32 4
  store ptr null, ptr %2578, align 8, !tbaa !25
  %2579 = getelementptr inbounds %struct.msghdr, ptr %105, i32 0, i32 5
  store i64 0, ptr %2579, align 8, !tbaa !26
  %2580 = getelementptr inbounds %struct.msghdr, ptr %105, i32 0, i32 6
  store i32 0, ptr %2580, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 100, ptr %106) #11
  call void @llvm.memset.p0.i64(ptr align 16 %106, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #11
  store i64 0, ptr %107, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #11
  store i64 0, ptr %108, align 8, !tbaa !54
  br label %2581

2581:                                             ; preds = %2724, %2573
  %2582 = load i64, ptr %108, align 8, !tbaa !54
  %2583 = load i64, ptr %103, align 8, !tbaa !54
  %2584 = icmp ult i64 %2582, %2583
  br i1 %2584, label %2586, label %2585

2585:                                             ; preds = %2581
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #11
  br label %2727

2586:                                             ; preds = %2581
  %2587 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %2588 = load i64, ptr %107, align 8, !tbaa !54
  %2589 = getelementptr inbounds i8, ptr %2587, i64 %2588
  %2590 = getelementptr inbounds %struct.iovec, ptr %104, i32 0, i32 0
  store ptr %2589, ptr %2590, align 8, !tbaa !16
  br label %2591

2591:                                             ; preds = %2586
  %2592 = load i32, ptr @test_count, align 4, !tbaa !5
  %2593 = add nsw i32 %2592, 1
  store i32 %2593, ptr @test_count, align 4, !tbaa !5
  %2594 = getelementptr inbounds [100 x i8], ptr %106, i64 0, i64 0
  %2595 = call i32 @s2n_ktls_set_control_data(ptr noundef %105, ptr noundef %2594, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43)
  %2596 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  store i32 %2595, ptr %2596, align 4
  %2597 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  %2598 = load i32, ptr %2597, align 4
  %2599 = call zeroext i1 @s2n_result_is_ok(i32 %2598)
  br i1 %2599, label %2653, label %2600

2600:                                             ; preds = %2591
  br label %2601

2601:                                             ; preds = %2600
  br label %2602

2602:                                             ; preds = %2601
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #11
  %2603 = call ptr @__errno_location() #12
  %2604 = load i32, ptr %2603, align 4, !tbaa !5
  store i32 %2604, ptr %110, align 4, !tbaa !5
  %2605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2606 = call i32 @s2n_print_stacktrace(ptr noundef %2605)
  %2607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2608 = trunc i8 %2607 to i1
  br i1 %2608, label %2609, label %2631

2609:                                             ; preds = %2602
  %2610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2611 = call i32 @fileno(ptr noundef %2610) #11
  %2612 = call i32 @isatty(i32 noundef %2611) #11
  %2613 = icmp ne i32 %2612, 0
  br i1 %2613, label %2614, label %2631

2614:                                             ; preds = %2609
  %2615 = load i32, ptr %110, align 4, !tbaa !5
  %2616 = call ptr @__errno_location() #12
  store i32 %2615, ptr %2616, 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 @.str.4)
  %2622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2623 = load i32, ptr %2622, align 4, !tbaa !5
  %2624 = call ptr @s2n_strerror_debug(i32 noundef %2623, ptr noundef @.str.4)
  %2625 = call ptr @__errno_location() #12
  %2626 = load i32, ptr %2625, align 4, !tbaa !5
  %2627 = call ptr @strerror(i32 noundef %2626) #11
  %2628 = call ptr @__errno_location() #12
  %2629 = load i32, ptr %2628, align 4, !tbaa !5
  %2630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2617, ptr noundef @.str.2, i32 noundef %2618, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 174, ptr noundef %2621, ptr noundef %2624, ptr noundef %2627, i32 noundef %2629) #11
  br label %2648

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

2648:                                             ; preds = %2631, %2614
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  br label %2649

2649:                                             ; preds = %2648
  br label %2650

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

2651:                                             ; No predecessors!
  br label %2652

2652:                                             ; preds = %2651
  br label %2653

2653:                                             ; preds = %2652, %2591
  br label %2654

2654:                                             ; preds = %2653
  br label %2655

2655:                                             ; preds = %2654
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #11
  %2656 = load ptr, ptr %98, align 8, !tbaa !9
  %2657 = getelementptr inbounds %struct.s2n_connection, ptr %2656, i32 0, i32 8
  %2658 = load ptr, ptr %2657, align 8, !tbaa !28
  %2659 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %2658, ptr noundef %105)
  store i64 %2659, ptr %111, align 8, !tbaa !54
  br label %2660

2660:                                             ; preds = %2655
  %2661 = load i32, ptr @test_count, align 4, !tbaa !5
  %2662 = add nsw i32 %2661, 1
  store i32 %2662, ptr @test_count, align 4, !tbaa !5
  %2663 = load i64, ptr %111, align 8, !tbaa !54
  %2664 = icmp eq i64 %2663, 10
  br i1 %2664, label %2718, label %2665

2665:                                             ; preds = %2660
  br label %2666

2666:                                             ; preds = %2665
  br label %2667

2667:                                             ; preds = %2666
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #11
  %2668 = call ptr @__errno_location() #12
  %2669 = load i32, ptr %2668, align 4, !tbaa !5
  store i32 %2669, ptr %112, align 4, !tbaa !5
  %2670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2671 = call i32 @s2n_print_stacktrace(ptr noundef %2670)
  %2672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2673 = trunc i8 %2672 to i1
  br i1 %2673, label %2674, label %2696

2674:                                             ; preds = %2667
  %2675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2676 = call i32 @fileno(ptr noundef %2675) #11
  %2677 = call i32 @isatty(i32 noundef %2676) #11
  %2678 = icmp ne i32 %2677, 0
  br i1 %2678, label %2679, label %2696

2679:                                             ; preds = %2674
  %2680 = load i32, ptr %112, align 4, !tbaa !5
  %2681 = call ptr @__errno_location() #12
  store i32 %2680, ptr %2681, align 4, !tbaa !5
  %2682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2683 = load i32, ptr @test_count, align 4, !tbaa !5
  %2684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2685 = load i32, ptr %2684, align 4, !tbaa !5
  %2686 = call ptr @s2n_strerror(i32 noundef %2685, ptr noundef @.str.4)
  %2687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2688 = load i32, ptr %2687, align 4, !tbaa !5
  %2689 = call ptr @s2n_strerror_debug(i32 noundef %2688, ptr noundef @.str.4)
  %2690 = call ptr @__errno_location() #12
  %2691 = load i32, ptr %2690, align 4, !tbaa !5
  %2692 = call ptr @strerror(i32 noundef %2691) #11
  %2693 = call ptr @__errno_location() #12
  %2694 = load i32, ptr %2693, align 4, !tbaa !5
  %2695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2682, ptr noundef @.str.2, i32 noundef %2683, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 176, ptr noundef %2686, ptr noundef %2689, ptr noundef %2692, i32 noundef %2694) #11
  br label %2713

2696:                                             ; preds = %2674, %2667
  %2697 = load i32, ptr %112, align 4, !tbaa !5
  %2698 = call ptr @__errno_location() #12
  store i32 %2697, ptr %2698, align 4, !tbaa !5
  %2699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2700 = load i32, ptr @test_count, align 4, !tbaa !5
  %2701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2702 = load i32, ptr %2701, align 4, !tbaa !5
  %2703 = call ptr @s2n_strerror(i32 noundef %2702, ptr noundef @.str.4)
  %2704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2705 = load i32, ptr %2704, align 4, !tbaa !5
  %2706 = call ptr @s2n_strerror_debug(i32 noundef %2705, ptr noundef @.str.4)
  %2707 = call ptr @__errno_location() #12
  %2708 = load i32, ptr %2707, align 4, !tbaa !5
  %2709 = call ptr @strerror(i32 noundef %2708) #11
  %2710 = call ptr @__errno_location() #12
  %2711 = load i32, ptr %2710, align 4, !tbaa !5
  %2712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2699, ptr noundef @.str.5, i32 noundef %2700, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 176, ptr noundef %2703, ptr noundef %2706, ptr noundef %2709, i32 noundef %2711) #11
  br label %2713

2713:                                             ; preds = %2696, %2679
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %2714

2714:                                             ; preds = %2713
  br label %2715

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

2716:                                             ; No predecessors!
  br label %2717

2717:                                             ; preds = %2716
  br label %2718

2718:                                             ; preds = %2717, %2660
  br label %2719

2719:                                             ; preds = %2718
  br label %2720

2720:                                             ; preds = %2719
  %2721 = load i64, ptr %111, align 8, !tbaa !54
  %2722 = load i64, ptr %107, align 8, !tbaa !54
  %2723 = add i64 %2722, %2721
  store i64 %2723, ptr %107, align 8, !tbaa !54
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #11
  br label %2724

2724:                                             ; preds = %2720
  %2725 = load i64, ptr %108, align 8, !tbaa !54
  %2726 = add i64 %2725, 1
  store i64 %2726, ptr %108, align 8, !tbaa !54
  br label %2581, !llvm.loop !63

2727:                                             ; preds = %2585
  br label %2728

2728:                                             ; preds = %2727
  %2729 = load i32, ptr @test_count, align 4, !tbaa !5
  %2730 = add nsw i32 %2729, 1
  store i32 %2730, ptr @test_count, align 4, !tbaa !5
  %2731 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %100, i32 0, i32 0
  %2732 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %2733 = load i64, ptr %107, align 8, !tbaa !54
  %2734 = trunc i64 %2733 to i16
  %2735 = call i32 @s2n_test_validate_data(ptr noundef %2731, ptr noundef %2732, i16 noundef zeroext %2734)
  %2736 = getelementptr inbounds %struct.s2n_result, ptr %113, i32 0, i32 0
  store i32 %2735, ptr %2736, align 4
  %2737 = getelementptr inbounds %struct.s2n_result, ptr %113, i32 0, i32 0
  %2738 = load i32, ptr %2737, align 4
  %2739 = call zeroext i1 @s2n_result_is_ok(i32 %2738)
  br i1 %2739, label %2793, label %2740

2740:                                             ; preds = %2728
  br label %2741

2741:                                             ; preds = %2740
  br label %2742

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

2749:                                             ; preds = %2742
  %2750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2751 = call i32 @fileno(ptr noundef %2750) #11
  %2752 = call i32 @isatty(i32 noundef %2751) #11
  %2753 = icmp ne i32 %2752, 0
  br i1 %2753, label %2754, label %2771

2754:                                             ; preds = %2749
  %2755 = load i32, ptr %114, align 4, !tbaa !5
  %2756 = call ptr @__errno_location() #12
  store i32 %2755, ptr %2756, align 4, !tbaa !5
  %2757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2758 = load i32, ptr @test_count, align 4, !tbaa !5
  %2759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2760 = load i32, ptr %2759, align 4, !tbaa !5
  %2761 = call ptr @s2n_strerror(i32 noundef %2760, ptr noundef @.str.4)
  %2762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2763 = load i32, ptr %2762, align 4, !tbaa !5
  %2764 = call ptr @s2n_strerror_debug(i32 noundef %2763, ptr noundef @.str.4)
  %2765 = call ptr @__errno_location() #12
  %2766 = load i32, ptr %2765, align 4, !tbaa !5
  %2767 = call ptr @strerror(i32 noundef %2766) #11
  %2768 = call ptr @__errno_location() #12
  %2769 = load i32, ptr %2768, align 4, !tbaa !5
  %2770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2757, ptr noundef @.str.2, i32 noundef %2758, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 181, ptr noundef %2761, ptr noundef %2764, ptr noundef %2767, i32 noundef %2769) #11
  br label %2788

2771:                                             ; preds = %2749, %2742
  %2772 = load i32, ptr %114, align 4, !tbaa !5
  %2773 = call ptr @__errno_location() #12
  store i32 %2772, ptr %2773, align 4, !tbaa !5
  %2774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2775 = load i32, ptr @test_count, align 4, !tbaa !5
  %2776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2777 = load i32, ptr %2776, align 4, !tbaa !5
  %2778 = call ptr @s2n_strerror(i32 noundef %2777, ptr noundef @.str.4)
  %2779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2780 = load i32, ptr %2779, align 4, !tbaa !5
  %2781 = call ptr @s2n_strerror_debug(i32 noundef %2780, ptr noundef @.str.4)
  %2782 = call ptr @__errno_location() #12
  %2783 = load i32, ptr %2782, align 4, !tbaa !5
  %2784 = call ptr @strerror(i32 noundef %2783) #11
  %2785 = call ptr @__errno_location() #12
  %2786 = load i32, ptr %2785, align 4, !tbaa !5
  %2787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2774, ptr noundef @.str.5, i32 noundef %2775, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 181, ptr noundef %2778, ptr noundef %2781, ptr noundef %2784, i32 noundef %2786) #11
  br label %2788

2788:                                             ; preds = %2771, %2754
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %2789

2789:                                             ; preds = %2788
  br label %2790

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

2791:                                             ; No predecessors!
  br label %2792

2792:                                             ; preds = %2791
  br label %2793

2793:                                             ; preds = %2792, %2728
  br label %2794

2794:                                             ; preds = %2793
  br label %2795

2795:                                             ; preds = %2794
  br label %2796

2796:                                             ; preds = %2795
  %2797 = load i32, ptr @test_count, align 4, !tbaa !5
  %2798 = add nsw i32 %2797, 1
  store i32 %2798, ptr @test_count, align 4, !tbaa !5
  %2799 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %100, i32 0, i32 0
  %2800 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %2799, i32 0, i32 0
  %2801 = getelementptr inbounds %struct.s2n_stuffer, ptr %2800, i32 0, i32 2
  %2802 = load i32, ptr %2801, align 4, !tbaa !59
  %2803 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %100, i32 0, i32 0
  %2804 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %2803, i32 0, i32 0
  %2805 = getelementptr inbounds %struct.s2n_stuffer, ptr %2804, i32 0, i32 1
  %2806 = load i32, ptr %2805, align 8, !tbaa !60
  %2807 = sub i32 %2802, %2806
  %2808 = zext i32 %2807 to i64
  %2809 = load i64, ptr %103, align 8, !tbaa !54
  %2810 = mul i64 %2809, 3
  %2811 = icmp eq i64 %2808, %2810
  br i1 %2811, label %2865, label %2812

2812:                                             ; preds = %2796
  br label %2813

2813:                                             ; preds = %2812
  br label %2814

2814:                                             ; preds = %2813
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #11
  %2815 = call ptr @__errno_location() #12
  %2816 = load i32, ptr %2815, align 4, !tbaa !5
  store i32 %2816, ptr %115, align 4, !tbaa !5
  %2817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2818 = call i32 @s2n_print_stacktrace(ptr noundef %2817)
  %2819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2820 = trunc i8 %2819 to i1
  br i1 %2820, label %2821, label %2843

2821:                                             ; preds = %2814
  %2822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2823 = call i32 @fileno(ptr noundef %2822) #11
  %2824 = call i32 @isatty(i32 noundef %2823) #11
  %2825 = icmp ne i32 %2824, 0
  br i1 %2825, label %2826, label %2843

2826:                                             ; preds = %2821
  %2827 = load i32, ptr %115, align 4, !tbaa !5
  %2828 = call ptr @__errno_location() #12
  store i32 %2827, ptr %2828, align 4, !tbaa !5
  %2829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2830 = load i32, ptr @test_count, align 4, !tbaa !5
  %2831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2832 = load i32, ptr %2831, align 4, !tbaa !5
  %2833 = call ptr @s2n_strerror(i32 noundef %2832, ptr noundef @.str.4)
  %2834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2835 = load i32, ptr %2834, align 4, !tbaa !5
  %2836 = call ptr @s2n_strerror_debug(i32 noundef %2835, ptr noundef @.str.4)
  %2837 = call ptr @__errno_location() #12
  %2838 = load i32, ptr %2837, align 4, !tbaa !5
  %2839 = call ptr @strerror(i32 noundef %2838) #11
  %2840 = call ptr @__errno_location() #12
  %2841 = load i32, ptr %2840, align 4, !tbaa !5
  %2842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2829, ptr noundef @.str.2, i32 noundef %2830, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 183, ptr noundef %2833, ptr noundef %2836, ptr noundef %2839, i32 noundef %2841) #11
  br label %2860

2843:                                             ; preds = %2821, %2814
  %2844 = load i32, ptr %115, align 4, !tbaa !5
  %2845 = call ptr @__errno_location() #12
  store i32 %2844, ptr %2845, align 4, !tbaa !5
  %2846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2847 = load i32, ptr @test_count, align 4, !tbaa !5
  %2848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2849 = load i32, ptr %2848, align 4, !tbaa !5
  %2850 = call ptr @s2n_strerror(i32 noundef %2849, ptr noundef @.str.4)
  %2851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2852 = load i32, ptr %2851, align 4, !tbaa !5
  %2853 = call ptr @s2n_strerror_debug(i32 noundef %2852, ptr noundef @.str.4)
  %2854 = call ptr @__errno_location() #12
  %2855 = load i32, ptr %2854, align 4, !tbaa !5
  %2856 = call ptr @strerror(i32 noundef %2855) #11
  %2857 = call ptr @__errno_location() #12
  %2858 = load i32, ptr %2857, align 4, !tbaa !5
  %2859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2846, ptr noundef @.str.5, i32 noundef %2847, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 183, ptr noundef %2850, ptr noundef %2853, ptr noundef %2856, i32 noundef %2858) #11
  br label %2860

2860:                                             ; preds = %2843, %2826
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %2861

2861:                                             ; preds = %2860
  br label %2862

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

2863:                                             ; No predecessors!
  br label %2864

2864:                                             ; preds = %2863
  br label %2865

2865:                                             ; preds = %2864, %2796
  br label %2866

2866:                                             ; preds = %2865
  br label %2867

2867:                                             ; preds = %2866
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #11
  store i64 0, ptr %116, align 8, !tbaa !54
  br label %2868

2868:                                             ; preds = %3002, %2867
  %2869 = load i64, ptr %116, align 8, !tbaa !54
  %2870 = load i64, ptr %103, align 8, !tbaa !54
  %2871 = icmp ult i64 %2869, %2870
  br i1 %2871, label %2873, label %2872

2872:                                             ; preds = %2868
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #11
  br label %3005

2873:                                             ; preds = %2868
  br label %2874

2874:                                             ; preds = %2873
  %2875 = load i32, ptr @test_count, align 4, !tbaa !5
  %2876 = add nsw i32 %2875, 1
  store i32 %2876, ptr @test_count, align 4, !tbaa !5
  %2877 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %100, i32 0, i32 0
  %2878 = call i32 @s2n_test_validate_ancillary(ptr noundef %2877, i8 noundef zeroext 43, i16 noundef zeroext 10)
  %2879 = getelementptr inbounds %struct.s2n_result, ptr %117, i32 0, i32 0
  store i32 %2878, ptr %2879, align 4
  %2880 = getelementptr inbounds %struct.s2n_result, ptr %117, i32 0, i32 0
  %2881 = load i32, ptr %2880, align 4
  %2882 = call zeroext i1 @s2n_result_is_ok(i32 %2881)
  br i1 %2882, label %2936, label %2883

2883:                                             ; preds = %2874
  br label %2884

2884:                                             ; preds = %2883
  br label %2885

2885:                                             ; preds = %2884
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  %2886 = call ptr @__errno_location() #12
  %2887 = load i32, ptr %2886, align 4, !tbaa !5
  store i32 %2887, ptr %118, align 4, !tbaa !5
  %2888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2889 = call i32 @s2n_print_stacktrace(ptr noundef %2888)
  %2890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2891 = trunc i8 %2890 to i1
  br i1 %2891, label %2892, label %2914

2892:                                             ; preds = %2885
  %2893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2894 = call i32 @fileno(ptr noundef %2893) #11
  %2895 = call i32 @isatty(i32 noundef %2894) #11
  %2896 = icmp ne i32 %2895, 0
  br i1 %2896, label %2897, label %2914

2897:                                             ; preds = %2892
  %2898 = load i32, ptr %118, align 4, !tbaa !5
  %2899 = call ptr @__errno_location() #12
  store i32 %2898, ptr %2899, align 4, !tbaa !5
  %2900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2901 = load i32, ptr @test_count, align 4, !tbaa !5
  %2902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = call ptr @s2n_strerror(i32 noundef %2903, ptr noundef @.str.4)
  %2905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  %2907 = call ptr @s2n_strerror_debug(i32 noundef %2906, ptr noundef @.str.4)
  %2908 = call ptr @__errno_location() #12
  %2909 = load i32, ptr %2908, align 4, !tbaa !5
  %2910 = call ptr @strerror(i32 noundef %2909) #11
  %2911 = call ptr @__errno_location() #12
  %2912 = load i32, ptr %2911, align 4, !tbaa !5
  %2913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2900, ptr noundef @.str.2, i32 noundef %2901, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 186, ptr noundef %2904, ptr noundef %2907, ptr noundef %2910, i32 noundef %2912) #11
  br label %2931

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

2931:                                             ; preds = %2914, %2897
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %2932

2932:                                             ; preds = %2931
  br label %2933

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

2934:                                             ; No predecessors!
  br label %2935

2935:                                             ; preds = %2934
  br label %2936

2936:                                             ; preds = %2935, %2874
  br label %2937

2937:                                             ; preds = %2936
  br label %2938

2938:                                             ; preds = %2937
  br label %2939

2939:                                             ; preds = %2938
  %2940 = load i32, ptr @test_count, align 4, !tbaa !5
  %2941 = add nsw i32 %2940, 1
  store i32 %2941, ptr @test_count, align 4, !tbaa !5
  %2942 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %100, i32 0, i32 0
  %2943 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %2942, i32 0, i32 0
  %2944 = call ptr @s2n_stuffer_raw_read(ptr noundef %2943, i32 noundef 3)
  %2945 = icmp eq ptr %2944, null
  br i1 %2945, label %2946, label %2999

2946:                                             ; preds = %2939
  br label %2947

2947:                                             ; preds = %2946
  br label %2948

2948:                                             ; preds = %2947
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  %2949 = call ptr @__errno_location() #12
  %2950 = load i32, ptr %2949, align 4, !tbaa !5
  store i32 %2950, ptr %119, align 4, !tbaa !5
  %2951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2952 = call i32 @s2n_print_stacktrace(ptr noundef %2951)
  %2953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2954 = trunc i8 %2953 to i1
  br i1 %2954, label %2955, label %2977

2955:                                             ; preds = %2948
  %2956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2957 = call i32 @fileno(ptr noundef %2956) #11
  %2958 = call i32 @isatty(i32 noundef %2957) #11
  %2959 = icmp ne i32 %2958, 0
  br i1 %2959, label %2960, label %2977

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

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

2994:                                             ; preds = %2977, %2960
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %2995

2995:                                             ; preds = %2994
  br label %2996

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

2997:                                             ; No predecessors!
  br label %2998

2998:                                             ; preds = %2997
  br label %2999

2999:                                             ; preds = %2998, %2939
  br label %3000

3000:                                             ; preds = %2999
  br label %3001

3001:                                             ; preds = %3000
  br label %3002

3002:                                             ; preds = %3001
  %3003 = load i64, ptr %116, align 8, !tbaa !54
  %3004 = add i64 %3003, 1
  store i64 %3004, ptr %116, align 8, !tbaa !54
  br label %2868, !llvm.loop !64

3005:                                             ; preds = %2872
  br label %3006

3006:                                             ; preds = %3005
  %3007 = load i32, ptr @test_count, align 4, !tbaa !5
  %3008 = add nsw i32 %3007, 1
  store i32 %3008, ptr @test_count, align 4, !tbaa !5
  %3009 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %100, i32 0, i32 0
  %3010 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %3009, i32 0, i32 2
  %3011 = load i64, ptr %3010, align 8, !tbaa !55
  %3012 = load i64, ptr %103, align 8, !tbaa !54
  %3013 = icmp eq i64 %3011, %3012
  br i1 %3013, label %3067, label %3014

3014:                                             ; preds = %3006
  br label %3015

3015:                                             ; preds = %3014
  br label %3016

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

3023:                                             ; preds = %3016
  %3024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3025 = call i32 @fileno(ptr noundef %3024) #11
  %3026 = call i32 @isatty(i32 noundef %3025) #11
  %3027 = icmp ne i32 %3026, 0
  br i1 %3027, label %3028, label %3045

3028:                                             ; preds = %3023
  %3029 = load i32, ptr %120, align 4, !tbaa !5
  %3030 = call ptr @__errno_location() #12
  store i32 %3029, ptr %3030, align 4, !tbaa !5
  %3031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3032 = load i32, ptr @test_count, align 4, !tbaa !5
  %3033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3034 = load i32, ptr %3033, align 4, !tbaa !5
  %3035 = call ptr @s2n_strerror(i32 noundef %3034, ptr noundef @.str.4)
  %3036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3037 = load i32, ptr %3036, align 4, !tbaa !5
  %3038 = call ptr @s2n_strerror_debug(i32 noundef %3037, ptr noundef @.str.4)
  %3039 = call ptr @__errno_location() #12
  %3040 = load i32, ptr %3039, align 4, !tbaa !5
  %3041 = call ptr @strerror(i32 noundef %3040) #11
  %3042 = call ptr @__errno_location() #12
  %3043 = load i32, ptr %3042, align 4, !tbaa !5
  %3044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3031, ptr noundef @.str.2, i32 noundef %3032, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 191, ptr noundef %3035, ptr noundef %3038, ptr noundef %3041, i32 noundef %3043) #11
  br label %3062

3045:                                             ; preds = %3023, %3016
  %3046 = load i32, ptr %120, align 4, !tbaa !5
  %3047 = call ptr @__errno_location() #12
  store i32 %3046, ptr %3047, align 4, !tbaa !5
  %3048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3049 = load i32, ptr @test_count, align 4, !tbaa !5
  %3050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  %3052 = call ptr @s2n_strerror(i32 noundef %3051, ptr noundef @.str.4)
  %3053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3054 = load i32, ptr %3053, align 4, !tbaa !5
  %3055 = call ptr @s2n_strerror_debug(i32 noundef %3054, ptr noundef @.str.4)
  %3056 = call ptr @__errno_location() #12
  %3057 = load i32, ptr %3056, align 4, !tbaa !5
  %3058 = call ptr @strerror(i32 noundef %3057) #11
  %3059 = call ptr @__errno_location() #12
  %3060 = load i32, ptr %3059, align 4, !tbaa !5
  %3061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3048, ptr noundef @.str.5, i32 noundef %3049, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 191, ptr noundef %3052, ptr noundef %3055, ptr noundef %3058, i32 noundef %3060) #11
  br label %3062

3062:                                             ; preds = %3045, %3028
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %3063

3063:                                             ; preds = %3062
  br label %3064

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

3065:                                             ; No predecessors!
  br label %3066

3066:                                             ; preds = %3065
  br label %3067

3067:                                             ; preds = %3066, %3006
  br label %3068

3068:                                             ; preds = %3067
  br label %3069

3069:                                             ; preds = %3068
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %106) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %105) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %104) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #11
  %3070 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef %100)
  %3071 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  store i32 %3070, ptr %3071, align 4
  call void @llvm.lifetime.end.p0(i64 192, ptr %100) #11
  %3072 = call i32 @s2n_connection_ptr_free(ptr noundef %99)
  %3073 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  store i32 %3072, ptr %3073, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #11
  %3074 = call i32 @s2n_connection_ptr_free(ptr noundef %98)
  %3075 = getelementptr inbounds %struct.s2n_result, ptr %123, i32 0, i32 0
  store i32 %3074, ptr %3075, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #11
  %3076 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3076, ptr %124, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #11
  %3077 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3077, ptr %125, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr %126) #11
  call void @llvm.memset.p0.i64(ptr align 8 %126, i8 0, i64 192, i1 false)
  br label %3078

3078:                                             ; preds = %3069
  %3079 = load i32, ptr @test_count, align 4, !tbaa !5
  %3080 = add nsw i32 %3079, 1
  store i32 %3080, ptr @test_count, align 4, !tbaa !5
  %3081 = load ptr, ptr %124, align 8, !tbaa !9
  %3082 = load ptr, ptr %125, align 8, !tbaa !9
  %3083 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %3081, ptr noundef %3082, ptr noundef %126)
  %3084 = getelementptr inbounds %struct.s2n_result, ptr %127, i32 0, i32 0
  store i32 %3083, ptr %3084, align 4
  %3085 = getelementptr inbounds %struct.s2n_result, ptr %127, i32 0, i32 0
  %3086 = load i32, ptr %3085, align 4
  %3087 = call zeroext i1 @s2n_result_is_ok(i32 %3086)
  br i1 %3087, label %3141, label %3088

3088:                                             ; preds = %3078
  br label %3089

3089:                                             ; preds = %3088
  br label %3090

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

3097:                                             ; preds = %3090
  %3098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3099 = call i32 @fileno(ptr noundef %3098) #11
  %3100 = call i32 @isatty(i32 noundef %3099) #11
  %3101 = icmp ne i32 %3100, 0
  br i1 %3101, label %3102, label %3119

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

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

3136:                                             ; preds = %3119, %3102
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  br label %3137

3137:                                             ; preds = %3136
  br label %3138

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

3139:                                             ; No predecessors!
  br label %3140

3140:                                             ; preds = %3139
  br label %3141

3141:                                             ; preds = %3140, %3078
  br label %3142

3142:                                             ; preds = %3141
  br label %3143

3143:                                             ; preds = %3142
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #11
  store i64 5, ptr %129, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 16, ptr %130) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %130, ptr align 8 @__const.main.send_msg_iov.30, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr %131) #11
  %3144 = getelementptr inbounds %struct.msghdr, ptr %131, i32 0, i32 0
  store ptr null, ptr %3144, align 8, !tbaa !20
  %3145 = getelementptr inbounds %struct.msghdr, ptr %131, i32 0, i32 1
  store i32 0, ptr %3145, align 8, !tbaa !22
  %3146 = getelementptr inbounds %struct.msghdr, ptr %131, i32 0, i32 2
  store ptr %130, ptr %3146, align 8, !tbaa !23
  %3147 = getelementptr inbounds %struct.msghdr, ptr %131, i32 0, i32 3
  store i64 1, ptr %3147, align 8, !tbaa !24
  %3148 = getelementptr inbounds %struct.msghdr, ptr %131, i32 0, i32 4
  store ptr null, ptr %3148, align 8, !tbaa !25
  %3149 = getelementptr inbounds %struct.msghdr, ptr %131, i32 0, i32 5
  store i64 0, ptr %3149, align 8, !tbaa !26
  %3150 = getelementptr inbounds %struct.msghdr, ptr %131, i32 0, i32 6
  store i32 0, ptr %3150, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 100, ptr %132) #11
  call void @llvm.memset.p0.i64(ptr align 16 %132, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #11
  store i64 0, ptr %133, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #11
  store i64 0, ptr %134, align 8, !tbaa !54
  br label %3151

3151:                                             ; preds = %3296, %3143
  %3152 = load i64, ptr %134, align 8, !tbaa !54
  %3153 = load i64, ptr %129, align 8, !tbaa !54
  %3154 = icmp ult i64 %3152, %3153
  br i1 %3154, label %3156, label %3155

3155:                                             ; preds = %3151
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #11
  br label %3299

3156:                                             ; preds = %3151
  %3157 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %3158 = load i64, ptr %133, align 8, !tbaa !54
  %3159 = getelementptr inbounds i8, ptr %3157, i64 %3158
  %3160 = getelementptr inbounds %struct.iovec, ptr %130, i32 0, i32 0
  store ptr %3159, ptr %3160, align 8, !tbaa !16
  br label %3161

3161:                                             ; preds = %3156
  %3162 = load i32, ptr @test_count, align 4, !tbaa !5
  %3163 = add nsw i32 %3162, 1
  store i32 %3163, ptr @test_count, align 4, !tbaa !5
  %3164 = getelementptr inbounds [100 x i8], ptr %132, i64 0, i64 0
  %3165 = load i64, ptr %134, align 8, !tbaa !54
  %3166 = trunc i64 %3165 to i8
  %3167 = call i32 @s2n_ktls_set_control_data(ptr noundef %131, ptr noundef %3164, i64 noundef 100, i32 noundef 0, i8 noundef zeroext %3166)
  %3168 = getelementptr inbounds %struct.s2n_result, ptr %135, i32 0, i32 0
  store i32 %3167, ptr %3168, align 4
  %3169 = getelementptr inbounds %struct.s2n_result, ptr %135, i32 0, i32 0
  %3170 = load i32, ptr %3169, align 4
  %3171 = call zeroext i1 @s2n_result_is_ok(i32 %3170)
  br i1 %3171, label %3225, label %3172

3172:                                             ; preds = %3161
  br label %3173

3173:                                             ; preds = %3172
  br label %3174

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

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

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

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

3220:                                             ; preds = %3203, %3186
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #11
  br label %3221

3221:                                             ; preds = %3220
  br label %3222

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

3223:                                             ; No predecessors!
  br label %3224

3224:                                             ; preds = %3223
  br label %3225

3225:                                             ; preds = %3224, %3161
  br label %3226

3226:                                             ; preds = %3225
  br label %3227

3227:                                             ; preds = %3226
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #11
  %3228 = load ptr, ptr %124, align 8, !tbaa !9
  %3229 = getelementptr inbounds %struct.s2n_connection, ptr %3228, i32 0, i32 8
  %3230 = load ptr, ptr %3229, align 8, !tbaa !28
  %3231 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %3230, ptr noundef %131)
  store i64 %3231, ptr %137, align 8, !tbaa !54
  br label %3232

3232:                                             ; preds = %3227
  %3233 = load i32, ptr @test_count, align 4, !tbaa !5
  %3234 = add nsw i32 %3233, 1
  store i32 %3234, ptr @test_count, align 4, !tbaa !5
  %3235 = load i64, ptr %137, align 8, !tbaa !54
  %3236 = icmp eq i64 %3235, 10
  br i1 %3236, label %3290, label %3237

3237:                                             ; preds = %3232
  br label %3238

3238:                                             ; preds = %3237
  br label %3239

3239:                                             ; preds = %3238
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #11
  %3240 = call ptr @__errno_location() #12
  %3241 = load i32, ptr %3240, align 4, !tbaa !5
  store i32 %3241, ptr %138, align 4, !tbaa !5
  %3242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3243 = call i32 @s2n_print_stacktrace(ptr noundef %3242)
  %3244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3245 = trunc i8 %3244 to i1
  br i1 %3245, label %3246, label %3268

3246:                                             ; preds = %3239
  %3247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3248 = call i32 @fileno(ptr noundef %3247) #11
  %3249 = call i32 @isatty(i32 noundef %3248) #11
  %3250 = icmp ne i32 %3249, 0
  br i1 %3250, label %3251, label %3268

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

3268:                                             ; preds = %3246, %3239
  %3269 = load i32, ptr %138, align 4, !tbaa !5
  %3270 = call ptr @__errno_location() #12
  store i32 %3269, ptr %3270, align 4, !tbaa !5
  %3271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3272 = load i32, ptr @test_count, align 4, !tbaa !5
  %3273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3274 = load i32, ptr %3273, align 4, !tbaa !5
  %3275 = call ptr @s2n_strerror(i32 noundef %3274, ptr noundef @.str.4)
  %3276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3277 = load i32, ptr %3276, align 4, !tbaa !5
  %3278 = call ptr @s2n_strerror_debug(i32 noundef %3277, ptr noundef @.str.4)
  %3279 = call ptr @__errno_location() #12
  %3280 = load i32, ptr %3279, align 4, !tbaa !5
  %3281 = call ptr @strerror(i32 noundef %3280) #11
  %3282 = call ptr @__errno_location() #12
  %3283 = load i32, ptr %3282, align 4, !tbaa !5
  %3284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3271, ptr noundef @.str.5, i32 noundef %3272, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 217, ptr noundef %3275, ptr noundef %3278, ptr noundef %3281, i32 noundef %3283) #11
  br label %3285

3285:                                             ; preds = %3268, %3251
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %3286

3286:                                             ; preds = %3285
  br label %3287

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

3288:                                             ; No predecessors!
  br label %3289

3289:                                             ; preds = %3288
  br label %3290

3290:                                             ; preds = %3289, %3232
  br label %3291

3291:                                             ; preds = %3290
  br label %3292

3292:                                             ; preds = %3291
  %3293 = load i64, ptr %137, align 8, !tbaa !54
  %3294 = load i64, ptr %133, align 8, !tbaa !54
  %3295 = add i64 %3294, %3293
  store i64 %3295, ptr %133, align 8, !tbaa !54
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #11
  br label %3296

3296:                                             ; preds = %3292
  %3297 = load i64, ptr %134, align 8, !tbaa !54
  %3298 = add i64 %3297, 1
  store i64 %3298, ptr %134, align 8, !tbaa !54
  br label %3151, !llvm.loop !65

3299:                                             ; preds = %3155
  br label %3300

3300:                                             ; preds = %3299
  %3301 = load i32, ptr @test_count, align 4, !tbaa !5
  %3302 = add nsw i32 %3301, 1
  store i32 %3302, ptr @test_count, align 4, !tbaa !5
  %3303 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %126, i32 0, i32 0
  %3304 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %3305 = load i64, ptr %133, align 8, !tbaa !54
  %3306 = trunc i64 %3305 to i16
  %3307 = call i32 @s2n_test_validate_data(ptr noundef %3303, ptr noundef %3304, i16 noundef zeroext %3306)
  %3308 = getelementptr inbounds %struct.s2n_result, ptr %139, i32 0, i32 0
  store i32 %3307, ptr %3308, align 4
  %3309 = getelementptr inbounds %struct.s2n_result, ptr %139, i32 0, i32 0
  %3310 = load i32, ptr %3309, align 4
  %3311 = call zeroext i1 @s2n_result_is_ok(i32 %3310)
  br i1 %3311, label %3365, label %3312

3312:                                             ; preds = %3300
  br label %3313

3313:                                             ; preds = %3312
  br label %3314

3314:                                             ; preds = %3313
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #11
  %3315 = call ptr @__errno_location() #12
  %3316 = load i32, ptr %3315, align 4, !tbaa !5
  store i32 %3316, ptr %140, align 4, !tbaa !5
  %3317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3318 = call i32 @s2n_print_stacktrace(ptr noundef %3317)
  %3319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3320 = trunc i8 %3319 to i1
  br i1 %3320, label %3321, label %3343

3321:                                             ; preds = %3314
  %3322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3323 = call i32 @fileno(ptr noundef %3322) #11
  %3324 = call i32 @isatty(i32 noundef %3323) #11
  %3325 = icmp ne i32 %3324, 0
  br i1 %3325, label %3326, label %3343

3326:                                             ; preds = %3321
  %3327 = load i32, ptr %140, align 4, !tbaa !5
  %3328 = call ptr @__errno_location() #12
  store i32 %3327, ptr %3328, align 4, !tbaa !5
  %3329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3330 = load i32, ptr @test_count, align 4, !tbaa !5
  %3331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3332 = load i32, ptr %3331, align 4, !tbaa !5
  %3333 = call ptr @s2n_strerror(i32 noundef %3332, ptr noundef @.str.4)
  %3334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3335 = load i32, ptr %3334, align 4, !tbaa !5
  %3336 = call ptr @s2n_strerror_debug(i32 noundef %3335, ptr noundef @.str.4)
  %3337 = call ptr @__errno_location() #12
  %3338 = load i32, ptr %3337, align 4, !tbaa !5
  %3339 = call ptr @strerror(i32 noundef %3338) #11
  %3340 = call ptr @__errno_location() #12
  %3341 = load i32, ptr %3340, align 4, !tbaa !5
  %3342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3329, ptr noundef @.str.2, i32 noundef %3330, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 222, ptr noundef %3333, ptr noundef %3336, ptr noundef %3339, i32 noundef %3341) #11
  br label %3360

3343:                                             ; preds = %3321, %3314
  %3344 = load i32, ptr %140, align 4, !tbaa !5
  %3345 = call ptr @__errno_location() #12
  store i32 %3344, ptr %3345, align 4, !tbaa !5
  %3346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3347 = load i32, ptr @test_count, align 4, !tbaa !5
  %3348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3349 = load i32, ptr %3348, align 4, !tbaa !5
  %3350 = call ptr @s2n_strerror(i32 noundef %3349, ptr noundef @.str.4)
  %3351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3352 = load i32, ptr %3351, align 4, !tbaa !5
  %3353 = call ptr @s2n_strerror_debug(i32 noundef %3352, ptr noundef @.str.4)
  %3354 = call ptr @__errno_location() #12
  %3355 = load i32, ptr %3354, align 4, !tbaa !5
  %3356 = call ptr @strerror(i32 noundef %3355) #11
  %3357 = call ptr @__errno_location() #12
  %3358 = load i32, ptr %3357, align 4, !tbaa !5
  %3359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3346, ptr noundef @.str.5, i32 noundef %3347, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 222, ptr noundef %3350, ptr noundef %3353, ptr noundef %3356, i32 noundef %3358) #11
  br label %3360

3360:                                             ; preds = %3343, %3326
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %3361

3361:                                             ; preds = %3360
  br label %3362

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

3363:                                             ; No predecessors!
  br label %3364

3364:                                             ; preds = %3363
  br label %3365

3365:                                             ; preds = %3364, %3300
  br label %3366

3366:                                             ; preds = %3365
  br label %3367

3367:                                             ; preds = %3366
  br label %3368

3368:                                             ; preds = %3367
  %3369 = load i32, ptr @test_count, align 4, !tbaa !5
  %3370 = add nsw i32 %3369, 1
  store i32 %3370, ptr @test_count, align 4, !tbaa !5
  %3371 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %126, i32 0, i32 0
  %3372 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %3371, i32 0, i32 0
  %3373 = getelementptr inbounds %struct.s2n_stuffer, ptr %3372, i32 0, i32 2
  %3374 = load i32, ptr %3373, align 4, !tbaa !59
  %3375 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %126, i32 0, i32 0
  %3376 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %3375, i32 0, i32 0
  %3377 = getelementptr inbounds %struct.s2n_stuffer, ptr %3376, i32 0, i32 1
  %3378 = load i32, ptr %3377, align 8, !tbaa !60
  %3379 = sub i32 %3374, %3378
  %3380 = zext i32 %3379 to i64
  %3381 = load i64, ptr %129, align 8, !tbaa !54
  %3382 = mul i64 %3381, 3
  %3383 = icmp eq i64 %3380, %3382
  br i1 %3383, label %3437, label %3384

3384:                                             ; preds = %3368
  br label %3385

3385:                                             ; preds = %3384
  br label %3386

3386:                                             ; preds = %3385
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %3387 = call ptr @__errno_location() #12
  %3388 = load i32, ptr %3387, align 4, !tbaa !5
  store i32 %3388, ptr %141, align 4, !tbaa !5
  %3389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3390 = call i32 @s2n_print_stacktrace(ptr noundef %3389)
  %3391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3392 = trunc i8 %3391 to i1
  br i1 %3392, label %3393, label %3415

3393:                                             ; preds = %3386
  %3394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3395 = call i32 @fileno(ptr noundef %3394) #11
  %3396 = call i32 @isatty(i32 noundef %3395) #11
  %3397 = icmp ne i32 %3396, 0
  br i1 %3397, label %3398, label %3415

3398:                                             ; preds = %3393
  %3399 = load i32, ptr %141, align 4, !tbaa !5
  %3400 = call ptr @__errno_location() #12
  store i32 %3399, ptr %3400, align 4, !tbaa !5
  %3401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3402 = load i32, ptr @test_count, align 4, !tbaa !5
  %3403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3404 = load i32, ptr %3403, align 4, !tbaa !5
  %3405 = call ptr @s2n_strerror(i32 noundef %3404, ptr noundef @.str.4)
  %3406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3407 = load i32, ptr %3406, align 4, !tbaa !5
  %3408 = call ptr @s2n_strerror_debug(i32 noundef %3407, ptr noundef @.str.4)
  %3409 = call ptr @__errno_location() #12
  %3410 = load i32, ptr %3409, align 4, !tbaa !5
  %3411 = call ptr @strerror(i32 noundef %3410) #11
  %3412 = call ptr @__errno_location() #12
  %3413 = load i32, ptr %3412, align 4, !tbaa !5
  %3414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3401, ptr noundef @.str.2, i32 noundef %3402, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 224, ptr noundef %3405, ptr noundef %3408, ptr noundef %3411, i32 noundef %3413) #11
  br label %3432

3415:                                             ; preds = %3393, %3386
  %3416 = load i32, ptr %141, align 4, !tbaa !5
  %3417 = call ptr @__errno_location() #12
  store i32 %3416, ptr %3417, align 4, !tbaa !5
  %3418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3419 = load i32, ptr @test_count, align 4, !tbaa !5
  %3420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3421 = load i32, ptr %3420, align 4, !tbaa !5
  %3422 = call ptr @s2n_strerror(i32 noundef %3421, ptr noundef @.str.4)
  %3423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3424 = load i32, ptr %3423, align 4, !tbaa !5
  %3425 = call ptr @s2n_strerror_debug(i32 noundef %3424, ptr noundef @.str.4)
  %3426 = call ptr @__errno_location() #12
  %3427 = load i32, ptr %3426, align 4, !tbaa !5
  %3428 = call ptr @strerror(i32 noundef %3427) #11
  %3429 = call ptr @__errno_location() #12
  %3430 = load i32, ptr %3429, align 4, !tbaa !5
  %3431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3418, ptr noundef @.str.5, i32 noundef %3419, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 224, ptr noundef %3422, ptr noundef %3425, ptr noundef %3428, i32 noundef %3430) #11
  br label %3432

3432:                                             ; preds = %3415, %3398
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %3433

3433:                                             ; preds = %3432
  br label %3434

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

3435:                                             ; No predecessors!
  br label %3436

3436:                                             ; preds = %3435
  br label %3437

3437:                                             ; preds = %3436, %3368
  br label %3438

3438:                                             ; preds = %3437
  br label %3439

3439:                                             ; preds = %3438
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #11
  store i64 0, ptr %142, align 8, !tbaa !54
  br label %3440

3440:                                             ; preds = %3576, %3439
  %3441 = load i64, ptr %142, align 8, !tbaa !54
  %3442 = load i64, ptr %129, align 8, !tbaa !54
  %3443 = icmp ult i64 %3441, %3442
  br i1 %3443, label %3445, label %3444

3444:                                             ; preds = %3440
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #11
  br label %3579

3445:                                             ; preds = %3440
  br label %3446

3446:                                             ; preds = %3445
  %3447 = load i32, ptr @test_count, align 4, !tbaa !5
  %3448 = add nsw i32 %3447, 1
  store i32 %3448, ptr @test_count, align 4, !tbaa !5
  %3449 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %126, i32 0, i32 0
  %3450 = load i64, ptr %142, align 8, !tbaa !54
  %3451 = trunc i64 %3450 to i8
  %3452 = call i32 @s2n_test_validate_ancillary(ptr noundef %3449, i8 noundef zeroext %3451, i16 noundef zeroext 10)
  %3453 = getelementptr inbounds %struct.s2n_result, ptr %143, i32 0, i32 0
  store i32 %3452, ptr %3453, align 4
  %3454 = getelementptr inbounds %struct.s2n_result, ptr %143, i32 0, i32 0
  %3455 = load i32, ptr %3454, align 4
  %3456 = call zeroext i1 @s2n_result_is_ok(i32 %3455)
  br i1 %3456, label %3510, label %3457

3457:                                             ; preds = %3446
  br label %3458

3458:                                             ; preds = %3457
  br label %3459

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

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

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

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

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

3506:                                             ; preds = %3505
  br label %3507

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

3508:                                             ; No predecessors!
  br label %3509

3509:                                             ; preds = %3508
  br label %3510

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

3511:                                             ; preds = %3510
  br label %3512

3512:                                             ; preds = %3511
  br label %3513

3513:                                             ; preds = %3512
  %3514 = load i32, ptr @test_count, align 4, !tbaa !5
  %3515 = add nsw i32 %3514, 1
  store i32 %3515, ptr @test_count, align 4, !tbaa !5
  %3516 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %126, i32 0, i32 0
  %3517 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %3516, i32 0, i32 0
  %3518 = call ptr @s2n_stuffer_raw_read(ptr noundef %3517, i32 noundef 3)
  %3519 = icmp eq ptr %3518, null
  br i1 %3519, label %3520, label %3573

3520:                                             ; preds = %3513
  br label %3521

3521:                                             ; preds = %3520
  br label %3522

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

3529:                                             ; preds = %3522
  %3530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3531 = call i32 @fileno(ptr noundef %3530) #11
  %3532 = call i32 @isatty(i32 noundef %3531) #11
  %3533 = icmp ne i32 %3532, 0
  br i1 %3533, label %3534, label %3551

3534:                                             ; preds = %3529
  %3535 = load i32, ptr %145, align 4, !tbaa !5
  %3536 = call ptr @__errno_location() #12
  store i32 %3535, ptr %3536, align 4, !tbaa !5
  %3537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3538 = load i32, ptr @test_count, align 4, !tbaa !5
  %3539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3540 = load i32, ptr %3539, align 4, !tbaa !5
  %3541 = call ptr @s2n_strerror(i32 noundef %3540, ptr noundef @.str.4)
  %3542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3543 = load i32, ptr %3542, align 4, !tbaa !5
  %3544 = call ptr @s2n_strerror_debug(i32 noundef %3543, ptr noundef @.str.4)
  %3545 = call ptr @__errno_location() #12
  %3546 = load i32, ptr %3545, align 4, !tbaa !5
  %3547 = call ptr @strerror(i32 noundef %3546) #11
  %3548 = call ptr @__errno_location() #12
  %3549 = load i32, ptr %3548, align 4, !tbaa !5
  %3550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3537, ptr noundef @.str.2, i32 noundef %3538, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 229, ptr noundef %3541, ptr noundef %3544, ptr noundef %3547, i32 noundef %3549) #11
  br label %3568

3551:                                             ; preds = %3529, %3522
  %3552 = load i32, ptr %145, align 4, !tbaa !5
  %3553 = call ptr @__errno_location() #12
  store i32 %3552, ptr %3553, align 4, !tbaa !5
  %3554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3555 = load i32, ptr @test_count, align 4, !tbaa !5
  %3556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3557 = load i32, ptr %3556, align 4, !tbaa !5
  %3558 = call ptr @s2n_strerror(i32 noundef %3557, ptr noundef @.str.4)
  %3559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3560 = load i32, ptr %3559, align 4, !tbaa !5
  %3561 = call ptr @s2n_strerror_debug(i32 noundef %3560, ptr noundef @.str.4)
  %3562 = call ptr @__errno_location() #12
  %3563 = load i32, ptr %3562, align 4, !tbaa !5
  %3564 = call ptr @strerror(i32 noundef %3563) #11
  %3565 = call ptr @__errno_location() #12
  %3566 = load i32, ptr %3565, align 4, !tbaa !5
  %3567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3554, ptr noundef @.str.5, i32 noundef %3555, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 229, ptr noundef %3558, ptr noundef %3561, ptr noundef %3564, i32 noundef %3566) #11
  br label %3568

3568:                                             ; preds = %3551, %3534
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #11
  br label %3569

3569:                                             ; preds = %3568
  br label %3570

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

3571:                                             ; No predecessors!
  br label %3572

3572:                                             ; preds = %3571
  br label %3573

3573:                                             ; preds = %3572, %3513
  br label %3574

3574:                                             ; preds = %3573
  br label %3575

3575:                                             ; preds = %3574
  br label %3576

3576:                                             ; preds = %3575
  %3577 = load i64, ptr %142, align 8, !tbaa !54
  %3578 = add i64 %3577, 1
  store i64 %3578, ptr %142, align 8, !tbaa !54
  br label %3440, !llvm.loop !66

3579:                                             ; preds = %3444
  br label %3580

3580:                                             ; preds = %3579
  %3581 = load i32, ptr @test_count, align 4, !tbaa !5
  %3582 = add nsw i32 %3581, 1
  store i32 %3582, ptr @test_count, align 4, !tbaa !5
  %3583 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %126, i32 0, i32 0
  %3584 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %3583, i32 0, i32 2
  %3585 = load i64, ptr %3584, align 8, !tbaa !55
  %3586 = load i64, ptr %129, align 8, !tbaa !54
  %3587 = icmp eq i64 %3585, %3586
  br i1 %3587, label %3641, label %3588

3588:                                             ; preds = %3580
  br label %3589

3589:                                             ; preds = %3588
  br label %3590

3590:                                             ; preds = %3589
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #11
  %3591 = call ptr @__errno_location() #12
  %3592 = load i32, ptr %3591, align 4, !tbaa !5
  store i32 %3592, ptr %146, align 4, !tbaa !5
  %3593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3594 = call i32 @s2n_print_stacktrace(ptr noundef %3593)
  %3595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3596 = trunc i8 %3595 to i1
  br i1 %3596, label %3597, label %3619

3597:                                             ; preds = %3590
  %3598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3599 = call i32 @fileno(ptr noundef %3598) #11
  %3600 = call i32 @isatty(i32 noundef %3599) #11
  %3601 = icmp ne i32 %3600, 0
  br i1 %3601, label %3602, label %3619

3602:                                             ; preds = %3597
  %3603 = load i32, ptr %146, align 4, !tbaa !5
  %3604 = call ptr @__errno_location() #12
  store i32 %3603, ptr %3604, align 4, !tbaa !5
  %3605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3606 = load i32, ptr @test_count, align 4, !tbaa !5
  %3607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3608 = load i32, ptr %3607, align 4, !tbaa !5
  %3609 = call ptr @s2n_strerror(i32 noundef %3608, ptr noundef @.str.4)
  %3610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3611 = load i32, ptr %3610, align 4, !tbaa !5
  %3612 = call ptr @s2n_strerror_debug(i32 noundef %3611, ptr noundef @.str.4)
  %3613 = call ptr @__errno_location() #12
  %3614 = load i32, ptr %3613, align 4, !tbaa !5
  %3615 = call ptr @strerror(i32 noundef %3614) #11
  %3616 = call ptr @__errno_location() #12
  %3617 = load i32, ptr %3616, align 4, !tbaa !5
  %3618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3605, ptr noundef @.str.2, i32 noundef %3606, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 232, ptr noundef %3609, ptr noundef %3612, ptr noundef %3615, i32 noundef %3617) #11
  br label %3636

3619:                                             ; preds = %3597, %3590
  %3620 = load i32, ptr %146, align 4, !tbaa !5
  %3621 = call ptr @__errno_location() #12
  store i32 %3620, ptr %3621, align 4, !tbaa !5
  %3622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3623 = load i32, ptr @test_count, align 4, !tbaa !5
  %3624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3625 = load i32, ptr %3624, align 4, !tbaa !5
  %3626 = call ptr @s2n_strerror(i32 noundef %3625, ptr noundef @.str.4)
  %3627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3628 = load i32, ptr %3627, align 4, !tbaa !5
  %3629 = call ptr @s2n_strerror_debug(i32 noundef %3628, ptr noundef @.str.4)
  %3630 = call ptr @__errno_location() #12
  %3631 = load i32, ptr %3630, align 4, !tbaa !5
  %3632 = call ptr @strerror(i32 noundef %3631) #11
  %3633 = call ptr @__errno_location() #12
  %3634 = load i32, ptr %3633, align 4, !tbaa !5
  %3635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3622, ptr noundef @.str.5, i32 noundef %3623, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 232, ptr noundef %3626, ptr noundef %3629, ptr noundef %3632, i32 noundef %3634) #11
  br label %3636

3636:                                             ; preds = %3619, %3602
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %3637

3637:                                             ; preds = %3636
  br label %3638

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

3639:                                             ; No predecessors!
  br label %3640

3640:                                             ; preds = %3639
  br label %3641

3641:                                             ; preds = %3640, %3580
  br label %3642

3642:                                             ; preds = %3641
  br label %3643

3643:                                             ; preds = %3642
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %132) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %131) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #11
  %3644 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef %126)
  %3645 = getelementptr inbounds %struct.s2n_result, ptr %147, i32 0, i32 0
  store i32 %3644, ptr %3645, align 4
  call void @llvm.lifetime.end.p0(i64 192, ptr %126) #11
  %3646 = call i32 @s2n_connection_ptr_free(ptr noundef %125)
  %3647 = getelementptr inbounds %struct.s2n_result, ptr %148, i32 0, i32 0
  store i32 %3646, ptr %3647, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #11
  %3648 = call i32 @s2n_connection_ptr_free(ptr noundef %124)
  %3649 = getelementptr inbounds %struct.s2n_result, ptr %149, i32 0, i32 0
  store i32 %3648, ptr %3649, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #11
  %3650 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3650, ptr %150, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #11
  %3651 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3651, ptr %151, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr %152) #11
  call void @llvm.memset.p0.i64(ptr align 8 %152, i8 0, i64 192, i1 false)
  br label %3652

3652:                                             ; preds = %3643
  %3653 = load i32, ptr @test_count, align 4, !tbaa !5
  %3654 = add nsw i32 %3653, 1
  store i32 %3654, ptr @test_count, align 4, !tbaa !5
  %3655 = load ptr, ptr %150, align 8, !tbaa !9
  %3656 = load ptr, ptr %151, align 8, !tbaa !9
  %3657 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %3655, ptr noundef %3656, ptr noundef %152)
  %3658 = getelementptr inbounds %struct.s2n_result, ptr %153, i32 0, i32 0
  store i32 %3657, ptr %3658, align 4
  %3659 = getelementptr inbounds %struct.s2n_result, ptr %153, i32 0, i32 0
  %3660 = load i32, ptr %3659, align 4
  %3661 = call zeroext i1 @s2n_result_is_ok(i32 %3660)
  br i1 %3661, label %3715, label %3662

3662:                                             ; preds = %3652
  br label %3663

3663:                                             ; preds = %3662
  br label %3664

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

3671:                                             ; preds = %3664
  %3672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3673 = call i32 @fileno(ptr noundef %3672) #11
  %3674 = call i32 @isatty(i32 noundef %3673) #11
  %3675 = icmp ne i32 %3674, 0
  br i1 %3675, label %3676, label %3693

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

3693:                                             ; preds = %3671, %3664
  %3694 = load i32, ptr %154, align 4, !tbaa !5
  %3695 = call ptr @__errno_location() #12
  store i32 %3694, ptr %3695, 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 @.str.4)
  %3701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3702 = load i32, ptr %3701, align 4, !tbaa !5
  %3703 = call ptr @s2n_strerror_debug(i32 noundef %3702, ptr noundef @.str.4)
  %3704 = call ptr @__errno_location() #12
  %3705 = load i32, ptr %3704, align 4, !tbaa !5
  %3706 = call ptr @strerror(i32 noundef %3705) #11
  %3707 = call ptr @__errno_location() #12
  %3708 = load i32, ptr %3707, align 4, !tbaa !5
  %3709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3696, ptr noundef @.str.5, i32 noundef %3697, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 243, ptr noundef %3700, ptr noundef %3703, ptr noundef %3706, i32 noundef %3708) #11
  br label %3710

3710:                                             ; preds = %3693, %3676
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #11
  br label %3711

3711:                                             ; preds = %3710
  br label %3712

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

3713:                                             ; No predecessors!
  br label %3714

3714:                                             ; preds = %3713
  br label %3715

3715:                                             ; preds = %3714, %3652
  br label %3716

3716:                                             ; preds = %3715
  br label %3717

3717:                                             ; preds = %3716
  %3718 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %152, i32 0, i32 0
  %3719 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %3718, i32 0, i32 1
  %3720 = getelementptr inbounds %struct.s2n_stuffer, ptr %3719, i32 0, i32 4
  %3721 = load i8, ptr %3720, align 4
  %3722 = and i8 %3721, -3
  %3723 = or i8 %3722, 0
  store i8 %3723, ptr %3720, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #11
  store i64 1, ptr %155, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 16, ptr %156) #11
  %3724 = getelementptr inbounds %struct.iovec, ptr %156, i32 0, i32 0
  %3725 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  store ptr %3725, ptr %3724, align 8, !tbaa !16
  %3726 = getelementptr inbounds %struct.iovec, ptr %156, i32 0, i32 1
  %3727 = load i64, ptr %155, align 8, !tbaa !54
  store i64 %3727, ptr %3726, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 56, ptr %157) #11
  %3728 = getelementptr inbounds %struct.msghdr, ptr %157, i32 0, i32 0
  store ptr null, ptr %3728, align 8, !tbaa !20
  %3729 = getelementptr inbounds %struct.msghdr, ptr %157, i32 0, i32 1
  store i32 0, ptr %3729, align 8, !tbaa !22
  %3730 = getelementptr inbounds %struct.msghdr, ptr %157, i32 0, i32 2
  store ptr %156, ptr %3730, align 8, !tbaa !23
  %3731 = getelementptr inbounds %struct.msghdr, ptr %157, i32 0, i32 3
  store i64 1, ptr %3731, align 8, !tbaa !24
  %3732 = getelementptr inbounds %struct.msghdr, ptr %157, i32 0, i32 4
  store ptr null, ptr %3732, align 8, !tbaa !25
  %3733 = getelementptr inbounds %struct.msghdr, ptr %157, i32 0, i32 5
  store i64 0, ptr %3733, align 8, !tbaa !26
  %3734 = getelementptr inbounds %struct.msghdr, ptr %157, i32 0, i32 6
  store i32 0, ptr %3734, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 100, ptr %158) #11
  call void @llvm.memset.p0.i64(ptr align 16 %158, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #11
  store i64 5, ptr %159, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #11
  store i64 0, ptr %160, align 8, !tbaa !54
  br label %3735

3735:                                             ; preds = %3932, %3717
  %3736 = load i64, ptr %160, align 8, !tbaa !54
  %3737 = load i64, ptr %159, align 8, !tbaa !54
  %3738 = icmp ult i64 %3736, %3737
  br i1 %3738, label %3740, label %3739

3739:                                             ; preds = %3735
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #11
  br label %3935

3740:                                             ; preds = %3735
  br label %3741

3741:                                             ; preds = %3740
  %3742 = load i32, ptr @test_count, align 4, !tbaa !5
  %3743 = add nsw i32 %3742, 1
  store i32 %3743, ptr @test_count, align 4, !tbaa !5
  %3744 = getelementptr inbounds [100 x i8], ptr %158, i64 0, i64 0
  %3745 = call i32 @s2n_ktls_set_control_data(ptr noundef %157, ptr noundef %3744, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43)
  %3746 = getelementptr inbounds %struct.s2n_result, ptr %161, i32 0, i32 0
  store i32 %3745, ptr %3746, align 4
  %3747 = getelementptr inbounds %struct.s2n_result, ptr %161, i32 0, i32 0
  %3748 = load i32, ptr %3747, align 4
  %3749 = call zeroext i1 @s2n_result_is_ok(i32 %3748)
  br i1 %3749, label %3803, label %3750

3750:                                             ; preds = %3741
  br label %3751

3751:                                             ; preds = %3750
  br label %3752

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

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

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

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

3798:                                             ; preds = %3781, %3764
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #11
  br label %3799

3799:                                             ; preds = %3798
  br label %3800

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

3801:                                             ; No predecessors!
  br label %3802

3802:                                             ; preds = %3801
  br label %3803

3803:                                             ; preds = %3802, %3741
  br label %3804

3804:                                             ; preds = %3803
  br label %3805

3805:                                             ; preds = %3804
  br label %3806

3806:                                             ; preds = %3805
  %3807 = load i32, ptr @test_count, align 4, !tbaa !5
  %3808 = add nsw i32 %3807, 1
  store i32 %3808, ptr @test_count, align 4, !tbaa !5
  %3809 = load ptr, ptr %150, align 8, !tbaa !9
  %3810 = getelementptr inbounds %struct.s2n_connection, ptr %3809, i32 0, i32 8
  %3811 = load ptr, ptr %3810, align 8, !tbaa !28
  %3812 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %3811, ptr noundef %157)
  %3813 = icmp eq i64 %3812, -1
  br i1 %3813, label %3867, label %3814

3814:                                             ; preds = %3806
  br label %3815

3815:                                             ; preds = %3814
  br label %3816

3816:                                             ; preds = %3815
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #11
  %3817 = call ptr @__errno_location() #12
  %3818 = load i32, ptr %3817, align 4, !tbaa !5
  store i32 %3818, ptr %163, align 4, !tbaa !5
  %3819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3820 = call i32 @s2n_print_stacktrace(ptr noundef %3819)
  %3821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3822 = trunc i8 %3821 to i1
  br i1 %3822, label %3823, label %3845

3823:                                             ; preds = %3816
  %3824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3825 = call i32 @fileno(ptr noundef %3824) #11
  %3826 = call i32 @isatty(i32 noundef %3825) #11
  %3827 = icmp ne i32 %3826, 0
  br i1 %3827, label %3828, label %3845

3828:                                             ; preds = %3823
  %3829 = load i32, ptr %163, align 4, !tbaa !5
  %3830 = call ptr @__errno_location() #12
  store i32 %3829, ptr %3830, align 4, !tbaa !5
  %3831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3832 = load i32, ptr @test_count, align 4, !tbaa !5
  %3833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3834 = load i32, ptr %3833, align 4, !tbaa !5
  %3835 = call ptr @s2n_strerror(i32 noundef %3834, ptr noundef @.str.4)
  %3836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3837 = load i32, ptr %3836, align 4, !tbaa !5
  %3838 = call ptr @s2n_strerror_debug(i32 noundef %3837, ptr noundef @.str.4)
  %3839 = call ptr @__errno_location() #12
  %3840 = load i32, ptr %3839, align 4, !tbaa !5
  %3841 = call ptr @strerror(i32 noundef %3840) #11
  %3842 = call ptr @__errno_location() #12
  %3843 = load i32, ptr %3842, align 4, !tbaa !5
  %3844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3831, ptr noundef @.str.2, i32 noundef %3832, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 257, ptr noundef %3835, ptr noundef %3838, ptr noundef %3841, i32 noundef %3843) #11
  br label %3862

3845:                                             ; preds = %3823, %3816
  %3846 = load i32, ptr %163, align 4, !tbaa !5
  %3847 = call ptr @__errno_location() #12
  store i32 %3846, ptr %3847, align 4, !tbaa !5
  %3848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3849 = load i32, ptr @test_count, align 4, !tbaa !5
  %3850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3851 = load i32, ptr %3850, align 4, !tbaa !5
  %3852 = call ptr @s2n_strerror(i32 noundef %3851, ptr noundef @.str.4)
  %3853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3854 = load i32, ptr %3853, align 4, !tbaa !5
  %3855 = call ptr @s2n_strerror_debug(i32 noundef %3854, ptr noundef @.str.4)
  %3856 = call ptr @__errno_location() #12
  %3857 = load i32, ptr %3856, align 4, !tbaa !5
  %3858 = call ptr @strerror(i32 noundef %3857) #11
  %3859 = call ptr @__errno_location() #12
  %3860 = load i32, ptr %3859, align 4, !tbaa !5
  %3861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3848, ptr noundef @.str.5, i32 noundef %3849, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 257, ptr noundef %3852, ptr noundef %3855, ptr noundef %3858, i32 noundef %3860) #11
  br label %3862

3862:                                             ; preds = %3845, %3828
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %3863

3863:                                             ; preds = %3862
  br label %3864

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

3865:                                             ; No predecessors!
  br label %3866

3866:                                             ; preds = %3865
  br label %3867

3867:                                             ; preds = %3866, %3806
  br label %3868

3868:                                             ; preds = %3867
  br label %3869

3869:                                             ; preds = %3868
  br label %3870

3870:                                             ; preds = %3869
  %3871 = load i32, ptr @test_count, align 4, !tbaa !5
  %3872 = add nsw i32 %3871, 1
  store i32 %3872, ptr @test_count, align 4, !tbaa !5
  %3873 = call ptr @__errno_location() #12
  %3874 = load i32, ptr %3873, align 4, !tbaa !5
  %3875 = icmp eq i32 %3874, 11
  br i1 %3875, label %3929, label %3876

3876:                                             ; preds = %3870
  br label %3877

3877:                                             ; preds = %3876
  br label %3878

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

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

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

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

3924:                                             ; preds = %3907, %3890
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %3925

3925:                                             ; preds = %3924
  br label %3926

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

3927:                                             ; No predecessors!
  br label %3928

3928:                                             ; preds = %3927
  br label %3929

3929:                                             ; preds = %3928, %3870
  br label %3930

3930:                                             ; preds = %3929
  br label %3931

3931:                                             ; preds = %3930
  br label %3932

3932:                                             ; preds = %3931
  %3933 = load i64, ptr %160, align 8, !tbaa !54
  %3934 = add i64 %3933, 1
  store i64 %3934, ptr %160, align 8, !tbaa !54
  br label %3735, !llvm.loop !67

3935:                                             ; preds = %3739
  %3936 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %152, i32 0, i32 0
  %3937 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %3936, i32 0, i32 1
  %3938 = getelementptr inbounds %struct.s2n_stuffer, ptr %3937, i32 0, i32 4
  %3939 = load i8, ptr %3938, align 4
  %3940 = and i8 %3939, -3
  %3941 = or i8 %3940, 2
  store i8 %3941, ptr %3938, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #11
  %3942 = load ptr, ptr %150, align 8, !tbaa !9
  %3943 = getelementptr inbounds %struct.s2n_connection, ptr %3942, i32 0, i32 8
  %3944 = load ptr, ptr %3943, align 8, !tbaa !28
  %3945 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %3944, ptr noundef %157)
  store i64 %3945, ptr %165, align 8, !tbaa !54
  br label %3946

3946:                                             ; preds = %3935
  %3947 = load i32, ptr @test_count, align 4, !tbaa !5
  %3948 = add nsw i32 %3947, 1
  store i32 %3948, ptr @test_count, align 4, !tbaa !5
  %3949 = load i64, ptr %165, align 8, !tbaa !54
  %3950 = load i64, ptr %155, align 8, !tbaa !54
  %3951 = icmp eq i64 %3949, %3950
  br i1 %3951, label %4005, label %3952

3952:                                             ; preds = %3946
  br label %3953

3953:                                             ; preds = %3952
  br label %3954

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

3961:                                             ; preds = %3954
  %3962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3963 = call i32 @fileno(ptr noundef %3962) #11
  %3964 = call i32 @isatty(i32 noundef %3963) #11
  %3965 = icmp ne i32 %3964, 0
  br i1 %3965, label %3966, label %3983

3966:                                             ; preds = %3961
  %3967 = load i32, ptr %166, align 4, !tbaa !5
  %3968 = call ptr @__errno_location() #12
  store i32 %3967, ptr %3968, align 4, !tbaa !5
  %3969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3970 = load i32, ptr @test_count, align 4, !tbaa !5
  %3971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3972 = load i32, ptr %3971, align 4, !tbaa !5
  %3973 = call ptr @s2n_strerror(i32 noundef %3972, ptr noundef @.str.4)
  %3974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3975 = load i32, ptr %3974, align 4, !tbaa !5
  %3976 = call ptr @s2n_strerror_debug(i32 noundef %3975, ptr noundef @.str.4)
  %3977 = call ptr @__errno_location() #12
  %3978 = load i32, ptr %3977, align 4, !tbaa !5
  %3979 = call ptr @strerror(i32 noundef %3978) #11
  %3980 = call ptr @__errno_location() #12
  %3981 = load i32, ptr %3980, align 4, !tbaa !5
  %3982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3969, ptr noundef @.str.2, i32 noundef %3970, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 266, ptr noundef %3973, ptr noundef %3976, ptr noundef %3979, i32 noundef %3981) #11
  br label %4000

3983:                                             ; preds = %3961, %3954
  %3984 = load i32, ptr %166, align 4, !tbaa !5
  %3985 = call ptr @__errno_location() #12
  store i32 %3984, ptr %3985, align 4, !tbaa !5
  %3986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3987 = load i32, ptr @test_count, align 4, !tbaa !5
  %3988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3989 = load i32, ptr %3988, align 4, !tbaa !5
  %3990 = call ptr @s2n_strerror(i32 noundef %3989, ptr noundef @.str.4)
  %3991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3992 = load i32, ptr %3991, align 4, !tbaa !5
  %3993 = call ptr @s2n_strerror_debug(i32 noundef %3992, ptr noundef @.str.4)
  %3994 = call ptr @__errno_location() #12
  %3995 = load i32, ptr %3994, align 4, !tbaa !5
  %3996 = call ptr @strerror(i32 noundef %3995) #11
  %3997 = call ptr @__errno_location() #12
  %3998 = load i32, ptr %3997, align 4, !tbaa !5
  %3999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3986, ptr noundef @.str.5, i32 noundef %3987, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 266, ptr noundef %3990, ptr noundef %3993, ptr noundef %3996, i32 noundef %3998) #11
  br label %4000

4000:                                             ; preds = %3983, %3966
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #11
  br label %4001

4001:                                             ; preds = %4000
  br label %4002

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

4003:                                             ; No predecessors!
  br label %4004

4004:                                             ; preds = %4003
  br label %4005

4005:                                             ; preds = %4004, %3946
  br label %4006

4006:                                             ; preds = %4005
  br label %4007

4007:                                             ; preds = %4006
  br label %4008

4008:                                             ; preds = %4007
  %4009 = load i32, ptr @test_count, align 4, !tbaa !5
  %4010 = add nsw i32 %4009, 1
  store i32 %4010, ptr @test_count, align 4, !tbaa !5
  %4011 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %152, i32 0, i32 0
  %4012 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %4013 = load i64, ptr %155, align 8, !tbaa !54
  %4014 = trunc i64 %4013 to i16
  %4015 = call i32 @s2n_test_validate_data(ptr noundef %4011, ptr noundef %4012, i16 noundef zeroext %4014)
  %4016 = getelementptr inbounds %struct.s2n_result, ptr %167, i32 0, i32 0
  store i32 %4015, ptr %4016, align 4
  %4017 = getelementptr inbounds %struct.s2n_result, ptr %167, i32 0, i32 0
  %4018 = load i32, ptr %4017, align 4
  %4019 = call zeroext i1 @s2n_result_is_ok(i32 %4018)
  br i1 %4019, label %4073, label %4020

4020:                                             ; preds = %4008
  br label %4021

4021:                                             ; preds = %4020
  br label %4022

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

4029:                                             ; preds = %4022
  %4030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4031 = call i32 @fileno(ptr noundef %4030) #11
  %4032 = call i32 @isatty(i32 noundef %4031) #11
  %4033 = icmp ne i32 %4032, 0
  br i1 %4033, label %4034, label %4051

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

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

4068:                                             ; preds = %4051, %4034
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #11
  br label %4069

4069:                                             ; preds = %4068
  br label %4070

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

4071:                                             ; No predecessors!
  br label %4072

4072:                                             ; preds = %4071
  br label %4073

4073:                                             ; preds = %4072, %4008
  br label %4074

4074:                                             ; preds = %4073
  br label %4075

4075:                                             ; preds = %4074
  br label %4076

4076:                                             ; preds = %4075
  %4077 = load i32, ptr @test_count, align 4, !tbaa !5
  %4078 = add nsw i32 %4077, 1
  store i32 %4078, ptr @test_count, align 4, !tbaa !5
  %4079 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %152, i32 0, i32 0
  %4080 = load i64, ptr %155, align 8, !tbaa !54
  %4081 = trunc i64 %4080 to i16
  %4082 = call i32 @s2n_test_validate_ancillary(ptr noundef %4079, i8 noundef zeroext 43, i16 noundef zeroext %4081)
  %4083 = getelementptr inbounds %struct.s2n_result, ptr %169, i32 0, i32 0
  store i32 %4082, ptr %4083, align 4
  %4084 = getelementptr inbounds %struct.s2n_result, ptr %169, i32 0, i32 0
  %4085 = load i32, ptr %4084, align 4
  %4086 = call zeroext i1 @s2n_result_is_ok(i32 %4085)
  br i1 %4086, label %4140, label %4087

4087:                                             ; preds = %4076
  br label %4088

4088:                                             ; preds = %4087
  br label %4089

4089:                                             ; preds = %4088
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #11
  %4090 = call ptr @__errno_location() #12
  %4091 = load i32, ptr %4090, align 4, !tbaa !5
  store i32 %4091, ptr %170, align 4, !tbaa !5
  %4092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4093 = call i32 @s2n_print_stacktrace(ptr noundef %4092)
  %4094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4095 = trunc i8 %4094 to i1
  br i1 %4095, label %4096, label %4118

4096:                                             ; preds = %4089
  %4097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4098 = call i32 @fileno(ptr noundef %4097) #11
  %4099 = call i32 @isatty(i32 noundef %4098) #11
  %4100 = icmp ne i32 %4099, 0
  br i1 %4100, label %4101, label %4118

4101:                                             ; preds = %4096
  %4102 = load i32, ptr %170, align 4, !tbaa !5
  %4103 = call ptr @__errno_location() #12
  store i32 %4102, ptr %4103, align 4, !tbaa !5
  %4104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4105 = load i32, ptr @test_count, align 4, !tbaa !5
  %4106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4107 = load i32, ptr %4106, align 4, !tbaa !5
  %4108 = call ptr @s2n_strerror(i32 noundef %4107, ptr noundef @.str.4)
  %4109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call ptr @s2n_strerror_debug(i32 noundef %4110, ptr noundef @.str.4)
  %4112 = call ptr @__errno_location() #12
  %4113 = load i32, ptr %4112, align 4, !tbaa !5
  %4114 = call ptr @strerror(i32 noundef %4113) #11
  %4115 = call ptr @__errno_location() #12
  %4116 = load i32, ptr %4115, align 4, !tbaa !5
  %4117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4104, ptr noundef @.str.2, i32 noundef %4105, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 270, ptr noundef %4108, ptr noundef %4111, ptr noundef %4114, i32 noundef %4116) #11
  br label %4135

4118:                                             ; preds = %4096, %4089
  %4119 = load i32, ptr %170, align 4, !tbaa !5
  %4120 = call ptr @__errno_location() #12
  store i32 %4119, ptr %4120, align 4, !tbaa !5
  %4121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4122 = load i32, ptr @test_count, align 4, !tbaa !5
  %4123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4124 = load i32, ptr %4123, align 4, !tbaa !5
  %4125 = call ptr @s2n_strerror(i32 noundef %4124, ptr noundef @.str.4)
  %4126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4127 = load i32, ptr %4126, align 4, !tbaa !5
  %4128 = call ptr @s2n_strerror_debug(i32 noundef %4127, ptr noundef @.str.4)
  %4129 = call ptr @__errno_location() #12
  %4130 = load i32, ptr %4129, align 4, !tbaa !5
  %4131 = call ptr @strerror(i32 noundef %4130) #11
  %4132 = call ptr @__errno_location() #12
  %4133 = load i32, ptr %4132, align 4, !tbaa !5
  %4134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4121, ptr noundef @.str.5, i32 noundef %4122, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 270, ptr noundef %4125, ptr noundef %4128, ptr noundef %4131, i32 noundef %4133) #11
  br label %4135

4135:                                             ; preds = %4118, %4101
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  br label %4136

4136:                                             ; preds = %4135
  br label %4137

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

4138:                                             ; No predecessors!
  br label %4139

4139:                                             ; preds = %4138
  br label %4140

4140:                                             ; preds = %4139, %4076
  br label %4141

4141:                                             ; preds = %4140
  br label %4142

4142:                                             ; preds = %4141
  br label %4143

4143:                                             ; preds = %4142
  %4144 = load i32, ptr @test_count, align 4, !tbaa !5
  %4145 = add nsw i32 %4144, 1
  store i32 %4145, ptr @test_count, align 4, !tbaa !5
  %4146 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %152, i32 0, i32 0
  %4147 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %4146, i32 0, i32 0
  %4148 = getelementptr inbounds %struct.s2n_stuffer, ptr %4147, i32 0, i32 2
  %4149 = load i32, ptr %4148, align 4, !tbaa !59
  %4150 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %152, i32 0, i32 0
  %4151 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %4150, i32 0, i32 0
  %4152 = getelementptr inbounds %struct.s2n_stuffer, ptr %4151, i32 0, i32 1
  %4153 = load i32, ptr %4152, align 8, !tbaa !60
  %4154 = sub i32 %4149, %4153
  %4155 = icmp eq i32 %4154, 3
  br i1 %4155, label %4209, label %4156

4156:                                             ; preds = %4143
  br label %4157

4157:                                             ; preds = %4156
  br label %4158

4158:                                             ; preds = %4157
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %4159 = call ptr @__errno_location() #12
  %4160 = load i32, ptr %4159, align 4, !tbaa !5
  store i32 %4160, ptr %171, align 4, !tbaa !5
  %4161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4162 = call i32 @s2n_print_stacktrace(ptr noundef %4161)
  %4163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4164 = trunc i8 %4163 to i1
  br i1 %4164, label %4165, label %4187

4165:                                             ; preds = %4158
  %4166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4167 = call i32 @fileno(ptr noundef %4166) #11
  %4168 = call i32 @isatty(i32 noundef %4167) #11
  %4169 = icmp ne i32 %4168, 0
  br i1 %4169, label %4170, label %4187

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

4187:                                             ; preds = %4165, %4158
  %4188 = load i32, ptr %171, align 4, !tbaa !5
  %4189 = call ptr @__errno_location() #12
  store i32 %4188, ptr %4189, align 4, !tbaa !5
  %4190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4191 = load i32, ptr @test_count, align 4, !tbaa !5
  %4192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4193 = load i32, ptr %4192, align 4, !tbaa !5
  %4194 = call ptr @s2n_strerror(i32 noundef %4193, ptr noundef @.str.4)
  %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_debug(i32 noundef %4196, ptr noundef @.str.4)
  %4198 = call ptr @__errno_location() #12
  %4199 = load i32, ptr %4198, align 4, !tbaa !5
  %4200 = call ptr @strerror(i32 noundef %4199) #11
  %4201 = call ptr @__errno_location() #12
  %4202 = load i32, ptr %4201, align 4, !tbaa !5
  %4203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4190, ptr noundef @.str.5, i32 noundef %4191, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 272, ptr noundef %4194, ptr noundef %4197, ptr noundef %4200, i32 noundef %4202) #11
  br label %4204

4204:                                             ; preds = %4187, %4170
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %4205

4205:                                             ; preds = %4204
  br label %4206

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

4207:                                             ; No predecessors!
  br label %4208

4208:                                             ; preds = %4207
  br label %4209

4209:                                             ; preds = %4208, %4143
  br label %4210

4210:                                             ; preds = %4209
  br label %4211

4211:                                             ; preds = %4210
  br label %4212

4212:                                             ; preds = %4211
  %4213 = load i32, ptr @test_count, align 4, !tbaa !5
  %4214 = add nsw i32 %4213, 1
  store i32 %4214, ptr @test_count, align 4, !tbaa !5
  %4215 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %152, i32 0, i32 0
  %4216 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %4215, i32 0, i32 2
  %4217 = load i64, ptr %4216, align 8, !tbaa !55
  %4218 = load i64, ptr %159, align 8, !tbaa !54
  %4219 = add i64 %4218, 1
  %4220 = icmp eq i64 %4217, %4219
  br i1 %4220, label %4274, label %4221

4221:                                             ; preds = %4212
  br label %4222

4222:                                             ; preds = %4221
  br label %4223

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

4230:                                             ; preds = %4223
  %4231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4232 = call i32 @fileno(ptr noundef %4231) #11
  %4233 = call i32 @isatty(i32 noundef %4232) #11
  %4234 = icmp ne i32 %4233, 0
  br i1 %4234, label %4235, label %4252

4235:                                             ; preds = %4230
  %4236 = load i32, ptr %172, align 4, !tbaa !5
  %4237 = call ptr @__errno_location() #12
  store i32 %4236, ptr %4237, align 4, !tbaa !5
  %4238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4239 = load i32, ptr @test_count, align 4, !tbaa !5
  %4240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4241 = load i32, ptr %4240, align 4, !tbaa !5
  %4242 = call ptr @s2n_strerror(i32 noundef %4241, ptr noundef @.str.4)
  %4243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4244 = load i32, ptr %4243, align 4, !tbaa !5
  %4245 = call ptr @s2n_strerror_debug(i32 noundef %4244, ptr noundef @.str.4)
  %4246 = call ptr @__errno_location() #12
  %4247 = load i32, ptr %4246, align 4, !tbaa !5
  %4248 = call ptr @strerror(i32 noundef %4247) #11
  %4249 = call ptr @__errno_location() #12
  %4250 = load i32, ptr %4249, align 4, !tbaa !5
  %4251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4238, ptr noundef @.str.2, i32 noundef %4239, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 274, ptr noundef %4242, ptr noundef %4245, ptr noundef %4248, i32 noundef %4250) #11
  br label %4269

4252:                                             ; preds = %4230, %4223
  %4253 = load i32, ptr %172, align 4, !tbaa !5
  %4254 = call ptr @__errno_location() #12
  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() #12
  %4264 = load i32, ptr %4263, align 4, !tbaa !5
  %4265 = call ptr @strerror(i32 noundef %4264) #11
  %4266 = call ptr @__errno_location() #12
  %4267 = load i32, ptr %4266, align 4, !tbaa !5
  %4268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4255, ptr noundef @.str.5, i32 noundef %4256, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 274, ptr noundef %4259, ptr noundef %4262, ptr noundef %4265, i32 noundef %4267) #11
  br label %4269

4269:                                             ; preds = %4252, %4235
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %4270

4270:                                             ; preds = %4269
  br label %4271

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

4272:                                             ; No predecessors!
  br label %4273

4273:                                             ; preds = %4272
  br label %4274

4274:                                             ; preds = %4273, %4212
  br label %4275

4275:                                             ; preds = %4274
  br label %4276

4276:                                             ; preds = %4275
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %158) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %157) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %156) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #11
  %4277 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef %152)
  %4278 = getelementptr inbounds %struct.s2n_result, ptr %173, i32 0, i32 0
  store i32 %4277, ptr %4278, align 4
  call void @llvm.lifetime.end.p0(i64 192, ptr %152) #11
  %4279 = call i32 @s2n_connection_ptr_free(ptr noundef %151)
  %4280 = getelementptr inbounds %struct.s2n_result, ptr %174, i32 0, i32 0
  store i32 %4279, ptr %4280, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  %4281 = call i32 @s2n_connection_ptr_free(ptr noundef %150)
  %4282 = getelementptr inbounds %struct.s2n_result, ptr %175, i32 0, i32 0
  store i32 %4281, ptr %4282, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #11
  %4283 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4283, ptr %176, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #11
  %4284 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4284, ptr %177, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr %178) #11
  call void @llvm.memset.p0.i64(ptr align 8 %178, i8 0, i64 192, i1 false)
  br label %4285

4285:                                             ; preds = %4276
  %4286 = load i32, ptr @test_count, align 4, !tbaa !5
  %4287 = add nsw i32 %4286, 1
  store i32 %4287, ptr @test_count, align 4, !tbaa !5
  %4288 = load ptr, ptr %176, align 8, !tbaa !9
  %4289 = load ptr, ptr %177, align 8, !tbaa !9
  %4290 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %4288, ptr noundef %4289, ptr noundef %178)
  %4291 = getelementptr inbounds %struct.s2n_result, ptr %179, i32 0, i32 0
  store i32 %4290, ptr %4291, align 4
  %4292 = getelementptr inbounds %struct.s2n_result, ptr %179, i32 0, i32 0
  %4293 = load i32, ptr %4292, align 4
  %4294 = call zeroext i1 @s2n_result_is_ok(i32 %4293)
  br i1 %4294, label %4348, label %4295

4295:                                             ; preds = %4285
  br label %4296

4296:                                             ; preds = %4295
  br label %4297

4297:                                             ; preds = %4296
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %4298 = call ptr @__errno_location() #12
  %4299 = load i32, ptr %4298, align 4, !tbaa !5
  store i32 %4299, ptr %180, align 4, !tbaa !5
  %4300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4301 = call i32 @s2n_print_stacktrace(ptr noundef %4300)
  %4302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4303 = trunc i8 %4302 to i1
  br i1 %4303, label %4304, label %4326

4304:                                             ; preds = %4297
  %4305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4306 = call i32 @fileno(ptr noundef %4305) #11
  %4307 = call i32 @isatty(i32 noundef %4306) #11
  %4308 = icmp ne i32 %4307, 0
  br i1 %4308, label %4309, label %4326

4309:                                             ; preds = %4304
  %4310 = load i32, ptr %180, align 4, !tbaa !5
  %4311 = call ptr @__errno_location() #12
  store i32 %4310, ptr %4311, align 4, !tbaa !5
  %4312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4313 = load i32, ptr @test_count, align 4, !tbaa !5
  %4314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4315 = load i32, ptr %4314, align 4, !tbaa !5
  %4316 = call ptr @s2n_strerror(i32 noundef %4315, ptr noundef @.str.4)
  %4317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4318 = load i32, ptr %4317, align 4, !tbaa !5
  %4319 = call ptr @s2n_strerror_debug(i32 noundef %4318, ptr noundef @.str.4)
  %4320 = call ptr @__errno_location() #12
  %4321 = load i32, ptr %4320, align 4, !tbaa !5
  %4322 = call ptr @strerror(i32 noundef %4321) #11
  %4323 = call ptr @__errno_location() #12
  %4324 = load i32, ptr %4323, align 4, !tbaa !5
  %4325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4312, ptr noundef @.str.2, i32 noundef %4313, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 285, ptr noundef %4316, ptr noundef %4319, ptr noundef %4322, i32 noundef %4324) #11
  br label %4343

4326:                                             ; preds = %4304, %4297
  %4327 = load i32, ptr %180, align 4, !tbaa !5
  %4328 = call ptr @__errno_location() #12
  store i32 %4327, ptr %4328, align 4, !tbaa !5
  %4329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4330 = load i32, ptr @test_count, align 4, !tbaa !5
  %4331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4332 = load i32, ptr %4331, align 4, !tbaa !5
  %4333 = call ptr @s2n_strerror(i32 noundef %4332, ptr noundef @.str.4)
  %4334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4335 = load i32, ptr %4334, align 4, !tbaa !5
  %4336 = call ptr @s2n_strerror_debug(i32 noundef %4335, ptr noundef @.str.4)
  %4337 = call ptr @__errno_location() #12
  %4338 = load i32, ptr %4337, align 4, !tbaa !5
  %4339 = call ptr @strerror(i32 noundef %4338) #11
  %4340 = call ptr @__errno_location() #12
  %4341 = load i32, ptr %4340, align 4, !tbaa !5
  %4342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4329, ptr noundef @.str.5, i32 noundef %4330, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 285, ptr noundef %4333, ptr noundef %4336, ptr noundef %4339, i32 noundef %4341) #11
  br label %4343

4343:                                             ; preds = %4326, %4309
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %4344

4344:                                             ; preds = %4343
  br label %4345

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

4346:                                             ; No predecessors!
  br label %4347

4347:                                             ; preds = %4346
  br label %4348

4348:                                             ; preds = %4347, %4285
  br label %4349

4349:                                             ; preds = %4348
  br label %4350

4350:                                             ; preds = %4349
  %4351 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %178, i32 0, i32 0
  %4352 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %4351, i32 0, i32 1
  %4353 = getelementptr inbounds %struct.s2n_stuffer, ptr %4352, i32 0, i32 4
  %4354 = load i8, ptr %4353, align 4
  %4355 = and i8 %4354, -3
  %4356 = or i8 %4355, 0
  store i8 %4356, ptr %4353, align 4
  br label %4357

4357:                                             ; preds = %4350
  %4358 = load i32, ptr @test_count, align 4, !tbaa !5
  %4359 = add nsw i32 %4358, 1
  store i32 %4359, ptr @test_count, align 4, !tbaa !5
  %4360 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %178, i32 0, i32 0
  %4361 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %4360, i32 0, i32 1
  %4362 = call i32 @s2n_stuffer_alloc(ptr noundef %4361, i32 noundef 10)
  %4363 = icmp eq i32 %4362, -1
  br i1 %4363, label %4364, label %4417

4364:                                             ; preds = %4357
  br label %4365

4365:                                             ; preds = %4364
  br label %4366

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

4373:                                             ; preds = %4366
  %4374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4375 = call i32 @fileno(ptr noundef %4374) #11
  %4376 = call i32 @isatty(i32 noundef %4375) #11
  %4377 = icmp ne i32 %4376, 0
  br i1 %4377, label %4378, label %4395

4378:                                             ; preds = %4373
  %4379 = load i32, ptr %181, align 4, !tbaa !5
  %4380 = call ptr @__errno_location() #12
  store i32 %4379, ptr %4380, align 4, !tbaa !5
  %4381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4382 = load i32, ptr @test_count, align 4, !tbaa !5
  %4383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4384 = load i32, ptr %4383, align 4, !tbaa !5
  %4385 = call ptr @s2n_strerror(i32 noundef %4384, ptr noundef @.str.4)
  %4386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4387 = load i32, ptr %4386, align 4, !tbaa !5
  %4388 = call ptr @s2n_strerror_debug(i32 noundef %4387, ptr noundef @.str.4)
  %4389 = call ptr @__errno_location() #12
  %4390 = load i32, ptr %4389, align 4, !tbaa !5
  %4391 = call ptr @strerror(i32 noundef %4390) #11
  %4392 = call ptr @__errno_location() #12
  %4393 = load i32, ptr %4392, align 4, !tbaa !5
  %4394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4381, ptr noundef @.str.2, i32 noundef %4382, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 288, ptr noundef %4385, ptr noundef %4388, ptr noundef %4391, i32 noundef %4393) #11
  br label %4412

4395:                                             ; preds = %4373, %4366
  %4396 = load i32, ptr %181, align 4, !tbaa !5
  %4397 = call ptr @__errno_location() #12
  store i32 %4396, ptr %4397, align 4, !tbaa !5
  %4398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4399 = load i32, ptr @test_count, align 4, !tbaa !5
  %4400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4401 = load i32, ptr %4400, align 4, !tbaa !5
  %4402 = call ptr @s2n_strerror(i32 noundef %4401, ptr noundef @.str.4)
  %4403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4404 = load i32, ptr %4403, align 4, !tbaa !5
  %4405 = call ptr @s2n_strerror_debug(i32 noundef %4404, ptr noundef @.str.4)
  %4406 = call ptr @__errno_location() #12
  %4407 = load i32, ptr %4406, align 4, !tbaa !5
  %4408 = call ptr @strerror(i32 noundef %4407) #11
  %4409 = call ptr @__errno_location() #12
  %4410 = load i32, ptr %4409, align 4, !tbaa !5
  %4411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4398, ptr noundef @.str.5, i32 noundef %4399, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 288, ptr noundef %4402, ptr noundef %4405, ptr noundef %4408, i32 noundef %4410) #11
  br label %4412

4412:                                             ; preds = %4395, %4378
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #11
  br label %4413

4413:                                             ; preds = %4412
  br label %4414

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

4415:                                             ; No predecessors!
  br label %4416

4416:                                             ; preds = %4415
  br label %4417

4417:                                             ; preds = %4416, %4357
  br label %4418

4418:                                             ; preds = %4417
  br label %4419

4419:                                             ; preds = %4418
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #11
  %4420 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  store ptr %4420, ptr %182, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr %183) #11
  call void @llvm.memset.p0.i64(ptr align 16 %183, i8 0, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %184) #11
  store i64 0, ptr %184, align 8, !tbaa !54
  br label %4421

4421:                                             ; preds = %4435, %4419
  %4422 = load i64, ptr %184, align 8, !tbaa !54
  %4423 = icmp ult i64 %4422, 5
  br i1 %4423, label %4425, label %4424

4424:                                             ; preds = %4421
  call void @llvm.lifetime.end.p0(i64 8, ptr %184) #11
  br label %4438

4425:                                             ; preds = %4421
  %4426 = load ptr, ptr %182, align 8, !tbaa !9
  %4427 = load i64, ptr %184, align 8, !tbaa !54
  %4428 = getelementptr inbounds [5 x %struct.iovec], ptr %183, i64 0, i64 %4427
  %4429 = getelementptr inbounds %struct.iovec, ptr %4428, i32 0, i32 0
  store ptr %4426, ptr %4429, align 16, !tbaa !16
  %4430 = load i64, ptr %184, align 8, !tbaa !54
  %4431 = getelementptr inbounds [5 x %struct.iovec], ptr %183, i64 0, i64 %4430
  %4432 = getelementptr inbounds %struct.iovec, ptr %4431, i32 0, i32 1
  store i64 10, ptr %4432, align 8, !tbaa !19
  %4433 = load ptr, ptr %182, align 8, !tbaa !9
  %4434 = getelementptr inbounds i8, ptr %4433, i64 10
  store ptr %4434, ptr %182, align 8, !tbaa !9
  br label %4435

4435:                                             ; preds = %4425
  %4436 = load i64, ptr %184, align 8, !tbaa !54
  %4437 = add i64 %4436, 1
  store i64 %4437, ptr %184, align 8, !tbaa !54
  br label %4421, !llvm.loop !68

4438:                                             ; preds = %4424
  call void @llvm.lifetime.start.p0(i64 56, ptr %185) #11
  %4439 = getelementptr inbounds %struct.msghdr, ptr %185, i32 0, i32 0
  store ptr null, ptr %4439, align 8, !tbaa !20
  %4440 = getelementptr inbounds %struct.msghdr, ptr %185, i32 0, i32 1
  store i32 0, ptr %4440, align 8, !tbaa !22
  %4441 = getelementptr inbounds %struct.msghdr, ptr %185, i32 0, i32 2
  %4442 = getelementptr inbounds [5 x %struct.iovec], ptr %183, i64 0, i64 0
  store ptr %4442, ptr %4441, align 8, !tbaa !23
  %4443 = getelementptr inbounds %struct.msghdr, ptr %185, i32 0, i32 3
  store i64 5, ptr %4443, align 8, !tbaa !24
  %4444 = getelementptr inbounds %struct.msghdr, ptr %185, i32 0, i32 4
  store ptr null, ptr %4444, align 8, !tbaa !25
  %4445 = getelementptr inbounds %struct.msghdr, ptr %185, i32 0, i32 5
  store i64 0, ptr %4445, align 8, !tbaa !26
  %4446 = getelementptr inbounds %struct.msghdr, ptr %185, i32 0, i32 6
  store i32 0, ptr %4446, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 100, ptr %186) #11
  call void @llvm.memset.p0.i64(ptr align 16 %186, i8 0, i64 100, i1 false)
  br label %4447

4447:                                             ; preds = %4438
  %4448 = load i32, ptr @test_count, align 4, !tbaa !5
  %4449 = add nsw i32 %4448, 1
  store i32 %4449, ptr @test_count, align 4, !tbaa !5
  %4450 = getelementptr inbounds [100 x i8], ptr %186, i64 0, i64 0
  %4451 = call i32 @s2n_ktls_set_control_data(ptr noundef %185, ptr noundef %4450, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43)
  %4452 = getelementptr inbounds %struct.s2n_result, ptr %187, i32 0, i32 0
  store i32 %4451, ptr %4452, align 4
  %4453 = getelementptr inbounds %struct.s2n_result, ptr %187, i32 0, i32 0
  %4454 = load i32, ptr %4453, align 4
  %4455 = call zeroext i1 @s2n_result_is_ok(i32 %4454)
  br i1 %4455, label %4509, label %4456

4456:                                             ; preds = %4447
  br label %4457

4457:                                             ; preds = %4456
  br label %4458

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

4465:                                             ; preds = %4458
  %4466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4467 = call i32 @fileno(ptr noundef %4466) #11
  %4468 = call i32 @isatty(i32 noundef %4467) #11
  %4469 = icmp ne i32 %4468, 0
  br i1 %4469, label %4470, label %4487

4470:                                             ; preds = %4465
  %4471 = load i32, ptr %188, align 4, !tbaa !5
  %4472 = call ptr @__errno_location() #12
  store i32 %4471, ptr %4472, align 4, !tbaa !5
  %4473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4474 = load i32, ptr @test_count, align 4, !tbaa !5
  %4475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4476 = load i32, ptr %4475, align 4, !tbaa !5
  %4477 = call ptr @s2n_strerror(i32 noundef %4476, ptr noundef @.str.4)
  %4478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4479 = load i32, ptr %4478, align 4, !tbaa !5
  %4480 = call ptr @s2n_strerror_debug(i32 noundef %4479, ptr noundef @.str.4)
  %4481 = call ptr @__errno_location() #12
  %4482 = load i32, ptr %4481, align 4, !tbaa !5
  %4483 = call ptr @strerror(i32 noundef %4482) #11
  %4484 = call ptr @__errno_location() #12
  %4485 = load i32, ptr %4484, align 4, !tbaa !5
  %4486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4473, ptr noundef @.str.2, i32 noundef %4474, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 301, ptr noundef %4477, ptr noundef %4480, ptr noundef %4483, i32 noundef %4485) #11
  br label %4504

4487:                                             ; preds = %4465, %4458
  %4488 = load i32, ptr %188, align 4, !tbaa !5
  %4489 = call ptr @__errno_location() #12
  store i32 %4488, ptr %4489, align 4, !tbaa !5
  %4490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4491 = load i32, ptr @test_count, align 4, !tbaa !5
  %4492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4493 = load i32, ptr %4492, align 4, !tbaa !5
  %4494 = call ptr @s2n_strerror(i32 noundef %4493, ptr noundef @.str.4)
  %4495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4496 = load i32, ptr %4495, align 4, !tbaa !5
  %4497 = call ptr @s2n_strerror_debug(i32 noundef %4496, ptr noundef @.str.4)
  %4498 = call ptr @__errno_location() #12
  %4499 = load i32, ptr %4498, align 4, !tbaa !5
  %4500 = call ptr @strerror(i32 noundef %4499) #11
  %4501 = call ptr @__errno_location() #12
  %4502 = load i32, ptr %4501, align 4, !tbaa !5
  %4503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4490, ptr noundef @.str.5, i32 noundef %4491, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 301, ptr noundef %4494, ptr noundef %4497, ptr noundef %4500, i32 noundef %4502) #11
  br label %4504

4504:                                             ; preds = %4487, %4470
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  br label %4505

4505:                                             ; preds = %4504
  br label %4506

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

4507:                                             ; No predecessors!
  br label %4508

4508:                                             ; preds = %4507
  br label %4509

4509:                                             ; preds = %4508, %4447
  br label %4510

4510:                                             ; preds = %4509
  br label %4511

4511:                                             ; preds = %4510
  br label %4512

4512:                                             ; preds = %4511
  %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 = load ptr, ptr %176, align 8, !tbaa !9
  %4516 = getelementptr inbounds %struct.s2n_connection, ptr %4515, i32 0, i32 8
  %4517 = load ptr, ptr %4516, align 8, !tbaa !28
  %4518 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %4517, ptr noundef %185)
  %4519 = icmp eq i64 %4518, 10
  br i1 %4519, label %4573, label %4520

4520:                                             ; preds = %4512
  br label %4521

4521:                                             ; preds = %4520
  br label %4522

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

4529:                                             ; preds = %4522
  %4530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4531 = call i32 @fileno(ptr noundef %4530) #11
  %4532 = call i32 @isatty(i32 noundef %4531) #11
  %4533 = icmp ne i32 %4532, 0
  br i1 %4533, label %4534, label %4551

4534:                                             ; preds = %4529
  %4535 = load i32, ptr %189, align 4, !tbaa !5
  %4536 = call ptr @__errno_location() #12
  store i32 %4535, ptr %4536, align 4, !tbaa !5
  %4537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4538 = load i32, ptr @test_count, align 4, !tbaa !5
  %4539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4540 = load i32, ptr %4539, align 4, !tbaa !5
  %4541 = call ptr @s2n_strerror(i32 noundef %4540, ptr noundef @.str.4)
  %4542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4543 = load i32, ptr %4542, align 4, !tbaa !5
  %4544 = call ptr @s2n_strerror_debug(i32 noundef %4543, ptr noundef @.str.4)
  %4545 = call ptr @__errno_location() #12
  %4546 = load i32, ptr %4545, align 4, !tbaa !5
  %4547 = call ptr @strerror(i32 noundef %4546) #11
  %4548 = call ptr @__errno_location() #12
  %4549 = load i32, ptr %4548, align 4, !tbaa !5
  %4550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4537, ptr noundef @.str.2, i32 noundef %4538, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 303, ptr noundef %4541, ptr noundef %4544, ptr noundef %4547, i32 noundef %4549) #11
  br label %4568

4551:                                             ; preds = %4529, %4522
  %4552 = load i32, ptr %189, align 4, !tbaa !5
  %4553 = call ptr @__errno_location() #12
  store i32 %4552, ptr %4553, align 4, !tbaa !5
  %4554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4555 = load i32, ptr @test_count, align 4, !tbaa !5
  %4556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4557 = load i32, ptr %4556, align 4, !tbaa !5
  %4558 = call ptr @s2n_strerror(i32 noundef %4557, ptr noundef @.str.4)
  %4559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4560 = load i32, ptr %4559, align 4, !tbaa !5
  %4561 = call ptr @s2n_strerror_debug(i32 noundef %4560, ptr noundef @.str.4)
  %4562 = call ptr @__errno_location() #12
  %4563 = load i32, ptr %4562, align 4, !tbaa !5
  %4564 = call ptr @strerror(i32 noundef %4563) #11
  %4565 = call ptr @__errno_location() #12
  %4566 = load i32, ptr %4565, align 4, !tbaa !5
  %4567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4554, ptr noundef @.str.5, i32 noundef %4555, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 303, ptr noundef %4558, ptr noundef %4561, ptr noundef %4564, i32 noundef %4566) #11
  br label %4568

4568:                                             ; preds = %4551, %4534
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #11
  br label %4569

4569:                                             ; preds = %4568
  br label %4570

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

4571:                                             ; No predecessors!
  br label %4572

4572:                                             ; preds = %4571
  br label %4573

4573:                                             ; preds = %4572, %4512
  br label %4574

4574:                                             ; preds = %4573
  br label %4575

4575:                                             ; preds = %4574
  br label %4576

4576:                                             ; preds = %4575
  %4577 = load i32, ptr @test_count, align 4, !tbaa !5
  %4578 = add nsw i32 %4577, 1
  store i32 %4578, ptr @test_count, align 4, !tbaa !5
  %4579 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %178, i32 0, i32 0
  %4580 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %4579, i32 0, i32 2
  %4581 = load i64, ptr %4580, align 8, !tbaa !55
  %4582 = icmp eq i64 %4581, 1
  br i1 %4582, label %4636, label %4583

4583:                                             ; preds = %4576
  br label %4584

4584:                                             ; preds = %4583
  br label %4585

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

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

4597:                                             ; preds = %4592
  %4598 = load i32, ptr %190, align 4, !tbaa !5
  %4599 = call ptr @__errno_location() #12
  store i32 %4598, ptr %4599, align 4, !tbaa !5
  %4600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4601 = load i32, ptr @test_count, align 4, !tbaa !5
  %4602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4603 = load i32, ptr %4602, align 4, !tbaa !5
  %4604 = call ptr @s2n_strerror(i32 noundef %4603, ptr noundef @.str.4)
  %4605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4606 = load i32, ptr %4605, align 4, !tbaa !5
  %4607 = call ptr @s2n_strerror_debug(i32 noundef %4606, ptr noundef @.str.4)
  %4608 = call ptr @__errno_location() #12
  %4609 = load i32, ptr %4608, align 4, !tbaa !5
  %4610 = call ptr @strerror(i32 noundef %4609) #11
  %4611 = call ptr @__errno_location() #12
  %4612 = load i32, ptr %4611, align 4, !tbaa !5
  %4613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4600, ptr noundef @.str.2, i32 noundef %4601, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 305, ptr noundef %4604, ptr noundef %4607, ptr noundef %4610, i32 noundef %4612) #11
  br label %4631

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

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

4632:                                             ; preds = %4631
  br label %4633

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

4634:                                             ; No predecessors!
  br label %4635

4635:                                             ; preds = %4634
  br label %4636

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

4637:                                             ; preds = %4636
  br label %4638

4638:                                             ; preds = %4637
  br label %4639

4639:                                             ; preds = %4638
  %4640 = load i32, ptr @test_count, align 4, !tbaa !5
  %4641 = add nsw i32 %4640, 1
  store i32 %4641, ptr @test_count, align 4, !tbaa !5
  %4642 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %178, i32 0, i32 0
  %4643 = call i32 @s2n_test_validate_ancillary(ptr noundef %4642, i8 noundef zeroext 43, i16 noundef zeroext 10)
  %4644 = getelementptr inbounds %struct.s2n_result, ptr %191, i32 0, i32 0
  store i32 %4643, ptr %4644, align 4
  %4645 = getelementptr inbounds %struct.s2n_result, ptr %191, i32 0, i32 0
  %4646 = load i32, ptr %4645, align 4
  %4647 = call zeroext i1 @s2n_result_is_ok(i32 %4646)
  br i1 %4647, label %4701, label %4648

4648:                                             ; preds = %4639
  br label %4649

4649:                                             ; preds = %4648
  br label %4650

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

4657:                                             ; preds = %4650
  %4658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4659 = call i32 @fileno(ptr noundef %4658) #11
  %4660 = call i32 @isatty(i32 noundef %4659) #11
  %4661 = icmp ne i32 %4660, 0
  br i1 %4661, label %4662, label %4679

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

4679:                                             ; preds = %4657, %4650
  %4680 = load i32, ptr %192, align 4, !tbaa !5
  %4681 = call ptr @__errno_location() #12
  store i32 %4680, ptr %4681, align 4, !tbaa !5
  %4682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4683 = load i32, ptr @test_count, align 4, !tbaa !5
  %4684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4685 = load i32, ptr %4684, align 4, !tbaa !5
  %4686 = call ptr @s2n_strerror(i32 noundef %4685, ptr noundef @.str.4)
  %4687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4688 = load i32, ptr %4687, align 4, !tbaa !5
  %4689 = call ptr @s2n_strerror_debug(i32 noundef %4688, ptr noundef @.str.4)
  %4690 = call ptr @__errno_location() #12
  %4691 = load i32, ptr %4690, align 4, !tbaa !5
  %4692 = call ptr @strerror(i32 noundef %4691) #11
  %4693 = call ptr @__errno_location() #12
  %4694 = load i32, ptr %4693, align 4, !tbaa !5
  %4695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4682, ptr noundef @.str.5, i32 noundef %4683, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 306, ptr noundef %4686, ptr noundef %4689, ptr noundef %4692, i32 noundef %4694) #11
  br label %4696

4696:                                             ; preds = %4679, %4662
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #11
  br label %4697

4697:                                             ; preds = %4696
  br label %4698

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

4699:                                             ; No predecessors!
  br label %4700

4700:                                             ; preds = %4699
  br label %4701

4701:                                             ; preds = %4700, %4639
  br label %4702

4702:                                             ; preds = %4701
  br label %4703

4703:                                             ; preds = %4702
  br label %4704

4704:                                             ; preds = %4703
  %4705 = load i32, ptr @test_count, align 4, !tbaa !5
  %4706 = add nsw i32 %4705, 1
  store i32 %4706, ptr @test_count, align 4, !tbaa !5
  %4707 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %178, i32 0, i32 0
  %4708 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %4709 = call i32 @s2n_test_validate_data(ptr noundef %4707, ptr noundef %4708, i16 noundef zeroext 10)
  %4710 = getelementptr inbounds %struct.s2n_result, ptr %193, i32 0, i32 0
  store i32 %4709, ptr %4710, align 4
  %4711 = getelementptr inbounds %struct.s2n_result, ptr %193, i32 0, i32 0
  %4712 = load i32, ptr %4711, align 4
  %4713 = call zeroext i1 @s2n_result_is_ok(i32 %4712)
  br i1 %4713, label %4767, label %4714

4714:                                             ; preds = %4704
  br label %4715

4715:                                             ; preds = %4714
  br label %4716

4716:                                             ; preds = %4715
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #11
  %4717 = call ptr @__errno_location() #12
  %4718 = load i32, ptr %4717, align 4, !tbaa !5
  store i32 %4718, ptr %194, align 4, !tbaa !5
  %4719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4720 = call i32 @s2n_print_stacktrace(ptr noundef %4719)
  %4721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4722 = trunc i8 %4721 to i1
  br i1 %4722, label %4723, label %4745

4723:                                             ; preds = %4716
  %4724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4725 = call i32 @fileno(ptr noundef %4724) #11
  %4726 = call i32 @isatty(i32 noundef %4725) #11
  %4727 = icmp ne i32 %4726, 0
  br i1 %4727, label %4728, label %4745

4728:                                             ; preds = %4723
  %4729 = load i32, ptr %194, align 4, !tbaa !5
  %4730 = call ptr @__errno_location() #12
  store i32 %4729, ptr %4730, align 4, !tbaa !5
  %4731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4732 = load i32, ptr @test_count, align 4, !tbaa !5
  %4733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4734 = load i32, ptr %4733, align 4, !tbaa !5
  %4735 = call ptr @s2n_strerror(i32 noundef %4734, ptr noundef @.str.4)
  %4736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4737 = load i32, ptr %4736, align 4, !tbaa !5
  %4738 = call ptr @s2n_strerror_debug(i32 noundef %4737, ptr noundef @.str.4)
  %4739 = call ptr @__errno_location() #12
  %4740 = load i32, ptr %4739, align 4, !tbaa !5
  %4741 = call ptr @strerror(i32 noundef %4740) #11
  %4742 = call ptr @__errno_location() #12
  %4743 = load i32, ptr %4742, align 4, !tbaa !5
  %4744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4731, ptr noundef @.str.2, i32 noundef %4732, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 307, ptr noundef %4735, ptr noundef %4738, ptr noundef %4741, i32 noundef %4743) #11
  br label %4762

4745:                                             ; preds = %4723, %4716
  %4746 = load i32, ptr %194, align 4, !tbaa !5
  %4747 = call ptr @__errno_location() #12
  store i32 %4746, ptr %4747, align 4, !tbaa !5
  %4748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4749 = load i32, ptr @test_count, align 4, !tbaa !5
  %4750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4751 = load i32, ptr %4750, align 4, !tbaa !5
  %4752 = call ptr @s2n_strerror(i32 noundef %4751, ptr noundef @.str.4)
  %4753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4754 = load i32, ptr %4753, align 4, !tbaa !5
  %4755 = call ptr @s2n_strerror_debug(i32 noundef %4754, ptr noundef @.str.4)
  %4756 = call ptr @__errno_location() #12
  %4757 = load i32, ptr %4756, align 4, !tbaa !5
  %4758 = call ptr @strerror(i32 noundef %4757) #11
  %4759 = call ptr @__errno_location() #12
  %4760 = load i32, ptr %4759, align 4, !tbaa !5
  %4761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4748, ptr noundef @.str.5, i32 noundef %4749, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 307, ptr noundef %4752, ptr noundef %4755, ptr noundef %4758, i32 noundef %4760) #11
  br label %4762

4762:                                             ; preds = %4745, %4728
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #11
  br label %4763

4763:                                             ; preds = %4762
  br label %4764

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

4765:                                             ; No predecessors!
  br label %4766

4766:                                             ; preds = %4765
  br label %4767

4767:                                             ; preds = %4766, %4704
  br label %4768

4768:                                             ; preds = %4767
  br label %4769

4769:                                             ; preds = %4768
  call void @llvm.lifetime.end.p0(i64 100, ptr %186) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %185) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr %183) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #11
  %4770 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef %178)
  %4771 = getelementptr inbounds %struct.s2n_result, ptr %195, i32 0, i32 0
  store i32 %4770, ptr %4771, align 4
  call void @llvm.lifetime.end.p0(i64 192, ptr %178) #11
  %4772 = call i32 @s2n_connection_ptr_free(ptr noundef %177)
  %4773 = getelementptr inbounds %struct.s2n_result, ptr %196, i32 0, i32 0
  store i32 %4772, ptr %4773, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #11
  %4774 = call i32 @s2n_connection_ptr_free(ptr noundef %176)
  %4775 = getelementptr inbounds %struct.s2n_result, ptr %197, i32 0, i32 0
  store i32 %4774, ptr %4775, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %198) #11
  store i64 1, ptr %198, align 8, !tbaa !54
  br label %4776

4776:                                             ; preds = %5398, %4769
  %4777 = load i64, ptr %198, align 8, !tbaa !54
  %4778 = icmp ult i64 %4777, 16384
  br i1 %4778, label %4780, label %4779

4779:                                             ; preds = %4776
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #11
  br label %5401

4780:                                             ; preds = %4776
  call void @llvm.lifetime.start.p0(i64 8, ptr %199) #11
  %4781 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4781, ptr %199, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %200) #11
  %4782 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4782, ptr %200, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr %201) #11
  call void @llvm.memset.p0.i64(ptr align 8 %201, i8 0, i64 192, i1 false)
  br label %4783

4783:                                             ; preds = %4780
  %4784 = load i32, ptr @test_count, align 4, !tbaa !5
  %4785 = add nsw i32 %4784, 1
  store i32 %4785, ptr @test_count, align 4, !tbaa !5
  %4786 = load ptr, ptr %199, align 8, !tbaa !9
  %4787 = load ptr, ptr %200, align 8, !tbaa !9
  %4788 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %4786, ptr noundef %4787, ptr noundef %201)
  %4789 = getelementptr inbounds %struct.s2n_result, ptr %202, i32 0, i32 0
  store i32 %4788, ptr %4789, align 4
  %4790 = getelementptr inbounds %struct.s2n_result, ptr %202, i32 0, i32 0
  %4791 = load i32, ptr %4790, align 4
  %4792 = call zeroext i1 @s2n_result_is_ok(i32 %4791)
  br i1 %4792, label %4846, label %4793

4793:                                             ; preds = %4783
  br label %4794

4794:                                             ; preds = %4793
  br label %4795

4795:                                             ; preds = %4794
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #11
  %4796 = call ptr @__errno_location() #12
  %4797 = load i32, ptr %4796, align 4, !tbaa !5
  store i32 %4797, ptr %203, align 4, !tbaa !5
  %4798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4799 = call i32 @s2n_print_stacktrace(ptr noundef %4798)
  %4800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4801 = trunc i8 %4800 to i1
  br i1 %4801, label %4802, label %4824

4802:                                             ; preds = %4795
  %4803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4804 = call i32 @fileno(ptr noundef %4803) #11
  %4805 = call i32 @isatty(i32 noundef %4804) #11
  %4806 = icmp ne i32 %4805, 0
  br i1 %4806, label %4807, label %4824

4807:                                             ; preds = %4802
  %4808 = load i32, ptr %203, align 4, !tbaa !5
  %4809 = call ptr @__errno_location() #12
  store i32 %4808, ptr %4809, align 4, !tbaa !5
  %4810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4811 = load i32, ptr @test_count, align 4, !tbaa !5
  %4812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4813 = load i32, ptr %4812, align 4, !tbaa !5
  %4814 = call ptr @s2n_strerror(i32 noundef %4813, ptr noundef @.str.4)
  %4815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4816 = load i32, ptr %4815, align 4, !tbaa !5
  %4817 = call ptr @s2n_strerror_debug(i32 noundef %4816, ptr noundef @.str.4)
  %4818 = call ptr @__errno_location() #12
  %4819 = load i32, ptr %4818, align 4, !tbaa !5
  %4820 = call ptr @strerror(i32 noundef %4819) #11
  %4821 = call ptr @__errno_location() #12
  %4822 = load i32, ptr %4821, align 4, !tbaa !5
  %4823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4810, ptr noundef @.str.2, i32 noundef %4811, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 321, ptr noundef %4814, ptr noundef %4817, ptr noundef %4820, i32 noundef %4822) #11
  br label %4841

4824:                                             ; preds = %4802, %4795
  %4825 = load i32, ptr %203, align 4, !tbaa !5
  %4826 = call ptr @__errno_location() #12
  store i32 %4825, ptr %4826, align 4, !tbaa !5
  %4827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4828 = load i32, ptr @test_count, align 4, !tbaa !5
  %4829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4830 = load i32, ptr %4829, align 4, !tbaa !5
  %4831 = call ptr @s2n_strerror(i32 noundef %4830, ptr noundef @.str.4)
  %4832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4833 = load i32, ptr %4832, align 4, !tbaa !5
  %4834 = call ptr @s2n_strerror_debug(i32 noundef %4833, ptr noundef @.str.4)
  %4835 = call ptr @__errno_location() #12
  %4836 = load i32, ptr %4835, align 4, !tbaa !5
  %4837 = call ptr @strerror(i32 noundef %4836) #11
  %4838 = call ptr @__errno_location() #12
  %4839 = load i32, ptr %4838, align 4, !tbaa !5
  %4840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4827, ptr noundef @.str.5, i32 noundef %4828, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 321, ptr noundef %4831, ptr noundef %4834, ptr noundef %4837, i32 noundef %4839) #11
  br label %4841

4841:                                             ; preds = %4824, %4807
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #11
  br label %4842

4842:                                             ; preds = %4841
  br label %4843

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

4844:                                             ; No predecessors!
  br label %4845

4845:                                             ; preds = %4844
  br label %4846

4846:                                             ; preds = %4845, %4783
  br label %4847

4847:                                             ; preds = %4846
  br label %4848

4848:                                             ; preds = %4847
  call void @llvm.lifetime.start.p0(i64 16, ptr %204) #11
  %4849 = getelementptr inbounds %struct.iovec, ptr %204, i32 0, i32 0
  %4850 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  store ptr %4850, ptr %4849, align 8, !tbaa !16
  %4851 = getelementptr inbounds %struct.iovec, ptr %204, i32 0, i32 1
  %4852 = load i64, ptr %198, align 8, !tbaa !54
  store i64 %4852, ptr %4851, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 56, ptr %205) #11
  %4853 = getelementptr inbounds %struct.msghdr, ptr %205, i32 0, i32 0
  store ptr null, ptr %4853, align 8, !tbaa !20
  %4854 = getelementptr inbounds %struct.msghdr, ptr %205, i32 0, i32 1
  store i32 0, ptr %4854, align 8, !tbaa !22
  %4855 = getelementptr inbounds %struct.msghdr, ptr %205, i32 0, i32 2
  store ptr %204, ptr %4855, align 8, !tbaa !23
  %4856 = getelementptr inbounds %struct.msghdr, ptr %205, i32 0, i32 3
  store i64 1, ptr %4856, align 8, !tbaa !24
  %4857 = getelementptr inbounds %struct.msghdr, ptr %205, i32 0, i32 4
  store ptr null, ptr %4857, align 8, !tbaa !25
  %4858 = getelementptr inbounds %struct.msghdr, ptr %205, i32 0, i32 5
  store i64 0, ptr %4858, align 8, !tbaa !26
  %4859 = getelementptr inbounds %struct.msghdr, ptr %205, i32 0, i32 6
  store i32 0, ptr %4859, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 100, ptr %206) #11
  call void @llvm.memset.p0.i64(ptr align 16 %206, i8 0, i64 100, i1 false)
  br label %4860

4860:                                             ; preds = %4848
  %4861 = load i32, ptr @test_count, align 4, !tbaa !5
  %4862 = add nsw i32 %4861, 1
  store i32 %4862, ptr @test_count, align 4, !tbaa !5
  %4863 = getelementptr inbounds [100 x i8], ptr %206, i64 0, i64 0
  %4864 = call i32 @s2n_ktls_set_control_data(ptr noundef %205, ptr noundef %4863, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43)
  %4865 = getelementptr inbounds %struct.s2n_result, ptr %207, i32 0, i32 0
  store i32 %4864, ptr %4865, align 4
  %4866 = getelementptr inbounds %struct.s2n_result, ptr %207, i32 0, i32 0
  %4867 = load i32, ptr %4866, align 4
  %4868 = call zeroext i1 @s2n_result_is_ok(i32 %4867)
  br i1 %4868, label %4922, label %4869

4869:                                             ; preds = %4860
  br label %4870

4870:                                             ; preds = %4869
  br label %4871

4871:                                             ; preds = %4870
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #11
  %4872 = call ptr @__errno_location() #12
  %4873 = load i32, ptr %4872, align 4, !tbaa !5
  store i32 %4873, ptr %208, align 4, !tbaa !5
  %4874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4875 = call i32 @s2n_print_stacktrace(ptr noundef %4874)
  %4876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4877 = trunc i8 %4876 to i1
  br i1 %4877, label %4878, label %4900

4878:                                             ; preds = %4871
  %4879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4880 = call i32 @fileno(ptr noundef %4879) #11
  %4881 = call i32 @isatty(i32 noundef %4880) #11
  %4882 = icmp ne i32 %4881, 0
  br i1 %4882, label %4883, label %4900

4883:                                             ; preds = %4878
  %4884 = load i32, ptr %208, align 4, !tbaa !5
  %4885 = call ptr @__errno_location() #12
  store i32 %4884, ptr %4885, align 4, !tbaa !5
  %4886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4887 = load i32, ptr @test_count, align 4, !tbaa !5
  %4888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4889 = load i32, ptr %4888, align 4, !tbaa !5
  %4890 = call ptr @s2n_strerror(i32 noundef %4889, ptr noundef @.str.4)
  %4891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4892 = load i32, ptr %4891, align 4, !tbaa !5
  %4893 = call ptr @s2n_strerror_debug(i32 noundef %4892, ptr noundef @.str.4)
  %4894 = call ptr @__errno_location() #12
  %4895 = load i32, ptr %4894, align 4, !tbaa !5
  %4896 = call ptr @strerror(i32 noundef %4895) #11
  %4897 = call ptr @__errno_location() #12
  %4898 = load i32, ptr %4897, align 4, !tbaa !5
  %4899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4886, ptr noundef @.str.2, i32 noundef %4887, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 327, ptr noundef %4890, ptr noundef %4893, ptr noundef %4896, i32 noundef %4898) #11
  br label %4917

4900:                                             ; preds = %4878, %4871
  %4901 = load i32, ptr %208, align 4, !tbaa !5
  %4902 = call ptr @__errno_location() #12
  store i32 %4901, ptr %4902, align 4, !tbaa !5
  %4903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4904 = load i32, ptr @test_count, align 4, !tbaa !5
  %4905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4906 = load i32, ptr %4905, align 4, !tbaa !5
  %4907 = call ptr @s2n_strerror(i32 noundef %4906, ptr noundef @.str.4)
  %4908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4909 = load i32, ptr %4908, align 4, !tbaa !5
  %4910 = call ptr @s2n_strerror_debug(i32 noundef %4909, ptr noundef @.str.4)
  %4911 = call ptr @__errno_location() #12
  %4912 = load i32, ptr %4911, align 4, !tbaa !5
  %4913 = call ptr @strerror(i32 noundef %4912) #11
  %4914 = call ptr @__errno_location() #12
  %4915 = load i32, ptr %4914, align 4, !tbaa !5
  %4916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4903, ptr noundef @.str.5, i32 noundef %4904, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 327, ptr noundef %4907, ptr noundef %4910, ptr noundef %4913, i32 noundef %4915) #11
  br label %4917

4917:                                             ; preds = %4900, %4883
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #11
  br label %4918

4918:                                             ; preds = %4917
  br label %4919

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

4920:                                             ; No predecessors!
  br label %4921

4921:                                             ; preds = %4920
  br label %4922

4922:                                             ; preds = %4921, %4860
  br label %4923

4923:                                             ; preds = %4922
  br label %4924

4924:                                             ; preds = %4923
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #11
  %4925 = load ptr, ptr %199, align 8, !tbaa !9
  %4926 = getelementptr inbounds %struct.s2n_connection, ptr %4925, i32 0, i32 8
  %4927 = load ptr, ptr %4926, align 8, !tbaa !28
  %4928 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %4927, ptr noundef %205)
  store i64 %4928, ptr %209, align 8, !tbaa !54
  br label %4929

4929:                                             ; preds = %4924
  %4930 = load i32, ptr @test_count, align 4, !tbaa !5
  %4931 = add nsw i32 %4930, 1
  store i32 %4931, ptr @test_count, align 4, !tbaa !5
  %4932 = load i64, ptr %209, align 8, !tbaa !54
  %4933 = load i64, ptr %198, align 8, !tbaa !54
  %4934 = icmp eq i64 %4932, %4933
  br i1 %4934, label %4988, label %4935

4935:                                             ; preds = %4929
  br label %4936

4936:                                             ; preds = %4935
  br label %4937

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

4944:                                             ; preds = %4937
  %4945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4946 = call i32 @fileno(ptr noundef %4945) #11
  %4947 = call i32 @isatty(i32 noundef %4946) #11
  %4948 = icmp ne i32 %4947, 0
  br i1 %4948, label %4949, label %4966

4949:                                             ; preds = %4944
  %4950 = load i32, ptr %210, align 4, !tbaa !5
  %4951 = call ptr @__errno_location() #12
  store i32 %4950, ptr %4951, align 4, !tbaa !5
  %4952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4953 = load i32, ptr @test_count, align 4, !tbaa !5
  %4954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4955 = load i32, ptr %4954, align 4, !tbaa !5
  %4956 = call ptr @s2n_strerror(i32 noundef %4955, ptr noundef @.str.4)
  %4957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4958 = load i32, ptr %4957, align 4, !tbaa !5
  %4959 = call ptr @s2n_strerror_debug(i32 noundef %4958, ptr noundef @.str.4)
  %4960 = call ptr @__errno_location() #12
  %4961 = load i32, ptr %4960, align 4, !tbaa !5
  %4962 = call ptr @strerror(i32 noundef %4961) #11
  %4963 = call ptr @__errno_location() #12
  %4964 = load i32, ptr %4963, align 4, !tbaa !5
  %4965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4952, ptr noundef @.str.2, i32 noundef %4953, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 329, ptr noundef %4956, ptr noundef %4959, ptr noundef %4962, i32 noundef %4964) #11
  br label %4983

4966:                                             ; preds = %4944, %4937
  %4967 = load i32, ptr %210, align 4, !tbaa !5
  %4968 = call ptr @__errno_location() #12
  store i32 %4967, ptr %4968, align 4, !tbaa !5
  %4969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4970 = load i32, ptr @test_count, align 4, !tbaa !5
  %4971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4972 = load i32, ptr %4971, align 4, !tbaa !5
  %4973 = call ptr @s2n_strerror(i32 noundef %4972, ptr noundef @.str.4)
  %4974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4975 = load i32, ptr %4974, align 4, !tbaa !5
  %4976 = call ptr @s2n_strerror_debug(i32 noundef %4975, ptr noundef @.str.4)
  %4977 = call ptr @__errno_location() #12
  %4978 = load i32, ptr %4977, align 4, !tbaa !5
  %4979 = call ptr @strerror(i32 noundef %4978) #11
  %4980 = call ptr @__errno_location() #12
  %4981 = load i32, ptr %4980, align 4, !tbaa !5
  %4982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4969, ptr noundef @.str.5, i32 noundef %4970, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 329, ptr noundef %4973, ptr noundef %4976, ptr noundef %4979, i32 noundef %4981) #11
  br label %4983

4983:                                             ; preds = %4966, %4949
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %4984

4984:                                             ; preds = %4983
  br label %4985

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

4986:                                             ; No predecessors!
  br label %4987

4987:                                             ; preds = %4986
  br label %4988

4988:                                             ; preds = %4987, %4929
  br label %4989

4989:                                             ; preds = %4988
  br label %4990

4990:                                             ; preds = %4989
  call void @llvm.lifetime.start.p0(i64 16384, ptr %211) #11
  call void @llvm.memset.p0.i64(ptr align 16 %211, i8 0, i64 16384, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr %212) #11
  call void @llvm.memset.p0.i64(ptr align 16 %212, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %213) #11
  %4991 = getelementptr inbounds %struct.iovec, ptr %213, i32 0, i32 0
  %4992 = getelementptr inbounds [16384 x i8], ptr %211, i64 0, i64 0
  store ptr %4992, ptr %4991, align 8, !tbaa !16
  %4993 = getelementptr inbounds %struct.iovec, ptr %213, i32 0, i32 1
  %4994 = load i64, ptr %198, align 8, !tbaa !54
  store i64 %4994, ptr %4993, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 56, ptr %214) #11
  %4995 = getelementptr inbounds %struct.msghdr, ptr %214, i32 0, i32 0
  store ptr null, ptr %4995, align 8, !tbaa !20
  %4996 = getelementptr inbounds %struct.msghdr, ptr %214, i32 0, i32 1
  store i32 0, ptr %4996, align 8, !tbaa !22
  %4997 = getelementptr inbounds %struct.msghdr, ptr %214, i32 0, i32 2
  store ptr %213, ptr %4997, align 8, !tbaa !23
  %4998 = getelementptr inbounds %struct.msghdr, ptr %214, i32 0, i32 3
  store i64 1, ptr %4998, align 8, !tbaa !24
  %4999 = getelementptr inbounds %struct.msghdr, ptr %214, i32 0, i32 4
  %5000 = getelementptr inbounds [100 x i8], ptr %212, i64 0, i64 0
  store ptr %5000, ptr %4999, align 8, !tbaa !25
  %5001 = getelementptr inbounds %struct.msghdr, ptr %214, i32 0, i32 5
  store i64 100, ptr %5001, align 8, !tbaa !26
  %5002 = getelementptr inbounds %struct.msghdr, ptr %214, i32 0, i32 6
  store i32 0, ptr %5002, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr %215) #11
  %5003 = load ptr, ptr %200, align 8, !tbaa !9
  %5004 = getelementptr inbounds %struct.s2n_connection, ptr %5003, i32 0, i32 9
  %5005 = load ptr, ptr %5004, align 8, !tbaa !69
  %5006 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %5005, ptr noundef %214)
  store i64 %5006, ptr %215, align 8, !tbaa !54
  br label %5007

5007:                                             ; preds = %4990
  %5008 = load i32, ptr @test_count, align 4, !tbaa !5
  %5009 = add nsw i32 %5008, 1
  store i32 %5009, ptr @test_count, align 4, !tbaa !5
  %5010 = load i64, ptr %215, align 8, !tbaa !54
  %5011 = load i64, ptr %198, align 8, !tbaa !54
  %5012 = icmp eq i64 %5010, %5011
  br i1 %5012, label %5066, label %5013

5013:                                             ; preds = %5007
  br label %5014

5014:                                             ; preds = %5013
  br label %5015

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

5022:                                             ; preds = %5015
  %5023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5024 = call i32 @fileno(ptr noundef %5023) #11
  %5025 = call i32 @isatty(i32 noundef %5024) #11
  %5026 = icmp ne i32 %5025, 0
  br i1 %5026, label %5027, label %5044

5027:                                             ; preds = %5022
  %5028 = load i32, ptr %216, align 4, !tbaa !5
  %5029 = call ptr @__errno_location() #12
  store i32 %5028, ptr %5029, align 4, !tbaa !5
  %5030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5031 = load i32, ptr @test_count, align 4, !tbaa !5
  %5032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5033 = load i32, ptr %5032, align 4, !tbaa !5
  %5034 = call ptr @s2n_strerror(i32 noundef %5033, ptr noundef @.str.4)
  %5035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5036 = load i32, ptr %5035, align 4, !tbaa !5
  %5037 = call ptr @s2n_strerror_debug(i32 noundef %5036, ptr noundef @.str.4)
  %5038 = call ptr @__errno_location() #12
  %5039 = load i32, ptr %5038, align 4, !tbaa !5
  %5040 = call ptr @strerror(i32 noundef %5039) #11
  %5041 = call ptr @__errno_location() #12
  %5042 = load i32, ptr %5041, align 4, !tbaa !5
  %5043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5030, ptr noundef @.str.2, i32 noundef %5031, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 341, ptr noundef %5034, ptr noundef %5037, ptr noundef %5040, i32 noundef %5042) #11
  br label %5061

5044:                                             ; preds = %5022, %5015
  %5045 = load i32, ptr %216, align 4, !tbaa !5
  %5046 = call ptr @__errno_location() #12
  store i32 %5045, ptr %5046, align 4, !tbaa !5
  %5047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5048 = load i32, ptr @test_count, align 4, !tbaa !5
  %5049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5050 = load i32, ptr %5049, align 4, !tbaa !5
  %5051 = call ptr @s2n_strerror(i32 noundef %5050, ptr noundef @.str.4)
  %5052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5053 = load i32, ptr %5052, align 4, !tbaa !5
  %5054 = call ptr @s2n_strerror_debug(i32 noundef %5053, ptr noundef @.str.4)
  %5055 = call ptr @__errno_location() #12
  %5056 = load i32, ptr %5055, align 4, !tbaa !5
  %5057 = call ptr @strerror(i32 noundef %5056) #11
  %5058 = call ptr @__errno_location() #12
  %5059 = load i32, ptr %5058, align 4, !tbaa !5
  %5060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5047, ptr noundef @.str.5, i32 noundef %5048, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 341, ptr noundef %5051, ptr noundef %5054, ptr noundef %5057, i32 noundef %5059) #11
  br label %5061

5061:                                             ; preds = %5044, %5027
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #11
  br label %5062

5062:                                             ; preds = %5061
  br label %5063

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

5064:                                             ; No predecessors!
  br label %5065

5065:                                             ; preds = %5064
  br label %5066

5066:                                             ; preds = %5065, %5007
  br label %5067

5067:                                             ; preds = %5066
  br label %5068

5068:                                             ; preds = %5067
  br label %5069

5069:                                             ; preds = %5068
  %5070 = load i64, ptr %198, align 8, !tbaa !54
  %5071 = icmp ne i64 %5070, 0
  br i1 %5071, label %5072, label %5137

5072:                                             ; preds = %5069
  br label %5073

5073:                                             ; preds = %5072
  %5074 = load i32, ptr @test_count, align 4, !tbaa !5
  %5075 = add nsw i32 %5074, 1
  store i32 %5075, ptr @test_count, align 4, !tbaa !5
  %5076 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %5077 = getelementptr inbounds [16384 x i8], ptr %211, i64 0, i64 0
  %5078 = load i64, ptr %198, align 8, !tbaa !54
  %5079 = call i32 @memcmp(ptr noundef %5076, ptr noundef %5077, i64 noundef %5078) #14
  %5080 = icmp eq i32 %5079, 0
  br i1 %5080, label %5134, label %5081

5081:                                             ; preds = %5073
  br label %5082

5082:                                             ; preds = %5081
  br label %5083

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

5090:                                             ; preds = %5083
  %5091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5092 = call i32 @fileno(ptr noundef %5091) #11
  %5093 = call i32 @isatty(i32 noundef %5092) #11
  %5094 = icmp ne i32 %5093, 0
  br i1 %5094, label %5095, label %5112

5095:                                             ; preds = %5090
  %5096 = load i32, ptr %217, align 4, !tbaa !5
  %5097 = call ptr @__errno_location() #12
  store i32 %5096, ptr %5097, align 4, !tbaa !5
  %5098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5099 = load i32, ptr @test_count, align 4, !tbaa !5
  %5100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5101 = load i32, ptr %5100, align 4, !tbaa !5
  %5102 = call ptr @s2n_strerror(i32 noundef %5101, ptr noundef @.str.4)
  %5103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5104 = load i32, ptr %5103, align 4, !tbaa !5
  %5105 = call ptr @s2n_strerror_debug(i32 noundef %5104, ptr noundef @.str.4)
  %5106 = call ptr @__errno_location() #12
  %5107 = load i32, ptr %5106, align 4, !tbaa !5
  %5108 = call ptr @strerror(i32 noundef %5107) #11
  %5109 = call ptr @__errno_location() #12
  %5110 = load i32, ptr %5109, align 4, !tbaa !5
  %5111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5098, ptr noundef @.str.2, i32 noundef %5099, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 343, ptr noundef %5102, ptr noundef %5105, ptr noundef %5108, i32 noundef %5110) #11
  br label %5129

5112:                                             ; preds = %5090, %5083
  %5113 = load i32, ptr %217, align 4, !tbaa !5
  %5114 = call ptr @__errno_location() #12
  store i32 %5113, ptr %5114, align 4, !tbaa !5
  %5115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5116 = load i32, ptr @test_count, align 4, !tbaa !5
  %5117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5118 = load i32, ptr %5117, align 4, !tbaa !5
  %5119 = call ptr @s2n_strerror(i32 noundef %5118, ptr noundef @.str.4)
  %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_debug(i32 noundef %5121, ptr noundef @.str.4)
  %5123 = call ptr @__errno_location() #12
  %5124 = load i32, ptr %5123, align 4, !tbaa !5
  %5125 = call ptr @strerror(i32 noundef %5124) #11
  %5126 = call ptr @__errno_location() #12
  %5127 = load i32, ptr %5126, align 4, !tbaa !5
  %5128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5115, ptr noundef @.str.5, i32 noundef %5116, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 343, ptr noundef %5119, ptr noundef %5122, ptr noundef %5125, i32 noundef %5127) #11
  br label %5129

5129:                                             ; preds = %5112, %5095
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #11
  br label %5130

5130:                                             ; preds = %5129
  br label %5131

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

5132:                                             ; No predecessors!
  br label %5133

5133:                                             ; preds = %5132
  br label %5134

5134:                                             ; preds = %5133, %5073
  br label %5135

5135:                                             ; preds = %5134
  br label %5136

5136:                                             ; preds = %5135
  br label %5137

5137:                                             ; preds = %5136, %5069
  br label %5138

5138:                                             ; preds = %5137
  br label %5139

5139:                                             ; preds = %5138
  call void @llvm.lifetime.start.p0(i64 1, ptr %218) #11
  store i8 0, ptr %218, align 1, !tbaa !15
  br label %5140

5140:                                             ; preds = %5139
  %5141 = load i32, ptr @test_count, align 4, !tbaa !5
  %5142 = add nsw i32 %5141, 1
  store i32 %5142, ptr @test_count, align 4, !tbaa !5
  %5143 = call i32 @s2n_ktls_get_control_data(ptr noundef %214, i32 noundef 0, ptr noundef %218)
  %5144 = getelementptr inbounds %struct.s2n_result, ptr %219, i32 0, i32 0
  store i32 %5143, ptr %5144, align 4
  %5145 = getelementptr inbounds %struct.s2n_result, ptr %219, i32 0, i32 0
  %5146 = load i32, ptr %5145, align 4
  %5147 = call zeroext i1 @s2n_result_is_ok(i32 %5146)
  br i1 %5147, label %5201, label %5148

5148:                                             ; preds = %5140
  br label %5149

5149:                                             ; preds = %5148
  br label %5150

5150:                                             ; preds = %5149
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #11
  %5151 = call ptr @__errno_location() #12
  %5152 = load i32, ptr %5151, align 4, !tbaa !5
  store i32 %5152, ptr %220, align 4, !tbaa !5
  %5153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5154 = call i32 @s2n_print_stacktrace(ptr noundef %5153)
  %5155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5156 = trunc i8 %5155 to i1
  br i1 %5156, label %5157, label %5179

5157:                                             ; preds = %5150
  %5158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5159 = call i32 @fileno(ptr noundef %5158) #11
  %5160 = call i32 @isatty(i32 noundef %5159) #11
  %5161 = icmp ne i32 %5160, 0
  br i1 %5161, label %5162, label %5179

5162:                                             ; preds = %5157
  %5163 = load i32, ptr %220, align 4, !tbaa !5
  %5164 = call ptr @__errno_location() #12
  store i32 %5163, ptr %5164, align 4, !tbaa !5
  %5165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5166 = load i32, ptr @test_count, align 4, !tbaa !5
  %5167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5168 = load i32, ptr %5167, align 4, !tbaa !5
  %5169 = call ptr @s2n_strerror(i32 noundef %5168, ptr noundef @.str.4)
  %5170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5171 = load i32, ptr %5170, align 4, !tbaa !5
  %5172 = call ptr @s2n_strerror_debug(i32 noundef %5171, ptr noundef @.str.4)
  %5173 = call ptr @__errno_location() #12
  %5174 = load i32, ptr %5173, align 4, !tbaa !5
  %5175 = call ptr @strerror(i32 noundef %5174) #11
  %5176 = call ptr @__errno_location() #12
  %5177 = load i32, ptr %5176, align 4, !tbaa !5
  %5178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5165, ptr noundef @.str.2, i32 noundef %5166, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 345, ptr noundef %5169, ptr noundef %5172, ptr noundef %5175, i32 noundef %5177) #11
  br label %5196

5179:                                             ; preds = %5157, %5150
  %5180 = load i32, ptr %220, align 4, !tbaa !5
  %5181 = call ptr @__errno_location() #12
  store i32 %5180, ptr %5181, align 4, !tbaa !5
  %5182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5183 = load i32, ptr @test_count, align 4, !tbaa !5
  %5184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5185 = load i32, ptr %5184, align 4, !tbaa !5
  %5186 = call ptr @s2n_strerror(i32 noundef %5185, ptr noundef @.str.4)
  %5187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5188 = load i32, ptr %5187, align 4, !tbaa !5
  %5189 = call ptr @s2n_strerror_debug(i32 noundef %5188, ptr noundef @.str.4)
  %5190 = call ptr @__errno_location() #12
  %5191 = load i32, ptr %5190, align 4, !tbaa !5
  %5192 = call ptr @strerror(i32 noundef %5191) #11
  %5193 = call ptr @__errno_location() #12
  %5194 = load i32, ptr %5193, align 4, !tbaa !5
  %5195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5182, ptr noundef @.str.5, i32 noundef %5183, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 345, ptr noundef %5186, ptr noundef %5189, ptr noundef %5192, i32 noundef %5194) #11
  br label %5196

5196:                                             ; preds = %5179, %5162
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #11
  br label %5197

5197:                                             ; preds = %5196
  br label %5198

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

5199:                                             ; No predecessors!
  br label %5200

5200:                                             ; preds = %5199
  br label %5201

5201:                                             ; preds = %5200, %5140
  br label %5202

5202:                                             ; preds = %5201
  br label %5203

5203:                                             ; preds = %5202
  br label %5204

5204:                                             ; preds = %5203
  %5205 = load i32, ptr @test_count, align 4, !tbaa !5
  %5206 = add nsw i32 %5205, 1
  store i32 %5206, ptr @test_count, align 4, !tbaa !5
  %5207 = load i8, ptr %218, align 1, !tbaa !15
  %5208 = zext i8 %5207 to i32
  %5209 = icmp eq i32 %5208, 43
  br i1 %5209, label %5263, label %5210

5210:                                             ; preds = %5204
  br label %5211

5211:                                             ; preds = %5210
  br label %5212

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

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

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

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

5258:                                             ; preds = %5241, %5224
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #11
  br label %5259

5259:                                             ; preds = %5258
  br label %5260

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

5261:                                             ; No predecessors!
  br label %5262

5262:                                             ; preds = %5261
  br label %5263

5263:                                             ; preds = %5262, %5204
  br label %5264

5264:                                             ; preds = %5263
  br label %5265

5265:                                             ; preds = %5264
  br label %5266

5266:                                             ; preds = %5265
  %5267 = load i32, ptr @test_count, align 4, !tbaa !5
  %5268 = add nsw i32 %5267, 1
  store i32 %5268, ptr @test_count, align 4, !tbaa !5
  %5269 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %201, i32 0, i32 0
  %5270 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %5269, i32 0, i32 2
  %5271 = load i64, ptr %5270, align 8, !tbaa !55
  %5272 = icmp eq i64 %5271, 1
  br i1 %5272, label %5326, label %5273

5273:                                             ; preds = %5266
  br label %5274

5274:                                             ; preds = %5273
  br label %5275

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

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

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

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

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

5322:                                             ; preds = %5321
  br label %5323

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

5324:                                             ; No predecessors!
  br label %5325

5325:                                             ; preds = %5324
  br label %5326

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

5327:                                             ; preds = %5326
  br label %5328

5328:                                             ; preds = %5327
  br label %5329

5329:                                             ; preds = %5328
  %5330 = load i32, ptr @test_count, align 4, !tbaa !5
  %5331 = add nsw i32 %5330, 1
  store i32 %5331, ptr @test_count, align 4, !tbaa !5
  %5332 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %201, i32 0, i32 0
  %5333 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %5332, i32 0, i32 3
  %5334 = load i64, ptr %5333, align 8, !tbaa !70
  %5335 = icmp eq i64 %5334, 1
  br i1 %5335, label %5389, label %5336

5336:                                             ; preds = %5329
  br label %5337

5337:                                             ; preds = %5336
  br label %5338

5338:                                             ; preds = %5337
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #11
  %5339 = call ptr @__errno_location() #12
  %5340 = load i32, ptr %5339, align 4, !tbaa !5
  store i32 %5340, ptr %223, align 4, !tbaa !5
  %5341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5342 = call i32 @s2n_print_stacktrace(ptr noundef %5341)
  %5343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5344 = trunc i8 %5343 to i1
  br i1 %5344, label %5345, label %5367

5345:                                             ; preds = %5338
  %5346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5347 = call i32 @fileno(ptr noundef %5346) #11
  %5348 = call i32 @isatty(i32 noundef %5347) #11
  %5349 = icmp ne i32 %5348, 0
  br i1 %5349, label %5350, label %5367

5350:                                             ; preds = %5345
  %5351 = load i32, ptr %223, align 4, !tbaa !5
  %5352 = call ptr @__errno_location() #12
  store i32 %5351, ptr %5352, align 4, !tbaa !5
  %5353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5354 = load i32, ptr @test_count, align 4, !tbaa !5
  %5355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5356 = load i32, ptr %5355, align 4, !tbaa !5
  %5357 = call ptr @s2n_strerror(i32 noundef %5356, ptr noundef @.str.4)
  %5358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5359 = load i32, ptr %5358, align 4, !tbaa !5
  %5360 = call ptr @s2n_strerror_debug(i32 noundef %5359, ptr noundef @.str.4)
  %5361 = call ptr @__errno_location() #12
  %5362 = load i32, ptr %5361, align 4, !tbaa !5
  %5363 = call ptr @strerror(i32 noundef %5362) #11
  %5364 = call ptr @__errno_location() #12
  %5365 = load i32, ptr %5364, align 4, !tbaa !5
  %5366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5353, ptr noundef @.str.2, i32 noundef %5354, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 349, ptr noundef %5357, ptr noundef %5360, ptr noundef %5363, i32 noundef %5365) #11
  br label %5384

5367:                                             ; preds = %5345, %5338
  %5368 = load i32, ptr %223, align 4, !tbaa !5
  %5369 = call ptr @__errno_location() #12
  store i32 %5368, ptr %5369, align 4, !tbaa !5
  %5370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5371 = load i32, ptr @test_count, align 4, !tbaa !5
  %5372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5373 = load i32, ptr %5372, align 4, !tbaa !5
  %5374 = call ptr @s2n_strerror(i32 noundef %5373, ptr noundef @.str.4)
  %5375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5376 = load i32, ptr %5375, align 4, !tbaa !5
  %5377 = call ptr @s2n_strerror_debug(i32 noundef %5376, ptr noundef @.str.4)
  %5378 = call ptr @__errno_location() #12
  %5379 = load i32, ptr %5378, align 4, !tbaa !5
  %5380 = call ptr @strerror(i32 noundef %5379) #11
  %5381 = call ptr @__errno_location() #12
  %5382 = load i32, ptr %5381, align 4, !tbaa !5
  %5383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5370, ptr noundef @.str.5, i32 noundef %5371, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 349, ptr noundef %5374, ptr noundef %5377, ptr noundef %5380, i32 noundef %5382) #11
  br label %5384

5384:                                             ; preds = %5367, %5350
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #11
  br label %5385

5385:                                             ; preds = %5384
  br label %5386

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

5387:                                             ; No predecessors!
  br label %5388

5388:                                             ; preds = %5387
  br label %5389

5389:                                             ; preds = %5388, %5329
  br label %5390

5390:                                             ; preds = %5389
  br label %5391

5391:                                             ; preds = %5390
  call void @llvm.lifetime.end.p0(i64 1, ptr %218) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %215) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %214) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %213) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %212) #11
  call void @llvm.lifetime.end.p0(i64 16384, ptr %211) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %206) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %205) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %204) #11
  %5392 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef %201)
  %5393 = getelementptr inbounds %struct.s2n_result, ptr %224, i32 0, i32 0
  store i32 %5392, ptr %5393, align 4
  call void @llvm.lifetime.end.p0(i64 192, ptr %201) #11
  %5394 = call i32 @s2n_connection_ptr_free(ptr noundef %200)
  %5395 = getelementptr inbounds %struct.s2n_result, ptr %225, i32 0, i32 0
  store i32 %5394, ptr %5395, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %200) #11
  %5396 = call i32 @s2n_connection_ptr_free(ptr noundef %199)
  %5397 = getelementptr inbounds %struct.s2n_result, ptr %226, i32 0, i32 0
  store i32 %5396, ptr %5397, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #11
  br label %5398

5398:                                             ; preds = %5391
  %5399 = load i64, ptr %198, align 8, !tbaa !54
  %5400 = add i64 %5399, 1
  store i64 %5400, ptr %198, align 8, !tbaa !54
  br label %4776, !llvm.loop !71

5401:                                             ; preds = %4779
  call void @llvm.lifetime.start.p0(i64 8, ptr %227) #11
  %5402 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5402, ptr %227, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %228) #11
  %5403 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5403, ptr %228, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr %229) #11
  call void @llvm.memset.p0.i64(ptr align 8 %229, i8 0, i64 192, i1 false)
  br label %5404

5404:                                             ; preds = %5401
  %5405 = load i32, ptr @test_count, align 4, !tbaa !5
  %5406 = add nsw i32 %5405, 1
  store i32 %5406, ptr @test_count, align 4, !tbaa !5
  %5407 = load ptr, ptr %227, align 8, !tbaa !9
  %5408 = load ptr, ptr %228, align 8, !tbaa !9
  %5409 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %5407, ptr noundef %5408, ptr noundef %229)
  %5410 = getelementptr inbounds %struct.s2n_result, ptr %230, i32 0, i32 0
  store i32 %5409, ptr %5410, align 4
  %5411 = getelementptr inbounds %struct.s2n_result, ptr %230, i32 0, i32 0
  %5412 = load i32, ptr %5411, align 4
  %5413 = call zeroext i1 @s2n_result_is_ok(i32 %5412)
  br i1 %5413, label %5467, label %5414

5414:                                             ; preds = %5404
  br label %5415

5415:                                             ; preds = %5414
  br label %5416

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

5423:                                             ; preds = %5416
  %5424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5425 = call i32 @fileno(ptr noundef %5424) #11
  %5426 = call i32 @isatty(i32 noundef %5425) #11
  %5427 = icmp ne i32 %5426, 0
  br i1 %5427, label %5428, label %5445

5428:                                             ; preds = %5423
  %5429 = load i32, ptr %231, align 4, !tbaa !5
  %5430 = call ptr @__errno_location() #12
  store i32 %5429, ptr %5430, align 4, !tbaa !5
  %5431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5432 = load i32, ptr @test_count, align 4, !tbaa !5
  %5433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5434 = load i32, ptr %5433, align 4, !tbaa !5
  %5435 = call ptr @s2n_strerror(i32 noundef %5434, ptr noundef @.str.4)
  %5436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5437 = load i32, ptr %5436, align 4, !tbaa !5
  %5438 = call ptr @s2n_strerror_debug(i32 noundef %5437, ptr noundef @.str.4)
  %5439 = call ptr @__errno_location() #12
  %5440 = load i32, ptr %5439, align 4, !tbaa !5
  %5441 = call ptr @strerror(i32 noundef %5440) #11
  %5442 = call ptr @__errno_location() #12
  %5443 = load i32, ptr %5442, align 4, !tbaa !5
  %5444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5431, ptr noundef @.str.2, i32 noundef %5432, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 360, ptr noundef %5435, ptr noundef %5438, ptr noundef %5441, i32 noundef %5443) #11
  br label %5462

5445:                                             ; preds = %5423, %5416
  %5446 = load i32, ptr %231, align 4, !tbaa !5
  %5447 = call ptr @__errno_location() #12
  store i32 %5446, ptr %5447, align 4, !tbaa !5
  %5448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5449 = load i32, ptr @test_count, align 4, !tbaa !5
  %5450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5451 = load i32, ptr %5450, align 4, !tbaa !5
  %5452 = call ptr @s2n_strerror(i32 noundef %5451, ptr noundef @.str.4)
  %5453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5454 = load i32, ptr %5453, align 4, !tbaa !5
  %5455 = call ptr @s2n_strerror_debug(i32 noundef %5454, ptr noundef @.str.4)
  %5456 = call ptr @__errno_location() #12
  %5457 = load i32, ptr %5456, align 4, !tbaa !5
  %5458 = call ptr @strerror(i32 noundef %5457) #11
  %5459 = call ptr @__errno_location() #12
  %5460 = load i32, ptr %5459, align 4, !tbaa !5
  %5461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5448, ptr noundef @.str.5, i32 noundef %5449, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 360, ptr noundef %5452, ptr noundef %5455, ptr noundef %5458, i32 noundef %5460) #11
  br label %5462

5462:                                             ; preds = %5445, %5428
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #11
  br label %5463

5463:                                             ; preds = %5462
  br label %5464

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

5465:                                             ; No predecessors!
  br label %5466

5466:                                             ; preds = %5465
  br label %5467

5467:                                             ; preds = %5466, %5404
  br label %5468

5468:                                             ; preds = %5467
  br label %5469

5469:                                             ; preds = %5468
  call void @llvm.lifetime.start.p0(i64 8, ptr %232) #11
  store i64 1, ptr %232, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 16384, ptr %233) #11
  call void @llvm.memset.p0.i64(ptr align 16 %233, i8 0, i64 16384, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %234) #11
  %5470 = getelementptr inbounds %struct.iovec, ptr %234, i32 0, i32 0
  %5471 = getelementptr inbounds [16384 x i8], ptr %233, i64 0, i64 0
  store ptr %5471, ptr %5470, align 8, !tbaa !16
  %5472 = getelementptr inbounds %struct.iovec, ptr %234, i32 0, i32 1
  %5473 = load i64, ptr %232, align 8, !tbaa !54
  store i64 %5473, ptr %5472, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 100, ptr %235) #11
  call void @llvm.memset.p0.i64(ptr align 16 %235, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr %236) #11
  %5474 = getelementptr inbounds %struct.msghdr, ptr %236, i32 0, i32 0
  store ptr null, ptr %5474, align 8, !tbaa !20
  %5475 = getelementptr inbounds %struct.msghdr, ptr %236, i32 0, i32 1
  store i32 0, ptr %5475, align 8, !tbaa !22
  %5476 = getelementptr inbounds %struct.msghdr, ptr %236, i32 0, i32 2
  store ptr %234, ptr %5476, align 8, !tbaa !23
  %5477 = getelementptr inbounds %struct.msghdr, ptr %236, i32 0, i32 3
  store i64 1, ptr %5477, align 8, !tbaa !24
  %5478 = getelementptr inbounds %struct.msghdr, ptr %236, i32 0, i32 4
  %5479 = getelementptr inbounds [100 x i8], ptr %235, i64 0, i64 0
  store ptr %5479, ptr %5478, align 8, !tbaa !25
  %5480 = getelementptr inbounds %struct.msghdr, ptr %236, i32 0, i32 5
  store i64 100, ptr %5480, align 8, !tbaa !26
  %5481 = getelementptr inbounds %struct.msghdr, ptr %236, i32 0, i32 6
  store i32 0, ptr %5481, align 8, !tbaa !27
  br label %5482

5482:                                             ; preds = %5469
  %5483 = load i32, ptr @test_count, align 4, !tbaa !5
  %5484 = add nsw i32 %5483, 1
  store i32 %5484, ptr @test_count, align 4, !tbaa !5
  %5485 = load ptr, ptr %228, align 8, !tbaa !9
  %5486 = getelementptr inbounds %struct.s2n_connection, ptr %5485, i32 0, i32 9
  %5487 = load ptr, ptr %5486, align 8, !tbaa !69
  %5488 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %5487, ptr noundef %236)
  %5489 = icmp eq i64 %5488, -1
  br i1 %5489, label %5543, label %5490

5490:                                             ; preds = %5482
  br label %5491

5491:                                             ; preds = %5490
  br label %5492

5492:                                             ; preds = %5491
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #11
  %5493 = call ptr @__errno_location() #12
  %5494 = load i32, ptr %5493, align 4, !tbaa !5
  store i32 %5494, ptr %237, align 4, !tbaa !5
  %5495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5496 = call i32 @s2n_print_stacktrace(ptr noundef %5495)
  %5497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5498 = trunc i8 %5497 to i1
  br i1 %5498, label %5499, label %5521

5499:                                             ; preds = %5492
  %5500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5501 = call i32 @fileno(ptr noundef %5500) #11
  %5502 = call i32 @isatty(i32 noundef %5501) #11
  %5503 = icmp ne i32 %5502, 0
  br i1 %5503, label %5504, label %5521

5504:                                             ; preds = %5499
  %5505 = load i32, ptr %237, align 4, !tbaa !5
  %5506 = call ptr @__errno_location() #12
  store i32 %5505, ptr %5506, align 4, !tbaa !5
  %5507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5508 = load i32, ptr @test_count, align 4, !tbaa !5
  %5509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5510 = load i32, ptr %5509, align 4, !tbaa !5
  %5511 = call ptr @s2n_strerror(i32 noundef %5510, ptr noundef @.str.4)
  %5512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5513 = load i32, ptr %5512, align 4, !tbaa !5
  %5514 = call ptr @s2n_strerror_debug(i32 noundef %5513, ptr noundef @.str.4)
  %5515 = call ptr @__errno_location() #12
  %5516 = load i32, ptr %5515, align 4, !tbaa !5
  %5517 = call ptr @strerror(i32 noundef %5516) #11
  %5518 = call ptr @__errno_location() #12
  %5519 = load i32, ptr %5518, align 4, !tbaa !5
  %5520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5507, ptr noundef @.str.2, i32 noundef %5508, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 373, ptr noundef %5511, ptr noundef %5514, ptr noundef %5517, i32 noundef %5519) #11
  br label %5538

5521:                                             ; preds = %5499, %5492
  %5522 = load i32, ptr %237, align 4, !tbaa !5
  %5523 = call ptr @__errno_location() #12
  store i32 %5522, ptr %5523, align 4, !tbaa !5
  %5524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5525 = load i32, ptr @test_count, align 4, !tbaa !5
  %5526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5527 = load i32, ptr %5526, align 4, !tbaa !5
  %5528 = call ptr @s2n_strerror(i32 noundef %5527, ptr noundef @.str.4)
  %5529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5530 = load i32, ptr %5529, align 4, !tbaa !5
  %5531 = call ptr @s2n_strerror_debug(i32 noundef %5530, ptr noundef @.str.4)
  %5532 = call ptr @__errno_location() #12
  %5533 = load i32, ptr %5532, align 4, !tbaa !5
  %5534 = call ptr @strerror(i32 noundef %5533) #11
  %5535 = call ptr @__errno_location() #12
  %5536 = load i32, ptr %5535, align 4, !tbaa !5
  %5537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5524, ptr noundef @.str.5, i32 noundef %5525, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 373, ptr noundef %5528, ptr noundef %5531, ptr noundef %5534, i32 noundef %5536) #11
  br label %5538

5538:                                             ; preds = %5521, %5504
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #11
  br label %5539

5539:                                             ; preds = %5538
  br label %5540

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

5541:                                             ; No predecessors!
  br label %5542

5542:                                             ; preds = %5541
  br label %5543

5543:                                             ; preds = %5542, %5482
  br label %5544

5544:                                             ; preds = %5543
  br label %5545

5545:                                             ; preds = %5544
  br label %5546

5546:                                             ; preds = %5545
  %5547 = load i32, ptr @test_count, align 4, !tbaa !5
  %5548 = add nsw i32 %5547, 1
  store i32 %5548, ptr @test_count, align 4, !tbaa !5
  %5549 = call ptr @__errno_location() #12
  %5550 = load i32, ptr %5549, align 4, !tbaa !5
  %5551 = icmp eq i32 %5550, 11
  br i1 %5551, label %5605, label %5552

5552:                                             ; preds = %5546
  br label %5553

5553:                                             ; preds = %5552
  br label %5554

5554:                                             ; preds = %5553
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #11
  %5555 = call ptr @__errno_location() #12
  %5556 = load i32, ptr %5555, align 4, !tbaa !5
  store i32 %5556, ptr %238, align 4, !tbaa !5
  %5557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5558 = call i32 @s2n_print_stacktrace(ptr noundef %5557)
  %5559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5560 = trunc i8 %5559 to i1
  br i1 %5560, label %5561, label %5583

5561:                                             ; preds = %5554
  %5562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5563 = call i32 @fileno(ptr noundef %5562) #11
  %5564 = call i32 @isatty(i32 noundef %5563) #11
  %5565 = icmp ne i32 %5564, 0
  br i1 %5565, label %5566, label %5583

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

5583:                                             ; preds = %5561, %5554
  %5584 = load i32, ptr %238, align 4, !tbaa !5
  %5585 = call ptr @__errno_location() #12
  store i32 %5584, ptr %5585, align 4, !tbaa !5
  %5586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5587 = load i32, ptr @test_count, align 4, !tbaa !5
  %5588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5589 = load i32, ptr %5588, align 4, !tbaa !5
  %5590 = call ptr @s2n_strerror(i32 noundef %5589, ptr noundef @.str.4)
  %5591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5592 = load i32, ptr %5591, align 4, !tbaa !5
  %5593 = call ptr @s2n_strerror_debug(i32 noundef %5592, ptr noundef @.str.4)
  %5594 = call ptr @__errno_location() #12
  %5595 = load i32, ptr %5594, align 4, !tbaa !5
  %5596 = call ptr @strerror(i32 noundef %5595) #11
  %5597 = call ptr @__errno_location() #12
  %5598 = load i32, ptr %5597, align 4, !tbaa !5
  %5599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5586, ptr noundef @.str.5, i32 noundef %5587, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 374, ptr noundef %5590, ptr noundef %5593, ptr noundef %5596, i32 noundef %5598) #11
  br label %5600

5600:                                             ; preds = %5583, %5566
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #11
  br label %5601

5601:                                             ; preds = %5600
  br label %5602

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

5603:                                             ; No predecessors!
  br label %5604

5604:                                             ; preds = %5603
  br label %5605

5605:                                             ; preds = %5604, %5546
  br label %5606

5606:                                             ; preds = %5605
  br label %5607

5607:                                             ; preds = %5606
  call void @llvm.lifetime.start.p0(i64 16, ptr %239) #11
  %5608 = getelementptr inbounds %struct.iovec, ptr %239, i32 0, i32 0
  %5609 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  store ptr %5609, ptr %5608, align 8, !tbaa !16
  %5610 = getelementptr inbounds %struct.iovec, ptr %239, i32 0, i32 1
  %5611 = load i64, ptr %232, align 8, !tbaa !54
  store i64 %5611, ptr %5610, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 56, ptr %240) #11
  %5612 = getelementptr inbounds %struct.msghdr, ptr %240, i32 0, i32 0
  store ptr null, ptr %5612, align 8, !tbaa !20
  %5613 = getelementptr inbounds %struct.msghdr, ptr %240, i32 0, i32 1
  store i32 0, ptr %5613, align 8, !tbaa !22
  %5614 = getelementptr inbounds %struct.msghdr, ptr %240, i32 0, i32 2
  store ptr %239, ptr %5614, align 8, !tbaa !23
  %5615 = getelementptr inbounds %struct.msghdr, ptr %240, i32 0, i32 3
  store i64 1, ptr %5615, align 8, !tbaa !24
  %5616 = getelementptr inbounds %struct.msghdr, ptr %240, i32 0, i32 4
  store ptr null, ptr %5616, align 8, !tbaa !25
  %5617 = getelementptr inbounds %struct.msghdr, ptr %240, i32 0, i32 5
  store i64 0, ptr %5617, align 8, !tbaa !26
  %5618 = getelementptr inbounds %struct.msghdr, ptr %240, i32 0, i32 6
  store i32 0, ptr %5618, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 100, ptr %241) #11
  call void @llvm.memset.p0.i64(ptr align 16 %241, i8 0, i64 100, i1 false)
  br label %5619

5619:                                             ; preds = %5607
  %5620 = load i32, ptr @test_count, align 4, !tbaa !5
  %5621 = add nsw i32 %5620, 1
  store i32 %5621, ptr @test_count, align 4, !tbaa !5
  %5622 = getelementptr inbounds [100 x i8], ptr %241, i64 0, i64 0
  %5623 = call i32 @s2n_ktls_set_control_data(ptr noundef %240, ptr noundef %5622, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43)
  %5624 = getelementptr inbounds %struct.s2n_result, ptr %242, i32 0, i32 0
  store i32 %5623, ptr %5624, align 4
  %5625 = getelementptr inbounds %struct.s2n_result, ptr %242, i32 0, i32 0
  %5626 = load i32, ptr %5625, align 4
  %5627 = call zeroext i1 @s2n_result_is_ok(i32 %5626)
  br i1 %5627, label %5681, label %5628

5628:                                             ; preds = %5619
  br label %5629

5629:                                             ; preds = %5628
  br label %5630

5630:                                             ; preds = %5629
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #11
  %5631 = call ptr @__errno_location() #12
  %5632 = load i32, ptr %5631, align 4, !tbaa !5
  store i32 %5632, ptr %243, align 4, !tbaa !5
  %5633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5634 = call i32 @s2n_print_stacktrace(ptr noundef %5633)
  %5635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5636 = trunc i8 %5635 to i1
  br i1 %5636, label %5637, label %5659

5637:                                             ; preds = %5630
  %5638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5639 = call i32 @fileno(ptr noundef %5638) #11
  %5640 = call i32 @isatty(i32 noundef %5639) #11
  %5641 = icmp ne i32 %5640, 0
  br i1 %5641, label %5642, label %5659

5642:                                             ; preds = %5637
  %5643 = load i32, ptr %243, align 4, !tbaa !5
  %5644 = call ptr @__errno_location() #12
  store i32 %5643, ptr %5644, align 4, !tbaa !5
  %5645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5646 = load i32, ptr @test_count, align 4, !tbaa !5
  %5647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5648 = load i32, ptr %5647, align 4, !tbaa !5
  %5649 = call ptr @s2n_strerror(i32 noundef %5648, ptr noundef @.str.4)
  %5650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5651 = load i32, ptr %5650, align 4, !tbaa !5
  %5652 = call ptr @s2n_strerror_debug(i32 noundef %5651, ptr noundef @.str.4)
  %5653 = call ptr @__errno_location() #12
  %5654 = load i32, ptr %5653, align 4, !tbaa !5
  %5655 = call ptr @strerror(i32 noundef %5654) #11
  %5656 = call ptr @__errno_location() #12
  %5657 = load i32, ptr %5656, align 4, !tbaa !5
  %5658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5645, ptr noundef @.str.2, i32 noundef %5646, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 380, ptr noundef %5649, ptr noundef %5652, ptr noundef %5655, i32 noundef %5657) #11
  br label %5676

5659:                                             ; preds = %5637, %5630
  %5660 = load i32, ptr %243, align 4, !tbaa !5
  %5661 = call ptr @__errno_location() #12
  store i32 %5660, ptr %5661, align 4, !tbaa !5
  %5662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5663 = load i32, ptr @test_count, align 4, !tbaa !5
  %5664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5665 = load i32, ptr %5664, align 4, !tbaa !5
  %5666 = call ptr @s2n_strerror(i32 noundef %5665, ptr noundef @.str.4)
  %5667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5668 = load i32, ptr %5667, align 4, !tbaa !5
  %5669 = call ptr @s2n_strerror_debug(i32 noundef %5668, ptr noundef @.str.4)
  %5670 = call ptr @__errno_location() #12
  %5671 = load i32, ptr %5670, align 4, !tbaa !5
  %5672 = call ptr @strerror(i32 noundef %5671) #11
  %5673 = call ptr @__errno_location() #12
  %5674 = load i32, ptr %5673, align 4, !tbaa !5
  %5675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5662, ptr noundef @.str.5, i32 noundef %5663, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 380, ptr noundef %5666, ptr noundef %5669, ptr noundef %5672, i32 noundef %5674) #11
  br label %5676

5676:                                             ; preds = %5659, %5642
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #11
  br label %5677

5677:                                             ; preds = %5676
  br label %5678

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

5679:                                             ; No predecessors!
  br label %5680

5680:                                             ; preds = %5679
  br label %5681

5681:                                             ; preds = %5680, %5619
  br label %5682

5682:                                             ; preds = %5681
  br label %5683

5683:                                             ; preds = %5682
  call void @llvm.lifetime.start.p0(i64 8, ptr %244) #11
  %5684 = load ptr, ptr %227, align 8, !tbaa !9
  %5685 = getelementptr inbounds %struct.s2n_connection, ptr %5684, i32 0, i32 8
  %5686 = load ptr, ptr %5685, align 8, !tbaa !28
  %5687 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %5686, ptr noundef %240)
  store i64 %5687, ptr %244, align 8, !tbaa !54
  br label %5688

5688:                                             ; preds = %5683
  %5689 = load i32, ptr @test_count, align 4, !tbaa !5
  %5690 = add nsw i32 %5689, 1
  store i32 %5690, ptr @test_count, align 4, !tbaa !5
  %5691 = load i64, ptr %244, align 8, !tbaa !54
  %5692 = load i64, ptr %232, align 8, !tbaa !54
  %5693 = icmp eq i64 %5691, %5692
  br i1 %5693, label %5747, label %5694

5694:                                             ; preds = %5688
  br label %5695

5695:                                             ; preds = %5694
  br label %5696

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

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

5708:                                             ; preds = %5703
  %5709 = load i32, ptr %245, align 4, !tbaa !5
  %5710 = call ptr @__errno_location() #12
  store i32 %5709, ptr %5710, align 4, !tbaa !5
  %5711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5712 = load i32, ptr @test_count, align 4, !tbaa !5
  %5713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5714 = load i32, ptr %5713, align 4, !tbaa !5
  %5715 = call ptr @s2n_strerror(i32 noundef %5714, ptr noundef @.str.4)
  %5716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5717 = load i32, ptr %5716, align 4, !tbaa !5
  %5718 = call ptr @s2n_strerror_debug(i32 noundef %5717, ptr noundef @.str.4)
  %5719 = call ptr @__errno_location() #12
  %5720 = load i32, ptr %5719, align 4, !tbaa !5
  %5721 = call ptr @strerror(i32 noundef %5720) #11
  %5722 = call ptr @__errno_location() #12
  %5723 = load i32, ptr %5722, align 4, !tbaa !5
  %5724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5711, ptr noundef @.str.2, i32 noundef %5712, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 382, ptr noundef %5715, ptr noundef %5718, ptr noundef %5721, i32 noundef %5723) #11
  br label %5742

5725:                                             ; preds = %5703, %5696
  %5726 = load i32, ptr %245, align 4, !tbaa !5
  %5727 = call ptr @__errno_location() #12
  store i32 %5726, ptr %5727, align 4, !tbaa !5
  %5728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5729 = load i32, ptr @test_count, align 4, !tbaa !5
  %5730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5731 = load i32, ptr %5730, align 4, !tbaa !5
  %5732 = call ptr @s2n_strerror(i32 noundef %5731, ptr noundef @.str.4)
  %5733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5734 = load i32, ptr %5733, align 4, !tbaa !5
  %5735 = call ptr @s2n_strerror_debug(i32 noundef %5734, ptr noundef @.str.4)
  %5736 = call ptr @__errno_location() #12
  %5737 = load i32, ptr %5736, align 4, !tbaa !5
  %5738 = call ptr @strerror(i32 noundef %5737) #11
  %5739 = call ptr @__errno_location() #12
  %5740 = load i32, ptr %5739, align 4, !tbaa !5
  %5741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5728, ptr noundef @.str.5, i32 noundef %5729, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 382, ptr noundef %5732, ptr noundef %5735, ptr noundef %5738, i32 noundef %5740) #11
  br label %5742

5742:                                             ; preds = %5725, %5708
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #11
  br label %5743

5743:                                             ; preds = %5742
  br label %5744

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

5745:                                             ; No predecessors!
  br label %5746

5746:                                             ; preds = %5745
  br label %5747

5747:                                             ; preds = %5746, %5688
  br label %5748

5748:                                             ; preds = %5747
  br label %5749

5749:                                             ; preds = %5748
  call void @llvm.lifetime.start.p0(i64 8, ptr %246) #11
  store i64 0, ptr %246, align 8, !tbaa !54
  %5750 = load ptr, ptr %228, align 8, !tbaa !9
  %5751 = getelementptr inbounds %struct.s2n_connection, ptr %5750, i32 0, i32 9
  %5752 = load ptr, ptr %5751, align 8, !tbaa !69
  %5753 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %5752, ptr noundef %236)
  store i64 %5753, ptr %246, align 8, !tbaa !54
  br label %5754

5754:                                             ; preds = %5749
  %5755 = load i32, ptr @test_count, align 4, !tbaa !5
  %5756 = add nsw i32 %5755, 1
  store i32 %5756, ptr @test_count, align 4, !tbaa !5
  %5757 = load i64, ptr %246, align 8, !tbaa !54
  %5758 = load i64, ptr %232, align 8, !tbaa !54
  %5759 = icmp eq i64 %5757, %5758
  br i1 %5759, label %5813, label %5760

5760:                                             ; preds = %5754
  br label %5761

5761:                                             ; preds = %5760
  br label %5762

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

5769:                                             ; preds = %5762
  %5770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5771 = call i32 @fileno(ptr noundef %5770) #11
  %5772 = call i32 @isatty(i32 noundef %5771) #11
  %5773 = icmp ne i32 %5772, 0
  br i1 %5773, label %5774, label %5791

5774:                                             ; preds = %5769
  %5775 = load i32, ptr %247, align 4, !tbaa !5
  %5776 = call ptr @__errno_location() #12
  store i32 %5775, ptr %5776, align 4, !tbaa !5
  %5777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5778 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5780, ptr noundef @.str.4)
  %5782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5783 = load i32, ptr %5782, align 4, !tbaa !5
  %5784 = call ptr @s2n_strerror_debug(i32 noundef %5783, ptr noundef @.str.4)
  %5785 = call ptr @__errno_location() #12
  %5786 = load i32, ptr %5785, align 4, !tbaa !5
  %5787 = call ptr @strerror(i32 noundef %5786) #11
  %5788 = call ptr @__errno_location() #12
  %5789 = load i32, ptr %5788, align 4, !tbaa !5
  %5790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5777, ptr noundef @.str.2, i32 noundef %5778, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 387, ptr noundef %5781, ptr noundef %5784, ptr noundef %5787, i32 noundef %5789) #11
  br label %5808

5791:                                             ; preds = %5769, %5762
  %5792 = load i32, ptr %247, align 4, !tbaa !5
  %5793 = call ptr @__errno_location() #12
  store i32 %5792, ptr %5793, 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 @.str.4)
  %5799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5800 = load i32, ptr %5799, align 4, !tbaa !5
  %5801 = call ptr @s2n_strerror_debug(i32 noundef %5800, ptr noundef @.str.4)
  %5802 = call ptr @__errno_location() #12
  %5803 = load i32, ptr %5802, align 4, !tbaa !5
  %5804 = call ptr @strerror(i32 noundef %5803) #11
  %5805 = call ptr @__errno_location() #12
  %5806 = load i32, ptr %5805, align 4, !tbaa !5
  %5807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5794, ptr noundef @.str.5, i32 noundef %5795, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 387, ptr noundef %5798, ptr noundef %5801, ptr noundef %5804, i32 noundef %5806) #11
  br label %5808

5808:                                             ; preds = %5791, %5774
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #11
  br label %5809

5809:                                             ; preds = %5808
  br label %5810

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

5811:                                             ; No predecessors!
  br label %5812

5812:                                             ; preds = %5811
  br label %5813

5813:                                             ; preds = %5812, %5754
  br label %5814

5814:                                             ; preds = %5813
  br label %5815

5815:                                             ; preds = %5814
  br label %5816

5816:                                             ; preds = %5815
  %5817 = load i64, ptr %232, align 8, !tbaa !54
  %5818 = icmp ne i64 %5817, 0
  br i1 %5818, label %5819, label %5884

5819:                                             ; preds = %5816
  br label %5820

5820:                                             ; preds = %5819
  %5821 = load i32, ptr @test_count, align 4, !tbaa !5
  %5822 = add nsw i32 %5821, 1
  store i32 %5822, ptr @test_count, align 4, !tbaa !5
  %5823 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %5824 = getelementptr inbounds [16384 x i8], ptr %233, i64 0, i64 0
  %5825 = load i64, ptr %232, align 8, !tbaa !54
  %5826 = call i32 @memcmp(ptr noundef %5823, ptr noundef %5824, i64 noundef %5825) #14
  %5827 = icmp eq i32 %5826, 0
  br i1 %5827, label %5881, label %5828

5828:                                             ; preds = %5820
  br label %5829

5829:                                             ; preds = %5828
  br label %5830

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

5837:                                             ; preds = %5830
  %5838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5839 = call i32 @fileno(ptr noundef %5838) #11
  %5840 = call i32 @isatty(i32 noundef %5839) #11
  %5841 = icmp ne i32 %5840, 0
  br i1 %5841, label %5842, label %5859

5842:                                             ; preds = %5837
  %5843 = load i32, ptr %248, align 4, !tbaa !5
  %5844 = call ptr @__errno_location() #12
  store i32 %5843, ptr %5844, align 4, !tbaa !5
  %5845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5846 = load i32, ptr @test_count, align 4, !tbaa !5
  %5847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5848 = load i32, ptr %5847, align 4, !tbaa !5
  %5849 = call ptr @s2n_strerror(i32 noundef %5848, ptr noundef @.str.4)
  %5850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5851 = load i32, ptr %5850, align 4, !tbaa !5
  %5852 = call ptr @s2n_strerror_debug(i32 noundef %5851, ptr noundef @.str.4)
  %5853 = call ptr @__errno_location() #12
  %5854 = load i32, ptr %5853, align 4, !tbaa !5
  %5855 = call ptr @strerror(i32 noundef %5854) #11
  %5856 = call ptr @__errno_location() #12
  %5857 = load i32, ptr %5856, align 4, !tbaa !5
  %5858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5845, ptr noundef @.str.2, i32 noundef %5846, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 389, ptr noundef %5849, ptr noundef %5852, ptr noundef %5855, i32 noundef %5857) #11
  br label %5876

5859:                                             ; preds = %5837, %5830
  %5860 = load i32, ptr %248, align 4, !tbaa !5
  %5861 = call ptr @__errno_location() #12
  store i32 %5860, ptr %5861, align 4, !tbaa !5
  %5862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5863 = load i32, ptr @test_count, align 4, !tbaa !5
  %5864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5865 = load i32, ptr %5864, align 4, !tbaa !5
  %5866 = call ptr @s2n_strerror(i32 noundef %5865, ptr noundef @.str.4)
  %5867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5868 = load i32, ptr %5867, align 4, !tbaa !5
  %5869 = call ptr @s2n_strerror_debug(i32 noundef %5868, ptr noundef @.str.4)
  %5870 = call ptr @__errno_location() #12
  %5871 = load i32, ptr %5870, align 4, !tbaa !5
  %5872 = call ptr @strerror(i32 noundef %5871) #11
  %5873 = call ptr @__errno_location() #12
  %5874 = load i32, ptr %5873, align 4, !tbaa !5
  %5875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5862, ptr noundef @.str.5, i32 noundef %5863, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 389, ptr noundef %5866, ptr noundef %5869, ptr noundef %5872, i32 noundef %5874) #11
  br label %5876

5876:                                             ; preds = %5859, %5842
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #11
  br label %5877

5877:                                             ; preds = %5876
  br label %5878

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

5879:                                             ; No predecessors!
  br label %5880

5880:                                             ; preds = %5879
  br label %5881

5881:                                             ; preds = %5880, %5820
  br label %5882

5882:                                             ; preds = %5881
  br label %5883

5883:                                             ; preds = %5882
  br label %5884

5884:                                             ; preds = %5883, %5816
  br label %5885

5885:                                             ; preds = %5884
  br label %5886

5886:                                             ; preds = %5885
  call void @llvm.lifetime.start.p0(i64 1, ptr %249) #11
  store i8 0, ptr %249, align 1, !tbaa !15
  br label %5887

5887:                                             ; preds = %5886
  %5888 = load i32, ptr @test_count, align 4, !tbaa !5
  %5889 = add nsw i32 %5888, 1
  store i32 %5889, ptr @test_count, align 4, !tbaa !5
  %5890 = call i32 @s2n_ktls_get_control_data(ptr noundef %236, i32 noundef 0, ptr noundef %249)
  %5891 = getelementptr inbounds %struct.s2n_result, ptr %250, i32 0, i32 0
  store i32 %5890, ptr %5891, align 4
  %5892 = getelementptr inbounds %struct.s2n_result, ptr %250, i32 0, i32 0
  %5893 = load i32, ptr %5892, align 4
  %5894 = call zeroext i1 @s2n_result_is_ok(i32 %5893)
  br i1 %5894, label %5948, label %5895

5895:                                             ; preds = %5887
  br label %5896

5896:                                             ; preds = %5895
  br label %5897

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

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

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

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

5943:                                             ; preds = %5926, %5909
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #11
  br label %5944

5944:                                             ; preds = %5943
  br label %5945

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

5946:                                             ; No predecessors!
  br label %5947

5947:                                             ; preds = %5946
  br label %5948

5948:                                             ; preds = %5947, %5887
  br label %5949

5949:                                             ; preds = %5948
  br label %5950

5950:                                             ; preds = %5949
  br label %5951

5951:                                             ; preds = %5950
  %5952 = load i32, ptr @test_count, align 4, !tbaa !5
  %5953 = add nsw i32 %5952, 1
  store i32 %5953, ptr @test_count, align 4, !tbaa !5
  %5954 = load i8, ptr %249, align 1, !tbaa !15
  %5955 = zext i8 %5954 to i32
  %5956 = icmp eq i32 %5955, 43
  br i1 %5956, label %6010, label %5957

5957:                                             ; preds = %5951
  br label %5958

5958:                                             ; preds = %5957
  br label %5959

5959:                                             ; preds = %5958
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #11
  %5960 = call ptr @__errno_location() #12
  %5961 = load i32, ptr %5960, align 4, !tbaa !5
  store i32 %5961, ptr %252, align 4, !tbaa !5
  %5962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5963 = call i32 @s2n_print_stacktrace(ptr noundef %5962)
  %5964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5965 = trunc i8 %5964 to i1
  br i1 %5965, label %5966, label %5988

5966:                                             ; preds = %5959
  %5967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5968 = call i32 @fileno(ptr noundef %5967) #11
  %5969 = call i32 @isatty(i32 noundef %5968) #11
  %5970 = icmp ne i32 %5969, 0
  br i1 %5970, label %5971, label %5988

5971:                                             ; preds = %5966
  %5972 = load i32, ptr %252, align 4, !tbaa !5
  %5973 = call ptr @__errno_location() #12
  store i32 %5972, ptr %5973, align 4, !tbaa !5
  %5974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5975 = load i32, ptr @test_count, align 4, !tbaa !5
  %5976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5977 = load i32, ptr %5976, align 4, !tbaa !5
  %5978 = call ptr @s2n_strerror(i32 noundef %5977, ptr noundef @.str.4)
  %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_debug(i32 noundef %5980, ptr noundef @.str.4)
  %5982 = call ptr @__errno_location() #12
  %5983 = load i32, ptr %5982, align 4, !tbaa !5
  %5984 = call ptr @strerror(i32 noundef %5983) #11
  %5985 = call ptr @__errno_location() #12
  %5986 = load i32, ptr %5985, align 4, !tbaa !5
  %5987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5974, ptr noundef @.str.2, i32 noundef %5975, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 392, ptr noundef %5978, ptr noundef %5981, ptr noundef %5984, i32 noundef %5986) #11
  br label %6005

5988:                                             ; preds = %5966, %5959
  %5989 = load i32, ptr %252, align 4, !tbaa !5
  %5990 = call ptr @__errno_location() #12
  store i32 %5989, ptr %5990, align 4, !tbaa !5
  %5991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5992 = load i32, ptr @test_count, align 4, !tbaa !5
  %5993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5994 = load i32, ptr %5993, align 4, !tbaa !5
  %5995 = call ptr @s2n_strerror(i32 noundef %5994, ptr noundef @.str.4)
  %5996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5997 = load i32, ptr %5996, align 4, !tbaa !5
  %5998 = call ptr @s2n_strerror_debug(i32 noundef %5997, ptr noundef @.str.4)
  %5999 = call ptr @__errno_location() #12
  %6000 = load i32, ptr %5999, align 4, !tbaa !5
  %6001 = call ptr @strerror(i32 noundef %6000) #11
  %6002 = call ptr @__errno_location() #12
  %6003 = load i32, ptr %6002, align 4, !tbaa !5
  %6004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5991, ptr noundef @.str.5, i32 noundef %5992, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 392, ptr noundef %5995, ptr noundef %5998, ptr noundef %6001, i32 noundef %6003) #11
  br label %6005

6005:                                             ; preds = %5988, %5971
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #11
  br label %6006

6006:                                             ; preds = %6005
  br label %6007

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

6008:                                             ; No predecessors!
  br label %6009

6009:                                             ; preds = %6008
  br label %6010

6010:                                             ; preds = %6009, %5951
  br label %6011

6011:                                             ; preds = %6010
  br label %6012

6012:                                             ; preds = %6011
  call void @llvm.lifetime.start.p0(i64 8, ptr %253) #11
  store i64 5, ptr %253, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 8, ptr %254) #11
  store i64 0, ptr %254, align 8, !tbaa !54
  br label %6013

6013:                                             ; preds = %6145, %6012
  %6014 = load i64, ptr %254, align 8, !tbaa !54
  %6015 = load i64, ptr %253, align 8, !tbaa !54
  %6016 = icmp ult i64 %6014, %6015
  br i1 %6016, label %6018, label %6017

6017:                                             ; preds = %6013
  call void @llvm.lifetime.end.p0(i64 8, ptr %254) #11
  br label %6148

6018:                                             ; preds = %6013
  br label %6019

6019:                                             ; preds = %6018
  %6020 = load i32, ptr @test_count, align 4, !tbaa !5
  %6021 = add nsw i32 %6020, 1
  store i32 %6021, ptr @test_count, align 4, !tbaa !5
  %6022 = load ptr, ptr %228, align 8, !tbaa !9
  %6023 = getelementptr inbounds %struct.s2n_connection, ptr %6022, i32 0, i32 9
  %6024 = load ptr, ptr %6023, align 8, !tbaa !69
  %6025 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %6024, ptr noundef %236)
  %6026 = icmp eq i64 %6025, -1
  br i1 %6026, label %6080, label %6027

6027:                                             ; preds = %6019
  br label %6028

6028:                                             ; preds = %6027
  br label %6029

6029:                                             ; preds = %6028
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #11
  %6030 = call ptr @__errno_location() #12
  %6031 = load i32, ptr %6030, align 4, !tbaa !5
  store i32 %6031, ptr %255, align 4, !tbaa !5
  %6032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6033 = call i32 @s2n_print_stacktrace(ptr noundef %6032)
  %6034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6035 = trunc i8 %6034 to i1
  br i1 %6035, label %6036, label %6058

6036:                                             ; preds = %6029
  %6037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6038 = call i32 @fileno(ptr noundef %6037) #11
  %6039 = call i32 @isatty(i32 noundef %6038) #11
  %6040 = icmp ne i32 %6039, 0
  br i1 %6040, label %6041, label %6058

6041:                                             ; preds = %6036
  %6042 = load i32, ptr %255, align 4, !tbaa !5
  %6043 = call ptr @__errno_location() #12
  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() #12
  %6053 = load i32, ptr %6052, align 4, !tbaa !5
  %6054 = call ptr @strerror(i32 noundef %6053) #11
  %6055 = call ptr @__errno_location() #12
  %6056 = load i32, ptr %6055, align 4, !tbaa !5
  %6057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6044, ptr noundef @.str.2, i32 noundef %6045, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 397, ptr noundef %6048, ptr noundef %6051, ptr noundef %6054, i32 noundef %6056) #11
  br label %6075

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

6075:                                             ; preds = %6058, %6041
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #11
  br label %6076

6076:                                             ; preds = %6075
  br label %6077

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

6078:                                             ; No predecessors!
  br label %6079

6079:                                             ; preds = %6078
  br label %6080

6080:                                             ; preds = %6079, %6019
  br label %6081

6081:                                             ; preds = %6080
  br label %6082

6082:                                             ; preds = %6081
  br label %6083

6083:                                             ; preds = %6082
  %6084 = load i32, ptr @test_count, align 4, !tbaa !5
  %6085 = add nsw i32 %6084, 1
  store i32 %6085, ptr @test_count, align 4, !tbaa !5
  %6086 = call ptr @__errno_location() #12
  %6087 = load i32, ptr %6086, align 4, !tbaa !5
  %6088 = icmp eq i32 %6087, 11
  br i1 %6088, label %6142, label %6089

6089:                                             ; preds = %6083
  br label %6090

6090:                                             ; preds = %6089
  br label %6091

6091:                                             ; preds = %6090
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #11
  %6092 = call ptr @__errno_location() #12
  %6093 = load i32, ptr %6092, align 4, !tbaa !5
  store i32 %6093, ptr %256, align 4, !tbaa !5
  %6094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6095 = call i32 @s2n_print_stacktrace(ptr noundef %6094)
  %6096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6097 = trunc i8 %6096 to i1
  br i1 %6097, label %6098, label %6120

6098:                                             ; preds = %6091
  %6099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6100 = call i32 @fileno(ptr noundef %6099) #11
  %6101 = call i32 @isatty(i32 noundef %6100) #11
  %6102 = icmp ne i32 %6101, 0
  br i1 %6102, label %6103, label %6120

6103:                                             ; preds = %6098
  %6104 = load i32, ptr %256, align 4, !tbaa !5
  %6105 = call ptr @__errno_location() #12
  store i32 %6104, ptr %6105, align 4, !tbaa !5
  %6106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6107 = load i32, ptr @test_count, align 4, !tbaa !5
  %6108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6109 = load i32, ptr %6108, align 4, !tbaa !5
  %6110 = call ptr @s2n_strerror(i32 noundef %6109, ptr noundef @.str.4)
  %6111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6112 = load i32, ptr %6111, align 4, !tbaa !5
  %6113 = call ptr @s2n_strerror_debug(i32 noundef %6112, ptr noundef @.str.4)
  %6114 = call ptr @__errno_location() #12
  %6115 = load i32, ptr %6114, align 4, !tbaa !5
  %6116 = call ptr @strerror(i32 noundef %6115) #11
  %6117 = call ptr @__errno_location() #12
  %6118 = load i32, ptr %6117, align 4, !tbaa !5
  %6119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6106, ptr noundef @.str.2, i32 noundef %6107, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 398, ptr noundef %6110, ptr noundef %6113, ptr noundef %6116, i32 noundef %6118) #11
  br label %6137

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

6137:                                             ; preds = %6120, %6103
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #11
  br label %6138

6138:                                             ; preds = %6137
  br label %6139

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

6140:                                             ; No predecessors!
  br label %6141

6141:                                             ; preds = %6140
  br label %6142

6142:                                             ; preds = %6141, %6083
  br label %6143

6143:                                             ; preds = %6142
  br label %6144

6144:                                             ; preds = %6143
  br label %6145

6145:                                             ; preds = %6144
  %6146 = load i64, ptr %254, align 8, !tbaa !54
  %6147 = add i64 %6146, 1
  store i64 %6147, ptr %254, align 8, !tbaa !54
  br label %6013, !llvm.loop !72

6148:                                             ; preds = %6017
  br label %6149

6149:                                             ; preds = %6148
  %6150 = load i32, ptr @test_count, align 4, !tbaa !5
  %6151 = add nsw i32 %6150, 1
  store i32 %6151, ptr @test_count, align 4, !tbaa !5
  %6152 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %229, i32 0, i32 0
  %6153 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %6152, i32 0, i32 2
  %6154 = load i64, ptr %6153, align 8, !tbaa !55
  %6155 = icmp eq i64 %6154, 1
  br i1 %6155, label %6209, label %6156

6156:                                             ; preds = %6149
  br label %6157

6157:                                             ; preds = %6156
  br label %6158

6158:                                             ; preds = %6157
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #11
  %6159 = call ptr @__errno_location() #12
  %6160 = load i32, ptr %6159, align 4, !tbaa !5
  store i32 %6160, ptr %257, align 4, !tbaa !5
  %6161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6162 = call i32 @s2n_print_stacktrace(ptr noundef %6161)
  %6163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6164 = trunc i8 %6163 to i1
  br i1 %6164, label %6165, label %6187

6165:                                             ; preds = %6158
  %6166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6167 = call i32 @fileno(ptr noundef %6166) #11
  %6168 = call i32 @isatty(i32 noundef %6167) #11
  %6169 = icmp ne i32 %6168, 0
  br i1 %6169, label %6170, label %6187

6170:                                             ; preds = %6165
  %6171 = load i32, ptr %257, align 4, !tbaa !5
  %6172 = call ptr @__errno_location() #12
  store i32 %6171, ptr %6172, align 4, !tbaa !5
  %6173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6174 = load i32, ptr @test_count, align 4, !tbaa !5
  %6175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6176 = load i32, ptr %6175, align 4, !tbaa !5
  %6177 = call ptr @s2n_strerror(i32 noundef %6176, ptr noundef @.str.4)
  %6178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6179 = load i32, ptr %6178, align 4, !tbaa !5
  %6180 = call ptr @s2n_strerror_debug(i32 noundef %6179, ptr noundef @.str.4)
  %6181 = call ptr @__errno_location() #12
  %6182 = load i32, ptr %6181, align 4, !tbaa !5
  %6183 = call ptr @strerror(i32 noundef %6182) #11
  %6184 = call ptr @__errno_location() #12
  %6185 = load i32, ptr %6184, align 4, !tbaa !5
  %6186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6173, ptr noundef @.str.2, i32 noundef %6174, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 401, ptr noundef %6177, ptr noundef %6180, ptr noundef %6183, i32 noundef %6185) #11
  br label %6204

6187:                                             ; preds = %6165, %6158
  %6188 = load i32, ptr %257, align 4, !tbaa !5
  %6189 = call ptr @__errno_location() #12
  store i32 %6188, ptr %6189, align 4, !tbaa !5
  %6190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6191 = load i32, ptr @test_count, align 4, !tbaa !5
  %6192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6193 = load i32, ptr %6192, align 4, !tbaa !5
  %6194 = call ptr @s2n_strerror(i32 noundef %6193, ptr noundef @.str.4)
  %6195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6196 = load i32, ptr %6195, align 4, !tbaa !5
  %6197 = call ptr @s2n_strerror_debug(i32 noundef %6196, ptr noundef @.str.4)
  %6198 = call ptr @__errno_location() #12
  %6199 = load i32, ptr %6198, align 4, !tbaa !5
  %6200 = call ptr @strerror(i32 noundef %6199) #11
  %6201 = call ptr @__errno_location() #12
  %6202 = load i32, ptr %6201, align 4, !tbaa !5
  %6203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6190, ptr noundef @.str.5, i32 noundef %6191, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 401, ptr noundef %6194, ptr noundef %6197, ptr noundef %6200, i32 noundef %6202) #11
  br label %6204

6204:                                             ; preds = %6187, %6170
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #11
  br label %6205

6205:                                             ; preds = %6204
  br label %6206

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

6207:                                             ; No predecessors!
  br label %6208

6208:                                             ; preds = %6207
  br label %6209

6209:                                             ; preds = %6208, %6149
  br label %6210

6210:                                             ; preds = %6209
  br label %6211

6211:                                             ; preds = %6210
  br label %6212

6212:                                             ; preds = %6211
  %6213 = load i32, ptr @test_count, align 4, !tbaa !5
  %6214 = add nsw i32 %6213, 1
  store i32 %6214, ptr @test_count, align 4, !tbaa !5
  %6215 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %229, i32 0, i32 0
  %6216 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %6215, i32 0, i32 3
  %6217 = load i64, ptr %6216, align 8, !tbaa !70
  %6218 = load i64, ptr %253, align 8, !tbaa !54
  %6219 = add i64 %6218, 2
  %6220 = icmp eq i64 %6217, %6219
  br i1 %6220, label %6274, label %6221

6221:                                             ; preds = %6212
  br label %6222

6222:                                             ; preds = %6221
  br label %6223

6223:                                             ; preds = %6222
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #11
  %6224 = call ptr @__errno_location() #12
  %6225 = load i32, ptr %6224, align 4, !tbaa !5
  store i32 %6225, ptr %258, align 4, !tbaa !5
  %6226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6227 = call i32 @s2n_print_stacktrace(ptr noundef %6226)
  %6228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6229 = trunc i8 %6228 to i1
  br i1 %6229, label %6230, label %6252

6230:                                             ; preds = %6223
  %6231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6232 = call i32 @fileno(ptr noundef %6231) #11
  %6233 = call i32 @isatty(i32 noundef %6232) #11
  %6234 = icmp ne i32 %6233, 0
  br i1 %6234, label %6235, label %6252

6235:                                             ; preds = %6230
  %6236 = load i32, ptr %258, align 4, !tbaa !5
  %6237 = call ptr @__errno_location() #12
  store i32 %6236, ptr %6237, align 4, !tbaa !5
  %6238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6239 = load i32, ptr @test_count, align 4, !tbaa !5
  %6240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6241 = load i32, ptr %6240, align 4, !tbaa !5
  %6242 = call ptr @s2n_strerror(i32 noundef %6241, ptr noundef @.str.4)
  %6243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6244 = load i32, ptr %6243, align 4, !tbaa !5
  %6245 = call ptr @s2n_strerror_debug(i32 noundef %6244, ptr noundef @.str.4)
  %6246 = call ptr @__errno_location() #12
  %6247 = load i32, ptr %6246, align 4, !tbaa !5
  %6248 = call ptr @strerror(i32 noundef %6247) #11
  %6249 = call ptr @__errno_location() #12
  %6250 = load i32, ptr %6249, align 4, !tbaa !5
  %6251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6238, ptr noundef @.str.2, i32 noundef %6239, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 402, ptr noundef %6242, ptr noundef %6245, ptr noundef %6248, i32 noundef %6250) #11
  br label %6269

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

6269:                                             ; preds = %6252, %6235
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #11
  br label %6270

6270:                                             ; preds = %6269
  br label %6271

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

6272:                                             ; No predecessors!
  br label %6273

6273:                                             ; preds = %6272
  br label %6274

6274:                                             ; preds = %6273, %6212
  br label %6275

6275:                                             ; preds = %6274
  br label %6276

6276:                                             ; preds = %6275
  call void @llvm.lifetime.end.p0(i64 8, ptr %253) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %249) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %246) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %241) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %240) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %239) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %236) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %235) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %234) #11
  call void @llvm.lifetime.end.p0(i64 16384, ptr %233) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %232) #11
  %6277 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef %229)
  %6278 = getelementptr inbounds %struct.s2n_result, ptr %259, i32 0, i32 0
  store i32 %6277, ptr %6278, align 4
  call void @llvm.lifetime.end.p0(i64 192, ptr %229) #11
  %6279 = call i32 @s2n_connection_ptr_free(ptr noundef %228)
  %6280 = getelementptr inbounds %struct.s2n_result, ptr %260, i32 0, i32 0
  store i32 %6279, ptr %6280, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %228) #11
  %6281 = call i32 @s2n_connection_ptr_free(ptr noundef %227)
  %6282 = getelementptr inbounds %struct.s2n_result, ptr %261, i32 0, i32 0
  store i32 %6281, ptr %6282, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %227) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %262) #11
  %6283 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6283, ptr %262, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %263) #11
  %6284 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6284, ptr %263, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr %264) #11
  call void @llvm.memset.p0.i64(ptr align 8 %264, i8 0, i64 192, i1 false)
  br label %6285

6285:                                             ; preds = %6276
  %6286 = load i32, ptr @test_count, align 4, !tbaa !5
  %6287 = add nsw i32 %6286, 1
  store i32 %6287, ptr @test_count, align 4, !tbaa !5
  %6288 = load ptr, ptr %262, align 8, !tbaa !9
  %6289 = load ptr, ptr %263, align 8, !tbaa !9
  %6290 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %6288, ptr noundef %6289, ptr noundef %264)
  %6291 = getelementptr inbounds %struct.s2n_result, ptr %265, i32 0, i32 0
  store i32 %6290, ptr %6291, align 4
  %6292 = getelementptr inbounds %struct.s2n_result, ptr %265, i32 0, i32 0
  %6293 = load i32, ptr %6292, align 4
  %6294 = call zeroext i1 @s2n_result_is_ok(i32 %6293)
  br i1 %6294, label %6348, label %6295

6295:                                             ; preds = %6285
  br label %6296

6296:                                             ; preds = %6295
  br label %6297

6297:                                             ; preds = %6296
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #11
  %6298 = call ptr @__errno_location() #12
  %6299 = load i32, ptr %6298, align 4, !tbaa !5
  store i32 %6299, ptr %266, align 4, !tbaa !5
  %6300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6301 = call i32 @s2n_print_stacktrace(ptr noundef %6300)
  %6302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6303 = trunc i8 %6302 to i1
  br i1 %6303, label %6304, label %6326

6304:                                             ; preds = %6297
  %6305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6306 = call i32 @fileno(ptr noundef %6305) #11
  %6307 = call i32 @isatty(i32 noundef %6306) #11
  %6308 = icmp ne i32 %6307, 0
  br i1 %6308, label %6309, label %6326

6309:                                             ; preds = %6304
  %6310 = load i32, ptr %266, align 4, !tbaa !5
  %6311 = call ptr @__errno_location() #12
  store i32 %6310, ptr %6311, align 4, !tbaa !5
  %6312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6313 = load i32, ptr @test_count, align 4, !tbaa !5
  %6314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6315 = load i32, ptr %6314, align 4, !tbaa !5
  %6316 = call ptr @s2n_strerror(i32 noundef %6315, ptr noundef @.str.4)
  %6317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6318 = load i32, ptr %6317, align 4, !tbaa !5
  %6319 = call ptr @s2n_strerror_debug(i32 noundef %6318, ptr noundef @.str.4)
  %6320 = call ptr @__errno_location() #12
  %6321 = load i32, ptr %6320, align 4, !tbaa !5
  %6322 = call ptr @strerror(i32 noundef %6321) #11
  %6323 = call ptr @__errno_location() #12
  %6324 = load i32, ptr %6323, align 4, !tbaa !5
  %6325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6312, ptr noundef @.str.2, i32 noundef %6313, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 413, ptr noundef %6316, ptr noundef %6319, ptr noundef %6322, i32 noundef %6324) #11
  br label %6343

6326:                                             ; preds = %6304, %6297
  %6327 = load i32, ptr %266, align 4, !tbaa !5
  %6328 = call ptr @__errno_location() #12
  store i32 %6327, ptr %6328, align 4, !tbaa !5
  %6329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6330 = load i32, ptr @test_count, align 4, !tbaa !5
  %6331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6332 = load i32, ptr %6331, align 4, !tbaa !5
  %6333 = call ptr @s2n_strerror(i32 noundef %6332, ptr noundef @.str.4)
  %6334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6335 = load i32, ptr %6334, align 4, !tbaa !5
  %6336 = call ptr @s2n_strerror_debug(i32 noundef %6335, ptr noundef @.str.4)
  %6337 = call ptr @__errno_location() #12
  %6338 = load i32, ptr %6337, align 4, !tbaa !5
  %6339 = call ptr @strerror(i32 noundef %6338) #11
  %6340 = call ptr @__errno_location() #12
  %6341 = load i32, ptr %6340, align 4, !tbaa !5
  %6342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6329, ptr noundef @.str.5, i32 noundef %6330, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 413, ptr noundef %6333, ptr noundef %6336, ptr noundef %6339, i32 noundef %6341) #11
  br label %6343

6343:                                             ; preds = %6326, %6309
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #11
  br label %6344

6344:                                             ; preds = %6343
  br label %6345

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

6346:                                             ; No predecessors!
  br label %6347

6347:                                             ; preds = %6346
  br label %6348

6348:                                             ; preds = %6347, %6285
  br label %6349

6349:                                             ; preds = %6348
  br label %6350

6350:                                             ; preds = %6349
  call void @llvm.lifetime.start.p0(i64 8, ptr %267) #11
  store i64 10, ptr %267, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 8, ptr %268) #11
  store i64 3, ptr %268, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 8, ptr %269) #11
  %6351 = load i64, ptr %267, align 8, !tbaa !54
  %6352 = load i64, ptr %268, align 8, !tbaa !54
  %6353 = sub i64 %6351, %6352
  store i64 %6353, ptr %269, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 16, ptr %270) #11
  %6354 = getelementptr inbounds %struct.iovec, ptr %270, i32 0, i32 0
  %6355 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  store ptr %6355, ptr %6354, align 8, !tbaa !16
  %6356 = getelementptr inbounds %struct.iovec, ptr %270, i32 0, i32 1
  %6357 = load i64, ptr %267, align 8, !tbaa !54
  store i64 %6357, ptr %6356, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 56, ptr %271) #11
  %6358 = getelementptr inbounds %struct.msghdr, ptr %271, i32 0, i32 0
  store ptr null, ptr %6358, align 8, !tbaa !20
  %6359 = getelementptr inbounds %struct.msghdr, ptr %271, i32 0, i32 1
  store i32 0, ptr %6359, align 8, !tbaa !22
  %6360 = getelementptr inbounds %struct.msghdr, ptr %271, i32 0, i32 2
  store ptr %270, ptr %6360, align 8, !tbaa !23
  %6361 = getelementptr inbounds %struct.msghdr, ptr %271, i32 0, i32 3
  store i64 1, ptr %6361, align 8, !tbaa !24
  %6362 = getelementptr inbounds %struct.msghdr, ptr %271, i32 0, i32 4
  store ptr null, ptr %6362, align 8, !tbaa !25
  %6363 = getelementptr inbounds %struct.msghdr, ptr %271, i32 0, i32 5
  store i64 0, ptr %6363, align 8, !tbaa !26
  %6364 = getelementptr inbounds %struct.msghdr, ptr %271, i32 0, i32 6
  store i32 0, ptr %6364, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 100, ptr %272) #11
  call void @llvm.memset.p0.i64(ptr align 16 %272, i8 0, i64 100, i1 false)
  br label %6365

6365:                                             ; preds = %6350
  %6366 = load i32, ptr @test_count, align 4, !tbaa !5
  %6367 = add nsw i32 %6366, 1
  store i32 %6367, ptr @test_count, align 4, !tbaa !5
  %6368 = getelementptr inbounds [100 x i8], ptr %272, i64 0, i64 0
  %6369 = call i32 @s2n_ktls_set_control_data(ptr noundef %271, ptr noundef %6368, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43)
  %6370 = getelementptr inbounds %struct.s2n_result, ptr %273, i32 0, i32 0
  store i32 %6369, ptr %6370, align 4
  %6371 = getelementptr inbounds %struct.s2n_result, ptr %273, i32 0, i32 0
  %6372 = load i32, ptr %6371, align 4
  %6373 = call zeroext i1 @s2n_result_is_ok(i32 %6372)
  br i1 %6373, label %6427, label %6374

6374:                                             ; preds = %6365
  br label %6375

6375:                                             ; preds = %6374
  br label %6376

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

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

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

6405:                                             ; preds = %6383, %6376
  %6406 = load i32, ptr %274, align 4, !tbaa !5
  %6407 = call ptr @__errno_location() #12
  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() #12
  %6417 = load i32, ptr %6416, align 4, !tbaa !5
  %6418 = call ptr @strerror(i32 noundef %6417) #11
  %6419 = call ptr @__errno_location() #12
  %6420 = load i32, ptr %6419, align 4, !tbaa !5
  %6421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6408, ptr noundef @.str.5, i32 noundef %6409, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 423, ptr noundef %6412, ptr noundef %6415, ptr noundef %6418, i32 noundef %6420) #11
  br label %6422

6422:                                             ; preds = %6405, %6388
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #11
  br label %6423

6423:                                             ; preds = %6422
  br label %6424

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

6425:                                             ; No predecessors!
  br label %6426

6426:                                             ; preds = %6425
  br label %6427

6427:                                             ; preds = %6426, %6365
  br label %6428

6428:                                             ; preds = %6427
  br label %6429

6429:                                             ; preds = %6428
  call void @llvm.lifetime.start.p0(i64 8, ptr %275) #11
  %6430 = load ptr, ptr %262, align 8, !tbaa !9
  %6431 = getelementptr inbounds %struct.s2n_connection, ptr %6430, i32 0, i32 8
  %6432 = load ptr, ptr %6431, align 8, !tbaa !28
  %6433 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %6432, ptr noundef %271)
  store i64 %6433, ptr %275, align 8, !tbaa !54
  br label %6434

6434:                                             ; preds = %6429
  %6435 = load i32, ptr @test_count, align 4, !tbaa !5
  %6436 = add nsw i32 %6435, 1
  store i32 %6436, ptr @test_count, align 4, !tbaa !5
  %6437 = load i64, ptr %275, align 8, !tbaa !54
  %6438 = load i64, ptr %267, align 8, !tbaa !54
  %6439 = icmp eq i64 %6437, %6438
  br i1 %6439, label %6493, label %6440

6440:                                             ; preds = %6434
  br label %6441

6441:                                             ; preds = %6440
  br label %6442

6442:                                             ; preds = %6441
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #11
  %6443 = call ptr @__errno_location() #12
  %6444 = load i32, ptr %6443, align 4, !tbaa !5
  store i32 %6444, ptr %276, align 4, !tbaa !5
  %6445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6446 = call i32 @s2n_print_stacktrace(ptr noundef %6445)
  %6447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6448 = trunc i8 %6447 to i1
  br i1 %6448, label %6449, label %6471

6449:                                             ; preds = %6442
  %6450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6451 = call i32 @fileno(ptr noundef %6450) #11
  %6452 = call i32 @isatty(i32 noundef %6451) #11
  %6453 = icmp ne i32 %6452, 0
  br i1 %6453, label %6454, label %6471

6454:                                             ; preds = %6449
  %6455 = load i32, ptr %276, align 4, !tbaa !5
  %6456 = call ptr @__errno_location() #12
  store i32 %6455, ptr %6456, align 4, !tbaa !5
  %6457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6458 = load i32, ptr @test_count, align 4, !tbaa !5
  %6459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6460 = load i32, ptr %6459, align 4, !tbaa !5
  %6461 = call ptr @s2n_strerror(i32 noundef %6460, ptr noundef @.str.4)
  %6462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6463 = load i32, ptr %6462, align 4, !tbaa !5
  %6464 = call ptr @s2n_strerror_debug(i32 noundef %6463, ptr noundef @.str.4)
  %6465 = call ptr @__errno_location() #12
  %6466 = load i32, ptr %6465, align 4, !tbaa !5
  %6467 = call ptr @strerror(i32 noundef %6466) #11
  %6468 = call ptr @__errno_location() #12
  %6469 = load i32, ptr %6468, align 4, !tbaa !5
  %6470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6457, ptr noundef @.str.2, i32 noundef %6458, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 425, ptr noundef %6461, ptr noundef %6464, ptr noundef %6467, i32 noundef %6469) #11
  br label %6488

6471:                                             ; preds = %6449, %6442
  %6472 = load i32, ptr %276, align 4, !tbaa !5
  %6473 = call ptr @__errno_location() #12
  store i32 %6472, ptr %6473, align 4, !tbaa !5
  %6474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6475 = load i32, ptr @test_count, align 4, !tbaa !5
  %6476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6477 = load i32, ptr %6476, align 4, !tbaa !5
  %6478 = call ptr @s2n_strerror(i32 noundef %6477, ptr noundef @.str.4)
  %6479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6480 = load i32, ptr %6479, align 4, !tbaa !5
  %6481 = call ptr @s2n_strerror_debug(i32 noundef %6480, ptr noundef @.str.4)
  %6482 = call ptr @__errno_location() #12
  %6483 = load i32, ptr %6482, align 4, !tbaa !5
  %6484 = call ptr @strerror(i32 noundef %6483) #11
  %6485 = call ptr @__errno_location() #12
  %6486 = load i32, ptr %6485, align 4, !tbaa !5
  %6487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6474, ptr noundef @.str.5, i32 noundef %6475, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 425, ptr noundef %6478, ptr noundef %6481, ptr noundef %6484, i32 noundef %6486) #11
  br label %6488

6488:                                             ; preds = %6471, %6454
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #11
  br label %6489

6489:                                             ; preds = %6488
  br label %6490

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

6491:                                             ; No predecessors!
  br label %6492

6492:                                             ; preds = %6491
  br label %6493

6493:                                             ; preds = %6492, %6434
  br label %6494

6494:                                             ; preds = %6493
  br label %6495

6495:                                             ; preds = %6494
  call void @llvm.lifetime.start.p0(i64 16384, ptr %277) #11
  call void @llvm.memset.p0.i64(ptr align 16 %277, i8 0, i64 16384, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr %278) #11
  call void @llvm.memset.p0.i64(ptr align 16 %278, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %279) #11
  %6496 = getelementptr inbounds %struct.iovec, ptr %279, i32 0, i32 0
  %6497 = getelementptr inbounds [16384 x i8], ptr %277, i64 0, i64 0
  store ptr %6497, ptr %6496, align 8, !tbaa !16
  %6498 = getelementptr inbounds %struct.iovec, ptr %279, i32 0, i32 1
  %6499 = load i64, ptr %268, align 8, !tbaa !54
  store i64 %6499, ptr %6498, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 56, ptr %280) #11
  %6500 = getelementptr inbounds %struct.msghdr, ptr %280, i32 0, i32 0
  store ptr null, ptr %6500, align 8, !tbaa !20
  %6501 = getelementptr inbounds %struct.msghdr, ptr %280, i32 0, i32 1
  store i32 0, ptr %6501, align 8, !tbaa !22
  %6502 = getelementptr inbounds %struct.msghdr, ptr %280, i32 0, i32 2
  store ptr %279, ptr %6502, align 8, !tbaa !23
  %6503 = getelementptr inbounds %struct.msghdr, ptr %280, i32 0, i32 3
  store i64 1, ptr %6503, align 8, !tbaa !24
  %6504 = getelementptr inbounds %struct.msghdr, ptr %280, i32 0, i32 4
  %6505 = getelementptr inbounds [100 x i8], ptr %278, i64 0, i64 0
  store ptr %6505, ptr %6504, align 8, !tbaa !25
  %6506 = getelementptr inbounds %struct.msghdr, ptr %280, i32 0, i32 5
  store i64 100, ptr %6506, align 8, !tbaa !26
  %6507 = getelementptr inbounds %struct.msghdr, ptr %280, i32 0, i32 6
  store i32 0, ptr %6507, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr %281) #11
  %6508 = load ptr, ptr %263, align 8, !tbaa !9
  %6509 = getelementptr inbounds %struct.s2n_connection, ptr %6508, i32 0, i32 9
  %6510 = load ptr, ptr %6509, align 8, !tbaa !69
  %6511 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %6510, ptr noundef %280)
  store i64 %6511, ptr %281, align 8, !tbaa !54
  br label %6512

6512:                                             ; preds = %6495
  %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 i64, ptr %281, align 8, !tbaa !54
  %6516 = load i64, ptr %268, align 8, !tbaa !54
  %6517 = icmp eq i64 %6515, %6516
  br i1 %6517, label %6571, label %6518

6518:                                             ; preds = %6512
  br label %6519

6519:                                             ; preds = %6518
  br label %6520

6520:                                             ; preds = %6519
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #11
  %6521 = call ptr @__errno_location() #12
  %6522 = load i32, ptr %6521, align 4, !tbaa !5
  store i32 %6522, ptr %282, align 4, !tbaa !5
  %6523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6524 = call i32 @s2n_print_stacktrace(ptr noundef %6523)
  %6525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6526 = trunc i8 %6525 to i1
  br i1 %6526, label %6527, label %6549

6527:                                             ; preds = %6520
  %6528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6529 = call i32 @fileno(ptr noundef %6528) #11
  %6530 = call i32 @isatty(i32 noundef %6529) #11
  %6531 = icmp ne i32 %6530, 0
  br i1 %6531, label %6532, label %6549

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

6549:                                             ; preds = %6527, %6520
  %6550 = load i32, ptr %282, align 4, !tbaa !5
  %6551 = call ptr @__errno_location() #12
  store i32 %6550, ptr %6551, 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 @.str.4)
  %6557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6558 = load i32, ptr %6557, align 4, !tbaa !5
  %6559 = call ptr @s2n_strerror_debug(i32 noundef %6558, ptr noundef @.str.4)
  %6560 = call ptr @__errno_location() #12
  %6561 = load i32, ptr %6560, align 4, !tbaa !5
  %6562 = call ptr @strerror(i32 noundef %6561) #11
  %6563 = call ptr @__errno_location() #12
  %6564 = load i32, ptr %6563, align 4, !tbaa !5
  %6565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6552, ptr noundef @.str.5, i32 noundef %6553, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 437, ptr noundef %6556, ptr noundef %6559, ptr noundef %6562, i32 noundef %6564) #11
  br label %6566

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

6567:                                             ; preds = %6566
  br label %6568

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

6569:                                             ; No predecessors!
  br label %6570

6570:                                             ; preds = %6569
  br label %6571

6571:                                             ; preds = %6570, %6512
  br label %6572

6572:                                             ; preds = %6571
  br label %6573

6573:                                             ; preds = %6572
  br label %6574

6574:                                             ; preds = %6573
  %6575 = load i64, ptr %268, align 8, !tbaa !54
  %6576 = icmp ne i64 %6575, 0
  br i1 %6576, label %6577, label %6642

6577:                                             ; preds = %6574
  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 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %6582 = getelementptr inbounds [16384 x i8], ptr %277, i64 0, i64 0
  %6583 = load i64, ptr %268, align 8, !tbaa !54
  %6584 = call i32 @memcmp(ptr noundef %6581, ptr noundef %6582, i64 noundef %6583) #14
  %6585 = icmp eq i32 %6584, 0
  br i1 %6585, label %6639, label %6586

6586:                                             ; preds = %6578
  br label %6587

6587:                                             ; preds = %6586
  br label %6588

6588:                                             ; preds = %6587
  call void @llvm.lifetime.start.p0(i64 4, ptr %283) #11
  %6589 = call ptr @__errno_location() #12
  %6590 = load i32, ptr %6589, align 4, !tbaa !5
  store i32 %6590, ptr %283, align 4, !tbaa !5
  %6591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6592 = call i32 @s2n_print_stacktrace(ptr noundef %6591)
  %6593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6594 = trunc i8 %6593 to i1
  br i1 %6594, label %6595, label %6617

6595:                                             ; preds = %6588
  %6596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6597 = call i32 @fileno(ptr noundef %6596) #11
  %6598 = call i32 @isatty(i32 noundef %6597) #11
  %6599 = icmp ne i32 %6598, 0
  br i1 %6599, label %6600, label %6617

6600:                                             ; preds = %6595
  %6601 = load i32, ptr %283, align 4, !tbaa !5
  %6602 = call ptr @__errno_location() #12
  store i32 %6601, ptr %6602, align 4, !tbaa !5
  %6603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6604 = load i32, ptr @test_count, align 4, !tbaa !5
  %6605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6606 = load i32, ptr %6605, align 4, !tbaa !5
  %6607 = call ptr @s2n_strerror(i32 noundef %6606, ptr noundef @.str.4)
  %6608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6609 = load i32, ptr %6608, align 4, !tbaa !5
  %6610 = call ptr @s2n_strerror_debug(i32 noundef %6609, ptr noundef @.str.4)
  %6611 = call ptr @__errno_location() #12
  %6612 = load i32, ptr %6611, align 4, !tbaa !5
  %6613 = call ptr @strerror(i32 noundef %6612) #11
  %6614 = call ptr @__errno_location() #12
  %6615 = load i32, ptr %6614, align 4, !tbaa !5
  %6616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6603, ptr noundef @.str.2, i32 noundef %6604, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 439, ptr noundef %6607, ptr noundef %6610, ptr noundef %6613, i32 noundef %6615) #11
  br label %6634

6617:                                             ; preds = %6595, %6588
  %6618 = load i32, ptr %283, align 4, !tbaa !5
  %6619 = call ptr @__errno_location() #12
  store i32 %6618, ptr %6619, align 4, !tbaa !5
  %6620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6621 = load i32, ptr @test_count, align 4, !tbaa !5
  %6622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6623 = load i32, ptr %6622, align 4, !tbaa !5
  %6624 = call ptr @s2n_strerror(i32 noundef %6623, ptr noundef @.str.4)
  %6625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6626 = load i32, ptr %6625, align 4, !tbaa !5
  %6627 = call ptr @s2n_strerror_debug(i32 noundef %6626, ptr noundef @.str.4)
  %6628 = call ptr @__errno_location() #12
  %6629 = load i32, ptr %6628, align 4, !tbaa !5
  %6630 = call ptr @strerror(i32 noundef %6629) #11
  %6631 = call ptr @__errno_location() #12
  %6632 = load i32, ptr %6631, align 4, !tbaa !5
  %6633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6620, ptr noundef @.str.5, i32 noundef %6621, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 439, ptr noundef %6624, ptr noundef %6627, ptr noundef %6630, i32 noundef %6632) #11
  br label %6634

6634:                                             ; preds = %6617, %6600
  call void @llvm.lifetime.end.p0(i64 4, ptr %283) #11
  br label %6635

6635:                                             ; preds = %6634
  br label %6636

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

6637:                                             ; No predecessors!
  br label %6638

6638:                                             ; preds = %6637
  br label %6639

6639:                                             ; preds = %6638, %6578
  br label %6640

6640:                                             ; preds = %6639
  br label %6641

6641:                                             ; preds = %6640
  br label %6642

6642:                                             ; preds = %6641, %6574
  br label %6643

6643:                                             ; preds = %6642
  br label %6644

6644:                                             ; preds = %6643
  call void @llvm.lifetime.start.p0(i64 1, ptr %284) #11
  store i8 0, ptr %284, align 1, !tbaa !15
  br label %6645

6645:                                             ; preds = %6644
  %6646 = load i32, ptr @test_count, align 4, !tbaa !5
  %6647 = add nsw i32 %6646, 1
  store i32 %6647, ptr @test_count, align 4, !tbaa !5
  %6648 = call i32 @s2n_ktls_get_control_data(ptr noundef %280, i32 noundef 0, ptr noundef %284)
  %6649 = getelementptr inbounds %struct.s2n_result, ptr %285, i32 0, i32 0
  store i32 %6648, ptr %6649, align 4
  %6650 = getelementptr inbounds %struct.s2n_result, ptr %285, i32 0, i32 0
  %6651 = load i32, ptr %6650, align 4
  %6652 = call zeroext i1 @s2n_result_is_ok(i32 %6651)
  br i1 %6652, label %6706, label %6653

6653:                                             ; preds = %6645
  br label %6654

6654:                                             ; preds = %6653
  br label %6655

6655:                                             ; preds = %6654
  call void @llvm.lifetime.start.p0(i64 4, ptr %286) #11
  %6656 = call ptr @__errno_location() #12
  %6657 = load i32, ptr %6656, align 4, !tbaa !5
  store i32 %6657, ptr %286, align 4, !tbaa !5
  %6658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6659 = call i32 @s2n_print_stacktrace(ptr noundef %6658)
  %6660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6661 = trunc i8 %6660 to i1
  br i1 %6661, label %6662, label %6684

6662:                                             ; preds = %6655
  %6663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6664 = call i32 @fileno(ptr noundef %6663) #11
  %6665 = call i32 @isatty(i32 noundef %6664) #11
  %6666 = icmp ne i32 %6665, 0
  br i1 %6666, label %6667, label %6684

6667:                                             ; preds = %6662
  %6668 = load i32, ptr %286, align 4, !tbaa !5
  %6669 = call ptr @__errno_location() #12
  store i32 %6668, ptr %6669, align 4, !tbaa !5
  %6670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6671 = load i32, ptr @test_count, align 4, !tbaa !5
  %6672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6673 = load i32, ptr %6672, align 4, !tbaa !5
  %6674 = call ptr @s2n_strerror(i32 noundef %6673, ptr noundef @.str.4)
  %6675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6676 = load i32, ptr %6675, align 4, !tbaa !5
  %6677 = call ptr @s2n_strerror_debug(i32 noundef %6676, ptr noundef @.str.4)
  %6678 = call ptr @__errno_location() #12
  %6679 = load i32, ptr %6678, align 4, !tbaa !5
  %6680 = call ptr @strerror(i32 noundef %6679) #11
  %6681 = call ptr @__errno_location() #12
  %6682 = load i32, ptr %6681, align 4, !tbaa !5
  %6683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6670, ptr noundef @.str.2, i32 noundef %6671, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 441, ptr noundef %6674, ptr noundef %6677, ptr noundef %6680, i32 noundef %6682) #11
  br label %6701

6684:                                             ; preds = %6662, %6655
  %6685 = load i32, ptr %286, align 4, !tbaa !5
  %6686 = call ptr @__errno_location() #12
  store i32 %6685, ptr %6686, align 4, !tbaa !5
  %6687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6688 = load i32, ptr @test_count, align 4, !tbaa !5
  %6689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6690 = load i32, ptr %6689, align 4, !tbaa !5
  %6691 = call ptr @s2n_strerror(i32 noundef %6690, ptr noundef @.str.4)
  %6692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6693 = load i32, ptr %6692, align 4, !tbaa !5
  %6694 = call ptr @s2n_strerror_debug(i32 noundef %6693, ptr noundef @.str.4)
  %6695 = call ptr @__errno_location() #12
  %6696 = load i32, ptr %6695, align 4, !tbaa !5
  %6697 = call ptr @strerror(i32 noundef %6696) #11
  %6698 = call ptr @__errno_location() #12
  %6699 = load i32, ptr %6698, align 4, !tbaa !5
  %6700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6687, ptr noundef @.str.5, i32 noundef %6688, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 441, ptr noundef %6691, ptr noundef %6694, ptr noundef %6697, i32 noundef %6699) #11
  br label %6701

6701:                                             ; preds = %6684, %6667
  call void @llvm.lifetime.end.p0(i64 4, ptr %286) #11
  br label %6702

6702:                                             ; preds = %6701
  br label %6703

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

6704:                                             ; No predecessors!
  br label %6705

6705:                                             ; preds = %6704
  br label %6706

6706:                                             ; preds = %6705, %6645
  br label %6707

6707:                                             ; preds = %6706
  br label %6708

6708:                                             ; preds = %6707
  br label %6709

6709:                                             ; preds = %6708
  %6710 = load i32, ptr @test_count, align 4, !tbaa !5
  %6711 = add nsw i32 %6710, 1
  store i32 %6711, ptr @test_count, align 4, !tbaa !5
  %6712 = load i8, ptr %284, align 1, !tbaa !15
  %6713 = zext i8 %6712 to i32
  %6714 = icmp eq i32 %6713, 43
  br i1 %6714, label %6768, label %6715

6715:                                             ; preds = %6709
  br label %6716

6716:                                             ; preds = %6715
  br label %6717

6717:                                             ; preds = %6716
  call void @llvm.lifetime.start.p0(i64 4, ptr %287) #11
  %6718 = call ptr @__errno_location() #12
  %6719 = load i32, ptr %6718, align 4, !tbaa !5
  store i32 %6719, ptr %287, align 4, !tbaa !5
  %6720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6721 = call i32 @s2n_print_stacktrace(ptr noundef %6720)
  %6722 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6723 = trunc i8 %6722 to i1
  br i1 %6723, label %6724, label %6746

6724:                                             ; preds = %6717
  %6725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6726 = call i32 @fileno(ptr noundef %6725) #11
  %6727 = call i32 @isatty(i32 noundef %6726) #11
  %6728 = icmp ne i32 %6727, 0
  br i1 %6728, label %6729, label %6746

6729:                                             ; preds = %6724
  %6730 = load i32, ptr %287, align 4, !tbaa !5
  %6731 = call ptr @__errno_location() #12
  store i32 %6730, ptr %6731, align 4, !tbaa !5
  %6732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6733 = load i32, ptr @test_count, align 4, !tbaa !5
  %6734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6735 = load i32, ptr %6734, align 4, !tbaa !5
  %6736 = call ptr @s2n_strerror(i32 noundef %6735, ptr noundef @.str.4)
  %6737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6738 = load i32, ptr %6737, align 4, !tbaa !5
  %6739 = call ptr @s2n_strerror_debug(i32 noundef %6738, ptr noundef @.str.4)
  %6740 = call ptr @__errno_location() #12
  %6741 = load i32, ptr %6740, align 4, !tbaa !5
  %6742 = call ptr @strerror(i32 noundef %6741) #11
  %6743 = call ptr @__errno_location() #12
  %6744 = load i32, ptr %6743, align 4, !tbaa !5
  %6745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6732, ptr noundef @.str.2, i32 noundef %6733, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 442, ptr noundef %6736, ptr noundef %6739, ptr noundef %6742, i32 noundef %6744) #11
  br label %6763

6746:                                             ; preds = %6724, %6717
  %6747 = load i32, ptr %287, align 4, !tbaa !5
  %6748 = call ptr @__errno_location() #12
  store i32 %6747, ptr %6748, align 4, !tbaa !5
  %6749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6750 = load i32, ptr @test_count, align 4, !tbaa !5
  %6751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6752 = load i32, ptr %6751, align 4, !tbaa !5
  %6753 = call ptr @s2n_strerror(i32 noundef %6752, ptr noundef @.str.4)
  %6754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6755 = load i32, ptr %6754, align 4, !tbaa !5
  %6756 = call ptr @s2n_strerror_debug(i32 noundef %6755, ptr noundef @.str.4)
  %6757 = call ptr @__errno_location() #12
  %6758 = load i32, ptr %6757, align 4, !tbaa !5
  %6759 = call ptr @strerror(i32 noundef %6758) #11
  %6760 = call ptr @__errno_location() #12
  %6761 = load i32, ptr %6760, align 4, !tbaa !5
  %6762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6749, ptr noundef @.str.5, i32 noundef %6750, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 442, ptr noundef %6753, ptr noundef %6756, ptr noundef %6759, i32 noundef %6761) #11
  br label %6763

6763:                                             ; preds = %6746, %6729
  call void @llvm.lifetime.end.p0(i64 4, ptr %287) #11
  br label %6764

6764:                                             ; preds = %6763
  br label %6765

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

6766:                                             ; No predecessors!
  br label %6767

6767:                                             ; preds = %6766
  br label %6768

6768:                                             ; preds = %6767, %6709
  br label %6769

6769:                                             ; preds = %6768
  br label %6770

6770:                                             ; preds = %6769
  br label %6771

6771:                                             ; preds = %6770
  %6772 = load i32, ptr @test_count, align 4, !tbaa !5
  %6773 = add nsw i32 %6772, 1
  store i32 %6773, ptr @test_count, align 4, !tbaa !5
  %6774 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %264, i32 0, i32 0
  %6775 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %6774, i32 0, i32 0
  %6776 = getelementptr inbounds %struct.s2n_stuffer, ptr %6775, i32 0, i32 2
  %6777 = load i32, ptr %6776, align 4, !tbaa !59
  %6778 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %264, i32 0, i32 0
  %6779 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %6778, i32 0, i32 0
  %6780 = getelementptr inbounds %struct.s2n_stuffer, ptr %6779, i32 0, i32 1
  %6781 = load i32, ptr %6780, align 8, !tbaa !60
  %6782 = sub i32 %6777, %6781
  %6783 = icmp eq i32 %6782, 3
  br i1 %6783, label %6837, label %6784

6784:                                             ; preds = %6771
  br label %6785

6785:                                             ; preds = %6784
  br label %6786

6786:                                             ; preds = %6785
  call void @llvm.lifetime.start.p0(i64 4, ptr %288) #11
  %6787 = call ptr @__errno_location() #12
  %6788 = load i32, ptr %6787, align 4, !tbaa !5
  store i32 %6788, ptr %288, align 4, !tbaa !5
  %6789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6790 = call i32 @s2n_print_stacktrace(ptr noundef %6789)
  %6791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6792 = trunc i8 %6791 to i1
  br i1 %6792, label %6793, label %6815

6793:                                             ; preds = %6786
  %6794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6795 = call i32 @fileno(ptr noundef %6794) #11
  %6796 = call i32 @isatty(i32 noundef %6795) #11
  %6797 = icmp ne i32 %6796, 0
  br i1 %6797, label %6798, label %6815

6798:                                             ; preds = %6793
  %6799 = load i32, ptr %288, align 4, !tbaa !5
  %6800 = call ptr @__errno_location() #12
  store i32 %6799, ptr %6800, align 4, !tbaa !5
  %6801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6802 = load i32, ptr @test_count, align 4, !tbaa !5
  %6803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6804 = load i32, ptr %6803, align 4, !tbaa !5
  %6805 = call ptr @s2n_strerror(i32 noundef %6804, ptr noundef @.str.4)
  %6806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6807 = load i32, ptr %6806, align 4, !tbaa !5
  %6808 = call ptr @s2n_strerror_debug(i32 noundef %6807, ptr noundef @.str.4)
  %6809 = call ptr @__errno_location() #12
  %6810 = load i32, ptr %6809, align 4, !tbaa !5
  %6811 = call ptr @strerror(i32 noundef %6810) #11
  %6812 = call ptr @__errno_location() #12
  %6813 = load i32, ptr %6812, align 4, !tbaa !5
  %6814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6801, ptr noundef @.str.2, i32 noundef %6802, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 445, ptr noundef %6805, ptr noundef %6808, ptr noundef %6811, i32 noundef %6813) #11
  br label %6832

6815:                                             ; preds = %6793, %6786
  %6816 = load i32, ptr %288, align 4, !tbaa !5
  %6817 = call ptr @__errno_location() #12
  store i32 %6816, ptr %6817, align 4, !tbaa !5
  %6818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6819 = load i32, ptr @test_count, align 4, !tbaa !5
  %6820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6821 = load i32, ptr %6820, align 4, !tbaa !5
  %6822 = call ptr @s2n_strerror(i32 noundef %6821, ptr noundef @.str.4)
  %6823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6824 = load i32, ptr %6823, align 4, !tbaa !5
  %6825 = call ptr @s2n_strerror_debug(i32 noundef %6824, ptr noundef @.str.4)
  %6826 = call ptr @__errno_location() #12
  %6827 = load i32, ptr %6826, align 4, !tbaa !5
  %6828 = call ptr @strerror(i32 noundef %6827) #11
  %6829 = call ptr @__errno_location() #12
  %6830 = load i32, ptr %6829, align 4, !tbaa !5
  %6831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6818, ptr noundef @.str.5, i32 noundef %6819, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 445, ptr noundef %6822, ptr noundef %6825, ptr noundef %6828, i32 noundef %6830) #11
  br label %6832

6832:                                             ; preds = %6815, %6798
  call void @llvm.lifetime.end.p0(i64 4, ptr %288) #11
  br label %6833

6833:                                             ; preds = %6832
  br label %6834

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

6835:                                             ; No predecessors!
  br label %6836

6836:                                             ; preds = %6835
  br label %6837

6837:                                             ; preds = %6836, %6771
  br label %6838

6838:                                             ; preds = %6837
  br label %6839

6839:                                             ; preds = %6838
  %6840 = getelementptr inbounds [16384 x i8], ptr %277, i64 0, i64 0
  %6841 = load i64, ptr %268, align 8, !tbaa !54
  %6842 = getelementptr inbounds i8, ptr %6840, i64 %6841
  %6843 = getelementptr inbounds %struct.iovec, ptr %279, i32 0, i32 0
  store ptr %6842, ptr %6843, align 8, !tbaa !16
  %6844 = load i64, ptr %269, align 8, !tbaa !54
  %6845 = getelementptr inbounds %struct.iovec, ptr %279, i32 0, i32 1
  store i64 %6844, ptr %6845, align 8, !tbaa !19
  %6846 = load ptr, ptr %263, align 8, !tbaa !9
  %6847 = getelementptr inbounds %struct.s2n_connection, ptr %6846, i32 0, i32 9
  %6848 = load ptr, ptr %6847, align 8, !tbaa !69
  %6849 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %6848, ptr noundef %280)
  store i64 %6849, ptr %281, align 8, !tbaa !54
  br label %6850

6850:                                             ; preds = %6839
  %6851 = load i32, ptr @test_count, align 4, !tbaa !5
  %6852 = add nsw i32 %6851, 1
  store i32 %6852, ptr @test_count, align 4, !tbaa !5
  %6853 = load i64, ptr %281, align 8, !tbaa !54
  %6854 = load i64, ptr %269, align 8, !tbaa !54
  %6855 = icmp eq i64 %6853, %6854
  br i1 %6855, label %6909, label %6856

6856:                                             ; preds = %6850
  br label %6857

6857:                                             ; preds = %6856
  br label %6858

6858:                                             ; preds = %6857
  call void @llvm.lifetime.start.p0(i64 4, ptr %289) #11
  %6859 = call ptr @__errno_location() #12
  %6860 = load i32, ptr %6859, align 4, !tbaa !5
  store i32 %6860, ptr %289, align 4, !tbaa !5
  %6861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6862 = call i32 @s2n_print_stacktrace(ptr noundef %6861)
  %6863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6864 = trunc i8 %6863 to i1
  br i1 %6864, label %6865, label %6887

6865:                                             ; preds = %6858
  %6866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6867 = call i32 @fileno(ptr noundef %6866) #11
  %6868 = call i32 @isatty(i32 noundef %6867) #11
  %6869 = icmp ne i32 %6868, 0
  br i1 %6869, label %6870, label %6887

6870:                                             ; preds = %6865
  %6871 = load i32, ptr %289, align 4, !tbaa !5
  %6872 = call ptr @__errno_location() #12
  store i32 %6871, ptr %6872, align 4, !tbaa !5
  %6873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6874 = load i32, ptr @test_count, align 4, !tbaa !5
  %6875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6876 = load i32, ptr %6875, align 4, !tbaa !5
  %6877 = call ptr @s2n_strerror(i32 noundef %6876, ptr noundef @.str.4)
  %6878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6879 = load i32, ptr %6878, align 4, !tbaa !5
  %6880 = call ptr @s2n_strerror_debug(i32 noundef %6879, ptr noundef @.str.4)
  %6881 = call ptr @__errno_location() #12
  %6882 = load i32, ptr %6881, align 4, !tbaa !5
  %6883 = call ptr @strerror(i32 noundef %6882) #11
  %6884 = call ptr @__errno_location() #12
  %6885 = load i32, ptr %6884, align 4, !tbaa !5
  %6886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6873, ptr noundef @.str.2, i32 noundef %6874, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 451, ptr noundef %6877, ptr noundef %6880, ptr noundef %6883, i32 noundef %6885) #11
  br label %6904

6887:                                             ; preds = %6865, %6858
  %6888 = load i32, ptr %289, align 4, !tbaa !5
  %6889 = call ptr @__errno_location() #12
  store i32 %6888, ptr %6889, align 4, !tbaa !5
  %6890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6891 = load i32, ptr @test_count, align 4, !tbaa !5
  %6892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6893 = load i32, ptr %6892, align 4, !tbaa !5
  %6894 = call ptr @s2n_strerror(i32 noundef %6893, ptr noundef @.str.4)
  %6895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6896 = load i32, ptr %6895, align 4, !tbaa !5
  %6897 = call ptr @s2n_strerror_debug(i32 noundef %6896, ptr noundef @.str.4)
  %6898 = call ptr @__errno_location() #12
  %6899 = load i32, ptr %6898, align 4, !tbaa !5
  %6900 = call ptr @strerror(i32 noundef %6899) #11
  %6901 = call ptr @__errno_location() #12
  %6902 = load i32, ptr %6901, align 4, !tbaa !5
  %6903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6890, ptr noundef @.str.5, i32 noundef %6891, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 451, ptr noundef %6894, ptr noundef %6897, ptr noundef %6900, i32 noundef %6902) #11
  br label %6904

6904:                                             ; preds = %6887, %6870
  call void @llvm.lifetime.end.p0(i64 4, ptr %289) #11
  br label %6905

6905:                                             ; preds = %6904
  br label %6906

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

6907:                                             ; No predecessors!
  br label %6908

6908:                                             ; preds = %6907
  br label %6909

6909:                                             ; preds = %6908, %6850
  br label %6910

6910:                                             ; preds = %6909
  br label %6911

6911:                                             ; preds = %6910
  call void @llvm.lifetime.start.p0(i64 1, ptr %290) #11
  store i8 0, ptr %290, align 1, !tbaa !15
  br label %6912

6912:                                             ; preds = %6911
  %6913 = load i32, ptr @test_count, align 4, !tbaa !5
  %6914 = add nsw i32 %6913, 1
  store i32 %6914, ptr @test_count, align 4, !tbaa !5
  %6915 = call i32 @s2n_ktls_get_control_data(ptr noundef %280, i32 noundef 0, ptr noundef %290)
  %6916 = getelementptr inbounds %struct.s2n_result, ptr %291, i32 0, i32 0
  store i32 %6915, ptr %6916, align 4
  %6917 = getelementptr inbounds %struct.s2n_result, ptr %291, i32 0, i32 0
  %6918 = load i32, ptr %6917, align 4
  %6919 = call zeroext i1 @s2n_result_is_ok(i32 %6918)
  br i1 %6919, label %6973, label %6920

6920:                                             ; preds = %6912
  br label %6921

6921:                                             ; preds = %6920
  br label %6922

6922:                                             ; preds = %6921
  call void @llvm.lifetime.start.p0(i64 4, ptr %292) #11
  %6923 = call ptr @__errno_location() #12
  %6924 = load i32, ptr %6923, align 4, !tbaa !5
  store i32 %6924, ptr %292, align 4, !tbaa !5
  %6925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6926 = call i32 @s2n_print_stacktrace(ptr noundef %6925)
  %6927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6928 = trunc i8 %6927 to i1
  br i1 %6928, label %6929, label %6951

6929:                                             ; preds = %6922
  %6930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6931 = call i32 @fileno(ptr noundef %6930) #11
  %6932 = call i32 @isatty(i32 noundef %6931) #11
  %6933 = icmp ne i32 %6932, 0
  br i1 %6933, label %6934, label %6951

6934:                                             ; preds = %6929
  %6935 = load i32, ptr %292, align 4, !tbaa !5
  %6936 = call ptr @__errno_location() #12
  store i32 %6935, ptr %6936, align 4, !tbaa !5
  %6937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6938 = load i32, ptr @test_count, align 4, !tbaa !5
  %6939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6940 = load i32, ptr %6939, align 4, !tbaa !5
  %6941 = call ptr @s2n_strerror(i32 noundef %6940, ptr noundef @.str.4)
  %6942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6943 = load i32, ptr %6942, align 4, !tbaa !5
  %6944 = call ptr @s2n_strerror_debug(i32 noundef %6943, ptr noundef @.str.4)
  %6945 = call ptr @__errno_location() #12
  %6946 = load i32, ptr %6945, align 4, !tbaa !5
  %6947 = call ptr @strerror(i32 noundef %6946) #11
  %6948 = call ptr @__errno_location() #12
  %6949 = load i32, ptr %6948, align 4, !tbaa !5
  %6950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6937, ptr noundef @.str.2, i32 noundef %6938, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 454, ptr noundef %6941, ptr noundef %6944, ptr noundef %6947, i32 noundef %6949) #11
  br label %6968

6951:                                             ; preds = %6929, %6922
  %6952 = load i32, ptr %292, align 4, !tbaa !5
  %6953 = call ptr @__errno_location() #12
  store i32 %6952, ptr %6953, align 4, !tbaa !5
  %6954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6955 = load i32, ptr @test_count, align 4, !tbaa !5
  %6956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6957 = load i32, ptr %6956, align 4, !tbaa !5
  %6958 = call ptr @s2n_strerror(i32 noundef %6957, ptr noundef @.str.4)
  %6959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6960 = load i32, ptr %6959, align 4, !tbaa !5
  %6961 = call ptr @s2n_strerror_debug(i32 noundef %6960, ptr noundef @.str.4)
  %6962 = call ptr @__errno_location() #12
  %6963 = load i32, ptr %6962, align 4, !tbaa !5
  %6964 = call ptr @strerror(i32 noundef %6963) #11
  %6965 = call ptr @__errno_location() #12
  %6966 = load i32, ptr %6965, align 4, !tbaa !5
  %6967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6954, ptr noundef @.str.5, i32 noundef %6955, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 454, ptr noundef %6958, ptr noundef %6961, ptr noundef %6964, i32 noundef %6966) #11
  br label %6968

6968:                                             ; preds = %6951, %6934
  call void @llvm.lifetime.end.p0(i64 4, ptr %292) #11
  br label %6969

6969:                                             ; preds = %6968
  br label %6970

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

6971:                                             ; No predecessors!
  br label %6972

6972:                                             ; preds = %6971
  br label %6973

6973:                                             ; preds = %6972, %6912
  br label %6974

6974:                                             ; preds = %6973
  br label %6975

6975:                                             ; preds = %6974
  br label %6976

6976:                                             ; preds = %6975
  %6977 = load i32, ptr @test_count, align 4, !tbaa !5
  %6978 = add nsw i32 %6977, 1
  store i32 %6978, ptr @test_count, align 4, !tbaa !5
  %6979 = load i8, ptr %290, align 1, !tbaa !15
  %6980 = zext i8 %6979 to i32
  %6981 = icmp eq i32 %6980, 43
  br i1 %6981, label %7035, label %6982

6982:                                             ; preds = %6976
  br label %6983

6983:                                             ; preds = %6982
  br label %6984

6984:                                             ; preds = %6983
  call void @llvm.lifetime.start.p0(i64 4, ptr %293) #11
  %6985 = call ptr @__errno_location() #12
  %6986 = load i32, ptr %6985, align 4, !tbaa !5
  store i32 %6986, ptr %293, align 4, !tbaa !5
  %6987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6988 = call i32 @s2n_print_stacktrace(ptr noundef %6987)
  %6989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6990 = trunc i8 %6989 to i1
  br i1 %6990, label %6991, label %7013

6991:                                             ; preds = %6984
  %6992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6993 = call i32 @fileno(ptr noundef %6992) #11
  %6994 = call i32 @isatty(i32 noundef %6993) #11
  %6995 = icmp ne i32 %6994, 0
  br i1 %6995, label %6996, label %7013

6996:                                             ; preds = %6991
  %6997 = load i32, ptr %293, align 4, !tbaa !5
  %6998 = call ptr @__errno_location() #12
  store i32 %6997, ptr %6998, align 4, !tbaa !5
  %6999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7000 = load i32, ptr @test_count, align 4, !tbaa !5
  %7001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7002 = load i32, ptr %7001, align 4, !tbaa !5
  %7003 = call ptr @s2n_strerror(i32 noundef %7002, ptr noundef @.str.4)
  %7004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7005 = load i32, ptr %7004, align 4, !tbaa !5
  %7006 = call ptr @s2n_strerror_debug(i32 noundef %7005, ptr noundef @.str.4)
  %7007 = call ptr @__errno_location() #12
  %7008 = load i32, ptr %7007, align 4, !tbaa !5
  %7009 = call ptr @strerror(i32 noundef %7008) #11
  %7010 = call ptr @__errno_location() #12
  %7011 = load i32, ptr %7010, align 4, !tbaa !5
  %7012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6999, ptr noundef @.str.2, i32 noundef %7000, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 455, ptr noundef %7003, ptr noundef %7006, ptr noundef %7009, i32 noundef %7011) #11
  br label %7030

7013:                                             ; preds = %6991, %6984
  %7014 = load i32, ptr %293, align 4, !tbaa !5
  %7015 = call ptr @__errno_location() #12
  store i32 %7014, ptr %7015, align 4, !tbaa !5
  %7016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7017 = load i32, ptr @test_count, align 4, !tbaa !5
  %7018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7019 = load i32, ptr %7018, align 4, !tbaa !5
  %7020 = call ptr @s2n_strerror(i32 noundef %7019, ptr noundef @.str.4)
  %7021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7022 = load i32, ptr %7021, align 4, !tbaa !5
  %7023 = call ptr @s2n_strerror_debug(i32 noundef %7022, ptr noundef @.str.4)
  %7024 = call ptr @__errno_location() #12
  %7025 = load i32, ptr %7024, align 4, !tbaa !5
  %7026 = call ptr @strerror(i32 noundef %7025) #11
  %7027 = call ptr @__errno_location() #12
  %7028 = load i32, ptr %7027, align 4, !tbaa !5
  %7029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7016, ptr noundef @.str.5, i32 noundef %7017, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 455, ptr noundef %7020, ptr noundef %7023, ptr noundef %7026, i32 noundef %7028) #11
  br label %7030

7030:                                             ; preds = %7013, %6996
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #11
  br label %7031

7031:                                             ; preds = %7030
  br label %7032

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

7033:                                             ; No predecessors!
  br label %7034

7034:                                             ; preds = %7033
  br label %7035

7035:                                             ; preds = %7034, %6976
  br label %7036

7036:                                             ; preds = %7035
  br label %7037

7037:                                             ; preds = %7036
  br label %7038

7038:                                             ; preds = %7037
  %7039 = load i64, ptr %267, align 8, !tbaa !54
  %7040 = icmp ne i64 %7039, 0
  br i1 %7040, label %7041, label %7106

7041:                                             ; preds = %7038
  br label %7042

7042:                                             ; preds = %7041
  %7043 = load i32, ptr @test_count, align 4, !tbaa !5
  %7044 = add nsw i32 %7043, 1
  store i32 %7044, ptr @test_count, align 4, !tbaa !5
  %7045 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %7046 = getelementptr inbounds [16384 x i8], ptr %277, i64 0, i64 0
  %7047 = load i64, ptr %267, align 8, !tbaa !54
  %7048 = call i32 @memcmp(ptr noundef %7045, ptr noundef %7046, i64 noundef %7047) #14
  %7049 = icmp eq i32 %7048, 0
  br i1 %7049, label %7103, label %7050

7050:                                             ; preds = %7042
  br label %7051

7051:                                             ; preds = %7050
  br label %7052

7052:                                             ; preds = %7051
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #11
  %7053 = call ptr @__errno_location() #12
  %7054 = load i32, ptr %7053, align 4, !tbaa !5
  store i32 %7054, ptr %294, align 4, !tbaa !5
  %7055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7056 = call i32 @s2n_print_stacktrace(ptr noundef %7055)
  %7057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7058 = trunc i8 %7057 to i1
  br i1 %7058, label %7059, label %7081

7059:                                             ; preds = %7052
  %7060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7061 = call i32 @fileno(ptr noundef %7060) #11
  %7062 = call i32 @isatty(i32 noundef %7061) #11
  %7063 = icmp ne i32 %7062, 0
  br i1 %7063, label %7064, label %7081

7064:                                             ; preds = %7059
  %7065 = load i32, ptr %294, align 4, !tbaa !5
  %7066 = call ptr @__errno_location() #12
  store i32 %7065, ptr %7066, align 4, !tbaa !5
  %7067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7068 = load i32, ptr @test_count, align 4, !tbaa !5
  %7069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7070 = load i32, ptr %7069, align 4, !tbaa !5
  %7071 = call ptr @s2n_strerror(i32 noundef %7070, ptr noundef @.str.4)
  %7072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7073 = load i32, ptr %7072, align 4, !tbaa !5
  %7074 = call ptr @s2n_strerror_debug(i32 noundef %7073, ptr noundef @.str.4)
  %7075 = call ptr @__errno_location() #12
  %7076 = load i32, ptr %7075, align 4, !tbaa !5
  %7077 = call ptr @strerror(i32 noundef %7076) #11
  %7078 = call ptr @__errno_location() #12
  %7079 = load i32, ptr %7078, align 4, !tbaa !5
  %7080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7067, ptr noundef @.str.2, i32 noundef %7068, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 458, ptr noundef %7071, ptr noundef %7074, ptr noundef %7077, i32 noundef %7079) #11
  br label %7098

7081:                                             ; preds = %7059, %7052
  %7082 = load i32, ptr %294, align 4, !tbaa !5
  %7083 = call ptr @__errno_location() #12
  store i32 %7082, ptr %7083, align 4, !tbaa !5
  %7084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7085 = load i32, ptr @test_count, align 4, !tbaa !5
  %7086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7087 = load i32, ptr %7086, align 4, !tbaa !5
  %7088 = call ptr @s2n_strerror(i32 noundef %7087, ptr noundef @.str.4)
  %7089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7090 = load i32, ptr %7089, align 4, !tbaa !5
  %7091 = call ptr @s2n_strerror_debug(i32 noundef %7090, ptr noundef @.str.4)
  %7092 = call ptr @__errno_location() #12
  %7093 = load i32, ptr %7092, align 4, !tbaa !5
  %7094 = call ptr @strerror(i32 noundef %7093) #11
  %7095 = call ptr @__errno_location() #12
  %7096 = load i32, ptr %7095, align 4, !tbaa !5
  %7097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7084, ptr noundef @.str.5, i32 noundef %7085, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 458, ptr noundef %7088, ptr noundef %7091, ptr noundef %7094, i32 noundef %7096) #11
  br label %7098

7098:                                             ; preds = %7081, %7064
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #11
  br label %7099

7099:                                             ; preds = %7098
  br label %7100

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

7101:                                             ; No predecessors!
  br label %7102

7102:                                             ; preds = %7101
  br label %7103

7103:                                             ; preds = %7102, %7042
  br label %7104

7104:                                             ; preds = %7103
  br label %7105

7105:                                             ; preds = %7104
  br label %7106

7106:                                             ; preds = %7105, %7038
  br label %7107

7107:                                             ; preds = %7106
  br label %7108

7108:                                             ; preds = %7107
  br label %7109

7109:                                             ; preds = %7108
  %7110 = load i32, ptr @test_count, align 4, !tbaa !5
  %7111 = add nsw i32 %7110, 1
  store i32 %7111, ptr @test_count, align 4, !tbaa !5
  %7112 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %264, i32 0, i32 0
  %7113 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %7112, i32 0, i32 0
  %7114 = getelementptr inbounds %struct.s2n_stuffer, ptr %7113, i32 0, i32 2
  %7115 = load i32, ptr %7114, align 4, !tbaa !59
  %7116 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %264, i32 0, i32 0
  %7117 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %7116, i32 0, i32 0
  %7118 = getelementptr inbounds %struct.s2n_stuffer, ptr %7117, i32 0, i32 1
  %7119 = load i32, ptr %7118, align 8, !tbaa !60
  %7120 = sub i32 %7115, %7119
  %7121 = icmp eq i32 %7120, 0
  br i1 %7121, label %7175, label %7122

7122:                                             ; preds = %7109
  br label %7123

7123:                                             ; preds = %7122
  br label %7124

7124:                                             ; preds = %7123
  call void @llvm.lifetime.start.p0(i64 4, ptr %295) #11
  %7125 = call ptr @__errno_location() #12
  %7126 = load i32, ptr %7125, align 4, !tbaa !5
  store i32 %7126, ptr %295, align 4, !tbaa !5
  %7127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7128 = call i32 @s2n_print_stacktrace(ptr noundef %7127)
  %7129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7130 = trunc i8 %7129 to i1
  br i1 %7130, label %7131, label %7153

7131:                                             ; preds = %7124
  %7132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7133 = call i32 @fileno(ptr noundef %7132) #11
  %7134 = call i32 @isatty(i32 noundef %7133) #11
  %7135 = icmp ne i32 %7134, 0
  br i1 %7135, label %7136, label %7153

7136:                                             ; preds = %7131
  %7137 = load i32, ptr %295, align 4, !tbaa !5
  %7138 = call ptr @__errno_location() #12
  store i32 %7137, ptr %7138, align 4, !tbaa !5
  %7139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7140 = load i32, ptr @test_count, align 4, !tbaa !5
  %7141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7142 = load i32, ptr %7141, align 4, !tbaa !5
  %7143 = call ptr @s2n_strerror(i32 noundef %7142, ptr noundef @.str.4)
  %7144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7145 = load i32, ptr %7144, align 4, !tbaa !5
  %7146 = call ptr @s2n_strerror_debug(i32 noundef %7145, ptr noundef @.str.4)
  %7147 = call ptr @__errno_location() #12
  %7148 = load i32, ptr %7147, align 4, !tbaa !5
  %7149 = call ptr @strerror(i32 noundef %7148) #11
  %7150 = call ptr @__errno_location() #12
  %7151 = load i32, ptr %7150, align 4, !tbaa !5
  %7152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7139, ptr noundef @.str.2, i32 noundef %7140, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 460, ptr noundef %7143, ptr noundef %7146, ptr noundef %7149, i32 noundef %7151) #11
  br label %7170

7153:                                             ; preds = %7131, %7124
  %7154 = load i32, ptr %295, align 4, !tbaa !5
  %7155 = call ptr @__errno_location() #12
  store i32 %7154, ptr %7155, align 4, !tbaa !5
  %7156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7157 = load i32, ptr @test_count, align 4, !tbaa !5
  %7158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7159 = load i32, ptr %7158, align 4, !tbaa !5
  %7160 = call ptr @s2n_strerror(i32 noundef %7159, ptr noundef @.str.4)
  %7161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7162 = load i32, ptr %7161, align 4, !tbaa !5
  %7163 = call ptr @s2n_strerror_debug(i32 noundef %7162, ptr noundef @.str.4)
  %7164 = call ptr @__errno_location() #12
  %7165 = load i32, ptr %7164, align 4, !tbaa !5
  %7166 = call ptr @strerror(i32 noundef %7165) #11
  %7167 = call ptr @__errno_location() #12
  %7168 = load i32, ptr %7167, align 4, !tbaa !5
  %7169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7156, ptr noundef @.str.5, i32 noundef %7157, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 460, ptr noundef %7160, ptr noundef %7163, ptr noundef %7166, i32 noundef %7168) #11
  br label %7170

7170:                                             ; preds = %7153, %7136
  call void @llvm.lifetime.end.p0(i64 4, ptr %295) #11
  br label %7171

7171:                                             ; preds = %7170
  br label %7172

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

7173:                                             ; No predecessors!
  br label %7174

7174:                                             ; preds = %7173
  br label %7175

7175:                                             ; preds = %7174, %7109
  br label %7176

7176:                                             ; preds = %7175
  br label %7177

7177:                                             ; preds = %7176
  br label %7178

7178:                                             ; preds = %7177
  %7179 = load i32, ptr @test_count, align 4, !tbaa !5
  %7180 = add nsw i32 %7179, 1
  store i32 %7180, ptr @test_count, align 4, !tbaa !5
  %7181 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %264, i32 0, i32 0
  %7182 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %7181, i32 0, i32 2
  %7183 = load i64, ptr %7182, align 8, !tbaa !55
  %7184 = icmp eq i64 %7183, 1
  br i1 %7184, label %7238, label %7185

7185:                                             ; preds = %7178
  br label %7186

7186:                                             ; preds = %7185
  br label %7187

7187:                                             ; preds = %7186
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #11
  %7188 = call ptr @__errno_location() #12
  %7189 = load i32, ptr %7188, align 4, !tbaa !5
  store i32 %7189, ptr %296, align 4, !tbaa !5
  %7190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7191 = call i32 @s2n_print_stacktrace(ptr noundef %7190)
  %7192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7193 = trunc i8 %7192 to i1
  br i1 %7193, label %7194, label %7216

7194:                                             ; preds = %7187
  %7195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7196 = call i32 @fileno(ptr noundef %7195) #11
  %7197 = call i32 @isatty(i32 noundef %7196) #11
  %7198 = icmp ne i32 %7197, 0
  br i1 %7198, label %7199, label %7216

7199:                                             ; preds = %7194
  %7200 = load i32, ptr %296, align 4, !tbaa !5
  %7201 = call ptr @__errno_location() #12
  store i32 %7200, ptr %7201, align 4, !tbaa !5
  %7202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7203 = load i32, ptr @test_count, align 4, !tbaa !5
  %7204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7205 = load i32, ptr %7204, align 4, !tbaa !5
  %7206 = call ptr @s2n_strerror(i32 noundef %7205, ptr noundef @.str.4)
  %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_debug(i32 noundef %7208, ptr noundef @.str.4)
  %7210 = call ptr @__errno_location() #12
  %7211 = load i32, ptr %7210, align 4, !tbaa !5
  %7212 = call ptr @strerror(i32 noundef %7211) #11
  %7213 = call ptr @__errno_location() #12
  %7214 = load i32, ptr %7213, align 4, !tbaa !5
  %7215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7202, ptr noundef @.str.2, i32 noundef %7203, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 462, ptr noundef %7206, ptr noundef %7209, ptr noundef %7212, i32 noundef %7214) #11
  br label %7233

7216:                                             ; preds = %7194, %7187
  %7217 = load i32, ptr %296, align 4, !tbaa !5
  %7218 = call ptr @__errno_location() #12
  store i32 %7217, ptr %7218, align 4, !tbaa !5
  %7219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7220 = load i32, ptr @test_count, align 4, !tbaa !5
  %7221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7222 = load i32, ptr %7221, align 4, !tbaa !5
  %7223 = call ptr @s2n_strerror(i32 noundef %7222, ptr noundef @.str.4)
  %7224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7225 = load i32, ptr %7224, align 4, !tbaa !5
  %7226 = call ptr @s2n_strerror_debug(i32 noundef %7225, ptr noundef @.str.4)
  %7227 = call ptr @__errno_location() #12
  %7228 = load i32, ptr %7227, align 4, !tbaa !5
  %7229 = call ptr @strerror(i32 noundef %7228) #11
  %7230 = call ptr @__errno_location() #12
  %7231 = load i32, ptr %7230, align 4, !tbaa !5
  %7232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7219, ptr noundef @.str.5, i32 noundef %7220, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 462, ptr noundef %7223, ptr noundef %7226, ptr noundef %7229, i32 noundef %7231) #11
  br label %7233

7233:                                             ; preds = %7216, %7199
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #11
  br label %7234

7234:                                             ; preds = %7233
  br label %7235

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

7236:                                             ; No predecessors!
  br label %7237

7237:                                             ; preds = %7236
  br label %7238

7238:                                             ; preds = %7237, %7178
  br label %7239

7239:                                             ; preds = %7238
  br label %7240

7240:                                             ; preds = %7239
  br label %7241

7241:                                             ; preds = %7240
  %7242 = load i32, ptr @test_count, align 4, !tbaa !5
  %7243 = add nsw i32 %7242, 1
  store i32 %7243, ptr @test_count, align 4, !tbaa !5
  %7244 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %264, i32 0, i32 0
  %7245 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %7244, i32 0, i32 3
  %7246 = load i64, ptr %7245, align 8, !tbaa !70
  %7247 = icmp eq i64 %7246, 2
  br i1 %7247, label %7301, label %7248

7248:                                             ; preds = %7241
  br label %7249

7249:                                             ; preds = %7248
  br label %7250

7250:                                             ; preds = %7249
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #11
  %7251 = call ptr @__errno_location() #12
  %7252 = load i32, ptr %7251, align 4, !tbaa !5
  store i32 %7252, ptr %297, align 4, !tbaa !5
  %7253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7254 = call i32 @s2n_print_stacktrace(ptr noundef %7253)
  %7255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7256 = trunc i8 %7255 to i1
  br i1 %7256, label %7257, label %7279

7257:                                             ; preds = %7250
  %7258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7259 = call i32 @fileno(ptr noundef %7258) #11
  %7260 = call i32 @isatty(i32 noundef %7259) #11
  %7261 = icmp ne i32 %7260, 0
  br i1 %7261, label %7262, label %7279

7262:                                             ; preds = %7257
  %7263 = load i32, ptr %297, align 4, !tbaa !5
  %7264 = call ptr @__errno_location() #12
  store i32 %7263, ptr %7264, align 4, !tbaa !5
  %7265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7266 = load i32, ptr @test_count, align 4, !tbaa !5
  %7267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7268 = load i32, ptr %7267, align 4, !tbaa !5
  %7269 = call ptr @s2n_strerror(i32 noundef %7268, ptr noundef @.str.4)
  %7270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7271 = load i32, ptr %7270, align 4, !tbaa !5
  %7272 = call ptr @s2n_strerror_debug(i32 noundef %7271, ptr noundef @.str.4)
  %7273 = call ptr @__errno_location() #12
  %7274 = load i32, ptr %7273, align 4, !tbaa !5
  %7275 = call ptr @strerror(i32 noundef %7274) #11
  %7276 = call ptr @__errno_location() #12
  %7277 = load i32, ptr %7276, align 4, !tbaa !5
  %7278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7265, ptr noundef @.str.2, i32 noundef %7266, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 463, ptr noundef %7269, ptr noundef %7272, ptr noundef %7275, i32 noundef %7277) #11
  br label %7296

7279:                                             ; preds = %7257, %7250
  %7280 = load i32, ptr %297, align 4, !tbaa !5
  %7281 = call ptr @__errno_location() #12
  store i32 %7280, ptr %7281, align 4, !tbaa !5
  %7282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7283 = load i32, ptr @test_count, align 4, !tbaa !5
  %7284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7285 = load i32, ptr %7284, align 4, !tbaa !5
  %7286 = call ptr @s2n_strerror(i32 noundef %7285, ptr noundef @.str.4)
  %7287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7288 = load i32, ptr %7287, align 4, !tbaa !5
  %7289 = call ptr @s2n_strerror_debug(i32 noundef %7288, ptr noundef @.str.4)
  %7290 = call ptr @__errno_location() #12
  %7291 = load i32, ptr %7290, align 4, !tbaa !5
  %7292 = call ptr @strerror(i32 noundef %7291) #11
  %7293 = call ptr @__errno_location() #12
  %7294 = load i32, ptr %7293, align 4, !tbaa !5
  %7295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7282, ptr noundef @.str.5, i32 noundef %7283, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 463, ptr noundef %7286, ptr noundef %7289, ptr noundef %7292, i32 noundef %7294) #11
  br label %7296

7296:                                             ; preds = %7279, %7262
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #11
  br label %7297

7297:                                             ; preds = %7296
  br label %7298

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

7299:                                             ; No predecessors!
  br label %7300

7300:                                             ; preds = %7299
  br label %7301

7301:                                             ; preds = %7300, %7241
  br label %7302

7302:                                             ; preds = %7301
  br label %7303

7303:                                             ; preds = %7302
  call void @llvm.lifetime.end.p0(i64 1, ptr %290) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %284) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %281) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %280) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %279) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %278) #11
  call void @llvm.lifetime.end.p0(i64 16384, ptr %277) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %275) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %272) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %271) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %270) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %269) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %268) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %267) #11
  %7304 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef %264)
  %7305 = getelementptr inbounds %struct.s2n_result, ptr %298, i32 0, i32 0
  store i32 %7304, ptr %7305, align 4
  call void @llvm.lifetime.end.p0(i64 192, ptr %264) #11
  %7306 = call i32 @s2n_connection_ptr_free(ptr noundef %263)
  %7307 = getelementptr inbounds %struct.s2n_result, ptr %299, i32 0, i32 0
  store i32 %7306, ptr %7307, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %263) #11
  %7308 = call i32 @s2n_connection_ptr_free(ptr noundef %262)
  %7309 = getelementptr inbounds %struct.s2n_result, ptr %300, i32 0, i32 0
  store i32 %7308, ptr %7309, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %262) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %301) #11
  %7310 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7310, ptr %301, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %302) #11
  %7311 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7311, ptr %302, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr %303) #11
  call void @llvm.memset.p0.i64(ptr align 8 %303, i8 0, i64 192, i1 false)
  br label %7312

7312:                                             ; preds = %7303
  %7313 = load i32, ptr @test_count, align 4, !tbaa !5
  %7314 = add nsw i32 %7313, 1
  store i32 %7314, ptr @test_count, align 4, !tbaa !5
  %7315 = load ptr, ptr %301, align 8, !tbaa !9
  %7316 = load ptr, ptr %302, align 8, !tbaa !9
  %7317 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %7315, ptr noundef %7316, ptr noundef %303)
  %7318 = getelementptr inbounds %struct.s2n_result, ptr %304, i32 0, i32 0
  store i32 %7317, ptr %7318, align 4
  %7319 = getelementptr inbounds %struct.s2n_result, ptr %304, i32 0, i32 0
  %7320 = load i32, ptr %7319, align 4
  %7321 = call zeroext i1 @s2n_result_is_ok(i32 %7320)
  br i1 %7321, label %7375, label %7322

7322:                                             ; preds = %7312
  br label %7323

7323:                                             ; preds = %7322
  br label %7324

7324:                                             ; preds = %7323
  call void @llvm.lifetime.start.p0(i64 4, ptr %305) #11
  %7325 = call ptr @__errno_location() #12
  %7326 = load i32, ptr %7325, align 4, !tbaa !5
  store i32 %7326, ptr %305, align 4, !tbaa !5
  %7327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7328 = call i32 @s2n_print_stacktrace(ptr noundef %7327)
  %7329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7330 = trunc i8 %7329 to i1
  br i1 %7330, label %7331, label %7353

7331:                                             ; preds = %7324
  %7332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7333 = call i32 @fileno(ptr noundef %7332) #11
  %7334 = call i32 @isatty(i32 noundef %7333) #11
  %7335 = icmp ne i32 %7334, 0
  br i1 %7335, label %7336, label %7353

7336:                                             ; preds = %7331
  %7337 = load i32, ptr %305, align 4, !tbaa !5
  %7338 = call ptr @__errno_location() #12
  store i32 %7337, ptr %7338, align 4, !tbaa !5
  %7339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7340 = load i32, ptr @test_count, align 4, !tbaa !5
  %7341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7342 = load i32, ptr %7341, align 4, !tbaa !5
  %7343 = call ptr @s2n_strerror(i32 noundef %7342, ptr noundef @.str.4)
  %7344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7345 = load i32, ptr %7344, align 4, !tbaa !5
  %7346 = call ptr @s2n_strerror_debug(i32 noundef %7345, ptr noundef @.str.4)
  %7347 = call ptr @__errno_location() #12
  %7348 = load i32, ptr %7347, align 4, !tbaa !5
  %7349 = call ptr @strerror(i32 noundef %7348) #11
  %7350 = call ptr @__errno_location() #12
  %7351 = load i32, ptr %7350, align 4, !tbaa !5
  %7352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7339, ptr noundef @.str.2, i32 noundef %7340, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 474, ptr noundef %7343, ptr noundef %7346, ptr noundef %7349, i32 noundef %7351) #11
  br label %7370

7353:                                             ; preds = %7331, %7324
  %7354 = load i32, ptr %305, align 4, !tbaa !5
  %7355 = call ptr @__errno_location() #12
  store i32 %7354, ptr %7355, align 4, !tbaa !5
  %7356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7357 = load i32, ptr @test_count, align 4, !tbaa !5
  %7358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7359 = load i32, ptr %7358, align 4, !tbaa !5
  %7360 = call ptr @s2n_strerror(i32 noundef %7359, ptr noundef @.str.4)
  %7361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7362 = load i32, ptr %7361, align 4, !tbaa !5
  %7363 = call ptr @s2n_strerror_debug(i32 noundef %7362, ptr noundef @.str.4)
  %7364 = call ptr @__errno_location() #12
  %7365 = load i32, ptr %7364, align 4, !tbaa !5
  %7366 = call ptr @strerror(i32 noundef %7365) #11
  %7367 = call ptr @__errno_location() #12
  %7368 = load i32, ptr %7367, align 4, !tbaa !5
  %7369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7356, ptr noundef @.str.5, i32 noundef %7357, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 474, ptr noundef %7360, ptr noundef %7363, ptr noundef %7366, i32 noundef %7368) #11
  br label %7370

7370:                                             ; preds = %7353, %7336
  call void @llvm.lifetime.end.p0(i64 4, ptr %305) #11
  br label %7371

7371:                                             ; preds = %7370
  br label %7372

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

7373:                                             ; No predecessors!
  br label %7374

7374:                                             ; preds = %7373
  br label %7375

7375:                                             ; preds = %7374, %7312
  br label %7376

7376:                                             ; preds = %7375
  br label %7377

7377:                                             ; preds = %7376
  call void @llvm.lifetime.start.p0(i64 8, ptr %306) #11
  store i64 10, ptr %306, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 8, ptr %307) #11
  store i64 15, ptr %307, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 16, ptr %308) #11
  %7378 = getelementptr inbounds %struct.iovec, ptr %308, i32 0, i32 0
  %7379 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  store ptr %7379, ptr %7378, align 8, !tbaa !16
  %7380 = getelementptr inbounds %struct.iovec, ptr %308, i32 0, i32 1
  %7381 = load i64, ptr %306, align 8, !tbaa !54
  store i64 %7381, ptr %7380, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 56, ptr %309) #11
  %7382 = getelementptr inbounds %struct.msghdr, ptr %309, i32 0, i32 0
  store ptr null, ptr %7382, align 8, !tbaa !20
  %7383 = getelementptr inbounds %struct.msghdr, ptr %309, i32 0, i32 1
  store i32 0, ptr %7383, align 8, !tbaa !22
  %7384 = getelementptr inbounds %struct.msghdr, ptr %309, i32 0, i32 2
  store ptr %308, ptr %7384, align 8, !tbaa !23
  %7385 = getelementptr inbounds %struct.msghdr, ptr %309, i32 0, i32 3
  store i64 1, ptr %7385, align 8, !tbaa !24
  %7386 = getelementptr inbounds %struct.msghdr, ptr %309, i32 0, i32 4
  store ptr null, ptr %7386, align 8, !tbaa !25
  %7387 = getelementptr inbounds %struct.msghdr, ptr %309, i32 0, i32 5
  store i64 0, ptr %7387, align 8, !tbaa !26
  %7388 = getelementptr inbounds %struct.msghdr, ptr %309, i32 0, i32 6
  store i32 0, ptr %7388, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 100, ptr %310) #11
  call void @llvm.memset.p0.i64(ptr align 16 %310, i8 0, i64 100, i1 false)
  br label %7389

7389:                                             ; preds = %7377
  %7390 = load i32, ptr @test_count, align 4, !tbaa !5
  %7391 = add nsw i32 %7390, 1
  store i32 %7391, ptr @test_count, align 4, !tbaa !5
  %7392 = getelementptr inbounds [100 x i8], ptr %310, i64 0, i64 0
  %7393 = call i32 @s2n_ktls_set_control_data(ptr noundef %309, ptr noundef %7392, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43)
  %7394 = getelementptr inbounds %struct.s2n_result, ptr %311, i32 0, i32 0
  store i32 %7393, ptr %7394, align 4
  %7395 = getelementptr inbounds %struct.s2n_result, ptr %311, i32 0, i32 0
  %7396 = load i32, ptr %7395, align 4
  %7397 = call zeroext i1 @s2n_result_is_ok(i32 %7396)
  br i1 %7397, label %7451, label %7398

7398:                                             ; preds = %7389
  br label %7399

7399:                                             ; preds = %7398
  br label %7400

7400:                                             ; preds = %7399
  call void @llvm.lifetime.start.p0(i64 4, ptr %312) #11
  %7401 = call ptr @__errno_location() #12
  %7402 = load i32, ptr %7401, align 4, !tbaa !5
  store i32 %7402, ptr %312, align 4, !tbaa !5
  %7403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7404 = call i32 @s2n_print_stacktrace(ptr noundef %7403)
  %7405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7406 = trunc i8 %7405 to i1
  br i1 %7406, label %7407, label %7429

7407:                                             ; preds = %7400
  %7408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7409 = call i32 @fileno(ptr noundef %7408) #11
  %7410 = call i32 @isatty(i32 noundef %7409) #11
  %7411 = icmp ne i32 %7410, 0
  br i1 %7411, label %7412, label %7429

7412:                                             ; preds = %7407
  %7413 = load i32, ptr %312, align 4, !tbaa !5
  %7414 = call ptr @__errno_location() #12
  store i32 %7413, ptr %7414, align 4, !tbaa !5
  %7415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7416 = load i32, ptr @test_count, align 4, !tbaa !5
  %7417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7418 = load i32, ptr %7417, align 4, !tbaa !5
  %7419 = call ptr @s2n_strerror(i32 noundef %7418, ptr noundef @.str.4)
  %7420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7421 = load i32, ptr %7420, align 4, !tbaa !5
  %7422 = call ptr @s2n_strerror_debug(i32 noundef %7421, ptr noundef @.str.4)
  %7423 = call ptr @__errno_location() #12
  %7424 = load i32, ptr %7423, align 4, !tbaa !5
  %7425 = call ptr @strerror(i32 noundef %7424) #11
  %7426 = call ptr @__errno_location() #12
  %7427 = load i32, ptr %7426, align 4, !tbaa !5
  %7428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7415, ptr noundef @.str.2, i32 noundef %7416, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 483, ptr noundef %7419, ptr noundef %7422, ptr noundef %7425, i32 noundef %7427) #11
  br label %7446

7429:                                             ; preds = %7407, %7400
  %7430 = load i32, ptr %312, align 4, !tbaa !5
  %7431 = call ptr @__errno_location() #12
  store i32 %7430, ptr %7431, align 4, !tbaa !5
  %7432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7433 = load i32, ptr @test_count, align 4, !tbaa !5
  %7434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7435 = load i32, ptr %7434, align 4, !tbaa !5
  %7436 = call ptr @s2n_strerror(i32 noundef %7435, ptr noundef @.str.4)
  %7437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7438 = load i32, ptr %7437, align 4, !tbaa !5
  %7439 = call ptr @s2n_strerror_debug(i32 noundef %7438, ptr noundef @.str.4)
  %7440 = call ptr @__errno_location() #12
  %7441 = load i32, ptr %7440, align 4, !tbaa !5
  %7442 = call ptr @strerror(i32 noundef %7441) #11
  %7443 = call ptr @__errno_location() #12
  %7444 = load i32, ptr %7443, align 4, !tbaa !5
  %7445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7432, ptr noundef @.str.5, i32 noundef %7433, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 483, ptr noundef %7436, ptr noundef %7439, ptr noundef %7442, i32 noundef %7444) #11
  br label %7446

7446:                                             ; preds = %7429, %7412
  call void @llvm.lifetime.end.p0(i64 4, ptr %312) #11
  br label %7447

7447:                                             ; preds = %7446
  br label %7448

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

7449:                                             ; No predecessors!
  br label %7450

7450:                                             ; preds = %7449
  br label %7451

7451:                                             ; preds = %7450, %7389
  br label %7452

7452:                                             ; preds = %7451
  br label %7453

7453:                                             ; preds = %7452
  call void @llvm.lifetime.start.p0(i64 8, ptr %313) #11
  %7454 = load ptr, ptr %301, align 8, !tbaa !9
  %7455 = getelementptr inbounds %struct.s2n_connection, ptr %7454, i32 0, i32 8
  %7456 = load ptr, ptr %7455, align 8, !tbaa !28
  %7457 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %7456, ptr noundef %309)
  store i64 %7457, ptr %313, align 8, !tbaa !54
  br label %7458

7458:                                             ; preds = %7453
  %7459 = load i32, ptr @test_count, align 4, !tbaa !5
  %7460 = add nsw i32 %7459, 1
  store i32 %7460, ptr @test_count, align 4, !tbaa !5
  %7461 = load i64, ptr %313, align 8, !tbaa !54
  %7462 = load i64, ptr %306, align 8, !tbaa !54
  %7463 = icmp eq i64 %7461, %7462
  br i1 %7463, label %7517, label %7464

7464:                                             ; preds = %7458
  br label %7465

7465:                                             ; preds = %7464
  br label %7466

7466:                                             ; preds = %7465
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #11
  %7467 = call ptr @__errno_location() #12
  %7468 = load i32, ptr %7467, align 4, !tbaa !5
  store i32 %7468, ptr %314, align 4, !tbaa !5
  %7469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7470 = call i32 @s2n_print_stacktrace(ptr noundef %7469)
  %7471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7472 = trunc i8 %7471 to i1
  br i1 %7472, label %7473, label %7495

7473:                                             ; preds = %7466
  %7474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7475 = call i32 @fileno(ptr noundef %7474) #11
  %7476 = call i32 @isatty(i32 noundef %7475) #11
  %7477 = icmp ne i32 %7476, 0
  br i1 %7477, label %7478, label %7495

7478:                                             ; preds = %7473
  %7479 = load i32, ptr %314, align 4, !tbaa !5
  %7480 = call ptr @__errno_location() #12
  store i32 %7479, ptr %7480, align 4, !tbaa !5
  %7481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7482 = load i32, ptr @test_count, align 4, !tbaa !5
  %7483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7484 = load i32, ptr %7483, align 4, !tbaa !5
  %7485 = call ptr @s2n_strerror(i32 noundef %7484, ptr noundef @.str.4)
  %7486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7487 = load i32, ptr %7486, align 4, !tbaa !5
  %7488 = call ptr @s2n_strerror_debug(i32 noundef %7487, ptr noundef @.str.4)
  %7489 = call ptr @__errno_location() #12
  %7490 = load i32, ptr %7489, align 4, !tbaa !5
  %7491 = call ptr @strerror(i32 noundef %7490) #11
  %7492 = call ptr @__errno_location() #12
  %7493 = load i32, ptr %7492, align 4, !tbaa !5
  %7494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7481, ptr noundef @.str.2, i32 noundef %7482, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 485, ptr noundef %7485, ptr noundef %7488, ptr noundef %7491, i32 noundef %7493) #11
  br label %7512

7495:                                             ; preds = %7473, %7466
  %7496 = load i32, ptr %314, align 4, !tbaa !5
  %7497 = call ptr @__errno_location() #12
  store i32 %7496, ptr %7497, align 4, !tbaa !5
  %7498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7499 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7501, ptr noundef @.str.4)
  %7503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7504 = load i32, ptr %7503, align 4, !tbaa !5
  %7505 = call ptr @s2n_strerror_debug(i32 noundef %7504, ptr noundef @.str.4)
  %7506 = call ptr @__errno_location() #12
  %7507 = load i32, ptr %7506, align 4, !tbaa !5
  %7508 = call ptr @strerror(i32 noundef %7507) #11
  %7509 = call ptr @__errno_location() #12
  %7510 = load i32, ptr %7509, align 4, !tbaa !5
  %7511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7498, ptr noundef @.str.5, i32 noundef %7499, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 485, ptr noundef %7502, ptr noundef %7505, ptr noundef %7508, i32 noundef %7510) #11
  br label %7512

7512:                                             ; preds = %7495, %7478
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #11
  br label %7513

7513:                                             ; preds = %7512
  br label %7514

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

7515:                                             ; No predecessors!
  br label %7516

7516:                                             ; preds = %7515
  br label %7517

7517:                                             ; preds = %7516, %7458
  br label %7518

7518:                                             ; preds = %7517
  br label %7519

7519:                                             ; preds = %7518
  call void @llvm.lifetime.start.p0(i64 16384, ptr %315) #11
  call void @llvm.memset.p0.i64(ptr align 16 %315, i8 0, i64 16384, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %316) #11
  %7520 = getelementptr inbounds %struct.iovec, ptr %316, i32 0, i32 0
  %7521 = getelementptr inbounds [16384 x i8], ptr %315, i64 0, i64 0
  store ptr %7521, ptr %7520, align 8, !tbaa !16
  %7522 = getelementptr inbounds %struct.iovec, ptr %316, i32 0, i32 1
  %7523 = load i64, ptr %307, align 8, !tbaa !54
  store i64 %7523, ptr %7522, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 100, ptr %317) #11
  call void @llvm.memset.p0.i64(ptr align 16 %317, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr %318) #11
  %7524 = getelementptr inbounds %struct.msghdr, ptr %318, i32 0, i32 0
  store ptr null, ptr %7524, align 8, !tbaa !20
  %7525 = getelementptr inbounds %struct.msghdr, ptr %318, i32 0, i32 1
  store i32 0, ptr %7525, align 8, !tbaa !22
  %7526 = getelementptr inbounds %struct.msghdr, ptr %318, i32 0, i32 2
  store ptr %316, ptr %7526, align 8, !tbaa !23
  %7527 = getelementptr inbounds %struct.msghdr, ptr %318, i32 0, i32 3
  store i64 1, ptr %7527, align 8, !tbaa !24
  %7528 = getelementptr inbounds %struct.msghdr, ptr %318, i32 0, i32 4
  %7529 = getelementptr inbounds [100 x i8], ptr %317, i64 0, i64 0
  store ptr %7529, ptr %7528, align 8, !tbaa !25
  %7530 = getelementptr inbounds %struct.msghdr, ptr %318, i32 0, i32 5
  store i64 100, ptr %7530, align 8, !tbaa !26
  %7531 = getelementptr inbounds %struct.msghdr, ptr %318, i32 0, i32 6
  store i32 0, ptr %7531, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr %319) #11
  %7532 = load ptr, ptr %302, align 8, !tbaa !9
  %7533 = getelementptr inbounds %struct.s2n_connection, ptr %7532, i32 0, i32 9
  %7534 = load ptr, ptr %7533, align 8, !tbaa !69
  %7535 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %7534, ptr noundef %318)
  store i64 %7535, ptr %319, align 8, !tbaa !54
  br label %7536

7536:                                             ; preds = %7519
  %7537 = load i32, ptr @test_count, align 4, !tbaa !5
  %7538 = add nsw i32 %7537, 1
  store i32 %7538, ptr @test_count, align 4, !tbaa !5
  %7539 = load i64, ptr %319, align 8, !tbaa !54
  %7540 = load i64, ptr %306, align 8, !tbaa !54
  %7541 = icmp eq i64 %7539, %7540
  br i1 %7541, label %7595, label %7542

7542:                                             ; preds = %7536
  br label %7543

7543:                                             ; preds = %7542
  br label %7544

7544:                                             ; preds = %7543
  call void @llvm.lifetime.start.p0(i64 4, ptr %320) #11
  %7545 = call ptr @__errno_location() #12
  %7546 = load i32, ptr %7545, align 4, !tbaa !5
  store i32 %7546, ptr %320, align 4, !tbaa !5
  %7547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7548 = call i32 @s2n_print_stacktrace(ptr noundef %7547)
  %7549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7550 = trunc i8 %7549 to i1
  br i1 %7550, label %7551, label %7573

7551:                                             ; preds = %7544
  %7552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7553 = call i32 @fileno(ptr noundef %7552) #11
  %7554 = call i32 @isatty(i32 noundef %7553) #11
  %7555 = icmp ne i32 %7554, 0
  br i1 %7555, label %7556, label %7573

7556:                                             ; preds = %7551
  %7557 = load i32, ptr %320, align 4, !tbaa !5
  %7558 = call ptr @__errno_location() #12
  store i32 %7557, ptr %7558, align 4, !tbaa !5
  %7559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7560 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7562, ptr noundef @.str.4)
  %7564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7565 = load i32, ptr %7564, align 4, !tbaa !5
  %7566 = call ptr @s2n_strerror_debug(i32 noundef %7565, ptr noundef @.str.4)
  %7567 = call ptr @__errno_location() #12
  %7568 = load i32, ptr %7567, align 4, !tbaa !5
  %7569 = call ptr @strerror(i32 noundef %7568) #11
  %7570 = call ptr @__errno_location() #12
  %7571 = load i32, ptr %7570, align 4, !tbaa !5
  %7572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7559, ptr noundef @.str.2, i32 noundef %7560, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 499, ptr noundef %7563, ptr noundef %7566, ptr noundef %7569, i32 noundef %7571) #11
  br label %7590

7573:                                             ; preds = %7551, %7544
  %7574 = load i32, ptr %320, align 4, !tbaa !5
  %7575 = call ptr @__errno_location() #12
  store i32 %7574, ptr %7575, align 4, !tbaa !5
  %7576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7577 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7579, ptr noundef @.str.4)
  %7581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7582 = load i32, ptr %7581, align 4, !tbaa !5
  %7583 = call ptr @s2n_strerror_debug(i32 noundef %7582, ptr noundef @.str.4)
  %7584 = call ptr @__errno_location() #12
  %7585 = load i32, ptr %7584, align 4, !tbaa !5
  %7586 = call ptr @strerror(i32 noundef %7585) #11
  %7587 = call ptr @__errno_location() #12
  %7588 = load i32, ptr %7587, align 4, !tbaa !5
  %7589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7576, ptr noundef @.str.5, i32 noundef %7577, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 499, ptr noundef %7580, ptr noundef %7583, ptr noundef %7586, i32 noundef %7588) #11
  br label %7590

7590:                                             ; preds = %7573, %7556
  call void @llvm.lifetime.end.p0(i64 4, ptr %320) #11
  br label %7591

7591:                                             ; preds = %7590
  br label %7592

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

7593:                                             ; No predecessors!
  br label %7594

7594:                                             ; preds = %7593
  br label %7595

7595:                                             ; preds = %7594, %7536
  br label %7596

7596:                                             ; preds = %7595
  br label %7597

7597:                                             ; preds = %7596
  br label %7598

7598:                                             ; preds = %7597
  %7599 = load i64, ptr %306, align 8, !tbaa !54
  %7600 = icmp ne i64 %7599, 0
  br i1 %7600, label %7601, label %7666

7601:                                             ; preds = %7598
  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 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %7606 = getelementptr inbounds [16384 x i8], ptr %315, i64 0, i64 0
  %7607 = load i64, ptr %306, align 8, !tbaa !54
  %7608 = call i32 @memcmp(ptr noundef %7605, ptr noundef %7606, i64 noundef %7607) #14
  %7609 = icmp eq i32 %7608, 0
  br i1 %7609, label %7663, label %7610

7610:                                             ; preds = %7602
  br label %7611

7611:                                             ; preds = %7610
  br label %7612

7612:                                             ; preds = %7611
  call void @llvm.lifetime.start.p0(i64 4, ptr %321) #11
  %7613 = call ptr @__errno_location() #12
  %7614 = load i32, ptr %7613, align 4, !tbaa !5
  store i32 %7614, ptr %321, align 4, !tbaa !5
  %7615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7616 = call i32 @s2n_print_stacktrace(ptr noundef %7615)
  %7617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7618 = trunc i8 %7617 to i1
  br i1 %7618, label %7619, label %7641

7619:                                             ; preds = %7612
  %7620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7621 = call i32 @fileno(ptr noundef %7620) #11
  %7622 = call i32 @isatty(i32 noundef %7621) #11
  %7623 = icmp ne i32 %7622, 0
  br i1 %7623, label %7624, label %7641

7624:                                             ; preds = %7619
  %7625 = load i32, ptr %321, align 4, !tbaa !5
  %7626 = call ptr @__errno_location() #12
  store i32 %7625, ptr %7626, align 4, !tbaa !5
  %7627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7628 = load i32, ptr @test_count, align 4, !tbaa !5
  %7629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7630 = load i32, ptr %7629, align 4, !tbaa !5
  %7631 = call ptr @s2n_strerror(i32 noundef %7630, ptr noundef @.str.4)
  %7632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7633 = load i32, ptr %7632, align 4, !tbaa !5
  %7634 = call ptr @s2n_strerror_debug(i32 noundef %7633, ptr noundef @.str.4)
  %7635 = call ptr @__errno_location() #12
  %7636 = load i32, ptr %7635, align 4, !tbaa !5
  %7637 = call ptr @strerror(i32 noundef %7636) #11
  %7638 = call ptr @__errno_location() #12
  %7639 = load i32, ptr %7638, align 4, !tbaa !5
  %7640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7627, ptr noundef @.str.2, i32 noundef %7628, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 500, ptr noundef %7631, ptr noundef %7634, ptr noundef %7637, i32 noundef %7639) #11
  br label %7658

7641:                                             ; preds = %7619, %7612
  %7642 = load i32, ptr %321, align 4, !tbaa !5
  %7643 = call ptr @__errno_location() #12
  store i32 %7642, ptr %7643, align 4, !tbaa !5
  %7644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7645 = load i32, ptr @test_count, align 4, !tbaa !5
  %7646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7647 = load i32, ptr %7646, align 4, !tbaa !5
  %7648 = call ptr @s2n_strerror(i32 noundef %7647, ptr noundef @.str.4)
  %7649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7650 = load i32, ptr %7649, align 4, !tbaa !5
  %7651 = call ptr @s2n_strerror_debug(i32 noundef %7650, ptr noundef @.str.4)
  %7652 = call ptr @__errno_location() #12
  %7653 = load i32, ptr %7652, align 4, !tbaa !5
  %7654 = call ptr @strerror(i32 noundef %7653) #11
  %7655 = call ptr @__errno_location() #12
  %7656 = load i32, ptr %7655, align 4, !tbaa !5
  %7657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7644, ptr noundef @.str.5, i32 noundef %7645, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 500, ptr noundef %7648, ptr noundef %7651, ptr noundef %7654, i32 noundef %7656) #11
  br label %7658

7658:                                             ; preds = %7641, %7624
  call void @llvm.lifetime.end.p0(i64 4, ptr %321) #11
  br label %7659

7659:                                             ; preds = %7658
  br label %7660

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

7661:                                             ; No predecessors!
  br label %7662

7662:                                             ; preds = %7661
  br label %7663

7663:                                             ; preds = %7662, %7602
  br label %7664

7664:                                             ; preds = %7663
  br label %7665

7665:                                             ; preds = %7664
  br label %7666

7666:                                             ; preds = %7665, %7598
  br label %7667

7667:                                             ; preds = %7666
  br label %7668

7668:                                             ; preds = %7667
  call void @llvm.lifetime.start.p0(i64 1, ptr %322) #11
  store i8 0, ptr %322, align 1, !tbaa !15
  br label %7669

7669:                                             ; preds = %7668
  %7670 = load i32, ptr @test_count, align 4, !tbaa !5
  %7671 = add nsw i32 %7670, 1
  store i32 %7671, ptr @test_count, align 4, !tbaa !5
  %7672 = call i32 @s2n_ktls_get_control_data(ptr noundef %318, i32 noundef 0, ptr noundef %322)
  %7673 = getelementptr inbounds %struct.s2n_result, ptr %323, i32 0, i32 0
  store i32 %7672, ptr %7673, align 4
  %7674 = getelementptr inbounds %struct.s2n_result, ptr %323, i32 0, i32 0
  %7675 = load i32, ptr %7674, align 4
  %7676 = call zeroext i1 @s2n_result_is_ok(i32 %7675)
  br i1 %7676, label %7730, label %7677

7677:                                             ; preds = %7669
  br label %7678

7678:                                             ; preds = %7677
  br label %7679

7679:                                             ; preds = %7678
  call void @llvm.lifetime.start.p0(i64 4, ptr %324) #11
  %7680 = call ptr @__errno_location() #12
  %7681 = load i32, ptr %7680, align 4, !tbaa !5
  store i32 %7681, ptr %324, align 4, !tbaa !5
  %7682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7683 = call i32 @s2n_print_stacktrace(ptr noundef %7682)
  %7684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7685 = trunc i8 %7684 to i1
  br i1 %7685, label %7686, label %7708

7686:                                             ; preds = %7679
  %7687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7688 = call i32 @fileno(ptr noundef %7687) #11
  %7689 = call i32 @isatty(i32 noundef %7688) #11
  %7690 = icmp ne i32 %7689, 0
  br i1 %7690, label %7691, label %7708

7691:                                             ; preds = %7686
  %7692 = load i32, ptr %324, align 4, !tbaa !5
  %7693 = call ptr @__errno_location() #12
  store i32 %7692, ptr %7693, align 4, !tbaa !5
  %7694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7695 = load i32, ptr @test_count, align 4, !tbaa !5
  %7696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7697 = load i32, ptr %7696, align 4, !tbaa !5
  %7698 = call ptr @s2n_strerror(i32 noundef %7697, ptr noundef @.str.4)
  %7699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7700 = load i32, ptr %7699, align 4, !tbaa !5
  %7701 = call ptr @s2n_strerror_debug(i32 noundef %7700, ptr noundef @.str.4)
  %7702 = call ptr @__errno_location() #12
  %7703 = load i32, ptr %7702, align 4, !tbaa !5
  %7704 = call ptr @strerror(i32 noundef %7703) #11
  %7705 = call ptr @__errno_location() #12
  %7706 = load i32, ptr %7705, align 4, !tbaa !5
  %7707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7694, ptr noundef @.str.2, i32 noundef %7695, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 502, ptr noundef %7698, ptr noundef %7701, ptr noundef %7704, i32 noundef %7706) #11
  br label %7725

7708:                                             ; preds = %7686, %7679
  %7709 = load i32, ptr %324, align 4, !tbaa !5
  %7710 = call ptr @__errno_location() #12
  store i32 %7709, ptr %7710, align 4, !tbaa !5
  %7711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7712 = load i32, ptr @test_count, align 4, !tbaa !5
  %7713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7714 = load i32, ptr %7713, align 4, !tbaa !5
  %7715 = call ptr @s2n_strerror(i32 noundef %7714, ptr noundef @.str.4)
  %7716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7717 = load i32, ptr %7716, align 4, !tbaa !5
  %7718 = call ptr @s2n_strerror_debug(i32 noundef %7717, ptr noundef @.str.4)
  %7719 = call ptr @__errno_location() #12
  %7720 = load i32, ptr %7719, align 4, !tbaa !5
  %7721 = call ptr @strerror(i32 noundef %7720) #11
  %7722 = call ptr @__errno_location() #12
  %7723 = load i32, ptr %7722, align 4, !tbaa !5
  %7724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7711, ptr noundef @.str.5, i32 noundef %7712, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 502, ptr noundef %7715, ptr noundef %7718, ptr noundef %7721, i32 noundef %7723) #11
  br label %7725

7725:                                             ; preds = %7708, %7691
  call void @llvm.lifetime.end.p0(i64 4, ptr %324) #11
  br label %7726

7726:                                             ; preds = %7725
  br label %7727

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

7728:                                             ; No predecessors!
  br label %7729

7729:                                             ; preds = %7728
  br label %7730

7730:                                             ; preds = %7729, %7669
  br label %7731

7731:                                             ; preds = %7730
  br label %7732

7732:                                             ; preds = %7731
  br label %7733

7733:                                             ; preds = %7732
  %7734 = load i32, ptr @test_count, align 4, !tbaa !5
  %7735 = add nsw i32 %7734, 1
  store i32 %7735, ptr @test_count, align 4, !tbaa !5
  %7736 = load i8, ptr %322, align 1, !tbaa !15
  %7737 = zext i8 %7736 to i32
  %7738 = icmp eq i32 %7737, 43
  br i1 %7738, label %7792, label %7739

7739:                                             ; preds = %7733
  br label %7740

7740:                                             ; preds = %7739
  br label %7741

7741:                                             ; preds = %7740
  call void @llvm.lifetime.start.p0(i64 4, ptr %325) #11
  %7742 = call ptr @__errno_location() #12
  %7743 = load i32, ptr %7742, align 4, !tbaa !5
  store i32 %7743, ptr %325, align 4, !tbaa !5
  %7744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7745 = call i32 @s2n_print_stacktrace(ptr noundef %7744)
  %7746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7747 = trunc i8 %7746 to i1
  br i1 %7747, label %7748, label %7770

7748:                                             ; preds = %7741
  %7749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7750 = call i32 @fileno(ptr noundef %7749) #11
  %7751 = call i32 @isatty(i32 noundef %7750) #11
  %7752 = icmp ne i32 %7751, 0
  br i1 %7752, label %7753, label %7770

7753:                                             ; preds = %7748
  %7754 = load i32, ptr %325, align 4, !tbaa !5
  %7755 = call ptr @__errno_location() #12
  store i32 %7754, ptr %7755, align 4, !tbaa !5
  %7756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7757 = load i32, ptr @test_count, align 4, !tbaa !5
  %7758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7759 = load i32, ptr %7758, align 4, !tbaa !5
  %7760 = call ptr @s2n_strerror(i32 noundef %7759, ptr noundef @.str.4)
  %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_debug(i32 noundef %7762, ptr noundef @.str.4)
  %7764 = call ptr @__errno_location() #12
  %7765 = load i32, ptr %7764, align 4, !tbaa !5
  %7766 = call ptr @strerror(i32 noundef %7765) #11
  %7767 = call ptr @__errno_location() #12
  %7768 = load i32, ptr %7767, align 4, !tbaa !5
  %7769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7756, ptr noundef @.str.2, i32 noundef %7757, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 503, ptr noundef %7760, ptr noundef %7763, ptr noundef %7766, i32 noundef %7768) #11
  br label %7787

7770:                                             ; preds = %7748, %7741
  %7771 = load i32, ptr %325, align 4, !tbaa !5
  %7772 = call ptr @__errno_location() #12
  store i32 %7771, ptr %7772, align 4, !tbaa !5
  %7773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7774 = load i32, ptr @test_count, align 4, !tbaa !5
  %7775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7776 = load i32, ptr %7775, align 4, !tbaa !5
  %7777 = call ptr @s2n_strerror(i32 noundef %7776, ptr noundef @.str.4)
  %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_debug(i32 noundef %7779, ptr noundef @.str.4)
  %7781 = call ptr @__errno_location() #12
  %7782 = load i32, ptr %7781, align 4, !tbaa !5
  %7783 = call ptr @strerror(i32 noundef %7782) #11
  %7784 = call ptr @__errno_location() #12
  %7785 = load i32, ptr %7784, align 4, !tbaa !5
  %7786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7773, ptr noundef @.str.5, i32 noundef %7774, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 503, ptr noundef %7777, ptr noundef %7780, ptr noundef %7783, i32 noundef %7785) #11
  br label %7787

7787:                                             ; preds = %7770, %7753
  call void @llvm.lifetime.end.p0(i64 4, ptr %325) #11
  br label %7788

7788:                                             ; preds = %7787
  br label %7789

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

7790:                                             ; No predecessors!
  br label %7791

7791:                                             ; preds = %7790
  br label %7792

7792:                                             ; preds = %7791, %7733
  br label %7793

7793:                                             ; preds = %7792
  br label %7794

7794:                                             ; preds = %7793
  br label %7795

7795:                                             ; preds = %7794
  %7796 = load i32, ptr @test_count, align 4, !tbaa !5
  %7797 = add nsw i32 %7796, 1
  store i32 %7797, ptr @test_count, align 4, !tbaa !5
  %7798 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %303, i32 0, i32 0
  %7799 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %7798, i32 0, i32 2
  %7800 = load i64, ptr %7799, align 8, !tbaa !55
  %7801 = icmp eq i64 %7800, 1
  br i1 %7801, label %7855, label %7802

7802:                                             ; preds = %7795
  br label %7803

7803:                                             ; preds = %7802
  br label %7804

7804:                                             ; preds = %7803
  call void @llvm.lifetime.start.p0(i64 4, ptr %326) #11
  %7805 = call ptr @__errno_location() #12
  %7806 = load i32, ptr %7805, align 4, !tbaa !5
  store i32 %7806, ptr %326, align 4, !tbaa !5
  %7807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7808 = call i32 @s2n_print_stacktrace(ptr noundef %7807)
  %7809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7810 = trunc i8 %7809 to i1
  br i1 %7810, label %7811, label %7833

7811:                                             ; preds = %7804
  %7812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7813 = call i32 @fileno(ptr noundef %7812) #11
  %7814 = call i32 @isatty(i32 noundef %7813) #11
  %7815 = icmp ne i32 %7814, 0
  br i1 %7815, label %7816, label %7833

7816:                                             ; preds = %7811
  %7817 = load i32, ptr %326, align 4, !tbaa !5
  %7818 = call ptr @__errno_location() #12
  store i32 %7817, ptr %7818, align 4, !tbaa !5
  %7819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7820 = load i32, ptr @test_count, align 4, !tbaa !5
  %7821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7822 = load i32, ptr %7821, align 4, !tbaa !5
  %7823 = call ptr @s2n_strerror(i32 noundef %7822, ptr noundef @.str.4)
  %7824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7825 = load i32, ptr %7824, align 4, !tbaa !5
  %7826 = call ptr @s2n_strerror_debug(i32 noundef %7825, ptr noundef @.str.4)
  %7827 = call ptr @__errno_location() #12
  %7828 = load i32, ptr %7827, align 4, !tbaa !5
  %7829 = call ptr @strerror(i32 noundef %7828) #11
  %7830 = call ptr @__errno_location() #12
  %7831 = load i32, ptr %7830, align 4, !tbaa !5
  %7832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7819, ptr noundef @.str.2, i32 noundef %7820, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 505, ptr noundef %7823, ptr noundef %7826, ptr noundef %7829, i32 noundef %7831) #11
  br label %7850

7833:                                             ; preds = %7811, %7804
  %7834 = load i32, ptr %326, align 4, !tbaa !5
  %7835 = call ptr @__errno_location() #12
  store i32 %7834, ptr %7835, align 4, !tbaa !5
  %7836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7837 = load i32, ptr @test_count, align 4, !tbaa !5
  %7838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7839 = load i32, ptr %7838, align 4, !tbaa !5
  %7840 = call ptr @s2n_strerror(i32 noundef %7839, ptr noundef @.str.4)
  %7841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7842 = load i32, ptr %7841, align 4, !tbaa !5
  %7843 = call ptr @s2n_strerror_debug(i32 noundef %7842, ptr noundef @.str.4)
  %7844 = call ptr @__errno_location() #12
  %7845 = load i32, ptr %7844, align 4, !tbaa !5
  %7846 = call ptr @strerror(i32 noundef %7845) #11
  %7847 = call ptr @__errno_location() #12
  %7848 = load i32, ptr %7847, align 4, !tbaa !5
  %7849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7836, ptr noundef @.str.5, i32 noundef %7837, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 505, ptr noundef %7840, ptr noundef %7843, ptr noundef %7846, i32 noundef %7848) #11
  br label %7850

7850:                                             ; preds = %7833, %7816
  call void @llvm.lifetime.end.p0(i64 4, ptr %326) #11
  br label %7851

7851:                                             ; preds = %7850
  br label %7852

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

7853:                                             ; No predecessors!
  br label %7854

7854:                                             ; preds = %7853
  br label %7855

7855:                                             ; preds = %7854, %7795
  br label %7856

7856:                                             ; preds = %7855
  br label %7857

7857:                                             ; preds = %7856
  br label %7858

7858:                                             ; preds = %7857
  %7859 = load i32, ptr @test_count, align 4, !tbaa !5
  %7860 = add nsw i32 %7859, 1
  store i32 %7860, ptr @test_count, align 4, !tbaa !5
  %7861 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %303, i32 0, i32 0
  %7862 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %7861, i32 0, i32 3
  %7863 = load i64, ptr %7862, align 8, !tbaa !70
  %7864 = icmp eq i64 %7863, 1
  br i1 %7864, label %7918, label %7865

7865:                                             ; preds = %7858
  br label %7866

7866:                                             ; preds = %7865
  br label %7867

7867:                                             ; preds = %7866
  call void @llvm.lifetime.start.p0(i64 4, ptr %327) #11
  %7868 = call ptr @__errno_location() #12
  %7869 = load i32, ptr %7868, align 4, !tbaa !5
  store i32 %7869, ptr %327, align 4, !tbaa !5
  %7870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7871 = call i32 @s2n_print_stacktrace(ptr noundef %7870)
  %7872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7873 = trunc i8 %7872 to i1
  br i1 %7873, label %7874, label %7896

7874:                                             ; preds = %7867
  %7875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7876 = call i32 @fileno(ptr noundef %7875) #11
  %7877 = call i32 @isatty(i32 noundef %7876) #11
  %7878 = icmp ne i32 %7877, 0
  br i1 %7878, label %7879, label %7896

7879:                                             ; preds = %7874
  %7880 = load i32, ptr %327, align 4, !tbaa !5
  %7881 = call ptr @__errno_location() #12
  store i32 %7880, ptr %7881, align 4, !tbaa !5
  %7882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7883 = load i32, ptr @test_count, align 4, !tbaa !5
  %7884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7885 = load i32, ptr %7884, align 4, !tbaa !5
  %7886 = call ptr @s2n_strerror(i32 noundef %7885, ptr noundef @.str.4)
  %7887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7888 = load i32, ptr %7887, align 4, !tbaa !5
  %7889 = call ptr @s2n_strerror_debug(i32 noundef %7888, ptr noundef @.str.4)
  %7890 = call ptr @__errno_location() #12
  %7891 = load i32, ptr %7890, align 4, !tbaa !5
  %7892 = call ptr @strerror(i32 noundef %7891) #11
  %7893 = call ptr @__errno_location() #12
  %7894 = load i32, ptr %7893, align 4, !tbaa !5
  %7895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7882, ptr noundef @.str.2, i32 noundef %7883, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 506, ptr noundef %7886, ptr noundef %7889, ptr noundef %7892, i32 noundef %7894) #11
  br label %7913

7896:                                             ; preds = %7874, %7867
  %7897 = load i32, ptr %327, align 4, !tbaa !5
  %7898 = call ptr @__errno_location() #12
  store i32 %7897, ptr %7898, align 4, !tbaa !5
  %7899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7900 = load i32, ptr @test_count, align 4, !tbaa !5
  %7901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7902 = load i32, ptr %7901, align 4, !tbaa !5
  %7903 = call ptr @s2n_strerror(i32 noundef %7902, ptr noundef @.str.4)
  %7904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7905 = load i32, ptr %7904, align 4, !tbaa !5
  %7906 = call ptr @s2n_strerror_debug(i32 noundef %7905, ptr noundef @.str.4)
  %7907 = call ptr @__errno_location() #12
  %7908 = load i32, ptr %7907, align 4, !tbaa !5
  %7909 = call ptr @strerror(i32 noundef %7908) #11
  %7910 = call ptr @__errno_location() #12
  %7911 = load i32, ptr %7910, align 4, !tbaa !5
  %7912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7899, ptr noundef @.str.5, i32 noundef %7900, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 506, ptr noundef %7903, ptr noundef %7906, ptr noundef %7909, i32 noundef %7911) #11
  br label %7913

7913:                                             ; preds = %7896, %7879
  call void @llvm.lifetime.end.p0(i64 4, ptr %327) #11
  br label %7914

7914:                                             ; preds = %7913
  br label %7915

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

7916:                                             ; No predecessors!
  br label %7917

7917:                                             ; preds = %7916
  br label %7918

7918:                                             ; preds = %7917, %7858
  br label %7919

7919:                                             ; preds = %7918
  br label %7920

7920:                                             ; preds = %7919
  call void @llvm.lifetime.end.p0(i64 1, ptr %322) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %319) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %318) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %317) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %316) #11
  call void @llvm.lifetime.end.p0(i64 16384, ptr %315) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %313) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %310) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %309) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %308) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %307) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %306) #11
  %7921 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef %303)
  %7922 = getelementptr inbounds %struct.s2n_result, ptr %328, i32 0, i32 0
  store i32 %7921, ptr %7922, align 4
  call void @llvm.lifetime.end.p0(i64 192, ptr %303) #11
  %7923 = call i32 @s2n_connection_ptr_free(ptr noundef %302)
  %7924 = getelementptr inbounds %struct.s2n_result, ptr %329, i32 0, i32 0
  store i32 %7923, ptr %7924, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %302) #11
  %7925 = call i32 @s2n_connection_ptr_free(ptr noundef %301)
  %7926 = getelementptr inbounds %struct.s2n_result, ptr %330, i32 0, i32 0
  store i32 %7925, ptr %7926, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %301) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %331) #11
  %7927 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7927, ptr %331, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %332) #11
  %7928 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7928, ptr %332, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr %333) #11
  call void @llvm.memset.p0.i64(ptr align 8 %333, i8 0, i64 192, i1 false)
  br label %7929

7929:                                             ; preds = %7920
  %7930 = load i32, ptr @test_count, align 4, !tbaa !5
  %7931 = add nsw i32 %7930, 1
  store i32 %7931, ptr @test_count, align 4, !tbaa !5
  %7932 = load ptr, ptr %331, align 8, !tbaa !9
  %7933 = load ptr, ptr %332, align 8, !tbaa !9
  %7934 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %7932, ptr noundef %7933, ptr noundef %333)
  %7935 = getelementptr inbounds %struct.s2n_result, ptr %334, i32 0, i32 0
  store i32 %7934, ptr %7935, align 4
  %7936 = getelementptr inbounds %struct.s2n_result, ptr %334, i32 0, i32 0
  %7937 = load i32, ptr %7936, align 4
  %7938 = call zeroext i1 @s2n_result_is_ok(i32 %7937)
  br i1 %7938, label %7992, label %7939

7939:                                             ; preds = %7929
  br label %7940

7940:                                             ; preds = %7939
  br label %7941

7941:                                             ; preds = %7940
  call void @llvm.lifetime.start.p0(i64 4, ptr %335) #11
  %7942 = call ptr @__errno_location() #12
  %7943 = load i32, ptr %7942, align 4, !tbaa !5
  store i32 %7943, ptr %335, align 4, !tbaa !5
  %7944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7945 = call i32 @s2n_print_stacktrace(ptr noundef %7944)
  %7946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7947 = trunc i8 %7946 to i1
  br i1 %7947, label %7948, label %7970

7948:                                             ; preds = %7941
  %7949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7950 = call i32 @fileno(ptr noundef %7949) #11
  %7951 = call i32 @isatty(i32 noundef %7950) #11
  %7952 = icmp ne i32 %7951, 0
  br i1 %7952, label %7953, label %7970

7953:                                             ; preds = %7948
  %7954 = load i32, ptr %335, align 4, !tbaa !5
  %7955 = call ptr @__errno_location() #12
  store i32 %7954, ptr %7955, align 4, !tbaa !5
  %7956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7957 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7959, ptr noundef @.str.4)
  %7961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7962 = load i32, ptr %7961, align 4, !tbaa !5
  %7963 = call ptr @s2n_strerror_debug(i32 noundef %7962, ptr noundef @.str.4)
  %7964 = call ptr @__errno_location() #12
  %7965 = load i32, ptr %7964, align 4, !tbaa !5
  %7966 = call ptr @strerror(i32 noundef %7965) #11
  %7967 = call ptr @__errno_location() #12
  %7968 = load i32, ptr %7967, align 4, !tbaa !5
  %7969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7956, ptr noundef @.str.2, i32 noundef %7957, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 517, ptr noundef %7960, ptr noundef %7963, ptr noundef %7966, i32 noundef %7968) #11
  br label %7987

7970:                                             ; preds = %7948, %7941
  %7971 = load i32, ptr %335, align 4, !tbaa !5
  %7972 = call ptr @__errno_location() #12
  store i32 %7971, ptr %7972, align 4, !tbaa !5
  %7973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7974 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7976, ptr noundef @.str.4)
  %7978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7979 = load i32, ptr %7978, align 4, !tbaa !5
  %7980 = call ptr @s2n_strerror_debug(i32 noundef %7979, ptr noundef @.str.4)
  %7981 = call ptr @__errno_location() #12
  %7982 = load i32, ptr %7981, align 4, !tbaa !5
  %7983 = call ptr @strerror(i32 noundef %7982) #11
  %7984 = call ptr @__errno_location() #12
  %7985 = load i32, ptr %7984, align 4, !tbaa !5
  %7986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7973, ptr noundef @.str.5, i32 noundef %7974, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 517, ptr noundef %7977, ptr noundef %7980, ptr noundef %7983, i32 noundef %7985) #11
  br label %7987

7987:                                             ; preds = %7970, %7953
  call void @llvm.lifetime.end.p0(i64 4, ptr %335) #11
  br label %7988

7988:                                             ; preds = %7987
  br label %7989

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

7990:                                             ; No predecessors!
  br label %7991

7991:                                             ; preds = %7990
  br label %7992

7992:                                             ; preds = %7991, %7929
  br label %7993

7993:                                             ; preds = %7992
  br label %7994

7994:                                             ; preds = %7993
  call void @llvm.lifetime.start.p0(i64 8, ptr %336) #11
  store i64 2, ptr %336, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 8, ptr %337) #11
  store i64 5, ptr %337, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 8, ptr %338) #11
  store i64 10, ptr %338, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 16, ptr %339) #11
  %7995 = getelementptr inbounds %struct.iovec, ptr %339, i32 0, i32 0
  %7996 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  store ptr %7996, ptr %7995, align 8, !tbaa !16
  %7997 = getelementptr inbounds %struct.iovec, ptr %339, i32 0, i32 1
  %7998 = load i64, ptr %337, align 8, !tbaa !54
  store i64 %7998, ptr %7997, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 56, ptr %340) #11
  %7999 = getelementptr inbounds %struct.msghdr, ptr %340, i32 0, i32 0
  store ptr null, ptr %7999, align 8, !tbaa !20
  %8000 = getelementptr inbounds %struct.msghdr, ptr %340, i32 0, i32 1
  store i32 0, ptr %8000, align 8, !tbaa !22
  %8001 = getelementptr inbounds %struct.msghdr, ptr %340, i32 0, i32 2
  store ptr %339, ptr %8001, align 8, !tbaa !23
  %8002 = getelementptr inbounds %struct.msghdr, ptr %340, i32 0, i32 3
  store i64 1, ptr %8002, align 8, !tbaa !24
  %8003 = getelementptr inbounds %struct.msghdr, ptr %340, i32 0, i32 4
  store ptr null, ptr %8003, align 8, !tbaa !25
  %8004 = getelementptr inbounds %struct.msghdr, ptr %340, i32 0, i32 5
  store i64 0, ptr %8004, align 8, !tbaa !26
  %8005 = getelementptr inbounds %struct.msghdr, ptr %340, i32 0, i32 6
  store i32 0, ptr %8005, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 100, ptr %341) #11
  call void @llvm.memset.p0.i64(ptr align 16 %341, i8 0, i64 100, i1 false)
  br label %8006

8006:                                             ; preds = %7994
  %8007 = load i32, ptr @test_count, align 4, !tbaa !5
  %8008 = add nsw i32 %8007, 1
  store i32 %8008, ptr @test_count, align 4, !tbaa !5
  %8009 = getelementptr inbounds [100 x i8], ptr %341, i64 0, i64 0
  %8010 = call i32 @s2n_ktls_set_control_data(ptr noundef %340, ptr noundef %8009, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43)
  %8011 = getelementptr inbounds %struct.s2n_result, ptr %342, i32 0, i32 0
  store i32 %8010, ptr %8011, align 4
  %8012 = getelementptr inbounds %struct.s2n_result, ptr %342, i32 0, i32 0
  %8013 = load i32, ptr %8012, align 4
  %8014 = call zeroext i1 @s2n_result_is_ok(i32 %8013)
  br i1 %8014, label %8068, label %8015

8015:                                             ; preds = %8006
  br label %8016

8016:                                             ; preds = %8015
  br label %8017

8017:                                             ; preds = %8016
  call void @llvm.lifetime.start.p0(i64 4, ptr %343) #11
  %8018 = call ptr @__errno_location() #12
  %8019 = load i32, ptr %8018, align 4, !tbaa !5
  store i32 %8019, ptr %343, align 4, !tbaa !5
  %8020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8021 = call i32 @s2n_print_stacktrace(ptr noundef %8020)
  %8022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8023 = trunc i8 %8022 to i1
  br i1 %8023, label %8024, label %8046

8024:                                             ; preds = %8017
  %8025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8026 = call i32 @fileno(ptr noundef %8025) #11
  %8027 = call i32 @isatty(i32 noundef %8026) #11
  %8028 = icmp ne i32 %8027, 0
  br i1 %8028, label %8029, label %8046

8029:                                             ; preds = %8024
  %8030 = load i32, ptr %343, align 4, !tbaa !5
  %8031 = call ptr @__errno_location() #12
  store i32 %8030, ptr %8031, align 4, !tbaa !5
  %8032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8033 = load i32, ptr @test_count, align 4, !tbaa !5
  %8034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8035 = load i32, ptr %8034, align 4, !tbaa !5
  %8036 = call ptr @s2n_strerror(i32 noundef %8035, ptr noundef @.str.4)
  %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_debug(i32 noundef %8038, ptr noundef @.str.4)
  %8040 = call ptr @__errno_location() #12
  %8041 = load i32, ptr %8040, align 4, !tbaa !5
  %8042 = call ptr @strerror(i32 noundef %8041) #11
  %8043 = call ptr @__errno_location() #12
  %8044 = load i32, ptr %8043, align 4, !tbaa !5
  %8045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8032, ptr noundef @.str.2, i32 noundef %8033, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 528, ptr noundef %8036, ptr noundef %8039, ptr noundef %8042, i32 noundef %8044) #11
  br label %8063

8046:                                             ; preds = %8024, %8017
  %8047 = load i32, ptr %343, align 4, !tbaa !5
  %8048 = call ptr @__errno_location() #12
  store i32 %8047, ptr %8048, align 4, !tbaa !5
  %8049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8050 = load i32, ptr @test_count, align 4, !tbaa !5
  %8051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8052 = load i32, ptr %8051, align 4, !tbaa !5
  %8053 = call ptr @s2n_strerror(i32 noundef %8052, ptr noundef @.str.4)
  %8054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8055 = load i32, ptr %8054, align 4, !tbaa !5
  %8056 = call ptr @s2n_strerror_debug(i32 noundef %8055, ptr noundef @.str.4)
  %8057 = call ptr @__errno_location() #12
  %8058 = load i32, ptr %8057, align 4, !tbaa !5
  %8059 = call ptr @strerror(i32 noundef %8058) #11
  %8060 = call ptr @__errno_location() #12
  %8061 = load i32, ptr %8060, align 4, !tbaa !5
  %8062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8049, ptr noundef @.str.5, i32 noundef %8050, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 528, ptr noundef %8053, ptr noundef %8056, ptr noundef %8059, i32 noundef %8061) #11
  br label %8063

8063:                                             ; preds = %8046, %8029
  call void @llvm.lifetime.end.p0(i64 4, ptr %343) #11
  br label %8064

8064:                                             ; preds = %8063
  br label %8065

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

8066:                                             ; No predecessors!
  br label %8067

8067:                                             ; preds = %8066
  br label %8068

8068:                                             ; preds = %8067, %8006
  br label %8069

8069:                                             ; preds = %8068
  br label %8070

8070:                                             ; preds = %8069
  call void @llvm.lifetime.start.p0(i64 8, ptr %344) #11
  store i64 0, ptr %344, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 8, ptr %345) #11
  store i64 0, ptr %345, align 8, !tbaa !54
  br label %8071

8071:                                             ; preds = %8150, %8070
  %8072 = load i64, ptr %345, align 8, !tbaa !54
  %8073 = load i64, ptr %336, align 8, !tbaa !54
  %8074 = icmp ult i64 %8072, %8073
  br i1 %8074, label %8076, label %8075

8075:                                             ; preds = %8071
  call void @llvm.lifetime.end.p0(i64 8, ptr %345) #11
  br label %8153

8076:                                             ; preds = %8071
  %8077 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %8078 = load i64, ptr %344, align 8, !tbaa !54
  %8079 = getelementptr inbounds i8, ptr %8077, i64 %8078
  %8080 = getelementptr inbounds %struct.iovec, ptr %339, i32 0, i32 0
  store ptr %8079, ptr %8080, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %346) #11
  %8081 = load ptr, ptr %331, align 8, !tbaa !9
  %8082 = getelementptr inbounds %struct.s2n_connection, ptr %8081, i32 0, i32 8
  %8083 = load ptr, ptr %8082, align 8, !tbaa !28
  %8084 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %8083, ptr noundef %340)
  store i64 %8084, ptr %346, align 8, !tbaa !54
  br label %8085

8085:                                             ; preds = %8076
  %8086 = load i32, ptr @test_count, align 4, !tbaa !5
  %8087 = add nsw i32 %8086, 1
  store i32 %8087, ptr @test_count, align 4, !tbaa !5
  %8088 = load i64, ptr %346, align 8, !tbaa !54
  %8089 = load i64, ptr %337, align 8, !tbaa !54
  %8090 = icmp eq i64 %8088, %8089
  br i1 %8090, label %8144, label %8091

8091:                                             ; preds = %8085
  br label %8092

8092:                                             ; preds = %8091
  br label %8093

8093:                                             ; preds = %8092
  call void @llvm.lifetime.start.p0(i64 4, ptr %347) #11
  %8094 = call ptr @__errno_location() #12
  %8095 = load i32, ptr %8094, align 4, !tbaa !5
  store i32 %8095, ptr %347, align 4, !tbaa !5
  %8096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8097 = call i32 @s2n_print_stacktrace(ptr noundef %8096)
  %8098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8099 = trunc i8 %8098 to i1
  br i1 %8099, label %8100, label %8122

8100:                                             ; preds = %8093
  %8101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8102 = call i32 @fileno(ptr noundef %8101) #11
  %8103 = call i32 @isatty(i32 noundef %8102) #11
  %8104 = icmp ne i32 %8103, 0
  br i1 %8104, label %8105, label %8122

8105:                                             ; preds = %8100
  %8106 = load i32, ptr %347, align 4, !tbaa !5
  %8107 = call ptr @__errno_location() #12
  store i32 %8106, ptr %8107, align 4, !tbaa !5
  %8108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8109 = load i32, ptr @test_count, align 4, !tbaa !5
  %8110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8111 = load i32, ptr %8110, align 4, !tbaa !5
  %8112 = call ptr @s2n_strerror(i32 noundef %8111, ptr noundef @.str.4)
  %8113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8114 = load i32, ptr %8113, align 4, !tbaa !5
  %8115 = call ptr @s2n_strerror_debug(i32 noundef %8114, ptr noundef @.str.4)
  %8116 = call ptr @__errno_location() #12
  %8117 = load i32, ptr %8116, align 4, !tbaa !5
  %8118 = call ptr @strerror(i32 noundef %8117) #11
  %8119 = call ptr @__errno_location() #12
  %8120 = load i32, ptr %8119, align 4, !tbaa !5
  %8121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8108, ptr noundef @.str.2, i32 noundef %8109, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 535, ptr noundef %8112, ptr noundef %8115, ptr noundef %8118, i32 noundef %8120) #11
  br label %8139

8122:                                             ; preds = %8100, %8093
  %8123 = load i32, ptr %347, align 4, !tbaa !5
  %8124 = call ptr @__errno_location() #12
  store i32 %8123, ptr %8124, align 4, !tbaa !5
  %8125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8126 = load i32, ptr @test_count, align 4, !tbaa !5
  %8127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8128 = load i32, ptr %8127, align 4, !tbaa !5
  %8129 = call ptr @s2n_strerror(i32 noundef %8128, ptr noundef @.str.4)
  %8130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8131 = load i32, ptr %8130, align 4, !tbaa !5
  %8132 = call ptr @s2n_strerror_debug(i32 noundef %8131, ptr noundef @.str.4)
  %8133 = call ptr @__errno_location() #12
  %8134 = load i32, ptr %8133, align 4, !tbaa !5
  %8135 = call ptr @strerror(i32 noundef %8134) #11
  %8136 = call ptr @__errno_location() #12
  %8137 = load i32, ptr %8136, align 4, !tbaa !5
  %8138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8125, ptr noundef @.str.5, i32 noundef %8126, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 535, ptr noundef %8129, ptr noundef %8132, ptr noundef %8135, i32 noundef %8137) #11
  br label %8139

8139:                                             ; preds = %8122, %8105
  call void @llvm.lifetime.end.p0(i64 4, ptr %347) #11
  br label %8140

8140:                                             ; preds = %8139
  br label %8141

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

8142:                                             ; No predecessors!
  br label %8143

8143:                                             ; preds = %8142
  br label %8144

8144:                                             ; preds = %8143, %8085
  br label %8145

8145:                                             ; preds = %8144
  br label %8146

8146:                                             ; preds = %8145
  %8147 = load i64, ptr %346, align 8, !tbaa !54
  %8148 = load i64, ptr %344, align 8, !tbaa !54
  %8149 = add i64 %8148, %8147
  store i64 %8149, ptr %344, align 8, !tbaa !54
  call void @llvm.lifetime.end.p0(i64 8, ptr %346) #11
  br label %8150

8150:                                             ; preds = %8146
  %8151 = load i64, ptr %345, align 8, !tbaa !54
  %8152 = add i64 %8151, 1
  store i64 %8152, ptr %345, align 8, !tbaa !54
  br label %8071, !llvm.loop !73

8153:                                             ; preds = %8075
  call void @llvm.lifetime.start.p0(i64 16384, ptr %348) #11
  call void @llvm.memset.p0.i64(ptr align 16 %348, i8 0, i64 16384, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr %349) #11
  call void @llvm.memset.p0.i64(ptr align 16 %349, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %350) #11
  %8154 = getelementptr inbounds %struct.iovec, ptr %350, i32 0, i32 0
  %8155 = getelementptr inbounds [16384 x i8], ptr %348, i64 0, i64 0
  store ptr %8155, ptr %8154, align 8, !tbaa !16
  %8156 = getelementptr inbounds %struct.iovec, ptr %350, i32 0, i32 1
  %8157 = load i64, ptr %338, align 8, !tbaa !54
  store i64 %8157, ptr %8156, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 56, ptr %351) #11
  %8158 = getelementptr inbounds %struct.msghdr, ptr %351, i32 0, i32 0
  store ptr null, ptr %8158, align 8, !tbaa !20
  %8159 = getelementptr inbounds %struct.msghdr, ptr %351, i32 0, i32 1
  store i32 0, ptr %8159, align 8, !tbaa !22
  %8160 = getelementptr inbounds %struct.msghdr, ptr %351, i32 0, i32 2
  store ptr %350, ptr %8160, align 8, !tbaa !23
  %8161 = getelementptr inbounds %struct.msghdr, ptr %351, i32 0, i32 3
  store i64 1, ptr %8161, align 8, !tbaa !24
  %8162 = getelementptr inbounds %struct.msghdr, ptr %351, i32 0, i32 4
  %8163 = getelementptr inbounds [100 x i8], ptr %349, i64 0, i64 0
  store ptr %8163, ptr %8162, align 8, !tbaa !25
  %8164 = getelementptr inbounds %struct.msghdr, ptr %351, i32 0, i32 5
  store i64 100, ptr %8164, align 8, !tbaa !26
  %8165 = getelementptr inbounds %struct.msghdr, ptr %351, i32 0, i32 6
  store i32 0, ptr %8165, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr %352) #11
  %8166 = load ptr, ptr %332, align 8, !tbaa !9
  %8167 = getelementptr inbounds %struct.s2n_connection, ptr %8166, i32 0, i32 9
  %8168 = load ptr, ptr %8167, align 8, !tbaa !69
  %8169 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %8168, ptr noundef %351)
  store i64 %8169, ptr %352, align 8, !tbaa !54
  br label %8170

8170:                                             ; preds = %8153
  %8171 = load i32, ptr @test_count, align 4, !tbaa !5
  %8172 = add nsw i32 %8171, 1
  store i32 %8172, ptr @test_count, align 4, !tbaa !5
  %8173 = load i64, ptr %352, align 8, !tbaa !54
  %8174 = load i64, ptr %338, align 8, !tbaa !54
  %8175 = icmp eq i64 %8173, %8174
  br i1 %8175, label %8229, label %8176

8176:                                             ; preds = %8170
  br label %8177

8177:                                             ; preds = %8176
  br label %8178

8178:                                             ; preds = %8177
  call void @llvm.lifetime.start.p0(i64 4, ptr %353) #11
  %8179 = call ptr @__errno_location() #12
  %8180 = load i32, ptr %8179, align 4, !tbaa !5
  store i32 %8180, ptr %353, align 4, !tbaa !5
  %8181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8182 = call i32 @s2n_print_stacktrace(ptr noundef %8181)
  %8183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8184 = trunc i8 %8183 to i1
  br i1 %8184, label %8185, label %8207

8185:                                             ; preds = %8178
  %8186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8187 = call i32 @fileno(ptr noundef %8186) #11
  %8188 = call i32 @isatty(i32 noundef %8187) #11
  %8189 = icmp ne i32 %8188, 0
  br i1 %8189, label %8190, label %8207

8190:                                             ; preds = %8185
  %8191 = load i32, ptr %353, align 4, !tbaa !5
  %8192 = call ptr @__errno_location() #12
  store i32 %8191, ptr %8192, align 4, !tbaa !5
  %8193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8194 = load i32, ptr @test_count, align 4, !tbaa !5
  %8195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8196 = load i32, ptr %8195, align 4, !tbaa !5
  %8197 = call ptr @s2n_strerror(i32 noundef %8196, ptr noundef @.str.4)
  %8198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8199 = load i32, ptr %8198, align 4, !tbaa !5
  %8200 = call ptr @s2n_strerror_debug(i32 noundef %8199, ptr noundef @.str.4)
  %8201 = call ptr @__errno_location() #12
  %8202 = load i32, ptr %8201, align 4, !tbaa !5
  %8203 = call ptr @strerror(i32 noundef %8202) #11
  %8204 = call ptr @__errno_location() #12
  %8205 = load i32, ptr %8204, align 4, !tbaa !5
  %8206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8193, ptr noundef @.str.2, i32 noundef %8194, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 549, ptr noundef %8197, ptr noundef %8200, ptr noundef %8203, i32 noundef %8205) #11
  br label %8224

8207:                                             ; preds = %8185, %8178
  %8208 = load i32, ptr %353, align 4, !tbaa !5
  %8209 = call ptr @__errno_location() #12
  store i32 %8208, ptr %8209, align 4, !tbaa !5
  %8210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8211 = load i32, ptr @test_count, align 4, !tbaa !5
  %8212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8213 = load i32, ptr %8212, align 4, !tbaa !5
  %8214 = call ptr @s2n_strerror(i32 noundef %8213, ptr noundef @.str.4)
  %8215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8216 = load i32, ptr %8215, align 4, !tbaa !5
  %8217 = call ptr @s2n_strerror_debug(i32 noundef %8216, ptr noundef @.str.4)
  %8218 = call ptr @__errno_location() #12
  %8219 = load i32, ptr %8218, align 4, !tbaa !5
  %8220 = call ptr @strerror(i32 noundef %8219) #11
  %8221 = call ptr @__errno_location() #12
  %8222 = load i32, ptr %8221, align 4, !tbaa !5
  %8223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8210, ptr noundef @.str.5, i32 noundef %8211, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 549, ptr noundef %8214, ptr noundef %8217, ptr noundef %8220, i32 noundef %8222) #11
  br label %8224

8224:                                             ; preds = %8207, %8190
  call void @llvm.lifetime.end.p0(i64 4, ptr %353) #11
  br label %8225

8225:                                             ; preds = %8224
  br label %8226

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

8227:                                             ; No predecessors!
  br label %8228

8228:                                             ; preds = %8227
  br label %8229

8229:                                             ; preds = %8228, %8170
  br label %8230

8230:                                             ; preds = %8229
  br label %8231

8231:                                             ; preds = %8230
  call void @llvm.lifetime.start.p0(i64 1, ptr %354) #11
  store i8 0, ptr %354, align 1, !tbaa !15
  br label %8232

8232:                                             ; preds = %8231
  %8233 = load i32, ptr @test_count, align 4, !tbaa !5
  %8234 = add nsw i32 %8233, 1
  store i32 %8234, ptr @test_count, align 4, !tbaa !5
  %8235 = call i32 @s2n_ktls_get_control_data(ptr noundef %351, i32 noundef 0, ptr noundef %354)
  %8236 = getelementptr inbounds %struct.s2n_result, ptr %355, i32 0, i32 0
  store i32 %8235, ptr %8236, align 4
  %8237 = getelementptr inbounds %struct.s2n_result, ptr %355, i32 0, i32 0
  %8238 = load i32, ptr %8237, align 4
  %8239 = call zeroext i1 @s2n_result_is_ok(i32 %8238)
  br i1 %8239, label %8293, label %8240

8240:                                             ; preds = %8232
  br label %8241

8241:                                             ; preds = %8240
  br label %8242

8242:                                             ; preds = %8241
  call void @llvm.lifetime.start.p0(i64 4, ptr %356) #11
  %8243 = call ptr @__errno_location() #12
  %8244 = load i32, ptr %8243, align 4, !tbaa !5
  store i32 %8244, ptr %356, align 4, !tbaa !5
  %8245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8246 = call i32 @s2n_print_stacktrace(ptr noundef %8245)
  %8247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8248 = trunc i8 %8247 to i1
  br i1 %8248, label %8249, label %8271

8249:                                             ; preds = %8242
  %8250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8251 = call i32 @fileno(ptr noundef %8250) #11
  %8252 = call i32 @isatty(i32 noundef %8251) #11
  %8253 = icmp ne i32 %8252, 0
  br i1 %8253, label %8254, label %8271

8254:                                             ; preds = %8249
  %8255 = load i32, ptr %356, align 4, !tbaa !5
  %8256 = call ptr @__errno_location() #12
  store i32 %8255, ptr %8256, align 4, !tbaa !5
  %8257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8258 = load i32, ptr @test_count, align 4, !tbaa !5
  %8259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8260 = load i32, ptr %8259, align 4, !tbaa !5
  %8261 = call ptr @s2n_strerror(i32 noundef %8260, ptr noundef @.str.4)
  %8262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8263 = load i32, ptr %8262, align 4, !tbaa !5
  %8264 = call ptr @s2n_strerror_debug(i32 noundef %8263, ptr noundef @.str.4)
  %8265 = call ptr @__errno_location() #12
  %8266 = load i32, ptr %8265, align 4, !tbaa !5
  %8267 = call ptr @strerror(i32 noundef %8266) #11
  %8268 = call ptr @__errno_location() #12
  %8269 = load i32, ptr %8268, align 4, !tbaa !5
  %8270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8257, ptr noundef @.str.2, i32 noundef %8258, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 551, ptr noundef %8261, ptr noundef %8264, ptr noundef %8267, i32 noundef %8269) #11
  br label %8288

8271:                                             ; preds = %8249, %8242
  %8272 = load i32, ptr %356, align 4, !tbaa !5
  %8273 = call ptr @__errno_location() #12
  store i32 %8272, ptr %8273, align 4, !tbaa !5
  %8274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8275 = load i32, ptr @test_count, align 4, !tbaa !5
  %8276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8277 = load i32, ptr %8276, align 4, !tbaa !5
  %8278 = call ptr @s2n_strerror(i32 noundef %8277, ptr noundef @.str.4)
  %8279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8280 = load i32, ptr %8279, align 4, !tbaa !5
  %8281 = call ptr @s2n_strerror_debug(i32 noundef %8280, ptr noundef @.str.4)
  %8282 = call ptr @__errno_location() #12
  %8283 = load i32, ptr %8282, align 4, !tbaa !5
  %8284 = call ptr @strerror(i32 noundef %8283) #11
  %8285 = call ptr @__errno_location() #12
  %8286 = load i32, ptr %8285, align 4, !tbaa !5
  %8287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8274, ptr noundef @.str.5, i32 noundef %8275, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 551, ptr noundef %8278, ptr noundef %8281, ptr noundef %8284, i32 noundef %8286) #11
  br label %8288

8288:                                             ; preds = %8271, %8254
  call void @llvm.lifetime.end.p0(i64 4, ptr %356) #11
  br label %8289

8289:                                             ; preds = %8288
  br label %8290

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

8291:                                             ; No predecessors!
  br label %8292

8292:                                             ; preds = %8291
  br label %8293

8293:                                             ; preds = %8292, %8232
  br label %8294

8294:                                             ; preds = %8293
  br label %8295

8295:                                             ; preds = %8294
  br label %8296

8296:                                             ; preds = %8295
  %8297 = load i32, ptr @test_count, align 4, !tbaa !5
  %8298 = add nsw i32 %8297, 1
  store i32 %8298, ptr @test_count, align 4, !tbaa !5
  %8299 = load i8, ptr %354, align 1, !tbaa !15
  %8300 = zext i8 %8299 to i32
  %8301 = icmp eq i32 %8300, 43
  br i1 %8301, label %8355, label %8302

8302:                                             ; preds = %8296
  br label %8303

8303:                                             ; preds = %8302
  br label %8304

8304:                                             ; preds = %8303
  call void @llvm.lifetime.start.p0(i64 4, ptr %357) #11
  %8305 = call ptr @__errno_location() #12
  %8306 = load i32, ptr %8305, align 4, !tbaa !5
  store i32 %8306, ptr %357, align 4, !tbaa !5
  %8307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8308 = call i32 @s2n_print_stacktrace(ptr noundef %8307)
  %8309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8310 = trunc i8 %8309 to i1
  br i1 %8310, label %8311, label %8333

8311:                                             ; preds = %8304
  %8312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8313 = call i32 @fileno(ptr noundef %8312) #11
  %8314 = call i32 @isatty(i32 noundef %8313) #11
  %8315 = icmp ne i32 %8314, 0
  br i1 %8315, label %8316, label %8333

8316:                                             ; preds = %8311
  %8317 = load i32, ptr %357, align 4, !tbaa !5
  %8318 = call ptr @__errno_location() #12
  store i32 %8317, ptr %8318, align 4, !tbaa !5
  %8319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8320 = load i32, ptr @test_count, align 4, !tbaa !5
  %8321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8322 = load i32, ptr %8321, align 4, !tbaa !5
  %8323 = call ptr @s2n_strerror(i32 noundef %8322, ptr noundef @.str.4)
  %8324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8325 = load i32, ptr %8324, align 4, !tbaa !5
  %8326 = call ptr @s2n_strerror_debug(i32 noundef %8325, ptr noundef @.str.4)
  %8327 = call ptr @__errno_location() #12
  %8328 = load i32, ptr %8327, align 4, !tbaa !5
  %8329 = call ptr @strerror(i32 noundef %8328) #11
  %8330 = call ptr @__errno_location() #12
  %8331 = load i32, ptr %8330, align 4, !tbaa !5
  %8332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8319, ptr noundef @.str.2, i32 noundef %8320, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 552, ptr noundef %8323, ptr noundef %8326, ptr noundef %8329, i32 noundef %8331) #11
  br label %8350

8333:                                             ; preds = %8311, %8304
  %8334 = load i32, ptr %357, align 4, !tbaa !5
  %8335 = call ptr @__errno_location() #12
  store i32 %8334, ptr %8335, align 4, !tbaa !5
  %8336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8337 = load i32, ptr @test_count, align 4, !tbaa !5
  %8338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8339 = load i32, ptr %8338, align 4, !tbaa !5
  %8340 = call ptr @s2n_strerror(i32 noundef %8339, ptr noundef @.str.4)
  %8341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8342 = load i32, ptr %8341, align 4, !tbaa !5
  %8343 = call ptr @s2n_strerror_debug(i32 noundef %8342, ptr noundef @.str.4)
  %8344 = call ptr @__errno_location() #12
  %8345 = load i32, ptr %8344, align 4, !tbaa !5
  %8346 = call ptr @strerror(i32 noundef %8345) #11
  %8347 = call ptr @__errno_location() #12
  %8348 = load i32, ptr %8347, align 4, !tbaa !5
  %8349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8336, ptr noundef @.str.5, i32 noundef %8337, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 552, ptr noundef %8340, ptr noundef %8343, ptr noundef %8346, i32 noundef %8348) #11
  br label %8350

8350:                                             ; preds = %8333, %8316
  call void @llvm.lifetime.end.p0(i64 4, ptr %357) #11
  br label %8351

8351:                                             ; preds = %8350
  br label %8352

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

8353:                                             ; No predecessors!
  br label %8354

8354:                                             ; preds = %8353
  br label %8355

8355:                                             ; preds = %8354, %8296
  br label %8356

8356:                                             ; preds = %8355
  br label %8357

8357:                                             ; preds = %8356
  br label %8358

8358:                                             ; preds = %8357
  %8359 = load i32, ptr @test_count, align 4, !tbaa !5
  %8360 = add nsw i32 %8359, 1
  store i32 %8360, ptr @test_count, align 4, !tbaa !5
  %8361 = load i64, ptr %352, align 8, !tbaa !54
  %8362 = load i64, ptr %344, align 8, !tbaa !54
  %8363 = icmp eq i64 %8361, %8362
  br i1 %8363, label %8417, label %8364

8364:                                             ; preds = %8358
  br label %8365

8365:                                             ; preds = %8364
  br label %8366

8366:                                             ; preds = %8365
  call void @llvm.lifetime.start.p0(i64 4, ptr %358) #11
  %8367 = call ptr @__errno_location() #12
  %8368 = load i32, ptr %8367, align 4, !tbaa !5
  store i32 %8368, ptr %358, align 4, !tbaa !5
  %8369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8370 = call i32 @s2n_print_stacktrace(ptr noundef %8369)
  %8371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8372 = trunc i8 %8371 to i1
  br i1 %8372, label %8373, label %8395

8373:                                             ; preds = %8366
  %8374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8375 = call i32 @fileno(ptr noundef %8374) #11
  %8376 = call i32 @isatty(i32 noundef %8375) #11
  %8377 = icmp ne i32 %8376, 0
  br i1 %8377, label %8378, label %8395

8378:                                             ; preds = %8373
  %8379 = load i32, ptr %358, align 4, !tbaa !5
  %8380 = call ptr @__errno_location() #12
  store i32 %8379, ptr %8380, align 4, !tbaa !5
  %8381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8382 = load i32, ptr @test_count, align 4, !tbaa !5
  %8383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8384 = load i32, ptr %8383, align 4, !tbaa !5
  %8385 = call ptr @s2n_strerror(i32 noundef %8384, ptr noundef @.str.4)
  %8386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8387 = load i32, ptr %8386, align 4, !tbaa !5
  %8388 = call ptr @s2n_strerror_debug(i32 noundef %8387, ptr noundef @.str.4)
  %8389 = call ptr @__errno_location() #12
  %8390 = load i32, ptr %8389, align 4, !tbaa !5
  %8391 = call ptr @strerror(i32 noundef %8390) #11
  %8392 = call ptr @__errno_location() #12
  %8393 = load i32, ptr %8392, align 4, !tbaa !5
  %8394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8381, ptr noundef @.str.2, i32 noundef %8382, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 555, ptr noundef %8385, ptr noundef %8388, ptr noundef %8391, i32 noundef %8393) #11
  br label %8412

8395:                                             ; preds = %8373, %8366
  %8396 = load i32, ptr %358, align 4, !tbaa !5
  %8397 = call ptr @__errno_location() #12
  store i32 %8396, ptr %8397, align 4, !tbaa !5
  %8398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8399 = load i32, ptr @test_count, align 4, !tbaa !5
  %8400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8401 = load i32, ptr %8400, align 4, !tbaa !5
  %8402 = call ptr @s2n_strerror(i32 noundef %8401, ptr noundef @.str.4)
  %8403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8404 = load i32, ptr %8403, align 4, !tbaa !5
  %8405 = call ptr @s2n_strerror_debug(i32 noundef %8404, ptr noundef @.str.4)
  %8406 = call ptr @__errno_location() #12
  %8407 = load i32, ptr %8406, align 4, !tbaa !5
  %8408 = call ptr @strerror(i32 noundef %8407) #11
  %8409 = call ptr @__errno_location() #12
  %8410 = load i32, ptr %8409, align 4, !tbaa !5
  %8411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8398, ptr noundef @.str.5, i32 noundef %8399, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 555, ptr noundef %8402, ptr noundef %8405, ptr noundef %8408, i32 noundef %8410) #11
  br label %8412

8412:                                             ; preds = %8395, %8378
  call void @llvm.lifetime.end.p0(i64 4, ptr %358) #11
  br label %8413

8413:                                             ; preds = %8412
  br label %8414

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

8415:                                             ; No predecessors!
  br label %8416

8416:                                             ; preds = %8415
  br label %8417

8417:                                             ; preds = %8416, %8358
  br label %8418

8418:                                             ; preds = %8417
  br label %8419

8419:                                             ; preds = %8418
  br label %8420

8420:                                             ; preds = %8419
  %8421 = load i64, ptr %352, align 8, !tbaa !54
  %8422 = icmp ne i64 %8421, 0
  br i1 %8422, label %8423, label %8488

8423:                                             ; preds = %8420
  br label %8424

8424:                                             ; preds = %8423
  %8425 = load i32, ptr @test_count, align 4, !tbaa !5
  %8426 = add nsw i32 %8425, 1
  store i32 %8426, ptr @test_count, align 4, !tbaa !5
  %8427 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %8428 = getelementptr inbounds [16384 x i8], ptr %348, i64 0, i64 0
  %8429 = load i64, ptr %352, align 8, !tbaa !54
  %8430 = call i32 @memcmp(ptr noundef %8427, ptr noundef %8428, i64 noundef %8429) #14
  %8431 = icmp eq i32 %8430, 0
  br i1 %8431, label %8485, label %8432

8432:                                             ; preds = %8424
  br label %8433

8433:                                             ; preds = %8432
  br label %8434

8434:                                             ; preds = %8433
  call void @llvm.lifetime.start.p0(i64 4, ptr %359) #11
  %8435 = call ptr @__errno_location() #12
  %8436 = load i32, ptr %8435, align 4, !tbaa !5
  store i32 %8436, ptr %359, align 4, !tbaa !5
  %8437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8438 = call i32 @s2n_print_stacktrace(ptr noundef %8437)
  %8439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8440 = trunc i8 %8439 to i1
  br i1 %8440, label %8441, label %8463

8441:                                             ; preds = %8434
  %8442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8443 = call i32 @fileno(ptr noundef %8442) #11
  %8444 = call i32 @isatty(i32 noundef %8443) #11
  %8445 = icmp ne i32 %8444, 0
  br i1 %8445, label %8446, label %8463

8446:                                             ; preds = %8441
  %8447 = load i32, ptr %359, align 4, !tbaa !5
  %8448 = call ptr @__errno_location() #12
  store i32 %8447, ptr %8448, align 4, !tbaa !5
  %8449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8450 = load i32, ptr @test_count, align 4, !tbaa !5
  %8451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8452 = load i32, ptr %8451, align 4, !tbaa !5
  %8453 = call ptr @s2n_strerror(i32 noundef %8452, ptr noundef @.str.4)
  %8454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8455 = load i32, ptr %8454, align 4, !tbaa !5
  %8456 = call ptr @s2n_strerror_debug(i32 noundef %8455, ptr noundef @.str.4)
  %8457 = call ptr @__errno_location() #12
  %8458 = load i32, ptr %8457, align 4, !tbaa !5
  %8459 = call ptr @strerror(i32 noundef %8458) #11
  %8460 = call ptr @__errno_location() #12
  %8461 = load i32, ptr %8460, align 4, !tbaa !5
  %8462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8449, ptr noundef @.str.2, i32 noundef %8450, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 556, ptr noundef %8453, ptr noundef %8456, ptr noundef %8459, i32 noundef %8461) #11
  br label %8480

8463:                                             ; preds = %8441, %8434
  %8464 = load i32, ptr %359, align 4, !tbaa !5
  %8465 = call ptr @__errno_location() #12
  store i32 %8464, ptr %8465, align 4, !tbaa !5
  %8466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8467 = load i32, ptr @test_count, align 4, !tbaa !5
  %8468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8469 = load i32, ptr %8468, align 4, !tbaa !5
  %8470 = call ptr @s2n_strerror(i32 noundef %8469, ptr noundef @.str.4)
  %8471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8472 = load i32, ptr %8471, align 4, !tbaa !5
  %8473 = call ptr @s2n_strerror_debug(i32 noundef %8472, ptr noundef @.str.4)
  %8474 = call ptr @__errno_location() #12
  %8475 = load i32, ptr %8474, align 4, !tbaa !5
  %8476 = call ptr @strerror(i32 noundef %8475) #11
  %8477 = call ptr @__errno_location() #12
  %8478 = load i32, ptr %8477, align 4, !tbaa !5
  %8479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8466, ptr noundef @.str.5, i32 noundef %8467, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 556, ptr noundef %8470, ptr noundef %8473, ptr noundef %8476, i32 noundef %8478) #11
  br label %8480

8480:                                             ; preds = %8463, %8446
  call void @llvm.lifetime.end.p0(i64 4, ptr %359) #11
  br label %8481

8481:                                             ; preds = %8480
  br label %8482

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

8483:                                             ; No predecessors!
  br label %8484

8484:                                             ; preds = %8483
  br label %8485

8485:                                             ; preds = %8484, %8424
  br label %8486

8486:                                             ; preds = %8485
  br label %8487

8487:                                             ; preds = %8486
  br label %8488

8488:                                             ; preds = %8487, %8420
  br label %8489

8489:                                             ; preds = %8488
  br label %8490

8490:                                             ; preds = %8489
  br label %8491

8491:                                             ; preds = %8490
  %8492 = load i32, ptr @test_count, align 4, !tbaa !5
  %8493 = add nsw i32 %8492, 1
  store i32 %8493, ptr @test_count, align 4, !tbaa !5
  %8494 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %333, i32 0, i32 0
  %8495 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %8494, i32 0, i32 2
  %8496 = load i64, ptr %8495, align 8, !tbaa !55
  %8497 = icmp eq i64 %8496, 2
  br i1 %8497, label %8551, label %8498

8498:                                             ; preds = %8491
  br label %8499

8499:                                             ; preds = %8498
  br label %8500

8500:                                             ; preds = %8499
  call void @llvm.lifetime.start.p0(i64 4, ptr %360) #11
  %8501 = call ptr @__errno_location() #12
  %8502 = load i32, ptr %8501, align 4, !tbaa !5
  store i32 %8502, ptr %360, align 4, !tbaa !5
  %8503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8504 = call i32 @s2n_print_stacktrace(ptr noundef %8503)
  %8505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8506 = trunc i8 %8505 to i1
  br i1 %8506, label %8507, label %8529

8507:                                             ; preds = %8500
  %8508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8509 = call i32 @fileno(ptr noundef %8508) #11
  %8510 = call i32 @isatty(i32 noundef %8509) #11
  %8511 = icmp ne i32 %8510, 0
  br i1 %8511, label %8512, label %8529

8512:                                             ; preds = %8507
  %8513 = load i32, ptr %360, align 4, !tbaa !5
  %8514 = call ptr @__errno_location() #12
  store i32 %8513, ptr %8514, align 4, !tbaa !5
  %8515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8516 = load i32, ptr @test_count, align 4, !tbaa !5
  %8517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8518 = load i32, ptr %8517, align 4, !tbaa !5
  %8519 = call ptr @s2n_strerror(i32 noundef %8518, ptr noundef @.str.4)
  %8520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8521 = load i32, ptr %8520, align 4, !tbaa !5
  %8522 = call ptr @s2n_strerror_debug(i32 noundef %8521, ptr noundef @.str.4)
  %8523 = call ptr @__errno_location() #12
  %8524 = load i32, ptr %8523, align 4, !tbaa !5
  %8525 = call ptr @strerror(i32 noundef %8524) #11
  %8526 = call ptr @__errno_location() #12
  %8527 = load i32, ptr %8526, align 4, !tbaa !5
  %8528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8515, ptr noundef @.str.2, i32 noundef %8516, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 558, ptr noundef %8519, ptr noundef %8522, ptr noundef %8525, i32 noundef %8527) #11
  br label %8546

8529:                                             ; preds = %8507, %8500
  %8530 = load i32, ptr %360, align 4, !tbaa !5
  %8531 = call ptr @__errno_location() #12
  store i32 %8530, ptr %8531, align 4, !tbaa !5
  %8532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8533 = load i32, ptr @test_count, align 4, !tbaa !5
  %8534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8535 = load i32, ptr %8534, align 4, !tbaa !5
  %8536 = call ptr @s2n_strerror(i32 noundef %8535, ptr noundef @.str.4)
  %8537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8538 = load i32, ptr %8537, align 4, !tbaa !5
  %8539 = call ptr @s2n_strerror_debug(i32 noundef %8538, ptr noundef @.str.4)
  %8540 = call ptr @__errno_location() #12
  %8541 = load i32, ptr %8540, align 4, !tbaa !5
  %8542 = call ptr @strerror(i32 noundef %8541) #11
  %8543 = call ptr @__errno_location() #12
  %8544 = load i32, ptr %8543, align 4, !tbaa !5
  %8545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8532, ptr noundef @.str.5, i32 noundef %8533, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 558, ptr noundef %8536, ptr noundef %8539, ptr noundef %8542, i32 noundef %8544) #11
  br label %8546

8546:                                             ; preds = %8529, %8512
  call void @llvm.lifetime.end.p0(i64 4, ptr %360) #11
  br label %8547

8547:                                             ; preds = %8546
  br label %8548

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

8549:                                             ; No predecessors!
  br label %8550

8550:                                             ; preds = %8549
  br label %8551

8551:                                             ; preds = %8550, %8491
  br label %8552

8552:                                             ; preds = %8551
  br label %8553

8553:                                             ; preds = %8552
  br label %8554

8554:                                             ; preds = %8553
  %8555 = load i32, ptr @test_count, align 4, !tbaa !5
  %8556 = add nsw i32 %8555, 1
  store i32 %8556, ptr @test_count, align 4, !tbaa !5
  %8557 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %333, i32 0, i32 0
  %8558 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %8557, i32 0, i32 3
  %8559 = load i64, ptr %8558, align 8, !tbaa !70
  %8560 = icmp eq i64 %8559, 1
  br i1 %8560, label %8614, label %8561

8561:                                             ; preds = %8554
  br label %8562

8562:                                             ; preds = %8561
  br label %8563

8563:                                             ; preds = %8562
  call void @llvm.lifetime.start.p0(i64 4, ptr %361) #11
  %8564 = call ptr @__errno_location() #12
  %8565 = load i32, ptr %8564, align 4, !tbaa !5
  store i32 %8565, ptr %361, align 4, !tbaa !5
  %8566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8567 = call i32 @s2n_print_stacktrace(ptr noundef %8566)
  %8568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8569 = trunc i8 %8568 to i1
  br i1 %8569, label %8570, label %8592

8570:                                             ; preds = %8563
  %8571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8572 = call i32 @fileno(ptr noundef %8571) #11
  %8573 = call i32 @isatty(i32 noundef %8572) #11
  %8574 = icmp ne i32 %8573, 0
  br i1 %8574, label %8575, label %8592

8575:                                             ; preds = %8570
  %8576 = load i32, ptr %361, align 4, !tbaa !5
  %8577 = call ptr @__errno_location() #12
  store i32 %8576, ptr %8577, align 4, !tbaa !5
  %8578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8579 = load i32, ptr @test_count, align 4, !tbaa !5
  %8580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8581 = load i32, ptr %8580, align 4, !tbaa !5
  %8582 = call ptr @s2n_strerror(i32 noundef %8581, ptr noundef @.str.4)
  %8583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8584 = load i32, ptr %8583, align 4, !tbaa !5
  %8585 = call ptr @s2n_strerror_debug(i32 noundef %8584, ptr noundef @.str.4)
  %8586 = call ptr @__errno_location() #12
  %8587 = load i32, ptr %8586, align 4, !tbaa !5
  %8588 = call ptr @strerror(i32 noundef %8587) #11
  %8589 = call ptr @__errno_location() #12
  %8590 = load i32, ptr %8589, align 4, !tbaa !5
  %8591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8578, ptr noundef @.str.2, i32 noundef %8579, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 559, ptr noundef %8582, ptr noundef %8585, ptr noundef %8588, i32 noundef %8590) #11
  br label %8609

8592:                                             ; preds = %8570, %8563
  %8593 = load i32, ptr %361, align 4, !tbaa !5
  %8594 = call ptr @__errno_location() #12
  store i32 %8593, ptr %8594, align 4, !tbaa !5
  %8595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8596 = load i32, ptr @test_count, align 4, !tbaa !5
  %8597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8598 = load i32, ptr %8597, align 4, !tbaa !5
  %8599 = call ptr @s2n_strerror(i32 noundef %8598, ptr noundef @.str.4)
  %8600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8601 = load i32, ptr %8600, align 4, !tbaa !5
  %8602 = call ptr @s2n_strerror_debug(i32 noundef %8601, ptr noundef @.str.4)
  %8603 = call ptr @__errno_location() #12
  %8604 = load i32, ptr %8603, align 4, !tbaa !5
  %8605 = call ptr @strerror(i32 noundef %8604) #11
  %8606 = call ptr @__errno_location() #12
  %8607 = load i32, ptr %8606, align 4, !tbaa !5
  %8608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8595, ptr noundef @.str.5, i32 noundef %8596, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 559, ptr noundef %8599, ptr noundef %8602, ptr noundef %8605, i32 noundef %8607) #11
  br label %8609

8609:                                             ; preds = %8592, %8575
  call void @llvm.lifetime.end.p0(i64 4, ptr %361) #11
  br label %8610

8610:                                             ; preds = %8609
  br label %8611

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

8612:                                             ; No predecessors!
  br label %8613

8613:                                             ; preds = %8612
  br label %8614

8614:                                             ; preds = %8613, %8554
  br label %8615

8615:                                             ; preds = %8614
  br label %8616

8616:                                             ; preds = %8615
  call void @llvm.lifetime.end.p0(i64 1, ptr %354) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %352) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %351) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %350) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %349) #11
  call void @llvm.lifetime.end.p0(i64 16384, ptr %348) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %344) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %341) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %340) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %339) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %338) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %337) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %336) #11
  %8617 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef %333)
  %8618 = getelementptr inbounds %struct.s2n_result, ptr %362, i32 0, i32 0
  store i32 %8617, ptr %8618, align 4
  call void @llvm.lifetime.end.p0(i64 192, ptr %333) #11
  %8619 = call i32 @s2n_connection_ptr_free(ptr noundef %332)
  %8620 = getelementptr inbounds %struct.s2n_result, ptr %363, i32 0, i32 0
  store i32 %8619, ptr %8620, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %332) #11
  %8621 = call i32 @s2n_connection_ptr_free(ptr noundef %331)
  %8622 = getelementptr inbounds %struct.s2n_result, ptr %364, i32 0, i32 0
  store i32 %8621, ptr %8622, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %331) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %365) #11
  %8623 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %8623, ptr %365, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %366) #11
  %8624 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8624, ptr %366, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr %367) #11
  call void @llvm.memset.p0.i64(ptr align 8 %367, i8 0, i64 192, i1 false)
  br label %8625

8625:                                             ; preds = %8616
  %8626 = load i32, ptr @test_count, align 4, !tbaa !5
  %8627 = add nsw i32 %8626, 1
  store i32 %8627, ptr @test_count, align 4, !tbaa !5
  %8628 = load ptr, ptr %365, align 8, !tbaa !9
  %8629 = load ptr, ptr %366, align 8, !tbaa !9
  %8630 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %8628, ptr noundef %8629, ptr noundef %367)
  %8631 = getelementptr inbounds %struct.s2n_result, ptr %368, i32 0, i32 0
  store i32 %8630, ptr %8631, align 4
  %8632 = getelementptr inbounds %struct.s2n_result, ptr %368, i32 0, i32 0
  %8633 = load i32, ptr %8632, align 4
  %8634 = call zeroext i1 @s2n_result_is_ok(i32 %8633)
  br i1 %8634, label %8688, label %8635

8635:                                             ; preds = %8625
  br label %8636

8636:                                             ; preds = %8635
  br label %8637

8637:                                             ; preds = %8636
  call void @llvm.lifetime.start.p0(i64 4, ptr %369) #11
  %8638 = call ptr @__errno_location() #12
  %8639 = load i32, ptr %8638, align 4, !tbaa !5
  store i32 %8639, ptr %369, align 4, !tbaa !5
  %8640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8641 = call i32 @s2n_print_stacktrace(ptr noundef %8640)
  %8642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8643 = trunc i8 %8642 to i1
  br i1 %8643, label %8644, label %8666

8644:                                             ; preds = %8637
  %8645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8646 = call i32 @fileno(ptr noundef %8645) #11
  %8647 = call i32 @isatty(i32 noundef %8646) #11
  %8648 = icmp ne i32 %8647, 0
  br i1 %8648, label %8649, label %8666

8649:                                             ; preds = %8644
  %8650 = load i32, ptr %369, align 4, !tbaa !5
  %8651 = call ptr @__errno_location() #12
  store i32 %8650, ptr %8651, align 4, !tbaa !5
  %8652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8653 = load i32, ptr @test_count, align 4, !tbaa !5
  %8654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8655 = load i32, ptr %8654, align 4, !tbaa !5
  %8656 = call ptr @s2n_strerror(i32 noundef %8655, ptr noundef @.str.4)
  %8657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8658 = load i32, ptr %8657, align 4, !tbaa !5
  %8659 = call ptr @s2n_strerror_debug(i32 noundef %8658, ptr noundef @.str.4)
  %8660 = call ptr @__errno_location() #12
  %8661 = load i32, ptr %8660, align 4, !tbaa !5
  %8662 = call ptr @strerror(i32 noundef %8661) #11
  %8663 = call ptr @__errno_location() #12
  %8664 = load i32, ptr %8663, align 4, !tbaa !5
  %8665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8652, ptr noundef @.str.2, i32 noundef %8653, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 570, ptr noundef %8656, ptr noundef %8659, ptr noundef %8662, i32 noundef %8664) #11
  br label %8683

8666:                                             ; preds = %8644, %8637
  %8667 = load i32, ptr %369, align 4, !tbaa !5
  %8668 = call ptr @__errno_location() #12
  store i32 %8667, ptr %8668, align 4, !tbaa !5
  %8669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8670 = load i32, ptr @test_count, align 4, !tbaa !5
  %8671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8672 = load i32, ptr %8671, align 4, !tbaa !5
  %8673 = call ptr @s2n_strerror(i32 noundef %8672, ptr noundef @.str.4)
  %8674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8675 = load i32, ptr %8674, align 4, !tbaa !5
  %8676 = call ptr @s2n_strerror_debug(i32 noundef %8675, ptr noundef @.str.4)
  %8677 = call ptr @__errno_location() #12
  %8678 = load i32, ptr %8677, align 4, !tbaa !5
  %8679 = call ptr @strerror(i32 noundef %8678) #11
  %8680 = call ptr @__errno_location() #12
  %8681 = load i32, ptr %8680, align 4, !tbaa !5
  %8682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8669, ptr noundef @.str.5, i32 noundef %8670, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 570, ptr noundef %8673, ptr noundef %8676, ptr noundef %8679, i32 noundef %8681) #11
  br label %8683

8683:                                             ; preds = %8666, %8649
  call void @llvm.lifetime.end.p0(i64 4, ptr %369) #11
  br label %8684

8684:                                             ; preds = %8683
  br label %8685

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

8686:                                             ; No predecessors!
  br label %8687

8687:                                             ; preds = %8686
  br label %8688

8688:                                             ; preds = %8687, %8625
  br label %8689

8689:                                             ; preds = %8688
  br label %8690

8690:                                             ; preds = %8689
  call void @llvm.lifetime.start.p0(i64 1, ptr %370) #11
  store i8 1, ptr %370, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %371) #11
  store i8 2, ptr %371, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %372) #11
  store i64 5, ptr %372, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 8, ptr %373) #11
  store i64 10, ptr %373, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 8, ptr %374) #11
  store i64 0, ptr %374, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 8, ptr %375) #11
  store i64 0, ptr %375, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 16, ptr %376) #11
  %8691 = getelementptr inbounds %struct.iovec, ptr %376, i32 0, i32 0
  %8692 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  store ptr %8692, ptr %8691, align 8, !tbaa !16
  %8693 = getelementptr inbounds %struct.iovec, ptr %376, i32 0, i32 1
  %8694 = load i64, ptr %372, align 8, !tbaa !54
  store i64 %8694, ptr %8693, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 56, ptr %377) #11
  %8695 = getelementptr inbounds %struct.msghdr, ptr %377, i32 0, i32 0
  store ptr null, ptr %8695, align 8, !tbaa !20
  %8696 = getelementptr inbounds %struct.msghdr, ptr %377, i32 0, i32 1
  store i32 0, ptr %8696, align 8, !tbaa !22
  %8697 = getelementptr inbounds %struct.msghdr, ptr %377, i32 0, i32 2
  store ptr %376, ptr %8697, align 8, !tbaa !23
  %8698 = getelementptr inbounds %struct.msghdr, ptr %377, i32 0, i32 3
  store i64 1, ptr %8698, align 8, !tbaa !24
  %8699 = getelementptr inbounds %struct.msghdr, ptr %377, i32 0, i32 4
  store ptr null, ptr %8699, align 8, !tbaa !25
  %8700 = getelementptr inbounds %struct.msghdr, ptr %377, i32 0, i32 5
  store i64 0, ptr %8700, align 8, !tbaa !26
  %8701 = getelementptr inbounds %struct.msghdr, ptr %377, i32 0, i32 6
  store i32 0, ptr %8701, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 100, ptr %378) #11
  call void @llvm.memset.p0.i64(ptr align 16 %378, i8 0, i64 100, i1 false)
  br label %8702

8702:                                             ; preds = %8690
  %8703 = load i32, ptr @test_count, align 4, !tbaa !5
  %8704 = add nsw i32 %8703, 1
  store i32 %8704, ptr @test_count, align 4, !tbaa !5
  %8705 = getelementptr inbounds [100 x i8], ptr %378, i64 0, i64 0
  %8706 = load i8, ptr %370, align 1, !tbaa !15
  %8707 = call i32 @s2n_ktls_set_control_data(ptr noundef %377, ptr noundef %8705, i64 noundef 100, i32 noundef 0, i8 noundef zeroext %8706)
  %8708 = getelementptr inbounds %struct.s2n_result, ptr %379, i32 0, i32 0
  store i32 %8707, ptr %8708, align 4
  %8709 = getelementptr inbounds %struct.s2n_result, ptr %379, i32 0, i32 0
  %8710 = load i32, ptr %8709, align 4
  %8711 = call zeroext i1 @s2n_result_is_ok(i32 %8710)
  br i1 %8711, label %8765, label %8712

8712:                                             ; preds = %8702
  br label %8713

8713:                                             ; preds = %8712
  br label %8714

8714:                                             ; preds = %8713
  call void @llvm.lifetime.start.p0(i64 4, ptr %380) #11
  %8715 = call ptr @__errno_location() #12
  %8716 = load i32, ptr %8715, align 4, !tbaa !5
  store i32 %8716, ptr %380, align 4, !tbaa !5
  %8717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8718 = call i32 @s2n_print_stacktrace(ptr noundef %8717)
  %8719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8720 = trunc i8 %8719 to i1
  br i1 %8720, label %8721, label %8743

8721:                                             ; preds = %8714
  %8722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8723 = call i32 @fileno(ptr noundef %8722) #11
  %8724 = call i32 @isatty(i32 noundef %8723) #11
  %8725 = icmp ne i32 %8724, 0
  br i1 %8725, label %8726, label %8743

8726:                                             ; preds = %8721
  %8727 = load i32, ptr %380, align 4, !tbaa !5
  %8728 = call ptr @__errno_location() #12
  store i32 %8727, ptr %8728, align 4, !tbaa !5
  %8729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8730 = load i32, ptr @test_count, align 4, !tbaa !5
  %8731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8732 = load i32, ptr %8731, align 4, !tbaa !5
  %8733 = call ptr @s2n_strerror(i32 noundef %8732, ptr noundef @.str.4)
  %8734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8735 = load i32, ptr %8734, align 4, !tbaa !5
  %8736 = call ptr @s2n_strerror_debug(i32 noundef %8735, ptr noundef @.str.4)
  %8737 = call ptr @__errno_location() #12
  %8738 = load i32, ptr %8737, align 4, !tbaa !5
  %8739 = call ptr @strerror(i32 noundef %8738) #11
  %8740 = call ptr @__errno_location() #12
  %8741 = load i32, ptr %8740, align 4, !tbaa !5
  %8742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8729, ptr noundef @.str.2, i32 noundef %8730, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 585, ptr noundef %8733, ptr noundef %8736, ptr noundef %8739, i32 noundef %8741) #11
  br label %8760

8743:                                             ; preds = %8721, %8714
  %8744 = load i32, ptr %380, align 4, !tbaa !5
  %8745 = call ptr @__errno_location() #12
  store i32 %8744, ptr %8745, align 4, !tbaa !5
  %8746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8747 = load i32, ptr @test_count, align 4, !tbaa !5
  %8748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8749 = load i32, ptr %8748, align 4, !tbaa !5
  %8750 = call ptr @s2n_strerror(i32 noundef %8749, ptr noundef @.str.4)
  %8751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8752 = load i32, ptr %8751, align 4, !tbaa !5
  %8753 = call ptr @s2n_strerror_debug(i32 noundef %8752, ptr noundef @.str.4)
  %8754 = call ptr @__errno_location() #12
  %8755 = load i32, ptr %8754, align 4, !tbaa !5
  %8756 = call ptr @strerror(i32 noundef %8755) #11
  %8757 = call ptr @__errno_location() #12
  %8758 = load i32, ptr %8757, align 4, !tbaa !5
  %8759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8746, ptr noundef @.str.5, i32 noundef %8747, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 585, ptr noundef %8750, ptr noundef %8753, ptr noundef %8756, i32 noundef %8758) #11
  br label %8760

8760:                                             ; preds = %8743, %8726
  call void @llvm.lifetime.end.p0(i64 4, ptr %380) #11
  br label %8761

8761:                                             ; preds = %8760
  br label %8762

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

8763:                                             ; No predecessors!
  br label %8764

8764:                                             ; preds = %8763
  br label %8765

8765:                                             ; preds = %8764, %8702
  br label %8766

8766:                                             ; preds = %8765
  br label %8767

8767:                                             ; preds = %8766
  call void @llvm.lifetime.start.p0(i64 8, ptr %381) #11
  %8768 = load ptr, ptr %365, align 8, !tbaa !9
  %8769 = getelementptr inbounds %struct.s2n_connection, ptr %8768, i32 0, i32 8
  %8770 = load ptr, ptr %8769, align 8, !tbaa !28
  %8771 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %8770, ptr noundef %377)
  store i64 %8771, ptr %381, align 8, !tbaa !54
  br label %8772

8772:                                             ; preds = %8767
  %8773 = load i32, ptr @test_count, align 4, !tbaa !5
  %8774 = add nsw i32 %8773, 1
  store i32 %8774, ptr @test_count, align 4, !tbaa !5
  %8775 = load i64, ptr %381, align 8, !tbaa !54
  %8776 = load i64, ptr %372, align 8, !tbaa !54
  %8777 = icmp eq i64 %8775, %8776
  br i1 %8777, label %8831, label %8778

8778:                                             ; preds = %8772
  br label %8779

8779:                                             ; preds = %8778
  br label %8780

8780:                                             ; preds = %8779
  call void @llvm.lifetime.start.p0(i64 4, ptr %382) #11
  %8781 = call ptr @__errno_location() #12
  %8782 = load i32, ptr %8781, align 4, !tbaa !5
  store i32 %8782, ptr %382, align 4, !tbaa !5
  %8783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8784 = call i32 @s2n_print_stacktrace(ptr noundef %8783)
  %8785 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8786 = trunc i8 %8785 to i1
  br i1 %8786, label %8787, label %8809

8787:                                             ; preds = %8780
  %8788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8789 = call i32 @fileno(ptr noundef %8788) #11
  %8790 = call i32 @isatty(i32 noundef %8789) #11
  %8791 = icmp ne i32 %8790, 0
  br i1 %8791, label %8792, label %8809

8792:                                             ; preds = %8787
  %8793 = load i32, ptr %382, align 4, !tbaa !5
  %8794 = call ptr @__errno_location() #12
  store i32 %8793, ptr %8794, align 4, !tbaa !5
  %8795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8796 = load i32, ptr @test_count, align 4, !tbaa !5
  %8797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8798 = load i32, ptr %8797, align 4, !tbaa !5
  %8799 = call ptr @s2n_strerror(i32 noundef %8798, ptr noundef @.str.4)
  %8800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8801 = load i32, ptr %8800, align 4, !tbaa !5
  %8802 = call ptr @s2n_strerror_debug(i32 noundef %8801, ptr noundef @.str.4)
  %8803 = call ptr @__errno_location() #12
  %8804 = load i32, ptr %8803, align 4, !tbaa !5
  %8805 = call ptr @strerror(i32 noundef %8804) #11
  %8806 = call ptr @__errno_location() #12
  %8807 = load i32, ptr %8806, align 4, !tbaa !5
  %8808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8795, ptr noundef @.str.2, i32 noundef %8796, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 587, ptr noundef %8799, ptr noundef %8802, ptr noundef %8805, i32 noundef %8807) #11
  br label %8826

8809:                                             ; preds = %8787, %8780
  %8810 = load i32, ptr %382, align 4, !tbaa !5
  %8811 = call ptr @__errno_location() #12
  store i32 %8810, ptr %8811, align 4, !tbaa !5
  %8812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8813 = load i32, ptr @test_count, align 4, !tbaa !5
  %8814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8815 = load i32, ptr %8814, align 4, !tbaa !5
  %8816 = call ptr @s2n_strerror(i32 noundef %8815, ptr noundef @.str.4)
  %8817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8818 = load i32, ptr %8817, align 4, !tbaa !5
  %8819 = call ptr @s2n_strerror_debug(i32 noundef %8818, ptr noundef @.str.4)
  %8820 = call ptr @__errno_location() #12
  %8821 = load i32, ptr %8820, align 4, !tbaa !5
  %8822 = call ptr @strerror(i32 noundef %8821) #11
  %8823 = call ptr @__errno_location() #12
  %8824 = load i32, ptr %8823, align 4, !tbaa !5
  %8825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8812, ptr noundef @.str.5, i32 noundef %8813, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 587, ptr noundef %8816, ptr noundef %8819, ptr noundef %8822, i32 noundef %8824) #11
  br label %8826

8826:                                             ; preds = %8809, %8792
  call void @llvm.lifetime.end.p0(i64 4, ptr %382) #11
  br label %8827

8827:                                             ; preds = %8826
  br label %8828

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

8829:                                             ; No predecessors!
  br label %8830

8830:                                             ; preds = %8829
  br label %8831

8831:                                             ; preds = %8830, %8772
  br label %8832

8832:                                             ; preds = %8831
  br label %8833

8833:                                             ; preds = %8832
  %8834 = load i64, ptr %381, align 8, !tbaa !54
  %8835 = load i64, ptr %374, align 8, !tbaa !54
  %8836 = add i64 %8835, %8834
  store i64 %8836, ptr %374, align 8, !tbaa !54
  br label %8837

8837:                                             ; preds = %8833
  %8838 = load i32, ptr @test_count, align 4, !tbaa !5
  %8839 = add nsw i32 %8838, 1
  store i32 %8839, ptr @test_count, align 4, !tbaa !5
  %8840 = getelementptr inbounds [100 x i8], ptr %378, i64 0, i64 0
  %8841 = load i8, ptr %371, align 1, !tbaa !15
  %8842 = call i32 @s2n_ktls_set_control_data(ptr noundef %377, ptr noundef %8840, i64 noundef 100, i32 noundef 0, i8 noundef zeroext %8841)
  %8843 = getelementptr inbounds %struct.s2n_result, ptr %383, i32 0, i32 0
  store i32 %8842, ptr %8843, align 4
  %8844 = getelementptr inbounds %struct.s2n_result, ptr %383, i32 0, i32 0
  %8845 = load i32, ptr %8844, align 4
  %8846 = call zeroext i1 @s2n_result_is_ok(i32 %8845)
  br i1 %8846, label %8900, label %8847

8847:                                             ; preds = %8837
  br label %8848

8848:                                             ; preds = %8847
  br label %8849

8849:                                             ; preds = %8848
  call void @llvm.lifetime.start.p0(i64 4, ptr %384) #11
  %8850 = call ptr @__errno_location() #12
  %8851 = load i32, ptr %8850, align 4, !tbaa !5
  store i32 %8851, ptr %384, align 4, !tbaa !5
  %8852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8853 = call i32 @s2n_print_stacktrace(ptr noundef %8852)
  %8854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8855 = trunc i8 %8854 to i1
  br i1 %8855, label %8856, label %8878

8856:                                             ; preds = %8849
  %8857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8858 = call i32 @fileno(ptr noundef %8857) #11
  %8859 = call i32 @isatty(i32 noundef %8858) #11
  %8860 = icmp ne i32 %8859, 0
  br i1 %8860, label %8861, label %8878

8861:                                             ; preds = %8856
  %8862 = load i32, ptr %384, align 4, !tbaa !5
  %8863 = call ptr @__errno_location() #12
  store i32 %8862, ptr %8863, align 4, !tbaa !5
  %8864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8865 = load i32, ptr @test_count, align 4, !tbaa !5
  %8866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8867 = load i32, ptr %8866, align 4, !tbaa !5
  %8868 = call ptr @s2n_strerror(i32 noundef %8867, ptr noundef @.str.4)
  %8869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8870 = load i32, ptr %8869, align 4, !tbaa !5
  %8871 = call ptr @s2n_strerror_debug(i32 noundef %8870, ptr noundef @.str.4)
  %8872 = call ptr @__errno_location() #12
  %8873 = load i32, ptr %8872, align 4, !tbaa !5
  %8874 = call ptr @strerror(i32 noundef %8873) #11
  %8875 = call ptr @__errno_location() #12
  %8876 = load i32, ptr %8875, align 4, !tbaa !5
  %8877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8864, ptr noundef @.str.2, i32 noundef %8865, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 591, ptr noundef %8868, ptr noundef %8871, ptr noundef %8874, i32 noundef %8876) #11
  br label %8895

8878:                                             ; preds = %8856, %8849
  %8879 = load i32, ptr %384, align 4, !tbaa !5
  %8880 = call ptr @__errno_location() #12
  store i32 %8879, ptr %8880, align 4, !tbaa !5
  %8881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8882 = load i32, ptr @test_count, align 4, !tbaa !5
  %8883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8884 = load i32, ptr %8883, align 4, !tbaa !5
  %8885 = call ptr @s2n_strerror(i32 noundef %8884, ptr noundef @.str.4)
  %8886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8887 = load i32, ptr %8886, align 4, !tbaa !5
  %8888 = call ptr @s2n_strerror_debug(i32 noundef %8887, ptr noundef @.str.4)
  %8889 = call ptr @__errno_location() #12
  %8890 = load i32, ptr %8889, align 4, !tbaa !5
  %8891 = call ptr @strerror(i32 noundef %8890) #11
  %8892 = call ptr @__errno_location() #12
  %8893 = load i32, ptr %8892, align 4, !tbaa !5
  %8894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8881, ptr noundef @.str.5, i32 noundef %8882, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 591, ptr noundef %8885, ptr noundef %8888, ptr noundef %8891, i32 noundef %8893) #11
  br label %8895

8895:                                             ; preds = %8878, %8861
  call void @llvm.lifetime.end.p0(i64 4, ptr %384) #11
  br label %8896

8896:                                             ; preds = %8895
  br label %8897

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

8898:                                             ; No predecessors!
  br label %8899

8899:                                             ; preds = %8898
  br label %8900

8900:                                             ; preds = %8899, %8837
  br label %8901

8901:                                             ; preds = %8900
  br label %8902

8902:                                             ; preds = %8901
  %8903 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %8904 = load i64, ptr %374, align 8, !tbaa !54
  %8905 = getelementptr inbounds i8, ptr %8903, i64 %8904
  %8906 = getelementptr inbounds %struct.iovec, ptr %376, i32 0, i32 0
  store ptr %8905, ptr %8906, align 8, !tbaa !16
  %8907 = load ptr, ptr %365, align 8, !tbaa !9
  %8908 = getelementptr inbounds %struct.s2n_connection, ptr %8907, i32 0, i32 8
  %8909 = load ptr, ptr %8908, align 8, !tbaa !28
  %8910 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %8909, ptr noundef %377)
  store i64 %8910, ptr %381, align 8, !tbaa !54
  br label %8911

8911:                                             ; preds = %8902
  %8912 = load i32, ptr @test_count, align 4, !tbaa !5
  %8913 = add nsw i32 %8912, 1
  store i32 %8913, ptr @test_count, align 4, !tbaa !5
  %8914 = load i64, ptr %381, align 8, !tbaa !54
  %8915 = load i64, ptr %372, align 8, !tbaa !54
  %8916 = icmp eq i64 %8914, %8915
  br i1 %8916, label %8970, label %8917

8917:                                             ; preds = %8911
  br label %8918

8918:                                             ; preds = %8917
  br label %8919

8919:                                             ; preds = %8918
  call void @llvm.lifetime.start.p0(i64 4, ptr %385) #11
  %8920 = call ptr @__errno_location() #12
  %8921 = load i32, ptr %8920, align 4, !tbaa !5
  store i32 %8921, ptr %385, align 4, !tbaa !5
  %8922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8923 = call i32 @s2n_print_stacktrace(ptr noundef %8922)
  %8924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8925 = trunc i8 %8924 to i1
  br i1 %8925, label %8926, label %8948

8926:                                             ; preds = %8919
  %8927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8928 = call i32 @fileno(ptr noundef %8927) #11
  %8929 = call i32 @isatty(i32 noundef %8928) #11
  %8930 = icmp ne i32 %8929, 0
  br i1 %8930, label %8931, label %8948

8931:                                             ; preds = %8926
  %8932 = load i32, ptr %385, align 4, !tbaa !5
  %8933 = call ptr @__errno_location() #12
  store i32 %8932, ptr %8933, align 4, !tbaa !5
  %8934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8935 = load i32, ptr @test_count, align 4, !tbaa !5
  %8936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8937 = load i32, ptr %8936, align 4, !tbaa !5
  %8938 = call ptr @s2n_strerror(i32 noundef %8937, ptr noundef @.str.4)
  %8939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8940 = load i32, ptr %8939, align 4, !tbaa !5
  %8941 = call ptr @s2n_strerror_debug(i32 noundef %8940, ptr noundef @.str.4)
  %8942 = call ptr @__errno_location() #12
  %8943 = load i32, ptr %8942, align 4, !tbaa !5
  %8944 = call ptr @strerror(i32 noundef %8943) #11
  %8945 = call ptr @__errno_location() #12
  %8946 = load i32, ptr %8945, align 4, !tbaa !5
  %8947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8934, ptr noundef @.str.2, i32 noundef %8935, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 594, ptr noundef %8938, ptr noundef %8941, ptr noundef %8944, i32 noundef %8946) #11
  br label %8965

8948:                                             ; preds = %8926, %8919
  %8949 = load i32, ptr %385, align 4, !tbaa !5
  %8950 = call ptr @__errno_location() #12
  store i32 %8949, ptr %8950, align 4, !tbaa !5
  %8951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8952 = load i32, ptr @test_count, align 4, !tbaa !5
  %8953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8954 = load i32, ptr %8953, align 4, !tbaa !5
  %8955 = call ptr @s2n_strerror(i32 noundef %8954, ptr noundef @.str.4)
  %8956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8957 = load i32, ptr %8956, align 4, !tbaa !5
  %8958 = call ptr @s2n_strerror_debug(i32 noundef %8957, ptr noundef @.str.4)
  %8959 = call ptr @__errno_location() #12
  %8960 = load i32, ptr %8959, align 4, !tbaa !5
  %8961 = call ptr @strerror(i32 noundef %8960) #11
  %8962 = call ptr @__errno_location() #12
  %8963 = load i32, ptr %8962, align 4, !tbaa !5
  %8964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8951, ptr noundef @.str.5, i32 noundef %8952, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 594, ptr noundef %8955, ptr noundef %8958, ptr noundef %8961, i32 noundef %8963) #11
  br label %8965

8965:                                             ; preds = %8948, %8931
  call void @llvm.lifetime.end.p0(i64 4, ptr %385) #11
  br label %8966

8966:                                             ; preds = %8965
  br label %8967

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

8968:                                             ; No predecessors!
  br label %8969

8969:                                             ; preds = %8968
  br label %8970

8970:                                             ; preds = %8969, %8911
  br label %8971

8971:                                             ; preds = %8970
  br label %8972

8972:                                             ; preds = %8971
  %8973 = load i64, ptr %381, align 8, !tbaa !54
  %8974 = load i64, ptr %374, align 8, !tbaa !54
  %8975 = add i64 %8974, %8973
  store i64 %8975, ptr %374, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 16384, ptr %386) #11
  call void @llvm.memset.p0.i64(ptr align 16 %386, i8 0, i64 16384, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr %387) #11
  call void @llvm.memset.p0.i64(ptr align 16 %387, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %388) #11
  %8976 = getelementptr inbounds %struct.iovec, ptr %388, i32 0, i32 0
  %8977 = getelementptr inbounds [16384 x i8], ptr %386, i64 0, i64 0
  store ptr %8977, ptr %8976, align 8, !tbaa !16
  %8978 = getelementptr inbounds %struct.iovec, ptr %388, i32 0, i32 1
  %8979 = load i64, ptr %373, align 8, !tbaa !54
  store i64 %8979, ptr %8978, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 56, ptr %389) #11
  %8980 = getelementptr inbounds %struct.msghdr, ptr %389, i32 0, i32 0
  store ptr null, ptr %8980, align 8, !tbaa !20
  %8981 = getelementptr inbounds %struct.msghdr, ptr %389, i32 0, i32 1
  store i32 0, ptr %8981, align 8, !tbaa !22
  %8982 = getelementptr inbounds %struct.msghdr, ptr %389, i32 0, i32 2
  store ptr %388, ptr %8982, align 8, !tbaa !23
  %8983 = getelementptr inbounds %struct.msghdr, ptr %389, i32 0, i32 3
  store i64 1, ptr %8983, align 8, !tbaa !24
  %8984 = getelementptr inbounds %struct.msghdr, ptr %389, i32 0, i32 4
  %8985 = getelementptr inbounds [100 x i8], ptr %387, i64 0, i64 0
  store ptr %8985, ptr %8984, align 8, !tbaa !25
  %8986 = getelementptr inbounds %struct.msghdr, ptr %389, i32 0, i32 5
  store i64 100, ptr %8986, align 8, !tbaa !26
  %8987 = getelementptr inbounds %struct.msghdr, ptr %389, i32 0, i32 6
  store i32 0, ptr %8987, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr %390) #11
  %8988 = load ptr, ptr %366, align 8, !tbaa !9
  %8989 = getelementptr inbounds %struct.s2n_connection, ptr %8988, i32 0, i32 9
  %8990 = load ptr, ptr %8989, align 8, !tbaa !69
  %8991 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %8990, ptr noundef %389)
  store i64 %8991, ptr %390, align 8, !tbaa !54
  br label %8992

8992:                                             ; preds = %8972
  %8993 = load i32, ptr @test_count, align 4, !tbaa !5
  %8994 = add nsw i32 %8993, 1
  store i32 %8994, ptr @test_count, align 4, !tbaa !5
  %8995 = load i64, ptr %390, align 8, !tbaa !54
  %8996 = load i64, ptr %372, align 8, !tbaa !54
  %8997 = icmp eq i64 %8995, %8996
  br i1 %8997, label %9051, label %8998

8998:                                             ; preds = %8992
  br label %8999

8999:                                             ; preds = %8998
  br label %9000

9000:                                             ; preds = %8999
  call void @llvm.lifetime.start.p0(i64 4, ptr %391) #11
  %9001 = call ptr @__errno_location() #12
  %9002 = load i32, ptr %9001, align 4, !tbaa !5
  store i32 %9002, ptr %391, align 4, !tbaa !5
  %9003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9004 = call i32 @s2n_print_stacktrace(ptr noundef %9003)
  %9005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9006 = trunc i8 %9005 to i1
  br i1 %9006, label %9007, label %9029

9007:                                             ; preds = %9000
  %9008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9009 = call i32 @fileno(ptr noundef %9008) #11
  %9010 = call i32 @isatty(i32 noundef %9009) #11
  %9011 = icmp ne i32 %9010, 0
  br i1 %9011, label %9012, label %9029

9012:                                             ; preds = %9007
  %9013 = load i32, ptr %391, align 4, !tbaa !5
  %9014 = call ptr @__errno_location() #12
  store i32 %9013, ptr %9014, align 4, !tbaa !5
  %9015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9016 = load i32, ptr @test_count, align 4, !tbaa !5
  %9017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9018 = load i32, ptr %9017, align 4, !tbaa !5
  %9019 = call ptr @s2n_strerror(i32 noundef %9018, ptr noundef @.str.4)
  %9020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9021 = load i32, ptr %9020, align 4, !tbaa !5
  %9022 = call ptr @s2n_strerror_debug(i32 noundef %9021, ptr noundef @.str.4)
  %9023 = call ptr @__errno_location() #12
  %9024 = load i32, ptr %9023, align 4, !tbaa !5
  %9025 = call ptr @strerror(i32 noundef %9024) #11
  %9026 = call ptr @__errno_location() #12
  %9027 = load i32, ptr %9026, align 4, !tbaa !5
  %9028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9015, ptr noundef @.str.2, i32 noundef %9016, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 608, ptr noundef %9019, ptr noundef %9022, ptr noundef %9025, i32 noundef %9027) #11
  br label %9046

9029:                                             ; preds = %9007, %9000
  %9030 = load i32, ptr %391, align 4, !tbaa !5
  %9031 = call ptr @__errno_location() #12
  store i32 %9030, ptr %9031, align 4, !tbaa !5
  %9032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9033 = load i32, ptr @test_count, align 4, !tbaa !5
  %9034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9035 = load i32, ptr %9034, align 4, !tbaa !5
  %9036 = call ptr @s2n_strerror(i32 noundef %9035, ptr noundef @.str.4)
  %9037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9038 = load i32, ptr %9037, align 4, !tbaa !5
  %9039 = call ptr @s2n_strerror_debug(i32 noundef %9038, ptr noundef @.str.4)
  %9040 = call ptr @__errno_location() #12
  %9041 = load i32, ptr %9040, align 4, !tbaa !5
  %9042 = call ptr @strerror(i32 noundef %9041) #11
  %9043 = call ptr @__errno_location() #12
  %9044 = load i32, ptr %9043, align 4, !tbaa !5
  %9045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9032, ptr noundef @.str.5, i32 noundef %9033, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 608, ptr noundef %9036, ptr noundef %9039, ptr noundef %9042, i32 noundef %9044) #11
  br label %9046

9046:                                             ; preds = %9029, %9012
  call void @llvm.lifetime.end.p0(i64 4, ptr %391) #11
  br label %9047

9047:                                             ; preds = %9046
  br label %9048

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

9049:                                             ; No predecessors!
  br label %9050

9050:                                             ; preds = %9049
  br label %9051

9051:                                             ; preds = %9050, %8992
  br label %9052

9052:                                             ; preds = %9051
  br label %9053

9053:                                             ; preds = %9052
  call void @llvm.lifetime.start.p0(i64 1, ptr %392) #11
  store i8 0, ptr %392, align 1, !tbaa !15
  br label %9054

9054:                                             ; preds = %9053
  %9055 = load i32, ptr @test_count, align 4, !tbaa !5
  %9056 = add nsw i32 %9055, 1
  store i32 %9056, ptr @test_count, align 4, !tbaa !5
  %9057 = call i32 @s2n_ktls_get_control_data(ptr noundef %389, i32 noundef 0, ptr noundef %392)
  %9058 = getelementptr inbounds %struct.s2n_result, ptr %393, i32 0, i32 0
  store i32 %9057, ptr %9058, align 4
  %9059 = getelementptr inbounds %struct.s2n_result, ptr %393, i32 0, i32 0
  %9060 = load i32, ptr %9059, align 4
  %9061 = call zeroext i1 @s2n_result_is_ok(i32 %9060)
  br i1 %9061, label %9115, label %9062

9062:                                             ; preds = %9054
  br label %9063

9063:                                             ; preds = %9062
  br label %9064

9064:                                             ; preds = %9063
  call void @llvm.lifetime.start.p0(i64 4, ptr %394) #11
  %9065 = call ptr @__errno_location() #12
  %9066 = load i32, ptr %9065, align 4, !tbaa !5
  store i32 %9066, ptr %394, align 4, !tbaa !5
  %9067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9068 = call i32 @s2n_print_stacktrace(ptr noundef %9067)
  %9069 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9070 = trunc i8 %9069 to i1
  br i1 %9070, label %9071, label %9093

9071:                                             ; preds = %9064
  %9072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9073 = call i32 @fileno(ptr noundef %9072) #11
  %9074 = call i32 @isatty(i32 noundef %9073) #11
  %9075 = icmp ne i32 %9074, 0
  br i1 %9075, label %9076, label %9093

9076:                                             ; preds = %9071
  %9077 = load i32, ptr %394, align 4, !tbaa !5
  %9078 = call ptr @__errno_location() #12
  store i32 %9077, ptr %9078, align 4, !tbaa !5
  %9079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9080 = load i32, ptr @test_count, align 4, !tbaa !5
  %9081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9082 = load i32, ptr %9081, align 4, !tbaa !5
  %9083 = call ptr @s2n_strerror(i32 noundef %9082, ptr noundef @.str.4)
  %9084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9085 = load i32, ptr %9084, align 4, !tbaa !5
  %9086 = call ptr @s2n_strerror_debug(i32 noundef %9085, ptr noundef @.str.4)
  %9087 = call ptr @__errno_location() #12
  %9088 = load i32, ptr %9087, align 4, !tbaa !5
  %9089 = call ptr @strerror(i32 noundef %9088) #11
  %9090 = call ptr @__errno_location() #12
  %9091 = load i32, ptr %9090, align 4, !tbaa !5
  %9092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9079, ptr noundef @.str.2, i32 noundef %9080, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 610, ptr noundef %9083, ptr noundef %9086, ptr noundef %9089, i32 noundef %9091) #11
  br label %9110

9093:                                             ; preds = %9071, %9064
  %9094 = load i32, ptr %394, align 4, !tbaa !5
  %9095 = call ptr @__errno_location() #12
  store i32 %9094, ptr %9095, align 4, !tbaa !5
  %9096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9097 = load i32, ptr @test_count, align 4, !tbaa !5
  %9098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9099 = load i32, ptr %9098, align 4, !tbaa !5
  %9100 = call ptr @s2n_strerror(i32 noundef %9099, ptr noundef @.str.4)
  %9101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9102 = load i32, ptr %9101, align 4, !tbaa !5
  %9103 = call ptr @s2n_strerror_debug(i32 noundef %9102, ptr noundef @.str.4)
  %9104 = call ptr @__errno_location() #12
  %9105 = load i32, ptr %9104, align 4, !tbaa !5
  %9106 = call ptr @strerror(i32 noundef %9105) #11
  %9107 = call ptr @__errno_location() #12
  %9108 = load i32, ptr %9107, align 4, !tbaa !5
  %9109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9096, ptr noundef @.str.5, i32 noundef %9097, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 610, ptr noundef %9100, ptr noundef %9103, ptr noundef %9106, i32 noundef %9108) #11
  br label %9110

9110:                                             ; preds = %9093, %9076
  call void @llvm.lifetime.end.p0(i64 4, ptr %394) #11
  br label %9111

9111:                                             ; preds = %9110
  br label %9112

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

9113:                                             ; No predecessors!
  br label %9114

9114:                                             ; preds = %9113
  br label %9115

9115:                                             ; preds = %9114, %9054
  br label %9116

9116:                                             ; preds = %9115
  br label %9117

9117:                                             ; preds = %9116
  br label %9118

9118:                                             ; preds = %9117
  %9119 = load i32, ptr @test_count, align 4, !tbaa !5
  %9120 = add nsw i32 %9119, 1
  store i32 %9120, ptr @test_count, align 4, !tbaa !5
  %9121 = load i8, ptr %392, align 1, !tbaa !15
  %9122 = zext i8 %9121 to i32
  %9123 = load i8, ptr %370, align 1, !tbaa !15
  %9124 = zext i8 %9123 to i32
  %9125 = icmp eq i32 %9122, %9124
  br i1 %9125, label %9179, label %9126

9126:                                             ; preds = %9118
  br label %9127

9127:                                             ; preds = %9126
  br label %9128

9128:                                             ; preds = %9127
  call void @llvm.lifetime.start.p0(i64 4, ptr %395) #11
  %9129 = call ptr @__errno_location() #12
  %9130 = load i32, ptr %9129, align 4, !tbaa !5
  store i32 %9130, ptr %395, align 4, !tbaa !5
  %9131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9132 = call i32 @s2n_print_stacktrace(ptr noundef %9131)
  %9133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9134 = trunc i8 %9133 to i1
  br i1 %9134, label %9135, label %9157

9135:                                             ; preds = %9128
  %9136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9137 = call i32 @fileno(ptr noundef %9136) #11
  %9138 = call i32 @isatty(i32 noundef %9137) #11
  %9139 = icmp ne i32 %9138, 0
  br i1 %9139, label %9140, label %9157

9140:                                             ; preds = %9135
  %9141 = load i32, ptr %395, align 4, !tbaa !5
  %9142 = call ptr @__errno_location() #12
  store i32 %9141, ptr %9142, align 4, !tbaa !5
  %9143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9144 = load i32, ptr @test_count, align 4, !tbaa !5
  %9145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9146 = load i32, ptr %9145, align 4, !tbaa !5
  %9147 = call ptr @s2n_strerror(i32 noundef %9146, ptr noundef @.str.4)
  %9148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9149 = load i32, ptr %9148, align 4, !tbaa !5
  %9150 = call ptr @s2n_strerror_debug(i32 noundef %9149, ptr noundef @.str.4)
  %9151 = call ptr @__errno_location() #12
  %9152 = load i32, ptr %9151, align 4, !tbaa !5
  %9153 = call ptr @strerror(i32 noundef %9152) #11
  %9154 = call ptr @__errno_location() #12
  %9155 = load i32, ptr %9154, align 4, !tbaa !5
  %9156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9143, ptr noundef @.str.2, i32 noundef %9144, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 611, ptr noundef %9147, ptr noundef %9150, ptr noundef %9153, i32 noundef %9155) #11
  br label %9174

9157:                                             ; preds = %9135, %9128
  %9158 = load i32, ptr %395, align 4, !tbaa !5
  %9159 = call ptr @__errno_location() #12
  store i32 %9158, ptr %9159, align 4, !tbaa !5
  %9160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9161 = load i32, ptr @test_count, align 4, !tbaa !5
  %9162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9163 = load i32, ptr %9162, align 4, !tbaa !5
  %9164 = call ptr @s2n_strerror(i32 noundef %9163, ptr noundef @.str.4)
  %9165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9166 = load i32, ptr %9165, align 4, !tbaa !5
  %9167 = call ptr @s2n_strerror_debug(i32 noundef %9166, ptr noundef @.str.4)
  %9168 = call ptr @__errno_location() #12
  %9169 = load i32, ptr %9168, align 4, !tbaa !5
  %9170 = call ptr @strerror(i32 noundef %9169) #11
  %9171 = call ptr @__errno_location() #12
  %9172 = load i32, ptr %9171, align 4, !tbaa !5
  %9173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9160, ptr noundef @.str.5, i32 noundef %9161, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 611, ptr noundef %9164, ptr noundef %9167, ptr noundef %9170, i32 noundef %9172) #11
  br label %9174

9174:                                             ; preds = %9157, %9140
  call void @llvm.lifetime.end.p0(i64 4, ptr %395) #11
  br label %9175

9175:                                             ; preds = %9174
  br label %9176

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

9177:                                             ; No predecessors!
  br label %9178

9178:                                             ; preds = %9177
  br label %9179

9179:                                             ; preds = %9178, %9118
  br label %9180

9180:                                             ; preds = %9179
  br label %9181

9181:                                             ; preds = %9180
  %9182 = load i64, ptr %390, align 8, !tbaa !54
  %9183 = load i64, ptr %375, align 8, !tbaa !54
  %9184 = add i64 %9183, %9182
  store i64 %9184, ptr %375, align 8, !tbaa !54
  %9185 = getelementptr inbounds [16384 x i8], ptr %386, i64 0, i64 0
  %9186 = load i64, ptr %390, align 8, !tbaa !54
  %9187 = getelementptr inbounds i8, ptr %9185, i64 %9186
  %9188 = getelementptr inbounds %struct.iovec, ptr %388, i32 0, i32 0
  store ptr %9187, ptr %9188, align 8, !tbaa !16
  %9189 = load ptr, ptr %366, align 8, !tbaa !9
  %9190 = getelementptr inbounds %struct.s2n_connection, ptr %9189, i32 0, i32 9
  %9191 = load ptr, ptr %9190, align 8, !tbaa !69
  %9192 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %9191, ptr noundef %389)
  store i64 %9192, ptr %390, align 8, !tbaa !54
  br label %9193

9193:                                             ; preds = %9181
  %9194 = load i32, ptr @test_count, align 4, !tbaa !5
  %9195 = add nsw i32 %9194, 1
  store i32 %9195, ptr @test_count, align 4, !tbaa !5
  %9196 = load i64, ptr %390, align 8, !tbaa !54
  %9197 = load i64, ptr %372, align 8, !tbaa !54
  %9198 = icmp eq i64 %9196, %9197
  br i1 %9198, label %9252, label %9199

9199:                                             ; preds = %9193
  br label %9200

9200:                                             ; preds = %9199
  br label %9201

9201:                                             ; preds = %9200
  call void @llvm.lifetime.start.p0(i64 4, ptr %396) #11
  %9202 = call ptr @__errno_location() #12
  %9203 = load i32, ptr %9202, align 4, !tbaa !5
  store i32 %9203, ptr %396, align 4, !tbaa !5
  %9204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9205 = call i32 @s2n_print_stacktrace(ptr noundef %9204)
  %9206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9207 = trunc i8 %9206 to i1
  br i1 %9207, label %9208, label %9230

9208:                                             ; preds = %9201
  %9209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9210 = call i32 @fileno(ptr noundef %9209) #11
  %9211 = call i32 @isatty(i32 noundef %9210) #11
  %9212 = icmp ne i32 %9211, 0
  br i1 %9212, label %9213, label %9230

9213:                                             ; preds = %9208
  %9214 = load i32, ptr %396, align 4, !tbaa !5
  %9215 = call ptr @__errno_location() #12
  store i32 %9214, ptr %9215, align 4, !tbaa !5
  %9216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9217 = load i32, ptr @test_count, align 4, !tbaa !5
  %9218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9219 = load i32, ptr %9218, align 4, !tbaa !5
  %9220 = call ptr @s2n_strerror(i32 noundef %9219, ptr noundef @.str.4)
  %9221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9222 = load i32, ptr %9221, align 4, !tbaa !5
  %9223 = call ptr @s2n_strerror_debug(i32 noundef %9222, ptr noundef @.str.4)
  %9224 = call ptr @__errno_location() #12
  %9225 = load i32, ptr %9224, align 4, !tbaa !5
  %9226 = call ptr @strerror(i32 noundef %9225) #11
  %9227 = call ptr @__errno_location() #12
  %9228 = load i32, ptr %9227, align 4, !tbaa !5
  %9229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9216, ptr noundef @.str.2, i32 noundef %9217, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 616, ptr noundef %9220, ptr noundef %9223, ptr noundef %9226, i32 noundef %9228) #11
  br label %9247

9230:                                             ; preds = %9208, %9201
  %9231 = load i32, ptr %396, align 4, !tbaa !5
  %9232 = call ptr @__errno_location() #12
  store i32 %9231, ptr %9232, align 4, !tbaa !5
  %9233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9234 = load i32, ptr @test_count, align 4, !tbaa !5
  %9235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9236 = load i32, ptr %9235, align 4, !tbaa !5
  %9237 = call ptr @s2n_strerror(i32 noundef %9236, ptr noundef @.str.4)
  %9238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9239 = load i32, ptr %9238, align 4, !tbaa !5
  %9240 = call ptr @s2n_strerror_debug(i32 noundef %9239, ptr noundef @.str.4)
  %9241 = call ptr @__errno_location() #12
  %9242 = load i32, ptr %9241, align 4, !tbaa !5
  %9243 = call ptr @strerror(i32 noundef %9242) #11
  %9244 = call ptr @__errno_location() #12
  %9245 = load i32, ptr %9244, align 4, !tbaa !5
  %9246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9233, ptr noundef @.str.5, i32 noundef %9234, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 616, ptr noundef %9237, ptr noundef %9240, ptr noundef %9243, i32 noundef %9245) #11
  br label %9247

9247:                                             ; preds = %9230, %9213
  call void @llvm.lifetime.end.p0(i64 4, ptr %396) #11
  br label %9248

9248:                                             ; preds = %9247
  br label %9249

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

9250:                                             ; No predecessors!
  br label %9251

9251:                                             ; preds = %9250
  br label %9252

9252:                                             ; preds = %9251, %9193
  br label %9253

9253:                                             ; preds = %9252
  br label %9254

9254:                                             ; preds = %9253
  call void @llvm.lifetime.start.p0(i64 1, ptr %397) #11
  store i8 0, ptr %397, align 1, !tbaa !15
  br label %9255

9255:                                             ; preds = %9254
  %9256 = load i32, ptr @test_count, align 4, !tbaa !5
  %9257 = add nsw i32 %9256, 1
  store i32 %9257, ptr @test_count, align 4, !tbaa !5
  %9258 = call i32 @s2n_ktls_get_control_data(ptr noundef %389, i32 noundef 0, ptr noundef %397)
  %9259 = getelementptr inbounds %struct.s2n_result, ptr %398, i32 0, i32 0
  store i32 %9258, ptr %9259, align 4
  %9260 = getelementptr inbounds %struct.s2n_result, ptr %398, i32 0, i32 0
  %9261 = load i32, ptr %9260, align 4
  %9262 = call zeroext i1 @s2n_result_is_ok(i32 %9261)
  br i1 %9262, label %9316, label %9263

9263:                                             ; preds = %9255
  br label %9264

9264:                                             ; preds = %9263
  br label %9265

9265:                                             ; preds = %9264
  call void @llvm.lifetime.start.p0(i64 4, ptr %399) #11
  %9266 = call ptr @__errno_location() #12
  %9267 = load i32, ptr %9266, align 4, !tbaa !5
  store i32 %9267, ptr %399, align 4, !tbaa !5
  %9268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9269 = call i32 @s2n_print_stacktrace(ptr noundef %9268)
  %9270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9271 = trunc i8 %9270 to i1
  br i1 %9271, label %9272, label %9294

9272:                                             ; preds = %9265
  %9273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9274 = call i32 @fileno(ptr noundef %9273) #11
  %9275 = call i32 @isatty(i32 noundef %9274) #11
  %9276 = icmp ne i32 %9275, 0
  br i1 %9276, label %9277, label %9294

9277:                                             ; preds = %9272
  %9278 = load i32, ptr %399, align 4, !tbaa !5
  %9279 = call ptr @__errno_location() #12
  store i32 %9278, ptr %9279, align 4, !tbaa !5
  %9280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9281 = load i32, ptr @test_count, align 4, !tbaa !5
  %9282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9283 = load i32, ptr %9282, align 4, !tbaa !5
  %9284 = call ptr @s2n_strerror(i32 noundef %9283, ptr noundef @.str.4)
  %9285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9286 = load i32, ptr %9285, align 4, !tbaa !5
  %9287 = call ptr @s2n_strerror_debug(i32 noundef %9286, ptr noundef @.str.4)
  %9288 = call ptr @__errno_location() #12
  %9289 = load i32, ptr %9288, align 4, !tbaa !5
  %9290 = call ptr @strerror(i32 noundef %9289) #11
  %9291 = call ptr @__errno_location() #12
  %9292 = load i32, ptr %9291, align 4, !tbaa !5
  %9293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9280, ptr noundef @.str.2, i32 noundef %9281, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 618, ptr noundef %9284, ptr noundef %9287, ptr noundef %9290, i32 noundef %9292) #11
  br label %9311

9294:                                             ; preds = %9272, %9265
  %9295 = load i32, ptr %399, align 4, !tbaa !5
  %9296 = call ptr @__errno_location() #12
  store i32 %9295, ptr %9296, align 4, !tbaa !5
  %9297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9298 = load i32, ptr @test_count, align 4, !tbaa !5
  %9299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9300 = load i32, ptr %9299, align 4, !tbaa !5
  %9301 = call ptr @s2n_strerror(i32 noundef %9300, ptr noundef @.str.4)
  %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_debug(i32 noundef %9303, ptr noundef @.str.4)
  %9305 = call ptr @__errno_location() #12
  %9306 = load i32, ptr %9305, align 4, !tbaa !5
  %9307 = call ptr @strerror(i32 noundef %9306) #11
  %9308 = call ptr @__errno_location() #12
  %9309 = load i32, ptr %9308, align 4, !tbaa !5
  %9310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9297, ptr noundef @.str.5, i32 noundef %9298, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 618, ptr noundef %9301, ptr noundef %9304, ptr noundef %9307, i32 noundef %9309) #11
  br label %9311

9311:                                             ; preds = %9294, %9277
  call void @llvm.lifetime.end.p0(i64 4, ptr %399) #11
  br label %9312

9312:                                             ; preds = %9311
  br label %9313

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

9314:                                             ; No predecessors!
  br label %9315

9315:                                             ; preds = %9314
  br label %9316

9316:                                             ; preds = %9315, %9255
  br label %9317

9317:                                             ; preds = %9316
  br label %9318

9318:                                             ; preds = %9317
  br label %9319

9319:                                             ; preds = %9318
  %9320 = load i32, ptr @test_count, align 4, !tbaa !5
  %9321 = add nsw i32 %9320, 1
  store i32 %9321, ptr @test_count, align 4, !tbaa !5
  %9322 = load i8, ptr %397, align 1, !tbaa !15
  %9323 = zext i8 %9322 to i32
  %9324 = load i8, ptr %371, align 1, !tbaa !15
  %9325 = zext i8 %9324 to i32
  %9326 = icmp eq i32 %9323, %9325
  br i1 %9326, label %9380, label %9327

9327:                                             ; preds = %9319
  br label %9328

9328:                                             ; preds = %9327
  br label %9329

9329:                                             ; preds = %9328
  call void @llvm.lifetime.start.p0(i64 4, ptr %400) #11
  %9330 = call ptr @__errno_location() #12
  %9331 = load i32, ptr %9330, align 4, !tbaa !5
  store i32 %9331, ptr %400, align 4, !tbaa !5
  %9332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9333 = call i32 @s2n_print_stacktrace(ptr noundef %9332)
  %9334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9335 = trunc i8 %9334 to i1
  br i1 %9335, label %9336, label %9358

9336:                                             ; preds = %9329
  %9337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9338 = call i32 @fileno(ptr noundef %9337) #11
  %9339 = call i32 @isatty(i32 noundef %9338) #11
  %9340 = icmp ne i32 %9339, 0
  br i1 %9340, label %9341, label %9358

9341:                                             ; preds = %9336
  %9342 = load i32, ptr %400, align 4, !tbaa !5
  %9343 = call ptr @__errno_location() #12
  store i32 %9342, ptr %9343, align 4, !tbaa !5
  %9344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9345 = load i32, ptr @test_count, align 4, !tbaa !5
  %9346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9347 = load i32, ptr %9346, align 4, !tbaa !5
  %9348 = call ptr @s2n_strerror(i32 noundef %9347, ptr noundef @.str.4)
  %9349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9350 = load i32, ptr %9349, align 4, !tbaa !5
  %9351 = call ptr @s2n_strerror_debug(i32 noundef %9350, ptr noundef @.str.4)
  %9352 = call ptr @__errno_location() #12
  %9353 = load i32, ptr %9352, align 4, !tbaa !5
  %9354 = call ptr @strerror(i32 noundef %9353) #11
  %9355 = call ptr @__errno_location() #12
  %9356 = load i32, ptr %9355, align 4, !tbaa !5
  %9357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9344, ptr noundef @.str.2, i32 noundef %9345, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 619, ptr noundef %9348, ptr noundef %9351, ptr noundef %9354, i32 noundef %9356) #11
  br label %9375

9358:                                             ; preds = %9336, %9329
  %9359 = load i32, ptr %400, align 4, !tbaa !5
  %9360 = call ptr @__errno_location() #12
  store i32 %9359, ptr %9360, align 4, !tbaa !5
  %9361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9362 = load i32, ptr @test_count, align 4, !tbaa !5
  %9363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9364 = load i32, ptr %9363, align 4, !tbaa !5
  %9365 = call ptr @s2n_strerror(i32 noundef %9364, ptr noundef @.str.4)
  %9366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9367 = load i32, ptr %9366, align 4, !tbaa !5
  %9368 = call ptr @s2n_strerror_debug(i32 noundef %9367, ptr noundef @.str.4)
  %9369 = call ptr @__errno_location() #12
  %9370 = load i32, ptr %9369, align 4, !tbaa !5
  %9371 = call ptr @strerror(i32 noundef %9370) #11
  %9372 = call ptr @__errno_location() #12
  %9373 = load i32, ptr %9372, align 4, !tbaa !5
  %9374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9361, ptr noundef @.str.5, i32 noundef %9362, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 619, ptr noundef %9365, ptr noundef %9368, ptr noundef %9371, i32 noundef %9373) #11
  br label %9375

9375:                                             ; preds = %9358, %9341
  call void @llvm.lifetime.end.p0(i64 4, ptr %400) #11
  br label %9376

9376:                                             ; preds = %9375
  br label %9377

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

9378:                                             ; No predecessors!
  br label %9379

9379:                                             ; preds = %9378
  br label %9380

9380:                                             ; preds = %9379, %9319
  br label %9381

9381:                                             ; preds = %9380
  br label %9382

9382:                                             ; preds = %9381
  %9383 = load i64, ptr %390, align 8, !tbaa !54
  %9384 = load i64, ptr %375, align 8, !tbaa !54
  %9385 = add i64 %9384, %9383
  store i64 %9385, ptr %375, align 8, !tbaa !54
  br label %9386

9386:                                             ; preds = %9382
  %9387 = load i32, ptr @test_count, align 4, !tbaa !5
  %9388 = add nsw i32 %9387, 1
  store i32 %9388, ptr @test_count, align 4, !tbaa !5
  %9389 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %367, i32 0, i32 0
  %9390 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %9389, i32 0, i32 0
  %9391 = getelementptr inbounds %struct.s2n_stuffer, ptr %9390, i32 0, i32 2
  %9392 = load i32, ptr %9391, align 4, !tbaa !59
  %9393 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %367, i32 0, i32 0
  %9394 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %9393, i32 0, i32 0
  %9395 = getelementptr inbounds %struct.s2n_stuffer, ptr %9394, i32 0, i32 1
  %9396 = load i32, ptr %9395, align 8, !tbaa !60
  %9397 = sub i32 %9392, %9396
  %9398 = icmp eq i32 %9397, 0
  br i1 %9398, label %9452, label %9399

9399:                                             ; preds = %9386
  br label %9400

9400:                                             ; preds = %9399
  br label %9401

9401:                                             ; preds = %9400
  call void @llvm.lifetime.start.p0(i64 4, ptr %401) #11
  %9402 = call ptr @__errno_location() #12
  %9403 = load i32, ptr %9402, align 4, !tbaa !5
  store i32 %9403, ptr %401, align 4, !tbaa !5
  %9404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9405 = call i32 @s2n_print_stacktrace(ptr noundef %9404)
  %9406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9407 = trunc i8 %9406 to i1
  br i1 %9407, label %9408, label %9430

9408:                                             ; preds = %9401
  %9409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9410 = call i32 @fileno(ptr noundef %9409) #11
  %9411 = call i32 @isatty(i32 noundef %9410) #11
  %9412 = icmp ne i32 %9411, 0
  br i1 %9412, label %9413, label %9430

9413:                                             ; preds = %9408
  %9414 = load i32, ptr %401, align 4, !tbaa !5
  %9415 = call ptr @__errno_location() #12
  store i32 %9414, ptr %9415, align 4, !tbaa !5
  %9416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9417 = load i32, ptr @test_count, align 4, !tbaa !5
  %9418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9419 = load i32, ptr %9418, align 4, !tbaa !5
  %9420 = call ptr @s2n_strerror(i32 noundef %9419, ptr noundef @.str.4)
  %9421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9422 = load i32, ptr %9421, align 4, !tbaa !5
  %9423 = call ptr @s2n_strerror_debug(i32 noundef %9422, ptr noundef @.str.4)
  %9424 = call ptr @__errno_location() #12
  %9425 = load i32, ptr %9424, align 4, !tbaa !5
  %9426 = call ptr @strerror(i32 noundef %9425) #11
  %9427 = call ptr @__errno_location() #12
  %9428 = load i32, ptr %9427, align 4, !tbaa !5
  %9429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9416, ptr noundef @.str.2, i32 noundef %9417, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 624, ptr noundef %9420, ptr noundef %9423, ptr noundef %9426, i32 noundef %9428) #11
  br label %9447

9430:                                             ; preds = %9408, %9401
  %9431 = load i32, ptr %401, align 4, !tbaa !5
  %9432 = call ptr @__errno_location() #12
  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() #12
  %9442 = load i32, ptr %9441, align 4, !tbaa !5
  %9443 = call ptr @strerror(i32 noundef %9442) #11
  %9444 = call ptr @__errno_location() #12
  %9445 = load i32, ptr %9444, align 4, !tbaa !5
  %9446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9433, ptr noundef @.str.5, i32 noundef %9434, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 624, ptr noundef %9437, ptr noundef %9440, ptr noundef %9443, i32 noundef %9445) #11
  br label %9447

9447:                                             ; preds = %9430, %9413
  call void @llvm.lifetime.end.p0(i64 4, ptr %401) #11
  br label %9448

9448:                                             ; preds = %9447
  br label %9449

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

9450:                                             ; No predecessors!
  br label %9451

9451:                                             ; preds = %9450
  br label %9452

9452:                                             ; preds = %9451, %9386
  br label %9453

9453:                                             ; preds = %9452
  br label %9454

9454:                                             ; preds = %9453
  br label %9455

9455:                                             ; preds = %9454
  %9456 = load i32, ptr @test_count, align 4, !tbaa !5
  %9457 = add nsw i32 %9456, 1
  store i32 %9457, ptr @test_count, align 4, !tbaa !5
  %9458 = load i64, ptr %375, align 8, !tbaa !54
  %9459 = load i64, ptr %374, align 8, !tbaa !54
  %9460 = icmp eq i64 %9458, %9459
  br i1 %9460, label %9514, label %9461

9461:                                             ; preds = %9455
  br label %9462

9462:                                             ; preds = %9461
  br label %9463

9463:                                             ; preds = %9462
  call void @llvm.lifetime.start.p0(i64 4, ptr %402) #11
  %9464 = call ptr @__errno_location() #12
  %9465 = load i32, ptr %9464, align 4, !tbaa !5
  store i32 %9465, ptr %402, align 4, !tbaa !5
  %9466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9467 = call i32 @s2n_print_stacktrace(ptr noundef %9466)
  %9468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9469 = trunc i8 %9468 to i1
  br i1 %9469, label %9470, label %9492

9470:                                             ; preds = %9463
  %9471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9472 = call i32 @fileno(ptr noundef %9471) #11
  %9473 = call i32 @isatty(i32 noundef %9472) #11
  %9474 = icmp ne i32 %9473, 0
  br i1 %9474, label %9475, label %9492

9475:                                             ; preds = %9470
  %9476 = load i32, ptr %402, align 4, !tbaa !5
  %9477 = call ptr @__errno_location() #12
  store i32 %9476, ptr %9477, align 4, !tbaa !5
  %9478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9479 = load i32, ptr @test_count, align 4, !tbaa !5
  %9480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9481 = load i32, ptr %9480, align 4, !tbaa !5
  %9482 = call ptr @s2n_strerror(i32 noundef %9481, ptr noundef @.str.4)
  %9483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9484 = load i32, ptr %9483, align 4, !tbaa !5
  %9485 = call ptr @s2n_strerror_debug(i32 noundef %9484, ptr noundef @.str.4)
  %9486 = call ptr @__errno_location() #12
  %9487 = load i32, ptr %9486, align 4, !tbaa !5
  %9488 = call ptr @strerror(i32 noundef %9487) #11
  %9489 = call ptr @__errno_location() #12
  %9490 = load i32, ptr %9489, align 4, !tbaa !5
  %9491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9478, ptr noundef @.str.2, i32 noundef %9479, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 625, ptr noundef %9482, ptr noundef %9485, ptr noundef %9488, i32 noundef %9490) #11
  br label %9509

9492:                                             ; preds = %9470, %9463
  %9493 = load i32, ptr %402, align 4, !tbaa !5
  %9494 = call ptr @__errno_location() #12
  store i32 %9493, ptr %9494, align 4, !tbaa !5
  %9495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9496 = load i32, ptr @test_count, align 4, !tbaa !5
  %9497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9498 = load i32, ptr %9497, align 4, !tbaa !5
  %9499 = call ptr @s2n_strerror(i32 noundef %9498, ptr noundef @.str.4)
  %9500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9501 = load i32, ptr %9500, align 4, !tbaa !5
  %9502 = call ptr @s2n_strerror_debug(i32 noundef %9501, ptr noundef @.str.4)
  %9503 = call ptr @__errno_location() #12
  %9504 = load i32, ptr %9503, align 4, !tbaa !5
  %9505 = call ptr @strerror(i32 noundef %9504) #11
  %9506 = call ptr @__errno_location() #12
  %9507 = load i32, ptr %9506, align 4, !tbaa !5
  %9508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9495, ptr noundef @.str.5, i32 noundef %9496, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 625, ptr noundef %9499, ptr noundef %9502, ptr noundef %9505, i32 noundef %9507) #11
  br label %9509

9509:                                             ; preds = %9492, %9475
  call void @llvm.lifetime.end.p0(i64 4, ptr %402) #11
  br label %9510

9510:                                             ; preds = %9509
  br label %9511

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

9512:                                             ; No predecessors!
  br label %9513

9513:                                             ; preds = %9512
  br label %9514

9514:                                             ; preds = %9513, %9455
  br label %9515

9515:                                             ; preds = %9514
  br label %9516

9516:                                             ; preds = %9515
  br label %9517

9517:                                             ; preds = %9516
  %9518 = load i64, ptr %374, align 8, !tbaa !54
  %9519 = icmp ne i64 %9518, 0
  br i1 %9519, label %9520, label %9585

9520:                                             ; preds = %9517
  br label %9521

9521:                                             ; preds = %9520
  %9522 = load i32, ptr @test_count, align 4, !tbaa !5
  %9523 = add nsw i32 %9522, 1
  store i32 %9523, ptr @test_count, align 4, !tbaa !5
  %9524 = getelementptr inbounds [16384 x i8], ptr %10, i64 0, i64 0
  %9525 = getelementptr inbounds [16384 x i8], ptr %386, i64 0, i64 0
  %9526 = load i64, ptr %374, align 8, !tbaa !54
  %9527 = call i32 @memcmp(ptr noundef %9524, ptr noundef %9525, i64 noundef %9526) #14
  %9528 = icmp eq i32 %9527, 0
  br i1 %9528, label %9582, label %9529

9529:                                             ; preds = %9521
  br label %9530

9530:                                             ; preds = %9529
  br label %9531

9531:                                             ; preds = %9530
  call void @llvm.lifetime.start.p0(i64 4, ptr %403) #11
  %9532 = call ptr @__errno_location() #12
  %9533 = load i32, ptr %9532, align 4, !tbaa !5
  store i32 %9533, ptr %403, align 4, !tbaa !5
  %9534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9535 = call i32 @s2n_print_stacktrace(ptr noundef %9534)
  %9536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9537 = trunc i8 %9536 to i1
  br i1 %9537, label %9538, label %9560

9538:                                             ; preds = %9531
  %9539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9540 = call i32 @fileno(ptr noundef %9539) #11
  %9541 = call i32 @isatty(i32 noundef %9540) #11
  %9542 = icmp ne i32 %9541, 0
  br i1 %9542, label %9543, label %9560

9543:                                             ; preds = %9538
  %9544 = load i32, ptr %403, align 4, !tbaa !5
  %9545 = call ptr @__errno_location() #12
  store i32 %9544, ptr %9545, align 4, !tbaa !5
  %9546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9547 = load i32, ptr @test_count, align 4, !tbaa !5
  %9548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9549 = load i32, ptr %9548, align 4, !tbaa !5
  %9550 = call ptr @s2n_strerror(i32 noundef %9549, ptr noundef @.str.4)
  %9551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9552 = load i32, ptr %9551, align 4, !tbaa !5
  %9553 = call ptr @s2n_strerror_debug(i32 noundef %9552, ptr noundef @.str.4)
  %9554 = call ptr @__errno_location() #12
  %9555 = load i32, ptr %9554, align 4, !tbaa !5
  %9556 = call ptr @strerror(i32 noundef %9555) #11
  %9557 = call ptr @__errno_location() #12
  %9558 = load i32, ptr %9557, align 4, !tbaa !5
  %9559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9546, ptr noundef @.str.2, i32 noundef %9547, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 626, ptr noundef %9550, ptr noundef %9553, ptr noundef %9556, i32 noundef %9558) #11
  br label %9577

9560:                                             ; preds = %9538, %9531
  %9561 = load i32, ptr %403, align 4, !tbaa !5
  %9562 = call ptr @__errno_location() #12
  store i32 %9561, ptr %9562, align 4, !tbaa !5
  %9563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9564 = load i32, ptr @test_count, align 4, !tbaa !5
  %9565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9566 = load i32, ptr %9565, align 4, !tbaa !5
  %9567 = call ptr @s2n_strerror(i32 noundef %9566, ptr noundef @.str.4)
  %9568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9569 = load i32, ptr %9568, align 4, !tbaa !5
  %9570 = call ptr @s2n_strerror_debug(i32 noundef %9569, ptr noundef @.str.4)
  %9571 = call ptr @__errno_location() #12
  %9572 = load i32, ptr %9571, align 4, !tbaa !5
  %9573 = call ptr @strerror(i32 noundef %9572) #11
  %9574 = call ptr @__errno_location() #12
  %9575 = load i32, ptr %9574, align 4, !tbaa !5
  %9576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9563, ptr noundef @.str.5, i32 noundef %9564, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 626, ptr noundef %9567, ptr noundef %9570, ptr noundef %9573, i32 noundef %9575) #11
  br label %9577

9577:                                             ; preds = %9560, %9543
  call void @llvm.lifetime.end.p0(i64 4, ptr %403) #11
  br label %9578

9578:                                             ; preds = %9577
  br label %9579

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

9580:                                             ; No predecessors!
  br label %9581

9581:                                             ; preds = %9580
  br label %9582

9582:                                             ; preds = %9581, %9521
  br label %9583

9583:                                             ; preds = %9582
  br label %9584

9584:                                             ; preds = %9583
  br label %9585

9585:                                             ; preds = %9584, %9517
  br label %9586

9586:                                             ; preds = %9585
  br label %9587

9587:                                             ; preds = %9586
  br label %9588

9588:                                             ; preds = %9587
  %9589 = load i32, ptr @test_count, align 4, !tbaa !5
  %9590 = add nsw i32 %9589, 1
  store i32 %9590, ptr @test_count, align 4, !tbaa !5
  %9591 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %367, i32 0, i32 0
  %9592 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %9591, i32 0, i32 2
  %9593 = load i64, ptr %9592, align 8, !tbaa !55
  %9594 = icmp eq i64 %9593, 2
  br i1 %9594, label %9648, label %9595

9595:                                             ; preds = %9588
  br label %9596

9596:                                             ; preds = %9595
  br label %9597

9597:                                             ; preds = %9596
  call void @llvm.lifetime.start.p0(i64 4, ptr %404) #11
  %9598 = call ptr @__errno_location() #12
  %9599 = load i32, ptr %9598, align 4, !tbaa !5
  store i32 %9599, ptr %404, align 4, !tbaa !5
  %9600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9601 = call i32 @s2n_print_stacktrace(ptr noundef %9600)
  %9602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9603 = trunc i8 %9602 to i1
  br i1 %9603, label %9604, label %9626

9604:                                             ; preds = %9597
  %9605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9606 = call i32 @fileno(ptr noundef %9605) #11
  %9607 = call i32 @isatty(i32 noundef %9606) #11
  %9608 = icmp ne i32 %9607, 0
  br i1 %9608, label %9609, label %9626

9609:                                             ; preds = %9604
  %9610 = load i32, ptr %404, align 4, !tbaa !5
  %9611 = call ptr @__errno_location() #12
  store i32 %9610, ptr %9611, align 4, !tbaa !5
  %9612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9613 = load i32, ptr @test_count, align 4, !tbaa !5
  %9614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9615 = load i32, ptr %9614, align 4, !tbaa !5
  %9616 = call ptr @s2n_strerror(i32 noundef %9615, ptr noundef @.str.4)
  %9617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9618 = load i32, ptr %9617, align 4, !tbaa !5
  %9619 = call ptr @s2n_strerror_debug(i32 noundef %9618, ptr noundef @.str.4)
  %9620 = call ptr @__errno_location() #12
  %9621 = load i32, ptr %9620, align 4, !tbaa !5
  %9622 = call ptr @strerror(i32 noundef %9621) #11
  %9623 = call ptr @__errno_location() #12
  %9624 = load i32, ptr %9623, align 4, !tbaa !5
  %9625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9612, ptr noundef @.str.2, i32 noundef %9613, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 628, ptr noundef %9616, ptr noundef %9619, ptr noundef %9622, i32 noundef %9624) #11
  br label %9643

9626:                                             ; preds = %9604, %9597
  %9627 = load i32, ptr %404, align 4, !tbaa !5
  %9628 = call ptr @__errno_location() #12
  store i32 %9627, ptr %9628, align 4, !tbaa !5
  %9629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9630 = load i32, ptr @test_count, align 4, !tbaa !5
  %9631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9632 = load i32, ptr %9631, align 4, !tbaa !5
  %9633 = call ptr @s2n_strerror(i32 noundef %9632, ptr noundef @.str.4)
  %9634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9635 = load i32, ptr %9634, align 4, !tbaa !5
  %9636 = call ptr @s2n_strerror_debug(i32 noundef %9635, ptr noundef @.str.4)
  %9637 = call ptr @__errno_location() #12
  %9638 = load i32, ptr %9637, align 4, !tbaa !5
  %9639 = call ptr @strerror(i32 noundef %9638) #11
  %9640 = call ptr @__errno_location() #12
  %9641 = load i32, ptr %9640, align 4, !tbaa !5
  %9642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9629, ptr noundef @.str.5, i32 noundef %9630, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 628, ptr noundef %9633, ptr noundef %9636, ptr noundef %9639, i32 noundef %9641) #11
  br label %9643

9643:                                             ; preds = %9626, %9609
  call void @llvm.lifetime.end.p0(i64 4, ptr %404) #11
  br label %9644

9644:                                             ; preds = %9643
  br label %9645

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

9646:                                             ; No predecessors!
  br label %9647

9647:                                             ; preds = %9646
  br label %9648

9648:                                             ; preds = %9647, %9588
  br label %9649

9649:                                             ; preds = %9648
  br label %9650

9650:                                             ; preds = %9649
  br label %9651

9651:                                             ; preds = %9650
  %9652 = load i32, ptr @test_count, align 4, !tbaa !5
  %9653 = add nsw i32 %9652, 1
  store i32 %9653, ptr @test_count, align 4, !tbaa !5
  %9654 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer_pair, ptr %367, i32 0, i32 0
  %9655 = getelementptr inbounds %struct.s2n_test_ktls_io_stuffer, ptr %9654, i32 0, i32 3
  %9656 = load i64, ptr %9655, align 8, !tbaa !70
  %9657 = icmp eq i64 %9656, 2
  br i1 %9657, label %9711, label %9658

9658:                                             ; preds = %9651
  br label %9659

9659:                                             ; preds = %9658
  br label %9660

9660:                                             ; preds = %9659
  call void @llvm.lifetime.start.p0(i64 4, ptr %405) #11
  %9661 = call ptr @__errno_location() #12
  %9662 = load i32, ptr %9661, align 4, !tbaa !5
  store i32 %9662, ptr %405, align 4, !tbaa !5
  %9663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9664 = call i32 @s2n_print_stacktrace(ptr noundef %9663)
  %9665 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9666 = trunc i8 %9665 to i1
  br i1 %9666, label %9667, label %9689

9667:                                             ; preds = %9660
  %9668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9669 = call i32 @fileno(ptr noundef %9668) #11
  %9670 = call i32 @isatty(i32 noundef %9669) #11
  %9671 = icmp ne i32 %9670, 0
  br i1 %9671, label %9672, label %9689

9672:                                             ; preds = %9667
  %9673 = load i32, ptr %405, align 4, !tbaa !5
  %9674 = call ptr @__errno_location() #12
  store i32 %9673, ptr %9674, align 4, !tbaa !5
  %9675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9676 = load i32, ptr @test_count, align 4, !tbaa !5
  %9677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9678 = load i32, ptr %9677, align 4, !tbaa !5
  %9679 = call ptr @s2n_strerror(i32 noundef %9678, ptr noundef @.str.4)
  %9680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9681 = load i32, ptr %9680, align 4, !tbaa !5
  %9682 = call ptr @s2n_strerror_debug(i32 noundef %9681, ptr noundef @.str.4)
  %9683 = call ptr @__errno_location() #12
  %9684 = load i32, ptr %9683, align 4, !tbaa !5
  %9685 = call ptr @strerror(i32 noundef %9684) #11
  %9686 = call ptr @__errno_location() #12
  %9687 = load i32, ptr %9686, align 4, !tbaa !5
  %9688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9675, ptr noundef @.str.2, i32 noundef %9676, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 629, ptr noundef %9679, ptr noundef %9682, ptr noundef %9685, i32 noundef %9687) #11
  br label %9706

9689:                                             ; preds = %9667, %9660
  %9690 = load i32, ptr %405, align 4, !tbaa !5
  %9691 = call ptr @__errno_location() #12
  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() #12
  %9701 = load i32, ptr %9700, align 4, !tbaa !5
  %9702 = call ptr @strerror(i32 noundef %9701) #11
  %9703 = call ptr @__errno_location() #12
  %9704 = load i32, ptr %9703, align 4, !tbaa !5
  %9705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9692, ptr noundef @.str.5, i32 noundef %9693, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 629, ptr noundef %9696, ptr noundef %9699, ptr noundef %9702, i32 noundef %9704) #11
  br label %9706

9706:                                             ; preds = %9689, %9672
  call void @llvm.lifetime.end.p0(i64 4, ptr %405) #11
  br label %9707

9707:                                             ; preds = %9706
  br label %9708

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

9709:                                             ; No predecessors!
  br label %9710

9710:                                             ; preds = %9709
  br label %9711

9711:                                             ; preds = %9710, %9651
  br label %9712

9712:                                             ; preds = %9711
  br label %9713

9713:                                             ; preds = %9712
  call void @llvm.lifetime.end.p0(i64 1, ptr %397) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %392) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %390) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %389) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %388) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %387) #11
  call void @llvm.lifetime.end.p0(i64 16384, ptr %386) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %381) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %378) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %377) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %376) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %375) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %374) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %373) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %372) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %371) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %370) #11
  %9714 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef %367)
  %9715 = getelementptr inbounds %struct.s2n_result, ptr %406, i32 0, i32 0
  store i32 %9714, ptr %9715, align 4
  call void @llvm.lifetime.end.p0(i64 192, ptr %367) #11
  %9716 = call i32 @s2n_connection_ptr_free(ptr noundef %366)
  %9717 = getelementptr inbounds %struct.s2n_result, ptr %407, i32 0, i32 0
  store i32 %9716, ptr %9717, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %366) #11
  %9718 = call i32 @s2n_connection_ptr_free(ptr noundef %365)
  %9719 = getelementptr inbounds %struct.s2n_result, ptr %408, i32 0, i32 0
  store i32 %9718, ptr %9719, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %365) #11
  br label %9720

9720:                                             ; preds = %9713
  br label %9721

9721:                                             ; preds = %9720
  %9722 = call i32 @s2n_cleanup()
  %9723 = icmp eq i32 %9722, -1
  br i1 %9723, label %9724, label %9777

9724:                                             ; preds = %9721
  br label %9725

9725:                                             ; preds = %9724
  br label %9726

9726:                                             ; preds = %9725
  call void @llvm.lifetime.start.p0(i64 4, ptr %409) #11
  %9727 = call ptr @__errno_location() #12
  %9728 = load i32, ptr %9727, align 4, !tbaa !5
  store i32 %9728, ptr %409, align 4, !tbaa !5
  %9729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9730 = call i32 @s2n_print_stacktrace(ptr noundef %9729)
  %9731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9732 = trunc i8 %9731 to i1
  br i1 %9732, label %9733, label %9755

9733:                                             ; preds = %9726
  %9734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9735 = call i32 @fileno(ptr noundef %9734) #11
  %9736 = call i32 @isatty(i32 noundef %9735) #11
  %9737 = icmp ne i32 %9736, 0
  br i1 %9737, label %9738, label %9755

9738:                                             ; preds = %9733
  %9739 = load i32, ptr %409, align 4, !tbaa !5
  %9740 = call ptr @__errno_location() #12
  store i32 %9739, ptr %9740, align 4, !tbaa !5
  %9741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9742 = load i32, ptr @test_count, align 4, !tbaa !5
  %9743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9744 = load i32, ptr %9743, align 4, !tbaa !5
  %9745 = call ptr @s2n_strerror(i32 noundef %9744, ptr noundef @.str.4)
  %9746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9747 = load i32, ptr %9746, align 4, !tbaa !5
  %9748 = call ptr @s2n_strerror_debug(i32 noundef %9747, ptr noundef @.str.4)
  %9749 = call ptr @__errno_location() #12
  %9750 = load i32, ptr %9749, align 4, !tbaa !5
  %9751 = call ptr @strerror(i32 noundef %9750) #11
  %9752 = call ptr @__errno_location() #12
  %9753 = load i32, ptr %9752, align 4, !tbaa !5
  %9754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9741, ptr noundef @.str.2, i32 noundef %9742, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 633, ptr noundef %9745, ptr noundef %9748, ptr noundef %9751, i32 noundef %9753) #11
  br label %9772

9755:                                             ; preds = %9733, %9726
  %9756 = load i32, ptr %409, align 4, !tbaa !5
  %9757 = call ptr @__errno_location() #12
  store i32 %9756, ptr %9757, align 4, !tbaa !5
  %9758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9759 = load i32, ptr @test_count, align 4, !tbaa !5
  %9760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9761 = load i32, ptr %9760, align 4, !tbaa !5
  %9762 = call ptr @s2n_strerror(i32 noundef %9761, ptr noundef @.str.4)
  %9763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9764 = load i32, ptr %9763, align 4, !tbaa !5
  %9765 = call ptr @s2n_strerror_debug(i32 noundef %9764, ptr noundef @.str.4)
  %9766 = call ptr @__errno_location() #12
  %9767 = load i32, ptr %9766, align 4, !tbaa !5
  %9768 = call ptr @strerror(i32 noundef %9767) #11
  %9769 = call ptr @__errno_location() #12
  %9770 = load i32, ptr %9769, align 4, !tbaa !5
  %9771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9758, ptr noundef @.str.5, i32 noundef %9759, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 633, ptr noundef %9762, ptr noundef %9765, ptr noundef %9768, i32 noundef %9770) #11
  br label %9772

9772:                                             ; preds = %9755, %9738
  call void @llvm.lifetime.end.p0(i64 4, ptr %409) #11
  br label %9773

9773:                                             ; preds = %9772
  br label %9774

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

9775:                                             ; No predecessors!
  br label %9776

9776:                                             ; preds = %9775
  br label %9777

9777:                                             ; preds = %9776, %9721
  br label %9778

9778:                                             ; preds = %9777
  br label %9779

9779:                                             ; preds = %9778
  br label %9780

9780:                                             ; preds = %9779
  br label %9781

9781:                                             ; preds = %9780
  %9782 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %9783 = icmp eq i32 %9782, -1
  br i1 %9783, label %9784, label %9837

9784:                                             ; preds = %9781
  br label %9785

9785:                                             ; preds = %9784
  br label %9786

9786:                                             ; preds = %9785
  call void @llvm.lifetime.start.p0(i64 4, ptr %410) #11
  %9787 = call ptr @__errno_location() #12
  %9788 = load i32, ptr %9787, align 4, !tbaa !5
  store i32 %9788, ptr %410, align 4, !tbaa !5
  %9789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9790 = call i32 @s2n_print_stacktrace(ptr noundef %9789)
  %9791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9792 = trunc i8 %9791 to i1
  br i1 %9792, label %9793, label %9815

9793:                                             ; preds = %9786
  %9794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9795 = call i32 @fileno(ptr noundef %9794) #11
  %9796 = call i32 @isatty(i32 noundef %9795) #11
  %9797 = icmp ne i32 %9796, 0
  br i1 %9797, label %9798, label %9815

9798:                                             ; preds = %9793
  %9799 = load i32, ptr %410, align 4, !tbaa !5
  %9800 = call ptr @__errno_location() #12
  store i32 %9799, ptr %9800, align 4, !tbaa !5
  %9801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9802 = load i32, ptr @test_count, align 4, !tbaa !5
  %9803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9804 = load i32, ptr %9803, align 4, !tbaa !5
  %9805 = call ptr @s2n_strerror(i32 noundef %9804, ptr noundef @.str.4)
  %9806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9807 = load i32, ptr %9806, align 4, !tbaa !5
  %9808 = call ptr @s2n_strerror_debug(i32 noundef %9807, ptr noundef @.str.4)
  %9809 = call ptr @__errno_location() #12
  %9810 = load i32, ptr %9809, align 4, !tbaa !5
  %9811 = call ptr @strerror(i32 noundef %9810) #11
  %9812 = call ptr @__errno_location() #12
  %9813 = load i32, ptr %9812, align 4, !tbaa !5
  %9814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9801, ptr noundef @.str.2, i32 noundef %9802, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 633, ptr noundef %9805, ptr noundef %9808, ptr noundef %9811, i32 noundef %9813) #11
  br label %9832

9815:                                             ; preds = %9793, %9786
  %9816 = load i32, ptr %410, align 4, !tbaa !5
  %9817 = call ptr @__errno_location() #12
  store i32 %9816, ptr %9817, align 4, !tbaa !5
  %9818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9819 = load i32, ptr @test_count, align 4, !tbaa !5
  %9820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9821 = load i32, ptr %9820, align 4, !tbaa !5
  %9822 = call ptr @s2n_strerror(i32 noundef %9821, ptr noundef @.str.4)
  %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_debug(i32 noundef %9824, ptr noundef @.str.4)
  %9826 = call ptr @__errno_location() #12
  %9827 = load i32, ptr %9826, align 4, !tbaa !5
  %9828 = call ptr @strerror(i32 noundef %9827) #11
  %9829 = call ptr @__errno_location() #12
  %9830 = load i32, ptr %9829, align 4, !tbaa !5
  %9831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9818, ptr noundef @.str.5, i32 noundef %9819, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 633, ptr noundef %9822, ptr noundef %9825, ptr noundef %9828, i32 noundef %9830) #11
  br label %9832

9832:                                             ; preds = %9815, %9798
  call void @llvm.lifetime.end.p0(i64 4, ptr %410) #11
  br label %9833

9833:                                             ; preds = %9832
  br label %9834

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

9835:                                             ; No predecessors!
  br label %9836

9836:                                             ; preds = %9835
  br label %9837

9837:                                             ; preds = %9836, %9781
  br label %9838

9838:                                             ; preds = %9837
  br label %9839

9839:                                             ; preds = %9838
  %9840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9841 = trunc i8 %9840 to i1
  br i1 %9841, label %9842, label %9858

9842:                                             ; preds = %9839
  %9843 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9844 = call i32 @fileno(ptr noundef %9843) #11
  %9845 = call i32 @isatty(i32 noundef %9844) #11
  %9846 = icmp ne i32 %9845, 0
  br i1 %9846, label %9847, label %9858

9847:                                             ; preds = %9842
  %9848 = load i32, ptr @test_count, align 4, !tbaa !5
  %9849 = icmp ne i32 %9848, 0
  br i1 %9849, label %9850, label %9854

9850:                                             ; preds = %9847
  %9851 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9852 = load i32, ptr @test_count, align 4, !tbaa !5
  %9853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9851, ptr noundef @.str.68, i32 noundef %9852) #11
  br label %9857

9854:                                             ; preds = %9847
  %9855 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9855, ptr noundef @.str.69) #11
  br label %9857

9857:                                             ; preds = %9854, %9850
  br label %9869

9858:                                             ; preds = %9842, %9839
  %9859 = load i32, ptr @test_count, align 4, !tbaa !5
  %9860 = icmp ne i32 %9859, 0
  br i1 %9860, label %9861, label %9865

9861:                                             ; preds = %9858
  %9862 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9863 = load i32, ptr @test_count, align 4, !tbaa !5
  %9864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9862, ptr noundef @.str.70, i32 noundef %9863) #11
  br label %9868

9865:                                             ; preds = %9858
  %9866 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9866, ptr noundef @.str.71) #11
  br label %9868

9868:                                             ; preds = %9865, %9861
  br label %9869

9869:                                             ; preds = %9868, %9857
  store i32 0, ptr %3, align 4
  store i32 1, ptr %411, align 4
  br label %9874

9870:                                             ; No predecessors!
  br label %9871

9871:                                             ; preds = %9870
  br label %9872

9872:                                             ; preds = %9871
  br label %9873

9873:                                             ; preds = %9872
  store i32 0, ptr %411, align 4
  br label %9874

9874:                                             ; preds = %9873, %9869
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 16384, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #11
  %9875 = load i32, ptr %411, align 4
  switch i32 %9875, label %9878 [
    i32 0, label %9876
    i32 1, label %9876
  ]

9876:                                             ; preds = %9874, %9874
  %9877 = load i32, ptr %3, align 4
  ret i32 %9877

9878:                                             ; preds = %9874
  unreachable
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #1

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #4

declare i32 @s2n_print_stacktrace(ptr noundef) #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #1

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) #2

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #1

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #6

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #7

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #8

declare i32 @s2n_get_public_random_data(ptr noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

declare i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef) #2

declare i32 @s2n_test_init_ktls_io_stuffer(ptr noundef, ptr noundef, ptr noundef) #2

declare i32 @s2n_ktls_set_control_data(ptr noundef, ptr noundef, i64 noundef, i32 noundef, i8 noundef zeroext) #2

declare i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef, ptr noundef) #2

declare i32 @s2n_test_validate_data(ptr noundef, ptr noundef, i16 noundef zeroext) #2

declare i32 @s2n_test_validate_ancillary(ptr noundef, i8 noundef zeroext, i16 noundef zeroext) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9

declare ptr @s2n_stuffer_raw_read(ptr noundef, i32 noundef) #2

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) #2

declare i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef, ptr noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #10

declare i32 @s2n_ktls_get_control_data(ptr noundef, i32 noundef, ptr noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { noreturn nounwind }
attributes #14 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !10, i64 0}
!17 = !{!"iovec", !10, i64 0, !18, i64 8}
!18 = !{!"long", !7, i64 0}
!19 = !{!17, !18, i64 8}
!20 = !{!21, !10, i64 0}
!21 = !{!"msghdr", !10, i64 0, !6, i64 8, !10, i64 16, !18, i64 24, !10, i64 32, !18, i64 40, !6, i64 48}
!22 = !{!21, !6, i64 8}
!23 = !{!21, !10, i64 16}
!24 = !{!21, !18, i64 24}
!25 = !{!21, !10, i64 32}
!26 = !{!21, !18, i64 40}
!27 = !{!21, !6, i64 48}
!28 = !{!29, !10, i64 64}
!29 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !30, i64 160, !18, i64 168, !18, 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, !31, i64 240, !10, i64 632, !10, i64 640, !32, i64 648, !38, i64 1144, !41, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !44, i64 1776, !44, i64 1816, !44, i64 1856, !44, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !44, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !45, i64 2004, !45, i64 2008, !46, i64 2016, !43, i64 2208, !6, i64 2212, !43, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !45, i64 2264, !45, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !37, i64 2792, !6, i64 2816, !37, i64 2824, !37, i64 2848, !37, i64 2872, !48, i64 2896, !50, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !37, i64 3784, !6, i64 3808, !52, i64 3816, !7, i64 3848, !44, i64 3992, !37, i64 4032, !37, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !43, i64 4084, !43, i64 4086, !6, i64 4088, !6, i64 4092, !37, i64 4096, !6, i64 4120, !53, i64 4128, !45, i64 4176, !7, i64 4180, !7, i64 4181}
!30 = !{!"s2n_timer", !18, i64 0}
!31 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!32 = !{!"s2n_kex_parameters", !33, i64 0, !34, i64 8, !7, i64 24, !34, i64 56, !35, i64 72, !35, i64 184, !7, i64 296, !36, i64 360, !37, i64 448, !37, i64 472}
!33 = !{!"s2n_dh_params", !10, i64 0}
!34 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!35 = !{!"s2n_kem_group_params", !10, i64 0, !36, i64 8, !34, i64 96}
!36 = !{!"s2n_kem_params", !10, i64 0, !37, i64 8, !37, i64 32, !37, i64 56, !12, i64 80}
!37 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!38 = !{!"s2n_handshake_parameters", !39, i64 0, !39, i64 48, !37, i64 96, !6, i64 120, !40, 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}
!39 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!40 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!41 = !{!"s2n_psk_parameters", !6, i64 0, !42, i64 8, !43, i64 40, !43, i64 42, !10, i64 48, !6, i64 56}
!42 = !{!"s2n_array", !37, i64 0, !6, i64 24, !6, i64 28}
!43 = !{!"short", !7, i64 0}
!44 = !{!"s2n_stuffer", !37, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!45 = !{!"", !6, i64 0}
!46 = !{!"s2n_handshake", !44, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !47, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!47 = !{!"s2n_offered_early_data", !10, i64 0}
!48 = !{!"s2n_client_hello", !37, i64 0, !49, i64 24, !37, i64 728, !37, i64 752, !37, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!49 = !{!"", !7, i64 0, !37, i64 672, !43, i64 696}
!50 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !43, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !51, i64 48, !12, i64 52}
!51 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!52 = !{!"s2n_ticket_fields", !37, i64 0, !6, i64 24}
!53 = !{!"s2n_post_handshake", !44, i64 0, !7, i64 40}
!54 = !{!18, !18, i64 0}
!55 = !{!56, !18, i64 80}
!56 = !{!"s2n_test_ktls_io_stuffer_pair", !57, i64 0, !57, i64 96}
!57 = !{!"s2n_test_ktls_io_stuffer", !44, i64 0, !44, i64 40, !18, i64 80, !18, i64 88}
!58 = !{!56, !18, i64 176}
!59 = !{!56, !6, i64 28}
!60 = !{!56, !6, i64 24}
!61 = distinct !{!61, !62}
!62 = !{!"llvm.loop.mustprogress"}
!63 = distinct !{!63, !62}
!64 = distinct !{!64, !62}
!65 = distinct !{!65, !62}
!66 = distinct !{!66, !62}
!67 = distinct !{!67, !62}
!68 = distinct !{!68, !62}
!69 = !{!29, !10, i64 72}
!70 = !{!56, !18, i64 88}
!71 = distinct !{!71, !62}
!72 = distinct !{!72, !62}
!73 = distinct !{!73, !62}


; 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.iovec = type { ptr, i64 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_test_ktls_io_stuffer_pair = type { %struct.s2n_test_ktls_io_stuffer, %struct.s2n_test_ktls_io_stuffer }
%struct.s2n_test_ktls_io_stuffer = type { %struct.s2n_stuffer, %struct.s2n_stuffer, i64, i64 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.msghdr = type { ptr, i32, ptr, i64, ptr, i64, i32 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [83 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 [89 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [129 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [129 x i8], align 1
@__const.main.send_msg_iov = external hidden unnamed_addr constant %struct.iovec, align 8
@.str.27 = external hidden unnamed_addr constant [147 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [76 x i8], align 1
@__const.main.send_msg_iov.30 = external hidden unnamed_addr constant %struct.iovec, align 8
@.str.31 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca [16384 x i8], align 16
  %4 = alloca %struct.s2n_blob, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %struct.s2n_test_ktls_io_stuffer_pair, align 8
  %8 = alloca %struct.iovec, align 8
  %9 = alloca %struct.msghdr, align 8
  %10 = alloca [100 x i8], align 16
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca %struct.s2n_test_ktls_io_stuffer_pair, align 8
  %14 = alloca %struct.iovec, align 8
  %15 = alloca %struct.msghdr, align 8
  %16 = alloca [100 x i8], align 16
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca %struct.s2n_test_ktls_io_stuffer_pair, align 8
  %20 = alloca %struct.iovec, align 8
  %21 = alloca %struct.msghdr, align 8
  %22 = alloca [100 x i8], align 16
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca %struct.s2n_test_ktls_io_stuffer_pair, align 8
  %26 = alloca [5 x %struct.iovec], align 16
  %27 = alloca %struct.msghdr, align 8
  %28 = alloca [100 x i8], align 16
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca %struct.s2n_test_ktls_io_stuffer_pair, align 8
  %32 = alloca %struct.iovec, align 8
  %33 = alloca %struct.msghdr, align 8
  %34 = alloca [100 x i8], align 16
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca %struct.s2n_test_ktls_io_stuffer_pair, align 8
  %38 = alloca %struct.iovec, align 8
  %39 = alloca %struct.msghdr, align 8
  %40 = alloca [100 x i8], align 16
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca %struct.s2n_test_ktls_io_stuffer_pair, align 8
  %44 = alloca %struct.iovec, align 8
  %45 = alloca %struct.msghdr, align 8
  %46 = alloca [100 x i8], align 16
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca %struct.s2n_test_ktls_io_stuffer_pair, align 8
  %50 = alloca [5 x %struct.iovec], align 16
  %51 = alloca %struct.msghdr, align 8
  %52 = alloca [100 x i8], align 16
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca %struct.s2n_test_ktls_io_stuffer_pair, align 8
  %56 = alloca %struct.iovec, align 8
  %57 = alloca %struct.msghdr, align 8
  %58 = alloca [100 x i8], align 16
  %59 = alloca [16384 x i8], align 16
  %60 = alloca [100 x i8], align 16
  %61 = alloca %struct.iovec, align 8
  %62 = alloca %struct.msghdr, align 8
  %63 = alloca i8, align 1
  %64 = alloca ptr, align 8
  %65 = alloca ptr, align 8
  %66 = alloca %struct.s2n_test_ktls_io_stuffer_pair, align 8
  %67 = alloca [16384 x i8], align 16
  %68 = alloca %struct.iovec, align 8
  %69 = alloca [100 x i8], align 16
  %70 = alloca %struct.msghdr, align 8
  %71 = alloca %struct.iovec, align 8
  %72 = alloca %struct.msghdr, align 8
  %73 = alloca [100 x i8], align 16
  %74 = alloca i8, align 1
  %75 = alloca ptr, align 8
  %76 = alloca ptr, align 8
  %77 = alloca %struct.s2n_test_ktls_io_stuffer_pair, align 8
  %78 = alloca %struct.iovec, align 8
  %79 = alloca %struct.msghdr, align 8
  %80 = alloca [100 x i8], align 16
  %81 = alloca [16384 x i8], align 16
  %82 = alloca [100 x i8], align 16
  %83 = alloca %struct.iovec, align 8
  %84 = alloca %struct.msghdr, align 8
  %85 = alloca i8, align 1
  %86 = alloca i8, align 1
  %87 = alloca ptr, align 8
  %88 = alloca ptr, align 8
  %89 = alloca %struct.s2n_test_ktls_io_stuffer_pair, align 8
  %90 = alloca %struct.iovec, align 8
  %91 = alloca %struct.msghdr, align 8
  %92 = alloca [100 x i8], align 16
  %93 = alloca [16384 x i8], align 16
  %94 = alloca %struct.iovec, align 8
  %95 = alloca [100 x i8], align 16
  %96 = alloca %struct.msghdr, align 8
  %97 = alloca i8, align 1
  %98 = alloca ptr, align 8
  %99 = alloca ptr, align 8
  %100 = alloca %struct.s2n_test_ktls_io_stuffer_pair, align 8
  %101 = alloca %struct.iovec, align 8
  %102 = alloca %struct.msghdr, align 8
  %103 = alloca [100 x i8], align 16
  %104 = alloca [16384 x i8], align 16
  %105 = alloca [100 x i8], align 16
  %106 = alloca %struct.iovec, align 8
  %107 = alloca %struct.msghdr, align 8
  %108 = alloca i8, align 1
  %109 = alloca ptr, align 8
  %110 = alloca ptr, align 8
  %111 = alloca %struct.s2n_test_ktls_io_stuffer_pair, align 8
  %112 = alloca %struct.iovec, align 8
  %113 = alloca %struct.msghdr, align 8
  %114 = alloca [100 x i8], align 16
  %115 = alloca [16384 x i8], align 16
  %116 = alloca [100 x i8], align 16
  %117 = alloca %struct.iovec, align 8
  %118 = alloca %struct.msghdr, align 8
  %119 = alloca i8, align 1
  %120 = alloca i8, align 1
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %121 = load ptr, ptr @stdout, align 8, !tbaa !9
  %122 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %121, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %123 = load ptr, ptr @stdout, align 8, !tbaa !9
  %124 = tail call i32 @fflush(ptr noundef %123)
  %125 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %126 = icmp eq i32 %125, -1
  br i1 %126, label %127, label %151

127:                                              ; preds = %2
  %128 = tail call ptr @__errno_location() #13
  %129 = load i32, ptr %128, align 4, !tbaa !5
  %130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %131 = tail call i32 @s2n_print_stacktrace(ptr noundef %130) #12
  %132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %133 = trunc nuw i8 %132 to i1
  br i1 %133, label %134, label %138

134:                                              ; preds = %127
  %135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %136 = tail call i32 @fileno(ptr noundef %135) #12
  %137 = tail call i32 @isatty(i32 noundef %136) #12
  %.not685 = icmp eq i32 %137, 0
  br i1 %.not685, label %138, label %139

138:                                              ; preds = %134, %127
  br label %139

139:                                              ; preds = %134, %138
  %.str.5.sink = phi ptr [ @.str.5, %138 ], [ @.str.2, %134 ]
  store i32 %129, ptr %128, align 4, !tbaa !5
  %140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %141 = load i32, ptr @test_count, align 4, !tbaa !5
  %142 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %143 = load i32, ptr %142, align 4, !tbaa !5
  %144 = tail call ptr @s2n_strerror(i32 noundef %143, ptr noundef nonnull @.str.4) #12
  %145 = load i32, ptr %142, align 4, !tbaa !5
  %146 = tail call ptr @s2n_strerror_debug(i32 noundef %145, ptr noundef nonnull @.str.4) #12
  %147 = load i32, ptr %128, align 4, !tbaa !5
  %148 = tail call ptr @strerror(i32 noundef %147) #12
  %149 = load i32, ptr %128, align 4, !tbaa !5
  %150 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %140, ptr noundef nonnull %.str.5.sink, i32 noundef %141, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 32, ptr noundef %144, ptr noundef %146, ptr noundef %148, i32 noundef %149) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

151:                                              ; preds = %2
  %152 = load i32, ptr @test_count, align 4, !tbaa !5
  %153 = add nsw i32 %152, 1
  store i32 %153, ptr @test_count, align 4, !tbaa !5
  %154 = tail call i32 @s2n_enable_atexit() #12
  %155 = icmp eq i32 %154, -1
  br i1 %155, label %156, label %180

156:                                              ; preds = %151
  %157 = tail call ptr @__errno_location() #13
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %160 = tail call i32 @s2n_print_stacktrace(ptr noundef %159) #12
  %161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %162 = trunc nuw i8 %161 to i1
  br i1 %162, label %163, label %167

163:                                              ; preds = %156
  %164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %165 = tail call i32 @fileno(ptr noundef %164) #12
  %166 = tail call i32 @isatty(i32 noundef %165) #12
  %.not684 = icmp eq i32 %166, 0
  br i1 %.not684, label %167, label %168

167:                                              ; preds = %163, %156
  br label %168

168:                                              ; preds = %163, %167
  %.str.5.sink734 = phi ptr [ @.str.5, %167 ], [ @.str.2, %163 ]
  store i32 %158, ptr %157, align 4, !tbaa !5
  %169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %170 = load i32, ptr @test_count, align 4, !tbaa !5
  %171 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %172 = load i32, ptr %171, align 4, !tbaa !5
  %173 = tail call ptr @s2n_strerror(i32 noundef %172, ptr noundef nonnull @.str.4) #12
  %174 = load i32, ptr %171, align 4, !tbaa !5
  %175 = tail call ptr @s2n_strerror_debug(i32 noundef %174, ptr noundef nonnull @.str.4) #12
  %176 = load i32, ptr %157, align 4, !tbaa !5
  %177 = tail call ptr @strerror(i32 noundef %176) #12
  %178 = load i32, ptr %157, align 4, !tbaa !5
  %179 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %169, ptr noundef nonnull %.str.5.sink734, i32 noundef %170, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 32, ptr noundef %173, ptr noundef %175, ptr noundef %177, i32 noundef %178) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

180:                                              ; preds = %151
  %181 = tail call i32 @s2n_init() #12
  %182 = icmp eq i32 %181, -1
  br i1 %182, label %183, label %207

183:                                              ; preds = %180
  %184 = tail call ptr @__errno_location() #13
  %185 = load i32, ptr %184, align 4, !tbaa !5
  %186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %187 = tail call i32 @s2n_print_stacktrace(ptr noundef %186) #12
  %188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %189 = trunc nuw i8 %188 to i1
  br i1 %189, label %190, label %194

190:                                              ; preds = %183
  %191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %192 = tail call i32 @fileno(ptr noundef %191) #12
  %193 = tail call i32 @isatty(i32 noundef %192) #12
  %.not683 = icmp eq i32 %193, 0
  br i1 %.not683, label %194, label %195

194:                                              ; preds = %190, %183
  br label %195

195:                                              ; preds = %190, %194
  %.str.5.sink745 = phi ptr [ @.str.5, %194 ], [ @.str.2, %190 ]
  store i32 %185, ptr %184, align 4, !tbaa !5
  %196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %197 = load i32, ptr @test_count, align 4, !tbaa !5
  %198 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %199 = load i32, ptr %198, align 4, !tbaa !5
  %200 = tail call ptr @s2n_strerror(i32 noundef %199, ptr noundef nonnull @.str.4) #12
  %201 = load i32, ptr %198, align 4, !tbaa !5
  %202 = tail call ptr @s2n_strerror_debug(i32 noundef %201, ptr noundef nonnull @.str.4) #12
  %203 = load i32, ptr %184, align 4, !tbaa !5
  %204 = tail call ptr @strerror(i32 noundef %203) #12
  %205 = load i32, ptr %184, align 4, !tbaa !5
  %206 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %196, ptr noundef nonnull %.str.5.sink745, i32 noundef %197, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 32, ptr noundef %200, ptr noundef %202, ptr noundef %204, i32 noundef %205) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

207:                                              ; preds = %180
  call void @llvm.lifetime.start.p0(i64 16384, ptr nonnull %3) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16384) %3, i8 0, i64 16384, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false)
  %208 = load i32, ptr @test_count, align 4, !tbaa !5
  %209 = add nsw i32 %208, 1
  store i32 %209, ptr @test_count, align 4, !tbaa !5
  %210 = call i32 @s2n_blob_init(ptr noundef nonnull %4, ptr noundef nonnull %3, i32 noundef 16384) #12
  %211 = icmp eq i32 %210, -1
  br i1 %211, label %212, label %236

212:                                              ; preds = %207
  %213 = tail call ptr @__errno_location() #13
  %214 = load i32, ptr %213, align 4, !tbaa !5
  %215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %216 = call i32 @s2n_print_stacktrace(ptr noundef %215) #12
  %217 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %218 = trunc nuw i8 %217 to i1
  br i1 %218, label %219, label %223

219:                                              ; preds = %212
  %220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %221 = call i32 @fileno(ptr noundef %220) #12
  %222 = call i32 @isatty(i32 noundef %221) #12
  %.not682 = icmp eq i32 %222, 0
  br i1 %.not682, label %223, label %224

223:                                              ; preds = %219, %212
  br label %224

224:                                              ; preds = %219, %223
  %.str.5.sink756 = phi ptr [ @.str.5, %223 ], [ @.str.2, %219 ]
  store i32 %214, ptr %213, align 4, !tbaa !5
  %225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %226 = load i32, ptr @test_count, align 4, !tbaa !5
  %227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %229 = call ptr @s2n_strerror(i32 noundef %228, ptr noundef nonnull @.str.4) #12
  %230 = load i32, ptr %227, align 4, !tbaa !5
  %231 = call ptr @s2n_strerror_debug(i32 noundef %230, ptr noundef nonnull @.str.4) #12
  %232 = load i32, ptr %213, align 4, !tbaa !5
  %233 = call ptr @strerror(i32 noundef %232) #12
  %234 = load i32, ptr %213, align 4, !tbaa !5
  %235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %225, ptr noundef nonnull %.str.5.sink756, i32 noundef %226, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 38, ptr noundef %229, ptr noundef %231, ptr noundef %233, i32 noundef %234) #14
  call void @exit(i32 noundef 1) #15
  unreachable

236:                                              ; preds = %207
  %237 = load i32, ptr @test_count, align 4, !tbaa !5
  %238 = add nsw i32 %237, 1
  store i32 %238, ptr @test_count, align 4, !tbaa !5
  %239 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %4) #12
  %240 = call zeroext i1 @s2n_result_is_ok(i32 %239)
  br i1 %240, label %265, label %241

241:                                              ; preds = %236
  %242 = tail call ptr @__errno_location() #13
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %245 = call i32 @s2n_print_stacktrace(ptr noundef %244) #12
  %246 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %247 = trunc nuw i8 %246 to i1
  br i1 %247, label %248, label %252

248:                                              ; preds = %241
  %249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %250 = call i32 @fileno(ptr noundef %249) #12
  %251 = call i32 @isatty(i32 noundef %250) #12
  %.not = icmp eq i32 %251, 0
  br i1 %.not, label %252, label %253

252:                                              ; preds = %248, %241
  br label %253

253:                                              ; preds = %248, %252
  %.str.5.sink767 = phi ptr [ @.str.5, %252 ], [ @.str.2, %248 ]
  store i32 %243, ptr %242, align 4, !tbaa !5
  %254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %255 = load i32, ptr @test_count, align 4, !tbaa !5
  %256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = call ptr @s2n_strerror(i32 noundef %257, ptr noundef nonnull @.str.4) #12
  %259 = load i32, ptr %256, align 4, !tbaa !5
  %260 = call ptr @s2n_strerror_debug(i32 noundef %259, ptr noundef nonnull @.str.4) #12
  %261 = load i32, ptr %242, align 4, !tbaa !5
  %262 = call ptr @strerror(i32 noundef %261) #12
  %263 = load i32, ptr %242, align 4, !tbaa !5
  %264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %254, ptr noundef nonnull %.str.5.sink767, i32 noundef %255, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %258, ptr noundef %260, ptr noundef %262, i32 noundef %263) #14
  call void @exit(i32 noundef 1) #15
  unreachable

265:                                              ; preds = %236
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #12
  %266 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %266, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #12
  %267 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %267, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %7) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(192) %7, i8 0, i64 192, i1 false)
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = add nsw i32 %268, 1
  store i32 %269, ptr @test_count, align 4, !tbaa !5
  %270 = load ptr, ptr %5, align 8, !tbaa !9
  %271 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %270, ptr noundef %267, ptr noundef nonnull %7) #12
  %272 = call zeroext i1 @s2n_result_is_ok(i32 %271)
  br i1 %272, label %297, label %273

273:                                              ; preds = %265
  %274 = tail call ptr @__errno_location() #13
  %275 = load i32, ptr %274, align 4, !tbaa !5
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = call i32 @s2n_print_stacktrace(ptr noundef %276) #12
  %278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %279 = trunc nuw i8 %278 to i1
  br i1 %279, label %280, label %284

280:                                              ; preds = %273
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = call i32 @fileno(ptr noundef %281) #12
  %283 = call i32 @isatty(i32 noundef %282) #12
  %.not543 = icmp eq i32 %283, 0
  br i1 %.not543, label %284, label %285

284:                                              ; preds = %280, %273
  br label %285

285:                                              ; preds = %280, %284
  %.str.5.sink778 = phi ptr [ @.str.5, %284 ], [ @.str.2, %280 ]
  store i32 %275, ptr %274, align 4, !tbaa !5
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = load i32, ptr @test_count, align 4, !tbaa !5
  %288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %289 = load i32, ptr %288, align 4, !tbaa !5
  %290 = call ptr @s2n_strerror(i32 noundef %289, ptr noundef nonnull @.str.4) #12
  %291 = load i32, ptr %288, align 4, !tbaa !5
  %292 = call ptr @s2n_strerror_debug(i32 noundef %291, ptr noundef nonnull @.str.4) #12
  %293 = load i32, ptr %274, align 4, !tbaa !5
  %294 = call ptr @strerror(i32 noundef %293) #12
  %295 = load i32, ptr %274, align 4, !tbaa !5
  %296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %286, ptr noundef nonnull %.str.5.sink778, i32 noundef %287, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %290, ptr noundef %292, ptr noundef %294, i32 noundef %295) #14
  call void @exit(i32 noundef 1) #15
  unreachable

297:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #12
  store ptr %3, ptr %8, align 8, !tbaa !15
  %298 = getelementptr inbounds i8, ptr %8, i64 8
  store i64 10, ptr %298, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %9) #12
  store ptr null, ptr %9, align 8, !tbaa !19
  %299 = getelementptr inbounds i8, ptr %9, i64 8
  store i32 0, ptr %299, align 8, !tbaa !21
  %300 = getelementptr inbounds i8, ptr %9, i64 16
  store ptr %8, ptr %300, align 8, !tbaa !22
  %301 = getelementptr inbounds i8, ptr %9, i64 24
  store i64 1, ptr %301, align 8, !tbaa !23
  %302 = getelementptr inbounds i8, ptr %9, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %302, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %10) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %10, i8 0, i64 100, i1 false)
  %303 = load i32, ptr @test_count, align 4, !tbaa !5
  %304 = add nsw i32 %303, 1
  store i32 %304, ptr @test_count, align 4, !tbaa !5
  %305 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %9, ptr noundef nonnull %10, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %306 = call zeroext i1 @s2n_result_is_ok(i32 %305)
  br i1 %306, label %331, label %307

307:                                              ; preds = %297
  %308 = tail call ptr @__errno_location() #13
  %309 = load i32, ptr %308, align 4, !tbaa !5
  %310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %311 = call i32 @s2n_print_stacktrace(ptr noundef %310) #12
  %312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %313 = trunc nuw i8 %312 to i1
  br i1 %313, label %314, label %318

314:                                              ; preds = %307
  %315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %316 = call i32 @fileno(ptr noundef %315) #12
  %317 = call i32 @isatty(i32 noundef %316) #12
  %.not544 = icmp eq i32 %317, 0
  br i1 %.not544, label %318, label %319

318:                                              ; preds = %314, %307
  br label %319

319:                                              ; preds = %314, %318
  %.str.5.sink789 = phi ptr [ @.str.5, %318 ], [ @.str.2, %314 ]
  store i32 %309, ptr %308, align 4, !tbaa !5
  %320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %321 = load i32, ptr @test_count, align 4, !tbaa !5
  %322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %323 = load i32, ptr %322, align 4, !tbaa !5
  %324 = call ptr @s2n_strerror(i32 noundef %323, ptr noundef nonnull @.str.4) #12
  %325 = load i32, ptr %322, align 4, !tbaa !5
  %326 = call ptr @s2n_strerror_debug(i32 noundef %325, ptr noundef nonnull @.str.4) #12
  %327 = load i32, ptr %308, align 4, !tbaa !5
  %328 = call ptr @strerror(i32 noundef %327) #12
  %329 = load i32, ptr %308, align 4, !tbaa !5
  %330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %320, ptr noundef nonnull %.str.5.sink789, i32 noundef %321, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %324, ptr noundef %326, ptr noundef %328, i32 noundef %329) #14
  call void @exit(i32 noundef 1) #15
  unreachable

331:                                              ; preds = %297
  %332 = load ptr, ptr %5, align 8, !tbaa !9
  %333 = getelementptr inbounds i8, ptr %332, i64 64
  %334 = load ptr, ptr %333, align 8, !tbaa !24
  %335 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %334, ptr noundef nonnull %9) #12
  %336 = load i32, ptr @test_count, align 4, !tbaa !5
  %337 = add nsw i32 %336, 1
  store i32 %337, ptr @test_count, align 4, !tbaa !5
  %338 = icmp eq i64 %335, 10
  br i1 %338, label %363, label %339

339:                                              ; preds = %331
  %340 = tail call ptr @__errno_location() #13
  %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) #12
  %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) #12
  %349 = call i32 @isatty(i32 noundef %348) #12
  %.not545 = icmp eq i32 %349, 0
  br i1 %.not545, label %350, label %351

350:                                              ; preds = %346, %339
  br label %351

351:                                              ; preds = %346, %350
  %.str.5.sink800 = 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) #12
  %357 = load i32, ptr %354, align 4, !tbaa !5
  %358 = call ptr @s2n_strerror_debug(i32 noundef %357, ptr noundef nonnull @.str.4) #12
  %359 = load i32, ptr %340, align 4, !tbaa !5
  %360 = call ptr @strerror(i32 noundef %359) #12
  %361 = load i32, ptr %340, align 4, !tbaa !5
  %362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %352, ptr noundef nonnull %.str.5.sink800, i32 noundef %353, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %356, ptr noundef %358, ptr noundef %360, i32 noundef %361) #14
  call void @exit(i32 noundef 1) #15
  unreachable

363:                                              ; preds = %331
  %364 = add nsw i32 %336, 2
  store i32 %364, ptr @test_count, align 4, !tbaa !5
  %365 = call i32 @s2n_test_validate_data(ptr noundef nonnull %7, ptr noundef nonnull %3, i16 noundef zeroext 10) #12
  %366 = call zeroext i1 @s2n_result_is_ok(i32 %365)
  br i1 %366, label %391, label %367

367:                                              ; preds = %363
  %368 = tail call ptr @__errno_location() #13
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %371 = call i32 @s2n_print_stacktrace(ptr noundef %370) #12
  %372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %373 = trunc nuw i8 %372 to i1
  br i1 %373, label %374, label %378

374:                                              ; preds = %367
  %375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %376 = call i32 @fileno(ptr noundef %375) #12
  %377 = call i32 @isatty(i32 noundef %376) #12
  %.not546 = icmp eq i32 %377, 0
  br i1 %.not546, label %378, label %379

378:                                              ; preds = %374, %367
  br label %379

379:                                              ; preds = %374, %378
  %.str.5.sink811 = phi ptr [ @.str.5, %378 ], [ @.str.2, %374 ]
  store i32 %369, ptr %368, align 4, !tbaa !5
  %380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %381 = load i32, ptr @test_count, align 4, !tbaa !5
  %382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %383 = load i32, ptr %382, align 4, !tbaa !5
  %384 = call ptr @s2n_strerror(i32 noundef %383, ptr noundef nonnull @.str.4) #12
  %385 = load i32, ptr %382, align 4, !tbaa !5
  %386 = call ptr @s2n_strerror_debug(i32 noundef %385, ptr noundef nonnull @.str.4) #12
  %387 = load i32, ptr %368, align 4, !tbaa !5
  %388 = call ptr @strerror(i32 noundef %387) #12
  %389 = load i32, ptr %368, align 4, !tbaa !5
  %390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %380, ptr noundef nonnull %.str.5.sink811, i32 noundef %381, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %384, ptr noundef %386, ptr noundef %388, i32 noundef %389) #14
  call void @exit(i32 noundef 1) #15
  unreachable

391:                                              ; preds = %363
  %392 = load i32, ptr @test_count, align 4, !tbaa !5
  %393 = add nsw i32 %392, 1
  store i32 %393, ptr @test_count, align 4, !tbaa !5
  %394 = call i32 @s2n_test_validate_ancillary(ptr noundef nonnull %7, i8 noundef zeroext 43, i16 noundef zeroext 10) #12
  %395 = call zeroext i1 @s2n_result_is_ok(i32 %394)
  br i1 %395, label %420, label %396

396:                                              ; preds = %391
  %397 = tail call ptr @__errno_location() #13
  %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) #12
  %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) #12
  %406 = call i32 @isatty(i32 noundef %405) #12
  %.not547 = icmp eq i32 %406, 0
  br i1 %.not547, label %407, label %408

407:                                              ; preds = %403, %396
  br label %408

408:                                              ; preds = %403, %407
  %.str.5.sink822 = 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) #12
  %414 = load i32, ptr %411, align 4, !tbaa !5
  %415 = call ptr @s2n_strerror_debug(i32 noundef %414, ptr noundef nonnull @.str.4) #12
  %416 = load i32, ptr %397, align 4, !tbaa !5
  %417 = call ptr @strerror(i32 noundef %416) #12
  %418 = load i32, ptr %397, align 4, !tbaa !5
  %419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %409, ptr noundef nonnull %.str.5.sink822, i32 noundef %410, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %413, ptr noundef %415, ptr noundef %417, i32 noundef %418) #14
  call void @exit(i32 noundef 1) #15
  unreachable

420:                                              ; preds = %391
  %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 = getelementptr inbounds i8, ptr %7, i64 80
  %424 = load i64, ptr %423, align 8, !tbaa !50
  %425 = icmp eq i64 %424, 1
  br i1 %425, label %450, label %426

426:                                              ; preds = %420
  %427 = tail call ptr @__errno_location() #13
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = call i32 @s2n_print_stacktrace(ptr noundef %429) #12
  %431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %432 = trunc nuw i8 %431 to i1
  br i1 %432, label %433, label %437

433:                                              ; preds = %426
  %434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %435 = call i32 @fileno(ptr noundef %434) #12
  %436 = call i32 @isatty(i32 noundef %435) #12
  %.not548 = icmp eq i32 %436, 0
  br i1 %.not548, label %437, label %438

437:                                              ; preds = %433, %426
  br label %438

438:                                              ; preds = %433, %437
  %.str.5.sink833 = phi ptr [ @.str.5, %437 ], [ @.str.2, %433 ]
  store i32 %428, ptr %427, align 4, !tbaa !5
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = load i32, ptr @test_count, align 4, !tbaa !5
  %441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = call ptr @s2n_strerror(i32 noundef %442, ptr noundef nonnull @.str.4) #12
  %444 = load i32, ptr %441, align 4, !tbaa !5
  %445 = call ptr @s2n_strerror_debug(i32 noundef %444, ptr noundef nonnull @.str.4) #12
  %446 = load i32, ptr %427, align 4, !tbaa !5
  %447 = call ptr @strerror(i32 noundef %446) #12
  %448 = load i32, ptr %427, align 4, !tbaa !5
  %449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %439, ptr noundef nonnull %.str.5.sink833, i32 noundef %440, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %443, ptr noundef %445, ptr noundef %447, i32 noundef %448) #14
  call void @exit(i32 noundef 1) #15
  unreachable

450:                                              ; preds = %420
  %451 = add nsw i32 %421, 2
  store i32 %451, ptr @test_count, align 4, !tbaa !5
  %452 = getelementptr inbounds i8, ptr %7, i64 176
  %453 = load i64, ptr %452, align 8, !tbaa !53
  %454 = icmp eq i64 %453, 0
  br i1 %454, label %479, label %455

455:                                              ; preds = %450
  %456 = tail call ptr @__errno_location() #13
  %457 = load i32, ptr %456, align 4, !tbaa !5
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = call i32 @s2n_print_stacktrace(ptr noundef %458) #12
  %460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %461 = trunc nuw i8 %460 to i1
  br i1 %461, label %462, label %466

462:                                              ; preds = %455
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = call i32 @fileno(ptr noundef %463) #12
  %465 = call i32 @isatty(i32 noundef %464) #12
  %.not549 = icmp eq i32 %465, 0
  br i1 %.not549, label %466, label %467

466:                                              ; preds = %462, %455
  br label %467

467:                                              ; preds = %462, %466
  %.str.5.sink844 = phi ptr [ @.str.5, %466 ], [ @.str.2, %462 ]
  store i32 %457, ptr %456, align 4, !tbaa !5
  %468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %469 = load i32, ptr @test_count, align 4, !tbaa !5
  %470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %471 = load i32, ptr %470, align 4, !tbaa !5
  %472 = call ptr @s2n_strerror(i32 noundef %471, ptr noundef nonnull @.str.4) #12
  %473 = load i32, ptr %470, align 4, !tbaa !5
  %474 = call ptr @s2n_strerror_debug(i32 noundef %473, ptr noundef nonnull @.str.4) #12
  %475 = load i32, ptr %456, align 4, !tbaa !5
  %476 = call ptr @strerror(i32 noundef %475) #12
  %477 = load i32, ptr %456, align 4, !tbaa !5
  %478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %468, ptr noundef nonnull %.str.5.sink844, i32 noundef %469, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %472, ptr noundef %474, ptr noundef %476, i32 noundef %477) #14
  call void @exit(i32 noundef 1) #15
  unreachable

479:                                              ; preds = %450
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #12
  %480 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %7) #12
  %481 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #12
  %482 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #12
  %483 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %483, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #12
  %484 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %484, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %13) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(192) %13, i8 0, i64 192, i1 false)
  %485 = load i32, ptr @test_count, align 4, !tbaa !5
  %486 = add nsw i32 %485, 1
  store i32 %486, ptr @test_count, align 4, !tbaa !5
  %487 = load ptr, ptr %11, align 8, !tbaa !9
  %488 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %487, ptr noundef %484, ptr noundef nonnull %13) #12
  %489 = call zeroext i1 @s2n_result_is_ok(i32 %488)
  br i1 %489, label %514, label %490

490:                                              ; preds = %479
  %491 = tail call ptr @__errno_location() #13
  %492 = load i32, ptr %491, align 4, !tbaa !5
  %493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %494 = call i32 @s2n_print_stacktrace(ptr noundef %493) #12
  %495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %496 = trunc nuw i8 %495 to i1
  br i1 %496, label %497, label %501

497:                                              ; preds = %490
  %498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %499 = call i32 @fileno(ptr noundef %498) #12
  %500 = call i32 @isatty(i32 noundef %499) #12
  %.not550 = icmp eq i32 %500, 0
  br i1 %.not550, label %501, label %502

501:                                              ; preds = %497, %490
  br label %502

502:                                              ; preds = %497, %501
  %.str.5.sink855 = phi ptr [ @.str.5, %501 ], [ @.str.2, %497 ]
  store i32 %492, ptr %491, align 4, !tbaa !5
  %503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %504 = load i32, ptr @test_count, align 4, !tbaa !5
  %505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = call ptr @s2n_strerror(i32 noundef %506, ptr noundef nonnull @.str.4) #12
  %508 = load i32, ptr %505, align 4, !tbaa !5
  %509 = call ptr @s2n_strerror_debug(i32 noundef %508, ptr noundef nonnull @.str.4) #12
  %510 = load i32, ptr %491, align 4, !tbaa !5
  %511 = call ptr @strerror(i32 noundef %510) #12
  %512 = load i32, ptr %491, align 4, !tbaa !5
  %513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %503, ptr noundef nonnull %.str.5.sink855, i32 noundef %504, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %507, ptr noundef %509, ptr noundef %511, i32 noundef %512) #14
  call void @exit(i32 noundef 1) #15
  unreachable

514:                                              ; preds = %479
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #12
  store ptr %3, ptr %14, align 8, !tbaa !15
  %515 = getelementptr inbounds i8, ptr %14, i64 8
  store i64 10, ptr %515, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %15) #12
  store ptr null, ptr %15, align 8, !tbaa !19
  %516 = getelementptr inbounds i8, ptr %15, i64 8
  store i32 0, ptr %516, align 8, !tbaa !21
  %517 = getelementptr inbounds i8, ptr %15, i64 16
  store ptr %14, ptr %517, align 8, !tbaa !22
  %518 = getelementptr inbounds i8, ptr %15, i64 24
  store i64 1, ptr %518, align 8, !tbaa !23
  %519 = getelementptr inbounds i8, ptr %15, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %519, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %16) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %16, i8 0, i64 100, i1 false)
  %520 = load i32, ptr @test_count, align 4, !tbaa !5
  %521 = add nsw i32 %520, 1
  store i32 %521, ptr @test_count, align 4, !tbaa !5
  %522 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %15, ptr noundef nonnull %16, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %523 = call zeroext i1 @s2n_result_is_ok(i32 %522)
  br i1 %523, label %548, label %524

524:                                              ; preds = %514
  %525 = tail call ptr @__errno_location() #13
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %528 = call i32 @s2n_print_stacktrace(ptr noundef %527) #12
  %529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %530 = trunc nuw i8 %529 to i1
  br i1 %530, label %531, label %535

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

535:                                              ; preds = %531, %524
  br label %536

536:                                              ; preds = %531, %535
  %.str.5.sink866 = phi ptr [ @.str.5, %535 ], [ @.str.2, %531 ]
  store i32 %526, ptr %525, align 4, !tbaa !5
  %537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %538 = load i32, ptr @test_count, align 4, !tbaa !5
  %539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %540 = load i32, ptr %539, align 4, !tbaa !5
  %541 = call ptr @s2n_strerror(i32 noundef %540, ptr noundef nonnull @.str.4) #12
  %542 = load i32, ptr %539, align 4, !tbaa !5
  %543 = call ptr @s2n_strerror_debug(i32 noundef %542, ptr noundef nonnull @.str.4) #12
  %544 = load i32, ptr %525, align 4, !tbaa !5
  %545 = call ptr @strerror(i32 noundef %544) #12
  %546 = load i32, ptr %525, align 4, !tbaa !5
  %547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %537, ptr noundef nonnull %.str.5.sink866, i32 noundef %538, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %541, ptr noundef %543, ptr noundef %545, i32 noundef %546) #14
  call void @exit(i32 noundef 1) #15
  unreachable

548:                                              ; preds = %514
  %549 = load ptr, ptr %12, align 8, !tbaa !9
  %550 = getelementptr inbounds i8, ptr %549, i64 64
  %551 = load ptr, ptr %550, align 8, !tbaa !24
  %552 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %551, ptr noundef nonnull %15) #12
  %553 = load i32, ptr @test_count, align 4, !tbaa !5
  %554 = add nsw i32 %553, 1
  store i32 %554, ptr @test_count, align 4, !tbaa !5
  %555 = icmp eq i64 %552, 10
  br i1 %555, label %580, label %556

556:                                              ; preds = %548
  %557 = tail call ptr @__errno_location() #13
  %558 = load i32, ptr %557, align 4, !tbaa !5
  %559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %560 = call i32 @s2n_print_stacktrace(ptr noundef %559) #12
  %561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %562 = trunc nuw i8 %561 to i1
  br i1 %562, label %563, label %567

563:                                              ; preds = %556
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = call i32 @fileno(ptr noundef %564) #12
  %566 = call i32 @isatty(i32 noundef %565) #12
  %.not552 = icmp eq i32 %566, 0
  br i1 %.not552, label %567, label %568

567:                                              ; preds = %563, %556
  br label %568

568:                                              ; preds = %563, %567
  %.str.5.sink877 = phi ptr [ @.str.5, %567 ], [ @.str.2, %563 ]
  store i32 %558, ptr %557, align 4, !tbaa !5
  %569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %570 = load i32, ptr @test_count, align 4, !tbaa !5
  %571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %572 = load i32, ptr %571, align 4, !tbaa !5
  %573 = call ptr @s2n_strerror(i32 noundef %572, ptr noundef nonnull @.str.4) #12
  %574 = load i32, ptr %571, align 4, !tbaa !5
  %575 = call ptr @s2n_strerror_debug(i32 noundef %574, ptr noundef nonnull @.str.4) #12
  %576 = load i32, ptr %557, align 4, !tbaa !5
  %577 = call ptr @strerror(i32 noundef %576) #12
  %578 = load i32, ptr %557, align 4, !tbaa !5
  %579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %569, ptr noundef nonnull %.str.5.sink877, i32 noundef %570, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %573, ptr noundef %575, ptr noundef %577, i32 noundef %578) #14
  call void @exit(i32 noundef 1) #15
  unreachable

580:                                              ; preds = %548
  %581 = add nsw i32 %553, 2
  store i32 %581, ptr @test_count, align 4, !tbaa !5
  %582 = getelementptr inbounds i8, ptr %13, i64 96
  %583 = call i32 @s2n_test_validate_data(ptr noundef nonnull %582, ptr noundef nonnull %3, i16 noundef zeroext 10) #12
  %584 = call zeroext i1 @s2n_result_is_ok(i32 %583)
  br i1 %584, label %609, label %585

585:                                              ; preds = %580
  %586 = tail call ptr @__errno_location() #13
  %587 = load i32, ptr %586, align 4, !tbaa !5
  %588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %589 = call i32 @s2n_print_stacktrace(ptr noundef %588) #12
  %590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %591 = trunc nuw i8 %590 to i1
  br i1 %591, label %592, label %596

592:                                              ; preds = %585
  %593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %594 = call i32 @fileno(ptr noundef %593) #12
  %595 = call i32 @isatty(i32 noundef %594) #12
  %.not553 = icmp eq i32 %595, 0
  br i1 %.not553, label %596, label %597

596:                                              ; preds = %592, %585
  br label %597

597:                                              ; preds = %592, %596
  %.str.5.sink888 = phi ptr [ @.str.5, %596 ], [ @.str.2, %592 ]
  store i32 %587, ptr %586, align 4, !tbaa !5
  %598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %599 = load i32, ptr @test_count, align 4, !tbaa !5
  %600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %601 = load i32, ptr %600, align 4, !tbaa !5
  %602 = call ptr @s2n_strerror(i32 noundef %601, ptr noundef nonnull @.str.4) #12
  %603 = load i32, ptr %600, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror_debug(i32 noundef %603, ptr noundef nonnull @.str.4) #12
  %605 = load i32, ptr %586, align 4, !tbaa !5
  %606 = call ptr @strerror(i32 noundef %605) #12
  %607 = load i32, ptr %586, align 4, !tbaa !5
  %608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %598, ptr noundef nonnull %.str.5.sink888, i32 noundef %599, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %602, ptr noundef %604, ptr noundef %606, i32 noundef %607) #14
  call void @exit(i32 noundef 1) #15
  unreachable

609:                                              ; preds = %580
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = add nsw i32 %610, 1
  store i32 %611, ptr @test_count, align 4, !tbaa !5
  %612 = call i32 @s2n_test_validate_ancillary(ptr noundef nonnull %582, i8 noundef zeroext 43, i16 noundef zeroext 10) #12
  %613 = call zeroext i1 @s2n_result_is_ok(i32 %612)
  br i1 %613, label %638, label %614

614:                                              ; preds = %609
  %615 = tail call ptr @__errno_location() #13
  %616 = load i32, ptr %615, align 4, !tbaa !5
  %617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %618 = call i32 @s2n_print_stacktrace(ptr noundef %617) #12
  %619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %620 = trunc nuw i8 %619 to i1
  br i1 %620, label %621, label %625

621:                                              ; preds = %614
  %622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %623 = call i32 @fileno(ptr noundef %622) #12
  %624 = call i32 @isatty(i32 noundef %623) #12
  %.not554 = icmp eq i32 %624, 0
  br i1 %.not554, label %625, label %626

625:                                              ; preds = %621, %614
  br label %626

626:                                              ; preds = %621, %625
  %.str.5.sink899 = phi ptr [ @.str.5, %625 ], [ @.str.2, %621 ]
  store i32 %616, ptr %615, align 4, !tbaa !5
  %627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %628 = load i32, ptr @test_count, align 4, !tbaa !5
  %629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %630 = load i32, ptr %629, align 4, !tbaa !5
  %631 = call ptr @s2n_strerror(i32 noundef %630, ptr noundef nonnull @.str.4) #12
  %632 = load i32, ptr %629, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror_debug(i32 noundef %632, ptr noundef nonnull @.str.4) #12
  %634 = load i32, ptr %615, align 4, !tbaa !5
  %635 = call ptr @strerror(i32 noundef %634) #12
  %636 = load i32, ptr %615, align 4, !tbaa !5
  %637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %627, ptr noundef nonnull %.str.5.sink899, i32 noundef %628, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %631, ptr noundef %633, ptr noundef %635, i32 noundef %636) #14
  call void @exit(i32 noundef 1) #15
  unreachable

638:                                              ; preds = %609
  %639 = load i32, ptr @test_count, align 4, !tbaa !5
  %640 = add nsw i32 %639, 1
  store i32 %640, ptr @test_count, align 4, !tbaa !5
  %641 = getelementptr inbounds i8, ptr %13, i64 80
  %642 = load i64, ptr %641, align 8, !tbaa !50
  %643 = icmp eq i64 %642, 0
  br i1 %643, label %668, label %644

644:                                              ; preds = %638
  %645 = tail call ptr @__errno_location() #13
  %646 = load i32, ptr %645, align 4, !tbaa !5
  %647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %648 = call i32 @s2n_print_stacktrace(ptr noundef %647) #12
  %649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %650 = trunc nuw i8 %649 to i1
  br i1 %650, label %651, label %655

651:                                              ; preds = %644
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = call i32 @fileno(ptr noundef %652) #12
  %654 = call i32 @isatty(i32 noundef %653) #12
  %.not555 = icmp eq i32 %654, 0
  br i1 %.not555, label %655, label %656

655:                                              ; preds = %651, %644
  br label %656

656:                                              ; preds = %651, %655
  %.str.5.sink910 = phi ptr [ @.str.5, %655 ], [ @.str.2, %651 ]
  store i32 %646, ptr %645, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %660 = load i32, ptr %659, align 4, !tbaa !5
  %661 = call ptr @s2n_strerror(i32 noundef %660, ptr noundef nonnull @.str.4) #12
  %662 = load i32, ptr %659, align 4, !tbaa !5
  %663 = call ptr @s2n_strerror_debug(i32 noundef %662, ptr noundef nonnull @.str.4) #12
  %664 = load i32, ptr %645, align 4, !tbaa !5
  %665 = call ptr @strerror(i32 noundef %664) #12
  %666 = load i32, ptr %645, align 4, !tbaa !5
  %667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %657, ptr noundef nonnull %.str.5.sink910, i32 noundef %658, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %661, ptr noundef %663, ptr noundef %665, i32 noundef %666) #14
  call void @exit(i32 noundef 1) #15
  unreachable

668:                                              ; preds = %638
  %669 = add nsw i32 %639, 2
  store i32 %669, ptr @test_count, align 4, !tbaa !5
  %670 = getelementptr inbounds i8, ptr %13, i64 176
  %671 = load i64, ptr %670, align 8, !tbaa !53
  %672 = icmp eq i64 %671, 1
  br i1 %672, label %697, label %673

673:                                              ; preds = %668
  %674 = tail call ptr @__errno_location() #13
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %677 = call i32 @s2n_print_stacktrace(ptr noundef %676) #12
  %678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %679 = trunc nuw i8 %678 to i1
  br i1 %679, label %680, label %684

680:                                              ; preds = %673
  %681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %682 = call i32 @fileno(ptr noundef %681) #12
  %683 = call i32 @isatty(i32 noundef %682) #12
  %.not556 = icmp eq i32 %683, 0
  br i1 %.not556, label %684, label %685

684:                                              ; preds = %680, %673
  br label %685

685:                                              ; preds = %680, %684
  %.str.5.sink921 = phi ptr [ @.str.5, %684 ], [ @.str.2, %680 ]
  store i32 %675, ptr %674, align 4, !tbaa !5
  %686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %687 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %689, ptr noundef nonnull @.str.4) #12
  %691 = load i32, ptr %688, align 4, !tbaa !5
  %692 = call ptr @s2n_strerror_debug(i32 noundef %691, ptr noundef nonnull @.str.4) #12
  %693 = load i32, ptr %674, align 4, !tbaa !5
  %694 = call ptr @strerror(i32 noundef %693) #12
  %695 = load i32, ptr %674, align 4, !tbaa !5
  %696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %686, ptr noundef nonnull %.str.5.sink921, i32 noundef %687, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %690, ptr noundef %692, ptr noundef %694, i32 noundef %695) #14
  call void @exit(i32 noundef 1) #15
  unreachable

697:                                              ; preds = %668
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #12
  %698 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %13) #12
  %699 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #12
  %700 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #12
  %701 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %701, ptr %17, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #12
  %702 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %702, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %19) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(192) %19, i8 0, i64 192, i1 false)
  %703 = load i32, ptr @test_count, align 4, !tbaa !5
  %704 = add nsw i32 %703, 1
  store i32 %704, ptr @test_count, align 4, !tbaa !5
  %705 = load ptr, ptr %17, align 8, !tbaa !9
  %706 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %705, ptr noundef %702, ptr noundef nonnull %19) #12
  %707 = call zeroext i1 @s2n_result_is_ok(i32 %706)
  br i1 %707, label %732, label %708

708:                                              ; preds = %697
  %709 = tail call ptr @__errno_location() #13
  %710 = load i32, ptr %709, align 4, !tbaa !5
  %711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %712 = call i32 @s2n_print_stacktrace(ptr noundef %711) #12
  %713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %714 = trunc nuw i8 %713 to i1
  br i1 %714, label %715, label %719

715:                                              ; preds = %708
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = call i32 @fileno(ptr noundef %716) #12
  %718 = call i32 @isatty(i32 noundef %717) #12
  %.not557 = icmp eq i32 %718, 0
  br i1 %.not557, label %719, label %720

719:                                              ; preds = %715, %708
  br label %720

720:                                              ; preds = %715, %719
  %.str.5.sink932 = phi ptr [ @.str.5, %719 ], [ @.str.2, %715 ]
  store i32 %710, ptr %709, align 4, !tbaa !5
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = load i32, ptr @test_count, align 4, !tbaa !5
  %723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %724 = load i32, ptr %723, align 4, !tbaa !5
  %725 = call ptr @s2n_strerror(i32 noundef %724, ptr noundef nonnull @.str.4) #12
  %726 = load i32, ptr %723, align 4, !tbaa !5
  %727 = call ptr @s2n_strerror_debug(i32 noundef %726, ptr noundef nonnull @.str.4) #12
  %728 = load i32, ptr %709, align 4, !tbaa !5
  %729 = call ptr @strerror(i32 noundef %728) #12
  %730 = load i32, ptr %709, align 4, !tbaa !5
  %731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %721, ptr noundef nonnull %.str.5.sink932, i32 noundef %722, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %725, ptr noundef %727, ptr noundef %729, i32 noundef %730) #14
  call void @exit(i32 noundef 1) #15
  unreachable

732:                                              ; preds = %697
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %20) #12
  store ptr %3, ptr %20, align 8, !tbaa !15
  %733 = getelementptr inbounds i8, ptr %20, i64 8
  store i64 0, ptr %733, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %21) #12
  store ptr null, ptr %21, align 8, !tbaa !19
  %734 = getelementptr inbounds i8, ptr %21, i64 8
  store i32 0, ptr %734, align 8, !tbaa !21
  %735 = getelementptr inbounds i8, ptr %21, i64 16
  store ptr %20, ptr %735, align 8, !tbaa !22
  %736 = getelementptr inbounds i8, ptr %21, i64 24
  store i64 1, ptr %736, align 8, !tbaa !23
  %737 = getelementptr inbounds i8, ptr %21, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %737, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %22) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %22, i8 0, i64 100, i1 false)
  %738 = load i32, ptr @test_count, align 4, !tbaa !5
  %739 = add nsw i32 %738, 1
  store i32 %739, ptr @test_count, align 4, !tbaa !5
  %740 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %21, ptr noundef nonnull %22, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %741 = call zeroext i1 @s2n_result_is_ok(i32 %740)
  br i1 %741, label %766, label %742

742:                                              ; preds = %732
  %743 = tail call ptr @__errno_location() #13
  %744 = load i32, ptr %743, align 4, !tbaa !5
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = call i32 @s2n_print_stacktrace(ptr noundef %745) #12
  %747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %748 = trunc nuw i8 %747 to i1
  br i1 %748, label %749, label %753

749:                                              ; preds = %742
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = call i32 @fileno(ptr noundef %750) #12
  %752 = call i32 @isatty(i32 noundef %751) #12
  %.not558 = icmp eq i32 %752, 0
  br i1 %.not558, label %753, label %754

753:                                              ; preds = %749, %742
  br label %754

754:                                              ; preds = %749, %753
  %.str.5.sink943 = phi ptr [ @.str.5, %753 ], [ @.str.2, %749 ]
  store i32 %744, ptr %743, align 4, !tbaa !5
  %755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %756 = load i32, ptr @test_count, align 4, !tbaa !5
  %757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %758 = load i32, ptr %757, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror(i32 noundef %758, ptr noundef nonnull @.str.4) #12
  %760 = load i32, ptr %757, align 4, !tbaa !5
  %761 = call ptr @s2n_strerror_debug(i32 noundef %760, ptr noundef nonnull @.str.4) #12
  %762 = load i32, ptr %743, align 4, !tbaa !5
  %763 = call ptr @strerror(i32 noundef %762) #12
  %764 = load i32, ptr %743, align 4, !tbaa !5
  %765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %755, ptr noundef nonnull %.str.5.sink943, i32 noundef %756, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %759, ptr noundef %761, ptr noundef %763, i32 noundef %764) #14
  call void @exit(i32 noundef 1) #15
  unreachable

766:                                              ; preds = %732
  %767 = load ptr, ptr %17, align 8, !tbaa !9
  %768 = getelementptr inbounds i8, ptr %767, i64 64
  %769 = load ptr, ptr %768, align 8, !tbaa !24
  %770 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %769, ptr noundef nonnull %21) #12
  %771 = load i32, ptr @test_count, align 4, !tbaa !5
  %772 = add nsw i32 %771, 1
  store i32 %772, ptr @test_count, align 4, !tbaa !5
  %773 = icmp eq i64 %770, 0
  br i1 %773, label %798, label %774

774:                                              ; preds = %766
  %775 = tail call ptr @__errno_location() #13
  %776 = load i32, ptr %775, align 4, !tbaa !5
  %777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %778 = call i32 @s2n_print_stacktrace(ptr noundef %777) #12
  %779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %780 = trunc nuw i8 %779 to i1
  br i1 %780, label %781, label %785

781:                                              ; preds = %774
  %782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %783 = call i32 @fileno(ptr noundef %782) #12
  %784 = call i32 @isatty(i32 noundef %783) #12
  %.not559 = icmp eq i32 %784, 0
  br i1 %.not559, label %785, label %786

785:                                              ; preds = %781, %774
  br label %786

786:                                              ; preds = %781, %785
  %.str.5.sink954 = phi ptr [ @.str.5, %785 ], [ @.str.2, %781 ]
  store i32 %776, ptr %775, align 4, !tbaa !5
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = load i32, ptr @test_count, align 4, !tbaa !5
  %789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call ptr @s2n_strerror(i32 noundef %790, ptr noundef nonnull @.str.4) #12
  %792 = load i32, ptr %789, align 4, !tbaa !5
  %793 = call ptr @s2n_strerror_debug(i32 noundef %792, ptr noundef nonnull @.str.4) #12
  %794 = load i32, ptr %775, align 4, !tbaa !5
  %795 = call ptr @strerror(i32 noundef %794) #12
  %796 = load i32, ptr %775, align 4, !tbaa !5
  %797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %787, ptr noundef nonnull %.str.5.sink954, i32 noundef %788, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %791, ptr noundef %793, ptr noundef %795, i32 noundef %796) #14
  call void @exit(i32 noundef 1) #15
  unreachable

798:                                              ; preds = %766
  %799 = add nsw i32 %771, 2
  store i32 %799, ptr @test_count, align 4, !tbaa !5
  %800 = getelementptr inbounds i8, ptr %19, i64 28
  %801 = load i32, ptr %800, align 4, !tbaa !54
  %802 = getelementptr inbounds i8, ptr %19, i64 24
  %803 = load i32, ptr %802, align 8, !tbaa !55
  %804 = icmp eq i32 %801, %803
  br i1 %804, label %829, label %805

805:                                              ; preds = %798
  %806 = tail call ptr @__errno_location() #13
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = call i32 @s2n_print_stacktrace(ptr noundef %808) #12
  %810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %811 = trunc nuw i8 %810 to i1
  br i1 %811, label %812, label %816

812:                                              ; preds = %805
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = call i32 @fileno(ptr noundef %813) #12
  %815 = call i32 @isatty(i32 noundef %814) #12
  %.not560 = icmp eq i32 %815, 0
  br i1 %.not560, label %816, label %817

816:                                              ; preds = %812, %805
  br label %817

817:                                              ; preds = %812, %816
  %.str.5.sink965 = phi ptr [ @.str.5, %816 ], [ @.str.2, %812 ]
  store i32 %807, ptr %806, align 4, !tbaa !5
  %818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %819 = load i32, ptr @test_count, align 4, !tbaa !5
  %820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %821 = load i32, ptr %820, align 4, !tbaa !5
  %822 = call ptr @s2n_strerror(i32 noundef %821, ptr noundef nonnull @.str.4) #12
  %823 = load i32, ptr %820, align 4, !tbaa !5
  %824 = call ptr @s2n_strerror_debug(i32 noundef %823, ptr noundef nonnull @.str.4) #12
  %825 = load i32, ptr %806, align 4, !tbaa !5
  %826 = call ptr @strerror(i32 noundef %825) #12
  %827 = load i32, ptr %806, align 4, !tbaa !5
  %828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %818, ptr noundef nonnull %.str.5.sink965, i32 noundef %819, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %822, ptr noundef %824, ptr noundef %826, i32 noundef %827) #14
  call void @exit(i32 noundef 1) #15
  unreachable

829:                                              ; preds = %798
  %830 = add nsw i32 %771, 3
  store i32 %830, ptr @test_count, align 4, !tbaa !5
  %831 = getelementptr inbounds i8, ptr %19, i64 80
  %832 = load i64, ptr %831, align 8, !tbaa !50
  %833 = icmp eq i64 %832, 1
  br i1 %833, label %858, label %834

834:                                              ; preds = %829
  %835 = tail call ptr @__errno_location() #13
  %836 = load i32, ptr %835, align 4, !tbaa !5
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = call i32 @s2n_print_stacktrace(ptr noundef %837) #12
  %839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %840 = trunc nuw i8 %839 to i1
  br i1 %840, label %841, label %845

841:                                              ; preds = %834
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = call i32 @fileno(ptr noundef %842) #12
  %844 = call i32 @isatty(i32 noundef %843) #12
  %.not561 = icmp eq i32 %844, 0
  br i1 %.not561, label %845, label %846

845:                                              ; preds = %841, %834
  br label %846

846:                                              ; preds = %841, %845
  %.str.5.sink976 = phi ptr [ @.str.5, %845 ], [ @.str.2, %841 ]
  store i32 %836, ptr %835, align 4, !tbaa !5
  %847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %848 = load i32, ptr @test_count, align 4, !tbaa !5
  %849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %850 = load i32, ptr %849, align 4, !tbaa !5
  %851 = call ptr @s2n_strerror(i32 noundef %850, ptr noundef nonnull @.str.4) #12
  %852 = load i32, ptr %849, align 4, !tbaa !5
  %853 = call ptr @s2n_strerror_debug(i32 noundef %852, ptr noundef nonnull @.str.4) #12
  %854 = load i32, ptr %835, align 4, !tbaa !5
  %855 = call ptr @strerror(i32 noundef %854) #12
  %856 = load i32, ptr %835, align 4, !tbaa !5
  %857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %847, ptr noundef nonnull %.str.5.sink976, i32 noundef %848, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %851, ptr noundef %853, ptr noundef %855, i32 noundef %856) #14
  call void @exit(i32 noundef 1) #15
  unreachable

858:                                              ; preds = %829
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #12
  %859 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %19) #12
  %860 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  %861 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #12
  %862 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %862, ptr %23, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  %863 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %863, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %25) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(192) %25, i8 0, i64 192, i1 false)
  %864 = load i32, ptr @test_count, align 4, !tbaa !5
  %865 = add nsw i32 %864, 1
  store i32 %865, ptr @test_count, align 4, !tbaa !5
  %866 = load ptr, ptr %23, align 8, !tbaa !9
  %867 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %866, ptr noundef %863, ptr noundef nonnull %25) #12
  %868 = call zeroext i1 @s2n_result_is_ok(i32 %867)
  br i1 %868, label %893, label %869

869:                                              ; preds = %858
  %870 = tail call ptr @__errno_location() #13
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %873 = call i32 @s2n_print_stacktrace(ptr noundef %872) #12
  %874 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %875 = trunc nuw i8 %874 to i1
  br i1 %875, label %876, label %880

876:                                              ; preds = %869
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = call i32 @fileno(ptr noundef %877) #12
  %879 = call i32 @isatty(i32 noundef %878) #12
  %.not562 = icmp eq i32 %879, 0
  br i1 %.not562, label %880, label %881

880:                                              ; preds = %876, %869
  br label %881

881:                                              ; preds = %876, %880
  %.str.5.sink987 = phi ptr [ @.str.5, %880 ], [ @.str.2, %876 ]
  store i32 %871, ptr %870, align 4, !tbaa !5
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = load i32, ptr @test_count, align 4, !tbaa !5
  %884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %885 = load i32, ptr %884, align 4, !tbaa !5
  %886 = call ptr @s2n_strerror(i32 noundef %885, ptr noundef nonnull @.str.4) #12
  %887 = load i32, ptr %884, align 4, !tbaa !5
  %888 = call ptr @s2n_strerror_debug(i32 noundef %887, ptr noundef nonnull @.str.4) #12
  %889 = load i32, ptr %870, align 4, !tbaa !5
  %890 = call ptr @strerror(i32 noundef %889) #12
  %891 = load i32, ptr %870, align 4, !tbaa !5
  %892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %882, ptr noundef nonnull %.str.5.sink987, i32 noundef %883, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %886, ptr noundef %888, ptr noundef %890, i32 noundef %891) #14
  call void @exit(i32 noundef 1) #15
  unreachable

893:                                              ; preds = %858
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %26) #12
  store ptr %3, ptr %26, align 16, !tbaa !15
  %894 = getelementptr inbounds i8, ptr %26, i64 8
  store i64 10, ptr %894, align 8, !tbaa !18
  %895 = getelementptr inbounds i8, ptr %3, i64 10
  %896 = getelementptr inbounds i8, ptr %26, i64 16
  store ptr %895, ptr %896, align 16, !tbaa !15
  %897 = getelementptr inbounds i8, ptr %26, i64 24
  store i64 10, ptr %897, align 8, !tbaa !18
  %898 = getelementptr inbounds i8, ptr %3, i64 20
  %899 = getelementptr inbounds i8, ptr %26, i64 32
  store ptr %898, ptr %899, align 16, !tbaa !15
  %900 = getelementptr inbounds i8, ptr %26, i64 40
  store i64 10, ptr %900, align 8, !tbaa !18
  %901 = getelementptr inbounds i8, ptr %3, i64 30
  %902 = getelementptr inbounds i8, ptr %26, i64 48
  store ptr %901, ptr %902, align 16, !tbaa !15
  %903 = getelementptr inbounds i8, ptr %26, i64 56
  store i64 10, ptr %903, align 8, !tbaa !18
  %904 = getelementptr inbounds i8, ptr %3, i64 40
  %905 = getelementptr inbounds i8, ptr %26, i64 64
  store ptr %904, ptr %905, align 16, !tbaa !15
  %906 = getelementptr inbounds i8, ptr %26, i64 72
  store i64 10, ptr %906, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %27) #12
  store ptr null, ptr %27, align 8, !tbaa !19
  %907 = getelementptr inbounds i8, ptr %27, i64 8
  store i32 0, ptr %907, align 8, !tbaa !21
  %908 = getelementptr inbounds i8, ptr %27, i64 16
  store ptr %26, ptr %908, align 8, !tbaa !22
  %909 = getelementptr inbounds i8, ptr %27, i64 24
  store i64 5, ptr %909, align 8, !tbaa !23
  %910 = getelementptr inbounds i8, ptr %27, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %910, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %28) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %28, i8 0, i64 100, i1 false)
  %911 = load i32, ptr @test_count, align 4, !tbaa !5
  %912 = add nsw i32 %911, 1
  store i32 %912, ptr @test_count, align 4, !tbaa !5
  %913 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %27, ptr noundef nonnull %28, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %914 = call zeroext i1 @s2n_result_is_ok(i32 %913)
  br i1 %914, label %939, label %915

915:                                              ; preds = %893
  %916 = tail call ptr @__errno_location() #13
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = call i32 @s2n_print_stacktrace(ptr noundef %918) #12
  %920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %921 = trunc nuw i8 %920 to i1
  br i1 %921, label %922, label %926

922:                                              ; preds = %915
  %923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %924 = call i32 @fileno(ptr noundef %923) #12
  %925 = call i32 @isatty(i32 noundef %924) #12
  %.not563 = icmp eq i32 %925, 0
  br i1 %.not563, label %926, label %927

926:                                              ; preds = %922, %915
  br label %927

927:                                              ; preds = %922, %926
  %.str.5.sink998 = phi ptr [ @.str.5, %926 ], [ @.str.2, %922 ]
  store i32 %917, ptr %916, align 4, !tbaa !5
  %928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %929 = load i32, ptr @test_count, align 4, !tbaa !5
  %930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %931 = load i32, ptr %930, align 4, !tbaa !5
  %932 = call ptr @s2n_strerror(i32 noundef %931, ptr noundef nonnull @.str.4) #12
  %933 = load i32, ptr %930, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror_debug(i32 noundef %933, ptr noundef nonnull @.str.4) #12
  %935 = load i32, ptr %916, align 4, !tbaa !5
  %936 = call ptr @strerror(i32 noundef %935) #12
  %937 = load i32, ptr %916, align 4, !tbaa !5
  %938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %928, ptr noundef nonnull %.str.5.sink998, i32 noundef %929, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %932, ptr noundef %934, ptr noundef %936, i32 noundef %937) #14
  call void @exit(i32 noundef 1) #15
  unreachable

939:                                              ; preds = %893
  %940 = load ptr, ptr %23, align 8, !tbaa !9
  %941 = getelementptr inbounds i8, ptr %940, i64 64
  %942 = load ptr, ptr %941, align 8, !tbaa !24
  %943 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %942, ptr noundef nonnull %27) #12
  %944 = load i32, ptr @test_count, align 4, !tbaa !5
  %945 = add nsw i32 %944, 1
  store i32 %945, ptr @test_count, align 4, !tbaa !5
  %946 = icmp eq i64 %943, 50
  br i1 %946, label %971, label %947

947:                                              ; preds = %939
  %948 = tail call ptr @__errno_location() #13
  %949 = load i32, ptr %948, align 4, !tbaa !5
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = call i32 @s2n_print_stacktrace(ptr noundef %950) #12
  %952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %953 = trunc nuw i8 %952 to i1
  br i1 %953, label %954, label %958

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

958:                                              ; preds = %954, %947
  br label %959

959:                                              ; preds = %954, %958
  %.str.5.sink1009 = phi ptr [ @.str.5, %958 ], [ @.str.2, %954 ]
  store i32 %949, ptr %948, align 4, !tbaa !5
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = load i32, ptr @test_count, align 4, !tbaa !5
  %962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %963 = load i32, ptr %962, align 4, !tbaa !5
  %964 = call ptr @s2n_strerror(i32 noundef %963, ptr noundef nonnull @.str.4) #12
  %965 = load i32, ptr %962, align 4, !tbaa !5
  %966 = call ptr @s2n_strerror_debug(i32 noundef %965, ptr noundef nonnull @.str.4) #12
  %967 = load i32, ptr %948, align 4, !tbaa !5
  %968 = call ptr @strerror(i32 noundef %967) #12
  %969 = load i32, ptr %948, align 4, !tbaa !5
  %970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %960, ptr noundef nonnull %.str.5.sink1009, i32 noundef %961, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %964, ptr noundef %966, ptr noundef %968, i32 noundef %969) #14
  call void @exit(i32 noundef 1) #15
  unreachable

971:                                              ; preds = %939
  %972 = add nsw i32 %944, 2
  store i32 %972, ptr @test_count, align 4, !tbaa !5
  %973 = call i32 @s2n_test_validate_data(ptr noundef nonnull %25, ptr noundef nonnull %3, i16 noundef zeroext 50) #12
  %974 = call zeroext i1 @s2n_result_is_ok(i32 %973)
  br i1 %974, label %999, label %975

975:                                              ; preds = %971
  %976 = tail call ptr @__errno_location() #13
  %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) #12
  %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) #12
  %985 = call i32 @isatty(i32 noundef %984) #12
  %.not565 = icmp eq i32 %985, 0
  br i1 %.not565, label %986, label %987

986:                                              ; preds = %982, %975
  br label %987

987:                                              ; preds = %982, %986
  %.str.5.sink1020 = 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) #12
  %993 = load i32, ptr %990, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror_debug(i32 noundef %993, ptr noundef nonnull @.str.4) #12
  %995 = load i32, ptr %976, align 4, !tbaa !5
  %996 = call ptr @strerror(i32 noundef %995) #12
  %997 = load i32, ptr %976, align 4, !tbaa !5
  %998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %988, ptr noundef nonnull %.str.5.sink1020, i32 noundef %989, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %992, ptr noundef %994, ptr noundef %996, i32 noundef %997) #14
  call void @exit(i32 noundef 1) #15
  unreachable

999:                                              ; preds = %971
  %1000 = load i32, ptr @test_count, align 4, !tbaa !5
  %1001 = add nsw i32 %1000, 1
  store i32 %1001, ptr @test_count, align 4, !tbaa !5
  %1002 = call i32 @s2n_test_validate_ancillary(ptr noundef nonnull %25, i8 noundef zeroext 43, i16 noundef zeroext 50) #12
  %1003 = call zeroext i1 @s2n_result_is_ok(i32 %1002)
  br i1 %1003, label %1028, label %1004

1004:                                             ; preds = %999
  %1005 = tail call ptr @__errno_location() #13
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1008 = call i32 @s2n_print_stacktrace(ptr noundef %1007) #12
  %1009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1010 = trunc nuw i8 %1009 to i1
  br i1 %1010, label %1011, label %1015

1011:                                             ; preds = %1004
  %1012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1013 = call i32 @fileno(ptr noundef %1012) #12
  %1014 = call i32 @isatty(i32 noundef %1013) #12
  %.not566 = icmp eq i32 %1014, 0
  br i1 %.not566, label %1015, label %1016

1015:                                             ; preds = %1011, %1004
  br label %1016

1016:                                             ; preds = %1011, %1015
  %.str.5.sink1031 = phi ptr [ @.str.5, %1015 ], [ @.str.2, %1011 ]
  store i32 %1006, ptr %1005, align 4, !tbaa !5
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = load i32, ptr @test_count, align 4, !tbaa !5
  %1019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror(i32 noundef %1020, ptr noundef nonnull @.str.4) #12
  %1022 = load i32, ptr %1019, align 4, !tbaa !5
  %1023 = call ptr @s2n_strerror_debug(i32 noundef %1022, ptr noundef nonnull @.str.4) #12
  %1024 = load i32, ptr %1005, align 4, !tbaa !5
  %1025 = call ptr @strerror(i32 noundef %1024) #12
  %1026 = load i32, ptr %1005, align 4, !tbaa !5
  %1027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1017, ptr noundef nonnull %.str.5.sink1031, i32 noundef %1018, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %1021, ptr noundef %1023, ptr noundef %1025, i32 noundef %1026) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1028:                                             ; preds = %999
  %1029 = load i32, ptr @test_count, align 4, !tbaa !5
  %1030 = add nsw i32 %1029, 1
  store i32 %1030, ptr @test_count, align 4, !tbaa !5
  %1031 = getelementptr inbounds i8, ptr %25, i64 28
  %1032 = load i32, ptr %1031, align 4, !tbaa !54
  %1033 = getelementptr inbounds i8, ptr %25, i64 24
  %1034 = load i32, ptr %1033, align 8, !tbaa !55
  %1035 = sub i32 %1032, %1034
  %1036 = icmp eq i32 %1035, 3
  br i1 %1036, label %1061, label %1037

1037:                                             ; preds = %1028
  %1038 = tail call ptr @__errno_location() #13
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = call i32 @s2n_print_stacktrace(ptr noundef %1040) #12
  %1042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1043 = trunc nuw i8 %1042 to i1
  br i1 %1043, label %1044, label %1048

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

1048:                                             ; preds = %1044, %1037
  br label %1049

1049:                                             ; preds = %1044, %1048
  %.str.5.sink1042 = phi ptr [ @.str.5, %1048 ], [ @.str.2, %1044 ]
  store i32 %1039, ptr %1038, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1053 = load i32, ptr %1052, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror(i32 noundef %1053, ptr noundef nonnull @.str.4) #12
  %1055 = load i32, ptr %1052, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror_debug(i32 noundef %1055, ptr noundef nonnull @.str.4) #12
  %1057 = load i32, ptr %1038, align 4, !tbaa !5
  %1058 = call ptr @strerror(i32 noundef %1057) #12
  %1059 = load i32, ptr %1038, align 4, !tbaa !5
  %1060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1050, ptr noundef nonnull %.str.5.sink1042, i32 noundef %1051, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %1054, ptr noundef %1056, ptr noundef %1058, i32 noundef %1059) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1061:                                             ; preds = %1028
  %1062 = add nsw i32 %1029, 2
  store i32 %1062, ptr @test_count, align 4, !tbaa !5
  %1063 = getelementptr inbounds i8, ptr %25, i64 80
  %1064 = load i64, ptr %1063, align 8, !tbaa !50
  %1065 = icmp eq i64 %1064, 1
  br i1 %1065, label %1090, label %1066

1066:                                             ; preds = %1061
  %1067 = tail call ptr @__errno_location() #13
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = call i32 @s2n_print_stacktrace(ptr noundef %1069) #12
  %1071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1072 = trunc nuw i8 %1071 to i1
  br i1 %1072, label %1073, label %1077

1073:                                             ; preds = %1066
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = call i32 @fileno(ptr noundef %1074) #12
  %1076 = call i32 @isatty(i32 noundef %1075) #12
  %.not568 = icmp eq i32 %1076, 0
  br i1 %.not568, label %1077, label %1078

1077:                                             ; preds = %1073, %1066
  br label %1078

1078:                                             ; preds = %1073, %1077
  %.str.5.sink1053 = phi ptr [ @.str.5, %1077 ], [ @.str.2, %1073 ]
  store i32 %1068, ptr %1067, align 4, !tbaa !5
  %1079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1080 = load i32, ptr @test_count, align 4, !tbaa !5
  %1081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror(i32 noundef %1082, ptr noundef nonnull @.str.4) #12
  %1084 = load i32, ptr %1081, align 4, !tbaa !5
  %1085 = call ptr @s2n_strerror_debug(i32 noundef %1084, ptr noundef nonnull @.str.4) #12
  %1086 = load i32, ptr %1067, align 4, !tbaa !5
  %1087 = call ptr @strerror(i32 noundef %1086) #12
  %1088 = load i32, ptr %1067, align 4, !tbaa !5
  %1089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1079, ptr noundef nonnull %.str.5.sink1053, i32 noundef %1080, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %1083, ptr noundef %1085, ptr noundef %1087, i32 noundef %1088) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1090:                                             ; preds = %1061
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %26) #12
  %1091 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %25) #12
  %1092 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %24) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  %1093 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #12
  %1094 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1094, ptr %29, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #12
  %1095 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1095, ptr %30, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %31) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(192) %31, i8 0, i64 192, i1 false)
  %1096 = load i32, ptr @test_count, align 4, !tbaa !5
  %1097 = add nsw i32 %1096, 1
  store i32 %1097, ptr @test_count, align 4, !tbaa !5
  %1098 = load ptr, ptr %29, align 8, !tbaa !9
  %1099 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %1098, ptr noundef %1095, ptr noundef nonnull %31) #12
  %1100 = call zeroext i1 @s2n_result_is_ok(i32 %1099)
  br i1 %1100, label %1125, label %1101

1101:                                             ; preds = %1090
  %1102 = tail call ptr @__errno_location() #13
  %1103 = load i32, ptr %1102, align 4, !tbaa !5
  %1104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1105 = call i32 @s2n_print_stacktrace(ptr noundef %1104) #12
  %1106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1107 = trunc nuw i8 %1106 to i1
  br i1 %1107, label %1108, label %1112

1108:                                             ; preds = %1101
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = call i32 @fileno(ptr noundef %1109) #12
  %1111 = call i32 @isatty(i32 noundef %1110) #12
  %.not569 = icmp eq i32 %1111, 0
  br i1 %.not569, label %1112, label %1113

1112:                                             ; preds = %1108, %1101
  br label %1113

1113:                                             ; preds = %1108, %1112
  %.str.5.sink1064 = phi ptr [ @.str.5, %1112 ], [ @.str.2, %1108 ]
  store i32 %1103, ptr %1102, align 4, !tbaa !5
  %1114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1115 = load i32, ptr @test_count, align 4, !tbaa !5
  %1116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call ptr @s2n_strerror(i32 noundef %1117, ptr noundef nonnull @.str.4) #12
  %1119 = load i32, ptr %1116, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror_debug(i32 noundef %1119, ptr noundef nonnull @.str.4) #12
  %1121 = load i32, ptr %1102, align 4, !tbaa !5
  %1122 = call ptr @strerror(i32 noundef %1121) #12
  %1123 = load i32, ptr %1102, align 4, !tbaa !5
  %1124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1114, ptr noundef nonnull %.str.5.sink1064, i32 noundef %1115, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %1118, ptr noundef %1120, ptr noundef %1122, i32 noundef %1123) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1125:                                             ; preds = %1090
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 8 dereferenceable(16) @__const.main.send_msg_iov, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %33) #12
  store ptr null, ptr %33, align 8, !tbaa !19
  %1126 = getelementptr inbounds i8, ptr %33, i64 8
  store i32 0, ptr %1126, align 8, !tbaa !21
  %1127 = getelementptr inbounds i8, ptr %33, i64 16
  store ptr %32, ptr %1127, align 8, !tbaa !22
  %1128 = getelementptr inbounds i8, ptr %33, i64 24
  store i64 1, ptr %1128, align 8, !tbaa !23
  %1129 = getelementptr inbounds i8, ptr %33, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %1129, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %34) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %34, i8 0, i64 100, i1 false)
  store ptr %3, ptr %32, align 8, !tbaa !15
  %1130 = load i32, ptr @test_count, align 4, !tbaa !5
  %1131 = add nsw i32 %1130, 1
  store i32 %1131, ptr @test_count, align 4, !tbaa !5
  %1132 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %33, ptr noundef nonnull %34, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %1133 = call zeroext i1 @s2n_result_is_ok(i32 %1132)
  br i1 %1133, label %1158, label %1134

1134:                                             ; preds = %1226, %1214, %1202, %1190, %1125
  %1135 = tail call ptr @__errno_location() #13
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1138 = call i32 @s2n_print_stacktrace(ptr noundef %1137) #12
  %1139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1140 = trunc nuw i8 %1139 to i1
  br i1 %1140, label %1141, label %1145

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

1145:                                             ; preds = %1141, %1134
  br label %1146

1146:                                             ; preds = %1141, %1145
  %.str.5.sink1075 = phi ptr [ @.str.5, %1145 ], [ @.str.2, %1141 ]
  store i32 %1136, ptr %1135, align 4, !tbaa !5
  %1147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1148 = load i32, ptr @test_count, align 4, !tbaa !5
  %1149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1150 = load i32, ptr %1149, align 4, !tbaa !5
  %1151 = call ptr @s2n_strerror(i32 noundef %1150, ptr noundef nonnull @.str.4) #12
  %1152 = load i32, ptr %1149, align 4, !tbaa !5
  %1153 = call ptr @s2n_strerror_debug(i32 noundef %1152, ptr noundef nonnull @.str.4) #12
  %1154 = load i32, ptr %1135, align 4, !tbaa !5
  %1155 = call ptr @strerror(i32 noundef %1154) #12
  %1156 = load i32, ptr %1135, align 4, !tbaa !5
  %1157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1147, ptr noundef nonnull %.str.5.sink1075, i32 noundef %1148, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %1151, ptr noundef %1153, ptr noundef %1155, i32 noundef %1156) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1158:                                             ; preds = %1125
  %1159 = load ptr, ptr %29, align 8, !tbaa !9
  %1160 = getelementptr inbounds i8, ptr %1159, i64 64
  %1161 = load ptr, ptr %1160, align 8, !tbaa !24
  %1162 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1161, ptr noundef nonnull %33) #12
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = add nsw i32 %1163, 1
  store i32 %1164, ptr @test_count, align 4, !tbaa !5
  %1165 = icmp eq i64 %1162, 10
  br i1 %1165, label %1190, label %1166

1166:                                             ; preds = %1230, %1218, %1206, %1194, %1158
  %1167 = tail call ptr @__errno_location() #13
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  %1169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1170 = call i32 @s2n_print_stacktrace(ptr noundef %1169) #12
  %1171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1172 = trunc nuw i8 %1171 to i1
  br i1 %1172, label %1173, label %1177

1173:                                             ; preds = %1166
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = call i32 @fileno(ptr noundef %1174) #12
  %1176 = call i32 @isatty(i32 noundef %1175) #12
  %.not681 = icmp eq i32 %1176, 0
  br i1 %.not681, label %1177, label %1178

1177:                                             ; preds = %1173, %1166
  br label %1178

1178:                                             ; preds = %1173, %1177
  %.str.5.sink1086 = phi ptr [ @.str.5, %1177 ], [ @.str.2, %1173 ]
  store i32 %1168, ptr %1167, align 4, !tbaa !5
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = load i32, ptr @test_count, align 4, !tbaa !5
  %1181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = call ptr @s2n_strerror(i32 noundef %1182, ptr noundef nonnull @.str.4) #12
  %1184 = load i32, ptr %1181, align 4, !tbaa !5
  %1185 = call ptr @s2n_strerror_debug(i32 noundef %1184, ptr noundef nonnull @.str.4) #12
  %1186 = load i32, ptr %1167, align 4, !tbaa !5
  %1187 = call ptr @strerror(i32 noundef %1186) #12
  %1188 = load i32, ptr %1167, align 4, !tbaa !5
  %1189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1179, ptr noundef nonnull %.str.5.sink1086, i32 noundef %1180, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 176, ptr noundef %1183, ptr noundef %1185, ptr noundef %1187, i32 noundef %1188) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1190:                                             ; preds = %1158
  store ptr %895, ptr %32, align 8, !tbaa !15
  %1191 = add nsw i32 %1163, 2
  store i32 %1191, ptr @test_count, align 4, !tbaa !5
  %1192 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %33, ptr noundef nonnull %34, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %1193 = call zeroext i1 @s2n_result_is_ok(i32 %1192)
  br i1 %1193, label %1194, label %1134

1194:                                             ; preds = %1190
  %1195 = load ptr, ptr %29, align 8, !tbaa !9
  %1196 = getelementptr inbounds i8, ptr %1195, i64 64
  %1197 = load ptr, ptr %1196, align 8, !tbaa !24
  %1198 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1197, ptr noundef nonnull %33) #12
  %1199 = load i32, ptr @test_count, align 4, !tbaa !5
  %1200 = add nsw i32 %1199, 1
  store i32 %1200, ptr @test_count, align 4, !tbaa !5
  %1201 = icmp eq i64 %1198, 10
  br i1 %1201, label %1202, label %1166

1202:                                             ; preds = %1194
  store ptr %898, ptr %32, align 8, !tbaa !15
  %1203 = add nsw i32 %1199, 2
  store i32 %1203, ptr @test_count, align 4, !tbaa !5
  %1204 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %33, ptr noundef nonnull %34, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %1205 = call zeroext i1 @s2n_result_is_ok(i32 %1204)
  br i1 %1205, label %1206, label %1134

1206:                                             ; preds = %1202
  %1207 = load ptr, ptr %29, align 8, !tbaa !9
  %1208 = getelementptr inbounds i8, ptr %1207, i64 64
  %1209 = load ptr, ptr %1208, align 8, !tbaa !24
  %1210 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1209, ptr noundef nonnull %33) #12
  %1211 = load i32, ptr @test_count, align 4, !tbaa !5
  %1212 = add nsw i32 %1211, 1
  store i32 %1212, ptr @test_count, align 4, !tbaa !5
  %1213 = icmp eq i64 %1210, 10
  br i1 %1213, label %1214, label %1166

1214:                                             ; preds = %1206
  store ptr %901, ptr %32, align 8, !tbaa !15
  %1215 = add nsw i32 %1211, 2
  store i32 %1215, ptr @test_count, align 4, !tbaa !5
  %1216 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %33, ptr noundef nonnull %34, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %1217 = call zeroext i1 @s2n_result_is_ok(i32 %1216)
  br i1 %1217, label %1218, label %1134

1218:                                             ; preds = %1214
  %1219 = load ptr, ptr %29, align 8, !tbaa !9
  %1220 = getelementptr inbounds i8, ptr %1219, i64 64
  %1221 = load ptr, ptr %1220, align 8, !tbaa !24
  %1222 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1221, ptr noundef nonnull %33) #12
  %1223 = load i32, ptr @test_count, align 4, !tbaa !5
  %1224 = add nsw i32 %1223, 1
  store i32 %1224, ptr @test_count, align 4, !tbaa !5
  %1225 = icmp eq i64 %1222, 10
  br i1 %1225, label %1226, label %1166

1226:                                             ; preds = %1218
  store ptr %904, ptr %32, align 8, !tbaa !15
  %1227 = add nsw i32 %1223, 2
  store i32 %1227, ptr @test_count, align 4, !tbaa !5
  %1228 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %33, ptr noundef nonnull %34, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %1229 = call zeroext i1 @s2n_result_is_ok(i32 %1228)
  br i1 %1229, label %1230, label %1134

1230:                                             ; preds = %1226
  %1231 = load ptr, ptr %29, align 8, !tbaa !9
  %1232 = getelementptr inbounds i8, ptr %1231, i64 64
  %1233 = load ptr, ptr %1232, align 8, !tbaa !24
  %1234 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1233, ptr noundef nonnull %33) #12
  %1235 = load i32, ptr @test_count, align 4, !tbaa !5
  %1236 = add nsw i32 %1235, 1
  store i32 %1236, ptr @test_count, align 4, !tbaa !5
  %1237 = icmp eq i64 %1234, 10
  br i1 %1237, label %1238, label %1166

1238:                                             ; preds = %1230
  %1239 = add nsw i32 %1235, 2
  store i32 %1239, ptr @test_count, align 4, !tbaa !5
  %1240 = call i32 @s2n_test_validate_data(ptr noundef nonnull %31, ptr noundef nonnull %3, i16 noundef zeroext 50) #12
  %1241 = call zeroext i1 @s2n_result_is_ok(i32 %1240)
  br i1 %1241, label %1266, label %1242

1242:                                             ; preds = %1238
  %1243 = tail call ptr @__errno_location() #13
  %1244 = load i32, ptr %1243, align 4, !tbaa !5
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = call i32 @s2n_print_stacktrace(ptr noundef %1245) #12
  %1247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1248 = trunc nuw i8 %1247 to i1
  br i1 %1248, label %1249, label %1253

1249:                                             ; preds = %1242
  %1250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1251 = call i32 @fileno(ptr noundef %1250) #12
  %1252 = call i32 @isatty(i32 noundef %1251) #12
  %.not570 = icmp eq i32 %1252, 0
  br i1 %.not570, label %1253, label %1254

1253:                                             ; preds = %1249, %1242
  br label %1254

1254:                                             ; preds = %1249, %1253
  %.str.5.sink1097 = phi ptr [ @.str.5, %1253 ], [ @.str.2, %1249 ]
  store i32 %1244, ptr %1243, align 4, !tbaa !5
  %1255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1256 = load i32, ptr @test_count, align 4, !tbaa !5
  %1257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1258 = load i32, ptr %1257, align 4, !tbaa !5
  %1259 = call ptr @s2n_strerror(i32 noundef %1258, ptr noundef nonnull @.str.4) #12
  %1260 = load i32, ptr %1257, align 4, !tbaa !5
  %1261 = call ptr @s2n_strerror_debug(i32 noundef %1260, ptr noundef nonnull @.str.4) #12
  %1262 = load i32, ptr %1243, align 4, !tbaa !5
  %1263 = call ptr @strerror(i32 noundef %1262) #12
  %1264 = load i32, ptr %1243, align 4, !tbaa !5
  %1265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1255, ptr noundef nonnull %.str.5.sink1097, i32 noundef %1256, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1259, ptr noundef %1261, ptr noundef %1263, i32 noundef %1264) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1266:                                             ; preds = %1238
  %1267 = load i32, ptr @test_count, align 4, !tbaa !5
  %1268 = add nsw i32 %1267, 1
  store i32 %1268, ptr @test_count, align 4, !tbaa !5
  %1269 = getelementptr inbounds i8, ptr %31, i64 28
  %1270 = load i32, ptr %1269, align 4, !tbaa !54
  %1271 = getelementptr inbounds i8, ptr %31, i64 24
  %1272 = load i32, ptr %1271, align 8, !tbaa !55
  %1273 = sub i32 %1270, %1272
  %1274 = icmp eq i32 %1273, 15
  br i1 %1274, label %.preheader688.preheader, label %1278

.preheader688.preheader:                          ; preds = %1266
  %1275 = add nsw i32 %1267, 2
  store i32 %1275, ptr @test_count, align 4, !tbaa !5
  %1276 = call i32 @s2n_test_validate_ancillary(ptr noundef nonnull %31, i8 noundef zeroext 43, i16 noundef zeroext 10) #12
  %1277 = call zeroext i1 @s2n_result_is_ok(i32 %1276)
  br i1 %1277, label %1368, label %1344

1278:                                             ; preds = %1266
  %1279 = tail call ptr @__errno_location() #13
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1282 = call i32 @s2n_print_stacktrace(ptr noundef %1281) #12
  %1283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1284 = trunc nuw i8 %1283 to i1
  br i1 %1284, label %1285, label %1289

1285:                                             ; preds = %1278
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = call i32 @fileno(ptr noundef %1286) #12
  %1288 = call i32 @isatty(i32 noundef %1287) #12
  %.not571 = icmp eq i32 %1288, 0
  br i1 %.not571, label %1289, label %1290

1289:                                             ; preds = %1285, %1278
  br label %1290

1290:                                             ; preds = %1285, %1289
  %.str.5.sink1108 = phi ptr [ @.str.5, %1289 ], [ @.str.2, %1285 ]
  store i32 %1280, ptr %1279, align 4, !tbaa !5
  %1291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1292 = load i32, ptr @test_count, align 4, !tbaa !5
  %1293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1294 = load i32, ptr %1293, align 4, !tbaa !5
  %1295 = call ptr @s2n_strerror(i32 noundef %1294, ptr noundef nonnull @.str.4) #12
  %1296 = load i32, ptr %1293, align 4, !tbaa !5
  %1297 = call ptr @s2n_strerror_debug(i32 noundef %1296, ptr noundef nonnull @.str.4) #12
  %1298 = load i32, ptr %1279, align 4, !tbaa !5
  %1299 = call ptr @strerror(i32 noundef %1298) #12
  %1300 = load i32, ptr %1279, align 4, !tbaa !5
  %1301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1291, ptr noundef nonnull %.str.5.sink1108, i32 noundef %1292, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %1295, ptr noundef %1297, ptr noundef %1299, i32 noundef %1300) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.preheader688.1:                                  ; preds = %1368
  %1302 = load i32, ptr @test_count, align 4, !tbaa !5
  %1303 = add nsw i32 %1302, 1
  store i32 %1303, ptr @test_count, align 4, !tbaa !5
  %1304 = call i32 @s2n_test_validate_ancillary(ptr noundef nonnull %31, i8 noundef zeroext 43, i16 noundef zeroext 10) #12
  %1305 = call zeroext i1 @s2n_result_is_ok(i32 %1304)
  br i1 %1305, label %1306, label %1344

1306:                                             ; preds = %.preheader688.1
  %1307 = load i32, ptr @test_count, align 4, !tbaa !5
  %1308 = add nsw i32 %1307, 1
  store i32 %1308, ptr @test_count, align 4, !tbaa !5
  %1309 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %31, i32 noundef 3) #12
  %1310 = icmp eq ptr %1309, null
  br i1 %1310, label %1373, label %.preheader688.2

.preheader688.2:                                  ; preds = %1306
  %1311 = load i32, ptr @test_count, align 4, !tbaa !5
  %1312 = add nsw i32 %1311, 1
  store i32 %1312, ptr @test_count, align 4, !tbaa !5
  %1313 = call i32 @s2n_test_validate_ancillary(ptr noundef nonnull %31, i8 noundef zeroext 43, i16 noundef zeroext 10) #12
  %1314 = call zeroext i1 @s2n_result_is_ok(i32 %1313)
  br i1 %1314, label %1315, label %1344

1315:                                             ; preds = %.preheader688.2
  %1316 = load i32, ptr @test_count, align 4, !tbaa !5
  %1317 = add nsw i32 %1316, 1
  store i32 %1317, ptr @test_count, align 4, !tbaa !5
  %1318 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %31, i32 noundef 3) #12
  %1319 = icmp eq ptr %1318, null
  br i1 %1319, label %1373, label %.preheader688.3

.preheader688.3:                                  ; preds = %1315
  %1320 = load i32, ptr @test_count, align 4, !tbaa !5
  %1321 = add nsw i32 %1320, 1
  store i32 %1321, ptr @test_count, align 4, !tbaa !5
  %1322 = call i32 @s2n_test_validate_ancillary(ptr noundef nonnull %31, i8 noundef zeroext 43, i16 noundef zeroext 10) #12
  %1323 = call zeroext i1 @s2n_result_is_ok(i32 %1322)
  br i1 %1323, label %1324, label %1344

1324:                                             ; preds = %.preheader688.3
  %1325 = load i32, ptr @test_count, align 4, !tbaa !5
  %1326 = add nsw i32 %1325, 1
  store i32 %1326, ptr @test_count, align 4, !tbaa !5
  %1327 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %31, i32 noundef 3) #12
  %1328 = icmp eq ptr %1327, null
  br i1 %1328, label %1373, label %.preheader688.4

.preheader688.4:                                  ; preds = %1324
  %1329 = load i32, ptr @test_count, align 4, !tbaa !5
  %1330 = add nsw i32 %1329, 1
  store i32 %1330, ptr @test_count, align 4, !tbaa !5
  %1331 = call i32 @s2n_test_validate_ancillary(ptr noundef nonnull %31, i8 noundef zeroext 43, i16 noundef zeroext 10) #12
  %1332 = call zeroext i1 @s2n_result_is_ok(i32 %1331)
  br i1 %1332, label %1333, label %1344

1333:                                             ; preds = %.preheader688.4
  %1334 = load i32, ptr @test_count, align 4, !tbaa !5
  %1335 = add nsw i32 %1334, 1
  store i32 %1335, ptr @test_count, align 4, !tbaa !5
  %1336 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %31, i32 noundef 3) #12
  %1337 = icmp eq ptr %1336, null
  br i1 %1337, label %1373, label %1338

1338:                                             ; preds = %1333
  %1339 = load i32, ptr @test_count, align 4, !tbaa !5
  %1340 = add nsw i32 %1339, 1
  store i32 %1340, ptr @test_count, align 4, !tbaa !5
  %1341 = getelementptr inbounds i8, ptr %31, i64 80
  %1342 = load i64, ptr %1341, align 8, !tbaa !50
  %1343 = icmp eq i64 %1342, 5
  br i1 %1343, label %1421, label %1397

1344:                                             ; preds = %.preheader688.4, %.preheader688.3, %.preheader688.2, %.preheader688.1, %.preheader688.preheader
  %1345 = tail call ptr @__errno_location() #13
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = call i32 @s2n_print_stacktrace(ptr noundef %1347) #12
  %1349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1350 = trunc nuw i8 %1349 to i1
  br i1 %1350, label %1351, label %1355

1351:                                             ; preds = %1344
  %1352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1353 = call i32 @fileno(ptr noundef %1352) #12
  %1354 = call i32 @isatty(i32 noundef %1353) #12
  %.not678 = icmp eq i32 %1354, 0
  br i1 %.not678, label %1355, label %1356

1355:                                             ; preds = %1351, %1344
  br label %1356

1356:                                             ; preds = %1351, %1355
  %.str.5.sink1119 = phi ptr [ @.str.5, %1355 ], [ @.str.2, %1351 ]
  store i32 %1346, ptr %1345, align 4, !tbaa !5
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = load i32, ptr @test_count, align 4, !tbaa !5
  %1359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1360 = load i32, ptr %1359, align 4, !tbaa !5
  %1361 = call ptr @s2n_strerror(i32 noundef %1360, ptr noundef nonnull @.str.4) #12
  %1362 = load i32, ptr %1359, align 4, !tbaa !5
  %1363 = call ptr @s2n_strerror_debug(i32 noundef %1362, ptr noundef nonnull @.str.4) #12
  %1364 = load i32, ptr %1345, align 4, !tbaa !5
  %1365 = call ptr @strerror(i32 noundef %1364) #12
  %1366 = load i32, ptr %1345, align 4, !tbaa !5
  %1367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1357, ptr noundef nonnull %.str.5.sink1119, i32 noundef %1358, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1361, ptr noundef %1363, ptr noundef %1365, i32 noundef %1366) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1368:                                             ; preds = %.preheader688.preheader
  %1369 = load i32, ptr @test_count, align 4, !tbaa !5
  %1370 = add nsw i32 %1369, 1
  store i32 %1370, ptr @test_count, align 4, !tbaa !5
  %1371 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %31, i32 noundef 3) #12
  %1372 = icmp eq ptr %1371, null
  br i1 %1372, label %1373, label %.preheader688.1

1373:                                             ; preds = %1333, %1324, %1315, %1306, %1368
  %1374 = tail call ptr @__errno_location() #13
  %1375 = load i32, ptr %1374, align 4, !tbaa !5
  %1376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1377 = call i32 @s2n_print_stacktrace(ptr noundef %1376) #12
  %1378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1379 = trunc nuw i8 %1378 to i1
  br i1 %1379, label %1380, label %1384

1380:                                             ; preds = %1373
  %1381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1382 = call i32 @fileno(ptr noundef %1381) #12
  %1383 = call i32 @isatty(i32 noundef %1382) #12
  %.not679 = icmp eq i32 %1383, 0
  br i1 %.not679, label %1384, label %1385

1384:                                             ; preds = %1380, %1373
  br label %1385

1385:                                             ; preds = %1380, %1384
  %.str.5.sink1130 = phi ptr [ @.str.5, %1384 ], [ @.str.2, %1380 ]
  store i32 %1375, ptr %1374, align 4, !tbaa !5
  %1386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1387 = load i32, ptr @test_count, align 4, !tbaa !5
  %1388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  %1390 = call ptr @s2n_strerror(i32 noundef %1389, ptr noundef nonnull @.str.4) #12
  %1391 = load i32, ptr %1388, align 4, !tbaa !5
  %1392 = call ptr @s2n_strerror_debug(i32 noundef %1391, ptr noundef nonnull @.str.4) #12
  %1393 = load i32, ptr %1374, align 4, !tbaa !5
  %1394 = call ptr @strerror(i32 noundef %1393) #12
  %1395 = load i32, ptr %1374, align 4, !tbaa !5
  %1396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1386, ptr noundef nonnull %.str.5.sink1130, i32 noundef %1387, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %1390, ptr noundef %1392, ptr noundef %1394, i32 noundef %1395) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1397:                                             ; preds = %1338
  %1398 = tail call ptr @__errno_location() #13
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  %1400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1401 = call i32 @s2n_print_stacktrace(ptr noundef %1400) #12
  %1402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1403 = trunc nuw i8 %1402 to i1
  br i1 %1403, label %1404, label %1408

1404:                                             ; preds = %1397
  %1405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1406 = call i32 @fileno(ptr noundef %1405) #12
  %1407 = call i32 @isatty(i32 noundef %1406) #12
  %.not572 = icmp eq i32 %1407, 0
  br i1 %.not572, label %1408, label %1409

1408:                                             ; preds = %1404, %1397
  br label %1409

1409:                                             ; preds = %1404, %1408
  %.str.5.sink1141 = phi ptr [ @.str.5, %1408 ], [ @.str.2, %1404 ]
  store i32 %1399, ptr %1398, align 4, !tbaa !5
  %1410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1411 = load i32, ptr @test_count, align 4, !tbaa !5
  %1412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1413 = load i32, ptr %1412, align 4, !tbaa !5
  %1414 = call ptr @s2n_strerror(i32 noundef %1413, ptr noundef nonnull @.str.4) #12
  %1415 = load i32, ptr %1412, align 4, !tbaa !5
  %1416 = call ptr @s2n_strerror_debug(i32 noundef %1415, ptr noundef nonnull @.str.4) #12
  %1417 = load i32, ptr %1398, align 4, !tbaa !5
  %1418 = call ptr @strerror(i32 noundef %1417) #12
  %1419 = load i32, ptr %1398, align 4, !tbaa !5
  %1420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1410, ptr noundef nonnull %.str.5.sink1141, i32 noundef %1411, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 191, ptr noundef %1414, ptr noundef %1416, ptr noundef %1418, i32 noundef %1419) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1421:                                             ; preds = %1338
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %34) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #12
  %1422 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %31) #12
  %1423 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %30) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  %1424 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #12
  %1425 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1425, ptr %35, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #12
  %1426 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1426, ptr %36, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %37) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(192) %37, i8 0, i64 192, i1 false)
  %1427 = load i32, ptr @test_count, align 4, !tbaa !5
  %1428 = add nsw i32 %1427, 1
  store i32 %1428, ptr @test_count, align 4, !tbaa !5
  %1429 = load ptr, ptr %35, align 8, !tbaa !9
  %1430 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %1429, ptr noundef %1426, ptr noundef nonnull %37) #12
  %1431 = call zeroext i1 @s2n_result_is_ok(i32 %1430)
  br i1 %1431, label %1456, label %1432

1432:                                             ; preds = %1421
  %1433 = tail call ptr @__errno_location() #13
  %1434 = load i32, ptr %1433, align 4, !tbaa !5
  %1435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1436 = call i32 @s2n_print_stacktrace(ptr noundef %1435) #12
  %1437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1438 = trunc nuw i8 %1437 to i1
  br i1 %1438, label %1439, label %1443

1439:                                             ; preds = %1432
  %1440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1441 = call i32 @fileno(ptr noundef %1440) #12
  %1442 = call i32 @isatty(i32 noundef %1441) #12
  %.not573 = icmp eq i32 %1442, 0
  br i1 %.not573, label %1443, label %1444

1443:                                             ; preds = %1439, %1432
  br label %1444

1444:                                             ; preds = %1439, %1443
  %.str.5.sink1152 = phi ptr [ @.str.5, %1443 ], [ @.str.2, %1439 ]
  store i32 %1434, ptr %1433, align 4, !tbaa !5
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = load i32, ptr @test_count, align 4, !tbaa !5
  %1447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1448 = load i32, ptr %1447, align 4, !tbaa !5
  %1449 = call ptr @s2n_strerror(i32 noundef %1448, ptr noundef nonnull @.str.4) #12
  %1450 = load i32, ptr %1447, align 4, !tbaa !5
  %1451 = call ptr @s2n_strerror_debug(i32 noundef %1450, ptr noundef nonnull @.str.4) #12
  %1452 = load i32, ptr %1433, align 4, !tbaa !5
  %1453 = call ptr @strerror(i32 noundef %1452) #12
  %1454 = load i32, ptr %1433, align 4, !tbaa !5
  %1455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1445, ptr noundef nonnull %.str.5.sink1152, i32 noundef %1446, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 202, ptr noundef %1449, ptr noundef %1451, ptr noundef %1453, i32 noundef %1454) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1456:                                             ; preds = %1421
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef nonnull align 8 dereferenceable(16) @__const.main.send_msg_iov.30, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %39) #12
  store ptr null, ptr %39, align 8, !tbaa !19
  %1457 = getelementptr inbounds i8, ptr %39, i64 8
  store i32 0, ptr %1457, align 8, !tbaa !21
  %1458 = getelementptr inbounds i8, ptr %39, i64 16
  store ptr %38, ptr %1458, align 8, !tbaa !22
  %1459 = getelementptr inbounds i8, ptr %39, i64 24
  store i64 1, ptr %1459, align 8, !tbaa !23
  %1460 = getelementptr inbounds i8, ptr %39, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %1460, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %40) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %40, i8 0, i64 100, i1 false)
  store ptr %3, ptr %38, align 8, !tbaa !15
  %1461 = load i32, ptr @test_count, align 4, !tbaa !5
  %1462 = add nsw i32 %1461, 1
  store i32 %1462, ptr @test_count, align 4, !tbaa !5
  %1463 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %39, ptr noundef nonnull %40, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 0) #12
  %1464 = call zeroext i1 @s2n_result_is_ok(i32 %1463)
  br i1 %1464, label %1489, label %1465

1465:                                             ; preds = %1557, %1545, %1533, %1521, %1456
  %1466 = tail call ptr @__errno_location() #13
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  %1468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1469 = call i32 @s2n_print_stacktrace(ptr noundef %1468) #12
  %1470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1471 = trunc nuw i8 %1470 to i1
  br i1 %1471, label %1472, label %1476

1472:                                             ; preds = %1465
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = call i32 @fileno(ptr noundef %1473) #12
  %1475 = call i32 @isatty(i32 noundef %1474) #12
  %.not676 = icmp eq i32 %1475, 0
  br i1 %.not676, label %1476, label %1477

1476:                                             ; preds = %1472, %1465
  br label %1477

1477:                                             ; preds = %1472, %1476
  %.str.5.sink1163 = phi ptr [ @.str.5, %1476 ], [ @.str.2, %1472 ]
  store i32 %1467, ptr %1466, align 4, !tbaa !5
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = load i32, ptr @test_count, align 4, !tbaa !5
  %1480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1481 = load i32, ptr %1480, align 4, !tbaa !5
  %1482 = call ptr @s2n_strerror(i32 noundef %1481, ptr noundef nonnull @.str.4) #12
  %1483 = load i32, ptr %1480, align 4, !tbaa !5
  %1484 = call ptr @s2n_strerror_debug(i32 noundef %1483, ptr noundef nonnull @.str.4) #12
  %1485 = load i32, ptr %1466, align 4, !tbaa !5
  %1486 = call ptr @strerror(i32 noundef %1485) #12
  %1487 = load i32, ptr %1466, align 4, !tbaa !5
  %1488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1478, ptr noundef nonnull %.str.5.sink1163, i32 noundef %1479, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %1482, ptr noundef %1484, ptr noundef %1486, i32 noundef %1487) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1489:                                             ; preds = %1456
  %1490 = load ptr, ptr %35, align 8, !tbaa !9
  %1491 = getelementptr inbounds i8, ptr %1490, i64 64
  %1492 = load ptr, ptr %1491, align 8, !tbaa !24
  %1493 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1492, ptr noundef nonnull %39) #12
  %1494 = load i32, ptr @test_count, align 4, !tbaa !5
  %1495 = add nsw i32 %1494, 1
  store i32 %1495, ptr @test_count, align 4, !tbaa !5
  %1496 = icmp eq i64 %1493, 10
  br i1 %1496, label %1521, label %1497

1497:                                             ; preds = %1561, %1549, %1537, %1525, %1489
  %1498 = tail call ptr @__errno_location() #13
  %1499 = load i32, ptr %1498, align 4, !tbaa !5
  %1500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1501 = call i32 @s2n_print_stacktrace(ptr noundef %1500) #12
  %1502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1503 = trunc nuw i8 %1502 to i1
  br i1 %1503, label %1504, label %1508

1504:                                             ; preds = %1497
  %1505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1506 = call i32 @fileno(ptr noundef %1505) #12
  %1507 = call i32 @isatty(i32 noundef %1506) #12
  %.not677 = icmp eq i32 %1507, 0
  br i1 %.not677, label %1508, label %1509

1508:                                             ; preds = %1504, %1497
  br label %1509

1509:                                             ; preds = %1504, %1508
  %.str.5.sink1174 = phi ptr [ @.str.5, %1508 ], [ @.str.2, %1504 ]
  store i32 %1499, ptr %1498, align 4, !tbaa !5
  %1510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1511 = load i32, ptr @test_count, align 4, !tbaa !5
  %1512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = call ptr @s2n_strerror(i32 noundef %1513, ptr noundef nonnull @.str.4) #12
  %1515 = load i32, ptr %1512, align 4, !tbaa !5
  %1516 = call ptr @s2n_strerror_debug(i32 noundef %1515, ptr noundef nonnull @.str.4) #12
  %1517 = load i32, ptr %1498, align 4, !tbaa !5
  %1518 = call ptr @strerror(i32 noundef %1517) #12
  %1519 = load i32, ptr %1498, align 4, !tbaa !5
  %1520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1510, ptr noundef nonnull %.str.5.sink1174, i32 noundef %1511, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %1514, ptr noundef %1516, ptr noundef %1518, i32 noundef %1519) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1521:                                             ; preds = %1489
  store ptr %895, ptr %38, align 8, !tbaa !15
  %1522 = add nsw i32 %1494, 2
  store i32 %1522, ptr @test_count, align 4, !tbaa !5
  %1523 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %39, ptr noundef nonnull %40, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 1) #12
  %1524 = call zeroext i1 @s2n_result_is_ok(i32 %1523)
  br i1 %1524, label %1525, label %1465

1525:                                             ; preds = %1521
  %1526 = load ptr, ptr %35, align 8, !tbaa !9
  %1527 = getelementptr inbounds i8, ptr %1526, i64 64
  %1528 = load ptr, ptr %1527, align 8, !tbaa !24
  %1529 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1528, ptr noundef nonnull %39) #12
  %1530 = load i32, ptr @test_count, align 4, !tbaa !5
  %1531 = add nsw i32 %1530, 1
  store i32 %1531, ptr @test_count, align 4, !tbaa !5
  %1532 = icmp eq i64 %1529, 10
  br i1 %1532, label %1533, label %1497

1533:                                             ; preds = %1525
  store ptr %898, ptr %38, align 8, !tbaa !15
  %1534 = add nsw i32 %1530, 2
  store i32 %1534, ptr @test_count, align 4, !tbaa !5
  %1535 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %39, ptr noundef nonnull %40, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 2) #12
  %1536 = call zeroext i1 @s2n_result_is_ok(i32 %1535)
  br i1 %1536, label %1537, label %1465

1537:                                             ; preds = %1533
  %1538 = load ptr, ptr %35, align 8, !tbaa !9
  %1539 = getelementptr inbounds i8, ptr %1538, i64 64
  %1540 = load ptr, ptr %1539, align 8, !tbaa !24
  %1541 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1540, ptr noundef nonnull %39) #12
  %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 = icmp eq i64 %1541, 10
  br i1 %1544, label %1545, label %1497

1545:                                             ; preds = %1537
  store ptr %901, ptr %38, align 8, !tbaa !15
  %1546 = add nsw i32 %1542, 2
  store i32 %1546, ptr @test_count, align 4, !tbaa !5
  %1547 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %39, ptr noundef nonnull %40, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 3) #12
  %1548 = call zeroext i1 @s2n_result_is_ok(i32 %1547)
  br i1 %1548, label %1549, label %1465

1549:                                             ; preds = %1545
  %1550 = load ptr, ptr %35, align 8, !tbaa !9
  %1551 = getelementptr inbounds i8, ptr %1550, i64 64
  %1552 = load ptr, ptr %1551, align 8, !tbaa !24
  %1553 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1552, ptr noundef nonnull %39) #12
  %1554 = load i32, ptr @test_count, align 4, !tbaa !5
  %1555 = add nsw i32 %1554, 1
  store i32 %1555, ptr @test_count, align 4, !tbaa !5
  %1556 = icmp eq i64 %1553, 10
  br i1 %1556, label %1557, label %1497

1557:                                             ; preds = %1549
  store ptr %904, ptr %38, align 8, !tbaa !15
  %1558 = add nsw i32 %1554, 2
  store i32 %1558, ptr @test_count, align 4, !tbaa !5
  %1559 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %39, ptr noundef nonnull %40, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 4) #12
  %1560 = call zeroext i1 @s2n_result_is_ok(i32 %1559)
  br i1 %1560, label %1561, label %1465

1561:                                             ; preds = %1557
  %1562 = load ptr, ptr %35, align 8, !tbaa !9
  %1563 = getelementptr inbounds i8, ptr %1562, i64 64
  %1564 = load ptr, ptr %1563, align 8, !tbaa !24
  %1565 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1564, ptr noundef nonnull %39) #12
  %1566 = load i32, ptr @test_count, align 4, !tbaa !5
  %1567 = add nsw i32 %1566, 1
  store i32 %1567, ptr @test_count, align 4, !tbaa !5
  %1568 = icmp eq i64 %1565, 10
  br i1 %1568, label %1569, label %1497

1569:                                             ; preds = %1561
  %1570 = add nsw i32 %1566, 2
  store i32 %1570, ptr @test_count, align 4, !tbaa !5
  %1571 = call i32 @s2n_test_validate_data(ptr noundef nonnull %37, ptr noundef nonnull %3, i16 noundef zeroext 50) #12
  %1572 = call zeroext i1 @s2n_result_is_ok(i32 %1571)
  br i1 %1572, label %1597, label %1573

1573:                                             ; preds = %1569
  %1574 = tail call ptr @__errno_location() #13
  %1575 = load i32, ptr %1574, align 4, !tbaa !5
  %1576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1577 = call i32 @s2n_print_stacktrace(ptr noundef %1576) #12
  %1578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1579 = trunc nuw i8 %1578 to i1
  br i1 %1579, label %1580, label %1584

1580:                                             ; preds = %1573
  %1581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1582 = call i32 @fileno(ptr noundef %1581) #12
  %1583 = call i32 @isatty(i32 noundef %1582) #12
  %.not574 = icmp eq i32 %1583, 0
  br i1 %.not574, label %1584, label %1585

1584:                                             ; preds = %1580, %1573
  br label %1585

1585:                                             ; preds = %1580, %1584
  %.str.5.sink1185 = phi ptr [ @.str.5, %1584 ], [ @.str.2, %1580 ]
  store i32 %1575, ptr %1574, align 4, !tbaa !5
  %1586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1587 = load i32, ptr @test_count, align 4, !tbaa !5
  %1588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1589 = load i32, ptr %1588, align 4, !tbaa !5
  %1590 = call ptr @s2n_strerror(i32 noundef %1589, ptr noundef nonnull @.str.4) #12
  %1591 = load i32, ptr %1588, align 4, !tbaa !5
  %1592 = call ptr @s2n_strerror_debug(i32 noundef %1591, ptr noundef nonnull @.str.4) #12
  %1593 = load i32, ptr %1574, align 4, !tbaa !5
  %1594 = call ptr @strerror(i32 noundef %1593) #12
  %1595 = load i32, ptr %1574, align 4, !tbaa !5
  %1596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1586, ptr noundef nonnull %.str.5.sink1185, i32 noundef %1587, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 222, ptr noundef %1590, ptr noundef %1592, ptr noundef %1594, i32 noundef %1595) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1597:                                             ; preds = %1569
  %1598 = load i32, ptr @test_count, align 4, !tbaa !5
  %1599 = add nsw i32 %1598, 1
  store i32 %1599, ptr @test_count, align 4, !tbaa !5
  %1600 = getelementptr inbounds i8, ptr %37, i64 28
  %1601 = load i32, ptr %1600, align 4, !tbaa !54
  %1602 = getelementptr inbounds i8, ptr %37, i64 24
  %1603 = load i32, ptr %1602, align 8, !tbaa !55
  %1604 = sub i32 %1601, %1603
  %1605 = icmp eq i32 %1604, 15
  br i1 %1605, label %.preheader687.preheader, label %1609

.preheader687.preheader:                          ; preds = %1597
  %1606 = add nsw i32 %1598, 2
  store i32 %1606, ptr @test_count, align 4, !tbaa !5
  %1607 = call i32 @s2n_test_validate_ancillary(ptr noundef nonnull %37, i8 noundef zeroext 0, i16 noundef zeroext 10) #12
  %1608 = call zeroext i1 @s2n_result_is_ok(i32 %1607)
  br i1 %1608, label %1699, label %1675

1609:                                             ; preds = %1597
  %1610 = tail call ptr @__errno_location() #13
  %1611 = load i32, ptr %1610, align 4, !tbaa !5
  %1612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1613 = call i32 @s2n_print_stacktrace(ptr noundef %1612) #12
  %1614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1615 = trunc nuw i8 %1614 to i1
  br i1 %1615, label %1616, label %1620

1616:                                             ; preds = %1609
  %1617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1618 = call i32 @fileno(ptr noundef %1617) #12
  %1619 = call i32 @isatty(i32 noundef %1618) #12
  %.not575 = icmp eq i32 %1619, 0
  br i1 %.not575, label %1620, label %1621

1620:                                             ; preds = %1616, %1609
  br label %1621

1621:                                             ; preds = %1616, %1620
  %.str.5.sink1196 = phi ptr [ @.str.5, %1620 ], [ @.str.2, %1616 ]
  store i32 %1611, ptr %1610, align 4, !tbaa !5
  %1622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1623 = load i32, ptr @test_count, align 4, !tbaa !5
  %1624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call ptr @s2n_strerror(i32 noundef %1625, ptr noundef nonnull @.str.4) #12
  %1627 = load i32, ptr %1624, align 4, !tbaa !5
  %1628 = call ptr @s2n_strerror_debug(i32 noundef %1627, ptr noundef nonnull @.str.4) #12
  %1629 = load i32, ptr %1610, align 4, !tbaa !5
  %1630 = call ptr @strerror(i32 noundef %1629) #12
  %1631 = load i32, ptr %1610, align 4, !tbaa !5
  %1632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1622, ptr noundef nonnull %.str.5.sink1196, i32 noundef %1623, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %1626, ptr noundef %1628, ptr noundef %1630, i32 noundef %1631) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.preheader687.1:                                  ; preds = %1699
  %1633 = load i32, ptr @test_count, align 4, !tbaa !5
  %1634 = add nsw i32 %1633, 1
  store i32 %1634, ptr @test_count, align 4, !tbaa !5
  %1635 = call i32 @s2n_test_validate_ancillary(ptr noundef nonnull %37, i8 noundef zeroext 1, i16 noundef zeroext 10) #12
  %1636 = call zeroext i1 @s2n_result_is_ok(i32 %1635)
  br i1 %1636, label %1637, label %1675

1637:                                             ; preds = %.preheader687.1
  %1638 = load i32, ptr @test_count, align 4, !tbaa !5
  %1639 = add nsw i32 %1638, 1
  store i32 %1639, ptr @test_count, align 4, !tbaa !5
  %1640 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %37, i32 noundef 3) #12
  %1641 = icmp eq ptr %1640, null
  br i1 %1641, label %1704, label %.preheader687.2

.preheader687.2:                                  ; preds = %1637
  %1642 = load i32, ptr @test_count, align 4, !tbaa !5
  %1643 = add nsw i32 %1642, 1
  store i32 %1643, ptr @test_count, align 4, !tbaa !5
  %1644 = call i32 @s2n_test_validate_ancillary(ptr noundef nonnull %37, i8 noundef zeroext 2, i16 noundef zeroext 10) #12
  %1645 = call zeroext i1 @s2n_result_is_ok(i32 %1644)
  br i1 %1645, label %1646, label %1675

1646:                                             ; preds = %.preheader687.2
  %1647 = load i32, ptr @test_count, align 4, !tbaa !5
  %1648 = add nsw i32 %1647, 1
  store i32 %1648, ptr @test_count, align 4, !tbaa !5
  %1649 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %37, i32 noundef 3) #12
  %1650 = icmp eq ptr %1649, null
  br i1 %1650, label %1704, label %.preheader687.3

.preheader687.3:                                  ; preds = %1646
  %1651 = load i32, ptr @test_count, align 4, !tbaa !5
  %1652 = add nsw i32 %1651, 1
  store i32 %1652, ptr @test_count, align 4, !tbaa !5
  %1653 = call i32 @s2n_test_validate_ancillary(ptr noundef nonnull %37, i8 noundef zeroext 3, i16 noundef zeroext 10) #12
  %1654 = call zeroext i1 @s2n_result_is_ok(i32 %1653)
  br i1 %1654, label %1655, label %1675

1655:                                             ; preds = %.preheader687.3
  %1656 = load i32, ptr @test_count, align 4, !tbaa !5
  %1657 = add nsw i32 %1656, 1
  store i32 %1657, ptr @test_count, align 4, !tbaa !5
  %1658 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %37, i32 noundef 3) #12
  %1659 = icmp eq ptr %1658, null
  br i1 %1659, label %1704, label %.preheader687.4

.preheader687.4:                                  ; preds = %1655
  %1660 = load i32, ptr @test_count, align 4, !tbaa !5
  %1661 = add nsw i32 %1660, 1
  store i32 %1661, ptr @test_count, align 4, !tbaa !5
  %1662 = call i32 @s2n_test_validate_ancillary(ptr noundef nonnull %37, i8 noundef zeroext 4, i16 noundef zeroext 10) #12
  %1663 = call zeroext i1 @s2n_result_is_ok(i32 %1662)
  br i1 %1663, label %1664, label %1675

1664:                                             ; preds = %.preheader687.4
  %1665 = load i32, ptr @test_count, align 4, !tbaa !5
  %1666 = add nsw i32 %1665, 1
  store i32 %1666, ptr @test_count, align 4, !tbaa !5
  %1667 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %37, i32 noundef 3) #12
  %1668 = icmp eq ptr %1667, null
  br i1 %1668, label %1704, label %1669

1669:                                             ; preds = %1664
  %1670 = load i32, ptr @test_count, align 4, !tbaa !5
  %1671 = add nsw i32 %1670, 1
  store i32 %1671, ptr @test_count, align 4, !tbaa !5
  %1672 = getelementptr inbounds i8, ptr %37, i64 80
  %1673 = load i64, ptr %1672, align 8, !tbaa !50
  %1674 = icmp eq i64 %1673, 5
  br i1 %1674, label %1752, label %1728

1675:                                             ; preds = %.preheader687.4, %.preheader687.3, %.preheader687.2, %.preheader687.1, %.preheader687.preheader
  %1676 = tail call ptr @__errno_location() #13
  %1677 = load i32, ptr %1676, align 4, !tbaa !5
  %1678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1679 = call i32 @s2n_print_stacktrace(ptr noundef %1678) #12
  %1680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1681 = trunc nuw i8 %1680 to i1
  br i1 %1681, label %1682, label %1686

1682:                                             ; preds = %1675
  %1683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1684 = call i32 @fileno(ptr noundef %1683) #12
  %1685 = call i32 @isatty(i32 noundef %1684) #12
  %.not674 = icmp eq i32 %1685, 0
  br i1 %.not674, label %1686, label %1687

1686:                                             ; preds = %1682, %1675
  br label %1687

1687:                                             ; preds = %1682, %1686
  %.str.5.sink1207 = phi ptr [ @.str.5, %1686 ], [ @.str.2, %1682 ]
  store i32 %1677, ptr %1676, align 4, !tbaa !5
  %1688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1689 = load i32, ptr @test_count, align 4, !tbaa !5
  %1690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1691 = load i32, ptr %1690, align 4, !tbaa !5
  %1692 = call ptr @s2n_strerror(i32 noundef %1691, ptr noundef nonnull @.str.4) #12
  %1693 = load i32, ptr %1690, align 4, !tbaa !5
  %1694 = call ptr @s2n_strerror_debug(i32 noundef %1693, ptr noundef nonnull @.str.4) #12
  %1695 = load i32, ptr %1676, align 4, !tbaa !5
  %1696 = call ptr @strerror(i32 noundef %1695) #12
  %1697 = load i32, ptr %1676, align 4, !tbaa !5
  %1698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1688, ptr noundef nonnull %.str.5.sink1207, i32 noundef %1689, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %1692, ptr noundef %1694, ptr noundef %1696, i32 noundef %1697) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1699:                                             ; preds = %.preheader687.preheader
  %1700 = load i32, ptr @test_count, align 4, !tbaa !5
  %1701 = add nsw i32 %1700, 1
  store i32 %1701, ptr @test_count, align 4, !tbaa !5
  %1702 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %37, i32 noundef 3) #12
  %1703 = icmp eq ptr %1702, null
  br i1 %1703, label %1704, label %.preheader687.1

1704:                                             ; preds = %1664, %1655, %1646, %1637, %1699
  %1705 = tail call ptr @__errno_location() #13
  %1706 = load i32, ptr %1705, align 4, !tbaa !5
  %1707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1708 = call i32 @s2n_print_stacktrace(ptr noundef %1707) #12
  %1709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1710 = trunc nuw i8 %1709 to i1
  br i1 %1710, label %1711, label %1715

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

1715:                                             ; preds = %1711, %1704
  br label %1716

1716:                                             ; preds = %1711, %1715
  %.str.5.sink1218 = phi ptr [ @.str.5, %1715 ], [ @.str.2, %1711 ]
  store i32 %1706, ptr %1705, 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 nonnull @.str.4) #12
  %1722 = load i32, ptr %1719, align 4, !tbaa !5
  %1723 = call ptr @s2n_strerror_debug(i32 noundef %1722, ptr noundef nonnull @.str.4) #12
  %1724 = load i32, ptr %1705, align 4, !tbaa !5
  %1725 = call ptr @strerror(i32 noundef %1724) #12
  %1726 = load i32, ptr %1705, align 4, !tbaa !5
  %1727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1717, ptr noundef nonnull %.str.5.sink1218, i32 noundef %1718, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %1721, ptr noundef %1723, ptr noundef %1725, i32 noundef %1726) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1728:                                             ; preds = %1669
  %1729 = tail call ptr @__errno_location() #13
  %1730 = load i32, ptr %1729, align 4, !tbaa !5
  %1731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1732 = call i32 @s2n_print_stacktrace(ptr noundef %1731) #12
  %1733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1734 = trunc nuw i8 %1733 to i1
  br i1 %1734, label %1735, label %1739

1735:                                             ; preds = %1728
  %1736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1737 = call i32 @fileno(ptr noundef %1736) #12
  %1738 = call i32 @isatty(i32 noundef %1737) #12
  %.not576 = icmp eq i32 %1738, 0
  br i1 %.not576, label %1739, label %1740

1739:                                             ; preds = %1735, %1728
  br label %1740

1740:                                             ; preds = %1735, %1739
  %.str.5.sink1229 = phi ptr [ @.str.5, %1739 ], [ @.str.2, %1735 ]
  store i32 %1730, ptr %1729, align 4, !tbaa !5
  %1741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1742 = load i32, ptr @test_count, align 4, !tbaa !5
  %1743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1744 = load i32, ptr %1743, align 4, !tbaa !5
  %1745 = call ptr @s2n_strerror(i32 noundef %1744, ptr noundef nonnull @.str.4) #12
  %1746 = load i32, ptr %1743, align 4, !tbaa !5
  %1747 = call ptr @s2n_strerror_debug(i32 noundef %1746, ptr noundef nonnull @.str.4) #12
  %1748 = load i32, ptr %1729, align 4, !tbaa !5
  %1749 = call ptr @strerror(i32 noundef %1748) #12
  %1750 = load i32, ptr %1729, align 4, !tbaa !5
  %1751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1741, ptr noundef nonnull %.str.5.sink1229, i32 noundef %1742, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 232, ptr noundef %1745, ptr noundef %1747, ptr noundef %1749, i32 noundef %1750) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1752:                                             ; preds = %1669
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %40) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %39) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #12
  %1753 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef nonnull %37) #12
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %37) #12
  %1754 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %36) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #12
  %1755 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %35) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #12
  %1756 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1756, ptr %41, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #12
  %1757 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1757, ptr %42, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %43) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(192) %43, i8 0, i64 192, i1 false)
  %1758 = load i32, ptr @test_count, align 4, !tbaa !5
  %1759 = add nsw i32 %1758, 1
  store i32 %1759, ptr @test_count, align 4, !tbaa !5
  %1760 = load ptr, ptr %41, align 8, !tbaa !9
  %1761 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %1760, ptr noundef %1757, ptr noundef nonnull %43) #12
  %1762 = call zeroext i1 @s2n_result_is_ok(i32 %1761)
  br i1 %1762, label %1787, label %1763

1763:                                             ; preds = %1752
  %1764 = tail call ptr @__errno_location() #13
  %1765 = load i32, ptr %1764, align 4, !tbaa !5
  %1766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1767 = call i32 @s2n_print_stacktrace(ptr noundef %1766) #12
  %1768 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1769 = trunc nuw i8 %1768 to i1
  br i1 %1769, label %1770, label %1774

1770:                                             ; preds = %1763
  %1771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1772 = call i32 @fileno(ptr noundef %1771) #12
  %1773 = call i32 @isatty(i32 noundef %1772) #12
  %.not577 = icmp eq i32 %1773, 0
  br i1 %.not577, label %1774, label %1775

1774:                                             ; preds = %1770, %1763
  br label %1775

1775:                                             ; preds = %1770, %1774
  %.str.5.sink1240 = phi ptr [ @.str.5, %1774 ], [ @.str.2, %1770 ]
  store i32 %1765, ptr %1764, align 4, !tbaa !5
  %1776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1777 = load i32, ptr @test_count, align 4, !tbaa !5
  %1778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1779 = load i32, ptr %1778, align 4, !tbaa !5
  %1780 = call ptr @s2n_strerror(i32 noundef %1779, ptr noundef nonnull @.str.4) #12
  %1781 = load i32, ptr %1778, align 4, !tbaa !5
  %1782 = call ptr @s2n_strerror_debug(i32 noundef %1781, ptr noundef nonnull @.str.4) #12
  %1783 = load i32, ptr %1764, align 4, !tbaa !5
  %1784 = call ptr @strerror(i32 noundef %1783) #12
  %1785 = load i32, ptr %1764, align 4, !tbaa !5
  %1786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1776, ptr noundef nonnull %.str.5.sink1240, i32 noundef %1777, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %1780, ptr noundef %1782, ptr noundef %1784, i32 noundef %1785) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1787:                                             ; preds = %1752
  %1788 = getelementptr inbounds i8, ptr %43, i64 76
  %1789 = load i8, ptr %1788, align 4
  %1790 = and i8 %1789, -3
  store i8 %1790, ptr %1788, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %44) #12
  store ptr %3, ptr %44, align 8, !tbaa !15
  %1791 = getelementptr inbounds i8, ptr %44, i64 8
  store i64 1, ptr %1791, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %45) #12
  store ptr null, ptr %45, align 8, !tbaa !19
  %1792 = getelementptr inbounds i8, ptr %45, i64 8
  store i32 0, ptr %1792, align 8, !tbaa !21
  %1793 = getelementptr inbounds i8, ptr %45, i64 16
  store ptr %44, ptr %1793, align 8, !tbaa !22
  %1794 = getelementptr inbounds i8, ptr %45, i64 24
  store i64 1, ptr %1794, align 8, !tbaa !23
  %1795 = getelementptr inbounds i8, ptr %45, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %1795, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %46) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %46, i8 0, i64 100, i1 false)
  %1796 = load i32, ptr @test_count, align 4, !tbaa !5
  %1797 = add nsw i32 %1796, 1
  store i32 %1797, ptr @test_count, align 4, !tbaa !5
  %1798 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %45, ptr noundef nonnull %46, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %1799 = call zeroext i1 @s2n_result_is_ok(i32 %1798)
  br i1 %1799, label %1901, label %._crit_edge

._crit_edge:                                      ; preds = %1787
  %.pre722 = tail call ptr @__errno_location() #13
  br label %1878

1800:                                             ; preds = %1932
  %1801 = add nsw i32 %1933, 2
  store i32 %1801, ptr @test_count, align 4, !tbaa !5
  %1802 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %45, ptr noundef nonnull %46, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %1803 = call zeroext i1 @s2n_result_is_ok(i32 %1802)
  br i1 %1803, label %1804, label %1878

1804:                                             ; preds = %1800
  %1805 = load i32, ptr @test_count, align 4, !tbaa !5
  %1806 = add nsw i32 %1805, 1
  store i32 %1806, ptr @test_count, align 4, !tbaa !5
  %1807 = load ptr, ptr %41, align 8, !tbaa !9
  %1808 = getelementptr inbounds i8, ptr %1807, i64 64
  %1809 = load ptr, ptr %1808, align 8, !tbaa !24
  %1810 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1809, ptr noundef nonnull %45) #12
  %1811 = icmp eq i64 %1810, -1
  br i1 %1811, label %1812, label %1909

1812:                                             ; preds = %1804
  %1813 = load i32, ptr @test_count, align 4, !tbaa !5
  %1814 = add nsw i32 %1813, 1
  store i32 %1814, ptr @test_count, align 4, !tbaa !5
  %1815 = load i32, ptr %1935, align 4, !tbaa !5
  %1816 = icmp eq i32 %1815, 11
  br i1 %1816, label %1817, label %1938

1817:                                             ; preds = %1812
  %1818 = add nsw i32 %1813, 2
  store i32 %1818, ptr @test_count, align 4, !tbaa !5
  %1819 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %45, ptr noundef nonnull %46, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %1820 = call zeroext i1 @s2n_result_is_ok(i32 %1819)
  br i1 %1820, label %1821, label %1878

1821:                                             ; preds = %1817
  %1822 = load i32, ptr @test_count, align 4, !tbaa !5
  %1823 = add nsw i32 %1822, 1
  store i32 %1823, ptr @test_count, align 4, !tbaa !5
  %1824 = load ptr, ptr %41, align 8, !tbaa !9
  %1825 = getelementptr inbounds i8, ptr %1824, i64 64
  %1826 = load ptr, ptr %1825, align 8, !tbaa !24
  %1827 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1826, ptr noundef nonnull %45) #12
  %1828 = icmp eq i64 %1827, -1
  br i1 %1828, label %1829, label %1909

1829:                                             ; preds = %1821
  %1830 = load i32, ptr @test_count, align 4, !tbaa !5
  %1831 = add nsw i32 %1830, 1
  store i32 %1831, ptr @test_count, align 4, !tbaa !5
  %1832 = load i32, ptr %1935, align 4, !tbaa !5
  %1833 = icmp eq i32 %1832, 11
  br i1 %1833, label %1834, label %1938

1834:                                             ; preds = %1829
  %1835 = add nsw i32 %1830, 2
  store i32 %1835, ptr @test_count, align 4, !tbaa !5
  %1836 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %45, ptr noundef nonnull %46, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %1837 = call zeroext i1 @s2n_result_is_ok(i32 %1836)
  br i1 %1837, label %1838, label %1878

1838:                                             ; preds = %1834
  %1839 = load i32, ptr @test_count, align 4, !tbaa !5
  %1840 = add nsw i32 %1839, 1
  store i32 %1840, ptr @test_count, align 4, !tbaa !5
  %1841 = load ptr, ptr %41, align 8, !tbaa !9
  %1842 = getelementptr inbounds i8, ptr %1841, i64 64
  %1843 = load ptr, ptr %1842, align 8, !tbaa !24
  %1844 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1843, ptr noundef nonnull %45) #12
  %1845 = icmp eq i64 %1844, -1
  br i1 %1845, label %1846, label %1909

1846:                                             ; preds = %1838
  %1847 = load i32, ptr @test_count, align 4, !tbaa !5
  %1848 = add nsw i32 %1847, 1
  store i32 %1848, ptr @test_count, align 4, !tbaa !5
  %1849 = load i32, ptr %1935, align 4, !tbaa !5
  %1850 = icmp eq i32 %1849, 11
  br i1 %1850, label %1851, label %1938

1851:                                             ; preds = %1846
  %1852 = add nsw i32 %1847, 2
  store i32 %1852, ptr @test_count, align 4, !tbaa !5
  %1853 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %45, ptr noundef nonnull %46, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %1854 = call zeroext i1 @s2n_result_is_ok(i32 %1853)
  br i1 %1854, label %1855, label %1878

1855:                                             ; preds = %1851
  %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 = load ptr, ptr %41, align 8, !tbaa !9
  %1859 = getelementptr inbounds i8, ptr %1858, i64 64
  %1860 = load ptr, ptr %1859, align 8, !tbaa !24
  %1861 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1860, ptr noundef nonnull %45) #12
  %1862 = icmp eq i64 %1861, -1
  br i1 %1862, label %1863, label %1909

1863:                                             ; preds = %1855
  %1864 = load i32, ptr @test_count, align 4, !tbaa !5
  %1865 = add nsw i32 %1864, 1
  store i32 %1865, ptr @test_count, align 4, !tbaa !5
  %1866 = load i32, ptr %1935, align 4, !tbaa !5
  %1867 = icmp eq i32 %1866, 11
  br i1 %1867, label %1868, label %1938

1868:                                             ; preds = %1863
  %1869 = load i8, ptr %1788, align 4
  %1870 = or i8 %1869, 2
  store i8 %1870, ptr %1788, align 4
  %1871 = load ptr, ptr %41, align 8, !tbaa !9
  %1872 = getelementptr inbounds i8, ptr %1871, i64 64
  %1873 = load ptr, ptr %1872, align 8, !tbaa !24
  %1874 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1873, ptr noundef nonnull %45) #12
  %1875 = load i32, ptr @test_count, align 4, !tbaa !5
  %1876 = add nsw i32 %1875, 1
  store i32 %1876, ptr @test_count, align 4, !tbaa !5
  %1877 = icmp eq i64 %1874, 1
  br i1 %1877, label %1983, label %1960

1878:                                             ; preds = %._crit_edge, %1851, %1834, %1817, %1800
  %.pre-phi723 = phi ptr [ %.pre722, %._crit_edge ], [ %1935, %1851 ], [ %1935, %1834 ], [ %1935, %1817 ], [ %1935, %1800 ]
  %1879 = load i32, ptr %.pre-phi723, align 4, !tbaa !5
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = call i32 @s2n_print_stacktrace(ptr noundef %1880) #12
  %1882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1883 = trunc nuw i8 %1882 to i1
  br i1 %1883, label %1884, label %1888

1884:                                             ; preds = %1878
  %1885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1886 = call i32 @fileno(ptr noundef %1885) #12
  %1887 = call i32 @isatty(i32 noundef %1886) #12
  %.not671 = icmp eq i32 %1887, 0
  br i1 %.not671, label %1888, label %1889

1888:                                             ; preds = %1884, %1878
  br label %1889

1889:                                             ; preds = %1884, %1888
  %.str.5.sink1251 = phi ptr [ @.str.5, %1888 ], [ @.str.2, %1884 ]
  store i32 %1879, ptr %.pre-phi723, align 4, !tbaa !5
  %1890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1891 = load i32, ptr @test_count, align 4, !tbaa !5
  %1892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1893 = load i32, ptr %1892, align 4, !tbaa !5
  %1894 = call ptr @s2n_strerror(i32 noundef %1893, ptr noundef nonnull @.str.4) #12
  %1895 = load i32, ptr %1892, align 4, !tbaa !5
  %1896 = call ptr @s2n_strerror_debug(i32 noundef %1895, ptr noundef nonnull @.str.4) #12
  %1897 = load i32, ptr %.pre-phi723, align 4, !tbaa !5
  %1898 = call ptr @strerror(i32 noundef %1897) #12
  %1899 = load i32, ptr %.pre-phi723, align 4, !tbaa !5
  %1900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1890, ptr noundef nonnull %.str.5.sink1251, i32 noundef %1891, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %1894, ptr noundef %1896, ptr noundef %1898, i32 noundef %1899) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1901:                                             ; preds = %1787
  %1902 = load i32, ptr @test_count, align 4, !tbaa !5
  %1903 = add nsw i32 %1902, 1
  store i32 %1903, ptr @test_count, align 4, !tbaa !5
  %1904 = load ptr, ptr %41, align 8, !tbaa !9
  %1905 = getelementptr inbounds i8, ptr %1904, i64 64
  %1906 = load ptr, ptr %1905, align 8, !tbaa !24
  %1907 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %1906, ptr noundef nonnull %45) #12
  %1908 = icmp eq i64 %1907, -1
  br i1 %1908, label %1932, label %._crit_edge721

._crit_edge721:                                   ; preds = %1901
  %.pre = tail call ptr @__errno_location() #13
  br label %1909

1909:                                             ; preds = %._crit_edge721, %1855, %1838, %1821, %1804
  %.pre-phi = phi ptr [ %.pre, %._crit_edge721 ], [ %1935, %1855 ], [ %1935, %1838 ], [ %1935, %1821 ], [ %1935, %1804 ]
  %1910 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %1911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1912 = call i32 @s2n_print_stacktrace(ptr noundef %1911) #12
  %1913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1914 = trunc nuw i8 %1913 to i1
  br i1 %1914, label %1915, label %1919

1915:                                             ; preds = %1909
  %1916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1917 = call i32 @fileno(ptr noundef %1916) #12
  %1918 = call i32 @isatty(i32 noundef %1917) #12
  %.not672 = icmp eq i32 %1918, 0
  br i1 %.not672, label %1919, label %1920

1919:                                             ; preds = %1915, %1909
  br label %1920

1920:                                             ; preds = %1915, %1919
  %.str.5.sink1262 = phi ptr [ @.str.5, %1919 ], [ @.str.2, %1915 ]
  store i32 %1910, ptr %.pre-phi, align 4, !tbaa !5
  %1921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1922 = load i32, ptr @test_count, align 4, !tbaa !5
  %1923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1924 = load i32, ptr %1923, align 4, !tbaa !5
  %1925 = call ptr @s2n_strerror(i32 noundef %1924, ptr noundef nonnull @.str.4) #12
  %1926 = load i32, ptr %1923, align 4, !tbaa !5
  %1927 = call ptr @s2n_strerror_debug(i32 noundef %1926, ptr noundef nonnull @.str.4) #12
  %1928 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %1929 = call ptr @strerror(i32 noundef %1928) #12
  %1930 = load i32, ptr %.pre-phi, align 4, !tbaa !5
  %1931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1921, ptr noundef nonnull %.str.5.sink1262, i32 noundef %1922, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 257, ptr noundef %1925, ptr noundef %1927, ptr noundef %1929, i32 noundef %1930) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1932:                                             ; preds = %1901
  %1933 = load i32, ptr @test_count, align 4, !tbaa !5
  %1934 = add nsw i32 %1933, 1
  store i32 %1934, ptr @test_count, align 4, !tbaa !5
  %1935 = tail call ptr @__errno_location() #13
  %1936 = load i32, ptr %1935, align 4, !tbaa !5
  %1937 = icmp eq i32 %1936, 11
  br i1 %1937, label %1800, label %1938

1938:                                             ; preds = %1863, %1846, %1829, %1812, %1932
  %.lcssa713 = phi i32 [ %1936, %1932 ], [ %1815, %1812 ], [ %1832, %1829 ], [ %1849, %1846 ], [ %1866, %1863 ]
  %1939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1940 = call i32 @s2n_print_stacktrace(ptr noundef %1939) #12
  %1941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1942 = trunc nuw i8 %1941 to i1
  br i1 %1942, label %1943, label %1947

1943:                                             ; preds = %1938
  %1944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1945 = call i32 @fileno(ptr noundef %1944) #12
  %1946 = call i32 @isatty(i32 noundef %1945) #12
  %.not673 = icmp eq i32 %1946, 0
  br i1 %.not673, label %1947, label %1948

1947:                                             ; preds = %1943, %1938
  br label %1948

1948:                                             ; preds = %1943, %1947
  %.str.5.sink1273 = phi ptr [ @.str.5, %1947 ], [ @.str.2, %1943 ]
  store i32 %.lcssa713, ptr %1935, align 4, !tbaa !5
  %1949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1950 = load i32, ptr @test_count, align 4, !tbaa !5
  %1951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1952 = load i32, ptr %1951, align 4, !tbaa !5
  %1953 = call ptr @s2n_strerror(i32 noundef %1952, ptr noundef nonnull @.str.4) #12
  %1954 = load i32, ptr %1951, align 4, !tbaa !5
  %1955 = call ptr @s2n_strerror_debug(i32 noundef %1954, ptr noundef nonnull @.str.4) #12
  %1956 = load i32, ptr %1935, align 4, !tbaa !5
  %1957 = call ptr @strerror(i32 noundef %1956) #12
  %1958 = load i32, ptr %1935, align 4, !tbaa !5
  %1959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1949, ptr noundef nonnull %.str.5.sink1273, i32 noundef %1950, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %1953, ptr noundef %1955, ptr noundef %1957, i32 noundef %1958) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1960:                                             ; preds = %1868
  %1961 = load i32, ptr %1935, align 4, !tbaa !5
  %1962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1963 = call i32 @s2n_print_stacktrace(ptr noundef %1962) #12
  %1964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1965 = trunc nuw i8 %1964 to i1
  br i1 %1965, label %1966, label %1970

1966:                                             ; preds = %1960
  %1967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1968 = call i32 @fileno(ptr noundef %1967) #12
  %1969 = call i32 @isatty(i32 noundef %1968) #12
  %.not578 = icmp eq i32 %1969, 0
  br i1 %.not578, label %1970, label %1971

1970:                                             ; preds = %1966, %1960
  br label %1971

1971:                                             ; preds = %1966, %1970
  %.str.5.sink1284 = phi ptr [ @.str.5, %1970 ], [ @.str.2, %1966 ]
  store i32 %1961, ptr %1935, align 4, !tbaa !5
  %1972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1973 = load i32, ptr @test_count, align 4, !tbaa !5
  %1974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1975 = load i32, ptr %1974, align 4, !tbaa !5
  %1976 = call ptr @s2n_strerror(i32 noundef %1975, ptr noundef nonnull @.str.4) #12
  %1977 = load i32, ptr %1974, align 4, !tbaa !5
  %1978 = call ptr @s2n_strerror_debug(i32 noundef %1977, ptr noundef nonnull @.str.4) #12
  %1979 = load i32, ptr %1935, align 4, !tbaa !5
  %1980 = call ptr @strerror(i32 noundef %1979) #12
  %1981 = load i32, ptr %1935, align 4, !tbaa !5
  %1982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1972, ptr noundef nonnull %.str.5.sink1284, i32 noundef %1973, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 266, ptr noundef %1976, ptr noundef %1978, ptr noundef %1980, i32 noundef %1981) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1983:                                             ; preds = %1868
  %1984 = add nsw i32 %1875, 2
  store i32 %1984, ptr @test_count, align 4, !tbaa !5
  %1985 = call i32 @s2n_test_validate_data(ptr noundef nonnull %43, ptr noundef nonnull %3, i16 noundef zeroext 1) #12
  %1986 = call zeroext i1 @s2n_result_is_ok(i32 %1985)
  br i1 %1986, label %2010, label %1987

1987:                                             ; preds = %1983
  %1988 = load i32, ptr %1935, align 4, !tbaa !5
  %1989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1990 = call i32 @s2n_print_stacktrace(ptr noundef %1989) #12
  %1991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1992 = trunc nuw i8 %1991 to i1
  br i1 %1992, label %1993, label %1997

1993:                                             ; preds = %1987
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1995 = call i32 @fileno(ptr noundef %1994) #12
  %1996 = call i32 @isatty(i32 noundef %1995) #12
  %.not579 = icmp eq i32 %1996, 0
  br i1 %.not579, label %1997, label %1998

1997:                                             ; preds = %1993, %1987
  br label %1998

1998:                                             ; preds = %1993, %1997
  %.str.5.sink1295 = phi ptr [ @.str.5, %1997 ], [ @.str.2, %1993 ]
  store i32 %1988, ptr %1935, align 4, !tbaa !5
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = load i32, ptr @test_count, align 4, !tbaa !5
  %2001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2002 = load i32, ptr %2001, align 4, !tbaa !5
  %2003 = call ptr @s2n_strerror(i32 noundef %2002, ptr noundef nonnull @.str.4) #12
  %2004 = load i32, ptr %2001, align 4, !tbaa !5
  %2005 = call ptr @s2n_strerror_debug(i32 noundef %2004, ptr noundef nonnull @.str.4) #12
  %2006 = load i32, ptr %1935, align 4, !tbaa !5
  %2007 = call ptr @strerror(i32 noundef %2006) #12
  %2008 = load i32, ptr %1935, align 4, !tbaa !5
  %2009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1999, ptr noundef nonnull %.str.5.sink1295, i32 noundef %2000, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %2003, ptr noundef %2005, ptr noundef %2007, i32 noundef %2008) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2010:                                             ; preds = %1983
  %2011 = load i32, ptr @test_count, align 4, !tbaa !5
  %2012 = add nsw i32 %2011, 1
  store i32 %2012, ptr @test_count, align 4, !tbaa !5
  %2013 = call i32 @s2n_test_validate_ancillary(ptr noundef nonnull %43, i8 noundef zeroext 43, i16 noundef zeroext 1) #12
  %2014 = call zeroext i1 @s2n_result_is_ok(i32 %2013)
  br i1 %2014, label %2038, label %2015

2015:                                             ; preds = %2010
  %2016 = load i32, ptr %1935, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = call i32 @s2n_print_stacktrace(ptr noundef %2017) #12
  %2019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2020 = trunc nuw i8 %2019 to i1
  br i1 %2020, label %2021, label %2025

2021:                                             ; preds = %2015
  %2022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2023 = call i32 @fileno(ptr noundef %2022) #12
  %2024 = call i32 @isatty(i32 noundef %2023) #12
  %.not580 = icmp eq i32 %2024, 0
  br i1 %.not580, label %2025, label %2026

2025:                                             ; preds = %2021, %2015
  br label %2026

2026:                                             ; preds = %2021, %2025
  %.str.5.sink1306 = phi ptr [ @.str.5, %2025 ], [ @.str.2, %2021 ]
  store i32 %2016, ptr %1935, align 4, !tbaa !5
  %2027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2028 = load i32, ptr @test_count, align 4, !tbaa !5
  %2029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2030 = load i32, ptr %2029, align 4, !tbaa !5
  %2031 = call ptr @s2n_strerror(i32 noundef %2030, ptr noundef nonnull @.str.4) #12
  %2032 = load i32, ptr %2029, align 4, !tbaa !5
  %2033 = call ptr @s2n_strerror_debug(i32 noundef %2032, ptr noundef nonnull @.str.4) #12
  %2034 = load i32, ptr %1935, align 4, !tbaa !5
  %2035 = call ptr @strerror(i32 noundef %2034) #12
  %2036 = load i32, ptr %1935, align 4, !tbaa !5
  %2037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2027, ptr noundef nonnull %.str.5.sink1306, i32 noundef %2028, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %2031, ptr noundef %2033, ptr noundef %2035, i32 noundef %2036) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2038:                                             ; preds = %2010
  %2039 = load i32, ptr @test_count, align 4, !tbaa !5
  %2040 = add nsw i32 %2039, 1
  store i32 %2040, ptr @test_count, align 4, !tbaa !5
  %2041 = getelementptr inbounds i8, ptr %43, i64 28
  %2042 = load i32, ptr %2041, align 4, !tbaa !54
  %2043 = getelementptr inbounds i8, ptr %43, i64 24
  %2044 = load i32, ptr %2043, align 8, !tbaa !55
  %2045 = sub i32 %2042, %2044
  %2046 = icmp eq i32 %2045, 3
  br i1 %2046, label %2070, label %2047

2047:                                             ; preds = %2038
  %2048 = load i32, ptr %1935, align 4, !tbaa !5
  %2049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2050 = call i32 @s2n_print_stacktrace(ptr noundef %2049) #12
  %2051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2052 = trunc nuw i8 %2051 to i1
  br i1 %2052, label %2053, label %2057

2053:                                             ; preds = %2047
  %2054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2055 = call i32 @fileno(ptr noundef %2054) #12
  %2056 = call i32 @isatty(i32 noundef %2055) #12
  %.not581 = icmp eq i32 %2056, 0
  br i1 %.not581, label %2057, label %2058

2057:                                             ; preds = %2053, %2047
  br label %2058

2058:                                             ; preds = %2053, %2057
  %.str.5.sink1317 = phi ptr [ @.str.5, %2057 ], [ @.str.2, %2053 ]
  store i32 %2048, ptr %1935, align 4, !tbaa !5
  %2059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2060 = load i32, ptr @test_count, align 4, !tbaa !5
  %2061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2062 = load i32, ptr %2061, align 4, !tbaa !5
  %2063 = call ptr @s2n_strerror(i32 noundef %2062, ptr noundef nonnull @.str.4) #12
  %2064 = load i32, ptr %2061, align 4, !tbaa !5
  %2065 = call ptr @s2n_strerror_debug(i32 noundef %2064, ptr noundef nonnull @.str.4) #12
  %2066 = load i32, ptr %1935, align 4, !tbaa !5
  %2067 = call ptr @strerror(i32 noundef %2066) #12
  %2068 = load i32, ptr %1935, align 4, !tbaa !5
  %2069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2059, ptr noundef nonnull %.str.5.sink1317, i32 noundef %2060, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %2063, ptr noundef %2065, ptr noundef %2067, i32 noundef %2068) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2070:                                             ; preds = %2038
  %2071 = add nsw i32 %2039, 2
  store i32 %2071, ptr @test_count, align 4, !tbaa !5
  %2072 = getelementptr inbounds i8, ptr %43, i64 80
  %2073 = load i64, ptr %2072, align 8, !tbaa !50
  %2074 = icmp eq i64 %2073, 6
  br i1 %2074, label %2098, label %2075

2075:                                             ; preds = %2070
  %2076 = load i32, ptr %1935, align 4, !tbaa !5
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = call i32 @s2n_print_stacktrace(ptr noundef %2077) #12
  %2079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2080 = trunc nuw i8 %2079 to i1
  br i1 %2080, label %2081, label %2085

2081:                                             ; preds = %2075
  %2082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2083 = call i32 @fileno(ptr noundef %2082) #12
  %2084 = call i32 @isatty(i32 noundef %2083) #12
  %.not582 = icmp eq i32 %2084, 0
  br i1 %.not582, label %2085, label %2086

2085:                                             ; preds = %2081, %2075
  br label %2086

2086:                                             ; preds = %2081, %2085
  %.str.5.sink1328 = phi ptr [ @.str.5, %2085 ], [ @.str.2, %2081 ]
  store i32 %2076, ptr %1935, align 4, !tbaa !5
  %2087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2088 = load i32, ptr @test_count, align 4, !tbaa !5
  %2089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror(i32 noundef %2090, ptr noundef nonnull @.str.4) #12
  %2092 = load i32, ptr %2089, align 4, !tbaa !5
  %2093 = call ptr @s2n_strerror_debug(i32 noundef %2092, ptr noundef nonnull @.str.4) #12
  %2094 = load i32, ptr %1935, align 4, !tbaa !5
  %2095 = call ptr @strerror(i32 noundef %2094) #12
  %2096 = load i32, ptr %1935, align 4, !tbaa !5
  %2097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2087, ptr noundef nonnull %.str.5.sink1328, i32 noundef %2088, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 274, ptr noundef %2091, ptr noundef %2093, ptr noundef %2095, i32 noundef %2096) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2098:                                             ; preds = %2070
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %46) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %45) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %44) #12
  %2099 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef nonnull %43) #12
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %43) #12
  %2100 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %42) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #12
  %2101 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %41) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #12
  %2102 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2102, ptr %47, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #12
  %2103 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %2103, ptr %48, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %49) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(192) %49, i8 0, i64 192, i1 false)
  %2104 = load i32, ptr @test_count, align 4, !tbaa !5
  %2105 = add nsw i32 %2104, 1
  store i32 %2105, ptr @test_count, align 4, !tbaa !5
  %2106 = load ptr, ptr %47, align 8, !tbaa !9
  %2107 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %2106, ptr noundef %2103, ptr noundef nonnull %49) #12
  %2108 = call zeroext i1 @s2n_result_is_ok(i32 %2107)
  br i1 %2108, label %2132, label %2109

2109:                                             ; preds = %2098
  %2110 = load i32, ptr %1935, align 4, !tbaa !5
  %2111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2112 = call i32 @s2n_print_stacktrace(ptr noundef %2111) #12
  %2113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2114 = trunc nuw i8 %2113 to i1
  br i1 %2114, label %2115, label %2119

2115:                                             ; preds = %2109
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = call i32 @fileno(ptr noundef %2116) #12
  %2118 = call i32 @isatty(i32 noundef %2117) #12
  %.not583 = icmp eq i32 %2118, 0
  br i1 %.not583, label %2119, label %2120

2119:                                             ; preds = %2115, %2109
  br label %2120

2120:                                             ; preds = %2115, %2119
  %.str.5.sink1339 = phi ptr [ @.str.5, %2119 ], [ @.str.2, %2115 ]
  store i32 %2110, ptr %1935, align 4, !tbaa !5
  %2121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2122 = load i32, ptr @test_count, align 4, !tbaa !5
  %2123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2124 = load i32, ptr %2123, align 4, !tbaa !5
  %2125 = call ptr @s2n_strerror(i32 noundef %2124, ptr noundef nonnull @.str.4) #12
  %2126 = load i32, ptr %2123, align 4, !tbaa !5
  %2127 = call ptr @s2n_strerror_debug(i32 noundef %2126, ptr noundef nonnull @.str.4) #12
  %2128 = load i32, ptr %1935, align 4, !tbaa !5
  %2129 = call ptr @strerror(i32 noundef %2128) #12
  %2130 = load i32, ptr %1935, align 4, !tbaa !5
  %2131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2121, ptr noundef nonnull %.str.5.sink1339, i32 noundef %2122, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %2125, ptr noundef %2127, ptr noundef %2129, i32 noundef %2130) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2132:                                             ; preds = %2098
  %2133 = getelementptr inbounds i8, ptr %49, i64 40
  %2134 = getelementptr inbounds i8, ptr %49, i64 76
  %2135 = load i8, ptr %2134, align 4
  %2136 = and i8 %2135, -3
  store i8 %2136, ptr %2134, align 4
  %2137 = load i32, ptr @test_count, align 4, !tbaa !5
  %2138 = add nsw i32 %2137, 1
  store i32 %2138, ptr @test_count, align 4, !tbaa !5
  %2139 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %2133, i32 noundef 10) #12
  %2140 = icmp eq i32 %2139, -1
  br i1 %2140, label %2141, label %2164

2141:                                             ; preds = %2132
  %2142 = load i32, ptr %1935, align 4, !tbaa !5
  %2143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2144 = call i32 @s2n_print_stacktrace(ptr noundef %2143) #12
  %2145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2146 = trunc nuw i8 %2145 to i1
  br i1 %2146, label %2147, label %2151

2147:                                             ; preds = %2141
  %2148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2149 = call i32 @fileno(ptr noundef %2148) #12
  %2150 = call i32 @isatty(i32 noundef %2149) #12
  %.not670 = icmp eq i32 %2150, 0
  br i1 %.not670, label %2151, label %2152

2151:                                             ; preds = %2147, %2141
  br label %2152

2152:                                             ; preds = %2147, %2151
  %.str.5.sink1350 = phi ptr [ @.str.5, %2151 ], [ @.str.2, %2147 ]
  store i32 %2142, ptr %1935, align 4, !tbaa !5
  %2153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2154 = load i32, ptr @test_count, align 4, !tbaa !5
  %2155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2156 = load i32, ptr %2155, align 4, !tbaa !5
  %2157 = call ptr @s2n_strerror(i32 noundef %2156, ptr noundef nonnull @.str.4) #12
  %2158 = load i32, ptr %2155, align 4, !tbaa !5
  %2159 = call ptr @s2n_strerror_debug(i32 noundef %2158, ptr noundef nonnull @.str.4) #12
  %2160 = load i32, ptr %1935, align 4, !tbaa !5
  %2161 = call ptr @strerror(i32 noundef %2160) #12
  %2162 = load i32, ptr %1935, align 4, !tbaa !5
  %2163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2153, ptr noundef nonnull %.str.5.sink1350, i32 noundef %2154, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %2157, ptr noundef %2159, ptr noundef %2161, i32 noundef %2162) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2164:                                             ; preds = %2132
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %50) #12
  store ptr %3, ptr %50, align 16, !tbaa !15
  %2165 = getelementptr inbounds i8, ptr %50, i64 8
  store i64 10, ptr %2165, align 8, !tbaa !18
  %2166 = getelementptr inbounds i8, ptr %50, i64 16
  store ptr %895, ptr %2166, align 16, !tbaa !15
  %2167 = getelementptr inbounds i8, ptr %50, i64 24
  store i64 10, ptr %2167, align 8, !tbaa !18
  %2168 = getelementptr inbounds i8, ptr %3, i64 20
  %2169 = getelementptr inbounds i8, ptr %50, i64 32
  store ptr %2168, ptr %2169, align 16, !tbaa !15
  %2170 = getelementptr inbounds i8, ptr %50, i64 40
  store i64 10, ptr %2170, align 8, !tbaa !18
  %2171 = getelementptr inbounds i8, ptr %3, i64 30
  %2172 = getelementptr inbounds i8, ptr %50, i64 48
  store ptr %2171, ptr %2172, align 16, !tbaa !15
  %2173 = getelementptr inbounds i8, ptr %50, i64 56
  store i64 10, ptr %2173, align 8, !tbaa !18
  %2174 = getelementptr inbounds i8, ptr %3, i64 40
  %2175 = getelementptr inbounds i8, ptr %50, i64 64
  store ptr %2174, ptr %2175, align 16, !tbaa !15
  %2176 = getelementptr inbounds i8, ptr %50, i64 72
  store i64 10, ptr %2176, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %51) #12
  store ptr null, ptr %51, align 8, !tbaa !19
  %2177 = getelementptr inbounds i8, ptr %51, i64 8
  store i32 0, ptr %2177, align 8, !tbaa !21
  %2178 = getelementptr inbounds i8, ptr %51, i64 16
  store ptr %50, ptr %2178, align 8, !tbaa !22
  %2179 = getelementptr inbounds i8, ptr %51, i64 24
  store i64 5, ptr %2179, align 8, !tbaa !23
  %2180 = getelementptr inbounds i8, ptr %51, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %2180, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %52) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %52, i8 0, i64 100, i1 false)
  %2181 = load i32, ptr @test_count, align 4, !tbaa !5
  %2182 = add nsw i32 %2181, 1
  store i32 %2182, ptr @test_count, align 4, !tbaa !5
  %2183 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %51, ptr noundef nonnull %52, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %2184 = call zeroext i1 @s2n_result_is_ok(i32 %2183)
  br i1 %2184, label %2208, label %2185

2185:                                             ; preds = %2164
  %2186 = load i32, ptr %1935, align 4, !tbaa !5
  %2187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2188 = call i32 @s2n_print_stacktrace(ptr noundef %2187) #12
  %2189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2190 = trunc nuw i8 %2189 to i1
  br i1 %2190, label %2191, label %2195

2191:                                             ; preds = %2185
  %2192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2193 = call i32 @fileno(ptr noundef %2192) #12
  %2194 = call i32 @isatty(i32 noundef %2193) #12
  %.not584 = icmp eq i32 %2194, 0
  br i1 %.not584, label %2195, label %2196

2195:                                             ; preds = %2191, %2185
  br label %2196

2196:                                             ; preds = %2191, %2195
  %.str.5.sink1361 = phi ptr [ @.str.5, %2195 ], [ @.str.2, %2191 ]
  store i32 %2186, ptr %1935, align 4, !tbaa !5
  %2197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2198 = load i32, ptr @test_count, align 4, !tbaa !5
  %2199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2200 = load i32, ptr %2199, align 4, !tbaa !5
  %2201 = call ptr @s2n_strerror(i32 noundef %2200, ptr noundef nonnull @.str.4) #12
  %2202 = load i32, ptr %2199, align 4, !tbaa !5
  %2203 = call ptr @s2n_strerror_debug(i32 noundef %2202, ptr noundef nonnull @.str.4) #12
  %2204 = load i32, ptr %1935, align 4, !tbaa !5
  %2205 = call ptr @strerror(i32 noundef %2204) #12
  %2206 = load i32, ptr %1935, align 4, !tbaa !5
  %2207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2197, ptr noundef nonnull %.str.5.sink1361, i32 noundef %2198, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %2201, ptr noundef %2203, ptr noundef %2205, i32 noundef %2206) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2208:                                             ; preds = %2164
  %2209 = load i32, ptr @test_count, align 4, !tbaa !5
  %2210 = add nsw i32 %2209, 1
  store i32 %2210, ptr @test_count, align 4, !tbaa !5
  %2211 = load ptr, ptr %47, align 8, !tbaa !9
  %2212 = getelementptr inbounds i8, ptr %2211, i64 64
  %2213 = load ptr, ptr %2212, align 8, !tbaa !24
  %2214 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %2213, ptr noundef nonnull %51) #12
  %2215 = icmp eq i64 %2214, 10
  br i1 %2215, label %2239, label %2216

2216:                                             ; preds = %2208
  %2217 = load i32, ptr %1935, align 4, !tbaa !5
  %2218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2219 = call i32 @s2n_print_stacktrace(ptr noundef %2218) #12
  %2220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2221 = trunc nuw i8 %2220 to i1
  br i1 %2221, label %2222, label %2226

2222:                                             ; preds = %2216
  %2223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2224 = call i32 @fileno(ptr noundef %2223) #12
  %2225 = call i32 @isatty(i32 noundef %2224) #12
  %.not585 = icmp eq i32 %2225, 0
  br i1 %.not585, label %2226, label %2227

2226:                                             ; preds = %2222, %2216
  br label %2227

2227:                                             ; preds = %2222, %2226
  %.str.5.sink1372 = phi ptr [ @.str.5, %2226 ], [ @.str.2, %2222 ]
  store i32 %2217, ptr %1935, align 4, !tbaa !5
  %2228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2229 = load i32, ptr @test_count, align 4, !tbaa !5
  %2230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  %2232 = call ptr @s2n_strerror(i32 noundef %2231, ptr noundef nonnull @.str.4) #12
  %2233 = load i32, ptr %2230, align 4, !tbaa !5
  %2234 = call ptr @s2n_strerror_debug(i32 noundef %2233, ptr noundef nonnull @.str.4) #12
  %2235 = load i32, ptr %1935, align 4, !tbaa !5
  %2236 = call ptr @strerror(i32 noundef %2235) #12
  %2237 = load i32, ptr %1935, align 4, !tbaa !5
  %2238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2228, ptr noundef nonnull %.str.5.sink1372, i32 noundef %2229, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 303, ptr noundef %2232, ptr noundef %2234, ptr noundef %2236, i32 noundef %2237) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2239:                                             ; preds = %2208
  %2240 = load i32, ptr @test_count, align 4, !tbaa !5
  %2241 = add nsw i32 %2240, 1
  store i32 %2241, ptr @test_count, align 4, !tbaa !5
  %2242 = getelementptr inbounds i8, ptr %49, i64 80
  %2243 = load i64, ptr %2242, align 8, !tbaa !50
  %2244 = icmp eq i64 %2243, 1
  br i1 %2244, label %2268, label %2245

2245:                                             ; preds = %2239
  %2246 = load i32, ptr %1935, align 4, !tbaa !5
  %2247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2248 = call i32 @s2n_print_stacktrace(ptr noundef %2247) #12
  %2249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2250 = trunc nuw i8 %2249 to i1
  br i1 %2250, label %2251, label %2255

2251:                                             ; preds = %2245
  %2252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2253 = call i32 @fileno(ptr noundef %2252) #12
  %2254 = call i32 @isatty(i32 noundef %2253) #12
  %.not586 = icmp eq i32 %2254, 0
  br i1 %.not586, label %2255, label %2256

2255:                                             ; preds = %2251, %2245
  br label %2256

2256:                                             ; preds = %2251, %2255
  %.str.5.sink1383 = phi ptr [ @.str.5, %2255 ], [ @.str.2, %2251 ]
  store i32 %2246, ptr %1935, align 4, !tbaa !5
  %2257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2258 = load i32, ptr @test_count, align 4, !tbaa !5
  %2259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2260 = load i32, ptr %2259, align 4, !tbaa !5
  %2261 = call ptr @s2n_strerror(i32 noundef %2260, ptr noundef nonnull @.str.4) #12
  %2262 = load i32, ptr %2259, align 4, !tbaa !5
  %2263 = call ptr @s2n_strerror_debug(i32 noundef %2262, ptr noundef nonnull @.str.4) #12
  %2264 = load i32, ptr %1935, align 4, !tbaa !5
  %2265 = call ptr @strerror(i32 noundef %2264) #12
  %2266 = load i32, ptr %1935, align 4, !tbaa !5
  %2267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2257, ptr noundef nonnull %.str.5.sink1383, i32 noundef %2258, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %2261, ptr noundef %2263, ptr noundef %2265, i32 noundef %2266) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2268:                                             ; preds = %2239
  %2269 = add nsw i32 %2240, 2
  store i32 %2269, ptr @test_count, align 4, !tbaa !5
  %2270 = call i32 @s2n_test_validate_ancillary(ptr noundef nonnull %49, i8 noundef zeroext 43, i16 noundef zeroext 10) #12
  %2271 = call zeroext i1 @s2n_result_is_ok(i32 %2270)
  br i1 %2271, label %2295, label %2272

2272:                                             ; preds = %2268
  %2273 = load i32, ptr %1935, align 4, !tbaa !5
  %2274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2275 = call i32 @s2n_print_stacktrace(ptr noundef %2274) #12
  %2276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2277 = trunc nuw i8 %2276 to i1
  br i1 %2277, label %2278, label %2282

2278:                                             ; preds = %2272
  %2279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2280 = call i32 @fileno(ptr noundef %2279) #12
  %2281 = call i32 @isatty(i32 noundef %2280) #12
  %.not587 = icmp eq i32 %2281, 0
  br i1 %.not587, label %2282, label %2283

2282:                                             ; preds = %2278, %2272
  br label %2283

2283:                                             ; preds = %2278, %2282
  %.str.5.sink1394 = phi ptr [ @.str.5, %2282 ], [ @.str.2, %2278 ]
  store i32 %2273, ptr %1935, align 4, !tbaa !5
  %2284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2285 = load i32, ptr @test_count, align 4, !tbaa !5
  %2286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2287 = load i32, ptr %2286, align 4, !tbaa !5
  %2288 = call ptr @s2n_strerror(i32 noundef %2287, ptr noundef nonnull @.str.4) #12
  %2289 = load i32, ptr %2286, align 4, !tbaa !5
  %2290 = call ptr @s2n_strerror_debug(i32 noundef %2289, ptr noundef nonnull @.str.4) #12
  %2291 = load i32, ptr %1935, align 4, !tbaa !5
  %2292 = call ptr @strerror(i32 noundef %2291) #12
  %2293 = load i32, ptr %1935, align 4, !tbaa !5
  %2294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2284, ptr noundef nonnull %.str.5.sink1394, i32 noundef %2285, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %2288, ptr noundef %2290, ptr noundef %2292, i32 noundef %2293) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2295:                                             ; preds = %2268
  %2296 = load i32, ptr @test_count, align 4, !tbaa !5
  %2297 = add nsw i32 %2296, 1
  store i32 %2297, ptr @test_count, align 4, !tbaa !5
  %2298 = call i32 @s2n_test_validate_data(ptr noundef nonnull %49, ptr noundef nonnull %3, i16 noundef zeroext 10) #12
  %2299 = call zeroext i1 @s2n_result_is_ok(i32 %2298)
  br i1 %2299, label %2323, label %2300

2300:                                             ; preds = %2295
  %2301 = load i32, ptr %1935, align 4, !tbaa !5
  %2302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2303 = call i32 @s2n_print_stacktrace(ptr noundef %2302) #12
  %2304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2305 = trunc nuw i8 %2304 to i1
  br i1 %2305, label %2306, label %2310

2306:                                             ; preds = %2300
  %2307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2308 = call i32 @fileno(ptr noundef %2307) #12
  %2309 = call i32 @isatty(i32 noundef %2308) #12
  %.not588 = icmp eq i32 %2309, 0
  br i1 %.not588, label %2310, label %2311

2310:                                             ; preds = %2306, %2300
  br label %2311

2311:                                             ; preds = %2306, %2310
  %.str.5.sink1405 = phi ptr [ @.str.5, %2310 ], [ @.str.2, %2306 ]
  store i32 %2301, ptr %1935, align 4, !tbaa !5
  %2312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2313 = load i32, ptr @test_count, align 4, !tbaa !5
  %2314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2315 = load i32, ptr %2314, align 4, !tbaa !5
  %2316 = call ptr @s2n_strerror(i32 noundef %2315, ptr noundef nonnull @.str.4) #12
  %2317 = load i32, ptr %2314, align 4, !tbaa !5
  %2318 = call ptr @s2n_strerror_debug(i32 noundef %2317, ptr noundef nonnull @.str.4) #12
  %2319 = load i32, ptr %1935, align 4, !tbaa !5
  %2320 = call ptr @strerror(i32 noundef %2319) #12
  %2321 = load i32, ptr %1935, align 4, !tbaa !5
  %2322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2312, ptr noundef nonnull %.str.5.sink1405, i32 noundef %2313, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %2316, ptr noundef %2318, ptr noundef %2320, i32 noundef %2321) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2323:                                             ; preds = %2295
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %52) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %51) #12
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %50) #12
  %2324 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef nonnull %49) #12
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %49) #12
  %2325 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %48) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #12
  %2326 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %47) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #12
  %2327 = getelementptr inbounds i8, ptr %56, i64 8
  %2328 = getelementptr inbounds i8, ptr %57, i64 8
  %2329 = getelementptr inbounds i8, ptr %57, i64 16
  %2330 = getelementptr inbounds i8, ptr %57, i64 24
  %2331 = getelementptr inbounds i8, ptr %57, i64 32
  %2332 = getelementptr inbounds i8, ptr %61, i64 8
  %2333 = getelementptr inbounds i8, ptr %62, i64 8
  %2334 = getelementptr inbounds i8, ptr %62, i64 16
  %2335 = getelementptr inbounds i8, ptr %62, i64 24
  %2336 = getelementptr inbounds i8, ptr %62, i64 32
  %2337 = getelementptr inbounds i8, ptr %62, i64 40
  %2338 = getelementptr inbounds i8, ptr %62, i64 48
  %2339 = getelementptr inbounds i8, ptr %55, i64 80
  %2340 = getelementptr inbounds i8, ptr %55, i64 88
  br label %2349

2341:                                             ; preds = %2605
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #12
  %2342 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2342, ptr %64, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #12
  %2343 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %2343, ptr %65, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %66) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(192) %66, i8 0, i64 192, i1 false)
  %2344 = load i32, ptr @test_count, align 4, !tbaa !5
  %2345 = add nsw i32 %2344, 1
  store i32 %2345, ptr @test_count, align 4, !tbaa !5
  %2346 = load ptr, ptr %64, align 8, !tbaa !9
  %2347 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %2346, ptr noundef %2343, ptr noundef nonnull %66) #12
  %2348 = call zeroext i1 @s2n_result_is_ok(i32 %2347)
  br i1 %2348, label %2633, label %2610

2349:                                             ; preds = %2323, %2605
  %.0525707 = phi i64 [ 1, %2323 ], [ %2609, %2605 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #12
  %2350 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2350, ptr %53, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #12
  %2351 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %2351, ptr %54, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %55) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(192) %55, i8 0, i64 192, i1 false)
  %2352 = load i32, ptr @test_count, align 4, !tbaa !5
  %2353 = add nsw i32 %2352, 1
  store i32 %2353, ptr @test_count, align 4, !tbaa !5
  %2354 = load ptr, ptr %53, align 8, !tbaa !9
  %2355 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %2354, ptr noundef %2351, ptr noundef nonnull %55) #12
  %2356 = call zeroext i1 @s2n_result_is_ok(i32 %2355)
  br i1 %2356, label %2380, label %2357

2357:                                             ; preds = %2349
  %2358 = load i32, ptr %1935, align 4, !tbaa !5
  %2359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2360 = call i32 @s2n_print_stacktrace(ptr noundef %2359) #12
  %2361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2362 = trunc nuw i8 %2361 to i1
  br i1 %2362, label %2363, label %2367

2363:                                             ; preds = %2357
  %2364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2365 = call i32 @fileno(ptr noundef %2364) #12
  %2366 = call i32 @isatty(i32 noundef %2365) #12
  %.not660 = icmp eq i32 %2366, 0
  br i1 %.not660, label %2367, label %2368

2367:                                             ; preds = %2363, %2357
  br label %2368

2368:                                             ; preds = %2363, %2367
  %.str.5.sink1416 = phi ptr [ @.str.5, %2367 ], [ @.str.2, %2363 ]
  store i32 %2358, ptr %1935, align 4, !tbaa !5
  %2369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2370 = load i32, ptr @test_count, align 4, !tbaa !5
  %2371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2372 = load i32, ptr %2371, align 4, !tbaa !5
  %2373 = call ptr @s2n_strerror(i32 noundef %2372, ptr noundef nonnull @.str.4) #12
  %2374 = load i32, ptr %2371, align 4, !tbaa !5
  %2375 = call ptr @s2n_strerror_debug(i32 noundef %2374, ptr noundef nonnull @.str.4) #12
  %2376 = load i32, ptr %1935, align 4, !tbaa !5
  %2377 = call ptr @strerror(i32 noundef %2376) #12
  %2378 = load i32, ptr %1935, align 4, !tbaa !5
  %2379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2369, ptr noundef nonnull %.str.5.sink1416, i32 noundef %2370, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 321, ptr noundef %2373, ptr noundef %2375, ptr noundef %2377, i32 noundef %2378) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2380:                                             ; preds = %2349
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %56) #12
  store ptr %3, ptr %56, align 8, !tbaa !15
  store i64 %.0525707, ptr %2327, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %57) #12
  store ptr null, ptr %57, align 8, !tbaa !19
  store i32 0, ptr %2328, align 8, !tbaa !21
  store ptr %56, ptr %2329, align 8, !tbaa !22
  store i64 1, ptr %2330, align 8, !tbaa !23
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %2331, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %58) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %58, i8 0, i64 100, i1 false)
  %2381 = load i32, ptr @test_count, align 4, !tbaa !5
  %2382 = add nsw i32 %2381, 1
  store i32 %2382, ptr @test_count, align 4, !tbaa !5
  %2383 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %57, ptr noundef nonnull %58, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %2384 = call zeroext i1 @s2n_result_is_ok(i32 %2383)
  br i1 %2384, label %2408, label %2385

2385:                                             ; preds = %2380
  %2386 = load i32, ptr %1935, align 4, !tbaa !5
  %2387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2388 = call i32 @s2n_print_stacktrace(ptr noundef %2387) #12
  %2389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2390 = trunc nuw i8 %2389 to i1
  br i1 %2390, label %2391, label %2395

2391:                                             ; preds = %2385
  %2392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2393 = call i32 @fileno(ptr noundef %2392) #12
  %2394 = call i32 @isatty(i32 noundef %2393) #12
  %.not661 = icmp eq i32 %2394, 0
  br i1 %.not661, label %2395, label %2396

2395:                                             ; preds = %2391, %2385
  br label %2396

2396:                                             ; preds = %2391, %2395
  %.str.5.sink1427 = phi ptr [ @.str.5, %2395 ], [ @.str.2, %2391 ]
  store i32 %2386, ptr %1935, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = load i32, ptr @test_count, align 4, !tbaa !5
  %2399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2400 = load i32, ptr %2399, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror(i32 noundef %2400, ptr noundef nonnull @.str.4) #12
  %2402 = load i32, ptr %2399, align 4, !tbaa !5
  %2403 = call ptr @s2n_strerror_debug(i32 noundef %2402, ptr noundef nonnull @.str.4) #12
  %2404 = load i32, ptr %1935, align 4, !tbaa !5
  %2405 = call ptr @strerror(i32 noundef %2404) #12
  %2406 = load i32, ptr %1935, align 4, !tbaa !5
  %2407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2397, ptr noundef nonnull %.str.5.sink1427, i32 noundef %2398, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 327, ptr noundef %2401, ptr noundef %2403, ptr noundef %2405, i32 noundef %2406) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2408:                                             ; preds = %2380
  %2409 = load ptr, ptr %53, align 8, !tbaa !9
  %2410 = getelementptr inbounds i8, ptr %2409, i64 64
  %2411 = load ptr, ptr %2410, align 8, !tbaa !24
  %2412 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %2411, ptr noundef nonnull %57) #12
  %2413 = load i32, ptr @test_count, align 4, !tbaa !5
  %2414 = add nsw i32 %2413, 1
  store i32 %2414, ptr @test_count, align 4, !tbaa !5
  %2415 = icmp eq i64 %2412, %.0525707
  br i1 %2415, label %2439, label %2416

2416:                                             ; preds = %2408
  %2417 = load i32, ptr %1935, align 4, !tbaa !5
  %2418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2419 = call i32 @s2n_print_stacktrace(ptr noundef %2418) #12
  %2420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2421 = trunc nuw i8 %2420 to i1
  br i1 %2421, label %2422, label %2426

2422:                                             ; preds = %2416
  %2423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2424 = call i32 @fileno(ptr noundef %2423) #12
  %2425 = call i32 @isatty(i32 noundef %2424) #12
  %.not662 = icmp eq i32 %2425, 0
  br i1 %.not662, label %2426, label %2427

2426:                                             ; preds = %2422, %2416
  br label %2427

2427:                                             ; preds = %2422, %2426
  %.str.5.sink1438 = phi ptr [ @.str.5, %2426 ], [ @.str.2, %2422 ]
  store i32 %2417, ptr %1935, align 4, !tbaa !5
  %2428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2429 = load i32, ptr @test_count, align 4, !tbaa !5
  %2430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2431 = load i32, ptr %2430, align 4, !tbaa !5
  %2432 = call ptr @s2n_strerror(i32 noundef %2431, ptr noundef nonnull @.str.4) #12
  %2433 = load i32, ptr %2430, align 4, !tbaa !5
  %2434 = call ptr @s2n_strerror_debug(i32 noundef %2433, ptr noundef nonnull @.str.4) #12
  %2435 = load i32, ptr %1935, align 4, !tbaa !5
  %2436 = call ptr @strerror(i32 noundef %2435) #12
  %2437 = load i32, ptr %1935, align 4, !tbaa !5
  %2438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2428, ptr noundef nonnull %.str.5.sink1438, i32 noundef %2429, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 329, ptr noundef %2432, ptr noundef %2434, ptr noundef %2436, i32 noundef %2437) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2439:                                             ; preds = %2408
  call void @llvm.lifetime.start.p0(i64 16384, ptr nonnull %59) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16384) %59, i8 0, i64 16384, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %60) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %60, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %61) #12
  store ptr %59, ptr %61, align 8, !tbaa !15
  store i64 %.0525707, ptr %2332, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %62) #12
  store ptr null, ptr %62, align 8, !tbaa !19
  store i32 0, ptr %2333, align 8, !tbaa !21
  store ptr %61, ptr %2334, align 8, !tbaa !22
  store i64 1, ptr %2335, align 8, !tbaa !23
  store ptr %60, ptr %2336, align 8, !tbaa !56
  store i64 100, ptr %2337, align 8, !tbaa !57
  store i32 0, ptr %2338, align 8, !tbaa !58
  %2440 = load ptr, ptr %54, align 8, !tbaa !9
  %2441 = getelementptr inbounds i8, ptr %2440, i64 72
  %2442 = load ptr, ptr %2441, align 8, !tbaa !59
  %2443 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %2442, ptr noundef nonnull %62) #12
  %2444 = load i32, ptr @test_count, align 4, !tbaa !5
  %2445 = add nsw i32 %2444, 1
  store i32 %2445, ptr @test_count, align 4, !tbaa !5
  %2446 = icmp eq i64 %2443, %.0525707
  br i1 %2446, label %2470, label %2447

2447:                                             ; preds = %2439
  %2448 = load i32, ptr %1935, align 4, !tbaa !5
  %2449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2450 = call i32 @s2n_print_stacktrace(ptr noundef %2449) #12
  %2451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2452 = trunc nuw i8 %2451 to i1
  br i1 %2452, label %2453, label %2457

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

2457:                                             ; preds = %2453, %2447
  br label %2458

2458:                                             ; preds = %2453, %2457
  %.str.5.sink1449 = phi ptr [ @.str.5, %2457 ], [ @.str.2, %2453 ]
  store i32 %2448, ptr %1935, align 4, !tbaa !5
  %2459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2460 = load i32, ptr @test_count, align 4, !tbaa !5
  %2461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2462 = load i32, ptr %2461, align 4, !tbaa !5
  %2463 = call ptr @s2n_strerror(i32 noundef %2462, ptr noundef nonnull @.str.4) #12
  %2464 = load i32, ptr %2461, align 4, !tbaa !5
  %2465 = call ptr @s2n_strerror_debug(i32 noundef %2464, ptr noundef nonnull @.str.4) #12
  %2466 = load i32, ptr %1935, align 4, !tbaa !5
  %2467 = call ptr @strerror(i32 noundef %2466) #12
  %2468 = load i32, ptr %1935, align 4, !tbaa !5
  %2469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2459, ptr noundef nonnull %.str.5.sink1449, i32 noundef %2460, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 341, ptr noundef %2463, ptr noundef %2465, ptr noundef %2467, i32 noundef %2468) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2470:                                             ; preds = %2439
  %2471 = add nsw i32 %2444, 2
  store i32 %2471, ptr @test_count, align 4, !tbaa !5
  %bcmp664 = call i32 @bcmp(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) %59, i64 %.0525707)
  %2472 = icmp eq i32 %bcmp664, 0
  br i1 %2472, label %2496, label %2473

2473:                                             ; preds = %2470
  %2474 = load i32, ptr %1935, align 4, !tbaa !5
  %2475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2476 = call i32 @s2n_print_stacktrace(ptr noundef %2475) #12
  %2477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2478 = trunc nuw i8 %2477 to i1
  br i1 %2478, label %2479, label %2483

2479:                                             ; preds = %2473
  %2480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2481 = call i32 @fileno(ptr noundef %2480) #12
  %2482 = call i32 @isatty(i32 noundef %2481) #12
  %.not665 = icmp eq i32 %2482, 0
  br i1 %.not665, label %2483, label %2484

2483:                                             ; preds = %2479, %2473
  br label %2484

2484:                                             ; preds = %2479, %2483
  %.str.5.sink1460 = phi ptr [ @.str.5, %2483 ], [ @.str.2, %2479 ]
  store i32 %2474, ptr %1935, align 4, !tbaa !5
  %2485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2486 = load i32, ptr @test_count, align 4, !tbaa !5
  %2487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2488 = load i32, ptr %2487, align 4, !tbaa !5
  %2489 = call ptr @s2n_strerror(i32 noundef %2488, ptr noundef nonnull @.str.4) #12
  %2490 = load i32, ptr %2487, align 4, !tbaa !5
  %2491 = call ptr @s2n_strerror_debug(i32 noundef %2490, ptr noundef nonnull @.str.4) #12
  %2492 = load i32, ptr %1935, align 4, !tbaa !5
  %2493 = call ptr @strerror(i32 noundef %2492) #12
  %2494 = load i32, ptr %1935, align 4, !tbaa !5
  %2495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2485, ptr noundef nonnull %.str.5.sink1460, i32 noundef %2486, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 343, ptr noundef %2489, ptr noundef %2491, ptr noundef %2493, i32 noundef %2494) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2496:                                             ; preds = %2470
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #12
  store i8 0, ptr %63, align 1, !tbaa !60
  %2497 = add nsw i32 %2444, 3
  store i32 %2497, ptr @test_count, align 4, !tbaa !5
  %2498 = call i32 @s2n_ktls_get_control_data(ptr noundef nonnull %62, i32 noundef 0, ptr noundef nonnull %63) #12
  %2499 = call zeroext i1 @s2n_result_is_ok(i32 %2498)
  br i1 %2499, label %2523, label %2500

2500:                                             ; preds = %2496
  %2501 = load i32, ptr %1935, align 4, !tbaa !5
  %2502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2503 = call i32 @s2n_print_stacktrace(ptr noundef %2502) #12
  %2504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2505 = trunc nuw i8 %2504 to i1
  br i1 %2505, label %2506, label %2510

2506:                                             ; preds = %2500
  %2507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2508 = call i32 @fileno(ptr noundef %2507) #12
  %2509 = call i32 @isatty(i32 noundef %2508) #12
  %.not666 = icmp eq i32 %2509, 0
  br i1 %.not666, label %2510, label %2511

2510:                                             ; preds = %2506, %2500
  br label %2511

2511:                                             ; preds = %2506, %2510
  %.str.5.sink1471 = phi ptr [ @.str.5, %2510 ], [ @.str.2, %2506 ]
  store i32 %2501, ptr %1935, align 4, !tbaa !5
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = load i32, ptr @test_count, align 4, !tbaa !5
  %2514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2515 = load i32, ptr %2514, align 4, !tbaa !5
  %2516 = call ptr @s2n_strerror(i32 noundef %2515, ptr noundef nonnull @.str.4) #12
  %2517 = load i32, ptr %2514, align 4, !tbaa !5
  %2518 = call ptr @s2n_strerror_debug(i32 noundef %2517, ptr noundef nonnull @.str.4) #12
  %2519 = load i32, ptr %1935, align 4, !tbaa !5
  %2520 = call ptr @strerror(i32 noundef %2519) #12
  %2521 = load i32, ptr %1935, align 4, !tbaa !5
  %2522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2512, ptr noundef nonnull %.str.5.sink1471, i32 noundef %2513, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 345, ptr noundef %2516, ptr noundef %2518, ptr noundef %2520, i32 noundef %2521) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2523:                                             ; preds = %2496
  %2524 = load i32, ptr @test_count, align 4, !tbaa !5
  %2525 = add nsw i32 %2524, 1
  store i32 %2525, ptr @test_count, align 4, !tbaa !5
  %2526 = load i8, ptr %63, align 1, !tbaa !60
  %2527 = icmp eq i8 %2526, 43
  br i1 %2527, label %2551, label %2528

2528:                                             ; preds = %2523
  %2529 = load i32, ptr %1935, align 4, !tbaa !5
  %2530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2531 = call i32 @s2n_print_stacktrace(ptr noundef %2530) #12
  %2532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2533 = trunc nuw i8 %2532 to i1
  br i1 %2533, label %2534, label %2538

2534:                                             ; preds = %2528
  %2535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2536 = call i32 @fileno(ptr noundef %2535) #12
  %2537 = call i32 @isatty(i32 noundef %2536) #12
  %.not667 = icmp eq i32 %2537, 0
  br i1 %.not667, label %2538, label %2539

2538:                                             ; preds = %2534, %2528
  br label %2539

2539:                                             ; preds = %2534, %2538
  %.str.5.sink1482 = phi ptr [ @.str.5, %2538 ], [ @.str.2, %2534 ]
  store i32 %2529, ptr %1935, align 4, !tbaa !5
  %2540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2541 = load i32, ptr @test_count, align 4, !tbaa !5
  %2542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2543 = load i32, ptr %2542, align 4, !tbaa !5
  %2544 = call ptr @s2n_strerror(i32 noundef %2543, ptr noundef nonnull @.str.4) #12
  %2545 = load i32, ptr %2542, align 4, !tbaa !5
  %2546 = call ptr @s2n_strerror_debug(i32 noundef %2545, ptr noundef nonnull @.str.4) #12
  %2547 = load i32, ptr %1935, align 4, !tbaa !5
  %2548 = call ptr @strerror(i32 noundef %2547) #12
  %2549 = load i32, ptr %1935, align 4, !tbaa !5
  %2550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2540, ptr noundef nonnull %.str.5.sink1482, i32 noundef %2541, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 346, ptr noundef %2544, ptr noundef %2546, ptr noundef %2548, i32 noundef %2549) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2551:                                             ; preds = %2523
  %2552 = add nsw i32 %2524, 2
  store i32 %2552, ptr @test_count, align 4, !tbaa !5
  %2553 = load i64, ptr %2339, align 8, !tbaa !50
  %2554 = icmp eq i64 %2553, 1
  br i1 %2554, label %2578, label %2555

2555:                                             ; preds = %2551
  %2556 = load i32, ptr %1935, align 4, !tbaa !5
  %2557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2558 = call i32 @s2n_print_stacktrace(ptr noundef %2557) #12
  %2559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2560 = trunc nuw i8 %2559 to i1
  br i1 %2560, label %2561, label %2565

2561:                                             ; preds = %2555
  %2562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2563 = call i32 @fileno(ptr noundef %2562) #12
  %2564 = call i32 @isatty(i32 noundef %2563) #12
  %.not668 = icmp eq i32 %2564, 0
  br i1 %.not668, label %2565, label %2566

2565:                                             ; preds = %2561, %2555
  br label %2566

2566:                                             ; preds = %2561, %2565
  %.str.5.sink1493 = phi ptr [ @.str.5, %2565 ], [ @.str.2, %2561 ]
  store i32 %2556, ptr %1935, align 4, !tbaa !5
  %2567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2568 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2570, ptr noundef nonnull @.str.4) #12
  %2572 = load i32, ptr %2569, align 4, !tbaa !5
  %2573 = call ptr @s2n_strerror_debug(i32 noundef %2572, ptr noundef nonnull @.str.4) #12
  %2574 = load i32, ptr %1935, align 4, !tbaa !5
  %2575 = call ptr @strerror(i32 noundef %2574) #12
  %2576 = load i32, ptr %1935, align 4, !tbaa !5
  %2577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2567, ptr noundef nonnull %.str.5.sink1493, i32 noundef %2568, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 348, ptr noundef %2571, ptr noundef %2573, ptr noundef %2575, i32 noundef %2576) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2578:                                             ; preds = %2551
  %2579 = add nsw i32 %2524, 3
  store i32 %2579, ptr @test_count, align 4, !tbaa !5
  %2580 = load i64, ptr %2340, align 8, !tbaa !61
  %2581 = icmp eq i64 %2580, 1
  br i1 %2581, label %2605, label %2582

2582:                                             ; preds = %2578
  %2583 = load i32, ptr %1935, align 4, !tbaa !5
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = call i32 @s2n_print_stacktrace(ptr noundef %2584) #12
  %2586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2587 = trunc nuw i8 %2586 to i1
  br i1 %2587, label %2588, label %2592

2588:                                             ; preds = %2582
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = call i32 @fileno(ptr noundef %2589) #12
  %2591 = call i32 @isatty(i32 noundef %2590) #12
  %.not669 = icmp eq i32 %2591, 0
  br i1 %.not669, label %2592, label %2593

2592:                                             ; preds = %2588, %2582
  br label %2593

2593:                                             ; preds = %2588, %2592
  %.str.5.sink1504 = phi ptr [ @.str.5, %2592 ], [ @.str.2, %2588 ]
  store i32 %2583, ptr %1935, align 4, !tbaa !5
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = load i32, ptr @test_count, align 4, !tbaa !5
  %2596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2597 = load i32, ptr %2596, align 4, !tbaa !5
  %2598 = call ptr @s2n_strerror(i32 noundef %2597, ptr noundef nonnull @.str.4) #12
  %2599 = load i32, ptr %2596, align 4, !tbaa !5
  %2600 = call ptr @s2n_strerror_debug(i32 noundef %2599, ptr noundef nonnull @.str.4) #12
  %2601 = load i32, ptr %1935, align 4, !tbaa !5
  %2602 = call ptr @strerror(i32 noundef %2601) #12
  %2603 = load i32, ptr %1935, align 4, !tbaa !5
  %2604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2594, ptr noundef nonnull %.str.5.sink1504, i32 noundef %2595, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 349, ptr noundef %2598, ptr noundef %2600, ptr noundef %2602, i32 noundef %2603) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2605:                                             ; preds = %2578
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %62) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %60) #12
  call void @llvm.lifetime.end.p0(i64 16384, ptr nonnull %59) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %58) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %57) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %56) #12
  %2606 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef nonnull %55) #12
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %55) #12
  %2607 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %54) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #12
  %2608 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %53) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #12
  %2609 = add nuw nsw i64 %.0525707, 1
  %exitcond.not = icmp eq i64 %2609, 16384
  br i1 %exitcond.not, label %2341, label %2349, !llvm.loop !62

2610:                                             ; preds = %2341
  %2611 = load i32, ptr %1935, align 4, !tbaa !5
  %2612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2613 = call i32 @s2n_print_stacktrace(ptr noundef %2612) #12
  %2614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2615 = trunc nuw i8 %2614 to i1
  br i1 %2615, label %2616, label %2620

2616:                                             ; preds = %2610
  %2617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2618 = call i32 @fileno(ptr noundef %2617) #12
  %2619 = call i32 @isatty(i32 noundef %2618) #12
  %.not589 = icmp eq i32 %2619, 0
  br i1 %.not589, label %2620, label %2621

2620:                                             ; preds = %2616, %2610
  br label %2621

2621:                                             ; preds = %2616, %2620
  %.str.5.sink1515 = phi ptr [ @.str.5, %2620 ], [ @.str.2, %2616 ]
  store i32 %2611, ptr %1935, align 4, !tbaa !5
  %2622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2623 = load i32, ptr @test_count, align 4, !tbaa !5
  %2624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2625 = load i32, ptr %2624, align 4, !tbaa !5
  %2626 = call ptr @s2n_strerror(i32 noundef %2625, ptr noundef nonnull @.str.4) #12
  %2627 = load i32, ptr %2624, align 4, !tbaa !5
  %2628 = call ptr @s2n_strerror_debug(i32 noundef %2627, ptr noundef nonnull @.str.4) #12
  %2629 = load i32, ptr %1935, align 4, !tbaa !5
  %2630 = call ptr @strerror(i32 noundef %2629) #12
  %2631 = load i32, ptr %1935, align 4, !tbaa !5
  %2632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2622, ptr noundef nonnull %.str.5.sink1515, i32 noundef %2623, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 360, ptr noundef %2626, ptr noundef %2628, ptr noundef %2630, i32 noundef %2631) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2633:                                             ; preds = %2341
  call void @llvm.lifetime.start.p0(i64 16384, ptr nonnull %67) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16384) %67, i8 0, i64 16384, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %68) #12
  store ptr %67, ptr %68, align 8, !tbaa !15
  %2634 = getelementptr inbounds i8, ptr %68, i64 8
  store i64 1, ptr %2634, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %69) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %69, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %70) #12
  store ptr null, ptr %70, align 8, !tbaa !19
  %2635 = getelementptr inbounds i8, ptr %70, i64 8
  store i32 0, ptr %2635, align 8, !tbaa !21
  %2636 = getelementptr inbounds i8, ptr %70, i64 16
  store ptr %68, ptr %2636, align 8, !tbaa !22
  %2637 = getelementptr inbounds i8, ptr %70, i64 24
  store i64 1, ptr %2637, align 8, !tbaa !23
  %2638 = getelementptr inbounds i8, ptr %70, i64 32
  store ptr %69, ptr %2638, align 8, !tbaa !56
  %2639 = getelementptr inbounds i8, ptr %70, i64 40
  store i64 100, ptr %2639, align 8, !tbaa !57
  %2640 = getelementptr inbounds i8, ptr %70, i64 48
  store i32 0, ptr %2640, align 8, !tbaa !58
  %2641 = load i32, ptr @test_count, align 4, !tbaa !5
  %2642 = add nsw i32 %2641, 1
  store i32 %2642, ptr @test_count, align 4, !tbaa !5
  %2643 = load ptr, ptr %65, align 8, !tbaa !9
  %2644 = getelementptr inbounds i8, ptr %2643, i64 72
  %2645 = load ptr, ptr %2644, align 8, !tbaa !59
  %2646 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %2645, ptr noundef nonnull %70) #12
  %2647 = icmp eq i64 %2646, -1
  br i1 %2647, label %2671, label %2648

2648:                                             ; preds = %2633
  %2649 = load i32, ptr %1935, align 4, !tbaa !5
  %2650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2651 = call i32 @s2n_print_stacktrace(ptr noundef %2650) #12
  %2652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2653 = trunc nuw i8 %2652 to i1
  br i1 %2653, label %2654, label %2658

2654:                                             ; preds = %2648
  %2655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2656 = call i32 @fileno(ptr noundef %2655) #12
  %2657 = call i32 @isatty(i32 noundef %2656) #12
  %.not590 = icmp eq i32 %2657, 0
  br i1 %.not590, label %2658, label %2659

2658:                                             ; preds = %2654, %2648
  br label %2659

2659:                                             ; preds = %2654, %2658
  %.str.5.sink1526 = phi ptr [ @.str.5, %2658 ], [ @.str.2, %2654 ]
  store i32 %2649, ptr %1935, align 4, !tbaa !5
  %2660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2661 = load i32, ptr @test_count, align 4, !tbaa !5
  %2662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = call ptr @s2n_strerror(i32 noundef %2663, ptr noundef nonnull @.str.4) #12
  %2665 = load i32, ptr %2662, align 4, !tbaa !5
  %2666 = call ptr @s2n_strerror_debug(i32 noundef %2665, ptr noundef nonnull @.str.4) #12
  %2667 = load i32, ptr %1935, align 4, !tbaa !5
  %2668 = call ptr @strerror(i32 noundef %2667) #12
  %2669 = load i32, ptr %1935, align 4, !tbaa !5
  %2670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2660, ptr noundef nonnull %.str.5.sink1526, i32 noundef %2661, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 373, ptr noundef %2664, ptr noundef %2666, ptr noundef %2668, i32 noundef %2669) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2671:                                             ; preds = %2633
  %2672 = load i32, ptr @test_count, align 4, !tbaa !5
  %2673 = add nsw i32 %2672, 1
  store i32 %2673, ptr @test_count, align 4, !tbaa !5
  %2674 = load i32, ptr %1935, align 4, !tbaa !5
  %2675 = icmp eq i32 %2674, 11
  br i1 %2675, label %2698, label %2676

2676:                                             ; preds = %2671
  %2677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2678 = call i32 @s2n_print_stacktrace(ptr noundef %2677) #12
  %2679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2680 = trunc nuw i8 %2679 to i1
  br i1 %2680, label %2681, label %2685

2681:                                             ; preds = %2676
  %2682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2683 = call i32 @fileno(ptr noundef %2682) #12
  %2684 = call i32 @isatty(i32 noundef %2683) #12
  %.not591 = icmp eq i32 %2684, 0
  br i1 %.not591, label %2685, label %2686

2685:                                             ; preds = %2681, %2676
  br label %2686

2686:                                             ; preds = %2681, %2685
  %.str.5.sink1537 = phi ptr [ @.str.5, %2685 ], [ @.str.2, %2681 ]
  store i32 %2674, ptr %1935, align 4, !tbaa !5
  %2687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2688 = load i32, ptr @test_count, align 4, !tbaa !5
  %2689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2690 = load i32, ptr %2689, align 4, !tbaa !5
  %2691 = call ptr @s2n_strerror(i32 noundef %2690, ptr noundef nonnull @.str.4) #12
  %2692 = load i32, ptr %2689, align 4, !tbaa !5
  %2693 = call ptr @s2n_strerror_debug(i32 noundef %2692, ptr noundef nonnull @.str.4) #12
  %2694 = load i32, ptr %1935, align 4, !tbaa !5
  %2695 = call ptr @strerror(i32 noundef %2694) #12
  %2696 = load i32, ptr %1935, align 4, !tbaa !5
  %2697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2687, ptr noundef nonnull %.str.5.sink1537, i32 noundef %2688, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %2691, ptr noundef %2693, ptr noundef %2695, i32 noundef %2696) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2698:                                             ; preds = %2671
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %71) #12
  store ptr %3, ptr %71, align 8, !tbaa !15
  %2699 = getelementptr inbounds i8, ptr %71, i64 8
  store i64 1, ptr %2699, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %72) #12
  store ptr null, ptr %72, align 8, !tbaa !19
  %2700 = getelementptr inbounds i8, ptr %72, i64 8
  store i32 0, ptr %2700, align 8, !tbaa !21
  %2701 = getelementptr inbounds i8, ptr %72, i64 16
  store ptr %71, ptr %2701, align 8, !tbaa !22
  %2702 = getelementptr inbounds i8, ptr %72, i64 24
  store i64 1, ptr %2702, align 8, !tbaa !23
  %2703 = getelementptr inbounds i8, ptr %72, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %2703, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %73) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %73, i8 0, i64 100, i1 false)
  %2704 = add nsw i32 %2672, 2
  store i32 %2704, ptr @test_count, align 4, !tbaa !5
  %2705 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %72, ptr noundef nonnull %73, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %2706 = call zeroext i1 @s2n_result_is_ok(i32 %2705)
  br i1 %2706, label %2730, label %2707

2707:                                             ; preds = %2698
  %2708 = load i32, ptr %1935, align 4, !tbaa !5
  %2709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2710 = call i32 @s2n_print_stacktrace(ptr noundef %2709) #12
  %2711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2712 = trunc nuw i8 %2711 to i1
  br i1 %2712, label %2713, label %2717

2713:                                             ; preds = %2707
  %2714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2715 = call i32 @fileno(ptr noundef %2714) #12
  %2716 = call i32 @isatty(i32 noundef %2715) #12
  %.not592 = icmp eq i32 %2716, 0
  br i1 %.not592, label %2717, label %2718

2717:                                             ; preds = %2713, %2707
  br label %2718

2718:                                             ; preds = %2713, %2717
  %.str.5.sink1548 = phi ptr [ @.str.5, %2717 ], [ @.str.2, %2713 ]
  store i32 %2708, ptr %1935, align 4, !tbaa !5
  %2719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2720 = load i32, ptr @test_count, align 4, !tbaa !5
  %2721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2722 = load i32, ptr %2721, align 4, !tbaa !5
  %2723 = call ptr @s2n_strerror(i32 noundef %2722, ptr noundef nonnull @.str.4) #12
  %2724 = load i32, ptr %2721, align 4, !tbaa !5
  %2725 = call ptr @s2n_strerror_debug(i32 noundef %2724, ptr noundef nonnull @.str.4) #12
  %2726 = load i32, ptr %1935, align 4, !tbaa !5
  %2727 = call ptr @strerror(i32 noundef %2726) #12
  %2728 = load i32, ptr %1935, align 4, !tbaa !5
  %2729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2719, ptr noundef nonnull %.str.5.sink1548, i32 noundef %2720, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 380, ptr noundef %2723, ptr noundef %2725, ptr noundef %2727, i32 noundef %2728) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2730:                                             ; preds = %2698
  %2731 = load ptr, ptr %64, align 8, !tbaa !9
  %2732 = getelementptr inbounds i8, ptr %2731, i64 64
  %2733 = load ptr, ptr %2732, align 8, !tbaa !24
  %2734 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %2733, ptr noundef nonnull %72) #12
  %2735 = load i32, ptr @test_count, align 4, !tbaa !5
  %2736 = add nsw i32 %2735, 1
  store i32 %2736, ptr @test_count, align 4, !tbaa !5
  %2737 = icmp eq i64 %2734, 1
  br i1 %2737, label %2761, label %2738

2738:                                             ; preds = %2730
  %2739 = load i32, ptr %1935, align 4, !tbaa !5
  %2740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2741 = call i32 @s2n_print_stacktrace(ptr noundef %2740) #12
  %2742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2743 = trunc nuw i8 %2742 to i1
  br i1 %2743, label %2744, label %2748

2744:                                             ; preds = %2738
  %2745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2746 = call i32 @fileno(ptr noundef %2745) #12
  %2747 = call i32 @isatty(i32 noundef %2746) #12
  %.not593 = icmp eq i32 %2747, 0
  br i1 %.not593, label %2748, label %2749

2748:                                             ; preds = %2744, %2738
  br label %2749

2749:                                             ; preds = %2744, %2748
  %.str.5.sink1559 = phi ptr [ @.str.5, %2748 ], [ @.str.2, %2744 ]
  store i32 %2739, ptr %1935, align 4, !tbaa !5
  %2750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2751 = load i32, ptr @test_count, align 4, !tbaa !5
  %2752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2753 = load i32, ptr %2752, align 4, !tbaa !5
  %2754 = call ptr @s2n_strerror(i32 noundef %2753, ptr noundef nonnull @.str.4) #12
  %2755 = load i32, ptr %2752, align 4, !tbaa !5
  %2756 = call ptr @s2n_strerror_debug(i32 noundef %2755, ptr noundef nonnull @.str.4) #12
  %2757 = load i32, ptr %1935, align 4, !tbaa !5
  %2758 = call ptr @strerror(i32 noundef %2757) #12
  %2759 = load i32, ptr %1935, align 4, !tbaa !5
  %2760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2750, ptr noundef nonnull %.str.5.sink1559, i32 noundef %2751, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 382, ptr noundef %2754, ptr noundef %2756, ptr noundef %2758, i32 noundef %2759) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2761:                                             ; preds = %2730
  %2762 = load ptr, ptr %65, align 8, !tbaa !9
  %2763 = getelementptr inbounds i8, ptr %2762, i64 72
  %2764 = load ptr, ptr %2763, align 8, !tbaa !59
  %2765 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %2764, ptr noundef nonnull %70) #12
  %2766 = load i32, ptr @test_count, align 4, !tbaa !5
  %2767 = add nsw i32 %2766, 1
  store i32 %2767, ptr @test_count, align 4, !tbaa !5
  %2768 = icmp eq i64 %2765, 1
  br i1 %2768, label %2792, label %2769

2769:                                             ; preds = %2761
  %2770 = load i32, ptr %1935, align 4, !tbaa !5
  %2771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2772 = call i32 @s2n_print_stacktrace(ptr noundef %2771) #12
  %2773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2774 = trunc nuw i8 %2773 to i1
  br i1 %2774, label %2775, label %2779

2775:                                             ; preds = %2769
  %2776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2777 = call i32 @fileno(ptr noundef %2776) #12
  %2778 = call i32 @isatty(i32 noundef %2777) #12
  %.not594 = icmp eq i32 %2778, 0
  br i1 %.not594, label %2779, label %2780

2779:                                             ; preds = %2775, %2769
  br label %2780

2780:                                             ; preds = %2775, %2779
  %.str.5.sink1570 = phi ptr [ @.str.5, %2779 ], [ @.str.2, %2775 ]
  store i32 %2770, ptr %1935, 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 nonnull @.str.4) #12
  %2786 = load i32, ptr %2783, align 4, !tbaa !5
  %2787 = call ptr @s2n_strerror_debug(i32 noundef %2786, ptr noundef nonnull @.str.4) #12
  %2788 = load i32, ptr %1935, align 4, !tbaa !5
  %2789 = call ptr @strerror(i32 noundef %2788) #12
  %2790 = load i32, ptr %1935, align 4, !tbaa !5
  %2791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2781, ptr noundef nonnull %.str.5.sink1570, i32 noundef %2782, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 387, ptr noundef %2785, ptr noundef %2787, ptr noundef %2789, i32 noundef %2790) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2792:                                             ; preds = %2761
  %2793 = add nsw i32 %2766, 2
  store i32 %2793, ptr @test_count, align 4, !tbaa !5
  %lhsc = load i8, ptr %3, align 16
  %rhsc = load i8, ptr %67, align 16
  %2794 = icmp eq i8 %lhsc, %rhsc
  br i1 %2794, label %2818, label %2795

2795:                                             ; preds = %2792
  %2796 = load i32, ptr %1935, align 4, !tbaa !5
  %2797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2798 = call i32 @s2n_print_stacktrace(ptr noundef %2797) #12
  %2799 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2800 = trunc nuw i8 %2799 to i1
  br i1 %2800, label %2801, label %2805

2801:                                             ; preds = %2795
  %2802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2803 = call i32 @fileno(ptr noundef %2802) #12
  %2804 = call i32 @isatty(i32 noundef %2803) #12
  %.not595 = icmp eq i32 %2804, 0
  br i1 %.not595, label %2805, label %2806

2805:                                             ; preds = %2801, %2795
  br label %2806

2806:                                             ; preds = %2801, %2805
  %.str.5.sink1581 = phi ptr [ @.str.5, %2805 ], [ @.str.2, %2801 ]
  store i32 %2796, ptr %1935, align 4, !tbaa !5
  %2807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2808 = load i32, ptr @test_count, align 4, !tbaa !5
  %2809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call ptr @s2n_strerror(i32 noundef %2810, ptr noundef nonnull @.str.4) #12
  %2812 = load i32, ptr %2809, align 4, !tbaa !5
  %2813 = call ptr @s2n_strerror_debug(i32 noundef %2812, ptr noundef nonnull @.str.4) #12
  %2814 = load i32, ptr %1935, align 4, !tbaa !5
  %2815 = call ptr @strerror(i32 noundef %2814) #12
  %2816 = load i32, ptr %1935, align 4, !tbaa !5
  %2817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2807, ptr noundef nonnull %.str.5.sink1581, i32 noundef %2808, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 389, ptr noundef %2811, ptr noundef %2813, ptr noundef %2815, i32 noundef %2816) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2818:                                             ; preds = %2792
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %74) #12
  store i8 0, ptr %74, align 1, !tbaa !60
  %2819 = add nsw i32 %2766, 3
  store i32 %2819, ptr @test_count, align 4, !tbaa !5
  %2820 = call i32 @s2n_ktls_get_control_data(ptr noundef nonnull %70, i32 noundef 0, ptr noundef nonnull %74) #12
  %2821 = call zeroext i1 @s2n_result_is_ok(i32 %2820)
  br i1 %2821, label %2845, label %2822

2822:                                             ; preds = %2818
  %2823 = load i32, ptr %1935, align 4, !tbaa !5
  %2824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2825 = call i32 @s2n_print_stacktrace(ptr noundef %2824) #12
  %2826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2827 = trunc nuw i8 %2826 to i1
  br i1 %2827, label %2828, label %2832

2828:                                             ; preds = %2822
  %2829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2830 = call i32 @fileno(ptr noundef %2829) #12
  %2831 = call i32 @isatty(i32 noundef %2830) #12
  %.not596 = icmp eq i32 %2831, 0
  br i1 %.not596, label %2832, label %2833

2832:                                             ; preds = %2828, %2822
  br label %2833

2833:                                             ; preds = %2828, %2832
  %.str.5.sink1592 = phi ptr [ @.str.5, %2832 ], [ @.str.2, %2828 ]
  store i32 %2823, ptr %1935, align 4, !tbaa !5
  %2834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2835 = load i32, ptr @test_count, align 4, !tbaa !5
  %2836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2837 = load i32, ptr %2836, align 4, !tbaa !5
  %2838 = call ptr @s2n_strerror(i32 noundef %2837, ptr noundef nonnull @.str.4) #12
  %2839 = load i32, ptr %2836, align 4, !tbaa !5
  %2840 = call ptr @s2n_strerror_debug(i32 noundef %2839, ptr noundef nonnull @.str.4) #12
  %2841 = load i32, ptr %1935, align 4, !tbaa !5
  %2842 = call ptr @strerror(i32 noundef %2841) #12
  %2843 = load i32, ptr %1935, align 4, !tbaa !5
  %2844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2834, ptr noundef nonnull %.str.5.sink1592, i32 noundef %2835, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 391, ptr noundef %2838, ptr noundef %2840, ptr noundef %2842, i32 noundef %2843) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2845:                                             ; preds = %2818
  %2846 = load i32, ptr @test_count, align 4, !tbaa !5
  %2847 = add nsw i32 %2846, 1
  store i32 %2847, ptr @test_count, align 4, !tbaa !5
  %2848 = load i8, ptr %74, align 1, !tbaa !60
  %2849 = icmp eq i8 %2848, 43
  br i1 %2849, label %.preheader686.preheader, label %2856

.preheader686.preheader:                          ; preds = %2845
  %2850 = add nsw i32 %2846, 2
  store i32 %2850, ptr @test_count, align 4, !tbaa !5
  %2851 = load ptr, ptr %65, align 8, !tbaa !9
  %2852 = getelementptr inbounds i8, ptr %2851, i64 72
  %2853 = load ptr, ptr %2852, align 8, !tbaa !59
  %2854 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %2853, ptr noundef nonnull %70) #12
  %2855 = icmp eq i64 %2854, -1
  br i1 %2855, label %2951, label %2928

2856:                                             ; preds = %2845
  %2857 = load i32, ptr %1935, align 4, !tbaa !5
  %2858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2859 = call i32 @s2n_print_stacktrace(ptr noundef %2858) #12
  %2860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2861 = trunc nuw i8 %2860 to i1
  br i1 %2861, label %2862, label %2866

2862:                                             ; preds = %2856
  %2863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2864 = call i32 @fileno(ptr noundef %2863) #12
  %2865 = call i32 @isatty(i32 noundef %2864) #12
  %.not597 = icmp eq i32 %2865, 0
  br i1 %.not597, label %2866, label %2867

2866:                                             ; preds = %2862, %2856
  br label %2867

2867:                                             ; preds = %2862, %2866
  %.str.5.sink1603 = phi ptr [ @.str.5, %2866 ], [ @.str.2, %2862 ]
  store i32 %2857, ptr %1935, align 4, !tbaa !5
  %2868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2869 = load i32, ptr @test_count, align 4, !tbaa !5
  %2870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2871 = load i32, ptr %2870, align 4, !tbaa !5
  %2872 = call ptr @s2n_strerror(i32 noundef %2871, ptr noundef nonnull @.str.4) #12
  %2873 = load i32, ptr %2870, align 4, !tbaa !5
  %2874 = call ptr @s2n_strerror_debug(i32 noundef %2873, ptr noundef nonnull @.str.4) #12
  %2875 = load i32, ptr %1935, align 4, !tbaa !5
  %2876 = call ptr @strerror(i32 noundef %2875) #12
  %2877 = load i32, ptr %1935, align 4, !tbaa !5
  %2878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2868, ptr noundef nonnull %.str.5.sink1603, i32 noundef %2869, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 392, ptr noundef %2872, ptr noundef %2874, ptr noundef %2876, i32 noundef %2877) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.preheader686.1:                                  ; preds = %2951
  %2879 = add nsw i32 %2952, 2
  store i32 %2879, ptr @test_count, align 4, !tbaa !5
  %2880 = load ptr, ptr %65, align 8, !tbaa !9
  %2881 = getelementptr inbounds i8, ptr %2880, i64 72
  %2882 = load ptr, ptr %2881, align 8, !tbaa !59
  %2883 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %2882, ptr noundef nonnull %70) #12
  %2884 = icmp eq i64 %2883, -1
  br i1 %2884, label %2885, label %2928

2885:                                             ; preds = %.preheader686.1
  %2886 = load i32, ptr @test_count, align 4, !tbaa !5
  %2887 = add nsw i32 %2886, 1
  store i32 %2887, ptr @test_count, align 4, !tbaa !5
  %2888 = load i32, ptr %1935, align 4, !tbaa !5
  %2889 = icmp eq i32 %2888, 11
  br i1 %2889, label %.preheader686.2, label %2956

.preheader686.2:                                  ; preds = %2885
  %2890 = add nsw i32 %2886, 2
  store i32 %2890, ptr @test_count, align 4, !tbaa !5
  %2891 = load ptr, ptr %65, align 8, !tbaa !9
  %2892 = getelementptr inbounds i8, ptr %2891, i64 72
  %2893 = load ptr, ptr %2892, align 8, !tbaa !59
  %2894 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %2893, ptr noundef nonnull %70) #12
  %2895 = icmp eq i64 %2894, -1
  br i1 %2895, label %2896, label %2928

2896:                                             ; preds = %.preheader686.2
  %2897 = load i32, ptr @test_count, align 4, !tbaa !5
  %2898 = add nsw i32 %2897, 1
  store i32 %2898, ptr @test_count, align 4, !tbaa !5
  %2899 = load i32, ptr %1935, align 4, !tbaa !5
  %2900 = icmp eq i32 %2899, 11
  br i1 %2900, label %.preheader686.3, label %2956

.preheader686.3:                                  ; preds = %2896
  %2901 = add nsw i32 %2897, 2
  store i32 %2901, ptr @test_count, align 4, !tbaa !5
  %2902 = load ptr, ptr %65, align 8, !tbaa !9
  %2903 = getelementptr inbounds i8, ptr %2902, i64 72
  %2904 = load ptr, ptr %2903, align 8, !tbaa !59
  %2905 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %2904, ptr noundef nonnull %70) #12
  %2906 = icmp eq i64 %2905, -1
  br i1 %2906, label %2907, label %2928

2907:                                             ; preds = %.preheader686.3
  %2908 = load i32, ptr @test_count, align 4, !tbaa !5
  %2909 = add nsw i32 %2908, 1
  store i32 %2909, ptr @test_count, align 4, !tbaa !5
  %2910 = load i32, ptr %1935, align 4, !tbaa !5
  %2911 = icmp eq i32 %2910, 11
  br i1 %2911, label %.preheader686.4, label %2956

.preheader686.4:                                  ; preds = %2907
  %2912 = add nsw i32 %2908, 2
  store i32 %2912, ptr @test_count, align 4, !tbaa !5
  %2913 = load ptr, ptr %65, align 8, !tbaa !9
  %2914 = getelementptr inbounds i8, ptr %2913, i64 72
  %2915 = load ptr, ptr %2914, align 8, !tbaa !59
  %2916 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %2915, ptr noundef nonnull %70) #12
  %2917 = icmp eq i64 %2916, -1
  br i1 %2917, label %2918, label %2928

2918:                                             ; preds = %.preheader686.4
  %2919 = load i32, ptr @test_count, align 4, !tbaa !5
  %2920 = add nsw i32 %2919, 1
  store i32 %2920, ptr @test_count, align 4, !tbaa !5
  %2921 = load i32, ptr %1935, align 4, !tbaa !5
  %2922 = icmp eq i32 %2921, 11
  br i1 %2922, label %2923, label %2956

2923:                                             ; preds = %2918
  %2924 = add nsw i32 %2919, 2
  store i32 %2924, ptr @test_count, align 4, !tbaa !5
  %2925 = getelementptr inbounds i8, ptr %66, i64 80
  %2926 = load i64, ptr %2925, align 8, !tbaa !50
  %2927 = icmp eq i64 %2926, 1
  br i1 %2927, label %3001, label %2978

2928:                                             ; preds = %.preheader686.4, %.preheader686.3, %.preheader686.2, %.preheader686.1, %.preheader686.preheader
  %2929 = load i32, ptr %1935, align 4, !tbaa !5
  %2930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2931 = call i32 @s2n_print_stacktrace(ptr noundef %2930) #12
  %2932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2933 = trunc nuw i8 %2932 to i1
  br i1 %2933, label %2934, label %2938

2934:                                             ; preds = %2928
  %2935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2936 = call i32 @fileno(ptr noundef %2935) #12
  %2937 = call i32 @isatty(i32 noundef %2936) #12
  %.not658 = icmp eq i32 %2937, 0
  br i1 %.not658, label %2938, label %2939

2938:                                             ; preds = %2934, %2928
  br label %2939

2939:                                             ; preds = %2934, %2938
  %.str.5.sink1614 = phi ptr [ @.str.5, %2938 ], [ @.str.2, %2934 ]
  store i32 %2929, ptr %1935, align 4, !tbaa !5
  %2940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2941 = load i32, ptr @test_count, align 4, !tbaa !5
  %2942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2943 = load i32, ptr %2942, align 4, !tbaa !5
  %2944 = call ptr @s2n_strerror(i32 noundef %2943, ptr noundef nonnull @.str.4) #12
  %2945 = load i32, ptr %2942, align 4, !tbaa !5
  %2946 = call ptr @s2n_strerror_debug(i32 noundef %2945, ptr noundef nonnull @.str.4) #12
  %2947 = load i32, ptr %1935, align 4, !tbaa !5
  %2948 = call ptr @strerror(i32 noundef %2947) #12
  %2949 = load i32, ptr %1935, align 4, !tbaa !5
  %2950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2940, ptr noundef nonnull %.str.5.sink1614, i32 noundef %2941, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 397, ptr noundef %2944, ptr noundef %2946, ptr noundef %2948, i32 noundef %2949) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2951:                                             ; preds = %.preheader686.preheader
  %2952 = load i32, ptr @test_count, align 4, !tbaa !5
  %2953 = add nsw i32 %2952, 1
  store i32 %2953, ptr @test_count, align 4, !tbaa !5
  %2954 = load i32, ptr %1935, align 4, !tbaa !5
  %2955 = icmp eq i32 %2954, 11
  br i1 %2955, label %.preheader686.1, label %2956

2956:                                             ; preds = %2918, %2907, %2896, %2885, %2951
  %.lcssa711 = phi i32 [ %2954, %2951 ], [ %2888, %2885 ], [ %2899, %2896 ], [ %2910, %2907 ], [ %2921, %2918 ]
  %2957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2958 = call i32 @s2n_print_stacktrace(ptr noundef %2957) #12
  %2959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2960 = trunc nuw i8 %2959 to i1
  br i1 %2960, label %2961, label %2965

2961:                                             ; preds = %2956
  %2962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2963 = call i32 @fileno(ptr noundef %2962) #12
  %2964 = call i32 @isatty(i32 noundef %2963) #12
  %.not659 = icmp eq i32 %2964, 0
  br i1 %.not659, label %2965, label %2966

2965:                                             ; preds = %2961, %2956
  br label %2966

2966:                                             ; preds = %2961, %2965
  %.str.5.sink1625 = phi ptr [ @.str.5, %2965 ], [ @.str.2, %2961 ]
  store i32 %.lcssa711, ptr %1935, align 4, !tbaa !5
  %2967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2968 = load i32, ptr @test_count, align 4, !tbaa !5
  %2969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2970 = load i32, ptr %2969, align 4, !tbaa !5
  %2971 = call ptr @s2n_strerror(i32 noundef %2970, ptr noundef nonnull @.str.4) #12
  %2972 = load i32, ptr %2969, align 4, !tbaa !5
  %2973 = call ptr @s2n_strerror_debug(i32 noundef %2972, ptr noundef nonnull @.str.4) #12
  %2974 = load i32, ptr %1935, align 4, !tbaa !5
  %2975 = call ptr @strerror(i32 noundef %2974) #12
  %2976 = load i32, ptr %1935, align 4, !tbaa !5
  %2977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2967, ptr noundef nonnull %.str.5.sink1625, i32 noundef %2968, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 398, ptr noundef %2971, ptr noundef %2973, ptr noundef %2975, i32 noundef %2976) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2978:                                             ; preds = %2923
  %2979 = load i32, ptr %1935, align 4, !tbaa !5
  %2980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2981 = call i32 @s2n_print_stacktrace(ptr noundef %2980) #12
  %2982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2983 = trunc nuw i8 %2982 to i1
  br i1 %2983, label %2984, label %2988

2984:                                             ; preds = %2978
  %2985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2986 = call i32 @fileno(ptr noundef %2985) #12
  %2987 = call i32 @isatty(i32 noundef %2986) #12
  %.not598 = icmp eq i32 %2987, 0
  br i1 %.not598, label %2988, label %2989

2988:                                             ; preds = %2984, %2978
  br label %2989

2989:                                             ; preds = %2984, %2988
  %.str.5.sink1636 = phi ptr [ @.str.5, %2988 ], [ @.str.2, %2984 ]
  store i32 %2979, ptr %1935, align 4, !tbaa !5
  %2990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2991 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2993, ptr noundef nonnull @.str.4) #12
  %2995 = load i32, ptr %2992, align 4, !tbaa !5
  %2996 = call ptr @s2n_strerror_debug(i32 noundef %2995, ptr noundef nonnull @.str.4) #12
  %2997 = load i32, ptr %1935, align 4, !tbaa !5
  %2998 = call ptr @strerror(i32 noundef %2997) #12
  %2999 = load i32, ptr %1935, align 4, !tbaa !5
  %3000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2990, ptr noundef nonnull %.str.5.sink1636, i32 noundef %2991, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 401, ptr noundef %2994, ptr noundef %2996, ptr noundef %2998, i32 noundef %2999) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3001:                                             ; preds = %2923
  %3002 = add nsw i32 %2919, 3
  store i32 %3002, ptr @test_count, align 4, !tbaa !5
  %3003 = getelementptr inbounds i8, ptr %66, i64 88
  %3004 = load i64, ptr %3003, align 8, !tbaa !61
  %3005 = icmp eq i64 %3004, 7
  br i1 %3005, label %3029, label %3006

3006:                                             ; preds = %3001
  %3007 = load i32, ptr %1935, align 4, !tbaa !5
  %3008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3009 = call i32 @s2n_print_stacktrace(ptr noundef %3008) #12
  %3010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3011 = trunc nuw i8 %3010 to i1
  br i1 %3011, label %3012, label %3016

3012:                                             ; preds = %3006
  %3013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3014 = call i32 @fileno(ptr noundef %3013) #12
  %3015 = call i32 @isatty(i32 noundef %3014) #12
  %.not599 = icmp eq i32 %3015, 0
  br i1 %.not599, label %3016, label %3017

3016:                                             ; preds = %3012, %3006
  br label %3017

3017:                                             ; preds = %3012, %3016
  %.str.5.sink1647 = phi ptr [ @.str.5, %3016 ], [ @.str.2, %3012 ]
  store i32 %3007, ptr %1935, align 4, !tbaa !5
  %3018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3019 = load i32, ptr @test_count, align 4, !tbaa !5
  %3020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3021 = load i32, ptr %3020, align 4, !tbaa !5
  %3022 = call ptr @s2n_strerror(i32 noundef %3021, ptr noundef nonnull @.str.4) #12
  %3023 = load i32, ptr %3020, align 4, !tbaa !5
  %3024 = call ptr @s2n_strerror_debug(i32 noundef %3023, ptr noundef nonnull @.str.4) #12
  %3025 = load i32, ptr %1935, align 4, !tbaa !5
  %3026 = call ptr @strerror(i32 noundef %3025) #12
  %3027 = load i32, ptr %1935, align 4, !tbaa !5
  %3028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3018, ptr noundef nonnull %.str.5.sink1647, i32 noundef %3019, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 402, ptr noundef %3022, ptr noundef %3024, ptr noundef %3026, i32 noundef %3027) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3029:                                             ; preds = %3001
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %74) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %73) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %72) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %70) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %69) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #12
  call void @llvm.lifetime.end.p0(i64 16384, ptr nonnull %67) #12
  %3030 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef nonnull %66) #12
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %66) #12
  %3031 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %65) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #12
  %3032 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %64) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #12
  %3033 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %3033, ptr %75, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %76) #12
  %3034 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %3034, ptr %76, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %77) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(192) %77, i8 0, i64 192, i1 false)
  %3035 = load i32, ptr @test_count, align 4, !tbaa !5
  %3036 = add nsw i32 %3035, 1
  store i32 %3036, ptr @test_count, align 4, !tbaa !5
  %3037 = load ptr, ptr %75, align 8, !tbaa !9
  %3038 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %3037, ptr noundef %3034, ptr noundef nonnull %77) #12
  %3039 = call zeroext i1 @s2n_result_is_ok(i32 %3038)
  br i1 %3039, label %3063, label %3040

3040:                                             ; preds = %3029
  %3041 = load i32, ptr %1935, align 4, !tbaa !5
  %3042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3043 = call i32 @s2n_print_stacktrace(ptr noundef %3042) #12
  %3044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3045 = trunc nuw i8 %3044 to i1
  br i1 %3045, label %3046, label %3050

3046:                                             ; preds = %3040
  %3047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3048 = call i32 @fileno(ptr noundef %3047) #12
  %3049 = call i32 @isatty(i32 noundef %3048) #12
  %.not600 = icmp eq i32 %3049, 0
  br i1 %.not600, label %3050, label %3051

3050:                                             ; preds = %3046, %3040
  br label %3051

3051:                                             ; preds = %3046, %3050
  %.str.5.sink1658 = phi ptr [ @.str.5, %3050 ], [ @.str.2, %3046 ]
  store i32 %3041, ptr %1935, align 4, !tbaa !5
  %3052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3053 = load i32, ptr @test_count, align 4, !tbaa !5
  %3054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3055 = load i32, ptr %3054, align 4, !tbaa !5
  %3056 = call ptr @s2n_strerror(i32 noundef %3055, ptr noundef nonnull @.str.4) #12
  %3057 = load i32, ptr %3054, align 4, !tbaa !5
  %3058 = call ptr @s2n_strerror_debug(i32 noundef %3057, ptr noundef nonnull @.str.4) #12
  %3059 = load i32, ptr %1935, align 4, !tbaa !5
  %3060 = call ptr @strerror(i32 noundef %3059) #12
  %3061 = load i32, ptr %1935, align 4, !tbaa !5
  %3062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3052, ptr noundef nonnull %.str.5.sink1658, i32 noundef %3053, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 413, ptr noundef %3056, ptr noundef %3058, ptr noundef %3060, i32 noundef %3061) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3063:                                             ; preds = %3029
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %78) #12
  store ptr %3, ptr %78, align 8, !tbaa !15
  %3064 = getelementptr inbounds i8, ptr %78, i64 8
  store i64 10, ptr %3064, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %79) #12
  store ptr null, ptr %79, align 8, !tbaa !19
  %3065 = getelementptr inbounds i8, ptr %79, i64 8
  store i32 0, ptr %3065, align 8, !tbaa !21
  %3066 = getelementptr inbounds i8, ptr %79, i64 16
  store ptr %78, ptr %3066, align 8, !tbaa !22
  %3067 = getelementptr inbounds i8, ptr %79, i64 24
  store i64 1, ptr %3067, align 8, !tbaa !23
  %3068 = getelementptr inbounds i8, ptr %79, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %3068, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %80) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %80, i8 0, i64 100, i1 false)
  %3069 = load i32, ptr @test_count, align 4, !tbaa !5
  %3070 = add nsw i32 %3069, 1
  store i32 %3070, ptr @test_count, align 4, !tbaa !5
  %3071 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %79, ptr noundef nonnull %80, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %3072 = call zeroext i1 @s2n_result_is_ok(i32 %3071)
  br i1 %3072, label %3096, label %3073

3073:                                             ; preds = %3063
  %3074 = load i32, ptr %1935, align 4, !tbaa !5
  %3075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3076 = call i32 @s2n_print_stacktrace(ptr noundef %3075) #12
  %3077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3078 = trunc nuw i8 %3077 to i1
  br i1 %3078, label %3079, label %3083

3079:                                             ; preds = %3073
  %3080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3081 = call i32 @fileno(ptr noundef %3080) #12
  %3082 = call i32 @isatty(i32 noundef %3081) #12
  %.not601 = icmp eq i32 %3082, 0
  br i1 %.not601, label %3083, label %3084

3083:                                             ; preds = %3079, %3073
  br label %3084

3084:                                             ; preds = %3079, %3083
  %.str.5.sink1669 = phi ptr [ @.str.5, %3083 ], [ @.str.2, %3079 ]
  store i32 %3074, ptr %1935, align 4, !tbaa !5
  %3085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3086 = load i32, ptr @test_count, align 4, !tbaa !5
  %3087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3088 = load i32, ptr %3087, align 4, !tbaa !5
  %3089 = call ptr @s2n_strerror(i32 noundef %3088, ptr noundef nonnull @.str.4) #12
  %3090 = load i32, ptr %3087, align 4, !tbaa !5
  %3091 = call ptr @s2n_strerror_debug(i32 noundef %3090, ptr noundef nonnull @.str.4) #12
  %3092 = load i32, ptr %1935, align 4, !tbaa !5
  %3093 = call ptr @strerror(i32 noundef %3092) #12
  %3094 = load i32, ptr %1935, align 4, !tbaa !5
  %3095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3085, ptr noundef nonnull %.str.5.sink1669, i32 noundef %3086, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 423, ptr noundef %3089, ptr noundef %3091, ptr noundef %3093, i32 noundef %3094) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3096:                                             ; preds = %3063
  %3097 = load ptr, ptr %75, align 8, !tbaa !9
  %3098 = getelementptr inbounds i8, ptr %3097, i64 64
  %3099 = load ptr, ptr %3098, align 8, !tbaa !24
  %3100 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %3099, ptr noundef nonnull %79) #12
  %3101 = load i32, ptr @test_count, align 4, !tbaa !5
  %3102 = add nsw i32 %3101, 1
  store i32 %3102, ptr @test_count, align 4, !tbaa !5
  %3103 = icmp eq i64 %3100, 10
  br i1 %3103, label %3127, label %3104

3104:                                             ; preds = %3096
  %3105 = load i32, ptr %1935, align 4, !tbaa !5
  %3106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3107 = call i32 @s2n_print_stacktrace(ptr noundef %3106) #12
  %3108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3109 = trunc nuw i8 %3108 to i1
  br i1 %3109, label %3110, label %3114

3110:                                             ; preds = %3104
  %3111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3112 = call i32 @fileno(ptr noundef %3111) #12
  %3113 = call i32 @isatty(i32 noundef %3112) #12
  %.not602 = icmp eq i32 %3113, 0
  br i1 %.not602, label %3114, label %3115

3114:                                             ; preds = %3110, %3104
  br label %3115

3115:                                             ; preds = %3110, %3114
  %.str.5.sink1680 = phi ptr [ @.str.5, %3114 ], [ @.str.2, %3110 ]
  store i32 %3105, ptr %1935, align 4, !tbaa !5
  %3116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3117 = load i32, ptr @test_count, align 4, !tbaa !5
  %3118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3119 = load i32, ptr %3118, align 4, !tbaa !5
  %3120 = call ptr @s2n_strerror(i32 noundef %3119, ptr noundef nonnull @.str.4) #12
  %3121 = load i32, ptr %3118, align 4, !tbaa !5
  %3122 = call ptr @s2n_strerror_debug(i32 noundef %3121, ptr noundef nonnull @.str.4) #12
  %3123 = load i32, ptr %1935, align 4, !tbaa !5
  %3124 = call ptr @strerror(i32 noundef %3123) #12
  %3125 = load i32, ptr %1935, align 4, !tbaa !5
  %3126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3116, ptr noundef nonnull %.str.5.sink1680, i32 noundef %3117, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 425, ptr noundef %3120, ptr noundef %3122, ptr noundef %3124, i32 noundef %3125) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3127:                                             ; preds = %3096
  call void @llvm.lifetime.start.p0(i64 16384, ptr nonnull %81) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16384) %81, i8 0, i64 16384, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %82) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %82, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %83) #12
  store ptr %81, ptr %83, align 8, !tbaa !15
  %3128 = getelementptr inbounds i8, ptr %83, i64 8
  store i64 3, ptr %3128, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %84) #12
  store ptr null, ptr %84, align 8, !tbaa !19
  %3129 = getelementptr inbounds i8, ptr %84, i64 8
  store i32 0, ptr %3129, align 8, !tbaa !21
  %3130 = getelementptr inbounds i8, ptr %84, i64 16
  store ptr %83, ptr %3130, align 8, !tbaa !22
  %3131 = getelementptr inbounds i8, ptr %84, i64 24
  store i64 1, ptr %3131, align 8, !tbaa !23
  %3132 = getelementptr inbounds i8, ptr %84, i64 32
  store ptr %82, ptr %3132, align 8, !tbaa !56
  %3133 = getelementptr inbounds i8, ptr %84, i64 40
  store i64 100, ptr %3133, align 8, !tbaa !57
  %3134 = getelementptr inbounds i8, ptr %84, i64 48
  store i32 0, ptr %3134, align 8, !tbaa !58
  %3135 = load ptr, ptr %76, align 8, !tbaa !9
  %3136 = getelementptr inbounds i8, ptr %3135, i64 72
  %3137 = load ptr, ptr %3136, align 8, !tbaa !59
  %3138 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %3137, ptr noundef nonnull %84) #12
  %3139 = load i32, ptr @test_count, align 4, !tbaa !5
  %3140 = add nsw i32 %3139, 1
  store i32 %3140, ptr @test_count, align 4, !tbaa !5
  %3141 = icmp eq i64 %3138, 3
  br i1 %3141, label %3165, label %3142

3142:                                             ; preds = %3127
  %3143 = load i32, ptr %1935, align 4, !tbaa !5
  %3144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3145 = call i32 @s2n_print_stacktrace(ptr noundef %3144) #12
  %3146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3147 = trunc nuw i8 %3146 to i1
  br i1 %3147, label %3148, label %3152

3148:                                             ; preds = %3142
  %3149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3150 = call i32 @fileno(ptr noundef %3149) #12
  %3151 = call i32 @isatty(i32 noundef %3150) #12
  %.not603 = icmp eq i32 %3151, 0
  br i1 %.not603, label %3152, label %3153

3152:                                             ; preds = %3148, %3142
  br label %3153

3153:                                             ; preds = %3148, %3152
  %.str.5.sink1691 = phi ptr [ @.str.5, %3152 ], [ @.str.2, %3148 ]
  store i32 %3143, ptr %1935, align 4, !tbaa !5
  %3154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3155 = load i32, ptr @test_count, align 4, !tbaa !5
  %3156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3157 = load i32, ptr %3156, align 4, !tbaa !5
  %3158 = call ptr @s2n_strerror(i32 noundef %3157, ptr noundef nonnull @.str.4) #12
  %3159 = load i32, ptr %3156, align 4, !tbaa !5
  %3160 = call ptr @s2n_strerror_debug(i32 noundef %3159, ptr noundef nonnull @.str.4) #12
  %3161 = load i32, ptr %1935, align 4, !tbaa !5
  %3162 = call ptr @strerror(i32 noundef %3161) #12
  %3163 = load i32, ptr %1935, align 4, !tbaa !5
  %3164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3154, ptr noundef nonnull %.str.5.sink1691, i32 noundef %3155, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 437, ptr noundef %3158, ptr noundef %3160, ptr noundef %3162, i32 noundef %3163) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3165:                                             ; preds = %3127
  %3166 = add nsw i32 %3139, 2
  store i32 %3166, ptr @test_count, align 4, !tbaa !5
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(3) %3, ptr noundef nonnull dereferenceable(3) %81, i64 3)
  %3167 = icmp eq i32 %bcmp, 0
  br i1 %3167, label %3191, label %3168

3168:                                             ; preds = %3165
  %3169 = load i32, ptr %1935, align 4, !tbaa !5
  %3170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3171 = call i32 @s2n_print_stacktrace(ptr noundef %3170) #12
  %3172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3173 = trunc nuw i8 %3172 to i1
  br i1 %3173, label %3174, label %3178

3174:                                             ; preds = %3168
  %3175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3176 = call i32 @fileno(ptr noundef %3175) #12
  %3177 = call i32 @isatty(i32 noundef %3176) #12
  %.not604 = icmp eq i32 %3177, 0
  br i1 %.not604, label %3178, label %3179

3178:                                             ; preds = %3174, %3168
  br label %3179

3179:                                             ; preds = %3174, %3178
  %.str.5.sink1702 = phi ptr [ @.str.5, %3178 ], [ @.str.2, %3174 ]
  store i32 %3169, ptr %1935, align 4, !tbaa !5
  %3180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3181 = load i32, ptr @test_count, align 4, !tbaa !5
  %3182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3183 = load i32, ptr %3182, align 4, !tbaa !5
  %3184 = call ptr @s2n_strerror(i32 noundef %3183, ptr noundef nonnull @.str.4) #12
  %3185 = load i32, ptr %3182, align 4, !tbaa !5
  %3186 = call ptr @s2n_strerror_debug(i32 noundef %3185, ptr noundef nonnull @.str.4) #12
  %3187 = load i32, ptr %1935, align 4, !tbaa !5
  %3188 = call ptr @strerror(i32 noundef %3187) #12
  %3189 = load i32, ptr %1935, align 4, !tbaa !5
  %3190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3180, ptr noundef nonnull %.str.5.sink1702, i32 noundef %3181, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 439, ptr noundef %3184, ptr noundef %3186, ptr noundef %3188, i32 noundef %3189) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3191:                                             ; preds = %3165
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %85) #12
  store i8 0, ptr %85, align 1, !tbaa !60
  %3192 = add nsw i32 %3139, 3
  store i32 %3192, ptr @test_count, align 4, !tbaa !5
  %3193 = call i32 @s2n_ktls_get_control_data(ptr noundef nonnull %84, i32 noundef 0, ptr noundef nonnull %85) #12
  %3194 = call zeroext i1 @s2n_result_is_ok(i32 %3193)
  br i1 %3194, label %3218, label %3195

3195:                                             ; preds = %3191
  %3196 = load i32, ptr %1935, align 4, !tbaa !5
  %3197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3198 = call i32 @s2n_print_stacktrace(ptr noundef %3197) #12
  %3199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3200 = trunc nuw i8 %3199 to i1
  br i1 %3200, label %3201, label %3205

3201:                                             ; preds = %3195
  %3202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3203 = call i32 @fileno(ptr noundef %3202) #12
  %3204 = call i32 @isatty(i32 noundef %3203) #12
  %.not605 = icmp eq i32 %3204, 0
  br i1 %.not605, label %3205, label %3206

3205:                                             ; preds = %3201, %3195
  br label %3206

3206:                                             ; preds = %3201, %3205
  %.str.5.sink1713 = phi ptr [ @.str.5, %3205 ], [ @.str.2, %3201 ]
  store i32 %3196, ptr %1935, align 4, !tbaa !5
  %3207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3208 = load i32, ptr @test_count, align 4, !tbaa !5
  %3209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3210 = load i32, ptr %3209, align 4, !tbaa !5
  %3211 = call ptr @s2n_strerror(i32 noundef %3210, ptr noundef nonnull @.str.4) #12
  %3212 = load i32, ptr %3209, align 4, !tbaa !5
  %3213 = call ptr @s2n_strerror_debug(i32 noundef %3212, ptr noundef nonnull @.str.4) #12
  %3214 = load i32, ptr %1935, align 4, !tbaa !5
  %3215 = call ptr @strerror(i32 noundef %3214) #12
  %3216 = load i32, ptr %1935, align 4, !tbaa !5
  %3217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3207, ptr noundef nonnull %.str.5.sink1713, i32 noundef %3208, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 441, ptr noundef %3211, ptr noundef %3213, ptr noundef %3215, i32 noundef %3216) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3218:                                             ; preds = %3191
  %3219 = load i32, ptr @test_count, align 4, !tbaa !5
  %3220 = add nsw i32 %3219, 1
  store i32 %3220, ptr @test_count, align 4, !tbaa !5
  %3221 = load i8, ptr %85, align 1, !tbaa !60
  %3222 = icmp eq i8 %3221, 43
  br i1 %3222, label %3246, label %3223

3223:                                             ; preds = %3218
  %3224 = load i32, ptr %1935, align 4, !tbaa !5
  %3225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3226 = call i32 @s2n_print_stacktrace(ptr noundef %3225) #12
  %3227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3228 = trunc nuw i8 %3227 to i1
  br i1 %3228, label %3229, label %3233

3229:                                             ; preds = %3223
  %3230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3231 = call i32 @fileno(ptr noundef %3230) #12
  %3232 = call i32 @isatty(i32 noundef %3231) #12
  %.not606 = icmp eq i32 %3232, 0
  br i1 %.not606, label %3233, label %3234

3233:                                             ; preds = %3229, %3223
  br label %3234

3234:                                             ; preds = %3229, %3233
  %.str.5.sink1724 = phi ptr [ @.str.5, %3233 ], [ @.str.2, %3229 ]
  store i32 %3224, ptr %1935, align 4, !tbaa !5
  %3235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3236 = load i32, ptr @test_count, align 4, !tbaa !5
  %3237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3238 = load i32, ptr %3237, align 4, !tbaa !5
  %3239 = call ptr @s2n_strerror(i32 noundef %3238, ptr noundef nonnull @.str.4) #12
  %3240 = load i32, ptr %3237, align 4, !tbaa !5
  %3241 = call ptr @s2n_strerror_debug(i32 noundef %3240, ptr noundef nonnull @.str.4) #12
  %3242 = load i32, ptr %1935, align 4, !tbaa !5
  %3243 = call ptr @strerror(i32 noundef %3242) #12
  %3244 = load i32, ptr %1935, align 4, !tbaa !5
  %3245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3235, ptr noundef nonnull %.str.5.sink1724, i32 noundef %3236, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef %3239, ptr noundef %3241, ptr noundef %3243, i32 noundef %3244) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3246:                                             ; preds = %3218
  %3247 = add nsw i32 %3219, 2
  store i32 %3247, ptr @test_count, align 4, !tbaa !5
  %3248 = getelementptr inbounds i8, ptr %77, i64 28
  %3249 = load i32, ptr %3248, align 4, !tbaa !54
  %3250 = getelementptr inbounds i8, ptr %77, i64 24
  %3251 = load i32, ptr %3250, align 8, !tbaa !55
  %3252 = sub i32 %3249, %3251
  %3253 = icmp eq i32 %3252, 3
  br i1 %3253, label %3277, label %3254

3254:                                             ; preds = %3246
  %3255 = load i32, ptr %1935, align 4, !tbaa !5
  %3256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3257 = call i32 @s2n_print_stacktrace(ptr noundef %3256) #12
  %3258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3259 = trunc nuw i8 %3258 to i1
  br i1 %3259, label %3260, label %3264

3260:                                             ; preds = %3254
  %3261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3262 = call i32 @fileno(ptr noundef %3261) #12
  %3263 = call i32 @isatty(i32 noundef %3262) #12
  %.not607 = icmp eq i32 %3263, 0
  br i1 %.not607, label %3264, label %3265

3264:                                             ; preds = %3260, %3254
  br label %3265

3265:                                             ; preds = %3260, %3264
  %.str.5.sink1735 = phi ptr [ @.str.5, %3264 ], [ @.str.2, %3260 ]
  store i32 %3255, ptr %1935, align 4, !tbaa !5
  %3266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3267 = load i32, ptr @test_count, align 4, !tbaa !5
  %3268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3269 = load i32, ptr %3268, align 4, !tbaa !5
  %3270 = call ptr @s2n_strerror(i32 noundef %3269, ptr noundef nonnull @.str.4) #12
  %3271 = load i32, ptr %3268, align 4, !tbaa !5
  %3272 = call ptr @s2n_strerror_debug(i32 noundef %3271, ptr noundef nonnull @.str.4) #12
  %3273 = load i32, ptr %1935, align 4, !tbaa !5
  %3274 = call ptr @strerror(i32 noundef %3273) #12
  %3275 = load i32, ptr %1935, align 4, !tbaa !5
  %3276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3266, ptr noundef nonnull %.str.5.sink1735, i32 noundef %3267, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 445, ptr noundef %3270, ptr noundef %3272, ptr noundef %3274, i32 noundef %3275) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3277:                                             ; preds = %3246
  %3278 = getelementptr inbounds i8, ptr %81, i64 3
  store ptr %3278, ptr %83, align 8, !tbaa !15
  store i64 7, ptr %3128, align 8, !tbaa !18
  %3279 = load ptr, ptr %76, align 8, !tbaa !9
  %3280 = getelementptr inbounds i8, ptr %3279, i64 72
  %3281 = load ptr, ptr %3280, align 8, !tbaa !59
  %3282 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %3281, ptr noundef nonnull %84) #12
  %3283 = load i32, ptr @test_count, align 4, !tbaa !5
  %3284 = add nsw i32 %3283, 1
  store i32 %3284, ptr @test_count, align 4, !tbaa !5
  %3285 = icmp eq i64 %3282, 7
  br i1 %3285, label %3309, label %3286

3286:                                             ; preds = %3277
  %3287 = load i32, ptr %1935, align 4, !tbaa !5
  %3288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3289 = call i32 @s2n_print_stacktrace(ptr noundef %3288) #12
  %3290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3291 = trunc nuw i8 %3290 to i1
  br i1 %3291, label %3292, label %3296

3292:                                             ; preds = %3286
  %3293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3294 = call i32 @fileno(ptr noundef %3293) #12
  %3295 = call i32 @isatty(i32 noundef %3294) #12
  %.not608 = icmp eq i32 %3295, 0
  br i1 %.not608, label %3296, label %3297

3296:                                             ; preds = %3292, %3286
  br label %3297

3297:                                             ; preds = %3292, %3296
  %.str.5.sink1746 = phi ptr [ @.str.5, %3296 ], [ @.str.2, %3292 ]
  store i32 %3287, ptr %1935, 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 nonnull @.str.4) #12
  %3303 = load i32, ptr %3300, align 4, !tbaa !5
  %3304 = call ptr @s2n_strerror_debug(i32 noundef %3303, ptr noundef nonnull @.str.4) #12
  %3305 = load i32, ptr %1935, align 4, !tbaa !5
  %3306 = call ptr @strerror(i32 noundef %3305) #12
  %3307 = load i32, ptr %1935, align 4, !tbaa !5
  %3308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3298, ptr noundef nonnull %.str.5.sink1746, i32 noundef %3299, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 451, ptr noundef %3302, ptr noundef %3304, ptr noundef %3306, i32 noundef %3307) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3309:                                             ; preds = %3277
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %86) #12
  store i8 0, ptr %86, align 1, !tbaa !60
  %3310 = add nsw i32 %3283, 2
  store i32 %3310, ptr @test_count, align 4, !tbaa !5
  %3311 = call i32 @s2n_ktls_get_control_data(ptr noundef nonnull %84, i32 noundef 0, ptr noundef nonnull %86) #12
  %3312 = call zeroext i1 @s2n_result_is_ok(i32 %3311)
  br i1 %3312, label %3336, label %3313

3313:                                             ; preds = %3309
  %3314 = load i32, ptr %1935, align 4, !tbaa !5
  %3315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3316 = call i32 @s2n_print_stacktrace(ptr noundef %3315) #12
  %3317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3318 = trunc nuw i8 %3317 to i1
  br i1 %3318, label %3319, label %3323

3319:                                             ; preds = %3313
  %3320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3321 = call i32 @fileno(ptr noundef %3320) #12
  %3322 = call i32 @isatty(i32 noundef %3321) #12
  %.not609 = icmp eq i32 %3322, 0
  br i1 %.not609, label %3323, label %3324

3323:                                             ; preds = %3319, %3313
  br label %3324

3324:                                             ; preds = %3319, %3323
  %.str.5.sink1757 = phi ptr [ @.str.5, %3323 ], [ @.str.2, %3319 ]
  store i32 %3314, ptr %1935, align 4, !tbaa !5
  %3325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3326 = load i32, ptr @test_count, align 4, !tbaa !5
  %3327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3328 = load i32, ptr %3327, align 4, !tbaa !5
  %3329 = call ptr @s2n_strerror(i32 noundef %3328, ptr noundef nonnull @.str.4) #12
  %3330 = load i32, ptr %3327, align 4, !tbaa !5
  %3331 = call ptr @s2n_strerror_debug(i32 noundef %3330, ptr noundef nonnull @.str.4) #12
  %3332 = load i32, ptr %1935, align 4, !tbaa !5
  %3333 = call ptr @strerror(i32 noundef %3332) #12
  %3334 = load i32, ptr %1935, align 4, !tbaa !5
  %3335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3325, ptr noundef nonnull %.str.5.sink1757, i32 noundef %3326, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 454, ptr noundef %3329, ptr noundef %3331, ptr noundef %3333, i32 noundef %3334) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3336:                                             ; preds = %3309
  %3337 = load i32, ptr @test_count, align 4, !tbaa !5
  %3338 = add nsw i32 %3337, 1
  store i32 %3338, ptr @test_count, align 4, !tbaa !5
  %3339 = load i8, ptr %86, align 1, !tbaa !60
  %3340 = icmp eq i8 %3339, 43
  br i1 %3340, label %3364, label %3341

3341:                                             ; preds = %3336
  %3342 = load i32, ptr %1935, align 4, !tbaa !5
  %3343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3344 = call i32 @s2n_print_stacktrace(ptr noundef %3343) #12
  %3345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3346 = trunc nuw i8 %3345 to i1
  br i1 %3346, label %3347, label %3351

3347:                                             ; preds = %3341
  %3348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3349 = call i32 @fileno(ptr noundef %3348) #12
  %3350 = call i32 @isatty(i32 noundef %3349) #12
  %.not610 = icmp eq i32 %3350, 0
  br i1 %.not610, label %3351, label %3352

3351:                                             ; preds = %3347, %3341
  br label %3352

3352:                                             ; preds = %3347, %3351
  %.str.5.sink1768 = phi ptr [ @.str.5, %3351 ], [ @.str.2, %3347 ]
  store i32 %3342, ptr %1935, align 4, !tbaa !5
  %3353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3354 = load i32, ptr @test_count, align 4, !tbaa !5
  %3355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror(i32 noundef %3356, ptr noundef nonnull @.str.4) #12
  %3358 = load i32, ptr %3355, align 4, !tbaa !5
  %3359 = call ptr @s2n_strerror_debug(i32 noundef %3358, ptr noundef nonnull @.str.4) #12
  %3360 = load i32, ptr %1935, align 4, !tbaa !5
  %3361 = call ptr @strerror(i32 noundef %3360) #12
  %3362 = load i32, ptr %1935, align 4, !tbaa !5
  %3363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3353, ptr noundef nonnull %.str.5.sink1768, i32 noundef %3354, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 455, ptr noundef %3357, ptr noundef %3359, ptr noundef %3361, i32 noundef %3362) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3364:                                             ; preds = %3336
  %3365 = add nsw i32 %3337, 2
  store i32 %3365, ptr @test_count, align 4, !tbaa !5
  %bcmp611 = call i32 @bcmp(ptr noundef nonnull dereferenceable(10) %3, ptr noundef nonnull dereferenceable(10) %81, i64 10)
  %3366 = icmp eq i32 %bcmp611, 0
  br i1 %3366, label %3390, label %3367

3367:                                             ; preds = %3364
  %3368 = load i32, ptr %1935, align 4, !tbaa !5
  %3369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3370 = call i32 @s2n_print_stacktrace(ptr noundef %3369) #12
  %3371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3372 = trunc nuw i8 %3371 to i1
  br i1 %3372, label %3373, label %3377

3373:                                             ; preds = %3367
  %3374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3375 = call i32 @fileno(ptr noundef %3374) #12
  %3376 = call i32 @isatty(i32 noundef %3375) #12
  %.not612 = icmp eq i32 %3376, 0
  br i1 %.not612, label %3377, label %3378

3377:                                             ; preds = %3373, %3367
  br label %3378

3378:                                             ; preds = %3373, %3377
  %.str.5.sink1779 = phi ptr [ @.str.5, %3377 ], [ @.str.2, %3373 ]
  store i32 %3368, ptr %1935, align 4, !tbaa !5
  %3379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3380 = load i32, ptr @test_count, align 4, !tbaa !5
  %3381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3382 = load i32, ptr %3381, align 4, !tbaa !5
  %3383 = call ptr @s2n_strerror(i32 noundef %3382, ptr noundef nonnull @.str.4) #12
  %3384 = load i32, ptr %3381, align 4, !tbaa !5
  %3385 = call ptr @s2n_strerror_debug(i32 noundef %3384, ptr noundef nonnull @.str.4) #12
  %3386 = load i32, ptr %1935, align 4, !tbaa !5
  %3387 = call ptr @strerror(i32 noundef %3386) #12
  %3388 = load i32, ptr %1935, align 4, !tbaa !5
  %3389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3379, ptr noundef nonnull %.str.5.sink1779, i32 noundef %3380, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 458, ptr noundef %3383, ptr noundef %3385, ptr noundef %3387, i32 noundef %3388) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3390:                                             ; preds = %3364
  %3391 = add nsw i32 %3337, 3
  store i32 %3391, ptr @test_count, align 4, !tbaa !5
  %3392 = load i32, ptr %3248, align 4, !tbaa !54
  %3393 = load i32, ptr %3250, align 8, !tbaa !55
  %3394 = icmp eq i32 %3392, %3393
  br i1 %3394, label %3418, label %3395

3395:                                             ; preds = %3390
  %3396 = load i32, ptr %1935, align 4, !tbaa !5
  %3397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3398 = call i32 @s2n_print_stacktrace(ptr noundef %3397) #12
  %3399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3400 = trunc nuw i8 %3399 to i1
  br i1 %3400, label %3401, label %3405

3401:                                             ; preds = %3395
  %3402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3403 = call i32 @fileno(ptr noundef %3402) #12
  %3404 = call i32 @isatty(i32 noundef %3403) #12
  %.not613 = icmp eq i32 %3404, 0
  br i1 %.not613, label %3405, label %3406

3405:                                             ; preds = %3401, %3395
  br label %3406

3406:                                             ; preds = %3401, %3405
  %.str.5.sink1790 = phi ptr [ @.str.5, %3405 ], [ @.str.2, %3401 ]
  store i32 %3396, ptr %1935, align 4, !tbaa !5
  %3407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3408 = load i32, ptr @test_count, align 4, !tbaa !5
  %3409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3410 = load i32, ptr %3409, align 4, !tbaa !5
  %3411 = call ptr @s2n_strerror(i32 noundef %3410, ptr noundef nonnull @.str.4) #12
  %3412 = load i32, ptr %3409, align 4, !tbaa !5
  %3413 = call ptr @s2n_strerror_debug(i32 noundef %3412, ptr noundef nonnull @.str.4) #12
  %3414 = load i32, ptr %1935, align 4, !tbaa !5
  %3415 = call ptr @strerror(i32 noundef %3414) #12
  %3416 = load i32, ptr %1935, align 4, !tbaa !5
  %3417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3407, ptr noundef nonnull %.str.5.sink1790, i32 noundef %3408, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 460, ptr noundef %3411, ptr noundef %3413, ptr noundef %3415, i32 noundef %3416) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3418:                                             ; preds = %3390
  %3419 = add nsw i32 %3337, 4
  store i32 %3419, ptr @test_count, align 4, !tbaa !5
  %3420 = getelementptr inbounds i8, ptr %77, i64 80
  %3421 = load i64, ptr %3420, align 8, !tbaa !50
  %3422 = icmp eq i64 %3421, 1
  br i1 %3422, label %3446, label %3423

3423:                                             ; preds = %3418
  %3424 = load i32, ptr %1935, align 4, !tbaa !5
  %3425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3426 = call i32 @s2n_print_stacktrace(ptr noundef %3425) #12
  %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 = %3423
  %3430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3431 = call i32 @fileno(ptr noundef %3430) #12
  %3432 = call i32 @isatty(i32 noundef %3431) #12
  %.not614 = icmp eq i32 %3432, 0
  br i1 %.not614, label %3433, label %3434

3433:                                             ; preds = %3429, %3423
  br label %3434

3434:                                             ; preds = %3429, %3433
  %.str.5.sink1801 = phi ptr [ @.str.5, %3433 ], [ @.str.2, %3429 ]
  store i32 %3424, ptr %1935, 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) #12
  %3440 = load i32, ptr %3437, align 4, !tbaa !5
  %3441 = call ptr @s2n_strerror_debug(i32 noundef %3440, ptr noundef nonnull @.str.4) #12
  %3442 = load i32, ptr %1935, align 4, !tbaa !5
  %3443 = call ptr @strerror(i32 noundef %3442) #12
  %3444 = load i32, ptr %1935, align 4, !tbaa !5
  %3445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3435, ptr noundef nonnull %.str.5.sink1801, i32 noundef %3436, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 462, ptr noundef %3439, ptr noundef %3441, ptr noundef %3443, i32 noundef %3444) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3446:                                             ; preds = %3418
  %3447 = add nsw i32 %3337, 5
  store i32 %3447, ptr @test_count, align 4, !tbaa !5
  %3448 = getelementptr inbounds i8, ptr %77, i64 88
  %3449 = load i64, ptr %3448, align 8, !tbaa !61
  %3450 = icmp eq i64 %3449, 2
  br i1 %3450, label %3474, label %3451

3451:                                             ; preds = %3446
  %3452 = load i32, ptr %1935, align 4, !tbaa !5
  %3453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3454 = call i32 @s2n_print_stacktrace(ptr noundef %3453) #12
  %3455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3456 = trunc nuw i8 %3455 to i1
  br i1 %3456, label %3457, label %3461

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

3461:                                             ; preds = %3457, %3451
  br label %3462

3462:                                             ; preds = %3457, %3461
  %.str.5.sink1812 = phi ptr [ @.str.5, %3461 ], [ @.str.2, %3457 ]
  store i32 %3452, ptr %1935, align 4, !tbaa !5
  %3463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3464 = load i32, ptr @test_count, align 4, !tbaa !5
  %3465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3466 = load i32, ptr %3465, align 4, !tbaa !5
  %3467 = call ptr @s2n_strerror(i32 noundef %3466, ptr noundef nonnull @.str.4) #12
  %3468 = load i32, ptr %3465, align 4, !tbaa !5
  %3469 = call ptr @s2n_strerror_debug(i32 noundef %3468, ptr noundef nonnull @.str.4) #12
  %3470 = load i32, ptr %1935, align 4, !tbaa !5
  %3471 = call ptr @strerror(i32 noundef %3470) #12
  %3472 = load i32, ptr %1935, align 4, !tbaa !5
  %3473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3463, ptr noundef nonnull %.str.5.sink1812, i32 noundef %3464, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 463, ptr noundef %3467, ptr noundef %3469, ptr noundef %3471, i32 noundef %3472) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3474:                                             ; preds = %3446
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %85) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %84) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %83) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %82) #12
  call void @llvm.lifetime.end.p0(i64 16384, ptr nonnull %81) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %80) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %79) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %78) #12
  %3475 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef nonnull %77) #12
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %77) #12
  %3476 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %76) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #12
  %3477 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %75) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %87) #12
  %3478 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %3478, ptr %87, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %88) #12
  %3479 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %3479, ptr %88, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %89) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(192) %89, i8 0, i64 192, i1 false)
  %3480 = load i32, ptr @test_count, align 4, !tbaa !5
  %3481 = add nsw i32 %3480, 1
  store i32 %3481, ptr @test_count, align 4, !tbaa !5
  %3482 = load ptr, ptr %87, align 8, !tbaa !9
  %3483 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %3482, ptr noundef %3479, ptr noundef nonnull %89) #12
  %3484 = call zeroext i1 @s2n_result_is_ok(i32 %3483)
  br i1 %3484, label %3508, label %3485

3485:                                             ; preds = %3474
  %3486 = load i32, ptr %1935, align 4, !tbaa !5
  %3487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3488 = call i32 @s2n_print_stacktrace(ptr noundef %3487) #12
  %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 = %3485
  %3492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3493 = call i32 @fileno(ptr noundef %3492) #12
  %3494 = call i32 @isatty(i32 noundef %3493) #12
  %.not616 = icmp eq i32 %3494, 0
  br i1 %.not616, label %3495, label %3496

3495:                                             ; preds = %3491, %3485
  br label %3496

3496:                                             ; preds = %3491, %3495
  %.str.5.sink1823 = phi ptr [ @.str.5, %3495 ], [ @.str.2, %3491 ]
  store i32 %3486, ptr %1935, 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) #12
  %3502 = load i32, ptr %3499, align 4, !tbaa !5
  %3503 = call ptr @s2n_strerror_debug(i32 noundef %3502, ptr noundef nonnull @.str.4) #12
  %3504 = load i32, ptr %1935, align 4, !tbaa !5
  %3505 = call ptr @strerror(i32 noundef %3504) #12
  %3506 = load i32, ptr %1935, align 4, !tbaa !5
  %3507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3497, ptr noundef nonnull %.str.5.sink1823, i32 noundef %3498, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 474, ptr noundef %3501, ptr noundef %3503, ptr noundef %3505, i32 noundef %3506) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3508:                                             ; preds = %3474
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %90) #12
  store ptr %3, ptr %90, align 8, !tbaa !15
  %3509 = getelementptr inbounds i8, ptr %90, i64 8
  store i64 10, ptr %3509, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %91) #12
  store ptr null, ptr %91, align 8, !tbaa !19
  %3510 = getelementptr inbounds i8, ptr %91, i64 8
  store i32 0, ptr %3510, align 8, !tbaa !21
  %3511 = getelementptr inbounds i8, ptr %91, i64 16
  store ptr %90, ptr %3511, align 8, !tbaa !22
  %3512 = getelementptr inbounds i8, ptr %91, i64 24
  store i64 1, ptr %3512, align 8, !tbaa !23
  %3513 = getelementptr inbounds i8, ptr %91, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %3513, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %92) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %92, i8 0, i64 100, i1 false)
  %3514 = load i32, ptr @test_count, align 4, !tbaa !5
  %3515 = add nsw i32 %3514, 1
  store i32 %3515, ptr @test_count, align 4, !tbaa !5
  %3516 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %91, ptr noundef nonnull %92, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %3517 = call zeroext i1 @s2n_result_is_ok(i32 %3516)
  br i1 %3517, label %3541, label %3518

3518:                                             ; preds = %3508
  %3519 = load i32, ptr %1935, align 4, !tbaa !5
  %3520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3521 = call i32 @s2n_print_stacktrace(ptr noundef %3520) #12
  %3522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3523 = trunc nuw i8 %3522 to i1
  br i1 %3523, label %3524, label %3528

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

3528:                                             ; preds = %3524, %3518
  br label %3529

3529:                                             ; preds = %3524, %3528
  %.str.5.sink1834 = phi ptr [ @.str.5, %3528 ], [ @.str.2, %3524 ]
  store i32 %3519, ptr %1935, align 4, !tbaa !5
  %3530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3531 = load i32, ptr @test_count, align 4, !tbaa !5
  %3532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3533 = load i32, ptr %3532, align 4, !tbaa !5
  %3534 = call ptr @s2n_strerror(i32 noundef %3533, ptr noundef nonnull @.str.4) #12
  %3535 = load i32, ptr %3532, align 4, !tbaa !5
  %3536 = call ptr @s2n_strerror_debug(i32 noundef %3535, ptr noundef nonnull @.str.4) #12
  %3537 = load i32, ptr %1935, align 4, !tbaa !5
  %3538 = call ptr @strerror(i32 noundef %3537) #12
  %3539 = load i32, ptr %1935, align 4, !tbaa !5
  %3540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3530, ptr noundef nonnull %.str.5.sink1834, i32 noundef %3531, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 483, ptr noundef %3534, ptr noundef %3536, ptr noundef %3538, i32 noundef %3539) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3541:                                             ; preds = %3508
  %3542 = load ptr, ptr %87, align 8, !tbaa !9
  %3543 = getelementptr inbounds i8, ptr %3542, i64 64
  %3544 = load ptr, ptr %3543, align 8, !tbaa !24
  %3545 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %3544, ptr noundef nonnull %91) #12
  %3546 = load i32, ptr @test_count, align 4, !tbaa !5
  %3547 = add nsw i32 %3546, 1
  store i32 %3547, ptr @test_count, align 4, !tbaa !5
  %3548 = icmp eq i64 %3545, 10
  br i1 %3548, label %3572, label %3549

3549:                                             ; preds = %3541
  %3550 = load i32, ptr %1935, align 4, !tbaa !5
  %3551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3552 = call i32 @s2n_print_stacktrace(ptr noundef %3551) #12
  %3553 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3554 = trunc nuw i8 %3553 to i1
  br i1 %3554, label %3555, label %3559

3555:                                             ; preds = %3549
  %3556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3557 = call i32 @fileno(ptr noundef %3556) #12
  %3558 = call i32 @isatty(i32 noundef %3557) #12
  %.not618 = icmp eq i32 %3558, 0
  br i1 %.not618, label %3559, label %3560

3559:                                             ; preds = %3555, %3549
  br label %3560

3560:                                             ; preds = %3555, %3559
  %.str.5.sink1845 = phi ptr [ @.str.5, %3559 ], [ @.str.2, %3555 ]
  store i32 %3550, ptr %1935, align 4, !tbaa !5
  %3561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3562 = load i32, ptr @test_count, align 4, !tbaa !5
  %3563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  %3565 = call ptr @s2n_strerror(i32 noundef %3564, ptr noundef nonnull @.str.4) #12
  %3566 = load i32, ptr %3563, align 4, !tbaa !5
  %3567 = call ptr @s2n_strerror_debug(i32 noundef %3566, ptr noundef nonnull @.str.4) #12
  %3568 = load i32, ptr %1935, align 4, !tbaa !5
  %3569 = call ptr @strerror(i32 noundef %3568) #12
  %3570 = load i32, ptr %1935, align 4, !tbaa !5
  %3571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3561, ptr noundef nonnull %.str.5.sink1845, i32 noundef %3562, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 485, ptr noundef %3565, ptr noundef %3567, ptr noundef %3569, i32 noundef %3570) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3572:                                             ; preds = %3541
  call void @llvm.lifetime.start.p0(i64 16384, ptr nonnull %93) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16384) %93, i8 0, i64 16384, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %94) #12
  store ptr %93, ptr %94, align 8, !tbaa !15
  %3573 = getelementptr inbounds i8, ptr %94, i64 8
  store i64 15, ptr %3573, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %95) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %95, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %96) #12
  store ptr null, ptr %96, align 8, !tbaa !19
  %3574 = getelementptr inbounds i8, ptr %96, i64 8
  store i32 0, ptr %3574, align 8, !tbaa !21
  %3575 = getelementptr inbounds i8, ptr %96, i64 16
  store ptr %94, ptr %3575, align 8, !tbaa !22
  %3576 = getelementptr inbounds i8, ptr %96, i64 24
  store i64 1, ptr %3576, align 8, !tbaa !23
  %3577 = getelementptr inbounds i8, ptr %96, i64 32
  store ptr %95, ptr %3577, align 8, !tbaa !56
  %3578 = getelementptr inbounds i8, ptr %96, i64 40
  store i64 100, ptr %3578, align 8, !tbaa !57
  %3579 = getelementptr inbounds i8, ptr %96, i64 48
  store i32 0, ptr %3579, align 8, !tbaa !58
  %3580 = load ptr, ptr %88, align 8, !tbaa !9
  %3581 = getelementptr inbounds i8, ptr %3580, i64 72
  %3582 = load ptr, ptr %3581, align 8, !tbaa !59
  %3583 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %3582, ptr noundef nonnull %96) #12
  %3584 = load i32, ptr @test_count, align 4, !tbaa !5
  %3585 = add nsw i32 %3584, 1
  store i32 %3585, ptr @test_count, align 4, !tbaa !5
  %3586 = icmp eq i64 %3583, 10
  br i1 %3586, label %3610, label %3587

3587:                                             ; preds = %3572
  %3588 = load i32, ptr %1935, align 4, !tbaa !5
  %3589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3590 = call i32 @s2n_print_stacktrace(ptr noundef %3589) #12
  %3591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3592 = trunc nuw i8 %3591 to i1
  br i1 %3592, label %3593, label %3597

3593:                                             ; preds = %3587
  %3594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3595 = call i32 @fileno(ptr noundef %3594) #12
  %3596 = call i32 @isatty(i32 noundef %3595) #12
  %.not619 = icmp eq i32 %3596, 0
  br i1 %.not619, label %3597, label %3598

3597:                                             ; preds = %3593, %3587
  br label %3598

3598:                                             ; preds = %3593, %3597
  %.str.5.sink1856 = phi ptr [ @.str.5, %3597 ], [ @.str.2, %3593 ]
  store i32 %3588, ptr %1935, align 4, !tbaa !5
  %3599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3600 = load i32, ptr @test_count, align 4, !tbaa !5
  %3601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3602 = load i32, ptr %3601, align 4, !tbaa !5
  %3603 = call ptr @s2n_strerror(i32 noundef %3602, ptr noundef nonnull @.str.4) #12
  %3604 = load i32, ptr %3601, align 4, !tbaa !5
  %3605 = call ptr @s2n_strerror_debug(i32 noundef %3604, ptr noundef nonnull @.str.4) #12
  %3606 = load i32, ptr %1935, align 4, !tbaa !5
  %3607 = call ptr @strerror(i32 noundef %3606) #12
  %3608 = load i32, ptr %1935, align 4, !tbaa !5
  %3609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3599, ptr noundef nonnull %.str.5.sink1856, i32 noundef %3600, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 499, ptr noundef %3603, ptr noundef %3605, ptr noundef %3607, i32 noundef %3608) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3610:                                             ; preds = %3572
  %3611 = add nsw i32 %3584, 2
  store i32 %3611, ptr @test_count, align 4, !tbaa !5
  %bcmp620 = call i32 @bcmp(ptr noundef nonnull dereferenceable(10) %3, ptr noundef nonnull dereferenceable(10) %93, i64 10)
  %3612 = icmp eq i32 %bcmp620, 0
  br i1 %3612, label %3636, label %3613

3613:                                             ; preds = %3610
  %3614 = load i32, ptr %1935, align 4, !tbaa !5
  %3615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3616 = call i32 @s2n_print_stacktrace(ptr noundef %3615) #12
  %3617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3618 = trunc nuw i8 %3617 to i1
  br i1 %3618, label %3619, label %3623

3619:                                             ; preds = %3613
  %3620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3621 = call i32 @fileno(ptr noundef %3620) #12
  %3622 = call i32 @isatty(i32 noundef %3621) #12
  %.not621 = icmp eq i32 %3622, 0
  br i1 %.not621, label %3623, label %3624

3623:                                             ; preds = %3619, %3613
  br label %3624

3624:                                             ; preds = %3619, %3623
  %.str.5.sink1867 = phi ptr [ @.str.5, %3623 ], [ @.str.2, %3619 ]
  store i32 %3614, ptr %1935, align 4, !tbaa !5
  %3625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3626 = load i32, ptr @test_count, align 4, !tbaa !5
  %3627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3628 = load i32, ptr %3627, align 4, !tbaa !5
  %3629 = call ptr @s2n_strerror(i32 noundef %3628, ptr noundef nonnull @.str.4) #12
  %3630 = load i32, ptr %3627, align 4, !tbaa !5
  %3631 = call ptr @s2n_strerror_debug(i32 noundef %3630, ptr noundef nonnull @.str.4) #12
  %3632 = load i32, ptr %1935, align 4, !tbaa !5
  %3633 = call ptr @strerror(i32 noundef %3632) #12
  %3634 = load i32, ptr %1935, align 4, !tbaa !5
  %3635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3625, ptr noundef nonnull %.str.5.sink1867, i32 noundef %3626, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 500, ptr noundef %3629, ptr noundef %3631, ptr noundef %3633, i32 noundef %3634) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3636:                                             ; preds = %3610
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %97) #12
  store i8 0, ptr %97, align 1, !tbaa !60
  %3637 = add nsw i32 %3584, 3
  store i32 %3637, ptr @test_count, align 4, !tbaa !5
  %3638 = call i32 @s2n_ktls_get_control_data(ptr noundef nonnull %96, i32 noundef 0, ptr noundef nonnull %97) #12
  %3639 = call zeroext i1 @s2n_result_is_ok(i32 %3638)
  br i1 %3639, label %3663, label %3640

3640:                                             ; preds = %3636
  %3641 = load i32, ptr %1935, align 4, !tbaa !5
  %3642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3643 = call i32 @s2n_print_stacktrace(ptr noundef %3642) #12
  %3644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3645 = trunc nuw i8 %3644 to i1
  br i1 %3645, label %3646, label %3650

3646:                                             ; preds = %3640
  %3647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3648 = call i32 @fileno(ptr noundef %3647) #12
  %3649 = call i32 @isatty(i32 noundef %3648) #12
  %.not622 = icmp eq i32 %3649, 0
  br i1 %.not622, label %3650, label %3651

3650:                                             ; preds = %3646, %3640
  br label %3651

3651:                                             ; preds = %3646, %3650
  %.str.5.sink1878 = phi ptr [ @.str.5, %3650 ], [ @.str.2, %3646 ]
  store i32 %3641, ptr %1935, align 4, !tbaa !5
  %3652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3653 = load i32, ptr @test_count, align 4, !tbaa !5
  %3654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3655 = load i32, ptr %3654, align 4, !tbaa !5
  %3656 = call ptr @s2n_strerror(i32 noundef %3655, ptr noundef nonnull @.str.4) #12
  %3657 = load i32, ptr %3654, align 4, !tbaa !5
  %3658 = call ptr @s2n_strerror_debug(i32 noundef %3657, ptr noundef nonnull @.str.4) #12
  %3659 = load i32, ptr %1935, align 4, !tbaa !5
  %3660 = call ptr @strerror(i32 noundef %3659) #12
  %3661 = load i32, ptr %1935, align 4, !tbaa !5
  %3662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3652, ptr noundef nonnull %.str.5.sink1878, i32 noundef %3653, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 502, ptr noundef %3656, ptr noundef %3658, ptr noundef %3660, i32 noundef %3661) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3663:                                             ; preds = %3636
  %3664 = load i32, ptr @test_count, align 4, !tbaa !5
  %3665 = add nsw i32 %3664, 1
  store i32 %3665, ptr @test_count, align 4, !tbaa !5
  %3666 = load i8, ptr %97, align 1, !tbaa !60
  %3667 = icmp eq i8 %3666, 43
  br i1 %3667, label %3691, label %3668

3668:                                             ; preds = %3663
  %3669 = load i32, ptr %1935, align 4, !tbaa !5
  %3670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3671 = call i32 @s2n_print_stacktrace(ptr noundef %3670) #12
  %3672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3673 = trunc nuw i8 %3672 to i1
  br i1 %3673, label %3674, label %3678

3674:                                             ; preds = %3668
  %3675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3676 = call i32 @fileno(ptr noundef %3675) #12
  %3677 = call i32 @isatty(i32 noundef %3676) #12
  %.not623 = icmp eq i32 %3677, 0
  br i1 %.not623, label %3678, label %3679

3678:                                             ; preds = %3674, %3668
  br label %3679

3679:                                             ; preds = %3674, %3678
  %.str.5.sink1889 = phi ptr [ @.str.5, %3678 ], [ @.str.2, %3674 ]
  store i32 %3669, ptr %1935, align 4, !tbaa !5
  %3680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3681 = load i32, ptr @test_count, align 4, !tbaa !5
  %3682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3683 = load i32, ptr %3682, align 4, !tbaa !5
  %3684 = call ptr @s2n_strerror(i32 noundef %3683, ptr noundef nonnull @.str.4) #12
  %3685 = load i32, ptr %3682, align 4, !tbaa !5
  %3686 = call ptr @s2n_strerror_debug(i32 noundef %3685, ptr noundef nonnull @.str.4) #12
  %3687 = load i32, ptr %1935, align 4, !tbaa !5
  %3688 = call ptr @strerror(i32 noundef %3687) #12
  %3689 = load i32, ptr %1935, align 4, !tbaa !5
  %3690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3680, ptr noundef nonnull %.str.5.sink1889, i32 noundef %3681, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 503, ptr noundef %3684, ptr noundef %3686, ptr noundef %3688, i32 noundef %3689) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3691:                                             ; preds = %3663
  %3692 = add nsw i32 %3664, 2
  store i32 %3692, ptr @test_count, align 4, !tbaa !5
  %3693 = getelementptr inbounds i8, ptr %89, i64 80
  %3694 = load i64, ptr %3693, align 8, !tbaa !50
  %3695 = icmp eq i64 %3694, 1
  br i1 %3695, label %3719, label %3696

3696:                                             ; preds = %3691
  %3697 = load i32, ptr %1935, align 4, !tbaa !5
  %3698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3699 = call i32 @s2n_print_stacktrace(ptr noundef %3698) #12
  %3700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3701 = trunc nuw i8 %3700 to i1
  br i1 %3701, label %3702, label %3706

3702:                                             ; preds = %3696
  %3703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3704 = call i32 @fileno(ptr noundef %3703) #12
  %3705 = call i32 @isatty(i32 noundef %3704) #12
  %.not624 = icmp eq i32 %3705, 0
  br i1 %.not624, label %3706, label %3707

3706:                                             ; preds = %3702, %3696
  br label %3707

3707:                                             ; preds = %3702, %3706
  %.str.5.sink1900 = phi ptr [ @.str.5, %3706 ], [ @.str.2, %3702 ]
  store i32 %3697, ptr %1935, align 4, !tbaa !5
  %3708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3709 = load i32, ptr @test_count, align 4, !tbaa !5
  %3710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3711 = load i32, ptr %3710, align 4, !tbaa !5
  %3712 = call ptr @s2n_strerror(i32 noundef %3711, ptr noundef nonnull @.str.4) #12
  %3713 = load i32, ptr %3710, align 4, !tbaa !5
  %3714 = call ptr @s2n_strerror_debug(i32 noundef %3713, ptr noundef nonnull @.str.4) #12
  %3715 = load i32, ptr %1935, align 4, !tbaa !5
  %3716 = call ptr @strerror(i32 noundef %3715) #12
  %3717 = load i32, ptr %1935, align 4, !tbaa !5
  %3718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3708, ptr noundef nonnull %.str.5.sink1900, i32 noundef %3709, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 505, ptr noundef %3712, ptr noundef %3714, ptr noundef %3716, i32 noundef %3717) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3719:                                             ; preds = %3691
  %3720 = add nsw i32 %3664, 3
  store i32 %3720, ptr @test_count, align 4, !tbaa !5
  %3721 = getelementptr inbounds i8, ptr %89, i64 88
  %3722 = load i64, ptr %3721, align 8, !tbaa !61
  %3723 = icmp eq i64 %3722, 1
  br i1 %3723, label %3747, label %3724

3724:                                             ; preds = %3719
  %3725 = load i32, ptr %1935, align 4, !tbaa !5
  %3726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3727 = call i32 @s2n_print_stacktrace(ptr noundef %3726) #12
  %3728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3729 = trunc nuw i8 %3728 to i1
  br i1 %3729, label %3730, label %3734

3730:                                             ; preds = %3724
  %3731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3732 = call i32 @fileno(ptr noundef %3731) #12
  %3733 = call i32 @isatty(i32 noundef %3732) #12
  %.not625 = icmp eq i32 %3733, 0
  br i1 %.not625, label %3734, label %3735

3734:                                             ; preds = %3730, %3724
  br label %3735

3735:                                             ; preds = %3730, %3734
  %.str.5.sink1911 = phi ptr [ @.str.5, %3734 ], [ @.str.2, %3730 ]
  store i32 %3725, ptr %1935, align 4, !tbaa !5
  %3736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3737 = load i32, ptr @test_count, align 4, !tbaa !5
  %3738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3739 = load i32, ptr %3738, align 4, !tbaa !5
  %3740 = call ptr @s2n_strerror(i32 noundef %3739, ptr noundef nonnull @.str.4) #12
  %3741 = load i32, ptr %3738, align 4, !tbaa !5
  %3742 = call ptr @s2n_strerror_debug(i32 noundef %3741, ptr noundef nonnull @.str.4) #12
  %3743 = load i32, ptr %1935, align 4, !tbaa !5
  %3744 = call ptr @strerror(i32 noundef %3743) #12
  %3745 = load i32, ptr %1935, align 4, !tbaa !5
  %3746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3736, ptr noundef nonnull %.str.5.sink1911, i32 noundef %3737, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 506, ptr noundef %3740, ptr noundef %3742, ptr noundef %3744, i32 noundef %3745) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3747:                                             ; preds = %3719
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %97) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %96) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %95) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %94) #12
  call void @llvm.lifetime.end.p0(i64 16384, ptr nonnull %93) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %92) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %91) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %90) #12
  %3748 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef nonnull %89) #12
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %89) #12
  %3749 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %88) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #12
  %3750 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %87) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %98) #12
  %3751 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %3751, ptr %98, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %99) #12
  %3752 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %3752, ptr %99, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %100) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(192) %100, i8 0, i64 192, i1 false)
  %3753 = load i32, ptr @test_count, align 4, !tbaa !5
  %3754 = add nsw i32 %3753, 1
  store i32 %3754, ptr @test_count, align 4, !tbaa !5
  %3755 = load ptr, ptr %98, align 8, !tbaa !9
  %3756 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %3755, ptr noundef %3752, ptr noundef nonnull %100) #12
  %3757 = call zeroext i1 @s2n_result_is_ok(i32 %3756)
  br i1 %3757, label %3781, label %3758

3758:                                             ; preds = %3747
  %3759 = load i32, ptr %1935, align 4, !tbaa !5
  %3760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3761 = call i32 @s2n_print_stacktrace(ptr noundef %3760) #12
  %3762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3763 = trunc nuw i8 %3762 to i1
  br i1 %3763, label %3764, label %3768

3764:                                             ; preds = %3758
  %3765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3766 = call i32 @fileno(ptr noundef %3765) #12
  %3767 = call i32 @isatty(i32 noundef %3766) #12
  %.not626 = icmp eq i32 %3767, 0
  br i1 %.not626, label %3768, label %3769

3768:                                             ; preds = %3764, %3758
  br label %3769

3769:                                             ; preds = %3764, %3768
  %.str.5.sink1922 = phi ptr [ @.str.5, %3768 ], [ @.str.2, %3764 ]
  store i32 %3759, ptr %1935, align 4, !tbaa !5
  %3770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3771 = load i32, ptr @test_count, align 4, !tbaa !5
  %3772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3773 = load i32, ptr %3772, align 4, !tbaa !5
  %3774 = call ptr @s2n_strerror(i32 noundef %3773, ptr noundef nonnull @.str.4) #12
  %3775 = load i32, ptr %3772, align 4, !tbaa !5
  %3776 = call ptr @s2n_strerror_debug(i32 noundef %3775, ptr noundef nonnull @.str.4) #12
  %3777 = load i32, ptr %1935, align 4, !tbaa !5
  %3778 = call ptr @strerror(i32 noundef %3777) #12
  %3779 = load i32, ptr %1935, align 4, !tbaa !5
  %3780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3770, ptr noundef nonnull %.str.5.sink1922, i32 noundef %3771, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 517, ptr noundef %3774, ptr noundef %3776, ptr noundef %3778, i32 noundef %3779) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3781:                                             ; preds = %3747
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %101) #12
  store ptr %3, ptr %101, align 8, !tbaa !15
  %3782 = getelementptr inbounds i8, ptr %101, i64 8
  store i64 5, ptr %3782, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %102) #12
  store ptr null, ptr %102, align 8, !tbaa !19
  %3783 = getelementptr inbounds i8, ptr %102, i64 8
  store i32 0, ptr %3783, align 8, !tbaa !21
  %3784 = getelementptr inbounds i8, ptr %102, i64 16
  store ptr %101, ptr %3784, align 8, !tbaa !22
  %3785 = getelementptr inbounds i8, ptr %102, i64 24
  store i64 1, ptr %3785, align 8, !tbaa !23
  %3786 = getelementptr inbounds i8, ptr %102, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %3786, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %103) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %103, i8 0, i64 100, i1 false)
  %3787 = load i32, ptr @test_count, align 4, !tbaa !5
  %3788 = add nsw i32 %3787, 1
  store i32 %3788, ptr @test_count, align 4, !tbaa !5
  %3789 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %102, ptr noundef nonnull %103, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 43) #12
  %3790 = call zeroext i1 @s2n_result_is_ok(i32 %3789)
  br i1 %3790, label %.preheader.preheader, label %3798

.preheader.preheader:                             ; preds = %3781
  store ptr %3, ptr %101, align 8, !tbaa !15
  %3791 = load ptr, ptr %98, align 8, !tbaa !9
  %3792 = getelementptr inbounds i8, ptr %3791, i64 64
  %3793 = load ptr, ptr %3792, align 8, !tbaa !24
  %3794 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %3793, ptr noundef nonnull %102) #12
  %3795 = load i32, ptr @test_count, align 4, !tbaa !5
  %3796 = add nsw i32 %3795, 1
  store i32 %3796, ptr @test_count, align 4, !tbaa !5
  %3797 = icmp eq i64 %3794, 5
  br i1 %3797, label %.preheader.1, label %3821

3798:                                             ; preds = %3781
  %3799 = load i32, ptr %1935, align 4, !tbaa !5
  %3800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3801 = call i32 @s2n_print_stacktrace(ptr noundef %3800) #12
  %3802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3803 = trunc nuw i8 %3802 to i1
  br i1 %3803, label %3804, label %3808

3804:                                             ; preds = %3798
  %3805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3806 = call i32 @fileno(ptr noundef %3805) #12
  %3807 = call i32 @isatty(i32 noundef %3806) #12
  %.not627 = icmp eq i32 %3807, 0
  br i1 %.not627, label %3808, label %3809

3808:                                             ; preds = %3804, %3798
  br label %3809

3809:                                             ; preds = %3804, %3808
  %.str.5.sink1933 = phi ptr [ @.str.5, %3808 ], [ @.str.2, %3804 ]
  store i32 %3799, ptr %1935, align 4, !tbaa !5
  %3810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3811 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3813, ptr noundef nonnull @.str.4) #12
  %3815 = load i32, ptr %3812, align 4, !tbaa !5
  %3816 = call ptr @s2n_strerror_debug(i32 noundef %3815, ptr noundef nonnull @.str.4) #12
  %3817 = load i32, ptr %1935, align 4, !tbaa !5
  %3818 = call ptr @strerror(i32 noundef %3817) #12
  %3819 = load i32, ptr %1935, align 4, !tbaa !5
  %3820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3810, ptr noundef nonnull %.str.5.sink1933, i32 noundef %3811, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 528, ptr noundef %3814, ptr noundef %3816, ptr noundef %3818, i32 noundef %3819) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3821:                                             ; preds = %.preheader.1, %.preheader.preheader
  %3822 = load i32, ptr %1935, align 4, !tbaa !5
  %3823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3824 = call i32 @s2n_print_stacktrace(ptr noundef %3823) #12
  %3825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3826 = trunc nuw i8 %3825 to i1
  br i1 %3826, label %3827, label %3831

3827:                                             ; preds = %3821
  %3828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3829 = call i32 @fileno(ptr noundef %3828) #12
  %3830 = call i32 @isatty(i32 noundef %3829) #12
  %.not657 = icmp eq i32 %3830, 0
  br i1 %.not657, label %3831, label %3832

3831:                                             ; preds = %3827, %3821
  br label %3832

3832:                                             ; preds = %3827, %3831
  %.str.5.sink1944 = phi ptr [ @.str.5, %3831 ], [ @.str.2, %3827 ]
  store i32 %3822, ptr %1935, align 4, !tbaa !5
  %3833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3834 = load i32, ptr @test_count, align 4, !tbaa !5
  %3835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3836 = load i32, ptr %3835, align 4, !tbaa !5
  %3837 = call ptr @s2n_strerror(i32 noundef %3836, ptr noundef nonnull @.str.4) #12
  %3838 = load i32, ptr %3835, align 4, !tbaa !5
  %3839 = call ptr @s2n_strerror_debug(i32 noundef %3838, ptr noundef nonnull @.str.4) #12
  %3840 = load i32, ptr %1935, align 4, !tbaa !5
  %3841 = call ptr @strerror(i32 noundef %3840) #12
  %3842 = load i32, ptr %1935, align 4, !tbaa !5
  %3843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3833, ptr noundef nonnull %.str.5.sink1944, i32 noundef %3834, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 535, ptr noundef %3837, ptr noundef %3839, ptr noundef %3841, i32 noundef %3842) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.preheader.1:                                     ; preds = %.preheader.preheader
  %3844 = getelementptr inbounds i8, ptr %3, i64 5
  store ptr %3844, ptr %101, align 8, !tbaa !15
  %3845 = load ptr, ptr %98, align 8, !tbaa !9
  %3846 = getelementptr inbounds i8, ptr %3845, i64 64
  %3847 = load ptr, ptr %3846, align 8, !tbaa !24
  %3848 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %3847, ptr noundef nonnull %102) #12
  %3849 = load i32, ptr @test_count, align 4, !tbaa !5
  %3850 = add nsw i32 %3849, 1
  store i32 %3850, ptr @test_count, align 4, !tbaa !5
  %3851 = icmp eq i64 %3848, 5
  br i1 %3851, label %3852, label %3821

3852:                                             ; preds = %.preheader.1
  call void @llvm.lifetime.start.p0(i64 16384, ptr nonnull %104) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16384) %104, i8 0, i64 16384, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %105) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %105, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %106) #12
  store ptr %104, ptr %106, align 8, !tbaa !15
  %3853 = getelementptr inbounds i8, ptr %106, i64 8
  store i64 10, ptr %3853, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %107) #12
  store ptr null, ptr %107, align 8, !tbaa !19
  %3854 = getelementptr inbounds i8, ptr %107, i64 8
  store i32 0, ptr %3854, align 8, !tbaa !21
  %3855 = getelementptr inbounds i8, ptr %107, i64 16
  store ptr %106, ptr %3855, align 8, !tbaa !22
  %3856 = getelementptr inbounds i8, ptr %107, i64 24
  store i64 1, ptr %3856, align 8, !tbaa !23
  %3857 = getelementptr inbounds i8, ptr %107, i64 32
  store ptr %105, ptr %3857, align 8, !tbaa !56
  %3858 = getelementptr inbounds i8, ptr %107, i64 40
  store i64 100, ptr %3858, align 8, !tbaa !57
  %3859 = getelementptr inbounds i8, ptr %107, i64 48
  store i32 0, ptr %3859, align 8, !tbaa !58
  %3860 = load ptr, ptr %99, align 8, !tbaa !9
  %3861 = getelementptr inbounds i8, ptr %3860, i64 72
  %3862 = load ptr, ptr %3861, align 8, !tbaa !59
  %3863 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %3862, ptr noundef nonnull %107) #12
  %3864 = load i32, ptr @test_count, align 4, !tbaa !5
  %3865 = add nsw i32 %3864, 1
  store i32 %3865, ptr @test_count, align 4, !tbaa !5
  %3866 = icmp eq i64 %3863, 10
  br i1 %3866, label %3890, label %3867

3867:                                             ; preds = %3852
  %3868 = load i32, ptr %1935, align 4, !tbaa !5
  %3869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3870 = call i32 @s2n_print_stacktrace(ptr noundef %3869) #12
  %3871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3872 = trunc nuw i8 %3871 to i1
  br i1 %3872, label %3873, label %3877

3873:                                             ; preds = %3867
  %3874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3875 = call i32 @fileno(ptr noundef %3874) #12
  %3876 = call i32 @isatty(i32 noundef %3875) #12
  %.not628 = icmp eq i32 %3876, 0
  br i1 %.not628, label %3877, label %3878

3877:                                             ; preds = %3873, %3867
  br label %3878

3878:                                             ; preds = %3873, %3877
  %.str.5.sink1955 = phi ptr [ @.str.5, %3877 ], [ @.str.2, %3873 ]
  store i32 %3868, ptr %1935, align 4, !tbaa !5
  %3879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3880 = load i32, ptr @test_count, align 4, !tbaa !5
  %3881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3882 = load i32, ptr %3881, align 4, !tbaa !5
  %3883 = call ptr @s2n_strerror(i32 noundef %3882, ptr noundef nonnull @.str.4) #12
  %3884 = load i32, ptr %3881, align 4, !tbaa !5
  %3885 = call ptr @s2n_strerror_debug(i32 noundef %3884, ptr noundef nonnull @.str.4) #12
  %3886 = load i32, ptr %1935, align 4, !tbaa !5
  %3887 = call ptr @strerror(i32 noundef %3886) #12
  %3888 = load i32, ptr %1935, align 4, !tbaa !5
  %3889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3879, ptr noundef nonnull %.str.5.sink1955, i32 noundef %3880, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 549, ptr noundef %3883, ptr noundef %3885, ptr noundef %3887, i32 noundef %3888) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3890:                                             ; preds = %3852
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %108) #12
  store i8 0, ptr %108, align 1, !tbaa !60
  %3891 = add nsw i32 %3864, 2
  store i32 %3891, ptr @test_count, align 4, !tbaa !5
  %3892 = call i32 @s2n_ktls_get_control_data(ptr noundef nonnull %107, i32 noundef 0, ptr noundef nonnull %108) #12
  %3893 = call zeroext i1 @s2n_result_is_ok(i32 %3892)
  br i1 %3893, label %3917, label %3894

3894:                                             ; preds = %3890
  %3895 = load i32, ptr %1935, align 4, !tbaa !5
  %3896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3897 = call i32 @s2n_print_stacktrace(ptr noundef %3896) #12
  %3898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3899 = trunc nuw i8 %3898 to i1
  br i1 %3899, label %3900, label %3904

3900:                                             ; preds = %3894
  %3901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3902 = call i32 @fileno(ptr noundef %3901) #12
  %3903 = call i32 @isatty(i32 noundef %3902) #12
  %.not629 = icmp eq i32 %3903, 0
  br i1 %.not629, label %3904, label %3905

3904:                                             ; preds = %3900, %3894
  br label %3905

3905:                                             ; preds = %3900, %3904
  %.str.5.sink1966 = phi ptr [ @.str.5, %3904 ], [ @.str.2, %3900 ]
  store i32 %3895, ptr %1935, align 4, !tbaa !5
  %3906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3907 = load i32, ptr @test_count, align 4, !tbaa !5
  %3908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3909 = load i32, ptr %3908, align 4, !tbaa !5
  %3910 = call ptr @s2n_strerror(i32 noundef %3909, ptr noundef nonnull @.str.4) #12
  %3911 = load i32, ptr %3908, align 4, !tbaa !5
  %3912 = call ptr @s2n_strerror_debug(i32 noundef %3911, ptr noundef nonnull @.str.4) #12
  %3913 = load i32, ptr %1935, align 4, !tbaa !5
  %3914 = call ptr @strerror(i32 noundef %3913) #12
  %3915 = load i32, ptr %1935, align 4, !tbaa !5
  %3916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3906, ptr noundef nonnull %.str.5.sink1966, i32 noundef %3907, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 551, ptr noundef %3910, ptr noundef %3912, ptr noundef %3914, i32 noundef %3915) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3917:                                             ; preds = %3890
  %3918 = load i32, ptr @test_count, align 4, !tbaa !5
  %3919 = add nsw i32 %3918, 1
  store i32 %3919, ptr @test_count, align 4, !tbaa !5
  %3920 = load i8, ptr %108, align 1, !tbaa !60
  %3921 = icmp eq i8 %3920, 43
  br i1 %3921, label %3945, label %3922

3922:                                             ; preds = %3917
  %3923 = load i32, ptr %1935, align 4, !tbaa !5
  %3924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3925 = call i32 @s2n_print_stacktrace(ptr noundef %3924) #12
  %3926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3927 = trunc nuw i8 %3926 to i1
  br i1 %3927, label %3928, label %3932

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

3932:                                             ; preds = %3928, %3922
  br label %3933

3933:                                             ; preds = %3928, %3932
  %.str.5.sink1977 = phi ptr [ @.str.5, %3932 ], [ @.str.2, %3928 ]
  store i32 %3923, ptr %1935, align 4, !tbaa !5
  %3934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3935 = load i32, ptr @test_count, align 4, !tbaa !5
  %3936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3937 = load i32, ptr %3936, align 4, !tbaa !5
  %3938 = call ptr @s2n_strerror(i32 noundef %3937, ptr noundef nonnull @.str.4) #12
  %3939 = load i32, ptr %3936, align 4, !tbaa !5
  %3940 = call ptr @s2n_strerror_debug(i32 noundef %3939, ptr noundef nonnull @.str.4) #12
  %3941 = load i32, ptr %1935, align 4, !tbaa !5
  %3942 = call ptr @strerror(i32 noundef %3941) #12
  %3943 = load i32, ptr %1935, align 4, !tbaa !5
  %3944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3934, ptr noundef nonnull %.str.5.sink1977, i32 noundef %3935, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 552, ptr noundef %3938, ptr noundef %3940, ptr noundef %3942, i32 noundef %3943) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3945:                                             ; preds = %3917
  %3946 = add nsw i32 %3918, 3
  store i32 %3946, ptr @test_count, align 4, !tbaa !5
  %bcmp632 = call i32 @bcmp(ptr noundef nonnull dereferenceable(10) %3, ptr noundef nonnull dereferenceable(10) %104, i64 10)
  %3947 = icmp eq i32 %bcmp632, 0
  br i1 %3947, label %3971, label %3948

3948:                                             ; preds = %3945
  %3949 = load i32, ptr %1935, align 4, !tbaa !5
  %3950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3951 = call i32 @s2n_print_stacktrace(ptr noundef %3950) #12
  %3952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3953 = trunc nuw i8 %3952 to i1
  br i1 %3953, label %3954, label %3958

3954:                                             ; preds = %3948
  %3955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3956 = call i32 @fileno(ptr noundef %3955) #12
  %3957 = call i32 @isatty(i32 noundef %3956) #12
  %.not633 = icmp eq i32 %3957, 0
  br i1 %.not633, label %3958, label %3959

3958:                                             ; preds = %3954, %3948
  br label %3959

3959:                                             ; preds = %3954, %3958
  %.str.5.sink1988 = phi ptr [ @.str.5, %3958 ], [ @.str.2, %3954 ]
  store i32 %3949, ptr %1935, align 4, !tbaa !5
  %3960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3961 = load i32, ptr @test_count, align 4, !tbaa !5
  %3962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3963 = load i32, ptr %3962, align 4, !tbaa !5
  %3964 = call ptr @s2n_strerror(i32 noundef %3963, ptr noundef nonnull @.str.4) #12
  %3965 = load i32, ptr %3962, align 4, !tbaa !5
  %3966 = call ptr @s2n_strerror_debug(i32 noundef %3965, ptr noundef nonnull @.str.4) #12
  %3967 = load i32, ptr %1935, align 4, !tbaa !5
  %3968 = call ptr @strerror(i32 noundef %3967) #12
  %3969 = load i32, ptr %1935, align 4, !tbaa !5
  %3970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3960, ptr noundef nonnull %.str.5.sink1988, i32 noundef %3961, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 556, ptr noundef %3964, ptr noundef %3966, ptr noundef %3968, i32 noundef %3969) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3971:                                             ; preds = %3945
  %3972 = add nsw i32 %3918, 4
  store i32 %3972, ptr @test_count, align 4, !tbaa !5
  %3973 = getelementptr inbounds i8, ptr %100, i64 80
  %3974 = load i64, ptr %3973, align 8, !tbaa !50
  %3975 = icmp eq i64 %3974, 2
  br i1 %3975, label %3999, label %3976

3976:                                             ; preds = %3971
  %3977 = load i32, ptr %1935, align 4, !tbaa !5
  %3978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3979 = call i32 @s2n_print_stacktrace(ptr noundef %3978) #12
  %3980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3981 = trunc nuw i8 %3980 to i1
  br i1 %3981, label %3982, label %3986

3982:                                             ; preds = %3976
  %3983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3984 = call i32 @fileno(ptr noundef %3983) #12
  %3985 = call i32 @isatty(i32 noundef %3984) #12
  %.not634 = icmp eq i32 %3985, 0
  br i1 %.not634, label %3986, label %3987

3986:                                             ; preds = %3982, %3976
  br label %3987

3987:                                             ; preds = %3982, %3986
  %.str.5.sink1999 = phi ptr [ @.str.5, %3986 ], [ @.str.2, %3982 ]
  store i32 %3977, ptr %1935, align 4, !tbaa !5
  %3988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3989 = load i32, ptr @test_count, align 4, !tbaa !5
  %3990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3991 = load i32, ptr %3990, align 4, !tbaa !5
  %3992 = call ptr @s2n_strerror(i32 noundef %3991, ptr noundef nonnull @.str.4) #12
  %3993 = load i32, ptr %3990, align 4, !tbaa !5
  %3994 = call ptr @s2n_strerror_debug(i32 noundef %3993, ptr noundef nonnull @.str.4) #12
  %3995 = load i32, ptr %1935, align 4, !tbaa !5
  %3996 = call ptr @strerror(i32 noundef %3995) #12
  %3997 = load i32, ptr %1935, align 4, !tbaa !5
  %3998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3988, ptr noundef nonnull %.str.5.sink1999, i32 noundef %3989, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 558, ptr noundef %3992, ptr noundef %3994, ptr noundef %3996, i32 noundef %3997) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3999:                                             ; preds = %3971
  %4000 = add nsw i32 %3918, 5
  store i32 %4000, ptr @test_count, align 4, !tbaa !5
  %4001 = getelementptr inbounds i8, ptr %100, i64 88
  %4002 = load i64, ptr %4001, align 8, !tbaa !61
  %4003 = icmp eq i64 %4002, 1
  br i1 %4003, label %4027, label %4004

4004:                                             ; preds = %3999
  %4005 = load i32, ptr %1935, align 4, !tbaa !5
  %4006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4007 = call i32 @s2n_print_stacktrace(ptr noundef %4006) #12
  %4008 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4009 = trunc nuw i8 %4008 to i1
  br i1 %4009, label %4010, label %4014

4010:                                             ; preds = %4004
  %4011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4012 = call i32 @fileno(ptr noundef %4011) #12
  %4013 = call i32 @isatty(i32 noundef %4012) #12
  %.not635 = icmp eq i32 %4013, 0
  br i1 %.not635, label %4014, label %4015

4014:                                             ; preds = %4010, %4004
  br label %4015

4015:                                             ; preds = %4010, %4014
  %.str.5.sink2010 = phi ptr [ @.str.5, %4014 ], [ @.str.2, %4010 ]
  store i32 %4005, ptr %1935, align 4, !tbaa !5
  %4016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4017 = load i32, ptr @test_count, align 4, !tbaa !5
  %4018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4019 = load i32, ptr %4018, align 4, !tbaa !5
  %4020 = call ptr @s2n_strerror(i32 noundef %4019, ptr noundef nonnull @.str.4) #12
  %4021 = load i32, ptr %4018, align 4, !tbaa !5
  %4022 = call ptr @s2n_strerror_debug(i32 noundef %4021, ptr noundef nonnull @.str.4) #12
  %4023 = load i32, ptr %1935, align 4, !tbaa !5
  %4024 = call ptr @strerror(i32 noundef %4023) #12
  %4025 = load i32, ptr %1935, align 4, !tbaa !5
  %4026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4016, ptr noundef nonnull %.str.5.sink2010, i32 noundef %4017, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 559, ptr noundef %4020, ptr noundef %4022, ptr noundef %4024, i32 noundef %4025) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4027:                                             ; preds = %3999
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %108) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %107) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %106) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %105) #12
  call void @llvm.lifetime.end.p0(i64 16384, ptr nonnull %104) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %103) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %102) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %101) #12
  %4028 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef nonnull %100) #12
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %100) #12
  %4029 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %99) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %99) #12
  %4030 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %98) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %98) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %109) #12
  %4031 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %4031, ptr %109, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %110) #12
  %4032 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %4032, ptr %110, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 192, ptr nonnull %111) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(192) %111, i8 0, i64 192, i1 false)
  %4033 = load i32, ptr @test_count, align 4, !tbaa !5
  %4034 = add nsw i32 %4033, 1
  store i32 %4034, ptr @test_count, align 4, !tbaa !5
  %4035 = call i32 @s2n_test_init_ktls_io_stuffer(ptr noundef %4031, ptr noundef %4032, ptr noundef nonnull %111) #12
  %4036 = call zeroext i1 @s2n_result_is_ok(i32 %4035)
  br i1 %4036, label %4060, label %4037

4037:                                             ; preds = %4027
  %4038 = load i32, ptr %1935, align 4, !tbaa !5
  %4039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4040 = call i32 @s2n_print_stacktrace(ptr noundef %4039) #12
  %4041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4042 = trunc nuw i8 %4041 to i1
  br i1 %4042, label %4043, label %4047

4043:                                             ; preds = %4037
  %4044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4045 = call i32 @fileno(ptr noundef %4044) #12
  %4046 = call i32 @isatty(i32 noundef %4045) #12
  %.not636 = icmp eq i32 %4046, 0
  br i1 %.not636, label %4047, label %4048

4047:                                             ; preds = %4043, %4037
  br label %4048

4048:                                             ; preds = %4043, %4047
  %.str.5.sink2021 = phi ptr [ @.str.5, %4047 ], [ @.str.2, %4043 ]
  store i32 %4038, ptr %1935, align 4, !tbaa !5
  %4049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4050 = load i32, ptr @test_count, align 4, !tbaa !5
  %4051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4052 = load i32, ptr %4051, align 4, !tbaa !5
  %4053 = call ptr @s2n_strerror(i32 noundef %4052, ptr noundef nonnull @.str.4) #12
  %4054 = load i32, ptr %4051, align 4, !tbaa !5
  %4055 = call ptr @s2n_strerror_debug(i32 noundef %4054, ptr noundef nonnull @.str.4) #12
  %4056 = load i32, ptr %1935, align 4, !tbaa !5
  %4057 = call ptr @strerror(i32 noundef %4056) #12
  %4058 = load i32, ptr %1935, align 4, !tbaa !5
  %4059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4049, ptr noundef nonnull %.str.5.sink2021, i32 noundef %4050, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 570, ptr noundef %4053, ptr noundef %4055, ptr noundef %4057, i32 noundef %4058) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4060:                                             ; preds = %4027
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %112) #12
  store ptr %3, ptr %112, align 8, !tbaa !15
  %4061 = getelementptr inbounds i8, ptr %112, i64 8
  store i64 5, ptr %4061, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %113) #12
  store ptr null, ptr %113, align 8, !tbaa !19
  %4062 = getelementptr inbounds i8, ptr %113, i64 8
  store i32 0, ptr %4062, align 8, !tbaa !21
  %4063 = getelementptr inbounds i8, ptr %113, i64 16
  store ptr %112, ptr %4063, align 8, !tbaa !22
  %4064 = getelementptr inbounds i8, ptr %113, i64 24
  store i64 1, ptr %4064, align 8, !tbaa !23
  %4065 = getelementptr inbounds i8, ptr %113, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %4065, i8 0, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %114) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %114, i8 0, i64 100, i1 false)
  %4066 = load i32, ptr @test_count, align 4, !tbaa !5
  %4067 = add nsw i32 %4066, 1
  store i32 %4067, ptr @test_count, align 4, !tbaa !5
  %4068 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %113, ptr noundef nonnull %114, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 1) #12
  %4069 = call zeroext i1 @s2n_result_is_ok(i32 %4068)
  br i1 %4069, label %4093, label %4070

4070:                                             ; preds = %4060
  %4071 = load i32, ptr %1935, align 4, !tbaa !5
  %4072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4073 = call i32 @s2n_print_stacktrace(ptr noundef %4072) #12
  %4074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4075 = trunc nuw i8 %4074 to i1
  br i1 %4075, label %4076, label %4080

4076:                                             ; preds = %4070
  %4077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4078 = call i32 @fileno(ptr noundef %4077) #12
  %4079 = call i32 @isatty(i32 noundef %4078) #12
  %.not637 = icmp eq i32 %4079, 0
  br i1 %.not637, label %4080, label %4081

4080:                                             ; preds = %4076, %4070
  br label %4081

4081:                                             ; preds = %4076, %4080
  %.str.5.sink2032 = phi ptr [ @.str.5, %4080 ], [ @.str.2, %4076 ]
  store i32 %4071, ptr %1935, align 4, !tbaa !5
  %4082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4083 = load i32, ptr @test_count, align 4, !tbaa !5
  %4084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4085 = load i32, ptr %4084, align 4, !tbaa !5
  %4086 = call ptr @s2n_strerror(i32 noundef %4085, ptr noundef nonnull @.str.4) #12
  %4087 = load i32, ptr %4084, align 4, !tbaa !5
  %4088 = call ptr @s2n_strerror_debug(i32 noundef %4087, ptr noundef nonnull @.str.4) #12
  %4089 = load i32, ptr %1935, align 4, !tbaa !5
  %4090 = call ptr @strerror(i32 noundef %4089) #12
  %4091 = load i32, ptr %1935, align 4, !tbaa !5
  %4092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4082, ptr noundef nonnull %.str.5.sink2032, i32 noundef %4083, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 585, ptr noundef %4086, ptr noundef %4088, ptr noundef %4090, i32 noundef %4091) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4093:                                             ; preds = %4060
  %4094 = getelementptr inbounds i8, ptr %4031, i64 64
  %4095 = load ptr, ptr %4094, align 8, !tbaa !24
  %4096 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %4095, ptr noundef nonnull %113) #12
  %4097 = load i32, ptr @test_count, align 4, !tbaa !5
  %4098 = add nsw i32 %4097, 1
  store i32 %4098, ptr @test_count, align 4, !tbaa !5
  %4099 = icmp eq i64 %4096, 5
  br i1 %4099, label %4123, label %4100

4100:                                             ; preds = %4093
  %4101 = load i32, ptr %1935, align 4, !tbaa !5
  %4102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4103 = call i32 @s2n_print_stacktrace(ptr noundef %4102) #12
  %4104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4105 = trunc nuw i8 %4104 to i1
  br i1 %4105, label %4106, label %4110

4106:                                             ; preds = %4100
  %4107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4108 = call i32 @fileno(ptr noundef %4107) #12
  %4109 = call i32 @isatty(i32 noundef %4108) #12
  %.not638 = icmp eq i32 %4109, 0
  br i1 %.not638, label %4110, label %4111

4110:                                             ; preds = %4106, %4100
  br label %4111

4111:                                             ; preds = %4106, %4110
  %.str.5.sink2043 = phi ptr [ @.str.5, %4110 ], [ @.str.2, %4106 ]
  store i32 %4101, ptr %1935, align 4, !tbaa !5
  %4112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4113 = load i32, ptr @test_count, align 4, !tbaa !5
  %4114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4115 = load i32, ptr %4114, align 4, !tbaa !5
  %4116 = call ptr @s2n_strerror(i32 noundef %4115, ptr noundef nonnull @.str.4) #12
  %4117 = load i32, ptr %4114, align 4, !tbaa !5
  %4118 = call ptr @s2n_strerror_debug(i32 noundef %4117, ptr noundef nonnull @.str.4) #12
  %4119 = load i32, ptr %1935, align 4, !tbaa !5
  %4120 = call ptr @strerror(i32 noundef %4119) #12
  %4121 = load i32, ptr %1935, align 4, !tbaa !5
  %4122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4112, ptr noundef nonnull %.str.5.sink2043, i32 noundef %4113, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 587, ptr noundef %4116, ptr noundef %4118, ptr noundef %4120, i32 noundef %4121) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4123:                                             ; preds = %4093
  %4124 = add nsw i32 %4097, 2
  store i32 %4124, ptr @test_count, align 4, !tbaa !5
  %4125 = call i32 @s2n_ktls_set_control_data(ptr noundef nonnull %113, ptr noundef nonnull %114, i64 noundef 100, i32 noundef 0, i8 noundef zeroext 2) #12
  %4126 = call zeroext i1 @s2n_result_is_ok(i32 %4125)
  br i1 %4126, label %4150, label %4127

4127:                                             ; preds = %4123
  %4128 = load i32, ptr %1935, align 4, !tbaa !5
  %4129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4130 = call i32 @s2n_print_stacktrace(ptr noundef %4129) #12
  %4131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4132 = trunc nuw i8 %4131 to i1
  br i1 %4132, label %4133, label %4137

4133:                                             ; preds = %4127
  %4134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4135 = call i32 @fileno(ptr noundef %4134) #12
  %4136 = call i32 @isatty(i32 noundef %4135) #12
  %.not639 = icmp eq i32 %4136, 0
  br i1 %.not639, label %4137, label %4138

4137:                                             ; preds = %4133, %4127
  br label %4138

4138:                                             ; preds = %4133, %4137
  %.str.5.sink2054 = phi ptr [ @.str.5, %4137 ], [ @.str.2, %4133 ]
  store i32 %4128, ptr %1935, align 4, !tbaa !5
  %4139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4140 = load i32, ptr @test_count, align 4, !tbaa !5
  %4141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4142 = load i32, ptr %4141, align 4, !tbaa !5
  %4143 = call ptr @s2n_strerror(i32 noundef %4142, ptr noundef nonnull @.str.4) #12
  %4144 = load i32, ptr %4141, align 4, !tbaa !5
  %4145 = call ptr @s2n_strerror_debug(i32 noundef %4144, ptr noundef nonnull @.str.4) #12
  %4146 = load i32, ptr %1935, align 4, !tbaa !5
  %4147 = call ptr @strerror(i32 noundef %4146) #12
  %4148 = load i32, ptr %1935, align 4, !tbaa !5
  %4149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4139, ptr noundef nonnull %.str.5.sink2054, i32 noundef %4140, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 591, ptr noundef %4143, ptr noundef %4145, ptr noundef %4147, i32 noundef %4148) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4150:                                             ; preds = %4123
  store ptr %3844, ptr %112, align 8, !tbaa !15
  %4151 = load ptr, ptr %4094, align 8, !tbaa !24
  %4152 = call i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef %4151, ptr noundef nonnull %113) #12
  %4153 = load i32, ptr @test_count, align 4, !tbaa !5
  %4154 = add nsw i32 %4153, 1
  store i32 %4154, ptr @test_count, align 4, !tbaa !5
  %4155 = icmp eq i64 %4152, 5
  br i1 %4155, label %4179, label %4156

4156:                                             ; preds = %4150
  %4157 = load i32, ptr %1935, align 4, !tbaa !5
  %4158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4159 = call i32 @s2n_print_stacktrace(ptr noundef %4158) #12
  %4160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4161 = trunc nuw i8 %4160 to i1
  br i1 %4161, label %4162, label %4166

4162:                                             ; preds = %4156
  %4163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4164 = call i32 @fileno(ptr noundef %4163) #12
  %4165 = call i32 @isatty(i32 noundef %4164) #12
  %.not640 = icmp eq i32 %4165, 0
  br i1 %.not640, label %4166, label %4167

4166:                                             ; preds = %4162, %4156
  br label %4167

4167:                                             ; preds = %4162, %4166
  %.str.5.sink2065 = phi ptr [ @.str.5, %4166 ], [ @.str.2, %4162 ]
  store i32 %4157, ptr %1935, align 4, !tbaa !5
  %4168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4169 = load i32, ptr @test_count, align 4, !tbaa !5
  %4170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4171 = load i32, ptr %4170, align 4, !tbaa !5
  %4172 = call ptr @s2n_strerror(i32 noundef %4171, ptr noundef nonnull @.str.4) #12
  %4173 = load i32, ptr %4170, align 4, !tbaa !5
  %4174 = call ptr @s2n_strerror_debug(i32 noundef %4173, ptr noundef nonnull @.str.4) #12
  %4175 = load i32, ptr %1935, align 4, !tbaa !5
  %4176 = call ptr @strerror(i32 noundef %4175) #12
  %4177 = load i32, ptr %1935, align 4, !tbaa !5
  %4178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4168, ptr noundef nonnull %.str.5.sink2065, i32 noundef %4169, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 594, ptr noundef %4172, ptr noundef %4174, ptr noundef %4176, i32 noundef %4177) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4179:                                             ; preds = %4150
  call void @llvm.lifetime.start.p0(i64 16384, ptr nonnull %115) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16384) %115, i8 0, i64 16384, i1 false)
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %116) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %116, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %117) #12
  store ptr %115, ptr %117, align 8, !tbaa !15
  %4180 = getelementptr inbounds i8, ptr %117, i64 8
  store i64 10, ptr %4180, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %118) #12
  store ptr null, ptr %118, align 8, !tbaa !19
  %4181 = getelementptr inbounds i8, ptr %118, i64 8
  store i32 0, ptr %4181, align 8, !tbaa !21
  %4182 = getelementptr inbounds i8, ptr %118, i64 16
  store ptr %117, ptr %4182, align 8, !tbaa !22
  %4183 = getelementptr inbounds i8, ptr %118, i64 24
  store i64 1, ptr %4183, align 8, !tbaa !23
  %4184 = getelementptr inbounds i8, ptr %118, i64 32
  store ptr %116, ptr %4184, align 8, !tbaa !56
  %4185 = getelementptr inbounds i8, ptr %118, i64 40
  store i64 100, ptr %4185, align 8, !tbaa !57
  %4186 = getelementptr inbounds i8, ptr %118, i64 48
  store i32 0, ptr %4186, align 8, !tbaa !58
  %4187 = getelementptr inbounds i8, ptr %4032, i64 72
  %4188 = load ptr, ptr %4187, align 8, !tbaa !59
  %4189 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %4188, ptr noundef nonnull %118) #12
  %4190 = load i32, ptr @test_count, align 4, !tbaa !5
  %4191 = add nsw i32 %4190, 1
  store i32 %4191, ptr @test_count, align 4, !tbaa !5
  %4192 = icmp eq i64 %4189, 5
  br i1 %4192, label %4216, label %4193

4193:                                             ; preds = %4179
  %4194 = load i32, ptr %1935, align 4, !tbaa !5
  %4195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4196 = call i32 @s2n_print_stacktrace(ptr noundef %4195) #12
  %4197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4198 = trunc nuw i8 %4197 to i1
  br i1 %4198, label %4199, label %4203

4199:                                             ; preds = %4193
  %4200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4201 = call i32 @fileno(ptr noundef %4200) #12
  %4202 = call i32 @isatty(i32 noundef %4201) #12
  %.not641 = icmp eq i32 %4202, 0
  br i1 %.not641, label %4203, label %4204

4203:                                             ; preds = %4199, %4193
  br label %4204

4204:                                             ; preds = %4199, %4203
  %.str.5.sink2076 = phi ptr [ @.str.5, %4203 ], [ @.str.2, %4199 ]
  store i32 %4194, ptr %1935, align 4, !tbaa !5
  %4205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4206 = load i32, ptr @test_count, align 4, !tbaa !5
  %4207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4208 = load i32, ptr %4207, align 4, !tbaa !5
  %4209 = call ptr @s2n_strerror(i32 noundef %4208, ptr noundef nonnull @.str.4) #12
  %4210 = load i32, ptr %4207, align 4, !tbaa !5
  %4211 = call ptr @s2n_strerror_debug(i32 noundef %4210, ptr noundef nonnull @.str.4) #12
  %4212 = load i32, ptr %1935, align 4, !tbaa !5
  %4213 = call ptr @strerror(i32 noundef %4212) #12
  %4214 = load i32, ptr %1935, align 4, !tbaa !5
  %4215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4205, ptr noundef nonnull %.str.5.sink2076, i32 noundef %4206, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 608, ptr noundef %4209, ptr noundef %4211, ptr noundef %4213, i32 noundef %4214) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4216:                                             ; preds = %4179
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %119) #12
  store i8 0, ptr %119, align 1, !tbaa !60
  %4217 = add nsw i32 %4190, 2
  store i32 %4217, ptr @test_count, align 4, !tbaa !5
  %4218 = call i32 @s2n_ktls_get_control_data(ptr noundef nonnull %118, i32 noundef 0, ptr noundef nonnull %119) #12
  %4219 = call zeroext i1 @s2n_result_is_ok(i32 %4218)
  br i1 %4219, label %4243, label %4220

4220:                                             ; preds = %4216
  %4221 = load i32, ptr %1935, align 4, !tbaa !5
  %4222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4223 = call i32 @s2n_print_stacktrace(ptr noundef %4222) #12
  %4224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4225 = trunc nuw i8 %4224 to i1
  br i1 %4225, label %4226, label %4230

4226:                                             ; preds = %4220
  %4227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4228 = call i32 @fileno(ptr noundef %4227) #12
  %4229 = call i32 @isatty(i32 noundef %4228) #12
  %.not642 = icmp eq i32 %4229, 0
  br i1 %.not642, label %4230, label %4231

4230:                                             ; preds = %4226, %4220
  br label %4231

4231:                                             ; preds = %4226, %4230
  %.str.5.sink2087 = phi ptr [ @.str.5, %4230 ], [ @.str.2, %4226 ]
  store i32 %4221, ptr %1935, align 4, !tbaa !5
  %4232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4233 = load i32, ptr @test_count, align 4, !tbaa !5
  %4234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4235 = load i32, ptr %4234, align 4, !tbaa !5
  %4236 = call ptr @s2n_strerror(i32 noundef %4235, ptr noundef nonnull @.str.4) #12
  %4237 = load i32, ptr %4234, align 4, !tbaa !5
  %4238 = call ptr @s2n_strerror_debug(i32 noundef %4237, ptr noundef nonnull @.str.4) #12
  %4239 = load i32, ptr %1935, align 4, !tbaa !5
  %4240 = call ptr @strerror(i32 noundef %4239) #12
  %4241 = load i32, ptr %1935, align 4, !tbaa !5
  %4242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4232, ptr noundef nonnull %.str.5.sink2087, i32 noundef %4233, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 610, ptr noundef %4236, ptr noundef %4238, ptr noundef %4240, i32 noundef %4241) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4243:                                             ; preds = %4216
  %4244 = load i32, ptr @test_count, align 4, !tbaa !5
  %4245 = add nsw i32 %4244, 1
  store i32 %4245, ptr @test_count, align 4, !tbaa !5
  %4246 = load i8, ptr %119, align 1, !tbaa !60
  %4247 = icmp eq i8 %4246, 1
  br i1 %4247, label %4271, label %4248

4248:                                             ; preds = %4243
  %4249 = load i32, ptr %1935, align 4, !tbaa !5
  %4250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4251 = call i32 @s2n_print_stacktrace(ptr noundef %4250) #12
  %4252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4253 = trunc nuw i8 %4252 to i1
  br i1 %4253, label %4254, label %4258

4254:                                             ; preds = %4248
  %4255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4256 = call i32 @fileno(ptr noundef %4255) #12
  %4257 = call i32 @isatty(i32 noundef %4256) #12
  %.not643 = icmp eq i32 %4257, 0
  br i1 %.not643, label %4258, label %4259

4258:                                             ; preds = %4254, %4248
  br label %4259

4259:                                             ; preds = %4254, %4258
  %.str.5.sink2098 = phi ptr [ @.str.5, %4258 ], [ @.str.2, %4254 ]
  store i32 %4249, ptr %1935, align 4, !tbaa !5
  %4260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4261 = load i32, ptr @test_count, align 4, !tbaa !5
  %4262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4263 = load i32, ptr %4262, align 4, !tbaa !5
  %4264 = call ptr @s2n_strerror(i32 noundef %4263, ptr noundef nonnull @.str.4) #12
  %4265 = load i32, ptr %4262, align 4, !tbaa !5
  %4266 = call ptr @s2n_strerror_debug(i32 noundef %4265, ptr noundef nonnull @.str.4) #12
  %4267 = load i32, ptr %1935, align 4, !tbaa !5
  %4268 = call ptr @strerror(i32 noundef %4267) #12
  %4269 = load i32, ptr %1935, align 4, !tbaa !5
  %4270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4260, ptr noundef nonnull %.str.5.sink2098, i32 noundef %4261, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 611, ptr noundef %4264, ptr noundef %4266, ptr noundef %4268, i32 noundef %4269) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4271:                                             ; preds = %4243
  %4272 = getelementptr inbounds i8, ptr %115, i64 5
  store ptr %4272, ptr %117, align 8, !tbaa !15
  %4273 = load ptr, ptr %4187, align 8, !tbaa !59
  %4274 = call i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef %4273, ptr noundef nonnull %118) #12
  %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 = icmp eq i64 %4274, 5
  br i1 %4277, label %4301, label %4278

4278:                                             ; preds = %4271
  %4279 = load i32, ptr %1935, align 4, !tbaa !5
  %4280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4281 = call i32 @s2n_print_stacktrace(ptr noundef %4280) #12
  %4282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4283 = trunc nuw i8 %4282 to i1
  br i1 %4283, label %4284, label %4288

4284:                                             ; preds = %4278
  %4285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4286 = call i32 @fileno(ptr noundef %4285) #12
  %4287 = call i32 @isatty(i32 noundef %4286) #12
  %.not644 = icmp eq i32 %4287, 0
  br i1 %.not644, label %4288, label %4289

4288:                                             ; preds = %4284, %4278
  br label %4289

4289:                                             ; preds = %4284, %4288
  %.str.5.sink2109 = phi ptr [ @.str.5, %4288 ], [ @.str.2, %4284 ]
  store i32 %4279, ptr %1935, align 4, !tbaa !5
  %4290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4291 = load i32, ptr @test_count, align 4, !tbaa !5
  %4292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4293 = load i32, ptr %4292, align 4, !tbaa !5
  %4294 = call ptr @s2n_strerror(i32 noundef %4293, ptr noundef nonnull @.str.4) #12
  %4295 = load i32, ptr %4292, align 4, !tbaa !5
  %4296 = call ptr @s2n_strerror_debug(i32 noundef %4295, ptr noundef nonnull @.str.4) #12
  %4297 = load i32, ptr %1935, align 4, !tbaa !5
  %4298 = call ptr @strerror(i32 noundef %4297) #12
  %4299 = load i32, ptr %1935, align 4, !tbaa !5
  %4300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4290, ptr noundef nonnull %.str.5.sink2109, i32 noundef %4291, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 616, ptr noundef %4294, ptr noundef %4296, ptr noundef %4298, i32 noundef %4299) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4301:                                             ; preds = %4271
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %120) #12
  store i8 0, ptr %120, align 1, !tbaa !60
  %4302 = add nsw i32 %4275, 2
  store i32 %4302, ptr @test_count, align 4, !tbaa !5
  %4303 = call i32 @s2n_ktls_get_control_data(ptr noundef nonnull %118, i32 noundef 0, ptr noundef nonnull %120) #12
  %4304 = call zeroext i1 @s2n_result_is_ok(i32 %4303)
  br i1 %4304, label %4328, label %4305

4305:                                             ; preds = %4301
  %4306 = load i32, ptr %1935, align 4, !tbaa !5
  %4307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4308 = call i32 @s2n_print_stacktrace(ptr noundef %4307) #12
  %4309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4310 = trunc nuw i8 %4309 to i1
  br i1 %4310, label %4311, label %4315

4311:                                             ; preds = %4305
  %4312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4313 = call i32 @fileno(ptr noundef %4312) #12
  %4314 = call i32 @isatty(i32 noundef %4313) #12
  %.not645 = icmp eq i32 %4314, 0
  br i1 %.not645, label %4315, label %4316

4315:                                             ; preds = %4311, %4305
  br label %4316

4316:                                             ; preds = %4311, %4315
  %.str.5.sink2120 = phi ptr [ @.str.5, %4315 ], [ @.str.2, %4311 ]
  store i32 %4306, ptr %1935, align 4, !tbaa !5
  %4317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4318 = load i32, ptr @test_count, align 4, !tbaa !5
  %4319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4320 = load i32, ptr %4319, align 4, !tbaa !5
  %4321 = call ptr @s2n_strerror(i32 noundef %4320, ptr noundef nonnull @.str.4) #12
  %4322 = load i32, ptr %4319, align 4, !tbaa !5
  %4323 = call ptr @s2n_strerror_debug(i32 noundef %4322, ptr noundef nonnull @.str.4) #12
  %4324 = load i32, ptr %1935, align 4, !tbaa !5
  %4325 = call ptr @strerror(i32 noundef %4324) #12
  %4326 = load i32, ptr %1935, align 4, !tbaa !5
  %4327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4317, ptr noundef nonnull %.str.5.sink2120, i32 noundef %4318, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 618, ptr noundef %4321, ptr noundef %4323, ptr noundef %4325, i32 noundef %4326) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4328:                                             ; preds = %4301
  %4329 = load i32, ptr @test_count, align 4, !tbaa !5
  %4330 = add nsw i32 %4329, 1
  store i32 %4330, ptr @test_count, align 4, !tbaa !5
  %4331 = load i8, ptr %120, align 1, !tbaa !60
  %4332 = icmp eq i8 %4331, 2
  br i1 %4332, label %4356, label %4333

4333:                                             ; preds = %4328
  %4334 = load i32, ptr %1935, align 4, !tbaa !5
  %4335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4336 = call i32 @s2n_print_stacktrace(ptr noundef %4335) #12
  %4337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4338 = trunc nuw i8 %4337 to i1
  br i1 %4338, label %4339, label %4343

4339:                                             ; preds = %4333
  %4340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4341 = call i32 @fileno(ptr noundef %4340) #12
  %4342 = call i32 @isatty(i32 noundef %4341) #12
  %.not646 = icmp eq i32 %4342, 0
  br i1 %.not646, label %4343, label %4344

4343:                                             ; preds = %4339, %4333
  br label %4344

4344:                                             ; preds = %4339, %4343
  %.str.5.sink2131 = phi ptr [ @.str.5, %4343 ], [ @.str.2, %4339 ]
  store i32 %4334, ptr %1935, align 4, !tbaa !5
  %4345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4346 = load i32, ptr @test_count, align 4, !tbaa !5
  %4347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4348 = load i32, ptr %4347, align 4, !tbaa !5
  %4349 = call ptr @s2n_strerror(i32 noundef %4348, ptr noundef nonnull @.str.4) #12
  %4350 = load i32, ptr %4347, align 4, !tbaa !5
  %4351 = call ptr @s2n_strerror_debug(i32 noundef %4350, ptr noundef nonnull @.str.4) #12
  %4352 = load i32, ptr %1935, align 4, !tbaa !5
  %4353 = call ptr @strerror(i32 noundef %4352) #12
  %4354 = load i32, ptr %1935, align 4, !tbaa !5
  %4355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4345, ptr noundef nonnull %.str.5.sink2131, i32 noundef %4346, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 619, ptr noundef %4349, ptr noundef %4351, ptr noundef %4353, i32 noundef %4354) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4356:                                             ; preds = %4328
  %4357 = add nsw i32 %4329, 2
  store i32 %4357, ptr @test_count, align 4, !tbaa !5
  %4358 = getelementptr inbounds i8, ptr %111, i64 28
  %4359 = load i32, ptr %4358, align 4, !tbaa !54
  %4360 = getelementptr inbounds i8, ptr %111, i64 24
  %4361 = load i32, ptr %4360, align 8, !tbaa !55
  %4362 = icmp eq i32 %4359, %4361
  br i1 %4362, label %4386, label %4363

4363:                                             ; preds = %4356
  %4364 = load i32, ptr %1935, align 4, !tbaa !5
  %4365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4366 = call i32 @s2n_print_stacktrace(ptr noundef %4365) #12
  %4367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4368 = trunc nuw i8 %4367 to i1
  br i1 %4368, label %4369, label %4373

4369:                                             ; preds = %4363
  %4370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4371 = call i32 @fileno(ptr noundef %4370) #12
  %4372 = call i32 @isatty(i32 noundef %4371) #12
  %.not647 = icmp eq i32 %4372, 0
  br i1 %.not647, label %4373, label %4374

4373:                                             ; preds = %4369, %4363
  br label %4374

4374:                                             ; preds = %4369, %4373
  %.str.5.sink2142 = phi ptr [ @.str.5, %4373 ], [ @.str.2, %4369 ]
  store i32 %4364, ptr %1935, align 4, !tbaa !5
  %4375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4376 = load i32, ptr @test_count, align 4, !tbaa !5
  %4377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4378 = load i32, ptr %4377, align 4, !tbaa !5
  %4379 = call ptr @s2n_strerror(i32 noundef %4378, ptr noundef nonnull @.str.4) #12
  %4380 = load i32, ptr %4377, align 4, !tbaa !5
  %4381 = call ptr @s2n_strerror_debug(i32 noundef %4380, ptr noundef nonnull @.str.4) #12
  %4382 = load i32, ptr %1935, align 4, !tbaa !5
  %4383 = call ptr @strerror(i32 noundef %4382) #12
  %4384 = load i32, ptr %1935, align 4, !tbaa !5
  %4385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4375, ptr noundef nonnull %.str.5.sink2142, i32 noundef %4376, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 624, ptr noundef %4379, ptr noundef %4381, ptr noundef %4383, i32 noundef %4384) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4386:                                             ; preds = %4356
  %4387 = add nsw i32 %4329, 4
  store i32 %4387, ptr @test_count, align 4, !tbaa !5
  %bcmp648 = call i32 @bcmp(ptr noundef nonnull dereferenceable(10) %3, ptr noundef nonnull dereferenceable(10) %115, i64 10)
  %4388 = icmp eq i32 %bcmp648, 0
  br i1 %4388, label %4412, label %4389

4389:                                             ; preds = %4386
  %4390 = load i32, ptr %1935, align 4, !tbaa !5
  %4391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4392 = call i32 @s2n_print_stacktrace(ptr noundef %4391) #12
  %4393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4394 = trunc nuw i8 %4393 to i1
  br i1 %4394, label %4395, label %4399

4395:                                             ; preds = %4389
  %4396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4397 = call i32 @fileno(ptr noundef %4396) #12
  %4398 = call i32 @isatty(i32 noundef %4397) #12
  %.not649 = icmp eq i32 %4398, 0
  br i1 %.not649, label %4399, label %4400

4399:                                             ; preds = %4395, %4389
  br label %4400

4400:                                             ; preds = %4395, %4399
  %.str.5.sink2153 = phi ptr [ @.str.5, %4399 ], [ @.str.2, %4395 ]
  store i32 %4390, ptr %1935, align 4, !tbaa !5
  %4401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4402 = load i32, ptr @test_count, align 4, !tbaa !5
  %4403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4404 = load i32, ptr %4403, align 4, !tbaa !5
  %4405 = call ptr @s2n_strerror(i32 noundef %4404, ptr noundef nonnull @.str.4) #12
  %4406 = load i32, ptr %4403, align 4, !tbaa !5
  %4407 = call ptr @s2n_strerror_debug(i32 noundef %4406, ptr noundef nonnull @.str.4) #12
  %4408 = load i32, ptr %1935, align 4, !tbaa !5
  %4409 = call ptr @strerror(i32 noundef %4408) #12
  %4410 = load i32, ptr %1935, align 4, !tbaa !5
  %4411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4401, ptr noundef nonnull %.str.5.sink2153, i32 noundef %4402, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 626, ptr noundef %4405, ptr noundef %4407, ptr noundef %4409, i32 noundef %4410) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4412:                                             ; preds = %4386
  %4413 = add nsw i32 %4329, 5
  store i32 %4413, ptr @test_count, align 4, !tbaa !5
  %4414 = getelementptr inbounds i8, ptr %111, i64 80
  %4415 = load i64, ptr %4414, align 8, !tbaa !50
  %4416 = icmp eq i64 %4415, 2
  br i1 %4416, label %4440, label %4417

4417:                                             ; preds = %4412
  %4418 = load i32, ptr %1935, align 4, !tbaa !5
  %4419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4420 = call i32 @s2n_print_stacktrace(ptr noundef %4419) #12
  %4421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4422 = trunc nuw i8 %4421 to i1
  br i1 %4422, label %4423, label %4427

4423:                                             ; preds = %4417
  %4424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4425 = call i32 @fileno(ptr noundef %4424) #12
  %4426 = call i32 @isatty(i32 noundef %4425) #12
  %.not650 = icmp eq i32 %4426, 0
  br i1 %.not650, label %4427, label %4428

4427:                                             ; preds = %4423, %4417
  br label %4428

4428:                                             ; preds = %4423, %4427
  %.str.5.sink2164 = phi ptr [ @.str.5, %4427 ], [ @.str.2, %4423 ]
  store i32 %4418, ptr %1935, align 4, !tbaa !5
  %4429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4430 = load i32, ptr @test_count, align 4, !tbaa !5
  %4431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4432 = load i32, ptr %4431, align 4, !tbaa !5
  %4433 = call ptr @s2n_strerror(i32 noundef %4432, ptr noundef nonnull @.str.4) #12
  %4434 = load i32, ptr %4431, align 4, !tbaa !5
  %4435 = call ptr @s2n_strerror_debug(i32 noundef %4434, ptr noundef nonnull @.str.4) #12
  %4436 = load i32, ptr %1935, align 4, !tbaa !5
  %4437 = call ptr @strerror(i32 noundef %4436) #12
  %4438 = load i32, ptr %1935, align 4, !tbaa !5
  %4439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4429, ptr noundef nonnull %.str.5.sink2164, i32 noundef %4430, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 628, ptr noundef %4433, ptr noundef %4435, ptr noundef %4437, i32 noundef %4438) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4440:                                             ; preds = %4412
  %4441 = add nsw i32 %4329, 6
  store i32 %4441, ptr @test_count, align 4, !tbaa !5
  %4442 = getelementptr inbounds i8, ptr %111, i64 88
  %4443 = load i64, ptr %4442, align 8, !tbaa !61
  %4444 = icmp eq i64 %4443, 2
  br i1 %4444, label %4468, label %4445

4445:                                             ; preds = %4440
  %4446 = load i32, ptr %1935, align 4, !tbaa !5
  %4447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4448 = call i32 @s2n_print_stacktrace(ptr noundef %4447) #12
  %4449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4450 = trunc nuw i8 %4449 to i1
  br i1 %4450, label %4451, label %4455

4451:                                             ; preds = %4445
  %4452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4453 = call i32 @fileno(ptr noundef %4452) #12
  %4454 = call i32 @isatty(i32 noundef %4453) #12
  %.not651 = icmp eq i32 %4454, 0
  br i1 %.not651, label %4455, label %4456

4455:                                             ; preds = %4451, %4445
  br label %4456

4456:                                             ; preds = %4451, %4455
  %.str.5.sink2175 = phi ptr [ @.str.5, %4455 ], [ @.str.2, %4451 ]
  store i32 %4446, ptr %1935, align 4, !tbaa !5
  %4457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4458 = load i32, ptr @test_count, align 4, !tbaa !5
  %4459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4460 = load i32, ptr %4459, align 4, !tbaa !5
  %4461 = call ptr @s2n_strerror(i32 noundef %4460, ptr noundef nonnull @.str.4) #12
  %4462 = load i32, ptr %4459, align 4, !tbaa !5
  %4463 = call ptr @s2n_strerror_debug(i32 noundef %4462, ptr noundef nonnull @.str.4) #12
  %4464 = load i32, ptr %1935, align 4, !tbaa !5
  %4465 = call ptr @strerror(i32 noundef %4464) #12
  %4466 = load i32, ptr %1935, align 4, !tbaa !5
  %4467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4457, ptr noundef nonnull %.str.5.sink2175, i32 noundef %4458, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 629, ptr noundef %4461, ptr noundef %4463, ptr noundef %4465, i32 noundef %4466) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4468:                                             ; preds = %4440
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %119) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %118) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %117) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %116) #12
  call void @llvm.lifetime.end.p0(i64 16384, ptr nonnull %115) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %114) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %113) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %112) #12
  %4469 = call i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef nonnull %111) #12
  call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %111) #12
  %4470 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %110) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %110) #12
  %4471 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %109) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %109) #12
  %4472 = call i32 @s2n_cleanup() #12
  %4473 = icmp eq i32 %4472, -1
  br i1 %4473, label %4474, label %4497

4474:                                             ; preds = %4468
  %4475 = load i32, ptr %1935, align 4, !tbaa !5
  %4476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4477 = call i32 @s2n_print_stacktrace(ptr noundef %4476) #12
  %4478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4479 = trunc nuw i8 %4478 to i1
  br i1 %4479, label %4480, label %4484

4480:                                             ; preds = %4474
  %4481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4482 = call i32 @fileno(ptr noundef %4481) #12
  %4483 = call i32 @isatty(i32 noundef %4482) #12
  %.not656 = icmp eq i32 %4483, 0
  br i1 %.not656, label %4484, label %4485

4484:                                             ; preds = %4480, %4474
  br label %4485

4485:                                             ; preds = %4480, %4484
  %.str.5.sink2186 = phi ptr [ @.str.5, %4484 ], [ @.str.2, %4480 ]
  store i32 %4475, ptr %1935, align 4, !tbaa !5
  %4486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4487 = load i32, ptr @test_count, align 4, !tbaa !5
  %4488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4489 = load i32, ptr %4488, align 4, !tbaa !5
  %4490 = call ptr @s2n_strerror(i32 noundef %4489, ptr noundef nonnull @.str.4) #12
  %4491 = load i32, ptr %4488, align 4, !tbaa !5
  %4492 = call ptr @s2n_strerror_debug(i32 noundef %4491, ptr noundef nonnull @.str.4) #12
  %4493 = load i32, ptr %1935, align 4, !tbaa !5
  %4494 = call ptr @strerror(i32 noundef %4493) #12
  %4495 = load i32, ptr %1935, align 4, !tbaa !5
  %4496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4486, ptr noundef nonnull %.str.5.sink2186, i32 noundef %4487, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 633, ptr noundef %4490, ptr noundef %4492, ptr noundef %4494, i32 noundef %4495) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4497:                                             ; preds = %4468
  %4498 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %4499 = icmp eq i32 %4498, -1
  br i1 %4499, label %4500, label %4523

4500:                                             ; preds = %4497
  %4501 = load i32, ptr %1935, align 4, !tbaa !5
  %4502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4503 = call i32 @s2n_print_stacktrace(ptr noundef %4502) #12
  %4504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4505 = trunc nuw i8 %4504 to i1
  br i1 %4505, label %4506, label %4510

4506:                                             ; preds = %4500
  %4507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4508 = call i32 @fileno(ptr noundef %4507) #12
  %4509 = call i32 @isatty(i32 noundef %4508) #12
  %.not655 = icmp eq i32 %4509, 0
  br i1 %.not655, label %4510, label %4511

4510:                                             ; preds = %4506, %4500
  br label %4511

4511:                                             ; preds = %4506, %4510
  %.str.5.sink2197 = phi ptr [ @.str.5, %4510 ], [ @.str.2, %4506 ]
  store i32 %4501, ptr %1935, align 4, !tbaa !5
  %4512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4513 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4515, ptr noundef nonnull @.str.4) #12
  %4517 = load i32, ptr %4514, align 4, !tbaa !5
  %4518 = call ptr @s2n_strerror_debug(i32 noundef %4517, ptr noundef nonnull @.str.4) #12
  %4519 = load i32, ptr %1935, align 4, !tbaa !5
  %4520 = call ptr @strerror(i32 noundef %4519) #12
  %4521 = load i32, ptr %1935, align 4, !tbaa !5
  %4522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4512, ptr noundef nonnull %.str.5.sink2197, i32 noundef %4513, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 633, ptr noundef %4516, ptr noundef %4518, ptr noundef %4520, i32 noundef %4521) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4523:                                             ; preds = %4497
  %4524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4525 = trunc nuw i8 %4524 to i1
  br i1 %4525, label %4526, label %4537

4526:                                             ; preds = %4523
  %4527 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4528 = call i32 @fileno(ptr noundef %4527) #12
  %4529 = call i32 @isatty(i32 noundef %4528) #12
  %.not652 = icmp eq i32 %4529, 0
  br i1 %.not652, label %4537, label %4530

4530:                                             ; preds = %4526
  %4531 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not654 = icmp eq i32 %4531, 0
  %4532 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not654, label %4535, label %4533

4533:                                             ; preds = %4530
  %4534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4532, ptr noundef nonnull @.str.68, i32 noundef %4531) #12
  br label %4544

4535:                                             ; preds = %4530
  %4536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4532, ptr noundef nonnull @.str.69) #12
  br label %4544

4537:                                             ; preds = %4526, %4523
  %4538 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not653 = icmp eq i32 %4538, 0
  %4539 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not653, label %4542, label %4540

4540:                                             ; preds = %4537
  %4541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4539, ptr noundef nonnull @.str.70, i32 noundef %4538) #12
  br label %4544

4542:                                             ; preds = %4537
  %4543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4539, ptr noundef nonnull @.str.71) #12
  br label %4544

4544:                                             ; preds = %4540, %4542, %4533, %4535
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 16384, ptr nonnull %3) #12
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #4

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #2

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) local_unnamed_addr #5

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #7

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #9

declare i32 @s2n_get_public_random_data(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_ktls_io_stuffer_pair_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_test_init_ktls_io_stuffer(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_ktls_set_control_data(ptr noundef, ptr noundef, i64 noundef, i32 noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i64 @s2n_test_ktls_sendmsg_io_stuffer(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_test_validate_data(ptr noundef, ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_test_validate_ancillary(ptr noundef, i8 noundef zeroext, i16 noundef zeroext) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #10

declare ptr @s2n_stuffer_raw_read(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i64 @s2n_test_ktls_recvmsg_io_stuffer(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_ktls_get_control_data(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #11

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #11 = { nofree nounwind willreturn memory(argmem: read) }
attributes #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(none) }
attributes #14 = { cold nounwind }
attributes #15 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 0}
!16 = !{!"iovec", !10, i64 0, !17, i64 8}
!17 = !{!"long", !7, i64 0}
!18 = !{!16, !17, i64 8}
!19 = !{!20, !10, i64 0}
!20 = !{!"msghdr", !10, i64 0, !6, i64 8, !10, i64 16, !17, i64 24, !10, i64 32, !17, i64 40, !6, i64 48}
!21 = !{!20, !6, i64 8}
!22 = !{!20, !10, i64 16}
!23 = !{!20, !17, i64 24}
!24 = !{!25, !10, i64 64}
!25 = !{!"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, !26, i64 160, !17, i64 168, !17, 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, !27, i64 240, !10, i64 632, !10, i64 640, !28, i64 648, !34, i64 1144, !37, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !40, i64 1776, !40, i64 1816, !40, i64 1856, !40, i64 1896, !6, i64 1936, !17, i64 1944, !7, i64 1952, !40, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !41, i64 2004, !41, i64 2008, !42, i64 2016, !39, i64 2208, !6, i64 2212, !39, i64 2216, !17, i64 2224, !7, i64 2232, !17, i64 2240, !17, i64 2248, !17, i64 2256, !41, i64 2264, !41, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !33, i64 2792, !6, i64 2816, !33, i64 2824, !33, i64 2848, !33, i64 2872, !44, i64 2896, !46, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !33, i64 3784, !6, i64 3808, !48, i64 3816, !7, i64 3848, !40, i64 3992, !33, i64 4032, !33, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !39, i64 4084, !39, i64 4086, !6, i64 4088, !6, i64 4092, !33, i64 4096, !6, i64 4120, !49, i64 4128, !41, i64 4176, !7, i64 4180, !7, i64 4181}
!26 = !{!"s2n_timer", !17, i64 0}
!27 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!28 = !{!"s2n_kex_parameters", !29, i64 0, !30, i64 8, !7, i64 24, !30, i64 56, !31, i64 72, !31, i64 184, !7, i64 296, !32, i64 360, !33, i64 448, !33, i64 472}
!29 = !{!"s2n_dh_params", !10, i64 0}
!30 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!31 = !{!"s2n_kem_group_params", !10, i64 0, !32, i64 8, !30, i64 96}
!32 = !{!"s2n_kem_params", !10, i64 0, !33, i64 8, !33, i64 32, !33, i64 56, !12, i64 80}
!33 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!34 = !{!"s2n_handshake_parameters", !35, i64 0, !35, i64 48, !33, i64 96, !6, i64 120, !36, 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}
!35 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!36 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!37 = !{!"s2n_psk_parameters", !6, i64 0, !38, i64 8, !39, i64 40, !39, i64 42, !10, i64 48, !6, i64 56}
!38 = !{!"s2n_array", !33, i64 0, !6, i64 24, !6, i64 28}
!39 = !{!"short", !7, i64 0}
!40 = !{!"s2n_stuffer", !33, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!41 = !{!"", !6, i64 0}
!42 = !{!"s2n_handshake", !40, 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, !43, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!43 = !{!"s2n_offered_early_data", !10, i64 0}
!44 = !{!"s2n_client_hello", !33, i64 0, !45, i64 24, !33, i64 728, !33, i64 752, !33, 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}
!45 = !{!"", !7, i64 0, !33, i64 672, !39, i64 696}
!46 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !39, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !47, i64 48, !12, i64 52}
!47 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!48 = !{!"s2n_ticket_fields", !33, i64 0, !6, i64 24}
!49 = !{!"s2n_post_handshake", !40, i64 0, !7, i64 40}
!50 = !{!51, !17, i64 80}
!51 = !{!"s2n_test_ktls_io_stuffer_pair", !52, i64 0, !52, i64 96}
!52 = !{!"s2n_test_ktls_io_stuffer", !40, i64 0, !40, i64 40, !17, i64 80, !17, i64 88}
!53 = !{!51, !17, i64 176}
!54 = !{!51, !6, i64 28}
!55 = !{!51, !6, i64 24}
!56 = !{!20, !10, i64 32}
!57 = !{!20, !17, i64 40}
!58 = !{!20, !6, i64 48}
!59 = !{!25, !10, i64 72}
!60 = !{!7, !7, i64 0}
!61 = !{!51, !17, i64 88}
!62 = distinct !{!62, !63}
!63 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,MemCpyOptPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass