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

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

%struct.s2n_test_io_stuffer_pair = type { %struct.s2n_stuffer, %struct.s2n_stuffer }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_mem_test_cb_scope = type { i8 }
%struct.s2n_config = type { i32, ptr, ptr, %struct.certs_by_type, %struct.s2n_blob, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i64, ptr, i64, i64, ptr, ptr, ptr, ptr, ptr, ptr, i32, i8, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, %struct.s2n_x509_trust_store, i16, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, ptr, i32, i32, ptr, ptr, i32, %struct.s2n_blob }
%struct.certs_by_type = type { [4 x ptr] }
%struct.s2n_x509_trust_store = type { ptr, i8 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_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
@tickets_count = external dso_local global i64, align 8
@hello_request_count = external dso_local global i64, align 8
@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 [87 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 [14 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [108 x i8], align 1
@__const.main.ticket_key_name = external hidden unnamed_addr constant [16 x i8], align 16
@__const.main.ticket_key = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [170 x i8], align 1
@__const.main.fragment_sizes = external hidden unnamed_addr constant [7 x i32], align 16
@__const.main.modes = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.60 = 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 i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca [16 x i8], align 16
  %16 = alloca [9 x i8], align 1
  %17 = alloca i64, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca [7 x i32], align 16
  %22 = alloca [2 x i8], align 1
  %23 = alloca i64, align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i64, align 8
  %27 = alloca i8, align 1
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %31 = alloca %struct.s2n_result, align 4
  %32 = alloca i32, align 4
  %33 = alloca %struct.s2n_stuffer, align 8
  %34 = alloca %struct.s2n_blob, align 8
  %35 = alloca i32, align 4
  %36 = alloca i64, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %struct.s2n_result, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca %struct.s2n_mem_test_cb_scope, align 1
  %44 = alloca %struct.s2n_result, align 4
  %45 = alloca i32, align 4
  %46 = alloca %struct.s2n_result, align 4
  %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 %struct.s2n_result, align 4
  %52 = alloca %struct.s2n_result, align 4
  %53 = alloca %struct.s2n_result, align 4
  %54 = alloca i64, align 8
  %55 = alloca i32, align 4
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %59 = alloca %struct.s2n_result, align 4
  %60 = alloca i32, align 4
  %61 = alloca %struct.s2n_stuffer, align 8
  %62 = alloca i32, align 4
  %63 = alloca i64, align 8
  %64 = alloca %struct.s2n_result, align 4
  %65 = alloca i32, align 4
  %66 = alloca %struct.s2n_result, align 4
  %67 = alloca i32, align 4
  %68 = alloca %struct.s2n_result, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca %struct.s2n_result, align 4
  %72 = alloca i32, align 4
  %73 = alloca %struct.s2n_result, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca %struct.s2n_result, align 4
  %77 = alloca %struct.s2n_result, align 4
  %78 = alloca %struct.s2n_result, align 4
  %79 = alloca i64, align 8
  %80 = alloca i32, align 4
  %81 = alloca ptr, align 8
  %82 = alloca ptr, align 8
  %83 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %84 = alloca %struct.s2n_result, align 4
  %85 = alloca i32, align 4
  %86 = alloca i64, align 8
  %87 = alloca %struct.s2n_stuffer, align 8
  %88 = alloca i32, align 4
  %89 = alloca i64, align 8
  %90 = alloca %struct.s2n_result, align 4
  %91 = alloca i32, align 4
  %92 = alloca i64, align 8
  %93 = alloca %struct.s2n_result, align 4
  %94 = alloca i32, align 4
  %95 = alloca i64, align 8
  %96 = alloca i32, align 4
  %97 = alloca %struct.s2n_result, align 4
  %98 = alloca i32, align 4
  %99 = alloca %struct.s2n_result, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca %struct.s2n_result, align 4
  %103 = alloca i32, align 4
  %104 = alloca %struct.s2n_result, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca %struct.s2n_result, align 4
  %108 = alloca %struct.s2n_result, align 4
  %109 = alloca %struct.s2n_result, align 4
  %110 = alloca i64, align 8
  %111 = alloca i32, align 4
  %112 = alloca ptr, align 8
  %113 = alloca ptr, align 8
  %114 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %115 = alloca %struct.s2n_result, align 4
  %116 = alloca i32, align 4
  %117 = alloca %struct.s2n_stuffer, align 8
  %118 = alloca i32, align 4
  %119 = alloca %struct.s2n_result, align 4
  %120 = alloca i32, align 4
  %121 = alloca %struct.s2n_result, align 4
  %122 = alloca i32, align 4
  %123 = alloca %struct.s2n_mem_test_cb_scope, align 1
  %124 = alloca %struct.s2n_result, align 4
  %125 = alloca i32, align 4
  %126 = alloca %struct.s2n_result, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca %struct.s2n_result, align 4
  %132 = alloca i32, align 4
  %133 = alloca %struct.s2n_result, align 4
  %134 = alloca %struct.s2n_result, align 4
  %135 = alloca %struct.s2n_result, align 4
  %136 = alloca %struct.s2n_result, align 4
  %137 = alloca i32, align 4
  %138 = alloca ptr, align 8
  %139 = alloca ptr, align 8
  %140 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %141 = alloca %struct.s2n_result, align 4
  %142 = alloca i32, align 4
  %143 = alloca %struct.s2n_stuffer, align 8
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca %struct.s2n_result, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca %struct.s2n_mem_test_cb_scope, align 1
  %152 = alloca %struct.s2n_result, align 4
  %153 = alloca i32, align 4
  %154 = alloca %struct.s2n_result, align 4
  %155 = alloca i32, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca %struct.s2n_result, align 4
  %159 = alloca i32, align 4
  %160 = alloca %struct.s2n_result, align 4
  %161 = alloca %struct.s2n_result, align 4
  %162 = alloca %struct.s2n_result, align 4
  %163 = alloca %struct.s2n_result, align 4
  %164 = alloca i64, align 8
  %165 = alloca i32, align 4
  %166 = alloca ptr, align 8
  %167 = alloca ptr, align 8
  %168 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %169 = alloca %struct.s2n_result, align 4
  %170 = alloca i32, align 4
  %171 = alloca %struct.s2n_stuffer, align 8
  %172 = alloca i32, align 4
  %173 = alloca i64, align 8
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca %struct.s2n_mem_test_cb_scope, align 1
  %177 = alloca %struct.s2n_result, align 4
  %178 = alloca i32, align 4
  %179 = alloca %struct.s2n_result, align 4
  %180 = alloca i32, align 4
  %181 = alloca %struct.s2n_result, align 4
  %182 = alloca i32, align 4
  %183 = alloca i32, align 4
  %184 = alloca %struct.s2n_result, align 4
  %185 = alloca i32, align 4
  %186 = alloca %struct.s2n_result, align 4
  %187 = alloca i32, align 4
  %188 = alloca %struct.s2n_result, 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 %struct.s2n_result, align 4
  %195 = alloca %struct.s2n_result, align 4
  %196 = alloca %struct.s2n_result, align 4
  %197 = alloca i64, align 8
  %198 = alloca i32, align 4
  %199 = alloca i64, align 8
  %200 = alloca i8, align 1
  %201 = alloca ptr, align 8
  %202 = alloca ptr, align 8
  %203 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %204 = alloca %struct.s2n_result, align 4
  %205 = alloca i32, align 4
  %206 = alloca %struct.s2n_stuffer, align 8
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca %struct.s2n_result, align 4
  %212 = alloca i32, align 4
  %213 = alloca %struct.s2n_mem_test_cb_scope, align 1
  %214 = alloca %struct.s2n_result, align 4
  %215 = alloca i32, align 4
  %216 = alloca %struct.s2n_result, align 4
  %217 = alloca i32, align 4
  %218 = alloca i32, align 4
  %219 = alloca i32, align 4
  %220 = alloca %struct.s2n_result, align 4
  %221 = alloca i32, align 4
  %222 = alloca %struct.s2n_result, align 4
  %223 = alloca %struct.s2n_result, align 4
  %224 = alloca %struct.s2n_result, align 4
  %225 = alloca %struct.s2n_result, align 4
  %226 = alloca i64, align 8
  %227 = alloca i32, align 4
  %228 = alloca i64, align 8
  %229 = alloca i8, align 1
  %230 = alloca ptr, align 8
  %231 = alloca ptr, align 8
  %232 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %233 = alloca %struct.s2n_result, align 4
  %234 = alloca i32, align 4
  %235 = alloca %struct.s2n_stuffer, align 8
  %236 = alloca i32, align 4
  %237 = alloca i32, align 4
  %238 = alloca i32, align 4
  %239 = alloca i32, align 4
  %240 = alloca %struct.s2n_result, align 4
  %241 = alloca i32, align 4
  %242 = alloca %struct.s2n_mem_test_cb_scope, align 1
  %243 = alloca %struct.s2n_result, align 4
  %244 = alloca i32, align 4
  %245 = alloca %struct.s2n_result, align 4
  %246 = alloca i32, align 4
  %247 = alloca i32, align 4
  %248 = alloca i32, align 4
  %249 = alloca %struct.s2n_result, align 4
  %250 = alloca i32, align 4
  %251 = alloca %struct.s2n_result, align 4
  %252 = alloca %struct.s2n_result, align 4
  %253 = alloca %struct.s2n_result, align 4
  %254 = alloca %struct.s2n_result, align 4
  %255 = alloca i64, align 8
  %256 = alloca i8, align 1
  %257 = alloca i32, align 4
  %258 = alloca ptr, align 8
  %259 = alloca ptr, align 8
  %260 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %261 = alloca %struct.s2n_result, align 4
  %262 = alloca i32, align 4
  %263 = alloca %struct.s2n_stuffer, align 8
  %264 = alloca i32, align 4
  %265 = alloca i32, align 4
  %266 = alloca i32, align 4
  %267 = alloca %struct.s2n_result, align 4
  %268 = alloca i32, align 4
  %269 = alloca %struct.s2n_result, align 4
  %270 = alloca i32, align 4
  %271 = alloca i32, align 4
  %272 = alloca i32, align 4
  %273 = alloca %struct.s2n_result, align 4
  %274 = alloca %struct.s2n_result, align 4
  %275 = alloca %struct.s2n_result, align 4
  %276 = alloca i32, align 4
  %277 = alloca i32, align 4
  %278 = alloca %struct.s2n_result, 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 %279

279:                                              ; preds = %2
  br label %280

280:                                              ; preds = %279
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %281 = load ptr, ptr @stdout, align 8, !tbaa !9
  %282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %281, ptr noundef @.str, ptr noundef @.str.1) #10
  %283 = load ptr, ptr @stdout, align 8, !tbaa !9
  %284 = call i32 @fflush(ptr noundef %283)
  br label %285

285:                                              ; preds = %280
  %286 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %287 = icmp eq i32 %286, -1
  br i1 %287, label %288, label %339

288:                                              ; preds = %285
  br label %289

289:                                              ; preds = %288
  br label %290

290:                                              ; preds = %289
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  %291 = call ptr @__errno_location() #11
  %292 = load i32, ptr %291, align 4, !tbaa !5
  store i32 %292, ptr %6, align 4, !tbaa !5
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = call i32 @s2n_print_stacktrace(ptr noundef %293)
  %295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %296 = trunc i8 %295 to i1
  br i1 %296, label %297, label %319

297:                                              ; preds = %290
  %298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %299 = call i32 @fileno(ptr noundef %298) #10
  %300 = call i32 @isatty(i32 noundef %299) #10
  %301 = icmp ne i32 %300, 0
  br i1 %301, label %302, label %319

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

319:                                              ; preds = %297, %290
  %320 = load i32, ptr %6, align 4, !tbaa !5
  %321 = call ptr @__errno_location() #11
  store i32 %320, ptr %321, align 4, !tbaa !5
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = call ptr @s2n_strerror(i32 noundef %325, ptr noundef @.str.4)
  %327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %328 = load i32, ptr %327, align 4, !tbaa !5
  %329 = call ptr @s2n_strerror_debug(i32 noundef %328, ptr noundef @.str.4)
  %330 = call ptr @__errno_location() #11
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = call ptr @strerror(i32 noundef %331) #10
  %333 = call ptr @__errno_location() #11
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %322, ptr noundef @.str.5, i32 noundef %323, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 169, ptr noundef %326, ptr noundef %329, ptr noundef %332, i32 noundef %334) #10
  br label %336

336:                                              ; preds = %319, %302
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %337

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

338:                                              ; No predecessors!
  br label %339

339:                                              ; preds = %338, %285
  br label %340

340:                                              ; preds = %339
  br label %341

341:                                              ; preds = %340
  %342 = load i32, ptr @test_count, align 4, !tbaa !5
  %343 = add nsw i32 %342, 1
  store i32 %343, ptr @test_count, align 4, !tbaa !5
  %344 = call i32 @s2n_enable_atexit()
  %345 = icmp eq i32 %344, -1
  br i1 %345, label %346, label %397

346:                                              ; preds = %341
  br label %347

347:                                              ; preds = %346
  br label %348

348:                                              ; preds = %347
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %349 = call ptr @__errno_location() #11
  %350 = load i32, ptr %349, align 4, !tbaa !5
  store i32 %350, ptr %7, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = call i32 @s2n_print_stacktrace(ptr noundef %351)
  %353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %354 = trunc i8 %353 to i1
  br i1 %354, label %355, label %377

355:                                              ; preds = %348
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = call i32 @fileno(ptr noundef %356) #10
  %358 = call i32 @isatty(i32 noundef %357) #10
  %359 = icmp ne i32 %358, 0
  br i1 %359, label %360, label %377

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

377:                                              ; preds = %355, %348
  %378 = load i32, ptr %7, align 4, !tbaa !5
  %379 = call ptr @__errno_location() #11
  store i32 %378, ptr %379, 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 @.str.4)
  %385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %386 = load i32, ptr %385, align 4, !tbaa !5
  %387 = call ptr @s2n_strerror_debug(i32 noundef %386, ptr noundef @.str.4)
  %388 = call ptr @__errno_location() #11
  %389 = load i32, ptr %388, align 4, !tbaa !5
  %390 = call ptr @strerror(i32 noundef %389) #10
  %391 = call ptr @__errno_location() #11
  %392 = load i32, ptr %391, align 4, !tbaa !5
  %393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %380, ptr noundef @.str.5, i32 noundef %381, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 169, ptr noundef %384, ptr noundef %387, ptr noundef %390, i32 noundef %392) #10
  br label %394

394:                                              ; preds = %377, %360
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %395

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

396:                                              ; No predecessors!
  br label %397

397:                                              ; preds = %396, %341
  br label %398

398:                                              ; preds = %397
  br label %399

399:                                              ; preds = %398
  br label %400

400:                                              ; preds = %399
  %401 = call i32 @s2n_init()
  %402 = icmp eq i32 %401, -1
  br i1 %402, label %403, label %454

403:                                              ; preds = %400
  br label %404

404:                                              ; preds = %403
  br label %405

405:                                              ; preds = %404
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  %406 = call ptr @__errno_location() #11
  %407 = load i32, ptr %406, align 4, !tbaa !5
  store i32 %407, ptr %8, align 4, !tbaa !5
  %408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %409 = call i32 @s2n_print_stacktrace(ptr noundef %408)
  %410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %411 = trunc i8 %410 to i1
  br i1 %411, label %412, label %434

412:                                              ; preds = %405
  %413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %414 = call i32 @fileno(ptr noundef %413) #10
  %415 = call i32 @isatty(i32 noundef %414) #10
  %416 = icmp ne i32 %415, 0
  br i1 %416, label %417, label %434

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

434:                                              ; preds = %412, %405
  %435 = load i32, ptr %8, align 4, !tbaa !5
  %436 = call ptr @__errno_location() #11
  store i32 %435, ptr %436, align 4, !tbaa !5
  %437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %438 = load i32, ptr @test_count, align 4, !tbaa !5
  %439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %440 = load i32, ptr %439, align 4, !tbaa !5
  %441 = call ptr @s2n_strerror(i32 noundef %440, ptr noundef @.str.4)
  %442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %443 = load i32, ptr %442, align 4, !tbaa !5
  %444 = call ptr @s2n_strerror_debug(i32 noundef %443, ptr noundef @.str.4)
  %445 = call ptr @__errno_location() #11
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = call ptr @strerror(i32 noundef %446) #10
  %448 = call ptr @__errno_location() #11
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %437, ptr noundef @.str.5, i32 noundef %438, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 169, ptr noundef %441, ptr noundef %444, ptr noundef %447, i32 noundef %449) #10
  br label %451

451:                                              ; preds = %434, %417
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %452

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

453:                                              ; No predecessors!
  br label %454

454:                                              ; preds = %453, %400
  br label %455

455:                                              ; preds = %454
  br label %456

456:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #10
  store i8 -1, ptr %9, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #10
  store i32 3001, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #10
  %457 = call ptr @s2n_config_new()
  store ptr %457, ptr %11, align 8, !tbaa !9
  br label %458

458:                                              ; preds = %456
  %459 = load i32, ptr @test_count, align 4, !tbaa !5
  %460 = add nsw i32 %459, 1
  store i32 %460, ptr @test_count, align 4, !tbaa !5
  %461 = load ptr, ptr %11, align 8, !tbaa !9
  %462 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %461, ptr noundef @.str.8)
  %463 = icmp eq i32 %462, -1
  br i1 %463, label %464, label %517

464:                                              ; preds = %458
  br label %465

465:                                              ; preds = %464
  br label %466

466:                                              ; preds = %465
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  %467 = call ptr @__errno_location() #11
  %468 = load i32, ptr %467, align 4, !tbaa !5
  store i32 %468, ptr %12, align 4, !tbaa !5
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = call i32 @s2n_print_stacktrace(ptr noundef %469)
  %471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %472 = trunc i8 %471 to i1
  br i1 %472, label %473, label %495

473:                                              ; preds = %466
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = call i32 @fileno(ptr noundef %474) #10
  %476 = call i32 @isatty(i32 noundef %475) #10
  %477 = icmp ne i32 %476, 0
  br i1 %477, label %478, label %495

478:                                              ; preds = %473
  %479 = load i32, ptr %12, align 4, !tbaa !5
  %480 = call ptr @__errno_location() #11
  store i32 %479, ptr %480, align 4, !tbaa !5
  %481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %482 = load i32, ptr @test_count, align 4, !tbaa !5
  %483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %484 = load i32, ptr %483, align 4, !tbaa !5
  %485 = call ptr @s2n_strerror(i32 noundef %484, ptr noundef @.str.4)
  %486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %487 = load i32, ptr %486, align 4, !tbaa !5
  %488 = call ptr @s2n_strerror_debug(i32 noundef %487, ptr noundef @.str.4)
  %489 = call ptr @__errno_location() #11
  %490 = load i32, ptr %489, align 4, !tbaa !5
  %491 = call ptr @strerror(i32 noundef %490) #10
  %492 = call ptr @__errno_location() #11
  %493 = load i32, ptr %492, align 4, !tbaa !5
  %494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %481, ptr noundef @.str.2, i32 noundef %482, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 175, ptr noundef %485, ptr noundef %488, ptr noundef %491, i32 noundef %493) #10
  br label %512

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

512:                                              ; preds = %495, %478
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  br label %513

513:                                              ; preds = %512
  br label %514

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

515:                                              ; No predecessors!
  br label %516

516:                                              ; preds = %515
  br label %517

517:                                              ; preds = %516, %458
  br label %518

518:                                              ; preds = %517
  br label %519

519:                                              ; preds = %518
  br label %520

520:                                              ; preds = %519
  %521 = load i32, ptr @test_count, align 4, !tbaa !5
  %522 = add nsw i32 %521, 1
  store i32 %522, ptr @test_count, align 4, !tbaa !5
  %523 = load ptr, ptr %11, align 8, !tbaa !9
  %524 = call i32 @s2n_config_set_session_ticket_cb(ptr noundef %523, ptr noundef @s2n_ticket_count_cb, ptr noundef null)
  %525 = icmp eq i32 %524, -1
  br i1 %525, label %526, label %579

526:                                              ; preds = %520
  br label %527

527:                                              ; preds = %526
  br label %528

528:                                              ; preds = %527
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #10
  %529 = call ptr @__errno_location() #11
  %530 = load i32, ptr %529, align 4, !tbaa !5
  store i32 %530, ptr %13, align 4, !tbaa !5
  %531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %532 = call i32 @s2n_print_stacktrace(ptr noundef %531)
  %533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %534 = trunc i8 %533 to i1
  br i1 %534, label %535, label %557

535:                                              ; preds = %528
  %536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %537 = call i32 @fileno(ptr noundef %536) #10
  %538 = call i32 @isatty(i32 noundef %537) #10
  %539 = icmp ne i32 %538, 0
  br i1 %539, label %540, label %557

540:                                              ; preds = %535
  %541 = load i32, ptr %13, align 4, !tbaa !5
  %542 = call ptr @__errno_location() #11
  store i32 %541, ptr %542, align 4, !tbaa !5
  %543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %544 = load i32, ptr @test_count, align 4, !tbaa !5
  %545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %546 = load i32, ptr %545, align 4, !tbaa !5
  %547 = call ptr @s2n_strerror(i32 noundef %546, ptr noundef @.str.4)
  %548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call ptr @s2n_strerror_debug(i32 noundef %549, ptr noundef @.str.4)
  %551 = call ptr @__errno_location() #11
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call ptr @strerror(i32 noundef %552) #10
  %554 = call ptr @__errno_location() #11
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %543, ptr noundef @.str.2, i32 noundef %544, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 176, ptr noundef %547, ptr noundef %550, ptr noundef %553, i32 noundef %555) #10
  br label %574

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

574:                                              ; preds = %557, %540
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %575

575:                                              ; preds = %574
  br label %576

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

577:                                              ; No predecessors!
  br label %578

578:                                              ; preds = %577
  br label %579

579:                                              ; preds = %578, %520
  br label %580

580:                                              ; preds = %579
  br label %581

581:                                              ; preds = %580
  br label %582

582:                                              ; preds = %581
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = add nsw i32 %583, 1
  store i32 %584, ptr @test_count, align 4, !tbaa !5
  %585 = load ptr, ptr %11, align 8, !tbaa !9
  %586 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef %585, ptr noundef @s2n_hello_request_cb, ptr noundef null)
  %587 = icmp eq i32 %586, -1
  br i1 %587, label %588, label %641

588:                                              ; preds = %582
  br label %589

589:                                              ; preds = %588
  br label %590

590:                                              ; preds = %589
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  %591 = call ptr @__errno_location() #11
  %592 = load i32, ptr %591, align 4, !tbaa !5
  store i32 %592, ptr %14, align 4, !tbaa !5
  %593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %594 = call i32 @s2n_print_stacktrace(ptr noundef %593)
  %595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %596 = trunc i8 %595 to i1
  br i1 %596, label %597, label %619

597:                                              ; preds = %590
  %598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %599 = call i32 @fileno(ptr noundef %598) #10
  %600 = call i32 @isatty(i32 noundef %599) #10
  %601 = icmp ne i32 %600, 0
  br i1 %601, label %602, label %619

602:                                              ; preds = %597
  %603 = load i32, ptr %14, align 4, !tbaa !5
  %604 = call ptr @__errno_location() #11
  store i32 %603, ptr %604, align 4, !tbaa !5
  %605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %606 = load i32, ptr @test_count, align 4, !tbaa !5
  %607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %608 = load i32, ptr %607, align 4, !tbaa !5
  %609 = call ptr @s2n_strerror(i32 noundef %608, ptr noundef @.str.4)
  %610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %611 = load i32, ptr %610, align 4, !tbaa !5
  %612 = call ptr @s2n_strerror_debug(i32 noundef %611, ptr noundef @.str.4)
  %613 = call ptr @__errno_location() #11
  %614 = load i32, ptr %613, align 4, !tbaa !5
  %615 = call ptr @strerror(i32 noundef %614) #10
  %616 = call ptr @__errno_location() #11
  %617 = load i32, ptr %616, align 4, !tbaa !5
  %618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %605, ptr noundef @.str.2, i32 noundef %606, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 177, ptr noundef %609, ptr noundef %612, ptr noundef %615, i32 noundef %617) #10
  br label %636

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

636:                                              ; preds = %619, %602
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %637

637:                                              ; preds = %636
  br label %638

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

639:                                              ; No predecessors!
  br label %640

640:                                              ; preds = %639
  br label %641

641:                                              ; preds = %640, %582
  br label %642

642:                                              ; preds = %641
  br label %643

643:                                              ; preds = %642
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %15, ptr align 16 @__const.main.ticket_key_name, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 9, ptr %16) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %16, ptr align 1 @__const.main.ticket_key, i64 9, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #10
  store i64 0, ptr %17, align 8, !tbaa !16
  br label %644

644:                                              ; preds = %643
  %645 = load i32, ptr @test_count, align 4, !tbaa !5
  %646 = add nsw i32 %645, 1
  store i32 %646, ptr @test_count, align 4, !tbaa !5
  %647 = load ptr, ptr %11, align 8, !tbaa !9
  %648 = getelementptr inbounds %struct.s2n_config, ptr %647, i32 0, i32 5
  %649 = load ptr, ptr %648, align 8, !tbaa !18
  %650 = load ptr, ptr %11, align 8, !tbaa !9
  %651 = getelementptr inbounds %struct.s2n_config, ptr %650, i32 0, i32 8
  %652 = load ptr, ptr %651, align 8, !tbaa !24
  %653 = call i32 %649(ptr noundef %652, ptr noundef %17)
  %654 = icmp eq i32 %653, -1
  br i1 %654, label %655, label %708

655:                                              ; preds = %644
  br label %656

656:                                              ; preds = %655
  br label %657

657:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  %658 = call ptr @__errno_location() #11
  %659 = load i32, ptr %658, align 4, !tbaa !5
  store i32 %659, ptr %18, align 4, !tbaa !5
  %660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %661 = call i32 @s2n_print_stacktrace(ptr noundef %660)
  %662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %663 = trunc i8 %662 to i1
  br i1 %663, label %664, label %686

664:                                              ; preds = %657
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = call i32 @fileno(ptr noundef %665) #10
  %667 = call i32 @isatty(i32 noundef %666) #10
  %668 = icmp ne i32 %667, 0
  br i1 %668, label %669, label %686

669:                                              ; preds = %664
  %670 = load i32, ptr %18, align 4, !tbaa !5
  %671 = call ptr @__errno_location() #11
  store i32 %670, ptr %671, align 4, !tbaa !5
  %672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %673 = load i32, ptr @test_count, align 4, !tbaa !5
  %674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = call ptr @s2n_strerror(i32 noundef %675, ptr noundef @.str.4)
  %677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror_debug(i32 noundef %678, ptr noundef @.str.4)
  %680 = call ptr @__errno_location() #11
  %681 = load i32, ptr %680, align 4, !tbaa !5
  %682 = call ptr @strerror(i32 noundef %681) #10
  %683 = call ptr @__errno_location() #11
  %684 = load i32, ptr %683, align 4, !tbaa !5
  %685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %672, ptr noundef @.str.2, i32 noundef %673, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 185, ptr noundef %676, ptr noundef %679, ptr noundef %682, i32 noundef %684) #10
  br label %703

686:                                              ; preds = %664, %657
  %687 = load i32, ptr %18, align 4, !tbaa !5
  %688 = call ptr @__errno_location() #11
  store i32 %687, ptr %688, align 4, !tbaa !5
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call ptr @s2n_strerror(i32 noundef %692, ptr noundef @.str.4)
  %694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %695 = load i32, ptr %694, align 4, !tbaa !5
  %696 = call ptr @s2n_strerror_debug(i32 noundef %695, ptr noundef @.str.4)
  %697 = call ptr @__errno_location() #11
  %698 = load i32, ptr %697, align 4, !tbaa !5
  %699 = call ptr @strerror(i32 noundef %698) #10
  %700 = call ptr @__errno_location() #11
  %701 = load i32, ptr %700, align 4, !tbaa !5
  %702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %689, ptr noundef @.str.5, i32 noundef %690, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 185, ptr noundef %693, ptr noundef %696, ptr noundef %699, i32 noundef %701) #10
  br label %703

703:                                              ; preds = %686, %669
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %704

704:                                              ; preds = %703
  br label %705

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

706:                                              ; No predecessors!
  br label %707

707:                                              ; preds = %706
  br label %708

708:                                              ; preds = %707, %644
  br label %709

709:                                              ; preds = %708
  br label %710

710:                                              ; preds = %709
  br label %711

711:                                              ; preds = %710
  %712 = load i32, ptr @test_count, align 4, !tbaa !5
  %713 = add nsw i32 %712, 1
  store i32 %713, ptr @test_count, align 4, !tbaa !5
  %714 = load ptr, ptr %11, align 8, !tbaa !9
  %715 = call i32 @s2n_config_set_session_tickets_onoff(ptr noundef %714, i8 noundef zeroext 1)
  %716 = icmp eq i32 %715, -1
  br i1 %716, label %717, label %770

717:                                              ; preds = %711
  br label %718

718:                                              ; preds = %717
  br label %719

719:                                              ; preds = %718
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  %720 = call ptr @__errno_location() #11
  %721 = load i32, ptr %720, align 4, !tbaa !5
  store i32 %721, ptr %19, align 4, !tbaa !5
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = call i32 @s2n_print_stacktrace(ptr noundef %722)
  %724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %725 = trunc i8 %724 to i1
  br i1 %725, label %726, label %748

726:                                              ; preds = %719
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = call i32 @fileno(ptr noundef %727) #10
  %729 = call i32 @isatty(i32 noundef %728) #10
  %730 = icmp ne i32 %729, 0
  br i1 %730, label %731, label %748

731:                                              ; preds = %726
  %732 = load i32, ptr %19, align 4, !tbaa !5
  %733 = call ptr @__errno_location() #11
  store i32 %732, ptr %733, align 4, !tbaa !5
  %734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %735 = load i32, ptr @test_count, align 4, !tbaa !5
  %736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %737 = load i32, ptr %736, align 4, !tbaa !5
  %738 = call ptr @s2n_strerror(i32 noundef %737, ptr noundef @.str.4)
  %739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %740 = load i32, ptr %739, align 4, !tbaa !5
  %741 = call ptr @s2n_strerror_debug(i32 noundef %740, ptr noundef @.str.4)
  %742 = call ptr @__errno_location() #11
  %743 = load i32, ptr %742, align 4, !tbaa !5
  %744 = call ptr @strerror(i32 noundef %743) #10
  %745 = call ptr @__errno_location() #11
  %746 = load i32, ptr %745, align 4, !tbaa !5
  %747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %734, ptr noundef @.str.2, i32 noundef %735, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 186, ptr noundef %738, ptr noundef %741, ptr noundef %744, i32 noundef %746) #10
  br label %765

748:                                              ; preds = %726, %719
  %749 = load i32, ptr %19, align 4, !tbaa !5
  %750 = call ptr @__errno_location() #11
  store i32 %749, ptr %750, align 4, !tbaa !5
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = load i32, ptr @test_count, align 4, !tbaa !5
  %753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = call ptr @s2n_strerror(i32 noundef %754, ptr noundef @.str.4)
  %756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %757 = load i32, ptr %756, align 4, !tbaa !5
  %758 = call ptr @s2n_strerror_debug(i32 noundef %757, ptr noundef @.str.4)
  %759 = call ptr @__errno_location() #11
  %760 = load i32, ptr %759, align 4, !tbaa !5
  %761 = call ptr @strerror(i32 noundef %760) #10
  %762 = call ptr @__errno_location() #11
  %763 = load i32, ptr %762, align 4, !tbaa !5
  %764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %751, ptr noundef @.str.5, i32 noundef %752, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 186, ptr noundef %755, ptr noundef %758, ptr noundef %761, i32 noundef %763) #10
  br label %765

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

766:                                              ; preds = %765
  br label %767

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

768:                                              ; No predecessors!
  br label %769

769:                                              ; preds = %768
  br label %770

770:                                              ; preds = %769, %711
  br label %771

771:                                              ; preds = %770
  br label %772

772:                                              ; preds = %771
  br label %773

773:                                              ; preds = %772
  %774 = load i32, ptr @test_count, align 4, !tbaa !5
  %775 = add nsw i32 %774, 1
  store i32 %775, ptr @test_count, align 4, !tbaa !5
  %776 = load ptr, ptr %11, align 8, !tbaa !9
  %777 = getelementptr inbounds [16 x i8], ptr %15, i64 0, i64 0
  %778 = getelementptr inbounds [9 x i8], ptr %16, i64 0, i64 0
  %779 = load i64, ptr %17, align 8, !tbaa !16
  %780 = udiv i64 %779, 1000000000
  %781 = call i32 @s2n_config_add_ticket_crypto_key(ptr noundef %776, ptr noundef %777, i32 noundef 16, ptr noundef %778, i32 noundef 9, i64 noundef %780)
  %782 = icmp eq i32 %781, -1
  br i1 %782, label %783, label %836

783:                                              ; preds = %773
  br label %784

784:                                              ; preds = %783
  br label %785

785:                                              ; preds = %784
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %786 = call ptr @__errno_location() #11
  %787 = load i32, ptr %786, align 4, !tbaa !5
  store i32 %787, ptr %20, align 4, !tbaa !5
  %788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %789 = call i32 @s2n_print_stacktrace(ptr noundef %788)
  %790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %791 = trunc i8 %790 to i1
  br i1 %791, label %792, label %814

792:                                              ; preds = %785
  %793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %794 = call i32 @fileno(ptr noundef %793) #10
  %795 = call i32 @isatty(i32 noundef %794) #10
  %796 = icmp ne i32 %795, 0
  br i1 %796, label %797, label %814

797:                                              ; preds = %792
  %798 = load i32, ptr %20, align 4, !tbaa !5
  %799 = call ptr @__errno_location() #11
  store i32 %798, ptr %799, align 4, !tbaa !5
  %800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %801 = load i32, ptr @test_count, align 4, !tbaa !5
  %802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %803 = load i32, ptr %802, align 4, !tbaa !5
  %804 = call ptr @s2n_strerror(i32 noundef %803, ptr noundef @.str.4)
  %805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %806 = load i32, ptr %805, align 4, !tbaa !5
  %807 = call ptr @s2n_strerror_debug(i32 noundef %806, ptr noundef @.str.4)
  %808 = call ptr @__errno_location() #11
  %809 = load i32, ptr %808, align 4, !tbaa !5
  %810 = call ptr @strerror(i32 noundef %809) #10
  %811 = call ptr @__errno_location() #11
  %812 = load i32, ptr %811, align 4, !tbaa !5
  %813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %800, ptr noundef @.str.2, i32 noundef %801, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 188, ptr noundef %804, ptr noundef %807, ptr noundef %810, i32 noundef %812) #10
  br label %831

814:                                              ; preds = %792, %785
  %815 = load i32, ptr %20, align 4, !tbaa !5
  %816 = call ptr @__errno_location() #11
  store i32 %815, ptr %816, align 4, !tbaa !5
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = load i32, ptr @test_count, align 4, !tbaa !5
  %819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %820 = load i32, ptr %819, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror(i32 noundef %820, ptr noundef @.str.4)
  %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_debug(i32 noundef %823, ptr noundef @.str.4)
  %825 = call ptr @__errno_location() #11
  %826 = load i32, ptr %825, align 4, !tbaa !5
  %827 = call ptr @strerror(i32 noundef %826) #10
  %828 = call ptr @__errno_location() #11
  %829 = load i32, ptr %828, align 4, !tbaa !5
  %830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %817, ptr noundef @.str.5, i32 noundef %818, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 188, ptr noundef %821, ptr noundef %824, ptr noundef %827, i32 noundef %829) #10
  br label %831

831:                                              ; preds = %814, %797
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %832

832:                                              ; preds = %831
  br label %833

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

834:                                              ; No predecessors!
  br label %835

835:                                              ; preds = %834
  br label %836

836:                                              ; preds = %835, %773
  br label %837

837:                                              ; preds = %836
  br label %838

838:                                              ; preds = %837
  %839 = load ptr, ptr %11, align 8, !tbaa !9
  %840 = getelementptr inbounds %struct.s2n_config, ptr %839, i32 0, i32 36
  store i8 0, ptr %840, align 1, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 28, ptr %21) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %21, ptr align 16 @__const.main.fragment_sizes, i64 28, i1 false)
  call void @llvm.lifetime.start.p0(i64 2, ptr %22) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %22, ptr align 1 @__const.main.modes, i64 2, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #10
  store i64 0, ptr %23, align 8, !tbaa !16
  br label %841

841:                                              ; preds = %1523, %838
  %842 = load i64, ptr %23, align 8, !tbaa !16
  %843 = icmp ult i64 %842, 7
  br i1 %843, label %845, label %844

844:                                              ; preds = %841
  store i32 60, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #10
  br label %1526

845:                                              ; preds = %841
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %846 = load i64, ptr %23, align 8, !tbaa !16
  %847 = getelementptr inbounds [7 x i32], ptr %21, i64 0, i64 %846
  %848 = load i32, ptr %847, align 4, !tbaa !5
  store i32 %848, ptr %25, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #10
  store i64 0, ptr %26, align 8, !tbaa !16
  br label %849

849:                                              ; preds = %1519, %845
  %850 = load i64, ptr %26, align 8, !tbaa !16
  %851 = icmp ult i64 %850, 2
  br i1 %851, label %853, label %852

852:                                              ; preds = %849
  store i32 63, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  br label %1522

853:                                              ; preds = %849
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #10
  %854 = load i64, ptr %26, align 8, !tbaa !16
  %855 = getelementptr inbounds [2 x i8], ptr %22, i64 0, i64 %854
  %856 = load i8, ptr %855, align 1, !tbaa !15
  store i8 %856, ptr %27, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #10
  %857 = load i8, ptr %27, align 1, !tbaa !15
  %858 = zext i8 %857 to i32
  %859 = call ptr @s2n_connection_new(i32 noundef %858)
  store ptr %859, ptr %28, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #10
  %860 = load i8, ptr %27, align 1, !tbaa !15
  %861 = zext i8 %860 to i32
  %862 = add nsw i32 %861, 1
  %863 = srem i32 %862, 2
  %864 = call ptr @s2n_connection_new(i32 noundef %863)
  store ptr %864, ptr %29, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr %30) #10
  call void @llvm.memset.p0.i64(ptr align 8 %30, i8 0, i64 80, i1 false)
  br label %865

865:                                              ; preds = %853
  %866 = load i32, ptr @test_count, align 4, !tbaa !5
  %867 = add nsw i32 %866, 1
  store i32 %867, ptr @test_count, align 4, !tbaa !5
  %868 = load ptr, ptr %11, align 8, !tbaa !9
  %869 = load ptr, ptr %29, align 8, !tbaa !9
  %870 = load ptr, ptr %28, align 8, !tbaa !9
  %871 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %868, ptr noundef %869, ptr noundef %870, ptr noundef %30)
  %872 = getelementptr inbounds %struct.s2n_result, ptr %31, i32 0, i32 0
  store i32 %871, ptr %872, align 4
  %873 = getelementptr inbounds %struct.s2n_result, ptr %31, i32 0, i32 0
  %874 = load i32, ptr %873, align 4
  %875 = call zeroext i1 @s2n_result_is_ok(i32 %874)
  br i1 %875, label %929, label %876

876:                                              ; preds = %865
  br label %877

877:                                              ; preds = %876
  br label %878

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

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

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

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

924:                                              ; preds = %907, %890
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %925

925:                                              ; preds = %924
  br label %926

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

927:                                              ; No predecessors!
  br label %928

928:                                              ; preds = %927
  br label %929

929:                                              ; preds = %928, %865
  br label %930

930:                                              ; preds = %929
  br label %931

931:                                              ; preds = %930
  call void @llvm.lifetime.start.p0(i64 40, ptr %33) #10
  call void @llvm.memset.p0.i64(ptr align 8 %33, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %34) #10
  call void @llvm.memset.p0.i64(ptr align 8 %34, i8 0, i64 24, i1 false)
  br label %932

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

937:                                              ; preds = %932
  br label %938

938:                                              ; preds = %937
  br label %939

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

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

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

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

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

986:                                              ; preds = %985
  br label %987

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

988:                                              ; No predecessors!
  br label %989

989:                                              ; preds = %988
  br label %990

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

991:                                              ; preds = %990
  br label %992

992:                                              ; preds = %991
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #10
  store i64 0, ptr %36, align 8, !tbaa !16
  br label %993

993:                                              ; preds = %1312, %992
  %994 = load i64, ptr %36, align 8, !tbaa !16
  %995 = icmp ult i64 %994, 5
  br i1 %995, label %997, label %996

996:                                              ; preds = %993
  store i32 78, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #10
  br label %1315

997:                                              ; preds = %993
  br label %998

998:                                              ; preds = %997
  %999 = load i32, ptr @test_count, align 4, !tbaa !5
  %1000 = add nsw i32 %999, 1
  store i32 %1000, ptr @test_count, align 4, !tbaa !5
  %1001 = call i32 @s2n_key_update_write(ptr noundef %34)
  %1002 = icmp eq i32 %1001, -1
  br i1 %1002, label %1003, label %1056

1003:                                             ; preds = %998
  br label %1004

1004:                                             ; preds = %1003
  br label %1005

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

1012:                                             ; preds = %1005
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = call i32 @fileno(ptr noundef %1013) #10
  %1015 = call i32 @isatty(i32 noundef %1014) #10
  %1016 = icmp ne i32 %1015, 0
  br i1 %1016, label %1017, label %1034

1017:                                             ; preds = %1012
  %1018 = load i32, ptr %37, align 4, !tbaa !5
  %1019 = call ptr @__errno_location() #11
  store i32 %1018, ptr %1019, align 4, !tbaa !5
  %1020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1021 = load i32, ptr @test_count, align 4, !tbaa !5
  %1022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1023 = load i32, ptr %1022, align 4, !tbaa !5
  %1024 = call ptr @s2n_strerror(i32 noundef %1023, ptr noundef @.str.4)
  %1025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror_debug(i32 noundef %1026, ptr noundef @.str.4)
  %1028 = call ptr @__errno_location() #11
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = call ptr @strerror(i32 noundef %1029) #10
  %1031 = call ptr @__errno_location() #11
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1020, ptr noundef @.str.2, i32 noundef %1021, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 219, ptr noundef %1024, ptr noundef %1027, ptr noundef %1030, i32 noundef %1032) #10
  br label %1051

1034:                                             ; preds = %1012, %1005
  %1035 = load i32, ptr %37, align 4, !tbaa !5
  %1036 = call ptr @__errno_location() #11
  store i32 %1035, ptr %1036, align 4, !tbaa !5
  %1037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1038 = load i32, ptr @test_count, align 4, !tbaa !5
  %1039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1040 = load i32, ptr %1039, align 4, !tbaa !5
  %1041 = call ptr @s2n_strerror(i32 noundef %1040, ptr noundef @.str.4)
  %1042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror_debug(i32 noundef %1043, ptr noundef @.str.4)
  %1045 = call ptr @__errno_location() #11
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  %1047 = call ptr @strerror(i32 noundef %1046) #10
  %1048 = call ptr @__errno_location() #11
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1037, ptr noundef @.str.5, i32 noundef %1038, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 219, ptr noundef %1041, ptr noundef %1044, ptr noundef %1047, i32 noundef %1049) #10
  br label %1051

1051:                                             ; preds = %1034, %1017
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %1052

1052:                                             ; preds = %1051
  br label %1053

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

1054:                                             ; No predecessors!
  br label %1055

1055:                                             ; preds = %1054
  br label %1056

1056:                                             ; preds = %1055, %998
  br label %1057

1057:                                             ; preds = %1056
  br label %1058

1058:                                             ; preds = %1057
  br label %1059

1059:                                             ; preds = %1058
  %1060 = load i32, ptr @test_count, align 4, !tbaa !5
  %1061 = add nsw i32 %1060, 1
  store i32 %1061, ptr @test_count, align 4, !tbaa !5
  %1062 = call i32 @s2n_stuffer_init(ptr noundef %33, ptr noundef %34)
  %1063 = icmp eq i32 %1062, -1
  br i1 %1063, label %1064, label %1117

1064:                                             ; preds = %1059
  br label %1065

1065:                                             ; preds = %1064
  br label %1066

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

1073:                                             ; preds = %1066
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = call i32 @fileno(ptr noundef %1074) #10
  %1076 = call i32 @isatty(i32 noundef %1075) #10
  %1077 = icmp ne i32 %1076, 0
  br i1 %1077, label %1078, label %1095

1078:                                             ; preds = %1073
  %1079 = load i32, ptr %38, align 4, !tbaa !5
  %1080 = call ptr @__errno_location() #11
  store i32 %1079, ptr %1080, align 4, !tbaa !5
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = load i32, ptr @test_count, align 4, !tbaa !5
  %1083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  %1085 = call ptr @s2n_strerror(i32 noundef %1084, ptr noundef @.str.4)
  %1086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call ptr @s2n_strerror_debug(i32 noundef %1087, ptr noundef @.str.4)
  %1089 = call ptr @__errno_location() #11
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = call ptr @strerror(i32 noundef %1090) #10
  %1092 = call ptr @__errno_location() #11
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1081, ptr noundef @.str.2, i32 noundef %1082, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 220, ptr noundef %1085, ptr noundef %1088, ptr noundef %1091, i32 noundef %1093) #10
  br label %1112

1095:                                             ; preds = %1073, %1066
  %1096 = load i32, ptr %38, align 4, !tbaa !5
  %1097 = call ptr @__errno_location() #11
  store i32 %1096, ptr %1097, align 4, !tbaa !5
  %1098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1099 = load i32, ptr @test_count, align 4, !tbaa !5
  %1100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1101 = load i32, ptr %1100, align 4, !tbaa !5
  %1102 = call ptr @s2n_strerror(i32 noundef %1101, ptr noundef @.str.4)
  %1103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1104 = load i32, ptr %1103, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror_debug(i32 noundef %1104, ptr noundef @.str.4)
  %1106 = call ptr @__errno_location() #11
  %1107 = load i32, ptr %1106, align 4, !tbaa !5
  %1108 = call ptr @strerror(i32 noundef %1107) #10
  %1109 = call ptr @__errno_location() #11
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1098, ptr noundef @.str.5, i32 noundef %1099, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 220, ptr noundef %1102, ptr noundef %1105, ptr noundef %1108, i32 noundef %1110) #10
  br label %1112

1112:                                             ; preds = %1095, %1078
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1113

1113:                                             ; preds = %1112
  br label %1114

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

1115:                                             ; No predecessors!
  br label %1116

1116:                                             ; preds = %1115
  br label %1117

1117:                                             ; preds = %1116, %1059
  br label %1118

1118:                                             ; preds = %1117
  br label %1119

1119:                                             ; preds = %1118
  br label %1120

1120:                                             ; preds = %1119
  %1121 = load i32, ptr @test_count, align 4, !tbaa !5
  %1122 = add nsw i32 %1121, 1
  store i32 %1122, ptr @test_count, align 4, !tbaa !5
  %1123 = call i32 @s2n_stuffer_skip_write(ptr noundef %33, i32 noundef 5)
  %1124 = icmp eq i32 %1123, -1
  br i1 %1124, label %1125, label %1178

1125:                                             ; preds = %1120
  br label %1126

1126:                                             ; preds = %1125
  br label %1127

1127:                                             ; preds = %1126
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  %1128 = call ptr @__errno_location() #11
  %1129 = load i32, ptr %1128, align 4, !tbaa !5
  store i32 %1129, ptr %39, 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) #10
  %1137 = call i32 @isatty(i32 noundef %1136) #10
  %1138 = icmp ne i32 %1137, 0
  br i1 %1138, label %1139, label %1156

1139:                                             ; preds = %1134
  %1140 = load i32, ptr %39, align 4, !tbaa !5
  %1141 = call ptr @__errno_location() #11
  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() #11
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = call ptr @strerror(i32 noundef %1151) #10
  %1153 = call ptr @__errno_location() #11
  %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.19, ptr noundef @.str.1, i32 noundef 221, ptr noundef %1146, ptr noundef %1149, ptr noundef %1152, i32 noundef %1154) #10
  br label %1173

1156:                                             ; preds = %1134, %1127
  %1157 = load i32, ptr %39, align 4, !tbaa !5
  %1158 = call ptr @__errno_location() #11
  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() #11
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  %1169 = call ptr @strerror(i32 noundef %1168) #10
  %1170 = call ptr @__errno_location() #11
  %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.19, ptr noundef @.str.1, i32 noundef 221, ptr noundef %1163, ptr noundef %1166, ptr noundef %1169, i32 noundef %1171) #10
  br label %1173

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

1174:                                             ; preds = %1173
  br label %1175

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

1176:                                             ; No predecessors!
  br label %1177

1177:                                             ; preds = %1176
  br label %1178

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

1179:                                             ; preds = %1178
  br label %1180

1180:                                             ; preds = %1179
  br label %1181

1181:                                             ; preds = %1180
  %1182 = load i32, ptr @test_count, align 4, !tbaa !5
  %1183 = add nsw i32 %1182, 1
  store i32 %1183, ptr @test_count, align 4, !tbaa !5
  %1184 = load ptr, ptr %29, align 8, !tbaa !9
  %1185 = load i32, ptr %25, align 4, !tbaa !5
  %1186 = call i32 @s2n_test_send_records(ptr noundef %1184, ptr noundef byval(%struct.s2n_stuffer) align 8 %33, i32 noundef %1185)
  %1187 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  store i32 %1186, ptr %1187, align 4
  %1188 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  %1189 = load i32, ptr %1188, align 4
  %1190 = call zeroext i1 @s2n_result_is_ok(i32 %1189)
  br i1 %1190, label %1244, label %1191

1191:                                             ; preds = %1181
  br label %1192

1192:                                             ; preds = %1191
  br label %1193

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

1200:                                             ; preds = %1193
  %1201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1202 = call i32 @fileno(ptr noundef %1201) #10
  %1203 = call i32 @isatty(i32 noundef %1202) #10
  %1204 = icmp ne i32 %1203, 0
  br i1 %1204, label %1205, label %1222

1205:                                             ; preds = %1200
  %1206 = load i32, ptr %41, align 4, !tbaa !5
  %1207 = call ptr @__errno_location() #11
  store i32 %1206, ptr %1207, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = load i32, ptr @test_count, align 4, !tbaa !5
  %1210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1211 = load i32, ptr %1210, align 4, !tbaa !5
  %1212 = call ptr @s2n_strerror(i32 noundef %1211, ptr noundef @.str.4)
  %1213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror_debug(i32 noundef %1214, ptr noundef @.str.4)
  %1216 = call ptr @__errno_location() #11
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = call ptr @strerror(i32 noundef %1217) #10
  %1219 = call ptr @__errno_location() #11
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1208, ptr noundef @.str.2, i32 noundef %1209, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 227, ptr noundef %1212, ptr noundef %1215, ptr noundef %1218, i32 noundef %1220) #10
  br label %1239

1222:                                             ; preds = %1200, %1193
  %1223 = load i32, ptr %41, align 4, !tbaa !5
  %1224 = call ptr @__errno_location() #11
  store i32 %1223, ptr %1224, align 4, !tbaa !5
  %1225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1226 = load i32, ptr @test_count, align 4, !tbaa !5
  %1227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1228 = load i32, ptr %1227, align 4, !tbaa !5
  %1229 = call ptr @s2n_strerror(i32 noundef %1228, ptr noundef @.str.4)
  %1230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  %1232 = call ptr @s2n_strerror_debug(i32 noundef %1231, ptr noundef @.str.4)
  %1233 = call ptr @__errno_location() #11
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = call ptr @strerror(i32 noundef %1234) #10
  %1236 = call ptr @__errno_location() #11
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1225, ptr noundef @.str.5, i32 noundef %1226, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 227, ptr noundef %1229, ptr noundef %1232, ptr noundef %1235, i32 noundef %1237) #10
  br label %1239

1239:                                             ; preds = %1222, %1205
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1240

1240:                                             ; preds = %1239
  br label %1241

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

1242:                                             ; No predecessors!
  br label %1243

1243:                                             ; preds = %1242
  br label %1244

1244:                                             ; preds = %1243, %1181
  br label %1245

1245:                                             ; preds = %1244
  br label %1246

1246:                                             ; preds = %1245
  br label %1247

1247:                                             ; preds = %1246
  %1248 = load i32, ptr @test_count, align 4, !tbaa !5
  %1249 = add nsw i32 %1248, 1
  store i32 %1249, ptr @test_count, align 4, !tbaa !5
  %1250 = load ptr, ptr %29, align 8, !tbaa !9
  %1251 = load ptr, ptr %29, align 8, !tbaa !9
  %1252 = getelementptr inbounds %struct.s2n_connection, ptr %1251, i32 0, i32 13
  %1253 = load i32, ptr %1252, align 4, !tbaa !26
  %1254 = call i32 @s2n_update_application_traffic_keys(ptr noundef %1250, i32 noundef %1253, i32 noundef 0)
  %1255 = icmp eq i32 %1254, -1
  br i1 %1255, label %1256, label %1309

1256:                                             ; preds = %1247
  br label %1257

1257:                                             ; preds = %1256
  br label %1258

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

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

1270:                                             ; preds = %1265
  %1271 = load i32, ptr %42, align 4, !tbaa !5
  %1272 = call ptr @__errno_location() #11
  store i32 %1271, ptr %1272, align 4, !tbaa !5
  %1273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1274 = load i32, ptr @test_count, align 4, !tbaa !5
  %1275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call ptr @s2n_strerror(i32 noundef %1276, ptr noundef @.str.4)
  %1278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = call ptr @s2n_strerror_debug(i32 noundef %1279, ptr noundef @.str.4)
  %1281 = call ptr @__errno_location() #11
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call ptr @strerror(i32 noundef %1282) #10
  %1284 = call ptr @__errno_location() #11
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1273, ptr noundef @.str.2, i32 noundef %1274, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 230, ptr noundef %1277, ptr noundef %1280, ptr noundef %1283, i32 noundef %1285) #10
  br label %1304

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

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

1305:                                             ; preds = %1304
  br label %1306

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

1307:                                             ; No predecessors!
  br label %1308

1308:                                             ; preds = %1307
  br label %1309

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

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310
  br label %1312

1312:                                             ; preds = %1311
  %1313 = load i64, ptr %36, align 8, !tbaa !16
  %1314 = add i64 %1313, 1
  store i64 %1314, ptr %36, align 8, !tbaa !16
  br label %993, !llvm.loop !50

1315:                                             ; preds = %996
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #10
  call void @llvm.memset.p0.i64(ptr align 1 %43, i8 0, i64 1, i1 false)
  br label %1316

1316:                                             ; preds = %1315
  %1317 = load i32, ptr @test_count, align 4, !tbaa !5
  %1318 = add nsw i32 %1317, 1
  store i32 %1318, ptr @test_count, align 4, !tbaa !5
  %1319 = call i32 @s2n_mem_test_init_callbacks(ptr noundef %43)
  %1320 = getelementptr inbounds %struct.s2n_result, ptr %44, i32 0, i32 0
  store i32 %1319, ptr %1320, align 4
  %1321 = getelementptr inbounds %struct.s2n_result, ptr %44, i32 0, i32 0
  %1322 = load i32, ptr %1321, align 4
  %1323 = call zeroext i1 @s2n_result_is_ok(i32 %1322)
  br i1 %1323, label %1377, label %1324

1324:                                             ; preds = %1316
  br label %1325

1325:                                             ; preds = %1324
  br label %1326

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

1333:                                             ; preds = %1326
  %1334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1335 = call i32 @fileno(ptr noundef %1334) #10
  %1336 = call i32 @isatty(i32 noundef %1335) #10
  %1337 = icmp ne i32 %1336, 0
  br i1 %1337, label %1338, label %1355

1338:                                             ; preds = %1333
  %1339 = load i32, ptr %45, align 4, !tbaa !5
  %1340 = call ptr @__errno_location() #11
  store i32 %1339, ptr %1340, align 4, !tbaa !5
  %1341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1342 = load i32, ptr @test_count, align 4, !tbaa !5
  %1343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1344 = load i32, ptr %1343, align 4, !tbaa !5
  %1345 = call ptr @s2n_strerror(i32 noundef %1344, ptr noundef @.str.4)
  %1346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1347 = load i32, ptr %1346, align 4, !tbaa !5
  %1348 = call ptr @s2n_strerror_debug(i32 noundef %1347, ptr noundef @.str.4)
  %1349 = call ptr @__errno_location() #11
  %1350 = load i32, ptr %1349, align 4, !tbaa !5
  %1351 = call ptr @strerror(i32 noundef %1350) #10
  %1352 = call ptr @__errno_location() #11
  %1353 = load i32, ptr %1352, align 4, !tbaa !5
  %1354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1341, ptr noundef @.str.2, i32 noundef %1342, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 239, ptr noundef %1345, ptr noundef %1348, ptr noundef %1351, i32 noundef %1353) #10
  br label %1372

1355:                                             ; preds = %1333, %1326
  %1356 = load i32, ptr %45, align 4, !tbaa !5
  %1357 = call ptr @__errno_location() #11
  store i32 %1356, ptr %1357, align 4, !tbaa !5
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = load i32, ptr @test_count, align 4, !tbaa !5
  %1360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1361 = load i32, ptr %1360, align 4, !tbaa !5
  %1362 = call ptr @s2n_strerror(i32 noundef %1361, ptr noundef @.str.4)
  %1363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1364 = load i32, ptr %1363, align 4, !tbaa !5
  %1365 = call ptr @s2n_strerror_debug(i32 noundef %1364, ptr noundef @.str.4)
  %1366 = call ptr @__errno_location() #11
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  %1368 = call ptr @strerror(i32 noundef %1367) #10
  %1369 = call ptr @__errno_location() #11
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1358, ptr noundef @.str.5, i32 noundef %1359, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 239, ptr noundef %1362, ptr noundef %1365, ptr noundef %1368, i32 noundef %1370) #10
  br label %1372

1372:                                             ; preds = %1355, %1338
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %1373

1373:                                             ; preds = %1372
  br label %1374

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

1375:                                             ; No predecessors!
  br label %1376

1376:                                             ; preds = %1375
  br label %1377

1377:                                             ; preds = %1376, %1316
  br label %1378

1378:                                             ; preds = %1377
  br label %1379

1379:                                             ; preds = %1378
  br label %1380

1380:                                             ; preds = %1379
  %1381 = load i32, ptr @test_count, align 4, !tbaa !5
  %1382 = add nsw i32 %1381, 1
  store i32 %1382, ptr @test_count, align 4, !tbaa !5
  %1383 = load ptr, ptr %29, align 8, !tbaa !9
  %1384 = load ptr, ptr %28, align 8, !tbaa !9
  %1385 = call i32 @s2n_test_basic_recv(ptr noundef %1383, ptr noundef %1384)
  %1386 = getelementptr inbounds %struct.s2n_result, ptr %46, i32 0, i32 0
  store i32 %1385, ptr %1386, align 4
  %1387 = getelementptr inbounds %struct.s2n_result, ptr %46, i32 0, i32 0
  %1388 = load i32, ptr %1387, align 4
  %1389 = call zeroext i1 @s2n_result_is_ok(i32 %1388)
  br i1 %1389, label %1443, label %1390

1390:                                             ; preds = %1380
  br label %1391

1391:                                             ; preds = %1390
  br label %1392

1392:                                             ; preds = %1391
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  %1393 = call ptr @__errno_location() #11
  %1394 = load i32, ptr %1393, align 4, !tbaa !5
  store i32 %1394, ptr %47, align 4, !tbaa !5
  %1395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1396 = call i32 @s2n_print_stacktrace(ptr noundef %1395)
  %1397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1398 = trunc i8 %1397 to i1
  br i1 %1398, label %1399, label %1421

1399:                                             ; preds = %1392
  %1400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1401 = call i32 @fileno(ptr noundef %1400) #10
  %1402 = call i32 @isatty(i32 noundef %1401) #10
  %1403 = icmp ne i32 %1402, 0
  br i1 %1403, label %1404, label %1421

1404:                                             ; preds = %1399
  %1405 = load i32, ptr %47, align 4, !tbaa !5
  %1406 = call ptr @__errno_location() #11
  store i32 %1405, ptr %1406, align 4, !tbaa !5
  %1407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1408 = load i32, ptr @test_count, align 4, !tbaa !5
  %1409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  %1411 = call ptr @s2n_strerror(i32 noundef %1410, ptr noundef @.str.4)
  %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_debug(i32 noundef %1413, ptr noundef @.str.4)
  %1415 = call ptr @__errno_location() #11
  %1416 = load i32, ptr %1415, align 4, !tbaa !5
  %1417 = call ptr @strerror(i32 noundef %1416) #10
  %1418 = call ptr @__errno_location() #11
  %1419 = load i32, ptr %1418, align 4, !tbaa !5
  %1420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1407, ptr noundef @.str.2, i32 noundef %1408, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 240, ptr noundef %1411, ptr noundef %1414, ptr noundef %1417, i32 noundef %1419) #10
  br label %1438

1421:                                             ; preds = %1399, %1392
  %1422 = load i32, ptr %47, align 4, !tbaa !5
  %1423 = call ptr @__errno_location() #11
  store i32 %1422, ptr %1423, align 4, !tbaa !5
  %1424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1425 = load i32, ptr @test_count, align 4, !tbaa !5
  %1426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @s2n_strerror(i32 noundef %1427, ptr noundef @.str.4)
  %1429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call ptr @s2n_strerror_debug(i32 noundef %1430, ptr noundef @.str.4)
  %1432 = call ptr @__errno_location() #11
  %1433 = load i32, ptr %1432, align 4, !tbaa !5
  %1434 = call ptr @strerror(i32 noundef %1433) #10
  %1435 = call ptr @__errno_location() #11
  %1436 = load i32, ptr %1435, align 4, !tbaa !5
  %1437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1424, ptr noundef @.str.5, i32 noundef %1425, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 240, ptr noundef %1428, ptr noundef %1431, ptr noundef %1434, i32 noundef %1436) #10
  br label %1438

1438:                                             ; preds = %1421, %1404
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %1439

1439:                                             ; preds = %1438
  br label %1440

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

1441:                                             ; No predecessors!
  br label %1442

1442:                                             ; preds = %1441
  br label %1443

1443:                                             ; preds = %1442, %1380
  br label %1444

1444:                                             ; preds = %1443
  br label %1445

1445:                                             ; preds = %1444
  br label %1446

1446:                                             ; preds = %1445
  %1447 = load i32, ptr @test_count, align 4, !tbaa !5
  %1448 = add nsw i32 %1447, 1
  store i32 %1448, ptr @test_count, align 4, !tbaa !5
  %1449 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0)
  %1450 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  store i32 %1449, ptr %1450, align 4
  %1451 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  %1452 = load i32, ptr %1451, align 4
  %1453 = call zeroext i1 @s2n_result_is_ok(i32 %1452)
  br i1 %1453, label %1507, label %1454

1454:                                             ; preds = %1446
  br label %1455

1455:                                             ; preds = %1454
  br label %1456

1456:                                             ; preds = %1455
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %1457 = call ptr @__errno_location() #11
  %1458 = load i32, ptr %1457, align 4, !tbaa !5
  store i32 %1458, ptr %49, align 4, !tbaa !5
  %1459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1460 = call i32 @s2n_print_stacktrace(ptr noundef %1459)
  %1461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1462 = trunc i8 %1461 to i1
  br i1 %1462, label %1463, label %1485

1463:                                             ; preds = %1456
  %1464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1465 = call i32 @fileno(ptr noundef %1464) #10
  %1466 = call i32 @isatty(i32 noundef %1465) #10
  %1467 = icmp ne i32 %1466, 0
  br i1 %1467, label %1468, label %1485

1468:                                             ; preds = %1463
  %1469 = load i32, ptr %49, align 4, !tbaa !5
  %1470 = call ptr @__errno_location() #11
  store i32 %1469, ptr %1470, align 4, !tbaa !5
  %1471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1472 = load i32, ptr @test_count, align 4, !tbaa !5
  %1473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call ptr @s2n_strerror(i32 noundef %1474, ptr noundef @.str.4)
  %1476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call ptr @s2n_strerror_debug(i32 noundef %1477, ptr noundef @.str.4)
  %1479 = call ptr @__errno_location() #11
  %1480 = load i32, ptr %1479, align 4, !tbaa !5
  %1481 = call ptr @strerror(i32 noundef %1480) #10
  %1482 = call ptr @__errno_location() #11
  %1483 = load i32, ptr %1482, align 4, !tbaa !5
  %1484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1471, ptr noundef @.str.2, i32 noundef %1472, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 241, ptr noundef %1475, ptr noundef %1478, ptr noundef %1481, i32 noundef %1483) #10
  br label %1502

1485:                                             ; preds = %1463, %1456
  %1486 = load i32, ptr %49, align 4, !tbaa !5
  %1487 = call ptr @__errno_location() #11
  store i32 %1486, ptr %1487, align 4, !tbaa !5
  %1488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1489 = load i32, ptr @test_count, align 4, !tbaa !5
  %1490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1491 = load i32, ptr %1490, align 4, !tbaa !5
  %1492 = call ptr @s2n_strerror(i32 noundef %1491, ptr noundef @.str.4)
  %1493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1494 = load i32, ptr %1493, align 4, !tbaa !5
  %1495 = call ptr @s2n_strerror_debug(i32 noundef %1494, ptr noundef @.str.4)
  %1496 = call ptr @__errno_location() #11
  %1497 = load i32, ptr %1496, align 4, !tbaa !5
  %1498 = call ptr @strerror(i32 noundef %1497) #10
  %1499 = call ptr @__errno_location() #11
  %1500 = load i32, ptr %1499, align 4, !tbaa !5
  %1501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1488, ptr noundef @.str.5, i32 noundef %1489, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 241, ptr noundef %1492, ptr noundef %1495, ptr noundef %1498, i32 noundef %1500) #10
  br label %1502

1502:                                             ; preds = %1485, %1468
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %1503

1503:                                             ; preds = %1502
  br label %1504

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

1505:                                             ; No predecessors!
  br label %1506

1506:                                             ; preds = %1505
  br label %1507

1507:                                             ; preds = %1506, %1446
  br label %1508

1508:                                             ; preds = %1507
  br label %1509

1509:                                             ; preds = %1508
  %1510 = call i32 @s2n_mem_test_free_callbacks(ptr noundef %43)
  %1511 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  store i32 %1510, ptr %1511, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #10
  %1512 = call i32 @s2n_free(ptr noundef %34)
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %33) #10
  %1513 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %30)
  %1514 = getelementptr inbounds %struct.s2n_result, ptr %51, i32 0, i32 0
  store i32 %1513, ptr %1514, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %30) #10
  %1515 = call i32 @s2n_connection_ptr_free(ptr noundef %29)
  %1516 = getelementptr inbounds %struct.s2n_result, ptr %52, i32 0, i32 0
  store i32 %1515, ptr %1516, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  %1517 = call i32 @s2n_connection_ptr_free(ptr noundef %28)
  %1518 = getelementptr inbounds %struct.s2n_result, ptr %53, i32 0, i32 0
  store i32 %1517, ptr %1518, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #10
  br label %1519

1519:                                             ; preds = %1509
  %1520 = load i64, ptr %26, align 8, !tbaa !16
  %1521 = add i64 %1520, 1
  store i64 %1521, ptr %26, align 8, !tbaa !16
  br label %849, !llvm.loop !52

1522:                                             ; preds = %852
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  br label %1523

1523:                                             ; preds = %1522
  %1524 = load i64, ptr %23, align 8, !tbaa !16
  %1525 = add i64 %1524, 1
  store i64 %1525, ptr %23, align 8, !tbaa !16
  br label %841, !llvm.loop !53

1526:                                             ; preds = %844
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #10
  store i64 0, ptr %54, align 8, !tbaa !16
  br label %1527

1527:                                             ; preds = %2136, %1526
  %1528 = load i64, ptr %54, align 8, !tbaa !16
  %1529 = icmp ult i64 %1528, 7
  br i1 %1529, label %1531, label %1530

1530:                                             ; preds = %1527
  store i32 129, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #10
  br label %2139

1531:                                             ; preds = %1527
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #10
  %1532 = load i64, ptr %54, align 8, !tbaa !16
  %1533 = getelementptr inbounds [7 x i32], ptr %21, i64 0, i64 %1532
  %1534 = load i32, ptr %1533, align 4, !tbaa !5
  store i32 %1534, ptr %55, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #10
  %1535 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1535, ptr %56, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #10
  %1536 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1536, ptr %57, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr %58) #10
  call void @llvm.memset.p0.i64(ptr align 8 %58, i8 0, i64 80, i1 false)
  br label %1537

1537:                                             ; preds = %1531
  %1538 = load i32, ptr @test_count, align 4, !tbaa !5
  %1539 = add nsw i32 %1538, 1
  store i32 %1539, ptr @test_count, align 4, !tbaa !5
  %1540 = load ptr, ptr %11, align 8, !tbaa !9
  %1541 = load ptr, ptr %57, align 8, !tbaa !9
  %1542 = load ptr, ptr %56, align 8, !tbaa !9
  %1543 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %1540, ptr noundef %1541, ptr noundef %1542, ptr noundef %58)
  %1544 = getelementptr inbounds %struct.s2n_result, ptr %59, i32 0, i32 0
  store i32 %1543, ptr %1544, align 4
  %1545 = getelementptr inbounds %struct.s2n_result, ptr %59, i32 0, i32 0
  %1546 = load i32, ptr %1545, align 4
  %1547 = call zeroext i1 @s2n_result_is_ok(i32 %1546)
  br i1 %1547, label %1601, label %1548

1548:                                             ; preds = %1537
  br label %1549

1549:                                             ; preds = %1548
  br label %1550

1550:                                             ; preds = %1549
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  %1551 = call ptr @__errno_location() #11
  %1552 = load i32, ptr %1551, align 4, !tbaa !5
  store i32 %1552, ptr %60, align 4, !tbaa !5
  %1553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1554 = call i32 @s2n_print_stacktrace(ptr noundef %1553)
  %1555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1556 = trunc i8 %1555 to i1
  br i1 %1556, label %1557, label %1579

1557:                                             ; preds = %1550
  %1558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1559 = call i32 @fileno(ptr noundef %1558) #10
  %1560 = call i32 @isatty(i32 noundef %1559) #10
  %1561 = icmp ne i32 %1560, 0
  br i1 %1561, label %1562, label %1579

1562:                                             ; preds = %1557
  %1563 = load i32, ptr %60, align 4, !tbaa !5
  %1564 = call ptr @__errno_location() #11
  store i32 %1563, ptr %1564, align 4, !tbaa !5
  %1565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1566 = load i32, ptr @test_count, align 4, !tbaa !5
  %1567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call ptr @s2n_strerror(i32 noundef %1568, ptr noundef @.str.4)
  %1570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = call ptr @s2n_strerror_debug(i32 noundef %1571, ptr noundef @.str.4)
  %1573 = call ptr @__errno_location() #11
  %1574 = load i32, ptr %1573, align 4, !tbaa !5
  %1575 = call ptr @strerror(i32 noundef %1574) #10
  %1576 = call ptr @__errno_location() #11
  %1577 = load i32, ptr %1576, align 4, !tbaa !5
  %1578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1565, ptr noundef @.str.2, i32 noundef %1566, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 256, ptr noundef %1569, ptr noundef %1572, ptr noundef %1575, i32 noundef %1577) #10
  br label %1596

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

1596:                                             ; preds = %1579, %1562
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %1597

1597:                                             ; preds = %1596
  br label %1598

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

1599:                                             ; No predecessors!
  br label %1600

1600:                                             ; preds = %1599
  br label %1601

1601:                                             ; preds = %1600, %1537
  br label %1602

1602:                                             ; preds = %1601
  br label %1603

1603:                                             ; preds = %1602
  call void @llvm.lifetime.start.p0(i64 40, ptr %61) #10
  call void @llvm.memset.p0.i64(ptr align 8 %61, i8 0, i64 40, i1 false)
  br label %1604

1604:                                             ; preds = %1603
  %1605 = load i32, ptr @test_count, align 4, !tbaa !5
  %1606 = add nsw i32 %1605, 1
  store i32 %1606, ptr @test_count, align 4, !tbaa !5
  %1607 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %61, i32 noundef 0)
  %1608 = icmp eq i32 %1607, -1
  br i1 %1608, label %1609, label %1662

1609:                                             ; preds = %1604
  br label %1610

1610:                                             ; preds = %1609
  br label %1611

1611:                                             ; preds = %1610
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  %1612 = call ptr @__errno_location() #11
  %1613 = load i32, ptr %1612, align 4, !tbaa !5
  store i32 %1613, ptr %62, align 4, !tbaa !5
  %1614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1615 = call i32 @s2n_print_stacktrace(ptr noundef %1614)
  %1616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1617 = trunc i8 %1616 to i1
  br i1 %1617, label %1618, label %1640

1618:                                             ; preds = %1611
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = call i32 @fileno(ptr noundef %1619) #10
  %1621 = call i32 @isatty(i32 noundef %1620) #10
  %1622 = icmp ne i32 %1621, 0
  br i1 %1622, label %1623, label %1640

1623:                                             ; preds = %1618
  %1624 = load i32, ptr %62, align 4, !tbaa !5
  %1625 = call ptr @__errno_location() #11
  store i32 %1624, ptr %1625, align 4, !tbaa !5
  %1626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1627 = load i32, ptr @test_count, align 4, !tbaa !5
  %1628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1629 = load i32, ptr %1628, align 4, !tbaa !5
  %1630 = call ptr @s2n_strerror(i32 noundef %1629, ptr noundef @.str.4)
  %1631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  %1633 = call ptr @s2n_strerror_debug(i32 noundef %1632, ptr noundef @.str.4)
  %1634 = call ptr @__errno_location() #11
  %1635 = load i32, ptr %1634, align 4, !tbaa !5
  %1636 = call ptr @strerror(i32 noundef %1635) #10
  %1637 = call ptr @__errno_location() #11
  %1638 = load i32, ptr %1637, align 4, !tbaa !5
  %1639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1626, ptr noundef @.str.2, i32 noundef %1627, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 260, ptr noundef %1630, ptr noundef %1633, ptr noundef %1636, i32 noundef %1638) #10
  br label %1657

1640:                                             ; preds = %1618, %1611
  %1641 = load i32, ptr %62, align 4, !tbaa !5
  %1642 = call ptr @__errno_location() #11
  store i32 %1641, ptr %1642, align 4, !tbaa !5
  %1643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1644 = load i32, ptr @test_count, align 4, !tbaa !5
  %1645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1646 = load i32, ptr %1645, align 4, !tbaa !5
  %1647 = call ptr @s2n_strerror(i32 noundef %1646, ptr noundef @.str.4)
  %1648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1649 = load i32, ptr %1648, align 4, !tbaa !5
  %1650 = call ptr @s2n_strerror_debug(i32 noundef %1649, ptr noundef @.str.4)
  %1651 = call ptr @__errno_location() #11
  %1652 = load i32, ptr %1651, align 4, !tbaa !5
  %1653 = call ptr @strerror(i32 noundef %1652) #10
  %1654 = call ptr @__errno_location() #11
  %1655 = load i32, ptr %1654, align 4, !tbaa !5
  %1656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1643, ptr noundef @.str.5, i32 noundef %1644, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 260, ptr noundef %1647, ptr noundef %1650, ptr noundef %1653, i32 noundef %1655) #10
  br label %1657

1657:                                             ; preds = %1640, %1623
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %1658

1658:                                             ; preds = %1657
  br label %1659

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

1660:                                             ; No predecessors!
  br label %1661

1661:                                             ; preds = %1660
  br label %1662

1662:                                             ; preds = %1661, %1604
  br label %1663

1663:                                             ; preds = %1662
  br label %1664

1664:                                             ; preds = %1663
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #10
  store i64 0, ptr %63, align 8, !tbaa !16
  br label %1665

1665:                                             ; preds = %1739, %1664
  %1666 = load i64, ptr %63, align 8, !tbaa !16
  %1667 = icmp ult i64 %1666, 5
  br i1 %1667, label %1669, label %1668

1668:                                             ; preds = %1665
  store i32 144, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #10
  br label %1742

1669:                                             ; preds = %1665
  %1670 = load ptr, ptr %57, align 8, !tbaa !9
  %1671 = getelementptr inbounds %struct.s2n_connection, ptr %1670, i32 0, i32 87
  %1672 = load i16, ptr %1671, align 4, !tbaa !54
  %1673 = add i16 %1672, 1
  store i16 %1673, ptr %1671, align 4, !tbaa !54
  br label %1674

1674:                                             ; preds = %1669
  %1675 = load i32, ptr @test_count, align 4, !tbaa !5
  %1676 = add nsw i32 %1675, 1
  store i32 %1676, ptr @test_count, align 4, !tbaa !5
  %1677 = load ptr, ptr %57, align 8, !tbaa !9
  %1678 = call i32 @s2n_tls13_server_nst_write(ptr noundef %1677, ptr noundef %61)
  %1679 = getelementptr inbounds %struct.s2n_result, ptr %64, i32 0, i32 0
  store i32 %1678, ptr %1679, align 4
  %1680 = getelementptr inbounds %struct.s2n_result, ptr %64, i32 0, i32 0
  %1681 = load i32, ptr %1680, align 4
  %1682 = call zeroext i1 @s2n_result_is_ok(i32 %1681)
  br i1 %1682, label %1736, label %1683

1683:                                             ; preds = %1674
  br label %1684

1684:                                             ; preds = %1683
  br label %1685

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

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

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

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

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

1732:                                             ; preds = %1731
  br label %1733

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

1734:                                             ; No predecessors!
  br label %1735

1735:                                             ; preds = %1734
  br label %1736

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

1737:                                             ; preds = %1736
  br label %1738

1738:                                             ; preds = %1737
  br label %1739

1739:                                             ; preds = %1738
  %1740 = load i64, ptr %63, align 8, !tbaa !16
  %1741 = add i64 %1740, 1
  store i64 %1741, ptr %63, align 8, !tbaa !16
  br label %1665, !llvm.loop !55

1742:                                             ; preds = %1668
  br label %1743

1743:                                             ; preds = %1742
  %1744 = load i32, ptr @test_count, align 4, !tbaa !5
  %1745 = add nsw i32 %1744, 1
  store i32 %1745, ptr @test_count, align 4, !tbaa !5
  %1746 = load ptr, ptr %57, align 8, !tbaa !9
  %1747 = load i32, ptr %55, align 4, !tbaa !5
  %1748 = call i32 @s2n_test_send_records(ptr noundef %1746, ptr noundef byval(%struct.s2n_stuffer) align 8 %61, i32 noundef %1747)
  %1749 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  store i32 %1748, ptr %1749, align 4
  %1750 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  %1751 = load i32, ptr %1750, align 4
  %1752 = call zeroext i1 @s2n_result_is_ok(i32 %1751)
  br i1 %1752, label %1806, label %1753

1753:                                             ; preds = %1743
  br label %1754

1754:                                             ; preds = %1753
  br label %1755

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

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

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

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

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

1802:                                             ; preds = %1801
  br label %1803

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

1804:                                             ; No predecessors!
  br label %1805

1805:                                             ; preds = %1804
  br label %1806

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

1807:                                             ; preds = %1806
  br label %1808

1808:                                             ; preds = %1807
  br label %1809

1809:                                             ; preds = %1808
  %1810 = load i32, ptr @test_count, align 4, !tbaa !5
  %1811 = add nsw i32 %1810, 1
  store i32 %1811, ptr @test_count, align 4, !tbaa !5
  %1812 = load ptr, ptr %57, align 8, !tbaa !9
  %1813 = load ptr, ptr %56, align 8, !tbaa !9
  %1814 = call i32 @s2n_test_basic_recv(ptr noundef %1812, ptr noundef %1813)
  %1815 = getelementptr inbounds %struct.s2n_result, ptr %68, i32 0, i32 0
  store i32 %1814, ptr %1815, align 4
  %1816 = getelementptr inbounds %struct.s2n_result, ptr %68, i32 0, i32 0
  %1817 = load i32, ptr %1816, align 4
  %1818 = call zeroext i1 @s2n_result_is_ok(i32 %1817)
  br i1 %1818, label %1872, label %1819

1819:                                             ; preds = %1809
  br label %1820

1820:                                             ; preds = %1819
  br label %1821

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

1828:                                             ; preds = %1821
  %1829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1830 = call i32 @fileno(ptr noundef %1829) #10
  %1831 = call i32 @isatty(i32 noundef %1830) #10
  %1832 = icmp ne i32 %1831, 0
  br i1 %1832, label %1833, label %1850

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

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

1867:                                             ; preds = %1850, %1833
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %1868

1868:                                             ; preds = %1867
  br label %1869

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

1870:                                             ; No predecessors!
  br label %1871

1871:                                             ; preds = %1870
  br label %1872

1872:                                             ; preds = %1871, %1809
  br label %1873

1873:                                             ; preds = %1872
  br label %1874

1874:                                             ; preds = %1873
  br label %1875

1875:                                             ; preds = %1874
  %1876 = load i32, ptr @test_count, align 4, !tbaa !5
  %1877 = add nsw i32 %1876, 1
  store i32 %1877, ptr @test_count, align 4, !tbaa !5
  %1878 = load i64, ptr @tickets_count, align 8, !tbaa !16
  %1879 = icmp eq i64 %1878, 5
  br i1 %1879, label %1933, label %1880

1880:                                             ; preds = %1875
  br label %1881

1881:                                             ; preds = %1880
  br label %1882

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

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

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

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

1928:                                             ; preds = %1911, %1894
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

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

1931:                                             ; No predecessors!
  br label %1932

1932:                                             ; preds = %1931
  br label %1933

1933:                                             ; preds = %1932, %1875
  br label %1934

1934:                                             ; preds = %1933
  br label %1935

1935:                                             ; preds = %1934
  br label %1936

1936:                                             ; preds = %1935
  %1937 = load i32, ptr @test_count, align 4, !tbaa !5
  %1938 = add nsw i32 %1937, 1
  store i32 %1938, ptr @test_count, align 4, !tbaa !5
  %1939 = load ptr, ptr %57, align 8, !tbaa !9
  %1940 = load i32, ptr %55, align 4, !tbaa !5
  %1941 = call i32 @s2n_test_send_records(ptr noundef %1939, ptr noundef byval(%struct.s2n_stuffer) align 8 %61, i32 noundef %1940)
  %1942 = getelementptr inbounds %struct.s2n_result, ptr %71, i32 0, i32 0
  store i32 %1941, ptr %1942, align 4
  %1943 = getelementptr inbounds %struct.s2n_result, ptr %71, i32 0, i32 0
  %1944 = load i32, ptr %1943, align 4
  %1945 = call zeroext i1 @s2n_result_is_ok(i32 %1944)
  br i1 %1945, label %1999, label %1946

1946:                                             ; preds = %1936
  br label %1947

1947:                                             ; preds = %1946
  br label %1948

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

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

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

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

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

1995:                                             ; preds = %1994
  br label %1996

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

1997:                                             ; No predecessors!
  br label %1998

1998:                                             ; preds = %1997
  br label %1999

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

2000:                                             ; preds = %1999
  br label %2001

2001:                                             ; preds = %2000
  br label %2002

2002:                                             ; preds = %2001
  %2003 = load i32, ptr @test_count, align 4, !tbaa !5
  %2004 = add nsw i32 %2003, 1
  store i32 %2004, ptr @test_count, align 4, !tbaa !5
  %2005 = load ptr, ptr %57, align 8, !tbaa !9
  %2006 = load ptr, ptr %56, align 8, !tbaa !9
  %2007 = call i32 @s2n_test_blocking_recv(ptr noundef %2005, ptr noundef %2006, ptr noundef %58)
  %2008 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  store i32 %2007, ptr %2008, align 4
  %2009 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  %2010 = load i32, ptr %2009, align 4
  %2011 = call zeroext i1 @s2n_result_is_ok(i32 %2010)
  br i1 %2011, label %2065, label %2012

2012:                                             ; preds = %2002
  br label %2013

2013:                                             ; preds = %2012
  br label %2014

2014:                                             ; preds = %2013
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #10
  %2015 = call ptr @__errno_location() #11
  %2016 = load i32, ptr %2015, align 4, !tbaa !5
  store i32 %2016, ptr %74, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = call i32 @s2n_print_stacktrace(ptr noundef %2017)
  %2019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2020 = trunc i8 %2019 to i1
  br i1 %2020, label %2021, label %2043

2021:                                             ; preds = %2014
  %2022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2023 = call i32 @fileno(ptr noundef %2022) #10
  %2024 = call i32 @isatty(i32 noundef %2023) #10
  %2025 = icmp ne i32 %2024, 0
  br i1 %2025, label %2026, label %2043

2026:                                             ; preds = %2021
  %2027 = load i32, ptr %74, align 4, !tbaa !5
  %2028 = call ptr @__errno_location() #11
  store i32 %2027, ptr %2028, align 4, !tbaa !5
  %2029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2030 = load i32, ptr @test_count, align 4, !tbaa !5
  %2031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2032 = load i32, ptr %2031, align 4, !tbaa !5
  %2033 = call ptr @s2n_strerror(i32 noundef %2032, ptr noundef @.str.4)
  %2034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2035 = load i32, ptr %2034, align 4, !tbaa !5
  %2036 = call ptr @s2n_strerror_debug(i32 noundef %2035, ptr noundef @.str.4)
  %2037 = call ptr @__errno_location() #11
  %2038 = load i32, ptr %2037, align 4, !tbaa !5
  %2039 = call ptr @strerror(i32 noundef %2038) #10
  %2040 = call ptr @__errno_location() #11
  %2041 = load i32, ptr %2040, align 4, !tbaa !5
  %2042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2029, ptr noundef @.str.2, i32 noundef %2030, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 271, ptr noundef %2033, ptr noundef %2036, ptr noundef %2039, i32 noundef %2041) #10
  br label %2060

2043:                                             ; preds = %2021, %2014
  %2044 = load i32, ptr %74, align 4, !tbaa !5
  %2045 = call ptr @__errno_location() #11
  store i32 %2044, ptr %2045, align 4, !tbaa !5
  %2046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2047 = load i32, ptr @test_count, align 4, !tbaa !5
  %2048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2049 = load i32, ptr %2048, align 4, !tbaa !5
  %2050 = call ptr @s2n_strerror(i32 noundef %2049, ptr noundef @.str.4)
  %2051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2052 = load i32, ptr %2051, align 4, !tbaa !5
  %2053 = call ptr @s2n_strerror_debug(i32 noundef %2052, ptr noundef @.str.4)
  %2054 = call ptr @__errno_location() #11
  %2055 = load i32, ptr %2054, align 4, !tbaa !5
  %2056 = call ptr @strerror(i32 noundef %2055) #10
  %2057 = call ptr @__errno_location() #11
  %2058 = load i32, ptr %2057, align 4, !tbaa !5
  %2059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2046, ptr noundef @.str.5, i32 noundef %2047, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 271, ptr noundef %2050, ptr noundef %2053, ptr noundef %2056, i32 noundef %2058) #10
  br label %2060

2060:                                             ; preds = %2043, %2026
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #10
  br label %2061

2061:                                             ; preds = %2060
  br label %2062

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

2063:                                             ; No predecessors!
  br label %2064

2064:                                             ; preds = %2063
  br label %2065

2065:                                             ; preds = %2064, %2002
  br label %2066

2066:                                             ; preds = %2065
  br label %2067

2067:                                             ; preds = %2066
  br label %2068

2068:                                             ; preds = %2067
  %2069 = load i32, ptr @test_count, align 4, !tbaa !5
  %2070 = add nsw i32 %2069, 1
  store i32 %2070, ptr @test_count, align 4, !tbaa !5
  %2071 = load i64, ptr @tickets_count, align 8, !tbaa !16
  %2072 = icmp eq i64 %2071, 5
  br i1 %2072, label %2126, label %2073

2073:                                             ; preds = %2068
  br label %2074

2074:                                             ; preds = %2073
  br label %2075

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

2082:                                             ; preds = %2075
  %2083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2084 = call i32 @fileno(ptr noundef %2083) #10
  %2085 = call i32 @isatty(i32 noundef %2084) #10
  %2086 = icmp ne i32 %2085, 0
  br i1 %2086, label %2087, label %2104

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

2104:                                             ; preds = %2082, %2075
  %2105 = load i32, ptr %75, align 4, !tbaa !5
  %2106 = call ptr @__errno_location() #11
  store i32 %2105, ptr %2106, align 4, !tbaa !5
  %2107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2108 = load i32, ptr @test_count, align 4, !tbaa !5
  %2109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2110 = load i32, ptr %2109, align 4, !tbaa !5
  %2111 = call ptr @s2n_strerror(i32 noundef %2110, ptr noundef @.str.4)
  %2112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2113 = load i32, ptr %2112, align 4, !tbaa !5
  %2114 = call ptr @s2n_strerror_debug(i32 noundef %2113, ptr noundef @.str.4)
  %2115 = call ptr @__errno_location() #11
  %2116 = load i32, ptr %2115, align 4, !tbaa !5
  %2117 = call ptr @strerror(i32 noundef %2116) #10
  %2118 = call ptr @__errno_location() #11
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2107, ptr noundef @.str.5, i32 noundef %2108, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 272, ptr noundef %2111, ptr noundef %2114, ptr noundef %2117, i32 noundef %2119) #10
  br label %2121

2121:                                             ; preds = %2104, %2087
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %2122

2122:                                             ; preds = %2121
  br label %2123

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

2124:                                             ; No predecessors!
  br label %2125

2125:                                             ; preds = %2124
  br label %2126

2126:                                             ; preds = %2125, %2068
  br label %2127

2127:                                             ; preds = %2126
  br label %2128

2128:                                             ; preds = %2127
  %2129 = call i32 @s2n_stuffer_free(ptr noundef %61)
  call void @llvm.lifetime.end.p0(i64 40, ptr %61) #10
  %2130 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %58)
  %2131 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  store i32 %2130, ptr %2131, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %58) #10
  %2132 = call i32 @s2n_connection_ptr_free(ptr noundef %57)
  %2133 = getelementptr inbounds %struct.s2n_result, ptr %77, i32 0, i32 0
  store i32 %2132, ptr %2133, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #10
  %2134 = call i32 @s2n_connection_ptr_free(ptr noundef %56)
  %2135 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  store i32 %2134, ptr %2135, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #10
  br label %2136

2136:                                             ; preds = %2128
  %2137 = load i64, ptr %54, align 8, !tbaa !16
  %2138 = add i64 %2137, 1
  store i64 %2138, ptr %54, align 8, !tbaa !16
  br label %1527, !llvm.loop !56

2139:                                             ; preds = %1530
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #10
  store i64 0, ptr %79, align 8, !tbaa !16
  br label %2140

2140:                                             ; preds = %2920, %2139
  %2141 = load i64, ptr %79, align 8, !tbaa !16
  %2142 = icmp ult i64 %2141, 7
  br i1 %2142, label %2144, label %2143

2143:                                             ; preds = %2140
  store i32 189, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #10
  br label %2923

2144:                                             ; preds = %2140
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  %2145 = load i64, ptr %79, align 8, !tbaa !16
  %2146 = getelementptr inbounds [7 x i32], ptr %21, i64 0, i64 %2145
  %2147 = load i32, ptr %2146, align 4, !tbaa !5
  store i32 %2147, ptr %80, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #10
  %2148 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2148, ptr %81, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #10
  %2149 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2149, ptr %82, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr %83) #10
  call void @llvm.memset.p0.i64(ptr align 8 %83, i8 0, i64 80, i1 false)
  br label %2150

2150:                                             ; preds = %2144
  %2151 = load i32, ptr @test_count, align 4, !tbaa !5
  %2152 = add nsw i32 %2151, 1
  store i32 %2152, ptr @test_count, align 4, !tbaa !5
  %2153 = load ptr, ptr %11, align 8, !tbaa !9
  %2154 = load ptr, ptr %82, align 8, !tbaa !9
  %2155 = load ptr, ptr %81, align 8, !tbaa !9
  %2156 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %2153, ptr noundef %2154, ptr noundef %2155, ptr noundef %83)
  %2157 = getelementptr inbounds %struct.s2n_result, ptr %84, i32 0, i32 0
  store i32 %2156, ptr %2157, align 4
  %2158 = getelementptr inbounds %struct.s2n_result, ptr %84, i32 0, i32 0
  %2159 = load i32, ptr %2158, align 4
  %2160 = call zeroext i1 @s2n_result_is_ok(i32 %2159)
  br i1 %2160, label %2214, label %2161

2161:                                             ; preds = %2150
  br label %2162

2162:                                             ; preds = %2161
  br label %2163

2163:                                             ; preds = %2162
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #10
  %2164 = call ptr @__errno_location() #11
  %2165 = load i32, ptr %2164, align 4, !tbaa !5
  store i32 %2165, ptr %85, align 4, !tbaa !5
  %2166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2167 = call i32 @s2n_print_stacktrace(ptr noundef %2166)
  %2168 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2169 = trunc i8 %2168 to i1
  br i1 %2169, label %2170, label %2192

2170:                                             ; preds = %2163
  %2171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2172 = call i32 @fileno(ptr noundef %2171) #10
  %2173 = call i32 @isatty(i32 noundef %2172) #10
  %2174 = icmp ne i32 %2173, 0
  br i1 %2174, label %2175, label %2192

2175:                                             ; preds = %2170
  %2176 = load i32, ptr %85, align 4, !tbaa !5
  %2177 = call ptr @__errno_location() #11
  store i32 %2176, ptr %2177, align 4, !tbaa !5
  %2178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2179 = load i32, ptr @test_count, align 4, !tbaa !5
  %2180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2181 = load i32, ptr %2180, align 4, !tbaa !5
  %2182 = call ptr @s2n_strerror(i32 noundef %2181, ptr noundef @.str.4)
  %2183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2184 = load i32, ptr %2183, align 4, !tbaa !5
  %2185 = call ptr @s2n_strerror_debug(i32 noundef %2184, ptr noundef @.str.4)
  %2186 = call ptr @__errno_location() #11
  %2187 = load i32, ptr %2186, align 4, !tbaa !5
  %2188 = call ptr @strerror(i32 noundef %2187) #10
  %2189 = call ptr @__errno_location() #11
  %2190 = load i32, ptr %2189, align 4, !tbaa !5
  %2191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2178, ptr noundef @.str.2, i32 noundef %2179, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 286, ptr noundef %2182, ptr noundef %2185, ptr noundef %2188, i32 noundef %2190) #10
  br label %2209

2192:                                             ; preds = %2170, %2163
  %2193 = load i32, ptr %85, align 4, !tbaa !5
  %2194 = call ptr @__errno_location() #11
  store i32 %2193, ptr %2194, align 4, !tbaa !5
  %2195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2196 = load i32, ptr @test_count, align 4, !tbaa !5
  %2197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2198 = load i32, ptr %2197, align 4, !tbaa !5
  %2199 = call ptr @s2n_strerror(i32 noundef %2198, ptr noundef @.str.4)
  %2200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  %2202 = call ptr @s2n_strerror_debug(i32 noundef %2201, ptr noundef @.str.4)
  %2203 = call ptr @__errno_location() #11
  %2204 = load i32, ptr %2203, align 4, !tbaa !5
  %2205 = call ptr @strerror(i32 noundef %2204) #10
  %2206 = call ptr @__errno_location() #11
  %2207 = load i32, ptr %2206, align 4, !tbaa !5
  %2208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2195, ptr noundef @.str.5, i32 noundef %2196, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 286, ptr noundef %2199, ptr noundef %2202, ptr noundef %2205, i32 noundef %2207) #10
  br label %2209

2209:                                             ; preds = %2192, %2175
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #10
  br label %2210

2210:                                             ; preds = %2209
  br label %2211

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

2212:                                             ; No predecessors!
  br label %2213

2213:                                             ; preds = %2212
  br label %2214

2214:                                             ; preds = %2213, %2150
  br label %2215

2215:                                             ; preds = %2214
  br label %2216

2216:                                             ; preds = %2215
  %2217 = load ptr, ptr %82, align 8, !tbaa !9
  %2218 = getelementptr inbounds %struct.s2n_connection, ptr %2217, i32 0, i32 90
  store i32 10, ptr %2218, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #10
  store i64 0, ptr %86, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 40, ptr %87) #10
  call void @llvm.memset.p0.i64(ptr align 8 %87, i8 0, i64 40, i1 false)
  br label %2219

2219:                                             ; preds = %2216
  %2220 = load i32, ptr @test_count, align 4, !tbaa !5
  %2221 = add nsw i32 %2220, 1
  store i32 %2221, ptr @test_count, align 4, !tbaa !5
  %2222 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %87, i32 noundef 0)
  %2223 = icmp eq i32 %2222, -1
  br i1 %2223, label %2224, label %2277

2224:                                             ; preds = %2219
  br label %2225

2225:                                             ; preds = %2224
  br label %2226

2226:                                             ; preds = %2225
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #10
  %2227 = call ptr @__errno_location() #11
  %2228 = load i32, ptr %2227, align 4, !tbaa !5
  store i32 %2228, ptr %88, align 4, !tbaa !5
  %2229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2230 = call i32 @s2n_print_stacktrace(ptr noundef %2229)
  %2231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2232 = trunc i8 %2231 to i1
  br i1 %2232, label %2233, label %2255

2233:                                             ; preds = %2226
  %2234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2235 = call i32 @fileno(ptr noundef %2234) #10
  %2236 = call i32 @isatty(i32 noundef %2235) #10
  %2237 = icmp ne i32 %2236, 0
  br i1 %2237, label %2238, label %2255

2238:                                             ; preds = %2233
  %2239 = load i32, ptr %88, align 4, !tbaa !5
  %2240 = call ptr @__errno_location() #11
  store i32 %2239, ptr %2240, align 4, !tbaa !5
  %2241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2242 = load i32, ptr @test_count, align 4, !tbaa !5
  %2243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2244 = load i32, ptr %2243, align 4, !tbaa !5
  %2245 = call ptr @s2n_strerror(i32 noundef %2244, ptr noundef @.str.4)
  %2246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2247 = load i32, ptr %2246, align 4, !tbaa !5
  %2248 = call ptr @s2n_strerror_debug(i32 noundef %2247, ptr noundef @.str.4)
  %2249 = call ptr @__errno_location() #11
  %2250 = load i32, ptr %2249, align 4, !tbaa !5
  %2251 = call ptr @strerror(i32 noundef %2250) #10
  %2252 = call ptr @__errno_location() #11
  %2253 = load i32, ptr %2252, align 4, !tbaa !5
  %2254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2241, ptr noundef @.str.2, i32 noundef %2242, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 291, ptr noundef %2245, ptr noundef %2248, ptr noundef %2251, i32 noundef %2253) #10
  br label %2272

2255:                                             ; preds = %2233, %2226
  %2256 = load i32, ptr %88, align 4, !tbaa !5
  %2257 = call ptr @__errno_location() #11
  store i32 %2256, ptr %2257, align 4, !tbaa !5
  %2258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2259 = load i32, ptr @test_count, align 4, !tbaa !5
  %2260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2261 = load i32, ptr %2260, align 4, !tbaa !5
  %2262 = call ptr @s2n_strerror(i32 noundef %2261, ptr noundef @.str.4)
  %2263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  %2265 = call ptr @s2n_strerror_debug(i32 noundef %2264, ptr noundef @.str.4)
  %2266 = call ptr @__errno_location() #11
  %2267 = load i32, ptr %2266, align 4, !tbaa !5
  %2268 = call ptr @strerror(i32 noundef %2267) #10
  %2269 = call ptr @__errno_location() #11
  %2270 = load i32, ptr %2269, align 4, !tbaa !5
  %2271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2258, ptr noundef @.str.5, i32 noundef %2259, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 291, ptr noundef %2262, ptr noundef %2265, ptr noundef %2268, i32 noundef %2270) #10
  br label %2272

2272:                                             ; preds = %2255, %2238
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #10
  br label %2273

2273:                                             ; preds = %2272
  br label %2274

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

2275:                                             ; No predecessors!
  br label %2276

2276:                                             ; preds = %2275
  br label %2277

2277:                                             ; preds = %2276, %2219
  br label %2278

2278:                                             ; preds = %2277
  br label %2279

2279:                                             ; preds = %2278
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #10
  store i64 0, ptr %89, align 8, !tbaa !16
  br label %2280

2280:                                             ; preds = %2515, %2279
  %2281 = load i64, ptr %89, align 8, !tbaa !16
  %2282 = icmp ult i64 %2281, 3
  br i1 %2282, label %2284, label %2283

2283:                                             ; preds = %2280
  store i32 204, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #10
  br label %2518

2284:                                             ; preds = %2280
  %2285 = load ptr, ptr %82, align 8, !tbaa !9
  %2286 = load i32, ptr %2285, align 8
  %2287 = and i32 %2286, -2049
  %2288 = or i32 %2287, 0
  store i32 %2288, ptr %2285, align 8
  %2289 = load ptr, ptr %82, align 8, !tbaa !9
  %2290 = getelementptr inbounds %struct.s2n_connection, ptr %2289, i32 0, i32 87
  %2291 = load i16, ptr %2290, align 4, !tbaa !54
  %2292 = add i16 %2291, 1
  store i16 %2292, ptr %2290, align 4, !tbaa !54
  br label %2293

2293:                                             ; preds = %2284
  %2294 = load i32, ptr @test_count, align 4, !tbaa !5
  %2295 = add nsw i32 %2294, 1
  store i32 %2295, ptr @test_count, align 4, !tbaa !5
  %2296 = load ptr, ptr %82, align 8, !tbaa !9
  %2297 = call i32 @s2n_tls13_server_nst_write(ptr noundef %2296, ptr noundef %87)
  %2298 = getelementptr inbounds %struct.s2n_result, ptr %90, i32 0, i32 0
  store i32 %2297, ptr %2298, align 4
  %2299 = getelementptr inbounds %struct.s2n_result, ptr %90, i32 0, i32 0
  %2300 = load i32, ptr %2299, align 4
  %2301 = call zeroext i1 @s2n_result_is_ok(i32 %2300)
  br i1 %2301, label %2355, label %2302

2302:                                             ; preds = %2293
  br label %2303

2303:                                             ; preds = %2302
  br label %2304

2304:                                             ; preds = %2303
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  %2305 = call ptr @__errno_location() #11
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  store i32 %2306, ptr %91, align 4, !tbaa !5
  %2307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2308 = call i32 @s2n_print_stacktrace(ptr noundef %2307)
  %2309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2310 = trunc i8 %2309 to i1
  br i1 %2310, label %2311, label %2333

2311:                                             ; preds = %2304
  %2312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2313 = call i32 @fileno(ptr noundef %2312) #10
  %2314 = call i32 @isatty(i32 noundef %2313) #10
  %2315 = icmp ne i32 %2314, 0
  br i1 %2315, label %2316, label %2333

2316:                                             ; preds = %2311
  %2317 = load i32, ptr %91, align 4, !tbaa !5
  %2318 = call ptr @__errno_location() #11
  store i32 %2317, ptr %2318, align 4, !tbaa !5
  %2319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2320 = load i32, ptr @test_count, align 4, !tbaa !5
  %2321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2322 = load i32, ptr %2321, align 4, !tbaa !5
  %2323 = call ptr @s2n_strerror(i32 noundef %2322, ptr noundef @.str.4)
  %2324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2325 = load i32, ptr %2324, align 4, !tbaa !5
  %2326 = call ptr @s2n_strerror_debug(i32 noundef %2325, ptr noundef @.str.4)
  %2327 = call ptr @__errno_location() #11
  %2328 = load i32, ptr %2327, align 4, !tbaa !5
  %2329 = call ptr @strerror(i32 noundef %2328) #10
  %2330 = call ptr @__errno_location() #11
  %2331 = load i32, ptr %2330, align 4, !tbaa !5
  %2332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2319, ptr noundef @.str.2, i32 noundef %2320, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 296, ptr noundef %2323, ptr noundef %2326, ptr noundef %2329, i32 noundef %2331) #10
  br label %2350

2333:                                             ; preds = %2311, %2304
  %2334 = load i32, ptr %91, align 4, !tbaa !5
  %2335 = call ptr @__errno_location() #11
  store i32 %2334, ptr %2335, align 4, !tbaa !5
  %2336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2337 = load i32, ptr @test_count, align 4, !tbaa !5
  %2338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2339 = load i32, ptr %2338, align 4, !tbaa !5
  %2340 = call ptr @s2n_strerror(i32 noundef %2339, ptr noundef @.str.4)
  %2341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2342 = load i32, ptr %2341, align 4, !tbaa !5
  %2343 = call ptr @s2n_strerror_debug(i32 noundef %2342, ptr noundef @.str.4)
  %2344 = call ptr @__errno_location() #11
  %2345 = load i32, ptr %2344, align 4, !tbaa !5
  %2346 = call ptr @strerror(i32 noundef %2345) #10
  %2347 = call ptr @__errno_location() #11
  %2348 = load i32, ptr %2347, align 4, !tbaa !5
  %2349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2336, ptr noundef @.str.5, i32 noundef %2337, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 296, ptr noundef %2340, ptr noundef %2343, ptr noundef %2346, i32 noundef %2348) #10
  br label %2350

2350:                                             ; preds = %2333, %2316
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  br label %2351

2351:                                             ; preds = %2350
  br label %2352

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

2353:                                             ; No predecessors!
  br label %2354

2354:                                             ; preds = %2353
  br label %2355

2355:                                             ; preds = %2354, %2293
  br label %2356

2356:                                             ; preds = %2355
  br label %2357

2357:                                             ; preds = %2356
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #10
  %2358 = getelementptr inbounds %struct.s2n_stuffer, ptr %87, i32 0, i32 2
  %2359 = load i32, ptr %2358, align 4, !tbaa !58
  %2360 = getelementptr inbounds %struct.s2n_stuffer, ptr %87, i32 0, i32 1
  %2361 = load i32, ptr %2360, align 8, !tbaa !59
  %2362 = sub i32 %2359, %2361
  %2363 = zext i32 %2362 to i64
  %2364 = load i64, ptr %86, align 8, !tbaa !16
  %2365 = sub i64 %2363, %2364
  store i64 %2365, ptr %92, align 8, !tbaa !16
  %2366 = load i64, ptr %92, align 8, !tbaa !16
  %2367 = load i64, ptr %86, align 8, !tbaa !16
  %2368 = add i64 %2367, %2366
  store i64 %2368, ptr %86, align 8, !tbaa !16
  %2369 = load ptr, ptr %82, align 8, !tbaa !9
  %2370 = load i32, ptr %2369, align 8
  %2371 = and i32 %2370, -2049
  %2372 = or i32 %2371, 2048
  store i32 %2372, ptr %2369, align 8
  %2373 = load ptr, ptr %82, align 8, !tbaa !9
  %2374 = getelementptr inbounds %struct.s2n_connection, ptr %2373, i32 0, i32 87
  %2375 = load i16, ptr %2374, align 4, !tbaa !54
  %2376 = add i16 %2375, 1
  store i16 %2376, ptr %2374, align 4, !tbaa !54
  br label %2377

2377:                                             ; preds = %2357
  %2378 = load i32, ptr @test_count, align 4, !tbaa !5
  %2379 = add nsw i32 %2378, 1
  store i32 %2379, ptr @test_count, align 4, !tbaa !5
  %2380 = load ptr, ptr %82, align 8, !tbaa !9
  %2381 = call i32 @s2n_tls13_server_nst_write(ptr noundef %2380, ptr noundef %87)
  %2382 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  store i32 %2381, ptr %2382, align 4
  %2383 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  %2384 = load i32, ptr %2383, align 4
  %2385 = call zeroext i1 @s2n_result_is_ok(i32 %2384)
  br i1 %2385, label %2439, label %2386

2386:                                             ; preds = %2377
  br label %2387

2387:                                             ; preds = %2386
  br label %2388

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

2395:                                             ; preds = %2388
  %2396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2397 = call i32 @fileno(ptr noundef %2396) #10
  %2398 = call i32 @isatty(i32 noundef %2397) #10
  %2399 = icmp ne i32 %2398, 0
  br i1 %2399, label %2400, label %2417

2400:                                             ; preds = %2395
  %2401 = load i32, ptr %94, align 4, !tbaa !5
  %2402 = call ptr @__errno_location() #11
  store i32 %2401, ptr %2402, align 4, !tbaa !5
  %2403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2404 = load i32, ptr @test_count, align 4, !tbaa !5
  %2405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2406 = load i32, ptr %2405, align 4, !tbaa !5
  %2407 = call ptr @s2n_strerror(i32 noundef %2406, ptr noundef @.str.4)
  %2408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2409 = load i32, ptr %2408, align 4, !tbaa !5
  %2410 = call ptr @s2n_strerror_debug(i32 noundef %2409, ptr noundef @.str.4)
  %2411 = call ptr @__errno_location() #11
  %2412 = load i32, ptr %2411, align 4, !tbaa !5
  %2413 = call ptr @strerror(i32 noundef %2412) #10
  %2414 = call ptr @__errno_location() #11
  %2415 = load i32, ptr %2414, align 4, !tbaa !5
  %2416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2403, ptr noundef @.str.2, i32 noundef %2404, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 306, ptr noundef %2407, ptr noundef %2410, ptr noundef %2413, i32 noundef %2415) #10
  br label %2434

2417:                                             ; preds = %2395, %2388
  %2418 = load i32, ptr %94, align 4, !tbaa !5
  %2419 = call ptr @__errno_location() #11
  store i32 %2418, ptr %2419, align 4, !tbaa !5
  %2420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2421 = load i32, ptr @test_count, align 4, !tbaa !5
  %2422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2423 = load i32, ptr %2422, align 4, !tbaa !5
  %2424 = call ptr @s2n_strerror(i32 noundef %2423, ptr noundef @.str.4)
  %2425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2426 = load i32, ptr %2425, align 4, !tbaa !5
  %2427 = call ptr @s2n_strerror_debug(i32 noundef %2426, ptr noundef @.str.4)
  %2428 = call ptr @__errno_location() #11
  %2429 = load i32, ptr %2428, align 4, !tbaa !5
  %2430 = call ptr @strerror(i32 noundef %2429) #10
  %2431 = call ptr @__errno_location() #11
  %2432 = load i32, ptr %2431, align 4, !tbaa !5
  %2433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2420, ptr noundef @.str.5, i32 noundef %2421, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 306, ptr noundef %2424, ptr noundef %2427, ptr noundef %2430, i32 noundef %2432) #10
  br label %2434

2434:                                             ; preds = %2417, %2400
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #10
  br label %2435

2435:                                             ; preds = %2434
  br label %2436

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

2437:                                             ; No predecessors!
  br label %2438

2438:                                             ; preds = %2437
  br label %2439

2439:                                             ; preds = %2438, %2377
  br label %2440

2440:                                             ; preds = %2439
  br label %2441

2441:                                             ; preds = %2440
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #10
  %2442 = getelementptr inbounds %struct.s2n_stuffer, ptr %87, i32 0, i32 2
  %2443 = load i32, ptr %2442, align 4, !tbaa !58
  %2444 = getelementptr inbounds %struct.s2n_stuffer, ptr %87, i32 0, i32 1
  %2445 = load i32, ptr %2444, align 8, !tbaa !59
  %2446 = sub i32 %2443, %2445
  %2447 = zext i32 %2446 to i64
  %2448 = load i64, ptr %86, align 8, !tbaa !16
  %2449 = sub i64 %2447, %2448
  store i64 %2449, ptr %95, align 8, !tbaa !16
  br label %2450

2450:                                             ; preds = %2441
  %2451 = load i32, ptr @test_count, align 4, !tbaa !5
  %2452 = add nsw i32 %2451, 1
  store i32 %2452, ptr @test_count, align 4, !tbaa !5
  %2453 = load i64, ptr %95, align 8, !tbaa !16
  %2454 = load i64, ptr %92, align 8, !tbaa !16
  %2455 = icmp ugt i64 %2453, %2454
  br i1 %2455, label %2509, label %2456

2456:                                             ; preds = %2450
  br label %2457

2457:                                             ; preds = %2456
  br label %2458

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

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

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

2487:                                             ; preds = %2465, %2458
  %2488 = load i32, ptr %96, align 4, !tbaa !5
  %2489 = call ptr @__errno_location() #11
  store i32 %2488, ptr %2489, align 4, !tbaa !5
  %2490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2491 = load i32, ptr @test_count, align 4, !tbaa !5
  %2492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2493 = load i32, ptr %2492, align 4, !tbaa !5
  %2494 = call ptr @s2n_strerror(i32 noundef %2493, ptr noundef @.str.4)
  %2495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2496 = load i32, ptr %2495, align 4, !tbaa !5
  %2497 = call ptr @s2n_strerror_debug(i32 noundef %2496, ptr noundef @.str.4)
  %2498 = call ptr @__errno_location() #11
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = call ptr @strerror(i32 noundef %2499) #10
  %2501 = call ptr @__errno_location() #11
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  %2503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2490, ptr noundef @.str.5, i32 noundef %2491, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 308, ptr noundef %2494, ptr noundef %2497, ptr noundef %2500, i32 noundef %2502) #10
  br label %2504

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

2505:                                             ; preds = %2504
  br label %2506

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

2507:                                             ; No predecessors!
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

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

2510:                                             ; preds = %2509
  br label %2511

2511:                                             ; preds = %2510
  %2512 = load i64, ptr %95, align 8, !tbaa !16
  %2513 = load i64, ptr %86, align 8, !tbaa !16
  %2514 = add i64 %2513, %2512
  store i64 %2514, ptr %86, align 8, !tbaa !16
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #10
  br label %2515

2515:                                             ; preds = %2511
  %2516 = load i64, ptr %89, align 8, !tbaa !16
  %2517 = add i64 %2516, 1
  store i64 %2517, ptr %89, align 8, !tbaa !16
  br label %2280, !llvm.loop !60

2518:                                             ; preds = %2283
  br label %2519

2519:                                             ; preds = %2518
  %2520 = load i32, ptr @test_count, align 4, !tbaa !5
  %2521 = add nsw i32 %2520, 1
  store i32 %2521, ptr @test_count, align 4, !tbaa !5
  %2522 = load ptr, ptr %82, align 8, !tbaa !9
  %2523 = load i32, ptr %80, align 4, !tbaa !5
  %2524 = call i32 @s2n_test_send_records(ptr noundef %2522, ptr noundef byval(%struct.s2n_stuffer) align 8 %87, i32 noundef %2523)
  %2525 = getelementptr inbounds %struct.s2n_result, ptr %97, i32 0, i32 0
  store i32 %2524, ptr %2525, align 4
  %2526 = getelementptr inbounds %struct.s2n_result, ptr %97, i32 0, i32 0
  %2527 = load i32, ptr %2526, align 4
  %2528 = call zeroext i1 @s2n_result_is_ok(i32 %2527)
  br i1 %2528, label %2582, label %2529

2529:                                             ; preds = %2519
  br label %2530

2530:                                             ; preds = %2529
  br label %2531

2531:                                             ; preds = %2530
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #10
  %2532 = call ptr @__errno_location() #11
  %2533 = load i32, ptr %2532, align 4, !tbaa !5
  store i32 %2533, ptr %98, align 4, !tbaa !5
  %2534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2535 = call i32 @s2n_print_stacktrace(ptr noundef %2534)
  %2536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2537 = trunc i8 %2536 to i1
  br i1 %2537, label %2538, label %2560

2538:                                             ; preds = %2531
  %2539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2540 = call i32 @fileno(ptr noundef %2539) #10
  %2541 = call i32 @isatty(i32 noundef %2540) #10
  %2542 = icmp ne i32 %2541, 0
  br i1 %2542, label %2543, label %2560

2543:                                             ; preds = %2538
  %2544 = load i32, ptr %98, align 4, !tbaa !5
  %2545 = call ptr @__errno_location() #11
  store i32 %2544, ptr %2545, align 4, !tbaa !5
  %2546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2547 = load i32, ptr @test_count, align 4, !tbaa !5
  %2548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2549 = load i32, ptr %2548, align 4, !tbaa !5
  %2550 = call ptr @s2n_strerror(i32 noundef %2549, ptr noundef @.str.4)
  %2551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2552 = load i32, ptr %2551, align 4, !tbaa !5
  %2553 = call ptr @s2n_strerror_debug(i32 noundef %2552, ptr noundef @.str.4)
  %2554 = call ptr @__errno_location() #11
  %2555 = load i32, ptr %2554, align 4, !tbaa !5
  %2556 = call ptr @strerror(i32 noundef %2555) #10
  %2557 = call ptr @__errno_location() #11
  %2558 = load i32, ptr %2557, align 4, !tbaa !5
  %2559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2546, ptr noundef @.str.2, i32 noundef %2547, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 312, ptr noundef %2550, ptr noundef %2553, ptr noundef %2556, i32 noundef %2558) #10
  br label %2577

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

2577:                                             ; preds = %2560, %2543
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #10
  br label %2578

2578:                                             ; preds = %2577
  br label %2579

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

2580:                                             ; No predecessors!
  br label %2581

2581:                                             ; preds = %2580
  br label %2582

2582:                                             ; preds = %2581, %2519
  br label %2583

2583:                                             ; preds = %2582
  br label %2584

2584:                                             ; preds = %2583
  br label %2585

2585:                                             ; preds = %2584
  %2586 = load i32, ptr @test_count, align 4, !tbaa !5
  %2587 = add nsw i32 %2586, 1
  store i32 %2587, ptr @test_count, align 4, !tbaa !5
  %2588 = load ptr, ptr %82, align 8, !tbaa !9
  %2589 = load ptr, ptr %81, align 8, !tbaa !9
  %2590 = call i32 @s2n_test_basic_recv(ptr noundef %2588, ptr noundef %2589)
  %2591 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  store i32 %2590, ptr %2591, align 4
  %2592 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  %2593 = load i32, ptr %2592, align 4
  %2594 = call zeroext i1 @s2n_result_is_ok(i32 %2593)
  br i1 %2594, label %2648, label %2595

2595:                                             ; preds = %2585
  br label %2596

2596:                                             ; preds = %2595
  br label %2597

2597:                                             ; preds = %2596
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #10
  %2598 = call ptr @__errno_location() #11
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  store i32 %2599, ptr %100, align 4, !tbaa !5
  %2600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2601 = call i32 @s2n_print_stacktrace(ptr noundef %2600)
  %2602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2603 = trunc i8 %2602 to i1
  br i1 %2603, label %2604, label %2626

2604:                                             ; preds = %2597
  %2605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2606 = call i32 @fileno(ptr noundef %2605) #10
  %2607 = call i32 @isatty(i32 noundef %2606) #10
  %2608 = icmp ne i32 %2607, 0
  br i1 %2608, label %2609, label %2626

2609:                                             ; preds = %2604
  %2610 = load i32, ptr %100, align 4, !tbaa !5
  %2611 = call ptr @__errno_location() #11
  store i32 %2610, ptr %2611, align 4, !tbaa !5
  %2612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2613 = load i32, ptr @test_count, align 4, !tbaa !5
  %2614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2615 = load i32, ptr %2614, align 4, !tbaa !5
  %2616 = call ptr @s2n_strerror(i32 noundef %2615, ptr noundef @.str.4)
  %2617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2618 = load i32, ptr %2617, align 4, !tbaa !5
  %2619 = call ptr @s2n_strerror_debug(i32 noundef %2618, ptr noundef @.str.4)
  %2620 = call ptr @__errno_location() #11
  %2621 = load i32, ptr %2620, align 4, !tbaa !5
  %2622 = call ptr @strerror(i32 noundef %2621) #10
  %2623 = call ptr @__errno_location() #11
  %2624 = load i32, ptr %2623, align 4, !tbaa !5
  %2625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2612, ptr noundef @.str.2, i32 noundef %2613, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 313, ptr noundef %2616, ptr noundef %2619, ptr noundef %2622, i32 noundef %2624) #10
  br label %2643

2626:                                             ; preds = %2604, %2597
  %2627 = load i32, ptr %100, align 4, !tbaa !5
  %2628 = call ptr @__errno_location() #11
  store i32 %2627, ptr %2628, align 4, !tbaa !5
  %2629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2630 = load i32, ptr @test_count, align 4, !tbaa !5
  %2631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2632 = load i32, ptr %2631, align 4, !tbaa !5
  %2633 = call ptr @s2n_strerror(i32 noundef %2632, ptr noundef @.str.4)
  %2634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2635 = load i32, ptr %2634, align 4, !tbaa !5
  %2636 = call ptr @s2n_strerror_debug(i32 noundef %2635, ptr noundef @.str.4)
  %2637 = call ptr @__errno_location() #11
  %2638 = load i32, ptr %2637, align 4, !tbaa !5
  %2639 = call ptr @strerror(i32 noundef %2638) #10
  %2640 = call ptr @__errno_location() #11
  %2641 = load i32, ptr %2640, align 4, !tbaa !5
  %2642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2629, ptr noundef @.str.5, i32 noundef %2630, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 313, ptr noundef %2633, ptr noundef %2636, ptr noundef %2639, i32 noundef %2641) #10
  br label %2643

2643:                                             ; preds = %2626, %2609
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  br label %2644

2644:                                             ; preds = %2643
  br label %2645

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

2646:                                             ; No predecessors!
  br label %2647

2647:                                             ; preds = %2646
  br label %2648

2648:                                             ; preds = %2647, %2585
  br label %2649

2649:                                             ; preds = %2648
  br label %2650

2650:                                             ; preds = %2649
  br label %2651

2651:                                             ; preds = %2650
  %2652 = load i32, ptr @test_count, align 4, !tbaa !5
  %2653 = add nsw i32 %2652, 1
  store i32 %2653, ptr @test_count, align 4, !tbaa !5
  %2654 = load i64, ptr @tickets_count, align 8, !tbaa !16
  %2655 = load ptr, ptr %82, align 8, !tbaa !9
  %2656 = getelementptr inbounds %struct.s2n_connection, ptr %2655, i32 0, i32 87
  %2657 = load i16, ptr %2656, align 4, !tbaa !54
  %2658 = zext i16 %2657 to i64
  %2659 = icmp eq i64 %2654, %2658
  br i1 %2659, label %2713, label %2660

2660:                                             ; preds = %2651
  br label %2661

2661:                                             ; preds = %2660
  br label %2662

2662:                                             ; preds = %2661
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #10
  %2663 = call ptr @__errno_location() #11
  %2664 = load i32, ptr %2663, align 4, !tbaa !5
  store i32 %2664, ptr %101, align 4, !tbaa !5
  %2665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2666 = call i32 @s2n_print_stacktrace(ptr noundef %2665)
  %2667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2668 = trunc i8 %2667 to i1
  br i1 %2668, label %2669, label %2691

2669:                                             ; preds = %2662
  %2670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2671 = call i32 @fileno(ptr noundef %2670) #10
  %2672 = call i32 @isatty(i32 noundef %2671) #10
  %2673 = icmp ne i32 %2672, 0
  br i1 %2673, label %2674, label %2691

2674:                                             ; preds = %2669
  %2675 = load i32, ptr %101, align 4, !tbaa !5
  %2676 = call ptr @__errno_location() #11
  store i32 %2675, ptr %2676, align 4, !tbaa !5
  %2677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2678 = load i32, ptr @test_count, align 4, !tbaa !5
  %2679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call ptr @s2n_strerror(i32 noundef %2680, ptr noundef @.str.4)
  %2682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror_debug(i32 noundef %2683, ptr noundef @.str.4)
  %2685 = call ptr @__errno_location() #11
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call ptr @strerror(i32 noundef %2686) #10
  %2688 = call ptr @__errno_location() #11
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2677, ptr noundef @.str.2, i32 noundef %2678, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 314, ptr noundef %2681, ptr noundef %2684, ptr noundef %2687, i32 noundef %2689) #10
  br label %2708

2691:                                             ; preds = %2669, %2662
  %2692 = load i32, ptr %101, align 4, !tbaa !5
  %2693 = call ptr @__errno_location() #11
  store i32 %2692, ptr %2693, align 4, !tbaa !5
  %2694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2695 = load i32, ptr @test_count, align 4, !tbaa !5
  %2696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2697 = load i32, ptr %2696, align 4, !tbaa !5
  %2698 = call ptr @s2n_strerror(i32 noundef %2697, ptr noundef @.str.4)
  %2699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2700 = load i32, ptr %2699, align 4, !tbaa !5
  %2701 = call ptr @s2n_strerror_debug(i32 noundef %2700, ptr noundef @.str.4)
  %2702 = call ptr @__errno_location() #11
  %2703 = load i32, ptr %2702, align 4, !tbaa !5
  %2704 = call ptr @strerror(i32 noundef %2703) #10
  %2705 = call ptr @__errno_location() #11
  %2706 = load i32, ptr %2705, align 4, !tbaa !5
  %2707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2694, ptr noundef @.str.5, i32 noundef %2695, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 314, ptr noundef %2698, ptr noundef %2701, ptr noundef %2704, i32 noundef %2706) #10
  br label %2708

2708:                                             ; preds = %2691, %2674
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  br label %2709

2709:                                             ; preds = %2708
  br label %2710

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

2711:                                             ; No predecessors!
  br label %2712

2712:                                             ; preds = %2711
  br label %2713

2713:                                             ; preds = %2712, %2651
  br label %2714

2714:                                             ; preds = %2713
  br label %2715

2715:                                             ; preds = %2714
  br label %2716

2716:                                             ; preds = %2715
  %2717 = load i32, ptr @test_count, align 4, !tbaa !5
  %2718 = add nsw i32 %2717, 1
  store i32 %2718, ptr @test_count, align 4, !tbaa !5
  %2719 = load ptr, ptr %82, align 8, !tbaa !9
  %2720 = load i32, ptr %80, align 4, !tbaa !5
  %2721 = call i32 @s2n_test_send_records(ptr noundef %2719, ptr noundef byval(%struct.s2n_stuffer) align 8 %87, i32 noundef %2720)
  %2722 = getelementptr inbounds %struct.s2n_result, ptr %102, i32 0, i32 0
  store i32 %2721, ptr %2722, align 4
  %2723 = getelementptr inbounds %struct.s2n_result, ptr %102, i32 0, i32 0
  %2724 = load i32, ptr %2723, align 4
  %2725 = call zeroext i1 @s2n_result_is_ok(i32 %2724)
  br i1 %2725, label %2779, label %2726

2726:                                             ; preds = %2716
  br label %2727

2727:                                             ; preds = %2726
  br label %2728

2728:                                             ; preds = %2727
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #10
  %2729 = call ptr @__errno_location() #11
  %2730 = load i32, ptr %2729, align 4, !tbaa !5
  store i32 %2730, ptr %103, align 4, !tbaa !5
  %2731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2732 = call i32 @s2n_print_stacktrace(ptr noundef %2731)
  %2733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2734 = trunc i8 %2733 to i1
  br i1 %2734, label %2735, label %2757

2735:                                             ; preds = %2728
  %2736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2737 = call i32 @fileno(ptr noundef %2736) #10
  %2738 = call i32 @isatty(i32 noundef %2737) #10
  %2739 = icmp ne i32 %2738, 0
  br i1 %2739, label %2740, label %2757

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

2757:                                             ; preds = %2735, %2728
  %2758 = load i32, ptr %103, align 4, !tbaa !5
  %2759 = call ptr @__errno_location() #11
  store i32 %2758, ptr %2759, align 4, !tbaa !5
  %2760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2761 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2763, ptr noundef @.str.4)
  %2765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2766 = load i32, ptr %2765, align 4, !tbaa !5
  %2767 = call ptr @s2n_strerror_debug(i32 noundef %2766, ptr noundef @.str.4)
  %2768 = call ptr @__errno_location() #11
  %2769 = load i32, ptr %2768, align 4, !tbaa !5
  %2770 = call ptr @strerror(i32 noundef %2769) #10
  %2771 = call ptr @__errno_location() #11
  %2772 = load i32, ptr %2771, align 4, !tbaa !5
  %2773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2760, ptr noundef @.str.5, i32 noundef %2761, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 316, ptr noundef %2764, ptr noundef %2767, ptr noundef %2770, i32 noundef %2772) #10
  br label %2774

2774:                                             ; preds = %2757, %2740
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #10
  br label %2775

2775:                                             ; preds = %2774
  br label %2776

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

2777:                                             ; No predecessors!
  br label %2778

2778:                                             ; preds = %2777
  br label %2779

2779:                                             ; preds = %2778, %2716
  br label %2780

2780:                                             ; preds = %2779
  br label %2781

2781:                                             ; preds = %2780
  br label %2782

2782:                                             ; preds = %2781
  %2783 = load i32, ptr @test_count, align 4, !tbaa !5
  %2784 = add nsw i32 %2783, 1
  store i32 %2784, ptr @test_count, align 4, !tbaa !5
  %2785 = load ptr, ptr %82, align 8, !tbaa !9
  %2786 = load ptr, ptr %81, align 8, !tbaa !9
  %2787 = call i32 @s2n_test_blocking_recv(ptr noundef %2785, ptr noundef %2786, ptr noundef %83)
  %2788 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  store i32 %2787, ptr %2788, align 4
  %2789 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  %2790 = load i32, ptr %2789, align 4
  %2791 = call zeroext i1 @s2n_result_is_ok(i32 %2790)
  br i1 %2791, label %2845, label %2792

2792:                                             ; preds = %2782
  br label %2793

2793:                                             ; preds = %2792
  br label %2794

2794:                                             ; preds = %2793
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #10
  %2795 = call ptr @__errno_location() #11
  %2796 = load i32, ptr %2795, align 4, !tbaa !5
  store i32 %2796, ptr %105, align 4, !tbaa !5
  %2797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2798 = call i32 @s2n_print_stacktrace(ptr noundef %2797)
  %2799 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2800 = trunc i8 %2799 to i1
  br i1 %2800, label %2801, label %2823

2801:                                             ; preds = %2794
  %2802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2803 = call i32 @fileno(ptr noundef %2802) #10
  %2804 = call i32 @isatty(i32 noundef %2803) #10
  %2805 = icmp ne i32 %2804, 0
  br i1 %2805, label %2806, label %2823

2806:                                             ; preds = %2801
  %2807 = load i32, ptr %105, align 4, !tbaa !5
  %2808 = call ptr @__errno_location() #11
  store i32 %2807, ptr %2808, align 4, !tbaa !5
  %2809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2810 = load i32, ptr @test_count, align 4, !tbaa !5
  %2811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2812 = load i32, ptr %2811, align 4, !tbaa !5
  %2813 = call ptr @s2n_strerror(i32 noundef %2812, ptr noundef @.str.4)
  %2814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2815 = load i32, ptr %2814, align 4, !tbaa !5
  %2816 = call ptr @s2n_strerror_debug(i32 noundef %2815, ptr noundef @.str.4)
  %2817 = call ptr @__errno_location() #11
  %2818 = load i32, ptr %2817, align 4, !tbaa !5
  %2819 = call ptr @strerror(i32 noundef %2818) #10
  %2820 = call ptr @__errno_location() #11
  %2821 = load i32, ptr %2820, align 4, !tbaa !5
  %2822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2809, ptr noundef @.str.2, i32 noundef %2810, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 317, ptr noundef %2813, ptr noundef %2816, ptr noundef %2819, i32 noundef %2821) #10
  br label %2840

2823:                                             ; preds = %2801, %2794
  %2824 = load i32, ptr %105, align 4, !tbaa !5
  %2825 = call ptr @__errno_location() #11
  store i32 %2824, ptr %2825, align 4, !tbaa !5
  %2826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2827 = load i32, ptr @test_count, align 4, !tbaa !5
  %2828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2829 = load i32, ptr %2828, align 4, !tbaa !5
  %2830 = call ptr @s2n_strerror(i32 noundef %2829, ptr noundef @.str.4)
  %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_debug(i32 noundef %2832, ptr noundef @.str.4)
  %2834 = call ptr @__errno_location() #11
  %2835 = load i32, ptr %2834, align 4, !tbaa !5
  %2836 = call ptr @strerror(i32 noundef %2835) #10
  %2837 = call ptr @__errno_location() #11
  %2838 = load i32, ptr %2837, align 4, !tbaa !5
  %2839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2826, ptr noundef @.str.5, i32 noundef %2827, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 317, ptr noundef %2830, ptr noundef %2833, ptr noundef %2836, i32 noundef %2838) #10
  br label %2840

2840:                                             ; preds = %2823, %2806
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #10
  br label %2841

2841:                                             ; preds = %2840
  br label %2842

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

2843:                                             ; No predecessors!
  br label %2844

2844:                                             ; preds = %2843
  br label %2845

2845:                                             ; preds = %2844, %2782
  br label %2846

2846:                                             ; preds = %2845
  br label %2847

2847:                                             ; preds = %2846
  br label %2848

2848:                                             ; preds = %2847
  %2849 = load i32, ptr @test_count, align 4, !tbaa !5
  %2850 = add nsw i32 %2849, 1
  store i32 %2850, ptr @test_count, align 4, !tbaa !5
  %2851 = load i64, ptr @tickets_count, align 8, !tbaa !16
  %2852 = load ptr, ptr %82, align 8, !tbaa !9
  %2853 = getelementptr inbounds %struct.s2n_connection, ptr %2852, i32 0, i32 87
  %2854 = load i16, ptr %2853, align 4, !tbaa !54
  %2855 = zext i16 %2854 to i64
  %2856 = icmp eq i64 %2851, %2855
  br i1 %2856, label %2910, label %2857

2857:                                             ; preds = %2848
  br label %2858

2858:                                             ; preds = %2857
  br label %2859

2859:                                             ; preds = %2858
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  %2860 = call ptr @__errno_location() #11
  %2861 = load i32, ptr %2860, align 4, !tbaa !5
  store i32 %2861, ptr %106, align 4, !tbaa !5
  %2862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2863 = call i32 @s2n_print_stacktrace(ptr noundef %2862)
  %2864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2865 = trunc i8 %2864 to i1
  br i1 %2865, label %2866, label %2888

2866:                                             ; preds = %2859
  %2867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2868 = call i32 @fileno(ptr noundef %2867) #10
  %2869 = call i32 @isatty(i32 noundef %2868) #10
  %2870 = icmp ne i32 %2869, 0
  br i1 %2870, label %2871, label %2888

2871:                                             ; preds = %2866
  %2872 = load i32, ptr %106, align 4, !tbaa !5
  %2873 = call ptr @__errno_location() #11
  store i32 %2872, ptr %2873, align 4, !tbaa !5
  %2874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2875 = load i32, ptr @test_count, align 4, !tbaa !5
  %2876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2877 = load i32, ptr %2876, align 4, !tbaa !5
  %2878 = call ptr @s2n_strerror(i32 noundef %2877, ptr noundef @.str.4)
  %2879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2880 = load i32, ptr %2879, align 4, !tbaa !5
  %2881 = call ptr @s2n_strerror_debug(i32 noundef %2880, ptr noundef @.str.4)
  %2882 = call ptr @__errno_location() #11
  %2883 = load i32, ptr %2882, align 4, !tbaa !5
  %2884 = call ptr @strerror(i32 noundef %2883) #10
  %2885 = call ptr @__errno_location() #11
  %2886 = load i32, ptr %2885, align 4, !tbaa !5
  %2887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2874, ptr noundef @.str.2, i32 noundef %2875, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 318, ptr noundef %2878, ptr noundef %2881, ptr noundef %2884, i32 noundef %2886) #10
  br label %2905

2888:                                             ; preds = %2866, %2859
  %2889 = load i32, ptr %106, align 4, !tbaa !5
  %2890 = call ptr @__errno_location() #11
  store i32 %2889, ptr %2890, align 4, !tbaa !5
  %2891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2892 = load i32, ptr @test_count, align 4, !tbaa !5
  %2893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2894 = load i32, ptr %2893, align 4, !tbaa !5
  %2895 = call ptr @s2n_strerror(i32 noundef %2894, ptr noundef @.str.4)
  %2896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2897 = load i32, ptr %2896, align 4, !tbaa !5
  %2898 = call ptr @s2n_strerror_debug(i32 noundef %2897, ptr noundef @.str.4)
  %2899 = call ptr @__errno_location() #11
  %2900 = load i32, ptr %2899, align 4, !tbaa !5
  %2901 = call ptr @strerror(i32 noundef %2900) #10
  %2902 = call ptr @__errno_location() #11
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2891, ptr noundef @.str.5, i32 noundef %2892, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 318, ptr noundef %2895, ptr noundef %2898, ptr noundef %2901, i32 noundef %2903) #10
  br label %2905

2905:                                             ; preds = %2888, %2871
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #10
  br label %2906

2906:                                             ; preds = %2905
  br label %2907

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

2908:                                             ; No predecessors!
  br label %2909

2909:                                             ; preds = %2908
  br label %2910

2910:                                             ; preds = %2909, %2848
  br label %2911

2911:                                             ; preds = %2910
  br label %2912

2912:                                             ; preds = %2911
  %2913 = call i32 @s2n_stuffer_free(ptr noundef %87)
  call void @llvm.lifetime.end.p0(i64 40, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  %2914 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %83)
  %2915 = getelementptr inbounds %struct.s2n_result, ptr %107, i32 0, i32 0
  store i32 %2914, ptr %2915, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %83) #10
  %2916 = call i32 @s2n_connection_ptr_free(ptr noundef %82)
  %2917 = getelementptr inbounds %struct.s2n_result, ptr %108, i32 0, i32 0
  store i32 %2916, ptr %2917, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #10
  %2918 = call i32 @s2n_connection_ptr_free(ptr noundef %81)
  %2919 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  store i32 %2918, ptr %2919, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  br label %2920

2920:                                             ; preds = %2912
  %2921 = load i64, ptr %79, align 8, !tbaa !16
  %2922 = add i64 %2921, 1
  store i64 %2922, ptr %79, align 8, !tbaa !16
  br label %2140, !llvm.loop !61

2923:                                             ; preds = %2143
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #10
  store i64 0, ptr %110, align 8, !tbaa !16
  br label %2924

2924:                                             ; preds = %3595, %2923
  %2925 = load i64, ptr %110, align 8, !tbaa !16
  %2926 = icmp ult i64 %2925, 7
  br i1 %2926, label %2928, label %2927

2927:                                             ; preds = %2924
  store i32 261, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #10
  br label %3598

2928:                                             ; preds = %2924
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #10
  %2929 = load i64, ptr %110, align 8, !tbaa !16
  %2930 = getelementptr inbounds [7 x i32], ptr %21, i64 0, i64 %2929
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  store i32 %2931, ptr %111, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #10
  %2932 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2932, ptr %112, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #10
  %2933 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2933, ptr %113, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr %114) #10
  call void @llvm.memset.p0.i64(ptr align 8 %114, i8 0, i64 80, i1 false)
  br label %2934

2934:                                             ; preds = %2928
  %2935 = load i32, ptr @test_count, align 4, !tbaa !5
  %2936 = add nsw i32 %2935, 1
  store i32 %2936, ptr @test_count, align 4, !tbaa !5
  %2937 = load ptr, ptr %11, align 8, !tbaa !9
  %2938 = load ptr, ptr %113, align 8, !tbaa !9
  %2939 = load ptr, ptr %112, align 8, !tbaa !9
  %2940 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %2937, ptr noundef %2938, ptr noundef %2939, ptr noundef %114)
  %2941 = getelementptr inbounds %struct.s2n_result, ptr %115, i32 0, i32 0
  store i32 %2940, ptr %2941, align 4
  %2942 = getelementptr inbounds %struct.s2n_result, ptr %115, i32 0, i32 0
  %2943 = load i32, ptr %2942, align 4
  %2944 = call zeroext i1 @s2n_result_is_ok(i32 %2943)
  br i1 %2944, label %2998, label %2945

2945:                                             ; preds = %2934
  br label %2946

2946:                                             ; preds = %2945
  br label %2947

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

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

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

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

2993:                                             ; preds = %2976, %2959
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #10
  br label %2994

2994:                                             ; preds = %2993
  br label %2995

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

2996:                                             ; No predecessors!
  br label %2997

2997:                                             ; preds = %2996
  br label %2998

2998:                                             ; preds = %2997, %2934
  br label %2999

2999:                                             ; preds = %2998
  br label %3000

3000:                                             ; preds = %2999
  call void @llvm.lifetime.start.p0(i64 40, ptr %117) #10
  call void @llvm.memset.p0.i64(ptr align 8 %117, i8 0, i64 40, i1 false)
  br label %3001

3001:                                             ; preds = %3000
  %3002 = load i32, ptr @test_count, align 4, !tbaa !5
  %3003 = add nsw i32 %3002, 1
  store i32 %3003, ptr @test_count, align 4, !tbaa !5
  %3004 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %117, i32 noundef 0)
  %3005 = icmp eq i32 %3004, -1
  br i1 %3005, label %3006, label %3059

3006:                                             ; preds = %3001
  br label %3007

3007:                                             ; preds = %3006
  br label %3008

3008:                                             ; preds = %3007
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #10
  %3009 = call ptr @__errno_location() #11
  %3010 = load i32, ptr %3009, align 4, !tbaa !5
  store i32 %3010, ptr %118, align 4, !tbaa !5
  %3011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3012 = call i32 @s2n_print_stacktrace(ptr noundef %3011)
  %3013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3014 = trunc i8 %3013 to i1
  br i1 %3014, label %3015, label %3037

3015:                                             ; preds = %3008
  %3016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3017 = call i32 @fileno(ptr noundef %3016) #10
  %3018 = call i32 @isatty(i32 noundef %3017) #10
  %3019 = icmp ne i32 %3018, 0
  br i1 %3019, label %3020, label %3037

3020:                                             ; preds = %3015
  %3021 = load i32, ptr %118, align 4, !tbaa !5
  %3022 = call ptr @__errno_location() #11
  store i32 %3021, ptr %3022, align 4, !tbaa !5
  %3023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3024 = load i32, ptr @test_count, align 4, !tbaa !5
  %3025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3026 = load i32, ptr %3025, align 4, !tbaa !5
  %3027 = call ptr @s2n_strerror(i32 noundef %3026, ptr noundef @.str.4)
  %3028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3029 = load i32, ptr %3028, align 4, !tbaa !5
  %3030 = call ptr @s2n_strerror_debug(i32 noundef %3029, ptr noundef @.str.4)
  %3031 = call ptr @__errno_location() #11
  %3032 = load i32, ptr %3031, align 4, !tbaa !5
  %3033 = call ptr @strerror(i32 noundef %3032) #10
  %3034 = call ptr @__errno_location() #11
  %3035 = load i32, ptr %3034, align 4, !tbaa !5
  %3036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3023, ptr noundef @.str.2, i32 noundef %3024, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 336, ptr noundef %3027, ptr noundef %3030, ptr noundef %3033, i32 noundef %3035) #10
  br label %3054

3037:                                             ; preds = %3015, %3008
  %3038 = load i32, ptr %118, align 4, !tbaa !5
  %3039 = call ptr @__errno_location() #11
  store i32 %3038, ptr %3039, align 4, !tbaa !5
  %3040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3041 = load i32, ptr @test_count, align 4, !tbaa !5
  %3042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3043 = load i32, ptr %3042, align 4, !tbaa !5
  %3044 = call ptr @s2n_strerror(i32 noundef %3043, ptr noundef @.str.4)
  %3045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3046 = load i32, ptr %3045, align 4, !tbaa !5
  %3047 = call ptr @s2n_strerror_debug(i32 noundef %3046, ptr noundef @.str.4)
  %3048 = call ptr @__errno_location() #11
  %3049 = load i32, ptr %3048, align 4, !tbaa !5
  %3050 = call ptr @strerror(i32 noundef %3049) #10
  %3051 = call ptr @__errno_location() #11
  %3052 = load i32, ptr %3051, align 4, !tbaa !5
  %3053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3040, ptr noundef @.str.5, i32 noundef %3041, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 336, ptr noundef %3044, ptr noundef %3047, ptr noundef %3050, i32 noundef %3052) #10
  br label %3054

3054:                                             ; preds = %3037, %3020
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #10
  br label %3055

3055:                                             ; preds = %3054
  br label %3056

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

3057:                                             ; No predecessors!
  br label %3058

3058:                                             ; preds = %3057
  br label %3059

3059:                                             ; preds = %3058, %3001
  br label %3060

3060:                                             ; preds = %3059
  br label %3061

3061:                                             ; preds = %3060
  %3062 = load ptr, ptr %113, align 8, !tbaa !9
  %3063 = getelementptr inbounds %struct.s2n_connection, ptr %3062, i32 0, i32 87
  store i16 1, ptr %3063, align 4, !tbaa !54
  br label %3064

3064:                                             ; preds = %3061
  %3065 = load i32, ptr @test_count, align 4, !tbaa !5
  %3066 = add nsw i32 %3065, 1
  store i32 %3066, ptr @test_count, align 4, !tbaa !5
  %3067 = load ptr, ptr %113, align 8, !tbaa !9
  %3068 = call i32 @s2n_tls13_server_nst_write(ptr noundef %3067, ptr noundef %117)
  %3069 = getelementptr inbounds %struct.s2n_result, ptr %119, i32 0, i32 0
  store i32 %3068, ptr %3069, align 4
  %3070 = getelementptr inbounds %struct.s2n_result, ptr %119, i32 0, i32 0
  %3071 = load i32, ptr %3070, align 4
  %3072 = call zeroext i1 @s2n_result_is_ok(i32 %3071)
  br i1 %3072, label %3126, label %3073

3073:                                             ; preds = %3064
  br label %3074

3074:                                             ; preds = %3073
  br label %3075

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

3082:                                             ; preds = %3075
  %3083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3084 = call i32 @fileno(ptr noundef %3083) #10
  %3085 = call i32 @isatty(i32 noundef %3084) #10
  %3086 = icmp ne i32 %3085, 0
  br i1 %3086, label %3087, label %3104

3087:                                             ; preds = %3082
  %3088 = load i32, ptr %120, align 4, !tbaa !5
  %3089 = call ptr @__errno_location() #11
  store i32 %3088, ptr %3089, align 4, !tbaa !5
  %3090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3091 = load i32, ptr @test_count, align 4, !tbaa !5
  %3092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3093 = load i32, ptr %3092, align 4, !tbaa !5
  %3094 = call ptr @s2n_strerror(i32 noundef %3093, ptr noundef @.str.4)
  %3095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3096 = load i32, ptr %3095, align 4, !tbaa !5
  %3097 = call ptr @s2n_strerror_debug(i32 noundef %3096, ptr noundef @.str.4)
  %3098 = call ptr @__errno_location() #11
  %3099 = load i32, ptr %3098, align 4, !tbaa !5
  %3100 = call ptr @strerror(i32 noundef %3099) #10
  %3101 = call ptr @__errno_location() #11
  %3102 = load i32, ptr %3101, align 4, !tbaa !5
  %3103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3090, ptr noundef @.str.2, i32 noundef %3091, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 338, ptr noundef %3094, ptr noundef %3097, ptr noundef %3100, i32 noundef %3102) #10
  br label %3121

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

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

3122:                                             ; preds = %3121
  br label %3123

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

3124:                                             ; No predecessors!
  br label %3125

3125:                                             ; preds = %3124
  br label %3126

3126:                                             ; preds = %3125, %3064
  br label %3127

3127:                                             ; preds = %3126
  br label %3128

3128:                                             ; preds = %3127
  br label %3129

3129:                                             ; preds = %3128
  %3130 = load i32, ptr @test_count, align 4, !tbaa !5
  %3131 = add nsw i32 %3130, 1
  store i32 %3131, ptr @test_count, align 4, !tbaa !5
  %3132 = load ptr, ptr %113, align 8, !tbaa !9
  %3133 = load i32, ptr %111, align 4, !tbaa !5
  %3134 = call i32 @s2n_test_send_records(ptr noundef %3132, ptr noundef byval(%struct.s2n_stuffer) align 8 %117, i32 noundef %3133)
  %3135 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  store i32 %3134, ptr %3135, align 4
  %3136 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  %3137 = load i32, ptr %3136, align 4
  %3138 = call zeroext i1 @s2n_result_is_ok(i32 %3137)
  br i1 %3138, label %3192, label %3139

3139:                                             ; preds = %3129
  br label %3140

3140:                                             ; preds = %3139
  br label %3141

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

3148:                                             ; preds = %3141
  %3149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3150 = call i32 @fileno(ptr noundef %3149) #10
  %3151 = call i32 @isatty(i32 noundef %3150) #10
  %3152 = icmp ne i32 %3151, 0
  br i1 %3152, label %3153, label %3170

3153:                                             ; preds = %3148
  %3154 = load i32, ptr %122, align 4, !tbaa !5
  %3155 = call ptr @__errno_location() #11
  store i32 %3154, ptr %3155, align 4, !tbaa !5
  %3156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3157 = load i32, ptr @test_count, align 4, !tbaa !5
  %3158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3159 = load i32, ptr %3158, align 4, !tbaa !5
  %3160 = call ptr @s2n_strerror(i32 noundef %3159, ptr noundef @.str.4)
  %3161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3162 = load i32, ptr %3161, align 4, !tbaa !5
  %3163 = call ptr @s2n_strerror_debug(i32 noundef %3162, ptr noundef @.str.4)
  %3164 = call ptr @__errno_location() #11
  %3165 = load i32, ptr %3164, align 4, !tbaa !5
  %3166 = call ptr @strerror(i32 noundef %3165) #10
  %3167 = call ptr @__errno_location() #11
  %3168 = load i32, ptr %3167, align 4, !tbaa !5
  %3169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3156, ptr noundef @.str.2, i32 noundef %3157, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 339, ptr noundef %3160, ptr noundef %3163, ptr noundef %3166, i32 noundef %3168) #10
  br label %3187

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

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

3188:                                             ; preds = %3187
  br label %3189

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

3190:                                             ; No predecessors!
  br label %3191

3191:                                             ; preds = %3190
  br label %3192

3192:                                             ; preds = %3191, %3129
  br label %3193

3193:                                             ; preds = %3192
  br label %3194

3194:                                             ; preds = %3193
  call void @llvm.lifetime.start.p0(i64 1, ptr %123) #10
  call void @llvm.memset.p0.i64(ptr align 1 %123, i8 0, i64 1, i1 false)
  br label %3195

3195:                                             ; preds = %3194
  %3196 = load i32, ptr @test_count, align 4, !tbaa !5
  %3197 = add nsw i32 %3196, 1
  store i32 %3197, ptr @test_count, align 4, !tbaa !5
  %3198 = call i32 @s2n_mem_test_init_callbacks(ptr noundef %123)
  %3199 = getelementptr inbounds %struct.s2n_result, ptr %124, i32 0, i32 0
  store i32 %3198, ptr %3199, align 4
  %3200 = getelementptr inbounds %struct.s2n_result, ptr %124, i32 0, i32 0
  %3201 = load i32, ptr %3200, align 4
  %3202 = call zeroext i1 @s2n_result_is_ok(i32 %3201)
  br i1 %3202, label %3256, label %3203

3203:                                             ; preds = %3195
  br label %3204

3204:                                             ; preds = %3203
  br label %3205

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

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

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

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

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

3252:                                             ; preds = %3251
  br label %3253

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

3254:                                             ; No predecessors!
  br label %3255

3255:                                             ; preds = %3254
  br label %3256

3256:                                             ; preds = %3255, %3195
  br label %3257

3257:                                             ; preds = %3256
  br label %3258

3258:                                             ; preds = %3257
  br label %3259

3259:                                             ; preds = %3258
  br label %3260

3260:                                             ; preds = %3259
  br label %3261

3261:                                             ; preds = %3260
  %3262 = load i32, ptr @test_count, align 4, !tbaa !5
  %3263 = add nsw i32 %3262, 1
  store i32 %3263, ptr @test_count, align 4, !tbaa !5
  %3264 = load ptr, ptr %113, align 8, !tbaa !9
  %3265 = load ptr, ptr %112, align 8, !tbaa !9
  %3266 = call i32 @s2n_test_basic_recv(ptr noundef %3264, ptr noundef %3265)
  %3267 = getelementptr inbounds %struct.s2n_result, ptr %126, i32 0, i32 0
  store i32 %3266, ptr %3267, align 4
  %3268 = getelementptr inbounds %struct.s2n_result, ptr %126, i32 0, i32 0
  %3269 = load i32, ptr %3268, align 4
  %3270 = call zeroext i1 @s2n_result_is_error(i32 %3269)
  br i1 %3270, label %3324, label %3271

3271:                                             ; preds = %3261
  br label %3272

3272:                                             ; preds = %3271
  br label %3273

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

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

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

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

3319:                                             ; preds = %3302, %3285
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #10
  br label %3320

3320:                                             ; preds = %3319
  br label %3321

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

3322:                                             ; No predecessors!
  br label %3323

3323:                                             ; preds = %3322
  br label %3324

3324:                                             ; preds = %3323, %3261
  br label %3325

3325:                                             ; preds = %3324
  br label %3326

3326:                                             ; preds = %3325
  br label %3327

3327:                                             ; preds = %3326
  %3328 = load i32, ptr @test_count, align 4, !tbaa !5
  %3329 = add nsw i32 %3328, 1
  store i32 %3329, ptr @test_count, align 4, !tbaa !5
  %3330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3331 = load i32, ptr %3330, align 4, !tbaa !5
  %3332 = icmp eq i32 %3331, 335544322
  br i1 %3332, label %3386, label %3333

3333:                                             ; preds = %3327
  br label %3334

3334:                                             ; preds = %3333
  br label %3335

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

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

3347:                                             ; preds = %3342
  %3348 = load i32, ptr %128, align 4, !tbaa !5
  %3349 = call ptr @__errno_location() #11
  store i32 %3348, ptr %3349, align 4, !tbaa !5
  %3350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3351 = load i32, ptr @test_count, align 4, !tbaa !5
  %3352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3353 = load i32, ptr %3352, align 4, !tbaa !5
  %3354 = call ptr @s2n_strerror(i32 noundef %3353, ptr noundef @.str.4)
  %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_debug(i32 noundef %3356, ptr noundef @.str.4)
  %3358 = call ptr @__errno_location() #11
  %3359 = load i32, ptr %3358, align 4, !tbaa !5
  %3360 = call ptr @strerror(i32 noundef %3359) #10
  %3361 = call ptr @__errno_location() #11
  %3362 = load i32, ptr %3361, align 4, !tbaa !5
  %3363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3350, ptr noundef @.str.2, i32 noundef %3351, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 343, ptr noundef %3354, ptr noundef %3357, ptr noundef %3360, i32 noundef %3362) #10
  br label %3381

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

3381:                                             ; preds = %3364, %3347
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #10
  br label %3382

3382:                                             ; preds = %3381
  br label %3383

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

3384:                                             ; No predecessors!
  br label %3385

3385:                                             ; preds = %3384
  br label %3386

3386:                                             ; preds = %3385, %3327
  br label %3387

3387:                                             ; preds = %3386
  br label %3388

3388:                                             ; preds = %3387
  br label %3389

3389:                                             ; preds = %3388
  %3390 = load i32, ptr @test_count, align 4, !tbaa !5
  %3391 = add nsw i32 %3390, 1
  store i32 %3391, ptr @test_count, align 4, !tbaa !5
  %3392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3393 = load i32, ptr %3392, align 4, !tbaa !5
  %3394 = call ptr @s2n_strerror_debug(i32 noundef %3393, ptr noundef @.str.4)
  %3395 = icmp eq ptr %3394, null
  br i1 %3395, label %3396, label %3449

3396:                                             ; preds = %3389
  br label %3397

3397:                                             ; preds = %3396
  br label %3398

3398:                                             ; preds = %3397
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #10
  %3399 = call ptr @__errno_location() #11
  %3400 = load i32, ptr %3399, align 4, !tbaa !5
  store i32 %3400, ptr %129, align 4, !tbaa !5
  %3401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3402 = call i32 @s2n_print_stacktrace(ptr noundef %3401)
  %3403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3404 = trunc i8 %3403 to i1
  br i1 %3404, label %3405, label %3427

3405:                                             ; preds = %3398
  %3406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3407 = call i32 @fileno(ptr noundef %3406) #10
  %3408 = call i32 @isatty(i32 noundef %3407) #10
  %3409 = icmp ne i32 %3408, 0
  br i1 %3409, label %3410, label %3427

3410:                                             ; preds = %3405
  %3411 = load i32, ptr %129, align 4, !tbaa !5
  %3412 = call ptr @__errno_location() #11
  store i32 %3411, ptr %3412, align 4, !tbaa !5
  %3413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3414 = load i32, ptr @test_count, align 4, !tbaa !5
  %3415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3416 = load i32, ptr %3415, align 4, !tbaa !5
  %3417 = call ptr @s2n_strerror(i32 noundef %3416, ptr noundef @.str.4)
  %3418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3419 = load i32, ptr %3418, align 4, !tbaa !5
  %3420 = call ptr @s2n_strerror_debug(i32 noundef %3419, ptr noundef @.str.4)
  %3421 = call ptr @__errno_location() #11
  %3422 = load i32, ptr %3421, align 4, !tbaa !5
  %3423 = call ptr @strerror(i32 noundef %3422) #10
  %3424 = call ptr @__errno_location() #11
  %3425 = load i32, ptr %3424, align 4, !tbaa !5
  %3426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3413, ptr noundef @.str.2, i32 noundef %3414, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 343, ptr noundef %3417, ptr noundef %3420, ptr noundef %3423, i32 noundef %3425) #10
  br label %3444

3427:                                             ; preds = %3405, %3398
  %3428 = load i32, ptr %129, align 4, !tbaa !5
  %3429 = call ptr @__errno_location() #11
  store i32 %3428, ptr %3429, align 4, !tbaa !5
  %3430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3431 = load i32, ptr @test_count, align 4, !tbaa !5
  %3432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3433 = load i32, ptr %3432, align 4, !tbaa !5
  %3434 = call ptr @s2n_strerror(i32 noundef %3433, ptr noundef @.str.4)
  %3435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3436 = load i32, ptr %3435, align 4, !tbaa !5
  %3437 = call ptr @s2n_strerror_debug(i32 noundef %3436, ptr noundef @.str.4)
  %3438 = call ptr @__errno_location() #11
  %3439 = load i32, ptr %3438, align 4, !tbaa !5
  %3440 = call ptr @strerror(i32 noundef %3439) #10
  %3441 = call ptr @__errno_location() #11
  %3442 = load i32, ptr %3441, align 4, !tbaa !5
  %3443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3430, ptr noundef @.str.5, i32 noundef %3431, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 343, ptr noundef %3434, ptr noundef %3437, ptr noundef %3440, i32 noundef %3442) #10
  br label %3444

3444:                                             ; preds = %3427, %3410
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #10
  br label %3445

3445:                                             ; preds = %3444
  br label %3446

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

3447:                                             ; No predecessors!
  br label %3448

3448:                                             ; preds = %3447
  br label %3449

3449:                                             ; preds = %3448, %3389
  br label %3450

3450:                                             ; preds = %3449
  br label %3451

3451:                                             ; preds = %3450
  br label %3452

3452:                                             ; preds = %3451
  br label %3453

3453:                                             ; preds = %3452
  br label %3454

3454:                                             ; preds = %3453
  %3455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3455, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3456 = call ptr @__errno_location() #11
  store i32 0, ptr %3456, align 4, !tbaa !5
  br label %3457

3457:                                             ; preds = %3454
  br label %3458

3458:                                             ; preds = %3457
  br label %3459

3459:                                             ; preds = %3458
  br label %3460

3460:                                             ; preds = %3459
  br label %3461

3461:                                             ; preds = %3460
  %3462 = load i32, ptr @test_count, align 4, !tbaa !5
  %3463 = add nsw i32 %3462, 1
  store i32 %3463, ptr @test_count, align 4, !tbaa !5
  %3464 = load i64, ptr @tickets_count, align 8, !tbaa !16
  %3465 = icmp eq i64 %3464, 0
  br i1 %3465, label %3519, label %3466

3466:                                             ; preds = %3461
  br label %3467

3467:                                             ; preds = %3466
  br label %3468

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

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

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

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

3514:                                             ; preds = %3497, %3480
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #10
  br label %3515

3515:                                             ; preds = %3514
  br label %3516

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

3517:                                             ; No predecessors!
  br label %3518

3518:                                             ; preds = %3517
  br label %3519

3519:                                             ; preds = %3518, %3461
  br label %3520

3520:                                             ; preds = %3519
  br label %3521

3521:                                             ; preds = %3520
  br label %3522

3522:                                             ; preds = %3521
  %3523 = load i32, ptr @test_count, align 4, !tbaa !5
  %3524 = add nsw i32 %3523, 1
  store i32 %3524, ptr @test_count, align 4, !tbaa !5
  %3525 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0)
  %3526 = getelementptr inbounds %struct.s2n_result, ptr %131, i32 0, i32 0
  store i32 %3525, ptr %3526, align 4
  %3527 = getelementptr inbounds %struct.s2n_result, ptr %131, i32 0, i32 0
  %3528 = load i32, ptr %3527, align 4
  %3529 = call zeroext i1 @s2n_result_is_ok(i32 %3528)
  br i1 %3529, label %3583, label %3530

3530:                                             ; preds = %3522
  br label %3531

3531:                                             ; preds = %3530
  br label %3532

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

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

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

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

3578:                                             ; preds = %3561, %3544
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #10
  br label %3579

3579:                                             ; preds = %3578
  br label %3580

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

3581:                                             ; No predecessors!
  br label %3582

3582:                                             ; preds = %3581
  br label %3583

3583:                                             ; preds = %3582, %3522
  br label %3584

3584:                                             ; preds = %3583
  br label %3585

3585:                                             ; preds = %3584
  %3586 = call i32 @s2n_mem_test_free_callbacks(ptr noundef %123)
  %3587 = getelementptr inbounds %struct.s2n_result, ptr %133, i32 0, i32 0
  store i32 %3586, ptr %3587, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %123) #10
  %3588 = call i32 @s2n_stuffer_free(ptr noundef %117)
  call void @llvm.lifetime.end.p0(i64 40, ptr %117) #10
  %3589 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %114)
  %3590 = getelementptr inbounds %struct.s2n_result, ptr %134, i32 0, i32 0
  store i32 %3589, ptr %3590, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %114) #10
  %3591 = call i32 @s2n_connection_ptr_free(ptr noundef %113)
  %3592 = getelementptr inbounds %struct.s2n_result, ptr %135, i32 0, i32 0
  store i32 %3591, ptr %3592, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #10
  %3593 = call i32 @s2n_connection_ptr_free(ptr noundef %112)
  %3594 = getelementptr inbounds %struct.s2n_result, ptr %136, i32 0, i32 0
  store i32 %3593, ptr %3594, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  br label %3595

3595:                                             ; preds = %3585
  %3596 = load i64, ptr %110, align 8, !tbaa !16
  %3597 = add i64 %3596, 1
  store i64 %3597, ptr %110, align 8, !tbaa !16
  br label %2924, !llvm.loop !62

3598:                                             ; preds = %2927
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #10
  store i32 2, ptr %137, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #10
  %3599 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3599, ptr %138, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #10
  %3600 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3600, ptr %139, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr %140) #10
  call void @llvm.memset.p0.i64(ptr align 8 %140, i8 0, i64 80, i1 false)
  br label %3601

3601:                                             ; preds = %3598
  %3602 = load i32, ptr @test_count, align 4, !tbaa !5
  %3603 = add nsw i32 %3602, 1
  store i32 %3603, ptr @test_count, align 4, !tbaa !5
  %3604 = load ptr, ptr %11, align 8, !tbaa !9
  %3605 = load ptr, ptr %139, align 8, !tbaa !9
  %3606 = load ptr, ptr %138, align 8, !tbaa !9
  %3607 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %3604, ptr noundef %3605, ptr noundef %3606, ptr noundef %140)
  %3608 = getelementptr inbounds %struct.s2n_result, ptr %141, i32 0, i32 0
  store i32 %3607, ptr %3608, align 4
  %3609 = getelementptr inbounds %struct.s2n_result, ptr %141, i32 0, i32 0
  %3610 = load i32, ptr %3609, align 4
  %3611 = call zeroext i1 @s2n_result_is_ok(i32 %3610)
  br i1 %3611, label %3665, label %3612

3612:                                             ; preds = %3601
  br label %3613

3613:                                             ; preds = %3612
  br label %3614

3614:                                             ; preds = %3613
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #10
  %3615 = call ptr @__errno_location() #11
  %3616 = load i32, ptr %3615, align 4, !tbaa !5
  store i32 %3616, ptr %142, align 4, !tbaa !5
  %3617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3618 = call i32 @s2n_print_stacktrace(ptr noundef %3617)
  %3619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3620 = trunc i8 %3619 to i1
  br i1 %3620, label %3621, label %3643

3621:                                             ; preds = %3614
  %3622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3623 = call i32 @fileno(ptr noundef %3622) #10
  %3624 = call i32 @isatty(i32 noundef %3623) #10
  %3625 = icmp ne i32 %3624, 0
  br i1 %3625, label %3626, label %3643

3626:                                             ; preds = %3621
  %3627 = load i32, ptr %142, align 4, !tbaa !5
  %3628 = call ptr @__errno_location() #11
  store i32 %3627, ptr %3628, align 4, !tbaa !5
  %3629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3630 = load i32, ptr @test_count, align 4, !tbaa !5
  %3631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3632 = load i32, ptr %3631, align 4, !tbaa !5
  %3633 = call ptr @s2n_strerror(i32 noundef %3632, ptr noundef @.str.4)
  %3634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3635 = load i32, ptr %3634, align 4, !tbaa !5
  %3636 = call ptr @s2n_strerror_debug(i32 noundef %3635, ptr noundef @.str.4)
  %3637 = call ptr @__errno_location() #11
  %3638 = load i32, ptr %3637, align 4, !tbaa !5
  %3639 = call ptr @strerror(i32 noundef %3638) #10
  %3640 = call ptr @__errno_location() #11
  %3641 = load i32, ptr %3640, align 4, !tbaa !5
  %3642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3629, ptr noundef @.str.2, i32 noundef %3630, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 363, ptr noundef %3633, ptr noundef %3636, ptr noundef %3639, i32 noundef %3641) #10
  br label %3660

3643:                                             ; preds = %3621, %3614
  %3644 = load i32, ptr %142, align 4, !tbaa !5
  %3645 = call ptr @__errno_location() #11
  store i32 %3644, ptr %3645, align 4, !tbaa !5
  %3646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3647 = load i32, ptr @test_count, align 4, !tbaa !5
  %3648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3649 = load i32, ptr %3648, align 4, !tbaa !5
  %3650 = call ptr @s2n_strerror(i32 noundef %3649, ptr noundef @.str.4)
  %3651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3652 = load i32, ptr %3651, align 4, !tbaa !5
  %3653 = call ptr @s2n_strerror_debug(i32 noundef %3652, ptr noundef @.str.4)
  %3654 = call ptr @__errno_location() #11
  %3655 = load i32, ptr %3654, align 4, !tbaa !5
  %3656 = call ptr @strerror(i32 noundef %3655) #10
  %3657 = call ptr @__errno_location() #11
  %3658 = load i32, ptr %3657, align 4, !tbaa !5
  %3659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3646, ptr noundef @.str.5, i32 noundef %3647, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 363, ptr noundef %3650, ptr noundef %3653, ptr noundef %3656, i32 noundef %3658) #10
  br label %3660

3660:                                             ; preds = %3643, %3626
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #10
  br label %3661

3661:                                             ; preds = %3660
  br label %3662

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

3663:                                             ; No predecessors!
  br label %3664

3664:                                             ; preds = %3663
  br label %3665

3665:                                             ; preds = %3664, %3601
  br label %3666

3666:                                             ; preds = %3665
  br label %3667

3667:                                             ; preds = %3666
  call void @llvm.lifetime.start.p0(i64 40, ptr %143) #10
  call void @llvm.memset.p0.i64(ptr align 8 %143, i8 0, i64 40, i1 false)
  br label %3668

3668:                                             ; preds = %3667
  %3669 = load i32, ptr @test_count, align 4, !tbaa !5
  %3670 = add nsw i32 %3669, 1
  store i32 %3670, ptr @test_count, align 4, !tbaa !5
  %3671 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %143, i32 noundef 0)
  %3672 = icmp eq i32 %3671, -1
  br i1 %3672, label %3673, label %3726

3673:                                             ; preds = %3668
  br label %3674

3674:                                             ; preds = %3673
  br label %3675

3675:                                             ; preds = %3674
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #10
  %3676 = call ptr @__errno_location() #11
  %3677 = load i32, ptr %3676, align 4, !tbaa !5
  store i32 %3677, ptr %144, align 4, !tbaa !5
  %3678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3679 = call i32 @s2n_print_stacktrace(ptr noundef %3678)
  %3680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3681 = trunc i8 %3680 to i1
  br i1 %3681, label %3682, label %3704

3682:                                             ; preds = %3675
  %3683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3684 = call i32 @fileno(ptr noundef %3683) #10
  %3685 = call i32 @isatty(i32 noundef %3684) #10
  %3686 = icmp ne i32 %3685, 0
  br i1 %3686, label %3687, label %3704

3687:                                             ; preds = %3682
  %3688 = load i32, ptr %144, align 4, !tbaa !5
  %3689 = call ptr @__errno_location() #11
  store i32 %3688, ptr %3689, align 4, !tbaa !5
  %3690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3691 = load i32, ptr @test_count, align 4, !tbaa !5
  %3692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3693 = load i32, ptr %3692, align 4, !tbaa !5
  %3694 = call ptr @s2n_strerror(i32 noundef %3693, ptr noundef @.str.4)
  %3695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3696 = load i32, ptr %3695, align 4, !tbaa !5
  %3697 = call ptr @s2n_strerror_debug(i32 noundef %3696, ptr noundef @.str.4)
  %3698 = call ptr @__errno_location() #11
  %3699 = load i32, ptr %3698, align 4, !tbaa !5
  %3700 = call ptr @strerror(i32 noundef %3699) #10
  %3701 = call ptr @__errno_location() #11
  %3702 = load i32, ptr %3701, align 4, !tbaa !5
  %3703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3690, ptr noundef @.str.2, i32 noundef %3691, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 367, ptr noundef %3694, ptr noundef %3697, ptr noundef %3700, i32 noundef %3702) #10
  br label %3721

3704:                                             ; preds = %3682, %3675
  %3705 = load i32, ptr %144, align 4, !tbaa !5
  %3706 = call ptr @__errno_location() #11
  store i32 %3705, ptr %3706, align 4, !tbaa !5
  %3707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3708 = load i32, ptr @test_count, align 4, !tbaa !5
  %3709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3710 = load i32, ptr %3709, align 4, !tbaa !5
  %3711 = call ptr @s2n_strerror(i32 noundef %3710, ptr noundef @.str.4)
  %3712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  %3714 = call ptr @s2n_strerror_debug(i32 noundef %3713, ptr noundef @.str.4)
  %3715 = call ptr @__errno_location() #11
  %3716 = load i32, ptr %3715, align 4, !tbaa !5
  %3717 = call ptr @strerror(i32 noundef %3716) #10
  %3718 = call ptr @__errno_location() #11
  %3719 = load i32, ptr %3718, align 4, !tbaa !5
  %3720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3707, ptr noundef @.str.5, i32 noundef %3708, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 367, ptr noundef %3711, ptr noundef %3714, ptr noundef %3717, i32 noundef %3719) #10
  br label %3721

3721:                                             ; preds = %3704, %3687
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #10
  br label %3722

3722:                                             ; preds = %3721
  br label %3723

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

3724:                                             ; No predecessors!
  br label %3725

3725:                                             ; preds = %3724
  br label %3726

3726:                                             ; preds = %3725, %3668
  br label %3727

3727:                                             ; preds = %3726
  br label %3728

3728:                                             ; preds = %3727
  br label %3729

3729:                                             ; preds = %3728
  %3730 = load i32, ptr @test_count, align 4, !tbaa !5
  %3731 = add nsw i32 %3730, 1
  store i32 %3731, ptr @test_count, align 4, !tbaa !5
  %3732 = call i32 @s2n_stuffer_write_uint8(ptr noundef %143, i8 noundef zeroext 24)
  %3733 = icmp eq i32 %3732, -1
  br i1 %3733, label %3734, label %3787

3734:                                             ; preds = %3729
  br label %3735

3735:                                             ; preds = %3734
  br label %3736

3736:                                             ; preds = %3735
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #10
  %3737 = call ptr @__errno_location() #11
  %3738 = load i32, ptr %3737, align 4, !tbaa !5
  store i32 %3738, ptr %145, align 4, !tbaa !5
  %3739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3740 = call i32 @s2n_print_stacktrace(ptr noundef %3739)
  %3741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3742 = trunc i8 %3741 to i1
  br i1 %3742, label %3743, label %3765

3743:                                             ; preds = %3736
  %3744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3745 = call i32 @fileno(ptr noundef %3744) #10
  %3746 = call i32 @isatty(i32 noundef %3745) #10
  %3747 = icmp ne i32 %3746, 0
  br i1 %3747, label %3748, label %3765

3748:                                             ; preds = %3743
  %3749 = load i32, ptr %145, align 4, !tbaa !5
  %3750 = call ptr @__errno_location() #11
  store i32 %3749, ptr %3750, align 4, !tbaa !5
  %3751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3752 = load i32, ptr @test_count, align 4, !tbaa !5
  %3753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3754 = load i32, ptr %3753, align 4, !tbaa !5
  %3755 = call ptr @s2n_strerror(i32 noundef %3754, ptr noundef @.str.4)
  %3756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3757 = load i32, ptr %3756, align 4, !tbaa !5
  %3758 = call ptr @s2n_strerror_debug(i32 noundef %3757, ptr noundef @.str.4)
  %3759 = call ptr @__errno_location() #11
  %3760 = load i32, ptr %3759, align 4, !tbaa !5
  %3761 = call ptr @strerror(i32 noundef %3760) #10
  %3762 = call ptr @__errno_location() #11
  %3763 = load i32, ptr %3762, align 4, !tbaa !5
  %3764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3751, ptr noundef @.str.2, i32 noundef %3752, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 368, ptr noundef %3755, ptr noundef %3758, ptr noundef %3761, i32 noundef %3763) #10
  br label %3782

3765:                                             ; preds = %3743, %3736
  %3766 = load i32, ptr %145, align 4, !tbaa !5
  %3767 = call ptr @__errno_location() #11
  store i32 %3766, ptr %3767, align 4, !tbaa !5
  %3768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3769 = load i32, ptr @test_count, align 4, !tbaa !5
  %3770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3771 = load i32, ptr %3770, align 4, !tbaa !5
  %3772 = call ptr @s2n_strerror(i32 noundef %3771, ptr noundef @.str.4)
  %3773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3774 = load i32, ptr %3773, align 4, !tbaa !5
  %3775 = call ptr @s2n_strerror_debug(i32 noundef %3774, ptr noundef @.str.4)
  %3776 = call ptr @__errno_location() #11
  %3777 = load i32, ptr %3776, align 4, !tbaa !5
  %3778 = call ptr @strerror(i32 noundef %3777) #10
  %3779 = call ptr @__errno_location() #11
  %3780 = load i32, ptr %3779, align 4, !tbaa !5
  %3781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3768, ptr noundef @.str.5, i32 noundef %3769, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 368, ptr noundef %3772, ptr noundef %3775, ptr noundef %3778, i32 noundef %3780) #10
  br label %3782

3782:                                             ; preds = %3765, %3748
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #10
  br label %3783

3783:                                             ; preds = %3782
  br label %3784

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

3785:                                             ; No predecessors!
  br label %3786

3786:                                             ; preds = %3785
  br label %3787

3787:                                             ; preds = %3786, %3729
  br label %3788

3788:                                             ; preds = %3787
  br label %3789

3789:                                             ; preds = %3788
  br label %3790

3790:                                             ; preds = %3789
  %3791 = load i32, ptr @test_count, align 4, !tbaa !5
  %3792 = add nsw i32 %3791, 1
  store i32 %3792, ptr @test_count, align 4, !tbaa !5
  %3793 = call i32 @s2n_stuffer_write_uint24(ptr noundef %143, i32 noundef 3001)
  %3794 = icmp eq i32 %3793, -1
  br i1 %3794, label %3795, label %3848

3795:                                             ; preds = %3790
  br label %3796

3796:                                             ; preds = %3795
  br label %3797

3797:                                             ; preds = %3796
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #10
  %3798 = call ptr @__errno_location() #11
  %3799 = load i32, ptr %3798, align 4, !tbaa !5
  store i32 %3799, ptr %146, align 4, !tbaa !5
  %3800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3801 = call i32 @s2n_print_stacktrace(ptr noundef %3800)
  %3802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3803 = trunc i8 %3802 to i1
  br i1 %3803, label %3804, label %3826

3804:                                             ; preds = %3797
  %3805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3806 = call i32 @fileno(ptr noundef %3805) #10
  %3807 = call i32 @isatty(i32 noundef %3806) #10
  %3808 = icmp ne i32 %3807, 0
  br i1 %3808, label %3809, label %3826

3809:                                             ; preds = %3804
  %3810 = load i32, ptr %146, align 4, !tbaa !5
  %3811 = call ptr @__errno_location() #11
  store i32 %3810, ptr %3811, align 4, !tbaa !5
  %3812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3813 = load i32, ptr @test_count, align 4, !tbaa !5
  %3814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3815 = load i32, ptr %3814, align 4, !tbaa !5
  %3816 = call ptr @s2n_strerror(i32 noundef %3815, ptr noundef @.str.4)
  %3817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3818 = load i32, ptr %3817, align 4, !tbaa !5
  %3819 = call ptr @s2n_strerror_debug(i32 noundef %3818, ptr noundef @.str.4)
  %3820 = call ptr @__errno_location() #11
  %3821 = load i32, ptr %3820, align 4, !tbaa !5
  %3822 = call ptr @strerror(i32 noundef %3821) #10
  %3823 = call ptr @__errno_location() #11
  %3824 = load i32, ptr %3823, align 4, !tbaa !5
  %3825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3812, ptr noundef @.str.2, i32 noundef %3813, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 369, ptr noundef %3816, ptr noundef %3819, ptr noundef %3822, i32 noundef %3824) #10
  br label %3843

3826:                                             ; preds = %3804, %3797
  %3827 = load i32, ptr %146, align 4, !tbaa !5
  %3828 = call ptr @__errno_location() #11
  store i32 %3827, ptr %3828, align 4, !tbaa !5
  %3829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3830 = load i32, ptr @test_count, align 4, !tbaa !5
  %3831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3832 = load i32, ptr %3831, align 4, !tbaa !5
  %3833 = call ptr @s2n_strerror(i32 noundef %3832, ptr noundef @.str.4)
  %3834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3835 = load i32, ptr %3834, align 4, !tbaa !5
  %3836 = call ptr @s2n_strerror_debug(i32 noundef %3835, ptr noundef @.str.4)
  %3837 = call ptr @__errno_location() #11
  %3838 = load i32, ptr %3837, align 4, !tbaa !5
  %3839 = call ptr @strerror(i32 noundef %3838) #10
  %3840 = call ptr @__errno_location() #11
  %3841 = load i32, ptr %3840, align 4, !tbaa !5
  %3842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3829, ptr noundef @.str.5, i32 noundef %3830, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 369, ptr noundef %3833, ptr noundef %3836, ptr noundef %3839, i32 noundef %3841) #10
  br label %3843

3843:                                             ; preds = %3826, %3809
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #10
  br label %3844

3844:                                             ; preds = %3843
  br label %3845

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

3846:                                             ; No predecessors!
  br label %3847

3847:                                             ; preds = %3846
  br label %3848

3848:                                             ; preds = %3847, %3790
  br label %3849

3849:                                             ; preds = %3848
  br label %3850

3850:                                             ; preds = %3849
  br label %3851

3851:                                             ; preds = %3850
  %3852 = load i32, ptr @test_count, align 4, !tbaa !5
  %3853 = add nsw i32 %3852, 1
  store i32 %3853, ptr @test_count, align 4, !tbaa !5
  %3854 = call i32 @s2n_stuffer_skip_write(ptr noundef %143, i32 noundef 3001)
  %3855 = icmp eq i32 %3854, -1
  br i1 %3855, label %3856, label %3909

3856:                                             ; preds = %3851
  br label %3857

3857:                                             ; preds = %3856
  br label %3858

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

3865:                                             ; preds = %3858
  %3866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3867 = call i32 @fileno(ptr noundef %3866) #10
  %3868 = call i32 @isatty(i32 noundef %3867) #10
  %3869 = icmp ne i32 %3868, 0
  br i1 %3869, label %3870, label %3887

3870:                                             ; preds = %3865
  %3871 = load i32, ptr %147, align 4, !tbaa !5
  %3872 = call ptr @__errno_location() #11
  store i32 %3871, ptr %3872, align 4, !tbaa !5
  %3873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3874 = load i32, ptr @test_count, align 4, !tbaa !5
  %3875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3876 = load i32, ptr %3875, align 4, !tbaa !5
  %3877 = call ptr @s2n_strerror(i32 noundef %3876, ptr noundef @.str.4)
  %3878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3879 = load i32, ptr %3878, align 4, !tbaa !5
  %3880 = call ptr @s2n_strerror_debug(i32 noundef %3879, ptr noundef @.str.4)
  %3881 = call ptr @__errno_location() #11
  %3882 = load i32, ptr %3881, align 4, !tbaa !5
  %3883 = call ptr @strerror(i32 noundef %3882) #10
  %3884 = call ptr @__errno_location() #11
  %3885 = load i32, ptr %3884, align 4, !tbaa !5
  %3886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3873, ptr noundef @.str.2, i32 noundef %3874, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 370, ptr noundef %3877, ptr noundef %3880, ptr noundef %3883, i32 noundef %3885) #10
  br label %3904

3887:                                             ; preds = %3865, %3858
  %3888 = load i32, ptr %147, align 4, !tbaa !5
  %3889 = call ptr @__errno_location() #11
  store i32 %3888, ptr %3889, align 4, !tbaa !5
  %3890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3891 = load i32, ptr @test_count, align 4, !tbaa !5
  %3892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3893 = load i32, ptr %3892, align 4, !tbaa !5
  %3894 = call ptr @s2n_strerror(i32 noundef %3893, ptr noundef @.str.4)
  %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_debug(i32 noundef %3896, ptr noundef @.str.4)
  %3898 = call ptr @__errno_location() #11
  %3899 = load i32, ptr %3898, align 4, !tbaa !5
  %3900 = call ptr @strerror(i32 noundef %3899) #10
  %3901 = call ptr @__errno_location() #11
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  %3903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3890, ptr noundef @.str.5, i32 noundef %3891, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 370, ptr noundef %3894, ptr noundef %3897, ptr noundef %3900, i32 noundef %3902) #10
  br label %3904

3904:                                             ; preds = %3887, %3870
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #10
  br label %3905

3905:                                             ; preds = %3904
  br label %3906

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

3907:                                             ; No predecessors!
  br label %3908

3908:                                             ; preds = %3907
  br label %3909

3909:                                             ; preds = %3908, %3851
  br label %3910

3910:                                             ; preds = %3909
  br label %3911

3911:                                             ; preds = %3910
  br label %3912

3912:                                             ; preds = %3911
  %3913 = load i32, ptr @test_count, align 4, !tbaa !5
  %3914 = add nsw i32 %3913, 1
  store i32 %3914, ptr @test_count, align 4, !tbaa !5
  %3915 = load ptr, ptr %139, align 8, !tbaa !9
  %3916 = load i32, ptr %137, align 4, !tbaa !5
  %3917 = call i32 @s2n_test_send_records(ptr noundef %3915, ptr noundef byval(%struct.s2n_stuffer) align 8 %143, i32 noundef %3916)
  %3918 = getelementptr inbounds %struct.s2n_result, ptr %148, i32 0, i32 0
  store i32 %3917, ptr %3918, align 4
  %3919 = getelementptr inbounds %struct.s2n_result, ptr %148, i32 0, i32 0
  %3920 = load i32, ptr %3919, align 4
  %3921 = call zeroext i1 @s2n_result_is_ok(i32 %3920)
  br i1 %3921, label %3975, label %3922

3922:                                             ; preds = %3912
  br label %3923

3923:                                             ; preds = %3922
  br label %3924

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

3931:                                             ; preds = %3924
  %3932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3933 = call i32 @fileno(ptr noundef %3932) #10
  %3934 = call i32 @isatty(i32 noundef %3933) #10
  %3935 = icmp ne i32 %3934, 0
  br i1 %3935, label %3936, label %3953

3936:                                             ; preds = %3931
  %3937 = load i32, ptr %149, align 4, !tbaa !5
  %3938 = call ptr @__errno_location() #11
  store i32 %3937, ptr %3938, align 4, !tbaa !5
  %3939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3940 = load i32, ptr @test_count, align 4, !tbaa !5
  %3941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3942 = load i32, ptr %3941, align 4, !tbaa !5
  %3943 = call ptr @s2n_strerror(i32 noundef %3942, ptr noundef @.str.4)
  %3944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3945 = load i32, ptr %3944, align 4, !tbaa !5
  %3946 = call ptr @s2n_strerror_debug(i32 noundef %3945, ptr noundef @.str.4)
  %3947 = call ptr @__errno_location() #11
  %3948 = load i32, ptr %3947, align 4, !tbaa !5
  %3949 = call ptr @strerror(i32 noundef %3948) #10
  %3950 = call ptr @__errno_location() #11
  %3951 = load i32, ptr %3950, align 4, !tbaa !5
  %3952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3939, ptr noundef @.str.2, i32 noundef %3940, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 371, ptr noundef %3943, ptr noundef %3946, ptr noundef %3949, i32 noundef %3951) #10
  br label %3970

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

3970:                                             ; preds = %3953, %3936
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #10
  br label %3971

3971:                                             ; preds = %3970
  br label %3972

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

3973:                                             ; No predecessors!
  br label %3974

3974:                                             ; preds = %3973
  br label %3975

3975:                                             ; preds = %3974, %3912
  br label %3976

3976:                                             ; preds = %3975
  br label %3977

3977:                                             ; preds = %3976
  br label %3978

3978:                                             ; preds = %3977
  %3979 = load i32, ptr @test_count, align 4, !tbaa !5
  %3980 = add nsw i32 %3979, 1
  store i32 %3980, ptr @test_count, align 4, !tbaa !5
  %3981 = load ptr, ptr %139, align 8, !tbaa !9
  %3982 = load ptr, ptr %139, align 8, !tbaa !9
  %3983 = getelementptr inbounds %struct.s2n_connection, ptr %3982, i32 0, i32 13
  %3984 = load i32, ptr %3983, align 4, !tbaa !26
  %3985 = call i32 @s2n_update_application_traffic_keys(ptr noundef %3981, i32 noundef %3984, i32 noundef 0)
  %3986 = icmp eq i32 %3985, -1
  br i1 %3986, label %3987, label %4040

3987:                                             ; preds = %3978
  br label %3988

3988:                                             ; preds = %3987
  br label %3989

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

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

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

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

4035:                                             ; preds = %4018, %4001
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #10
  br label %4036

4036:                                             ; preds = %4035
  br label %4037

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

4038:                                             ; No predecessors!
  br label %4039

4039:                                             ; preds = %4038
  br label %4040

4040:                                             ; preds = %4039, %3978
  br label %4041

4041:                                             ; preds = %4040
  br label %4042

4042:                                             ; preds = %4041
  call void @llvm.lifetime.start.p0(i64 1, ptr %151) #10
  call void @llvm.memset.p0.i64(ptr align 1 %151, i8 0, i64 1, i1 false)
  br label %4043

4043:                                             ; preds = %4042
  %4044 = load i32, ptr @test_count, align 4, !tbaa !5
  %4045 = add nsw i32 %4044, 1
  store i32 %4045, ptr @test_count, align 4, !tbaa !5
  %4046 = call i32 @s2n_mem_test_init_callbacks(ptr noundef %151)
  %4047 = getelementptr inbounds %struct.s2n_result, ptr %152, i32 0, i32 0
  store i32 %4046, ptr %4047, align 4
  %4048 = getelementptr inbounds %struct.s2n_result, ptr %152, i32 0, i32 0
  %4049 = load i32, ptr %4048, align 4
  %4050 = call zeroext i1 @s2n_result_is_ok(i32 %4049)
  br i1 %4050, label %4104, label %4051

4051:                                             ; preds = %4043
  br label %4052

4052:                                             ; preds = %4051
  br label %4053

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

4060:                                             ; preds = %4053
  %4061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4062 = call i32 @fileno(ptr noundef %4061) #10
  %4063 = call i32 @isatty(i32 noundef %4062) #10
  %4064 = icmp ne i32 %4063, 0
  br i1 %4064, label %4065, label %4082

4065:                                             ; preds = %4060
  %4066 = load i32, ptr %153, align 4, !tbaa !5
  %4067 = call ptr @__errno_location() #11
  store i32 %4066, ptr %4067, align 4, !tbaa !5
  %4068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4069 = load i32, ptr @test_count, align 4, !tbaa !5
  %4070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4071 = load i32, ptr %4070, align 4, !tbaa !5
  %4072 = call ptr @s2n_strerror(i32 noundef %4071, ptr noundef @.str.4)
  %4073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4074 = load i32, ptr %4073, align 4, !tbaa !5
  %4075 = call ptr @s2n_strerror_debug(i32 noundef %4074, ptr noundef @.str.4)
  %4076 = call ptr @__errno_location() #11
  %4077 = load i32, ptr %4076, align 4, !tbaa !5
  %4078 = call ptr @strerror(i32 noundef %4077) #10
  %4079 = call ptr @__errno_location() #11
  %4080 = load i32, ptr %4079, align 4, !tbaa !5
  %4081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4068, ptr noundef @.str.2, i32 noundef %4069, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 375, ptr noundef %4072, ptr noundef %4075, ptr noundef %4078, i32 noundef %4080) #10
  br label %4099

4082:                                             ; preds = %4060, %4053
  %4083 = load i32, ptr %153, align 4, !tbaa !5
  %4084 = call ptr @__errno_location() #11
  store i32 %4083, ptr %4084, align 4, !tbaa !5
  %4085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4086 = load i32, ptr @test_count, align 4, !tbaa !5
  %4087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4088 = load i32, ptr %4087, align 4, !tbaa !5
  %4089 = call ptr @s2n_strerror(i32 noundef %4088, ptr noundef @.str.4)
  %4090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4091 = load i32, ptr %4090, align 4, !tbaa !5
  %4092 = call ptr @s2n_strerror_debug(i32 noundef %4091, ptr noundef @.str.4)
  %4093 = call ptr @__errno_location() #11
  %4094 = load i32, ptr %4093, align 4, !tbaa !5
  %4095 = call ptr @strerror(i32 noundef %4094) #10
  %4096 = call ptr @__errno_location() #11
  %4097 = load i32, ptr %4096, align 4, !tbaa !5
  %4098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4085, ptr noundef @.str.5, i32 noundef %4086, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 375, ptr noundef %4089, ptr noundef %4092, ptr noundef %4095, i32 noundef %4097) #10
  br label %4099

4099:                                             ; preds = %4082, %4065
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #10
  br label %4100

4100:                                             ; preds = %4099
  br label %4101

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

4102:                                             ; No predecessors!
  br label %4103

4103:                                             ; preds = %4102
  br label %4104

4104:                                             ; preds = %4103, %4043
  br label %4105

4105:                                             ; preds = %4104
  br label %4106

4106:                                             ; preds = %4105
  br label %4107

4107:                                             ; preds = %4106
  br label %4108

4108:                                             ; preds = %4107
  br label %4109

4109:                                             ; preds = %4108
  %4110 = load i32, ptr @test_count, align 4, !tbaa !5
  %4111 = add nsw i32 %4110, 1
  store i32 %4111, ptr @test_count, align 4, !tbaa !5
  %4112 = load ptr, ptr %139, align 8, !tbaa !9
  %4113 = load ptr, ptr %138, align 8, !tbaa !9
  %4114 = call i32 @s2n_test_basic_recv(ptr noundef %4112, ptr noundef %4113)
  %4115 = getelementptr inbounds %struct.s2n_result, ptr %154, i32 0, i32 0
  store i32 %4114, ptr %4115, align 4
  %4116 = getelementptr inbounds %struct.s2n_result, ptr %154, i32 0, i32 0
  %4117 = load i32, ptr %4116, align 4
  %4118 = call zeroext i1 @s2n_result_is_error(i32 %4117)
  br i1 %4118, label %4172, label %4119

4119:                                             ; preds = %4109
  br label %4120

4120:                                             ; preds = %4119
  br label %4121

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

4128:                                             ; preds = %4121
  %4129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4130 = call i32 @fileno(ptr noundef %4129) #10
  %4131 = call i32 @isatty(i32 noundef %4130) #10
  %4132 = icmp ne i32 %4131, 0
  br i1 %4132, label %4133, label %4150

4133:                                             ; preds = %4128
  %4134 = load i32, ptr %155, align 4, !tbaa !5
  %4135 = call ptr @__errno_location() #11
  store i32 %4134, ptr %4135, align 4, !tbaa !5
  %4136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4137 = load i32, ptr @test_count, align 4, !tbaa !5
  %4138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4139 = load i32, ptr %4138, align 4, !tbaa !5
  %4140 = call ptr @s2n_strerror(i32 noundef %4139, ptr noundef @.str.4)
  %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_debug(i32 noundef %4142, ptr noundef @.str.4)
  %4144 = call ptr @__errno_location() #11
  %4145 = load i32, ptr %4144, align 4, !tbaa !5
  %4146 = call ptr @strerror(i32 noundef %4145) #10
  %4147 = call ptr @__errno_location() #11
  %4148 = load i32, ptr %4147, align 4, !tbaa !5
  %4149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4136, ptr noundef @.str.2, i32 noundef %4137, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 376, ptr noundef %4140, ptr noundef %4143, ptr noundef %4146, i32 noundef %4148) #10
  br label %4167

4150:                                             ; preds = %4128, %4121
  %4151 = load i32, ptr %155, align 4, !tbaa !5
  %4152 = call ptr @__errno_location() #11
  store i32 %4151, ptr %4152, align 4, !tbaa !5
  %4153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4154 = load i32, ptr @test_count, align 4, !tbaa !5
  %4155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4156 = load i32, ptr %4155, align 4, !tbaa !5
  %4157 = call ptr @s2n_strerror(i32 noundef %4156, ptr noundef @.str.4)
  %4158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4159 = load i32, ptr %4158, align 4, !tbaa !5
  %4160 = call ptr @s2n_strerror_debug(i32 noundef %4159, ptr noundef @.str.4)
  %4161 = call ptr @__errno_location() #11
  %4162 = load i32, ptr %4161, align 4, !tbaa !5
  %4163 = call ptr @strerror(i32 noundef %4162) #10
  %4164 = call ptr @__errno_location() #11
  %4165 = load i32, ptr %4164, align 4, !tbaa !5
  %4166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4153, ptr noundef @.str.5, i32 noundef %4154, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 376, ptr noundef %4157, ptr noundef %4160, ptr noundef %4163, i32 noundef %4165) #10
  br label %4167

4167:                                             ; preds = %4150, %4133
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #10
  br label %4168

4168:                                             ; preds = %4167
  br label %4169

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

4170:                                             ; No predecessors!
  br label %4171

4171:                                             ; preds = %4170
  br label %4172

4172:                                             ; preds = %4171, %4109
  br label %4173

4173:                                             ; preds = %4172
  br label %4174

4174:                                             ; preds = %4173
  br label %4175

4175:                                             ; preds = %4174
  %4176 = load i32, ptr @test_count, align 4, !tbaa !5
  %4177 = add nsw i32 %4176, 1
  store i32 %4177, ptr @test_count, align 4, !tbaa !5
  %4178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4179 = load i32, ptr %4178, align 4, !tbaa !5
  %4180 = icmp eq i32 %4179, 335544322
  br i1 %4180, label %4234, label %4181

4181:                                             ; preds = %4175
  br label %4182

4182:                                             ; preds = %4181
  br label %4183

4183:                                             ; preds = %4182
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #10
  %4184 = call ptr @__errno_location() #11
  %4185 = load i32, ptr %4184, align 4, !tbaa !5
  store i32 %4185, ptr %156, align 4, !tbaa !5
  %4186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4187 = call i32 @s2n_print_stacktrace(ptr noundef %4186)
  %4188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4189 = trunc i8 %4188 to i1
  br i1 %4189, label %4190, label %4212

4190:                                             ; preds = %4183
  %4191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4192 = call i32 @fileno(ptr noundef %4191) #10
  %4193 = call i32 @isatty(i32 noundef %4192) #10
  %4194 = icmp ne i32 %4193, 0
  br i1 %4194, label %4195, label %4212

4195:                                             ; preds = %4190
  %4196 = load i32, ptr %156, align 4, !tbaa !5
  %4197 = call ptr @__errno_location() #11
  store i32 %4196, ptr %4197, align 4, !tbaa !5
  %4198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4199 = load i32, ptr @test_count, align 4, !tbaa !5
  %4200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4201 = load i32, ptr %4200, align 4, !tbaa !5
  %4202 = call ptr @s2n_strerror(i32 noundef %4201, ptr noundef @.str.4)
  %4203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4204 = load i32, ptr %4203, align 4, !tbaa !5
  %4205 = call ptr @s2n_strerror_debug(i32 noundef %4204, ptr noundef @.str.4)
  %4206 = call ptr @__errno_location() #11
  %4207 = load i32, ptr %4206, align 4, !tbaa !5
  %4208 = call ptr @strerror(i32 noundef %4207) #10
  %4209 = call ptr @__errno_location() #11
  %4210 = load i32, ptr %4209, align 4, !tbaa !5
  %4211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4198, ptr noundef @.str.2, i32 noundef %4199, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 376, ptr noundef %4202, ptr noundef %4205, ptr noundef %4208, i32 noundef %4210) #10
  br label %4229

4212:                                             ; preds = %4190, %4183
  %4213 = load i32, ptr %156, align 4, !tbaa !5
  %4214 = call ptr @__errno_location() #11
  store i32 %4213, ptr %4214, align 4, !tbaa !5
  %4215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4216 = load i32, ptr @test_count, align 4, !tbaa !5
  %4217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4218 = load i32, ptr %4217, align 4, !tbaa !5
  %4219 = call ptr @s2n_strerror(i32 noundef %4218, ptr noundef @.str.4)
  %4220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4221 = load i32, ptr %4220, align 4, !tbaa !5
  %4222 = call ptr @s2n_strerror_debug(i32 noundef %4221, ptr noundef @.str.4)
  %4223 = call ptr @__errno_location() #11
  %4224 = load i32, ptr %4223, align 4, !tbaa !5
  %4225 = call ptr @strerror(i32 noundef %4224) #10
  %4226 = call ptr @__errno_location() #11
  %4227 = load i32, ptr %4226, align 4, !tbaa !5
  %4228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4215, ptr noundef @.str.5, i32 noundef %4216, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 376, ptr noundef %4219, ptr noundef %4222, ptr noundef %4225, i32 noundef %4227) #10
  br label %4229

4229:                                             ; preds = %4212, %4195
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #10
  br label %4230

4230:                                             ; preds = %4229
  br label %4231

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

4232:                                             ; No predecessors!
  br label %4233

4233:                                             ; preds = %4232
  br label %4234

4234:                                             ; preds = %4233, %4175
  br label %4235

4235:                                             ; preds = %4234
  br label %4236

4236:                                             ; preds = %4235
  br label %4237

4237:                                             ; preds = %4236
  %4238 = load i32, ptr @test_count, align 4, !tbaa !5
  %4239 = add nsw i32 %4238, 1
  store i32 %4239, 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_debug(i32 noundef %4241, ptr noundef @.str.4)
  %4243 = icmp eq ptr %4242, null
  br i1 %4243, label %4244, label %4297

4244:                                             ; preds = %4237
  br label %4245

4245:                                             ; preds = %4244
  br label %4246

4246:                                             ; preds = %4245
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #10
  %4247 = call ptr @__errno_location() #11
  %4248 = load i32, ptr %4247, align 4, !tbaa !5
  store i32 %4248, ptr %157, align 4, !tbaa !5
  %4249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4250 = call i32 @s2n_print_stacktrace(ptr noundef %4249)
  %4251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4252 = trunc i8 %4251 to i1
  br i1 %4252, label %4253, label %4275

4253:                                             ; preds = %4246
  %4254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4255 = call i32 @fileno(ptr noundef %4254) #10
  %4256 = call i32 @isatty(i32 noundef %4255) #10
  %4257 = icmp ne i32 %4256, 0
  br i1 %4257, label %4258, label %4275

4258:                                             ; preds = %4253
  %4259 = load i32, ptr %157, align 4, !tbaa !5
  %4260 = call ptr @__errno_location() #11
  store i32 %4259, ptr %4260, align 4, !tbaa !5
  %4261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4262 = load i32, ptr @test_count, align 4, !tbaa !5
  %4263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4264 = load i32, ptr %4263, align 4, !tbaa !5
  %4265 = call ptr @s2n_strerror(i32 noundef %4264, ptr noundef @.str.4)
  %4266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4267 = load i32, ptr %4266, align 4, !tbaa !5
  %4268 = call ptr @s2n_strerror_debug(i32 noundef %4267, ptr noundef @.str.4)
  %4269 = call ptr @__errno_location() #11
  %4270 = load i32, ptr %4269, align 4, !tbaa !5
  %4271 = call ptr @strerror(i32 noundef %4270) #10
  %4272 = call ptr @__errno_location() #11
  %4273 = load i32, ptr %4272, align 4, !tbaa !5
  %4274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4261, ptr noundef @.str.2, i32 noundef %4262, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 376, ptr noundef %4265, ptr noundef %4268, ptr noundef %4271, i32 noundef %4273) #10
  br label %4292

4275:                                             ; preds = %4253, %4246
  %4276 = load i32, ptr %157, align 4, !tbaa !5
  %4277 = call ptr @__errno_location() #11
  store i32 %4276, ptr %4277, align 4, !tbaa !5
  %4278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4279 = load i32, ptr @test_count, align 4, !tbaa !5
  %4280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4281 = load i32, ptr %4280, align 4, !tbaa !5
  %4282 = call ptr @s2n_strerror(i32 noundef %4281, ptr noundef @.str.4)
  %4283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4284 = load i32, ptr %4283, align 4, !tbaa !5
  %4285 = call ptr @s2n_strerror_debug(i32 noundef %4284, ptr noundef @.str.4)
  %4286 = call ptr @__errno_location() #11
  %4287 = load i32, ptr %4286, align 4, !tbaa !5
  %4288 = call ptr @strerror(i32 noundef %4287) #10
  %4289 = call ptr @__errno_location() #11
  %4290 = load i32, ptr %4289, align 4, !tbaa !5
  %4291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4278, ptr noundef @.str.5, i32 noundef %4279, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 376, ptr noundef %4282, ptr noundef %4285, ptr noundef %4288, i32 noundef %4290) #10
  br label %4292

4292:                                             ; preds = %4275, %4258
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #10
  br label %4293

4293:                                             ; preds = %4292
  br label %4294

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

4295:                                             ; No predecessors!
  br label %4296

4296:                                             ; preds = %4295
  br label %4297

4297:                                             ; preds = %4296, %4237
  br label %4298

4298:                                             ; preds = %4297
  br label %4299

4299:                                             ; preds = %4298
  br label %4300

4300:                                             ; preds = %4299
  br label %4301

4301:                                             ; preds = %4300
  br label %4302

4302:                                             ; preds = %4301
  %4303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4303, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4304 = call ptr @__errno_location() #11
  store i32 0, ptr %4304, align 4, !tbaa !5
  br label %4305

4305:                                             ; preds = %4302
  br label %4306

4306:                                             ; preds = %4305
  br label %4307

4307:                                             ; preds = %4306
  br label %4308

4308:                                             ; preds = %4307
  br label %4309

4309:                                             ; preds = %4308
  %4310 = load i32, ptr @test_count, align 4, !tbaa !5
  %4311 = add nsw i32 %4310, 1
  store i32 %4311, ptr @test_count, align 4, !tbaa !5
  %4312 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0)
  %4313 = getelementptr inbounds %struct.s2n_result, ptr %158, i32 0, i32 0
  store i32 %4312, ptr %4313, align 4
  %4314 = getelementptr inbounds %struct.s2n_result, ptr %158, i32 0, i32 0
  %4315 = load i32, ptr %4314, align 4
  %4316 = call zeroext i1 @s2n_result_is_ok(i32 %4315)
  br i1 %4316, label %4370, label %4317

4317:                                             ; preds = %4309
  br label %4318

4318:                                             ; preds = %4317
  br label %4319

4319:                                             ; preds = %4318
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #10
  %4320 = call ptr @__errno_location() #11
  %4321 = load i32, ptr %4320, align 4, !tbaa !5
  store i32 %4321, ptr %159, align 4, !tbaa !5
  %4322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4323 = call i32 @s2n_print_stacktrace(ptr noundef %4322)
  %4324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4325 = trunc i8 %4324 to i1
  br i1 %4325, label %4326, label %4348

4326:                                             ; preds = %4319
  %4327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4328 = call i32 @fileno(ptr noundef %4327) #10
  %4329 = call i32 @isatty(i32 noundef %4328) #10
  %4330 = icmp ne i32 %4329, 0
  br i1 %4330, label %4331, label %4348

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

4348:                                             ; preds = %4326, %4319
  %4349 = load i32, ptr %159, align 4, !tbaa !5
  %4350 = call ptr @__errno_location() #11
  store i32 %4349, ptr %4350, align 4, !tbaa !5
  %4351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4352 = load i32, ptr @test_count, align 4, !tbaa !5
  %4353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4354 = load i32, ptr %4353, align 4, !tbaa !5
  %4355 = call ptr @s2n_strerror(i32 noundef %4354, ptr noundef @.str.4)
  %4356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4357 = load i32, ptr %4356, align 4, !tbaa !5
  %4358 = call ptr @s2n_strerror_debug(i32 noundef %4357, ptr noundef @.str.4)
  %4359 = call ptr @__errno_location() #11
  %4360 = load i32, ptr %4359, align 4, !tbaa !5
  %4361 = call ptr @strerror(i32 noundef %4360) #10
  %4362 = call ptr @__errno_location() #11
  %4363 = load i32, ptr %4362, align 4, !tbaa !5
  %4364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4351, ptr noundef @.str.5, i32 noundef %4352, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 379, ptr noundef %4355, ptr noundef %4358, ptr noundef %4361, i32 noundef %4363) #10
  br label %4365

4365:                                             ; preds = %4348, %4331
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #10
  br label %4366

4366:                                             ; preds = %4365
  br label %4367

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

4368:                                             ; No predecessors!
  br label %4369

4369:                                             ; preds = %4368
  br label %4370

4370:                                             ; preds = %4369, %4309
  br label %4371

4371:                                             ; preds = %4370
  br label %4372

4372:                                             ; preds = %4371
  %4373 = call i32 @s2n_mem_test_free_callbacks(ptr noundef %151)
  %4374 = getelementptr inbounds %struct.s2n_result, ptr %160, i32 0, i32 0
  store i32 %4373, ptr %4374, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %151) #10
  %4375 = call i32 @s2n_stuffer_free(ptr noundef %143)
  call void @llvm.lifetime.end.p0(i64 40, ptr %143) #10
  %4376 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %140)
  %4377 = getelementptr inbounds %struct.s2n_result, ptr %161, i32 0, i32 0
  store i32 %4376, ptr %4377, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %140) #10
  %4378 = call i32 @s2n_connection_ptr_free(ptr noundef %139)
  %4379 = getelementptr inbounds %struct.s2n_result, ptr %162, i32 0, i32 0
  store i32 %4378, ptr %4379, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #10
  %4380 = call i32 @s2n_connection_ptr_free(ptr noundef %138)
  %4381 = getelementptr inbounds %struct.s2n_result, ptr %163, i32 0, i32 0
  store i32 %4380, ptr %4381, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #10
  store i64 0, ptr %164, align 8, !tbaa !16
  br label %4382

4382:                                             ; preds = %5242, %4372
  %4383 = load i64, ptr %164, align 8, !tbaa !16
  %4384 = icmp ult i64 %4383, 7
  br i1 %4384, label %4386, label %4385

4385:                                             ; preds = %4382
  store i32 408, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #10
  br label %5245

4386:                                             ; preds = %4382
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #10
  %4387 = load i64, ptr %164, align 8, !tbaa !16
  %4388 = getelementptr inbounds [7 x i32], ptr %21, i64 0, i64 %4387
  %4389 = load i32, ptr %4388, align 4, !tbaa !5
  store i32 %4389, ptr %165, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #10
  %4390 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4390, ptr %166, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #10
  %4391 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4391, ptr %167, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr %168) #10
  call void @llvm.memset.p0.i64(ptr align 8 %168, i8 0, i64 80, i1 false)
  br label %4392

4392:                                             ; preds = %4386
  %4393 = load i32, ptr @test_count, align 4, !tbaa !5
  %4394 = add nsw i32 %4393, 1
  store i32 %4394, ptr @test_count, align 4, !tbaa !5
  %4395 = load ptr, ptr %11, align 8, !tbaa !9
  %4396 = load ptr, ptr %167, align 8, !tbaa !9
  %4397 = load ptr, ptr %166, align 8, !tbaa !9
  %4398 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %4395, ptr noundef %4396, ptr noundef %4397, ptr noundef %168)
  %4399 = getelementptr inbounds %struct.s2n_result, ptr %169, i32 0, i32 0
  store i32 %4398, ptr %4399, align 4
  %4400 = getelementptr inbounds %struct.s2n_result, ptr %169, i32 0, i32 0
  %4401 = load i32, ptr %4400, align 4
  %4402 = call zeroext i1 @s2n_result_is_ok(i32 %4401)
  br i1 %4402, label %4456, label %4403

4403:                                             ; preds = %4392
  br label %4404

4404:                                             ; preds = %4403
  br label %4405

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

4412:                                             ; preds = %4405
  %4413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4414 = call i32 @fileno(ptr noundef %4413) #10
  %4415 = call i32 @isatty(i32 noundef %4414) #10
  %4416 = icmp ne i32 %4415, 0
  br i1 %4416, label %4417, label %4434

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

4434:                                             ; preds = %4412, %4405
  %4435 = load i32, ptr %170, align 4, !tbaa !5
  %4436 = call ptr @__errno_location() #11
  store i32 %4435, ptr %4436, align 4, !tbaa !5
  %4437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4438 = load i32, ptr @test_count, align 4, !tbaa !5
  %4439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4440 = load i32, ptr %4439, align 4, !tbaa !5
  %4441 = call ptr @s2n_strerror(i32 noundef %4440, ptr noundef @.str.4)
  %4442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4443 = load i32, ptr %4442, align 4, !tbaa !5
  %4444 = call ptr @s2n_strerror_debug(i32 noundef %4443, ptr noundef @.str.4)
  %4445 = call ptr @__errno_location() #11
  %4446 = load i32, ptr %4445, align 4, !tbaa !5
  %4447 = call ptr @strerror(i32 noundef %4446) #10
  %4448 = call ptr @__errno_location() #11
  %4449 = load i32, ptr %4448, align 4, !tbaa !5
  %4450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4437, ptr noundef @.str.5, i32 noundef %4438, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 393, ptr noundef %4441, ptr noundef %4444, ptr noundef %4447, i32 noundef %4449) #10
  br label %4451

4451:                                             ; preds = %4434, %4417
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #10
  br label %4452

4452:                                             ; preds = %4451
  br label %4453

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

4454:                                             ; No predecessors!
  br label %4455

4455:                                             ; preds = %4454
  br label %4456

4456:                                             ; preds = %4455, %4392
  br label %4457

4457:                                             ; preds = %4456
  br label %4458

4458:                                             ; preds = %4457
  %4459 = load ptr, ptr %166, align 8, !tbaa !9
  %4460 = load i32, ptr %4459, align 8
  %4461 = and i32 %4460, -9
  %4462 = or i32 %4461, 8
  store i32 %4462, ptr %4459, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr %171) #10
  call void @llvm.memset.p0.i64(ptr align 8 %171, i8 0, i64 40, i1 false)
  br label %4463

4463:                                             ; preds = %4458
  %4464 = load i32, ptr @test_count, align 4, !tbaa !5
  %4465 = add nsw i32 %4464, 1
  store i32 %4465, ptr @test_count, align 4, !tbaa !5
  %4466 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %171, i32 noundef 0)
  %4467 = icmp eq i32 %4466, -1
  br i1 %4467, label %4468, label %4521

4468:                                             ; preds = %4463
  br label %4469

4469:                                             ; preds = %4468
  br label %4470

4470:                                             ; preds = %4469
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #10
  %4471 = call ptr @__errno_location() #11
  %4472 = load i32, ptr %4471, align 4, !tbaa !5
  store i32 %4472, ptr %172, align 4, !tbaa !5
  %4473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4474 = call i32 @s2n_print_stacktrace(ptr noundef %4473)
  %4475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4476 = trunc i8 %4475 to i1
  br i1 %4476, label %4477, label %4499

4477:                                             ; preds = %4470
  %4478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4479 = call i32 @fileno(ptr noundef %4478) #10
  %4480 = call i32 @isatty(i32 noundef %4479) #10
  %4481 = icmp ne i32 %4480, 0
  br i1 %4481, label %4482, label %4499

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

4499:                                             ; preds = %4477, %4470
  %4500 = load i32, ptr %172, align 4, !tbaa !5
  %4501 = call ptr @__errno_location() #11
  store i32 %4500, ptr %4501, align 4, !tbaa !5
  %4502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4503 = load i32, ptr @test_count, align 4, !tbaa !5
  %4504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4505 = load i32, ptr %4504, align 4, !tbaa !5
  %4506 = call ptr @s2n_strerror(i32 noundef %4505, ptr noundef @.str.4)
  %4507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4508 = load i32, ptr %4507, align 4, !tbaa !5
  %4509 = call ptr @s2n_strerror_debug(i32 noundef %4508, ptr noundef @.str.4)
  %4510 = call ptr @__errno_location() #11
  %4511 = load i32, ptr %4510, align 4, !tbaa !5
  %4512 = call ptr @strerror(i32 noundef %4511) #10
  %4513 = call ptr @__errno_location() #11
  %4514 = load i32, ptr %4513, align 4, !tbaa !5
  %4515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4502, ptr noundef @.str.5, i32 noundef %4503, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 400, ptr noundef %4506, ptr noundef %4509, ptr noundef %4512, i32 noundef %4514) #10
  br label %4516

4516:                                             ; preds = %4499, %4482
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #10
  br label %4517

4517:                                             ; preds = %4516
  br label %4518

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

4519:                                             ; No predecessors!
  br label %4520

4520:                                             ; preds = %4519
  br label %4521

4521:                                             ; preds = %4520, %4463
  br label %4522

4522:                                             ; preds = %4521
  br label %4523

4523:                                             ; preds = %4522
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #10
  store i64 0, ptr %173, align 8, !tbaa !16
  br label %4524

4524:                                             ; preds = %4651, %4523
  %4525 = load i64, ptr %173, align 8, !tbaa !16
  %4526 = icmp ult i64 %4525, 5
  br i1 %4526, label %4528, label %4527

4527:                                             ; preds = %4524
  store i32 423, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #10
  br label %4654

4528:                                             ; preds = %4524
  br label %4529

4529:                                             ; preds = %4528
  %4530 = load i32, ptr @test_count, align 4, !tbaa !5
  %4531 = add nsw i32 %4530, 1
  store i32 %4531, ptr @test_count, align 4, !tbaa !5
  %4532 = call i32 @s2n_stuffer_write_uint8(ptr noundef %171, i8 noundef zeroext 0)
  %4533 = icmp eq i32 %4532, -1
  br i1 %4533, label %4534, label %4587

4534:                                             ; preds = %4529
  br label %4535

4535:                                             ; preds = %4534
  br label %4536

4536:                                             ; preds = %4535
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #10
  %4537 = call ptr @__errno_location() #11
  %4538 = load i32, ptr %4537, align 4, !tbaa !5
  store i32 %4538, ptr %174, align 4, !tbaa !5
  %4539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4540 = call i32 @s2n_print_stacktrace(ptr noundef %4539)
  %4541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4542 = trunc i8 %4541 to i1
  br i1 %4542, label %4543, label %4565

4543:                                             ; preds = %4536
  %4544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4545 = call i32 @fileno(ptr noundef %4544) #10
  %4546 = call i32 @isatty(i32 noundef %4545) #10
  %4547 = icmp ne i32 %4546, 0
  br i1 %4547, label %4548, label %4565

4548:                                             ; preds = %4543
  %4549 = load i32, ptr %174, align 4, !tbaa !5
  %4550 = call ptr @__errno_location() #11
  store i32 %4549, ptr %4550, align 4, !tbaa !5
  %4551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4552 = load i32, ptr @test_count, align 4, !tbaa !5
  %4553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4554 = load i32, ptr %4553, align 4, !tbaa !5
  %4555 = call ptr @s2n_strerror(i32 noundef %4554, ptr noundef @.str.4)
  %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_debug(i32 noundef %4557, ptr noundef @.str.4)
  %4559 = call ptr @__errno_location() #11
  %4560 = load i32, ptr %4559, align 4, !tbaa !5
  %4561 = call ptr @strerror(i32 noundef %4560) #10
  %4562 = call ptr @__errno_location() #11
  %4563 = load i32, ptr %4562, align 4, !tbaa !5
  %4564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4551, ptr noundef @.str.2, i32 noundef %4552, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 402, ptr noundef %4555, ptr noundef %4558, ptr noundef %4561, i32 noundef %4563) #10
  br label %4582

4565:                                             ; preds = %4543, %4536
  %4566 = load i32, ptr %174, align 4, !tbaa !5
  %4567 = call ptr @__errno_location() #11
  store i32 %4566, ptr %4567, align 4, !tbaa !5
  %4568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4569 = load i32, ptr @test_count, align 4, !tbaa !5
  %4570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4571 = load i32, ptr %4570, align 4, !tbaa !5
  %4572 = call ptr @s2n_strerror(i32 noundef %4571, ptr noundef @.str.4)
  %4573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4574 = load i32, ptr %4573, align 4, !tbaa !5
  %4575 = call ptr @s2n_strerror_debug(i32 noundef %4574, ptr noundef @.str.4)
  %4576 = call ptr @__errno_location() #11
  %4577 = load i32, ptr %4576, align 4, !tbaa !5
  %4578 = call ptr @strerror(i32 noundef %4577) #10
  %4579 = call ptr @__errno_location() #11
  %4580 = load i32, ptr %4579, align 4, !tbaa !5
  %4581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4568, ptr noundef @.str.5, i32 noundef %4569, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 402, ptr noundef %4572, ptr noundef %4575, ptr noundef %4578, i32 noundef %4580) #10
  br label %4582

4582:                                             ; preds = %4565, %4548
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #10
  br label %4583

4583:                                             ; preds = %4582
  br label %4584

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

4585:                                             ; No predecessors!
  br label %4586

4586:                                             ; preds = %4585
  br label %4587

4587:                                             ; preds = %4586, %4529
  br label %4588

4588:                                             ; preds = %4587
  br label %4589

4589:                                             ; preds = %4588
  br label %4590

4590:                                             ; preds = %4589
  %4591 = load i32, ptr @test_count, align 4, !tbaa !5
  %4592 = add nsw i32 %4591, 1
  store i32 %4592, ptr @test_count, align 4, !tbaa !5
  %4593 = call i32 @s2n_stuffer_write_uint24(ptr noundef %171, i32 noundef 0)
  %4594 = icmp eq i32 %4593, -1
  br i1 %4594, label %4595, label %4648

4595:                                             ; preds = %4590
  br label %4596

4596:                                             ; preds = %4595
  br label %4597

4597:                                             ; preds = %4596
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #10
  %4598 = call ptr @__errno_location() #11
  %4599 = load i32, ptr %4598, align 4, !tbaa !5
  store i32 %4599, ptr %175, align 4, !tbaa !5
  %4600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4601 = call i32 @s2n_print_stacktrace(ptr noundef %4600)
  %4602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4603 = trunc i8 %4602 to i1
  br i1 %4603, label %4604, label %4626

4604:                                             ; preds = %4597
  %4605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4606 = call i32 @fileno(ptr noundef %4605) #10
  %4607 = call i32 @isatty(i32 noundef %4606) #10
  %4608 = icmp ne i32 %4607, 0
  br i1 %4608, label %4609, label %4626

4609:                                             ; preds = %4604
  %4610 = load i32, ptr %175, align 4, !tbaa !5
  %4611 = call ptr @__errno_location() #11
  store i32 %4610, ptr %4611, align 4, !tbaa !5
  %4612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4613 = load i32, ptr @test_count, align 4, !tbaa !5
  %4614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4615 = load i32, ptr %4614, align 4, !tbaa !5
  %4616 = call ptr @s2n_strerror(i32 noundef %4615, ptr noundef @.str.4)
  %4617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4618 = load i32, ptr %4617, align 4, !tbaa !5
  %4619 = call ptr @s2n_strerror_debug(i32 noundef %4618, ptr noundef @.str.4)
  %4620 = call ptr @__errno_location() #11
  %4621 = load i32, ptr %4620, align 4, !tbaa !5
  %4622 = call ptr @strerror(i32 noundef %4621) #10
  %4623 = call ptr @__errno_location() #11
  %4624 = load i32, ptr %4623, align 4, !tbaa !5
  %4625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4612, ptr noundef @.str.2, i32 noundef %4613, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 403, ptr noundef %4616, ptr noundef %4619, ptr noundef %4622, i32 noundef %4624) #10
  br label %4643

4626:                                             ; preds = %4604, %4597
  %4627 = load i32, ptr %175, align 4, !tbaa !5
  %4628 = call ptr @__errno_location() #11
  store i32 %4627, ptr %4628, align 4, !tbaa !5
  %4629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4630 = load i32, ptr @test_count, align 4, !tbaa !5
  %4631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4632 = load i32, ptr %4631, align 4, !tbaa !5
  %4633 = call ptr @s2n_strerror(i32 noundef %4632, ptr noundef @.str.4)
  %4634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4635 = load i32, ptr %4634, align 4, !tbaa !5
  %4636 = call ptr @s2n_strerror_debug(i32 noundef %4635, ptr noundef @.str.4)
  %4637 = call ptr @__errno_location() #11
  %4638 = load i32, ptr %4637, align 4, !tbaa !5
  %4639 = call ptr @strerror(i32 noundef %4638) #10
  %4640 = call ptr @__errno_location() #11
  %4641 = load i32, ptr %4640, align 4, !tbaa !5
  %4642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4629, ptr noundef @.str.5, i32 noundef %4630, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 403, ptr noundef %4633, ptr noundef %4636, ptr noundef %4639, i32 noundef %4641) #10
  br label %4643

4643:                                             ; preds = %4626, %4609
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #10
  br label %4644

4644:                                             ; preds = %4643
  br label %4645

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

4646:                                             ; No predecessors!
  br label %4647

4647:                                             ; preds = %4646
  br label %4648

4648:                                             ; preds = %4647, %4590
  br label %4649

4649:                                             ; preds = %4648
  br label %4650

4650:                                             ; preds = %4649
  br label %4651

4651:                                             ; preds = %4650
  %4652 = load i64, ptr %173, align 8, !tbaa !16
  %4653 = add i64 %4652, 1
  store i64 %4653, ptr %173, align 8, !tbaa !16
  br label %4524, !llvm.loop !63

4654:                                             ; preds = %4527
  call void @llvm.lifetime.start.p0(i64 1, ptr %176) #10
  call void @llvm.memset.p0.i64(ptr align 1 %176, i8 0, i64 1, i1 false)
  br label %4655

4655:                                             ; preds = %4654
  %4656 = load i32, ptr @test_count, align 4, !tbaa !5
  %4657 = add nsw i32 %4656, 1
  store i32 %4657, ptr @test_count, align 4, !tbaa !5
  %4658 = call i32 @s2n_mem_test_init_callbacks(ptr noundef %176)
  %4659 = getelementptr inbounds %struct.s2n_result, ptr %177, i32 0, i32 0
  store i32 %4658, ptr %4659, align 4
  %4660 = getelementptr inbounds %struct.s2n_result, ptr %177, i32 0, i32 0
  %4661 = load i32, ptr %4660, align 4
  %4662 = call zeroext i1 @s2n_result_is_ok(i32 %4661)
  br i1 %4662, label %4716, label %4663

4663:                                             ; preds = %4655
  br label %4664

4664:                                             ; preds = %4663
  br label %4665

4665:                                             ; preds = %4664
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #10
  %4666 = call ptr @__errno_location() #11
  %4667 = load i32, ptr %4666, align 4, !tbaa !5
  store i32 %4667, ptr %178, align 4, !tbaa !5
  %4668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4669 = call i32 @s2n_print_stacktrace(ptr noundef %4668)
  %4670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4671 = trunc i8 %4670 to i1
  br i1 %4671, label %4672, label %4694

4672:                                             ; preds = %4665
  %4673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4674 = call i32 @fileno(ptr noundef %4673) #10
  %4675 = call i32 @isatty(i32 noundef %4674) #10
  %4676 = icmp ne i32 %4675, 0
  br i1 %4676, label %4677, label %4694

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

4694:                                             ; preds = %4672, %4665
  %4695 = load i32, ptr %178, align 4, !tbaa !5
  %4696 = call ptr @__errno_location() #11
  store i32 %4695, ptr %4696, align 4, !tbaa !5
  %4697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4698 = load i32, ptr @test_count, align 4, !tbaa !5
  %4699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4700 = load i32, ptr %4699, align 4, !tbaa !5
  %4701 = call ptr @s2n_strerror(i32 noundef %4700, ptr noundef @.str.4)
  %4702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4703 = load i32, ptr %4702, align 4, !tbaa !5
  %4704 = call ptr @s2n_strerror_debug(i32 noundef %4703, ptr noundef @.str.4)
  %4705 = call ptr @__errno_location() #11
  %4706 = load i32, ptr %4705, align 4, !tbaa !5
  %4707 = call ptr @strerror(i32 noundef %4706) #10
  %4708 = call ptr @__errno_location() #11
  %4709 = load i32, ptr %4708, align 4, !tbaa !5
  %4710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4697, ptr noundef @.str.5, i32 noundef %4698, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 407, ptr noundef %4701, ptr noundef %4704, ptr noundef %4707, i32 noundef %4709) #10
  br label %4711

4711:                                             ; preds = %4694, %4677
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #10
  br label %4712

4712:                                             ; preds = %4711
  br label %4713

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

4714:                                             ; No predecessors!
  br label %4715

4715:                                             ; preds = %4714
  br label %4716

4716:                                             ; preds = %4715, %4655
  br label %4717

4717:                                             ; preds = %4716
  br label %4718

4718:                                             ; preds = %4717
  br label %4719

4719:                                             ; preds = %4718
  %4720 = load i32, ptr @test_count, align 4, !tbaa !5
  %4721 = add nsw i32 %4720, 1
  store i32 %4721, ptr @test_count, align 4, !tbaa !5
  %4722 = load ptr, ptr %167, align 8, !tbaa !9
  %4723 = load i32, ptr %165, align 4, !tbaa !5
  %4724 = call i32 @s2n_test_send_records(ptr noundef %4722, ptr noundef byval(%struct.s2n_stuffer) align 8 %171, i32 noundef %4723)
  %4725 = getelementptr inbounds %struct.s2n_result, ptr %179, i32 0, i32 0
  store i32 %4724, ptr %4725, align 4
  %4726 = getelementptr inbounds %struct.s2n_result, ptr %179, i32 0, i32 0
  %4727 = load i32, ptr %4726, align 4
  %4728 = call zeroext i1 @s2n_result_is_ok(i32 %4727)
  br i1 %4728, label %4782, label %4729

4729:                                             ; preds = %4719
  br label %4730

4730:                                             ; preds = %4729
  br label %4731

4731:                                             ; preds = %4730
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #10
  %4732 = call ptr @__errno_location() #11
  %4733 = load i32, ptr %4732, align 4, !tbaa !5
  store i32 %4733, ptr %180, align 4, !tbaa !5
  %4734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4735 = call i32 @s2n_print_stacktrace(ptr noundef %4734)
  %4736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4737 = trunc i8 %4736 to i1
  br i1 %4737, label %4738, label %4760

4738:                                             ; preds = %4731
  %4739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4740 = call i32 @fileno(ptr noundef %4739) #10
  %4741 = call i32 @isatty(i32 noundef %4740) #10
  %4742 = icmp ne i32 %4741, 0
  br i1 %4742, label %4743, label %4760

4743:                                             ; preds = %4738
  %4744 = load i32, ptr %180, align 4, !tbaa !5
  %4745 = call ptr @__errno_location() #11
  store i32 %4744, ptr %4745, align 4, !tbaa !5
  %4746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4747 = load i32, ptr @test_count, align 4, !tbaa !5
  %4748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4749 = load i32, ptr %4748, align 4, !tbaa !5
  %4750 = call ptr @s2n_strerror(i32 noundef %4749, ptr noundef @.str.4)
  %4751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4752 = load i32, ptr %4751, align 4, !tbaa !5
  %4753 = call ptr @s2n_strerror_debug(i32 noundef %4752, ptr noundef @.str.4)
  %4754 = call ptr @__errno_location() #11
  %4755 = load i32, ptr %4754, align 4, !tbaa !5
  %4756 = call ptr @strerror(i32 noundef %4755) #10
  %4757 = call ptr @__errno_location() #11
  %4758 = load i32, ptr %4757, align 4, !tbaa !5
  %4759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4746, ptr noundef @.str.2, i32 noundef %4747, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 409, ptr noundef %4750, ptr noundef %4753, ptr noundef %4756, i32 noundef %4758) #10
  br label %4777

4760:                                             ; preds = %4738, %4731
  %4761 = load i32, ptr %180, align 4, !tbaa !5
  %4762 = call ptr @__errno_location() #11
  store i32 %4761, ptr %4762, align 4, !tbaa !5
  %4763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4764 = load i32, ptr @test_count, align 4, !tbaa !5
  %4765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4766 = load i32, ptr %4765, align 4, !tbaa !5
  %4767 = call ptr @s2n_strerror(i32 noundef %4766, ptr noundef @.str.4)
  %4768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4769 = load i32, ptr %4768, align 4, !tbaa !5
  %4770 = call ptr @s2n_strerror_debug(i32 noundef %4769, ptr noundef @.str.4)
  %4771 = call ptr @__errno_location() #11
  %4772 = load i32, ptr %4771, align 4, !tbaa !5
  %4773 = call ptr @strerror(i32 noundef %4772) #10
  %4774 = call ptr @__errno_location() #11
  %4775 = load i32, ptr %4774, align 4, !tbaa !5
  %4776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4763, ptr noundef @.str.5, i32 noundef %4764, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 409, ptr noundef %4767, ptr noundef %4770, ptr noundef %4773, i32 noundef %4775) #10
  br label %4777

4777:                                             ; preds = %4760, %4743
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #10
  br label %4778

4778:                                             ; preds = %4777
  br label %4779

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

4780:                                             ; No predecessors!
  br label %4781

4781:                                             ; preds = %4780
  br label %4782

4782:                                             ; preds = %4781, %4719
  br label %4783

4783:                                             ; preds = %4782
  br label %4784

4784:                                             ; preds = %4783
  br label %4785

4785:                                             ; preds = %4784
  %4786 = load i32, ptr @test_count, align 4, !tbaa !5
  %4787 = add nsw i32 %4786, 1
  store i32 %4787, ptr @test_count, align 4, !tbaa !5
  %4788 = load ptr, ptr %167, align 8, !tbaa !9
  %4789 = load ptr, ptr %166, align 8, !tbaa !9
  %4790 = call i32 @s2n_test_basic_recv(ptr noundef %4788, ptr noundef %4789)
  %4791 = getelementptr inbounds %struct.s2n_result, ptr %181, i32 0, i32 0
  store i32 %4790, ptr %4791, align 4
  %4792 = getelementptr inbounds %struct.s2n_result, ptr %181, i32 0, i32 0
  %4793 = load i32, ptr %4792, align 4
  %4794 = call zeroext i1 @s2n_result_is_ok(i32 %4793)
  br i1 %4794, label %4848, label %4795

4795:                                             ; preds = %4785
  br label %4796

4796:                                             ; preds = %4795
  br label %4797

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

4804:                                             ; preds = %4797
  %4805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4806 = call i32 @fileno(ptr noundef %4805) #10
  %4807 = call i32 @isatty(i32 noundef %4806) #10
  %4808 = icmp ne i32 %4807, 0
  br i1 %4808, label %4809, label %4826

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

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

4843:                                             ; preds = %4826, %4809
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #10
  br label %4844

4844:                                             ; preds = %4843
  br label %4845

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

4846:                                             ; No predecessors!
  br label %4847

4847:                                             ; preds = %4846
  br label %4848

4848:                                             ; preds = %4847, %4785
  br label %4849

4849:                                             ; preds = %4848
  br label %4850

4850:                                             ; preds = %4849
  br label %4851

4851:                                             ; preds = %4850
  %4852 = load i32, ptr @test_count, align 4, !tbaa !5
  %4853 = add nsw i32 %4852, 1
  store i32 %4853, ptr @test_count, align 4, !tbaa !5
  %4854 = load i64, ptr @hello_request_count, align 8, !tbaa !16
  %4855 = icmp eq i64 %4854, 5
  br i1 %4855, label %4909, label %4856

4856:                                             ; preds = %4851
  br label %4857

4857:                                             ; preds = %4856
  br label %4858

4858:                                             ; preds = %4857
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #10
  %4859 = call ptr @__errno_location() #11
  %4860 = load i32, ptr %4859, align 4, !tbaa !5
  store i32 %4860, ptr %183, align 4, !tbaa !5
  %4861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4862 = call i32 @s2n_print_stacktrace(ptr noundef %4861)
  %4863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4864 = trunc i8 %4863 to i1
  br i1 %4864, label %4865, label %4887

4865:                                             ; preds = %4858
  %4866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4867 = call i32 @fileno(ptr noundef %4866) #10
  %4868 = call i32 @isatty(i32 noundef %4867) #10
  %4869 = icmp ne i32 %4868, 0
  br i1 %4869, label %4870, label %4887

4870:                                             ; preds = %4865
  %4871 = load i32, ptr %183, align 4, !tbaa !5
  %4872 = call ptr @__errno_location() #11
  store i32 %4871, ptr %4872, align 4, !tbaa !5
  %4873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4874 = load i32, ptr @test_count, align 4, !tbaa !5
  %4875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4876 = load i32, ptr %4875, align 4, !tbaa !5
  %4877 = call ptr @s2n_strerror(i32 noundef %4876, ptr noundef @.str.4)
  %4878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4879 = load i32, ptr %4878, align 4, !tbaa !5
  %4880 = call ptr @s2n_strerror_debug(i32 noundef %4879, ptr noundef @.str.4)
  %4881 = call ptr @__errno_location() #11
  %4882 = load i32, ptr %4881, align 4, !tbaa !5
  %4883 = call ptr @strerror(i32 noundef %4882) #10
  %4884 = call ptr @__errno_location() #11
  %4885 = load i32, ptr %4884, align 4, !tbaa !5
  %4886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4873, ptr noundef @.str.2, i32 noundef %4874, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 411, ptr noundef %4877, ptr noundef %4880, ptr noundef %4883, i32 noundef %4885) #10
  br label %4904

4887:                                             ; preds = %4865, %4858
  %4888 = load i32, ptr %183, align 4, !tbaa !5
  %4889 = call ptr @__errno_location() #11
  store i32 %4888, ptr %4889, align 4, !tbaa !5
  %4890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4891 = load i32, ptr @test_count, align 4, !tbaa !5
  %4892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4893 = load i32, ptr %4892, align 4, !tbaa !5
  %4894 = call ptr @s2n_strerror(i32 noundef %4893, ptr noundef @.str.4)
  %4895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4896 = load i32, ptr %4895, align 4, !tbaa !5
  %4897 = call ptr @s2n_strerror_debug(i32 noundef %4896, ptr noundef @.str.4)
  %4898 = call ptr @__errno_location() #11
  %4899 = load i32, ptr %4898, align 4, !tbaa !5
  %4900 = call ptr @strerror(i32 noundef %4899) #10
  %4901 = call ptr @__errno_location() #11
  %4902 = load i32, ptr %4901, align 4, !tbaa !5
  %4903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4890, ptr noundef @.str.5, i32 noundef %4891, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 411, ptr noundef %4894, ptr noundef %4897, ptr noundef %4900, i32 noundef %4902) #10
  br label %4904

4904:                                             ; preds = %4887, %4870
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #10
  br label %4905

4905:                                             ; preds = %4904
  br label %4906

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

4907:                                             ; No predecessors!
  br label %4908

4908:                                             ; preds = %4907
  br label %4909

4909:                                             ; preds = %4908, %4851
  br label %4910

4910:                                             ; preds = %4909
  br label %4911

4911:                                             ; preds = %4910
  br label %4912

4912:                                             ; preds = %4911
  %4913 = load i32, ptr @test_count, align 4, !tbaa !5
  %4914 = add nsw i32 %4913, 1
  store i32 %4914, ptr @test_count, align 4, !tbaa !5
  %4915 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0)
  %4916 = getelementptr inbounds %struct.s2n_result, ptr %184, i32 0, i32 0
  store i32 %4915, ptr %4916, align 4
  %4917 = getelementptr inbounds %struct.s2n_result, ptr %184, i32 0, i32 0
  %4918 = load i32, ptr %4917, align 4
  %4919 = call zeroext i1 @s2n_result_is_ok(i32 %4918)
  br i1 %4919, label %4973, label %4920

4920:                                             ; preds = %4912
  br label %4921

4921:                                             ; preds = %4920
  br label %4922

4922:                                             ; preds = %4921
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #10
  %4923 = call ptr @__errno_location() #11
  %4924 = load i32, ptr %4923, align 4, !tbaa !5
  store i32 %4924, ptr %185, align 4, !tbaa !5
  %4925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4926 = call i32 @s2n_print_stacktrace(ptr noundef %4925)
  %4927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4928 = trunc i8 %4927 to i1
  br i1 %4928, label %4929, label %4951

4929:                                             ; preds = %4922
  %4930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4931 = call i32 @fileno(ptr noundef %4930) #10
  %4932 = call i32 @isatty(i32 noundef %4931) #10
  %4933 = icmp ne i32 %4932, 0
  br i1 %4933, label %4934, label %4951

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

4951:                                             ; preds = %4929, %4922
  %4952 = load i32, ptr %185, align 4, !tbaa !5
  %4953 = call ptr @__errno_location() #11
  store i32 %4952, ptr %4953, align 4, !tbaa !5
  %4954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4955 = load i32, ptr @test_count, align 4, !tbaa !5
  %4956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4957 = load i32, ptr %4956, align 4, !tbaa !5
  %4958 = call ptr @s2n_strerror(i32 noundef %4957, ptr noundef @.str.4)
  %4959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4960 = load i32, ptr %4959, align 4, !tbaa !5
  %4961 = call ptr @s2n_strerror_debug(i32 noundef %4960, ptr noundef @.str.4)
  %4962 = call ptr @__errno_location() #11
  %4963 = load i32, ptr %4962, align 4, !tbaa !5
  %4964 = call ptr @strerror(i32 noundef %4963) #10
  %4965 = call ptr @__errno_location() #11
  %4966 = load i32, ptr %4965, align 4, !tbaa !5
  %4967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4954, ptr noundef @.str.5, i32 noundef %4955, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 412, ptr noundef %4958, ptr noundef %4961, ptr noundef %4964, i32 noundef %4966) #10
  br label %4968

4968:                                             ; preds = %4951, %4934
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #10
  br label %4969

4969:                                             ; preds = %4968
  br label %4970

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

4971:                                             ; No predecessors!
  br label %4972

4972:                                             ; preds = %4971
  br label %4973

4973:                                             ; preds = %4972, %4912
  br label %4974

4974:                                             ; preds = %4973
  br label %4975

4975:                                             ; preds = %4974
  br label %4976

4976:                                             ; preds = %4975
  %4977 = load i32, ptr @test_count, align 4, !tbaa !5
  %4978 = add nsw i32 %4977, 1
  store i32 %4978, ptr @test_count, align 4, !tbaa !5
  %4979 = load ptr, ptr %167, align 8, !tbaa !9
  %4980 = load i32, ptr %165, align 4, !tbaa !5
  %4981 = call i32 @s2n_test_send_records(ptr noundef %4979, ptr noundef byval(%struct.s2n_stuffer) align 8 %171, i32 noundef %4980)
  %4982 = getelementptr inbounds %struct.s2n_result, ptr %186, i32 0, i32 0
  store i32 %4981, ptr %4982, align 4
  %4983 = getelementptr inbounds %struct.s2n_result, ptr %186, i32 0, i32 0
  %4984 = load i32, ptr %4983, align 4
  %4985 = call zeroext i1 @s2n_result_is_ok(i32 %4984)
  br i1 %4985, label %5039, label %4986

4986:                                             ; preds = %4976
  br label %4987

4987:                                             ; preds = %4986
  br label %4988

4988:                                             ; preds = %4987
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #10
  %4989 = call ptr @__errno_location() #11
  %4990 = load i32, ptr %4989, align 4, !tbaa !5
  store i32 %4990, ptr %187, align 4, !tbaa !5
  %4991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4992 = call i32 @s2n_print_stacktrace(ptr noundef %4991)
  %4993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4994 = trunc i8 %4993 to i1
  br i1 %4994, label %4995, label %5017

4995:                                             ; preds = %4988
  %4996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4997 = call i32 @fileno(ptr noundef %4996) #10
  %4998 = call i32 @isatty(i32 noundef %4997) #10
  %4999 = icmp ne i32 %4998, 0
  br i1 %4999, label %5000, label %5017

5000:                                             ; preds = %4995
  %5001 = load i32, ptr %187, align 4, !tbaa !5
  %5002 = call ptr @__errno_location() #11
  store i32 %5001, ptr %5002, align 4, !tbaa !5
  %5003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5004 = load i32, ptr @test_count, align 4, !tbaa !5
  %5005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5006 = load i32, ptr %5005, align 4, !tbaa !5
  %5007 = call ptr @s2n_strerror(i32 noundef %5006, ptr noundef @.str.4)
  %5008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5009 = load i32, ptr %5008, align 4, !tbaa !5
  %5010 = call ptr @s2n_strerror_debug(i32 noundef %5009, ptr noundef @.str.4)
  %5011 = call ptr @__errno_location() #11
  %5012 = load i32, ptr %5011, align 4, !tbaa !5
  %5013 = call ptr @strerror(i32 noundef %5012) #10
  %5014 = call ptr @__errno_location() #11
  %5015 = load i32, ptr %5014, align 4, !tbaa !5
  %5016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5003, ptr noundef @.str.2, i32 noundef %5004, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 414, ptr noundef %5007, ptr noundef %5010, ptr noundef %5013, i32 noundef %5015) #10
  br label %5034

5017:                                             ; preds = %4995, %4988
  %5018 = load i32, ptr %187, align 4, !tbaa !5
  %5019 = call ptr @__errno_location() #11
  store i32 %5018, ptr %5019, align 4, !tbaa !5
  %5020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5021 = load i32, ptr @test_count, align 4, !tbaa !5
  %5022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5023 = load i32, ptr %5022, align 4, !tbaa !5
  %5024 = call ptr @s2n_strerror(i32 noundef %5023, ptr noundef @.str.4)
  %5025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5026 = load i32, ptr %5025, align 4, !tbaa !5
  %5027 = call ptr @s2n_strerror_debug(i32 noundef %5026, ptr noundef @.str.4)
  %5028 = call ptr @__errno_location() #11
  %5029 = load i32, ptr %5028, align 4, !tbaa !5
  %5030 = call ptr @strerror(i32 noundef %5029) #10
  %5031 = call ptr @__errno_location() #11
  %5032 = load i32, ptr %5031, align 4, !tbaa !5
  %5033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5020, ptr noundef @.str.5, i32 noundef %5021, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 414, ptr noundef %5024, ptr noundef %5027, ptr noundef %5030, i32 noundef %5032) #10
  br label %5034

5034:                                             ; preds = %5017, %5000
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #10
  br label %5035

5035:                                             ; preds = %5034
  br label %5036

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

5037:                                             ; No predecessors!
  br label %5038

5038:                                             ; preds = %5037
  br label %5039

5039:                                             ; preds = %5038, %4976
  br label %5040

5040:                                             ; preds = %5039
  br label %5041

5041:                                             ; preds = %5040
  br label %5042

5042:                                             ; preds = %5041
  %5043 = load i32, ptr @test_count, align 4, !tbaa !5
  %5044 = add nsw i32 %5043, 1
  store i32 %5044, ptr @test_count, align 4, !tbaa !5
  %5045 = load ptr, ptr %167, align 8, !tbaa !9
  %5046 = load ptr, ptr %166, align 8, !tbaa !9
  %5047 = call i32 @s2n_test_blocking_recv(ptr noundef %5045, ptr noundef %5046, ptr noundef %168)
  %5048 = getelementptr inbounds %struct.s2n_result, ptr %188, i32 0, i32 0
  store i32 %5047, ptr %5048, align 4
  %5049 = getelementptr inbounds %struct.s2n_result, ptr %188, i32 0, i32 0
  %5050 = load i32, ptr %5049, align 4
  %5051 = call zeroext i1 @s2n_result_is_ok(i32 %5050)
  br i1 %5051, label %5105, label %5052

5052:                                             ; preds = %5042
  br label %5053

5053:                                             ; preds = %5052
  br label %5054

5054:                                             ; preds = %5053
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #10
  %5055 = call ptr @__errno_location() #11
  %5056 = load i32, ptr %5055, align 4, !tbaa !5
  store i32 %5056, ptr %189, align 4, !tbaa !5
  %5057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5058 = call i32 @s2n_print_stacktrace(ptr noundef %5057)
  %5059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5060 = trunc i8 %5059 to i1
  br i1 %5060, label %5061, label %5083

5061:                                             ; preds = %5054
  %5062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5063 = call i32 @fileno(ptr noundef %5062) #10
  %5064 = call i32 @isatty(i32 noundef %5063) #10
  %5065 = icmp ne i32 %5064, 0
  br i1 %5065, label %5066, label %5083

5066:                                             ; preds = %5061
  %5067 = load i32, ptr %189, align 4, !tbaa !5
  %5068 = call ptr @__errno_location() #11
  store i32 %5067, ptr %5068, align 4, !tbaa !5
  %5069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5070 = load i32, ptr @test_count, align 4, !tbaa !5
  %5071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5072 = load i32, ptr %5071, align 4, !tbaa !5
  %5073 = call ptr @s2n_strerror(i32 noundef %5072, ptr noundef @.str.4)
  %5074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5075 = load i32, ptr %5074, align 4, !tbaa !5
  %5076 = call ptr @s2n_strerror_debug(i32 noundef %5075, ptr noundef @.str.4)
  %5077 = call ptr @__errno_location() #11
  %5078 = load i32, ptr %5077, align 4, !tbaa !5
  %5079 = call ptr @strerror(i32 noundef %5078) #10
  %5080 = call ptr @__errno_location() #11
  %5081 = load i32, ptr %5080, align 4, !tbaa !5
  %5082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5069, ptr noundef @.str.2, i32 noundef %5070, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 415, ptr noundef %5073, ptr noundef %5076, ptr noundef %5079, i32 noundef %5081) #10
  br label %5100

5083:                                             ; preds = %5061, %5054
  %5084 = load i32, ptr %189, align 4, !tbaa !5
  %5085 = call ptr @__errno_location() #11
  store i32 %5084, ptr %5085, align 4, !tbaa !5
  %5086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5087 = load i32, ptr @test_count, align 4, !tbaa !5
  %5088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5089 = load i32, ptr %5088, align 4, !tbaa !5
  %5090 = call ptr @s2n_strerror(i32 noundef %5089, ptr noundef @.str.4)
  %5091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5092 = load i32, ptr %5091, align 4, !tbaa !5
  %5093 = call ptr @s2n_strerror_debug(i32 noundef %5092, ptr noundef @.str.4)
  %5094 = call ptr @__errno_location() #11
  %5095 = load i32, ptr %5094, align 4, !tbaa !5
  %5096 = call ptr @strerror(i32 noundef %5095) #10
  %5097 = call ptr @__errno_location() #11
  %5098 = load i32, ptr %5097, align 4, !tbaa !5
  %5099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5086, ptr noundef @.str.5, i32 noundef %5087, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 415, ptr noundef %5090, ptr noundef %5093, ptr noundef %5096, i32 noundef %5098) #10
  br label %5100

5100:                                             ; preds = %5083, %5066
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #10
  br label %5101

5101:                                             ; preds = %5100
  br label %5102

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

5103:                                             ; No predecessors!
  br label %5104

5104:                                             ; preds = %5103
  br label %5105

5105:                                             ; preds = %5104, %5042
  br label %5106

5106:                                             ; preds = %5105
  br label %5107

5107:                                             ; preds = %5106
  br label %5108

5108:                                             ; preds = %5107
  %5109 = load i32, ptr @test_count, align 4, !tbaa !5
  %5110 = add nsw i32 %5109, 1
  store i32 %5110, ptr @test_count, align 4, !tbaa !5
  %5111 = load i64, ptr @hello_request_count, align 8, !tbaa !16
  %5112 = icmp eq i64 %5111, 5
  br i1 %5112, label %5166, label %5113

5113:                                             ; preds = %5108
  br label %5114

5114:                                             ; preds = %5113
  br label %5115

5115:                                             ; preds = %5114
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #10
  %5116 = call ptr @__errno_location() #11
  %5117 = load i32, ptr %5116, align 4, !tbaa !5
  store i32 %5117, ptr %190, align 4, !tbaa !5
  %5118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5119 = call i32 @s2n_print_stacktrace(ptr noundef %5118)
  %5120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5121 = trunc i8 %5120 to i1
  br i1 %5121, label %5122, label %5144

5122:                                             ; preds = %5115
  %5123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5124 = call i32 @fileno(ptr noundef %5123) #10
  %5125 = call i32 @isatty(i32 noundef %5124) #10
  %5126 = icmp ne i32 %5125, 0
  br i1 %5126, label %5127, label %5144

5127:                                             ; preds = %5122
  %5128 = load i32, ptr %190, align 4, !tbaa !5
  %5129 = call ptr @__errno_location() #11
  store i32 %5128, ptr %5129, align 4, !tbaa !5
  %5130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5131 = load i32, ptr @test_count, align 4, !tbaa !5
  %5132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5133 = load i32, ptr %5132, align 4, !tbaa !5
  %5134 = call ptr @s2n_strerror(i32 noundef %5133, ptr noundef @.str.4)
  %5135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5136 = load i32, ptr %5135, align 4, !tbaa !5
  %5137 = call ptr @s2n_strerror_debug(i32 noundef %5136, ptr noundef @.str.4)
  %5138 = call ptr @__errno_location() #11
  %5139 = load i32, ptr %5138, align 4, !tbaa !5
  %5140 = call ptr @strerror(i32 noundef %5139) #10
  %5141 = call ptr @__errno_location() #11
  %5142 = load i32, ptr %5141, align 4, !tbaa !5
  %5143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5130, ptr noundef @.str.2, i32 noundef %5131, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 416, ptr noundef %5134, ptr noundef %5137, ptr noundef %5140, i32 noundef %5142) #10
  br label %5161

5144:                                             ; preds = %5122, %5115
  %5145 = load i32, ptr %190, align 4, !tbaa !5
  %5146 = call ptr @__errno_location() #11
  store i32 %5145, ptr %5146, align 4, !tbaa !5
  %5147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5148 = load i32, ptr @test_count, align 4, !tbaa !5
  %5149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5150 = load i32, ptr %5149, align 4, !tbaa !5
  %5151 = call ptr @s2n_strerror(i32 noundef %5150, ptr noundef @.str.4)
  %5152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5153 = load i32, ptr %5152, align 4, !tbaa !5
  %5154 = call ptr @s2n_strerror_debug(i32 noundef %5153, ptr noundef @.str.4)
  %5155 = call ptr @__errno_location() #11
  %5156 = load i32, ptr %5155, align 4, !tbaa !5
  %5157 = call ptr @strerror(i32 noundef %5156) #10
  %5158 = call ptr @__errno_location() #11
  %5159 = load i32, ptr %5158, align 4, !tbaa !5
  %5160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5147, ptr noundef @.str.5, i32 noundef %5148, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 416, ptr noundef %5151, ptr noundef %5154, ptr noundef %5157, i32 noundef %5159) #10
  br label %5161

5161:                                             ; preds = %5144, %5127
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #10
  br label %5162

5162:                                             ; preds = %5161
  br label %5163

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

5164:                                             ; No predecessors!
  br label %5165

5165:                                             ; preds = %5164
  br label %5166

5166:                                             ; preds = %5165, %5108
  br label %5167

5167:                                             ; preds = %5166
  br label %5168

5168:                                             ; preds = %5167
  br label %5169

5169:                                             ; preds = %5168
  %5170 = load i32, ptr @test_count, align 4, !tbaa !5
  %5171 = add nsw i32 %5170, 1
  store i32 %5171, ptr @test_count, align 4, !tbaa !5
  %5172 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0)
  %5173 = getelementptr inbounds %struct.s2n_result, ptr %191, i32 0, i32 0
  store i32 %5172, ptr %5173, align 4
  %5174 = getelementptr inbounds %struct.s2n_result, ptr %191, i32 0, i32 0
  %5175 = load i32, ptr %5174, align 4
  %5176 = call zeroext i1 @s2n_result_is_ok(i32 %5175)
  br i1 %5176, label %5230, label %5177

5177:                                             ; preds = %5169
  br label %5178

5178:                                             ; preds = %5177
  br label %5179

5179:                                             ; preds = %5178
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #10
  %5180 = call ptr @__errno_location() #11
  %5181 = load i32, ptr %5180, align 4, !tbaa !5
  store i32 %5181, ptr %192, align 4, !tbaa !5
  %5182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5183 = call i32 @s2n_print_stacktrace(ptr noundef %5182)
  %5184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5185 = trunc i8 %5184 to i1
  br i1 %5185, label %5186, label %5208

5186:                                             ; preds = %5179
  %5187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5188 = call i32 @fileno(ptr noundef %5187) #10
  %5189 = call i32 @isatty(i32 noundef %5188) #10
  %5190 = icmp ne i32 %5189, 0
  br i1 %5190, label %5191, label %5208

5191:                                             ; preds = %5186
  %5192 = load i32, ptr %192, align 4, !tbaa !5
  %5193 = call ptr @__errno_location() #11
  store i32 %5192, ptr %5193, align 4, !tbaa !5
  %5194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5195 = load i32, ptr @test_count, align 4, !tbaa !5
  %5196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5197 = load i32, ptr %5196, align 4, !tbaa !5
  %5198 = call ptr @s2n_strerror(i32 noundef %5197, ptr noundef @.str.4)
  %5199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5200 = load i32, ptr %5199, align 4, !tbaa !5
  %5201 = call ptr @s2n_strerror_debug(i32 noundef %5200, ptr noundef @.str.4)
  %5202 = call ptr @__errno_location() #11
  %5203 = load i32, ptr %5202, align 4, !tbaa !5
  %5204 = call ptr @strerror(i32 noundef %5203) #10
  %5205 = call ptr @__errno_location() #11
  %5206 = load i32, ptr %5205, align 4, !tbaa !5
  %5207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5194, ptr noundef @.str.2, i32 noundef %5195, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 417, ptr noundef %5198, ptr noundef %5201, ptr noundef %5204, i32 noundef %5206) #10
  br label %5225

5208:                                             ; preds = %5186, %5179
  %5209 = load i32, ptr %192, align 4, !tbaa !5
  %5210 = call ptr @__errno_location() #11
  store i32 %5209, ptr %5210, align 4, !tbaa !5
  %5211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5212 = load i32, ptr @test_count, align 4, !tbaa !5
  %5213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5214 = load i32, ptr %5213, align 4, !tbaa !5
  %5215 = call ptr @s2n_strerror(i32 noundef %5214, ptr noundef @.str.4)
  %5216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5217 = load i32, ptr %5216, align 4, !tbaa !5
  %5218 = call ptr @s2n_strerror_debug(i32 noundef %5217, ptr noundef @.str.4)
  %5219 = call ptr @__errno_location() #11
  %5220 = load i32, ptr %5219, align 4, !tbaa !5
  %5221 = call ptr @strerror(i32 noundef %5220) #10
  %5222 = call ptr @__errno_location() #11
  %5223 = load i32, ptr %5222, align 4, !tbaa !5
  %5224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5211, ptr noundef @.str.5, i32 noundef %5212, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 417, ptr noundef %5215, ptr noundef %5218, ptr noundef %5221, i32 noundef %5223) #10
  br label %5225

5225:                                             ; preds = %5208, %5191
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #10
  br label %5226

5226:                                             ; preds = %5225
  br label %5227

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

5228:                                             ; No predecessors!
  br label %5229

5229:                                             ; preds = %5228
  br label %5230

5230:                                             ; preds = %5229, %5169
  br label %5231

5231:                                             ; preds = %5230
  br label %5232

5232:                                             ; preds = %5231
  %5233 = call i32 @s2n_mem_test_free_callbacks(ptr noundef %176)
  %5234 = getelementptr inbounds %struct.s2n_result, ptr %193, i32 0, i32 0
  store i32 %5233, ptr %5234, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %176) #10
  %5235 = call i32 @s2n_stuffer_free(ptr noundef %171)
  call void @llvm.lifetime.end.p0(i64 40, ptr %171) #10
  %5236 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %168)
  %5237 = getelementptr inbounds %struct.s2n_result, ptr %194, i32 0, i32 0
  store i32 %5236, ptr %5237, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %168) #10
  %5238 = call i32 @s2n_connection_ptr_free(ptr noundef %167)
  %5239 = getelementptr inbounds %struct.s2n_result, ptr %195, i32 0, i32 0
  store i32 %5238, ptr %5239, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #10
  %5240 = call i32 @s2n_connection_ptr_free(ptr noundef %166)
  %5241 = getelementptr inbounds %struct.s2n_result, ptr %196, i32 0, i32 0
  store i32 %5240, ptr %5241, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #10
  br label %5242

5242:                                             ; preds = %5232
  %5243 = load i64, ptr %164, align 8, !tbaa !16
  %5244 = add i64 %5243, 1
  store i64 %5244, ptr %164, align 8, !tbaa !16
  br label %4382, !llvm.loop !64

5245:                                             ; preds = %4385
  call void @llvm.lifetime.start.p0(i64 8, ptr %197) #10
  store i64 0, ptr %197, align 8, !tbaa !16
  br label %5246

5246:                                             ; preds = %5995, %5245
  %5247 = load i64, ptr %197, align 8, !tbaa !16
  %5248 = icmp ult i64 %5247, 7
  br i1 %5248, label %5250, label %5249

5249:                                             ; preds = %5246
  store i32 492, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %197) #10
  br label %5998

5250:                                             ; preds = %5246
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #10
  %5251 = load i64, ptr %197, align 8, !tbaa !16
  %5252 = getelementptr inbounds [7 x i32], ptr %21, i64 0, i64 %5251
  %5253 = load i32, ptr %5252, align 4, !tbaa !5
  store i32 %5253, ptr %198, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %199) #10
  store i64 0, ptr %199, align 8, !tbaa !16
  br label %5254

5254:                                             ; preds = %5991, %5250
  %5255 = load i64, ptr %199, align 8, !tbaa !16
  %5256 = icmp ult i64 %5255, 2
  br i1 %5256, label %5258, label %5257

5257:                                             ; preds = %5254
  store i32 495, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #10
  br label %5994

5258:                                             ; preds = %5254
  call void @llvm.lifetime.start.p0(i64 1, ptr %200) #10
  %5259 = load i64, ptr %199, align 8, !tbaa !16
  %5260 = getelementptr inbounds [2 x i8], ptr %22, i64 0, i64 %5259
  %5261 = load i8, ptr %5260, align 1, !tbaa !15
  store i8 %5261, ptr %200, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %201) #10
  %5262 = load i8, ptr %200, align 1, !tbaa !15
  %5263 = zext i8 %5262 to i32
  %5264 = call ptr @s2n_connection_new(i32 noundef %5263)
  store ptr %5264, ptr %201, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %202) #10
  %5265 = load i8, ptr %200, align 1, !tbaa !15
  %5266 = zext i8 %5265 to i32
  %5267 = add nsw i32 %5266, 1
  %5268 = srem i32 %5267, 2
  %5269 = call ptr @s2n_connection_new(i32 noundef %5268)
  store ptr %5269, ptr %202, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr %203) #10
  call void @llvm.memset.p0.i64(ptr align 8 %203, i8 0, i64 80, i1 false)
  br label %5270

5270:                                             ; preds = %5258
  %5271 = load i32, ptr @test_count, align 4, !tbaa !5
  %5272 = add nsw i32 %5271, 1
  store i32 %5272, ptr @test_count, align 4, !tbaa !5
  %5273 = load ptr, ptr %11, align 8, !tbaa !9
  %5274 = load ptr, ptr %202, align 8, !tbaa !9
  %5275 = load ptr, ptr %201, align 8, !tbaa !9
  %5276 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %5273, ptr noundef %5274, ptr noundef %5275, ptr noundef %203)
  %5277 = getelementptr inbounds %struct.s2n_result, ptr %204, i32 0, i32 0
  store i32 %5276, ptr %5277, align 4
  %5278 = getelementptr inbounds %struct.s2n_result, ptr %204, i32 0, i32 0
  %5279 = load i32, ptr %5278, align 4
  %5280 = call zeroext i1 @s2n_result_is_ok(i32 %5279)
  br i1 %5280, label %5334, label %5281

5281:                                             ; preds = %5270
  br label %5282

5282:                                             ; preds = %5281
  br label %5283

5283:                                             ; preds = %5282
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #10
  %5284 = call ptr @__errno_location() #11
  %5285 = load i32, ptr %5284, align 4, !tbaa !5
  store i32 %5285, ptr %205, align 4, !tbaa !5
  %5286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5287 = call i32 @s2n_print_stacktrace(ptr noundef %5286)
  %5288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5289 = trunc i8 %5288 to i1
  br i1 %5289, label %5290, label %5312

5290:                                             ; preds = %5283
  %5291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5292 = call i32 @fileno(ptr noundef %5291) #10
  %5293 = call i32 @isatty(i32 noundef %5292) #10
  %5294 = icmp ne i32 %5293, 0
  br i1 %5294, label %5295, label %5312

5295:                                             ; preds = %5290
  %5296 = load i32, ptr %205, align 4, !tbaa !5
  %5297 = call ptr @__errno_location() #11
  store i32 %5296, ptr %5297, align 4, !tbaa !5
  %5298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5299 = load i32, ptr @test_count, align 4, !tbaa !5
  %5300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5301 = load i32, ptr %5300, align 4, !tbaa !5
  %5302 = call ptr @s2n_strerror(i32 noundef %5301, ptr noundef @.str.4)
  %5303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5304 = load i32, ptr %5303, align 4, !tbaa !5
  %5305 = call ptr @s2n_strerror_debug(i32 noundef %5304, ptr noundef @.str.4)
  %5306 = call ptr @__errno_location() #11
  %5307 = load i32, ptr %5306, align 4, !tbaa !5
  %5308 = call ptr @strerror(i32 noundef %5307) #10
  %5309 = call ptr @__errno_location() #11
  %5310 = load i32, ptr %5309, align 4, !tbaa !5
  %5311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5298, ptr noundef @.str.2, i32 noundef %5299, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 430, ptr noundef %5302, ptr noundef %5305, ptr noundef %5308, i32 noundef %5310) #10
  br label %5329

5312:                                             ; preds = %5290, %5283
  %5313 = load i32, ptr %205, align 4, !tbaa !5
  %5314 = call ptr @__errno_location() #11
  store i32 %5313, ptr %5314, align 4, !tbaa !5
  %5315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5316 = load i32, ptr @test_count, align 4, !tbaa !5
  %5317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5318 = load i32, ptr %5317, align 4, !tbaa !5
  %5319 = call ptr @s2n_strerror(i32 noundef %5318, ptr noundef @.str.4)
  %5320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5321 = load i32, ptr %5320, align 4, !tbaa !5
  %5322 = call ptr @s2n_strerror_debug(i32 noundef %5321, ptr noundef @.str.4)
  %5323 = call ptr @__errno_location() #11
  %5324 = load i32, ptr %5323, align 4, !tbaa !5
  %5325 = call ptr @strerror(i32 noundef %5324) #10
  %5326 = call ptr @__errno_location() #11
  %5327 = load i32, ptr %5326, align 4, !tbaa !5
  %5328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5315, ptr noundef @.str.5, i32 noundef %5316, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 430, ptr noundef %5319, ptr noundef %5322, ptr noundef %5325, i32 noundef %5327) #10
  br label %5329

5329:                                             ; preds = %5312, %5295
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #10
  br label %5330

5330:                                             ; preds = %5329
  br label %5331

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

5332:                                             ; No predecessors!
  br label %5333

5333:                                             ; preds = %5332
  br label %5334

5334:                                             ; preds = %5333, %5270
  br label %5335

5335:                                             ; preds = %5334
  br label %5336

5336:                                             ; preds = %5335
  call void @llvm.lifetime.start.p0(i64 40, ptr %206) #10
  call void @llvm.memset.p0.i64(ptr align 8 %206, i8 0, i64 40, i1 false)
  br label %5337

5337:                                             ; preds = %5336
  %5338 = load i32, ptr @test_count, align 4, !tbaa !5
  %5339 = add nsw i32 %5338, 1
  store i32 %5339, ptr @test_count, align 4, !tbaa !5
  %5340 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %206, i32 noundef 4)
  %5341 = icmp eq i32 %5340, -1
  br i1 %5341, label %5342, label %5395

5342:                                             ; preds = %5337
  br label %5343

5343:                                             ; preds = %5342
  br label %5344

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

5351:                                             ; preds = %5344
  %5352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5353 = call i32 @fileno(ptr noundef %5352) #10
  %5354 = call i32 @isatty(i32 noundef %5353) #10
  %5355 = icmp ne i32 %5354, 0
  br i1 %5355, label %5356, label %5373

5356:                                             ; preds = %5351
  %5357 = load i32, ptr %207, align 4, !tbaa !5
  %5358 = call ptr @__errno_location() #11
  store i32 %5357, ptr %5358, align 4, !tbaa !5
  %5359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5360 = load i32, ptr @test_count, align 4, !tbaa !5
  %5361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5362 = load i32, ptr %5361, align 4, !tbaa !5
  %5363 = call ptr @s2n_strerror(i32 noundef %5362, ptr noundef @.str.4)
  %5364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5365 = load i32, ptr %5364, align 4, !tbaa !5
  %5366 = call ptr @s2n_strerror_debug(i32 noundef %5365, ptr noundef @.str.4)
  %5367 = call ptr @__errno_location() #11
  %5368 = load i32, ptr %5367, align 4, !tbaa !5
  %5369 = call ptr @strerror(i32 noundef %5368) #10
  %5370 = call ptr @__errno_location() #11
  %5371 = load i32, ptr %5370, align 4, !tbaa !5
  %5372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5359, ptr noundef @.str.2, i32 noundef %5360, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 434, ptr noundef %5363, ptr noundef %5366, ptr noundef %5369, i32 noundef %5371) #10
  br label %5390

5373:                                             ; preds = %5351, %5344
  %5374 = load i32, ptr %207, align 4, !tbaa !5
  %5375 = call ptr @__errno_location() #11
  store i32 %5374, ptr %5375, align 4, !tbaa !5
  %5376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5377 = load i32, ptr @test_count, align 4, !tbaa !5
  %5378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5379 = load i32, ptr %5378, align 4, !tbaa !5
  %5380 = call ptr @s2n_strerror(i32 noundef %5379, ptr noundef @.str.4)
  %5381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5382 = load i32, ptr %5381, align 4, !tbaa !5
  %5383 = call ptr @s2n_strerror_debug(i32 noundef %5382, ptr noundef @.str.4)
  %5384 = call ptr @__errno_location() #11
  %5385 = load i32, ptr %5384, align 4, !tbaa !5
  %5386 = call ptr @strerror(i32 noundef %5385) #10
  %5387 = call ptr @__errno_location() #11
  %5388 = load i32, ptr %5387, align 4, !tbaa !5
  %5389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5376, ptr noundef @.str.5, i32 noundef %5377, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 434, ptr noundef %5380, ptr noundef %5383, ptr noundef %5386, i32 noundef %5388) #10
  br label %5390

5390:                                             ; preds = %5373, %5356
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #10
  br label %5391

5391:                                             ; preds = %5390
  br label %5392

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

5393:                                             ; No predecessors!
  br label %5394

5394:                                             ; preds = %5393
  br label %5395

5395:                                             ; preds = %5394, %5337
  br label %5396

5396:                                             ; preds = %5395
  br label %5397

5397:                                             ; preds = %5396
  br label %5398

5398:                                             ; preds = %5397
  %5399 = load i32, ptr @test_count, align 4, !tbaa !5
  %5400 = add nsw i32 %5399, 1
  store i32 %5400, ptr @test_count, align 4, !tbaa !5
  %5401 = call i32 @s2n_stuffer_write_uint8(ptr noundef %206, i8 noundef zeroext 1)
  %5402 = icmp eq i32 %5401, -1
  br i1 %5402, label %5403, label %5456

5403:                                             ; preds = %5398
  br label %5404

5404:                                             ; preds = %5403
  br label %5405

5405:                                             ; preds = %5404
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #10
  %5406 = call ptr @__errno_location() #11
  %5407 = load i32, ptr %5406, align 4, !tbaa !5
  store i32 %5407, ptr %208, align 4, !tbaa !5
  %5408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5409 = call i32 @s2n_print_stacktrace(ptr noundef %5408)
  %5410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5411 = trunc i8 %5410 to i1
  br i1 %5411, label %5412, label %5434

5412:                                             ; preds = %5405
  %5413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5414 = call i32 @fileno(ptr noundef %5413) #10
  %5415 = call i32 @isatty(i32 noundef %5414) #10
  %5416 = icmp ne i32 %5415, 0
  br i1 %5416, label %5417, label %5434

5417:                                             ; preds = %5412
  %5418 = load i32, ptr %208, align 4, !tbaa !5
  %5419 = call ptr @__errno_location() #11
  store i32 %5418, ptr %5419, align 4, !tbaa !5
  %5420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5421 = load i32, ptr @test_count, align 4, !tbaa !5
  %5422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5423 = load i32, ptr %5422, align 4, !tbaa !5
  %5424 = call ptr @s2n_strerror(i32 noundef %5423, ptr noundef @.str.4)
  %5425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5426 = load i32, ptr %5425, align 4, !tbaa !5
  %5427 = call ptr @s2n_strerror_debug(i32 noundef %5426, ptr noundef @.str.4)
  %5428 = call ptr @__errno_location() #11
  %5429 = load i32, ptr %5428, align 4, !tbaa !5
  %5430 = call ptr @strerror(i32 noundef %5429) #10
  %5431 = call ptr @__errno_location() #11
  %5432 = load i32, ptr %5431, align 4, !tbaa !5
  %5433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5420, ptr noundef @.str.2, i32 noundef %5421, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 435, ptr noundef %5424, ptr noundef %5427, ptr noundef %5430, i32 noundef %5432) #10
  br label %5451

5434:                                             ; preds = %5412, %5405
  %5435 = load i32, ptr %208, align 4, !tbaa !5
  %5436 = call ptr @__errno_location() #11
  store i32 %5435, ptr %5436, align 4, !tbaa !5
  %5437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5438 = load i32, ptr @test_count, align 4, !tbaa !5
  %5439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5440 = load i32, ptr %5439, align 4, !tbaa !5
  %5441 = call ptr @s2n_strerror(i32 noundef %5440, ptr noundef @.str.4)
  %5442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5443 = load i32, ptr %5442, align 4, !tbaa !5
  %5444 = call ptr @s2n_strerror_debug(i32 noundef %5443, ptr noundef @.str.4)
  %5445 = call ptr @__errno_location() #11
  %5446 = load i32, ptr %5445, align 4, !tbaa !5
  %5447 = call ptr @strerror(i32 noundef %5446) #10
  %5448 = call ptr @__errno_location() #11
  %5449 = load i32, ptr %5448, align 4, !tbaa !5
  %5450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5437, ptr noundef @.str.5, i32 noundef %5438, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 435, ptr noundef %5441, ptr noundef %5444, ptr noundef %5447, i32 noundef %5449) #10
  br label %5451

5451:                                             ; preds = %5434, %5417
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #10
  br label %5452

5452:                                             ; preds = %5451
  br label %5453

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

5454:                                             ; No predecessors!
  br label %5455

5455:                                             ; preds = %5454
  br label %5456

5456:                                             ; preds = %5455, %5398
  br label %5457

5457:                                             ; preds = %5456
  br label %5458

5458:                                             ; preds = %5457
  br label %5459

5459:                                             ; preds = %5458
  %5460 = load i32, ptr @test_count, align 4, !tbaa !5
  %5461 = add nsw i32 %5460, 1
  store i32 %5461, ptr @test_count, align 4, !tbaa !5
  %5462 = call i32 @s2n_stuffer_write_uint24(ptr noundef %206, i32 noundef 3001)
  %5463 = icmp eq i32 %5462, -1
  br i1 %5463, label %5464, label %5517

5464:                                             ; preds = %5459
  br label %5465

5465:                                             ; preds = %5464
  br label %5466

5466:                                             ; preds = %5465
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #10
  %5467 = call ptr @__errno_location() #11
  %5468 = load i32, ptr %5467, align 4, !tbaa !5
  store i32 %5468, ptr %209, align 4, !tbaa !5
  %5469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5470 = call i32 @s2n_print_stacktrace(ptr noundef %5469)
  %5471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5472 = trunc i8 %5471 to i1
  br i1 %5472, label %5473, label %5495

5473:                                             ; preds = %5466
  %5474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5475 = call i32 @fileno(ptr noundef %5474) #10
  %5476 = call i32 @isatty(i32 noundef %5475) #10
  %5477 = icmp ne i32 %5476, 0
  br i1 %5477, label %5478, label %5495

5478:                                             ; preds = %5473
  %5479 = load i32, ptr %209, align 4, !tbaa !5
  %5480 = call ptr @__errno_location() #11
  store i32 %5479, ptr %5480, align 4, !tbaa !5
  %5481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5482 = load i32, ptr @test_count, align 4, !tbaa !5
  %5483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5484 = load i32, ptr %5483, align 4, !tbaa !5
  %5485 = call ptr @s2n_strerror(i32 noundef %5484, ptr noundef @.str.4)
  %5486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5487 = load i32, ptr %5486, align 4, !tbaa !5
  %5488 = call ptr @s2n_strerror_debug(i32 noundef %5487, ptr noundef @.str.4)
  %5489 = call ptr @__errno_location() #11
  %5490 = load i32, ptr %5489, align 4, !tbaa !5
  %5491 = call ptr @strerror(i32 noundef %5490) #10
  %5492 = call ptr @__errno_location() #11
  %5493 = load i32, ptr %5492, align 4, !tbaa !5
  %5494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5481, ptr noundef @.str.2, i32 noundef %5482, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 436, ptr noundef %5485, ptr noundef %5488, ptr noundef %5491, i32 noundef %5493) #10
  br label %5512

5495:                                             ; preds = %5473, %5466
  %5496 = load i32, ptr %209, align 4, !tbaa !5
  %5497 = call ptr @__errno_location() #11
  store i32 %5496, ptr %5497, align 4, !tbaa !5
  %5498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5499 = load i32, ptr @test_count, align 4, !tbaa !5
  %5500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5501 = load i32, ptr %5500, align 4, !tbaa !5
  %5502 = call ptr @s2n_strerror(i32 noundef %5501, ptr noundef @.str.4)
  %5503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5504 = load i32, ptr %5503, align 4, !tbaa !5
  %5505 = call ptr @s2n_strerror_debug(i32 noundef %5504, ptr noundef @.str.4)
  %5506 = call ptr @__errno_location() #11
  %5507 = load i32, ptr %5506, align 4, !tbaa !5
  %5508 = call ptr @strerror(i32 noundef %5507) #10
  %5509 = call ptr @__errno_location() #11
  %5510 = load i32, ptr %5509, align 4, !tbaa !5
  %5511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5498, ptr noundef @.str.5, i32 noundef %5499, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 436, ptr noundef %5502, ptr noundef %5505, ptr noundef %5508, i32 noundef %5510) #10
  br label %5512

5512:                                             ; preds = %5495, %5478
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #10
  br label %5513

5513:                                             ; preds = %5512
  br label %5514

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

5515:                                             ; No predecessors!
  br label %5516

5516:                                             ; preds = %5515
  br label %5517

5517:                                             ; preds = %5516, %5459
  br label %5518

5518:                                             ; preds = %5517
  br label %5519

5519:                                             ; preds = %5518
  br label %5520

5520:                                             ; preds = %5519
  %5521 = load i32, ptr @test_count, align 4, !tbaa !5
  %5522 = add nsw i32 %5521, 1
  store i32 %5522, ptr @test_count, align 4, !tbaa !5
  %5523 = call i32 @s2n_stuffer_skip_write(ptr noundef %206, i32 noundef 3001)
  %5524 = icmp eq i32 %5523, -1
  br i1 %5524, label %5525, label %5578

5525:                                             ; preds = %5520
  br label %5526

5526:                                             ; preds = %5525
  br label %5527

5527:                                             ; preds = %5526
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #10
  %5528 = call ptr @__errno_location() #11
  %5529 = load i32, ptr %5528, align 4, !tbaa !5
  store i32 %5529, ptr %210, align 4, !tbaa !5
  %5530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5531 = call i32 @s2n_print_stacktrace(ptr noundef %5530)
  %5532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5533 = trunc i8 %5532 to i1
  br i1 %5533, label %5534, label %5556

5534:                                             ; preds = %5527
  %5535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5536 = call i32 @fileno(ptr noundef %5535) #10
  %5537 = call i32 @isatty(i32 noundef %5536) #10
  %5538 = icmp ne i32 %5537, 0
  br i1 %5538, label %5539, label %5556

5539:                                             ; preds = %5534
  %5540 = load i32, ptr %210, align 4, !tbaa !5
  %5541 = call ptr @__errno_location() #11
  store i32 %5540, ptr %5541, align 4, !tbaa !5
  %5542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5543 = load i32, ptr @test_count, align 4, !tbaa !5
  %5544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5545 = load i32, ptr %5544, align 4, !tbaa !5
  %5546 = call ptr @s2n_strerror(i32 noundef %5545, ptr noundef @.str.4)
  %5547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5548 = load i32, ptr %5547, align 4, !tbaa !5
  %5549 = call ptr @s2n_strerror_debug(i32 noundef %5548, ptr noundef @.str.4)
  %5550 = call ptr @__errno_location() #11
  %5551 = load i32, ptr %5550, align 4, !tbaa !5
  %5552 = call ptr @strerror(i32 noundef %5551) #10
  %5553 = call ptr @__errno_location() #11
  %5554 = load i32, ptr %5553, align 4, !tbaa !5
  %5555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5542, ptr noundef @.str.2, i32 noundef %5543, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 437, ptr noundef %5546, ptr noundef %5549, ptr noundef %5552, i32 noundef %5554) #10
  br label %5573

5556:                                             ; preds = %5534, %5527
  %5557 = load i32, ptr %210, align 4, !tbaa !5
  %5558 = call ptr @__errno_location() #11
  store i32 %5557, ptr %5558, align 4, !tbaa !5
  %5559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5560 = load i32, ptr @test_count, align 4, !tbaa !5
  %5561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5562 = load i32, ptr %5561, align 4, !tbaa !5
  %5563 = call ptr @s2n_strerror(i32 noundef %5562, ptr noundef @.str.4)
  %5564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5565 = load i32, ptr %5564, align 4, !tbaa !5
  %5566 = call ptr @s2n_strerror_debug(i32 noundef %5565, ptr noundef @.str.4)
  %5567 = call ptr @__errno_location() #11
  %5568 = load i32, ptr %5567, align 4, !tbaa !5
  %5569 = call ptr @strerror(i32 noundef %5568) #10
  %5570 = call ptr @__errno_location() #11
  %5571 = load i32, ptr %5570, align 4, !tbaa !5
  %5572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5559, ptr noundef @.str.5, i32 noundef %5560, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 437, ptr noundef %5563, ptr noundef %5566, ptr noundef %5569, i32 noundef %5571) #10
  br label %5573

5573:                                             ; preds = %5556, %5539
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #10
  br label %5574

5574:                                             ; preds = %5573
  br label %5575

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

5576:                                             ; No predecessors!
  br label %5577

5577:                                             ; preds = %5576
  br label %5578

5578:                                             ; preds = %5577, %5520
  br label %5579

5579:                                             ; preds = %5578
  br label %5580

5580:                                             ; preds = %5579
  br label %5581

5581:                                             ; preds = %5580
  %5582 = load i32, ptr @test_count, align 4, !tbaa !5
  %5583 = add nsw i32 %5582, 1
  store i32 %5583, ptr @test_count, align 4, !tbaa !5
  %5584 = load ptr, ptr %202, align 8, !tbaa !9
  %5585 = load i32, ptr %198, align 4, !tbaa !5
  %5586 = call i32 @s2n_test_send_records(ptr noundef %5584, ptr noundef byval(%struct.s2n_stuffer) align 8 %206, i32 noundef %5585)
  %5587 = getelementptr inbounds %struct.s2n_result, ptr %211, i32 0, i32 0
  store i32 %5586, ptr %5587, align 4
  %5588 = getelementptr inbounds %struct.s2n_result, ptr %211, i32 0, i32 0
  %5589 = load i32, ptr %5588, align 4
  %5590 = call zeroext i1 @s2n_result_is_ok(i32 %5589)
  br i1 %5590, label %5644, label %5591

5591:                                             ; preds = %5581
  br label %5592

5592:                                             ; preds = %5591
  br label %5593

5593:                                             ; preds = %5592
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #10
  %5594 = call ptr @__errno_location() #11
  %5595 = load i32, ptr %5594, align 4, !tbaa !5
  store i32 %5595, ptr %212, align 4, !tbaa !5
  %5596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5597 = call i32 @s2n_print_stacktrace(ptr noundef %5596)
  %5598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5599 = trunc i8 %5598 to i1
  br i1 %5599, label %5600, label %5622

5600:                                             ; preds = %5593
  %5601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5602 = call i32 @fileno(ptr noundef %5601) #10
  %5603 = call i32 @isatty(i32 noundef %5602) #10
  %5604 = icmp ne i32 %5603, 0
  br i1 %5604, label %5605, label %5622

5605:                                             ; preds = %5600
  %5606 = load i32, ptr %212, align 4, !tbaa !5
  %5607 = call ptr @__errno_location() #11
  store i32 %5606, ptr %5607, align 4, !tbaa !5
  %5608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5609 = load i32, ptr @test_count, align 4, !tbaa !5
  %5610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5611 = load i32, ptr %5610, align 4, !tbaa !5
  %5612 = call ptr @s2n_strerror(i32 noundef %5611, ptr noundef @.str.4)
  %5613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5614 = load i32, ptr %5613, align 4, !tbaa !5
  %5615 = call ptr @s2n_strerror_debug(i32 noundef %5614, ptr noundef @.str.4)
  %5616 = call ptr @__errno_location() #11
  %5617 = load i32, ptr %5616, align 4, !tbaa !5
  %5618 = call ptr @strerror(i32 noundef %5617) #10
  %5619 = call ptr @__errno_location() #11
  %5620 = load i32, ptr %5619, align 4, !tbaa !5
  %5621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5608, ptr noundef @.str.2, i32 noundef %5609, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 438, ptr noundef %5612, ptr noundef %5615, ptr noundef %5618, i32 noundef %5620) #10
  br label %5639

5622:                                             ; preds = %5600, %5593
  %5623 = load i32, ptr %212, align 4, !tbaa !5
  %5624 = call ptr @__errno_location() #11
  store i32 %5623, ptr %5624, align 4, !tbaa !5
  %5625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5626 = load i32, ptr @test_count, align 4, !tbaa !5
  %5627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5628 = load i32, ptr %5627, align 4, !tbaa !5
  %5629 = call ptr @s2n_strerror(i32 noundef %5628, ptr noundef @.str.4)
  %5630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5631 = load i32, ptr %5630, align 4, !tbaa !5
  %5632 = call ptr @s2n_strerror_debug(i32 noundef %5631, ptr noundef @.str.4)
  %5633 = call ptr @__errno_location() #11
  %5634 = load i32, ptr %5633, align 4, !tbaa !5
  %5635 = call ptr @strerror(i32 noundef %5634) #10
  %5636 = call ptr @__errno_location() #11
  %5637 = load i32, ptr %5636, align 4, !tbaa !5
  %5638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5625, ptr noundef @.str.5, i32 noundef %5626, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 438, ptr noundef %5629, ptr noundef %5632, ptr noundef %5635, i32 noundef %5637) #10
  br label %5639

5639:                                             ; preds = %5622, %5605
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #10
  br label %5640

5640:                                             ; preds = %5639
  br label %5641

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

5642:                                             ; No predecessors!
  br label %5643

5643:                                             ; preds = %5642
  br label %5644

5644:                                             ; preds = %5643, %5581
  br label %5645

5645:                                             ; preds = %5644
  br label %5646

5646:                                             ; preds = %5645
  call void @llvm.lifetime.start.p0(i64 1, ptr %213) #10
  call void @llvm.memset.p0.i64(ptr align 1 %213, i8 0, i64 1, i1 false)
  br label %5647

5647:                                             ; preds = %5646
  %5648 = load i32, ptr @test_count, align 4, !tbaa !5
  %5649 = add nsw i32 %5648, 1
  store i32 %5649, ptr @test_count, align 4, !tbaa !5
  %5650 = call i32 @s2n_mem_test_init_callbacks(ptr noundef %213)
  %5651 = getelementptr inbounds %struct.s2n_result, ptr %214, i32 0, i32 0
  store i32 %5650, ptr %5651, align 4
  %5652 = getelementptr inbounds %struct.s2n_result, ptr %214, i32 0, i32 0
  %5653 = load i32, ptr %5652, align 4
  %5654 = call zeroext i1 @s2n_result_is_ok(i32 %5653)
  br i1 %5654, label %5708, label %5655

5655:                                             ; preds = %5647
  br label %5656

5656:                                             ; preds = %5655
  br label %5657

5657:                                             ; preds = %5656
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #10
  %5658 = call ptr @__errno_location() #11
  %5659 = load i32, ptr %5658, align 4, !tbaa !5
  store i32 %5659, ptr %215, align 4, !tbaa !5
  %5660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5661 = call i32 @s2n_print_stacktrace(ptr noundef %5660)
  %5662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5663 = trunc i8 %5662 to i1
  br i1 %5663, label %5664, label %5686

5664:                                             ; preds = %5657
  %5665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5666 = call i32 @fileno(ptr noundef %5665) #10
  %5667 = call i32 @isatty(i32 noundef %5666) #10
  %5668 = icmp ne i32 %5667, 0
  br i1 %5668, label %5669, label %5686

5669:                                             ; preds = %5664
  %5670 = load i32, ptr %215, align 4, !tbaa !5
  %5671 = call ptr @__errno_location() #11
  store i32 %5670, ptr %5671, align 4, !tbaa !5
  %5672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5673 = load i32, ptr @test_count, align 4, !tbaa !5
  %5674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5675 = load i32, ptr %5674, align 4, !tbaa !5
  %5676 = call ptr @s2n_strerror(i32 noundef %5675, ptr noundef @.str.4)
  %5677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5678 = load i32, ptr %5677, align 4, !tbaa !5
  %5679 = call ptr @s2n_strerror_debug(i32 noundef %5678, ptr noundef @.str.4)
  %5680 = call ptr @__errno_location() #11
  %5681 = load i32, ptr %5680, align 4, !tbaa !5
  %5682 = call ptr @strerror(i32 noundef %5681) #10
  %5683 = call ptr @__errno_location() #11
  %5684 = load i32, ptr %5683, align 4, !tbaa !5
  %5685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5672, ptr noundef @.str.2, i32 noundef %5673, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 441, ptr noundef %5676, ptr noundef %5679, ptr noundef %5682, i32 noundef %5684) #10
  br label %5703

5686:                                             ; preds = %5664, %5657
  %5687 = load i32, ptr %215, align 4, !tbaa !5
  %5688 = call ptr @__errno_location() #11
  store i32 %5687, ptr %5688, align 4, !tbaa !5
  %5689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5690 = load i32, ptr @test_count, align 4, !tbaa !5
  %5691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5692 = load i32, ptr %5691, align 4, !tbaa !5
  %5693 = call ptr @s2n_strerror(i32 noundef %5692, ptr noundef @.str.4)
  %5694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5695 = load i32, ptr %5694, align 4, !tbaa !5
  %5696 = call ptr @s2n_strerror_debug(i32 noundef %5695, ptr noundef @.str.4)
  %5697 = call ptr @__errno_location() #11
  %5698 = load i32, ptr %5697, align 4, !tbaa !5
  %5699 = call ptr @strerror(i32 noundef %5698) #10
  %5700 = call ptr @__errno_location() #11
  %5701 = load i32, ptr %5700, align 4, !tbaa !5
  %5702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5689, ptr noundef @.str.5, i32 noundef %5690, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 441, ptr noundef %5693, ptr noundef %5696, ptr noundef %5699, i32 noundef %5701) #10
  br label %5703

5703:                                             ; preds = %5686, %5669
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #10
  br label %5704

5704:                                             ; preds = %5703
  br label %5705

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

5706:                                             ; No predecessors!
  br label %5707

5707:                                             ; preds = %5706
  br label %5708

5708:                                             ; preds = %5707, %5647
  br label %5709

5709:                                             ; preds = %5708
  br label %5710

5710:                                             ; preds = %5709
  br label %5711

5711:                                             ; preds = %5710
  br label %5712

5712:                                             ; preds = %5711
  br label %5713

5713:                                             ; preds = %5712
  %5714 = load i32, ptr @test_count, align 4, !tbaa !5
  %5715 = add nsw i32 %5714, 1
  store i32 %5715, ptr @test_count, align 4, !tbaa !5
  %5716 = load ptr, ptr %202, align 8, !tbaa !9
  %5717 = load ptr, ptr %201, align 8, !tbaa !9
  %5718 = call i32 @s2n_test_basic_recv(ptr noundef %5716, ptr noundef %5717)
  %5719 = getelementptr inbounds %struct.s2n_result, ptr %216, i32 0, i32 0
  store i32 %5718, ptr %5719, align 4
  %5720 = getelementptr inbounds %struct.s2n_result, ptr %216, i32 0, i32 0
  %5721 = load i32, ptr %5720, align 4
  %5722 = call zeroext i1 @s2n_result_is_error(i32 %5721)
  br i1 %5722, label %5776, label %5723

5723:                                             ; preds = %5713
  br label %5724

5724:                                             ; preds = %5723
  br label %5725

5725:                                             ; preds = %5724
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #10
  %5726 = call ptr @__errno_location() #11
  %5727 = load i32, ptr %5726, align 4, !tbaa !5
  store i32 %5727, ptr %217, align 4, !tbaa !5
  %5728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5729 = call i32 @s2n_print_stacktrace(ptr noundef %5728)
  %5730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5731 = trunc i8 %5730 to i1
  br i1 %5731, label %5732, label %5754

5732:                                             ; preds = %5725
  %5733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5734 = call i32 @fileno(ptr noundef %5733) #10
  %5735 = call i32 @isatty(i32 noundef %5734) #10
  %5736 = icmp ne i32 %5735, 0
  br i1 %5736, label %5737, label %5754

5737:                                             ; preds = %5732
  %5738 = load i32, ptr %217, align 4, !tbaa !5
  %5739 = call ptr @__errno_location() #11
  store i32 %5738, ptr %5739, align 4, !tbaa !5
  %5740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5741 = load i32, ptr @test_count, align 4, !tbaa !5
  %5742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5743 = load i32, ptr %5742, align 4, !tbaa !5
  %5744 = call ptr @s2n_strerror(i32 noundef %5743, ptr noundef @.str.4)
  %5745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5746 = load i32, ptr %5745, align 4, !tbaa !5
  %5747 = call ptr @s2n_strerror_debug(i32 noundef %5746, ptr noundef @.str.4)
  %5748 = call ptr @__errno_location() #11
  %5749 = load i32, ptr %5748, align 4, !tbaa !5
  %5750 = call ptr @strerror(i32 noundef %5749) #10
  %5751 = call ptr @__errno_location() #11
  %5752 = load i32, ptr %5751, align 4, !tbaa !5
  %5753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5740, ptr noundef @.str.2, i32 noundef %5741, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 442, ptr noundef %5744, ptr noundef %5747, ptr noundef %5750, i32 noundef %5752) #10
  br label %5771

5754:                                             ; preds = %5732, %5725
  %5755 = load i32, ptr %217, align 4, !tbaa !5
  %5756 = call ptr @__errno_location() #11
  store i32 %5755, ptr %5756, align 4, !tbaa !5
  %5757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5758 = load i32, ptr @test_count, align 4, !tbaa !5
  %5759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5760 = load i32, ptr %5759, align 4, !tbaa !5
  %5761 = call ptr @s2n_strerror(i32 noundef %5760, ptr noundef @.str.4)
  %5762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5763 = load i32, ptr %5762, align 4, !tbaa !5
  %5764 = call ptr @s2n_strerror_debug(i32 noundef %5763, ptr noundef @.str.4)
  %5765 = call ptr @__errno_location() #11
  %5766 = load i32, ptr %5765, align 4, !tbaa !5
  %5767 = call ptr @strerror(i32 noundef %5766) #10
  %5768 = call ptr @__errno_location() #11
  %5769 = load i32, ptr %5768, align 4, !tbaa !5
  %5770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5757, ptr noundef @.str.5, i32 noundef %5758, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 442, ptr noundef %5761, ptr noundef %5764, ptr noundef %5767, i32 noundef %5769) #10
  br label %5771

5771:                                             ; preds = %5754, %5737
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #10
  br label %5772

5772:                                             ; preds = %5771
  br label %5773

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

5774:                                             ; No predecessors!
  br label %5775

5775:                                             ; preds = %5774
  br label %5776

5776:                                             ; preds = %5775, %5713
  br label %5777

5777:                                             ; preds = %5776
  br label %5778

5778:                                             ; preds = %5777
  br label %5779

5779:                                             ; preds = %5778
  %5780 = load i32, ptr @test_count, align 4, !tbaa !5
  %5781 = add nsw i32 %5780, 1
  store i32 %5781, ptr @test_count, align 4, !tbaa !5
  %5782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5783 = load i32, ptr %5782, align 4, !tbaa !5
  %5784 = icmp eq i32 %5783, 335544322
  br i1 %5784, label %5838, label %5785

5785:                                             ; preds = %5779
  br label %5786

5786:                                             ; preds = %5785
  br label %5787

5787:                                             ; preds = %5786
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #10
  %5788 = call ptr @__errno_location() #11
  %5789 = load i32, ptr %5788, align 4, !tbaa !5
  store i32 %5789, ptr %218, align 4, !tbaa !5
  %5790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5791 = call i32 @s2n_print_stacktrace(ptr noundef %5790)
  %5792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5793 = trunc i8 %5792 to i1
  br i1 %5793, label %5794, label %5816

5794:                                             ; preds = %5787
  %5795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5796 = call i32 @fileno(ptr noundef %5795) #10
  %5797 = call i32 @isatty(i32 noundef %5796) #10
  %5798 = icmp ne i32 %5797, 0
  br i1 %5798, label %5799, label %5816

5799:                                             ; preds = %5794
  %5800 = load i32, ptr %218, align 4, !tbaa !5
  %5801 = call ptr @__errno_location() #11
  store i32 %5800, ptr %5801, align 4, !tbaa !5
  %5802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5803 = load i32, ptr @test_count, align 4, !tbaa !5
  %5804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5805 = load i32, ptr %5804, align 4, !tbaa !5
  %5806 = call ptr @s2n_strerror(i32 noundef %5805, ptr noundef @.str.4)
  %5807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5808 = load i32, ptr %5807, align 4, !tbaa !5
  %5809 = call ptr @s2n_strerror_debug(i32 noundef %5808, ptr noundef @.str.4)
  %5810 = call ptr @__errno_location() #11
  %5811 = load i32, ptr %5810, align 4, !tbaa !5
  %5812 = call ptr @strerror(i32 noundef %5811) #10
  %5813 = call ptr @__errno_location() #11
  %5814 = load i32, ptr %5813, align 4, !tbaa !5
  %5815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5802, ptr noundef @.str.2, i32 noundef %5803, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 442, ptr noundef %5806, ptr noundef %5809, ptr noundef %5812, i32 noundef %5814) #10
  br label %5833

5816:                                             ; preds = %5794, %5787
  %5817 = load i32, ptr %218, align 4, !tbaa !5
  %5818 = call ptr @__errno_location() #11
  store i32 %5817, ptr %5818, align 4, !tbaa !5
  %5819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5820 = load i32, ptr @test_count, align 4, !tbaa !5
  %5821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5822 = load i32, ptr %5821, align 4, !tbaa !5
  %5823 = call ptr @s2n_strerror(i32 noundef %5822, ptr noundef @.str.4)
  %5824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5825 = load i32, ptr %5824, align 4, !tbaa !5
  %5826 = call ptr @s2n_strerror_debug(i32 noundef %5825, ptr noundef @.str.4)
  %5827 = call ptr @__errno_location() #11
  %5828 = load i32, ptr %5827, align 4, !tbaa !5
  %5829 = call ptr @strerror(i32 noundef %5828) #10
  %5830 = call ptr @__errno_location() #11
  %5831 = load i32, ptr %5830, align 4, !tbaa !5
  %5832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5819, ptr noundef @.str.5, i32 noundef %5820, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 442, ptr noundef %5823, ptr noundef %5826, ptr noundef %5829, i32 noundef %5831) #10
  br label %5833

5833:                                             ; preds = %5816, %5799
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #10
  br label %5834

5834:                                             ; preds = %5833
  br label %5835

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

5836:                                             ; No predecessors!
  br label %5837

5837:                                             ; preds = %5836
  br label %5838

5838:                                             ; preds = %5837, %5779
  br label %5839

5839:                                             ; preds = %5838
  br label %5840

5840:                                             ; preds = %5839
  br label %5841

5841:                                             ; preds = %5840
  %5842 = load i32, ptr @test_count, align 4, !tbaa !5
  %5843 = add nsw i32 %5842, 1
  store i32 %5843, ptr @test_count, align 4, !tbaa !5
  %5844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5845 = load i32, ptr %5844, align 4, !tbaa !5
  %5846 = call ptr @s2n_strerror_debug(i32 noundef %5845, ptr noundef @.str.4)
  %5847 = icmp eq ptr %5846, null
  br i1 %5847, label %5848, label %5901

5848:                                             ; preds = %5841
  br label %5849

5849:                                             ; preds = %5848
  br label %5850

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

5857:                                             ; preds = %5850
  %5858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5859 = call i32 @fileno(ptr noundef %5858) #10
  %5860 = call i32 @isatty(i32 noundef %5859) #10
  %5861 = icmp ne i32 %5860, 0
  br i1 %5861, label %5862, label %5879

5862:                                             ; preds = %5857
  %5863 = load i32, ptr %219, align 4, !tbaa !5
  %5864 = call ptr @__errno_location() #11
  store i32 %5863, ptr %5864, align 4, !tbaa !5
  %5865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5866 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5868, ptr noundef @.str.4)
  %5870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5871 = load i32, ptr %5870, align 4, !tbaa !5
  %5872 = call ptr @s2n_strerror_debug(i32 noundef %5871, ptr noundef @.str.4)
  %5873 = call ptr @__errno_location() #11
  %5874 = load i32, ptr %5873, align 4, !tbaa !5
  %5875 = call ptr @strerror(i32 noundef %5874) #10
  %5876 = call ptr @__errno_location() #11
  %5877 = load i32, ptr %5876, align 4, !tbaa !5
  %5878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5865, ptr noundef @.str.2, i32 noundef %5866, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 442, ptr noundef %5869, ptr noundef %5872, ptr noundef %5875, i32 noundef %5877) #10
  br label %5896

5879:                                             ; preds = %5857, %5850
  %5880 = load i32, ptr %219, align 4, !tbaa !5
  %5881 = call ptr @__errno_location() #11
  store i32 %5880, ptr %5881, align 4, !tbaa !5
  %5882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5883 = load i32, ptr @test_count, align 4, !tbaa !5
  %5884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5885 = load i32, ptr %5884, align 4, !tbaa !5
  %5886 = call ptr @s2n_strerror(i32 noundef %5885, ptr noundef @.str.4)
  %5887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5888 = load i32, ptr %5887, align 4, !tbaa !5
  %5889 = call ptr @s2n_strerror_debug(i32 noundef %5888, ptr noundef @.str.4)
  %5890 = call ptr @__errno_location() #11
  %5891 = load i32, ptr %5890, align 4, !tbaa !5
  %5892 = call ptr @strerror(i32 noundef %5891) #10
  %5893 = call ptr @__errno_location() #11
  %5894 = load i32, ptr %5893, align 4, !tbaa !5
  %5895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5882, ptr noundef @.str.5, i32 noundef %5883, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 442, ptr noundef %5886, ptr noundef %5889, ptr noundef %5892, i32 noundef %5894) #10
  br label %5896

5896:                                             ; preds = %5879, %5862
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #10
  br label %5897

5897:                                             ; preds = %5896
  br label %5898

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

5899:                                             ; No predecessors!
  br label %5900

5900:                                             ; preds = %5899
  br label %5901

5901:                                             ; preds = %5900, %5841
  br label %5902

5902:                                             ; preds = %5901
  br label %5903

5903:                                             ; preds = %5902
  br label %5904

5904:                                             ; preds = %5903
  br label %5905

5905:                                             ; preds = %5904
  br label %5906

5906:                                             ; preds = %5905
  %5907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5907, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5908 = call ptr @__errno_location() #11
  store i32 0, ptr %5908, align 4, !tbaa !5
  br label %5909

5909:                                             ; preds = %5906
  br label %5910

5910:                                             ; preds = %5909
  br label %5911

5911:                                             ; preds = %5910
  br label %5912

5912:                                             ; preds = %5911
  %5913 = load i8, ptr %200, align 1, !tbaa !15
  %5914 = zext i8 %5913 to i32
  %5915 = icmp eq i32 %5914, 0
  br i1 %5915, label %5916, label %5981

5916:                                             ; preds = %5912
  br label %5917

5917:                                             ; preds = %5916
  %5918 = load i32, ptr @test_count, align 4, !tbaa !5
  %5919 = add nsw i32 %5918, 1
  store i32 %5919, ptr @test_count, align 4, !tbaa !5
  %5920 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0)
  %5921 = getelementptr inbounds %struct.s2n_result, ptr %220, i32 0, i32 0
  store i32 %5920, ptr %5921, align 4
  %5922 = getelementptr inbounds %struct.s2n_result, ptr %220, i32 0, i32 0
  %5923 = load i32, ptr %5922, align 4
  %5924 = call zeroext i1 @s2n_result_is_ok(i32 %5923)
  br i1 %5924, label %5978, label %5925

5925:                                             ; preds = %5917
  br label %5926

5926:                                             ; preds = %5925
  br label %5927

5927:                                             ; preds = %5926
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #10
  %5928 = call ptr @__errno_location() #11
  %5929 = load i32, ptr %5928, align 4, !tbaa !5
  store i32 %5929, ptr %221, align 4, !tbaa !5
  %5930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5931 = call i32 @s2n_print_stacktrace(ptr noundef %5930)
  %5932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5933 = trunc i8 %5932 to i1
  br i1 %5933, label %5934, label %5956

5934:                                             ; preds = %5927
  %5935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5936 = call i32 @fileno(ptr noundef %5935) #10
  %5937 = call i32 @isatty(i32 noundef %5936) #10
  %5938 = icmp ne i32 %5937, 0
  br i1 %5938, label %5939, label %5956

5939:                                             ; preds = %5934
  %5940 = load i32, ptr %221, align 4, !tbaa !5
  %5941 = call ptr @__errno_location() #11
  store i32 %5940, ptr %5941, align 4, !tbaa !5
  %5942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5943 = load i32, ptr @test_count, align 4, !tbaa !5
  %5944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5945 = load i32, ptr %5944, align 4, !tbaa !5
  %5946 = call ptr @s2n_strerror(i32 noundef %5945, ptr noundef @.str.4)
  %5947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5948 = load i32, ptr %5947, align 4, !tbaa !5
  %5949 = call ptr @s2n_strerror_debug(i32 noundef %5948, ptr noundef @.str.4)
  %5950 = call ptr @__errno_location() #11
  %5951 = load i32, ptr %5950, align 4, !tbaa !5
  %5952 = call ptr @strerror(i32 noundef %5951) #10
  %5953 = call ptr @__errno_location() #11
  %5954 = load i32, ptr %5953, align 4, !tbaa !5
  %5955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5942, ptr noundef @.str.2, i32 noundef %5943, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 446, ptr noundef %5946, ptr noundef %5949, ptr noundef %5952, i32 noundef %5954) #10
  br label %5973

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

5973:                                             ; preds = %5956, %5939
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #10
  br label %5974

5974:                                             ; preds = %5973
  br label %5975

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

5976:                                             ; No predecessors!
  br label %5977

5977:                                             ; preds = %5976
  br label %5978

5978:                                             ; preds = %5977, %5917
  br label %5979

5979:                                             ; preds = %5978
  br label %5980

5980:                                             ; preds = %5979
  br label %5981

5981:                                             ; preds = %5980, %5912
  %5982 = call i32 @s2n_mem_test_free_callbacks(ptr noundef %213)
  %5983 = getelementptr inbounds %struct.s2n_result, ptr %222, i32 0, i32 0
  store i32 %5982, ptr %5983, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %213) #10
  %5984 = call i32 @s2n_stuffer_free(ptr noundef %206)
  call void @llvm.lifetime.end.p0(i64 40, ptr %206) #10
  %5985 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %203)
  %5986 = getelementptr inbounds %struct.s2n_result, ptr %223, i32 0, i32 0
  store i32 %5985, ptr %5986, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %203) #10
  %5987 = call i32 @s2n_connection_ptr_free(ptr noundef %202)
  %5988 = getelementptr inbounds %struct.s2n_result, ptr %224, i32 0, i32 0
  store i32 %5987, ptr %5988, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #10
  %5989 = call i32 @s2n_connection_ptr_free(ptr noundef %201)
  %5990 = getelementptr inbounds %struct.s2n_result, ptr %225, i32 0, i32 0
  store i32 %5989, ptr %5990, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %201) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %200) #10
  br label %5991

5991:                                             ; preds = %5981
  %5992 = load i64, ptr %199, align 8, !tbaa !16
  %5993 = add i64 %5992, 1
  store i64 %5993, ptr %199, align 8, !tbaa !16
  br label %5254, !llvm.loop !65

5994:                                             ; preds = %5257
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #10
  br label %5995

5995:                                             ; preds = %5994
  %5996 = load i64, ptr %197, align 8, !tbaa !16
  %5997 = add i64 %5996, 1
  store i64 %5997, ptr %197, align 8, !tbaa !16
  br label %5246, !llvm.loop !66

5998:                                             ; preds = %5249
  call void @llvm.lifetime.start.p0(i64 8, ptr %226) #10
  store i64 0, ptr %226, align 8, !tbaa !16
  br label %5999

5999:                                             ; preds = %6748, %5998
  %6000 = load i64, ptr %226, align 8, !tbaa !16
  %6001 = icmp ult i64 %6000, 7
  br i1 %6001, label %6003, label %6002

6002:                                             ; preds = %5999
  store i32 570, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %226) #10
  br label %6751

6003:                                             ; preds = %5999
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #10
  %6004 = load i64, ptr %226, align 8, !tbaa !16
  %6005 = getelementptr inbounds [7 x i32], ptr %21, i64 0, i64 %6004
  %6006 = load i32, ptr %6005, align 4, !tbaa !5
  store i32 %6006, ptr %227, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %228) #10
  store i64 0, ptr %228, align 8, !tbaa !16
  br label %6007

6007:                                             ; preds = %6744, %6003
  %6008 = load i64, ptr %228, align 8, !tbaa !16
  %6009 = icmp ult i64 %6008, 2
  br i1 %6009, label %6011, label %6010

6010:                                             ; preds = %6007
  store i32 573, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %228) #10
  br label %6747

6011:                                             ; preds = %6007
  call void @llvm.lifetime.start.p0(i64 1, ptr %229) #10
  %6012 = load i64, ptr %228, align 8, !tbaa !16
  %6013 = getelementptr inbounds [2 x i8], ptr %22, i64 0, i64 %6012
  %6014 = load i8, ptr %6013, align 1, !tbaa !15
  store i8 %6014, ptr %229, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %230) #10
  %6015 = load i8, ptr %229, align 1, !tbaa !15
  %6016 = zext i8 %6015 to i32
  %6017 = call ptr @s2n_connection_new(i32 noundef %6016)
  store ptr %6017, ptr %230, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %231) #10
  %6018 = load i8, ptr %229, align 1, !tbaa !15
  %6019 = zext i8 %6018 to i32
  %6020 = add nsw i32 %6019, 1
  %6021 = srem i32 %6020, 2
  %6022 = call ptr @s2n_connection_new(i32 noundef %6021)
  store ptr %6022, ptr %231, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr %232) #10
  call void @llvm.memset.p0.i64(ptr align 8 %232, i8 0, i64 80, i1 false)
  br label %6023

6023:                                             ; preds = %6011
  %6024 = load i32, ptr @test_count, align 4, !tbaa !5
  %6025 = add nsw i32 %6024, 1
  store i32 %6025, ptr @test_count, align 4, !tbaa !5
  %6026 = load ptr, ptr %11, align 8, !tbaa !9
  %6027 = load ptr, ptr %231, align 8, !tbaa !9
  %6028 = load ptr, ptr %230, align 8, !tbaa !9
  %6029 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %6026, ptr noundef %6027, ptr noundef %6028, ptr noundef %232)
  %6030 = getelementptr inbounds %struct.s2n_result, ptr %233, i32 0, i32 0
  store i32 %6029, ptr %6030, align 4
  %6031 = getelementptr inbounds %struct.s2n_result, ptr %233, i32 0, i32 0
  %6032 = load i32, ptr %6031, align 4
  %6033 = call zeroext i1 @s2n_result_is_ok(i32 %6032)
  br i1 %6033, label %6087, label %6034

6034:                                             ; preds = %6023
  br label %6035

6035:                                             ; preds = %6034
  br label %6036

6036:                                             ; preds = %6035
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #10
  %6037 = call ptr @__errno_location() #11
  %6038 = load i32, ptr %6037, align 4, !tbaa !5
  store i32 %6038, ptr %234, align 4, !tbaa !5
  %6039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6040 = call i32 @s2n_print_stacktrace(ptr noundef %6039)
  %6041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6042 = trunc i8 %6041 to i1
  br i1 %6042, label %6043, label %6065

6043:                                             ; preds = %6036
  %6044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6045 = call i32 @fileno(ptr noundef %6044) #10
  %6046 = call i32 @isatty(i32 noundef %6045) #10
  %6047 = icmp ne i32 %6046, 0
  br i1 %6047, label %6048, label %6065

6048:                                             ; preds = %6043
  %6049 = load i32, ptr %234, align 4, !tbaa !5
  %6050 = call ptr @__errno_location() #11
  store i32 %6049, ptr %6050, align 4, !tbaa !5
  %6051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6052 = load i32, ptr @test_count, align 4, !tbaa !5
  %6053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6054 = load i32, ptr %6053, align 4, !tbaa !5
  %6055 = call ptr @s2n_strerror(i32 noundef %6054, ptr noundef @.str.4)
  %6056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6057 = load i32, ptr %6056, align 4, !tbaa !5
  %6058 = call ptr @s2n_strerror_debug(i32 noundef %6057, ptr noundef @.str.4)
  %6059 = call ptr @__errno_location() #11
  %6060 = load i32, ptr %6059, align 4, !tbaa !5
  %6061 = call ptr @strerror(i32 noundef %6060) #10
  %6062 = call ptr @__errno_location() #11
  %6063 = load i32, ptr %6062, align 4, !tbaa !5
  %6064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6051, ptr noundef @.str.2, i32 noundef %6052, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 461, ptr noundef %6055, ptr noundef %6058, ptr noundef %6061, i32 noundef %6063) #10
  br label %6082

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

6082:                                             ; preds = %6065, %6048
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #10
  br label %6083

6083:                                             ; preds = %6082
  br label %6084

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

6085:                                             ; No predecessors!
  br label %6086

6086:                                             ; preds = %6085
  br label %6087

6087:                                             ; preds = %6086, %6023
  br label %6088

6088:                                             ; preds = %6087
  br label %6089

6089:                                             ; preds = %6088
  call void @llvm.lifetime.start.p0(i64 40, ptr %235) #10
  call void @llvm.memset.p0.i64(ptr align 8 %235, i8 0, i64 40, i1 false)
  br label %6090

6090:                                             ; preds = %6089
  %6091 = load i32, ptr @test_count, align 4, !tbaa !5
  %6092 = add nsw i32 %6091, 1
  store i32 %6092, ptr @test_count, align 4, !tbaa !5
  %6093 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %235, i32 noundef 0)
  %6094 = icmp eq i32 %6093, -1
  br i1 %6094, label %6095, label %6148

6095:                                             ; preds = %6090
  br label %6096

6096:                                             ; preds = %6095
  br label %6097

6097:                                             ; preds = %6096
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #10
  %6098 = call ptr @__errno_location() #11
  %6099 = load i32, ptr %6098, align 4, !tbaa !5
  store i32 %6099, ptr %236, align 4, !tbaa !5
  %6100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6101 = call i32 @s2n_print_stacktrace(ptr noundef %6100)
  %6102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6103 = trunc i8 %6102 to i1
  br i1 %6103, label %6104, label %6126

6104:                                             ; preds = %6097
  %6105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6106 = call i32 @fileno(ptr noundef %6105) #10
  %6107 = call i32 @isatty(i32 noundef %6106) #10
  %6108 = icmp ne i32 %6107, 0
  br i1 %6108, label %6109, label %6126

6109:                                             ; preds = %6104
  %6110 = load i32, ptr %236, align 4, !tbaa !5
  %6111 = call ptr @__errno_location() #11
  store i32 %6110, ptr %6111, align 4, !tbaa !5
  %6112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6113 = load i32, ptr @test_count, align 4, !tbaa !5
  %6114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6115 = load i32, ptr %6114, align 4, !tbaa !5
  %6116 = call ptr @s2n_strerror(i32 noundef %6115, ptr noundef @.str.4)
  %6117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6118 = load i32, ptr %6117, align 4, !tbaa !5
  %6119 = call ptr @s2n_strerror_debug(i32 noundef %6118, ptr noundef @.str.4)
  %6120 = call ptr @__errno_location() #11
  %6121 = load i32, ptr %6120, align 4, !tbaa !5
  %6122 = call ptr @strerror(i32 noundef %6121) #10
  %6123 = call ptr @__errno_location() #11
  %6124 = load i32, ptr %6123, align 4, !tbaa !5
  %6125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6112, ptr noundef @.str.2, i32 noundef %6113, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 465, ptr noundef %6116, ptr noundef %6119, ptr noundef %6122, i32 noundef %6124) #10
  br label %6143

6126:                                             ; preds = %6104, %6097
  %6127 = load i32, ptr %236, align 4, !tbaa !5
  %6128 = call ptr @__errno_location() #11
  store i32 %6127, ptr %6128, align 4, !tbaa !5
  %6129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6130 = load i32, ptr @test_count, align 4, !tbaa !5
  %6131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6132 = load i32, ptr %6131, align 4, !tbaa !5
  %6133 = call ptr @s2n_strerror(i32 noundef %6132, ptr noundef @.str.4)
  %6134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6135 = load i32, ptr %6134, align 4, !tbaa !5
  %6136 = call ptr @s2n_strerror_debug(i32 noundef %6135, ptr noundef @.str.4)
  %6137 = call ptr @__errno_location() #11
  %6138 = load i32, ptr %6137, align 4, !tbaa !5
  %6139 = call ptr @strerror(i32 noundef %6138) #10
  %6140 = call ptr @__errno_location() #11
  %6141 = load i32, ptr %6140, align 4, !tbaa !5
  %6142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6129, ptr noundef @.str.5, i32 noundef %6130, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 465, ptr noundef %6133, ptr noundef %6136, ptr noundef %6139, i32 noundef %6141) #10
  br label %6143

6143:                                             ; preds = %6126, %6109
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #10
  br label %6144

6144:                                             ; preds = %6143
  br label %6145

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

6146:                                             ; No predecessors!
  br label %6147

6147:                                             ; preds = %6146
  br label %6148

6148:                                             ; preds = %6147, %6090
  br label %6149

6149:                                             ; preds = %6148
  br label %6150

6150:                                             ; preds = %6149
  br label %6151

6151:                                             ; preds = %6150
  %6152 = load i32, ptr @test_count, align 4, !tbaa !5
  %6153 = add nsw i32 %6152, 1
  store i32 %6153, ptr @test_count, align 4, !tbaa !5
  %6154 = call i32 @s2n_stuffer_write_uint8(ptr noundef %235, i8 noundef zeroext -1)
  %6155 = icmp eq i32 %6154, -1
  br i1 %6155, label %6156, label %6209

6156:                                             ; preds = %6151
  br label %6157

6157:                                             ; preds = %6156
  br label %6158

6158:                                             ; preds = %6157
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #10
  %6159 = call ptr @__errno_location() #11
  %6160 = load i32, ptr %6159, align 4, !tbaa !5
  store i32 %6160, ptr %237, 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) #10
  %6168 = call i32 @isatty(i32 noundef %6167) #10
  %6169 = icmp ne i32 %6168, 0
  br i1 %6169, label %6170, label %6187

6170:                                             ; preds = %6165
  %6171 = load i32, ptr %237, align 4, !tbaa !5
  %6172 = call ptr @__errno_location() #11
  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() #11
  %6182 = load i32, ptr %6181, align 4, !tbaa !5
  %6183 = call ptr @strerror(i32 noundef %6182) #10
  %6184 = call ptr @__errno_location() #11
  %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.53, ptr noundef @.str.1, i32 noundef 466, ptr noundef %6177, ptr noundef %6180, ptr noundef %6183, i32 noundef %6185) #10
  br label %6204

6187:                                             ; preds = %6165, %6158
  %6188 = load i32, ptr %237, align 4, !tbaa !5
  %6189 = call ptr @__errno_location() #11
  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() #11
  %6199 = load i32, ptr %6198, align 4, !tbaa !5
  %6200 = call ptr @strerror(i32 noundef %6199) #10
  %6201 = call ptr @__errno_location() #11
  %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.53, ptr noundef @.str.1, i32 noundef 466, ptr noundef %6194, ptr noundef %6197, ptr noundef %6200, i32 noundef %6202) #10
  br label %6204

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

6205:                                             ; preds = %6204
  br label %6206

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

6207:                                             ; No predecessors!
  br label %6208

6208:                                             ; preds = %6207
  br label %6209

6209:                                             ; preds = %6208, %6151
  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 = call i32 @s2n_stuffer_write_uint24(ptr noundef %235, i32 noundef 3001)
  %6216 = icmp eq i32 %6215, -1
  br i1 %6216, label %6217, label %6270

6217:                                             ; preds = %6212
  br label %6218

6218:                                             ; preds = %6217
  br label %6219

6219:                                             ; preds = %6218
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #10
  %6220 = call ptr @__errno_location() #11
  %6221 = load i32, ptr %6220, align 4, !tbaa !5
  store i32 %6221, ptr %238, align 4, !tbaa !5
  %6222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6223 = call i32 @s2n_print_stacktrace(ptr noundef %6222)
  %6224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6225 = trunc i8 %6224 to i1
  br i1 %6225, label %6226, label %6248

6226:                                             ; preds = %6219
  %6227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6228 = call i32 @fileno(ptr noundef %6227) #10
  %6229 = call i32 @isatty(i32 noundef %6228) #10
  %6230 = icmp ne i32 %6229, 0
  br i1 %6230, label %6231, label %6248

6231:                                             ; preds = %6226
  %6232 = load i32, ptr %238, align 4, !tbaa !5
  %6233 = call ptr @__errno_location() #11
  store i32 %6232, ptr %6233, align 4, !tbaa !5
  %6234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6235 = load i32, ptr @test_count, align 4, !tbaa !5
  %6236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6237 = load i32, ptr %6236, align 4, !tbaa !5
  %6238 = call ptr @s2n_strerror(i32 noundef %6237, ptr noundef @.str.4)
  %6239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6240 = load i32, ptr %6239, align 4, !tbaa !5
  %6241 = call ptr @s2n_strerror_debug(i32 noundef %6240, ptr noundef @.str.4)
  %6242 = call ptr @__errno_location() #11
  %6243 = load i32, ptr %6242, align 4, !tbaa !5
  %6244 = call ptr @strerror(i32 noundef %6243) #10
  %6245 = call ptr @__errno_location() #11
  %6246 = load i32, ptr %6245, align 4, !tbaa !5
  %6247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6234, ptr noundef @.str.2, i32 noundef %6235, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 467, ptr noundef %6238, ptr noundef %6241, ptr noundef %6244, i32 noundef %6246) #10
  br label %6265

6248:                                             ; preds = %6226, %6219
  %6249 = load i32, ptr %238, align 4, !tbaa !5
  %6250 = call ptr @__errno_location() #11
  store i32 %6249, ptr %6250, align 4, !tbaa !5
  %6251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6252 = load i32, ptr @test_count, align 4, !tbaa !5
  %6253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6254 = load i32, ptr %6253, align 4, !tbaa !5
  %6255 = call ptr @s2n_strerror(i32 noundef %6254, ptr noundef @.str.4)
  %6256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6257 = load i32, ptr %6256, align 4, !tbaa !5
  %6258 = call ptr @s2n_strerror_debug(i32 noundef %6257, ptr noundef @.str.4)
  %6259 = call ptr @__errno_location() #11
  %6260 = load i32, ptr %6259, align 4, !tbaa !5
  %6261 = call ptr @strerror(i32 noundef %6260) #10
  %6262 = call ptr @__errno_location() #11
  %6263 = load i32, ptr %6262, align 4, !tbaa !5
  %6264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6251, ptr noundef @.str.5, i32 noundef %6252, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 467, ptr noundef %6255, ptr noundef %6258, ptr noundef %6261, i32 noundef %6263) #10
  br label %6265

6265:                                             ; preds = %6248, %6231
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #10
  br label %6266

6266:                                             ; preds = %6265
  br label %6267

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

6268:                                             ; No predecessors!
  br label %6269

6269:                                             ; preds = %6268
  br label %6270

6270:                                             ; preds = %6269, %6212
  br label %6271

6271:                                             ; preds = %6270
  br label %6272

6272:                                             ; preds = %6271
  br label %6273

6273:                                             ; preds = %6272
  %6274 = load i32, ptr @test_count, align 4, !tbaa !5
  %6275 = add nsw i32 %6274, 1
  store i32 %6275, ptr @test_count, align 4, !tbaa !5
  %6276 = call i32 @s2n_stuffer_skip_write(ptr noundef %235, i32 noundef 3001)
  %6277 = icmp eq i32 %6276, -1
  br i1 %6277, label %6278, label %6331

6278:                                             ; preds = %6273
  br label %6279

6279:                                             ; preds = %6278
  br label %6280

6280:                                             ; preds = %6279
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #10
  %6281 = call ptr @__errno_location() #11
  %6282 = load i32, ptr %6281, align 4, !tbaa !5
  store i32 %6282, ptr %239, align 4, !tbaa !5
  %6283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6284 = call i32 @s2n_print_stacktrace(ptr noundef %6283)
  %6285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6286 = trunc i8 %6285 to i1
  br i1 %6286, label %6287, label %6309

6287:                                             ; preds = %6280
  %6288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6289 = call i32 @fileno(ptr noundef %6288) #10
  %6290 = call i32 @isatty(i32 noundef %6289) #10
  %6291 = icmp ne i32 %6290, 0
  br i1 %6291, label %6292, label %6309

6292:                                             ; preds = %6287
  %6293 = load i32, ptr %239, align 4, !tbaa !5
  %6294 = call ptr @__errno_location() #11
  store i32 %6293, ptr %6294, align 4, !tbaa !5
  %6295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6296 = load i32, ptr @test_count, align 4, !tbaa !5
  %6297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6298 = load i32, ptr %6297, align 4, !tbaa !5
  %6299 = call ptr @s2n_strerror(i32 noundef %6298, ptr noundef @.str.4)
  %6300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6301 = load i32, ptr %6300, align 4, !tbaa !5
  %6302 = call ptr @s2n_strerror_debug(i32 noundef %6301, ptr noundef @.str.4)
  %6303 = call ptr @__errno_location() #11
  %6304 = load i32, ptr %6303, align 4, !tbaa !5
  %6305 = call ptr @strerror(i32 noundef %6304) #10
  %6306 = call ptr @__errno_location() #11
  %6307 = load i32, ptr %6306, align 4, !tbaa !5
  %6308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6295, ptr noundef @.str.2, i32 noundef %6296, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 468, ptr noundef %6299, ptr noundef %6302, ptr noundef %6305, i32 noundef %6307) #10
  br label %6326

6309:                                             ; preds = %6287, %6280
  %6310 = load i32, ptr %239, align 4, !tbaa !5
  %6311 = call ptr @__errno_location() #11
  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() #11
  %6321 = load i32, ptr %6320, align 4, !tbaa !5
  %6322 = call ptr @strerror(i32 noundef %6321) #10
  %6323 = call ptr @__errno_location() #11
  %6324 = load i32, ptr %6323, align 4, !tbaa !5
  %6325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6312, ptr noundef @.str.5, i32 noundef %6313, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 468, ptr noundef %6316, ptr noundef %6319, ptr noundef %6322, i32 noundef %6324) #10
  br label %6326

6326:                                             ; preds = %6309, %6292
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #10
  br label %6327

6327:                                             ; preds = %6326
  br label %6328

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

6329:                                             ; No predecessors!
  br label %6330

6330:                                             ; preds = %6329
  br label %6331

6331:                                             ; preds = %6330, %6273
  br label %6332

6332:                                             ; preds = %6331
  br label %6333

6333:                                             ; preds = %6332
  br label %6334

6334:                                             ; preds = %6333
  %6335 = load i32, ptr @test_count, align 4, !tbaa !5
  %6336 = add nsw i32 %6335, 1
  store i32 %6336, ptr @test_count, align 4, !tbaa !5
  %6337 = load ptr, ptr %231, align 8, !tbaa !9
  %6338 = load i32, ptr %227, align 4, !tbaa !5
  %6339 = call i32 @s2n_test_send_records(ptr noundef %6337, ptr noundef byval(%struct.s2n_stuffer) align 8 %235, i32 noundef %6338)
  %6340 = getelementptr inbounds %struct.s2n_result, ptr %240, i32 0, i32 0
  store i32 %6339, ptr %6340, align 4
  %6341 = getelementptr inbounds %struct.s2n_result, ptr %240, i32 0, i32 0
  %6342 = load i32, ptr %6341, align 4
  %6343 = call zeroext i1 @s2n_result_is_ok(i32 %6342)
  br i1 %6343, label %6397, label %6344

6344:                                             ; preds = %6334
  br label %6345

6345:                                             ; preds = %6344
  br label %6346

6346:                                             ; preds = %6345
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #10
  %6347 = call ptr @__errno_location() #11
  %6348 = load i32, ptr %6347, align 4, !tbaa !5
  store i32 %6348, ptr %241, align 4, !tbaa !5
  %6349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6350 = call i32 @s2n_print_stacktrace(ptr noundef %6349)
  %6351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6352 = trunc i8 %6351 to i1
  br i1 %6352, label %6353, label %6375

6353:                                             ; preds = %6346
  %6354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6355 = call i32 @fileno(ptr noundef %6354) #10
  %6356 = call i32 @isatty(i32 noundef %6355) #10
  %6357 = icmp ne i32 %6356, 0
  br i1 %6357, label %6358, label %6375

6358:                                             ; preds = %6353
  %6359 = load i32, ptr %241, align 4, !tbaa !5
  %6360 = call ptr @__errno_location() #11
  store i32 %6359, ptr %6360, align 4, !tbaa !5
  %6361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6362 = load i32, ptr @test_count, align 4, !tbaa !5
  %6363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6364 = load i32, ptr %6363, align 4, !tbaa !5
  %6365 = call ptr @s2n_strerror(i32 noundef %6364, ptr noundef @.str.4)
  %6366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6367 = load i32, ptr %6366, align 4, !tbaa !5
  %6368 = call ptr @s2n_strerror_debug(i32 noundef %6367, ptr noundef @.str.4)
  %6369 = call ptr @__errno_location() #11
  %6370 = load i32, ptr %6369, align 4, !tbaa !5
  %6371 = call ptr @strerror(i32 noundef %6370) #10
  %6372 = call ptr @__errno_location() #11
  %6373 = load i32, ptr %6372, align 4, !tbaa !5
  %6374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6361, ptr noundef @.str.2, i32 noundef %6362, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 469, ptr noundef %6365, ptr noundef %6368, ptr noundef %6371, i32 noundef %6373) #10
  br label %6392

6375:                                             ; preds = %6353, %6346
  %6376 = load i32, ptr %241, align 4, !tbaa !5
  %6377 = call ptr @__errno_location() #11
  store i32 %6376, ptr %6377, align 4, !tbaa !5
  %6378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6379 = load i32, ptr @test_count, align 4, !tbaa !5
  %6380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6381 = load i32, ptr %6380, align 4, !tbaa !5
  %6382 = call ptr @s2n_strerror(i32 noundef %6381, ptr noundef @.str.4)
  %6383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6384 = load i32, ptr %6383, align 4, !tbaa !5
  %6385 = call ptr @s2n_strerror_debug(i32 noundef %6384, ptr noundef @.str.4)
  %6386 = call ptr @__errno_location() #11
  %6387 = load i32, ptr %6386, align 4, !tbaa !5
  %6388 = call ptr @strerror(i32 noundef %6387) #10
  %6389 = call ptr @__errno_location() #11
  %6390 = load i32, ptr %6389, align 4, !tbaa !5
  %6391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6378, ptr noundef @.str.5, i32 noundef %6379, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 469, ptr noundef %6382, ptr noundef %6385, ptr noundef %6388, i32 noundef %6390) #10
  br label %6392

6392:                                             ; preds = %6375, %6358
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #10
  br label %6393

6393:                                             ; preds = %6392
  br label %6394

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

6395:                                             ; No predecessors!
  br label %6396

6396:                                             ; preds = %6395
  br label %6397

6397:                                             ; preds = %6396, %6334
  br label %6398

6398:                                             ; preds = %6397
  br label %6399

6399:                                             ; preds = %6398
  call void @llvm.lifetime.start.p0(i64 1, ptr %242) #10
  call void @llvm.memset.p0.i64(ptr align 1 %242, i8 0, i64 1, i1 false)
  br label %6400

6400:                                             ; preds = %6399
  %6401 = load i32, ptr @test_count, align 4, !tbaa !5
  %6402 = add nsw i32 %6401, 1
  store i32 %6402, ptr @test_count, align 4, !tbaa !5
  %6403 = call i32 @s2n_mem_test_init_callbacks(ptr noundef %242)
  %6404 = getelementptr inbounds %struct.s2n_result, ptr %243, i32 0, i32 0
  store i32 %6403, ptr %6404, align 4
  %6405 = getelementptr inbounds %struct.s2n_result, ptr %243, i32 0, i32 0
  %6406 = load i32, ptr %6405, align 4
  %6407 = call zeroext i1 @s2n_result_is_ok(i32 %6406)
  br i1 %6407, label %6461, label %6408

6408:                                             ; preds = %6400
  br label %6409

6409:                                             ; preds = %6408
  br label %6410

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

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

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

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

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

6457:                                             ; preds = %6456
  br label %6458

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

6459:                                             ; No predecessors!
  br label %6460

6460:                                             ; preds = %6459
  br label %6461

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

6462:                                             ; preds = %6461
  br label %6463

6463:                                             ; preds = %6462
  br label %6464

6464:                                             ; preds = %6463
  br label %6465

6465:                                             ; preds = %6464
  br label %6466

6466:                                             ; preds = %6465
  %6467 = load i32, ptr @test_count, align 4, !tbaa !5
  %6468 = add nsw i32 %6467, 1
  store i32 %6468, ptr @test_count, align 4, !tbaa !5
  %6469 = load ptr, ptr %231, align 8, !tbaa !9
  %6470 = load ptr, ptr %230, align 8, !tbaa !9
  %6471 = call i32 @s2n_test_basic_recv(ptr noundef %6469, ptr noundef %6470)
  %6472 = getelementptr inbounds %struct.s2n_result, ptr %245, i32 0, i32 0
  store i32 %6471, ptr %6472, align 4
  %6473 = getelementptr inbounds %struct.s2n_result, ptr %245, i32 0, i32 0
  %6474 = load i32, ptr %6473, align 4
  %6475 = call zeroext i1 @s2n_result_is_error(i32 %6474)
  br i1 %6475, label %6529, label %6476

6476:                                             ; preds = %6466
  br label %6477

6477:                                             ; preds = %6476
  br label %6478

6478:                                             ; preds = %6477
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #10
  %6479 = call ptr @__errno_location() #11
  %6480 = load i32, ptr %6479, align 4, !tbaa !5
  store i32 %6480, ptr %246, align 4, !tbaa !5
  %6481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6482 = call i32 @s2n_print_stacktrace(ptr noundef %6481)
  %6483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6484 = trunc i8 %6483 to i1
  br i1 %6484, label %6485, label %6507

6485:                                             ; preds = %6478
  %6486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6487 = call i32 @fileno(ptr noundef %6486) #10
  %6488 = call i32 @isatty(i32 noundef %6487) #10
  %6489 = icmp ne i32 %6488, 0
  br i1 %6489, label %6490, label %6507

6490:                                             ; preds = %6485
  %6491 = load i32, ptr %246, align 4, !tbaa !5
  %6492 = call ptr @__errno_location() #11
  store i32 %6491, ptr %6492, align 4, !tbaa !5
  %6493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6494 = load i32, ptr @test_count, align 4, !tbaa !5
  %6495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6496 = load i32, ptr %6495, align 4, !tbaa !5
  %6497 = call ptr @s2n_strerror(i32 noundef %6496, ptr noundef @.str.4)
  %6498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6499 = load i32, ptr %6498, align 4, !tbaa !5
  %6500 = call ptr @s2n_strerror_debug(i32 noundef %6499, ptr noundef @.str.4)
  %6501 = call ptr @__errno_location() #11
  %6502 = load i32, ptr %6501, align 4, !tbaa !5
  %6503 = call ptr @strerror(i32 noundef %6502) #10
  %6504 = call ptr @__errno_location() #11
  %6505 = load i32, ptr %6504, align 4, !tbaa !5
  %6506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6493, ptr noundef @.str.2, i32 noundef %6494, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 473, ptr noundef %6497, ptr noundef %6500, ptr noundef %6503, i32 noundef %6505) #10
  br label %6524

6507:                                             ; preds = %6485, %6478
  %6508 = load i32, ptr %246, align 4, !tbaa !5
  %6509 = call ptr @__errno_location() #11
  store i32 %6508, ptr %6509, align 4, !tbaa !5
  %6510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6511 = load i32, ptr @test_count, align 4, !tbaa !5
  %6512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6513 = load i32, ptr %6512, align 4, !tbaa !5
  %6514 = call ptr @s2n_strerror(i32 noundef %6513, ptr noundef @.str.4)
  %6515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6516 = load i32, ptr %6515, align 4, !tbaa !5
  %6517 = call ptr @s2n_strerror_debug(i32 noundef %6516, ptr noundef @.str.4)
  %6518 = call ptr @__errno_location() #11
  %6519 = load i32, ptr %6518, align 4, !tbaa !5
  %6520 = call ptr @strerror(i32 noundef %6519) #10
  %6521 = call ptr @__errno_location() #11
  %6522 = load i32, ptr %6521, align 4, !tbaa !5
  %6523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6510, ptr noundef @.str.5, i32 noundef %6511, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 473, ptr noundef %6514, ptr noundef %6517, ptr noundef %6520, i32 noundef %6522) #10
  br label %6524

6524:                                             ; preds = %6507, %6490
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #10
  br label %6525

6525:                                             ; preds = %6524
  br label %6526

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

6527:                                             ; No predecessors!
  br label %6528

6528:                                             ; preds = %6527
  br label %6529

6529:                                             ; preds = %6528, %6466
  br label %6530

6530:                                             ; preds = %6529
  br label %6531

6531:                                             ; preds = %6530
  br label %6532

6532:                                             ; preds = %6531
  %6533 = load i32, ptr @test_count, align 4, !tbaa !5
  %6534 = add nsw i32 %6533, 1
  store i32 %6534, ptr @test_count, align 4, !tbaa !5
  %6535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6536 = load i32, ptr %6535, align 4, !tbaa !5
  %6537 = icmp eq i32 %6536, 335544322
  br i1 %6537, label %6591, label %6538

6538:                                             ; preds = %6532
  br label %6539

6539:                                             ; preds = %6538
  br label %6540

6540:                                             ; preds = %6539
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #10
  %6541 = call ptr @__errno_location() #11
  %6542 = load i32, ptr %6541, align 4, !tbaa !5
  store i32 %6542, ptr %247, align 4, !tbaa !5
  %6543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6544 = call i32 @s2n_print_stacktrace(ptr noundef %6543)
  %6545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6546 = trunc i8 %6545 to i1
  br i1 %6546, label %6547, label %6569

6547:                                             ; preds = %6540
  %6548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6549 = call i32 @fileno(ptr noundef %6548) #10
  %6550 = call i32 @isatty(i32 noundef %6549) #10
  %6551 = icmp ne i32 %6550, 0
  br i1 %6551, label %6552, label %6569

6552:                                             ; preds = %6547
  %6553 = load i32, ptr %247, align 4, !tbaa !5
  %6554 = call ptr @__errno_location() #11
  store i32 %6553, ptr %6554, align 4, !tbaa !5
  %6555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6556 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6558, ptr noundef @.str.4)
  %6560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6561 = load i32, ptr %6560, align 4, !tbaa !5
  %6562 = call ptr @s2n_strerror_debug(i32 noundef %6561, ptr noundef @.str.4)
  %6563 = call ptr @__errno_location() #11
  %6564 = load i32, ptr %6563, align 4, !tbaa !5
  %6565 = call ptr @strerror(i32 noundef %6564) #10
  %6566 = call ptr @__errno_location() #11
  %6567 = load i32, ptr %6566, align 4, !tbaa !5
  %6568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6555, ptr noundef @.str.2, i32 noundef %6556, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 473, ptr noundef %6559, ptr noundef %6562, ptr noundef %6565, i32 noundef %6567) #10
  br label %6586

6569:                                             ; preds = %6547, %6540
  %6570 = load i32, ptr %247, align 4, !tbaa !5
  %6571 = call ptr @__errno_location() #11
  store i32 %6570, ptr %6571, align 4, !tbaa !5
  %6572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6573 = load i32, ptr @test_count, align 4, !tbaa !5
  %6574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6575 = load i32, ptr %6574, align 4, !tbaa !5
  %6576 = call ptr @s2n_strerror(i32 noundef %6575, ptr noundef @.str.4)
  %6577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6578 = load i32, ptr %6577, align 4, !tbaa !5
  %6579 = call ptr @s2n_strerror_debug(i32 noundef %6578, ptr noundef @.str.4)
  %6580 = call ptr @__errno_location() #11
  %6581 = load i32, ptr %6580, align 4, !tbaa !5
  %6582 = call ptr @strerror(i32 noundef %6581) #10
  %6583 = call ptr @__errno_location() #11
  %6584 = load i32, ptr %6583, align 4, !tbaa !5
  %6585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6572, ptr noundef @.str.5, i32 noundef %6573, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 473, ptr noundef %6576, ptr noundef %6579, ptr noundef %6582, i32 noundef %6584) #10
  br label %6586

6586:                                             ; preds = %6569, %6552
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #10
  br label %6587

6587:                                             ; preds = %6586
  br label %6588

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

6589:                                             ; No predecessors!
  br label %6590

6590:                                             ; preds = %6589
  br label %6591

6591:                                             ; preds = %6590, %6532
  br label %6592

6592:                                             ; preds = %6591
  br label %6593

6593:                                             ; preds = %6592
  br label %6594

6594:                                             ; preds = %6593
  %6595 = load i32, ptr @test_count, align 4, !tbaa !5
  %6596 = add nsw i32 %6595, 1
  store i32 %6596, ptr @test_count, align 4, !tbaa !5
  %6597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6598 = load i32, ptr %6597, align 4, !tbaa !5
  %6599 = call ptr @s2n_strerror_debug(i32 noundef %6598, ptr noundef @.str.4)
  %6600 = icmp eq ptr %6599, null
  br i1 %6600, label %6601, label %6654

6601:                                             ; preds = %6594
  br label %6602

6602:                                             ; preds = %6601
  br label %6603

6603:                                             ; preds = %6602
  call void @llvm.lifetime.start.p0(i64 4, ptr %248) #10
  %6604 = call ptr @__errno_location() #11
  %6605 = load i32, ptr %6604, align 4, !tbaa !5
  store i32 %6605, ptr %248, align 4, !tbaa !5
  %6606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6607 = call i32 @s2n_print_stacktrace(ptr noundef %6606)
  %6608 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6609 = trunc i8 %6608 to i1
  br i1 %6609, label %6610, label %6632

6610:                                             ; preds = %6603
  %6611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6612 = call i32 @fileno(ptr noundef %6611) #10
  %6613 = call i32 @isatty(i32 noundef %6612) #10
  %6614 = icmp ne i32 %6613, 0
  br i1 %6614, label %6615, label %6632

6615:                                             ; preds = %6610
  %6616 = load i32, ptr %248, align 4, !tbaa !5
  %6617 = call ptr @__errno_location() #11
  store i32 %6616, ptr %6617, align 4, !tbaa !5
  %6618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6619 = load i32, ptr @test_count, align 4, !tbaa !5
  %6620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6621 = load i32, ptr %6620, align 4, !tbaa !5
  %6622 = call ptr @s2n_strerror(i32 noundef %6621, ptr noundef @.str.4)
  %6623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6624 = load i32, ptr %6623, align 4, !tbaa !5
  %6625 = call ptr @s2n_strerror_debug(i32 noundef %6624, ptr noundef @.str.4)
  %6626 = call ptr @__errno_location() #11
  %6627 = load i32, ptr %6626, align 4, !tbaa !5
  %6628 = call ptr @strerror(i32 noundef %6627) #10
  %6629 = call ptr @__errno_location() #11
  %6630 = load i32, ptr %6629, align 4, !tbaa !5
  %6631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6618, ptr noundef @.str.2, i32 noundef %6619, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 473, ptr noundef %6622, ptr noundef %6625, ptr noundef %6628, i32 noundef %6630) #10
  br label %6649

6632:                                             ; preds = %6610, %6603
  %6633 = load i32, ptr %248, align 4, !tbaa !5
  %6634 = call ptr @__errno_location() #11
  store i32 %6633, ptr %6634, align 4, !tbaa !5
  %6635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6636 = load i32, ptr @test_count, align 4, !tbaa !5
  %6637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6638 = load i32, ptr %6637, align 4, !tbaa !5
  %6639 = call ptr @s2n_strerror(i32 noundef %6638, ptr noundef @.str.4)
  %6640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6641 = load i32, ptr %6640, align 4, !tbaa !5
  %6642 = call ptr @s2n_strerror_debug(i32 noundef %6641, ptr noundef @.str.4)
  %6643 = call ptr @__errno_location() #11
  %6644 = load i32, ptr %6643, align 4, !tbaa !5
  %6645 = call ptr @strerror(i32 noundef %6644) #10
  %6646 = call ptr @__errno_location() #11
  %6647 = load i32, ptr %6646, align 4, !tbaa !5
  %6648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6635, ptr noundef @.str.5, i32 noundef %6636, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 473, ptr noundef %6639, ptr noundef %6642, ptr noundef %6645, i32 noundef %6647) #10
  br label %6649

6649:                                             ; preds = %6632, %6615
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #10
  br label %6650

6650:                                             ; preds = %6649
  br label %6651

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

6652:                                             ; No predecessors!
  br label %6653

6653:                                             ; preds = %6652
  br label %6654

6654:                                             ; preds = %6653, %6594
  br label %6655

6655:                                             ; preds = %6654
  br label %6656

6656:                                             ; preds = %6655
  br label %6657

6657:                                             ; preds = %6656
  br label %6658

6658:                                             ; preds = %6657
  br label %6659

6659:                                             ; preds = %6658
  %6660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6660, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6661 = call ptr @__errno_location() #11
  store i32 0, ptr %6661, align 4, !tbaa !5
  br label %6662

6662:                                             ; preds = %6659
  br label %6663

6663:                                             ; preds = %6662
  br label %6664

6664:                                             ; preds = %6663
  br label %6665

6665:                                             ; preds = %6664
  %6666 = load i8, ptr %229, align 1, !tbaa !15
  %6667 = zext i8 %6666 to i32
  %6668 = icmp eq i32 %6667, 0
  br i1 %6668, label %6669, label %6734

6669:                                             ; preds = %6665
  br label %6670

6670:                                             ; preds = %6669
  %6671 = load i32, ptr @test_count, align 4, !tbaa !5
  %6672 = add nsw i32 %6671, 1
  store i32 %6672, ptr @test_count, align 4, !tbaa !5
  %6673 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0)
  %6674 = getelementptr inbounds %struct.s2n_result, ptr %249, i32 0, i32 0
  store i32 %6673, ptr %6674, align 4
  %6675 = getelementptr inbounds %struct.s2n_result, ptr %249, i32 0, i32 0
  %6676 = load i32, ptr %6675, align 4
  %6677 = call zeroext i1 @s2n_result_is_ok(i32 %6676)
  br i1 %6677, label %6731, label %6678

6678:                                             ; preds = %6670
  br label %6679

6679:                                             ; preds = %6678
  br label %6680

6680:                                             ; preds = %6679
  call void @llvm.lifetime.start.p0(i64 4, ptr %250) #10
  %6681 = call ptr @__errno_location() #11
  %6682 = load i32, ptr %6681, align 4, !tbaa !5
  store i32 %6682, ptr %250, align 4, !tbaa !5
  %6683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6684 = call i32 @s2n_print_stacktrace(ptr noundef %6683)
  %6685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6686 = trunc i8 %6685 to i1
  br i1 %6686, label %6687, label %6709

6687:                                             ; preds = %6680
  %6688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6689 = call i32 @fileno(ptr noundef %6688) #10
  %6690 = call i32 @isatty(i32 noundef %6689) #10
  %6691 = icmp ne i32 %6690, 0
  br i1 %6691, label %6692, label %6709

6692:                                             ; preds = %6687
  %6693 = load i32, ptr %250, align 4, !tbaa !5
  %6694 = call ptr @__errno_location() #11
  store i32 %6693, ptr %6694, align 4, !tbaa !5
  %6695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6696 = load i32, ptr @test_count, align 4, !tbaa !5
  %6697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6698 = load i32, ptr %6697, align 4, !tbaa !5
  %6699 = call ptr @s2n_strerror(i32 noundef %6698, ptr noundef @.str.4)
  %6700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6701 = load i32, ptr %6700, align 4, !tbaa !5
  %6702 = call ptr @s2n_strerror_debug(i32 noundef %6701, ptr noundef @.str.4)
  %6703 = call ptr @__errno_location() #11
  %6704 = load i32, ptr %6703, align 4, !tbaa !5
  %6705 = call ptr @strerror(i32 noundef %6704) #10
  %6706 = call ptr @__errno_location() #11
  %6707 = load i32, ptr %6706, align 4, !tbaa !5
  %6708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6695, ptr noundef @.str.2, i32 noundef %6696, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 477, ptr noundef %6699, ptr noundef %6702, ptr noundef %6705, i32 noundef %6707) #10
  br label %6726

6709:                                             ; preds = %6687, %6680
  %6710 = load i32, ptr %250, align 4, !tbaa !5
  %6711 = call ptr @__errno_location() #11
  store i32 %6710, ptr %6711, align 4, !tbaa !5
  %6712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6713 = load i32, ptr @test_count, align 4, !tbaa !5
  %6714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6715 = load i32, ptr %6714, align 4, !tbaa !5
  %6716 = call ptr @s2n_strerror(i32 noundef %6715, ptr noundef @.str.4)
  %6717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6718 = load i32, ptr %6717, align 4, !tbaa !5
  %6719 = call ptr @s2n_strerror_debug(i32 noundef %6718, ptr noundef @.str.4)
  %6720 = call ptr @__errno_location() #11
  %6721 = load i32, ptr %6720, align 4, !tbaa !5
  %6722 = call ptr @strerror(i32 noundef %6721) #10
  %6723 = call ptr @__errno_location() #11
  %6724 = load i32, ptr %6723, align 4, !tbaa !5
  %6725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6712, ptr noundef @.str.5, i32 noundef %6713, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 477, ptr noundef %6716, ptr noundef %6719, ptr noundef %6722, i32 noundef %6724) #10
  br label %6726

6726:                                             ; preds = %6709, %6692
  call void @llvm.lifetime.end.p0(i64 4, ptr %250) #10
  br label %6727

6727:                                             ; preds = %6726
  br label %6728

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

6729:                                             ; No predecessors!
  br label %6730

6730:                                             ; preds = %6729
  br label %6731

6731:                                             ; preds = %6730, %6670
  br label %6732

6732:                                             ; preds = %6731
  br label %6733

6733:                                             ; preds = %6732
  br label %6734

6734:                                             ; preds = %6733, %6665
  %6735 = call i32 @s2n_mem_test_free_callbacks(ptr noundef %242)
  %6736 = getelementptr inbounds %struct.s2n_result, ptr %251, i32 0, i32 0
  store i32 %6735, ptr %6736, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %242) #10
  %6737 = call i32 @s2n_stuffer_free(ptr noundef %235)
  call void @llvm.lifetime.end.p0(i64 40, ptr %235) #10
  %6738 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %232)
  %6739 = getelementptr inbounds %struct.s2n_result, ptr %252, i32 0, i32 0
  store i32 %6738, ptr %6739, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %232) #10
  %6740 = call i32 @s2n_connection_ptr_free(ptr noundef %231)
  %6741 = getelementptr inbounds %struct.s2n_result, ptr %253, i32 0, i32 0
  store i32 %6740, ptr %6741, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %231) #10
  %6742 = call i32 @s2n_connection_ptr_free(ptr noundef %230)
  %6743 = getelementptr inbounds %struct.s2n_result, ptr %254, i32 0, i32 0
  store i32 %6742, ptr %6743, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %230) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %229) #10
  br label %6744

6744:                                             ; preds = %6734
  %6745 = load i64, ptr %228, align 8, !tbaa !16
  %6746 = add i64 %6745, 1
  store i64 %6746, ptr %228, align 8, !tbaa !16
  br label %6007, !llvm.loop !67

6747:                                             ; preds = %6010
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #10
  br label %6748

6748:                                             ; preds = %6747
  %6749 = load i64, ptr %226, align 8, !tbaa !16
  %6750 = add i64 %6749, 1
  store i64 %6750, ptr %226, align 8, !tbaa !16
  br label %5999, !llvm.loop !68

6751:                                             ; preds = %6002
  call void @llvm.lifetime.start.p0(i64 8, ptr %255) #10
  store i64 0, ptr %255, align 8, !tbaa !16
  br label %6752

6752:                                             ; preds = %7293, %6751
  %6753 = load i64, ptr %255, align 8, !tbaa !16
  %6754 = icmp ult i64 %6753, 2
  br i1 %6754, label %6756, label %6755

6755:                                             ; preds = %6752
  store i32 648, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %255) #10
  br label %7296

6756:                                             ; preds = %6752
  call void @llvm.lifetime.start.p0(i64 1, ptr %256) #10
  %6757 = load i64, ptr %255, align 8, !tbaa !16
  %6758 = getelementptr inbounds [2 x i8], ptr %22, i64 0, i64 %6757
  %6759 = load i8, ptr %6758, align 1, !tbaa !15
  store i8 %6759, ptr %256, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #10
  store i32 2, ptr %257, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %258) #10
  %6760 = load i8, ptr %256, align 1, !tbaa !15
  %6761 = zext i8 %6760 to i32
  %6762 = call ptr @s2n_connection_new(i32 noundef %6761)
  store ptr %6762, ptr %258, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %259) #10
  %6763 = load i8, ptr %256, align 1, !tbaa !15
  %6764 = zext i8 %6763 to i32
  %6765 = add nsw i32 %6764, 1
  %6766 = srem i32 %6765, 2
  %6767 = call ptr @s2n_connection_new(i32 noundef %6766)
  store ptr %6767, ptr %259, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr %260) #10
  call void @llvm.memset.p0.i64(ptr align 8 %260, i8 0, i64 80, i1 false)
  br label %6768

6768:                                             ; preds = %6756
  %6769 = load i32, ptr @test_count, align 4, !tbaa !5
  %6770 = add nsw i32 %6769, 1
  store i32 %6770, ptr @test_count, align 4, !tbaa !5
  %6771 = load ptr, ptr %11, align 8, !tbaa !9
  %6772 = load ptr, ptr %259, align 8, !tbaa !9
  %6773 = load ptr, ptr %258, align 8, !tbaa !9
  %6774 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %6771, ptr noundef %6772, ptr noundef %6773, ptr noundef %260)
  %6775 = getelementptr inbounds %struct.s2n_result, ptr %261, i32 0, i32 0
  store i32 %6774, ptr %6775, align 4
  %6776 = getelementptr inbounds %struct.s2n_result, ptr %261, i32 0, i32 0
  %6777 = load i32, ptr %6776, align 4
  %6778 = call zeroext i1 @s2n_result_is_ok(i32 %6777)
  br i1 %6778, label %6832, label %6779

6779:                                             ; preds = %6768
  br label %6780

6780:                                             ; preds = %6779
  br label %6781

6781:                                             ; preds = %6780
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #10
  %6782 = call ptr @__errno_location() #11
  %6783 = load i32, ptr %6782, align 4, !tbaa !5
  store i32 %6783, ptr %262, align 4, !tbaa !5
  %6784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6785 = call i32 @s2n_print_stacktrace(ptr noundef %6784)
  %6786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6787 = trunc i8 %6786 to i1
  br i1 %6787, label %6788, label %6810

6788:                                             ; preds = %6781
  %6789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6790 = call i32 @fileno(ptr noundef %6789) #10
  %6791 = call i32 @isatty(i32 noundef %6790) #10
  %6792 = icmp ne i32 %6791, 0
  br i1 %6792, label %6793, label %6810

6793:                                             ; preds = %6788
  %6794 = load i32, ptr %262, align 4, !tbaa !5
  %6795 = call ptr @__errno_location() #11
  store i32 %6794, ptr %6795, align 4, !tbaa !5
  %6796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6797 = load i32, ptr @test_count, align 4, !tbaa !5
  %6798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6799 = load i32, ptr %6798, align 4, !tbaa !5
  %6800 = call ptr @s2n_strerror(i32 noundef %6799, ptr noundef @.str.4)
  %6801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6802 = load i32, ptr %6801, align 4, !tbaa !5
  %6803 = call ptr @s2n_strerror_debug(i32 noundef %6802, ptr noundef @.str.4)
  %6804 = call ptr @__errno_location() #11
  %6805 = load i32, ptr %6804, align 4, !tbaa !5
  %6806 = call ptr @strerror(i32 noundef %6805) #10
  %6807 = call ptr @__errno_location() #11
  %6808 = load i32, ptr %6807, align 4, !tbaa !5
  %6809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6796, ptr noundef @.str.2, i32 noundef %6797, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 498, ptr noundef %6800, ptr noundef %6803, ptr noundef %6806, i32 noundef %6808) #10
  br label %6827

6810:                                             ; preds = %6788, %6781
  %6811 = load i32, ptr %262, align 4, !tbaa !5
  %6812 = call ptr @__errno_location() #11
  store i32 %6811, ptr %6812, align 4, !tbaa !5
  %6813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6814 = load i32, ptr @test_count, align 4, !tbaa !5
  %6815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6816 = load i32, ptr %6815, align 4, !tbaa !5
  %6817 = call ptr @s2n_strerror(i32 noundef %6816, ptr noundef @.str.4)
  %6818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6819 = load i32, ptr %6818, align 4, !tbaa !5
  %6820 = call ptr @s2n_strerror_debug(i32 noundef %6819, ptr noundef @.str.4)
  %6821 = call ptr @__errno_location() #11
  %6822 = load i32, ptr %6821, align 4, !tbaa !5
  %6823 = call ptr @strerror(i32 noundef %6822) #10
  %6824 = call ptr @__errno_location() #11
  %6825 = load i32, ptr %6824, align 4, !tbaa !5
  %6826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6813, ptr noundef @.str.5, i32 noundef %6814, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 498, ptr noundef %6817, ptr noundef %6820, ptr noundef %6823, i32 noundef %6825) #10
  br label %6827

6827:                                             ; preds = %6810, %6793
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #10
  br label %6828

6828:                                             ; preds = %6827
  br label %6829

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

6830:                                             ; No predecessors!
  br label %6831

6831:                                             ; preds = %6830
  br label %6832

6832:                                             ; preds = %6831, %6768
  br label %6833

6833:                                             ; preds = %6832
  br label %6834

6834:                                             ; preds = %6833
  call void @llvm.lifetime.start.p0(i64 40, ptr %263) #10
  call void @llvm.memset.p0.i64(ptr align 8 %263, i8 0, i64 40, i1 false)
  br label %6835

6835:                                             ; preds = %6834
  %6836 = load i32, ptr @test_count, align 4, !tbaa !5
  %6837 = add nsw i32 %6836, 1
  store i32 %6837, ptr @test_count, align 4, !tbaa !5
  %6838 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %263, i32 noundef 0)
  %6839 = icmp eq i32 %6838, -1
  br i1 %6839, label %6840, label %6893

6840:                                             ; preds = %6835
  br label %6841

6841:                                             ; preds = %6840
  br label %6842

6842:                                             ; preds = %6841
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #10
  %6843 = call ptr @__errno_location() #11
  %6844 = load i32, ptr %6843, align 4, !tbaa !5
  store i32 %6844, ptr %264, align 4, !tbaa !5
  %6845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6846 = call i32 @s2n_print_stacktrace(ptr noundef %6845)
  %6847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6848 = trunc i8 %6847 to i1
  br i1 %6848, label %6849, label %6871

6849:                                             ; preds = %6842
  %6850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6851 = call i32 @fileno(ptr noundef %6850) #10
  %6852 = call i32 @isatty(i32 noundef %6851) #10
  %6853 = icmp ne i32 %6852, 0
  br i1 %6853, label %6854, label %6871

6854:                                             ; preds = %6849
  %6855 = load i32, ptr %264, align 4, !tbaa !5
  %6856 = call ptr @__errno_location() #11
  store i32 %6855, ptr %6856, align 4, !tbaa !5
  %6857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6858 = load i32, ptr @test_count, align 4, !tbaa !5
  %6859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6860 = load i32, ptr %6859, align 4, !tbaa !5
  %6861 = call ptr @s2n_strerror(i32 noundef %6860, ptr noundef @.str.4)
  %6862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6863 = load i32, ptr %6862, align 4, !tbaa !5
  %6864 = call ptr @s2n_strerror_debug(i32 noundef %6863, ptr noundef @.str.4)
  %6865 = call ptr @__errno_location() #11
  %6866 = load i32, ptr %6865, align 4, !tbaa !5
  %6867 = call ptr @strerror(i32 noundef %6866) #10
  %6868 = call ptr @__errno_location() #11
  %6869 = load i32, ptr %6868, align 4, !tbaa !5
  %6870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6857, ptr noundef @.str.2, i32 noundef %6858, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 502, ptr noundef %6861, ptr noundef %6864, ptr noundef %6867, i32 noundef %6869) #10
  br label %6888

6871:                                             ; preds = %6849, %6842
  %6872 = load i32, ptr %264, align 4, !tbaa !5
  %6873 = call ptr @__errno_location() #11
  store i32 %6872, ptr %6873, align 4, !tbaa !5
  %6874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6875 = load i32, ptr @test_count, align 4, !tbaa !5
  %6876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6877 = load i32, ptr %6876, align 4, !tbaa !5
  %6878 = call ptr @s2n_strerror(i32 noundef %6877, ptr noundef @.str.4)
  %6879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6880 = load i32, ptr %6879, align 4, !tbaa !5
  %6881 = call ptr @s2n_strerror_debug(i32 noundef %6880, ptr noundef @.str.4)
  %6882 = call ptr @__errno_location() #11
  %6883 = load i32, ptr %6882, align 4, !tbaa !5
  %6884 = call ptr @strerror(i32 noundef %6883) #10
  %6885 = call ptr @__errno_location() #11
  %6886 = load i32, ptr %6885, align 4, !tbaa !5
  %6887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6874, ptr noundef @.str.5, i32 noundef %6875, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 502, ptr noundef %6878, ptr noundef %6881, ptr noundef %6884, i32 noundef %6886) #10
  br label %6888

6888:                                             ; preds = %6871, %6854
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #10
  br label %6889

6889:                                             ; preds = %6888
  br label %6890

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

6891:                                             ; No predecessors!
  br label %6892

6892:                                             ; preds = %6891
  br label %6893

6893:                                             ; preds = %6892, %6835
  br label %6894

6894:                                             ; preds = %6893
  br label %6895

6895:                                             ; preds = %6894
  br label %6896

6896:                                             ; preds = %6895
  %6897 = load i32, ptr @test_count, align 4, !tbaa !5
  %6898 = add nsw i32 %6897, 1
  store i32 %6898, ptr @test_count, align 4, !tbaa !5
  %6899 = call i32 @s2n_stuffer_write_uint8(ptr noundef %263, i8 noundef zeroext 24)
  %6900 = icmp eq i32 %6899, -1
  br i1 %6900, label %6901, label %6954

6901:                                             ; preds = %6896
  br label %6902

6902:                                             ; preds = %6901
  br label %6903

6903:                                             ; preds = %6902
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #10
  %6904 = call ptr @__errno_location() #11
  %6905 = load i32, ptr %6904, align 4, !tbaa !5
  store i32 %6905, ptr %265, align 4, !tbaa !5
  %6906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6907 = call i32 @s2n_print_stacktrace(ptr noundef %6906)
  %6908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6909 = trunc i8 %6908 to i1
  br i1 %6909, label %6910, label %6932

6910:                                             ; preds = %6903
  %6911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6912 = call i32 @fileno(ptr noundef %6911) #10
  %6913 = call i32 @isatty(i32 noundef %6912) #10
  %6914 = icmp ne i32 %6913, 0
  br i1 %6914, label %6915, label %6932

6915:                                             ; preds = %6910
  %6916 = load i32, ptr %265, align 4, !tbaa !5
  %6917 = call ptr @__errno_location() #11
  store i32 %6916, ptr %6917, align 4, !tbaa !5
  %6918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6919 = load i32, ptr @test_count, align 4, !tbaa !5
  %6920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6921 = load i32, ptr %6920, align 4, !tbaa !5
  %6922 = call ptr @s2n_strerror(i32 noundef %6921, ptr noundef @.str.4)
  %6923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6924 = load i32, ptr %6923, align 4, !tbaa !5
  %6925 = call ptr @s2n_strerror_debug(i32 noundef %6924, ptr noundef @.str.4)
  %6926 = call ptr @__errno_location() #11
  %6927 = load i32, ptr %6926, align 4, !tbaa !5
  %6928 = call ptr @strerror(i32 noundef %6927) #10
  %6929 = call ptr @__errno_location() #11
  %6930 = load i32, ptr %6929, align 4, !tbaa !5
  %6931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6918, ptr noundef @.str.2, i32 noundef %6919, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 503, ptr noundef %6922, ptr noundef %6925, ptr noundef %6928, i32 noundef %6930) #10
  br label %6949

6932:                                             ; preds = %6910, %6903
  %6933 = load i32, ptr %265, align 4, !tbaa !5
  %6934 = call ptr @__errno_location() #11
  store i32 %6933, ptr %6934, align 4, !tbaa !5
  %6935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6936 = load i32, ptr @test_count, align 4, !tbaa !5
  %6937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6938 = load i32, ptr %6937, align 4, !tbaa !5
  %6939 = call ptr @s2n_strerror(i32 noundef %6938, ptr noundef @.str.4)
  %6940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6941 = load i32, ptr %6940, align 4, !tbaa !5
  %6942 = call ptr @s2n_strerror_debug(i32 noundef %6941, ptr noundef @.str.4)
  %6943 = call ptr @__errno_location() #11
  %6944 = load i32, ptr %6943, align 4, !tbaa !5
  %6945 = call ptr @strerror(i32 noundef %6944) #10
  %6946 = call ptr @__errno_location() #11
  %6947 = load i32, ptr %6946, align 4, !tbaa !5
  %6948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6935, ptr noundef @.str.5, i32 noundef %6936, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 503, ptr noundef %6939, ptr noundef %6942, ptr noundef %6945, i32 noundef %6947) #10
  br label %6949

6949:                                             ; preds = %6932, %6915
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #10
  br label %6950

6950:                                             ; preds = %6949
  br label %6951

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

6952:                                             ; No predecessors!
  br label %6953

6953:                                             ; preds = %6952
  br label %6954

6954:                                             ; preds = %6953, %6896
  br label %6955

6955:                                             ; preds = %6954
  br label %6956

6956:                                             ; preds = %6955
  br label %6957

6957:                                             ; preds = %6956
  %6958 = load i32, ptr @test_count, align 4, !tbaa !5
  %6959 = add nsw i32 %6958, 1
  store i32 %6959, ptr @test_count, align 4, !tbaa !5
  %6960 = call i32 @s2n_stuffer_write_uint24(ptr noundef %263, i32 noundef 1)
  %6961 = icmp eq i32 %6960, -1
  br i1 %6961, label %6962, label %7015

6962:                                             ; preds = %6957
  br label %6963

6963:                                             ; preds = %6962
  br label %6964

6964:                                             ; preds = %6963
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #10
  %6965 = call ptr @__errno_location() #11
  %6966 = load i32, ptr %6965, align 4, !tbaa !5
  store i32 %6966, ptr %266, align 4, !tbaa !5
  %6967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6968 = call i32 @s2n_print_stacktrace(ptr noundef %6967)
  %6969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6970 = trunc i8 %6969 to i1
  br i1 %6970, label %6971, label %6993

6971:                                             ; preds = %6964
  %6972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6973 = call i32 @fileno(ptr noundef %6972) #10
  %6974 = call i32 @isatty(i32 noundef %6973) #10
  %6975 = icmp ne i32 %6974, 0
  br i1 %6975, label %6976, label %6993

6976:                                             ; preds = %6971
  %6977 = load i32, ptr %266, align 4, !tbaa !5
  %6978 = call ptr @__errno_location() #11
  store i32 %6977, ptr %6978, align 4, !tbaa !5
  %6979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6980 = load i32, ptr @test_count, align 4, !tbaa !5
  %6981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6982 = load i32, ptr %6981, align 4, !tbaa !5
  %6983 = call ptr @s2n_strerror(i32 noundef %6982, ptr noundef @.str.4)
  %6984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6985 = load i32, ptr %6984, align 4, !tbaa !5
  %6986 = call ptr @s2n_strerror_debug(i32 noundef %6985, ptr noundef @.str.4)
  %6987 = call ptr @__errno_location() #11
  %6988 = load i32, ptr %6987, align 4, !tbaa !5
  %6989 = call ptr @strerror(i32 noundef %6988) #10
  %6990 = call ptr @__errno_location() #11
  %6991 = load i32, ptr %6990, align 4, !tbaa !5
  %6992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6979, ptr noundef @.str.2, i32 noundef %6980, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 504, ptr noundef %6983, ptr noundef %6986, ptr noundef %6989, i32 noundef %6991) #10
  br label %7010

6993:                                             ; preds = %6971, %6964
  %6994 = load i32, ptr %266, align 4, !tbaa !5
  %6995 = call ptr @__errno_location() #11
  store i32 %6994, ptr %6995, align 4, !tbaa !5
  %6996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6997 = load i32, ptr @test_count, align 4, !tbaa !5
  %6998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6999 = load i32, ptr %6998, align 4, !tbaa !5
  %7000 = call ptr @s2n_strerror(i32 noundef %6999, ptr noundef @.str.4)
  %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_debug(i32 noundef %7002, ptr noundef @.str.4)
  %7004 = call ptr @__errno_location() #11
  %7005 = load i32, ptr %7004, align 4, !tbaa !5
  %7006 = call ptr @strerror(i32 noundef %7005) #10
  %7007 = call ptr @__errno_location() #11
  %7008 = load i32, ptr %7007, align 4, !tbaa !5
  %7009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6996, ptr noundef @.str.5, i32 noundef %6997, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 504, ptr noundef %7000, ptr noundef %7003, ptr noundef %7006, i32 noundef %7008) #10
  br label %7010

7010:                                             ; preds = %6993, %6976
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #10
  br label %7011

7011:                                             ; preds = %7010
  br label %7012

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

7013:                                             ; No predecessors!
  br label %7014

7014:                                             ; preds = %7013
  br label %7015

7015:                                             ; preds = %7014, %6957
  br label %7016

7016:                                             ; preds = %7015
  br label %7017

7017:                                             ; preds = %7016
  br label %7018

7018:                                             ; preds = %7017
  %7019 = load i32, ptr @test_count, align 4, !tbaa !5
  %7020 = add nsw i32 %7019, 1
  store i32 %7020, ptr @test_count, align 4, !tbaa !5
  %7021 = load ptr, ptr %259, align 8, !tbaa !9
  %7022 = load i32, ptr %257, align 4, !tbaa !5
  %7023 = call i32 @s2n_test_send_records(ptr noundef %7021, ptr noundef byval(%struct.s2n_stuffer) align 8 %263, i32 noundef %7022)
  %7024 = getelementptr inbounds %struct.s2n_result, ptr %267, i32 0, i32 0
  store i32 %7023, ptr %7024, align 4
  %7025 = getelementptr inbounds %struct.s2n_result, ptr %267, i32 0, i32 0
  %7026 = load i32, ptr %7025, align 4
  %7027 = call zeroext i1 @s2n_result_is_ok(i32 %7026)
  br i1 %7027, label %7081, label %7028

7028:                                             ; preds = %7018
  br label %7029

7029:                                             ; preds = %7028
  br label %7030

7030:                                             ; preds = %7029
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #10
  %7031 = call ptr @__errno_location() #11
  %7032 = load i32, ptr %7031, align 4, !tbaa !5
  store i32 %7032, ptr %268, align 4, !tbaa !5
  %7033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7034 = call i32 @s2n_print_stacktrace(ptr noundef %7033)
  %7035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7036 = trunc i8 %7035 to i1
  br i1 %7036, label %7037, label %7059

7037:                                             ; preds = %7030
  %7038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7039 = call i32 @fileno(ptr noundef %7038) #10
  %7040 = call i32 @isatty(i32 noundef %7039) #10
  %7041 = icmp ne i32 %7040, 0
  br i1 %7041, label %7042, label %7059

7042:                                             ; preds = %7037
  %7043 = load i32, ptr %268, align 4, !tbaa !5
  %7044 = call ptr @__errno_location() #11
  store i32 %7043, ptr %7044, align 4, !tbaa !5
  %7045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7046 = load i32, ptr @test_count, align 4, !tbaa !5
  %7047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7048 = load i32, ptr %7047, align 4, !tbaa !5
  %7049 = call ptr @s2n_strerror(i32 noundef %7048, ptr noundef @.str.4)
  %7050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7051 = load i32, ptr %7050, align 4, !tbaa !5
  %7052 = call ptr @s2n_strerror_debug(i32 noundef %7051, ptr noundef @.str.4)
  %7053 = call ptr @__errno_location() #11
  %7054 = load i32, ptr %7053, align 4, !tbaa !5
  %7055 = call ptr @strerror(i32 noundef %7054) #10
  %7056 = call ptr @__errno_location() #11
  %7057 = load i32, ptr %7056, align 4, !tbaa !5
  %7058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7045, ptr noundef @.str.2, i32 noundef %7046, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 511, ptr noundef %7049, ptr noundef %7052, ptr noundef %7055, i32 noundef %7057) #10
  br label %7076

7059:                                             ; preds = %7037, %7030
  %7060 = load i32, ptr %268, align 4, !tbaa !5
  %7061 = call ptr @__errno_location() #11
  store i32 %7060, ptr %7061, align 4, !tbaa !5
  %7062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7063 = load i32, ptr @test_count, align 4, !tbaa !5
  %7064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7065 = load i32, ptr %7064, align 4, !tbaa !5
  %7066 = call ptr @s2n_strerror(i32 noundef %7065, ptr noundef @.str.4)
  %7067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7068 = load i32, ptr %7067, align 4, !tbaa !5
  %7069 = call ptr @s2n_strerror_debug(i32 noundef %7068, ptr noundef @.str.4)
  %7070 = call ptr @__errno_location() #11
  %7071 = load i32, ptr %7070, align 4, !tbaa !5
  %7072 = call ptr @strerror(i32 noundef %7071) #10
  %7073 = call ptr @__errno_location() #11
  %7074 = load i32, ptr %7073, align 4, !tbaa !5
  %7075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7062, ptr noundef @.str.5, i32 noundef %7063, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 511, ptr noundef %7066, ptr noundef %7069, ptr noundef %7072, i32 noundef %7074) #10
  br label %7076

7076:                                             ; preds = %7059, %7042
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #10
  br label %7077

7077:                                             ; preds = %7076
  br label %7078

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

7079:                                             ; No predecessors!
  br label %7080

7080:                                             ; preds = %7079
  br label %7081

7081:                                             ; preds = %7080, %7018
  br label %7082

7082:                                             ; preds = %7081
  br label %7083

7083:                                             ; preds = %7082
  br label %7084

7084:                                             ; preds = %7083
  br label %7085

7085:                                             ; preds = %7084
  br label %7086

7086:                                             ; preds = %7085
  %7087 = load i32, ptr @test_count, align 4, !tbaa !5
  %7088 = add nsw i32 %7087, 1
  store i32 %7088, ptr @test_count, align 4, !tbaa !5
  %7089 = load ptr, ptr %259, align 8, !tbaa !9
  %7090 = load ptr, ptr %258, align 8, !tbaa !9
  %7091 = call i32 @s2n_test_basic_recv(ptr noundef %7089, ptr noundef %7090)
  %7092 = getelementptr inbounds %struct.s2n_result, ptr %269, i32 0, i32 0
  store i32 %7091, ptr %7092, align 4
  %7093 = getelementptr inbounds %struct.s2n_result, ptr %269, i32 0, i32 0
  %7094 = load i32, ptr %7093, align 4
  %7095 = call zeroext i1 @s2n_result_is_error(i32 %7094)
  br i1 %7095, label %7149, label %7096

7096:                                             ; preds = %7086
  br label %7097

7097:                                             ; preds = %7096
  br label %7098

7098:                                             ; preds = %7097
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #10
  %7099 = call ptr @__errno_location() #11
  %7100 = load i32, ptr %7099, align 4, !tbaa !5
  store i32 %7100, ptr %270, align 4, !tbaa !5
  %7101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7102 = call i32 @s2n_print_stacktrace(ptr noundef %7101)
  %7103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7104 = trunc i8 %7103 to i1
  br i1 %7104, label %7105, label %7127

7105:                                             ; preds = %7098
  %7106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7107 = call i32 @fileno(ptr noundef %7106) #10
  %7108 = call i32 @isatty(i32 noundef %7107) #10
  %7109 = icmp ne i32 %7108, 0
  br i1 %7109, label %7110, label %7127

7110:                                             ; preds = %7105
  %7111 = load i32, ptr %270, align 4, !tbaa !5
  %7112 = call ptr @__errno_location() #11
  store i32 %7111, ptr %7112, align 4, !tbaa !5
  %7113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7114 = load i32, ptr @test_count, align 4, !tbaa !5
  %7115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7116 = load i32, ptr %7115, align 4, !tbaa !5
  %7117 = call ptr @s2n_strerror(i32 noundef %7116, ptr noundef @.str.4)
  %7118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7119 = load i32, ptr %7118, align 4, !tbaa !5
  %7120 = call ptr @s2n_strerror_debug(i32 noundef %7119, ptr noundef @.str.4)
  %7121 = call ptr @__errno_location() #11
  %7122 = load i32, ptr %7121, align 4, !tbaa !5
  %7123 = call ptr @strerror(i32 noundef %7122) #10
  %7124 = call ptr @__errno_location() #11
  %7125 = load i32, ptr %7124, align 4, !tbaa !5
  %7126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7113, ptr noundef @.str.2, i32 noundef %7114, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 512, ptr noundef %7117, ptr noundef %7120, ptr noundef %7123, i32 noundef %7125) #10
  br label %7144

7127:                                             ; preds = %7105, %7098
  %7128 = load i32, ptr %270, align 4, !tbaa !5
  %7129 = call ptr @__errno_location() #11
  store i32 %7128, ptr %7129, align 4, !tbaa !5
  %7130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7131 = load i32, ptr @test_count, align 4, !tbaa !5
  %7132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7133 = load i32, ptr %7132, align 4, !tbaa !5
  %7134 = call ptr @s2n_strerror(i32 noundef %7133, ptr noundef @.str.4)
  %7135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7136 = load i32, ptr %7135, align 4, !tbaa !5
  %7137 = call ptr @s2n_strerror_debug(i32 noundef %7136, ptr noundef @.str.4)
  %7138 = call ptr @__errno_location() #11
  %7139 = load i32, ptr %7138, align 4, !tbaa !5
  %7140 = call ptr @strerror(i32 noundef %7139) #10
  %7141 = call ptr @__errno_location() #11
  %7142 = load i32, ptr %7141, align 4, !tbaa !5
  %7143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7130, ptr noundef @.str.5, i32 noundef %7131, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 512, ptr noundef %7134, ptr noundef %7137, ptr noundef %7140, i32 noundef %7142) #10
  br label %7144

7144:                                             ; preds = %7127, %7110
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #10
  br label %7145

7145:                                             ; preds = %7144
  br label %7146

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

7147:                                             ; No predecessors!
  br label %7148

7148:                                             ; preds = %7147
  br label %7149

7149:                                             ; preds = %7148, %7086
  br label %7150

7150:                                             ; preds = %7149
  br label %7151

7151:                                             ; preds = %7150
  br label %7152

7152:                                             ; preds = %7151
  %7153 = load i32, ptr @test_count, align 4, !tbaa !5
  %7154 = add nsw i32 %7153, 1
  store i32 %7154, ptr @test_count, align 4, !tbaa !5
  %7155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7156 = load i32, ptr %7155, align 4, !tbaa !5
  %7157 = icmp eq i32 %7156, 335544322
  br i1 %7157, label %7211, label %7158

7158:                                             ; preds = %7152
  br label %7159

7159:                                             ; preds = %7158
  br label %7160

7160:                                             ; preds = %7159
  call void @llvm.lifetime.start.p0(i64 4, ptr %271) #10
  %7161 = call ptr @__errno_location() #11
  %7162 = load i32, ptr %7161, align 4, !tbaa !5
  store i32 %7162, ptr %271, align 4, !tbaa !5
  %7163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7164 = call i32 @s2n_print_stacktrace(ptr noundef %7163)
  %7165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7166 = trunc i8 %7165 to i1
  br i1 %7166, label %7167, label %7189

7167:                                             ; preds = %7160
  %7168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7169 = call i32 @fileno(ptr noundef %7168) #10
  %7170 = call i32 @isatty(i32 noundef %7169) #10
  %7171 = icmp ne i32 %7170, 0
  br i1 %7171, label %7172, label %7189

7172:                                             ; preds = %7167
  %7173 = load i32, ptr %271, align 4, !tbaa !5
  %7174 = call ptr @__errno_location() #11
  store i32 %7173, ptr %7174, align 4, !tbaa !5
  %7175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7176 = load i32, ptr @test_count, align 4, !tbaa !5
  %7177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7178 = load i32, ptr %7177, align 4, !tbaa !5
  %7179 = call ptr @s2n_strerror(i32 noundef %7178, ptr noundef @.str.4)
  %7180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7181 = load i32, ptr %7180, align 4, !tbaa !5
  %7182 = call ptr @s2n_strerror_debug(i32 noundef %7181, ptr noundef @.str.4)
  %7183 = call ptr @__errno_location() #11
  %7184 = load i32, ptr %7183, align 4, !tbaa !5
  %7185 = call ptr @strerror(i32 noundef %7184) #10
  %7186 = call ptr @__errno_location() #11
  %7187 = load i32, ptr %7186, align 4, !tbaa !5
  %7188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7175, ptr noundef @.str.2, i32 noundef %7176, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 512, ptr noundef %7179, ptr noundef %7182, ptr noundef %7185, i32 noundef %7187) #10
  br label %7206

7189:                                             ; preds = %7167, %7160
  %7190 = load i32, ptr %271, align 4, !tbaa !5
  %7191 = call ptr @__errno_location() #11
  store i32 %7190, ptr %7191, align 4, !tbaa !5
  %7192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7193 = load i32, ptr @test_count, align 4, !tbaa !5
  %7194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7195 = load i32, ptr %7194, align 4, !tbaa !5
  %7196 = call ptr @s2n_strerror(i32 noundef %7195, ptr noundef @.str.4)
  %7197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7198 = load i32, ptr %7197, align 4, !tbaa !5
  %7199 = call ptr @s2n_strerror_debug(i32 noundef %7198, ptr noundef @.str.4)
  %7200 = call ptr @__errno_location() #11
  %7201 = load i32, ptr %7200, align 4, !tbaa !5
  %7202 = call ptr @strerror(i32 noundef %7201) #10
  %7203 = call ptr @__errno_location() #11
  %7204 = load i32, ptr %7203, align 4, !tbaa !5
  %7205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7192, ptr noundef @.str.5, i32 noundef %7193, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 512, ptr noundef %7196, ptr noundef %7199, ptr noundef %7202, i32 noundef %7204) #10
  br label %7206

7206:                                             ; preds = %7189, %7172
  call void @llvm.lifetime.end.p0(i64 4, ptr %271) #10
  br label %7207

7207:                                             ; preds = %7206
  br label %7208

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

7209:                                             ; No predecessors!
  br label %7210

7210:                                             ; preds = %7209
  br label %7211

7211:                                             ; preds = %7210, %7152
  br label %7212

7212:                                             ; preds = %7211
  br label %7213

7213:                                             ; preds = %7212
  br label %7214

7214:                                             ; preds = %7213
  %7215 = load i32, ptr @test_count, align 4, !tbaa !5
  %7216 = add nsw i32 %7215, 1
  store i32 %7216, ptr @test_count, align 4, !tbaa !5
  %7217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7218 = load i32, ptr %7217, align 4, !tbaa !5
  %7219 = call ptr @s2n_strerror_debug(i32 noundef %7218, ptr noundef @.str.4)
  %7220 = icmp eq ptr %7219, null
  br i1 %7220, label %7221, label %7274

7221:                                             ; preds = %7214
  br label %7222

7222:                                             ; preds = %7221
  br label %7223

7223:                                             ; preds = %7222
  call void @llvm.lifetime.start.p0(i64 4, ptr %272) #10
  %7224 = call ptr @__errno_location() #11
  %7225 = load i32, ptr %7224, align 4, !tbaa !5
  store i32 %7225, ptr %272, align 4, !tbaa !5
  %7226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7227 = call i32 @s2n_print_stacktrace(ptr noundef %7226)
  %7228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7229 = trunc i8 %7228 to i1
  br i1 %7229, label %7230, label %7252

7230:                                             ; preds = %7223
  %7231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7232 = call i32 @fileno(ptr noundef %7231) #10
  %7233 = call i32 @isatty(i32 noundef %7232) #10
  %7234 = icmp ne i32 %7233, 0
  br i1 %7234, label %7235, label %7252

7235:                                             ; preds = %7230
  %7236 = load i32, ptr %272, align 4, !tbaa !5
  %7237 = call ptr @__errno_location() #11
  store i32 %7236, ptr %7237, align 4, !tbaa !5
  %7238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7239 = load i32, ptr @test_count, align 4, !tbaa !5
  %7240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7241 = load i32, ptr %7240, align 4, !tbaa !5
  %7242 = call ptr @s2n_strerror(i32 noundef %7241, ptr noundef @.str.4)
  %7243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7244 = load i32, ptr %7243, align 4, !tbaa !5
  %7245 = call ptr @s2n_strerror_debug(i32 noundef %7244, ptr noundef @.str.4)
  %7246 = call ptr @__errno_location() #11
  %7247 = load i32, ptr %7246, align 4, !tbaa !5
  %7248 = call ptr @strerror(i32 noundef %7247) #10
  %7249 = call ptr @__errno_location() #11
  %7250 = load i32, ptr %7249, align 4, !tbaa !5
  %7251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7238, ptr noundef @.str.2, i32 noundef %7239, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 512, ptr noundef %7242, ptr noundef %7245, ptr noundef %7248, i32 noundef %7250) #10
  br label %7269

7252:                                             ; preds = %7230, %7223
  %7253 = load i32, ptr %272, align 4, !tbaa !5
  %7254 = call ptr @__errno_location() #11
  store i32 %7253, ptr %7254, align 4, !tbaa !5
  %7255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7256 = load i32, ptr @test_count, align 4, !tbaa !5
  %7257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7258 = load i32, ptr %7257, align 4, !tbaa !5
  %7259 = call ptr @s2n_strerror(i32 noundef %7258, ptr noundef @.str.4)
  %7260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7261 = load i32, ptr %7260, align 4, !tbaa !5
  %7262 = call ptr @s2n_strerror_debug(i32 noundef %7261, ptr noundef @.str.4)
  %7263 = call ptr @__errno_location() #11
  %7264 = load i32, ptr %7263, align 4, !tbaa !5
  %7265 = call ptr @strerror(i32 noundef %7264) #10
  %7266 = call ptr @__errno_location() #11
  %7267 = load i32, ptr %7266, align 4, !tbaa !5
  %7268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7255, ptr noundef @.str.5, i32 noundef %7256, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 512, ptr noundef %7259, ptr noundef %7262, ptr noundef %7265, i32 noundef %7267) #10
  br label %7269

7269:                                             ; preds = %7252, %7235
  call void @llvm.lifetime.end.p0(i64 4, ptr %272) #10
  br label %7270

7270:                                             ; preds = %7269
  br label %7271

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

7272:                                             ; No predecessors!
  br label %7273

7273:                                             ; preds = %7272
  br label %7274

7274:                                             ; preds = %7273, %7214
  br label %7275

7275:                                             ; preds = %7274
  br label %7276

7276:                                             ; preds = %7275
  br label %7277

7277:                                             ; preds = %7276
  br label %7278

7278:                                             ; preds = %7277
  br label %7279

7279:                                             ; preds = %7278
  %7280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7280, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7281 = call ptr @__errno_location() #11
  store i32 0, ptr %7281, align 4, !tbaa !5
  br label %7282

7282:                                             ; preds = %7279
  br label %7283

7283:                                             ; preds = %7282
  br label %7284

7284:                                             ; preds = %7283
  br label %7285

7285:                                             ; preds = %7284
  %7286 = call i32 @s2n_stuffer_free(ptr noundef %263)
  call void @llvm.lifetime.end.p0(i64 40, ptr %263) #10
  %7287 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %260)
  %7288 = getelementptr inbounds %struct.s2n_result, ptr %273, i32 0, i32 0
  store i32 %7287, ptr %7288, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %260) #10
  %7289 = call i32 @s2n_connection_ptr_free(ptr noundef %259)
  %7290 = getelementptr inbounds %struct.s2n_result, ptr %274, i32 0, i32 0
  store i32 %7289, ptr %7290, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %259) #10
  %7291 = call i32 @s2n_connection_ptr_free(ptr noundef %258)
  %7292 = getelementptr inbounds %struct.s2n_result, ptr %275, i32 0, i32 0
  store i32 %7291, ptr %7292, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %258) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %256) #10
  br label %7293

7293:                                             ; preds = %7285
  %7294 = load i64, ptr %255, align 8, !tbaa !16
  %7295 = add i64 %7294, 1
  store i64 %7295, ptr %255, align 8, !tbaa !16
  br label %6752, !llvm.loop !69

7296:                                             ; preds = %6755
  br label %7297

7297:                                             ; preds = %7296
  br label %7298

7298:                                             ; preds = %7297
  %7299 = call i32 @s2n_cleanup()
  %7300 = icmp eq i32 %7299, -1
  br i1 %7300, label %7301, label %7354

7301:                                             ; preds = %7298
  br label %7302

7302:                                             ; preds = %7301
  br label %7303

7303:                                             ; preds = %7302
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #10
  %7304 = call ptr @__errno_location() #11
  %7305 = load i32, ptr %7304, align 4, !tbaa !5
  store i32 %7305, ptr %276, align 4, !tbaa !5
  %7306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7307 = call i32 @s2n_print_stacktrace(ptr noundef %7306)
  %7308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7309 = trunc i8 %7308 to i1
  br i1 %7309, label %7310, label %7332

7310:                                             ; preds = %7303
  %7311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7312 = call i32 @fileno(ptr noundef %7311) #10
  %7313 = call i32 @isatty(i32 noundef %7312) #10
  %7314 = icmp ne i32 %7313, 0
  br i1 %7314, label %7315, label %7332

7315:                                             ; preds = %7310
  %7316 = load i32, ptr %276, align 4, !tbaa !5
  %7317 = call ptr @__errno_location() #11
  store i32 %7316, ptr %7317, align 4, !tbaa !5
  %7318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7319 = load i32, ptr @test_count, align 4, !tbaa !5
  %7320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7321 = load i32, ptr %7320, align 4, !tbaa !5
  %7322 = call ptr @s2n_strerror(i32 noundef %7321, ptr noundef @.str.4)
  %7323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7324 = load i32, ptr %7323, align 4, !tbaa !5
  %7325 = call ptr @s2n_strerror_debug(i32 noundef %7324, ptr noundef @.str.4)
  %7326 = call ptr @__errno_location() #11
  %7327 = load i32, ptr %7326, align 4, !tbaa !5
  %7328 = call ptr @strerror(i32 noundef %7327) #10
  %7329 = call ptr @__errno_location() #11
  %7330 = load i32, ptr %7329, align 4, !tbaa !5
  %7331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7318, ptr noundef @.str.2, i32 noundef %7319, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 515, ptr noundef %7322, ptr noundef %7325, ptr noundef %7328, i32 noundef %7330) #10
  br label %7349

7332:                                             ; preds = %7310, %7303
  %7333 = load i32, ptr %276, align 4, !tbaa !5
  %7334 = call ptr @__errno_location() #11
  store i32 %7333, ptr %7334, align 4, !tbaa !5
  %7335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7336 = load i32, ptr @test_count, align 4, !tbaa !5
  %7337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7338 = load i32, ptr %7337, align 4, !tbaa !5
  %7339 = call ptr @s2n_strerror(i32 noundef %7338, ptr noundef @.str.4)
  %7340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7341 = load i32, ptr %7340, align 4, !tbaa !5
  %7342 = call ptr @s2n_strerror_debug(i32 noundef %7341, ptr noundef @.str.4)
  %7343 = call ptr @__errno_location() #11
  %7344 = load i32, ptr %7343, align 4, !tbaa !5
  %7345 = call ptr @strerror(i32 noundef %7344) #10
  %7346 = call ptr @__errno_location() #11
  %7347 = load i32, ptr %7346, align 4, !tbaa !5
  %7348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7335, ptr noundef @.str.5, i32 noundef %7336, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 515, ptr noundef %7339, ptr noundef %7342, ptr noundef %7345, i32 noundef %7347) #10
  br label %7349

7349:                                             ; preds = %7332, %7315
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #10
  br label %7350

7350:                                             ; preds = %7349
  br label %7351

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

7352:                                             ; No predecessors!
  br label %7353

7353:                                             ; preds = %7352
  br label %7354

7354:                                             ; preds = %7353, %7298
  br label %7355

7355:                                             ; preds = %7354
  br label %7356

7356:                                             ; preds = %7355
  br label %7357

7357:                                             ; preds = %7356
  br label %7358

7358:                                             ; preds = %7357
  %7359 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %7360 = icmp eq i32 %7359, -1
  br i1 %7360, label %7361, label %7414

7361:                                             ; preds = %7358
  br label %7362

7362:                                             ; preds = %7361
  br label %7363

7363:                                             ; preds = %7362
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #10
  %7364 = call ptr @__errno_location() #11
  %7365 = load i32, ptr %7364, align 4, !tbaa !5
  store i32 %7365, ptr %277, align 4, !tbaa !5
  %7366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7367 = call i32 @s2n_print_stacktrace(ptr noundef %7366)
  %7368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7369 = trunc i8 %7368 to i1
  br i1 %7369, label %7370, label %7392

7370:                                             ; preds = %7363
  %7371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7372 = call i32 @fileno(ptr noundef %7371) #10
  %7373 = call i32 @isatty(i32 noundef %7372) #10
  %7374 = icmp ne i32 %7373, 0
  br i1 %7374, label %7375, label %7392

7375:                                             ; preds = %7370
  %7376 = load i32, ptr %277, align 4, !tbaa !5
  %7377 = call ptr @__errno_location() #11
  store i32 %7376, ptr %7377, align 4, !tbaa !5
  %7378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7379 = load i32, ptr @test_count, align 4, !tbaa !5
  %7380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7381 = load i32, ptr %7380, align 4, !tbaa !5
  %7382 = call ptr @s2n_strerror(i32 noundef %7381, ptr noundef @.str.4)
  %7383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7384 = load i32, ptr %7383, align 4, !tbaa !5
  %7385 = call ptr @s2n_strerror_debug(i32 noundef %7384, ptr noundef @.str.4)
  %7386 = call ptr @__errno_location() #11
  %7387 = load i32, ptr %7386, align 4, !tbaa !5
  %7388 = call ptr @strerror(i32 noundef %7387) #10
  %7389 = call ptr @__errno_location() #11
  %7390 = load i32, ptr %7389, align 4, !tbaa !5
  %7391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7378, ptr noundef @.str.2, i32 noundef %7379, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 515, ptr noundef %7382, ptr noundef %7385, ptr noundef %7388, i32 noundef %7390) #10
  br label %7409

7392:                                             ; preds = %7370, %7363
  %7393 = load i32, ptr %277, align 4, !tbaa !5
  %7394 = call ptr @__errno_location() #11
  store i32 %7393, ptr %7394, align 4, !tbaa !5
  %7395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7396 = load i32, ptr @test_count, align 4, !tbaa !5
  %7397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7398 = load i32, ptr %7397, align 4, !tbaa !5
  %7399 = call ptr @s2n_strerror(i32 noundef %7398, ptr noundef @.str.4)
  %7400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7401 = load i32, ptr %7400, align 4, !tbaa !5
  %7402 = call ptr @s2n_strerror_debug(i32 noundef %7401, ptr noundef @.str.4)
  %7403 = call ptr @__errno_location() #11
  %7404 = load i32, ptr %7403, align 4, !tbaa !5
  %7405 = call ptr @strerror(i32 noundef %7404) #10
  %7406 = call ptr @__errno_location() #11
  %7407 = load i32, ptr %7406, align 4, !tbaa !5
  %7408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7395, ptr noundef @.str.5, i32 noundef %7396, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 515, ptr noundef %7399, ptr noundef %7402, ptr noundef %7405, i32 noundef %7407) #10
  br label %7409

7409:                                             ; preds = %7392, %7375
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #10
  br label %7410

7410:                                             ; preds = %7409
  br label %7411

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

7412:                                             ; No predecessors!
  br label %7413

7413:                                             ; preds = %7412
  br label %7414

7414:                                             ; preds = %7413, %7358
  br label %7415

7415:                                             ; preds = %7414
  br label %7416

7416:                                             ; preds = %7415
  %7417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7418 = trunc i8 %7417 to i1
  br i1 %7418, label %7419, label %7435

7419:                                             ; preds = %7416
  %7420 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7421 = call i32 @fileno(ptr noundef %7420) #10
  %7422 = call i32 @isatty(i32 noundef %7421) #10
  %7423 = icmp ne i32 %7422, 0
  br i1 %7423, label %7424, label %7435

7424:                                             ; preds = %7419
  %7425 = load i32, ptr @test_count, align 4, !tbaa !5
  %7426 = icmp ne i32 %7425, 0
  br i1 %7426, label %7427, label %7431

7427:                                             ; preds = %7424
  %7428 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7429 = load i32, ptr @test_count, align 4, !tbaa !5
  %7430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7428, ptr noundef @.str.57, i32 noundef %7429) #10
  br label %7434

7431:                                             ; preds = %7424
  %7432 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7432, ptr noundef @.str.58) #10
  br label %7434

7434:                                             ; preds = %7431, %7427
  br label %7446

7435:                                             ; preds = %7419, %7416
  %7436 = load i32, ptr @test_count, align 4, !tbaa !5
  %7437 = icmp ne i32 %7436, 0
  br i1 %7437, label %7438, label %7442

7438:                                             ; preds = %7435
  %7439 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7440 = load i32, ptr @test_count, align 4, !tbaa !5
  %7441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7439, ptr noundef @.str.59, i32 noundef %7440) #10
  br label %7445

7442:                                             ; preds = %7435
  %7443 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7443, ptr noundef @.str.60) #10
  br label %7445

7445:                                             ; preds = %7442, %7438
  br label %7446

7446:                                             ; preds = %7445, %7434
  store i32 0, ptr %3, align 4
  store i32 1, ptr %24, align 4
  br label %7451

7447:                                             ; No predecessors!
  br label %7448

7448:                                             ; preds = %7447
  br label %7449

7449:                                             ; preds = %7448
  br label %7450

7450:                                             ; preds = %7449
  store i32 0, ptr %24, align 4
  br label %7451

7451:                                             ; preds = %7450, %7446
  call void @llvm.lifetime.end.p0(i64 2, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 28, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 9, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #10
  %7452 = call i32 @s2n_config_ptr_free(ptr noundef %11)
  %7453 = getelementptr inbounds %struct.s2n_result, ptr %278, i32 0, i32 0
  store i32 %7452, ptr %7453, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #10
  %7454 = load i32, ptr %24, align 4
  switch i32 %7454, label %7457 [
    i32 0, label %7455
    i32 1, label %7455
  ]

7455:                                             ; preds = %7451, %7451
  %7456 = load i32, ptr %3, align 4
  ret i32 %7456

7457:                                             ; preds = %7451
  unreachable
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #1

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #4

declare i32 @s2n_print_stacktrace(ptr noundef) #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #1

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) #2

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #1

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #6

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) #2

declare i32 @s2n_config_set_session_ticket_cb(ptr noundef, ptr noundef, ptr noundef) #2

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

declare i32 @s2n_config_set_renegotiate_request_cb(ptr noundef, ptr noundef, ptr noundef) #2

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

; 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) #7

declare i32 @s2n_config_set_session_tickets_onoff(ptr noundef, i8 noundef zeroext) #2

declare i32 @s2n_config_add_ticket_crypto_key(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, i64 noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

declare i32 @s2n_io_stuffer_pair_free(ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #9

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

declare i32 @s2n_free(ptr noundef) #2

declare i32 @s2n_alloc(ptr noundef, i32 noundef) #2

declare i32 @s2n_key_update_write(ptr noundef) #2

declare i32 @s2n_stuffer_init(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_skip_write(ptr noundef, i32 noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_send_records(ptr noundef, ptr noundef byval(%struct.s2n_stuffer) align 8, i32 noundef) #0

declare i32 @s2n_update_application_traffic_keys(ptr noundef, i32 noundef, i32 noundef) #2

declare i32 @s2n_mem_test_free_callbacks(ptr noundef) #2

declare i32 @s2n_mem_test_init_callbacks(ptr noundef) #2

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

declare i32 @s2n_mem_test_assert_malloc_count(i32 noundef) #2

declare i32 @s2n_stuffer_free(ptr noundef) #2

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) #2

declare i32 @s2n_tls13_server_nst_write(ptr noundef, ptr noundef) #2

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) #9

declare void @s2n_debug_info_reset() #2

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

declare i32 @s2n_stuffer_write_uint24(ptr noundef, i32 noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"long", !7, i64 0}
!18 = !{!19, !10, i64 80}
!19 = !{!"s2n_config", !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, !10, i64 8, !10, i64 16, !20, i64 24, !21, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !17, i64 144, !10, i64 152, !17, i64 160, !17, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !22, i64 304, !23, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !21, i64 448}
!20 = !{!"certs_by_type", !7, i64 0}
!21 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!22 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!23 = !{!"short", !7, i64 0}
!24 = !{!19, !10, i64 104}
!25 = !{!19, !7, i64 297}
!26 = !{!27, !6, i64 148}
!27 = !{!"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, !28, 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, !29, i64 240, !10, i64 632, !10, i64 640, !30, i64 648, !35, i64 1144, !38, 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, !23, i64 2208, !6, i64 2212, !23, 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, !21, i64 2792, !6, i64 2816, !21, i64 2824, !21, i64 2848, !21, i64 2872, !44, i64 2896, !46, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !21, i64 3784, !6, i64 3808, !48, i64 3816, !7, i64 3848, !40, i64 3992, !21, i64 4032, !21, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !23, i64 4084, !23, i64 4086, !6, i64 4088, !6, i64 4092, !21, i64 4096, !6, i64 4120, !49, i64 4128, !41, i64 4176, !7, i64 4180, !7, i64 4181}
!28 = !{!"s2n_timer", !17, i64 0}
!29 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!30 = !{!"s2n_kex_parameters", !31, i64 0, !32, i64 8, !7, i64 24, !32, i64 56, !33, i64 72, !33, i64 184, !7, i64 296, !34, i64 360, !21, i64 448, !21, i64 472}
!31 = !{!"s2n_dh_params", !10, i64 0}
!32 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!33 = !{!"s2n_kem_group_params", !10, i64 0, !34, i64 8, !32, i64 96}
!34 = !{!"s2n_kem_params", !10, i64 0, !21, i64 8, !21, i64 32, !21, i64 56, !12, i64 80}
!35 = !{!"s2n_handshake_parameters", !36, i64 0, !36, i64 48, !21, i64 96, !6, i64 120, !37, 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}
!36 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!37 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!38 = !{!"s2n_psk_parameters", !6, i64 0, !39, i64 8, !23, i64 40, !23, i64 42, !10, i64 48, !6, i64 56}
!39 = !{!"s2n_array", !21, i64 0, !6, i64 24, !6, i64 28}
!40 = !{!"s2n_stuffer", !21, 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", !21, i64 0, !45, i64 24, !21, i64 728, !21, i64 752, !21, 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, !21, i64 672, !23, i64 696}
!46 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !23, 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", !21, i64 0, !6, i64 24}
!49 = !{!"s2n_post_handshake", !40, i64 0, !7, i64 40}
!50 = distinct !{!50, !51}
!51 = !{!"llvm.loop.mustprogress"}
!52 = distinct !{!52, !51}
!53 = distinct !{!53, !51}
!54 = !{!27, !23, i64 4084}
!55 = distinct !{!55, !51}
!56 = distinct !{!56, !51}
!57 = !{!27, !6, i64 4092}
!58 = !{!40, !6, i64 28}
!59 = !{!40, !6, i64 24}
!60 = distinct !{!60, !51}
!61 = distinct !{!61, !51}
!62 = distinct !{!62, !51}
!63 = distinct !{!63, !51}
!64 = distinct !{!64, !51}
!65 = distinct !{!65, !51}
!66 = distinct !{!66, !51}
!67 = distinct !{!67, !51}
!68 = distinct !{!68, !51}
!69 = distinct !{!69, !51}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.s2n_test_io_stuffer_pair = type { %struct.s2n_stuffer, %struct.s2n_stuffer }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_mem_test_cb_scope = type { i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@tickets_count = external dso_local local_unnamed_addr global i64, align 8
@hello_request_count = external dso_local local_unnamed_addr global i64, align 8
@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 [87 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 [14 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [108 x i8], align 1
@__const.main.ticket_key_name = external hidden unnamed_addr constant [16 x i8], align 16
@__const.main.ticket_key = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [170 x i8], align 1
@__const.main.fragment_sizes = external hidden unnamed_addr constant [7 x i32], align 16
@__const.main.modes = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.60 = 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 ptr, align 8
  %4 = alloca [16 x i8], align 16
  %5 = alloca [9 x i8], align 1
  %6 = alloca i64, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %10 = alloca %struct.s2n_stuffer, align 8
  %11 = alloca %struct.s2n_blob, align 8
  %12 = alloca %struct.s2n_mem_test_cb_scope, align 1
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %16 = alloca %struct.s2n_stuffer, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %20 = alloca %struct.s2n_stuffer, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %24 = alloca %struct.s2n_stuffer, align 8
  %25 = alloca %struct.s2n_mem_test_cb_scope, align 1
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %29 = alloca %struct.s2n_stuffer, align 8
  %30 = alloca %struct.s2n_mem_test_cb_scope, align 1
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %34 = alloca %struct.s2n_stuffer, align 8
  %35 = alloca %struct.s2n_mem_test_cb_scope, align 1
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %39 = alloca %struct.s2n_stuffer, align 8
  %40 = alloca %struct.s2n_mem_test_cb_scope, align 1
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %44 = alloca %struct.s2n_stuffer, align 8
  %45 = alloca %struct.s2n_mem_test_cb_scope, align 1
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %49 = alloca %struct.s2n_stuffer, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %50 = load ptr, ptr @stdout, align 8, !tbaa !9
  %51 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %50, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %52 = load ptr, ptr @stdout, align 8, !tbaa !9
  %53 = tail call i32 @fflush(ptr noundef %52)
  %54 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %55 = icmp eq i32 %54, -1
  br i1 %55, label %56, label %80

56:                                               ; preds = %2
  %57 = tail call ptr @__errno_location() #12
  %58 = load i32, ptr %57, align 4, !tbaa !5
  %59 = load ptr, ptr @stderr, align 8, !tbaa !9
  %60 = tail call i32 @s2n_print_stacktrace(ptr noundef %59) #11
  %61 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %62 = trunc nuw i8 %61 to i1
  br i1 %62, label %63, label %67

63:                                               ; preds = %56
  %64 = load ptr, ptr @stderr, align 8, !tbaa !9
  %65 = tail call i32 @fileno(ptr noundef %64) #11
  %66 = tail call i32 @isatty(i32 noundef %65) #11
  %.not491 = icmp eq i32 %66, 0
  br i1 %.not491, label %67, label %68

67:                                               ; preds = %63, %56
  br label %68

68:                                               ; preds = %63, %67
  %.str.5.sink = phi ptr [ @.str.5, %67 ], [ @.str.2, %63 ]
  store i32 %58, ptr %57, align 4, !tbaa !5
  %69 = load ptr, ptr @stderr, align 8, !tbaa !9
  %70 = load i32, ptr @test_count, align 4, !tbaa !5
  %71 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %72 = load i32, ptr %71, align 4, !tbaa !5
  %73 = tail call ptr @s2n_strerror(i32 noundef %72, ptr noundef nonnull @.str.4) #11
  %74 = load i32, ptr %71, align 4, !tbaa !5
  %75 = tail call ptr @s2n_strerror_debug(i32 noundef %74, ptr noundef nonnull @.str.4) #11
  %76 = load i32, ptr %57, align 4, !tbaa !5
  %77 = tail call ptr @strerror(i32 noundef %76) #11
  %78 = load i32, ptr %57, align 4, !tbaa !5
  %79 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %69, ptr noundef nonnull %.str.5.sink, i32 noundef %70, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %73, ptr noundef %75, ptr noundef %77, i32 noundef %78) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

80:                                               ; preds = %2
  %81 = load i32, ptr @test_count, align 4, !tbaa !5
  %82 = add nsw i32 %81, 1
  store i32 %82, ptr @test_count, align 4, !tbaa !5
  %83 = tail call i32 @s2n_enable_atexit() #11
  %84 = icmp eq i32 %83, -1
  br i1 %84, label %85, label %109

85:                                               ; preds = %80
  %86 = tail call ptr @__errno_location() #12
  %87 = load i32, ptr %86, align 4, !tbaa !5
  %88 = load ptr, ptr @stderr, align 8, !tbaa !9
  %89 = tail call i32 @s2n_print_stacktrace(ptr noundef %88) #11
  %90 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %91 = trunc nuw i8 %90 to i1
  br i1 %91, label %92, label %96

92:                                               ; preds = %85
  %93 = load ptr, ptr @stderr, align 8, !tbaa !9
  %94 = tail call i32 @fileno(ptr noundef %93) #11
  %95 = tail call i32 @isatty(i32 noundef %94) #11
  %.not490 = icmp eq i32 %95, 0
  br i1 %.not490, label %96, label %97

96:                                               ; preds = %92, %85
  br label %97

97:                                               ; preds = %92, %96
  %.str.5.sink573 = phi ptr [ @.str.5, %96 ], [ @.str.2, %92 ]
  store i32 %87, ptr %86, align 4, !tbaa !5
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = load i32, ptr @test_count, align 4, !tbaa !5
  %100 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %101 = load i32, ptr %100, align 4, !tbaa !5
  %102 = tail call ptr @s2n_strerror(i32 noundef %101, ptr noundef nonnull @.str.4) #11
  %103 = load i32, ptr %100, align 4, !tbaa !5
  %104 = tail call ptr @s2n_strerror_debug(i32 noundef %103, ptr noundef nonnull @.str.4) #11
  %105 = load i32, ptr %86, align 4, !tbaa !5
  %106 = tail call ptr @strerror(i32 noundef %105) #11
  %107 = load i32, ptr %86, align 4, !tbaa !5
  %108 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %98, ptr noundef nonnull %.str.5.sink573, i32 noundef %99, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %102, ptr noundef %104, ptr noundef %106, i32 noundef %107) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

109:                                              ; preds = %80
  %110 = tail call i32 @s2n_init() #11
  %111 = icmp eq i32 %110, -1
  br i1 %111, label %112, label %136

112:                                              ; preds = %109
  %113 = tail call ptr @__errno_location() #12
  %114 = load i32, ptr %113, align 4, !tbaa !5
  %115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %116 = tail call i32 @s2n_print_stacktrace(ptr noundef %115) #11
  %117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %118 = trunc nuw i8 %117 to i1
  br i1 %118, label %119, label %123

119:                                              ; preds = %112
  %120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %121 = tail call i32 @fileno(ptr noundef %120) #11
  %122 = tail call i32 @isatty(i32 noundef %121) #11
  %.not489 = icmp eq i32 %122, 0
  br i1 %.not489, label %123, label %124

123:                                              ; preds = %119, %112
  br label %124

124:                                              ; preds = %119, %123
  %.str.5.sink584 = phi ptr [ @.str.5, %123 ], [ @.str.2, %119 ]
  store i32 %114, ptr %113, align 4, !tbaa !5
  %125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %126 = load i32, ptr @test_count, align 4, !tbaa !5
  %127 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %128 = load i32, ptr %127, align 4, !tbaa !5
  %129 = tail call ptr @s2n_strerror(i32 noundef %128, ptr noundef nonnull @.str.4) #11
  %130 = load i32, ptr %127, align 4, !tbaa !5
  %131 = tail call ptr @s2n_strerror_debug(i32 noundef %130, ptr noundef nonnull @.str.4) #11
  %132 = load i32, ptr %113, align 4, !tbaa !5
  %133 = tail call ptr @strerror(i32 noundef %132) #11
  %134 = load i32, ptr %113, align 4, !tbaa !5
  %135 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %125, ptr noundef nonnull %.str.5.sink584, i32 noundef %126, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %129, ptr noundef %131, ptr noundef %133, i32 noundef %134) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

136:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #11
  %137 = tail call ptr @s2n_config_new() #11
  store ptr %137, ptr %3, align 8, !tbaa !9
  %138 = load i32, ptr @test_count, align 4, !tbaa !5
  %139 = add nsw i32 %138, 1
  store i32 %139, ptr @test_count, align 4, !tbaa !5
  %140 = tail call i32 @s2n_config_set_cipher_preferences(ptr noundef %137, ptr noundef nonnull @.str.8) #11
  %141 = icmp eq i32 %140, -1
  br i1 %141, label %142, label %166

142:                                              ; preds = %136
  %143 = tail call ptr @__errno_location() #12
  %144 = load i32, ptr %143, align 4, !tbaa !5
  %145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %146 = tail call i32 @s2n_print_stacktrace(ptr noundef %145) #11
  %147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %148 = trunc nuw i8 %147 to i1
  br i1 %148, label %149, label %153

149:                                              ; preds = %142
  %150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %151 = tail call i32 @fileno(ptr noundef %150) #11
  %152 = tail call i32 @isatty(i32 noundef %151) #11
  %.not488 = icmp eq i32 %152, 0
  br i1 %.not488, label %153, label %154

153:                                              ; preds = %149, %142
  br label %154

154:                                              ; preds = %149, %153
  %.str.5.sink595 = phi ptr [ @.str.5, %153 ], [ @.str.2, %149 ]
  store i32 %144, ptr %143, align 4, !tbaa !5
  %155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %156 = load i32, ptr @test_count, align 4, !tbaa !5
  %157 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = tail call ptr @s2n_strerror(i32 noundef %158, ptr noundef nonnull @.str.4) #11
  %160 = load i32, ptr %157, align 4, !tbaa !5
  %161 = tail call ptr @s2n_strerror_debug(i32 noundef %160, ptr noundef nonnull @.str.4) #11
  %162 = load i32, ptr %143, align 4, !tbaa !5
  %163 = tail call ptr @strerror(i32 noundef %162) #11
  %164 = load i32, ptr %143, align 4, !tbaa !5
  %165 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %155, ptr noundef nonnull %.str.5.sink595, i32 noundef %156, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef %159, ptr noundef %161, ptr noundef %163, i32 noundef %164) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

166:                                              ; preds = %136
  %167 = load i32, ptr @test_count, align 4, !tbaa !5
  %168 = add nsw i32 %167, 1
  store i32 %168, ptr @test_count, align 4, !tbaa !5
  %169 = tail call i32 @s2n_config_set_session_ticket_cb(ptr noundef %137, ptr noundef nonnull @s2n_ticket_count_cb, ptr noundef null) #11
  %170 = icmp eq i32 %169, -1
  br i1 %170, label %171, label %195

171:                                              ; preds = %166
  %172 = tail call ptr @__errno_location() #12
  %173 = load i32, ptr %172, align 4, !tbaa !5
  %174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %175 = tail call i32 @s2n_print_stacktrace(ptr noundef %174) #11
  %176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %177 = trunc nuw i8 %176 to i1
  br i1 %177, label %178, label %182

178:                                              ; preds = %171
  %179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %180 = tail call i32 @fileno(ptr noundef %179) #11
  %181 = tail call i32 @isatty(i32 noundef %180) #11
  %.not487 = icmp eq i32 %181, 0
  br i1 %.not487, label %182, label %183

182:                                              ; preds = %178, %171
  br label %183

183:                                              ; preds = %178, %182
  %.str.5.sink606 = phi ptr [ @.str.5, %182 ], [ @.str.2, %178 ]
  store i32 %173, ptr %172, align 4, !tbaa !5
  %184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %185 = load i32, ptr @test_count, align 4, !tbaa !5
  %186 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = tail call ptr @s2n_strerror(i32 noundef %187, ptr noundef nonnull @.str.4) #11
  %189 = load i32, ptr %186, align 4, !tbaa !5
  %190 = tail call ptr @s2n_strerror_debug(i32 noundef %189, ptr noundef nonnull @.str.4) #11
  %191 = load i32, ptr %172, align 4, !tbaa !5
  %192 = tail call ptr @strerror(i32 noundef %191) #11
  %193 = load i32, ptr %172, align 4, !tbaa !5
  %194 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %184, ptr noundef nonnull %.str.5.sink606, i32 noundef %185, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 176, ptr noundef %188, ptr noundef %190, ptr noundef %192, i32 noundef %193) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

195:                                              ; preds = %166
  %196 = load i32, ptr @test_count, align 4, !tbaa !5
  %197 = add nsw i32 %196, 1
  store i32 %197, ptr @test_count, align 4, !tbaa !5
  %198 = tail call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef %137, ptr noundef nonnull @s2n_hello_request_cb, ptr noundef null) #11
  %199 = icmp eq i32 %198, -1
  br i1 %199, label %200, label %224

200:                                              ; preds = %195
  %201 = tail call ptr @__errno_location() #12
  %202 = load i32, ptr %201, align 4, !tbaa !5
  %203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %204 = tail call i32 @s2n_print_stacktrace(ptr noundef %203) #11
  %205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %206 = trunc nuw i8 %205 to i1
  br i1 %206, label %207, label %211

207:                                              ; preds = %200
  %208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %209 = tail call i32 @fileno(ptr noundef %208) #11
  %210 = tail call i32 @isatty(i32 noundef %209) #11
  %.not486 = icmp eq i32 %210, 0
  br i1 %.not486, label %211, label %212

211:                                              ; preds = %207, %200
  br label %212

212:                                              ; preds = %207, %211
  %.str.5.sink617 = phi ptr [ @.str.5, %211 ], [ @.str.2, %207 ]
  store i32 %202, ptr %201, align 4, !tbaa !5
  %213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %214 = load i32, ptr @test_count, align 4, !tbaa !5
  %215 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %216 = load i32, ptr %215, align 4, !tbaa !5
  %217 = tail call ptr @s2n_strerror(i32 noundef %216, ptr noundef nonnull @.str.4) #11
  %218 = load i32, ptr %215, align 4, !tbaa !5
  %219 = tail call ptr @s2n_strerror_debug(i32 noundef %218, ptr noundef nonnull @.str.4) #11
  %220 = load i32, ptr %201, align 4, !tbaa !5
  %221 = tail call ptr @strerror(i32 noundef %220) #11
  %222 = load i32, ptr %201, align 4, !tbaa !5
  %223 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %213, ptr noundef nonnull %.str.5.sink617, i32 noundef %214, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %217, ptr noundef %219, ptr noundef %221, i32 noundef %222) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

224:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %4, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.ticket_key_name, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 9, ptr nonnull %5) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(9) %5, ptr noundef nonnull align 1 dereferenceable(9) @__const.main.ticket_key, i64 9, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #11
  store i64 0, ptr %6, align 8, !tbaa !15
  %225 = load i32, ptr @test_count, align 4, !tbaa !5
  %226 = add nsw i32 %225, 1
  store i32 %226, ptr @test_count, align 4, !tbaa !5
  %227 = getelementptr inbounds i8, ptr %137, i64 80
  %228 = load ptr, ptr %227, align 8, !tbaa !17
  %229 = getelementptr inbounds i8, ptr %137, i64 104
  %230 = load ptr, ptr %229, align 8, !tbaa !23
  %231 = call i32 %228(ptr noundef %230, ptr noundef nonnull %6) #11
  %232 = icmp eq i32 %231, -1
  br i1 %232, label %233, label %257

233:                                              ; preds = %224
  %234 = tail call ptr @__errno_location() #12
  %235 = load i32, ptr %234, align 4, !tbaa !5
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = call i32 @s2n_print_stacktrace(ptr noundef %236) #11
  %238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %239 = trunc nuw i8 %238 to i1
  br i1 %239, label %240, label %244

240:                                              ; preds = %233
  %241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %242 = call i32 @fileno(ptr noundef %241) #11
  %243 = call i32 @isatty(i32 noundef %242) #11
  %.not485 = icmp eq i32 %243, 0
  br i1 %.not485, label %244, label %245

244:                                              ; preds = %240, %233
  br label %245

245:                                              ; preds = %240, %244
  %.str.5.sink628 = phi ptr [ @.str.5, %244 ], [ @.str.2, %240 ]
  store i32 %235, ptr %234, align 4, !tbaa !5
  %246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %247 = load i32, ptr @test_count, align 4, !tbaa !5
  %248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %249 = load i32, ptr %248, align 4, !tbaa !5
  %250 = call ptr @s2n_strerror(i32 noundef %249, ptr noundef nonnull @.str.4) #11
  %251 = load i32, ptr %248, align 4, !tbaa !5
  %252 = call ptr @s2n_strerror_debug(i32 noundef %251, ptr noundef nonnull @.str.4) #11
  %253 = load i32, ptr %234, align 4, !tbaa !5
  %254 = call ptr @strerror(i32 noundef %253) #11
  %255 = load i32, ptr %234, align 4, !tbaa !5
  %256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %246, ptr noundef nonnull %.str.5.sink628, i32 noundef %247, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %250, ptr noundef %252, ptr noundef %254, i32 noundef %255) #13
  call void @exit(i32 noundef 1) #14
  unreachable

257:                                              ; preds = %224
  %258 = load i32, ptr @test_count, align 4, !tbaa !5
  %259 = add nsw i32 %258, 1
  store i32 %259, ptr @test_count, align 4, !tbaa !5
  %260 = call i32 @s2n_config_set_session_tickets_onoff(ptr noundef nonnull %137, i8 noundef zeroext 1) #11
  %261 = icmp eq i32 %260, -1
  br i1 %261, label %262, label %286

262:                                              ; preds = %257
  %263 = tail call ptr @__errno_location() #12
  %264 = load i32, ptr %263, align 4, !tbaa !5
  %265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %266 = call i32 @s2n_print_stacktrace(ptr noundef %265) #11
  %267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %268 = trunc nuw i8 %267 to i1
  br i1 %268, label %269, label %273

269:                                              ; preds = %262
  %270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %271 = call i32 @fileno(ptr noundef %270) #11
  %272 = call i32 @isatty(i32 noundef %271) #11
  %.not484 = icmp eq i32 %272, 0
  br i1 %.not484, label %273, label %274

273:                                              ; preds = %269, %262
  br label %274

274:                                              ; preds = %269, %273
  %.str.5.sink639 = phi ptr [ @.str.5, %273 ], [ @.str.2, %269 ]
  store i32 %264, ptr %263, align 4, !tbaa !5
  %275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %276 = load i32, ptr @test_count, align 4, !tbaa !5
  %277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %278 = load i32, ptr %277, align 4, !tbaa !5
  %279 = call ptr @s2n_strerror(i32 noundef %278, ptr noundef nonnull @.str.4) #11
  %280 = load i32, ptr %277, align 4, !tbaa !5
  %281 = call ptr @s2n_strerror_debug(i32 noundef %280, ptr noundef nonnull @.str.4) #11
  %282 = load i32, ptr %263, align 4, !tbaa !5
  %283 = call ptr @strerror(i32 noundef %282) #11
  %284 = load i32, ptr %263, align 4, !tbaa !5
  %285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %275, ptr noundef nonnull %.str.5.sink639, i32 noundef %276, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %279, ptr noundef %281, ptr noundef %283, i32 noundef %284) #13
  call void @exit(i32 noundef 1) #14
  unreachable

286:                                              ; preds = %257
  %287 = load i32, ptr @test_count, align 4, !tbaa !5
  %288 = add nsw i32 %287, 1
  store i32 %288, ptr @test_count, align 4, !tbaa !5
  %289 = load i64, ptr %6, align 8, !tbaa !15
  %290 = udiv i64 %289, 1000000000
  %291 = call i32 @s2n_config_add_ticket_crypto_key(ptr noundef nonnull %137, ptr noundef nonnull %4, i32 noundef 16, ptr noundef nonnull %5, i32 noundef 9, i64 noundef %290) #11
  %292 = icmp eq i32 %291, -1
  br i1 %292, label %293, label %317

293:                                              ; preds = %286
  %294 = tail call ptr @__errno_location() #12
  %295 = load i32, ptr %294, align 4, !tbaa !5
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = call i32 @s2n_print_stacktrace(ptr noundef %296) #11
  %298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %299 = trunc nuw i8 %298 to i1
  br i1 %299, label %300, label %304

300:                                              ; preds = %293
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = call i32 @fileno(ptr noundef %301) #11
  %303 = call i32 @isatty(i32 noundef %302) #11
  %.not483 = icmp eq i32 %303, 0
  br i1 %.not483, label %304, label %305

304:                                              ; preds = %300, %293
  br label %305

305:                                              ; preds = %300, %304
  %.str.5.sink650 = phi ptr [ @.str.5, %304 ], [ @.str.2, %300 ]
  store i32 %295, ptr %294, align 4, !tbaa !5
  %306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %307 = load i32, ptr @test_count, align 4, !tbaa !5
  %308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %309 = load i32, ptr %308, align 4, !tbaa !5
  %310 = call ptr @s2n_strerror(i32 noundef %309, ptr noundef nonnull @.str.4) #11
  %311 = load i32, ptr %308, align 4, !tbaa !5
  %312 = call ptr @s2n_strerror_debug(i32 noundef %311, ptr noundef nonnull @.str.4) #11
  %313 = load i32, ptr %294, align 4, !tbaa !5
  %314 = call ptr @strerror(i32 noundef %313) #11
  %315 = load i32, ptr %294, align 4, !tbaa !5
  %316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %306, ptr noundef nonnull %.str.5.sink650, i32 noundef %307, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %310, ptr noundef %312, ptr noundef %314, i32 noundef %315) #13
  call void @exit(i32 noundef 1) #14
  unreachable

317:                                              ; preds = %286
  %318 = getelementptr inbounds i8, ptr %137, i64 297
  store i8 0, ptr %318, align 1, !tbaa !24
  br label %319

319:                                              ; preds = %317, %322
  %.0508 = phi i64 [ 0, %317 ], [ %323, %322 ]
  %320 = getelementptr inbounds [7 x i32], ptr @__const.main.fragment_sizes, i64 0, i64 %.0508
  %321 = load i32, ptr %320, align 4, !tbaa !5
  br label %324

322:                                              ; preds = %740
  %323 = add nuw nsw i64 %.0508, 1
  %exitcond.not = icmp eq i64 %323, 7
  br i1 %exitcond.not, label %.preheader499, label %319, !llvm.loop !25

324:                                              ; preds = %319, %740
  %325 = phi i1 [ true, %319 ], [ false, %740 ]
  %.0367507 = phi i64 [ 0, %319 ], [ 1, %740 ]
  %326 = getelementptr inbounds [2 x i8], ptr @__const.main.modes, i64 0, i64 %.0367507
  %327 = load i8, ptr %326, align 1, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #11
  %328 = zext i8 %327 to i32
  %329 = call ptr @s2n_connection_new(i32 noundef %328) #11
  store ptr %329, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #11
  %330 = and i32 %328, 1
  %331 = xor i32 %330, 1
  %332 = call ptr @s2n_connection_new(i32 noundef %331) #11
  store ptr %332, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %9) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %9, i8 0, i64 80, i1 false)
  %333 = load i32, ptr @test_count, align 4, !tbaa !5
  %334 = add nsw i32 %333, 1
  store i32 %334, ptr @test_count, align 4, !tbaa !5
  %335 = load ptr, ptr %7, align 8, !tbaa !9
  %336 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %137, ptr noundef %332, ptr noundef %335, ptr noundef nonnull %9)
  %337 = call zeroext i1 @s2n_result_is_ok(i32 %336)
  br i1 %337, label %362, label %338

338:                                              ; preds = %324
  %339 = tail call ptr @__errno_location() #12
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %342 = call i32 @s2n_print_stacktrace(ptr noundef %341) #11
  %343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %344 = trunc nuw i8 %343 to i1
  br i1 %344, label %345, label %349

345:                                              ; preds = %338
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = call i32 @fileno(ptr noundef %346) #11
  %348 = call i32 @isatty(i32 noundef %347) #11
  %.not473 = icmp eq i32 %348, 0
  br i1 %.not473, label %349, label %350

349:                                              ; preds = %345, %338
  br label %350

350:                                              ; preds = %345, %349
  %.str.5.sink661 = phi ptr [ @.str.5, %349 ], [ @.str.2, %345 ]
  store i32 %340, ptr %339, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call ptr @s2n_strerror(i32 noundef %354, ptr noundef nonnull @.str.4) #11
  %356 = load i32, ptr %353, align 4, !tbaa !5
  %357 = call ptr @s2n_strerror_debug(i32 noundef %356, ptr noundef nonnull @.str.4) #11
  %358 = load i32, ptr %339, align 4, !tbaa !5
  %359 = call ptr @strerror(i32 noundef %358) #11
  %360 = load i32, ptr %339, align 4, !tbaa !5
  %361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %351, ptr noundef nonnull %.str.5.sink661, i32 noundef %352, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %355, ptr noundef %357, ptr noundef %359, i32 noundef %360) #13
  call void @exit(i32 noundef 1) #14
  unreachable

362:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %10, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %11, i8 0, i64 24, i1 false)
  %363 = load i32, ptr @test_count, align 4, !tbaa !5
  %364 = add nsw i32 %363, 1
  store i32 %364, ptr @test_count, align 4, !tbaa !5
  %365 = call i32 @s2n_alloc(ptr noundef nonnull %11, i32 noundef 5) #11
  %366 = icmp eq i32 %365, -1
  br i1 %366, label %371, label %.preheader500.preheader

.preheader500.preheader:                          ; preds = %362
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = add nsw i32 %367, 1
  store i32 %368, ptr @test_count, align 4, !tbaa !5
  %369 = call i32 @s2n_key_update_write(ptr noundef nonnull %11) #11
  %370 = icmp eq i32 %369, -1
  br i1 %370, label %512, label %536

371:                                              ; preds = %362
  %372 = tail call ptr @__errno_location() #12
  %373 = load i32, ptr %372, align 4, !tbaa !5
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = call i32 @s2n_print_stacktrace(ptr noundef %374) #11
  %376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %377 = trunc nuw i8 %376 to i1
  br i1 %377, label %378, label %382

378:                                              ; preds = %371
  %379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %380 = call i32 @fileno(ptr noundef %379) #11
  %381 = call i32 @isatty(i32 noundef %380) #11
  %.not482 = icmp eq i32 %381, 0
  br i1 %.not482, label %382, label %383

382:                                              ; preds = %378, %371
  br label %383

383:                                              ; preds = %378, %382
  %.str.5.sink672 = phi ptr [ @.str.5, %382 ], [ @.str.2, %378 ]
  store i32 %373, ptr %372, align 4, !tbaa !5
  %384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %385 = load i32, ptr @test_count, align 4, !tbaa !5
  %386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %387 = load i32, ptr %386, align 4, !tbaa !5
  %388 = call ptr @s2n_strerror(i32 noundef %387, ptr noundef nonnull @.str.4) #11
  %389 = load i32, ptr %386, align 4, !tbaa !5
  %390 = call ptr @s2n_strerror_debug(i32 noundef %389, ptr noundef nonnull @.str.4) #11
  %391 = load i32, ptr %372, align 4, !tbaa !5
  %392 = call ptr @strerror(i32 noundef %391) #11
  %393 = load i32, ptr %372, align 4, !tbaa !5
  %394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %384, ptr noundef nonnull %.str.5.sink672, i32 noundef %385, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %388, ptr noundef %390, ptr noundef %392, i32 noundef %393) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.preheader500.1:                                  ; preds = %624
  %395 = load i32, ptr @test_count, align 4, !tbaa !5
  %396 = add nsw i32 %395, 1
  store i32 %396, ptr @test_count, align 4, !tbaa !5
  %397 = call i32 @s2n_key_update_write(ptr noundef nonnull %11) #11
  %398 = icmp eq i32 %397, -1
  br i1 %398, label %512, label %399

399:                                              ; preds = %.preheader500.1
  %400 = load i32, ptr @test_count, align 4, !tbaa !5
  %401 = add nsw i32 %400, 1
  store i32 %401, ptr @test_count, align 4, !tbaa !5
  %402 = call i32 @s2n_stuffer_init(ptr noundef nonnull %10, ptr noundef nonnull %11) #11
  %403 = icmp eq i32 %402, -1
  br i1 %403, label %541, label %404

404:                                              ; preds = %399
  %405 = load i32, ptr @test_count, align 4, !tbaa !5
  %406 = add nsw i32 %405, 1
  store i32 %406, ptr @test_count, align 4, !tbaa !5
  %407 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %10, i32 noundef 5) #11
  %408 = icmp eq i32 %407, -1
  br i1 %408, label %570, label %409

409:                                              ; preds = %404
  %410 = load i32, ptr @test_count, align 4, !tbaa !5
  %411 = add nsw i32 %410, 1
  store i32 %411, ptr @test_count, align 4, !tbaa !5
  %412 = load ptr, ptr %8, align 8, !tbaa !9
  %413 = call i32 @s2n_test_send_records(ptr noundef %412, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %10, i32 noundef %321)
  %414 = call zeroext i1 @s2n_result_is_ok(i32 %413)
  br i1 %414, label %415, label %600

415:                                              ; preds = %409
  %416 = load i32, ptr @test_count, align 4, !tbaa !5
  %417 = add nsw i32 %416, 1
  store i32 %417, ptr @test_count, align 4, !tbaa !5
  %418 = load ptr, ptr %8, align 8, !tbaa !9
  %419 = getelementptr inbounds i8, ptr %418, i64 148
  %420 = load i32, ptr %419, align 4, !tbaa !28
  %421 = call i32 @s2n_update_application_traffic_keys(ptr noundef %418, i32 noundef %420, i32 noundef 0) #11
  %422 = icmp eq i32 %421, -1
  br i1 %422, label %632, label %.preheader500.2

.preheader500.2:                                  ; preds = %415
  %423 = load i32, ptr @test_count, align 4, !tbaa !5
  %424 = add nsw i32 %423, 1
  store i32 %424, ptr @test_count, align 4, !tbaa !5
  %425 = call i32 @s2n_key_update_write(ptr noundef nonnull %11) #11
  %426 = icmp eq i32 %425, -1
  br i1 %426, label %512, label %427

427:                                              ; preds = %.preheader500.2
  %428 = load i32, ptr @test_count, align 4, !tbaa !5
  %429 = add nsw i32 %428, 1
  store i32 %429, ptr @test_count, align 4, !tbaa !5
  %430 = call i32 @s2n_stuffer_init(ptr noundef nonnull %10, ptr noundef nonnull %11) #11
  %431 = icmp eq i32 %430, -1
  br i1 %431, label %541, label %432

432:                                              ; preds = %427
  %433 = load i32, ptr @test_count, align 4, !tbaa !5
  %434 = add nsw i32 %433, 1
  store i32 %434, ptr @test_count, align 4, !tbaa !5
  %435 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %10, i32 noundef 5) #11
  %436 = icmp eq i32 %435, -1
  br i1 %436, label %570, label %437

437:                                              ; preds = %432
  %438 = load i32, ptr @test_count, align 4, !tbaa !5
  %439 = add nsw i32 %438, 1
  store i32 %439, ptr @test_count, align 4, !tbaa !5
  %440 = load ptr, ptr %8, align 8, !tbaa !9
  %441 = call i32 @s2n_test_send_records(ptr noundef %440, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %10, i32 noundef %321)
  %442 = call zeroext i1 @s2n_result_is_ok(i32 %441)
  br i1 %442, label %443, label %600

443:                                              ; preds = %437
  %444 = load i32, ptr @test_count, align 4, !tbaa !5
  %445 = add nsw i32 %444, 1
  store i32 %445, ptr @test_count, align 4, !tbaa !5
  %446 = load ptr, ptr %8, align 8, !tbaa !9
  %447 = getelementptr inbounds i8, ptr %446, i64 148
  %448 = load i32, ptr %447, align 4, !tbaa !28
  %449 = call i32 @s2n_update_application_traffic_keys(ptr noundef %446, i32 noundef %448, i32 noundef 0) #11
  %450 = icmp eq i32 %449, -1
  br i1 %450, label %632, label %.preheader500.3

.preheader500.3:                                  ; preds = %443
  %451 = load i32, ptr @test_count, align 4, !tbaa !5
  %452 = add nsw i32 %451, 1
  store i32 %452, ptr @test_count, align 4, !tbaa !5
  %453 = call i32 @s2n_key_update_write(ptr noundef nonnull %11) #11
  %454 = icmp eq i32 %453, -1
  br i1 %454, label %512, label %455

455:                                              ; preds = %.preheader500.3
  %456 = load i32, ptr @test_count, align 4, !tbaa !5
  %457 = add nsw i32 %456, 1
  store i32 %457, ptr @test_count, align 4, !tbaa !5
  %458 = call i32 @s2n_stuffer_init(ptr noundef nonnull %10, ptr noundef nonnull %11) #11
  %459 = icmp eq i32 %458, -1
  br i1 %459, label %541, label %460

460:                                              ; preds = %455
  %461 = load i32, ptr @test_count, align 4, !tbaa !5
  %462 = add nsw i32 %461, 1
  store i32 %462, ptr @test_count, align 4, !tbaa !5
  %463 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %10, i32 noundef 5) #11
  %464 = icmp eq i32 %463, -1
  br i1 %464, label %570, label %465

465:                                              ; preds = %460
  %466 = load i32, ptr @test_count, align 4, !tbaa !5
  %467 = add nsw i32 %466, 1
  store i32 %467, ptr @test_count, align 4, !tbaa !5
  %468 = load ptr, ptr %8, align 8, !tbaa !9
  %469 = call i32 @s2n_test_send_records(ptr noundef %468, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %10, i32 noundef %321)
  %470 = call zeroext i1 @s2n_result_is_ok(i32 %469)
  br i1 %470, label %471, label %600

471:                                              ; preds = %465
  %472 = load i32, ptr @test_count, align 4, !tbaa !5
  %473 = add nsw i32 %472, 1
  store i32 %473, ptr @test_count, align 4, !tbaa !5
  %474 = load ptr, ptr %8, align 8, !tbaa !9
  %475 = getelementptr inbounds i8, ptr %474, i64 148
  %476 = load i32, ptr %475, align 4, !tbaa !28
  %477 = call i32 @s2n_update_application_traffic_keys(ptr noundef %474, i32 noundef %476, i32 noundef 0) #11
  %478 = icmp eq i32 %477, -1
  br i1 %478, label %632, label %.preheader500.4

.preheader500.4:                                  ; preds = %471
  %479 = load i32, ptr @test_count, align 4, !tbaa !5
  %480 = add nsw i32 %479, 1
  store i32 %480, ptr @test_count, align 4, !tbaa !5
  %481 = call i32 @s2n_key_update_write(ptr noundef nonnull %11) #11
  %482 = icmp eq i32 %481, -1
  br i1 %482, label %512, label %483

483:                                              ; preds = %.preheader500.4
  %484 = load i32, ptr @test_count, align 4, !tbaa !5
  %485 = add nsw i32 %484, 1
  store i32 %485, ptr @test_count, align 4, !tbaa !5
  %486 = call i32 @s2n_stuffer_init(ptr noundef nonnull %10, ptr noundef nonnull %11) #11
  %487 = icmp eq i32 %486, -1
  br i1 %487, label %541, label %488

488:                                              ; preds = %483
  %489 = load i32, ptr @test_count, align 4, !tbaa !5
  %490 = add nsw i32 %489, 1
  store i32 %490, ptr @test_count, align 4, !tbaa !5
  %491 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %10, i32 noundef 5) #11
  %492 = icmp eq i32 %491, -1
  br i1 %492, label %570, label %493

493:                                              ; preds = %488
  %494 = load i32, ptr @test_count, align 4, !tbaa !5
  %495 = add nsw i32 %494, 1
  store i32 %495, ptr @test_count, align 4, !tbaa !5
  %496 = load ptr, ptr %8, align 8, !tbaa !9
  %497 = call i32 @s2n_test_send_records(ptr noundef %496, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %10, i32 noundef %321)
  %498 = call zeroext i1 @s2n_result_is_ok(i32 %497)
  br i1 %498, label %499, label %600

499:                                              ; preds = %493
  %500 = load i32, ptr @test_count, align 4, !tbaa !5
  %501 = add nsw i32 %500, 1
  store i32 %501, ptr @test_count, align 4, !tbaa !5
  %502 = load ptr, ptr %8, align 8, !tbaa !9
  %503 = getelementptr inbounds i8, ptr %502, i64 148
  %504 = load i32, ptr %503, align 4, !tbaa !28
  %505 = call i32 @s2n_update_application_traffic_keys(ptr noundef %502, i32 noundef %504, i32 noundef 0) #11
  %506 = icmp eq i32 %505, -1
  br i1 %506, label %632, label %507

507:                                              ; preds = %499
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #11
  store i8 0, ptr %12, align 1
  %508 = load i32, ptr @test_count, align 4, !tbaa !5
  %509 = add nsw i32 %508, 1
  store i32 %509, ptr @test_count, align 4, !tbaa !5
  %510 = call i32 @s2n_mem_test_init_callbacks(ptr noundef nonnull %12) #11
  %511 = call zeroext i1 @s2n_result_is_ok(i32 %510)
  br i1 %511, label %680, label %656

512:                                              ; preds = %.preheader500.4, %.preheader500.3, %.preheader500.2, %.preheader500.1, %.preheader500.preheader
  %513 = tail call ptr @__errno_location() #12
  %514 = load i32, ptr %513, align 4, !tbaa !5
  %515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %516 = call i32 @s2n_print_stacktrace(ptr noundef %515) #11
  %517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %518 = trunc nuw i8 %517 to i1
  br i1 %518, label %519, label %523

519:                                              ; preds = %512
  %520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %521 = call i32 @fileno(ptr noundef %520) #11
  %522 = call i32 @isatty(i32 noundef %521) #11
  %.not481 = icmp eq i32 %522, 0
  br i1 %.not481, label %523, label %524

523:                                              ; preds = %519, %512
  br label %524

524:                                              ; preds = %519, %523
  %.str.5.sink683 = phi ptr [ @.str.5, %523 ], [ @.str.2, %519 ]
  store i32 %514, ptr %513, align 4, !tbaa !5
  %525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %526 = load i32, ptr @test_count, align 4, !tbaa !5
  %527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = call ptr @s2n_strerror(i32 noundef %528, ptr noundef nonnull @.str.4) #11
  %530 = load i32, ptr %527, align 4, !tbaa !5
  %531 = call ptr @s2n_strerror_debug(i32 noundef %530, ptr noundef nonnull @.str.4) #11
  %532 = load i32, ptr %513, align 4, !tbaa !5
  %533 = call ptr @strerror(i32 noundef %532) #11
  %534 = load i32, ptr %513, align 4, !tbaa !5
  %535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %525, ptr noundef nonnull %.str.5.sink683, i32 noundef %526, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %529, ptr noundef %531, ptr noundef %533, i32 noundef %534) #13
  call void @exit(i32 noundef 1) #14
  unreachable

536:                                              ; preds = %.preheader500.preheader
  %537 = load i32, ptr @test_count, align 4, !tbaa !5
  %538 = add nsw i32 %537, 1
  store i32 %538, ptr @test_count, align 4, !tbaa !5
  %539 = call i32 @s2n_stuffer_init(ptr noundef nonnull %10, ptr noundef nonnull %11) #11
  %540 = icmp eq i32 %539, -1
  br i1 %540, label %541, label %565

541:                                              ; preds = %483, %455, %427, %399, %536
  %542 = tail call ptr @__errno_location() #12
  %543 = load i32, ptr %542, align 4, !tbaa !5
  %544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %545 = call i32 @s2n_print_stacktrace(ptr noundef %544) #11
  %546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %547 = trunc nuw i8 %546 to i1
  br i1 %547, label %548, label %552

548:                                              ; preds = %541
  %549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %550 = call i32 @fileno(ptr noundef %549) #11
  %551 = call i32 @isatty(i32 noundef %550) #11
  %.not480 = icmp eq i32 %551, 0
  br i1 %.not480, label %552, label %553

552:                                              ; preds = %548, %541
  br label %553

553:                                              ; preds = %548, %552
  %.str.5.sink694 = phi ptr [ @.str.5, %552 ], [ @.str.2, %548 ]
  store i32 %543, ptr %542, align 4, !tbaa !5
  %554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %555 = load i32, ptr @test_count, align 4, !tbaa !5
  %556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %557 = load i32, ptr %556, align 4, !tbaa !5
  %558 = call ptr @s2n_strerror(i32 noundef %557, ptr noundef nonnull @.str.4) #11
  %559 = load i32, ptr %556, align 4, !tbaa !5
  %560 = call ptr @s2n_strerror_debug(i32 noundef %559, ptr noundef nonnull @.str.4) #11
  %561 = load i32, ptr %542, align 4, !tbaa !5
  %562 = call ptr @strerror(i32 noundef %561) #11
  %563 = load i32, ptr %542, align 4, !tbaa !5
  %564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %554, ptr noundef nonnull %.str.5.sink694, i32 noundef %555, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %558, ptr noundef %560, ptr noundef %562, i32 noundef %563) #13
  call void @exit(i32 noundef 1) #14
  unreachable

565:                                              ; preds = %536
  %566 = load i32, ptr @test_count, align 4, !tbaa !5
  %567 = add nsw i32 %566, 1
  store i32 %567, ptr @test_count, align 4, !tbaa !5
  %568 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %10, i32 noundef 5) #11
  %569 = icmp eq i32 %568, -1
  br i1 %569, label %570, label %594

570:                                              ; preds = %488, %460, %432, %404, %565
  %571 = tail call ptr @__errno_location() #12
  %572 = load i32, ptr %571, align 4, !tbaa !5
  %573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %574 = call i32 @s2n_print_stacktrace(ptr noundef %573) #11
  %575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %576 = trunc nuw i8 %575 to i1
  br i1 %576, label %577, label %581

577:                                              ; preds = %570
  %578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %579 = call i32 @fileno(ptr noundef %578) #11
  %580 = call i32 @isatty(i32 noundef %579) #11
  %.not479 = icmp eq i32 %580, 0
  br i1 %.not479, label %581, label %582

581:                                              ; preds = %577, %570
  br label %582

582:                                              ; preds = %577, %581
  %.str.5.sink705 = phi ptr [ @.str.5, %581 ], [ @.str.2, %577 ]
  store i32 %572, ptr %571, align 4, !tbaa !5
  %583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %586 = load i32, ptr %585, align 4, !tbaa !5
  %587 = call ptr @s2n_strerror(i32 noundef %586, ptr noundef nonnull @.str.4) #11
  %588 = load i32, ptr %585, align 4, !tbaa !5
  %589 = call ptr @s2n_strerror_debug(i32 noundef %588, ptr noundef nonnull @.str.4) #11
  %590 = load i32, ptr %571, align 4, !tbaa !5
  %591 = call ptr @strerror(i32 noundef %590) #11
  %592 = load i32, ptr %571, align 4, !tbaa !5
  %593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %583, ptr noundef nonnull %.str.5.sink705, i32 noundef %584, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 221, ptr noundef %587, ptr noundef %589, ptr noundef %591, i32 noundef %592) #13
  call void @exit(i32 noundef 1) #14
  unreachable

594:                                              ; preds = %565
  %595 = load i32, ptr @test_count, align 4, !tbaa !5
  %596 = add nsw i32 %595, 1
  store i32 %596, ptr @test_count, align 4, !tbaa !5
  %597 = load ptr, ptr %8, align 8, !tbaa !9
  %598 = call i32 @s2n_test_send_records(ptr noundef %597, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %10, i32 noundef %321)
  %599 = call zeroext i1 @s2n_result_is_ok(i32 %598)
  br i1 %599, label %624, label %600

600:                                              ; preds = %493, %465, %437, %409, %594
  %601 = tail call ptr @__errno_location() #12
  %602 = load i32, ptr %601, align 4, !tbaa !5
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = call i32 @s2n_print_stacktrace(ptr noundef %603) #11
  %605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %606 = trunc nuw i8 %605 to i1
  br i1 %606, label %607, label %611

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

611:                                              ; preds = %607, %600
  br label %612

612:                                              ; preds = %607, %611
  %.str.5.sink716 = phi ptr [ @.str.5, %611 ], [ @.str.2, %607 ]
  store i32 %602, ptr %601, 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 nonnull @.str.4) #11
  %618 = load i32, ptr %615, align 4, !tbaa !5
  %619 = call ptr @s2n_strerror_debug(i32 noundef %618, ptr noundef nonnull @.str.4) #11
  %620 = load i32, ptr %601, align 4, !tbaa !5
  %621 = call ptr @strerror(i32 noundef %620) #11
  %622 = load i32, ptr %601, align 4, !tbaa !5
  %623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %613, ptr noundef nonnull %.str.5.sink716, i32 noundef %614, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %617, ptr noundef %619, ptr noundef %621, i32 noundef %622) #13
  call void @exit(i32 noundef 1) #14
  unreachable

624:                                              ; preds = %594
  %625 = load i32, ptr @test_count, align 4, !tbaa !5
  %626 = add nsw i32 %625, 1
  store i32 %626, ptr @test_count, align 4, !tbaa !5
  %627 = load ptr, ptr %8, align 8, !tbaa !9
  %628 = getelementptr inbounds i8, ptr %627, i64 148
  %629 = load i32, ptr %628, align 4, !tbaa !28
  %630 = call i32 @s2n_update_application_traffic_keys(ptr noundef %627, i32 noundef %629, i32 noundef 0) #11
  %631 = icmp eq i32 %630, -1
  br i1 %631, label %632, label %.preheader500.1

632:                                              ; preds = %499, %471, %443, %415, %624
  %633 = tail call ptr @__errno_location() #12
  %634 = load i32, ptr %633, align 4, !tbaa !5
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = call i32 @s2n_print_stacktrace(ptr noundef %635) #11
  %637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %638 = trunc nuw i8 %637 to i1
  br i1 %638, label %639, label %643

639:                                              ; preds = %632
  %640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %641 = call i32 @fileno(ptr noundef %640) #11
  %642 = call i32 @isatty(i32 noundef %641) #11
  %.not478 = icmp eq i32 %642, 0
  br i1 %.not478, label %643, label %644

643:                                              ; preds = %639, %632
  br label %644

644:                                              ; preds = %639, %643
  %.str.5.sink727 = phi ptr [ @.str.5, %643 ], [ @.str.2, %639 ]
  store i32 %634, ptr %633, align 4, !tbaa !5
  %645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %646 = load i32, ptr @test_count, align 4, !tbaa !5
  %647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %648 = load i32, ptr %647, align 4, !tbaa !5
  %649 = call ptr @s2n_strerror(i32 noundef %648, ptr noundef nonnull @.str.4) #11
  %650 = load i32, ptr %647, align 4, !tbaa !5
  %651 = call ptr @s2n_strerror_debug(i32 noundef %650, ptr noundef nonnull @.str.4) #11
  %652 = load i32, ptr %633, align 4, !tbaa !5
  %653 = call ptr @strerror(i32 noundef %652) #11
  %654 = load i32, ptr %633, align 4, !tbaa !5
  %655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %645, ptr noundef nonnull %.str.5.sink727, i32 noundef %646, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %649, ptr noundef %651, ptr noundef %653, i32 noundef %654) #13
  call void @exit(i32 noundef 1) #14
  unreachable

656:                                              ; preds = %507
  %657 = tail call ptr @__errno_location() #12
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %660 = call i32 @s2n_print_stacktrace(ptr noundef %659) #11
  %661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %662 = trunc nuw i8 %661 to i1
  br i1 %662, label %663, label %667

663:                                              ; preds = %656
  %664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %665 = call i32 @fileno(ptr noundef %664) #11
  %666 = call i32 @isatty(i32 noundef %665) #11
  %.not474 = icmp eq i32 %666, 0
  br i1 %.not474, label %667, label %668

667:                                              ; preds = %663, %656
  br label %668

668:                                              ; preds = %663, %667
  %.str.5.sink738 = phi ptr [ @.str.5, %667 ], [ @.str.2, %663 ]
  store i32 %658, ptr %657, align 4, !tbaa !5
  %669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %670 = load i32, ptr @test_count, align 4, !tbaa !5
  %671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %672 = load i32, ptr %671, align 4, !tbaa !5
  %673 = call ptr @s2n_strerror(i32 noundef %672, ptr noundef nonnull @.str.4) #11
  %674 = load i32, ptr %671, align 4, !tbaa !5
  %675 = call ptr @s2n_strerror_debug(i32 noundef %674, ptr noundef nonnull @.str.4) #11
  %676 = load i32, ptr %657, align 4, !tbaa !5
  %677 = call ptr @strerror(i32 noundef %676) #11
  %678 = load i32, ptr %657, align 4, !tbaa !5
  %679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %669, ptr noundef nonnull %.str.5.sink738, i32 noundef %670, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 239, ptr noundef %673, ptr noundef %675, ptr noundef %677, i32 noundef %678) #13
  call void @exit(i32 noundef 1) #14
  unreachable

680:                                              ; preds = %507
  %681 = load i32, ptr @test_count, align 4, !tbaa !5
  %682 = add nsw i32 %681, 1
  store i32 %682, ptr @test_count, align 4, !tbaa !5
  %683 = load ptr, ptr %8, align 8, !tbaa !9
  %684 = load ptr, ptr %7, align 8, !tbaa !9
  %685 = call i32 @s2n_test_basic_recv(ptr noundef %683, ptr noundef %684)
  %686 = call zeroext i1 @s2n_result_is_ok(i32 %685)
  br i1 %686, label %711, label %687

687:                                              ; preds = %680
  %688 = tail call ptr @__errno_location() #12
  %689 = load i32, ptr %688, align 4, !tbaa !5
  %690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %691 = call i32 @s2n_print_stacktrace(ptr noundef %690) #11
  %692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %693 = trunc nuw i8 %692 to i1
  br i1 %693, label %694, label %698

694:                                              ; preds = %687
  %695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %696 = call i32 @fileno(ptr noundef %695) #11
  %697 = call i32 @isatty(i32 noundef %696) #11
  %.not475 = icmp eq i32 %697, 0
  br i1 %.not475, label %698, label %699

698:                                              ; preds = %694, %687
  br label %699

699:                                              ; preds = %694, %698
  %.str.5.sink749 = phi ptr [ @.str.5, %698 ], [ @.str.2, %694 ]
  store i32 %689, ptr %688, align 4, !tbaa !5
  %700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %701 = load i32, ptr @test_count, align 4, !tbaa !5
  %702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %703 = load i32, ptr %702, align 4, !tbaa !5
  %704 = call ptr @s2n_strerror(i32 noundef %703, ptr noundef nonnull @.str.4) #11
  %705 = load i32, ptr %702, align 4, !tbaa !5
  %706 = call ptr @s2n_strerror_debug(i32 noundef %705, ptr noundef nonnull @.str.4) #11
  %707 = load i32, ptr %688, align 4, !tbaa !5
  %708 = call ptr @strerror(i32 noundef %707) #11
  %709 = load i32, ptr %688, align 4, !tbaa !5
  %710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %700, ptr noundef nonnull %.str.5.sink749, i32 noundef %701, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %704, ptr noundef %706, ptr noundef %708, i32 noundef %709) #13
  call void @exit(i32 noundef 1) #14
  unreachable

711:                                              ; preds = %680
  %712 = load i32, ptr @test_count, align 4, !tbaa !5
  %713 = add nsw i32 %712, 1
  store i32 %713, ptr @test_count, align 4, !tbaa !5
  %714 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0) #11
  %715 = call zeroext i1 @s2n_result_is_ok(i32 %714)
  br i1 %715, label %740, label %716

716:                                              ; preds = %711
  %717 = tail call ptr @__errno_location() #12
  %718 = load i32, ptr %717, align 4, !tbaa !5
  %719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %720 = call i32 @s2n_print_stacktrace(ptr noundef %719) #11
  %721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %722 = trunc nuw i8 %721 to i1
  br i1 %722, label %723, label %727

723:                                              ; preds = %716
  %724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %725 = call i32 @fileno(ptr noundef %724) #11
  %726 = call i32 @isatty(i32 noundef %725) #11
  %.not476 = icmp eq i32 %726, 0
  br i1 %.not476, label %727, label %728

727:                                              ; preds = %723, %716
  br label %728

728:                                              ; preds = %723, %727
  %.str.5.sink760 = phi ptr [ @.str.5, %727 ], [ @.str.2, %723 ]
  store i32 %718, ptr %717, align 4, !tbaa !5
  %729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %730 = load i32, ptr @test_count, align 4, !tbaa !5
  %731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %732 = load i32, ptr %731, align 4, !tbaa !5
  %733 = call ptr @s2n_strerror(i32 noundef %732, ptr noundef nonnull @.str.4) #11
  %734 = load i32, ptr %731, align 4, !tbaa !5
  %735 = call ptr @s2n_strerror_debug(i32 noundef %734, ptr noundef nonnull @.str.4) #11
  %736 = load i32, ptr %717, align 4, !tbaa !5
  %737 = call ptr @strerror(i32 noundef %736) #11
  %738 = load i32, ptr %717, align 4, !tbaa !5
  %739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %729, ptr noundef nonnull %.str.5.sink760, i32 noundef %730, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %733, ptr noundef %735, ptr noundef %737, i32 noundef %738) #13
  call void @exit(i32 noundef 1) #14
  unreachable

740:                                              ; preds = %711
  %741 = call i32 @s2n_mem_test_free_callbacks(ptr noundef nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #11
  %742 = call i32 @s2n_free(ptr noundef nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #11
  %743 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %9) #11
  %744 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #11
  %745 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #11
  br i1 %325, label %324, label %322, !llvm.loop !52

.preheader497:                                    ; preds = %1053
  %746 = getelementptr inbounds i8, ptr %20, i64 28
  %747 = getelementptr inbounds i8, ptr %20, i64 24
  br label %1060

.preheader499:                                    ; preds = %322, %1053
  %.0369510 = phi i64 [ %1058, %1053 ], [ 0, %322 ]
  %748 = getelementptr inbounds [7 x i32], ptr @__const.main.fragment_sizes, i64 0, i64 %.0369510
  %749 = load i32, ptr %748, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #11
  %750 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %750, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  %751 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %751, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %15) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %15, i8 0, i64 80, i1 false)
  %752 = load i32, ptr @test_count, align 4, !tbaa !5
  %753 = add nsw i32 %752, 1
  store i32 %753, ptr @test_count, align 4, !tbaa !5
  %754 = load ptr, ptr %13, align 8, !tbaa !9
  %755 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %137, ptr noundef %751, ptr noundef %754, ptr noundef nonnull %15)
  %756 = call zeroext i1 @s2n_result_is_ok(i32 %755)
  br i1 %756, label %781, label %757

757:                                              ; preds = %.preheader499
  %758 = tail call ptr @__errno_location() #12
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %761 = call i32 @s2n_print_stacktrace(ptr noundef %760) #11
  %762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %763 = trunc nuw i8 %762 to i1
  br i1 %763, label %764, label %768

764:                                              ; preds = %757
  %765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %766 = call i32 @fileno(ptr noundef %765) #11
  %767 = call i32 @isatty(i32 noundef %766) #11
  %.not464 = icmp eq i32 %767, 0
  br i1 %.not464, label %768, label %769

768:                                              ; preds = %764, %757
  br label %769

769:                                              ; preds = %764, %768
  %.str.5.sink771 = phi ptr [ @.str.5, %768 ], [ @.str.2, %764 ]
  store i32 %759, ptr %758, align 4, !tbaa !5
  %770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %771 = load i32, ptr @test_count, align 4, !tbaa !5
  %772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %773 = load i32, ptr %772, align 4, !tbaa !5
  %774 = call ptr @s2n_strerror(i32 noundef %773, ptr noundef nonnull @.str.4) #11
  %775 = load i32, ptr %772, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror_debug(i32 noundef %775, ptr noundef nonnull @.str.4) #11
  %777 = load i32, ptr %758, align 4, !tbaa !5
  %778 = call ptr @strerror(i32 noundef %777) #11
  %779 = load i32, ptr %758, align 4, !tbaa !5
  %780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %770, ptr noundef nonnull %.str.5.sink771, i32 noundef %771, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %774, ptr noundef %776, ptr noundef %778, i32 noundef %779) #13
  call void @exit(i32 noundef 1) #14
  unreachable

781:                                              ; preds = %.preheader499
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %16) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %16, i8 0, i64 40, i1 false)
  %782 = load i32, ptr @test_count, align 4, !tbaa !5
  %783 = add nsw i32 %782, 1
  store i32 %783, ptr @test_count, align 4, !tbaa !5
  %784 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %16, i32 noundef 0) #11
  %785 = icmp eq i32 %784, -1
  br i1 %785, label %794, label %.preheader498.preheader

.preheader498.preheader:                          ; preds = %781
  %786 = load ptr, ptr %14, align 8, !tbaa !9
  %787 = getelementptr inbounds i8, ptr %786, i64 4084
  %788 = load i16, ptr %787, align 4, !tbaa !53
  %789 = add i16 %788, 1
  store i16 %789, ptr %787, align 4, !tbaa !53
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = add nsw i32 %790, 1
  store i32 %791, ptr @test_count, align 4, !tbaa !5
  %792 = call i32 @s2n_tls13_server_nst_write(ptr noundef %786, ptr noundef nonnull %16) #11
  %793 = call zeroext i1 @s2n_result_is_ok(i32 %792)
  br i1 %793, label %.preheader498.1, label %856

794:                                              ; preds = %781
  %795 = tail call ptr @__errno_location() #12
  %796 = load i32, ptr %795, align 4, !tbaa !5
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = call i32 @s2n_print_stacktrace(ptr noundef %797) #11
  %799 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %800 = trunc nuw i8 %799 to i1
  br i1 %800, label %801, label %805

801:                                              ; preds = %794
  %802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %803 = call i32 @fileno(ptr noundef %802) #11
  %804 = call i32 @isatty(i32 noundef %803) #11
  %.not472 = icmp eq i32 %804, 0
  br i1 %.not472, label %805, label %806

805:                                              ; preds = %801, %794
  br label %806

806:                                              ; preds = %801, %805
  %.str.5.sink782 = phi ptr [ @.str.5, %805 ], [ @.str.2, %801 ]
  store i32 %796, ptr %795, align 4, !tbaa !5
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = load i32, ptr @test_count, align 4, !tbaa !5
  %809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call ptr @s2n_strerror(i32 noundef %810, ptr noundef nonnull @.str.4) #11
  %812 = load i32, ptr %809, align 4, !tbaa !5
  %813 = call ptr @s2n_strerror_debug(i32 noundef %812, ptr noundef nonnull @.str.4) #11
  %814 = load i32, ptr %795, align 4, !tbaa !5
  %815 = call ptr @strerror(i32 noundef %814) #11
  %816 = load i32, ptr %795, align 4, !tbaa !5
  %817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %807, ptr noundef nonnull %.str.5.sink782, i32 noundef %808, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 260, ptr noundef %811, ptr noundef %813, ptr noundef %815, i32 noundef %816) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.preheader498.1:                                  ; preds = %.preheader498.preheader
  %818 = load ptr, ptr %14, align 8, !tbaa !9
  %819 = getelementptr inbounds i8, ptr %818, i64 4084
  %820 = load i16, ptr %819, align 4, !tbaa !53
  %821 = add i16 %820, 1
  store i16 %821, ptr %819, align 4, !tbaa !53
  %822 = load i32, ptr @test_count, align 4, !tbaa !5
  %823 = add nsw i32 %822, 1
  store i32 %823, ptr @test_count, align 4, !tbaa !5
  %824 = call i32 @s2n_tls13_server_nst_write(ptr noundef %818, ptr noundef nonnull %16) #11
  %825 = call zeroext i1 @s2n_result_is_ok(i32 %824)
  br i1 %825, label %.preheader498.2, label %856

.preheader498.2:                                  ; preds = %.preheader498.1
  %826 = load ptr, ptr %14, align 8, !tbaa !9
  %827 = getelementptr inbounds i8, ptr %826, i64 4084
  %828 = load i16, ptr %827, align 4, !tbaa !53
  %829 = add i16 %828, 1
  store i16 %829, ptr %827, align 4, !tbaa !53
  %830 = load i32, ptr @test_count, align 4, !tbaa !5
  %831 = add nsw i32 %830, 1
  store i32 %831, ptr @test_count, align 4, !tbaa !5
  %832 = call i32 @s2n_tls13_server_nst_write(ptr noundef %826, ptr noundef nonnull %16) #11
  %833 = call zeroext i1 @s2n_result_is_ok(i32 %832)
  br i1 %833, label %.preheader498.3, label %856

.preheader498.3:                                  ; preds = %.preheader498.2
  %834 = load ptr, ptr %14, align 8, !tbaa !9
  %835 = getelementptr inbounds i8, ptr %834, i64 4084
  %836 = load i16, ptr %835, align 4, !tbaa !53
  %837 = add i16 %836, 1
  store i16 %837, ptr %835, align 4, !tbaa !53
  %838 = load i32, ptr @test_count, align 4, !tbaa !5
  %839 = add nsw i32 %838, 1
  store i32 %839, ptr @test_count, align 4, !tbaa !5
  %840 = call i32 @s2n_tls13_server_nst_write(ptr noundef %834, ptr noundef nonnull %16) #11
  %841 = call zeroext i1 @s2n_result_is_ok(i32 %840)
  br i1 %841, label %.preheader498.4, label %856

.preheader498.4:                                  ; preds = %.preheader498.3
  %842 = load ptr, ptr %14, align 8, !tbaa !9
  %843 = getelementptr inbounds i8, ptr %842, i64 4084
  %844 = load i16, ptr %843, align 4, !tbaa !53
  %845 = add i16 %844, 1
  store i16 %845, ptr %843, align 4, !tbaa !53
  %846 = load i32, ptr @test_count, align 4, !tbaa !5
  %847 = add nsw i32 %846, 1
  store i32 %847, ptr @test_count, align 4, !tbaa !5
  %848 = call i32 @s2n_tls13_server_nst_write(ptr noundef %842, ptr noundef nonnull %16) #11
  %849 = call zeroext i1 @s2n_result_is_ok(i32 %848)
  br i1 %849, label %850, label %856

850:                                              ; preds = %.preheader498.4
  %851 = load i32, ptr @test_count, align 4, !tbaa !5
  %852 = add nsw i32 %851, 1
  store i32 %852, ptr @test_count, align 4, !tbaa !5
  %853 = load ptr, ptr %14, align 8, !tbaa !9
  %854 = call i32 @s2n_test_send_records(ptr noundef %853, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %16, i32 noundef %749)
  %855 = call zeroext i1 @s2n_result_is_ok(i32 %854)
  br i1 %855, label %904, label %880

856:                                              ; preds = %.preheader498.4, %.preheader498.3, %.preheader498.2, %.preheader498.1, %.preheader498.preheader
  %857 = tail call ptr @__errno_location() #12
  %858 = load i32, ptr %857, align 4, !tbaa !5
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = call i32 @s2n_print_stacktrace(ptr noundef %859) #11
  %861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %862 = trunc nuw i8 %861 to i1
  br i1 %862, label %863, label %867

863:                                              ; preds = %856
  %864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %865 = call i32 @fileno(ptr noundef %864) #11
  %866 = call i32 @isatty(i32 noundef %865) #11
  %.not471 = icmp eq i32 %866, 0
  br i1 %.not471, label %867, label %868

867:                                              ; preds = %863, %856
  br label %868

868:                                              ; preds = %863, %867
  %.str.5.sink793 = phi ptr [ @.str.5, %867 ], [ @.str.2, %863 ]
  store i32 %858, ptr %857, align 4, !tbaa !5
  %869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %870 = load i32, ptr @test_count, align 4, !tbaa !5
  %871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %872 = load i32, ptr %871, align 4, !tbaa !5
  %873 = call ptr @s2n_strerror(i32 noundef %872, ptr noundef nonnull @.str.4) #11
  %874 = load i32, ptr %871, align 4, !tbaa !5
  %875 = call ptr @s2n_strerror_debug(i32 noundef %874, ptr noundef nonnull @.str.4) #11
  %876 = load i32, ptr %857, align 4, !tbaa !5
  %877 = call ptr @strerror(i32 noundef %876) #11
  %878 = load i32, ptr %857, align 4, !tbaa !5
  %879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %869, ptr noundef nonnull %.str.5.sink793, i32 noundef %870, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 263, ptr noundef %873, ptr noundef %875, ptr noundef %877, i32 noundef %878) #13
  call void @exit(i32 noundef 1) #14
  unreachable

880:                                              ; preds = %850
  %881 = tail call ptr @__errno_location() #12
  %882 = load i32, ptr %881, align 4, !tbaa !5
  %883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %884 = call i32 @s2n_print_stacktrace(ptr noundef %883) #11
  %885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %886 = trunc nuw i8 %885 to i1
  br i1 %886, label %887, label %891

887:                                              ; preds = %880
  %888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %889 = call i32 @fileno(ptr noundef %888) #11
  %890 = call i32 @isatty(i32 noundef %889) #11
  %.not465 = icmp eq i32 %890, 0
  br i1 %.not465, label %891, label %892

891:                                              ; preds = %887, %880
  br label %892

892:                                              ; preds = %887, %891
  %.str.5.sink804 = phi ptr [ @.str.5, %891 ], [ @.str.2, %887 ]
  store i32 %882, ptr %881, align 4, !tbaa !5
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = load i32, ptr @test_count, align 4, !tbaa !5
  %895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %896 = load i32, ptr %895, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror(i32 noundef %896, ptr noundef nonnull @.str.4) #11
  %898 = load i32, ptr %895, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror_debug(i32 noundef %898, ptr noundef nonnull @.str.4) #11
  %900 = load i32, ptr %881, align 4, !tbaa !5
  %901 = call ptr @strerror(i32 noundef %900) #11
  %902 = load i32, ptr %881, align 4, !tbaa !5
  %903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %893, ptr noundef nonnull %.str.5.sink804, i32 noundef %894, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 266, ptr noundef %897, ptr noundef %899, ptr noundef %901, i32 noundef %902) #13
  call void @exit(i32 noundef 1) #14
  unreachable

904:                                              ; preds = %850
  %905 = load i32, ptr @test_count, align 4, !tbaa !5
  %906 = add nsw i32 %905, 1
  store i32 %906, ptr @test_count, align 4, !tbaa !5
  %907 = load ptr, ptr %14, align 8, !tbaa !9
  %908 = load ptr, ptr %13, align 8, !tbaa !9
  %909 = call i32 @s2n_test_basic_recv(ptr noundef %907, ptr noundef %908)
  %910 = call zeroext i1 @s2n_result_is_ok(i32 %909)
  br i1 %910, label %935, label %911

911:                                              ; preds = %904
  %912 = tail call ptr @__errno_location() #12
  %913 = load i32, ptr %912, align 4, !tbaa !5
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = call i32 @s2n_print_stacktrace(ptr noundef %914) #11
  %916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %917 = trunc nuw i8 %916 to i1
  br i1 %917, label %918, label %922

918:                                              ; preds = %911
  %919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %920 = call i32 @fileno(ptr noundef %919) #11
  %921 = call i32 @isatty(i32 noundef %920) #11
  %.not466 = icmp eq i32 %921, 0
  br i1 %.not466, label %922, label %923

922:                                              ; preds = %918, %911
  br label %923

923:                                              ; preds = %918, %922
  %.str.5.sink815 = phi ptr [ @.str.5, %922 ], [ @.str.2, %918 ]
  store i32 %913, ptr %912, align 4, !tbaa !5
  %924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %925 = load i32, ptr @test_count, align 4, !tbaa !5
  %926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror(i32 noundef %927, ptr noundef nonnull @.str.4) #11
  %929 = load i32, ptr %926, align 4, !tbaa !5
  %930 = call ptr @s2n_strerror_debug(i32 noundef %929, ptr noundef nonnull @.str.4) #11
  %931 = load i32, ptr %912, align 4, !tbaa !5
  %932 = call ptr @strerror(i32 noundef %931) #11
  %933 = load i32, ptr %912, align 4, !tbaa !5
  %934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %924, ptr noundef nonnull %.str.5.sink815, i32 noundef %925, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 267, ptr noundef %928, ptr noundef %930, ptr noundef %932, i32 noundef %933) #13
  call void @exit(i32 noundef 1) #14
  unreachable

935:                                              ; preds = %904
  %936 = load i32, ptr @test_count, align 4, !tbaa !5
  %937 = add nsw i32 %936, 1
  store i32 %937, ptr @test_count, align 4, !tbaa !5
  %938 = load i64, ptr @tickets_count, align 8, !tbaa !15
  %939 = icmp eq i64 %938, 5
  br i1 %939, label %964, label %940

940:                                              ; preds = %935
  %941 = tail call ptr @__errno_location() #12
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %944 = call i32 @s2n_print_stacktrace(ptr noundef %943) #11
  %945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %946 = trunc nuw i8 %945 to i1
  br i1 %946, label %947, label %951

947:                                              ; preds = %940
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = call i32 @fileno(ptr noundef %948) #11
  %950 = call i32 @isatty(i32 noundef %949) #11
  %.not467 = icmp eq i32 %950, 0
  br i1 %.not467, label %951, label %952

951:                                              ; preds = %947, %940
  br label %952

952:                                              ; preds = %947, %951
  %.str.5.sink826 = phi ptr [ @.str.5, %951 ], [ @.str.2, %947 ]
  store i32 %942, ptr %941, align 4, !tbaa !5
  %953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %954 = load i32, ptr @test_count, align 4, !tbaa !5
  %955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %956 = load i32, ptr %955, align 4, !tbaa !5
  %957 = call ptr @s2n_strerror(i32 noundef %956, ptr noundef nonnull @.str.4) #11
  %958 = load i32, ptr %955, align 4, !tbaa !5
  %959 = call ptr @s2n_strerror_debug(i32 noundef %958, ptr noundef nonnull @.str.4) #11
  %960 = load i32, ptr %941, align 4, !tbaa !5
  %961 = call ptr @strerror(i32 noundef %960) #11
  %962 = load i32, ptr %941, align 4, !tbaa !5
  %963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %953, ptr noundef nonnull %.str.5.sink826, i32 noundef %954, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %957, ptr noundef %959, ptr noundef %961, i32 noundef %962) #13
  call void @exit(i32 noundef 1) #14
  unreachable

964:                                              ; preds = %935
  %965 = add nsw i32 %936, 2
  store i32 %965, ptr @test_count, align 4, !tbaa !5
  %966 = load ptr, ptr %14, align 8, !tbaa !9
  %967 = call i32 @s2n_test_send_records(ptr noundef %966, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %16, i32 noundef %749)
  %968 = call zeroext i1 @s2n_result_is_ok(i32 %967)
  br i1 %968, label %993, label %969

969:                                              ; preds = %964
  %970 = tail call ptr @__errno_location() #12
  %971 = load i32, ptr %970, align 4, !tbaa !5
  %972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %973 = call i32 @s2n_print_stacktrace(ptr noundef %972) #11
  %974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %975 = trunc nuw i8 %974 to i1
  br i1 %975, label %976, label %980

976:                                              ; preds = %969
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = call i32 @fileno(ptr noundef %977) #11
  %979 = call i32 @isatty(i32 noundef %978) #11
  %.not468 = icmp eq i32 %979, 0
  br i1 %.not468, label %980, label %981

980:                                              ; preds = %976, %969
  br label %981

981:                                              ; preds = %976, %980
  %.str.5.sink837 = phi ptr [ @.str.5, %980 ], [ @.str.2, %976 ]
  store i32 %971, ptr %970, align 4, !tbaa !5
  %982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %983 = load i32, ptr @test_count, align 4, !tbaa !5
  %984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %985 = load i32, ptr %984, align 4, !tbaa !5
  %986 = call ptr @s2n_strerror(i32 noundef %985, ptr noundef nonnull @.str.4) #11
  %987 = load i32, ptr %984, align 4, !tbaa !5
  %988 = call ptr @s2n_strerror_debug(i32 noundef %987, ptr noundef nonnull @.str.4) #11
  %989 = load i32, ptr %970, align 4, !tbaa !5
  %990 = call ptr @strerror(i32 noundef %989) #11
  %991 = load i32, ptr %970, align 4, !tbaa !5
  %992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %982, ptr noundef nonnull %.str.5.sink837, i32 noundef %983, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %986, ptr noundef %988, ptr noundef %990, i32 noundef %991) #13
  call void @exit(i32 noundef 1) #14
  unreachable

993:                                              ; preds = %964
  %994 = load i32, ptr @test_count, align 4, !tbaa !5
  %995 = add nsw i32 %994, 1
  store i32 %995, ptr @test_count, align 4, !tbaa !5
  %996 = load ptr, ptr %14, align 8, !tbaa !9
  %997 = load ptr, ptr %13, align 8, !tbaa !9
  %998 = call i32 @s2n_test_blocking_recv(ptr noundef %996, ptr noundef %997, ptr noundef nonnull %15)
  %999 = call zeroext i1 @s2n_result_is_ok(i32 %998)
  br i1 %999, label %1024, label %1000

1000:                                             ; preds = %993
  %1001 = tail call ptr @__errno_location() #12
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = call i32 @s2n_print_stacktrace(ptr noundef %1003) #11
  %1005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1006 = trunc nuw i8 %1005 to i1
  br i1 %1006, label %1007, label %1011

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

1011:                                             ; preds = %1007, %1000
  br label %1012

1012:                                             ; preds = %1007, %1011
  %.str.5.sink848 = phi ptr [ @.str.5, %1011 ], [ @.str.2, %1007 ]
  store i32 %1002, ptr %1001, align 4, !tbaa !5
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = load i32, ptr @test_count, align 4, !tbaa !5
  %1015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = call ptr @s2n_strerror(i32 noundef %1016, ptr noundef nonnull @.str.4) #11
  %1018 = load i32, ptr %1015, align 4, !tbaa !5
  %1019 = call ptr @s2n_strerror_debug(i32 noundef %1018, ptr noundef nonnull @.str.4) #11
  %1020 = load i32, ptr %1001, align 4, !tbaa !5
  %1021 = call ptr @strerror(i32 noundef %1020) #11
  %1022 = load i32, ptr %1001, align 4, !tbaa !5
  %1023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1013, ptr noundef nonnull %.str.5.sink848, i32 noundef %1014, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 271, ptr noundef %1017, ptr noundef %1019, ptr noundef %1021, i32 noundef %1022) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1024:                                             ; preds = %993
  %1025 = load i32, ptr @test_count, align 4, !tbaa !5
  %1026 = add nsw i32 %1025, 1
  store i32 %1026, ptr @test_count, align 4, !tbaa !5
  %1027 = load i64, ptr @tickets_count, align 8, !tbaa !15
  %1028 = icmp eq i64 %1027, 5
  br i1 %1028, label %1053, label %1029

1029:                                             ; preds = %1024
  %1030 = tail call ptr @__errno_location() #12
  %1031 = load i32, ptr %1030, align 4, !tbaa !5
  %1032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1033 = call i32 @s2n_print_stacktrace(ptr noundef %1032) #11
  %1034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1035 = trunc nuw i8 %1034 to i1
  br i1 %1035, label %1036, label %1040

1036:                                             ; preds = %1029
  %1037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1038 = call i32 @fileno(ptr noundef %1037) #11
  %1039 = call i32 @isatty(i32 noundef %1038) #11
  %.not470 = icmp eq i32 %1039, 0
  br i1 %.not470, label %1040, label %1041

1040:                                             ; preds = %1036, %1029
  br label %1041

1041:                                             ; preds = %1036, %1040
  %.str.5.sink859 = phi ptr [ @.str.5, %1040 ], [ @.str.2, %1036 ]
  store i32 %1031, ptr %1030, align 4, !tbaa !5
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  %1046 = call ptr @s2n_strerror(i32 noundef %1045, ptr noundef nonnull @.str.4) #11
  %1047 = load i32, ptr %1044, align 4, !tbaa !5
  %1048 = call ptr @s2n_strerror_debug(i32 noundef %1047, ptr noundef nonnull @.str.4) #11
  %1049 = load i32, ptr %1030, align 4, !tbaa !5
  %1050 = call ptr @strerror(i32 noundef %1049) #11
  %1051 = load i32, ptr %1030, align 4, !tbaa !5
  %1052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1042, ptr noundef nonnull %.str.5.sink859, i32 noundef %1043, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %1046, ptr noundef %1048, ptr noundef %1050, i32 noundef %1051) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1053:                                             ; preds = %1024
  %1054 = call i32 @s2n_stuffer_free(ptr noundef nonnull %16) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #11
  %1055 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %15) #11
  %1056 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  %1057 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  %1058 = add nuw nsw i64 %.0369510, 1
  %exitcond525.not = icmp eq i64 %1058, 7
  br i1 %exitcond525.not, label %.preheader497, label %.preheader499, !llvm.loop !54

.preheader495:                                    ; preds = %1492
  %1059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  br label %1506

1060:                                             ; preds = %.preheader497, %1492
  %.0371513 = phi i64 [ 0, %.preheader497 ], [ %1497, %1492 ]
  %1061 = getelementptr inbounds [7 x i32], ptr @__const.main.fragment_sizes, i64 0, i64 %.0371513
  %1062 = load i32, ptr %1061, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #11
  %1063 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %1063, ptr %17, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #11
  %1064 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1064, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %19) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %19, i8 0, i64 80, i1 false)
  %1065 = load i32, ptr @test_count, align 4, !tbaa !5
  %1066 = add nsw i32 %1065, 1
  store i32 %1066, ptr @test_count, align 4, !tbaa !5
  %1067 = load ptr, ptr %17, align 8, !tbaa !9
  %1068 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %137, ptr noundef %1064, ptr noundef %1067, ptr noundef nonnull %19)
  %1069 = call zeroext i1 @s2n_result_is_ok(i32 %1068)
  br i1 %1069, label %1094, label %1070

1070:                                             ; preds = %1060
  %1071 = tail call ptr @__errno_location() #12
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = call i32 @s2n_print_stacktrace(ptr noundef %1073) #11
  %1075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1076 = trunc nuw i8 %1075 to i1
  br i1 %1076, label %1077, label %1081

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

1081:                                             ; preds = %1077, %1070
  br label %1082

1082:                                             ; preds = %1077, %1081
  %.str.5.sink870 = phi ptr [ @.str.5, %1081 ], [ @.str.2, %1077 ]
  store i32 %1072, ptr %1071, align 4, !tbaa !5
  %1083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1084 = load i32, ptr @test_count, align 4, !tbaa !5
  %1085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1086 = load i32, ptr %1085, align 4, !tbaa !5
  %1087 = call ptr @s2n_strerror(i32 noundef %1086, ptr noundef nonnull @.str.4) #11
  %1088 = load i32, ptr %1085, align 4, !tbaa !5
  %1089 = call ptr @s2n_strerror_debug(i32 noundef %1088, ptr noundef nonnull @.str.4) #11
  %1090 = load i32, ptr %1071, align 4, !tbaa !5
  %1091 = call ptr @strerror(i32 noundef %1090) #11
  %1092 = load i32, ptr %1071, align 4, !tbaa !5
  %1093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1083, ptr noundef nonnull %.str.5.sink870, i32 noundef %1084, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %1087, ptr noundef %1089, ptr noundef %1091, i32 noundef %1092) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1094:                                             ; preds = %1060
  %1095 = load ptr, ptr %18, align 8, !tbaa !9
  %1096 = getelementptr inbounds i8, ptr %1095, i64 4092
  store i32 10, ptr %1096, align 4, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %20) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %20, i8 0, i64 40, i1 false)
  %1097 = load i32, ptr @test_count, align 4, !tbaa !5
  %1098 = add nsw i32 %1097, 1
  store i32 %1098, ptr @test_count, align 4, !tbaa !5
  %1099 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %20, i32 noundef 0) #11
  %1100 = icmp eq i32 %1099, -1
  br i1 %1100, label %1112, label %.preheader496.preheader

.preheader496.preheader:                          ; preds = %1094
  %1101 = load ptr, ptr %18, align 8, !tbaa !9
  %1102 = load i32, ptr %1101, align 8
  %1103 = and i32 %1102, -2049
  store i32 %1103, ptr %1101, align 8
  %1104 = load ptr, ptr %18, align 8, !tbaa !9
  %1105 = getelementptr inbounds i8, ptr %1104, i64 4084
  %1106 = load i16, ptr %1105, align 4, !tbaa !53
  %1107 = add i16 %1106, 1
  store i16 %1107, ptr %1105, align 4, !tbaa !53
  %1108 = load i32, ptr @test_count, align 4, !tbaa !5
  %1109 = add nsw i32 %1108, 1
  store i32 %1109, ptr @test_count, align 4, !tbaa !5
  %1110 = call i32 @s2n_tls13_server_nst_write(ptr noundef %1104, ptr noundef nonnull %20) #11
  %1111 = call zeroext i1 @s2n_result_is_ok(i32 %1110)
  br i1 %1111, label %1239, label %1215

1112:                                             ; preds = %1094
  %1113 = tail call ptr @__errno_location() #12
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1116 = call i32 @s2n_print_stacktrace(ptr noundef %1115) #11
  %1117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1118 = trunc nuw i8 %1117 to i1
  br i1 %1118, label %1119, label %1123

1119:                                             ; preds = %1112
  %1120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1121 = call i32 @fileno(ptr noundef %1120) #11
  %1122 = call i32 @isatty(i32 noundef %1121) #11
  %.not463 = icmp eq i32 %1122, 0
  br i1 %.not463, label %1123, label %1124

1123:                                             ; preds = %1119, %1112
  br label %1124

1124:                                             ; preds = %1119, %1123
  %.str.5.sink881 = phi ptr [ @.str.5, %1123 ], [ @.str.2, %1119 ]
  store i32 %1114, ptr %1113, align 4, !tbaa !5
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = load i32, ptr @test_count, align 4, !tbaa !5
  %1127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call ptr @s2n_strerror(i32 noundef %1128, ptr noundef nonnull @.str.4) #11
  %1130 = load i32, ptr %1127, align 4, !tbaa !5
  %1131 = call ptr @s2n_strerror_debug(i32 noundef %1130, ptr noundef nonnull @.str.4) #11
  %1132 = load i32, ptr %1113, align 4, !tbaa !5
  %1133 = call ptr @strerror(i32 noundef %1132) #11
  %1134 = load i32, ptr %1113, align 4, !tbaa !5
  %1135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1125, ptr noundef nonnull %.str.5.sink881, i32 noundef %1126, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %1129, ptr noundef %1131, ptr noundef %1133, i32 noundef %1134) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.preheader496.1:                                  ; preds = %1277
  %1136 = load ptr, ptr %18, align 8, !tbaa !9
  %1137 = load i32, ptr %1136, align 8
  %1138 = and i32 %1137, -2049
  store i32 %1138, ptr %1136, align 8
  %1139 = load ptr, ptr %18, align 8, !tbaa !9
  %1140 = getelementptr inbounds i8, ptr %1139, i64 4084
  %1141 = load i16, ptr %1140, align 4, !tbaa !53
  %1142 = add i16 %1141, 1
  store i16 %1142, ptr %1140, align 4, !tbaa !53
  %1143 = load i32, ptr @test_count, align 4, !tbaa !5
  %1144 = add nsw i32 %1143, 1
  store i32 %1144, ptr @test_count, align 4, !tbaa !5
  %1145 = call i32 @s2n_tls13_server_nst_write(ptr noundef %1139, ptr noundef nonnull %20) #11
  %1146 = call zeroext i1 @s2n_result_is_ok(i32 %1145)
  br i1 %1146, label %1147, label %1215

1147:                                             ; preds = %.preheader496.1
  %1148 = load i32, ptr %746, align 4, !tbaa !56
  %1149 = load i32, ptr %747, align 8, !tbaa !57
  %1150 = load ptr, ptr %18, align 8, !tbaa !9
  %1151 = load i32, ptr %1150, align 8
  %1152 = or i32 %1151, 2048
  store i32 %1152, ptr %1150, align 8
  %1153 = load ptr, ptr %18, align 8, !tbaa !9
  %1154 = getelementptr inbounds i8, ptr %1153, i64 4084
  %1155 = load i16, ptr %1154, align 4, !tbaa !53
  %1156 = add i16 %1155, 1
  store i16 %1156, ptr %1154, align 4, !tbaa !53
  %1157 = load i32, ptr @test_count, align 4, !tbaa !5
  %1158 = add nsw i32 %1157, 1
  store i32 %1158, ptr @test_count, align 4, !tbaa !5
  %1159 = call i32 @s2n_tls13_server_nst_write(ptr noundef %1153, ptr noundef nonnull %20) #11
  %1160 = call zeroext i1 @s2n_result_is_ok(i32 %1159)
  br i1 %1160, label %1161, label %1253

1161:                                             ; preds = %1147
  %1162 = sub i32 %1148, %1149
  %1163 = zext i32 %1162 to i64
  %1164 = sub nsw i64 %1163, %1283
  %1165 = load i32, ptr %746, align 4, !tbaa !56
  %1166 = load i32, ptr %747, align 8, !tbaa !57
  %1167 = sub i32 %1165, %1166
  %1168 = zext i32 %1167 to i64
  %1169 = sub nsw i64 %1168, %1163
  %1170 = load i32, ptr @test_count, align 4, !tbaa !5
  %1171 = add nsw i32 %1170, 1
  store i32 %1171, ptr @test_count, align 4, !tbaa !5
  %1172 = icmp ugt i64 %1169, %1164
  br i1 %1172, label %.preheader496.2, label %1288

.preheader496.2:                                  ; preds = %1161
  %1173 = load ptr, ptr %18, align 8, !tbaa !9
  %1174 = load i32, ptr %1173, align 8
  %1175 = and i32 %1174, -2049
  store i32 %1175, ptr %1173, align 8
  %1176 = load ptr, ptr %18, align 8, !tbaa !9
  %1177 = getelementptr inbounds i8, ptr %1176, i64 4084
  %1178 = load i16, ptr %1177, align 4, !tbaa !53
  %1179 = add i16 %1178, 1
  store i16 %1179, ptr %1177, align 4, !tbaa !53
  %1180 = load i32, ptr @test_count, align 4, !tbaa !5
  %1181 = add nsw i32 %1180, 1
  store i32 %1181, ptr @test_count, align 4, !tbaa !5
  %1182 = call i32 @s2n_tls13_server_nst_write(ptr noundef %1176, ptr noundef nonnull %20) #11
  %1183 = call zeroext i1 @s2n_result_is_ok(i32 %1182)
  br i1 %1183, label %1184, label %1215

1184:                                             ; preds = %.preheader496.2
  %1185 = load i32, ptr %746, align 4, !tbaa !56
  %1186 = load i32, ptr %747, align 8, !tbaa !57
  %1187 = load ptr, ptr %18, align 8, !tbaa !9
  %1188 = load i32, ptr %1187, align 8
  %1189 = or i32 %1188, 2048
  store i32 %1189, ptr %1187, align 8
  %1190 = load ptr, ptr %18, align 8, !tbaa !9
  %1191 = getelementptr inbounds i8, ptr %1190, i64 4084
  %1192 = load i16, ptr %1191, align 4, !tbaa !53
  %1193 = add i16 %1192, 1
  store i16 %1193, ptr %1191, align 4, !tbaa !53
  %1194 = load i32, ptr @test_count, align 4, !tbaa !5
  %1195 = add nsw i32 %1194, 1
  store i32 %1195, ptr @test_count, align 4, !tbaa !5
  %1196 = call i32 @s2n_tls13_server_nst_write(ptr noundef %1190, ptr noundef nonnull %20) #11
  %1197 = call zeroext i1 @s2n_result_is_ok(i32 %1196)
  br i1 %1197, label %1198, label %1253

1198:                                             ; preds = %1184
  %1199 = sub i32 %1185, %1186
  %1200 = zext i32 %1199 to i64
  %1201 = sub nsw i64 %1200, %1168
  %1202 = load i32, ptr %746, align 4, !tbaa !56
  %1203 = load i32, ptr %747, align 8, !tbaa !57
  %1204 = sub i32 %1202, %1203
  %1205 = zext i32 %1204 to i64
  %1206 = sub nsw i64 %1205, %1200
  %1207 = load i32, ptr @test_count, align 4, !tbaa !5
  %1208 = add nsw i32 %1207, 1
  store i32 %1208, ptr @test_count, align 4, !tbaa !5
  %1209 = icmp ugt i64 %1206, %1201
  br i1 %1209, label %1210, label %1288

1210:                                             ; preds = %1198
  %1211 = add nsw i32 %1207, 2
  store i32 %1211, ptr @test_count, align 4, !tbaa !5
  %1212 = load ptr, ptr %18, align 8, !tbaa !9
  %1213 = call i32 @s2n_test_send_records(ptr noundef %1212, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %20, i32 noundef %1062)
  %1214 = call zeroext i1 @s2n_result_is_ok(i32 %1213)
  br i1 %1214, label %1336, label %1312

1215:                                             ; preds = %.preheader496.2, %.preheader496.1, %.preheader496.preheader
  %1216 = tail call ptr @__errno_location() #12
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = call i32 @s2n_print_stacktrace(ptr noundef %1218) #11
  %1220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1221 = trunc nuw i8 %1220 to i1
  br i1 %1221, label %1222, label %1226

1222:                                             ; preds = %1215
  %1223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1224 = call i32 @fileno(ptr noundef %1223) #11
  %1225 = call i32 @isatty(i32 noundef %1224) #11
  %.not460 = icmp eq i32 %1225, 0
  br i1 %.not460, label %1226, label %1227

1226:                                             ; preds = %1222, %1215
  br label %1227

1227:                                             ; preds = %1222, %1226
  %.str.5.sink892 = phi ptr [ @.str.5, %1226 ], [ @.str.2, %1222 ]
  store i32 %1217, ptr %1216, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  %1232 = call ptr @s2n_strerror(i32 noundef %1231, ptr noundef nonnull @.str.4) #11
  %1233 = load i32, ptr %1230, align 4, !tbaa !5
  %1234 = call ptr @s2n_strerror_debug(i32 noundef %1233, ptr noundef nonnull @.str.4) #11
  %1235 = load i32, ptr %1216, align 4, !tbaa !5
  %1236 = call ptr @strerror(i32 noundef %1235) #11
  %1237 = load i32, ptr %1216, align 4, !tbaa !5
  %1238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1228, ptr noundef nonnull %.str.5.sink892, i32 noundef %1229, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %1232, ptr noundef %1234, ptr noundef %1236, i32 noundef %1237) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1239:                                             ; preds = %.preheader496.preheader
  %1240 = load i32, ptr %746, align 4, !tbaa !56
  %1241 = load i32, ptr %747, align 8, !tbaa !57
  %1242 = load ptr, ptr %18, align 8, !tbaa !9
  %1243 = load i32, ptr %1242, align 8
  %1244 = or i32 %1243, 2048
  store i32 %1244, ptr %1242, align 8
  %1245 = load ptr, ptr %18, align 8, !tbaa !9
  %1246 = getelementptr inbounds i8, ptr %1245, i64 4084
  %1247 = load i16, ptr %1246, align 4, !tbaa !53
  %1248 = add i16 %1247, 1
  store i16 %1248, ptr %1246, align 4, !tbaa !53
  %1249 = load i32, ptr @test_count, align 4, !tbaa !5
  %1250 = add nsw i32 %1249, 1
  store i32 %1250, ptr @test_count, align 4, !tbaa !5
  %1251 = call i32 @s2n_tls13_server_nst_write(ptr noundef %1245, ptr noundef nonnull %20) #11
  %1252 = call zeroext i1 @s2n_result_is_ok(i32 %1251)
  br i1 %1252, label %1277, label %1253

1253:                                             ; preds = %1184, %1147, %1239
  %1254 = tail call ptr @__errno_location() #12
  %1255 = load i32, ptr %1254, align 4, !tbaa !5
  %1256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1257 = call i32 @s2n_print_stacktrace(ptr noundef %1256) #11
  %1258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1259 = trunc nuw i8 %1258 to i1
  br i1 %1259, label %1260, label %1264

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

1264:                                             ; preds = %1260, %1253
  br label %1265

1265:                                             ; preds = %1260, %1264
  %.str.5.sink903 = phi ptr [ @.str.5, %1264 ], [ @.str.2, %1260 ]
  store i32 %1255, ptr %1254, align 4, !tbaa !5
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = load i32, ptr @test_count, align 4, !tbaa !5
  %1268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1269 = load i32, ptr %1268, align 4, !tbaa !5
  %1270 = call ptr @s2n_strerror(i32 noundef %1269, ptr noundef nonnull @.str.4) #11
  %1271 = load i32, ptr %1268, align 4, !tbaa !5
  %1272 = call ptr @s2n_strerror_debug(i32 noundef %1271, ptr noundef nonnull @.str.4) #11
  %1273 = load i32, ptr %1254, align 4, !tbaa !5
  %1274 = call ptr @strerror(i32 noundef %1273) #11
  %1275 = load i32, ptr %1254, align 4, !tbaa !5
  %1276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1266, ptr noundef nonnull %.str.5.sink903, i32 noundef %1267, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %1270, ptr noundef %1272, ptr noundef %1274, i32 noundef %1275) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1277:                                             ; preds = %1239
  %1278 = sub i32 %1240, %1241
  %1279 = zext i32 %1278 to i64
  %1280 = load i32, ptr %746, align 4, !tbaa !56
  %1281 = load i32, ptr %747, align 8, !tbaa !57
  %1282 = sub i32 %1280, %1281
  %1283 = zext i32 %1282 to i64
  %1284 = sub nsw i64 %1283, %1279
  %1285 = load i32, ptr @test_count, align 4, !tbaa !5
  %1286 = add nsw i32 %1285, 1
  store i32 %1286, ptr @test_count, align 4, !tbaa !5
  %1287 = icmp ugt i64 %1284, %1279
  br i1 %1287, label %.preheader496.1, label %1288

1288:                                             ; preds = %1198, %1161, %1277
  %1289 = tail call ptr @__errno_location() #12
  %1290 = load i32, ptr %1289, align 4, !tbaa !5
  %1291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1292 = call i32 @s2n_print_stacktrace(ptr noundef %1291) #11
  %1293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1294 = trunc nuw i8 %1293 to i1
  br i1 %1294, label %1295, label %1299

1295:                                             ; preds = %1288
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = call i32 @fileno(ptr noundef %1296) #11
  %1298 = call i32 @isatty(i32 noundef %1297) #11
  %.not462 = icmp eq i32 %1298, 0
  br i1 %.not462, label %1299, label %1300

1299:                                             ; preds = %1295, %1288
  br label %1300

1300:                                             ; preds = %1295, %1299
  %.str.5.sink914 = phi ptr [ @.str.5, %1299 ], [ @.str.2, %1295 ]
  store i32 %1290, ptr %1289, align 4, !tbaa !5
  %1301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1302 = load i32, ptr @test_count, align 4, !tbaa !5
  %1303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  %1305 = call ptr @s2n_strerror(i32 noundef %1304, ptr noundef nonnull @.str.4) #11
  %1306 = load i32, ptr %1303, align 4, !tbaa !5
  %1307 = call ptr @s2n_strerror_debug(i32 noundef %1306, ptr noundef nonnull @.str.4) #11
  %1308 = load i32, ptr %1289, align 4, !tbaa !5
  %1309 = call ptr @strerror(i32 noundef %1308) #11
  %1310 = load i32, ptr %1289, align 4, !tbaa !5
  %1311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1301, ptr noundef nonnull %.str.5.sink914, i32 noundef %1302, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 308, ptr noundef %1305, ptr noundef %1307, ptr noundef %1309, i32 noundef %1310) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1312:                                             ; preds = %1210
  %1313 = tail call ptr @__errno_location() #12
  %1314 = load i32, ptr %1313, align 4, !tbaa !5
  %1315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1316 = call i32 @s2n_print_stacktrace(ptr noundef %1315) #11
  %1317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1318 = trunc nuw i8 %1317 to i1
  br i1 %1318, label %1319, label %1323

1319:                                             ; preds = %1312
  %1320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1321 = call i32 @fileno(ptr noundef %1320) #11
  %1322 = call i32 @isatty(i32 noundef %1321) #11
  %.not454 = icmp eq i32 %1322, 0
  br i1 %.not454, label %1323, label %1324

1323:                                             ; preds = %1319, %1312
  br label %1324

1324:                                             ; preds = %1319, %1323
  %.str.5.sink925 = phi ptr [ @.str.5, %1323 ], [ @.str.2, %1319 ]
  store i32 %1314, ptr %1313, align 4, !tbaa !5
  %1325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1326 = load i32, ptr @test_count, align 4, !tbaa !5
  %1327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = call ptr @s2n_strerror(i32 noundef %1328, ptr noundef nonnull @.str.4) #11
  %1330 = load i32, ptr %1327, align 4, !tbaa !5
  %1331 = call ptr @s2n_strerror_debug(i32 noundef %1330, ptr noundef nonnull @.str.4) #11
  %1332 = load i32, ptr %1313, align 4, !tbaa !5
  %1333 = call ptr @strerror(i32 noundef %1332) #11
  %1334 = load i32, ptr %1313, align 4, !tbaa !5
  %1335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1325, ptr noundef nonnull %.str.5.sink925, i32 noundef %1326, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 312, ptr noundef %1329, ptr noundef %1331, ptr noundef %1333, i32 noundef %1334) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1336:                                             ; preds = %1210
  %1337 = load i32, ptr @test_count, align 4, !tbaa !5
  %1338 = add nsw i32 %1337, 1
  store i32 %1338, ptr @test_count, align 4, !tbaa !5
  %1339 = load ptr, ptr %18, align 8, !tbaa !9
  %1340 = load ptr, ptr %17, align 8, !tbaa !9
  %1341 = call i32 @s2n_test_basic_recv(ptr noundef %1339, ptr noundef %1340)
  %1342 = call zeroext i1 @s2n_result_is_ok(i32 %1341)
  br i1 %1342, label %1367, label %1343

1343:                                             ; preds = %1336
  %1344 = tail call ptr @__errno_location() #12
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  %1346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1347 = call i32 @s2n_print_stacktrace(ptr noundef %1346) #11
  %1348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1349 = trunc nuw i8 %1348 to i1
  br i1 %1349, label %1350, label %1354

1350:                                             ; preds = %1343
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = call i32 @fileno(ptr noundef %1351) #11
  %1353 = call i32 @isatty(i32 noundef %1352) #11
  %.not455 = icmp eq i32 %1353, 0
  br i1 %.not455, label %1354, label %1355

1354:                                             ; preds = %1350, %1343
  br label %1355

1355:                                             ; preds = %1350, %1354
  %.str.5.sink936 = phi ptr [ @.str.5, %1354 ], [ @.str.2, %1350 ]
  store i32 %1345, ptr %1344, 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 nonnull @.str.4) #11
  %1361 = load i32, ptr %1358, align 4, !tbaa !5
  %1362 = call ptr @s2n_strerror_debug(i32 noundef %1361, ptr noundef nonnull @.str.4) #11
  %1363 = load i32, ptr %1344, align 4, !tbaa !5
  %1364 = call ptr @strerror(i32 noundef %1363) #11
  %1365 = load i32, ptr %1344, align 4, !tbaa !5
  %1366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1356, ptr noundef nonnull %.str.5.sink936, i32 noundef %1357, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 313, ptr noundef %1360, ptr noundef %1362, ptr noundef %1364, i32 noundef %1365) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1367:                                             ; preds = %1336
  %1368 = load i32, ptr @test_count, align 4, !tbaa !5
  %1369 = add nsw i32 %1368, 1
  store i32 %1369, ptr @test_count, align 4, !tbaa !5
  %1370 = load i64, ptr @tickets_count, align 8, !tbaa !15
  %1371 = load ptr, ptr %18, align 8, !tbaa !9
  %1372 = getelementptr inbounds i8, ptr %1371, i64 4084
  %1373 = load i16, ptr %1372, align 4, !tbaa !53
  %1374 = zext i16 %1373 to i64
  %1375 = icmp eq i64 %1370, %1374
  br i1 %1375, label %1400, label %1376

1376:                                             ; preds = %1367
  %1377 = tail call ptr @__errno_location() #12
  %1378 = load i32, ptr %1377, align 4, !tbaa !5
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1380 = call i32 @s2n_print_stacktrace(ptr noundef %1379) #11
  %1381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1382 = trunc nuw i8 %1381 to i1
  br i1 %1382, label %1383, label %1387

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

1387:                                             ; preds = %1383, %1376
  br label %1388

1388:                                             ; preds = %1383, %1387
  %.str.5.sink947 = phi ptr [ @.str.5, %1387 ], [ @.str.2, %1383 ]
  store i32 %1378, ptr %1377, align 4, !tbaa !5
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = load i32, ptr @test_count, align 4, !tbaa !5
  %1391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1392 = load i32, ptr %1391, align 4, !tbaa !5
  %1393 = call ptr @s2n_strerror(i32 noundef %1392, ptr noundef nonnull @.str.4) #11
  %1394 = load i32, ptr %1391, align 4, !tbaa !5
  %1395 = call ptr @s2n_strerror_debug(i32 noundef %1394, ptr noundef nonnull @.str.4) #11
  %1396 = load i32, ptr %1377, align 4, !tbaa !5
  %1397 = call ptr @strerror(i32 noundef %1396) #11
  %1398 = load i32, ptr %1377, align 4, !tbaa !5
  %1399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1389, ptr noundef nonnull %.str.5.sink947, i32 noundef %1390, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 314, ptr noundef %1393, ptr noundef %1395, ptr noundef %1397, i32 noundef %1398) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1400:                                             ; preds = %1367
  %1401 = add nsw i32 %1368, 2
  store i32 %1401, ptr @test_count, align 4, !tbaa !5
  %1402 = call i32 @s2n_test_send_records(ptr noundef nonnull %1371, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %20, i32 noundef %1062)
  %1403 = call zeroext i1 @s2n_result_is_ok(i32 %1402)
  br i1 %1403, label %1428, label %1404

1404:                                             ; preds = %1400
  %1405 = tail call ptr @__errno_location() #12
  %1406 = load i32, ptr %1405, align 4, !tbaa !5
  %1407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1408 = call i32 @s2n_print_stacktrace(ptr noundef %1407) #11
  %1409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1410 = trunc nuw i8 %1409 to i1
  br i1 %1410, label %1411, label %1415

1411:                                             ; preds = %1404
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = call i32 @fileno(ptr noundef %1412) #11
  %1414 = call i32 @isatty(i32 noundef %1413) #11
  %.not457 = icmp eq i32 %1414, 0
  br i1 %.not457, label %1415, label %1416

1415:                                             ; preds = %1411, %1404
  br label %1416

1416:                                             ; preds = %1411, %1415
  %.str.5.sink958 = phi ptr [ @.str.5, %1415 ], [ @.str.2, %1411 ]
  store i32 %1406, ptr %1405, align 4, !tbaa !5
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = load i32, ptr @test_count, align 4, !tbaa !5
  %1419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1420 = load i32, ptr %1419, align 4, !tbaa !5
  %1421 = call ptr @s2n_strerror(i32 noundef %1420, ptr noundef nonnull @.str.4) #11
  %1422 = load i32, ptr %1419, align 4, !tbaa !5
  %1423 = call ptr @s2n_strerror_debug(i32 noundef %1422, ptr noundef nonnull @.str.4) #11
  %1424 = load i32, ptr %1405, align 4, !tbaa !5
  %1425 = call ptr @strerror(i32 noundef %1424) #11
  %1426 = load i32, ptr %1405, align 4, !tbaa !5
  %1427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1417, ptr noundef nonnull %.str.5.sink958, i32 noundef %1418, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 316, ptr noundef %1421, ptr noundef %1423, ptr noundef %1425, i32 noundef %1426) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1428:                                             ; preds = %1400
  %1429 = load i32, ptr @test_count, align 4, !tbaa !5
  %1430 = add nsw i32 %1429, 1
  store i32 %1430, ptr @test_count, align 4, !tbaa !5
  %1431 = load ptr, ptr %18, align 8, !tbaa !9
  %1432 = load ptr, ptr %17, align 8, !tbaa !9
  %1433 = call i32 @s2n_test_blocking_recv(ptr noundef %1431, ptr noundef %1432, ptr noundef nonnull %19)
  %1434 = call zeroext i1 @s2n_result_is_ok(i32 %1433)
  br i1 %1434, label %1459, label %1435

1435:                                             ; preds = %1428
  %1436 = tail call ptr @__errno_location() #12
  %1437 = load i32, ptr %1436, align 4, !tbaa !5
  %1438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1439 = call i32 @s2n_print_stacktrace(ptr noundef %1438) #11
  %1440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1441 = trunc nuw i8 %1440 to i1
  br i1 %1441, label %1442, label %1446

1442:                                             ; preds = %1435
  %1443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1444 = call i32 @fileno(ptr noundef %1443) #11
  %1445 = call i32 @isatty(i32 noundef %1444) #11
  %.not458 = icmp eq i32 %1445, 0
  br i1 %.not458, label %1446, label %1447

1446:                                             ; preds = %1442, %1435
  br label %1447

1447:                                             ; preds = %1442, %1446
  %.str.5.sink969 = phi ptr [ @.str.5, %1446 ], [ @.str.2, %1442 ]
  store i32 %1437, ptr %1436, align 4, !tbaa !5
  %1448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1449 = load i32, ptr @test_count, align 4, !tbaa !5
  %1450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  %1452 = call ptr @s2n_strerror(i32 noundef %1451, ptr noundef nonnull @.str.4) #11
  %1453 = load i32, ptr %1450, align 4, !tbaa !5
  %1454 = call ptr @s2n_strerror_debug(i32 noundef %1453, ptr noundef nonnull @.str.4) #11
  %1455 = load i32, ptr %1436, align 4, !tbaa !5
  %1456 = call ptr @strerror(i32 noundef %1455) #11
  %1457 = load i32, ptr %1436, align 4, !tbaa !5
  %1458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1448, ptr noundef nonnull %.str.5.sink969, i32 noundef %1449, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 317, ptr noundef %1452, ptr noundef %1454, ptr noundef %1456, i32 noundef %1457) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1459:                                             ; preds = %1428
  %1460 = load i32, ptr @test_count, align 4, !tbaa !5
  %1461 = add nsw i32 %1460, 1
  store i32 %1461, ptr @test_count, align 4, !tbaa !5
  %1462 = load i64, ptr @tickets_count, align 8, !tbaa !15
  %1463 = load ptr, ptr %18, align 8, !tbaa !9
  %1464 = getelementptr inbounds i8, ptr %1463, i64 4084
  %1465 = load i16, ptr %1464, align 4, !tbaa !53
  %1466 = zext i16 %1465 to i64
  %1467 = icmp eq i64 %1462, %1466
  br i1 %1467, label %1492, label %1468

1468:                                             ; preds = %1459
  %1469 = tail call ptr @__errno_location() #12
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1472 = call i32 @s2n_print_stacktrace(ptr noundef %1471) #11
  %1473 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1474 = trunc nuw i8 %1473 to i1
  br i1 %1474, label %1475, label %1479

1475:                                             ; preds = %1468
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = call i32 @fileno(ptr noundef %1476) #11
  %1478 = call i32 @isatty(i32 noundef %1477) #11
  %.not459 = icmp eq i32 %1478, 0
  br i1 %.not459, label %1479, label %1480

1479:                                             ; preds = %1475, %1468
  br label %1480

1480:                                             ; preds = %1475, %1479
  %.str.5.sink980 = phi ptr [ @.str.5, %1479 ], [ @.str.2, %1475 ]
  store i32 %1470, ptr %1469, align 4, !tbaa !5
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1482 = load i32, ptr @test_count, align 4, !tbaa !5
  %1483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1484 = load i32, ptr %1483, align 4, !tbaa !5
  %1485 = call ptr @s2n_strerror(i32 noundef %1484, ptr noundef nonnull @.str.4) #11
  %1486 = load i32, ptr %1483, align 4, !tbaa !5
  %1487 = call ptr @s2n_strerror_debug(i32 noundef %1486, ptr noundef nonnull @.str.4) #11
  %1488 = load i32, ptr %1469, align 4, !tbaa !5
  %1489 = call ptr @strerror(i32 noundef %1488) #11
  %1490 = load i32, ptr %1469, align 4, !tbaa !5
  %1491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1481, ptr noundef nonnull %.str.5.sink980, i32 noundef %1482, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 318, ptr noundef %1485, ptr noundef %1487, ptr noundef %1489, i32 noundef %1490) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1492:                                             ; preds = %1459
  %1493 = call i32 @s2n_stuffer_free(ptr noundef nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #11
  %1494 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %19) #11
  %1495 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #11
  %1496 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %17) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #11
  %1497 = add nuw nsw i64 %.0371513, 1
  %exitcond527.not = icmp eq i64 %1497, 7
  br i1 %exitcond527.not, label %.preheader495, label %1060, !llvm.loop !58

1498:                                             ; preds = %1793
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #11
  %1499 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1499, ptr %26, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #11
  %1500 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %1500, ptr %27, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %28) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %28, i8 0, i64 80, i1 false)
  %1501 = load i32, ptr @test_count, align 4, !tbaa !5
  %1502 = add nsw i32 %1501, 1
  store i32 %1502, ptr @test_count, align 4, !tbaa !5
  %1503 = load ptr, ptr %26, align 8, !tbaa !9
  %1504 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %137, ptr noundef %1500, ptr noundef %1503, ptr noundef nonnull %28)
  %1505 = call zeroext i1 @s2n_result_is_ok(i32 %1504)
  br i1 %1505, label %1822, label %1800

1506:                                             ; preds = %.preheader495, %1793
  %.0374514 = phi i64 [ 0, %.preheader495 ], [ %1799, %1793 ]
  %1507 = getelementptr inbounds [7 x i32], ptr @__const.main.fragment_sizes, i64 0, i64 %.0374514
  %1508 = load i32, ptr %1507, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #11
  %1509 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1509, ptr %21, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %1510 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %1510, ptr %22, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %23) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %23, i8 0, i64 80, i1 false)
  %1511 = load i32, ptr @test_count, align 4, !tbaa !5
  %1512 = add nsw i32 %1511, 1
  store i32 %1512, ptr @test_count, align 4, !tbaa !5
  %1513 = load ptr, ptr %21, align 8, !tbaa !9
  %1514 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %137, ptr noundef %1510, ptr noundef %1513, ptr noundef nonnull %23)
  %1515 = call zeroext i1 @s2n_result_is_ok(i32 %1514)
  br i1 %1515, label %1539, label %1516

1516:                                             ; preds = %1506
  %1517 = tail call ptr @__errno_location() #12
  %1518 = load i32, ptr %1517, align 4, !tbaa !5
  %1519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1520 = call i32 @s2n_print_stacktrace(ptr noundef %1519) #11
  %1521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1522 = trunc nuw i8 %1521 to i1
  br i1 %1522, label %1523, label %1527

1523:                                             ; preds = %1516
  %1524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1525 = call i32 @fileno(ptr noundef %1524) #11
  %1526 = call i32 @isatty(i32 noundef %1525) #11
  %.not443 = icmp eq i32 %1526, 0
  br i1 %.not443, label %1527, label %1528

1527:                                             ; preds = %1523, %1516
  br label %1528

1528:                                             ; preds = %1523, %1527
  %.str.5.sink991 = phi ptr [ @.str.5, %1527 ], [ @.str.2, %1523 ]
  store i32 %1518, ptr %1517, align 4, !tbaa !5
  %1529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1530 = load i32, ptr @test_count, align 4, !tbaa !5
  %1531 = load i32, ptr %1059, align 4, !tbaa !5
  %1532 = call ptr @s2n_strerror(i32 noundef %1531, ptr noundef nonnull @.str.4) #11
  %1533 = load i32, ptr %1059, align 4, !tbaa !5
  %1534 = call ptr @s2n_strerror_debug(i32 noundef %1533, ptr noundef nonnull @.str.4) #11
  %1535 = load i32, ptr %1517, align 4, !tbaa !5
  %1536 = call ptr @strerror(i32 noundef %1535) #11
  %1537 = load i32, ptr %1517, align 4, !tbaa !5
  %1538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1529, ptr noundef nonnull %.str.5.sink991, i32 noundef %1530, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %1532, ptr noundef %1534, ptr noundef %1536, i32 noundef %1537) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1539:                                             ; preds = %1506
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %24) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %24, i8 0, i64 40, i1 false)
  %1540 = load i32, ptr @test_count, align 4, !tbaa !5
  %1541 = add nsw i32 %1540, 1
  store i32 %1541, ptr @test_count, align 4, !tbaa !5
  %1542 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %24, i32 noundef 0) #11
  %1543 = icmp eq i32 %1542, -1
  br i1 %1543, label %1544, label %1567

1544:                                             ; preds = %1539
  %1545 = tail call ptr @__errno_location() #12
  %1546 = load i32, ptr %1545, align 4, !tbaa !5
  %1547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1548 = call i32 @s2n_print_stacktrace(ptr noundef %1547) #11
  %1549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1550 = trunc nuw i8 %1549 to i1
  br i1 %1550, label %1551, label %1555

1551:                                             ; preds = %1544
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = call i32 @fileno(ptr noundef %1552) #11
  %1554 = call i32 @isatty(i32 noundef %1553) #11
  %.not452 = icmp eq i32 %1554, 0
  br i1 %.not452, label %1555, label %1556

1555:                                             ; preds = %1551, %1544
  br label %1556

1556:                                             ; preds = %1551, %1555
  %.str.5.sink1000 = phi ptr [ @.str.5, %1555 ], [ @.str.2, %1551 ]
  store i32 %1546, ptr %1545, align 4, !tbaa !5
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = load i32, ptr @test_count, align 4, !tbaa !5
  %1559 = load i32, ptr %1059, align 4, !tbaa !5
  %1560 = call ptr @s2n_strerror(i32 noundef %1559, ptr noundef nonnull @.str.4) #11
  %1561 = load i32, ptr %1059, align 4, !tbaa !5
  %1562 = call ptr @s2n_strerror_debug(i32 noundef %1561, ptr noundef nonnull @.str.4) #11
  %1563 = load i32, ptr %1545, align 4, !tbaa !5
  %1564 = call ptr @strerror(i32 noundef %1563) #11
  %1565 = load i32, ptr %1545, align 4, !tbaa !5
  %1566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1557, ptr noundef nonnull %.str.5.sink1000, i32 noundef %1558, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 336, ptr noundef %1560, ptr noundef %1562, ptr noundef %1564, i32 noundef %1565) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1567:                                             ; preds = %1539
  %1568 = load ptr, ptr %22, align 8, !tbaa !9
  %1569 = getelementptr inbounds i8, ptr %1568, i64 4084
  store i16 1, ptr %1569, align 4, !tbaa !53
  %1570 = load i32, ptr @test_count, align 4, !tbaa !5
  %1571 = add nsw i32 %1570, 1
  store i32 %1571, ptr @test_count, align 4, !tbaa !5
  %1572 = call i32 @s2n_tls13_server_nst_write(ptr noundef %1568, ptr noundef nonnull %24) #11
  %1573 = call zeroext i1 @s2n_result_is_ok(i32 %1572)
  br i1 %1573, label %1597, label %1574

1574:                                             ; preds = %1567
  %1575 = tail call ptr @__errno_location() #12
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = call i32 @s2n_print_stacktrace(ptr noundef %1577) #11
  %1579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1580 = trunc nuw i8 %1579 to i1
  br i1 %1580, label %1581, label %1585

1581:                                             ; preds = %1574
  %1582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1583 = call i32 @fileno(ptr noundef %1582) #11
  %1584 = call i32 @isatty(i32 noundef %1583) #11
  %.not444 = icmp eq i32 %1584, 0
  br i1 %.not444, label %1585, label %1586

1585:                                             ; preds = %1581, %1574
  br label %1586

1586:                                             ; preds = %1581, %1585
  %.str.5.sink1009 = phi ptr [ @.str.5, %1585 ], [ @.str.2, %1581 ]
  store i32 %1576, ptr %1575, align 4, !tbaa !5
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = load i32, ptr @test_count, align 4, !tbaa !5
  %1589 = load i32, ptr %1059, align 4, !tbaa !5
  %1590 = call ptr @s2n_strerror(i32 noundef %1589, ptr noundef nonnull @.str.4) #11
  %1591 = load i32, ptr %1059, align 4, !tbaa !5
  %1592 = call ptr @s2n_strerror_debug(i32 noundef %1591, ptr noundef nonnull @.str.4) #11
  %1593 = load i32, ptr %1575, align 4, !tbaa !5
  %1594 = call ptr @strerror(i32 noundef %1593) #11
  %1595 = load i32, ptr %1575, align 4, !tbaa !5
  %1596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1587, ptr noundef nonnull %.str.5.sink1009, i32 noundef %1588, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 338, ptr noundef %1590, ptr noundef %1592, ptr noundef %1594, i32 noundef %1595) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1597:                                             ; preds = %1567
  %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 = load ptr, ptr %22, align 8, !tbaa !9
  %1601 = call i32 @s2n_test_send_records(ptr noundef %1600, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %24, i32 noundef %1508)
  %1602 = call zeroext i1 @s2n_result_is_ok(i32 %1601)
  br i1 %1602, label %1626, label %1603

1603:                                             ; preds = %1597
  %1604 = tail call ptr @__errno_location() #12
  %1605 = load i32, ptr %1604, align 4, !tbaa !5
  %1606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1607 = call i32 @s2n_print_stacktrace(ptr noundef %1606) #11
  %1608 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1609 = trunc nuw i8 %1608 to i1
  br i1 %1609, label %1610, label %1614

1610:                                             ; preds = %1603
  %1611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1612 = call i32 @fileno(ptr noundef %1611) #11
  %1613 = call i32 @isatty(i32 noundef %1612) #11
  %.not445 = icmp eq i32 %1613, 0
  br i1 %.not445, label %1614, label %1615

1614:                                             ; preds = %1610, %1603
  br label %1615

1615:                                             ; preds = %1610, %1614
  %.str.5.sink1018 = phi ptr [ @.str.5, %1614 ], [ @.str.2, %1610 ]
  store i32 %1605, ptr %1604, align 4, !tbaa !5
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = load i32, ptr @test_count, align 4, !tbaa !5
  %1618 = load i32, ptr %1059, align 4, !tbaa !5
  %1619 = call ptr @s2n_strerror(i32 noundef %1618, ptr noundef nonnull @.str.4) #11
  %1620 = load i32, ptr %1059, align 4, !tbaa !5
  %1621 = call ptr @s2n_strerror_debug(i32 noundef %1620, ptr noundef nonnull @.str.4) #11
  %1622 = load i32, ptr %1604, align 4, !tbaa !5
  %1623 = call ptr @strerror(i32 noundef %1622) #11
  %1624 = load i32, ptr %1604, align 4, !tbaa !5
  %1625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1616, ptr noundef nonnull %.str.5.sink1018, i32 noundef %1617, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 339, ptr noundef %1619, ptr noundef %1621, ptr noundef %1623, i32 noundef %1624) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1626:                                             ; preds = %1597
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #11
  store i8 0, ptr %25, align 1
  %1627 = load i32, ptr @test_count, align 4, !tbaa !5
  %1628 = add nsw i32 %1627, 1
  store i32 %1628, ptr @test_count, align 4, !tbaa !5
  %1629 = call i32 @s2n_mem_test_init_callbacks(ptr noundef nonnull %25) #11
  %1630 = call zeroext i1 @s2n_result_is_ok(i32 %1629)
  br i1 %1630, label %1654, label %1631

1631:                                             ; preds = %1626
  %1632 = tail call ptr @__errno_location() #12
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1635 = call i32 @s2n_print_stacktrace(ptr noundef %1634) #11
  %1636 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1637 = trunc nuw i8 %1636 to i1
  br i1 %1637, label %1638, label %1642

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

1642:                                             ; preds = %1638, %1631
  br label %1643

1643:                                             ; preds = %1638, %1642
  %.str.5.sink1027 = phi ptr [ @.str.5, %1642 ], [ @.str.2, %1638 ]
  store i32 %1633, ptr %1632, align 4, !tbaa !5
  %1644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1645 = load i32, ptr @test_count, align 4, !tbaa !5
  %1646 = load i32, ptr %1059, align 4, !tbaa !5
  %1647 = call ptr @s2n_strerror(i32 noundef %1646, ptr noundef nonnull @.str.4) #11
  %1648 = load i32, ptr %1059, align 4, !tbaa !5
  %1649 = call ptr @s2n_strerror_debug(i32 noundef %1648, ptr noundef nonnull @.str.4) #11
  %1650 = load i32, ptr %1632, align 4, !tbaa !5
  %1651 = call ptr @strerror(i32 noundef %1650) #11
  %1652 = load i32, ptr %1632, align 4, !tbaa !5
  %1653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1644, ptr noundef nonnull %.str.5.sink1027, i32 noundef %1645, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %1647, ptr noundef %1649, ptr noundef %1651, i32 noundef %1652) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1654:                                             ; preds = %1626
  %1655 = load i32, ptr @test_count, align 4, !tbaa !5
  %1656 = add nsw i32 %1655, 1
  store i32 %1656, ptr @test_count, align 4, !tbaa !5
  %1657 = load ptr, ptr %22, align 8, !tbaa !9
  %1658 = load ptr, ptr %21, align 8, !tbaa !9
  %1659 = call i32 @s2n_test_basic_recv(ptr noundef %1657, ptr noundef %1658)
  %1660 = call zeroext i1 @s2n_result_is_error(i32 %1659)
  br i1 %1660, label %1684, label %1661

1661:                                             ; preds = %1654
  %1662 = tail call ptr @__errno_location() #12
  %1663 = load i32, ptr %1662, align 4, !tbaa !5
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = call i32 @s2n_print_stacktrace(ptr noundef %1664) #11
  %1666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1667 = trunc nuw i8 %1666 to i1
  br i1 %1667, label %1668, label %1672

1668:                                             ; preds = %1661
  %1669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1670 = call i32 @fileno(ptr noundef %1669) #11
  %1671 = call i32 @isatty(i32 noundef %1670) #11
  %.not447 = icmp eq i32 %1671, 0
  br i1 %.not447, label %1672, label %1673

1672:                                             ; preds = %1668, %1661
  br label %1673

1673:                                             ; preds = %1668, %1672
  %.str.5.sink1036 = phi ptr [ @.str.5, %1672 ], [ @.str.2, %1668 ]
  store i32 %1663, ptr %1662, align 4, !tbaa !5
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = load i32, ptr @test_count, align 4, !tbaa !5
  %1676 = load i32, ptr %1059, align 4, !tbaa !5
  %1677 = call ptr @s2n_strerror(i32 noundef %1676, ptr noundef nonnull @.str.4) #11
  %1678 = load i32, ptr %1059, align 4, !tbaa !5
  %1679 = call ptr @s2n_strerror_debug(i32 noundef %1678, ptr noundef nonnull @.str.4) #11
  %1680 = load i32, ptr %1662, align 4, !tbaa !5
  %1681 = call ptr @strerror(i32 noundef %1680) #11
  %1682 = load i32, ptr %1662, align 4, !tbaa !5
  %1683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1674, ptr noundef nonnull %.str.5.sink1036, i32 noundef %1675, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 343, ptr noundef %1677, ptr noundef %1679, ptr noundef %1681, i32 noundef %1682) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1684:                                             ; preds = %1654
  %1685 = load i32, ptr @test_count, align 4, !tbaa !5
  %1686 = add nsw i32 %1685, 1
  store i32 %1686, ptr @test_count, align 4, !tbaa !5
  %1687 = load i32, ptr %1059, align 4, !tbaa !5
  %1688 = icmp eq i32 %1687, 335544322
  br i1 %1688, label %1712, label %1689

1689:                                             ; preds = %1684
  %1690 = tail call ptr @__errno_location() #12
  %1691 = load i32, ptr %1690, align 4, !tbaa !5
  %1692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1693 = call i32 @s2n_print_stacktrace(ptr noundef %1692) #11
  %1694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1695 = trunc nuw i8 %1694 to i1
  br i1 %1695, label %1696, label %1700

1696:                                             ; preds = %1689
  %1697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1698 = call i32 @fileno(ptr noundef %1697) #11
  %1699 = call i32 @isatty(i32 noundef %1698) #11
  %.not448 = icmp eq i32 %1699, 0
  br i1 %.not448, label %1700, label %1701

1700:                                             ; preds = %1696, %1689
  br label %1701

1701:                                             ; preds = %1696, %1700
  %.str.5.sink1045 = phi ptr [ @.str.5, %1700 ], [ @.str.2, %1696 ]
  store i32 %1691, ptr %1690, align 4, !tbaa !5
  %1702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1703 = load i32, ptr @test_count, align 4, !tbaa !5
  %1704 = load i32, ptr %1059, align 4, !tbaa !5
  %1705 = call ptr @s2n_strerror(i32 noundef %1704, ptr noundef nonnull @.str.4) #11
  %1706 = load i32, ptr %1059, align 4, !tbaa !5
  %1707 = call ptr @s2n_strerror_debug(i32 noundef %1706, ptr noundef nonnull @.str.4) #11
  %1708 = load i32, ptr %1690, align 4, !tbaa !5
  %1709 = call ptr @strerror(i32 noundef %1708) #11
  %1710 = load i32, ptr %1690, align 4, !tbaa !5
  %1711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1702, ptr noundef nonnull %.str.5.sink1045, i32 noundef %1703, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 343, ptr noundef %1705, ptr noundef %1707, ptr noundef %1709, i32 noundef %1710) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1712:                                             ; preds = %1684
  %1713 = add nsw i32 %1685, 2
  store i32 %1713, ptr @test_count, align 4, !tbaa !5
  %1714 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %1715 = icmp eq ptr %1714, null
  br i1 %1715, label %1716, label %1739

1716:                                             ; preds = %1712
  %1717 = tail call ptr @__errno_location() #12
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = call i32 @s2n_print_stacktrace(ptr noundef %1719) #11
  %1721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1722 = trunc nuw i8 %1721 to i1
  br i1 %1722, label %1723, label %1727

1723:                                             ; preds = %1716
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = call i32 @fileno(ptr noundef %1724) #11
  %1726 = call i32 @isatty(i32 noundef %1725) #11
  %.not451 = icmp eq i32 %1726, 0
  br i1 %.not451, label %1727, label %1728

1727:                                             ; preds = %1723, %1716
  br label %1728

1728:                                             ; preds = %1723, %1727
  %.str.5.sink1054 = phi ptr [ @.str.5, %1727 ], [ @.str.2, %1723 ]
  store i32 %1718, ptr %1717, align 4, !tbaa !5
  %1729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1730 = load i32, ptr @test_count, align 4, !tbaa !5
  %1731 = load i32, ptr %1059, align 4, !tbaa !5
  %1732 = call ptr @s2n_strerror(i32 noundef %1731, ptr noundef nonnull @.str.4) #11
  %1733 = load i32, ptr %1059, align 4, !tbaa !5
  %1734 = call ptr @s2n_strerror_debug(i32 noundef %1733, ptr noundef nonnull @.str.4) #11
  %1735 = load i32, ptr %1717, align 4, !tbaa !5
  %1736 = call ptr @strerror(i32 noundef %1735) #11
  %1737 = load i32, ptr %1717, align 4, !tbaa !5
  %1738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1729, ptr noundef nonnull %.str.5.sink1054, i32 noundef %1730, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 343, ptr noundef %1732, ptr noundef %1734, ptr noundef %1736, i32 noundef %1737) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1739:                                             ; preds = %1712
  store i32 0, ptr %1059, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %1740 = tail call ptr @__errno_location() #12
  store i32 0, ptr %1740, align 4, !tbaa !5
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = add nsw i32 %1741, 1
  store i32 %1742, ptr @test_count, align 4, !tbaa !5
  %1743 = load i64, ptr @tickets_count, align 8, !tbaa !15
  %1744 = icmp eq i64 %1743, 0
  br i1 %1744, label %1767, label %1745

1745:                                             ; preds = %1739
  %1746 = load i32, ptr %1740, align 4, !tbaa !5
  %1747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1748 = call i32 @s2n_print_stacktrace(ptr noundef %1747) #11
  %1749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1750 = trunc nuw i8 %1749 to i1
  br i1 %1750, label %1751, label %1755

1751:                                             ; preds = %1745
  %1752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1753 = call i32 @fileno(ptr noundef %1752) #11
  %1754 = call i32 @isatty(i32 noundef %1753) #11
  %.not449 = icmp eq i32 %1754, 0
  br i1 %.not449, label %1755, label %1756

1755:                                             ; preds = %1751, %1745
  br label %1756

1756:                                             ; preds = %1751, %1755
  %.str.5.sink1063 = phi ptr [ @.str.5, %1755 ], [ @.str.2, %1751 ]
  store i32 %1746, ptr %1740, align 4, !tbaa !5
  %1757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1758 = load i32, ptr @test_count, align 4, !tbaa !5
  %1759 = load i32, ptr %1059, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror(i32 noundef %1759, ptr noundef nonnull @.str.4) #11
  %1761 = load i32, ptr %1059, align 4, !tbaa !5
  %1762 = call ptr @s2n_strerror_debug(i32 noundef %1761, ptr noundef nonnull @.str.4) #11
  %1763 = load i32, ptr %1740, align 4, !tbaa !5
  %1764 = call ptr @strerror(i32 noundef %1763) #11
  %1765 = load i32, ptr %1740, align 4, !tbaa !5
  %1766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1757, ptr noundef nonnull %.str.5.sink1063, i32 noundef %1758, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 344, ptr noundef %1760, ptr noundef %1762, ptr noundef %1764, i32 noundef %1765) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1767:                                             ; preds = %1739
  %1768 = add nsw i32 %1741, 2
  store i32 %1768, ptr @test_count, align 4, !tbaa !5
  %1769 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0) #11
  %1770 = call zeroext i1 @s2n_result_is_ok(i32 %1769)
  br i1 %1770, label %1793, label %1771

1771:                                             ; preds = %1767
  %1772 = load i32, ptr %1740, align 4, !tbaa !5
  %1773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1774 = call i32 @s2n_print_stacktrace(ptr noundef %1773) #11
  %1775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1776 = trunc nuw i8 %1775 to i1
  br i1 %1776, label %1777, label %1781

1777:                                             ; preds = %1771
  %1778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1779 = call i32 @fileno(ptr noundef %1778) #11
  %1780 = call i32 @isatty(i32 noundef %1779) #11
  %.not450 = icmp eq i32 %1780, 0
  br i1 %.not450, label %1781, label %1782

1781:                                             ; preds = %1777, %1771
  br label %1782

1782:                                             ; preds = %1777, %1781
  %.str.5.sink1072 = phi ptr [ @.str.5, %1781 ], [ @.str.2, %1777 ]
  store i32 %1772, ptr %1740, align 4, !tbaa !5
  %1783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1784 = load i32, ptr @test_count, align 4, !tbaa !5
  %1785 = load i32, ptr %1059, align 4, !tbaa !5
  %1786 = call ptr @s2n_strerror(i32 noundef %1785, ptr noundef nonnull @.str.4) #11
  %1787 = load i32, ptr %1059, align 4, !tbaa !5
  %1788 = call ptr @s2n_strerror_debug(i32 noundef %1787, ptr noundef nonnull @.str.4) #11
  %1789 = load i32, ptr %1740, align 4, !tbaa !5
  %1790 = call ptr @strerror(i32 noundef %1789) #11
  %1791 = load i32, ptr %1740, align 4, !tbaa !5
  %1792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1783, ptr noundef nonnull %.str.5.sink1072, i32 noundef %1784, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 345, ptr noundef %1786, ptr noundef %1788, ptr noundef %1790, i32 noundef %1791) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1793:                                             ; preds = %1767
  %1794 = call i32 @s2n_mem_test_free_callbacks(ptr noundef nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #11
  %1795 = call i32 @s2n_stuffer_free(ptr noundef nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %24) #11
  %1796 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %23) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %23) #11
  %1797 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  %1798 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  %1799 = add nuw nsw i64 %.0374514, 1
  %exitcond528.not = icmp eq i64 %1799, 7
  br i1 %exitcond528.not, label %1498, label %1506, !llvm.loop !59

1800:                                             ; preds = %1498
  %1801 = load i32, ptr %1740, align 4, !tbaa !5
  %1802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1803 = call i32 @s2n_print_stacktrace(ptr noundef %1802) #11
  %1804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1805 = trunc nuw i8 %1804 to i1
  br i1 %1805, label %1806, label %1810

1806:                                             ; preds = %1800
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = call i32 @fileno(ptr noundef %1807) #11
  %1809 = call i32 @isatty(i32 noundef %1808) #11
  %.not = icmp eq i32 %1809, 0
  br i1 %.not, label %1810, label %1811

1810:                                             ; preds = %1806, %1800
  br label %1811

1811:                                             ; preds = %1806, %1810
  %.str.5.sink1081 = phi ptr [ @.str.5, %1810 ], [ @.str.2, %1806 ]
  store i32 %1801, ptr %1740, align 4, !tbaa !5
  %1812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1813 = load i32, ptr @test_count, align 4, !tbaa !5
  %1814 = load i32, ptr %1059, align 4, !tbaa !5
  %1815 = call ptr @s2n_strerror(i32 noundef %1814, ptr noundef nonnull @.str.4) #11
  %1816 = load i32, ptr %1059, align 4, !tbaa !5
  %1817 = call ptr @s2n_strerror_debug(i32 noundef %1816, ptr noundef nonnull @.str.4) #11
  %1818 = load i32, ptr %1740, align 4, !tbaa !5
  %1819 = call ptr @strerror(i32 noundef %1818) #11
  %1820 = load i32, ptr %1740, align 4, !tbaa !5
  %1821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1812, ptr noundef nonnull %.str.5.sink1081, i32 noundef %1813, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 363, ptr noundef %1815, ptr noundef %1817, ptr noundef %1819, i32 noundef %1820) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1822:                                             ; preds = %1498
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %29) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %29, i8 0, i64 40, i1 false)
  %1823 = load i32, ptr @test_count, align 4, !tbaa !5
  %1824 = add nsw i32 %1823, 1
  store i32 %1824, ptr @test_count, align 4, !tbaa !5
  %1825 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %29, i32 noundef 0) #11
  %1826 = icmp eq i32 %1825, -1
  br i1 %1826, label %1827, label %1849

1827:                                             ; preds = %1822
  %1828 = load i32, ptr %1740, align 4, !tbaa !5
  %1829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1830 = call i32 @s2n_print_stacktrace(ptr noundef %1829) #11
  %1831 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1832 = trunc nuw i8 %1831 to i1
  br i1 %1832, label %1833, label %1837

1833:                                             ; preds = %1827
  %1834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1835 = call i32 @fileno(ptr noundef %1834) #11
  %1836 = call i32 @isatty(i32 noundef %1835) #11
  %.not442 = icmp eq i32 %1836, 0
  br i1 %.not442, label %1837, label %1838

1837:                                             ; preds = %1833, %1827
  br label %1838

1838:                                             ; preds = %1833, %1837
  %.str.5.sink1090 = phi ptr [ @.str.5, %1837 ], [ @.str.2, %1833 ]
  store i32 %1828, ptr %1740, align 4, !tbaa !5
  %1839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1840 = load i32, ptr @test_count, align 4, !tbaa !5
  %1841 = load i32, ptr %1059, align 4, !tbaa !5
  %1842 = call ptr @s2n_strerror(i32 noundef %1841, ptr noundef nonnull @.str.4) #11
  %1843 = load i32, ptr %1059, align 4, !tbaa !5
  %1844 = call ptr @s2n_strerror_debug(i32 noundef %1843, ptr noundef nonnull @.str.4) #11
  %1845 = load i32, ptr %1740, align 4, !tbaa !5
  %1846 = call ptr @strerror(i32 noundef %1845) #11
  %1847 = load i32, ptr %1740, align 4, !tbaa !5
  %1848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1839, ptr noundef nonnull %.str.5.sink1090, i32 noundef %1840, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 367, ptr noundef %1842, ptr noundef %1844, ptr noundef %1846, i32 noundef %1847) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1849:                                             ; preds = %1822
  %1850 = load i32, ptr @test_count, align 4, !tbaa !5
  %1851 = add nsw i32 %1850, 1
  store i32 %1851, ptr @test_count, align 4, !tbaa !5
  %1852 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %29, i8 noundef zeroext 24) #11
  %1853 = icmp eq i32 %1852, -1
  br i1 %1853, label %1854, label %1876

1854:                                             ; preds = %1849
  %1855 = load i32, ptr %1740, align 4, !tbaa !5
  %1856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1857 = call i32 @s2n_print_stacktrace(ptr noundef %1856) #11
  %1858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1859 = trunc nuw i8 %1858 to i1
  br i1 %1859, label %1860, label %1864

1860:                                             ; preds = %1854
  %1861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1862 = call i32 @fileno(ptr noundef %1861) #11
  %1863 = call i32 @isatty(i32 noundef %1862) #11
  %.not441 = icmp eq i32 %1863, 0
  br i1 %.not441, label %1864, label %1865

1864:                                             ; preds = %1860, %1854
  br label %1865

1865:                                             ; preds = %1860, %1864
  %.str.5.sink1099 = phi ptr [ @.str.5, %1864 ], [ @.str.2, %1860 ]
  store i32 %1855, ptr %1740, align 4, !tbaa !5
  %1866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1867 = load i32, ptr @test_count, align 4, !tbaa !5
  %1868 = load i32, ptr %1059, align 4, !tbaa !5
  %1869 = call ptr @s2n_strerror(i32 noundef %1868, ptr noundef nonnull @.str.4) #11
  %1870 = load i32, ptr %1059, align 4, !tbaa !5
  %1871 = call ptr @s2n_strerror_debug(i32 noundef %1870, ptr noundef nonnull @.str.4) #11
  %1872 = load i32, ptr %1740, align 4, !tbaa !5
  %1873 = call ptr @strerror(i32 noundef %1872) #11
  %1874 = load i32, ptr %1740, align 4, !tbaa !5
  %1875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1866, ptr noundef nonnull %.str.5.sink1099, i32 noundef %1867, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %1869, ptr noundef %1871, ptr noundef %1873, i32 noundef %1874) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1876:                                             ; preds = %1849
  %1877 = load i32, ptr @test_count, align 4, !tbaa !5
  %1878 = add nsw i32 %1877, 1
  store i32 %1878, ptr @test_count, align 4, !tbaa !5
  %1879 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %29, i32 noundef 3001) #11
  %1880 = icmp eq i32 %1879, -1
  br i1 %1880, label %1881, label %1903

1881:                                             ; preds = %1876
  %1882 = load i32, ptr %1740, align 4, !tbaa !5
  %1883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1884 = call i32 @s2n_print_stacktrace(ptr noundef %1883) #11
  %1885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1886 = trunc nuw i8 %1885 to i1
  br i1 %1886, label %1887, label %1891

1887:                                             ; preds = %1881
  %1888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1889 = call i32 @fileno(ptr noundef %1888) #11
  %1890 = call i32 @isatty(i32 noundef %1889) #11
  %.not440 = icmp eq i32 %1890, 0
  br i1 %.not440, label %1891, label %1892

1891:                                             ; preds = %1887, %1881
  br label %1892

1892:                                             ; preds = %1887, %1891
  %.str.5.sink1108 = phi ptr [ @.str.5, %1891 ], [ @.str.2, %1887 ]
  store i32 %1882, ptr %1740, align 4, !tbaa !5
  %1893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1894 = load i32, ptr @test_count, align 4, !tbaa !5
  %1895 = load i32, ptr %1059, align 4, !tbaa !5
  %1896 = call ptr @s2n_strerror(i32 noundef %1895, ptr noundef nonnull @.str.4) #11
  %1897 = load i32, ptr %1059, align 4, !tbaa !5
  %1898 = call ptr @s2n_strerror_debug(i32 noundef %1897, ptr noundef nonnull @.str.4) #11
  %1899 = load i32, ptr %1740, align 4, !tbaa !5
  %1900 = call ptr @strerror(i32 noundef %1899) #11
  %1901 = load i32, ptr %1740, align 4, !tbaa !5
  %1902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1893, ptr noundef nonnull %.str.5.sink1108, i32 noundef %1894, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 369, ptr noundef %1896, ptr noundef %1898, ptr noundef %1900, i32 noundef %1901) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1903:                                             ; preds = %1876
  %1904 = load i32, ptr @test_count, align 4, !tbaa !5
  %1905 = add nsw i32 %1904, 1
  store i32 %1905, ptr @test_count, align 4, !tbaa !5
  %1906 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %29, i32 noundef 3001) #11
  %1907 = icmp eq i32 %1906, -1
  br i1 %1907, label %1908, label %1930

1908:                                             ; preds = %1903
  %1909 = load i32, ptr %1740, align 4, !tbaa !5
  %1910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1911 = call i32 @s2n_print_stacktrace(ptr noundef %1910) #11
  %1912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1913 = trunc nuw i8 %1912 to i1
  br i1 %1913, label %1914, label %1918

1914:                                             ; preds = %1908
  %1915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1916 = call i32 @fileno(ptr noundef %1915) #11
  %1917 = call i32 @isatty(i32 noundef %1916) #11
  %.not439 = icmp eq i32 %1917, 0
  br i1 %.not439, label %1918, label %1919

1918:                                             ; preds = %1914, %1908
  br label %1919

1919:                                             ; preds = %1914, %1918
  %.str.5.sink1117 = phi ptr [ @.str.5, %1918 ], [ @.str.2, %1914 ]
  store i32 %1909, ptr %1740, align 4, !tbaa !5
  %1920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1921 = load i32, ptr @test_count, align 4, !tbaa !5
  %1922 = load i32, ptr %1059, align 4, !tbaa !5
  %1923 = call ptr @s2n_strerror(i32 noundef %1922, ptr noundef nonnull @.str.4) #11
  %1924 = load i32, ptr %1059, align 4, !tbaa !5
  %1925 = call ptr @s2n_strerror_debug(i32 noundef %1924, ptr noundef nonnull @.str.4) #11
  %1926 = load i32, ptr %1740, align 4, !tbaa !5
  %1927 = call ptr @strerror(i32 noundef %1926) #11
  %1928 = load i32, ptr %1740, align 4, !tbaa !5
  %1929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1920, ptr noundef nonnull %.str.5.sink1117, i32 noundef %1921, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %1923, ptr noundef %1925, ptr noundef %1927, i32 noundef %1928) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1930:                                             ; preds = %1903
  %1931 = load i32, ptr @test_count, align 4, !tbaa !5
  %1932 = add nsw i32 %1931, 1
  store i32 %1932, ptr @test_count, align 4, !tbaa !5
  %1933 = load ptr, ptr %27, align 8, !tbaa !9
  %1934 = call i32 @s2n_test_send_records(ptr noundef %1933, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %29, i32 noundef 2)
  %1935 = call zeroext i1 @s2n_result_is_ok(i32 %1934)
  br i1 %1935, label %1958, label %1936

1936:                                             ; preds = %1930
  %1937 = load i32, ptr %1740, align 4, !tbaa !5
  %1938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1939 = call i32 @s2n_print_stacktrace(ptr noundef %1938) #11
  %1940 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1941 = trunc nuw i8 %1940 to i1
  br i1 %1941, label %1942, label %1946

1942:                                             ; preds = %1936
  %1943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1944 = call i32 @fileno(ptr noundef %1943) #11
  %1945 = call i32 @isatty(i32 noundef %1944) #11
  %.not384 = icmp eq i32 %1945, 0
  br i1 %.not384, label %1946, label %1947

1946:                                             ; preds = %1942, %1936
  br label %1947

1947:                                             ; preds = %1942, %1946
  %.str.5.sink1126 = phi ptr [ @.str.5, %1946 ], [ @.str.2, %1942 ]
  store i32 %1937, ptr %1740, align 4, !tbaa !5
  %1948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1949 = load i32, ptr @test_count, align 4, !tbaa !5
  %1950 = load i32, ptr %1059, align 4, !tbaa !5
  %1951 = call ptr @s2n_strerror(i32 noundef %1950, ptr noundef nonnull @.str.4) #11
  %1952 = load i32, ptr %1059, align 4, !tbaa !5
  %1953 = call ptr @s2n_strerror_debug(i32 noundef %1952, ptr noundef nonnull @.str.4) #11
  %1954 = load i32, ptr %1740, align 4, !tbaa !5
  %1955 = call ptr @strerror(i32 noundef %1954) #11
  %1956 = load i32, ptr %1740, align 4, !tbaa !5
  %1957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1948, ptr noundef nonnull %.str.5.sink1126, i32 noundef %1949, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %1951, ptr noundef %1953, ptr noundef %1955, i32 noundef %1956) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1958:                                             ; preds = %1930
  %1959 = load i32, ptr @test_count, align 4, !tbaa !5
  %1960 = add nsw i32 %1959, 1
  store i32 %1960, ptr @test_count, align 4, !tbaa !5
  %1961 = load ptr, ptr %27, align 8, !tbaa !9
  %1962 = getelementptr inbounds i8, ptr %1961, i64 148
  %1963 = load i32, ptr %1962, align 4, !tbaa !28
  %1964 = call i32 @s2n_update_application_traffic_keys(ptr noundef %1961, i32 noundef %1963, i32 noundef 0) #11
  %1965 = icmp eq i32 %1964, -1
  br i1 %1965, label %1966, label %1988

1966:                                             ; preds = %1958
  %1967 = load i32, ptr %1740, align 4, !tbaa !5
  %1968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1969 = call i32 @s2n_print_stacktrace(ptr noundef %1968) #11
  %1970 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1971 = trunc nuw i8 %1970 to i1
  br i1 %1971, label %1972, label %1976

1972:                                             ; preds = %1966
  %1973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1974 = call i32 @fileno(ptr noundef %1973) #11
  %1975 = call i32 @isatty(i32 noundef %1974) #11
  %.not438 = icmp eq i32 %1975, 0
  br i1 %.not438, label %1976, label %1977

1976:                                             ; preds = %1972, %1966
  br label %1977

1977:                                             ; preds = %1972, %1976
  %.str.5.sink1135 = phi ptr [ @.str.5, %1976 ], [ @.str.2, %1972 ]
  store i32 %1967, ptr %1740, align 4, !tbaa !5
  %1978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1979 = load i32, ptr @test_count, align 4, !tbaa !5
  %1980 = load i32, ptr %1059, align 4, !tbaa !5
  %1981 = call ptr @s2n_strerror(i32 noundef %1980, ptr noundef nonnull @.str.4) #11
  %1982 = load i32, ptr %1059, align 4, !tbaa !5
  %1983 = call ptr @s2n_strerror_debug(i32 noundef %1982, ptr noundef nonnull @.str.4) #11
  %1984 = load i32, ptr %1740, align 4, !tbaa !5
  %1985 = call ptr @strerror(i32 noundef %1984) #11
  %1986 = load i32, ptr %1740, align 4, !tbaa !5
  %1987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1978, ptr noundef nonnull %.str.5.sink1135, i32 noundef %1979, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 372, ptr noundef %1981, ptr noundef %1983, ptr noundef %1985, i32 noundef %1986) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1988:                                             ; preds = %1958
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #11
  store i8 0, ptr %30, align 1
  %1989 = load i32, ptr @test_count, align 4, !tbaa !5
  %1990 = add nsw i32 %1989, 1
  store i32 %1990, ptr @test_count, align 4, !tbaa !5
  %1991 = call i32 @s2n_mem_test_init_callbacks(ptr noundef nonnull %30) #11
  %1992 = call zeroext i1 @s2n_result_is_ok(i32 %1991)
  br i1 %1992, label %2015, label %1993

1993:                                             ; preds = %1988
  %1994 = load i32, ptr %1740, align 4, !tbaa !5
  %1995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1996 = call i32 @s2n_print_stacktrace(ptr noundef %1995) #11
  %1997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1998 = trunc nuw i8 %1997 to i1
  br i1 %1998, label %1999, label %2003

1999:                                             ; preds = %1993
  %2000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2001 = call i32 @fileno(ptr noundef %2000) #11
  %2002 = call i32 @isatty(i32 noundef %2001) #11
  %.not385 = icmp eq i32 %2002, 0
  br i1 %.not385, label %2003, label %2004

2003:                                             ; preds = %1999, %1993
  br label %2004

2004:                                             ; preds = %1999, %2003
  %.str.5.sink1144 = phi ptr [ @.str.5, %2003 ], [ @.str.2, %1999 ]
  store i32 %1994, ptr %1740, align 4, !tbaa !5
  %2005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2006 = load i32, ptr @test_count, align 4, !tbaa !5
  %2007 = load i32, ptr %1059, align 4, !tbaa !5
  %2008 = call ptr @s2n_strerror(i32 noundef %2007, ptr noundef nonnull @.str.4) #11
  %2009 = load i32, ptr %1059, align 4, !tbaa !5
  %2010 = call ptr @s2n_strerror_debug(i32 noundef %2009, ptr noundef nonnull @.str.4) #11
  %2011 = load i32, ptr %1740, align 4, !tbaa !5
  %2012 = call ptr @strerror(i32 noundef %2011) #11
  %2013 = load i32, ptr %1740, align 4, !tbaa !5
  %2014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2005, ptr noundef nonnull %.str.5.sink1144, i32 noundef %2006, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 375, ptr noundef %2008, ptr noundef %2010, ptr noundef %2012, i32 noundef %2013) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2015:                                             ; preds = %1988
  %2016 = load i32, ptr @test_count, align 4, !tbaa !5
  %2017 = add nsw i32 %2016, 1
  store i32 %2017, ptr @test_count, align 4, !tbaa !5
  %2018 = load ptr, ptr %27, align 8, !tbaa !9
  %2019 = load ptr, ptr %26, align 8, !tbaa !9
  %2020 = call i32 @s2n_test_basic_recv(ptr noundef %2018, ptr noundef %2019)
  %2021 = call zeroext i1 @s2n_result_is_error(i32 %2020)
  br i1 %2021, label %2044, label %2022

2022:                                             ; preds = %2015
  %2023 = load i32, ptr %1740, align 4, !tbaa !5
  %2024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2025 = call i32 @s2n_print_stacktrace(ptr noundef %2024) #11
  %2026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2027 = trunc nuw i8 %2026 to i1
  br i1 %2027, label %2028, label %2032

2028:                                             ; preds = %2022
  %2029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2030 = call i32 @fileno(ptr noundef %2029) #11
  %2031 = call i32 @isatty(i32 noundef %2030) #11
  %.not386 = icmp eq i32 %2031, 0
  br i1 %.not386, label %2032, label %2033

2032:                                             ; preds = %2028, %2022
  br label %2033

2033:                                             ; preds = %2028, %2032
  %.str.5.sink1153 = phi ptr [ @.str.5, %2032 ], [ @.str.2, %2028 ]
  store i32 %2023, ptr %1740, align 4, !tbaa !5
  %2034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2035 = load i32, ptr @test_count, align 4, !tbaa !5
  %2036 = load i32, ptr %1059, align 4, !tbaa !5
  %2037 = call ptr @s2n_strerror(i32 noundef %2036, ptr noundef nonnull @.str.4) #11
  %2038 = load i32, ptr %1059, align 4, !tbaa !5
  %2039 = call ptr @s2n_strerror_debug(i32 noundef %2038, ptr noundef nonnull @.str.4) #11
  %2040 = load i32, ptr %1740, align 4, !tbaa !5
  %2041 = call ptr @strerror(i32 noundef %2040) #11
  %2042 = load i32, ptr %1740, align 4, !tbaa !5
  %2043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2034, ptr noundef nonnull %.str.5.sink1153, i32 noundef %2035, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %2037, ptr noundef %2039, ptr noundef %2041, i32 noundef %2042) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2044:                                             ; preds = %2015
  %2045 = load i32, ptr @test_count, align 4, !tbaa !5
  %2046 = add nsw i32 %2045, 1
  store i32 %2046, ptr @test_count, align 4, !tbaa !5
  %2047 = load i32, ptr %1059, align 4, !tbaa !5
  %2048 = icmp eq i32 %2047, 335544322
  br i1 %2048, label %2071, label %2049

2049:                                             ; preds = %2044
  %2050 = load i32, ptr %1740, align 4, !tbaa !5
  %2051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2052 = call i32 @s2n_print_stacktrace(ptr noundef %2051) #11
  %2053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2054 = trunc nuw i8 %2053 to i1
  br i1 %2054, label %2055, label %2059

2055:                                             ; preds = %2049
  %2056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2057 = call i32 @fileno(ptr noundef %2056) #11
  %2058 = call i32 @isatty(i32 noundef %2057) #11
  %.not387 = icmp eq i32 %2058, 0
  br i1 %.not387, label %2059, label %2060

2059:                                             ; preds = %2055, %2049
  br label %2060

2060:                                             ; preds = %2055, %2059
  %.str.5.sink1162 = phi ptr [ @.str.5, %2059 ], [ @.str.2, %2055 ]
  store i32 %2050, ptr %1740, align 4, !tbaa !5
  %2061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2062 = load i32, ptr @test_count, align 4, !tbaa !5
  %2063 = load i32, ptr %1059, align 4, !tbaa !5
  %2064 = call ptr @s2n_strerror(i32 noundef %2063, ptr noundef nonnull @.str.4) #11
  %2065 = load i32, ptr %1059, align 4, !tbaa !5
  %2066 = call ptr @s2n_strerror_debug(i32 noundef %2065, ptr noundef nonnull @.str.4) #11
  %2067 = load i32, ptr %1740, align 4, !tbaa !5
  %2068 = call ptr @strerror(i32 noundef %2067) #11
  %2069 = load i32, ptr %1740, align 4, !tbaa !5
  %2070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2061, ptr noundef nonnull %.str.5.sink1162, i32 noundef %2062, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %2064, ptr noundef %2066, ptr noundef %2068, i32 noundef %2069) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2071:                                             ; preds = %2044
  %2072 = add nsw i32 %2045, 2
  store i32 %2072, ptr @test_count, align 4, !tbaa !5
  %2073 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %2074 = icmp eq ptr %2073, null
  br i1 %2074, label %2075, label %2097

2075:                                             ; preds = %2071
  %2076 = load i32, ptr %1740, align 4, !tbaa !5
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = call i32 @s2n_print_stacktrace(ptr noundef %2077) #11
  %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) #11
  %2084 = call i32 @isatty(i32 noundef %2083) #11
  %.not437 = icmp eq i32 %2084, 0
  br i1 %.not437, label %2085, label %2086

2085:                                             ; preds = %2081, %2075
  br label %2086

2086:                                             ; preds = %2081, %2085
  %.str.5.sink1171 = phi ptr [ @.str.5, %2085 ], [ @.str.2, %2081 ]
  store i32 %2076, ptr %1740, align 4, !tbaa !5
  %2087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2088 = load i32, ptr @test_count, align 4, !tbaa !5
  %2089 = load i32, ptr %1059, align 4, !tbaa !5
  %2090 = call ptr @s2n_strerror(i32 noundef %2089, ptr noundef nonnull @.str.4) #11
  %2091 = load i32, ptr %1059, align 4, !tbaa !5
  %2092 = call ptr @s2n_strerror_debug(i32 noundef %2091, ptr noundef nonnull @.str.4) #11
  %2093 = load i32, ptr %1740, align 4, !tbaa !5
  %2094 = call ptr @strerror(i32 noundef %2093) #11
  %2095 = load i32, ptr %1740, align 4, !tbaa !5
  %2096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2087, ptr noundef nonnull %.str.5.sink1171, i32 noundef %2088, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %2090, ptr noundef %2092, ptr noundef %2094, i32 noundef %2095) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2097:                                             ; preds = %2071
  store i32 0, ptr %1059, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1740, align 4, !tbaa !5
  %2098 = load i32, ptr @test_count, align 4, !tbaa !5
  %2099 = add nsw i32 %2098, 1
  store i32 %2099, ptr @test_count, align 4, !tbaa !5
  %2100 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0) #11
  %2101 = call zeroext i1 @s2n_result_is_ok(i32 %2100)
  br i1 %2101, label %2124, label %2102

2102:                                             ; preds = %2097
  %2103 = load i32, ptr %1740, align 4, !tbaa !5
  %2104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2105 = call i32 @s2n_print_stacktrace(ptr noundef %2104) #11
  %2106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2107 = trunc nuw i8 %2106 to i1
  br i1 %2107, label %2108, label %2112

2108:                                             ; preds = %2102
  %2109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2110 = call i32 @fileno(ptr noundef %2109) #11
  %2111 = call i32 @isatty(i32 noundef %2110) #11
  %.not388 = icmp eq i32 %2111, 0
  br i1 %.not388, label %2112, label %2113

2112:                                             ; preds = %2108, %2102
  br label %2113

2113:                                             ; preds = %2108, %2112
  %.str.5.sink1180 = phi ptr [ @.str.5, %2112 ], [ @.str.2, %2108 ]
  store i32 %2103, ptr %1740, align 4, !tbaa !5
  %2114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2115 = load i32, ptr @test_count, align 4, !tbaa !5
  %2116 = load i32, ptr %1059, align 4, !tbaa !5
  %2117 = call ptr @s2n_strerror(i32 noundef %2116, ptr noundef nonnull @.str.4) #11
  %2118 = load i32, ptr %1059, align 4, !tbaa !5
  %2119 = call ptr @s2n_strerror_debug(i32 noundef %2118, ptr noundef nonnull @.str.4) #11
  %2120 = load i32, ptr %1740, align 4, !tbaa !5
  %2121 = call ptr @strerror(i32 noundef %2120) #11
  %2122 = load i32, ptr %1740, align 4, !tbaa !5
  %2123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2114, ptr noundef nonnull %.str.5.sink1180, i32 noundef %2115, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 379, ptr noundef %2117, ptr noundef %2119, ptr noundef %2121, i32 noundef %2122) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2124:                                             ; preds = %2097
  %2125 = call i32 @s2n_mem_test_free_callbacks(ptr noundef nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #11
  %2126 = call i32 @s2n_stuffer_free(ptr noundef nonnull %29) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %29) #11
  %2127 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %28) #11
  %2128 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %27) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #11
  %2129 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %26) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #11
  br label %2130

2130:                                             ; preds = %2124, %2528
  %.0375516 = phi i64 [ 0, %2124 ], [ %2534, %2528 ]
  %2131 = getelementptr inbounds [7 x i32], ptr @__const.main.fragment_sizes, i64 0, i64 %.0375516
  %2132 = load i32, ptr %2131, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #11
  %2133 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %2133, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #11
  %2134 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %2134, ptr %32, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %33) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %33, i8 0, i64 80, i1 false)
  %2135 = load i32, ptr @test_count, align 4, !tbaa !5
  %2136 = add nsw i32 %2135, 1
  store i32 %2136, ptr @test_count, align 4, !tbaa !5
  %2137 = load ptr, ptr %31, align 8, !tbaa !9
  %2138 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %137, ptr noundef %2134, ptr noundef %2137, ptr noundef nonnull %33)
  %2139 = call zeroext i1 @s2n_result_is_ok(i32 %2138)
  br i1 %2139, label %2162, label %2140

2140:                                             ; preds = %2130
  %2141 = load i32, ptr %1740, align 4, !tbaa !5
  %2142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2143 = call i32 @s2n_print_stacktrace(ptr noundef %2142) #11
  %2144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2145 = trunc nuw i8 %2144 to i1
  br i1 %2145, label %2146, label %2150

2146:                                             ; preds = %2140
  %2147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2148 = call i32 @fileno(ptr noundef %2147) #11
  %2149 = call i32 @isatty(i32 noundef %2148) #11
  %.not424 = icmp eq i32 %2149, 0
  br i1 %.not424, label %2150, label %2151

2150:                                             ; preds = %2146, %2140
  br label %2151

2151:                                             ; preds = %2146, %2150
  %.str.5.sink1189 = phi ptr [ @.str.5, %2150 ], [ @.str.2, %2146 ]
  store i32 %2141, ptr %1740, align 4, !tbaa !5
  %2152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2153 = load i32, ptr @test_count, align 4, !tbaa !5
  %2154 = load i32, ptr %1059, align 4, !tbaa !5
  %2155 = call ptr @s2n_strerror(i32 noundef %2154, ptr noundef nonnull @.str.4) #11
  %2156 = load i32, ptr %1059, align 4, !tbaa !5
  %2157 = call ptr @s2n_strerror_debug(i32 noundef %2156, ptr noundef nonnull @.str.4) #11
  %2158 = load i32, ptr %1740, align 4, !tbaa !5
  %2159 = call ptr @strerror(i32 noundef %2158) #11
  %2160 = load i32, ptr %1740, align 4, !tbaa !5
  %2161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2152, ptr noundef nonnull %.str.5.sink1189, i32 noundef %2153, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 393, ptr noundef %2155, ptr noundef %2157, ptr noundef %2159, i32 noundef %2160) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2162:                                             ; preds = %2130
  %2163 = load ptr, ptr %31, align 8, !tbaa !9
  %2164 = load i32, ptr %2163, align 8
  %2165 = or i32 %2164, 8
  store i32 %2165, ptr %2163, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %34) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %34, i8 0, i64 40, i1 false)
  %2166 = load i32, ptr @test_count, align 4, !tbaa !5
  %2167 = add nsw i32 %2166, 1
  store i32 %2167, ptr @test_count, align 4, !tbaa !5
  %2168 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %34, i32 noundef 0) #11
  %2169 = icmp eq i32 %2168, -1
  br i1 %2169, label %2174, label %.preheader494.preheader

.preheader494.preheader:                          ; preds = %2162
  %2170 = load i32, ptr @test_count, align 4, !tbaa !5
  %2171 = add nsw i32 %2170, 1
  store i32 %2171, ptr @test_count, align 4, !tbaa !5
  %2172 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %34, i8 noundef zeroext 0) #11
  %2173 = icmp eq i32 %2172, -1
  br i1 %2173, label %2237, label %2259

2174:                                             ; preds = %2162
  %2175 = load i32, ptr %1740, align 4, !tbaa !5
  %2176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2177 = call i32 @s2n_print_stacktrace(ptr noundef %2176) #11
  %2178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2179 = trunc nuw i8 %2178 to i1
  br i1 %2179, label %2180, label %2184

2180:                                             ; preds = %2174
  %2181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2182 = call i32 @fileno(ptr noundef %2181) #11
  %2183 = call i32 @isatty(i32 noundef %2182) #11
  %.not436 = icmp eq i32 %2183, 0
  br i1 %.not436, label %2184, label %2185

2184:                                             ; preds = %2180, %2174
  br label %2185

2185:                                             ; preds = %2180, %2184
  %.str.5.sink1198 = phi ptr [ @.str.5, %2184 ], [ @.str.2, %2180 ]
  store i32 %2175, ptr %1740, align 4, !tbaa !5
  %2186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2187 = load i32, ptr @test_count, align 4, !tbaa !5
  %2188 = load i32, ptr %1059, align 4, !tbaa !5
  %2189 = call ptr @s2n_strerror(i32 noundef %2188, ptr noundef nonnull @.str.4) #11
  %2190 = load i32, ptr %1059, align 4, !tbaa !5
  %2191 = call ptr @s2n_strerror_debug(i32 noundef %2190, ptr noundef nonnull @.str.4) #11
  %2192 = load i32, ptr %1740, align 4, !tbaa !5
  %2193 = call ptr @strerror(i32 noundef %2192) #11
  %2194 = load i32, ptr %1740, align 4, !tbaa !5
  %2195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2186, ptr noundef nonnull %.str.5.sink1198, i32 noundef %2187, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 400, ptr noundef %2189, ptr noundef %2191, ptr noundef %2193, i32 noundef %2194) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.preheader494.1:                                  ; preds = %2259
  %2196 = load i32, ptr @test_count, align 4, !tbaa !5
  %2197 = add nsw i32 %2196, 1
  store i32 %2197, ptr @test_count, align 4, !tbaa !5
  %2198 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %34, i8 noundef zeroext 0) #11
  %2199 = icmp eq i32 %2198, -1
  br i1 %2199, label %2237, label %2200

2200:                                             ; preds = %.preheader494.1
  %2201 = load i32, ptr @test_count, align 4, !tbaa !5
  %2202 = add nsw i32 %2201, 1
  store i32 %2202, ptr @test_count, align 4, !tbaa !5
  %2203 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %34, i32 noundef 0) #11
  %2204 = icmp eq i32 %2203, -1
  br i1 %2204, label %2264, label %.preheader494.2

.preheader494.2:                                  ; preds = %2200
  %2205 = load i32, ptr @test_count, align 4, !tbaa !5
  %2206 = add nsw i32 %2205, 1
  store i32 %2206, ptr @test_count, align 4, !tbaa !5
  %2207 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %34, i8 noundef zeroext 0) #11
  %2208 = icmp eq i32 %2207, -1
  br i1 %2208, label %2237, label %2209

2209:                                             ; preds = %.preheader494.2
  %2210 = load i32, ptr @test_count, align 4, !tbaa !5
  %2211 = add nsw i32 %2210, 1
  store i32 %2211, ptr @test_count, align 4, !tbaa !5
  %2212 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %34, i32 noundef 0) #11
  %2213 = icmp eq i32 %2212, -1
  br i1 %2213, label %2264, label %.preheader494.3

.preheader494.3:                                  ; preds = %2209
  %2214 = load i32, ptr @test_count, align 4, !tbaa !5
  %2215 = add nsw i32 %2214, 1
  store i32 %2215, ptr @test_count, align 4, !tbaa !5
  %2216 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %34, i8 noundef zeroext 0) #11
  %2217 = icmp eq i32 %2216, -1
  br i1 %2217, label %2237, label %2218

2218:                                             ; preds = %.preheader494.3
  %2219 = load i32, ptr @test_count, align 4, !tbaa !5
  %2220 = add nsw i32 %2219, 1
  store i32 %2220, ptr @test_count, align 4, !tbaa !5
  %2221 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %34, i32 noundef 0) #11
  %2222 = icmp eq i32 %2221, -1
  br i1 %2222, label %2264, label %.preheader494.4

.preheader494.4:                                  ; preds = %2218
  %2223 = load i32, ptr @test_count, align 4, !tbaa !5
  %2224 = add nsw i32 %2223, 1
  store i32 %2224, ptr @test_count, align 4, !tbaa !5
  %2225 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %34, i8 noundef zeroext 0) #11
  %2226 = icmp eq i32 %2225, -1
  br i1 %2226, label %2237, label %2227

2227:                                             ; preds = %.preheader494.4
  %2228 = load i32, ptr @test_count, align 4, !tbaa !5
  %2229 = add nsw i32 %2228, 1
  store i32 %2229, ptr @test_count, align 4, !tbaa !5
  %2230 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %34, i32 noundef 0) #11
  %2231 = icmp eq i32 %2230, -1
  br i1 %2231, label %2264, label %2232

2232:                                             ; preds = %2227
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #11
  store i8 0, ptr %35, align 1
  %2233 = load i32, ptr @test_count, align 4, !tbaa !5
  %2234 = add nsw i32 %2233, 1
  store i32 %2234, ptr @test_count, align 4, !tbaa !5
  %2235 = call i32 @s2n_mem_test_init_callbacks(ptr noundef nonnull %35) #11
  %2236 = call zeroext i1 @s2n_result_is_ok(i32 %2235)
  br i1 %2236, label %2308, label %2286

2237:                                             ; preds = %.preheader494.4, %.preheader494.3, %.preheader494.2, %.preheader494.1, %.preheader494.preheader
  %2238 = load i32, ptr %1740, align 4, !tbaa !5
  %2239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2240 = call i32 @s2n_print_stacktrace(ptr noundef %2239) #11
  %2241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2242 = trunc nuw i8 %2241 to i1
  br i1 %2242, label %2243, label %2247

2243:                                             ; preds = %2237
  %2244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2245 = call i32 @fileno(ptr noundef %2244) #11
  %2246 = call i32 @isatty(i32 noundef %2245) #11
  %.not435 = icmp eq i32 %2246, 0
  br i1 %.not435, label %2247, label %2248

2247:                                             ; preds = %2243, %2237
  br label %2248

2248:                                             ; preds = %2243, %2247
  %.str.5.sink1207 = phi ptr [ @.str.5, %2247 ], [ @.str.2, %2243 ]
  store i32 %2238, ptr %1740, align 4, !tbaa !5
  %2249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2250 = load i32, ptr @test_count, align 4, !tbaa !5
  %2251 = load i32, ptr %1059, align 4, !tbaa !5
  %2252 = call ptr @s2n_strerror(i32 noundef %2251, ptr noundef nonnull @.str.4) #11
  %2253 = load i32, ptr %1059, align 4, !tbaa !5
  %2254 = call ptr @s2n_strerror_debug(i32 noundef %2253, ptr noundef nonnull @.str.4) #11
  %2255 = load i32, ptr %1740, align 4, !tbaa !5
  %2256 = call ptr @strerror(i32 noundef %2255) #11
  %2257 = load i32, ptr %1740, align 4, !tbaa !5
  %2258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2249, ptr noundef nonnull %.str.5.sink1207, i32 noundef %2250, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 402, ptr noundef %2252, ptr noundef %2254, ptr noundef %2256, i32 noundef %2257) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2259:                                             ; preds = %.preheader494.preheader
  %2260 = load i32, ptr @test_count, align 4, !tbaa !5
  %2261 = add nsw i32 %2260, 1
  store i32 %2261, ptr @test_count, align 4, !tbaa !5
  %2262 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %34, i32 noundef 0) #11
  %2263 = icmp eq i32 %2262, -1
  br i1 %2263, label %2264, label %.preheader494.1

2264:                                             ; preds = %2227, %2218, %2209, %2200, %2259
  %2265 = load i32, ptr %1740, align 4, !tbaa !5
  %2266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2267 = call i32 @s2n_print_stacktrace(ptr noundef %2266) #11
  %2268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2269 = trunc nuw i8 %2268 to i1
  br i1 %2269, label %2270, label %2274

2270:                                             ; preds = %2264
  %2271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2272 = call i32 @fileno(ptr noundef %2271) #11
  %2273 = call i32 @isatty(i32 noundef %2272) #11
  %.not434 = icmp eq i32 %2273, 0
  br i1 %.not434, label %2274, label %2275

2274:                                             ; preds = %2270, %2264
  br label %2275

2275:                                             ; preds = %2270, %2274
  %.str.5.sink1216 = phi ptr [ @.str.5, %2274 ], [ @.str.2, %2270 ]
  store i32 %2265, ptr %1740, align 4, !tbaa !5
  %2276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2277 = load i32, ptr @test_count, align 4, !tbaa !5
  %2278 = load i32, ptr %1059, align 4, !tbaa !5
  %2279 = call ptr @s2n_strerror(i32 noundef %2278, ptr noundef nonnull @.str.4) #11
  %2280 = load i32, ptr %1059, align 4, !tbaa !5
  %2281 = call ptr @s2n_strerror_debug(i32 noundef %2280, ptr noundef nonnull @.str.4) #11
  %2282 = load i32, ptr %1740, align 4, !tbaa !5
  %2283 = call ptr @strerror(i32 noundef %2282) #11
  %2284 = load i32, ptr %1740, align 4, !tbaa !5
  %2285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2276, ptr noundef nonnull %.str.5.sink1216, i32 noundef %2277, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 403, ptr noundef %2279, ptr noundef %2281, ptr noundef %2283, i32 noundef %2284) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2286:                                             ; preds = %2232
  %2287 = load i32, ptr %1740, align 4, !tbaa !5
  %2288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2289 = call i32 @s2n_print_stacktrace(ptr noundef %2288) #11
  %2290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2291 = trunc nuw i8 %2290 to i1
  br i1 %2291, label %2292, label %2296

2292:                                             ; preds = %2286
  %2293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2294 = call i32 @fileno(ptr noundef %2293) #11
  %2295 = call i32 @isatty(i32 noundef %2294) #11
  %.not425 = icmp eq i32 %2295, 0
  br i1 %.not425, label %2296, label %2297

2296:                                             ; preds = %2292, %2286
  br label %2297

2297:                                             ; preds = %2292, %2296
  %.str.5.sink1225 = phi ptr [ @.str.5, %2296 ], [ @.str.2, %2292 ]
  store i32 %2287, ptr %1740, align 4, !tbaa !5
  %2298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2299 = load i32, ptr @test_count, align 4, !tbaa !5
  %2300 = load i32, ptr %1059, align 4, !tbaa !5
  %2301 = call ptr @s2n_strerror(i32 noundef %2300, ptr noundef nonnull @.str.4) #11
  %2302 = load i32, ptr %1059, align 4, !tbaa !5
  %2303 = call ptr @s2n_strerror_debug(i32 noundef %2302, ptr noundef nonnull @.str.4) #11
  %2304 = load i32, ptr %1740, align 4, !tbaa !5
  %2305 = call ptr @strerror(i32 noundef %2304) #11
  %2306 = load i32, ptr %1740, align 4, !tbaa !5
  %2307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2298, ptr noundef nonnull %.str.5.sink1225, i32 noundef %2299, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 407, ptr noundef %2301, ptr noundef %2303, ptr noundef %2305, i32 noundef %2306) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2308:                                             ; preds = %2232
  %2309 = load i32, ptr @test_count, align 4, !tbaa !5
  %2310 = add nsw i32 %2309, 1
  store i32 %2310, ptr @test_count, align 4, !tbaa !5
  %2311 = load ptr, ptr %32, align 8, !tbaa !9
  %2312 = call i32 @s2n_test_send_records(ptr noundef %2311, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %34, i32 noundef %2132)
  %2313 = call zeroext i1 @s2n_result_is_ok(i32 %2312)
  br i1 %2313, label %2336, label %2314

2314:                                             ; preds = %2308
  %2315 = load i32, ptr %1740, align 4, !tbaa !5
  %2316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2317 = call i32 @s2n_print_stacktrace(ptr noundef %2316) #11
  %2318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2319 = trunc nuw i8 %2318 to i1
  br i1 %2319, label %2320, label %2324

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

2324:                                             ; preds = %2320, %2314
  br label %2325

2325:                                             ; preds = %2320, %2324
  %.str.5.sink1234 = phi ptr [ @.str.5, %2324 ], [ @.str.2, %2320 ]
  store i32 %2315, ptr %1740, align 4, !tbaa !5
  %2326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2327 = load i32, ptr @test_count, align 4, !tbaa !5
  %2328 = load i32, ptr %1059, align 4, !tbaa !5
  %2329 = call ptr @s2n_strerror(i32 noundef %2328, ptr noundef nonnull @.str.4) #11
  %2330 = load i32, ptr %1059, align 4, !tbaa !5
  %2331 = call ptr @s2n_strerror_debug(i32 noundef %2330, ptr noundef nonnull @.str.4) #11
  %2332 = load i32, ptr %1740, align 4, !tbaa !5
  %2333 = call ptr @strerror(i32 noundef %2332) #11
  %2334 = load i32, ptr %1740, align 4, !tbaa !5
  %2335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2326, ptr noundef nonnull %.str.5.sink1234, i32 noundef %2327, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 409, ptr noundef %2329, ptr noundef %2331, ptr noundef %2333, i32 noundef %2334) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2336:                                             ; preds = %2308
  %2337 = load i32, ptr @test_count, align 4, !tbaa !5
  %2338 = add nsw i32 %2337, 1
  store i32 %2338, ptr @test_count, align 4, !tbaa !5
  %2339 = load ptr, ptr %32, align 8, !tbaa !9
  %2340 = load ptr, ptr %31, align 8, !tbaa !9
  %2341 = call i32 @s2n_test_basic_recv(ptr noundef %2339, ptr noundef %2340)
  %2342 = call zeroext i1 @s2n_result_is_ok(i32 %2341)
  br i1 %2342, label %2365, label %2343

2343:                                             ; preds = %2336
  %2344 = load i32, ptr %1740, align 4, !tbaa !5
  %2345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2346 = call i32 @s2n_print_stacktrace(ptr noundef %2345) #11
  %2347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2348 = trunc nuw i8 %2347 to i1
  br i1 %2348, label %2349, label %2353

2349:                                             ; preds = %2343
  %2350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2351 = call i32 @fileno(ptr noundef %2350) #11
  %2352 = call i32 @isatty(i32 noundef %2351) #11
  %.not427 = icmp eq i32 %2352, 0
  br i1 %.not427, label %2353, label %2354

2353:                                             ; preds = %2349, %2343
  br label %2354

2354:                                             ; preds = %2349, %2353
  %.str.5.sink1243 = phi ptr [ @.str.5, %2353 ], [ @.str.2, %2349 ]
  store i32 %2344, ptr %1740, align 4, !tbaa !5
  %2355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2356 = load i32, ptr @test_count, align 4, !tbaa !5
  %2357 = load i32, ptr %1059, align 4, !tbaa !5
  %2358 = call ptr @s2n_strerror(i32 noundef %2357, ptr noundef nonnull @.str.4) #11
  %2359 = load i32, ptr %1059, align 4, !tbaa !5
  %2360 = call ptr @s2n_strerror_debug(i32 noundef %2359, ptr noundef nonnull @.str.4) #11
  %2361 = load i32, ptr %1740, align 4, !tbaa !5
  %2362 = call ptr @strerror(i32 noundef %2361) #11
  %2363 = load i32, ptr %1740, align 4, !tbaa !5
  %2364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2355, ptr noundef nonnull %.str.5.sink1243, i32 noundef %2356, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 410, ptr noundef %2358, ptr noundef %2360, ptr noundef %2362, i32 noundef %2363) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2365:                                             ; preds = %2336
  %2366 = load i32, ptr @test_count, align 4, !tbaa !5
  %2367 = add nsw i32 %2366, 1
  store i32 %2367, ptr @test_count, align 4, !tbaa !5
  %2368 = load i64, ptr @hello_request_count, align 8, !tbaa !15
  %2369 = icmp eq i64 %2368, 5
  br i1 %2369, label %2392, label %2370

2370:                                             ; preds = %2365
  %2371 = load i32, ptr %1740, align 4, !tbaa !5
  %2372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2373 = call i32 @s2n_print_stacktrace(ptr noundef %2372) #11
  %2374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2375 = trunc nuw i8 %2374 to i1
  br i1 %2375, label %2376, label %2380

2376:                                             ; preds = %2370
  %2377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2378 = call i32 @fileno(ptr noundef %2377) #11
  %2379 = call i32 @isatty(i32 noundef %2378) #11
  %.not428 = icmp eq i32 %2379, 0
  br i1 %.not428, label %2380, label %2381

2380:                                             ; preds = %2376, %2370
  br label %2381

2381:                                             ; preds = %2376, %2380
  %.str.5.sink1252 = phi ptr [ @.str.5, %2380 ], [ @.str.2, %2376 ]
  store i32 %2371, ptr %1740, align 4, !tbaa !5
  %2382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2383 = load i32, ptr @test_count, align 4, !tbaa !5
  %2384 = load i32, ptr %1059, align 4, !tbaa !5
  %2385 = call ptr @s2n_strerror(i32 noundef %2384, ptr noundef nonnull @.str.4) #11
  %2386 = load i32, ptr %1059, align 4, !tbaa !5
  %2387 = call ptr @s2n_strerror_debug(i32 noundef %2386, ptr noundef nonnull @.str.4) #11
  %2388 = load i32, ptr %1740, align 4, !tbaa !5
  %2389 = call ptr @strerror(i32 noundef %2388) #11
  %2390 = load i32, ptr %1740, align 4, !tbaa !5
  %2391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2382, ptr noundef nonnull %.str.5.sink1252, i32 noundef %2383, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 411, ptr noundef %2385, ptr noundef %2387, ptr noundef %2389, i32 noundef %2390) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2392:                                             ; preds = %2365
  %2393 = add nsw i32 %2366, 2
  store i32 %2393, ptr @test_count, align 4, !tbaa !5
  %2394 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0) #11
  %2395 = call zeroext i1 @s2n_result_is_ok(i32 %2394)
  br i1 %2395, label %2418, label %2396

2396:                                             ; preds = %2392
  %2397 = load i32, ptr %1740, align 4, !tbaa !5
  %2398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2399 = call i32 @s2n_print_stacktrace(ptr noundef %2398) #11
  %2400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2401 = trunc nuw i8 %2400 to i1
  br i1 %2401, label %2402, label %2406

2402:                                             ; preds = %2396
  %2403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2404 = call i32 @fileno(ptr noundef %2403) #11
  %2405 = call i32 @isatty(i32 noundef %2404) #11
  %.not429 = icmp eq i32 %2405, 0
  br i1 %.not429, label %2406, label %2407

2406:                                             ; preds = %2402, %2396
  br label %2407

2407:                                             ; preds = %2402, %2406
  %.str.5.sink1261 = phi ptr [ @.str.5, %2406 ], [ @.str.2, %2402 ]
  store i32 %2397, ptr %1740, align 4, !tbaa !5
  %2408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2409 = load i32, ptr @test_count, align 4, !tbaa !5
  %2410 = load i32, ptr %1059, align 4, !tbaa !5
  %2411 = call ptr @s2n_strerror(i32 noundef %2410, ptr noundef nonnull @.str.4) #11
  %2412 = load i32, ptr %1059, align 4, !tbaa !5
  %2413 = call ptr @s2n_strerror_debug(i32 noundef %2412, ptr noundef nonnull @.str.4) #11
  %2414 = load i32, ptr %1740, align 4, !tbaa !5
  %2415 = call ptr @strerror(i32 noundef %2414) #11
  %2416 = load i32, ptr %1740, align 4, !tbaa !5
  %2417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2408, ptr noundef nonnull %.str.5.sink1261, i32 noundef %2409, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 412, ptr noundef %2411, ptr noundef %2413, ptr noundef %2415, i32 noundef %2416) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2418:                                             ; preds = %2392
  %2419 = load i32, ptr @test_count, align 4, !tbaa !5
  %2420 = add nsw i32 %2419, 1
  store i32 %2420, ptr @test_count, align 4, !tbaa !5
  %2421 = load ptr, ptr %32, align 8, !tbaa !9
  %2422 = call i32 @s2n_test_send_records(ptr noundef %2421, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %34, i32 noundef %2132)
  %2423 = call zeroext i1 @s2n_result_is_ok(i32 %2422)
  br i1 %2423, label %2446, label %2424

2424:                                             ; preds = %2418
  %2425 = load i32, ptr %1740, align 4, !tbaa !5
  %2426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2427 = call i32 @s2n_print_stacktrace(ptr noundef %2426) #11
  %2428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2429 = trunc nuw i8 %2428 to i1
  br i1 %2429, label %2430, label %2434

2430:                                             ; preds = %2424
  %2431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2432 = call i32 @fileno(ptr noundef %2431) #11
  %2433 = call i32 @isatty(i32 noundef %2432) #11
  %.not430 = icmp eq i32 %2433, 0
  br i1 %.not430, label %2434, label %2435

2434:                                             ; preds = %2430, %2424
  br label %2435

2435:                                             ; preds = %2430, %2434
  %.str.5.sink1270 = phi ptr [ @.str.5, %2434 ], [ @.str.2, %2430 ]
  store i32 %2425, ptr %1740, align 4, !tbaa !5
  %2436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2437 = load i32, ptr @test_count, align 4, !tbaa !5
  %2438 = load i32, ptr %1059, align 4, !tbaa !5
  %2439 = call ptr @s2n_strerror(i32 noundef %2438, ptr noundef nonnull @.str.4) #11
  %2440 = load i32, ptr %1059, align 4, !tbaa !5
  %2441 = call ptr @s2n_strerror_debug(i32 noundef %2440, ptr noundef nonnull @.str.4) #11
  %2442 = load i32, ptr %1740, align 4, !tbaa !5
  %2443 = call ptr @strerror(i32 noundef %2442) #11
  %2444 = load i32, ptr %1740, align 4, !tbaa !5
  %2445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2436, ptr noundef nonnull %.str.5.sink1270, i32 noundef %2437, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 414, ptr noundef %2439, ptr noundef %2441, ptr noundef %2443, i32 noundef %2444) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2446:                                             ; preds = %2418
  %2447 = load i32, ptr @test_count, align 4, !tbaa !5
  %2448 = add nsw i32 %2447, 1
  store i32 %2448, ptr @test_count, align 4, !tbaa !5
  %2449 = load ptr, ptr %32, align 8, !tbaa !9
  %2450 = load ptr, ptr %31, align 8, !tbaa !9
  %2451 = call i32 @s2n_test_blocking_recv(ptr noundef %2449, ptr noundef %2450, ptr noundef nonnull %33)
  %2452 = call zeroext i1 @s2n_result_is_ok(i32 %2451)
  br i1 %2452, label %2475, label %2453

2453:                                             ; preds = %2446
  %2454 = load i32, ptr %1740, align 4, !tbaa !5
  %2455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2456 = call i32 @s2n_print_stacktrace(ptr noundef %2455) #11
  %2457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2458 = trunc nuw i8 %2457 to i1
  br i1 %2458, label %2459, label %2463

2459:                                             ; preds = %2453
  %2460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2461 = call i32 @fileno(ptr noundef %2460) #11
  %2462 = call i32 @isatty(i32 noundef %2461) #11
  %.not431 = icmp eq i32 %2462, 0
  br i1 %.not431, label %2463, label %2464

2463:                                             ; preds = %2459, %2453
  br label %2464

2464:                                             ; preds = %2459, %2463
  %.str.5.sink1279 = phi ptr [ @.str.5, %2463 ], [ @.str.2, %2459 ]
  store i32 %2454, ptr %1740, align 4, !tbaa !5
  %2465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2466 = load i32, ptr @test_count, align 4, !tbaa !5
  %2467 = load i32, ptr %1059, align 4, !tbaa !5
  %2468 = call ptr @s2n_strerror(i32 noundef %2467, ptr noundef nonnull @.str.4) #11
  %2469 = load i32, ptr %1059, align 4, !tbaa !5
  %2470 = call ptr @s2n_strerror_debug(i32 noundef %2469, ptr noundef nonnull @.str.4) #11
  %2471 = load i32, ptr %1740, align 4, !tbaa !5
  %2472 = call ptr @strerror(i32 noundef %2471) #11
  %2473 = load i32, ptr %1740, align 4, !tbaa !5
  %2474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2465, ptr noundef nonnull %.str.5.sink1279, i32 noundef %2466, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 415, ptr noundef %2468, ptr noundef %2470, ptr noundef %2472, i32 noundef %2473) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2475:                                             ; preds = %2446
  %2476 = load i32, ptr @test_count, align 4, !tbaa !5
  %2477 = add nsw i32 %2476, 1
  store i32 %2477, ptr @test_count, align 4, !tbaa !5
  %2478 = load i64, ptr @hello_request_count, align 8, !tbaa !15
  %2479 = icmp eq i64 %2478, 5
  br i1 %2479, label %2502, label %2480

2480:                                             ; preds = %2475
  %2481 = load i32, ptr %1740, align 4, !tbaa !5
  %2482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2483 = call i32 @s2n_print_stacktrace(ptr noundef %2482) #11
  %2484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2485 = trunc nuw i8 %2484 to i1
  br i1 %2485, label %2486, label %2490

2486:                                             ; preds = %2480
  %2487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2488 = call i32 @fileno(ptr noundef %2487) #11
  %2489 = call i32 @isatty(i32 noundef %2488) #11
  %.not432 = icmp eq i32 %2489, 0
  br i1 %.not432, label %2490, label %2491

2490:                                             ; preds = %2486, %2480
  br label %2491

2491:                                             ; preds = %2486, %2490
  %.str.5.sink1288 = phi ptr [ @.str.5, %2490 ], [ @.str.2, %2486 ]
  store i32 %2481, ptr %1740, align 4, !tbaa !5
  %2492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2493 = load i32, ptr @test_count, align 4, !tbaa !5
  %2494 = load i32, ptr %1059, align 4, !tbaa !5
  %2495 = call ptr @s2n_strerror(i32 noundef %2494, ptr noundef nonnull @.str.4) #11
  %2496 = load i32, ptr %1059, align 4, !tbaa !5
  %2497 = call ptr @s2n_strerror_debug(i32 noundef %2496, ptr noundef nonnull @.str.4) #11
  %2498 = load i32, ptr %1740, align 4, !tbaa !5
  %2499 = call ptr @strerror(i32 noundef %2498) #11
  %2500 = load i32, ptr %1740, align 4, !tbaa !5
  %2501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2492, ptr noundef nonnull %.str.5.sink1288, i32 noundef %2493, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 416, ptr noundef %2495, ptr noundef %2497, ptr noundef %2499, i32 noundef %2500) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2502:                                             ; preds = %2475
  %2503 = add nsw i32 %2476, 2
  store i32 %2503, ptr @test_count, align 4, !tbaa !5
  %2504 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0) #11
  %2505 = call zeroext i1 @s2n_result_is_ok(i32 %2504)
  br i1 %2505, label %2528, label %2506

2506:                                             ; preds = %2502
  %2507 = load i32, ptr %1740, align 4, !tbaa !5
  %2508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2509 = call i32 @s2n_print_stacktrace(ptr noundef %2508) #11
  %2510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2511 = trunc nuw i8 %2510 to i1
  br i1 %2511, label %2512, label %2516

2512:                                             ; preds = %2506
  %2513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2514 = call i32 @fileno(ptr noundef %2513) #11
  %2515 = call i32 @isatty(i32 noundef %2514) #11
  %.not433 = icmp eq i32 %2515, 0
  br i1 %.not433, label %2516, label %2517

2516:                                             ; preds = %2512, %2506
  br label %2517

2517:                                             ; preds = %2512, %2516
  %.str.5.sink1297 = phi ptr [ @.str.5, %2516 ], [ @.str.2, %2512 ]
  store i32 %2507, ptr %1740, align 4, !tbaa !5
  %2518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2519 = load i32, ptr @test_count, align 4, !tbaa !5
  %2520 = load i32, ptr %1059, align 4, !tbaa !5
  %2521 = call ptr @s2n_strerror(i32 noundef %2520, ptr noundef nonnull @.str.4) #11
  %2522 = load i32, ptr %1059, align 4, !tbaa !5
  %2523 = call ptr @s2n_strerror_debug(i32 noundef %2522, ptr noundef nonnull @.str.4) #11
  %2524 = load i32, ptr %1740, align 4, !tbaa !5
  %2525 = call ptr @strerror(i32 noundef %2524) #11
  %2526 = load i32, ptr %1740, align 4, !tbaa !5
  %2527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2518, ptr noundef nonnull %.str.5.sink1297, i32 noundef %2519, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 417, ptr noundef %2521, ptr noundef %2523, ptr noundef %2525, i32 noundef %2526) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2528:                                             ; preds = %2502
  %2529 = call i32 @s2n_mem_test_free_callbacks(ptr noundef nonnull %35) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #11
  %2530 = call i32 @s2n_stuffer_free(ptr noundef nonnull %34) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %34) #11
  %2531 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %33) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %33) #11
  %2532 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #11
  %2533 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %31) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #11
  %2534 = add nuw nsw i64 %.0375516, 1
  %exitcond530.not = icmp eq i64 %2534, 7
  br i1 %exitcond530.not, label %.preheader493.preheader, label %2130, !llvm.loop !60

.preheader493.preheader:                          ; preds = %2528
  %.pre = load i8, ptr @__const.main.modes, align 1, !tbaa !27
  %2535 = zext i8 %.pre to i32
  %2536 = and i32 %2535, 1
  %2537 = xor i32 %2536, 1
  %2538 = icmp eq i8 %.pre, 0
  %2539 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.modes, i64 1), align 1
  %2540 = zext i8 %2539 to i32
  %2541 = and i32 %2540, 1
  %2542 = xor i32 %2541, 1
  %2543 = icmp eq i8 %2539, 0
  br label %.preheader493

.preheader493:                                    ; preds = %.preheader493.preheader, %2914
  %.0377518 = phi i64 [ %2920, %2914 ], [ 0, %.preheader493.preheader ]
  %2544 = getelementptr inbounds [7 x i32], ptr @__const.main.fragment_sizes, i64 0, i64 %.0377518
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #11
  %2546 = call ptr @s2n_connection_new(i32 noundef %2535) #11
  store ptr %2546, ptr %36, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #11
  %2547 = call ptr @s2n_connection_new(i32 noundef %2537) #11
  store ptr %2547, ptr %37, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %38) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %38, i8 0, i64 80, i1 false)
  %2548 = load i32, ptr @test_count, align 4, !tbaa !5
  %2549 = add nsw i32 %2548, 1
  store i32 %2549, ptr @test_count, align 4, !tbaa !5
  %2550 = load ptr, ptr %36, align 8, !tbaa !9
  %2551 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %137, ptr noundef %2547, ptr noundef %2550, ptr noundef nonnull %38)
  %2552 = call zeroext i1 @s2n_result_is_ok(i32 %2551)
  br i1 %2552, label %2575, label %2553

2553:                                             ; preds = %2848, %.preheader493
  %2554 = load i32, ptr %1740, align 4, !tbaa !5
  %2555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2556 = call i32 @s2n_print_stacktrace(ptr noundef %2555) #11
  %2557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2558 = trunc nuw i8 %2557 to i1
  br i1 %2558, label %2559, label %2563

2559:                                             ; preds = %2553
  %2560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2561 = call i32 @fileno(ptr noundef %2560) #11
  %2562 = call i32 @isatty(i32 noundef %2561) #11
  %.not413 = icmp eq i32 %2562, 0
  br i1 %.not413, label %2563, label %2564

2563:                                             ; preds = %2559, %2553
  br label %2564

2564:                                             ; preds = %2559, %2563
  %.str.5.sink1306 = phi ptr [ @.str.5, %2563 ], [ @.str.2, %2559 ]
  store i32 %2554, ptr %1740, align 4, !tbaa !5
  %2565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2566 = load i32, ptr @test_count, align 4, !tbaa !5
  %2567 = load i32, ptr %1059, align 4, !tbaa !5
  %2568 = call ptr @s2n_strerror(i32 noundef %2567, ptr noundef nonnull @.str.4) #11
  %2569 = load i32, ptr %1059, align 4, !tbaa !5
  %2570 = call ptr @s2n_strerror_debug(i32 noundef %2569, ptr noundef nonnull @.str.4) #11
  %2571 = load i32, ptr %1740, align 4, !tbaa !5
  %2572 = call ptr @strerror(i32 noundef %2571) #11
  %2573 = load i32, ptr %1740, align 4, !tbaa !5
  %2574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2565, ptr noundef nonnull %.str.5.sink1306, i32 noundef %2566, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 430, ptr noundef %2568, ptr noundef %2570, ptr noundef %2572, i32 noundef %2573) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2575:                                             ; preds = %.preheader493
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %39) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %39, i8 0, i64 40, i1 false)
  %2576 = load i32, ptr @test_count, align 4, !tbaa !5
  %2577 = add nsw i32 %2576, 1
  store i32 %2577, ptr @test_count, align 4, !tbaa !5
  %2578 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %39, i32 noundef 4) #11
  %2579 = icmp eq i32 %2578, -1
  br i1 %2579, label %2580, label %2602

2580:                                             ; preds = %2861, %2575
  %2581 = load i32, ptr %1740, align 4, !tbaa !5
  %2582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2583 = call i32 @s2n_print_stacktrace(ptr noundef %2582) #11
  %2584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2585 = trunc nuw i8 %2584 to i1
  br i1 %2585, label %2586, label %2590

2586:                                             ; preds = %2580
  %2587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2588 = call i32 @fileno(ptr noundef %2587) #11
  %2589 = call i32 @isatty(i32 noundef %2588) #11
  %.not423 = icmp eq i32 %2589, 0
  br i1 %.not423, label %2590, label %2591

2590:                                             ; preds = %2586, %2580
  br label %2591

2591:                                             ; preds = %2586, %2590
  %.str.5.sink1315 = phi ptr [ @.str.5, %2590 ], [ @.str.2, %2586 ]
  store i32 %2581, ptr %1740, align 4, !tbaa !5
  %2592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2593 = load i32, ptr @test_count, align 4, !tbaa !5
  %2594 = load i32, ptr %1059, align 4, !tbaa !5
  %2595 = call ptr @s2n_strerror(i32 noundef %2594, ptr noundef nonnull @.str.4) #11
  %2596 = load i32, ptr %1059, align 4, !tbaa !5
  %2597 = call ptr @s2n_strerror_debug(i32 noundef %2596, ptr noundef nonnull @.str.4) #11
  %2598 = load i32, ptr %1740, align 4, !tbaa !5
  %2599 = call ptr @strerror(i32 noundef %2598) #11
  %2600 = load i32, ptr %1740, align 4, !tbaa !5
  %2601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2592, ptr noundef nonnull %.str.5.sink1315, i32 noundef %2593, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 434, ptr noundef %2595, ptr noundef %2597, ptr noundef %2599, i32 noundef %2600) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2602:                                             ; preds = %2575
  %2603 = load i32, ptr @test_count, align 4, !tbaa !5
  %2604 = add nsw i32 %2603, 1
  store i32 %2604, ptr @test_count, align 4, !tbaa !5
  %2605 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %39, i8 noundef zeroext 1) #11
  %2606 = icmp eq i32 %2605, -1
  br i1 %2606, label %2607, label %2629

2607:                                             ; preds = %2866, %2602
  %2608 = load i32, ptr %1740, align 4, !tbaa !5
  %2609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2610 = call i32 @s2n_print_stacktrace(ptr noundef %2609) #11
  %2611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2612 = trunc nuw i8 %2611 to i1
  br i1 %2612, label %2613, label %2617

2613:                                             ; preds = %2607
  %2614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2615 = call i32 @fileno(ptr noundef %2614) #11
  %2616 = call i32 @isatty(i32 noundef %2615) #11
  %.not422 = icmp eq i32 %2616, 0
  br i1 %.not422, label %2617, label %2618

2617:                                             ; preds = %2613, %2607
  br label %2618

2618:                                             ; preds = %2613, %2617
  %.str.5.sink1324 = phi ptr [ @.str.5, %2617 ], [ @.str.2, %2613 ]
  store i32 %2608, ptr %1740, align 4, !tbaa !5
  %2619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2620 = load i32, ptr @test_count, align 4, !tbaa !5
  %2621 = load i32, ptr %1059, align 4, !tbaa !5
  %2622 = call ptr @s2n_strerror(i32 noundef %2621, ptr noundef nonnull @.str.4) #11
  %2623 = load i32, ptr %1059, align 4, !tbaa !5
  %2624 = call ptr @s2n_strerror_debug(i32 noundef %2623, ptr noundef nonnull @.str.4) #11
  %2625 = load i32, ptr %1740, align 4, !tbaa !5
  %2626 = call ptr @strerror(i32 noundef %2625) #11
  %2627 = load i32, ptr %1740, align 4, !tbaa !5
  %2628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2619, ptr noundef nonnull %.str.5.sink1324, i32 noundef %2620, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 435, ptr noundef %2622, ptr noundef %2624, ptr noundef %2626, i32 noundef %2627) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2629:                                             ; preds = %2602
  %2630 = load i32, ptr @test_count, align 4, !tbaa !5
  %2631 = add nsw i32 %2630, 1
  store i32 %2631, ptr @test_count, align 4, !tbaa !5
  %2632 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %39, i32 noundef 3001) #11
  %2633 = icmp eq i32 %2632, -1
  br i1 %2633, label %2634, label %2656

2634:                                             ; preds = %2871, %2629
  %2635 = load i32, ptr %1740, align 4, !tbaa !5
  %2636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2637 = call i32 @s2n_print_stacktrace(ptr noundef %2636) #11
  %2638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2639 = trunc nuw i8 %2638 to i1
  br i1 %2639, label %2640, label %2644

2640:                                             ; preds = %2634
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = call i32 @fileno(ptr noundef %2641) #11
  %2643 = call i32 @isatty(i32 noundef %2642) #11
  %.not421 = icmp eq i32 %2643, 0
  br i1 %.not421, label %2644, label %2645

2644:                                             ; preds = %2640, %2634
  br label %2645

2645:                                             ; preds = %2640, %2644
  %.str.5.sink1333 = phi ptr [ @.str.5, %2644 ], [ @.str.2, %2640 ]
  store i32 %2635, ptr %1740, align 4, !tbaa !5
  %2646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2647 = load i32, ptr @test_count, align 4, !tbaa !5
  %2648 = load i32, ptr %1059, align 4, !tbaa !5
  %2649 = call ptr @s2n_strerror(i32 noundef %2648, ptr noundef nonnull @.str.4) #11
  %2650 = load i32, ptr %1059, align 4, !tbaa !5
  %2651 = call ptr @s2n_strerror_debug(i32 noundef %2650, ptr noundef nonnull @.str.4) #11
  %2652 = load i32, ptr %1740, align 4, !tbaa !5
  %2653 = call ptr @strerror(i32 noundef %2652) #11
  %2654 = load i32, ptr %1740, align 4, !tbaa !5
  %2655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2646, ptr noundef nonnull %.str.5.sink1333, i32 noundef %2647, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 436, ptr noundef %2649, ptr noundef %2651, ptr noundef %2653, i32 noundef %2654) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2656:                                             ; preds = %2629
  %2657 = load i32, ptr @test_count, align 4, !tbaa !5
  %2658 = add nsw i32 %2657, 1
  store i32 %2658, ptr @test_count, align 4, !tbaa !5
  %2659 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %39, i32 noundef 3001) #11
  %2660 = icmp eq i32 %2659, -1
  br i1 %2660, label %2661, label %2683

2661:                                             ; preds = %2876, %2656
  %2662 = load i32, ptr %1740, align 4, !tbaa !5
  %2663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2664 = call i32 @s2n_print_stacktrace(ptr noundef %2663) #11
  %2665 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2666 = trunc nuw i8 %2665 to i1
  br i1 %2666, label %2667, label %2671

2667:                                             ; preds = %2661
  %2668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2669 = call i32 @fileno(ptr noundef %2668) #11
  %2670 = call i32 @isatty(i32 noundef %2669) #11
  %.not420 = icmp eq i32 %2670, 0
  br i1 %.not420, label %2671, label %2672

2671:                                             ; preds = %2667, %2661
  br label %2672

2672:                                             ; preds = %2667, %2671
  %.str.5.sink1342 = phi ptr [ @.str.5, %2671 ], [ @.str.2, %2667 ]
  store i32 %2662, ptr %1740, align 4, !tbaa !5
  %2673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2674 = load i32, ptr @test_count, align 4, !tbaa !5
  %2675 = load i32, ptr %1059, align 4, !tbaa !5
  %2676 = call ptr @s2n_strerror(i32 noundef %2675, ptr noundef nonnull @.str.4) #11
  %2677 = load i32, ptr %1059, align 4, !tbaa !5
  %2678 = call ptr @s2n_strerror_debug(i32 noundef %2677, ptr noundef nonnull @.str.4) #11
  %2679 = load i32, ptr %1740, align 4, !tbaa !5
  %2680 = call ptr @strerror(i32 noundef %2679) #11
  %2681 = load i32, ptr %1740, align 4, !tbaa !5
  %2682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2673, ptr noundef nonnull %.str.5.sink1342, i32 noundef %2674, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 437, ptr noundef %2676, ptr noundef %2678, ptr noundef %2680, i32 noundef %2681) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2683:                                             ; preds = %2656
  %2684 = load i32, ptr @test_count, align 4, !tbaa !5
  %2685 = add nsw i32 %2684, 1
  store i32 %2685, ptr @test_count, align 4, !tbaa !5
  %2686 = load ptr, ptr %37, align 8, !tbaa !9
  %2687 = call i32 @s2n_test_send_records(ptr noundef %2686, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %39, i32 noundef %2545)
  %2688 = call zeroext i1 @s2n_result_is_ok(i32 %2687)
  br i1 %2688, label %2711, label %2689

2689:                                             ; preds = %2881, %2683
  %2690 = load i32, ptr %1740, align 4, !tbaa !5
  %2691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2692 = call i32 @s2n_print_stacktrace(ptr noundef %2691) #11
  %2693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2694 = trunc nuw i8 %2693 to i1
  br i1 %2694, label %2695, label %2699

2695:                                             ; preds = %2689
  %2696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2697 = call i32 @fileno(ptr noundef %2696) #11
  %2698 = call i32 @isatty(i32 noundef %2697) #11
  %.not414 = icmp eq i32 %2698, 0
  br i1 %.not414, label %2699, label %2700

2699:                                             ; preds = %2695, %2689
  br label %2700

2700:                                             ; preds = %2695, %2699
  %.str.5.sink1351 = phi ptr [ @.str.5, %2699 ], [ @.str.2, %2695 ]
  store i32 %2690, ptr %1740, align 4, !tbaa !5
  %2701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2702 = load i32, ptr @test_count, align 4, !tbaa !5
  %2703 = load i32, ptr %1059, align 4, !tbaa !5
  %2704 = call ptr @s2n_strerror(i32 noundef %2703, ptr noundef nonnull @.str.4) #11
  %2705 = load i32, ptr %1059, align 4, !tbaa !5
  %2706 = call ptr @s2n_strerror_debug(i32 noundef %2705, ptr noundef nonnull @.str.4) #11
  %2707 = load i32, ptr %1740, align 4, !tbaa !5
  %2708 = call ptr @strerror(i32 noundef %2707) #11
  %2709 = load i32, ptr %1740, align 4, !tbaa !5
  %2710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2701, ptr noundef nonnull %.str.5.sink1351, i32 noundef %2702, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 438, ptr noundef %2704, ptr noundef %2706, ptr noundef %2708, i32 noundef %2709) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2711:                                             ; preds = %2683
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #11
  store i8 0, ptr %40, align 1
  %2712 = load i32, ptr @test_count, align 4, !tbaa !5
  %2713 = add nsw i32 %2712, 1
  store i32 %2713, ptr @test_count, align 4, !tbaa !5
  %2714 = call i32 @s2n_mem_test_init_callbacks(ptr noundef nonnull %40) #11
  %2715 = call zeroext i1 @s2n_result_is_ok(i32 %2714)
  br i1 %2715, label %2738, label %2716

2716:                                             ; preds = %2887, %2711
  %2717 = load i32, ptr %1740, align 4, !tbaa !5
  %2718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2719 = call i32 @s2n_print_stacktrace(ptr noundef %2718) #11
  %2720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2721 = trunc nuw i8 %2720 to i1
  br i1 %2721, label %2722, label %2726

2722:                                             ; preds = %2716
  %2723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2724 = call i32 @fileno(ptr noundef %2723) #11
  %2725 = call i32 @isatty(i32 noundef %2724) #11
  %.not415 = icmp eq i32 %2725, 0
  br i1 %.not415, label %2726, label %2727

2726:                                             ; preds = %2722, %2716
  br label %2727

2727:                                             ; preds = %2722, %2726
  %.str.5.sink1360 = phi ptr [ @.str.5, %2726 ], [ @.str.2, %2722 ]
  store i32 %2717, ptr %1740, align 4, !tbaa !5
  %2728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2729 = load i32, ptr @test_count, align 4, !tbaa !5
  %2730 = load i32, ptr %1059, align 4, !tbaa !5
  %2731 = call ptr @s2n_strerror(i32 noundef %2730, ptr noundef nonnull @.str.4) #11
  %2732 = load i32, ptr %1059, align 4, !tbaa !5
  %2733 = call ptr @s2n_strerror_debug(i32 noundef %2732, ptr noundef nonnull @.str.4) #11
  %2734 = load i32, ptr %1740, align 4, !tbaa !5
  %2735 = call ptr @strerror(i32 noundef %2734) #11
  %2736 = load i32, ptr %1740, align 4, !tbaa !5
  %2737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2728, ptr noundef nonnull %.str.5.sink1360, i32 noundef %2729, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 441, ptr noundef %2731, ptr noundef %2733, ptr noundef %2735, i32 noundef %2736) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2738:                                             ; preds = %2711
  %2739 = load i32, ptr @test_count, align 4, !tbaa !5
  %2740 = add nsw i32 %2739, 1
  store i32 %2740, ptr @test_count, align 4, !tbaa !5
  %2741 = load ptr, ptr %37, align 8, !tbaa !9
  %2742 = load ptr, ptr %36, align 8, !tbaa !9
  %2743 = call i32 @s2n_test_basic_recv(ptr noundef %2741, ptr noundef %2742)
  %2744 = call zeroext i1 @s2n_result_is_error(i32 %2743)
  br i1 %2744, label %2767, label %2745

2745:                                             ; preds = %2892, %2738
  %2746 = load i32, ptr %1740, align 4, !tbaa !5
  %2747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2748 = call i32 @s2n_print_stacktrace(ptr noundef %2747) #11
  %2749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2750 = trunc nuw i8 %2749 to i1
  br i1 %2750, label %2751, label %2755

2751:                                             ; preds = %2745
  %2752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2753 = call i32 @fileno(ptr noundef %2752) #11
  %2754 = call i32 @isatty(i32 noundef %2753) #11
  %.not416 = icmp eq i32 %2754, 0
  br i1 %.not416, label %2755, label %2756

2755:                                             ; preds = %2751, %2745
  br label %2756

2756:                                             ; preds = %2751, %2755
  %.str.5.sink1369 = phi ptr [ @.str.5, %2755 ], [ @.str.2, %2751 ]
  store i32 %2746, ptr %1740, align 4, !tbaa !5
  %2757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2758 = load i32, ptr @test_count, align 4, !tbaa !5
  %2759 = load i32, ptr %1059, align 4, !tbaa !5
  %2760 = call ptr @s2n_strerror(i32 noundef %2759, ptr noundef nonnull @.str.4) #11
  %2761 = load i32, ptr %1059, align 4, !tbaa !5
  %2762 = call ptr @s2n_strerror_debug(i32 noundef %2761, ptr noundef nonnull @.str.4) #11
  %2763 = load i32, ptr %1740, align 4, !tbaa !5
  %2764 = call ptr @strerror(i32 noundef %2763) #11
  %2765 = load i32, ptr %1740, align 4, !tbaa !5
  %2766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2757, ptr noundef nonnull %.str.5.sink1369, i32 noundef %2758, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef %2760, ptr noundef %2762, ptr noundef %2764, i32 noundef %2765) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2767:                                             ; preds = %2738
  %2768 = load i32, ptr @test_count, align 4, !tbaa !5
  %2769 = add nsw i32 %2768, 1
  store i32 %2769, ptr @test_count, align 4, !tbaa !5
  %2770 = load i32, ptr %1059, align 4, !tbaa !5
  %2771 = icmp eq i32 %2770, 335544322
  br i1 %2771, label %2794, label %2772

2772:                                             ; preds = %2899, %2767
  %2773 = load i32, ptr %1740, align 4, !tbaa !5
  %2774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2775 = call i32 @s2n_print_stacktrace(ptr noundef %2774) #11
  %2776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2777 = trunc nuw i8 %2776 to i1
  br i1 %2777, label %2778, label %2782

2778:                                             ; preds = %2772
  %2779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2780 = call i32 @fileno(ptr noundef %2779) #11
  %2781 = call i32 @isatty(i32 noundef %2780) #11
  %.not417 = icmp eq i32 %2781, 0
  br i1 %.not417, label %2782, label %2783

2782:                                             ; preds = %2778, %2772
  br label %2783

2783:                                             ; preds = %2778, %2782
  %.str.5.sink1378 = phi ptr [ @.str.5, %2782 ], [ @.str.2, %2778 ]
  store i32 %2773, ptr %1740, align 4, !tbaa !5
  %2784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2785 = load i32, ptr @test_count, align 4, !tbaa !5
  %2786 = load i32, ptr %1059, align 4, !tbaa !5
  %2787 = call ptr @s2n_strerror(i32 noundef %2786, ptr noundef nonnull @.str.4) #11
  %2788 = load i32, ptr %1059, align 4, !tbaa !5
  %2789 = call ptr @s2n_strerror_debug(i32 noundef %2788, ptr noundef nonnull @.str.4) #11
  %2790 = load i32, ptr %1740, align 4, !tbaa !5
  %2791 = call ptr @strerror(i32 noundef %2790) #11
  %2792 = load i32, ptr %1740, align 4, !tbaa !5
  %2793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2784, ptr noundef nonnull %.str.5.sink1378, i32 noundef %2785, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef %2787, ptr noundef %2789, ptr noundef %2791, i32 noundef %2792) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2794:                                             ; preds = %2767
  %2795 = add nsw i32 %2768, 2
  store i32 %2795, ptr @test_count, align 4, !tbaa !5
  %2796 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %2797 = icmp eq ptr %2796, null
  br i1 %2797, label %2798, label %2820

2798:                                             ; preds = %2904, %2794
  %2799 = load i32, ptr %1740, align 4, !tbaa !5
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = call i32 @s2n_print_stacktrace(ptr noundef %2800) #11
  %2802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2803 = trunc nuw i8 %2802 to i1
  br i1 %2803, label %2804, label %2808

2804:                                             ; preds = %2798
  %2805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2806 = call i32 @fileno(ptr noundef %2805) #11
  %2807 = call i32 @isatty(i32 noundef %2806) #11
  %.not419 = icmp eq i32 %2807, 0
  br i1 %.not419, label %2808, label %2809

2808:                                             ; preds = %2804, %2798
  br label %2809

2809:                                             ; preds = %2804, %2808
  %.str.5.sink1387 = phi ptr [ @.str.5, %2808 ], [ @.str.2, %2804 ]
  store i32 %2799, ptr %1740, align 4, !tbaa !5
  %2810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2811 = load i32, ptr @test_count, align 4, !tbaa !5
  %2812 = load i32, ptr %1059, align 4, !tbaa !5
  %2813 = call ptr @s2n_strerror(i32 noundef %2812, ptr noundef nonnull @.str.4) #11
  %2814 = load i32, ptr %1059, align 4, !tbaa !5
  %2815 = call ptr @s2n_strerror_debug(i32 noundef %2814, ptr noundef nonnull @.str.4) #11
  %2816 = load i32, ptr %1740, align 4, !tbaa !5
  %2817 = call ptr @strerror(i32 noundef %2816) #11
  %2818 = load i32, ptr %1740, align 4, !tbaa !5
  %2819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2810, ptr noundef nonnull %.str.5.sink1387, i32 noundef %2811, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef %2813, ptr noundef %2815, ptr noundef %2817, i32 noundef %2818) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2820:                                             ; preds = %2794
  store i32 0, ptr %1059, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1740, align 4, !tbaa !5
  br i1 %2538, label %2821, label %2848

2821:                                             ; preds = %2820
  %2822 = load i32, ptr @test_count, align 4, !tbaa !5
  %2823 = add nsw i32 %2822, 1
  store i32 %2823, ptr @test_count, align 4, !tbaa !5
  %2824 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0) #11
  %2825 = call zeroext i1 @s2n_result_is_ok(i32 %2824)
  br i1 %2825, label %2848, label %2826

2826:                                             ; preds = %2909, %2821
  %2827 = load i32, ptr %1740, align 4, !tbaa !5
  %2828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2829 = call i32 @s2n_print_stacktrace(ptr noundef %2828) #11
  %2830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2831 = trunc nuw i8 %2830 to i1
  br i1 %2831, label %2832, label %2836

2832:                                             ; preds = %2826
  %2833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2834 = call i32 @fileno(ptr noundef %2833) #11
  %2835 = call i32 @isatty(i32 noundef %2834) #11
  %.not418 = icmp eq i32 %2835, 0
  br i1 %.not418, label %2836, label %2837

2836:                                             ; preds = %2832, %2826
  br label %2837

2837:                                             ; preds = %2832, %2836
  %.str.5.sink1396 = phi ptr [ @.str.5, %2836 ], [ @.str.2, %2832 ]
  store i32 %2827, ptr %1740, align 4, !tbaa !5
  %2838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2839 = load i32, ptr @test_count, align 4, !tbaa !5
  %2840 = load i32, ptr %1059, align 4, !tbaa !5
  %2841 = call ptr @s2n_strerror(i32 noundef %2840, ptr noundef nonnull @.str.4) #11
  %2842 = load i32, ptr %1059, align 4, !tbaa !5
  %2843 = call ptr @s2n_strerror_debug(i32 noundef %2842, ptr noundef nonnull @.str.4) #11
  %2844 = load i32, ptr %1740, align 4, !tbaa !5
  %2845 = call ptr @strerror(i32 noundef %2844) #11
  %2846 = load i32, ptr %1740, align 4, !tbaa !5
  %2847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2838, ptr noundef nonnull %.str.5.sink1396, i32 noundef %2839, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 446, ptr noundef %2841, ptr noundef %2843, ptr noundef %2845, i32 noundef %2846) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2848:                                             ; preds = %2821, %2820
  %2849 = call i32 @s2n_mem_test_free_callbacks(ptr noundef nonnull %40) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #11
  %2850 = call i32 @s2n_stuffer_free(ptr noundef nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %39) #11
  %2851 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %38) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %38) #11
  %2852 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %37) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  %2853 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %36) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #11
  %2854 = call ptr @s2n_connection_new(i32 noundef %2540) #11
  store ptr %2854, ptr %36, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #11
  %2855 = call ptr @s2n_connection_new(i32 noundef %2542) #11
  store ptr %2855, ptr %37, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %38) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %38, i8 0, i64 80, i1 false)
  %2856 = load i32, ptr @test_count, align 4, !tbaa !5
  %2857 = add nsw i32 %2856, 1
  store i32 %2857, ptr @test_count, align 4, !tbaa !5
  %2858 = load ptr, ptr %36, align 8, !tbaa !9
  %2859 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %137, ptr noundef %2855, ptr noundef %2858, ptr noundef nonnull %38)
  %2860 = call zeroext i1 @s2n_result_is_ok(i32 %2859)
  br i1 %2860, label %2861, label %2553

2861:                                             ; preds = %2848
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %39) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %39, i8 0, i64 40, i1 false)
  %2862 = load i32, ptr @test_count, align 4, !tbaa !5
  %2863 = add nsw i32 %2862, 1
  store i32 %2863, ptr @test_count, align 4, !tbaa !5
  %2864 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %39, i32 noundef 4) #11
  %2865 = icmp eq i32 %2864, -1
  br i1 %2865, label %2580, label %2866

2866:                                             ; preds = %2861
  %2867 = load i32, ptr @test_count, align 4, !tbaa !5
  %2868 = add nsw i32 %2867, 1
  store i32 %2868, ptr @test_count, align 4, !tbaa !5
  %2869 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %39, i8 noundef zeroext 1) #11
  %2870 = icmp eq i32 %2869, -1
  br i1 %2870, label %2607, label %2871

2871:                                             ; preds = %2866
  %2872 = load i32, ptr @test_count, align 4, !tbaa !5
  %2873 = add nsw i32 %2872, 1
  store i32 %2873, ptr @test_count, align 4, !tbaa !5
  %2874 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %39, i32 noundef 3001) #11
  %2875 = icmp eq i32 %2874, -1
  br i1 %2875, label %2634, label %2876

2876:                                             ; preds = %2871
  %2877 = load i32, ptr @test_count, align 4, !tbaa !5
  %2878 = add nsw i32 %2877, 1
  store i32 %2878, ptr @test_count, align 4, !tbaa !5
  %2879 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %39, i32 noundef 3001) #11
  %2880 = icmp eq i32 %2879, -1
  br i1 %2880, label %2661, label %2881

2881:                                             ; preds = %2876
  %2882 = load i32, ptr @test_count, align 4, !tbaa !5
  %2883 = add nsw i32 %2882, 1
  store i32 %2883, ptr @test_count, align 4, !tbaa !5
  %2884 = load ptr, ptr %37, align 8, !tbaa !9
  %2885 = call i32 @s2n_test_send_records(ptr noundef %2884, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %39, i32 noundef %2545)
  %2886 = call zeroext i1 @s2n_result_is_ok(i32 %2885)
  br i1 %2886, label %2887, label %2689

2887:                                             ; preds = %2881
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #11
  store i8 0, ptr %40, align 1
  %2888 = load i32, ptr @test_count, align 4, !tbaa !5
  %2889 = add nsw i32 %2888, 1
  store i32 %2889, ptr @test_count, align 4, !tbaa !5
  %2890 = call i32 @s2n_mem_test_init_callbacks(ptr noundef nonnull %40) #11
  %2891 = call zeroext i1 @s2n_result_is_ok(i32 %2890)
  br i1 %2891, label %2892, label %2716

2892:                                             ; preds = %2887
  %2893 = load i32, ptr @test_count, align 4, !tbaa !5
  %2894 = add nsw i32 %2893, 1
  store i32 %2894, ptr @test_count, align 4, !tbaa !5
  %2895 = load ptr, ptr %37, align 8, !tbaa !9
  %2896 = load ptr, ptr %36, align 8, !tbaa !9
  %2897 = call i32 @s2n_test_basic_recv(ptr noundef %2895, ptr noundef %2896)
  %2898 = call zeroext i1 @s2n_result_is_error(i32 %2897)
  br i1 %2898, label %2899, label %2745

2899:                                             ; preds = %2892
  %2900 = load i32, ptr @test_count, align 4, !tbaa !5
  %2901 = add nsw i32 %2900, 1
  store i32 %2901, ptr @test_count, align 4, !tbaa !5
  %2902 = load i32, ptr %1059, align 4, !tbaa !5
  %2903 = icmp eq i32 %2902, 335544322
  br i1 %2903, label %2904, label %2772

2904:                                             ; preds = %2899
  %2905 = add nsw i32 %2900, 2
  store i32 %2905, ptr @test_count, align 4, !tbaa !5
  %2906 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %2907 = icmp eq ptr %2906, null
  br i1 %2907, label %2798, label %2908

2908:                                             ; preds = %2904
  store i32 0, ptr %1059, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1740, align 4, !tbaa !5
  br i1 %2543, label %2909, label %2914

2909:                                             ; preds = %2908
  %2910 = load i32, ptr @test_count, align 4, !tbaa !5
  %2911 = add nsw i32 %2910, 1
  store i32 %2911, ptr @test_count, align 4, !tbaa !5
  %2912 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0) #11
  %2913 = call zeroext i1 @s2n_result_is_ok(i32 %2912)
  br i1 %2913, label %2914, label %2826

2914:                                             ; preds = %2909, %2908
  %2915 = call i32 @s2n_mem_test_free_callbacks(ptr noundef nonnull %40) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #11
  %2916 = call i32 @s2n_stuffer_free(ptr noundef nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %39) #11
  %2917 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %38) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %38) #11
  %2918 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %37) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  %2919 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %36) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #11
  %2920 = add nuw nsw i64 %.0377518, 1
  %exitcond531.not = icmp eq i64 %2920, 7
  br i1 %exitcond531.not, label %.preheader492, label %.preheader493, !llvm.loop !61

.preheader492:                                    ; preds = %2914, %3298
  %.0379520 = phi i64 [ %3304, %3298 ], [ 0, %2914 ]
  %2921 = getelementptr inbounds [7 x i32], ptr @__const.main.fragment_sizes, i64 0, i64 %.0379520
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #11
  %2923 = call ptr @s2n_connection_new(i32 noundef %2535) #11
  store ptr %2923, ptr %41, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #11
  %2924 = call ptr @s2n_connection_new(i32 noundef %2537) #11
  store ptr %2924, ptr %42, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %43) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %43, i8 0, i64 80, i1 false)
  %2925 = load i32, ptr @test_count, align 4, !tbaa !5
  %2926 = add nsw i32 %2925, 1
  store i32 %2926, ptr @test_count, align 4, !tbaa !5
  %2927 = load ptr, ptr %41, align 8, !tbaa !9
  %2928 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %137, ptr noundef %2924, ptr noundef %2927, ptr noundef nonnull %43)
  %2929 = call zeroext i1 @s2n_result_is_ok(i32 %2928)
  br i1 %2929, label %2959, label %2937

.preheader.preheader:                             ; preds = %3298
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #11
  %2930 = call ptr @s2n_connection_new(i32 noundef %2535) #11
  store ptr %2930, ptr %46, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #11
  %2931 = call ptr @s2n_connection_new(i32 noundef %2537) #11
  store ptr %2931, ptr %47, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %48) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %48, i8 0, i64 80, i1 false)
  %2932 = load i32, ptr @test_count, align 4, !tbaa !5
  %2933 = add nsw i32 %2932, 1
  store i32 %2933, ptr @test_count, align 4, !tbaa !5
  %2934 = load ptr, ptr %46, align 8, !tbaa !9
  %2935 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %137, ptr noundef %2931, ptr noundef %2934, ptr noundef nonnull %48)
  %2936 = call zeroext i1 @s2n_result_is_ok(i32 %2935)
  br i1 %2936, label %3327, label %3305

2937:                                             ; preds = %3232, %.preheader492
  %2938 = load i32, ptr %1740, align 4, !tbaa !5
  %2939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2940 = call i32 @s2n_print_stacktrace(ptr noundef %2939) #11
  %2941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2942 = trunc nuw i8 %2941 to i1
  br i1 %2942, label %2943, label %2947

2943:                                             ; preds = %2937
  %2944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2945 = call i32 @fileno(ptr noundef %2944) #11
  %2946 = call i32 @isatty(i32 noundef %2945) #11
  %.not402 = icmp eq i32 %2946, 0
  br i1 %.not402, label %2947, label %2948

2947:                                             ; preds = %2943, %2937
  br label %2948

2948:                                             ; preds = %2943, %2947
  %.str.5.sink1405 = phi ptr [ @.str.5, %2947 ], [ @.str.2, %2943 ]
  store i32 %2938, ptr %1740, align 4, !tbaa !5
  %2949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2950 = load i32, ptr @test_count, align 4, !tbaa !5
  %2951 = load i32, ptr %1059, align 4, !tbaa !5
  %2952 = call ptr @s2n_strerror(i32 noundef %2951, ptr noundef nonnull @.str.4) #11
  %2953 = load i32, ptr %1059, align 4, !tbaa !5
  %2954 = call ptr @s2n_strerror_debug(i32 noundef %2953, ptr noundef nonnull @.str.4) #11
  %2955 = load i32, ptr %1740, align 4, !tbaa !5
  %2956 = call ptr @strerror(i32 noundef %2955) #11
  %2957 = load i32, ptr %1740, align 4, !tbaa !5
  %2958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2949, ptr noundef nonnull %.str.5.sink1405, i32 noundef %2950, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 461, ptr noundef %2952, ptr noundef %2954, ptr noundef %2956, i32 noundef %2957) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2959:                                             ; preds = %.preheader492
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %44) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %44, i8 0, i64 40, i1 false)
  %2960 = load i32, ptr @test_count, align 4, !tbaa !5
  %2961 = add nsw i32 %2960, 1
  store i32 %2961, ptr @test_count, align 4, !tbaa !5
  %2962 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %44, i32 noundef 0) #11
  %2963 = icmp eq i32 %2962, -1
  br i1 %2963, label %2964, label %2986

2964:                                             ; preds = %3245, %2959
  %2965 = load i32, ptr %1740, align 4, !tbaa !5
  %2966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2967 = call i32 @s2n_print_stacktrace(ptr noundef %2966) #11
  %2968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2969 = trunc nuw i8 %2968 to i1
  br i1 %2969, label %2970, label %2974

2970:                                             ; preds = %2964
  %2971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2972 = call i32 @fileno(ptr noundef %2971) #11
  %2973 = call i32 @isatty(i32 noundef %2972) #11
  %.not412 = icmp eq i32 %2973, 0
  br i1 %.not412, label %2974, label %2975

2974:                                             ; preds = %2970, %2964
  br label %2975

2975:                                             ; preds = %2970, %2974
  %.str.5.sink1414 = phi ptr [ @.str.5, %2974 ], [ @.str.2, %2970 ]
  store i32 %2965, ptr %1740, align 4, !tbaa !5
  %2976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2977 = load i32, ptr @test_count, align 4, !tbaa !5
  %2978 = load i32, ptr %1059, align 4, !tbaa !5
  %2979 = call ptr @s2n_strerror(i32 noundef %2978, ptr noundef nonnull @.str.4) #11
  %2980 = load i32, ptr %1059, align 4, !tbaa !5
  %2981 = call ptr @s2n_strerror_debug(i32 noundef %2980, ptr noundef nonnull @.str.4) #11
  %2982 = load i32, ptr %1740, align 4, !tbaa !5
  %2983 = call ptr @strerror(i32 noundef %2982) #11
  %2984 = load i32, ptr %1740, align 4, !tbaa !5
  %2985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2976, ptr noundef nonnull %.str.5.sink1414, i32 noundef %2977, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 465, ptr noundef %2979, ptr noundef %2981, ptr noundef %2983, i32 noundef %2984) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2986:                                             ; preds = %2959
  %2987 = load i32, ptr @test_count, align 4, !tbaa !5
  %2988 = add nsw i32 %2987, 1
  store i32 %2988, ptr @test_count, align 4, !tbaa !5
  %2989 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %44, i8 noundef zeroext -1) #11
  %2990 = icmp eq i32 %2989, -1
  br i1 %2990, label %2991, label %3013

2991:                                             ; preds = %3250, %2986
  %2992 = load i32, ptr %1740, align 4, !tbaa !5
  %2993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2994 = call i32 @s2n_print_stacktrace(ptr noundef %2993) #11
  %2995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2996 = trunc nuw i8 %2995 to i1
  br i1 %2996, label %2997, label %3001

2997:                                             ; preds = %2991
  %2998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2999 = call i32 @fileno(ptr noundef %2998) #11
  %3000 = call i32 @isatty(i32 noundef %2999) #11
  %.not411 = icmp eq i32 %3000, 0
  br i1 %.not411, label %3001, label %3002

3001:                                             ; preds = %2997, %2991
  br label %3002

3002:                                             ; preds = %2997, %3001
  %.str.5.sink1423 = phi ptr [ @.str.5, %3001 ], [ @.str.2, %2997 ]
  store i32 %2992, ptr %1740, align 4, !tbaa !5
  %3003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3004 = load i32, ptr @test_count, align 4, !tbaa !5
  %3005 = load i32, ptr %1059, align 4, !tbaa !5
  %3006 = call ptr @s2n_strerror(i32 noundef %3005, ptr noundef nonnull @.str.4) #11
  %3007 = load i32, ptr %1059, align 4, !tbaa !5
  %3008 = call ptr @s2n_strerror_debug(i32 noundef %3007, ptr noundef nonnull @.str.4) #11
  %3009 = load i32, ptr %1740, align 4, !tbaa !5
  %3010 = call ptr @strerror(i32 noundef %3009) #11
  %3011 = load i32, ptr %1740, align 4, !tbaa !5
  %3012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3003, ptr noundef nonnull %.str.5.sink1423, i32 noundef %3004, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 466, ptr noundef %3006, ptr noundef %3008, ptr noundef %3010, i32 noundef %3011) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3013:                                             ; preds = %2986
  %3014 = load i32, ptr @test_count, align 4, !tbaa !5
  %3015 = add nsw i32 %3014, 1
  store i32 %3015, ptr @test_count, align 4, !tbaa !5
  %3016 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %44, i32 noundef 3001) #11
  %3017 = icmp eq i32 %3016, -1
  br i1 %3017, label %3018, label %3040

3018:                                             ; preds = %3255, %3013
  %3019 = load i32, ptr %1740, align 4, !tbaa !5
  %3020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3021 = call i32 @s2n_print_stacktrace(ptr noundef %3020) #11
  %3022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3023 = trunc nuw i8 %3022 to i1
  br i1 %3023, label %3024, label %3028

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

3028:                                             ; preds = %3024, %3018
  br label %3029

3029:                                             ; preds = %3024, %3028
  %.str.5.sink1432 = phi ptr [ @.str.5, %3028 ], [ @.str.2, %3024 ]
  store i32 %3019, ptr %1740, align 4, !tbaa !5
  %3030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3031 = load i32, ptr @test_count, align 4, !tbaa !5
  %3032 = load i32, ptr %1059, align 4, !tbaa !5
  %3033 = call ptr @s2n_strerror(i32 noundef %3032, ptr noundef nonnull @.str.4) #11
  %3034 = load i32, ptr %1059, align 4, !tbaa !5
  %3035 = call ptr @s2n_strerror_debug(i32 noundef %3034, ptr noundef nonnull @.str.4) #11
  %3036 = load i32, ptr %1740, align 4, !tbaa !5
  %3037 = call ptr @strerror(i32 noundef %3036) #11
  %3038 = load i32, ptr %1740, align 4, !tbaa !5
  %3039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3030, ptr noundef nonnull %.str.5.sink1432, i32 noundef %3031, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 467, ptr noundef %3033, ptr noundef %3035, ptr noundef %3037, i32 noundef %3038) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3040:                                             ; preds = %3013
  %3041 = load i32, ptr @test_count, align 4, !tbaa !5
  %3042 = add nsw i32 %3041, 1
  store i32 %3042, ptr @test_count, align 4, !tbaa !5
  %3043 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %44, i32 noundef 3001) #11
  %3044 = icmp eq i32 %3043, -1
  br i1 %3044, label %3045, label %3067

3045:                                             ; preds = %3260, %3040
  %3046 = load i32, ptr %1740, align 4, !tbaa !5
  %3047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3048 = call i32 @s2n_print_stacktrace(ptr noundef %3047) #11
  %3049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3050 = trunc nuw i8 %3049 to i1
  br i1 %3050, label %3051, label %3055

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

3055:                                             ; preds = %3051, %3045
  br label %3056

3056:                                             ; preds = %3051, %3055
  %.str.5.sink1441 = phi ptr [ @.str.5, %3055 ], [ @.str.2, %3051 ]
  store i32 %3046, ptr %1740, align 4, !tbaa !5
  %3057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3058 = load i32, ptr @test_count, align 4, !tbaa !5
  %3059 = load i32, ptr %1059, align 4, !tbaa !5
  %3060 = call ptr @s2n_strerror(i32 noundef %3059, ptr noundef nonnull @.str.4) #11
  %3061 = load i32, ptr %1059, align 4, !tbaa !5
  %3062 = call ptr @s2n_strerror_debug(i32 noundef %3061, ptr noundef nonnull @.str.4) #11
  %3063 = load i32, ptr %1740, align 4, !tbaa !5
  %3064 = call ptr @strerror(i32 noundef %3063) #11
  %3065 = load i32, ptr %1740, align 4, !tbaa !5
  %3066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3057, ptr noundef nonnull %.str.5.sink1441, i32 noundef %3058, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 468, ptr noundef %3060, ptr noundef %3062, ptr noundef %3064, i32 noundef %3065) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3067:                                             ; preds = %3040
  %3068 = load i32, ptr @test_count, align 4, !tbaa !5
  %3069 = add nsw i32 %3068, 1
  store i32 %3069, ptr @test_count, align 4, !tbaa !5
  %3070 = load ptr, ptr %42, align 8, !tbaa !9
  %3071 = call i32 @s2n_test_send_records(ptr noundef %3070, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %44, i32 noundef %2922)
  %3072 = call zeroext i1 @s2n_result_is_ok(i32 %3071)
  br i1 %3072, label %3095, label %3073

3073:                                             ; preds = %3265, %3067
  %3074 = load i32, ptr %1740, align 4, !tbaa !5
  %3075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3076 = call i32 @s2n_print_stacktrace(ptr noundef %3075) #11
  %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) #11
  %3082 = call i32 @isatty(i32 noundef %3081) #11
  %.not403 = icmp eq i32 %3082, 0
  br i1 %.not403, label %3083, label %3084

3083:                                             ; preds = %3079, %3073
  br label %3084

3084:                                             ; preds = %3079, %3083
  %.str.5.sink1450 = phi ptr [ @.str.5, %3083 ], [ @.str.2, %3079 ]
  store i32 %3074, ptr %1740, align 4, !tbaa !5
  %3085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3086 = load i32, ptr @test_count, align 4, !tbaa !5
  %3087 = load i32, ptr %1059, align 4, !tbaa !5
  %3088 = call ptr @s2n_strerror(i32 noundef %3087, ptr noundef nonnull @.str.4) #11
  %3089 = load i32, ptr %1059, align 4, !tbaa !5
  %3090 = call ptr @s2n_strerror_debug(i32 noundef %3089, ptr noundef nonnull @.str.4) #11
  %3091 = load i32, ptr %1740, align 4, !tbaa !5
  %3092 = call ptr @strerror(i32 noundef %3091) #11
  %3093 = load i32, ptr %1740, align 4, !tbaa !5
  %3094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3085, ptr noundef nonnull %.str.5.sink1450, i32 noundef %3086, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 469, ptr noundef %3088, ptr noundef %3090, ptr noundef %3092, i32 noundef %3093) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3095:                                             ; preds = %3067
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %45) #11
  store i8 0, ptr %45, align 1
  %3096 = load i32, ptr @test_count, align 4, !tbaa !5
  %3097 = add nsw i32 %3096, 1
  store i32 %3097, ptr @test_count, align 4, !tbaa !5
  %3098 = call i32 @s2n_mem_test_init_callbacks(ptr noundef nonnull %45) #11
  %3099 = call zeroext i1 @s2n_result_is_ok(i32 %3098)
  br i1 %3099, label %3122, label %3100

3100:                                             ; preds = %3271, %3095
  %3101 = load i32, ptr %1740, align 4, !tbaa !5
  %3102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3103 = call i32 @s2n_print_stacktrace(ptr noundef %3102) #11
  %3104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3105 = trunc nuw i8 %3104 to i1
  br i1 %3105, label %3106, label %3110

3106:                                             ; preds = %3100
  %3107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3108 = call i32 @fileno(ptr noundef %3107) #11
  %3109 = call i32 @isatty(i32 noundef %3108) #11
  %.not404 = icmp eq i32 %3109, 0
  br i1 %.not404, label %3110, label %3111

3110:                                             ; preds = %3106, %3100
  br label %3111

3111:                                             ; preds = %3106, %3110
  %.str.5.sink1459 = phi ptr [ @.str.5, %3110 ], [ @.str.2, %3106 ]
  store i32 %3101, ptr %1740, align 4, !tbaa !5
  %3112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3113 = load i32, ptr @test_count, align 4, !tbaa !5
  %3114 = load i32, ptr %1059, align 4, !tbaa !5
  %3115 = call ptr @s2n_strerror(i32 noundef %3114, ptr noundef nonnull @.str.4) #11
  %3116 = load i32, ptr %1059, align 4, !tbaa !5
  %3117 = call ptr @s2n_strerror_debug(i32 noundef %3116, ptr noundef nonnull @.str.4) #11
  %3118 = load i32, ptr %1740, align 4, !tbaa !5
  %3119 = call ptr @strerror(i32 noundef %3118) #11
  %3120 = load i32, ptr %1740, align 4, !tbaa !5
  %3121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3112, ptr noundef nonnull %.str.5.sink1459, i32 noundef %3113, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 472, ptr noundef %3115, ptr noundef %3117, ptr noundef %3119, i32 noundef %3120) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3122:                                             ; preds = %3095
  %3123 = load i32, ptr @test_count, align 4, !tbaa !5
  %3124 = add nsw i32 %3123, 1
  store i32 %3124, ptr @test_count, align 4, !tbaa !5
  %3125 = load ptr, ptr %42, align 8, !tbaa !9
  %3126 = load ptr, ptr %41, align 8, !tbaa !9
  %3127 = call i32 @s2n_test_basic_recv(ptr noundef %3125, ptr noundef %3126)
  %3128 = call zeroext i1 @s2n_result_is_error(i32 %3127)
  br i1 %3128, label %3151, label %3129

3129:                                             ; preds = %3276, %3122
  %3130 = load i32, ptr %1740, align 4, !tbaa !5
  %3131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3132 = call i32 @s2n_print_stacktrace(ptr noundef %3131) #11
  %3133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3134 = trunc nuw i8 %3133 to i1
  br i1 %3134, label %3135, label %3139

3135:                                             ; preds = %3129
  %3136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3137 = call i32 @fileno(ptr noundef %3136) #11
  %3138 = call i32 @isatty(i32 noundef %3137) #11
  %.not405 = icmp eq i32 %3138, 0
  br i1 %.not405, label %3139, label %3140

3139:                                             ; preds = %3135, %3129
  br label %3140

3140:                                             ; preds = %3135, %3139
  %.str.5.sink1468 = phi ptr [ @.str.5, %3139 ], [ @.str.2, %3135 ]
  store i32 %3130, ptr %1740, align 4, !tbaa !5
  %3141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3142 = load i32, ptr @test_count, align 4, !tbaa !5
  %3143 = load i32, ptr %1059, align 4, !tbaa !5
  %3144 = call ptr @s2n_strerror(i32 noundef %3143, ptr noundef nonnull @.str.4) #11
  %3145 = load i32, ptr %1059, align 4, !tbaa !5
  %3146 = call ptr @s2n_strerror_debug(i32 noundef %3145, ptr noundef nonnull @.str.4) #11
  %3147 = load i32, ptr %1740, align 4, !tbaa !5
  %3148 = call ptr @strerror(i32 noundef %3147) #11
  %3149 = load i32, ptr %1740, align 4, !tbaa !5
  %3150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3141, ptr noundef nonnull %.str.5.sink1468, i32 noundef %3142, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %3144, ptr noundef %3146, ptr noundef %3148, i32 noundef %3149) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3151:                                             ; preds = %3122
  %3152 = load i32, ptr @test_count, align 4, !tbaa !5
  %3153 = add nsw i32 %3152, 1
  store i32 %3153, ptr @test_count, align 4, !tbaa !5
  %3154 = load i32, ptr %1059, align 4, !tbaa !5
  %3155 = icmp eq i32 %3154, 335544322
  br i1 %3155, label %3178, label %3156

3156:                                             ; preds = %3283, %3151
  %3157 = load i32, ptr %1740, align 4, !tbaa !5
  %3158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3159 = call i32 @s2n_print_stacktrace(ptr noundef %3158) #11
  %3160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3161 = trunc nuw i8 %3160 to i1
  br i1 %3161, label %3162, label %3166

3162:                                             ; preds = %3156
  %3163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3164 = call i32 @fileno(ptr noundef %3163) #11
  %3165 = call i32 @isatty(i32 noundef %3164) #11
  %.not406 = icmp eq i32 %3165, 0
  br i1 %.not406, label %3166, label %3167

3166:                                             ; preds = %3162, %3156
  br label %3167

3167:                                             ; preds = %3162, %3166
  %.str.5.sink1477 = phi ptr [ @.str.5, %3166 ], [ @.str.2, %3162 ]
  store i32 %3157, ptr %1740, align 4, !tbaa !5
  %3168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3169 = load i32, ptr @test_count, align 4, !tbaa !5
  %3170 = load i32, ptr %1059, align 4, !tbaa !5
  %3171 = call ptr @s2n_strerror(i32 noundef %3170, ptr noundef nonnull @.str.4) #11
  %3172 = load i32, ptr %1059, align 4, !tbaa !5
  %3173 = call ptr @s2n_strerror_debug(i32 noundef %3172, ptr noundef nonnull @.str.4) #11
  %3174 = load i32, ptr %1740, align 4, !tbaa !5
  %3175 = call ptr @strerror(i32 noundef %3174) #11
  %3176 = load i32, ptr %1740, align 4, !tbaa !5
  %3177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3168, ptr noundef nonnull %.str.5.sink1477, i32 noundef %3169, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %3171, ptr noundef %3173, ptr noundef %3175, i32 noundef %3176) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3178:                                             ; preds = %3151
  %3179 = add nsw i32 %3152, 2
  store i32 %3179, ptr @test_count, align 4, !tbaa !5
  %3180 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %3181 = icmp eq ptr %3180, null
  br i1 %3181, label %3182, label %3204

3182:                                             ; preds = %3288, %3178
  %3183 = load i32, ptr %1740, align 4, !tbaa !5
  %3184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3185 = call i32 @s2n_print_stacktrace(ptr noundef %3184) #11
  %3186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3187 = trunc nuw i8 %3186 to i1
  br i1 %3187, label %3188, label %3192

3188:                                             ; preds = %3182
  %3189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3190 = call i32 @fileno(ptr noundef %3189) #11
  %3191 = call i32 @isatty(i32 noundef %3190) #11
  %.not408 = icmp eq i32 %3191, 0
  br i1 %.not408, label %3192, label %3193

3192:                                             ; preds = %3188, %3182
  br label %3193

3193:                                             ; preds = %3188, %3192
  %.str.5.sink1486 = phi ptr [ @.str.5, %3192 ], [ @.str.2, %3188 ]
  store i32 %3183, ptr %1740, align 4, !tbaa !5
  %3194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3195 = load i32, ptr @test_count, align 4, !tbaa !5
  %3196 = load i32, ptr %1059, align 4, !tbaa !5
  %3197 = call ptr @s2n_strerror(i32 noundef %3196, ptr noundef nonnull @.str.4) #11
  %3198 = load i32, ptr %1059, align 4, !tbaa !5
  %3199 = call ptr @s2n_strerror_debug(i32 noundef %3198, ptr noundef nonnull @.str.4) #11
  %3200 = load i32, ptr %1740, align 4, !tbaa !5
  %3201 = call ptr @strerror(i32 noundef %3200) #11
  %3202 = load i32, ptr %1740, align 4, !tbaa !5
  %3203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3194, ptr noundef nonnull %.str.5.sink1486, i32 noundef %3195, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %3197, ptr noundef %3199, ptr noundef %3201, i32 noundef %3202) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3204:                                             ; preds = %3178
  store i32 0, ptr %1059, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1740, align 4, !tbaa !5
  br i1 %2538, label %3205, label %3232

3205:                                             ; preds = %3204
  %3206 = load i32, ptr @test_count, align 4, !tbaa !5
  %3207 = add nsw i32 %3206, 1
  store i32 %3207, ptr @test_count, align 4, !tbaa !5
  %3208 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0) #11
  %3209 = call zeroext i1 @s2n_result_is_ok(i32 %3208)
  br i1 %3209, label %3232, label %3210

3210:                                             ; preds = %3293, %3205
  %3211 = load i32, ptr %1740, align 4, !tbaa !5
  %3212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3213 = call i32 @s2n_print_stacktrace(ptr noundef %3212) #11
  %3214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3215 = trunc nuw i8 %3214 to i1
  br i1 %3215, label %3216, label %3220

3216:                                             ; preds = %3210
  %3217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3218 = call i32 @fileno(ptr noundef %3217) #11
  %3219 = call i32 @isatty(i32 noundef %3218) #11
  %.not407 = icmp eq i32 %3219, 0
  br i1 %.not407, label %3220, label %3221

3220:                                             ; preds = %3216, %3210
  br label %3221

3221:                                             ; preds = %3216, %3220
  %.str.5.sink1495 = phi ptr [ @.str.5, %3220 ], [ @.str.2, %3216 ]
  store i32 %3211, ptr %1740, align 4, !tbaa !5
  %3222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3223 = load i32, ptr @test_count, align 4, !tbaa !5
  %3224 = load i32, ptr %1059, align 4, !tbaa !5
  %3225 = call ptr @s2n_strerror(i32 noundef %3224, ptr noundef nonnull @.str.4) #11
  %3226 = load i32, ptr %1059, align 4, !tbaa !5
  %3227 = call ptr @s2n_strerror_debug(i32 noundef %3226, ptr noundef nonnull @.str.4) #11
  %3228 = load i32, ptr %1740, align 4, !tbaa !5
  %3229 = call ptr @strerror(i32 noundef %3228) #11
  %3230 = load i32, ptr %1740, align 4, !tbaa !5
  %3231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3222, ptr noundef nonnull %.str.5.sink1495, i32 noundef %3223, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 477, ptr noundef %3225, ptr noundef %3227, ptr noundef %3229, i32 noundef %3230) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3232:                                             ; preds = %3205, %3204
  %3233 = call i32 @s2n_mem_test_free_callbacks(ptr noundef nonnull %45) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #11
  %3234 = call i32 @s2n_stuffer_free(ptr noundef nonnull %44) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %44) #11
  %3235 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %43) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %43) #11
  %3236 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %42) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #11
  %3237 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %41) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #11
  %3238 = call ptr @s2n_connection_new(i32 noundef %2540) #11
  store ptr %3238, ptr %41, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #11
  %3239 = call ptr @s2n_connection_new(i32 noundef %2542) #11
  store ptr %3239, ptr %42, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %43) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %43, i8 0, i64 80, i1 false)
  %3240 = load i32, ptr @test_count, align 4, !tbaa !5
  %3241 = add nsw i32 %3240, 1
  store i32 %3241, ptr @test_count, align 4, !tbaa !5
  %3242 = load ptr, ptr %41, align 8, !tbaa !9
  %3243 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %137, ptr noundef %3239, ptr noundef %3242, ptr noundef nonnull %43)
  %3244 = call zeroext i1 @s2n_result_is_ok(i32 %3243)
  br i1 %3244, label %3245, label %2937

3245:                                             ; preds = %3232
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %44) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %44, i8 0, i64 40, i1 false)
  %3246 = load i32, ptr @test_count, align 4, !tbaa !5
  %3247 = add nsw i32 %3246, 1
  store i32 %3247, ptr @test_count, align 4, !tbaa !5
  %3248 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %44, i32 noundef 0) #11
  %3249 = icmp eq i32 %3248, -1
  br i1 %3249, label %2964, label %3250

3250:                                             ; preds = %3245
  %3251 = load i32, ptr @test_count, align 4, !tbaa !5
  %3252 = add nsw i32 %3251, 1
  store i32 %3252, ptr @test_count, align 4, !tbaa !5
  %3253 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %44, i8 noundef zeroext -1) #11
  %3254 = icmp eq i32 %3253, -1
  br i1 %3254, label %2991, label %3255

3255:                                             ; preds = %3250
  %3256 = load i32, ptr @test_count, align 4, !tbaa !5
  %3257 = add nsw i32 %3256, 1
  store i32 %3257, ptr @test_count, align 4, !tbaa !5
  %3258 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %44, i32 noundef 3001) #11
  %3259 = icmp eq i32 %3258, -1
  br i1 %3259, label %3018, label %3260

3260:                                             ; preds = %3255
  %3261 = load i32, ptr @test_count, align 4, !tbaa !5
  %3262 = add nsw i32 %3261, 1
  store i32 %3262, ptr @test_count, align 4, !tbaa !5
  %3263 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %44, i32 noundef 3001) #11
  %3264 = icmp eq i32 %3263, -1
  br i1 %3264, label %3045, label %3265

3265:                                             ; preds = %3260
  %3266 = load i32, ptr @test_count, align 4, !tbaa !5
  %3267 = add nsw i32 %3266, 1
  store i32 %3267, ptr @test_count, align 4, !tbaa !5
  %3268 = load ptr, ptr %42, align 8, !tbaa !9
  %3269 = call i32 @s2n_test_send_records(ptr noundef %3268, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %44, i32 noundef %2922)
  %3270 = call zeroext i1 @s2n_result_is_ok(i32 %3269)
  br i1 %3270, label %3271, label %3073

3271:                                             ; preds = %3265
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %45) #11
  store i8 0, ptr %45, align 1
  %3272 = load i32, ptr @test_count, align 4, !tbaa !5
  %3273 = add nsw i32 %3272, 1
  store i32 %3273, ptr @test_count, align 4, !tbaa !5
  %3274 = call i32 @s2n_mem_test_init_callbacks(ptr noundef nonnull %45) #11
  %3275 = call zeroext i1 @s2n_result_is_ok(i32 %3274)
  br i1 %3275, label %3276, label %3100

3276:                                             ; preds = %3271
  %3277 = load i32, ptr @test_count, align 4, !tbaa !5
  %3278 = add nsw i32 %3277, 1
  store i32 %3278, ptr @test_count, align 4, !tbaa !5
  %3279 = load ptr, ptr %42, align 8, !tbaa !9
  %3280 = load ptr, ptr %41, align 8, !tbaa !9
  %3281 = call i32 @s2n_test_basic_recv(ptr noundef %3279, ptr noundef %3280)
  %3282 = call zeroext i1 @s2n_result_is_error(i32 %3281)
  br i1 %3282, label %3283, label %3129

3283:                                             ; preds = %3276
  %3284 = load i32, ptr @test_count, align 4, !tbaa !5
  %3285 = add nsw i32 %3284, 1
  store i32 %3285, ptr @test_count, align 4, !tbaa !5
  %3286 = load i32, ptr %1059, align 4, !tbaa !5
  %3287 = icmp eq i32 %3286, 335544322
  br i1 %3287, label %3288, label %3156

3288:                                             ; preds = %3283
  %3289 = add nsw i32 %3284, 2
  store i32 %3289, ptr @test_count, align 4, !tbaa !5
  %3290 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %3291 = icmp eq ptr %3290, null
  br i1 %3291, label %3182, label %3292

3292:                                             ; preds = %3288
  store i32 0, ptr %1059, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1740, align 4, !tbaa !5
  br i1 %2543, label %3293, label %3298

3293:                                             ; preds = %3292
  %3294 = load i32, ptr @test_count, align 4, !tbaa !5
  %3295 = add nsw i32 %3294, 1
  store i32 %3295, ptr @test_count, align 4, !tbaa !5
  %3296 = call i32 @s2n_mem_test_assert_malloc_count(i32 noundef 0) #11
  %3297 = call zeroext i1 @s2n_result_is_ok(i32 %3296)
  br i1 %3297, label %3298, label %3210

3298:                                             ; preds = %3293, %3292
  %3299 = call i32 @s2n_mem_test_free_callbacks(ptr noundef nonnull %45) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #11
  %3300 = call i32 @s2n_stuffer_free(ptr noundef nonnull %44) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %44) #11
  %3301 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %43) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %43) #11
  %3302 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %42) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #11
  %3303 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %41) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #11
  %3304 = add nuw nsw i64 %.0379520, 1
  %exitcond532.not = icmp eq i64 %3304, 7
  br i1 %exitcond532.not, label %.preheader.preheader, label %.preheader492, !llvm.loop !62

3305:                                             ; preds = %.preheader.1, %.preheader.preheader
  %3306 = load i32, ptr %1740, align 4, !tbaa !5
  %3307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3308 = call i32 @s2n_print_stacktrace(ptr noundef %3307) #11
  %3309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3310 = trunc nuw i8 %3309 to i1
  br i1 %3310, label %3311, label %3315

3311:                                             ; preds = %3305
  %3312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3313 = call i32 @fileno(ptr noundef %3312) #11
  %3314 = call i32 @isatty(i32 noundef %3313) #11
  %.not394 = icmp eq i32 %3314, 0
  br i1 %.not394, label %3315, label %3316

3315:                                             ; preds = %3311, %3305
  br label %3316

3316:                                             ; preds = %3311, %3315
  %.str.5.sink1504 = phi ptr [ @.str.5, %3315 ], [ @.str.2, %3311 ]
  store i32 %3306, ptr %1740, align 4, !tbaa !5
  %3317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3318 = load i32, ptr @test_count, align 4, !tbaa !5
  %3319 = load i32, ptr %1059, align 4, !tbaa !5
  %3320 = call ptr @s2n_strerror(i32 noundef %3319, ptr noundef nonnull @.str.4) #11
  %3321 = load i32, ptr %1059, align 4, !tbaa !5
  %3322 = call ptr @s2n_strerror_debug(i32 noundef %3321, ptr noundef nonnull @.str.4) #11
  %3323 = load i32, ptr %1740, align 4, !tbaa !5
  %3324 = call ptr @strerror(i32 noundef %3323) #11
  %3325 = load i32, ptr %1740, align 4, !tbaa !5
  %3326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3317, ptr noundef nonnull %.str.5.sink1504, i32 noundef %3318, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 498, ptr noundef %3320, ptr noundef %3322, ptr noundef %3324, i32 noundef %3325) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3327:                                             ; preds = %.preheader.preheader
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %49) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %49, i8 0, i64 40, i1 false)
  %3328 = load i32, ptr @test_count, align 4, !tbaa !5
  %3329 = add nsw i32 %3328, 1
  store i32 %3329, ptr @test_count, align 4, !tbaa !5
  %3330 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %49, i32 noundef 0) #11
  %3331 = icmp eq i32 %3330, -1
  br i1 %3331, label %3332, label %3354

3332:                                             ; preds = %3529, %3327
  %3333 = load i32, ptr %1740, align 4, !tbaa !5
  %3334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3335 = call i32 @s2n_print_stacktrace(ptr noundef %3334) #11
  %3336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3337 = trunc nuw i8 %3336 to i1
  br i1 %3337, label %3338, label %3342

3338:                                             ; preds = %3332
  %3339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3340 = call i32 @fileno(ptr noundef %3339) #11
  %3341 = call i32 @isatty(i32 noundef %3340) #11
  %.not401 = icmp eq i32 %3341, 0
  br i1 %.not401, label %3342, label %3343

3342:                                             ; preds = %3338, %3332
  br label %3343

3343:                                             ; preds = %3338, %3342
  %.str.5.sink1513 = phi ptr [ @.str.5, %3342 ], [ @.str.2, %3338 ]
  store i32 %3333, ptr %1740, align 4, !tbaa !5
  %3344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3345 = load i32, ptr @test_count, align 4, !tbaa !5
  %3346 = load i32, ptr %1059, align 4, !tbaa !5
  %3347 = call ptr @s2n_strerror(i32 noundef %3346, ptr noundef nonnull @.str.4) #11
  %3348 = load i32, ptr %1059, align 4, !tbaa !5
  %3349 = call ptr @s2n_strerror_debug(i32 noundef %3348, ptr noundef nonnull @.str.4) #11
  %3350 = load i32, ptr %1740, align 4, !tbaa !5
  %3351 = call ptr @strerror(i32 noundef %3350) #11
  %3352 = load i32, ptr %1740, align 4, !tbaa !5
  %3353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3344, ptr noundef nonnull %.str.5.sink1513, i32 noundef %3345, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 502, ptr noundef %3347, ptr noundef %3349, ptr noundef %3351, i32 noundef %3352) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3354:                                             ; preds = %3327
  %3355 = load i32, ptr @test_count, align 4, !tbaa !5
  %3356 = add nsw i32 %3355, 1
  store i32 %3356, ptr @test_count, align 4, !tbaa !5
  %3357 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %49, i8 noundef zeroext 24) #11
  %3358 = icmp eq i32 %3357, -1
  br i1 %3358, label %3359, label %3381

3359:                                             ; preds = %3534, %3354
  %3360 = load i32, ptr %1740, align 4, !tbaa !5
  %3361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3362 = call i32 @s2n_print_stacktrace(ptr noundef %3361) #11
  %3363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3364 = trunc nuw i8 %3363 to i1
  br i1 %3364, label %3365, label %3369

3365:                                             ; preds = %3359
  %3366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3367 = call i32 @fileno(ptr noundef %3366) #11
  %3368 = call i32 @isatty(i32 noundef %3367) #11
  %.not400 = icmp eq i32 %3368, 0
  br i1 %.not400, label %3369, label %3370

3369:                                             ; preds = %3365, %3359
  br label %3370

3370:                                             ; preds = %3365, %3369
  %.str.5.sink1522 = phi ptr [ @.str.5, %3369 ], [ @.str.2, %3365 ]
  store i32 %3360, ptr %1740, align 4, !tbaa !5
  %3371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3372 = load i32, ptr @test_count, align 4, !tbaa !5
  %3373 = load i32, ptr %1059, align 4, !tbaa !5
  %3374 = call ptr @s2n_strerror(i32 noundef %3373, ptr noundef nonnull @.str.4) #11
  %3375 = load i32, ptr %1059, align 4, !tbaa !5
  %3376 = call ptr @s2n_strerror_debug(i32 noundef %3375, ptr noundef nonnull @.str.4) #11
  %3377 = load i32, ptr %1740, align 4, !tbaa !5
  %3378 = call ptr @strerror(i32 noundef %3377) #11
  %3379 = load i32, ptr %1740, align 4, !tbaa !5
  %3380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3371, ptr noundef nonnull %.str.5.sink1522, i32 noundef %3372, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 503, ptr noundef %3374, ptr noundef %3376, ptr noundef %3378, i32 noundef %3379) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3381:                                             ; preds = %3354
  %3382 = load i32, ptr @test_count, align 4, !tbaa !5
  %3383 = add nsw i32 %3382, 1
  store i32 %3383, ptr @test_count, align 4, !tbaa !5
  %3384 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %49, i32 noundef 1) #11
  %3385 = icmp eq i32 %3384, -1
  br i1 %3385, label %3386, label %3408

3386:                                             ; preds = %3539, %3381
  %3387 = load i32, ptr %1740, align 4, !tbaa !5
  %3388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3389 = call i32 @s2n_print_stacktrace(ptr noundef %3388) #11
  %3390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3391 = trunc nuw i8 %3390 to i1
  br i1 %3391, label %3392, label %3396

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

3396:                                             ; preds = %3392, %3386
  br label %3397

3397:                                             ; preds = %3392, %3396
  %.str.5.sink1531 = phi ptr [ @.str.5, %3396 ], [ @.str.2, %3392 ]
  store i32 %3387, ptr %1740, align 4, !tbaa !5
  %3398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3399 = load i32, ptr @test_count, align 4, !tbaa !5
  %3400 = load i32, ptr %1059, align 4, !tbaa !5
  %3401 = call ptr @s2n_strerror(i32 noundef %3400, ptr noundef nonnull @.str.4) #11
  %3402 = load i32, ptr %1059, align 4, !tbaa !5
  %3403 = call ptr @s2n_strerror_debug(i32 noundef %3402, ptr noundef nonnull @.str.4) #11
  %3404 = load i32, ptr %1740, align 4, !tbaa !5
  %3405 = call ptr @strerror(i32 noundef %3404) #11
  %3406 = load i32, ptr %1740, align 4, !tbaa !5
  %3407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3398, ptr noundef nonnull %.str.5.sink1531, i32 noundef %3399, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 504, ptr noundef %3401, ptr noundef %3403, ptr noundef %3405, i32 noundef %3406) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3408:                                             ; preds = %3381
  %3409 = load i32, ptr @test_count, align 4, !tbaa !5
  %3410 = add nsw i32 %3409, 1
  store i32 %3410, ptr @test_count, align 4, !tbaa !5
  %3411 = load ptr, ptr %47, align 8, !tbaa !9
  %3412 = call i32 @s2n_test_send_records(ptr noundef %3411, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %49, i32 noundef 2)
  %3413 = call zeroext i1 @s2n_result_is_ok(i32 %3412)
  br i1 %3413, label %3436, label %3414

3414:                                             ; preds = %3544, %3408
  %3415 = load i32, ptr %1740, align 4, !tbaa !5
  %3416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3417 = call i32 @s2n_print_stacktrace(ptr noundef %3416) #11
  %3418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3419 = trunc nuw i8 %3418 to i1
  br i1 %3419, label %3420, label %3424

3420:                                             ; preds = %3414
  %3421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3422 = call i32 @fileno(ptr noundef %3421) #11
  %3423 = call i32 @isatty(i32 noundef %3422) #11
  %.not395 = icmp eq i32 %3423, 0
  br i1 %.not395, label %3424, label %3425

3424:                                             ; preds = %3420, %3414
  br label %3425

3425:                                             ; preds = %3420, %3424
  %.str.5.sink1540 = phi ptr [ @.str.5, %3424 ], [ @.str.2, %3420 ]
  store i32 %3415, ptr %1740, align 4, !tbaa !5
  %3426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3427 = load i32, ptr @test_count, align 4, !tbaa !5
  %3428 = load i32, ptr %1059, align 4, !tbaa !5
  %3429 = call ptr @s2n_strerror(i32 noundef %3428, ptr noundef nonnull @.str.4) #11
  %3430 = load i32, ptr %1059, align 4, !tbaa !5
  %3431 = call ptr @s2n_strerror_debug(i32 noundef %3430, ptr noundef nonnull @.str.4) #11
  %3432 = load i32, ptr %1740, align 4, !tbaa !5
  %3433 = call ptr @strerror(i32 noundef %3432) #11
  %3434 = load i32, ptr %1740, align 4, !tbaa !5
  %3435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3426, ptr noundef nonnull %.str.5.sink1540, i32 noundef %3427, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 511, ptr noundef %3429, ptr noundef %3431, ptr noundef %3433, i32 noundef %3434) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3436:                                             ; preds = %3408
  %3437 = load i32, ptr @test_count, align 4, !tbaa !5
  %3438 = add nsw i32 %3437, 1
  store i32 %3438, ptr @test_count, align 4, !tbaa !5
  %3439 = load ptr, ptr %47, align 8, !tbaa !9
  %3440 = load ptr, ptr %46, align 8, !tbaa !9
  %3441 = call i32 @s2n_test_basic_recv(ptr noundef %3439, ptr noundef %3440)
  %3442 = call zeroext i1 @s2n_result_is_error(i32 %3441)
  br i1 %3442, label %3465, label %3443

3443:                                             ; preds = %3550, %3436
  %3444 = load i32, ptr %1740, align 4, !tbaa !5
  %3445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3446 = call i32 @s2n_print_stacktrace(ptr noundef %3445) #11
  %3447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3448 = trunc nuw i8 %3447 to i1
  br i1 %3448, label %3449, label %3453

3449:                                             ; preds = %3443
  %3450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3451 = call i32 @fileno(ptr noundef %3450) #11
  %3452 = call i32 @isatty(i32 noundef %3451) #11
  %.not396 = icmp eq i32 %3452, 0
  br i1 %.not396, label %3453, label %3454

3453:                                             ; preds = %3449, %3443
  br label %3454

3454:                                             ; preds = %3449, %3453
  %.str.5.sink1549 = phi ptr [ @.str.5, %3453 ], [ @.str.2, %3449 ]
  store i32 %3444, ptr %1740, align 4, !tbaa !5
  %3455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3456 = load i32, ptr @test_count, align 4, !tbaa !5
  %3457 = load i32, ptr %1059, align 4, !tbaa !5
  %3458 = call ptr @s2n_strerror(i32 noundef %3457, ptr noundef nonnull @.str.4) #11
  %3459 = load i32, ptr %1059, align 4, !tbaa !5
  %3460 = call ptr @s2n_strerror_debug(i32 noundef %3459, ptr noundef nonnull @.str.4) #11
  %3461 = load i32, ptr %1740, align 4, !tbaa !5
  %3462 = call ptr @strerror(i32 noundef %3461) #11
  %3463 = load i32, ptr %1740, align 4, !tbaa !5
  %3464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3455, ptr noundef nonnull %.str.5.sink1549, i32 noundef %3456, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 512, ptr noundef %3458, ptr noundef %3460, ptr noundef %3462, i32 noundef %3463) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3465:                                             ; preds = %3436
  %3466 = load i32, ptr @test_count, align 4, !tbaa !5
  %3467 = add nsw i32 %3466, 1
  store i32 %3467, ptr @test_count, align 4, !tbaa !5
  %3468 = load i32, ptr %1059, align 4, !tbaa !5
  %3469 = icmp eq i32 %3468, 335544322
  br i1 %3469, label %3492, label %3470

3470:                                             ; preds = %3557, %3465
  %3471 = load i32, ptr %1740, align 4, !tbaa !5
  %3472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3473 = call i32 @s2n_print_stacktrace(ptr noundef %3472) #11
  %3474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3475 = trunc nuw i8 %3474 to i1
  br i1 %3475, label %3476, label %3480

3476:                                             ; preds = %3470
  %3477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3478 = call i32 @fileno(ptr noundef %3477) #11
  %3479 = call i32 @isatty(i32 noundef %3478) #11
  %.not397 = icmp eq i32 %3479, 0
  br i1 %.not397, label %3480, label %3481

3480:                                             ; preds = %3476, %3470
  br label %3481

3481:                                             ; preds = %3476, %3480
  %.str.5.sink1558 = phi ptr [ @.str.5, %3480 ], [ @.str.2, %3476 ]
  store i32 %3471, ptr %1740, align 4, !tbaa !5
  %3482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3483 = load i32, ptr @test_count, align 4, !tbaa !5
  %3484 = load i32, ptr %1059, align 4, !tbaa !5
  %3485 = call ptr @s2n_strerror(i32 noundef %3484, ptr noundef nonnull @.str.4) #11
  %3486 = load i32, ptr %1059, align 4, !tbaa !5
  %3487 = call ptr @s2n_strerror_debug(i32 noundef %3486, ptr noundef nonnull @.str.4) #11
  %3488 = load i32, ptr %1740, align 4, !tbaa !5
  %3489 = call ptr @strerror(i32 noundef %3488) #11
  %3490 = load i32, ptr %1740, align 4, !tbaa !5
  %3491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3482, ptr noundef nonnull %.str.5.sink1558, i32 noundef %3483, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 512, ptr noundef %3485, ptr noundef %3487, ptr noundef %3489, i32 noundef %3490) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3492:                                             ; preds = %3465
  %3493 = add nsw i32 %3466, 2
  store i32 %3493, ptr @test_count, align 4, !tbaa !5
  %3494 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %3495 = icmp eq ptr %3494, null
  br i1 %3495, label %3496, label %.preheader.1

3496:                                             ; preds = %3562, %3492
  %3497 = load i32, ptr %1740, align 4, !tbaa !5
  %3498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3499 = call i32 @s2n_print_stacktrace(ptr noundef %3498) #11
  %3500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3501 = trunc nuw i8 %3500 to i1
  br i1 %3501, label %3502, label %3506

3502:                                             ; preds = %3496
  %3503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3504 = call i32 @fileno(ptr noundef %3503) #11
  %3505 = call i32 @isatty(i32 noundef %3504) #11
  %.not398 = icmp eq i32 %3505, 0
  br i1 %.not398, label %3506, label %3507

3506:                                             ; preds = %3502, %3496
  br label %3507

3507:                                             ; preds = %3502, %3506
  %.str.5.sink1567 = phi ptr [ @.str.5, %3506 ], [ @.str.2, %3502 ]
  store i32 %3497, ptr %1740, align 4, !tbaa !5
  %3508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3509 = load i32, ptr @test_count, align 4, !tbaa !5
  %3510 = load i32, ptr %1059, align 4, !tbaa !5
  %3511 = call ptr @s2n_strerror(i32 noundef %3510, ptr noundef nonnull @.str.4) #11
  %3512 = load i32, ptr %1059, align 4, !tbaa !5
  %3513 = call ptr @s2n_strerror_debug(i32 noundef %3512, ptr noundef nonnull @.str.4) #11
  %3514 = load i32, ptr %1740, align 4, !tbaa !5
  %3515 = call ptr @strerror(i32 noundef %3514) #11
  %3516 = load i32, ptr %1740, align 4, !tbaa !5
  %3517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3508, ptr noundef nonnull %.str.5.sink1567, i32 noundef %3509, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 512, ptr noundef %3511, ptr noundef %3513, ptr noundef %3515, i32 noundef %3516) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.preheader.1:                                     ; preds = %3492
  store i32 0, ptr %1059, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1740, align 4, !tbaa !5
  %3518 = call i32 @s2n_stuffer_free(ptr noundef nonnull %49) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %49) #11
  %3519 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %48) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %48) #11
  %3520 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %47) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #11
  %3521 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %46) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #11
  %3522 = call ptr @s2n_connection_new(i32 noundef %2540) #11
  store ptr %3522, ptr %46, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #11
  %3523 = call ptr @s2n_connection_new(i32 noundef %2542) #11
  store ptr %3523, ptr %47, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %48) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %48, i8 0, i64 80, i1 false)
  %3524 = load i32, ptr @test_count, align 4, !tbaa !5
  %3525 = add nsw i32 %3524, 1
  store i32 %3525, ptr @test_count, align 4, !tbaa !5
  %3526 = load ptr, ptr %46, align 8, !tbaa !9
  %3527 = call i32 @s2n_test_init_sender_and_receiver(ptr noundef %137, ptr noundef %3523, ptr noundef %3526, ptr noundef nonnull %48)
  %3528 = call zeroext i1 @s2n_result_is_ok(i32 %3527)
  br i1 %3528, label %3529, label %3305

3529:                                             ; preds = %.preheader.1
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %49) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %49, i8 0, i64 40, i1 false)
  %3530 = load i32, ptr @test_count, align 4, !tbaa !5
  %3531 = add nsw i32 %3530, 1
  store i32 %3531, ptr @test_count, align 4, !tbaa !5
  %3532 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %49, i32 noundef 0) #11
  %3533 = icmp eq i32 %3532, -1
  br i1 %3533, label %3332, label %3534

3534:                                             ; preds = %3529
  %3535 = load i32, ptr @test_count, align 4, !tbaa !5
  %3536 = add nsw i32 %3535, 1
  store i32 %3536, ptr @test_count, align 4, !tbaa !5
  %3537 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %49, i8 noundef zeroext 24) #11
  %3538 = icmp eq i32 %3537, -1
  br i1 %3538, label %3359, label %3539

3539:                                             ; preds = %3534
  %3540 = load i32, ptr @test_count, align 4, !tbaa !5
  %3541 = add nsw i32 %3540, 1
  store i32 %3541, ptr @test_count, align 4, !tbaa !5
  %3542 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %49, i32 noundef 1) #11
  %3543 = icmp eq i32 %3542, -1
  br i1 %3543, label %3386, label %3544

3544:                                             ; preds = %3539
  %3545 = load i32, ptr @test_count, align 4, !tbaa !5
  %3546 = add nsw i32 %3545, 1
  store i32 %3546, ptr @test_count, align 4, !tbaa !5
  %3547 = load ptr, ptr %47, align 8, !tbaa !9
  %3548 = call i32 @s2n_test_send_records(ptr noundef %3547, ptr noundef nonnull byval(%struct.s2n_stuffer) align 8 %49, i32 noundef 2)
  %3549 = call zeroext i1 @s2n_result_is_ok(i32 %3548)
  br i1 %3549, label %3550, label %3414

3550:                                             ; preds = %3544
  %3551 = load i32, ptr @test_count, align 4, !tbaa !5
  %3552 = add nsw i32 %3551, 1
  store i32 %3552, ptr @test_count, align 4, !tbaa !5
  %3553 = load ptr, ptr %47, align 8, !tbaa !9
  %3554 = load ptr, ptr %46, align 8, !tbaa !9
  %3555 = call i32 @s2n_test_basic_recv(ptr noundef %3553, ptr noundef %3554)
  %3556 = call zeroext i1 @s2n_result_is_error(i32 %3555)
  br i1 %3556, label %3557, label %3443

3557:                                             ; preds = %3550
  %3558 = load i32, ptr @test_count, align 4, !tbaa !5
  %3559 = add nsw i32 %3558, 1
  store i32 %3559, ptr @test_count, align 4, !tbaa !5
  %3560 = load i32, ptr %1059, align 4, !tbaa !5
  %3561 = icmp eq i32 %3560, 335544322
  br i1 %3561, label %3562, label %3470

3562:                                             ; preds = %3557
  %3563 = add nsw i32 %3558, 2
  store i32 %3563, ptr @test_count, align 4, !tbaa !5
  %3564 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %3565 = icmp eq ptr %3564, null
  br i1 %3565, label %3496, label %3566

3566:                                             ; preds = %3562
  store i32 0, ptr %1059, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %1740, align 4, !tbaa !5
  %3567 = call i32 @s2n_stuffer_free(ptr noundef nonnull %49) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %49) #11
  %3568 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %48) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %48) #11
  %3569 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %47) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #11
  %3570 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %46) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #11
  %3571 = call i32 @s2n_cleanup() #11
  %3572 = icmp eq i32 %3571, -1
  br i1 %3572, label %3573, label %3595

3573:                                             ; preds = %3566
  %3574 = load i32, ptr %1740, align 4, !tbaa !5
  %3575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3576 = call i32 @s2n_print_stacktrace(ptr noundef %3575) #11
  %3577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3578 = trunc nuw i8 %3577 to i1
  br i1 %3578, label %3579, label %3583

3579:                                             ; preds = %3573
  %3580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3581 = call i32 @fileno(ptr noundef %3580) #11
  %3582 = call i32 @isatty(i32 noundef %3581) #11
  %.not393 = icmp eq i32 %3582, 0
  br i1 %.not393, label %3583, label %3584

3583:                                             ; preds = %3579, %3573
  br label %3584

3584:                                             ; preds = %3579, %3583
  %.str.5.sink1576 = phi ptr [ @.str.5, %3583 ], [ @.str.2, %3579 ]
  store i32 %3574, ptr %1740, align 4, !tbaa !5
  %3585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3586 = load i32, ptr @test_count, align 4, !tbaa !5
  %3587 = load i32, ptr %1059, align 4, !tbaa !5
  %3588 = call ptr @s2n_strerror(i32 noundef %3587, ptr noundef nonnull @.str.4) #11
  %3589 = load i32, ptr %1059, align 4, !tbaa !5
  %3590 = call ptr @s2n_strerror_debug(i32 noundef %3589, ptr noundef nonnull @.str.4) #11
  %3591 = load i32, ptr %1740, align 4, !tbaa !5
  %3592 = call ptr @strerror(i32 noundef %3591) #11
  %3593 = load i32, ptr %1740, align 4, !tbaa !5
  %3594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3585, ptr noundef nonnull %.str.5.sink1576, i32 noundef %3586, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 515, ptr noundef %3588, ptr noundef %3590, ptr noundef %3592, i32 noundef %3593) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3595:                                             ; preds = %3566
  %3596 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %3597 = icmp eq i32 %3596, -1
  br i1 %3597, label %3598, label %3620

3598:                                             ; preds = %3595
  %3599 = load i32, ptr %1740, align 4, !tbaa !5
  %3600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3601 = call i32 @s2n_print_stacktrace(ptr noundef %3600) #11
  %3602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3603 = trunc nuw i8 %3602 to i1
  br i1 %3603, label %3604, label %3608

3604:                                             ; preds = %3598
  %3605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3606 = call i32 @fileno(ptr noundef %3605) #11
  %3607 = call i32 @isatty(i32 noundef %3606) #11
  %.not392 = icmp eq i32 %3607, 0
  br i1 %.not392, label %3608, label %3609

3608:                                             ; preds = %3604, %3598
  br label %3609

3609:                                             ; preds = %3604, %3608
  %.str.5.sink1585 = phi ptr [ @.str.5, %3608 ], [ @.str.2, %3604 ]
  store i32 %3599, ptr %1740, align 4, !tbaa !5
  %3610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3611 = load i32, ptr @test_count, align 4, !tbaa !5
  %3612 = load i32, ptr %1059, align 4, !tbaa !5
  %3613 = call ptr @s2n_strerror(i32 noundef %3612, ptr noundef nonnull @.str.4) #11
  %3614 = load i32, ptr %1059, align 4, !tbaa !5
  %3615 = call ptr @s2n_strerror_debug(i32 noundef %3614, ptr noundef nonnull @.str.4) #11
  %3616 = load i32, ptr %1740, align 4, !tbaa !5
  %3617 = call ptr @strerror(i32 noundef %3616) #11
  %3618 = load i32, ptr %1740, align 4, !tbaa !5
  %3619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3610, ptr noundef nonnull %.str.5.sink1585, i32 noundef %3611, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 515, ptr noundef %3613, ptr noundef %3615, ptr noundef %3617, i32 noundef %3618) #13
  call void @exit(i32 noundef 1) #14
  unreachable

3620:                                             ; preds = %3595
  %3621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3622 = trunc nuw i8 %3621 to i1
  br i1 %3622, label %3623, label %3634

3623:                                             ; preds = %3620
  %3624 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3625 = call i32 @fileno(ptr noundef %3624) #11
  %3626 = call i32 @isatty(i32 noundef %3625) #11
  %.not389 = icmp eq i32 %3626, 0
  br i1 %.not389, label %3634, label %3627

3627:                                             ; preds = %3623
  %3628 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not391 = icmp eq i32 %3628, 0
  %3629 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not391, label %3632, label %3630

3630:                                             ; preds = %3627
  %3631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3629, ptr noundef nonnull @.str.57, i32 noundef %3628) #11
  br label %3641

3632:                                             ; preds = %3627
  %3633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3629, ptr noundef nonnull @.str.58) #11
  br label %3641

3634:                                             ; preds = %3623, %3620
  %3635 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not390 = icmp eq i32 %3635, 0
  %3636 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not390, label %3639, label %3637

3637:                                             ; preds = %3634
  %3638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3636, ptr noundef nonnull @.str.59, i32 noundef %3635) #11
  br label %3641

3639:                                             ; preds = %3634
  %3640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3636, ptr noundef nonnull @.str.60) #11
  br label %3641

3641:                                             ; preds = %3637, %3639, %3630, %3632
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 9, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #11
  %3642 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #11
  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

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_session_ticket_cb(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_config_set_renegotiate_request_cb(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

; 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) #8

declare i32 @s2n_config_set_session_tickets_onoff(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_config_add_ticket_crypto_key(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, i64 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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9

declare i32 @s2n_io_stuffer_pair_free(ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #10

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_init_sender_and_receiver(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_key_update_write(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_init(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_skip_write(ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_send_records(ptr noundef, ptr noundef byval(%struct.s2n_stuffer) align 8, i32 noundef) local_unnamed_addr #0

declare i32 @s2n_update_application_traffic_keys(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_mem_test_free_callbacks(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_mem_test_init_callbacks(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_basic_recv(ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_mem_test_assert_malloc_count(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_tls13_server_nst_write(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_blocking_recv(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) local_unnamed_addr #10

declare void @s2n_debug_info_reset() local_unnamed_addr #2

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

declare i32 @s2n_stuffer_write_uint24(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!18, !10, i64 80}
!18 = !{!"s2n_config", !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, !10, i64 8, !10, i64 16, !19, i64 24, !20, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !16, i64 144, !10, i64 152, !16, i64 160, !16, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !21, i64 304, !22, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !20, i64 448}
!19 = !{!"certs_by_type", !7, i64 0}
!20 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!21 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!22 = !{!"short", !7, i64 0}
!23 = !{!18, !10, i64 104}
!24 = !{!18, !7, i64 297}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!7, !7, i64 0}
!28 = !{!29, !6, i64 148}
!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, !16, i64 168, !16, 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, !37, i64 1144, !40, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !42, i64 1776, !42, i64 1816, !42, i64 1856, !42, i64 1896, !6, i64 1936, !16, i64 1944, !7, i64 1952, !42, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !43, i64 2004, !43, i64 2008, !44, i64 2016, !22, i64 2208, !6, i64 2212, !22, i64 2216, !16, i64 2224, !7, i64 2232, !16, i64 2240, !16, i64 2248, !16, i64 2256, !43, i64 2264, !43, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !20, i64 2792, !6, i64 2816, !20, i64 2824, !20, i64 2848, !20, i64 2872, !46, i64 2896, !48, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !20, i64 3784, !6, i64 3808, !50, i64 3816, !7, i64 3848, !42, i64 3992, !20, i64 4032, !20, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !22, i64 4084, !22, i64 4086, !6, i64 4088, !6, i64 4092, !20, i64 4096, !6, i64 4120, !51, i64 4128, !43, i64 4176, !7, i64 4180, !7, i64 4181}
!30 = !{!"s2n_timer", !16, 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, !20, i64 448, !20, 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, !20, i64 8, !20, i64 32, !20, i64 56, !12, i64 80}
!37 = !{!"s2n_handshake_parameters", !38, i64 0, !38, i64 48, !20, i64 96, !6, i64 120, !39, 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}
!38 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!39 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!40 = !{!"s2n_psk_parameters", !6, i64 0, !41, i64 8, !22, i64 40, !22, i64 42, !10, i64 48, !6, i64 56}
!41 = !{!"s2n_array", !20, i64 0, !6, i64 24, !6, i64 28}
!42 = !{!"s2n_stuffer", !20, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!43 = !{!"", !6, i64 0}
!44 = !{!"s2n_handshake", !42, 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, !45, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!45 = !{!"s2n_offered_early_data", !10, i64 0}
!46 = !{!"s2n_client_hello", !20, i64 0, !47, i64 24, !20, i64 728, !20, i64 752, !20, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!47 = !{!"", !7, i64 0, !20, i64 672, !22, i64 696}
!48 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !22, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !49, i64 48, !12, i64 52}
!49 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!50 = !{!"s2n_ticket_fields", !20, i64 0, !6, i64 24}
!51 = !{!"s2n_post_handshake", !42, i64 0, !7, i64 40}
!52 = distinct !{!52, !26}
!53 = !{!29, !22, i64 4084}
!54 = distinct !{!54, !26}
!55 = !{!29, !6, i64 4092}
!56 = !{!42, !6, i64 28}
!57 = !{!42, !6, i64 24}
!58 = distinct !{!58, !26}
!59 = distinct !{!59, !26}
!60 = distinct !{!60, !26}
!61 = distinct !{!61, !26}
!62 = distinct !{!62, !26}


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass