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

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [81 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
@__const.main.protocols = external hidden unnamed_addr constant [3 x ptr], align 16
@.str.11 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [46 x i8], align 1
@__const.main.protocol = external hidden unnamed_addr constant [9 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [73 x i8], align 1
@__const.main.wire_bytes = external hidden unnamed_addr constant [1 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [43 x i8], align 1
@__const.main.wire_bytes.46 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [45 x i8], align 1
@__const.main.test_cases = external hidden unnamed_addr constant [6 x %struct.anon], align 1
@.str.48 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.55 = 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 [3 x ptr], align 16
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca %struct.s2n_result, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca [9 x i8], align 1
  %28 = alloca i8, align 1
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %struct.s2n_result, align 4
  %41 = alloca %struct.s2n_result, align 4
  %42 = alloca ptr, align 8
  %43 = alloca i32, align 4
  %44 = alloca i8, align 1
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca %struct.s2n_stuffer, align 8
  %48 = alloca i32, align 4
  %49 = alloca %struct.s2n_result, align 4
  %50 = alloca i32, align 4
  %51 = alloca i8, align 1
  %52 = alloca i32, align 4
  %53 = alloca [255 x i8], align 16
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i8, align 1
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i64, align 8
  %60 = alloca i8, align 1
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca %struct.s2n_result, align 4
  %65 = alloca ptr, align 8
  %66 = alloca i32, align 4
  %67 = alloca ptr, align 8
  %68 = alloca i32, align 4
  %69 = alloca i8, align 1
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca %struct.s2n_stuffer, align 8
  %73 = alloca i32, align 4
  %74 = alloca %struct.s2n_result, align 4
  %75 = alloca i32, align 4
  %76 = alloca %struct.s2n_result, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca %struct.s2n_result, align 4
  %81 = alloca %struct.s2n_result, align 4
  %82 = alloca ptr, align 8
  %83 = alloca i32, align 4
  %84 = alloca %struct.s2n_stuffer, align 8
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i8, align 1
  %88 = alloca %struct.s2n_result, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i64, align 8
  %92 = alloca i32, align 4
  %93 = alloca %struct.s2n_result, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca %struct.s2n_result, align 4
  %97 = alloca ptr, align 8
  %98 = alloca i32, align 4
  %99 = alloca [1 x i8], align 1
  %100 = alloca %struct.s2n_stuffer, align 8
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca %struct.s2n_result, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca %struct.s2n_result, align 4
  %108 = alloca ptr, align 8
  %109 = alloca i32, align 4
  %110 = alloca [4 x i8], align 1
  %111 = alloca %struct.s2n_stuffer, align 8
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca %struct.s2n_result, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca %struct.s2n_result, align 4
  %119 = alloca [6 x %struct.anon], align 1
  %120 = alloca i64, align 8
  %121 = alloca i8, align 1
  %122 = alloca %struct.s2n_result, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %128

128:                                              ; preds = %2
  br label %129

129:                                              ; preds = %128
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %130 = load ptr, ptr @stdout, align 8, !tbaa !9
  %131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %130, ptr noundef @.str, ptr noundef @.str.1) #11
  %132 = load ptr, ptr @stdout, align 8, !tbaa !9
  %133 = call i32 @fflush(ptr noundef %132)
  br label %134

134:                                              ; preds = %129
  %135 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %136 = icmp eq i32 %135, -1
  br i1 %136, label %137, label %188

137:                                              ; preds = %134
  br label %138

138:                                              ; preds = %137
  br label %139

139:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %140 = call ptr @__errno_location() #12
  %141 = load i32, ptr %140, align 4, !tbaa !5
  store i32 %141, ptr %6, align 4, !tbaa !5
  %142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %143 = call i32 @s2n_print_stacktrace(ptr noundef %142)
  %144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %145 = trunc i8 %144 to i1
  br i1 %145, label %146, label %168

146:                                              ; preds = %139
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = call i32 @fileno(ptr noundef %147) #11
  %149 = call i32 @isatty(i32 noundef %148) #11
  %150 = icmp ne i32 %149, 0
  br i1 %150, label %151, label %168

151:                                              ; preds = %146
  %152 = load i32, ptr %6, align 4, !tbaa !5
  %153 = call ptr @__errno_location() #12
  store i32 %152, ptr %153, align 4, !tbaa !5
  %154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %155 = load i32, ptr @test_count, align 4, !tbaa !5
  %156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %157 = load i32, ptr %156, align 4, !tbaa !5
  %158 = call ptr @s2n_strerror(i32 noundef %157, ptr noundef @.str.4)
  %159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %160 = load i32, ptr %159, align 4, !tbaa !5
  %161 = call ptr @s2n_strerror_debug(i32 noundef %160, ptr noundef @.str.4)
  %162 = call ptr @__errno_location() #12
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = call ptr @strerror(i32 noundef %163) #11
  %165 = call ptr @__errno_location() #12
  %166 = load i32, ptr %165, align 4, !tbaa !5
  %167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %154, ptr noundef @.str.2, i32 noundef %155, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 28, ptr noundef %158, ptr noundef %161, ptr noundef %164, i32 noundef %166) #11
  br label %185

168:                                              ; preds = %146, %139
  %169 = load i32, ptr %6, align 4, !tbaa !5
  %170 = call ptr @__errno_location() #12
  store i32 %169, ptr %170, align 4, !tbaa !5
  %171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %172 = load i32, ptr @test_count, align 4, !tbaa !5
  %173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %174 = load i32, ptr %173, align 4, !tbaa !5
  %175 = call ptr @s2n_strerror(i32 noundef %174, ptr noundef @.str.4)
  %176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %177 = load i32, ptr %176, align 4, !tbaa !5
  %178 = call ptr @s2n_strerror_debug(i32 noundef %177, ptr noundef @.str.4)
  %179 = call ptr @__errno_location() #12
  %180 = load i32, ptr %179, align 4, !tbaa !5
  %181 = call ptr @strerror(i32 noundef %180) #11
  %182 = call ptr @__errno_location() #12
  %183 = load i32, ptr %182, align 4, !tbaa !5
  %184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %171, ptr noundef @.str.5, i32 noundef %172, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 28, ptr noundef %175, ptr noundef %178, ptr noundef %181, i32 noundef %183) #11
  br label %185

185:                                              ; preds = %168, %151
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %186

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

187:                                              ; No predecessors!
  br label %188

188:                                              ; preds = %187, %134
  br label %189

189:                                              ; preds = %188
  br label %190

190:                                              ; preds = %189
  %191 = load i32, ptr @test_count, align 4, !tbaa !5
  %192 = add nsw i32 %191, 1
  store i32 %192, ptr @test_count, align 4, !tbaa !5
  %193 = call i32 @s2n_enable_atexit()
  %194 = icmp eq i32 %193, -1
  br i1 %194, label %195, label %246

195:                                              ; preds = %190
  br label %196

196:                                              ; preds = %195
  br label %197

197:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %198 = call ptr @__errno_location() #12
  %199 = load i32, ptr %198, align 4, !tbaa !5
  store i32 %199, ptr %7, align 4, !tbaa !5
  %200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %201 = call i32 @s2n_print_stacktrace(ptr noundef %200)
  %202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %203 = trunc i8 %202 to i1
  br i1 %203, label %204, label %226

204:                                              ; preds = %197
  %205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %206 = call i32 @fileno(ptr noundef %205) #11
  %207 = call i32 @isatty(i32 noundef %206) #11
  %208 = icmp ne i32 %207, 0
  br i1 %208, label %209, label %226

209:                                              ; preds = %204
  %210 = load i32, ptr %7, align 4, !tbaa !5
  %211 = call ptr @__errno_location() #12
  store i32 %210, ptr %211, align 4, !tbaa !5
  %212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %213 = load i32, ptr @test_count, align 4, !tbaa !5
  %214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %215 = load i32, ptr %214, align 4, !tbaa !5
  %216 = call ptr @s2n_strerror(i32 noundef %215, ptr noundef @.str.4)
  %217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = call ptr @s2n_strerror_debug(i32 noundef %218, ptr noundef @.str.4)
  %220 = call ptr @__errno_location() #12
  %221 = load i32, ptr %220, align 4, !tbaa !5
  %222 = call ptr @strerror(i32 noundef %221) #11
  %223 = call ptr @__errno_location() #12
  %224 = load i32, ptr %223, align 4, !tbaa !5
  %225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %212, ptr noundef @.str.2, i32 noundef %213, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 28, ptr noundef %216, ptr noundef %219, ptr noundef %222, i32 noundef %224) #11
  br label %243

226:                                              ; preds = %204, %197
  %227 = load i32, ptr %7, align 4, !tbaa !5
  %228 = call ptr @__errno_location() #12
  store i32 %227, ptr %228, align 4, !tbaa !5
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = load i32, ptr @test_count, align 4, !tbaa !5
  %231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call ptr @s2n_strerror(i32 noundef %232, ptr noundef @.str.4)
  %234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %235 = load i32, ptr %234, align 4, !tbaa !5
  %236 = call ptr @s2n_strerror_debug(i32 noundef %235, ptr noundef @.str.4)
  %237 = call ptr @__errno_location() #12
  %238 = load i32, ptr %237, align 4, !tbaa !5
  %239 = call ptr @strerror(i32 noundef %238) #11
  %240 = call ptr @__errno_location() #12
  %241 = load i32, ptr %240, align 4, !tbaa !5
  %242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %229, ptr noundef @.str.5, i32 noundef %230, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 28, ptr noundef %233, ptr noundef %236, ptr noundef %239, i32 noundef %241) #11
  br label %243

243:                                              ; preds = %226, %209
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %244

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

245:                                              ; No predecessors!
  br label %246

246:                                              ; preds = %245, %190
  br label %247

247:                                              ; preds = %246
  br label %248

248:                                              ; preds = %247
  br label %249

249:                                              ; preds = %248
  %250 = call i32 @s2n_init()
  %251 = icmp eq i32 %250, -1
  br i1 %251, label %252, label %303

252:                                              ; preds = %249
  br label %253

253:                                              ; preds = %252
  br label %254

254:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %255 = call ptr @__errno_location() #12
  %256 = load i32, ptr %255, align 4, !tbaa !5
  store i32 %256, ptr %8, align 4, !tbaa !5
  %257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %258 = call i32 @s2n_print_stacktrace(ptr noundef %257)
  %259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %260 = trunc i8 %259 to i1
  br i1 %260, label %261, label %283

261:                                              ; preds = %254
  %262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %263 = call i32 @fileno(ptr noundef %262) #11
  %264 = call i32 @isatty(i32 noundef %263) #11
  %265 = icmp ne i32 %264, 0
  br i1 %265, label %266, label %283

266:                                              ; preds = %261
  %267 = load i32, ptr %8, align 4, !tbaa !5
  %268 = call ptr @__errno_location() #12
  store i32 %267, ptr %268, align 4, !tbaa !5
  %269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %270 = load i32, ptr @test_count, align 4, !tbaa !5
  %271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %272 = load i32, ptr %271, align 4, !tbaa !5
  %273 = call ptr @s2n_strerror(i32 noundef %272, ptr noundef @.str.4)
  %274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %275 = load i32, ptr %274, align 4, !tbaa !5
  %276 = call ptr @s2n_strerror_debug(i32 noundef %275, ptr noundef @.str.4)
  %277 = call ptr @__errno_location() #12
  %278 = load i32, ptr %277, align 4, !tbaa !5
  %279 = call ptr @strerror(i32 noundef %278) #11
  %280 = call ptr @__errno_location() #12
  %281 = load i32, ptr %280, align 4, !tbaa !5
  %282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %269, ptr noundef @.str.2, i32 noundef %270, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 28, ptr noundef %273, ptr noundef %276, ptr noundef %279, i32 noundef %281) #11
  br label %300

283:                                              ; preds = %261, %254
  %284 = load i32, ptr %8, align 4, !tbaa !5
  %285 = call ptr @__errno_location() #12
  store i32 %284, ptr %285, align 4, !tbaa !5
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = load i32, ptr @test_count, align 4, !tbaa !5
  %288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %289 = load i32, ptr %288, align 4, !tbaa !5
  %290 = call ptr @s2n_strerror(i32 noundef %289, ptr noundef @.str.4)
  %291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %292 = load i32, ptr %291, align 4, !tbaa !5
  %293 = call ptr @s2n_strerror_debug(i32 noundef %292, ptr noundef @.str.4)
  %294 = call ptr @__errno_location() #12
  %295 = load i32, ptr %294, align 4, !tbaa !5
  %296 = call ptr @strerror(i32 noundef %295) #11
  %297 = call ptr @__errno_location() #12
  %298 = load i32, ptr %297, align 4, !tbaa !5
  %299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %286, ptr noundef @.str.5, i32 noundef %287, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 28, ptr noundef %290, ptr noundef %293, ptr noundef %296, i32 noundef %298) #11
  br label %300

300:                                              ; preds = %283, %266
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %301

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

302:                                              ; No predecessors!
  br label %303

303:                                              ; preds = %302, %249
  br label %304

304:                                              ; preds = %303
  br label %305

305:                                              ; preds = %304
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %9, ptr align 16 @__const.main.protocols, i64 24, i1 false)
  br label %306

306:                                              ; preds = %305
  br label %307

307:                                              ; preds = %306
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = add nsw i32 %308, 1
  store i32 %309, ptr @test_count, align 4, !tbaa !5
  %310 = call i32 @s2n_next_protocol_send(ptr noundef null)
  %311 = icmp eq i32 %310, -1
  br i1 %311, label %365, label %312

312:                                              ; preds = %307
  br label %313

313:                                              ; preds = %312
  br label %314

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

321:                                              ; preds = %314
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = call i32 @fileno(ptr noundef %322) #11
  %324 = call i32 @isatty(i32 noundef %323) #11
  %325 = icmp ne i32 %324, 0
  br i1 %325, label %326, label %343

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

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

360:                                              ; preds = %343, %326
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  br label %361

361:                                              ; preds = %360
  br label %362

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

363:                                              ; No predecessors!
  br label %364

364:                                              ; preds = %363
  br label %365

365:                                              ; preds = %364, %307
  br label %366

366:                                              ; preds = %365
  br label %367

367:                                              ; preds = %366
  br label %368

368:                                              ; preds = %367
  %369 = load i32, ptr @test_count, align 4, !tbaa !5
  %370 = add nsw i32 %369, 1
  store i32 %370, ptr @test_count, align 4, !tbaa !5
  %371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %372 = load i32, ptr %371, align 4, !tbaa !5
  %373 = icmp eq i32 %372, 0
  br i1 %373, label %374, label %427

374:                                              ; preds = %368
  br label %375

375:                                              ; preds = %374
  br label %376

376:                                              ; preds = %375
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #11
  %377 = call ptr @__errno_location() #12
  %378 = load i32, ptr %377, align 4, !tbaa !5
  store i32 %378, ptr %11, align 4, !tbaa !5
  %379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %380 = call i32 @s2n_print_stacktrace(ptr noundef %379)
  %381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %382 = trunc i8 %381 to i1
  br i1 %382, label %383, label %405

383:                                              ; preds = %376
  %384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %385 = call i32 @fileno(ptr noundef %384) #11
  %386 = call i32 @isatty(i32 noundef %385) #11
  %387 = icmp ne i32 %386, 0
  br i1 %387, label %388, label %405

388:                                              ; preds = %383
  %389 = load i32, ptr %11, align 4, !tbaa !5
  %390 = call ptr @__errno_location() #12
  store i32 %389, ptr %390, align 4, !tbaa !5
  %391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %392 = load i32, ptr @test_count, align 4, !tbaa !5
  %393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %394 = load i32, ptr %393, align 4, !tbaa !5
  %395 = call ptr @s2n_strerror(i32 noundef %394, ptr noundef @.str.4)
  %396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %397 = load i32, ptr %396, align 4, !tbaa !5
  %398 = call ptr @s2n_strerror_debug(i32 noundef %397, ptr noundef @.str.4)
  %399 = call ptr @__errno_location() #12
  %400 = load i32, ptr %399, align 4, !tbaa !5
  %401 = call ptr @strerror(i32 noundef %400) #11
  %402 = call ptr @__errno_location() #12
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %391, ptr noundef @.str.2, i32 noundef %392, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 35, ptr noundef %395, ptr noundef %398, ptr noundef %401, i32 noundef %403) #11
  br label %422

405:                                              ; preds = %383, %376
  %406 = load i32, ptr %11, align 4, !tbaa !5
  %407 = call ptr @__errno_location() #12
  store i32 %406, ptr %407, align 4, !tbaa !5
  %408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %409 = load i32, ptr @test_count, align 4, !tbaa !5
  %410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %411 = load i32, ptr %410, align 4, !tbaa !5
  %412 = call ptr @s2n_strerror(i32 noundef %411, ptr noundef @.str.4)
  %413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %414 = load i32, ptr %413, align 4, !tbaa !5
  %415 = call ptr @s2n_strerror_debug(i32 noundef %414, ptr noundef @.str.4)
  %416 = call ptr @__errno_location() #12
  %417 = load i32, ptr %416, align 4, !tbaa !5
  %418 = call ptr @strerror(i32 noundef %417) #11
  %419 = call ptr @__errno_location() #12
  %420 = load i32, ptr %419, align 4, !tbaa !5
  %421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %408, ptr noundef @.str.5, i32 noundef %409, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 35, ptr noundef %412, ptr noundef %415, ptr noundef %418, i32 noundef %420) #11
  br label %422

422:                                              ; preds = %405, %388
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  br label %423

423:                                              ; preds = %422
  br label %424

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

425:                                              ; No predecessors!
  br label %426

426:                                              ; preds = %425
  br label %427

427:                                              ; preds = %426, %368
  br label %428

428:                                              ; preds = %427
  br label %429

429:                                              ; preds = %428
  br label %430

430:                                              ; preds = %429
  %431 = load i32, ptr @test_count, align 4, !tbaa !5
  %432 = add nsw i32 %431, 1
  store i32 %432, ptr @test_count, align 4, !tbaa !5
  %433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror_debug(i32 noundef %434, ptr noundef @.str.4)
  %436 = icmp eq ptr %435, null
  br i1 %436, label %437, label %490

437:                                              ; preds = %430
  br label %438

438:                                              ; preds = %437
  br label %439

439:                                              ; preds = %438
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #11
  %440 = call ptr @__errno_location() #12
  %441 = load i32, ptr %440, align 4, !tbaa !5
  store i32 %441, ptr %12, align 4, !tbaa !5
  %442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %443 = call i32 @s2n_print_stacktrace(ptr noundef %442)
  %444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %445 = trunc i8 %444 to i1
  br i1 %445, label %446, label %468

446:                                              ; preds = %439
  %447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %448 = call i32 @fileno(ptr noundef %447) #11
  %449 = call i32 @isatty(i32 noundef %448) #11
  %450 = icmp ne i32 %449, 0
  br i1 %450, label %451, label %468

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

468:                                              ; preds = %446, %439
  %469 = load i32, ptr %12, align 4, !tbaa !5
  %470 = call ptr @__errno_location() #12
  store i32 %469, ptr %470, align 4, !tbaa !5
  %471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %472 = load i32, ptr @test_count, align 4, !tbaa !5
  %473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = call ptr @s2n_strerror(i32 noundef %474, ptr noundef @.str.4)
  %476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %477 = load i32, ptr %476, align 4, !tbaa !5
  %478 = call ptr @s2n_strerror_debug(i32 noundef %477, ptr noundef @.str.4)
  %479 = call ptr @__errno_location() #12
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = call ptr @strerror(i32 noundef %480) #11
  %482 = call ptr @__errno_location() #12
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %471, ptr noundef @.str.5, i32 noundef %472, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 35, ptr noundef %475, ptr noundef %478, ptr noundef %481, i32 noundef %483) #11
  br label %485

485:                                              ; preds = %468, %451
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  br label %486

486:                                              ; preds = %485
  br label %487

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

488:                                              ; No predecessors!
  br label %489

489:                                              ; preds = %488
  br label %490

490:                                              ; preds = %489, %430
  br label %491

491:                                              ; preds = %490
  br label %492

492:                                              ; preds = %491
  br label %493

493:                                              ; preds = %492
  %494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %494, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %495 = call ptr @__errno_location() #12
  store i32 0, ptr %495, align 4, !tbaa !5
  br label %496

496:                                              ; preds = %493
  br label %497

497:                                              ; preds = %496
  br label %498

498:                                              ; preds = %497
  br label %499

499:                                              ; preds = %498
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #11
  %500 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %500, ptr %13, align 8, !tbaa !9
  br label %501

501:                                              ; preds = %499
  %502 = load i32, ptr @test_count, align 4, !tbaa !5
  %503 = add nsw i32 %502, 1
  store i32 %503, ptr @test_count, align 4, !tbaa !5
  %504 = load ptr, ptr %13, align 8, !tbaa !9
  %505 = icmp eq ptr %504, null
  br i1 %505, label %506, label %559

506:                                              ; preds = %501
  br label %507

507:                                              ; preds = %506
  br label %508

508:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %509 = call ptr @__errno_location() #12
  %510 = load i32, ptr %509, align 4, !tbaa !5
  store i32 %510, ptr %14, align 4, !tbaa !5
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = call i32 @s2n_print_stacktrace(ptr noundef %511)
  %513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %514 = trunc i8 %513 to i1
  br i1 %514, label %515, label %537

515:                                              ; preds = %508
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = call i32 @fileno(ptr noundef %516) #11
  %518 = call i32 @isatty(i32 noundef %517) #11
  %519 = icmp ne i32 %518, 0
  br i1 %519, label %520, label %537

520:                                              ; preds = %515
  %521 = load i32, ptr %14, align 4, !tbaa !5
  %522 = call ptr @__errno_location() #12
  store i32 %521, ptr %522, align 4, !tbaa !5
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = load i32, ptr @test_count, align 4, !tbaa !5
  %525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror(i32 noundef %526, ptr noundef @.str.4)
  %528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror_debug(i32 noundef %529, ptr noundef @.str.4)
  %531 = call ptr @__errno_location() #12
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = call ptr @strerror(i32 noundef %532) #11
  %534 = call ptr @__errno_location() #12
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %523, ptr noundef @.str.2, i32 noundef %524, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 40, ptr noundef %527, ptr noundef %530, ptr noundef %533, i32 noundef %535) #11
  br label %554

537:                                              ; preds = %515, %508
  %538 = load i32, ptr %14, align 4, !tbaa !5
  %539 = call ptr @__errno_location() #12
  store i32 %538, ptr %539, align 4, !tbaa !5
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = load i32, ptr @test_count, align 4, !tbaa !5
  %542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %543 = load i32, ptr %542, align 4, !tbaa !5
  %544 = call ptr @s2n_strerror(i32 noundef %543, ptr noundef @.str.4)
  %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_debug(i32 noundef %546, ptr noundef @.str.4)
  %548 = call ptr @__errno_location() #12
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call ptr @strerror(i32 noundef %549) #11
  %551 = call ptr @__errno_location() #12
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %540, ptr noundef @.str.5, i32 noundef %541, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 40, ptr noundef %544, ptr noundef %547, ptr noundef %550, i32 noundef %552) #11
  br label %554

554:                                              ; preds = %537, %520
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %555

555:                                              ; preds = %554
  br label %556

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

557:                                              ; No predecessors!
  br label %558

558:                                              ; preds = %557
  br label %559

559:                                              ; preds = %558, %501
  br label %560

560:                                              ; preds = %559
  br label %561

561:                                              ; preds = %560
  %562 = load ptr, ptr %13, align 8, !tbaa !9
  %563 = getelementptr inbounds %struct.s2n_connection, ptr %562, i32 0, i32 23
  store i8 34, ptr %563, align 4, !tbaa !15
  br label %564

564:                                              ; preds = %561
  br label %565

565:                                              ; preds = %564
  br label %566

566:                                              ; preds = %565
  %567 = load i32, ptr @test_count, align 4, !tbaa !5
  %568 = add nsw i32 %567, 1
  store i32 %568, ptr @test_count, align 4, !tbaa !5
  %569 = load ptr, ptr %13, align 8, !tbaa !9
  %570 = call i32 @s2n_next_protocol_send(ptr noundef %569)
  %571 = icmp eq i32 %570, -1
  br i1 %571, label %625, label %572

572:                                              ; preds = %566
  br label %573

573:                                              ; preds = %572
  br label %574

574:                                              ; preds = %573
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  %575 = call ptr @__errno_location() #12
  %576 = load i32, ptr %575, align 4, !tbaa !5
  store i32 %576, ptr %15, align 4, !tbaa !5
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = call i32 @s2n_print_stacktrace(ptr noundef %577)
  %579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %580 = trunc i8 %579 to i1
  br i1 %580, label %581, label %603

581:                                              ; preds = %574
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = call i32 @fileno(ptr noundef %582) #11
  %584 = call i32 @isatty(i32 noundef %583) #11
  %585 = icmp ne i32 %584, 0
  br i1 %585, label %586, label %603

586:                                              ; preds = %581
  %587 = load i32, ptr %15, align 4, !tbaa !5
  %588 = call ptr @__errno_location() #12
  store i32 %587, ptr %588, align 4, !tbaa !5
  %589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %590 = load i32, ptr @test_count, align 4, !tbaa !5
  %591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %592 = load i32, ptr %591, align 4, !tbaa !5
  %593 = call ptr @s2n_strerror(i32 noundef %592, ptr noundef @.str.4)
  %594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %595 = load i32, ptr %594, align 4, !tbaa !5
  %596 = call ptr @s2n_strerror_debug(i32 noundef %595, ptr noundef @.str.4)
  %597 = call ptr @__errno_location() #12
  %598 = load i32, ptr %597, align 4, !tbaa !5
  %599 = call ptr @strerror(i32 noundef %598) #11
  %600 = call ptr @__errno_location() #12
  %601 = load i32, ptr %600, align 4, !tbaa !5
  %602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %589, ptr noundef @.str.2, i32 noundef %590, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 44, ptr noundef %593, ptr noundef %596, ptr noundef %599, i32 noundef %601) #11
  br label %620

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

620:                                              ; preds = %603, %586
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %621

621:                                              ; preds = %620
  br label %622

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

623:                                              ; No predecessors!
  br label %624

624:                                              ; preds = %623
  br label %625

625:                                              ; preds = %624, %566
  br label %626

626:                                              ; preds = %625
  br label %627

627:                                              ; preds = %626
  br label %628

628:                                              ; preds = %627
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = add nsw i32 %629, 1
  store i32 %630, ptr @test_count, align 4, !tbaa !5
  %631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %632 = load i32, ptr %631, align 4, !tbaa !5
  %633 = icmp eq i32 %632, 335544322
  br i1 %633, label %687, label %634

634:                                              ; preds = %628
  br label %635

635:                                              ; preds = %634
  br label %636

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

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

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

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

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

683:                                              ; preds = %682
  br label %684

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

685:                                              ; No predecessors!
  br label %686

686:                                              ; preds = %685
  br label %687

687:                                              ; preds = %686, %628
  br label %688

688:                                              ; preds = %687
  br label %689

689:                                              ; preds = %688
  br label %690

690:                                              ; preds = %689
  %691 = load i32, ptr @test_count, align 4, !tbaa !5
  %692 = add nsw i32 %691, 1
  store i32 %692, ptr @test_count, align 4, !tbaa !5
  %693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %694 = load i32, ptr %693, align 4, !tbaa !5
  %695 = call ptr @s2n_strerror_debug(i32 noundef %694, ptr noundef @.str.4)
  %696 = icmp eq ptr %695, null
  br i1 %696, label %697, label %750

697:                                              ; preds = %690
  br label %698

698:                                              ; preds = %697
  br label %699

699:                                              ; preds = %698
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  %700 = call ptr @__errno_location() #12
  %701 = load i32, ptr %700, align 4, !tbaa !5
  store i32 %701, ptr %17, align 4, !tbaa !5
  %702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %703 = call i32 @s2n_print_stacktrace(ptr noundef %702)
  %704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %705 = trunc i8 %704 to i1
  br i1 %705, label %706, label %728

706:                                              ; preds = %699
  %707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %708 = call i32 @fileno(ptr noundef %707) #11
  %709 = call i32 @isatty(i32 noundef %708) #11
  %710 = icmp ne i32 %709, 0
  br i1 %710, label %711, label %728

711:                                              ; preds = %706
  %712 = load i32, ptr %17, align 4, !tbaa !5
  %713 = call ptr @__errno_location() #12
  store i32 %712, ptr %713, align 4, !tbaa !5
  %714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %715 = load i32, ptr @test_count, align 4, !tbaa !5
  %716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %717 = load i32, ptr %716, align 4, !tbaa !5
  %718 = call ptr @s2n_strerror(i32 noundef %717, ptr noundef @.str.4)
  %719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %720 = load i32, ptr %719, align 4, !tbaa !5
  %721 = call ptr @s2n_strerror_debug(i32 noundef %720, ptr noundef @.str.4)
  %722 = call ptr @__errno_location() #12
  %723 = load i32, ptr %722, align 4, !tbaa !5
  %724 = call ptr @strerror(i32 noundef %723) #11
  %725 = call ptr @__errno_location() #12
  %726 = load i32, ptr %725, align 4, !tbaa !5
  %727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %714, ptr noundef @.str.2, i32 noundef %715, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 44, ptr noundef %718, ptr noundef %721, ptr noundef %724, i32 noundef %726) #11
  br label %745

728:                                              ; preds = %706, %699
  %729 = load i32, ptr %17, align 4, !tbaa !5
  %730 = call ptr @__errno_location() #12
  store i32 %729, ptr %730, align 4, !tbaa !5
  %731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %732 = load i32, ptr @test_count, align 4, !tbaa !5
  %733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %734 = load i32, ptr %733, align 4, !tbaa !5
  %735 = call ptr @s2n_strerror(i32 noundef %734, ptr noundef @.str.4)
  %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_debug(i32 noundef %737, ptr noundef @.str.4)
  %739 = call ptr @__errno_location() #12
  %740 = load i32, ptr %739, align 4, !tbaa !5
  %741 = call ptr @strerror(i32 noundef %740) #11
  %742 = call ptr @__errno_location() #12
  %743 = load i32, ptr %742, align 4, !tbaa !5
  %744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %731, ptr noundef @.str.5, i32 noundef %732, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 44, ptr noundef %735, ptr noundef %738, ptr noundef %741, i32 noundef %743) #11
  br label %745

745:                                              ; preds = %728, %711
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %746

746:                                              ; preds = %745
  br label %747

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

748:                                              ; No predecessors!
  br label %749

749:                                              ; preds = %748
  br label %750

750:                                              ; preds = %749, %690
  br label %751

751:                                              ; preds = %750
  br label %752

752:                                              ; preds = %751
  br label %753

753:                                              ; preds = %752
  br label %754

754:                                              ; preds = %753
  br label %755

755:                                              ; preds = %754
  %756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %756, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %757 = call ptr @__errno_location() #12
  store i32 0, ptr %757, align 4, !tbaa !5
  br label %758

758:                                              ; preds = %755
  br label %759

759:                                              ; preds = %758
  br label %760

760:                                              ; preds = %759
  br label %761

761:                                              ; preds = %760
  %762 = load ptr, ptr %13, align 8, !tbaa !9
  %763 = getelementptr inbounds %struct.s2n_connection, ptr %762, i32 0, i32 23
  store i8 33, ptr %763, align 4, !tbaa !15
  br label %764

764:                                              ; preds = %761
  %765 = load i32, ptr @test_count, align 4, !tbaa !5
  %766 = add nsw i32 %765, 1
  store i32 %766, ptr @test_count, align 4, !tbaa !5
  %767 = load ptr, ptr %13, align 8, !tbaa !9
  %768 = call i32 @s2n_next_protocol_send(ptr noundef %767)
  %769 = icmp eq i32 %768, -1
  br i1 %769, label %770, label %823

770:                                              ; preds = %764
  br label %771

771:                                              ; preds = %770
  br label %772

772:                                              ; preds = %771
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  %773 = call ptr @__errno_location() #12
  %774 = load i32, ptr %773, align 4, !tbaa !5
  store i32 %774, ptr %18, align 4, !tbaa !5
  %775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %776 = call i32 @s2n_print_stacktrace(ptr noundef %775)
  %777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %778 = trunc i8 %777 to i1
  br i1 %778, label %779, label %801

779:                                              ; preds = %772
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = call i32 @fileno(ptr noundef %780) #11
  %782 = call i32 @isatty(i32 noundef %781) #11
  %783 = icmp ne i32 %782, 0
  br i1 %783, label %784, label %801

784:                                              ; preds = %779
  %785 = load i32, ptr %18, align 4, !tbaa !5
  %786 = call ptr @__errno_location() #12
  store i32 %785, ptr %786, align 4, !tbaa !5
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = load i32, ptr @test_count, align 4, !tbaa !5
  %789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call ptr @s2n_strerror(i32 noundef %790, ptr noundef @.str.4)
  %792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror_debug(i32 noundef %793, ptr noundef @.str.4)
  %795 = call ptr @__errno_location() #12
  %796 = load i32, ptr %795, align 4, !tbaa !5
  %797 = call ptr @strerror(i32 noundef %796) #11
  %798 = call ptr @__errno_location() #12
  %799 = load i32, ptr %798, align 4, !tbaa !5
  %800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %787, ptr noundef @.str.2, i32 noundef %788, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 48, ptr noundef %791, ptr noundef %794, ptr noundef %797, i32 noundef %799) #11
  br label %818

801:                                              ; preds = %779, %772
  %802 = load i32, ptr %18, align 4, !tbaa !5
  %803 = call ptr @__errno_location() #12
  store i32 %802, ptr %803, align 4, !tbaa !5
  %804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %805 = load i32, ptr @test_count, align 4, !tbaa !5
  %806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call ptr @s2n_strerror(i32 noundef %807, ptr noundef @.str.4)
  %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_debug(i32 noundef %810, ptr noundef @.str.4)
  %812 = call ptr @__errno_location() #12
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = call ptr @strerror(i32 noundef %813) #11
  %815 = call ptr @__errno_location() #12
  %816 = load i32, ptr %815, align 4, !tbaa !5
  %817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %804, ptr noundef @.str.5, i32 noundef %805, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 48, ptr noundef %808, ptr noundef %811, ptr noundef %814, i32 noundef %816) #11
  br label %818

818:                                              ; preds = %801, %784
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %819

819:                                              ; preds = %818
  br label %820

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

821:                                              ; No predecessors!
  br label %822

822:                                              ; preds = %821
  br label %823

823:                                              ; preds = %822, %764
  br label %824

824:                                              ; preds = %823
  br label %825

825:                                              ; preds = %824
  %826 = call i32 @s2n_connection_ptr_free(ptr noundef %13)
  %827 = getelementptr inbounds %struct.s2n_result, ptr %19, i32 0, i32 0
  store i32 %826, ptr %827, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #11
  br label %828

828:                                              ; preds = %825
  br label %829

829:                                              ; preds = %828
  %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_next_protocol_recv(ptr noundef null)
  %833 = icmp eq i32 %832, -1
  br i1 %833, label %887, label %834

834:                                              ; preds = %829
  br label %835

835:                                              ; preds = %834
  br label %836

836:                                              ; preds = %835
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  %837 = call ptr @__errno_location() #12
  %838 = load i32, ptr %837, align 4, !tbaa !5
  store i32 %838, ptr %20, align 4, !tbaa !5
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = call i32 @s2n_print_stacktrace(ptr noundef %839)
  %841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %842 = trunc i8 %841 to i1
  br i1 %842, label %843, label %865

843:                                              ; preds = %836
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = call i32 @fileno(ptr noundef %844) #11
  %846 = call i32 @isatty(i32 noundef %845) #11
  %847 = icmp ne i32 %846, 0
  br i1 %847, label %848, label %865

848:                                              ; preds = %843
  %849 = load i32, ptr %20, align 4, !tbaa !5
  %850 = call ptr @__errno_location() #12
  store i32 %849, ptr %850, align 4, !tbaa !5
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = load i32, ptr @test_count, align 4, !tbaa !5
  %853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = call ptr @s2n_strerror(i32 noundef %854, ptr noundef @.str.4)
  %856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror_debug(i32 noundef %857, ptr noundef @.str.4)
  %859 = call ptr @__errno_location() #12
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = call ptr @strerror(i32 noundef %860) #11
  %862 = call ptr @__errno_location() #12
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %851, ptr noundef @.str.2, i32 noundef %852, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 55, ptr noundef %855, ptr noundef %858, ptr noundef %861, i32 noundef %863) #11
  br label %882

865:                                              ; preds = %843, %836
  %866 = load i32, ptr %20, align 4, !tbaa !5
  %867 = call ptr @__errno_location() #12
  store i32 %866, ptr %867, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = load i32, ptr @test_count, align 4, !tbaa !5
  %870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = call ptr @s2n_strerror(i32 noundef %871, ptr noundef @.str.4)
  %873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = call ptr @s2n_strerror_debug(i32 noundef %874, ptr noundef @.str.4)
  %876 = call ptr @__errno_location() #12
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = call ptr @strerror(i32 noundef %877) #11
  %879 = call ptr @__errno_location() #12
  %880 = load i32, ptr %879, align 4, !tbaa !5
  %881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %868, ptr noundef @.str.5, i32 noundef %869, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 55, ptr noundef %872, ptr noundef %875, ptr noundef %878, i32 noundef %880) #11
  br label %882

882:                                              ; preds = %865, %848
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %883

883:                                              ; preds = %882
  br label %884

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

885:                                              ; No predecessors!
  br label %886

886:                                              ; preds = %885
  br label %887

887:                                              ; preds = %886, %829
  br label %888

888:                                              ; preds = %887
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889
  %891 = load i32, ptr @test_count, align 4, !tbaa !5
  %892 = add nsw i32 %891, 1
  store i32 %892, ptr @test_count, align 4, !tbaa !5
  %893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %894 = load i32, ptr %893, align 4, !tbaa !5
  %895 = icmp eq i32 %894, 0
  br i1 %895, label %896, label %949

896:                                              ; preds = %890
  br label %897

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  %899 = call ptr @__errno_location() #12
  %900 = load i32, ptr %899, align 4, !tbaa !5
  store i32 %900, ptr %21, align 4, !tbaa !5
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = call i32 @s2n_print_stacktrace(ptr noundef %901)
  %903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %904 = trunc i8 %903 to i1
  br i1 %904, label %905, label %927

905:                                              ; preds = %898
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = call i32 @fileno(ptr noundef %906) #11
  %908 = call i32 @isatty(i32 noundef %907) #11
  %909 = icmp ne i32 %908, 0
  br i1 %909, label %910, label %927

910:                                              ; preds = %905
  %911 = load i32, ptr %21, align 4, !tbaa !5
  %912 = call ptr @__errno_location() #12
  store i32 %911, ptr %912, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %916, ptr noundef @.str.4)
  %918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror_debug(i32 noundef %919, ptr noundef @.str.4)
  %921 = call ptr @__errno_location() #12
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call ptr @strerror(i32 noundef %922) #11
  %924 = call ptr @__errno_location() #12
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %913, ptr noundef @.str.2, i32 noundef %914, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 55, ptr noundef %917, ptr noundef %920, ptr noundef %923, i32 noundef %925) #11
  br label %944

927:                                              ; preds = %905, %898
  %928 = load i32, ptr %21, align 4, !tbaa !5
  %929 = call ptr @__errno_location() #12
  store i32 %928, ptr %929, align 4, !tbaa !5
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = load i32, ptr @test_count, align 4, !tbaa !5
  %932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror(i32 noundef %933, ptr noundef @.str.4)
  %935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %936 = load i32, ptr %935, align 4, !tbaa !5
  %937 = call ptr @s2n_strerror_debug(i32 noundef %936, ptr noundef @.str.4)
  %938 = call ptr @__errno_location() #12
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = call ptr @strerror(i32 noundef %939) #11
  %941 = call ptr @__errno_location() #12
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %930, ptr noundef @.str.5, i32 noundef %931, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 55, ptr noundef %934, ptr noundef %937, ptr noundef %940, i32 noundef %942) #11
  br label %944

944:                                              ; preds = %927, %910
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %945

945:                                              ; preds = %944
  br label %946

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

947:                                              ; No predecessors!
  br label %948

948:                                              ; preds = %947
  br label %949

949:                                              ; preds = %948, %890
  br label %950

950:                                              ; preds = %949
  br label %951

951:                                              ; preds = %950
  br label %952

952:                                              ; preds = %951
  %953 = load i32, ptr @test_count, align 4, !tbaa !5
  %954 = add nsw i32 %953, 1
  store i32 %954, 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_debug(i32 noundef %956, ptr noundef @.str.4)
  %958 = icmp eq ptr %957, null
  br i1 %958, label %959, label %1012

959:                                              ; preds = %952
  br label %960

960:                                              ; preds = %959
  br label %961

961:                                              ; preds = %960
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #11
  %962 = call ptr @__errno_location() #12
  %963 = load i32, ptr %962, align 4, !tbaa !5
  store i32 %963, ptr %22, align 4, !tbaa !5
  %964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %965 = call i32 @s2n_print_stacktrace(ptr noundef %964)
  %966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %967 = trunc i8 %966 to i1
  br i1 %967, label %968, label %990

968:                                              ; preds = %961
  %969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %970 = call i32 @fileno(ptr noundef %969) #11
  %971 = call i32 @isatty(i32 noundef %970) #11
  %972 = icmp ne i32 %971, 0
  br i1 %972, label %973, label %990

973:                                              ; preds = %968
  %974 = load i32, ptr %22, align 4, !tbaa !5
  %975 = call ptr @__errno_location() #12
  store i32 %974, ptr %975, align 4, !tbaa !5
  %976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %977 = load i32, ptr @test_count, align 4, !tbaa !5
  %978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %979 = load i32, ptr %978, align 4, !tbaa !5
  %980 = call ptr @s2n_strerror(i32 noundef %979, ptr noundef @.str.4)
  %981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = call ptr @s2n_strerror_debug(i32 noundef %982, ptr noundef @.str.4)
  %984 = call ptr @__errno_location() #12
  %985 = load i32, ptr %984, align 4, !tbaa !5
  %986 = call ptr @strerror(i32 noundef %985) #11
  %987 = call ptr @__errno_location() #12
  %988 = load i32, ptr %987, align 4, !tbaa !5
  %989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %976, ptr noundef @.str.2, i32 noundef %977, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 55, ptr noundef %980, ptr noundef %983, ptr noundef %986, i32 noundef %988) #11
  br label %1007

990:                                              ; preds = %968, %961
  %991 = load i32, ptr %22, align 4, !tbaa !5
  %992 = call ptr @__errno_location() #12
  store i32 %991, ptr %992, align 4, !tbaa !5
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = load i32, ptr @test_count, align 4, !tbaa !5
  %995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %996 = load i32, ptr %995, align 4, !tbaa !5
  %997 = call ptr @s2n_strerror(i32 noundef %996, ptr noundef @.str.4)
  %998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror_debug(i32 noundef %999, ptr noundef @.str.4)
  %1001 = call ptr @__errno_location() #12
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call ptr @strerror(i32 noundef %1002) #11
  %1004 = call ptr @__errno_location() #12
  %1005 = load i32, ptr %1004, align 4, !tbaa !5
  %1006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %993, ptr noundef @.str.5, i32 noundef %994, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 55, ptr noundef %997, ptr noundef %1000, ptr noundef %1003, i32 noundef %1005) #11
  br label %1007

1007:                                             ; preds = %990, %973
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %1008

1008:                                             ; preds = %1007
  br label %1009

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

1010:                                             ; No predecessors!
  br label %1011

1011:                                             ; preds = %1010
  br label %1012

1012:                                             ; preds = %1011, %952
  br label %1013

1013:                                             ; preds = %1012
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

1015:                                             ; preds = %1014
  %1016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1016, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1017 = call ptr @__errno_location() #12
  store i32 0, ptr %1017, align 4, !tbaa !5
  br label %1018

1018:                                             ; preds = %1015
  br label %1019

1019:                                             ; preds = %1018
  br label %1020

1020:                                             ; preds = %1019
  br label %1021

1021:                                             ; preds = %1020
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #11
  %1022 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1022, ptr %23, align 8, !tbaa !9
  br label %1023

1023:                                             ; preds = %1021
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = add nsw i32 %1024, 1
  store i32 %1025, ptr @test_count, align 4, !tbaa !5
  %1026 = load ptr, ptr %23, align 8, !tbaa !9
  %1027 = icmp eq ptr %1026, null
  br i1 %1027, label %1028, label %1081

1028:                                             ; preds = %1023
  br label %1029

1029:                                             ; preds = %1028
  br label %1030

1030:                                             ; preds = %1029
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %1031 = call ptr @__errno_location() #12
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  store i32 %1032, ptr %24, align 4, !tbaa !5
  %1033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1034 = call i32 @s2n_print_stacktrace(ptr noundef %1033)
  %1035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1036 = trunc i8 %1035 to i1
  br i1 %1036, label %1037, label %1059

1037:                                             ; preds = %1030
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @fileno(ptr noundef %1038) #11
  %1040 = call i32 @isatty(i32 noundef %1039) #11
  %1041 = icmp ne i32 %1040, 0
  br i1 %1041, label %1042, label %1059

1042:                                             ; preds = %1037
  %1043 = load i32, ptr %24, align 4, !tbaa !5
  %1044 = call ptr @__errno_location() #12
  store i32 %1043, ptr %1044, align 4, !tbaa !5
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = load i32, ptr @test_count, align 4, !tbaa !5
  %1047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call ptr @s2n_strerror(i32 noundef %1048, ptr noundef @.str.4)
  %1050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call ptr @s2n_strerror_debug(i32 noundef %1051, ptr noundef @.str.4)
  %1053 = call ptr @__errno_location() #12
  %1054 = load i32, ptr %1053, align 4, !tbaa !5
  %1055 = call ptr @strerror(i32 noundef %1054) #11
  %1056 = call ptr @__errno_location() #12
  %1057 = load i32, ptr %1056, align 4, !tbaa !5
  %1058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1045, ptr noundef @.str.2, i32 noundef %1046, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1049, ptr noundef %1052, ptr noundef %1055, i32 noundef %1057) #11
  br label %1076

1059:                                             ; preds = %1037, %1030
  %1060 = load i32, ptr %24, align 4, !tbaa !5
  %1061 = call ptr @__errno_location() #12
  store i32 %1060, ptr %1061, align 4, !tbaa !5
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call ptr @s2n_strerror(i32 noundef %1065, ptr noundef @.str.4)
  %1067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call ptr @s2n_strerror_debug(i32 noundef %1068, ptr noundef @.str.4)
  %1070 = call ptr @__errno_location() #12
  %1071 = load i32, ptr %1070, align 4, !tbaa !5
  %1072 = call ptr @strerror(i32 noundef %1071) #11
  %1073 = call ptr @__errno_location() #12
  %1074 = load i32, ptr %1073, align 4, !tbaa !5
  %1075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1062, ptr noundef @.str.5, i32 noundef %1063, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1066, ptr noundef %1069, ptr noundef %1072, i32 noundef %1074) #11
  br label %1076

1076:                                             ; preds = %1059, %1042
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %1077

1077:                                             ; preds = %1076
  br label %1078

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

1079:                                             ; No predecessors!
  br label %1080

1080:                                             ; preds = %1079
  br label %1081

1081:                                             ; preds = %1080, %1023
  br label %1082

1082:                                             ; preds = %1081
  br label %1083

1083:                                             ; preds = %1082
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #11
  %1084 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1084, ptr %25, align 8, !tbaa !9
  br label %1085

1085:                                             ; preds = %1083
  %1086 = load i32, ptr @test_count, align 4, !tbaa !5
  %1087 = add nsw i32 %1086, 1
  store i32 %1087, ptr @test_count, align 4, !tbaa !5
  %1088 = load ptr, ptr %25, align 8, !tbaa !9
  %1089 = icmp eq ptr %1088, null
  br i1 %1089, label %1090, label %1143

1090:                                             ; preds = %1085
  br label %1091

1091:                                             ; preds = %1090
  br label %1092

1092:                                             ; preds = %1091
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %1093 = call ptr @__errno_location() #12
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  store i32 %1094, ptr %26, align 4, !tbaa !5
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = call i32 @s2n_print_stacktrace(ptr noundef %1095)
  %1097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1098 = trunc i8 %1097 to i1
  br i1 %1098, label %1099, label %1121

1099:                                             ; preds = %1092
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1101 = call i32 @fileno(ptr noundef %1100) #11
  %1102 = call i32 @isatty(i32 noundef %1101) #11
  %1103 = icmp ne i32 %1102, 0
  br i1 %1103, label %1104, label %1121

1104:                                             ; preds = %1099
  %1105 = load i32, ptr %26, align 4, !tbaa !5
  %1106 = call ptr @__errno_location() #12
  store i32 %1105, ptr %1106, align 4, !tbaa !5
  %1107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1108 = load i32, ptr @test_count, align 4, !tbaa !5
  %1109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = call ptr @s2n_strerror(i32 noundef %1110, ptr noundef @.str.4)
  %1112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  %1114 = call ptr @s2n_strerror_debug(i32 noundef %1113, ptr noundef @.str.4)
  %1115 = call ptr @__errno_location() #12
  %1116 = load i32, ptr %1115, align 4, !tbaa !5
  %1117 = call ptr @strerror(i32 noundef %1116) #11
  %1118 = call ptr @__errno_location() #12
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1107, ptr noundef @.str.2, i32 noundef %1108, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 62, ptr noundef %1111, ptr noundef %1114, ptr noundef %1117, i32 noundef %1119) #11
  br label %1138

1121:                                             ; preds = %1099, %1092
  %1122 = load i32, ptr %26, align 4, !tbaa !5
  %1123 = call ptr @__errno_location() #12
  store i32 %1122, ptr %1123, align 4, !tbaa !5
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = load i32, ptr @test_count, align 4, !tbaa !5
  %1126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1127 = load i32, ptr %1126, align 4, !tbaa !5
  %1128 = call ptr @s2n_strerror(i32 noundef %1127, ptr noundef @.str.4)
  %1129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1130 = load i32, ptr %1129, align 4, !tbaa !5
  %1131 = call ptr @s2n_strerror_debug(i32 noundef %1130, ptr noundef @.str.4)
  %1132 = call ptr @__errno_location() #12
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call ptr @strerror(i32 noundef %1133) #11
  %1135 = call ptr @__errno_location() #12
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1124, ptr noundef @.str.5, i32 noundef %1125, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 62, ptr noundef %1128, ptr noundef %1131, ptr noundef %1134, i32 noundef %1136) #11
  br label %1138

1138:                                             ; preds = %1121, %1104
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %1139

1139:                                             ; preds = %1138
  br label %1140

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

1141:                                             ; No predecessors!
  br label %1142

1142:                                             ; preds = %1141
  br label %1143

1143:                                             ; preds = %1142, %1085
  br label %1144

1144:                                             ; preds = %1143
  br label %1145

1145:                                             ; preds = %1144
  %1146 = load ptr, ptr %25, align 8, !tbaa !9
  %1147 = getelementptr inbounds %struct.s2n_connection, ptr %1146, i32 0, i32 23
  store i8 33, ptr %1147, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 9, ptr %27) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %27, ptr align 1 @__const.main.protocol, i64 9, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #11
  %1148 = getelementptr inbounds [9 x i8], ptr %27, i64 0, i64 0
  %1149 = call i64 @strlen(ptr noundef %1148) #14
  %1150 = trunc i64 %1149 to i8
  store i8 %1150, ptr %28, align 1, !tbaa !42
  br label %1151

1151:                                             ; preds = %1145
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  %1152 = load i8, ptr %28, align 1, !tbaa !42
  %1153 = zext i8 %1152 to i32
  %1154 = add nsw i32 %1153, 1
  store i32 %1154, ptr %29, align 4, !tbaa !5
  %1155 = load i32, ptr %29, align 4, !tbaa !5
  %1156 = icmp ne i32 %1155, 0
  br i1 %1156, label %1157, label %1219

1157:                                             ; preds = %1151
  %1158 = load ptr, ptr %25, align 8, !tbaa !9
  %1159 = getelementptr inbounds %struct.s2n_connection, ptr %1158, i32 0, i32 64
  %1160 = getelementptr inbounds [256 x i8], ptr %1159, i64 0, i64 0
  %1161 = getelementptr inbounds [9 x i8], ptr %27, i64 0, i64 0
  %1162 = load i32, ptr %29, align 4, !tbaa !5
  %1163 = sext i32 %1162 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %1160, ptr align 1 %1161, i64 %1163, i1 false)
  %1164 = icmp eq ptr %1160, null
  br i1 %1164, label %1165, label %1218

1165:                                             ; preds = %1157
  br label %1166

1166:                                             ; preds = %1165
  br label %1167

1167:                                             ; preds = %1166
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #11
  %1168 = call ptr @__errno_location() #12
  %1169 = load i32, ptr %1168, align 4, !tbaa !5
  store i32 %1169, ptr %30, align 4, !tbaa !5
  %1170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1171 = call i32 @s2n_print_stacktrace(ptr noundef %1170)
  %1172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1173 = trunc i8 %1172 to i1
  br i1 %1173, label %1174, label %1196

1174:                                             ; preds = %1167
  %1175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1176 = call i32 @fileno(ptr noundef %1175) #11
  %1177 = call i32 @isatty(i32 noundef %1176) #11
  %1178 = icmp ne i32 %1177, 0
  br i1 %1178, label %1179, label %1196

1179:                                             ; preds = %1174
  %1180 = load i32, ptr %30, align 4, !tbaa !5
  %1181 = call ptr @__errno_location() #12
  store i32 %1180, ptr %1181, align 4, !tbaa !5
  %1182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1183 = load i32, ptr @test_count, align 4, !tbaa !5
  %1184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1185 = load i32, ptr %1184, align 4, !tbaa !5
  %1186 = call ptr @s2n_strerror(i32 noundef %1185, ptr noundef @.str.4)
  %1187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1188 = load i32, ptr %1187, align 4, !tbaa !5
  %1189 = call ptr @s2n_strerror_debug(i32 noundef %1188, ptr noundef @.str.4)
  %1190 = call ptr @__errno_location() #12
  %1191 = load i32, ptr %1190, align 4, !tbaa !5
  %1192 = call ptr @strerror(i32 noundef %1191) #11
  %1193 = call ptr @__errno_location() #12
  %1194 = load i32, ptr %1193, align 4, !tbaa !5
  %1195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1182, ptr noundef @.str.2, i32 noundef %1183, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1186, ptr noundef %1189, ptr noundef %1192, i32 noundef %1194) #11
  br label %1213

1196:                                             ; preds = %1174, %1167
  %1197 = load i32, ptr %30, align 4, !tbaa !5
  %1198 = call ptr @__errno_location() #12
  store i32 %1197, ptr %1198, align 4, !tbaa !5
  %1199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1200 = load i32, ptr @test_count, align 4, !tbaa !5
  %1201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1202 = load i32, ptr %1201, align 4, !tbaa !5
  %1203 = call ptr @s2n_strerror(i32 noundef %1202, ptr noundef @.str.4)
  %1204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = call ptr @s2n_strerror_debug(i32 noundef %1205, ptr noundef @.str.4)
  %1207 = call ptr @__errno_location() #12
  %1208 = load i32, ptr %1207, align 4, !tbaa !5
  %1209 = call ptr @strerror(i32 noundef %1208) #11
  %1210 = call ptr @__errno_location() #12
  %1211 = load i32, ptr %1210, align 4, !tbaa !5
  %1212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1199, ptr noundef @.str.5, i32 noundef %1200, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1203, ptr noundef %1206, ptr noundef %1209, i32 noundef %1211) #11
  br label %1213

1213:                                             ; preds = %1196, %1179
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %1214

1214:                                             ; preds = %1213
  br label %1215

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

1216:                                             ; No predecessors!
  br label %1217

1217:                                             ; preds = %1216
  br label %1218

1218:                                             ; preds = %1217, %1157
  br label %1219

1219:                                             ; preds = %1218, %1151
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %1220

1220:                                             ; preds = %1219
  br label %1221

1221:                                             ; preds = %1220
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #11
  %1222 = load ptr, ptr %25, align 8, !tbaa !9
  %1223 = getelementptr inbounds %struct.s2n_connection, ptr %1222, i32 0, i32 52
  %1224 = getelementptr inbounds %struct.s2n_handshake, ptr %1223, i32 0, i32 0
  store ptr %1224, ptr %31, align 8, !tbaa !9
  br label %1225

1225:                                             ; preds = %1221
  %1226 = load i32, ptr @test_count, align 4, !tbaa !5
  %1227 = add nsw i32 %1226, 1
  store i32 %1227, ptr @test_count, align 4, !tbaa !5
  %1228 = load ptr, ptr %25, align 8, !tbaa !9
  %1229 = call i32 @s2n_next_protocol_send(ptr noundef %1228)
  %1230 = icmp eq i32 %1229, -1
  br i1 %1230, label %1231, label %1284

1231:                                             ; preds = %1225
  br label %1232

1232:                                             ; preds = %1231
  br label %1233

1233:                                             ; preds = %1232
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  %1234 = call ptr @__errno_location() #12
  %1235 = load i32, ptr %1234, align 4, !tbaa !5
  store i32 %1235, ptr %32, align 4, !tbaa !5
  %1236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1237 = call i32 @s2n_print_stacktrace(ptr noundef %1236)
  %1238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1239 = trunc i8 %1238 to i1
  br i1 %1239, label %1240, label %1262

1240:                                             ; preds = %1233
  %1241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1242 = call i32 @fileno(ptr noundef %1241) #11
  %1243 = call i32 @isatty(i32 noundef %1242) #11
  %1244 = icmp ne i32 %1243, 0
  br i1 %1244, label %1245, label %1262

1245:                                             ; preds = %1240
  %1246 = load i32, ptr %32, align 4, !tbaa !5
  %1247 = call ptr @__errno_location() #12
  store i32 %1246, ptr %1247, align 4, !tbaa !5
  %1248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1249 = load i32, ptr @test_count, align 4, !tbaa !5
  %1250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  %1252 = call ptr @s2n_strerror(i32 noundef %1251, ptr noundef @.str.4)
  %1253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = call ptr @s2n_strerror_debug(i32 noundef %1254, ptr noundef @.str.4)
  %1256 = call ptr @__errno_location() #12
  %1257 = load i32, ptr %1256, align 4, !tbaa !5
  %1258 = call ptr @strerror(i32 noundef %1257) #11
  %1259 = call ptr @__errno_location() #12
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1248, ptr noundef @.str.2, i32 noundef %1249, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1252, ptr noundef %1255, ptr noundef %1258, i32 noundef %1260) #11
  br label %1279

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

1279:                                             ; preds = %1262, %1245
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1280

1280:                                             ; preds = %1279
  br label %1281

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

1282:                                             ; No predecessors!
  br label %1283

1283:                                             ; preds = %1282
  br label %1284

1284:                                             ; preds = %1283, %1225
  br label %1285

1285:                                             ; preds = %1284
  br label %1286

1286:                                             ; preds = %1285
  br label %1287

1287:                                             ; preds = %1286
  %1288 = load i32, ptr @test_count, align 4, !tbaa !5
  %1289 = add nsw i32 %1288, 1
  store i32 %1289, ptr @test_count, align 4, !tbaa !5
  %1290 = load ptr, ptr %31, align 8, !tbaa !9
  %1291 = load ptr, ptr %23, align 8, !tbaa !9
  %1292 = getelementptr inbounds %struct.s2n_connection, ptr %1291, i32 0, i32 52
  %1293 = getelementptr inbounds %struct.s2n_handshake, ptr %1292, i32 0, i32 0
  %1294 = load ptr, ptr %31, align 8, !tbaa !9
  %1295 = getelementptr inbounds %struct.s2n_stuffer, ptr %1294, i32 0, i32 2
  %1296 = load i32, ptr %1295, align 4, !tbaa !43
  %1297 = load ptr, ptr %31, align 8, !tbaa !9
  %1298 = getelementptr inbounds %struct.s2n_stuffer, ptr %1297, i32 0, i32 1
  %1299 = load i32, ptr %1298, align 8, !tbaa !44
  %1300 = sub i32 %1296, %1299
  %1301 = call i32 @s2n_stuffer_copy(ptr noundef %1290, ptr noundef %1293, i32 noundef %1300)
  %1302 = icmp eq i32 %1301, -1
  br i1 %1302, label %1303, label %1356

1303:                                             ; preds = %1287
  br label %1304

1304:                                             ; preds = %1303
  br label %1305

1305:                                             ; preds = %1304
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  %1306 = call ptr @__errno_location() #12
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  store i32 %1307, ptr %33, align 4, !tbaa !5
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = call i32 @s2n_print_stacktrace(ptr noundef %1308)
  %1310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1311 = trunc i8 %1310 to i1
  br i1 %1311, label %1312, label %1334

1312:                                             ; preds = %1305
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = call i32 @fileno(ptr noundef %1313) #11
  %1315 = call i32 @isatty(i32 noundef %1314) #11
  %1316 = icmp ne i32 %1315, 0
  br i1 %1316, label %1317, label %1334

1317:                                             ; preds = %1312
  %1318 = load i32, ptr %33, align 4, !tbaa !5
  %1319 = call ptr @__errno_location() #12
  store i32 %1318, ptr %1319, align 4, !tbaa !5
  %1320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1321 = load i32, ptr @test_count, align 4, !tbaa !5
  %1322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror(i32 noundef %1323, ptr noundef @.str.4)
  %1325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  %1327 = call ptr @s2n_strerror_debug(i32 noundef %1326, ptr noundef @.str.4)
  %1328 = call ptr @__errno_location() #12
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call ptr @strerror(i32 noundef %1329) #11
  %1331 = call ptr @__errno_location() #12
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1320, ptr noundef @.str.2, i32 noundef %1321, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1324, ptr noundef %1327, ptr noundef %1330, i32 noundef %1332) #11
  br label %1351

1334:                                             ; preds = %1312, %1305
  %1335 = load i32, ptr %33, align 4, !tbaa !5
  %1336 = call ptr @__errno_location() #12
  store i32 %1335, ptr %1336, align 4, !tbaa !5
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = load i32, ptr @test_count, align 4, !tbaa !5
  %1339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1340 = load i32, ptr %1339, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror(i32 noundef %1340, ptr noundef @.str.4)
  %1342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1343 = load i32, ptr %1342, align 4, !tbaa !5
  %1344 = call ptr @s2n_strerror_debug(i32 noundef %1343, ptr noundef @.str.4)
  %1345 = call ptr @__errno_location() #12
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call ptr @strerror(i32 noundef %1346) #11
  %1348 = call ptr @__errno_location() #12
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  %1350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1337, ptr noundef @.str.5, i32 noundef %1338, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1341, ptr noundef %1344, ptr noundef %1347, i32 noundef %1349) #11
  br label %1351

1351:                                             ; preds = %1334, %1317
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1352

1352:                                             ; preds = %1351
  br label %1353

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

1354:                                             ; No predecessors!
  br label %1355

1355:                                             ; preds = %1354
  br label %1356

1356:                                             ; preds = %1355, %1287
  br label %1357

1357:                                             ; preds = %1356
  br label %1358

1358:                                             ; preds = %1357
  %1359 = load ptr, ptr %23, align 8, !tbaa !9
  %1360 = getelementptr inbounds %struct.s2n_connection, ptr %1359, i32 0, i32 23
  store i8 34, ptr %1360, align 4, !tbaa !15
  br label %1361

1361:                                             ; preds = %1358
  br label %1362

1362:                                             ; preds = %1361
  br label %1363

1363:                                             ; preds = %1362
  %1364 = load i32, ptr @test_count, align 4, !tbaa !5
  %1365 = add nsw i32 %1364, 1
  store i32 %1365, ptr @test_count, align 4, !tbaa !5
  %1366 = load ptr, ptr %23, align 8, !tbaa !9
  %1367 = call i32 @s2n_next_protocol_recv(ptr noundef %1366)
  %1368 = icmp eq i32 %1367, -1
  br i1 %1368, label %1422, label %1369

1369:                                             ; preds = %1363
  br label %1370

1370:                                             ; preds = %1369
  br label %1371

1371:                                             ; preds = %1370
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  %1372 = call ptr @__errno_location() #12
  %1373 = load i32, ptr %1372, align 4, !tbaa !5
  store i32 %1373, ptr %34, align 4, !tbaa !5
  %1374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1375 = call i32 @s2n_print_stacktrace(ptr noundef %1374)
  %1376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1377 = trunc i8 %1376 to i1
  br i1 %1377, label %1378, label %1400

1378:                                             ; preds = %1371
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1380 = call i32 @fileno(ptr noundef %1379) #11
  %1381 = call i32 @isatty(i32 noundef %1380) #11
  %1382 = icmp ne i32 %1381, 0
  br i1 %1382, label %1383, label %1400

1383:                                             ; preds = %1378
  %1384 = load i32, ptr %34, align 4, !tbaa !5
  %1385 = call ptr @__errno_location() #12
  store i32 %1384, ptr %1385, align 4, !tbaa !5
  %1386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1387 = load i32, ptr @test_count, align 4, !tbaa !5
  %1388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  %1390 = call ptr @s2n_strerror(i32 noundef %1389, ptr noundef @.str.4)
  %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_debug(i32 noundef %1392, ptr noundef @.str.4)
  %1394 = call ptr @__errno_location() #12
  %1395 = load i32, ptr %1394, align 4, !tbaa !5
  %1396 = call ptr @strerror(i32 noundef %1395) #11
  %1397 = call ptr @__errno_location() #12
  %1398 = load i32, ptr %1397, align 4, !tbaa !5
  %1399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1386, ptr noundef @.str.2, i32 noundef %1387, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1390, ptr noundef %1393, ptr noundef %1396, i32 noundef %1398) #11
  br label %1417

1400:                                             ; preds = %1378, %1371
  %1401 = load i32, ptr %34, align 4, !tbaa !5
  %1402 = call ptr @__errno_location() #12
  store i32 %1401, ptr %1402, align 4, !tbaa !5
  %1403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1404 = load i32, ptr @test_count, align 4, !tbaa !5
  %1405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1406 = load i32, ptr %1405, align 4, !tbaa !5
  %1407 = call ptr @s2n_strerror(i32 noundef %1406, ptr noundef @.str.4)
  %1408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1409 = load i32, ptr %1408, align 4, !tbaa !5
  %1410 = call ptr @s2n_strerror_debug(i32 noundef %1409, ptr noundef @.str.4)
  %1411 = call ptr @__errno_location() #12
  %1412 = load i32, ptr %1411, align 4, !tbaa !5
  %1413 = call ptr @strerror(i32 noundef %1412) #11
  %1414 = call ptr @__errno_location() #12
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  %1416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1403, ptr noundef @.str.5, i32 noundef %1404, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1407, ptr noundef %1410, ptr noundef %1413, i32 noundef %1415) #11
  br label %1417

1417:                                             ; preds = %1400, %1383
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1418

1418:                                             ; preds = %1417
  br label %1419

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

1420:                                             ; No predecessors!
  br label %1421

1421:                                             ; preds = %1420
  br label %1422

1422:                                             ; preds = %1421, %1363
  br label %1423

1423:                                             ; preds = %1422
  br label %1424

1424:                                             ; preds = %1423
  br label %1425

1425:                                             ; preds = %1424
  %1426 = load i32, ptr @test_count, align 4, !tbaa !5
  %1427 = add nsw i32 %1426, 1
  store i32 %1427, ptr @test_count, align 4, !tbaa !5
  %1428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1429 = load i32, ptr %1428, align 4, !tbaa !5
  %1430 = icmp eq i32 %1429, 335544322
  br i1 %1430, label %1484, label %1431

1431:                                             ; preds = %1425
  br label %1432

1432:                                             ; preds = %1431
  br label %1433

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

1440:                                             ; preds = %1433
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = call i32 @fileno(ptr noundef %1441) #11
  %1443 = call i32 @isatty(i32 noundef %1442) #11
  %1444 = icmp ne i32 %1443, 0
  br i1 %1444, label %1445, label %1462

1445:                                             ; preds = %1440
  %1446 = load i32, ptr %35, align 4, !tbaa !5
  %1447 = call ptr @__errno_location() #12
  store i32 %1446, ptr %1447, 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 @.str.4)
  %1453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  %1455 = call ptr @s2n_strerror_debug(i32 noundef %1454, ptr noundef @.str.4)
  %1456 = call ptr @__errno_location() #12
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  %1458 = call ptr @strerror(i32 noundef %1457) #11
  %1459 = call ptr @__errno_location() #12
  %1460 = load i32, ptr %1459, align 4, !tbaa !5
  %1461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1448, ptr noundef @.str.2, i32 noundef %1449, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1452, ptr noundef %1455, ptr noundef %1458, i32 noundef %1460) #11
  br label %1479

1462:                                             ; preds = %1440, %1433
  %1463 = load i32, ptr %35, align 4, !tbaa !5
  %1464 = call ptr @__errno_location() #12
  store i32 %1463, ptr %1464, align 4, !tbaa !5
  %1465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1466 = load i32, ptr @test_count, align 4, !tbaa !5
  %1467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = call ptr @s2n_strerror(i32 noundef %1468, ptr noundef @.str.4)
  %1470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = call ptr @s2n_strerror_debug(i32 noundef %1471, ptr noundef @.str.4)
  %1473 = call ptr @__errno_location() #12
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call ptr @strerror(i32 noundef %1474) #11
  %1476 = call ptr @__errno_location() #12
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1465, ptr noundef @.str.5, i32 noundef %1466, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1469, ptr noundef %1472, ptr noundef %1475, i32 noundef %1477) #11
  br label %1479

1479:                                             ; preds = %1462, %1445
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %1480

1480:                                             ; preds = %1479
  br label %1481

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

1482:                                             ; No predecessors!
  br label %1483

1483:                                             ; preds = %1482
  br label %1484

1484:                                             ; preds = %1483, %1425
  br label %1485

1485:                                             ; preds = %1484
  br label %1486

1486:                                             ; preds = %1485
  br label %1487

1487:                                             ; preds = %1486
  %1488 = load i32, ptr @test_count, align 4, !tbaa !5
  %1489 = add nsw i32 %1488, 1
  store i32 %1489, ptr @test_count, align 4, !tbaa !5
  %1490 = 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_debug(i32 noundef %1491, ptr noundef @.str.4)
  %1493 = icmp eq ptr %1492, null
  br i1 %1493, label %1494, label %1547

1494:                                             ; preds = %1487
  br label %1495

1495:                                             ; preds = %1494
  br label %1496

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

1503:                                             ; preds = %1496
  %1504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1505 = call i32 @fileno(ptr noundef %1504) #11
  %1506 = call i32 @isatty(i32 noundef %1505) #11
  %1507 = icmp ne i32 %1506, 0
  br i1 %1507, label %1508, label %1525

1508:                                             ; preds = %1503
  %1509 = load i32, ptr %36, align 4, !tbaa !5
  %1510 = call ptr @__errno_location() #12
  store i32 %1509, ptr %1510, align 4, !tbaa !5
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = load i32, ptr @test_count, align 4, !tbaa !5
  %1513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1514 = load i32, ptr %1513, align 4, !tbaa !5
  %1515 = call ptr @s2n_strerror(i32 noundef %1514, ptr noundef @.str.4)
  %1516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1517 = load i32, ptr %1516, align 4, !tbaa !5
  %1518 = call ptr @s2n_strerror_debug(i32 noundef %1517, ptr noundef @.str.4)
  %1519 = call ptr @__errno_location() #12
  %1520 = load i32, ptr %1519, align 4, !tbaa !5
  %1521 = call ptr @strerror(i32 noundef %1520) #11
  %1522 = call ptr @__errno_location() #12
  %1523 = load i32, ptr %1522, align 4, !tbaa !5
  %1524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1511, ptr noundef @.str.2, i32 noundef %1512, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1515, ptr noundef %1518, ptr noundef %1521, i32 noundef %1523) #11
  br label %1542

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

1542:                                             ; preds = %1525, %1508
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1543

1543:                                             ; preds = %1542
  br label %1544

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

1545:                                             ; No predecessors!
  br label %1546

1546:                                             ; preds = %1545
  br label %1547

1547:                                             ; preds = %1546, %1487
  br label %1548

1548:                                             ; preds = %1547
  br label %1549

1549:                                             ; preds = %1548
  br label %1550

1550:                                             ; preds = %1549
  br label %1551

1551:                                             ; preds = %1550
  br label %1552

1552:                                             ; preds = %1551
  %1553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1553, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1554 = call ptr @__errno_location() #12
  store i32 0, ptr %1554, align 4, !tbaa !5
  br label %1555

1555:                                             ; preds = %1552
  br label %1556

1556:                                             ; preds = %1555
  br label %1557

1557:                                             ; preds = %1556
  br label %1558

1558:                                             ; preds = %1557
  %1559 = load ptr, ptr %23, align 8, !tbaa !9
  %1560 = getelementptr inbounds %struct.s2n_connection, ptr %1559, i32 0, i32 23
  store i8 33, ptr %1560, align 4, !tbaa !15
  br label %1561

1561:                                             ; preds = %1558
  %1562 = load i32, ptr @test_count, align 4, !tbaa !5
  %1563 = add nsw i32 %1562, 1
  store i32 %1563, ptr @test_count, align 4, !tbaa !5
  %1564 = load ptr, ptr %23, align 8, !tbaa !9
  %1565 = call i32 @s2n_next_protocol_recv(ptr noundef %1564)
  %1566 = icmp eq i32 %1565, -1
  br i1 %1566, label %1567, label %1620

1567:                                             ; preds = %1561
  br label %1568

1568:                                             ; preds = %1567
  br label %1569

1569:                                             ; preds = %1568
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #11
  %1570 = call ptr @__errno_location() #12
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  store i32 %1571, ptr %37, align 4, !tbaa !5
  %1572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1573 = call i32 @s2n_print_stacktrace(ptr noundef %1572)
  %1574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1575 = trunc i8 %1574 to i1
  br i1 %1575, label %1576, label %1598

1576:                                             ; preds = %1569
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = call i32 @fileno(ptr noundef %1577) #11
  %1579 = call i32 @isatty(i32 noundef %1578) #11
  %1580 = icmp ne i32 %1579, 0
  br i1 %1580, label %1581, label %1598

1581:                                             ; preds = %1576
  %1582 = load i32, ptr %37, align 4, !tbaa !5
  %1583 = call ptr @__errno_location() #12
  store i32 %1582, ptr %1583, align 4, !tbaa !5
  %1584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1585 = load i32, ptr @test_count, align 4, !tbaa !5
  %1586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror(i32 noundef %1587, ptr noundef @.str.4)
  %1589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1590 = load i32, ptr %1589, align 4, !tbaa !5
  %1591 = call ptr @s2n_strerror_debug(i32 noundef %1590, ptr noundef @.str.4)
  %1592 = call ptr @__errno_location() #12
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  %1594 = call ptr @strerror(i32 noundef %1593) #11
  %1595 = call ptr @__errno_location() #12
  %1596 = load i32, ptr %1595, align 4, !tbaa !5
  %1597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1584, ptr noundef @.str.2, i32 noundef %1585, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1588, ptr noundef %1591, ptr noundef %1594, i32 noundef %1596) #11
  br label %1615

1598:                                             ; preds = %1576, %1569
  %1599 = load i32, ptr %37, align 4, !tbaa !5
  %1600 = call ptr @__errno_location() #12
  store i32 %1599, ptr %1600, align 4, !tbaa !5
  %1601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1602 = load i32, ptr @test_count, align 4, !tbaa !5
  %1603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1604 = load i32, ptr %1603, align 4, !tbaa !5
  %1605 = call ptr @s2n_strerror(i32 noundef %1604, ptr noundef @.str.4)
  %1606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1607 = load i32, ptr %1606, align 4, !tbaa !5
  %1608 = call ptr @s2n_strerror_debug(i32 noundef %1607, ptr noundef @.str.4)
  %1609 = call ptr @__errno_location() #12
  %1610 = load i32, ptr %1609, align 4, !tbaa !5
  %1611 = call ptr @strerror(i32 noundef %1610) #11
  %1612 = call ptr @__errno_location() #12
  %1613 = load i32, ptr %1612, align 4, !tbaa !5
  %1614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1601, ptr noundef @.str.5, i32 noundef %1602, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1605, ptr noundef %1608, ptr noundef %1611, i32 noundef %1613) #11
  br label %1615

1615:                                             ; preds = %1598, %1581
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1616

1616:                                             ; preds = %1615
  br label %1617

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

1618:                                             ; No predecessors!
  br label %1619

1619:                                             ; preds = %1618
  br label %1620

1620:                                             ; preds = %1619, %1561
  br label %1621

1621:                                             ; preds = %1620
  br label %1622

1622:                                             ; preds = %1621
  br label %1623

1623:                                             ; preds = %1622
  %1624 = load i32, ptr @test_count, align 4, !tbaa !5
  %1625 = add nsw i32 %1624, 1
  store i32 %1625, ptr @test_count, align 4, !tbaa !5
  %1626 = load ptr, ptr %23, align 8, !tbaa !9
  %1627 = getelementptr inbounds %struct.s2n_connection, ptr %1626, i32 0, i32 52
  %1628 = getelementptr inbounds %struct.s2n_handshake, ptr %1627, i32 0, i32 0
  %1629 = getelementptr inbounds %struct.s2n_stuffer, ptr %1628, i32 0, i32 2
  %1630 = load i32, ptr %1629, align 4, !tbaa !45
  %1631 = load ptr, ptr %23, align 8, !tbaa !9
  %1632 = getelementptr inbounds %struct.s2n_connection, ptr %1631, i32 0, i32 52
  %1633 = getelementptr inbounds %struct.s2n_handshake, ptr %1632, i32 0, i32 0
  %1634 = getelementptr inbounds %struct.s2n_stuffer, ptr %1633, i32 0, i32 1
  %1635 = load i32, ptr %1634, align 8, !tbaa !46
  %1636 = sub i32 %1630, %1635
  %1637 = icmp eq i32 %1636, 0
  br i1 %1637, label %1691, label %1638

1638:                                             ; preds = %1623
  br label %1639

1639:                                             ; preds = %1638
  br label %1640

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

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

1652:                                             ; preds = %1647
  %1653 = load i32, ptr %38, align 4, !tbaa !5
  %1654 = call ptr @__errno_location() #12
  store i32 %1653, ptr %1654, align 4, !tbaa !5
  %1655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1656 = load i32, ptr @test_count, align 4, !tbaa !5
  %1657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1658 = load i32, ptr %1657, align 4, !tbaa !5
  %1659 = call ptr @s2n_strerror(i32 noundef %1658, ptr noundef @.str.4)
  %1660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1661 = load i32, ptr %1660, align 4, !tbaa !5
  %1662 = call ptr @s2n_strerror_debug(i32 noundef %1661, ptr noundef @.str.4)
  %1663 = call ptr @__errno_location() #12
  %1664 = load i32, ptr %1663, align 4, !tbaa !5
  %1665 = call ptr @strerror(i32 noundef %1664) #11
  %1666 = call ptr @__errno_location() #12
  %1667 = load i32, ptr %1666, align 4, !tbaa !5
  %1668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1655, ptr noundef @.str.2, i32 noundef %1656, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1659, ptr noundef %1662, ptr noundef %1665, i32 noundef %1667) #11
  br label %1686

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

1686:                                             ; preds = %1669, %1652
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1687

1687:                                             ; preds = %1686
  br label %1688

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

1689:                                             ; No predecessors!
  br label %1690

1690:                                             ; preds = %1689
  br label %1691

1691:                                             ; preds = %1690, %1623
  br label %1692

1692:                                             ; preds = %1691
  br label %1693

1693:                                             ; preds = %1692
  br label %1694

1694:                                             ; preds = %1693
  %1695 = load i8, ptr %28, align 1, !tbaa !42
  %1696 = zext i8 %1695 to i32
  %1697 = icmp ne i32 %1696, 0
  br i1 %1697, label %1698, label %1768

1698:                                             ; preds = %1694
  br label %1699

1699:                                             ; preds = %1698
  %1700 = load i32, ptr @test_count, align 4, !tbaa !5
  %1701 = add nsw i32 %1700, 1
  store i32 %1701, ptr @test_count, align 4, !tbaa !5
  %1702 = load ptr, ptr %25, align 8, !tbaa !9
  %1703 = getelementptr inbounds %struct.s2n_connection, ptr %1702, i32 0, i32 64
  %1704 = getelementptr inbounds [256 x i8], ptr %1703, i64 0, i64 0
  %1705 = load ptr, ptr %23, align 8, !tbaa !9
  %1706 = getelementptr inbounds %struct.s2n_connection, ptr %1705, i32 0, i32 64
  %1707 = getelementptr inbounds [256 x i8], ptr %1706, i64 0, i64 0
  %1708 = load i8, ptr %28, align 1, !tbaa !42
  %1709 = zext i8 %1708 to i64
  %1710 = call i32 @memcmp(ptr noundef %1704, ptr noundef %1707, i64 noundef %1709) #14
  %1711 = icmp eq i32 %1710, 0
  br i1 %1711, label %1765, label %1712

1712:                                             ; preds = %1699
  br label %1713

1713:                                             ; preds = %1712
  br label %1714

1714:                                             ; preds = %1713
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %1715 = call ptr @__errno_location() #12
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  store i32 %1716, ptr %39, align 4, !tbaa !5
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = call i32 @s2n_print_stacktrace(ptr noundef %1717)
  %1719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1720 = trunc i8 %1719 to i1
  br i1 %1720, label %1721, label %1743

1721:                                             ; preds = %1714
  %1722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1723 = call i32 @fileno(ptr noundef %1722) #11
  %1724 = call i32 @isatty(i32 noundef %1723) #11
  %1725 = icmp ne i32 %1724, 0
  br i1 %1725, label %1726, label %1743

1726:                                             ; preds = %1721
  %1727 = load i32, ptr %39, align 4, !tbaa !5
  %1728 = call ptr @__errno_location() #12
  store i32 %1727, ptr %1728, align 4, !tbaa !5
  %1729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1730 = load i32, ptr @test_count, align 4, !tbaa !5
  %1731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = call ptr @s2n_strerror(i32 noundef %1732, ptr noundef @.str.4)
  %1734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1735 = load i32, ptr %1734, align 4, !tbaa !5
  %1736 = call ptr @s2n_strerror_debug(i32 noundef %1735, ptr noundef @.str.4)
  %1737 = call ptr @__errno_location() #12
  %1738 = load i32, ptr %1737, align 4, !tbaa !5
  %1739 = call ptr @strerror(i32 noundef %1738) #11
  %1740 = call ptr @__errno_location() #12
  %1741 = load i32, ptr %1740, align 4, !tbaa !5
  %1742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1729, ptr noundef @.str.2, i32 noundef %1730, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1733, ptr noundef %1736, ptr noundef %1739, i32 noundef %1741) #11
  br label %1760

1743:                                             ; preds = %1721, %1714
  %1744 = load i32, ptr %39, align 4, !tbaa !5
  %1745 = call ptr @__errno_location() #12
  store i32 %1744, ptr %1745, align 4, !tbaa !5
  %1746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1747 = load i32, ptr @test_count, align 4, !tbaa !5
  %1748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1749 = load i32, ptr %1748, align 4, !tbaa !5
  %1750 = call ptr @s2n_strerror(i32 noundef %1749, ptr noundef @.str.4)
  %1751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  %1753 = call ptr @s2n_strerror_debug(i32 noundef %1752, ptr noundef @.str.4)
  %1754 = call ptr @__errno_location() #12
  %1755 = load i32, ptr %1754, align 4, !tbaa !5
  %1756 = call ptr @strerror(i32 noundef %1755) #11
  %1757 = call ptr @__errno_location() #12
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  %1759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1746, ptr noundef @.str.5, i32 noundef %1747, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1750, ptr noundef %1753, ptr noundef %1756, i32 noundef %1758) #11
  br label %1760

1760:                                             ; preds = %1743, %1726
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1761

1761:                                             ; preds = %1760
  br label %1762

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

1763:                                             ; No predecessors!
  br label %1764

1764:                                             ; preds = %1763
  br label %1765

1765:                                             ; preds = %1764, %1699
  br label %1766

1766:                                             ; preds = %1765
  br label %1767

1767:                                             ; preds = %1766
  br label %1768

1768:                                             ; preds = %1767, %1694
  br label %1769

1769:                                             ; preds = %1768
  br label %1770

1770:                                             ; preds = %1769
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 9, ptr %27) #11
  %1771 = call i32 @s2n_connection_ptr_free(ptr noundef %25)
  %1772 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  store i32 %1771, ptr %1772, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #11
  %1773 = call i32 @s2n_connection_ptr_free(ptr noundef %23)
  %1774 = getelementptr inbounds %struct.s2n_result, ptr %41, i32 0, i32 0
  store i32 %1773, ptr %1774, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #11
  %1775 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1775, ptr %42, align 8, !tbaa !9
  br label %1776

1776:                                             ; preds = %1770
  %1777 = load i32, ptr @test_count, align 4, !tbaa !5
  %1778 = add nsw i32 %1777, 1
  store i32 %1778, ptr @test_count, align 4, !tbaa !5
  %1779 = load ptr, ptr %42, align 8, !tbaa !9
  %1780 = icmp eq ptr %1779, null
  br i1 %1780, label %1781, label %1834

1781:                                             ; preds = %1776
  br label %1782

1782:                                             ; preds = %1781
  br label %1783

1783:                                             ; preds = %1782
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  %1784 = call ptr @__errno_location() #12
  %1785 = load i32, ptr %1784, align 4, !tbaa !5
  store i32 %1785, ptr %43, align 4, !tbaa !5
  %1786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1787 = call i32 @s2n_print_stacktrace(ptr noundef %1786)
  %1788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1789 = trunc i8 %1788 to i1
  br i1 %1789, label %1790, label %1812

1790:                                             ; preds = %1783
  %1791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1792 = call i32 @fileno(ptr noundef %1791) #11
  %1793 = call i32 @isatty(i32 noundef %1792) #11
  %1794 = icmp ne i32 %1793, 0
  br i1 %1794, label %1795, label %1812

1795:                                             ; preds = %1790
  %1796 = load i32, ptr %43, align 4, !tbaa !5
  %1797 = call ptr @__errno_location() #12
  store i32 %1796, ptr %1797, align 4, !tbaa !5
  %1798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1799 = load i32, ptr @test_count, align 4, !tbaa !5
  %1800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  %1802 = call ptr @s2n_strerror(i32 noundef %1801, ptr noundef @.str.4)
  %1803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = call ptr @s2n_strerror_debug(i32 noundef %1804, ptr noundef @.str.4)
  %1806 = call ptr @__errno_location() #12
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  %1808 = call ptr @strerror(i32 noundef %1807) #11
  %1809 = call ptr @__errno_location() #12
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1798, ptr noundef @.str.2, i32 noundef %1799, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1802, ptr noundef %1805, ptr noundef %1808, i32 noundef %1810) #11
  br label %1829

1812:                                             ; preds = %1790, %1783
  %1813 = load i32, ptr %43, align 4, !tbaa !5
  %1814 = call ptr @__errno_location() #12
  store i32 %1813, ptr %1814, align 4, !tbaa !5
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1816 = load i32, ptr @test_count, align 4, !tbaa !5
  %1817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  %1819 = call ptr @s2n_strerror(i32 noundef %1818, ptr noundef @.str.4)
  %1820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1821 = load i32, ptr %1820, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror_debug(i32 noundef %1821, ptr noundef @.str.4)
  %1823 = call ptr @__errno_location() #12
  %1824 = load i32, ptr %1823, align 4, !tbaa !5
  %1825 = call ptr @strerror(i32 noundef %1824) #11
  %1826 = call ptr @__errno_location() #12
  %1827 = load i32, ptr %1826, align 4, !tbaa !5
  %1828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1815, ptr noundef @.str.5, i32 noundef %1816, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1819, ptr noundef %1822, ptr noundef %1825, i32 noundef %1827) #11
  br label %1829

1829:                                             ; preds = %1812, %1795
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1830

1830:                                             ; preds = %1829
  br label %1831

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

1832:                                             ; No predecessors!
  br label %1833

1833:                                             ; preds = %1832
  br label %1834

1834:                                             ; preds = %1833, %1776
  br label %1835

1835:                                             ; preds = %1834
  br label %1836

1836:                                             ; preds = %1835
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #11
  %1837 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %1838 = load ptr, ptr %1837, align 16, !tbaa !9
  %1839 = call i64 @strlen(ptr noundef %1838) #14
  %1840 = trunc i64 %1839 to i8
  store i8 %1840, ptr %44, align 1, !tbaa !42
  br label %1841

1841:                                             ; preds = %1836
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #11
  %1842 = load i8, ptr %44, align 1, !tbaa !42
  %1843 = zext i8 %1842 to i32
  %1844 = add nsw i32 %1843, 1
  store i32 %1844, ptr %45, align 4, !tbaa !5
  %1845 = load i32, ptr %45, align 4, !tbaa !5
  %1846 = icmp ne i32 %1845, 0
  br i1 %1846, label %1847, label %1910

1847:                                             ; preds = %1841
  %1848 = load ptr, ptr %42, align 8, !tbaa !9
  %1849 = getelementptr inbounds %struct.s2n_connection, ptr %1848, i32 0, i32 64
  %1850 = getelementptr inbounds [256 x i8], ptr %1849, i64 0, i64 0
  %1851 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %1852 = load ptr, ptr %1851, align 16, !tbaa !9
  %1853 = load i32, ptr %45, align 4, !tbaa !5
  %1854 = sext i32 %1853 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %1850, ptr align 1 %1852, i64 %1854, i1 false)
  %1855 = icmp eq ptr %1850, null
  br i1 %1855, label %1856, label %1909

1856:                                             ; preds = %1847
  br label %1857

1857:                                             ; preds = %1856
  br label %1858

1858:                                             ; preds = %1857
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #11
  %1859 = call ptr @__errno_location() #12
  %1860 = load i32, ptr %1859, align 4, !tbaa !5
  store i32 %1860, ptr %46, align 4, !tbaa !5
  %1861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1862 = call i32 @s2n_print_stacktrace(ptr noundef %1861)
  %1863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1864 = trunc i8 %1863 to i1
  br i1 %1864, label %1865, label %1887

1865:                                             ; preds = %1858
  %1866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1867 = call i32 @fileno(ptr noundef %1866) #11
  %1868 = call i32 @isatty(i32 noundef %1867) #11
  %1869 = icmp ne i32 %1868, 0
  br i1 %1869, label %1870, label %1887

1870:                                             ; preds = %1865
  %1871 = load i32, ptr %46, align 4, !tbaa !5
  %1872 = call ptr @__errno_location() #12
  store i32 %1871, ptr %1872, align 4, !tbaa !5
  %1873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1874 = load i32, ptr @test_count, align 4, !tbaa !5
  %1875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1876 = load i32, ptr %1875, align 4, !tbaa !5
  %1877 = call ptr @s2n_strerror(i32 noundef %1876, ptr noundef @.str.4)
  %1878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1879 = load i32, ptr %1878, align 4, !tbaa !5
  %1880 = call ptr @s2n_strerror_debug(i32 noundef %1879, ptr noundef @.str.4)
  %1881 = call ptr @__errno_location() #12
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = call ptr @strerror(i32 noundef %1882) #11
  %1884 = call ptr @__errno_location() #12
  %1885 = load i32, ptr %1884, align 4, !tbaa !5
  %1886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1873, ptr noundef @.str.2, i32 noundef %1874, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1877, ptr noundef %1880, ptr noundef %1883, i32 noundef %1885) #11
  br label %1904

1887:                                             ; preds = %1865, %1858
  %1888 = load i32, ptr %46, align 4, !tbaa !5
  %1889 = call ptr @__errno_location() #12
  store i32 %1888, ptr %1889, align 4, !tbaa !5
  %1890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1891 = load i32, ptr @test_count, align 4, !tbaa !5
  %1892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1893 = load i32, ptr %1892, align 4, !tbaa !5
  %1894 = call ptr @s2n_strerror(i32 noundef %1893, ptr noundef @.str.4)
  %1895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1896 = load i32, ptr %1895, align 4, !tbaa !5
  %1897 = call ptr @s2n_strerror_debug(i32 noundef %1896, ptr noundef @.str.4)
  %1898 = call ptr @__errno_location() #12
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  %1900 = call ptr @strerror(i32 noundef %1899) #11
  %1901 = call ptr @__errno_location() #12
  %1902 = load i32, ptr %1901, align 4, !tbaa !5
  %1903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1890, ptr noundef @.str.5, i32 noundef %1891, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1894, ptr noundef %1897, ptr noundef %1900, i32 noundef %1902) #11
  br label %1904

1904:                                             ; preds = %1887, %1870
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %1905

1905:                                             ; preds = %1904
  br label %1906

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

1907:                                             ; No predecessors!
  br label %1908

1908:                                             ; preds = %1907
  br label %1909

1909:                                             ; preds = %1908, %1847
  br label %1910

1910:                                             ; preds = %1909, %1841
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %1911

1911:                                             ; preds = %1910
  br label %1912

1912:                                             ; preds = %1911
  call void @llvm.lifetime.start.p0(i64 40, ptr %47) #11
  call void @llvm.memset.p0.i64(ptr align 8 %47, i8 0, i64 40, i1 false)
  br label %1913

1913:                                             ; preds = %1912
  %1914 = load i32, ptr @test_count, align 4, !tbaa !5
  %1915 = add nsw i32 %1914, 1
  store i32 %1915, ptr @test_count, align 4, !tbaa !5
  %1916 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %47, i32 noundef 0)
  %1917 = icmp eq i32 %1916, -1
  br i1 %1917, label %1918, label %1971

1918:                                             ; preds = %1913
  br label %1919

1919:                                             ; preds = %1918
  br label %1920

1920:                                             ; preds = %1919
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %1921 = call ptr @__errno_location() #12
  %1922 = load i32, ptr %1921, align 4, !tbaa !5
  store i32 %1922, ptr %48, align 4, !tbaa !5
  %1923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1924 = call i32 @s2n_print_stacktrace(ptr noundef %1923)
  %1925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1926 = trunc i8 %1925 to i1
  br i1 %1926, label %1927, label %1949

1927:                                             ; preds = %1920
  %1928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1929 = call i32 @fileno(ptr noundef %1928) #11
  %1930 = call i32 @isatty(i32 noundef %1929) #11
  %1931 = icmp ne i32 %1930, 0
  br i1 %1931, label %1932, label %1949

1932:                                             ; preds = %1927
  %1933 = load i32, ptr %48, align 4, !tbaa !5
  %1934 = call ptr @__errno_location() #12
  store i32 %1933, ptr %1934, align 4, !tbaa !5
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = load i32, ptr @test_count, align 4, !tbaa !5
  %1937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1938 = load i32, ptr %1937, align 4, !tbaa !5
  %1939 = call ptr @s2n_strerror(i32 noundef %1938, ptr noundef @.str.4)
  %1940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = call ptr @s2n_strerror_debug(i32 noundef %1941, ptr noundef @.str.4)
  %1943 = call ptr @__errno_location() #12
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call ptr @strerror(i32 noundef %1944) #11
  %1946 = call ptr @__errno_location() #12
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1935, ptr noundef @.str.2, i32 noundef %1936, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1939, ptr noundef %1942, ptr noundef %1945, i32 noundef %1947) #11
  br label %1966

1949:                                             ; preds = %1927, %1920
  %1950 = load i32, ptr %48, align 4, !tbaa !5
  %1951 = call ptr @__errno_location() #12
  store i32 %1950, ptr %1951, align 4, !tbaa !5
  %1952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1953 = load i32, ptr @test_count, align 4, !tbaa !5
  %1954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = call ptr @s2n_strerror(i32 noundef %1955, ptr noundef @.str.4)
  %1957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1958 = load i32, ptr %1957, align 4, !tbaa !5
  %1959 = call ptr @s2n_strerror_debug(i32 noundef %1958, ptr noundef @.str.4)
  %1960 = call ptr @__errno_location() #12
  %1961 = load i32, ptr %1960, align 4, !tbaa !5
  %1962 = call ptr @strerror(i32 noundef %1961) #11
  %1963 = call ptr @__errno_location() #12
  %1964 = load i32, ptr %1963, align 4, !tbaa !5
  %1965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1952, ptr noundef @.str.5, i32 noundef %1953, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1956, ptr noundef %1959, ptr noundef %1962, i32 noundef %1964) #11
  br label %1966

1966:                                             ; preds = %1949, %1932
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %1967

1967:                                             ; preds = %1966
  br label %1968

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

1969:                                             ; No predecessors!
  br label %1970

1970:                                             ; preds = %1969
  br label %1971

1971:                                             ; preds = %1970, %1913
  br label %1972

1972:                                             ; preds = %1971
  br label %1973

1973:                                             ; preds = %1972
  br label %1974

1974:                                             ; preds = %1973
  %1975 = load i32, ptr @test_count, align 4, !tbaa !5
  %1976 = add nsw i32 %1975, 1
  store i32 %1976, ptr @test_count, align 4, !tbaa !5
  %1977 = load ptr, ptr %42, align 8, !tbaa !9
  %1978 = call i32 @s2n_write_npn_protocol(ptr noundef %1977, ptr noundef %47)
  %1979 = getelementptr inbounds %struct.s2n_result, ptr %49, i32 0, i32 0
  store i32 %1978, ptr %1979, align 4
  %1980 = getelementptr inbounds %struct.s2n_result, ptr %49, i32 0, i32 0
  %1981 = load i32, ptr %1980, align 4
  %1982 = call zeroext i1 @s2n_result_is_ok(i32 %1981)
  br i1 %1982, label %2036, label %1983

1983:                                             ; preds = %1974
  br label %1984

1984:                                             ; preds = %1983
  br label %1985

1985:                                             ; preds = %1984
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #11
  %1986 = call ptr @__errno_location() #12
  %1987 = load i32, ptr %1986, align 4, !tbaa !5
  store i32 %1987, ptr %50, align 4, !tbaa !5
  %1988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1989 = call i32 @s2n_print_stacktrace(ptr noundef %1988)
  %1990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1991 = trunc i8 %1990 to i1
  br i1 %1991, label %1992, label %2014

1992:                                             ; preds = %1985
  %1993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1994 = call i32 @fileno(ptr noundef %1993) #11
  %1995 = call i32 @isatty(i32 noundef %1994) #11
  %1996 = icmp ne i32 %1995, 0
  br i1 %1996, label %1997, label %2014

1997:                                             ; preds = %1992
  %1998 = load i32, ptr %50, align 4, !tbaa !5
  %1999 = call ptr @__errno_location() #12
  store i32 %1998, ptr %1999, align 4, !tbaa !5
  %2000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2001 = load i32, ptr @test_count, align 4, !tbaa !5
  %2002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror(i32 noundef %2003, ptr noundef @.str.4)
  %2005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2006 = load i32, ptr %2005, align 4, !tbaa !5
  %2007 = call ptr @s2n_strerror_debug(i32 noundef %2006, ptr noundef @.str.4)
  %2008 = call ptr @__errno_location() #12
  %2009 = load i32, ptr %2008, align 4, !tbaa !5
  %2010 = call ptr @strerror(i32 noundef %2009) #11
  %2011 = call ptr @__errno_location() #12
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  %2013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2000, ptr noundef @.str.2, i32 noundef %2001, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 98, ptr noundef %2004, ptr noundef %2007, ptr noundef %2010, i32 noundef %2012) #11
  br label %2031

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

2031:                                             ; preds = %2014, %1997
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %2032

2032:                                             ; preds = %2031
  br label %2033

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

2034:                                             ; No predecessors!
  br label %2035

2035:                                             ; preds = %2034
  br label %2036

2036:                                             ; preds = %2035, %1974
  br label %2037

2037:                                             ; preds = %2036
  br label %2038

2038:                                             ; preds = %2037
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #11
  store i8 0, ptr %51, align 1, !tbaa !42
  br label %2039

2039:                                             ; preds = %2038
  %2040 = load i32, ptr @test_count, align 4, !tbaa !5
  %2041 = add nsw i32 %2040, 1
  store i32 %2041, ptr @test_count, align 4, !tbaa !5
  %2042 = call i32 @s2n_stuffer_read_uint8(ptr noundef %47, ptr noundef %51)
  %2043 = icmp eq i32 %2042, -1
  br i1 %2043, label %2044, label %2097

2044:                                             ; preds = %2039
  br label %2045

2045:                                             ; preds = %2044
  br label %2046

2046:                                             ; preds = %2045
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #11
  %2047 = call ptr @__errno_location() #12
  %2048 = load i32, ptr %2047, align 4, !tbaa !5
  store i32 %2048, ptr %52, align 4, !tbaa !5
  %2049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2050 = call i32 @s2n_print_stacktrace(ptr noundef %2049)
  %2051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2052 = trunc i8 %2051 to i1
  br i1 %2052, label %2053, label %2075

2053:                                             ; preds = %2046
  %2054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2055 = call i32 @fileno(ptr noundef %2054) #11
  %2056 = call i32 @isatty(i32 noundef %2055) #11
  %2057 = icmp ne i32 %2056, 0
  br i1 %2057, label %2058, label %2075

2058:                                             ; preds = %2053
  %2059 = load i32, ptr %52, align 4, !tbaa !5
  %2060 = call ptr @__errno_location() #12
  store i32 %2059, ptr %2060, align 4, !tbaa !5
  %2061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2062 = load i32, ptr @test_count, align 4, !tbaa !5
  %2063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  %2065 = call ptr @s2n_strerror(i32 noundef %2064, ptr noundef @.str.4)
  %2066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2067 = load i32, ptr %2066, align 4, !tbaa !5
  %2068 = call ptr @s2n_strerror_debug(i32 noundef %2067, ptr noundef @.str.4)
  %2069 = call ptr @__errno_location() #12
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call ptr @strerror(i32 noundef %2070) #11
  %2072 = call ptr @__errno_location() #12
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2061, ptr noundef @.str.2, i32 noundef %2062, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 101, ptr noundef %2065, ptr noundef %2068, ptr noundef %2071, i32 noundef %2073) #11
  br label %2092

2075:                                             ; preds = %2053, %2046
  %2076 = load i32, ptr %52, align 4, !tbaa !5
  %2077 = call ptr @__errno_location() #12
  store i32 %2076, ptr %2077, align 4, !tbaa !5
  %2078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2079 = load i32, ptr @test_count, align 4, !tbaa !5
  %2080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  %2082 = call ptr @s2n_strerror(i32 noundef %2081, ptr noundef @.str.4)
  %2083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  %2085 = call ptr @s2n_strerror_debug(i32 noundef %2084, ptr noundef @.str.4)
  %2086 = call ptr @__errno_location() #12
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call ptr @strerror(i32 noundef %2087) #11
  %2089 = call ptr @__errno_location() #12
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2078, ptr noundef @.str.5, i32 noundef %2079, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 101, ptr noundef %2082, ptr noundef %2085, ptr noundef %2088, i32 noundef %2090) #11
  br label %2092

2092:                                             ; preds = %2075, %2058
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %2093

2093:                                             ; preds = %2092
  br label %2094

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

2095:                                             ; No predecessors!
  br label %2096

2096:                                             ; preds = %2095
  br label %2097

2097:                                             ; preds = %2096, %2039
  br label %2098

2098:                                             ; preds = %2097
  br label %2099

2099:                                             ; preds = %2098
  call void @llvm.lifetime.start.p0(i64 255, ptr %53) #11
  call void @llvm.memset.p0.i64(ptr align 16 %53, i8 0, i64 255, i1 false)
  br label %2100

2100:                                             ; preds = %2099
  %2101 = load i32, ptr @test_count, align 4, !tbaa !5
  %2102 = add nsw i32 %2101, 1
  store i32 %2102, ptr @test_count, align 4, !tbaa !5
  %2103 = getelementptr inbounds [255 x i8], ptr %53, i64 0, i64 0
  %2104 = load i8, ptr %51, align 1, !tbaa !42
  %2105 = zext i8 %2104 to i32
  %2106 = call i32 @s2n_stuffer_read_bytes(ptr noundef %47, ptr noundef %2103, i32 noundef %2105)
  %2107 = icmp eq i32 %2106, -1
  br i1 %2107, label %2108, label %2161

2108:                                             ; preds = %2100
  br label %2109

2109:                                             ; preds = %2108
  br label %2110

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

2117:                                             ; preds = %2110
  %2118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2119 = call i32 @fileno(ptr noundef %2118) #11
  %2120 = call i32 @isatty(i32 noundef %2119) #11
  %2121 = icmp ne i32 %2120, 0
  br i1 %2121, label %2122, label %2139

2122:                                             ; preds = %2117
  %2123 = load i32, ptr %54, align 4, !tbaa !5
  %2124 = call ptr @__errno_location() #12
  store i32 %2123, ptr %2124, align 4, !tbaa !5
  %2125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2126 = load i32, ptr @test_count, align 4, !tbaa !5
  %2127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  %2129 = call ptr @s2n_strerror(i32 noundef %2128, ptr noundef @.str.4)
  %2130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call ptr @s2n_strerror_debug(i32 noundef %2131, ptr noundef @.str.4)
  %2133 = call ptr @__errno_location() #12
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  %2135 = call ptr @strerror(i32 noundef %2134) #11
  %2136 = call ptr @__errno_location() #12
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2125, ptr noundef @.str.2, i32 noundef %2126, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2129, ptr noundef %2132, ptr noundef %2135, i32 noundef %2137) #11
  br label %2156

2139:                                             ; preds = %2117, %2110
  %2140 = load i32, ptr %54, align 4, !tbaa !5
  %2141 = call ptr @__errno_location() #12
  store i32 %2140, ptr %2141, align 4, !tbaa !5
  %2142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2143 = load i32, ptr @test_count, align 4, !tbaa !5
  %2144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = call ptr @s2n_strerror(i32 noundef %2145, ptr noundef @.str.4)
  %2147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call ptr @s2n_strerror_debug(i32 noundef %2148, ptr noundef @.str.4)
  %2150 = call ptr @__errno_location() #12
  %2151 = load i32, ptr %2150, align 4, !tbaa !5
  %2152 = call ptr @strerror(i32 noundef %2151) #11
  %2153 = call ptr @__errno_location() #12
  %2154 = load i32, ptr %2153, align 4, !tbaa !5
  %2155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2142, ptr noundef @.str.5, i32 noundef %2143, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2146, ptr noundef %2149, ptr noundef %2152, i32 noundef %2154) #11
  br label %2156

2156:                                             ; preds = %2139, %2122
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %2157

2157:                                             ; preds = %2156
  br label %2158

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

2159:                                             ; No predecessors!
  br label %2160

2160:                                             ; preds = %2159
  br label %2161

2161:                                             ; preds = %2160, %2100
  br label %2162

2162:                                             ; preds = %2161
  br label %2163

2163:                                             ; preds = %2162
  br label %2164

2164:                                             ; preds = %2163
  %2165 = load i8, ptr %51, align 1, !tbaa !42
  %2166 = zext i8 %2165 to i32
  %2167 = icmp ne i32 %2166, 0
  br i1 %2167, label %2168, label %2235

2168:                                             ; preds = %2164
  br label %2169

2169:                                             ; preds = %2168
  %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 = getelementptr inbounds [255 x i8], ptr %53, i64 0, i64 0
  %2173 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %2174 = load ptr, ptr %2173, align 16, !tbaa !9
  %2175 = load i8, ptr %51, align 1, !tbaa !42
  %2176 = zext i8 %2175 to i64
  %2177 = call i32 @memcmp(ptr noundef %2172, ptr noundef %2174, i64 noundef %2176) #14
  %2178 = icmp eq i32 %2177, 0
  br i1 %2178, label %2232, label %2179

2179:                                             ; preds = %2169
  br label %2180

2180:                                             ; preds = %2179
  br label %2181

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

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

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

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

2227:                                             ; preds = %2210, %2193
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

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

2230:                                             ; No predecessors!
  br label %2231

2231:                                             ; preds = %2230
  br label %2232

2232:                                             ; preds = %2231, %2169
  br label %2233

2233:                                             ; preds = %2232
  br label %2234

2234:                                             ; preds = %2233
  br label %2235

2235:                                             ; preds = %2234, %2164
  br label %2236

2236:                                             ; preds = %2235
  br label %2237

2237:                                             ; preds = %2236
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #11
  store i8 0, ptr %56, align 1, !tbaa !42
  br label %2238

2238:                                             ; preds = %2237
  %2239 = load i32, ptr @test_count, align 4, !tbaa !5
  %2240 = add nsw i32 %2239, 1
  store i32 %2240, ptr @test_count, align 4, !tbaa !5
  %2241 = call i32 @s2n_stuffer_read_uint8(ptr noundef %47, ptr noundef %56)
  %2242 = icmp eq i32 %2241, -1
  br i1 %2242, label %2243, label %2296

2243:                                             ; preds = %2238
  br label %2244

2244:                                             ; preds = %2243
  br label %2245

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

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

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

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

2291:                                             ; preds = %2274, %2257
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2292

2292:                                             ; preds = %2291
  br label %2293

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

2294:                                             ; No predecessors!
  br label %2295

2295:                                             ; preds = %2294
  br label %2296

2296:                                             ; preds = %2295, %2238
  br label %2297

2297:                                             ; preds = %2296
  br label %2298

2298:                                             ; preds = %2297
  br label %2299

2299:                                             ; preds = %2298
  %2300 = load i32, ptr @test_count, align 4, !tbaa !5
  %2301 = add nsw i32 %2300, 1
  store i32 %2301, ptr @test_count, align 4, !tbaa !5
  %2302 = load i8, ptr %56, align 1, !tbaa !42
  %2303 = zext i8 %2302 to i32
  %2304 = icmp sgt i32 %2303, 0
  br i1 %2304, label %2358, label %2305

2305:                                             ; preds = %2299
  br label %2306

2306:                                             ; preds = %2305
  br label %2307

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

2314:                                             ; preds = %2307
  %2315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2316 = call i32 @fileno(ptr noundef %2315) #11
  %2317 = call i32 @isatty(i32 noundef %2316) #11
  %2318 = icmp ne i32 %2317, 0
  br i1 %2318, label %2319, label %2336

2319:                                             ; preds = %2314
  %2320 = load i32, ptr %58, align 4, !tbaa !5
  %2321 = call ptr @__errno_location() #12
  store i32 %2320, ptr %2321, align 4, !tbaa !5
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2325, ptr noundef @.str.4)
  %2327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2328 = load i32, ptr %2327, align 4, !tbaa !5
  %2329 = call ptr @s2n_strerror_debug(i32 noundef %2328, ptr noundef @.str.4)
  %2330 = call ptr @__errno_location() #12
  %2331 = load i32, ptr %2330, align 4, !tbaa !5
  %2332 = call ptr @strerror(i32 noundef %2331) #11
  %2333 = call ptr @__errno_location() #12
  %2334 = load i32, ptr %2333, align 4, !tbaa !5
  %2335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2322, ptr noundef @.str.2, i32 noundef %2323, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2326, ptr noundef %2329, ptr noundef %2332, i32 noundef %2334) #11
  br label %2353

2336:                                             ; preds = %2314, %2307
  %2337 = load i32, ptr %58, align 4, !tbaa !5
  %2338 = call ptr @__errno_location() #12
  store i32 %2337, ptr %2338, align 4, !tbaa !5
  %2339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2340 = load i32, ptr @test_count, align 4, !tbaa !5
  %2341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2342 = load i32, ptr %2341, align 4, !tbaa !5
  %2343 = call ptr @s2n_strerror(i32 noundef %2342, ptr noundef @.str.4)
  %2344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2345 = load i32, ptr %2344, align 4, !tbaa !5
  %2346 = call ptr @s2n_strerror_debug(i32 noundef %2345, ptr noundef @.str.4)
  %2347 = call ptr @__errno_location() #12
  %2348 = load i32, ptr %2347, align 4, !tbaa !5
  %2349 = call ptr @strerror(i32 noundef %2348) #11
  %2350 = call ptr @__errno_location() #12
  %2351 = load i32, ptr %2350, align 4, !tbaa !5
  %2352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2339, ptr noundef @.str.5, i32 noundef %2340, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2343, ptr noundef %2346, ptr noundef %2349, i32 noundef %2351) #11
  br label %2353

2353:                                             ; preds = %2336, %2319
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %2354

2354:                                             ; preds = %2353
  br label %2355

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

2356:                                             ; No predecessors!
  br label %2357

2357:                                             ; preds = %2356
  br label %2358

2358:                                             ; preds = %2357, %2299
  br label %2359

2359:                                             ; preds = %2358
  br label %2360

2360:                                             ; preds = %2359
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #11
  store i64 0, ptr %59, align 8, !tbaa !47
  br label %2361

2361:                                             ; preds = %2491, %2360
  %2362 = load i64, ptr %59, align 8, !tbaa !47
  %2363 = load i8, ptr %56, align 1, !tbaa !42
  %2364 = zext i8 %2363 to i64
  %2365 = icmp ult i64 %2362, %2364
  br i1 %2365, label %2367, label %2366

2366:                                             ; preds = %2361
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  br label %2494

2367:                                             ; preds = %2361
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #11
  store i8 -1, ptr %60, align 1, !tbaa !42
  br label %2368

2368:                                             ; preds = %2367
  %2369 = load i32, ptr @test_count, align 4, !tbaa !5
  %2370 = add nsw i32 %2369, 1
  store i32 %2370, ptr @test_count, align 4, !tbaa !5
  %2371 = call i32 @s2n_stuffer_read_uint8(ptr noundef %47, ptr noundef %60)
  %2372 = icmp eq i32 %2371, -1
  br i1 %2372, label %2373, label %2426

2373:                                             ; preds = %2368
  br label %2374

2374:                                             ; preds = %2373
  br label %2375

2375:                                             ; preds = %2374
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  %2376 = call ptr @__errno_location() #12
  %2377 = load i32, ptr %2376, align 4, !tbaa !5
  store i32 %2377, ptr %61, align 4, !tbaa !5
  %2378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2379 = call i32 @s2n_print_stacktrace(ptr noundef %2378)
  %2380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2381 = trunc i8 %2380 to i1
  br i1 %2381, label %2382, label %2404

2382:                                             ; preds = %2375
  %2383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2384 = call i32 @fileno(ptr noundef %2383) #11
  %2385 = call i32 @isatty(i32 noundef %2384) #11
  %2386 = icmp ne i32 %2385, 0
  br i1 %2386, label %2387, label %2404

2387:                                             ; preds = %2382
  %2388 = load i32, ptr %61, align 4, !tbaa !5
  %2389 = call ptr @__errno_location() #12
  store i32 %2388, ptr %2389, align 4, !tbaa !5
  %2390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2391 = load i32, ptr @test_count, align 4, !tbaa !5
  %2392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2393 = load i32, ptr %2392, align 4, !tbaa !5
  %2394 = call ptr @s2n_strerror(i32 noundef %2393, ptr noundef @.str.4)
  %2395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = call ptr @s2n_strerror_debug(i32 noundef %2396, ptr noundef @.str.4)
  %2398 = call ptr @__errno_location() #12
  %2399 = load i32, ptr %2398, align 4, !tbaa !5
  %2400 = call ptr @strerror(i32 noundef %2399) #11
  %2401 = call ptr @__errno_location() #12
  %2402 = load i32, ptr %2401, align 4, !tbaa !5
  %2403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2390, ptr noundef @.str.2, i32 noundef %2391, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2394, ptr noundef %2397, ptr noundef %2400, i32 noundef %2402) #11
  br label %2421

2404:                                             ; preds = %2382, %2375
  %2405 = load i32, ptr %61, align 4, !tbaa !5
  %2406 = call ptr @__errno_location() #12
  store i32 %2405, ptr %2406, align 4, !tbaa !5
  %2407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call ptr @s2n_strerror(i32 noundef %2410, ptr noundef @.str.4)
  %2412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call ptr @s2n_strerror_debug(i32 noundef %2413, ptr noundef @.str.4)
  %2415 = call ptr @__errno_location() #12
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call ptr @strerror(i32 noundef %2416) #11
  %2418 = call ptr @__errno_location() #12
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2407, ptr noundef @.str.5, i32 noundef %2408, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2411, ptr noundef %2414, ptr noundef %2417, i32 noundef %2419) #11
  br label %2421

2421:                                             ; preds = %2404, %2387
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2422

2422:                                             ; preds = %2421
  br label %2423

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

2424:                                             ; No predecessors!
  br label %2425

2425:                                             ; preds = %2424
  br label %2426

2426:                                             ; preds = %2425, %2368
  br label %2427

2427:                                             ; preds = %2426
  br label %2428

2428:                                             ; preds = %2427
  br label %2429

2429:                                             ; preds = %2428
  %2430 = load i32, ptr @test_count, align 4, !tbaa !5
  %2431 = add nsw i32 %2430, 1
  store i32 %2431, ptr @test_count, align 4, !tbaa !5
  %2432 = load i8, ptr %60, align 1, !tbaa !42
  %2433 = zext i8 %2432 to i32
  %2434 = icmp eq i32 %2433, 0
  br i1 %2434, label %2488, label %2435

2435:                                             ; preds = %2429
  br label %2436

2436:                                             ; preds = %2435
  br label %2437

2437:                                             ; preds = %2436
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  %2438 = call ptr @__errno_location() #12
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  store i32 %2439, ptr %62, align 4, !tbaa !5
  %2440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2441 = call i32 @s2n_print_stacktrace(ptr noundef %2440)
  %2442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2443 = trunc i8 %2442 to i1
  br i1 %2443, label %2444, label %2466

2444:                                             ; preds = %2437
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = call i32 @fileno(ptr noundef %2445) #11
  %2447 = call i32 @isatty(i32 noundef %2446) #11
  %2448 = icmp ne i32 %2447, 0
  br i1 %2448, label %2449, label %2466

2449:                                             ; preds = %2444
  %2450 = load i32, ptr %62, align 4, !tbaa !5
  %2451 = call ptr @__errno_location() #12
  store i32 %2450, ptr %2451, align 4, !tbaa !5
  %2452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2453 = load i32, ptr @test_count, align 4, !tbaa !5
  %2454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2455 = load i32, ptr %2454, align 4, !tbaa !5
  %2456 = call ptr @s2n_strerror(i32 noundef %2455, ptr noundef @.str.4)
  %2457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2458 = load i32, ptr %2457, align 4, !tbaa !5
  %2459 = call ptr @s2n_strerror_debug(i32 noundef %2458, ptr noundef @.str.4)
  %2460 = call ptr @__errno_location() #12
  %2461 = load i32, ptr %2460, align 4, !tbaa !5
  %2462 = call ptr @strerror(i32 noundef %2461) #11
  %2463 = call ptr @__errno_location() #12
  %2464 = load i32, ptr %2463, align 4, !tbaa !5
  %2465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2452, ptr noundef @.str.2, i32 noundef %2453, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2456, ptr noundef %2459, ptr noundef %2462, i32 noundef %2464) #11
  br label %2483

2466:                                             ; preds = %2444, %2437
  %2467 = load i32, ptr %62, align 4, !tbaa !5
  %2468 = call ptr @__errno_location() #12
  store i32 %2467, ptr %2468, align 4, !tbaa !5
  %2469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2470 = load i32, ptr @test_count, align 4, !tbaa !5
  %2471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2472 = load i32, ptr %2471, align 4, !tbaa !5
  %2473 = call ptr @s2n_strerror(i32 noundef %2472, ptr noundef @.str.4)
  %2474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2475 = load i32, ptr %2474, align 4, !tbaa !5
  %2476 = call ptr @s2n_strerror_debug(i32 noundef %2475, ptr noundef @.str.4)
  %2477 = call ptr @__errno_location() #12
  %2478 = load i32, ptr %2477, align 4, !tbaa !5
  %2479 = call ptr @strerror(i32 noundef %2478) #11
  %2480 = call ptr @__errno_location() #12
  %2481 = load i32, ptr %2480, align 4, !tbaa !5
  %2482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2469, ptr noundef @.str.5, i32 noundef %2470, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2473, ptr noundef %2476, ptr noundef %2479, i32 noundef %2481) #11
  br label %2483

2483:                                             ; preds = %2466, %2449
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %2484

2484:                                             ; preds = %2483
  br label %2485

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

2486:                                             ; No predecessors!
  br label %2487

2487:                                             ; preds = %2486
  br label %2488

2488:                                             ; preds = %2487, %2429
  br label %2489

2489:                                             ; preds = %2488
  br label %2490

2490:                                             ; preds = %2489
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #11
  br label %2491

2491:                                             ; preds = %2490
  %2492 = load i64, ptr %59, align 8, !tbaa !47
  %2493 = add i64 %2492, 1
  store i64 %2493, ptr %59, align 8, !tbaa !47
  br label %2361, !llvm.loop !48

2494:                                             ; preds = %2366
  br label %2495

2495:                                             ; preds = %2494
  %2496 = load i32, ptr @test_count, align 4, !tbaa !5
  %2497 = add nsw i32 %2496, 1
  store i32 %2497, ptr @test_count, align 4, !tbaa !5
  %2498 = getelementptr inbounds %struct.s2n_stuffer, ptr %47, i32 0, i32 2
  %2499 = load i32, ptr %2498, align 4, !tbaa !43
  %2500 = getelementptr inbounds %struct.s2n_stuffer, ptr %47, i32 0, i32 1
  %2501 = load i32, ptr %2500, align 8, !tbaa !44
  %2502 = sub i32 %2499, %2501
  %2503 = icmp eq i32 %2502, 0
  br i1 %2503, label %2557, label %2504

2504:                                             ; preds = %2495
  br label %2505

2505:                                             ; preds = %2504
  br label %2506

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

2513:                                             ; preds = %2506
  %2514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2515 = call i32 @fileno(ptr noundef %2514) #11
  %2516 = call i32 @isatty(i32 noundef %2515) #11
  %2517 = icmp ne i32 %2516, 0
  br i1 %2517, label %2518, label %2535

2518:                                             ; preds = %2513
  %2519 = load i32, ptr %63, align 4, !tbaa !5
  %2520 = call ptr @__errno_location() #12
  store i32 %2519, ptr %2520, align 4, !tbaa !5
  %2521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2522 = load i32, ptr @test_count, align 4, !tbaa !5
  %2523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2524 = load i32, ptr %2523, align 4, !tbaa !5
  %2525 = call ptr @s2n_strerror(i32 noundef %2524, ptr noundef @.str.4)
  %2526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2527 = load i32, ptr %2526, align 4, !tbaa !5
  %2528 = call ptr @s2n_strerror_debug(i32 noundef %2527, ptr noundef @.str.4)
  %2529 = call ptr @__errno_location() #12
  %2530 = load i32, ptr %2529, align 4, !tbaa !5
  %2531 = call ptr @strerror(i32 noundef %2530) #11
  %2532 = call ptr @__errno_location() #12
  %2533 = load i32, ptr %2532, align 4, !tbaa !5
  %2534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2521, ptr noundef @.str.2, i32 noundef %2522, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2525, ptr noundef %2528, ptr noundef %2531, i32 noundef %2533) #11
  br label %2552

2535:                                             ; preds = %2513, %2506
  %2536 = load i32, ptr %63, align 4, !tbaa !5
  %2537 = call ptr @__errno_location() #12
  store i32 %2536, ptr %2537, align 4, !tbaa !5
  %2538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2539 = load i32, ptr @test_count, align 4, !tbaa !5
  %2540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2541 = load i32, ptr %2540, align 4, !tbaa !5
  %2542 = call ptr @s2n_strerror(i32 noundef %2541, ptr noundef @.str.4)
  %2543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call ptr @s2n_strerror_debug(i32 noundef %2544, ptr noundef @.str.4)
  %2546 = call ptr @__errno_location() #12
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  %2548 = call ptr @strerror(i32 noundef %2547) #11
  %2549 = call ptr @__errno_location() #12
  %2550 = load i32, ptr %2549, align 4, !tbaa !5
  %2551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2538, ptr noundef @.str.5, i32 noundef %2539, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2542, ptr noundef %2545, ptr noundef %2548, i32 noundef %2550) #11
  br label %2552

2552:                                             ; preds = %2535, %2518
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %2553

2553:                                             ; preds = %2552
  br label %2554

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

2555:                                             ; No predecessors!
  br label %2556

2556:                                             ; preds = %2555
  br label %2557

2557:                                             ; preds = %2556, %2495
  br label %2558

2558:                                             ; preds = %2557
  br label %2559

2559:                                             ; preds = %2558
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #11
  call void @llvm.lifetime.end.p0(i64 255, ptr %53) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #11
  %2560 = call i32 @s2n_stuffer_free(ptr noundef %47)
  call void @llvm.lifetime.end.p0(i64 40, ptr %47) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #11
  %2561 = call i32 @s2n_connection_ptr_free(ptr noundef %42)
  %2562 = getelementptr inbounds %struct.s2n_result, ptr %64, i32 0, i32 0
  store i32 %2561, ptr %2562, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #11
  %2563 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2563, ptr %65, align 8, !tbaa !9
  br label %2564

2564:                                             ; preds = %2559
  %2565 = load i32, ptr @test_count, align 4, !tbaa !5
  %2566 = add nsw i32 %2565, 1
  store i32 %2566, ptr @test_count, align 4, !tbaa !5
  %2567 = load ptr, ptr %65, align 8, !tbaa !9
  %2568 = icmp eq ptr %2567, null
  br i1 %2568, label %2569, label %2622

2569:                                             ; preds = %2564
  br label %2570

2570:                                             ; preds = %2569
  br label %2571

2571:                                             ; preds = %2570
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %2572 = call ptr @__errno_location() #12
  %2573 = load i32, ptr %2572, align 4, !tbaa !5
  store i32 %2573, ptr %66, align 4, !tbaa !5
  %2574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2575 = call i32 @s2n_print_stacktrace(ptr noundef %2574)
  %2576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2577 = trunc i8 %2576 to i1
  br i1 %2577, label %2578, label %2600

2578:                                             ; preds = %2571
  %2579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2580 = call i32 @fileno(ptr noundef %2579) #11
  %2581 = call i32 @isatty(i32 noundef %2580) #11
  %2582 = icmp ne i32 %2581, 0
  br i1 %2582, label %2583, label %2600

2583:                                             ; preds = %2578
  %2584 = load i32, ptr %66, align 4, !tbaa !5
  %2585 = call ptr @__errno_location() #12
  store i32 %2584, ptr %2585, align 4, !tbaa !5
  %2586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2587 = load i32, ptr @test_count, align 4, !tbaa !5
  %2588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2589 = load i32, ptr %2588, align 4, !tbaa !5
  %2590 = call ptr @s2n_strerror(i32 noundef %2589, ptr noundef @.str.4)
  %2591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2592 = load i32, ptr %2591, align 4, !tbaa !5
  %2593 = call ptr @s2n_strerror_debug(i32 noundef %2592, ptr noundef @.str.4)
  %2594 = call ptr @__errno_location() #12
  %2595 = load i32, ptr %2594, align 4, !tbaa !5
  %2596 = call ptr @strerror(i32 noundef %2595) #11
  %2597 = call ptr @__errno_location() #12
  %2598 = load i32, ptr %2597, align 4, !tbaa !5
  %2599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2586, ptr noundef @.str.2, i32 noundef %2587, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 122, ptr noundef %2590, ptr noundef %2593, ptr noundef %2596, i32 noundef %2598) #11
  br label %2617

2600:                                             ; preds = %2578, %2571
  %2601 = load i32, ptr %66, align 4, !tbaa !5
  %2602 = call ptr @__errno_location() #12
  store i32 %2601, ptr %2602, align 4, !tbaa !5
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = load i32, ptr @test_count, align 4, !tbaa !5
  %2605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2606 = load i32, ptr %2605, align 4, !tbaa !5
  %2607 = call ptr @s2n_strerror(i32 noundef %2606, ptr noundef @.str.4)
  %2608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2609 = load i32, ptr %2608, align 4, !tbaa !5
  %2610 = call ptr @s2n_strerror_debug(i32 noundef %2609, ptr noundef @.str.4)
  %2611 = call ptr @__errno_location() #12
  %2612 = load i32, ptr %2611, align 4, !tbaa !5
  %2613 = call ptr @strerror(i32 noundef %2612) #11
  %2614 = call ptr @__errno_location() #12
  %2615 = load i32, ptr %2614, align 4, !tbaa !5
  %2616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2603, ptr noundef @.str.5, i32 noundef %2604, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 122, ptr noundef %2607, ptr noundef %2610, ptr noundef %2613, i32 noundef %2615) #11
  br label %2617

2617:                                             ; preds = %2600, %2583
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %2618

2618:                                             ; preds = %2617
  br label %2619

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

2620:                                             ; No predecessors!
  br label %2621

2621:                                             ; preds = %2620
  br label %2622

2622:                                             ; preds = %2621, %2564
  br label %2623

2623:                                             ; preds = %2622
  br label %2624

2624:                                             ; preds = %2623
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #11
  %2625 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2625, ptr %67, align 8, !tbaa !9
  br label %2626

2626:                                             ; preds = %2624
  %2627 = load i32, ptr @test_count, align 4, !tbaa !5
  %2628 = add nsw i32 %2627, 1
  store i32 %2628, ptr @test_count, align 4, !tbaa !5
  %2629 = load ptr, ptr %67, align 8, !tbaa !9
  %2630 = icmp eq ptr %2629, null
  br i1 %2630, label %2631, label %2684

2631:                                             ; preds = %2626
  br label %2632

2632:                                             ; preds = %2631
  br label %2633

2633:                                             ; preds = %2632
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %2634 = call ptr @__errno_location() #12
  %2635 = load i32, ptr %2634, align 4, !tbaa !5
  store i32 %2635, ptr %68, align 4, !tbaa !5
  %2636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2637 = call i32 @s2n_print_stacktrace(ptr noundef %2636)
  %2638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2639 = trunc i8 %2638 to i1
  br i1 %2639, label %2640, label %2662

2640:                                             ; preds = %2633
  %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
  %2644 = icmp ne i32 %2643, 0
  br i1 %2644, label %2645, label %2662

2645:                                             ; preds = %2640
  %2646 = load i32, ptr %68, align 4, !tbaa !5
  %2647 = call ptr @__errno_location() #12
  store i32 %2646, ptr %2647, align 4, !tbaa !5
  %2648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2649 = load i32, ptr @test_count, align 4, !tbaa !5
  %2650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2651 = load i32, ptr %2650, align 4, !tbaa !5
  %2652 = call ptr @s2n_strerror(i32 noundef %2651, ptr noundef @.str.4)
  %2653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  %2655 = call ptr @s2n_strerror_debug(i32 noundef %2654, ptr noundef @.str.4)
  %2656 = call ptr @__errno_location() #12
  %2657 = load i32, ptr %2656, align 4, !tbaa !5
  %2658 = call ptr @strerror(i32 noundef %2657) #11
  %2659 = call ptr @__errno_location() #12
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2648, ptr noundef @.str.2, i32 noundef %2649, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2652, ptr noundef %2655, ptr noundef %2658, i32 noundef %2660) #11
  br label %2679

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

2679:                                             ; preds = %2662, %2645
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %2680

2680:                                             ; preds = %2679
  br label %2681

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

2682:                                             ; No predecessors!
  br label %2683

2683:                                             ; preds = %2682
  br label %2684

2684:                                             ; preds = %2683, %2626
  br label %2685

2685:                                             ; preds = %2684
  br label %2686

2686:                                             ; preds = %2685
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #11
  %2687 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %2688 = load ptr, ptr %2687, align 16, !tbaa !9
  %2689 = call i64 @strlen(ptr noundef %2688) #14
  %2690 = trunc i64 %2689 to i8
  store i8 %2690, ptr %69, align 1, !tbaa !42
  br label %2691

2691:                                             ; preds = %2686
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %2692 = load i8, ptr %69, align 1, !tbaa !42
  %2693 = zext i8 %2692 to i32
  %2694 = add nsw i32 %2693, 1
  store i32 %2694, ptr %70, align 4, !tbaa !5
  %2695 = load i32, ptr %70, align 4, !tbaa !5
  %2696 = icmp ne i32 %2695, 0
  br i1 %2696, label %2697, label %2760

2697:                                             ; preds = %2691
  %2698 = load ptr, ptr %65, align 8, !tbaa !9
  %2699 = getelementptr inbounds %struct.s2n_connection, ptr %2698, i32 0, i32 64
  %2700 = getelementptr inbounds [256 x i8], ptr %2699, i64 0, i64 0
  %2701 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %2702 = load ptr, ptr %2701, align 16, !tbaa !9
  %2703 = load i32, ptr %70, align 4, !tbaa !5
  %2704 = sext i32 %2703 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %2700, ptr align 1 %2702, i64 %2704, i1 false)
  %2705 = icmp eq ptr %2700, null
  br i1 %2705, label %2706, label %2759

2706:                                             ; preds = %2697
  br label %2707

2707:                                             ; preds = %2706
  br label %2708

2708:                                             ; preds = %2707
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  %2709 = call ptr @__errno_location() #12
  %2710 = load i32, ptr %2709, align 4, !tbaa !5
  store i32 %2710, ptr %71, align 4, !tbaa !5
  %2711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2712 = call i32 @s2n_print_stacktrace(ptr noundef %2711)
  %2713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2714 = trunc i8 %2713 to i1
  br i1 %2714, label %2715, label %2737

2715:                                             ; preds = %2708
  %2716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2717 = call i32 @fileno(ptr noundef %2716) #11
  %2718 = call i32 @isatty(i32 noundef %2717) #11
  %2719 = icmp ne i32 %2718, 0
  br i1 %2719, label %2720, label %2737

2720:                                             ; preds = %2715
  %2721 = load i32, ptr %71, align 4, !tbaa !5
  %2722 = call ptr @__errno_location() #12
  store i32 %2721, ptr %2722, align 4, !tbaa !5
  %2723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2724 = load i32, ptr @test_count, align 4, !tbaa !5
  %2725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2726 = load i32, ptr %2725, align 4, !tbaa !5
  %2727 = call ptr @s2n_strerror(i32 noundef %2726, ptr noundef @.str.4)
  %2728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2729 = load i32, ptr %2728, align 4, !tbaa !5
  %2730 = call ptr @s2n_strerror_debug(i32 noundef %2729, ptr noundef @.str.4)
  %2731 = call ptr @__errno_location() #12
  %2732 = load i32, ptr %2731, align 4, !tbaa !5
  %2733 = call ptr @strerror(i32 noundef %2732) #11
  %2734 = call ptr @__errno_location() #12
  %2735 = load i32, ptr %2734, align 4, !tbaa !5
  %2736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2723, ptr noundef @.str.2, i32 noundef %2724, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2727, ptr noundef %2730, ptr noundef %2733, i32 noundef %2735) #11
  br label %2754

2737:                                             ; preds = %2715, %2708
  %2738 = load i32, ptr %71, align 4, !tbaa !5
  %2739 = call ptr @__errno_location() #12
  store i32 %2738, ptr %2739, align 4, !tbaa !5
  %2740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2741 = load i32, ptr @test_count, align 4, !tbaa !5
  %2742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2743 = load i32, ptr %2742, align 4, !tbaa !5
  %2744 = call ptr @s2n_strerror(i32 noundef %2743, ptr noundef @.str.4)
  %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_debug(i32 noundef %2746, ptr noundef @.str.4)
  %2748 = call ptr @__errno_location() #12
  %2749 = load i32, ptr %2748, align 4, !tbaa !5
  %2750 = call ptr @strerror(i32 noundef %2749) #11
  %2751 = call ptr @__errno_location() #12
  %2752 = load i32, ptr %2751, align 4, !tbaa !5
  %2753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2740, ptr noundef @.str.5, i32 noundef %2741, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2744, ptr noundef %2747, ptr noundef %2750, i32 noundef %2752) #11
  br label %2754

2754:                                             ; preds = %2737, %2720
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %2755

2755:                                             ; preds = %2754
  br label %2756

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

2757:                                             ; No predecessors!
  br label %2758

2758:                                             ; preds = %2757
  br label %2759

2759:                                             ; preds = %2758, %2697
  br label %2760

2760:                                             ; preds = %2759, %2691
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %2761

2761:                                             ; preds = %2760
  br label %2762

2762:                                             ; preds = %2761
  call void @llvm.lifetime.start.p0(i64 40, ptr %72) #11
  call void @llvm.memset.p0.i64(ptr align 8 %72, i8 0, i64 40, i1 false)
  br label %2763

2763:                                             ; preds = %2762
  %2764 = load i32, ptr @test_count, align 4, !tbaa !5
  %2765 = add nsw i32 %2764, 1
  store i32 %2765, ptr @test_count, align 4, !tbaa !5
  %2766 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %72, i32 noundef 0)
  %2767 = icmp eq i32 %2766, -1
  br i1 %2767, label %2768, label %2821

2768:                                             ; preds = %2763
  br label %2769

2769:                                             ; preds = %2768
  br label %2770

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

2777:                                             ; preds = %2770
  %2778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2779 = call i32 @fileno(ptr noundef %2778) #11
  %2780 = call i32 @isatty(i32 noundef %2779) #11
  %2781 = icmp ne i32 %2780, 0
  br i1 %2781, label %2782, label %2799

2782:                                             ; preds = %2777
  %2783 = load i32, ptr %73, align 4, !tbaa !5
  %2784 = call ptr @__errno_location() #12
  store i32 %2783, ptr %2784, align 4, !tbaa !5
  %2785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2786 = load i32, ptr @test_count, align 4, !tbaa !5
  %2787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2788 = load i32, ptr %2787, align 4, !tbaa !5
  %2789 = call ptr @s2n_strerror(i32 noundef %2788, ptr noundef @.str.4)
  %2790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2791 = load i32, ptr %2790, align 4, !tbaa !5
  %2792 = call ptr @s2n_strerror_debug(i32 noundef %2791, ptr noundef @.str.4)
  %2793 = call ptr @__errno_location() #12
  %2794 = load i32, ptr %2793, align 4, !tbaa !5
  %2795 = call ptr @strerror(i32 noundef %2794) #11
  %2796 = call ptr @__errno_location() #12
  %2797 = load i32, ptr %2796, align 4, !tbaa !5
  %2798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2785, ptr noundef @.str.2, i32 noundef %2786, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2789, ptr noundef %2792, ptr noundef %2795, i32 noundef %2797) #11
  br label %2816

2799:                                             ; preds = %2777, %2770
  %2800 = load i32, ptr %73, align 4, !tbaa !5
  %2801 = call ptr @__errno_location() #12
  store i32 %2800, ptr %2801, align 4, !tbaa !5
  %2802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2803 = load i32, ptr @test_count, align 4, !tbaa !5
  %2804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2805 = load i32, ptr %2804, align 4, !tbaa !5
  %2806 = call ptr @s2n_strerror(i32 noundef %2805, ptr noundef @.str.4)
  %2807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2808 = load i32, ptr %2807, align 4, !tbaa !5
  %2809 = call ptr @s2n_strerror_debug(i32 noundef %2808, ptr noundef @.str.4)
  %2810 = call ptr @__errno_location() #12
  %2811 = load i32, ptr %2810, align 4, !tbaa !5
  %2812 = call ptr @strerror(i32 noundef %2811) #11
  %2813 = call ptr @__errno_location() #12
  %2814 = load i32, ptr %2813, align 4, !tbaa !5
  %2815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2802, ptr noundef @.str.5, i32 noundef %2803, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2806, ptr noundef %2809, ptr noundef %2812, i32 noundef %2814) #11
  br label %2816

2816:                                             ; preds = %2799, %2782
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %2817

2817:                                             ; preds = %2816
  br label %2818

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

2819:                                             ; No predecessors!
  br label %2820

2820:                                             ; preds = %2819
  br label %2821

2821:                                             ; preds = %2820, %2763
  br label %2822

2822:                                             ; preds = %2821
  br label %2823

2823:                                             ; preds = %2822
  br label %2824

2824:                                             ; preds = %2823
  %2825 = load i32, ptr @test_count, align 4, !tbaa !5
  %2826 = add nsw i32 %2825, 1
  store i32 %2826, ptr @test_count, align 4, !tbaa !5
  %2827 = load ptr, ptr %65, align 8, !tbaa !9
  %2828 = call i32 @s2n_write_npn_protocol(ptr noundef %2827, ptr noundef %72)
  %2829 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  store i32 %2828, ptr %2829, align 4
  %2830 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  %2831 = load i32, ptr %2830, align 4
  %2832 = call zeroext i1 @s2n_result_is_ok(i32 %2831)
  br i1 %2832, label %2886, label %2833

2833:                                             ; preds = %2824
  br label %2834

2834:                                             ; preds = %2833
  br label %2835

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

2842:                                             ; preds = %2835
  %2843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2844 = call i32 @fileno(ptr noundef %2843) #11
  %2845 = call i32 @isatty(i32 noundef %2844) #11
  %2846 = icmp ne i32 %2845, 0
  br i1 %2846, label %2847, label %2864

2847:                                             ; preds = %2842
  %2848 = load i32, ptr %75, align 4, !tbaa !5
  %2849 = call ptr @__errno_location() #12
  store i32 %2848, ptr %2849, align 4, !tbaa !5
  %2850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2851 = load i32, ptr @test_count, align 4, !tbaa !5
  %2852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2853 = load i32, ptr %2852, align 4, !tbaa !5
  %2854 = call ptr @s2n_strerror(i32 noundef %2853, ptr noundef @.str.4)
  %2855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2856 = load i32, ptr %2855, align 4, !tbaa !5
  %2857 = call ptr @s2n_strerror_debug(i32 noundef %2856, ptr noundef @.str.4)
  %2858 = call ptr @__errno_location() #12
  %2859 = load i32, ptr %2858, align 4, !tbaa !5
  %2860 = call ptr @strerror(i32 noundef %2859) #11
  %2861 = call ptr @__errno_location() #12
  %2862 = load i32, ptr %2861, align 4, !tbaa !5
  %2863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2850, ptr noundef @.str.2, i32 noundef %2851, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2854, ptr noundef %2857, ptr noundef %2860, i32 noundef %2862) #11
  br label %2881

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

2881:                                             ; preds = %2864, %2847
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %2882

2882:                                             ; preds = %2881
  br label %2883

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

2884:                                             ; No predecessors!
  br label %2885

2885:                                             ; preds = %2884
  br label %2886

2886:                                             ; preds = %2885, %2824
  br label %2887

2887:                                             ; preds = %2886
  br label %2888

2888:                                             ; preds = %2887
  br label %2889

2889:                                             ; preds = %2888
  %2890 = load i32, ptr @test_count, align 4, !tbaa !5
  %2891 = add nsw i32 %2890, 1
  store i32 %2891, ptr @test_count, align 4, !tbaa !5
  %2892 = load ptr, ptr %67, align 8, !tbaa !9
  %2893 = call i32 @s2n_read_npn_protocol(ptr noundef %2892, ptr noundef %72)
  %2894 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  store i32 %2893, ptr %2894, align 4
  %2895 = getelementptr inbounds %struct.s2n_result, ptr %76, i32 0, i32 0
  %2896 = load i32, ptr %2895, align 4
  %2897 = call zeroext i1 @s2n_result_is_ok(i32 %2896)
  br i1 %2897, label %2951, label %2898

2898:                                             ; preds = %2889
  br label %2899

2899:                                             ; preds = %2898
  br label %2900

2900:                                             ; preds = %2899
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %2901 = call ptr @__errno_location() #12
  %2902 = load i32, ptr %2901, align 4, !tbaa !5
  store i32 %2902, ptr %77, align 4, !tbaa !5
  %2903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2904 = call i32 @s2n_print_stacktrace(ptr noundef %2903)
  %2905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2906 = trunc i8 %2905 to i1
  br i1 %2906, label %2907, label %2929

2907:                                             ; preds = %2900
  %2908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2909 = call i32 @fileno(ptr noundef %2908) #11
  %2910 = call i32 @isatty(i32 noundef %2909) #11
  %2911 = icmp ne i32 %2910, 0
  br i1 %2911, label %2912, label %2929

2912:                                             ; preds = %2907
  %2913 = load i32, ptr %77, align 4, !tbaa !5
  %2914 = call ptr @__errno_location() #12
  store i32 %2913, ptr %2914, align 4, !tbaa !5
  %2915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2916 = load i32, ptr @test_count, align 4, !tbaa !5
  %2917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2918 = load i32, ptr %2917, align 4, !tbaa !5
  %2919 = call ptr @s2n_strerror(i32 noundef %2918, ptr noundef @.str.4)
  %2920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2921 = load i32, ptr %2920, align 4, !tbaa !5
  %2922 = call ptr @s2n_strerror_debug(i32 noundef %2921, ptr noundef @.str.4)
  %2923 = call ptr @__errno_location() #12
  %2924 = load i32, ptr %2923, align 4, !tbaa !5
  %2925 = call ptr @strerror(i32 noundef %2924) #11
  %2926 = call ptr @__errno_location() #12
  %2927 = load i32, ptr %2926, align 4, !tbaa !5
  %2928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2915, ptr noundef @.str.2, i32 noundef %2916, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2919, ptr noundef %2922, ptr noundef %2925, i32 noundef %2927) #11
  br label %2946

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

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

2947:                                             ; preds = %2946
  br label %2948

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

2949:                                             ; No predecessors!
  br label %2950

2950:                                             ; preds = %2949
  br label %2951

2951:                                             ; preds = %2950, %2889
  br label %2952

2952:                                             ; preds = %2951
  br label %2953

2953:                                             ; preds = %2952
  br label %2954

2954:                                             ; preds = %2953
  %2955 = load i32, ptr @test_count, align 4, !tbaa !5
  %2956 = add nsw i32 %2955, 1
  store i32 %2956, ptr @test_count, align 4, !tbaa !5
  %2957 = load ptr, ptr %67, align 8, !tbaa !9
  %2958 = call ptr @s2n_get_application_protocol(ptr noundef %2957)
  %2959 = icmp eq ptr %2958, null
  br i1 %2959, label %2960, label %3013

2960:                                             ; preds = %2954
  br label %2961

2961:                                             ; preds = %2960
  br label %2962

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

2969:                                             ; preds = %2962
  %2970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2971 = call i32 @fileno(ptr noundef %2970) #11
  %2972 = call i32 @isatty(i32 noundef %2971) #11
  %2973 = icmp ne i32 %2972, 0
  br i1 %2973, label %2974, label %2991

2974:                                             ; preds = %2969
  %2975 = load i32, ptr %78, align 4, !tbaa !5
  %2976 = call ptr @__errno_location() #12
  store i32 %2975, ptr %2976, align 4, !tbaa !5
  %2977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2978 = load i32, ptr @test_count, align 4, !tbaa !5
  %2979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  %2981 = call ptr @s2n_strerror(i32 noundef %2980, ptr noundef @.str.4)
  %2982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2983 = load i32, ptr %2982, align 4, !tbaa !5
  %2984 = call ptr @s2n_strerror_debug(i32 noundef %2983, ptr noundef @.str.4)
  %2985 = call ptr @__errno_location() #12
  %2986 = load i32, ptr %2985, align 4, !tbaa !5
  %2987 = call ptr @strerror(i32 noundef %2986) #11
  %2988 = call ptr @__errno_location() #12
  %2989 = load i32, ptr %2988, align 4, !tbaa !5
  %2990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2977, ptr noundef @.str.2, i32 noundef %2978, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 135, ptr noundef %2981, ptr noundef %2984, ptr noundef %2987, i32 noundef %2989) #11
  br label %3008

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

3008:                                             ; preds = %2991, %2974
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %3009

3009:                                             ; preds = %3008
  br label %3010

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

3011:                                             ; No predecessors!
  br label %3012

3012:                                             ; preds = %3011
  br label %3013

3013:                                             ; preds = %3012, %2954
  br label %3014

3014:                                             ; preds = %3013
  br label %3015

3015:                                             ; preds = %3014
  br label %3016

3016:                                             ; preds = %3015
  %3017 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %3018 = load ptr, ptr %3017, align 16, !tbaa !9
  %3019 = call i64 @strlen(ptr noundef %3018) #14
  %3020 = icmp ne i64 %3019, 0
  br i1 %3020, label %3021, label %3090

3021:                                             ; preds = %3016
  br label %3022

3022:                                             ; preds = %3021
  %3023 = load i32, ptr @test_count, align 4, !tbaa !5
  %3024 = add nsw i32 %3023, 1
  store i32 %3024, ptr @test_count, align 4, !tbaa !5
  %3025 = load ptr, ptr %67, align 8, !tbaa !9
  %3026 = call ptr @s2n_get_application_protocol(ptr noundef %3025)
  %3027 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %3028 = load ptr, ptr %3027, align 16, !tbaa !9
  %3029 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %3030 = load ptr, ptr %3029, align 16, !tbaa !9
  %3031 = call i64 @strlen(ptr noundef %3030) #14
  %3032 = call i32 @memcmp(ptr noundef %3026, ptr noundef %3028, i64 noundef %3031) #14
  %3033 = icmp eq i32 %3032, 0
  br i1 %3033, label %3087, label %3034

3034:                                             ; preds = %3022
  br label %3035

3035:                                             ; preds = %3034
  br label %3036

3036:                                             ; preds = %3035
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  %3037 = call ptr @__errno_location() #12
  %3038 = load i32, ptr %3037, align 4, !tbaa !5
  store i32 %3038, ptr %79, align 4, !tbaa !5
  %3039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3040 = call i32 @s2n_print_stacktrace(ptr noundef %3039)
  %3041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3042 = trunc i8 %3041 to i1
  br i1 %3042, label %3043, label %3065

3043:                                             ; preds = %3036
  %3044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3045 = call i32 @fileno(ptr noundef %3044) #11
  %3046 = call i32 @isatty(i32 noundef %3045) #11
  %3047 = icmp ne i32 %3046, 0
  br i1 %3047, label %3048, label %3065

3048:                                             ; preds = %3043
  %3049 = load i32, ptr %79, align 4, !tbaa !5
  %3050 = call ptr @__errno_location() #12
  store i32 %3049, ptr %3050, align 4, !tbaa !5
  %3051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3052 = load i32, ptr @test_count, align 4, !tbaa !5
  %3053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3054 = load i32, ptr %3053, align 4, !tbaa !5
  %3055 = call ptr @s2n_strerror(i32 noundef %3054, ptr noundef @.str.4)
  %3056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3057 = load i32, ptr %3056, align 4, !tbaa !5
  %3058 = call ptr @s2n_strerror_debug(i32 noundef %3057, ptr noundef @.str.4)
  %3059 = call ptr @__errno_location() #12
  %3060 = load i32, ptr %3059, align 4, !tbaa !5
  %3061 = call ptr @strerror(i32 noundef %3060) #11
  %3062 = call ptr @__errno_location() #12
  %3063 = load i32, ptr %3062, align 4, !tbaa !5
  %3064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3051, ptr noundef @.str.2, i32 noundef %3052, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 136, ptr noundef %3055, ptr noundef %3058, ptr noundef %3061, i32 noundef %3063) #11
  br label %3082

3065:                                             ; preds = %3043, %3036
  %3066 = load i32, ptr %79, align 4, !tbaa !5
  %3067 = call ptr @__errno_location() #12
  store i32 %3066, ptr %3067, align 4, !tbaa !5
  %3068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3069 = load i32, ptr @test_count, align 4, !tbaa !5
  %3070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3071 = load i32, ptr %3070, align 4, !tbaa !5
  %3072 = call ptr @s2n_strerror(i32 noundef %3071, ptr noundef @.str.4)
  %3073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  %3075 = call ptr @s2n_strerror_debug(i32 noundef %3074, ptr noundef @.str.4)
  %3076 = call ptr @__errno_location() #12
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  %3078 = call ptr @strerror(i32 noundef %3077) #11
  %3079 = call ptr @__errno_location() #12
  %3080 = load i32, ptr %3079, align 4, !tbaa !5
  %3081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3068, ptr noundef @.str.5, i32 noundef %3069, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 136, ptr noundef %3072, ptr noundef %3075, ptr noundef %3078, i32 noundef %3080) #11
  br label %3082

3082:                                             ; preds = %3065, %3048
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %3083

3083:                                             ; preds = %3082
  br label %3084

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

3085:                                             ; No predecessors!
  br label %3086

3086:                                             ; preds = %3085
  br label %3087

3087:                                             ; preds = %3086, %3022
  br label %3088

3088:                                             ; preds = %3087
  br label %3089

3089:                                             ; preds = %3088
  br label %3090

3090:                                             ; preds = %3089, %3016
  br label %3091

3091:                                             ; preds = %3090
  br label %3092

3092:                                             ; preds = %3091
  %3093 = call i32 @s2n_stuffer_free(ptr noundef %72)
  call void @llvm.lifetime.end.p0(i64 40, ptr %72) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #11
  %3094 = call i32 @s2n_connection_ptr_free(ptr noundef %67)
  %3095 = getelementptr inbounds %struct.s2n_result, ptr %80, i32 0, i32 0
  store i32 %3094, ptr %3095, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #11
  %3096 = call i32 @s2n_connection_ptr_free(ptr noundef %65)
  %3097 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  store i32 %3096, ptr %3097, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #11
  %3098 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3098, ptr %82, align 8, !tbaa !9
  br label %3099

3099:                                             ; preds = %3092
  %3100 = load i32, ptr @test_count, align 4, !tbaa !5
  %3101 = add nsw i32 %3100, 1
  store i32 %3101, ptr @test_count, align 4, !tbaa !5
  %3102 = load ptr, ptr %82, align 8, !tbaa !9
  %3103 = icmp eq ptr %3102, null
  br i1 %3103, label %3104, label %3157

3104:                                             ; preds = %3099
  br label %3105

3105:                                             ; preds = %3104
  br label %3106

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

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

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

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

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

3153:                                             ; preds = %3152
  br label %3154

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

3155:                                             ; No predecessors!
  br label %3156

3156:                                             ; preds = %3155
  br label %3157

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

3158:                                             ; preds = %3157
  br label %3159

3159:                                             ; preds = %3158
  call void @llvm.lifetime.start.p0(i64 40, ptr %84) #11
  call void @llvm.memset.p0.i64(ptr align 8 %84, i8 0, i64 40, i1 false)
  br label %3160

3160:                                             ; preds = %3159
  %3161 = load i32, ptr @test_count, align 4, !tbaa !5
  %3162 = add nsw i32 %3161, 1
  store i32 %3162, ptr @test_count, align 4, !tbaa !5
  %3163 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %84, i32 noundef 0)
  %3164 = icmp eq i32 %3163, -1
  br i1 %3164, label %3165, label %3218

3165:                                             ; preds = %3160
  br label %3166

3166:                                             ; preds = %3165
  br label %3167

3167:                                             ; preds = %3166
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #11
  %3168 = call ptr @__errno_location() #12
  %3169 = load i32, ptr %3168, align 4, !tbaa !5
  store i32 %3169, ptr %85, align 4, !tbaa !5
  %3170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3171 = call i32 @s2n_print_stacktrace(ptr noundef %3170)
  %3172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3173 = trunc i8 %3172 to i1
  br i1 %3173, label %3174, label %3196

3174:                                             ; preds = %3167
  %3175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3176 = call i32 @fileno(ptr noundef %3175) #11
  %3177 = call i32 @isatty(i32 noundef %3176) #11
  %3178 = icmp ne i32 %3177, 0
  br i1 %3178, label %3179, label %3196

3179:                                             ; preds = %3174
  %3180 = load i32, ptr %85, align 4, !tbaa !5
  %3181 = call ptr @__errno_location() #12
  store i32 %3180, ptr %3181, align 4, !tbaa !5
  %3182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3183 = load i32, ptr @test_count, align 4, !tbaa !5
  %3184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3185 = load i32, ptr %3184, align 4, !tbaa !5
  %3186 = call ptr @s2n_strerror(i32 noundef %3185, ptr noundef @.str.4)
  %3187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3188 = load i32, ptr %3187, align 4, !tbaa !5
  %3189 = call ptr @s2n_strerror_debug(i32 noundef %3188, ptr noundef @.str.4)
  %3190 = call ptr @__errno_location() #12
  %3191 = load i32, ptr %3190, align 4, !tbaa !5
  %3192 = call ptr @strerror(i32 noundef %3191) #11
  %3193 = call ptr @__errno_location() #12
  %3194 = load i32, ptr %3193, align 4, !tbaa !5
  %3195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3182, ptr noundef @.str.2, i32 noundef %3183, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 145, ptr noundef %3186, ptr noundef %3189, ptr noundef %3192, i32 noundef %3194) #11
  br label %3213

3196:                                             ; preds = %3174, %3167
  %3197 = load i32, ptr %85, align 4, !tbaa !5
  %3198 = call ptr @__errno_location() #12
  store i32 %3197, ptr %3198, align 4, !tbaa !5
  %3199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3200 = load i32, ptr @test_count, align 4, !tbaa !5
  %3201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3202 = load i32, ptr %3201, align 4, !tbaa !5
  %3203 = call ptr @s2n_strerror(i32 noundef %3202, ptr noundef @.str.4)
  %3204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3205 = load i32, ptr %3204, align 4, !tbaa !5
  %3206 = call ptr @s2n_strerror_debug(i32 noundef %3205, ptr noundef @.str.4)
  %3207 = call ptr @__errno_location() #12
  %3208 = load i32, ptr %3207, align 4, !tbaa !5
  %3209 = call ptr @strerror(i32 noundef %3208) #11
  %3210 = call ptr @__errno_location() #12
  %3211 = load i32, ptr %3210, align 4, !tbaa !5
  %3212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3199, ptr noundef @.str.5, i32 noundef %3200, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 145, ptr noundef %3203, ptr noundef %3206, ptr noundef %3209, i32 noundef %3211) #11
  br label %3213

3213:                                             ; preds = %3196, %3179
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %3214

3214:                                             ; preds = %3213
  br label %3215

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

3216:                                             ; No predecessors!
  br label %3217

3217:                                             ; preds = %3216
  br label %3218

3218:                                             ; preds = %3217, %3160
  br label %3219

3219:                                             ; preds = %3218
  br label %3220

3220:                                             ; preds = %3219
  br label %3221

3221:                                             ; preds = %3220
  %3222 = load i32, ptr @test_count, align 4, !tbaa !5
  %3223 = add nsw i32 %3222, 1
  store i32 %3223, ptr @test_count, align 4, !tbaa !5
  %3224 = call i32 @s2n_stuffer_write_uint8(ptr noundef %84, i8 noundef zeroext 0)
  %3225 = icmp eq i32 %3224, -1
  br i1 %3225, label %3226, label %3279

3226:                                             ; preds = %3221
  br label %3227

3227:                                             ; preds = %3226
  br label %3228

3228:                                             ; preds = %3227
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  %3229 = call ptr @__errno_location() #12
  %3230 = load i32, ptr %3229, align 4, !tbaa !5
  store i32 %3230, ptr %86, align 4, !tbaa !5
  %3231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3232 = call i32 @s2n_print_stacktrace(ptr noundef %3231)
  %3233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3234 = trunc i8 %3233 to i1
  br i1 %3234, label %3235, label %3257

3235:                                             ; preds = %3228
  %3236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3237 = call i32 @fileno(ptr noundef %3236) #11
  %3238 = call i32 @isatty(i32 noundef %3237) #11
  %3239 = icmp ne i32 %3238, 0
  br i1 %3239, label %3240, label %3257

3240:                                             ; preds = %3235
  %3241 = load i32, ptr %86, align 4, !tbaa !5
  %3242 = call ptr @__errno_location() #12
  store i32 %3241, ptr %3242, align 4, !tbaa !5
  %3243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3244 = load i32, ptr @test_count, align 4, !tbaa !5
  %3245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3246 = load i32, ptr %3245, align 4, !tbaa !5
  %3247 = call ptr @s2n_strerror(i32 noundef %3246, ptr noundef @.str.4)
  %3248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3249 = load i32, ptr %3248, align 4, !tbaa !5
  %3250 = call ptr @s2n_strerror_debug(i32 noundef %3249, ptr noundef @.str.4)
  %3251 = call ptr @__errno_location() #12
  %3252 = load i32, ptr %3251, align 4, !tbaa !5
  %3253 = call ptr @strerror(i32 noundef %3252) #11
  %3254 = call ptr @__errno_location() #12
  %3255 = load i32, ptr %3254, align 4, !tbaa !5
  %3256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3243, ptr noundef @.str.2, i32 noundef %3244, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3247, ptr noundef %3250, ptr noundef %3253, i32 noundef %3255) #11
  br label %3274

3257:                                             ; preds = %3235, %3228
  %3258 = load i32, ptr %86, align 4, !tbaa !5
  %3259 = call ptr @__errno_location() #12
  store i32 %3258, ptr %3259, align 4, !tbaa !5
  %3260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3261 = load i32, ptr @test_count, align 4, !tbaa !5
  %3262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3263 = load i32, ptr %3262, align 4, !tbaa !5
  %3264 = call ptr @s2n_strerror(i32 noundef %3263, ptr noundef @.str.4)
  %3265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3266 = load i32, ptr %3265, align 4, !tbaa !5
  %3267 = call ptr @s2n_strerror_debug(i32 noundef %3266, ptr noundef @.str.4)
  %3268 = call ptr @__errno_location() #12
  %3269 = load i32, ptr %3268, align 4, !tbaa !5
  %3270 = call ptr @strerror(i32 noundef %3269) #11
  %3271 = call ptr @__errno_location() #12
  %3272 = load i32, ptr %3271, align 4, !tbaa !5
  %3273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3260, ptr noundef @.str.5, i32 noundef %3261, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3264, ptr noundef %3267, ptr noundef %3270, i32 noundef %3272) #11
  br label %3274

3274:                                             ; preds = %3257, %3240
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %3275

3275:                                             ; preds = %3274
  br label %3276

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

3277:                                             ; No predecessors!
  br label %3278

3278:                                             ; preds = %3277
  br label %3279

3279:                                             ; preds = %3278, %3221
  br label %3280

3280:                                             ; preds = %3279
  br label %3281

3281:                                             ; preds = %3280
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #11
  store i8 0, ptr %87, align 1, !tbaa !42
  br label %3282

3282:                                             ; preds = %3281
  %3283 = load i32, ptr @test_count, align 4, !tbaa !5
  %3284 = add nsw i32 %3283, 1
  store i32 %3284, ptr @test_count, align 4, !tbaa !5
  %3285 = call i32 @s2n_calculate_padding(i8 noundef zeroext 0, ptr noundef %87)
  %3286 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  store i32 %3285, ptr %3286, align 4
  %3287 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  %3288 = load i32, ptr %3287, align 4
  %3289 = call zeroext i1 @s2n_result_is_ok(i32 %3288)
  br i1 %3289, label %3343, label %3290

3290:                                             ; preds = %3282
  br label %3291

3291:                                             ; preds = %3290
  br label %3292

3292:                                             ; preds = %3291
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %3293 = call ptr @__errno_location() #12
  %3294 = load i32, ptr %3293, align 4, !tbaa !5
  store i32 %3294, ptr %89, align 4, !tbaa !5
  %3295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3296 = call i32 @s2n_print_stacktrace(ptr noundef %3295)
  %3297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3298 = trunc i8 %3297 to i1
  br i1 %3298, label %3299, label %3321

3299:                                             ; preds = %3292
  %3300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3301 = call i32 @fileno(ptr noundef %3300) #11
  %3302 = call i32 @isatty(i32 noundef %3301) #11
  %3303 = icmp ne i32 %3302, 0
  br i1 %3303, label %3304, label %3321

3304:                                             ; preds = %3299
  %3305 = load i32, ptr %89, align 4, !tbaa !5
  %3306 = call ptr @__errno_location() #12
  store i32 %3305, ptr %3306, align 4, !tbaa !5
  %3307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3308 = load i32, ptr @test_count, align 4, !tbaa !5
  %3309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3310 = load i32, ptr %3309, align 4, !tbaa !5
  %3311 = call ptr @s2n_strerror(i32 noundef %3310, ptr noundef @.str.4)
  %3312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3313 = load i32, ptr %3312, align 4, !tbaa !5
  %3314 = call ptr @s2n_strerror_debug(i32 noundef %3313, ptr noundef @.str.4)
  %3315 = call ptr @__errno_location() #12
  %3316 = load i32, ptr %3315, align 4, !tbaa !5
  %3317 = call ptr @strerror(i32 noundef %3316) #11
  %3318 = call ptr @__errno_location() #12
  %3319 = load i32, ptr %3318, align 4, !tbaa !5
  %3320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3307, ptr noundef @.str.2, i32 noundef %3308, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 150, ptr noundef %3311, ptr noundef %3314, ptr noundef %3317, i32 noundef %3319) #11
  br label %3338

3321:                                             ; preds = %3299, %3292
  %3322 = load i32, ptr %89, align 4, !tbaa !5
  %3323 = call ptr @__errno_location() #12
  store i32 %3322, ptr %3323, align 4, !tbaa !5
  %3324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3325 = load i32, ptr @test_count, align 4, !tbaa !5
  %3326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3327 = load i32, ptr %3326, align 4, !tbaa !5
  %3328 = call ptr @s2n_strerror(i32 noundef %3327, ptr noundef @.str.4)
  %3329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3330 = load i32, ptr %3329, align 4, !tbaa !5
  %3331 = call ptr @s2n_strerror_debug(i32 noundef %3330, ptr noundef @.str.4)
  %3332 = call ptr @__errno_location() #12
  %3333 = load i32, ptr %3332, align 4, !tbaa !5
  %3334 = call ptr @strerror(i32 noundef %3333) #11
  %3335 = call ptr @__errno_location() #12
  %3336 = load i32, ptr %3335, align 4, !tbaa !5
  %3337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3324, ptr noundef @.str.5, i32 noundef %3325, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 150, ptr noundef %3328, ptr noundef %3331, ptr noundef %3334, i32 noundef %3336) #11
  br label %3338

3338:                                             ; preds = %3321, %3304
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %3339

3339:                                             ; preds = %3338
  br label %3340

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

3341:                                             ; No predecessors!
  br label %3342

3342:                                             ; preds = %3341
  br label %3343

3343:                                             ; preds = %3342, %3282
  br label %3344

3344:                                             ; preds = %3343
  br label %3345

3345:                                             ; preds = %3344
  br label %3346

3346:                                             ; preds = %3345
  %3347 = load i32, ptr @test_count, align 4, !tbaa !5
  %3348 = add nsw i32 %3347, 1
  store i32 %3348, ptr @test_count, align 4, !tbaa !5
  %3349 = load i8, ptr %87, align 1, !tbaa !42
  %3350 = call i32 @s2n_stuffer_write_uint8(ptr noundef %84, i8 noundef zeroext %3349)
  %3351 = icmp eq i32 %3350, -1
  br i1 %3351, label %3352, label %3405

3352:                                             ; preds = %3346
  br label %3353

3353:                                             ; preds = %3352
  br label %3354

3354:                                             ; preds = %3353
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %3355 = call ptr @__errno_location() #12
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  store i32 %3356, ptr %90, align 4, !tbaa !5
  %3357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3358 = call i32 @s2n_print_stacktrace(ptr noundef %3357)
  %3359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3360 = trunc i8 %3359 to i1
  br i1 %3360, label %3361, label %3383

3361:                                             ; preds = %3354
  %3362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3363 = call i32 @fileno(ptr noundef %3362) #11
  %3364 = call i32 @isatty(i32 noundef %3363) #11
  %3365 = icmp ne i32 %3364, 0
  br i1 %3365, label %3366, label %3383

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

3383:                                             ; preds = %3361, %3354
  %3384 = load i32, ptr %90, align 4, !tbaa !5
  %3385 = call ptr @__errno_location() #12
  store i32 %3384, ptr %3385, align 4, !tbaa !5
  %3386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3387 = load i32, ptr @test_count, align 4, !tbaa !5
  %3388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3389 = load i32, ptr %3388, align 4, !tbaa !5
  %3390 = call ptr @s2n_strerror(i32 noundef %3389, ptr noundef @.str.4)
  %3391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3392 = load i32, ptr %3391, align 4, !tbaa !5
  %3393 = call ptr @s2n_strerror_debug(i32 noundef %3392, ptr noundef @.str.4)
  %3394 = call ptr @__errno_location() #12
  %3395 = load i32, ptr %3394, align 4, !tbaa !5
  %3396 = call ptr @strerror(i32 noundef %3395) #11
  %3397 = call ptr @__errno_location() #12
  %3398 = load i32, ptr %3397, align 4, !tbaa !5
  %3399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3386, ptr noundef @.str.5, i32 noundef %3387, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 151, ptr noundef %3390, ptr noundef %3393, ptr noundef %3396, i32 noundef %3398) #11
  br label %3400

3400:                                             ; preds = %3383, %3366
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %3401

3401:                                             ; preds = %3400
  br label %3402

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

3403:                                             ; No predecessors!
  br label %3404

3404:                                             ; preds = %3403
  br label %3405

3405:                                             ; preds = %3404, %3346
  br label %3406

3406:                                             ; preds = %3405
  br label %3407

3407:                                             ; preds = %3406
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #11
  store i64 0, ptr %91, align 8, !tbaa !47
  br label %3408

3408:                                             ; preds = %3476, %3407
  %3409 = load i64, ptr %91, align 8, !tbaa !47
  %3410 = load i8, ptr %87, align 1, !tbaa !42
  %3411 = zext i8 %3410 to i64
  %3412 = icmp ult i64 %3409, %3411
  br i1 %3412, label %3414, label %3413

3413:                                             ; preds = %3408
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #11
  br label %3479

3414:                                             ; preds = %3408
  br label %3415

3415:                                             ; preds = %3414
  %3416 = load i32, ptr @test_count, align 4, !tbaa !5
  %3417 = add nsw i32 %3416, 1
  store i32 %3417, ptr @test_count, align 4, !tbaa !5
  %3418 = call i32 @s2n_stuffer_write_uint8(ptr noundef %84, i8 noundef zeroext 0)
  %3419 = icmp eq i32 %3418, -1
  br i1 %3419, label %3420, label %3473

3420:                                             ; preds = %3415
  br label %3421

3421:                                             ; preds = %3420
  br label %3422

3422:                                             ; preds = %3421
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %3423 = call ptr @__errno_location() #12
  %3424 = load i32, ptr %3423, align 4, !tbaa !5
  store i32 %3424, ptr %92, align 4, !tbaa !5
  %3425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3426 = call i32 @s2n_print_stacktrace(ptr noundef %3425)
  %3427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3428 = trunc i8 %3427 to i1
  br i1 %3428, label %3429, label %3451

3429:                                             ; preds = %3422
  %3430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3431 = call i32 @fileno(ptr noundef %3430) #11
  %3432 = call i32 @isatty(i32 noundef %3431) #11
  %3433 = icmp ne i32 %3432, 0
  br i1 %3433, label %3434, label %3451

3434:                                             ; preds = %3429
  %3435 = load i32, ptr %92, align 4, !tbaa !5
  %3436 = call ptr @__errno_location() #12
  store i32 %3435, ptr %3436, align 4, !tbaa !5
  %3437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3438 = load i32, ptr @test_count, align 4, !tbaa !5
  %3439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3440 = load i32, ptr %3439, align 4, !tbaa !5
  %3441 = call ptr @s2n_strerror(i32 noundef %3440, ptr noundef @.str.4)
  %3442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3443 = load i32, ptr %3442, align 4, !tbaa !5
  %3444 = call ptr @s2n_strerror_debug(i32 noundef %3443, ptr noundef @.str.4)
  %3445 = call ptr @__errno_location() #12
  %3446 = load i32, ptr %3445, align 4, !tbaa !5
  %3447 = call ptr @strerror(i32 noundef %3446) #11
  %3448 = call ptr @__errno_location() #12
  %3449 = load i32, ptr %3448, align 4, !tbaa !5
  %3450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3437, ptr noundef @.str.2, i32 noundef %3438, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3441, ptr noundef %3444, ptr noundef %3447, i32 noundef %3449) #11
  br label %3468

3451:                                             ; preds = %3429, %3422
  %3452 = load i32, ptr %92, align 4, !tbaa !5
  %3453 = call ptr @__errno_location() #12
  store i32 %3452, ptr %3453, align 4, !tbaa !5
  %3454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3455 = load i32, ptr @test_count, align 4, !tbaa !5
  %3456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3457 = load i32, ptr %3456, align 4, !tbaa !5
  %3458 = call ptr @s2n_strerror(i32 noundef %3457, ptr noundef @.str.4)
  %3459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3460 = load i32, ptr %3459, align 4, !tbaa !5
  %3461 = call ptr @s2n_strerror_debug(i32 noundef %3460, ptr noundef @.str.4)
  %3462 = call ptr @__errno_location() #12
  %3463 = load i32, ptr %3462, align 4, !tbaa !5
  %3464 = call ptr @strerror(i32 noundef %3463) #11
  %3465 = call ptr @__errno_location() #12
  %3466 = load i32, ptr %3465, align 4, !tbaa !5
  %3467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3454, ptr noundef @.str.5, i32 noundef %3455, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3458, ptr noundef %3461, ptr noundef %3464, i32 noundef %3466) #11
  br label %3468

3468:                                             ; preds = %3451, %3434
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %3469

3469:                                             ; preds = %3468
  br label %3470

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

3471:                                             ; No predecessors!
  br label %3472

3472:                                             ; preds = %3471
  br label %3473

3473:                                             ; preds = %3472, %3415
  br label %3474

3474:                                             ; preds = %3473
  br label %3475

3475:                                             ; preds = %3474
  br label %3476

3476:                                             ; preds = %3475
  %3477 = load i64, ptr %91, align 8, !tbaa !47
  %3478 = add i64 %3477, 1
  store i64 %3478, ptr %91, align 8, !tbaa !47
  br label %3408, !llvm.loop !50

3479:                                             ; preds = %3413
  br label %3480

3480:                                             ; preds = %3479
  %3481 = load i32, ptr @test_count, align 4, !tbaa !5
  %3482 = add nsw i32 %3481, 1
  store i32 %3482, ptr @test_count, align 4, !tbaa !5
  %3483 = load ptr, ptr %82, align 8, !tbaa !9
  %3484 = call i32 @s2n_read_npn_protocol(ptr noundef %3483, ptr noundef %84)
  %3485 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  store i32 %3484, ptr %3485, align 4
  %3486 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  %3487 = load i32, ptr %3486, align 4
  %3488 = call zeroext i1 @s2n_result_is_ok(i32 %3487)
  br i1 %3488, label %3542, label %3489

3489:                                             ; preds = %3480
  br label %3490

3490:                                             ; preds = %3489
  br label %3491

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

3498:                                             ; preds = %3491
  %3499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3500 = call i32 @fileno(ptr noundef %3499) #11
  %3501 = call i32 @isatty(i32 noundef %3500) #11
  %3502 = icmp ne i32 %3501, 0
  br i1 %3502, label %3503, label %3520

3503:                                             ; preds = %3498
  %3504 = load i32, ptr %94, align 4, !tbaa !5
  %3505 = call ptr @__errno_location() #12
  store i32 %3504, ptr %3505, align 4, !tbaa !5
  %3506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3507 = load i32, ptr @test_count, align 4, !tbaa !5
  %3508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3509 = load i32, ptr %3508, align 4, !tbaa !5
  %3510 = call ptr @s2n_strerror(i32 noundef %3509, ptr noundef @.str.4)
  %3511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3512 = load i32, ptr %3511, align 4, !tbaa !5
  %3513 = call ptr @s2n_strerror_debug(i32 noundef %3512, ptr noundef @.str.4)
  %3514 = call ptr @__errno_location() #12
  %3515 = load i32, ptr %3514, align 4, !tbaa !5
  %3516 = call ptr @strerror(i32 noundef %3515) #11
  %3517 = call ptr @__errno_location() #12
  %3518 = load i32, ptr %3517, align 4, !tbaa !5
  %3519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3506, ptr noundef @.str.2, i32 noundef %3507, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 156, ptr noundef %3510, ptr noundef %3513, ptr noundef %3516, i32 noundef %3518) #11
  br label %3537

3520:                                             ; preds = %3498, %3491
  %3521 = load i32, ptr %94, align 4, !tbaa !5
  %3522 = call ptr @__errno_location() #12
  store i32 %3521, ptr %3522, align 4, !tbaa !5
  %3523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3524 = load i32, ptr @test_count, align 4, !tbaa !5
  %3525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3526 = load i32, ptr %3525, align 4, !tbaa !5
  %3527 = call ptr @s2n_strerror(i32 noundef %3526, ptr noundef @.str.4)
  %3528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3529 = load i32, ptr %3528, align 4, !tbaa !5
  %3530 = call ptr @s2n_strerror_debug(i32 noundef %3529, ptr noundef @.str.4)
  %3531 = call ptr @__errno_location() #12
  %3532 = load i32, ptr %3531, align 4, !tbaa !5
  %3533 = call ptr @strerror(i32 noundef %3532) #11
  %3534 = call ptr @__errno_location() #12
  %3535 = load i32, ptr %3534, align 4, !tbaa !5
  %3536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3523, ptr noundef @.str.5, i32 noundef %3524, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 156, ptr noundef %3527, ptr noundef %3530, ptr noundef %3533, i32 noundef %3535) #11
  br label %3537

3537:                                             ; preds = %3520, %3503
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %3538

3538:                                             ; preds = %3537
  br label %3539

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

3540:                                             ; No predecessors!
  br label %3541

3541:                                             ; preds = %3540
  br label %3542

3542:                                             ; preds = %3541, %3480
  br label %3543

3543:                                             ; preds = %3542
  br label %3544

3544:                                             ; preds = %3543
  br label %3545

3545:                                             ; preds = %3544
  %3546 = load i32, ptr @test_count, align 4, !tbaa !5
  %3547 = add nsw i32 %3546, 1
  store i32 %3547, ptr @test_count, align 4, !tbaa !5
  %3548 = load ptr, ptr %82, align 8, !tbaa !9
  %3549 = call ptr @s2n_get_application_protocol(ptr noundef %3548)
  %3550 = icmp eq ptr %3549, null
  br i1 %3550, label %3604, label %3551

3551:                                             ; preds = %3545
  br label %3552

3552:                                             ; preds = %3551
  br label %3553

3553:                                             ; preds = %3552
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #11
  %3554 = call ptr @__errno_location() #12
  %3555 = load i32, ptr %3554, align 4, !tbaa !5
  store i32 %3555, ptr %95, align 4, !tbaa !5
  %3556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3557 = call i32 @s2n_print_stacktrace(ptr noundef %3556)
  %3558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3559 = trunc i8 %3558 to i1
  br i1 %3559, label %3560, label %3582

3560:                                             ; preds = %3553
  %3561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3562 = call i32 @fileno(ptr noundef %3561) #11
  %3563 = call i32 @isatty(i32 noundef %3562) #11
  %3564 = icmp ne i32 %3563, 0
  br i1 %3564, label %3565, label %3582

3565:                                             ; preds = %3560
  %3566 = load i32, ptr %95, align 4, !tbaa !5
  %3567 = call ptr @__errno_location() #12
  store i32 %3566, ptr %3567, align 4, !tbaa !5
  %3568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3569 = load i32, ptr @test_count, align 4, !tbaa !5
  %3570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3571 = load i32, ptr %3570, align 4, !tbaa !5
  %3572 = call ptr @s2n_strerror(i32 noundef %3571, ptr noundef @.str.4)
  %3573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3574 = load i32, ptr %3573, align 4, !tbaa !5
  %3575 = call ptr @s2n_strerror_debug(i32 noundef %3574, ptr noundef @.str.4)
  %3576 = call ptr @__errno_location() #12
  %3577 = load i32, ptr %3576, align 4, !tbaa !5
  %3578 = call ptr @strerror(i32 noundef %3577) #11
  %3579 = call ptr @__errno_location() #12
  %3580 = load i32, ptr %3579, align 4, !tbaa !5
  %3581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3568, ptr noundef @.str.2, i32 noundef %3569, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3572, ptr noundef %3575, ptr noundef %3578, i32 noundef %3580) #11
  br label %3599

3582:                                             ; preds = %3560, %3553
  %3583 = load i32, ptr %95, align 4, !tbaa !5
  %3584 = call ptr @__errno_location() #12
  store i32 %3583, ptr %3584, align 4, !tbaa !5
  %3585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3586 = load i32, ptr @test_count, align 4, !tbaa !5
  %3587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3588 = load i32, ptr %3587, align 4, !tbaa !5
  %3589 = call ptr @s2n_strerror(i32 noundef %3588, ptr noundef @.str.4)
  %3590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3591 = load i32, ptr %3590, align 4, !tbaa !5
  %3592 = call ptr @s2n_strerror_debug(i32 noundef %3591, ptr noundef @.str.4)
  %3593 = call ptr @__errno_location() #12
  %3594 = load i32, ptr %3593, align 4, !tbaa !5
  %3595 = call ptr @strerror(i32 noundef %3594) #11
  %3596 = call ptr @__errno_location() #12
  %3597 = load i32, ptr %3596, align 4, !tbaa !5
  %3598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3585, ptr noundef @.str.5, i32 noundef %3586, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3589, ptr noundef %3592, ptr noundef %3595, i32 noundef %3597) #11
  br label %3599

3599:                                             ; preds = %3582, %3565
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %3600

3600:                                             ; preds = %3599
  br label %3601

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

3602:                                             ; No predecessors!
  br label %3603

3603:                                             ; preds = %3602
  br label %3604

3604:                                             ; preds = %3603, %3545
  br label %3605

3605:                                             ; preds = %3604
  br label %3606

3606:                                             ; preds = %3605
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #11
  %3607 = call i32 @s2n_stuffer_free(ptr noundef %84)
  call void @llvm.lifetime.end.p0(i64 40, ptr %84) #11
  %3608 = call i32 @s2n_connection_ptr_free(ptr noundef %82)
  %3609 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  store i32 %3608, ptr %3609, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #11
  %3610 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3610, ptr %97, align 8, !tbaa !9
  br label %3611

3611:                                             ; preds = %3606
  %3612 = load i32, ptr @test_count, align 4, !tbaa !5
  %3613 = add nsw i32 %3612, 1
  store i32 %3613, ptr @test_count, align 4, !tbaa !5
  %3614 = load ptr, ptr %97, align 8, !tbaa !9
  %3615 = icmp eq ptr %3614, null
  br i1 %3615, label %3616, label %3669

3616:                                             ; preds = %3611
  br label %3617

3617:                                             ; preds = %3616
  br label %3618

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

3625:                                             ; preds = %3618
  %3626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3627 = call i32 @fileno(ptr noundef %3626) #11
  %3628 = call i32 @isatty(i32 noundef %3627) #11
  %3629 = icmp ne i32 %3628, 0
  br i1 %3629, label %3630, label %3647

3630:                                             ; preds = %3625
  %3631 = load i32, ptr %98, align 4, !tbaa !5
  %3632 = call ptr @__errno_location() #12
  store i32 %3631, ptr %3632, align 4, !tbaa !5
  %3633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3634 = load i32, ptr @test_count, align 4, !tbaa !5
  %3635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3636 = load i32, ptr %3635, align 4, !tbaa !5
  %3637 = call ptr @s2n_strerror(i32 noundef %3636, ptr noundef @.str.4)
  %3638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3639 = load i32, ptr %3638, align 4, !tbaa !5
  %3640 = call ptr @s2n_strerror_debug(i32 noundef %3639, ptr noundef @.str.4)
  %3641 = call ptr @__errno_location() #12
  %3642 = load i32, ptr %3641, align 4, !tbaa !5
  %3643 = call ptr @strerror(i32 noundef %3642) #11
  %3644 = call ptr @__errno_location() #12
  %3645 = load i32, ptr %3644, align 4, !tbaa !5
  %3646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3633, ptr noundef @.str.2, i32 noundef %3634, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 163, ptr noundef %3637, ptr noundef %3640, ptr noundef %3643, i32 noundef %3645) #11
  br label %3664

3647:                                             ; preds = %3625, %3618
  %3648 = load i32, ptr %98, align 4, !tbaa !5
  %3649 = call ptr @__errno_location() #12
  store i32 %3648, ptr %3649, align 4, !tbaa !5
  %3650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3651 = load i32, ptr @test_count, align 4, !tbaa !5
  %3652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3653 = load i32, ptr %3652, align 4, !tbaa !5
  %3654 = call ptr @s2n_strerror(i32 noundef %3653, ptr noundef @.str.4)
  %3655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3656 = load i32, ptr %3655, align 4, !tbaa !5
  %3657 = call ptr @s2n_strerror_debug(i32 noundef %3656, ptr noundef @.str.4)
  %3658 = call ptr @__errno_location() #12
  %3659 = load i32, ptr %3658, align 4, !tbaa !5
  %3660 = call ptr @strerror(i32 noundef %3659) #11
  %3661 = call ptr @__errno_location() #12
  %3662 = load i32, ptr %3661, align 4, !tbaa !5
  %3663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3650, ptr noundef @.str.5, i32 noundef %3651, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 163, ptr noundef %3654, ptr noundef %3657, ptr noundef %3660, i32 noundef %3662) #11
  br label %3664

3664:                                             ; preds = %3647, %3630
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %3665

3665:                                             ; preds = %3664
  br label %3666

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

3667:                                             ; No predecessors!
  br label %3668

3668:                                             ; preds = %3667
  br label %3669

3669:                                             ; preds = %3668, %3611
  br label %3670

3670:                                             ; preds = %3669
  br label %3671

3671:                                             ; preds = %3670
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %99, ptr align 1 @__const.main.wire_bytes, i64 1, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %100) #11
  call void @llvm.memset.p0.i64(ptr align 8 %100, i8 0, i64 40, i1 false)
  br label %3672

3672:                                             ; preds = %3671
  %3673 = load i32, ptr @test_count, align 4, !tbaa !5
  %3674 = add nsw i32 %3673, 1
  store i32 %3674, ptr @test_count, align 4, !tbaa !5
  %3675 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %100, i32 noundef 0)
  %3676 = icmp eq i32 %3675, -1
  br i1 %3676, label %3677, label %3730

3677:                                             ; preds = %3672
  br label %3678

3678:                                             ; preds = %3677
  br label %3679

3679:                                             ; preds = %3678
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #11
  %3680 = call ptr @__errno_location() #12
  %3681 = load i32, ptr %3680, align 4, !tbaa !5
  store i32 %3681, ptr %101, align 4, !tbaa !5
  %3682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3683 = call i32 @s2n_print_stacktrace(ptr noundef %3682)
  %3684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3685 = trunc i8 %3684 to i1
  br i1 %3685, label %3686, label %3708

3686:                                             ; preds = %3679
  %3687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3688 = call i32 @fileno(ptr noundef %3687) #11
  %3689 = call i32 @isatty(i32 noundef %3688) #11
  %3690 = icmp ne i32 %3689, 0
  br i1 %3690, label %3691, label %3708

3691:                                             ; preds = %3686
  %3692 = load i32, ptr %101, align 4, !tbaa !5
  %3693 = call ptr @__errno_location() #12
  store i32 %3692, ptr %3693, align 4, !tbaa !5
  %3694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3695 = load i32, ptr @test_count, align 4, !tbaa !5
  %3696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3697 = load i32, ptr %3696, align 4, !tbaa !5
  %3698 = call ptr @s2n_strerror(i32 noundef %3697, ptr noundef @.str.4)
  %3699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3700 = load i32, ptr %3699, align 4, !tbaa !5
  %3701 = call ptr @s2n_strerror_debug(i32 noundef %3700, ptr noundef @.str.4)
  %3702 = call ptr @__errno_location() #12
  %3703 = load i32, ptr %3702, align 4, !tbaa !5
  %3704 = call ptr @strerror(i32 noundef %3703) #11
  %3705 = call ptr @__errno_location() #12
  %3706 = load i32, ptr %3705, align 4, !tbaa !5
  %3707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3694, ptr noundef @.str.2, i32 noundef %3695, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 171, ptr noundef %3698, ptr noundef %3701, ptr noundef %3704, i32 noundef %3706) #11
  br label %3725

3708:                                             ; preds = %3686, %3679
  %3709 = load i32, ptr %101, align 4, !tbaa !5
  %3710 = call ptr @__errno_location() #12
  store i32 %3709, ptr %3710, align 4, !tbaa !5
  %3711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3712 = load i32, ptr @test_count, align 4, !tbaa !5
  %3713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3714 = load i32, ptr %3713, align 4, !tbaa !5
  %3715 = call ptr @s2n_strerror(i32 noundef %3714, ptr noundef @.str.4)
  %3716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3717 = load i32, ptr %3716, align 4, !tbaa !5
  %3718 = call ptr @s2n_strerror_debug(i32 noundef %3717, ptr noundef @.str.4)
  %3719 = call ptr @__errno_location() #12
  %3720 = load i32, ptr %3719, align 4, !tbaa !5
  %3721 = call ptr @strerror(i32 noundef %3720) #11
  %3722 = call ptr @__errno_location() #12
  %3723 = load i32, ptr %3722, align 4, !tbaa !5
  %3724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3711, ptr noundef @.str.5, i32 noundef %3712, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 171, ptr noundef %3715, ptr noundef %3718, ptr noundef %3721, i32 noundef %3723) #11
  br label %3725

3725:                                             ; preds = %3708, %3691
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %3726

3726:                                             ; preds = %3725
  br label %3727

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

3728:                                             ; No predecessors!
  br label %3729

3729:                                             ; preds = %3728
  br label %3730

3730:                                             ; preds = %3729, %3672
  br label %3731

3731:                                             ; preds = %3730
  br label %3732

3732:                                             ; preds = %3731
  br label %3733

3733:                                             ; preds = %3732
  %3734 = load i32, ptr @test_count, align 4, !tbaa !5
  %3735 = add nsw i32 %3734, 1
  store i32 %3735, ptr @test_count, align 4, !tbaa !5
  %3736 = getelementptr inbounds [1 x i8], ptr %99, i64 0, i64 0
  %3737 = call i32 @s2n_stuffer_write_bytes(ptr noundef %100, ptr noundef %3736, i32 noundef 1)
  %3738 = icmp eq i32 %3737, -1
  br i1 %3738, label %3739, label %3792

3739:                                             ; preds = %3733
  br label %3740

3740:                                             ; preds = %3739
  br label %3741

3741:                                             ; preds = %3740
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #11
  %3742 = call ptr @__errno_location() #12
  %3743 = load i32, ptr %3742, align 4, !tbaa !5
  store i32 %3743, ptr %102, align 4, !tbaa !5
  %3744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3745 = call i32 @s2n_print_stacktrace(ptr noundef %3744)
  %3746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3747 = trunc i8 %3746 to i1
  br i1 %3747, label %3748, label %3770

3748:                                             ; preds = %3741
  %3749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3750 = call i32 @fileno(ptr noundef %3749) #11
  %3751 = call i32 @isatty(i32 noundef %3750) #11
  %3752 = icmp ne i32 %3751, 0
  br i1 %3752, label %3753, label %3770

3753:                                             ; preds = %3748
  %3754 = load i32, ptr %102, align 4, !tbaa !5
  %3755 = call ptr @__errno_location() #12
  store i32 %3754, ptr %3755, align 4, !tbaa !5
  %3756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3757 = load i32, ptr @test_count, align 4, !tbaa !5
  %3758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3759 = load i32, ptr %3758, align 4, !tbaa !5
  %3760 = call ptr @s2n_strerror(i32 noundef %3759, ptr noundef @.str.4)
  %3761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3762 = load i32, ptr %3761, align 4, !tbaa !5
  %3763 = call ptr @s2n_strerror_debug(i32 noundef %3762, ptr noundef @.str.4)
  %3764 = call ptr @__errno_location() #12
  %3765 = load i32, ptr %3764, align 4, !tbaa !5
  %3766 = call ptr @strerror(i32 noundef %3765) #11
  %3767 = call ptr @__errno_location() #12
  %3768 = load i32, ptr %3767, align 4, !tbaa !5
  %3769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3756, ptr noundef @.str.2, i32 noundef %3757, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3760, ptr noundef %3763, ptr noundef %3766, i32 noundef %3768) #11
  br label %3787

3770:                                             ; preds = %3748, %3741
  %3771 = load i32, ptr %102, align 4, !tbaa !5
  %3772 = call ptr @__errno_location() #12
  store i32 %3771, ptr %3772, align 4, !tbaa !5
  %3773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3774 = load i32, ptr @test_count, align 4, !tbaa !5
  %3775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3776 = load i32, ptr %3775, align 4, !tbaa !5
  %3777 = call ptr @s2n_strerror(i32 noundef %3776, ptr noundef @.str.4)
  %3778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3779 = load i32, ptr %3778, align 4, !tbaa !5
  %3780 = call ptr @s2n_strerror_debug(i32 noundef %3779, ptr noundef @.str.4)
  %3781 = call ptr @__errno_location() #12
  %3782 = load i32, ptr %3781, align 4, !tbaa !5
  %3783 = call ptr @strerror(i32 noundef %3782) #11
  %3784 = call ptr @__errno_location() #12
  %3785 = load i32, ptr %3784, align 4, !tbaa !5
  %3786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3773, ptr noundef @.str.5, i32 noundef %3774, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3777, ptr noundef %3780, ptr noundef %3783, i32 noundef %3785) #11
  br label %3787

3787:                                             ; preds = %3770, %3753
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %3788

3788:                                             ; preds = %3787
  br label %3789

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

3790:                                             ; No predecessors!
  br label %3791

3791:                                             ; preds = %3790
  br label %3792

3792:                                             ; preds = %3791, %3733
  br label %3793

3793:                                             ; preds = %3792
  br label %3794

3794:                                             ; preds = %3793
  br label %3795

3795:                                             ; preds = %3794
  br label %3796

3796:                                             ; preds = %3795
  br label %3797

3797:                                             ; preds = %3796
  %3798 = load i32, ptr @test_count, align 4, !tbaa !5
  %3799 = add nsw i32 %3798, 1
  store i32 %3799, ptr @test_count, align 4, !tbaa !5
  %3800 = load ptr, ptr %97, align 8, !tbaa !9
  %3801 = call i32 @s2n_read_npn_protocol(ptr noundef %3800, ptr noundef %100)
  %3802 = getelementptr inbounds %struct.s2n_result, ptr %103, i32 0, i32 0
  store i32 %3801, ptr %3802, align 4
  %3803 = getelementptr inbounds %struct.s2n_result, ptr %103, i32 0, i32 0
  %3804 = load i32, ptr %3803, align 4
  %3805 = call zeroext i1 @s2n_result_is_error(i32 %3804)
  br i1 %3805, label %3859, label %3806

3806:                                             ; preds = %3797
  br label %3807

3807:                                             ; preds = %3806
  br label %3808

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

3815:                                             ; preds = %3808
  %3816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3817 = call i32 @fileno(ptr noundef %3816) #11
  %3818 = call i32 @isatty(i32 noundef %3817) #11
  %3819 = icmp ne i32 %3818, 0
  br i1 %3819, label %3820, label %3837

3820:                                             ; preds = %3815
  %3821 = load i32, ptr %104, align 4, !tbaa !5
  %3822 = call ptr @__errno_location() #12
  store i32 %3821, ptr %3822, align 4, !tbaa !5
  %3823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3824 = load i32, ptr @test_count, align 4, !tbaa !5
  %3825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  %3827 = call ptr @s2n_strerror(i32 noundef %3826, ptr noundef @.str.4)
  %3828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  %3830 = call ptr @s2n_strerror_debug(i32 noundef %3829, ptr noundef @.str.4)
  %3831 = call ptr @__errno_location() #12
  %3832 = load i32, ptr %3831, align 4, !tbaa !5
  %3833 = call ptr @strerror(i32 noundef %3832) #11
  %3834 = call ptr @__errno_location() #12
  %3835 = load i32, ptr %3834, align 4, !tbaa !5
  %3836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3823, ptr noundef @.str.2, i32 noundef %3824, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3827, ptr noundef %3830, ptr noundef %3833, i32 noundef %3835) #11
  br label %3854

3837:                                             ; preds = %3815, %3808
  %3838 = load i32, ptr %104, align 4, !tbaa !5
  %3839 = call ptr @__errno_location() #12
  store i32 %3838, ptr %3839, align 4, !tbaa !5
  %3840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3841 = load i32, ptr @test_count, align 4, !tbaa !5
  %3842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3843 = load i32, ptr %3842, align 4, !tbaa !5
  %3844 = call ptr @s2n_strerror(i32 noundef %3843, ptr noundef @.str.4)
  %3845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3846 = load i32, ptr %3845, align 4, !tbaa !5
  %3847 = call ptr @s2n_strerror_debug(i32 noundef %3846, ptr noundef @.str.4)
  %3848 = call ptr @__errno_location() #12
  %3849 = load i32, ptr %3848, align 4, !tbaa !5
  %3850 = call ptr @strerror(i32 noundef %3849) #11
  %3851 = call ptr @__errno_location() #12
  %3852 = load i32, ptr %3851, align 4, !tbaa !5
  %3853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3840, ptr noundef @.str.5, i32 noundef %3841, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3844, ptr noundef %3847, ptr noundef %3850, i32 noundef %3852) #11
  br label %3854

3854:                                             ; preds = %3837, %3820
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #11
  br label %3855

3855:                                             ; preds = %3854
  br label %3856

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

3857:                                             ; No predecessors!
  br label %3858

3858:                                             ; preds = %3857
  br label %3859

3859:                                             ; preds = %3858, %3797
  br label %3860

3860:                                             ; preds = %3859
  br label %3861

3861:                                             ; preds = %3860
  br label %3862

3862:                                             ; preds = %3861
  %3863 = load i32, ptr @test_count, align 4, !tbaa !5
  %3864 = add nsw i32 %3863, 1
  store i32 %3864, ptr @test_count, align 4, !tbaa !5
  %3865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3866 = load i32, ptr %3865, align 4, !tbaa !5
  %3867 = icmp eq i32 %3866, 402653193
  br i1 %3867, label %3921, label %3868

3868:                                             ; preds = %3862
  br label %3869

3869:                                             ; preds = %3868
  br label %3870

3870:                                             ; preds = %3869
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #11
  %3871 = call ptr @__errno_location() #12
  %3872 = load i32, ptr %3871, align 4, !tbaa !5
  store i32 %3872, ptr %105, align 4, !tbaa !5
  %3873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3874 = call i32 @s2n_print_stacktrace(ptr noundef %3873)
  %3875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3876 = trunc i8 %3875 to i1
  br i1 %3876, label %3877, label %3899

3877:                                             ; preds = %3870
  %3878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3879 = call i32 @fileno(ptr noundef %3878) #11
  %3880 = call i32 @isatty(i32 noundef %3879) #11
  %3881 = icmp ne i32 %3880, 0
  br i1 %3881, label %3882, label %3899

3882:                                             ; preds = %3877
  %3883 = load i32, ptr %105, align 4, !tbaa !5
  %3884 = call ptr @__errno_location() #12
  store i32 %3883, ptr %3884, align 4, !tbaa !5
  %3885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3886 = load i32, ptr @test_count, align 4, !tbaa !5
  %3887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3888 = load i32, ptr %3887, align 4, !tbaa !5
  %3889 = call ptr @s2n_strerror(i32 noundef %3888, ptr noundef @.str.4)
  %3890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3891 = load i32, ptr %3890, align 4, !tbaa !5
  %3892 = call ptr @s2n_strerror_debug(i32 noundef %3891, ptr noundef @.str.4)
  %3893 = call ptr @__errno_location() #12
  %3894 = load i32, ptr %3893, align 4, !tbaa !5
  %3895 = call ptr @strerror(i32 noundef %3894) #11
  %3896 = call ptr @__errno_location() #12
  %3897 = load i32, ptr %3896, align 4, !tbaa !5
  %3898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3885, ptr noundef @.str.2, i32 noundef %3886, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3889, ptr noundef %3892, ptr noundef %3895, i32 noundef %3897) #11
  br label %3916

3899:                                             ; preds = %3877, %3870
  %3900 = load i32, ptr %105, align 4, !tbaa !5
  %3901 = call ptr @__errno_location() #12
  store i32 %3900, ptr %3901, align 4, !tbaa !5
  %3902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3903 = load i32, ptr @test_count, align 4, !tbaa !5
  %3904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3905 = load i32, ptr %3904, align 4, !tbaa !5
  %3906 = call ptr @s2n_strerror(i32 noundef %3905, ptr noundef @.str.4)
  %3907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3908 = load i32, ptr %3907, align 4, !tbaa !5
  %3909 = call ptr @s2n_strerror_debug(i32 noundef %3908, ptr noundef @.str.4)
  %3910 = call ptr @__errno_location() #12
  %3911 = load i32, ptr %3910, align 4, !tbaa !5
  %3912 = call ptr @strerror(i32 noundef %3911) #11
  %3913 = call ptr @__errno_location() #12
  %3914 = load i32, ptr %3913, align 4, !tbaa !5
  %3915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3902, ptr noundef @.str.5, i32 noundef %3903, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3906, ptr noundef %3909, ptr noundef %3912, i32 noundef %3914) #11
  br label %3916

3916:                                             ; preds = %3899, %3882
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %3917

3917:                                             ; preds = %3916
  br label %3918

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

3919:                                             ; No predecessors!
  br label %3920

3920:                                             ; preds = %3919
  br label %3921

3921:                                             ; preds = %3920, %3862
  br label %3922

3922:                                             ; preds = %3921
  br label %3923

3923:                                             ; preds = %3922
  br label %3924

3924:                                             ; preds = %3923
  %3925 = load i32, ptr @test_count, align 4, !tbaa !5
  %3926 = add nsw i32 %3925, 1
  store i32 %3926, ptr @test_count, align 4, !tbaa !5
  %3927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3928 = load i32, ptr %3927, align 4, !tbaa !5
  %3929 = call ptr @s2n_strerror_debug(i32 noundef %3928, ptr noundef @.str.4)
  %3930 = icmp eq ptr %3929, null
  br i1 %3930, label %3931, label %3984

3931:                                             ; preds = %3924
  br label %3932

3932:                                             ; preds = %3931
  br label %3933

3933:                                             ; preds = %3932
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #11
  %3934 = call ptr @__errno_location() #12
  %3935 = load i32, ptr %3934, align 4, !tbaa !5
  store i32 %3935, ptr %106, align 4, !tbaa !5
  %3936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3937 = call i32 @s2n_print_stacktrace(ptr noundef %3936)
  %3938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3939 = trunc i8 %3938 to i1
  br i1 %3939, label %3940, label %3962

3940:                                             ; preds = %3933
  %3941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3942 = call i32 @fileno(ptr noundef %3941) #11
  %3943 = call i32 @isatty(i32 noundef %3942) #11
  %3944 = icmp ne i32 %3943, 0
  br i1 %3944, label %3945, label %3962

3945:                                             ; preds = %3940
  %3946 = load i32, ptr %106, align 4, !tbaa !5
  %3947 = call ptr @__errno_location() #12
  store i32 %3946, ptr %3947, align 4, !tbaa !5
  %3948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3949 = load i32, ptr @test_count, align 4, !tbaa !5
  %3950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3951 = load i32, ptr %3950, align 4, !tbaa !5
  %3952 = call ptr @s2n_strerror(i32 noundef %3951, ptr noundef @.str.4)
  %3953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3954 = load i32, ptr %3953, align 4, !tbaa !5
  %3955 = call ptr @s2n_strerror_debug(i32 noundef %3954, ptr noundef @.str.4)
  %3956 = call ptr @__errno_location() #12
  %3957 = load i32, ptr %3956, align 4, !tbaa !5
  %3958 = call ptr @strerror(i32 noundef %3957) #11
  %3959 = call ptr @__errno_location() #12
  %3960 = load i32, ptr %3959, align 4, !tbaa !5
  %3961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3948, ptr noundef @.str.2, i32 noundef %3949, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3952, ptr noundef %3955, ptr noundef %3958, i32 noundef %3960) #11
  br label %3979

3962:                                             ; preds = %3940, %3933
  %3963 = load i32, ptr %106, align 4, !tbaa !5
  %3964 = call ptr @__errno_location() #12
  store i32 %3963, ptr %3964, align 4, !tbaa !5
  %3965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3966 = load i32, ptr @test_count, align 4, !tbaa !5
  %3967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3968 = load i32, ptr %3967, align 4, !tbaa !5
  %3969 = call ptr @s2n_strerror(i32 noundef %3968, ptr noundef @.str.4)
  %3970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3971 = load i32, ptr %3970, align 4, !tbaa !5
  %3972 = call ptr @s2n_strerror_debug(i32 noundef %3971, ptr noundef @.str.4)
  %3973 = call ptr @__errno_location() #12
  %3974 = load i32, ptr %3973, align 4, !tbaa !5
  %3975 = call ptr @strerror(i32 noundef %3974) #11
  %3976 = call ptr @__errno_location() #12
  %3977 = load i32, ptr %3976, align 4, !tbaa !5
  %3978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3965, ptr noundef @.str.5, i32 noundef %3966, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3969, ptr noundef %3972, ptr noundef %3975, i32 noundef %3977) #11
  br label %3979

3979:                                             ; preds = %3962, %3945
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #11
  br label %3980

3980:                                             ; preds = %3979
  br label %3981

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

3982:                                             ; No predecessors!
  br label %3983

3983:                                             ; preds = %3982
  br label %3984

3984:                                             ; preds = %3983, %3924
  br label %3985

3985:                                             ; preds = %3984
  br label %3986

3986:                                             ; preds = %3985
  br label %3987

3987:                                             ; preds = %3986
  br label %3988

3988:                                             ; preds = %3987
  br label %3989

3989:                                             ; preds = %3988
  %3990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3990, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3991 = call ptr @__errno_location() #12
  store i32 0, ptr %3991, align 4, !tbaa !5
  br label %3992

3992:                                             ; preds = %3989
  br label %3993

3993:                                             ; preds = %3992
  br label %3994

3994:                                             ; preds = %3993
  br label %3995

3995:                                             ; preds = %3994
  %3996 = call i32 @s2n_stuffer_free(ptr noundef %100)
  call void @llvm.lifetime.end.p0(i64 40, ptr %100) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #11
  %3997 = call i32 @s2n_connection_ptr_free(ptr noundef %97)
  %3998 = getelementptr inbounds %struct.s2n_result, ptr %107, i32 0, i32 0
  store i32 %3997, ptr %3998, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #11
  %3999 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3999, ptr %108, align 8, !tbaa !9
  br label %4000

4000:                                             ; preds = %3995
  %4001 = load i32, ptr @test_count, align 4, !tbaa !5
  %4002 = add nsw i32 %4001, 1
  store i32 %4002, ptr @test_count, align 4, !tbaa !5
  %4003 = load ptr, ptr %108, align 8, !tbaa !9
  %4004 = icmp eq ptr %4003, null
  br i1 %4004, label %4005, label %4058

4005:                                             ; preds = %4000
  br label %4006

4006:                                             ; preds = %4005
  br label %4007

4007:                                             ; preds = %4006
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  %4008 = call ptr @__errno_location() #12
  %4009 = load i32, ptr %4008, align 4, !tbaa !5
  store i32 %4009, ptr %109, align 4, !tbaa !5
  %4010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4011 = call i32 @s2n_print_stacktrace(ptr noundef %4010)
  %4012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4013 = trunc i8 %4012 to i1
  br i1 %4013, label %4014, label %4036

4014:                                             ; preds = %4007
  %4015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4016 = call i32 @fileno(ptr noundef %4015) #11
  %4017 = call i32 @isatty(i32 noundef %4016) #11
  %4018 = icmp ne i32 %4017, 0
  br i1 %4018, label %4019, label %4036

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

4036:                                             ; preds = %4014, %4007
  %4037 = load i32, ptr %109, align 4, !tbaa !5
  %4038 = call ptr @__errno_location() #12
  store i32 %4037, ptr %4038, align 4, !tbaa !5
  %4039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4040 = load i32, ptr @test_count, align 4, !tbaa !5
  %4041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4042 = load i32, ptr %4041, align 4, !tbaa !5
  %4043 = call ptr @s2n_strerror(i32 noundef %4042, ptr noundef @.str.4)
  %4044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4045 = load i32, ptr %4044, align 4, !tbaa !5
  %4046 = call ptr @s2n_strerror_debug(i32 noundef %4045, ptr noundef @.str.4)
  %4047 = call ptr @__errno_location() #12
  %4048 = load i32, ptr %4047, align 4, !tbaa !5
  %4049 = call ptr @strerror(i32 noundef %4048) #11
  %4050 = call ptr @__errno_location() #12
  %4051 = load i32, ptr %4050, align 4, !tbaa !5
  %4052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4039, ptr noundef @.str.5, i32 noundef %4040, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 179, ptr noundef %4043, ptr noundef %4046, ptr noundef %4049, i32 noundef %4051) #11
  br label %4053

4053:                                             ; preds = %4036, %4019
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %4054

4054:                                             ; preds = %4053
  br label %4055

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

4056:                                             ; No predecessors!
  br label %4057

4057:                                             ; preds = %4056
  br label %4058

4058:                                             ; preds = %4057, %4000
  br label %4059

4059:                                             ; preds = %4058
  br label %4060

4060:                                             ; preds = %4059
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %110, ptr align 1 @__const.main.wire_bytes.46, i64 4, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %111) #11
  call void @llvm.memset.p0.i64(ptr align 8 %111, i8 0, i64 40, i1 false)
  br label %4061

4061:                                             ; preds = %4060
  %4062 = load i32, ptr @test_count, align 4, !tbaa !5
  %4063 = add nsw i32 %4062, 1
  store i32 %4063, ptr @test_count, align 4, !tbaa !5
  %4064 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %111, i32 noundef 0)
  %4065 = icmp eq i32 %4064, -1
  br i1 %4065, label %4066, label %4119

4066:                                             ; preds = %4061
  br label %4067

4067:                                             ; preds = %4066
  br label %4068

4068:                                             ; preds = %4067
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #11
  %4069 = call ptr @__errno_location() #12
  %4070 = load i32, ptr %4069, align 4, !tbaa !5
  store i32 %4070, ptr %112, align 4, !tbaa !5
  %4071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4072 = call i32 @s2n_print_stacktrace(ptr noundef %4071)
  %4073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4074 = trunc i8 %4073 to i1
  br i1 %4074, label %4075, label %4097

4075:                                             ; preds = %4068
  %4076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4077 = call i32 @fileno(ptr noundef %4076) #11
  %4078 = call i32 @isatty(i32 noundef %4077) #11
  %4079 = icmp ne i32 %4078, 0
  br i1 %4079, label %4080, label %4097

4080:                                             ; preds = %4075
  %4081 = load i32, ptr %112, align 4, !tbaa !5
  %4082 = call ptr @__errno_location() #12
  store i32 %4081, ptr %4082, align 4, !tbaa !5
  %4083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4084 = load i32, ptr @test_count, align 4, !tbaa !5
  %4085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4086 = load i32, ptr %4085, align 4, !tbaa !5
  %4087 = call ptr @s2n_strerror(i32 noundef %4086, ptr noundef @.str.4)
  %4088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4089 = load i32, ptr %4088, align 4, !tbaa !5
  %4090 = call ptr @s2n_strerror_debug(i32 noundef %4089, ptr noundef @.str.4)
  %4091 = call ptr @__errno_location() #12
  %4092 = load i32, ptr %4091, align 4, !tbaa !5
  %4093 = call ptr @strerror(i32 noundef %4092) #11
  %4094 = call ptr @__errno_location() #12
  %4095 = load i32, ptr %4094, align 4, !tbaa !5
  %4096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4083, ptr noundef @.str.2, i32 noundef %4084, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 191, ptr noundef %4087, ptr noundef %4090, ptr noundef %4093, i32 noundef %4095) #11
  br label %4114

4097:                                             ; preds = %4075, %4068
  %4098 = load i32, ptr %112, align 4, !tbaa !5
  %4099 = call ptr @__errno_location() #12
  store i32 %4098, ptr %4099, align 4, !tbaa !5
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = load i32, ptr @test_count, align 4, !tbaa !5
  %4102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4103 = load i32, ptr %4102, align 4, !tbaa !5
  %4104 = call ptr @s2n_strerror(i32 noundef %4103, ptr noundef @.str.4)
  %4105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4106 = load i32, ptr %4105, align 4, !tbaa !5
  %4107 = call ptr @s2n_strerror_debug(i32 noundef %4106, ptr noundef @.str.4)
  %4108 = call ptr @__errno_location() #12
  %4109 = load i32, ptr %4108, align 4, !tbaa !5
  %4110 = call ptr @strerror(i32 noundef %4109) #11
  %4111 = call ptr @__errno_location() #12
  %4112 = load i32, ptr %4111, align 4, !tbaa !5
  %4113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4100, ptr noundef @.str.5, i32 noundef %4101, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 191, ptr noundef %4104, ptr noundef %4107, ptr noundef %4110, i32 noundef %4112) #11
  br label %4114

4114:                                             ; preds = %4097, %4080
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %4115

4115:                                             ; preds = %4114
  br label %4116

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

4117:                                             ; No predecessors!
  br label %4118

4118:                                             ; preds = %4117
  br label %4119

4119:                                             ; preds = %4118, %4061
  br label %4120

4120:                                             ; preds = %4119
  br label %4121

4121:                                             ; preds = %4120
  br label %4122

4122:                                             ; preds = %4121
  %4123 = load i32, ptr @test_count, align 4, !tbaa !5
  %4124 = add nsw i32 %4123, 1
  store i32 %4124, ptr @test_count, align 4, !tbaa !5
  %4125 = getelementptr inbounds [4 x i8], ptr %110, i64 0, i64 0
  %4126 = call i32 @s2n_stuffer_write_bytes(ptr noundef %111, ptr noundef %4125, i32 noundef 4)
  %4127 = icmp eq i32 %4126, -1
  br i1 %4127, label %4128, label %4181

4128:                                             ; preds = %4122
  br label %4129

4129:                                             ; preds = %4128
  br label %4130

4130:                                             ; preds = %4129
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #11
  %4131 = call ptr @__errno_location() #12
  %4132 = load i32, ptr %4131, align 4, !tbaa !5
  store i32 %4132, ptr %113, align 4, !tbaa !5
  %4133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4134 = call i32 @s2n_print_stacktrace(ptr noundef %4133)
  %4135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4136 = trunc i8 %4135 to i1
  br i1 %4136, label %4137, label %4159

4137:                                             ; preds = %4130
  %4138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4139 = call i32 @fileno(ptr noundef %4138) #11
  %4140 = call i32 @isatty(i32 noundef %4139) #11
  %4141 = icmp ne i32 %4140, 0
  br i1 %4141, label %4142, label %4159

4142:                                             ; preds = %4137
  %4143 = load i32, ptr %113, align 4, !tbaa !5
  %4144 = call ptr @__errno_location() #12
  store i32 %4143, ptr %4144, align 4, !tbaa !5
  %4145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4146 = load i32, ptr @test_count, align 4, !tbaa !5
  %4147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4148 = load i32, ptr %4147, align 4, !tbaa !5
  %4149 = call ptr @s2n_strerror(i32 noundef %4148, ptr noundef @.str.4)
  %4150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4151 = load i32, ptr %4150, align 4, !tbaa !5
  %4152 = call ptr @s2n_strerror_debug(i32 noundef %4151, ptr noundef @.str.4)
  %4153 = call ptr @__errno_location() #12
  %4154 = load i32, ptr %4153, align 4, !tbaa !5
  %4155 = call ptr @strerror(i32 noundef %4154) #11
  %4156 = call ptr @__errno_location() #12
  %4157 = load i32, ptr %4156, align 4, !tbaa !5
  %4158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4145, ptr noundef @.str.2, i32 noundef %4146, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 192, ptr noundef %4149, ptr noundef %4152, ptr noundef %4155, i32 noundef %4157) #11
  br label %4176

4159:                                             ; preds = %4137, %4130
  %4160 = load i32, ptr %113, align 4, !tbaa !5
  %4161 = call ptr @__errno_location() #12
  store i32 %4160, ptr %4161, align 4, !tbaa !5
  %4162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4163 = load i32, ptr @test_count, align 4, !tbaa !5
  %4164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4165 = load i32, ptr %4164, align 4, !tbaa !5
  %4166 = call ptr @s2n_strerror(i32 noundef %4165, ptr noundef @.str.4)
  %4167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4168 = load i32, ptr %4167, align 4, !tbaa !5
  %4169 = call ptr @s2n_strerror_debug(i32 noundef %4168, ptr noundef @.str.4)
  %4170 = call ptr @__errno_location() #12
  %4171 = load i32, ptr %4170, align 4, !tbaa !5
  %4172 = call ptr @strerror(i32 noundef %4171) #11
  %4173 = call ptr @__errno_location() #12
  %4174 = load i32, ptr %4173, align 4, !tbaa !5
  %4175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4162, ptr noundef @.str.5, i32 noundef %4163, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 192, ptr noundef %4166, ptr noundef %4169, ptr noundef %4172, i32 noundef %4174) #11
  br label %4176

4176:                                             ; preds = %4159, %4142
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %4177

4177:                                             ; preds = %4176
  br label %4178

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

4179:                                             ; No predecessors!
  br label %4180

4180:                                             ; preds = %4179
  br label %4181

4181:                                             ; preds = %4180, %4122
  br label %4182

4182:                                             ; preds = %4181
  br label %4183

4183:                                             ; preds = %4182
  br label %4184

4184:                                             ; preds = %4183
  br label %4185

4185:                                             ; preds = %4184
  br label %4186

4186:                                             ; preds = %4185
  %4187 = load i32, ptr @test_count, align 4, !tbaa !5
  %4188 = add nsw i32 %4187, 1
  store i32 %4188, ptr @test_count, align 4, !tbaa !5
  %4189 = load ptr, ptr %108, align 8, !tbaa !9
  %4190 = call i32 @s2n_read_npn_protocol(ptr noundef %4189, ptr noundef %111)
  %4191 = getelementptr inbounds %struct.s2n_result, ptr %114, i32 0, i32 0
  store i32 %4190, ptr %4191, align 4
  %4192 = getelementptr inbounds %struct.s2n_result, ptr %114, i32 0, i32 0
  %4193 = load i32, ptr %4192, align 4
  %4194 = call zeroext i1 @s2n_result_is_error(i32 %4193)
  br i1 %4194, label %4248, label %4195

4195:                                             ; preds = %4186
  br label %4196

4196:                                             ; preds = %4195
  br label %4197

4197:                                             ; preds = %4196
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #11
  %4198 = call ptr @__errno_location() #12
  %4199 = load i32, ptr %4198, align 4, !tbaa !5
  store i32 %4199, ptr %115, align 4, !tbaa !5
  %4200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4201 = call i32 @s2n_print_stacktrace(ptr noundef %4200)
  %4202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4203 = trunc i8 %4202 to i1
  br i1 %4203, label %4204, label %4226

4204:                                             ; preds = %4197
  %4205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4206 = call i32 @fileno(ptr noundef %4205) #11
  %4207 = call i32 @isatty(i32 noundef %4206) #11
  %4208 = icmp ne i32 %4207, 0
  br i1 %4208, label %4209, label %4226

4209:                                             ; preds = %4204
  %4210 = load i32, ptr %115, align 4, !tbaa !5
  %4211 = call ptr @__errno_location() #12
  store i32 %4210, ptr %4211, align 4, !tbaa !5
  %4212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4213 = load i32, ptr @test_count, align 4, !tbaa !5
  %4214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4215 = load i32, ptr %4214, align 4, !tbaa !5
  %4216 = call ptr @s2n_strerror(i32 noundef %4215, ptr noundef @.str.4)
  %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_debug(i32 noundef %4218, ptr noundef @.str.4)
  %4220 = call ptr @__errno_location() #12
  %4221 = load i32, ptr %4220, align 4, !tbaa !5
  %4222 = call ptr @strerror(i32 noundef %4221) #11
  %4223 = call ptr @__errno_location() #12
  %4224 = load i32, ptr %4223, align 4, !tbaa !5
  %4225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4212, ptr noundef @.str.2, i32 noundef %4213, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4216, ptr noundef %4219, ptr noundef %4222, i32 noundef %4224) #11
  br label %4243

4226:                                             ; preds = %4204, %4197
  %4227 = load i32, ptr %115, align 4, !tbaa !5
  %4228 = call ptr @__errno_location() #12
  store i32 %4227, ptr %4228, align 4, !tbaa !5
  %4229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4230 = load i32, ptr @test_count, align 4, !tbaa !5
  %4231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4232 = load i32, ptr %4231, align 4, !tbaa !5
  %4233 = call ptr @s2n_strerror(i32 noundef %4232, ptr noundef @.str.4)
  %4234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4235 = load i32, ptr %4234, align 4, !tbaa !5
  %4236 = call ptr @s2n_strerror_debug(i32 noundef %4235, ptr noundef @.str.4)
  %4237 = call ptr @__errno_location() #12
  %4238 = load i32, ptr %4237, align 4, !tbaa !5
  %4239 = call ptr @strerror(i32 noundef %4238) #11
  %4240 = call ptr @__errno_location() #12
  %4241 = load i32, ptr %4240, align 4, !tbaa !5
  %4242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4229, ptr noundef @.str.5, i32 noundef %4230, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4233, ptr noundef %4236, ptr noundef %4239, i32 noundef %4241) #11
  br label %4243

4243:                                             ; preds = %4226, %4209
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %4244

4244:                                             ; preds = %4243
  br label %4245

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

4246:                                             ; No predecessors!
  br label %4247

4247:                                             ; preds = %4246
  br label %4248

4248:                                             ; preds = %4247, %4186
  br label %4249

4249:                                             ; preds = %4248
  br label %4250

4250:                                             ; preds = %4249
  br label %4251

4251:                                             ; preds = %4250
  %4252 = load i32, ptr @test_count, align 4, !tbaa !5
  %4253 = add nsw i32 %4252, 1
  store i32 %4253, ptr @test_count, align 4, !tbaa !5
  %4254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4255 = load i32, ptr %4254, align 4, !tbaa !5
  %4256 = icmp eq i32 %4255, 402653194
  br i1 %4256, label %4310, label %4257

4257:                                             ; preds = %4251
  br label %4258

4258:                                             ; preds = %4257
  br label %4259

4259:                                             ; preds = %4258
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #11
  %4260 = call ptr @__errno_location() #12
  %4261 = load i32, ptr %4260, align 4, !tbaa !5
  store i32 %4261, ptr %116, align 4, !tbaa !5
  %4262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4263 = call i32 @s2n_print_stacktrace(ptr noundef %4262)
  %4264 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4265 = trunc i8 %4264 to i1
  br i1 %4265, label %4266, label %4288

4266:                                             ; preds = %4259
  %4267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4268 = call i32 @fileno(ptr noundef %4267) #11
  %4269 = call i32 @isatty(i32 noundef %4268) #11
  %4270 = icmp ne i32 %4269, 0
  br i1 %4270, label %4271, label %4288

4271:                                             ; preds = %4266
  %4272 = load i32, ptr %116, align 4, !tbaa !5
  %4273 = call ptr @__errno_location() #12
  store i32 %4272, ptr %4273, align 4, !tbaa !5
  %4274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4275 = load i32, ptr @test_count, align 4, !tbaa !5
  %4276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4277 = load i32, ptr %4276, align 4, !tbaa !5
  %4278 = call ptr @s2n_strerror(i32 noundef %4277, ptr noundef @.str.4)
  %4279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4280 = load i32, ptr %4279, align 4, !tbaa !5
  %4281 = call ptr @s2n_strerror_debug(i32 noundef %4280, ptr noundef @.str.4)
  %4282 = call ptr @__errno_location() #12
  %4283 = load i32, ptr %4282, align 4, !tbaa !5
  %4284 = call ptr @strerror(i32 noundef %4283) #11
  %4285 = call ptr @__errno_location() #12
  %4286 = load i32, ptr %4285, align 4, !tbaa !5
  %4287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4274, ptr noundef @.str.2, i32 noundef %4275, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4278, ptr noundef %4281, ptr noundef %4284, i32 noundef %4286) #11
  br label %4305

4288:                                             ; preds = %4266, %4259
  %4289 = load i32, ptr %116, align 4, !tbaa !5
  %4290 = call ptr @__errno_location() #12
  store i32 %4289, ptr %4290, align 4, !tbaa !5
  %4291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4292 = load i32, ptr @test_count, align 4, !tbaa !5
  %4293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4294 = load i32, ptr %4293, align 4, !tbaa !5
  %4295 = call ptr @s2n_strerror(i32 noundef %4294, ptr noundef @.str.4)
  %4296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4297 = load i32, ptr %4296, align 4, !tbaa !5
  %4298 = call ptr @s2n_strerror_debug(i32 noundef %4297, ptr noundef @.str.4)
  %4299 = call ptr @__errno_location() #12
  %4300 = load i32, ptr %4299, align 4, !tbaa !5
  %4301 = call ptr @strerror(i32 noundef %4300) #11
  %4302 = call ptr @__errno_location() #12
  %4303 = load i32, ptr %4302, align 4, !tbaa !5
  %4304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4291, ptr noundef @.str.5, i32 noundef %4292, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4295, ptr noundef %4298, ptr noundef %4301, i32 noundef %4303) #11
  br label %4305

4305:                                             ; preds = %4288, %4271
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %4306

4306:                                             ; preds = %4305
  br label %4307

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

4308:                                             ; No predecessors!
  br label %4309

4309:                                             ; preds = %4308
  br label %4310

4310:                                             ; preds = %4309, %4251
  br label %4311

4311:                                             ; preds = %4310
  br label %4312

4312:                                             ; preds = %4311
  br label %4313

4313:                                             ; preds = %4312
  %4314 = load i32, ptr @test_count, align 4, !tbaa !5
  %4315 = add nsw i32 %4314, 1
  store i32 %4315, ptr @test_count, align 4, !tbaa !5
  %4316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4317 = load i32, ptr %4316, align 4, !tbaa !5
  %4318 = call ptr @s2n_strerror_debug(i32 noundef %4317, ptr noundef @.str.4)
  %4319 = icmp eq ptr %4318, null
  br i1 %4319, label %4320, label %4373

4320:                                             ; preds = %4313
  br label %4321

4321:                                             ; preds = %4320
  br label %4322

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

4329:                                             ; preds = %4322
  %4330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4331 = call i32 @fileno(ptr noundef %4330) #11
  %4332 = call i32 @isatty(i32 noundef %4331) #11
  %4333 = icmp ne i32 %4332, 0
  br i1 %4333, label %4334, label %4351

4334:                                             ; preds = %4329
  %4335 = load i32, ptr %117, align 4, !tbaa !5
  %4336 = call ptr @__errno_location() #12
  store i32 %4335, ptr %4336, align 4, !tbaa !5
  %4337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4338 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4340, ptr noundef @.str.4)
  %4342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4343 = load i32, ptr %4342, align 4, !tbaa !5
  %4344 = call ptr @s2n_strerror_debug(i32 noundef %4343, ptr noundef @.str.4)
  %4345 = call ptr @__errno_location() #12
  %4346 = load i32, ptr %4345, align 4, !tbaa !5
  %4347 = call ptr @strerror(i32 noundef %4346) #11
  %4348 = call ptr @__errno_location() #12
  %4349 = load i32, ptr %4348, align 4, !tbaa !5
  %4350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4337, ptr noundef @.str.2, i32 noundef %4338, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4341, ptr noundef %4344, ptr noundef %4347, i32 noundef %4349) #11
  br label %4368

4351:                                             ; preds = %4329, %4322
  %4352 = load i32, ptr %117, align 4, !tbaa !5
  %4353 = call ptr @__errno_location() #12
  store i32 %4352, ptr %4353, align 4, !tbaa !5
  %4354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4355 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4357, ptr noundef @.str.4)
  %4359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4360 = load i32, ptr %4359, align 4, !tbaa !5
  %4361 = call ptr @s2n_strerror_debug(i32 noundef %4360, ptr noundef @.str.4)
  %4362 = call ptr @__errno_location() #12
  %4363 = load i32, ptr %4362, align 4, !tbaa !5
  %4364 = call ptr @strerror(i32 noundef %4363) #11
  %4365 = call ptr @__errno_location() #12
  %4366 = load i32, ptr %4365, align 4, !tbaa !5
  %4367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4354, ptr noundef @.str.5, i32 noundef %4355, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4358, ptr noundef %4361, ptr noundef %4364, i32 noundef %4366) #11
  br label %4368

4368:                                             ; preds = %4351, %4334
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %4369

4369:                                             ; preds = %4368
  br label %4370

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

4371:                                             ; No predecessors!
  br label %4372

4372:                                             ; preds = %4371
  br label %4373

4373:                                             ; preds = %4372, %4313
  br label %4374

4374:                                             ; preds = %4373
  br label %4375

4375:                                             ; preds = %4374
  br label %4376

4376:                                             ; preds = %4375
  br label %4377

4377:                                             ; preds = %4376
  br label %4378

4378:                                             ; preds = %4377
  %4379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4379, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4380 = call ptr @__errno_location() #12
  store i32 0, ptr %4380, align 4, !tbaa !5
  br label %4381

4381:                                             ; preds = %4378
  br label %4382

4382:                                             ; preds = %4381
  br label %4383

4383:                                             ; preds = %4382
  br label %4384

4384:                                             ; preds = %4383
  %4385 = call i32 @s2n_stuffer_free(ptr noundef %111)
  call void @llvm.lifetime.end.p0(i64 40, ptr %111) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  %4386 = call i32 @s2n_connection_ptr_free(ptr noundef %108)
  %4387 = getelementptr inbounds %struct.s2n_result, ptr %118, i32 0, i32 0
  store i32 %4386, ptr %4387, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #11
  call void @llvm.lifetime.start.p0(i64 12, ptr %119) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %119, ptr align 1 @__const.main.test_cases, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #11
  store i64 0, ptr %120, align 8, !tbaa !47
  br label %4388

4388:                                             ; preds = %4528, %4384
  %4389 = load i64, ptr %120, align 8, !tbaa !47
  %4390 = icmp ult i64 %4389, 6
  br i1 %4390, label %4392, label %4391

4391:                                             ; preds = %4388
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #11
  br label %4531

4392:                                             ; preds = %4388
  call void @llvm.lifetime.start.p0(i64 1, ptr %121) #11
  store i8 0, ptr %121, align 1, !tbaa !42
  br label %4393

4393:                                             ; preds = %4392
  %4394 = load i32, ptr @test_count, align 4, !tbaa !5
  %4395 = add nsw i32 %4394, 1
  store i32 %4395, ptr @test_count, align 4, !tbaa !5
  %4396 = load i64, ptr %120, align 8, !tbaa !47
  %4397 = getelementptr inbounds [6 x %struct.anon], ptr %119, i64 0, i64 %4396
  %4398 = getelementptr inbounds %struct.anon, ptr %4397, i32 0, i32 0
  %4399 = load i8, ptr %4398, align 1, !tbaa !51
  %4400 = call i32 @s2n_calculate_padding(i8 noundef zeroext %4399, ptr noundef %121)
  %4401 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  store i32 %4400, ptr %4401, align 4
  %4402 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  %4403 = load i32, ptr %4402, align 4
  %4404 = call zeroext i1 @s2n_result_is_ok(i32 %4403)
  br i1 %4404, label %4458, label %4405

4405:                                             ; preds = %4393
  br label %4406

4406:                                             ; preds = %4405
  br label %4407

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

4414:                                             ; preds = %4407
  %4415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4416 = call i32 @fileno(ptr noundef %4415) #11
  %4417 = call i32 @isatty(i32 noundef %4416) #11
  %4418 = icmp ne i32 %4417, 0
  br i1 %4418, label %4419, label %4436

4419:                                             ; preds = %4414
  %4420 = load i32, ptr %123, align 4, !tbaa !5
  %4421 = call ptr @__errno_location() #12
  store i32 %4420, ptr %4421, align 4, !tbaa !5
  %4422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4423 = load i32, ptr @test_count, align 4, !tbaa !5
  %4424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4425 = load i32, ptr %4424, align 4, !tbaa !5
  %4426 = call ptr @s2n_strerror(i32 noundef %4425, ptr noundef @.str.4)
  %4427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4428 = load i32, ptr %4427, align 4, !tbaa !5
  %4429 = call ptr @s2n_strerror_debug(i32 noundef %4428, ptr noundef @.str.4)
  %4430 = call ptr @__errno_location() #12
  %4431 = load i32, ptr %4430, align 4, !tbaa !5
  %4432 = call ptr @strerror(i32 noundef %4431) #11
  %4433 = call ptr @__errno_location() #12
  %4434 = load i32, ptr %4433, align 4, !tbaa !5
  %4435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4422, ptr noundef @.str.2, i32 noundef %4423, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 216, ptr noundef %4426, ptr noundef %4429, ptr noundef %4432, i32 noundef %4434) #11
  br label %4453

4436:                                             ; preds = %4414, %4407
  %4437 = load i32, ptr %123, align 4, !tbaa !5
  %4438 = call ptr @__errno_location() #12
  store i32 %4437, ptr %4438, align 4, !tbaa !5
  %4439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4440 = load i32, ptr @test_count, align 4, !tbaa !5
  %4441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4442 = load i32, ptr %4441, align 4, !tbaa !5
  %4443 = call ptr @s2n_strerror(i32 noundef %4442, ptr noundef @.str.4)
  %4444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4445 = load i32, ptr %4444, align 4, !tbaa !5
  %4446 = call ptr @s2n_strerror_debug(i32 noundef %4445, ptr noundef @.str.4)
  %4447 = call ptr @__errno_location() #12
  %4448 = load i32, ptr %4447, align 4, !tbaa !5
  %4449 = call ptr @strerror(i32 noundef %4448) #11
  %4450 = call ptr @__errno_location() #12
  %4451 = load i32, ptr %4450, align 4, !tbaa !5
  %4452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4439, ptr noundef @.str.5, i32 noundef %4440, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 216, ptr noundef %4443, ptr noundef %4446, ptr noundef %4449, i32 noundef %4451) #11
  br label %4453

4453:                                             ; preds = %4436, %4419
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  br label %4454

4454:                                             ; preds = %4453
  br label %4455

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

4456:                                             ; No predecessors!
  br label %4457

4457:                                             ; preds = %4456
  br label %4458

4458:                                             ; preds = %4457, %4393
  br label %4459

4459:                                             ; preds = %4458
  br label %4460

4460:                                             ; preds = %4459
  br label %4461

4461:                                             ; preds = %4460
  %4462 = load i32, ptr @test_count, align 4, !tbaa !5
  %4463 = add nsw i32 %4462, 1
  store i32 %4463, ptr @test_count, align 4, !tbaa !5
  %4464 = load i8, ptr %121, align 1, !tbaa !42
  %4465 = zext i8 %4464 to i32
  %4466 = load i64, ptr %120, align 8, !tbaa !47
  %4467 = getelementptr inbounds [6 x %struct.anon], ptr %119, i64 0, i64 %4466
  %4468 = getelementptr inbounds %struct.anon, ptr %4467, i32 0, i32 1
  %4469 = load i8, ptr %4468, align 1, !tbaa !53
  %4470 = zext i8 %4469 to i32
  %4471 = icmp eq i32 %4465, %4470
  br i1 %4471, label %4525, label %4472

4472:                                             ; preds = %4461
  br label %4473

4473:                                             ; preds = %4472
  br label %4474

4474:                                             ; preds = %4473
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #11
  %4475 = call ptr @__errno_location() #12
  %4476 = load i32, ptr %4475, align 4, !tbaa !5
  store i32 %4476, ptr %124, align 4, !tbaa !5
  %4477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4478 = call i32 @s2n_print_stacktrace(ptr noundef %4477)
  %4479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4480 = trunc i8 %4479 to i1
  br i1 %4480, label %4481, label %4503

4481:                                             ; preds = %4474
  %4482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4483 = call i32 @fileno(ptr noundef %4482) #11
  %4484 = call i32 @isatty(i32 noundef %4483) #11
  %4485 = icmp ne i32 %4484, 0
  br i1 %4485, label %4486, label %4503

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

4503:                                             ; preds = %4481, %4474
  %4504 = load i32, ptr %124, align 4, !tbaa !5
  %4505 = call ptr @__errno_location() #12
  store i32 %4504, ptr %4505, align 4, !tbaa !5
  %4506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4507 = load i32, ptr @test_count, align 4, !tbaa !5
  %4508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4509 = load i32, ptr %4508, align 4, !tbaa !5
  %4510 = call ptr @s2n_strerror(i32 noundef %4509, ptr noundef @.str.4)
  %4511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4512 = load i32, ptr %4511, align 4, !tbaa !5
  %4513 = call ptr @s2n_strerror_debug(i32 noundef %4512, ptr noundef @.str.4)
  %4514 = call ptr @__errno_location() #12
  %4515 = load i32, ptr %4514, align 4, !tbaa !5
  %4516 = call ptr @strerror(i32 noundef %4515) #11
  %4517 = call ptr @__errno_location() #12
  %4518 = load i32, ptr %4517, align 4, !tbaa !5
  %4519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4506, ptr noundef @.str.5, i32 noundef %4507, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4510, ptr noundef %4513, ptr noundef %4516, i32 noundef %4518) #11
  br label %4520

4520:                                             ; preds = %4503, %4486
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #11
  br label %4521

4521:                                             ; preds = %4520
  br label %4522

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

4523:                                             ; No predecessors!
  br label %4524

4524:                                             ; preds = %4523
  br label %4525

4525:                                             ; preds = %4524, %4461
  br label %4526

4526:                                             ; preds = %4525
  br label %4527

4527:                                             ; preds = %4526
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #11
  br label %4528

4528:                                             ; preds = %4527
  %4529 = load i64, ptr %120, align 8, !tbaa !47
  %4530 = add i64 %4529, 1
  store i64 %4530, ptr %120, align 8, !tbaa !47
  br label %4388, !llvm.loop !54

4531:                                             ; preds = %4391
  call void @llvm.lifetime.end.p0(i64 12, ptr %119) #11
  br label %4532

4532:                                             ; preds = %4531
  br label %4533

4533:                                             ; preds = %4532
  %4534 = call i32 @s2n_cleanup()
  %4535 = icmp eq i32 %4534, -1
  br i1 %4535, label %4536, label %4589

4536:                                             ; preds = %4533
  br label %4537

4537:                                             ; preds = %4536
  br label %4538

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

4545:                                             ; preds = %4538
  %4546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4547 = call i32 @fileno(ptr noundef %4546) #11
  %4548 = call i32 @isatty(i32 noundef %4547) #11
  %4549 = icmp ne i32 %4548, 0
  br i1 %4549, label %4550, label %4567

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

4567:                                             ; preds = %4545, %4538
  %4568 = load i32, ptr %125, align 4, !tbaa !5
  %4569 = call ptr @__errno_location() #12
  store i32 %4568, ptr %4569, align 4, !tbaa !5
  %4570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4571 = load i32, ptr @test_count, align 4, !tbaa !5
  %4572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4573 = load i32, ptr %4572, align 4, !tbaa !5
  %4574 = call ptr @s2n_strerror(i32 noundef %4573, ptr noundef @.str.4)
  %4575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4576 = load i32, ptr %4575, align 4, !tbaa !5
  %4577 = call ptr @s2n_strerror_debug(i32 noundef %4576, ptr noundef @.str.4)
  %4578 = call ptr @__errno_location() #12
  %4579 = load i32, ptr %4578, align 4, !tbaa !5
  %4580 = call ptr @strerror(i32 noundef %4579) #11
  %4581 = call ptr @__errno_location() #12
  %4582 = load i32, ptr %4581, align 4, !tbaa !5
  %4583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4570, ptr noundef @.str.5, i32 noundef %4571, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4574, ptr noundef %4577, ptr noundef %4580, i32 noundef %4582) #11
  br label %4584

4584:                                             ; preds = %4567, %4550
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #11
  br label %4585

4585:                                             ; preds = %4584
  br label %4586

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

4587:                                             ; No predecessors!
  br label %4588

4588:                                             ; preds = %4587
  br label %4589

4589:                                             ; preds = %4588, %4533
  br label %4590

4590:                                             ; preds = %4589
  br label %4591

4591:                                             ; preds = %4590
  br label %4592

4592:                                             ; preds = %4591
  br label %4593

4593:                                             ; preds = %4592
  %4594 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %4595 = icmp eq i32 %4594, -1
  br i1 %4595, label %4596, label %4649

4596:                                             ; preds = %4593
  br label %4597

4597:                                             ; preds = %4596
  br label %4598

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

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

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

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

4644:                                             ; preds = %4627, %4610
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %4645

4645:                                             ; preds = %4644
  br label %4646

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

4647:                                             ; No predecessors!
  br label %4648

4648:                                             ; preds = %4647
  br label %4649

4649:                                             ; preds = %4648, %4593
  br label %4650

4650:                                             ; preds = %4649
  br label %4651

4651:                                             ; preds = %4650
  %4652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4653 = trunc i8 %4652 to i1
  br i1 %4653, label %4654, label %4670

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

4659:                                             ; preds = %4654
  %4660 = load i32, ptr @test_count, align 4, !tbaa !5
  %4661 = icmp ne i32 %4660, 0
  br i1 %4661, label %4662, label %4666

4662:                                             ; preds = %4659
  %4663 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4664 = load i32, ptr @test_count, align 4, !tbaa !5
  %4665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4663, ptr noundef @.str.52, i32 noundef %4664) #11
  br label %4669

4666:                                             ; preds = %4659
  %4667 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4667, ptr noundef @.str.53) #11
  br label %4669

4669:                                             ; preds = %4666, %4662
  br label %4681

4670:                                             ; preds = %4654, %4651
  %4671 = load i32, ptr @test_count, align 4, !tbaa !5
  %4672 = icmp ne i32 %4671, 0
  br i1 %4672, label %4673, label %4677

4673:                                             ; preds = %4670
  %4674 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4675 = load i32, ptr @test_count, align 4, !tbaa !5
  %4676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4674, ptr noundef @.str.54, i32 noundef %4675) #11
  br label %4680

4677:                                             ; preds = %4670
  %4678 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4678, ptr noundef @.str.55) #11
  br label %4680

4680:                                             ; preds = %4677, %4673
  br label %4681

4681:                                             ; preds = %4680, %4669
  store i32 0, ptr %3, align 4
  store i32 1, ptr %127, align 4
  br label %4686

4682:                                             ; No predecessors!
  br label %4683

4683:                                             ; preds = %4682
  br label %4684

4684:                                             ; preds = %4683
  br label %4685

4685:                                             ; preds = %4684
  store i32 0, ptr %127, align 4
  br label %4686

4686:                                             ; preds = %4685, %4681
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #11
  %4687 = load i32, ptr %127, align 4
  switch i32 %4687, label %4690 [
    i32 0, label %4688
    i32 1, label %4688
  ]

4688:                                             ; preds = %4686, %4686
  %4689 = load i32, ptr %3, align 4
  ret i32 %4689

4690:                                             ; preds = %4686
  unreachable
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #1

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #4

declare i32 @s2n_print_stacktrace(ptr noundef) #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #1

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) #2

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #1

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #6

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

declare i32 @s2n_next_protocol_send(ptr noundef) #2

declare void @s2n_debug_info_reset() #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

declare i32 @s2n_next_protocol_recv(ptr noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #8

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #7

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #8

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9

declare i32 @s2n_stuffer_free(ptr noundef) #2

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #10

declare i32 @s2n_write_npn_protocol(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_read_uint8(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_read_bytes(ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @s2n_read_npn_protocol(ptr noundef, ptr noundef) #2

declare ptr @s2n_get_application_protocol(ptr noundef) #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) #2

declare i32 @s2n_calculate_padding(i8 noundef zeroext, ptr noundef) #2

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) #10

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 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { 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 = { noreturn nounwind }
attributes #14 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 220}
!16 = !{!"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, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, 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}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, 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, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, 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}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!7, !7, i64 0}
!43 = !{!32, !6, i64 28}
!44 = !{!32, !6, i64 24}
!45 = !{!16, !6, i64 2044}
!46 = !{!16, !6, i64 2040}
!47 = !{!18, !18, i64 0}
!48 = distinct !{!48, !49}
!49 = !{!"llvm.loop.mustprogress"}
!50 = distinct !{!50, !49}
!51 = !{!52, !7, i64 0}
!52 = !{!"", !7, i64 0, !7, i64 1}
!53 = !{!52, !7, i64 1}
!54 = distinct !{!54, !49}


; 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.anon = type { i8, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [81 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
@__const.main.protocols = external hidden unnamed_addr constant [3 x ptr], align 16
@.str.11 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [46 x i8], align 1
@__const.main.protocol = external hidden unnamed_addr constant [9 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [73 x i8], align 1
@__const.main.wire_bytes = external hidden unnamed_addr constant [1 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [43 x i8], align 1
@__const.main.wire_bytes.46 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [45 x i8], align 1
@__const.main.test_cases = external hidden unnamed_addr constant [6 x %struct.anon], align 1
@.str.48 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.55 = 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 ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %struct.s2n_stuffer, align 8
  %8 = alloca i8, align 1
  %9 = alloca [255 x i8], align 16
  %10 = alloca i8, align 1
  %11 = alloca i8, align 1
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca %struct.s2n_stuffer, align 8
  %15 = alloca ptr, align 8
  %16 = alloca %struct.s2n_stuffer, align 8
  %17 = alloca i8, align 1
  %18 = alloca ptr, align 8
  %19 = alloca [1 x i8], align 1
  %20 = alloca %struct.s2n_stuffer, align 8
  %21 = alloca ptr, align 8
  %22 = alloca [4 x i8], align 4
  %23 = alloca %struct.s2n_stuffer, align 8
  %24 = alloca i8, align 1
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %25 = load ptr, ptr @stdout, align 8, !tbaa !9
  %26 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %25, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #13
  %27 = load ptr, ptr @stdout, align 8, !tbaa !9
  %28 = tail call i32 @fflush(ptr noundef %27)
  %29 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #13
  %30 = icmp eq i32 %29, -1
  br i1 %30, label %31, label %55

31:                                               ; preds = %2
  %32 = tail call ptr @__errno_location() #14
  %33 = load i32, ptr %32, align 4, !tbaa !5
  %34 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35 = tail call i32 @s2n_print_stacktrace(ptr noundef %34) #13
  %36 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %37 = trunc nuw i8 %36 to i1
  br i1 %37, label %38, label %42

38:                                               ; preds = %31
  %39 = load ptr, ptr @stderr, align 8, !tbaa !9
  %40 = tail call i32 @fileno(ptr noundef %39) #13
  %41 = tail call i32 @isatty(i32 noundef %40) #13
  %.not264 = icmp eq i32 %41, 0
  br i1 %.not264, label %42, label %43

42:                                               ; preds = %38, %31
  br label %43

43:                                               ; preds = %38, %42
  %.str.5.sink = phi ptr [ @.str.5, %42 ], [ @.str.2, %38 ]
  store i32 %33, ptr %32, align 4, !tbaa !5
  %44 = load ptr, ptr @stderr, align 8, !tbaa !9
  %45 = load i32, ptr @test_count, align 4, !tbaa !5
  %46 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %47 = load i32, ptr %46, align 4, !tbaa !5
  %48 = tail call ptr @s2n_strerror(i32 noundef %47, ptr noundef nonnull @.str.4) #13
  %49 = load i32, ptr %46, align 4, !tbaa !5
  %50 = tail call ptr @s2n_strerror_debug(i32 noundef %49, ptr noundef nonnull @.str.4) #13
  %51 = load i32, ptr %32, align 4, !tbaa !5
  %52 = tail call ptr @strerror(i32 noundef %51) #13
  %53 = load i32, ptr %32, align 4, !tbaa !5
  %54 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %44, ptr noundef nonnull %.str.5.sink, i32 noundef %45, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 28, ptr noundef %48, ptr noundef %50, ptr noundef %52, i32 noundef %53) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

55:                                               ; preds = %2
  %56 = load i32, ptr @test_count, align 4, !tbaa !5
  %57 = add nsw i32 %56, 1
  store i32 %57, ptr @test_count, align 4, !tbaa !5
  %58 = tail call i32 @s2n_enable_atexit() #13
  %59 = icmp eq i32 %58, -1
  br i1 %59, label %60, label %84

60:                                               ; preds = %55
  %61 = tail call ptr @__errno_location() #14
  %62 = load i32, ptr %61, align 4, !tbaa !5
  %63 = load ptr, ptr @stderr, align 8, !tbaa !9
  %64 = tail call i32 @s2n_print_stacktrace(ptr noundef %63) #13
  %65 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %66 = trunc nuw i8 %65 to i1
  br i1 %66, label %67, label %71

67:                                               ; preds = %60
  %68 = load ptr, ptr @stderr, align 8, !tbaa !9
  %69 = tail call i32 @fileno(ptr noundef %68) #13
  %70 = tail call i32 @isatty(i32 noundef %69) #13
  %.not263 = icmp eq i32 %70, 0
  br i1 %.not263, label %71, label %72

71:                                               ; preds = %67, %60
  br label %72

72:                                               ; preds = %67, %71
  %.str.5.sink284 = phi ptr [ @.str.5, %71 ], [ @.str.2, %67 ]
  store i32 %62, ptr %61, align 4, !tbaa !5
  %73 = load ptr, ptr @stderr, align 8, !tbaa !9
  %74 = load i32, ptr @test_count, align 4, !tbaa !5
  %75 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %76 = load i32, ptr %75, align 4, !tbaa !5
  %77 = tail call ptr @s2n_strerror(i32 noundef %76, ptr noundef nonnull @.str.4) #13
  %78 = load i32, ptr %75, align 4, !tbaa !5
  %79 = tail call ptr @s2n_strerror_debug(i32 noundef %78, ptr noundef nonnull @.str.4) #13
  %80 = load i32, ptr %61, align 4, !tbaa !5
  %81 = tail call ptr @strerror(i32 noundef %80) #13
  %82 = load i32, ptr %61, align 4, !tbaa !5
  %83 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %73, ptr noundef nonnull %.str.5.sink284, i32 noundef %74, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 28, ptr noundef %77, ptr noundef %79, ptr noundef %81, i32 noundef %82) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

84:                                               ; preds = %55
  %85 = tail call i32 @s2n_init() #13
  %86 = icmp eq i32 %85, -1
  br i1 %86, label %87, label %111

87:                                               ; preds = %84
  %88 = tail call ptr @__errno_location() #14
  %89 = load i32, ptr %88, align 4, !tbaa !5
  %90 = load ptr, ptr @stderr, align 8, !tbaa !9
  %91 = tail call i32 @s2n_print_stacktrace(ptr noundef %90) #13
  %92 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %93 = trunc nuw i8 %92 to i1
  br i1 %93, label %94, label %98

94:                                               ; preds = %87
  %95 = load ptr, ptr @stderr, align 8, !tbaa !9
  %96 = tail call i32 @fileno(ptr noundef %95) #13
  %97 = tail call i32 @isatty(i32 noundef %96) #13
  %.not262 = icmp eq i32 %97, 0
  br i1 %.not262, label %98, label %99

98:                                               ; preds = %94, %87
  br label %99

99:                                               ; preds = %94, %98
  %.str.5.sink295 = phi ptr [ @.str.5, %98 ], [ @.str.2, %94 ]
  store i32 %89, ptr %88, align 4, !tbaa !5
  %100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %101 = load i32, ptr @test_count, align 4, !tbaa !5
  %102 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %103 = load i32, ptr %102, align 4, !tbaa !5
  %104 = tail call ptr @s2n_strerror(i32 noundef %103, ptr noundef nonnull @.str.4) #13
  %105 = load i32, ptr %102, align 4, !tbaa !5
  %106 = tail call ptr @s2n_strerror_debug(i32 noundef %105, ptr noundef nonnull @.str.4) #13
  %107 = load i32, ptr %88, align 4, !tbaa !5
  %108 = tail call ptr @strerror(i32 noundef %107) #13
  %109 = load i32, ptr %88, align 4, !tbaa !5
  %110 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %100, ptr noundef nonnull %.str.5.sink295, i32 noundef %101, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 28, ptr noundef %104, ptr noundef %106, ptr noundef %108, i32 noundef %109) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

111:                                              ; preds = %84
  %.sroa.0169.0.copyload = load ptr, ptr @__const.main.protocols, align 16
  %112 = load i32, ptr @test_count, align 4, !tbaa !5
  %113 = add nsw i32 %112, 1
  store i32 %113, ptr @test_count, align 4, !tbaa !5
  %114 = tail call i32 @s2n_next_protocol_send(ptr noundef null) #13
  %115 = icmp eq i32 %114, -1
  br i1 %115, label %140, label %116

116:                                              ; preds = %111
  %117 = tail call ptr @__errno_location() #14
  %118 = load i32, ptr %117, align 4, !tbaa !5
  %119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %120 = tail call i32 @s2n_print_stacktrace(ptr noundef %119) #13
  %121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %122 = trunc nuw i8 %121 to i1
  br i1 %122, label %123, label %127

123:                                              ; preds = %116
  %124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %125 = tail call i32 @fileno(ptr noundef %124) #13
  %126 = tail call i32 @isatty(i32 noundef %125) #13
  %.not = icmp eq i32 %126, 0
  br i1 %.not, label %127, label %128

127:                                              ; preds = %123, %116
  br label %128

128:                                              ; preds = %123, %127
  %.str.5.sink306 = phi ptr [ @.str.5, %127 ], [ @.str.2, %123 ]
  store i32 %118, ptr %117, align 4, !tbaa !5
  %129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %130 = load i32, ptr @test_count, align 4, !tbaa !5
  %131 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %132 = load i32, ptr %131, align 4, !tbaa !5
  %133 = tail call ptr @s2n_strerror(i32 noundef %132, ptr noundef nonnull @.str.4) #13
  %134 = load i32, ptr %131, align 4, !tbaa !5
  %135 = tail call ptr @s2n_strerror_debug(i32 noundef %134, ptr noundef nonnull @.str.4) #13
  %136 = load i32, ptr %117, align 4, !tbaa !5
  %137 = tail call ptr @strerror(i32 noundef %136) #13
  %138 = load i32, ptr %117, align 4, !tbaa !5
  %139 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %129, ptr noundef nonnull %.str.5.sink306, i32 noundef %130, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 35, ptr noundef %133, ptr noundef %135, ptr noundef %137, i32 noundef %138) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

140:                                              ; preds = %111
  %141 = load i32, ptr @test_count, align 4, !tbaa !5
  %142 = add nsw i32 %141, 1
  store i32 %142, ptr @test_count, align 4, !tbaa !5
  %143 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %144 = load i32, ptr %143, align 4, !tbaa !5
  %145 = icmp eq i32 %144, 0
  br i1 %145, label %146, label %169

146:                                              ; preds = %140
  %147 = tail call ptr @__errno_location() #14
  %148 = load i32, ptr %147, align 4, !tbaa !5
  %149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %150 = tail call i32 @s2n_print_stacktrace(ptr noundef %149) #13
  %151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %152 = trunc nuw i8 %151 to i1
  br i1 %152, label %153, label %157

153:                                              ; preds = %146
  %154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %155 = tail call i32 @fileno(ptr noundef %154) #13
  %156 = tail call i32 @isatty(i32 noundef %155) #13
  %.not261 = icmp eq i32 %156, 0
  br i1 %.not261, label %157, label %158

157:                                              ; preds = %153, %146
  br label %158

158:                                              ; preds = %153, %157
  %.str.5.sink317 = phi ptr [ @.str.5, %157 ], [ @.str.2, %153 ]
  store i32 %148, ptr %147, align 4, !tbaa !5
  %159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %160 = load i32, ptr @test_count, align 4, !tbaa !5
  %161 = load i32, ptr %143, align 4, !tbaa !5
  %162 = tail call ptr @s2n_strerror(i32 noundef %161, ptr noundef nonnull @.str.4) #13
  %163 = load i32, ptr %143, align 4, !tbaa !5
  %164 = tail call ptr @s2n_strerror_debug(i32 noundef %163, ptr noundef nonnull @.str.4) #13
  %165 = load i32, ptr %147, align 4, !tbaa !5
  %166 = tail call ptr @strerror(i32 noundef %165) #13
  %167 = load i32, ptr %147, align 4, !tbaa !5
  %168 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %159, ptr noundef nonnull %.str.5.sink317, i32 noundef %160, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 35, ptr noundef %162, ptr noundef %164, ptr noundef %166, i32 noundef %167) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

169:                                              ; preds = %140
  %170 = add nsw i32 %141, 2
  store i32 %170, ptr @test_count, align 4, !tbaa !5
  %171 = tail call ptr @s2n_strerror_debug(i32 noundef %144, ptr noundef nonnull @.str.4) #13
  %172 = icmp eq ptr %171, null
  br i1 %172, label %173, label %196

173:                                              ; preds = %169
  %174 = tail call ptr @__errno_location() #14
  %175 = load i32, ptr %174, align 4, !tbaa !5
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = tail call i32 @s2n_print_stacktrace(ptr noundef %176) #13
  %178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %179 = trunc nuw i8 %178 to i1
  br i1 %179, label %180, label %184

180:                                              ; preds = %173
  %181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %182 = tail call i32 @fileno(ptr noundef %181) #13
  %183 = tail call i32 @isatty(i32 noundef %182) #13
  %.not260 = icmp eq i32 %183, 0
  br i1 %.not260, label %184, label %185

184:                                              ; preds = %180, %173
  br label %185

185:                                              ; preds = %180, %184
  %.str.5.sink326 = phi ptr [ @.str.5, %184 ], [ @.str.2, %180 ]
  store i32 %175, ptr %174, align 4, !tbaa !5
  %186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %187 = load i32, ptr @test_count, align 4, !tbaa !5
  %188 = load i32, ptr %143, align 4, !tbaa !5
  %189 = tail call ptr @s2n_strerror(i32 noundef %188, ptr noundef nonnull @.str.4) #13
  %190 = load i32, ptr %143, align 4, !tbaa !5
  %191 = tail call ptr @s2n_strerror_debug(i32 noundef %190, ptr noundef nonnull @.str.4) #13
  %192 = load i32, ptr %174, align 4, !tbaa !5
  %193 = tail call ptr @strerror(i32 noundef %192) #13
  %194 = load i32, ptr %174, align 4, !tbaa !5
  %195 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %186, ptr noundef nonnull %.str.5.sink326, i32 noundef %187, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 35, ptr noundef %189, ptr noundef %191, ptr noundef %193, i32 noundef %194) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

196:                                              ; preds = %169
  store i32 0, ptr %143, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #13
  %197 = tail call ptr @__errno_location() #14
  store i32 0, ptr %197, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #13
  %198 = tail call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %198, ptr %3, align 8, !tbaa !9
  %199 = load i32, ptr @test_count, align 4, !tbaa !5
  %200 = add nsw i32 %199, 1
  store i32 %200, ptr @test_count, align 4, !tbaa !5
  %201 = icmp eq ptr %198, null
  br i1 %201, label %202, label %224

202:                                              ; preds = %196
  %203 = load i32, ptr %197, align 4, !tbaa !5
  %204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %205 = tail call i32 @s2n_print_stacktrace(ptr noundef %204) #13
  %206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %207 = trunc nuw i8 %206 to i1
  br i1 %207, label %208, label %212

208:                                              ; preds = %202
  %209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %210 = tail call i32 @fileno(ptr noundef %209) #13
  %211 = tail call i32 @isatty(i32 noundef %210) #13
  %.not259 = icmp eq i32 %211, 0
  br i1 %.not259, label %212, label %213

212:                                              ; preds = %208, %202
  br label %213

213:                                              ; preds = %208, %212
  %.str.5.sink335 = phi ptr [ @.str.5, %212 ], [ @.str.2, %208 ]
  store i32 %203, ptr %197, align 4, !tbaa !5
  %214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %215 = load i32, ptr @test_count, align 4, !tbaa !5
  %216 = load i32, ptr %143, align 4, !tbaa !5
  %217 = tail call ptr @s2n_strerror(i32 noundef %216, ptr noundef nonnull @.str.4) #13
  %218 = load i32, ptr %143, align 4, !tbaa !5
  %219 = tail call ptr @s2n_strerror_debug(i32 noundef %218, ptr noundef nonnull @.str.4) #13
  %220 = load i32, ptr %197, align 4, !tbaa !5
  %221 = tail call ptr @strerror(i32 noundef %220) #13
  %222 = load i32, ptr %197, align 4, !tbaa !5
  %223 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %214, ptr noundef nonnull %.str.5.sink335, i32 noundef %215, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %217, ptr noundef %219, ptr noundef %221, i32 noundef %222) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

224:                                              ; preds = %196
  %225 = getelementptr inbounds i8, ptr %198, i64 220
  store i8 34, ptr %225, align 4, !tbaa !15
  %226 = add nsw i32 %199, 2
  store i32 %226, ptr @test_count, align 4, !tbaa !5
  %227 = tail call i32 @s2n_next_protocol_send(ptr noundef nonnull %198) #13
  %228 = icmp eq i32 %227, -1
  br i1 %228, label %251, label %229

229:                                              ; preds = %224
  %230 = load i32, ptr %197, align 4, !tbaa !5
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = tail call i32 @s2n_print_stacktrace(ptr noundef %231) #13
  %233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %234 = trunc nuw i8 %233 to i1
  br i1 %234, label %235, label %239

235:                                              ; preds = %229
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = tail call i32 @fileno(ptr noundef %236) #13
  %238 = tail call i32 @isatty(i32 noundef %237) #13
  %.not191 = icmp eq i32 %238, 0
  br i1 %.not191, label %239, label %240

239:                                              ; preds = %235, %229
  br label %240

240:                                              ; preds = %235, %239
  %.str.5.sink344 = phi ptr [ @.str.5, %239 ], [ @.str.2, %235 ]
  store i32 %230, ptr %197, align 4, !tbaa !5
  %241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %242 = load i32, ptr @test_count, align 4, !tbaa !5
  %243 = load i32, ptr %143, align 4, !tbaa !5
  %244 = tail call ptr @s2n_strerror(i32 noundef %243, ptr noundef nonnull @.str.4) #13
  %245 = load i32, ptr %143, align 4, !tbaa !5
  %246 = tail call ptr @s2n_strerror_debug(i32 noundef %245, ptr noundef nonnull @.str.4) #13
  %247 = load i32, ptr %197, align 4, !tbaa !5
  %248 = tail call ptr @strerror(i32 noundef %247) #13
  %249 = load i32, ptr %197, align 4, !tbaa !5
  %250 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %241, ptr noundef nonnull %.str.5.sink344, i32 noundef %242, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %244, ptr noundef %246, ptr noundef %248, i32 noundef %249) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

251:                                              ; preds = %224
  %252 = load i32, ptr @test_count, align 4, !tbaa !5
  %253 = add nsw i32 %252, 1
  store i32 %253, ptr @test_count, align 4, !tbaa !5
  %254 = load i32, ptr %143, align 4, !tbaa !5
  %255 = icmp eq i32 %254, 335544322
  br i1 %255, label %278, label %256

256:                                              ; preds = %251
  %257 = load i32, ptr %197, align 4, !tbaa !5
  %258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %259 = tail call i32 @s2n_print_stacktrace(ptr noundef %258) #13
  %260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %261 = trunc nuw i8 %260 to i1
  br i1 %261, label %262, label %266

262:                                              ; preds = %256
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = tail call i32 @fileno(ptr noundef %263) #13
  %265 = tail call i32 @isatty(i32 noundef %264) #13
  %.not192 = icmp eq i32 %265, 0
  br i1 %.not192, label %266, label %267

266:                                              ; preds = %262, %256
  br label %267

267:                                              ; preds = %262, %266
  %.str.5.sink353 = phi ptr [ @.str.5, %266 ], [ @.str.2, %262 ]
  store i32 %257, ptr %197, align 4, !tbaa !5
  %268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %269 = load i32, ptr @test_count, align 4, !tbaa !5
  %270 = load i32, ptr %143, align 4, !tbaa !5
  %271 = tail call ptr @s2n_strerror(i32 noundef %270, ptr noundef nonnull @.str.4) #13
  %272 = load i32, ptr %143, align 4, !tbaa !5
  %273 = tail call ptr @s2n_strerror_debug(i32 noundef %272, ptr noundef nonnull @.str.4) #13
  %274 = load i32, ptr %197, align 4, !tbaa !5
  %275 = tail call ptr @strerror(i32 noundef %274) #13
  %276 = load i32, ptr %197, align 4, !tbaa !5
  %277 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %268, ptr noundef nonnull %.str.5.sink353, i32 noundef %269, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %271, ptr noundef %273, ptr noundef %275, i32 noundef %276) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

278:                                              ; preds = %251
  %279 = add nsw i32 %252, 2
  store i32 %279, ptr @test_count, align 4, !tbaa !5
  %280 = tail call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #13
  %281 = icmp eq ptr %280, null
  br i1 %281, label %282, label %304

282:                                              ; preds = %278
  %283 = load i32, ptr %197, align 4, !tbaa !5
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = tail call i32 @s2n_print_stacktrace(ptr noundef %284) #13
  %286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %287 = trunc nuw i8 %286 to i1
  br i1 %287, label %288, label %292

288:                                              ; preds = %282
  %289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %290 = tail call i32 @fileno(ptr noundef %289) #13
  %291 = tail call i32 @isatty(i32 noundef %290) #13
  %.not258 = icmp eq i32 %291, 0
  br i1 %.not258, label %292, label %293

292:                                              ; preds = %288, %282
  br label %293

293:                                              ; preds = %288, %292
  %.str.5.sink362 = phi ptr [ @.str.5, %292 ], [ @.str.2, %288 ]
  store i32 %283, ptr %197, align 4, !tbaa !5
  %294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %295 = load i32, ptr @test_count, align 4, !tbaa !5
  %296 = load i32, ptr %143, align 4, !tbaa !5
  %297 = tail call ptr @s2n_strerror(i32 noundef %296, ptr noundef nonnull @.str.4) #13
  %298 = load i32, ptr %143, align 4, !tbaa !5
  %299 = tail call ptr @s2n_strerror_debug(i32 noundef %298, ptr noundef nonnull @.str.4) #13
  %300 = load i32, ptr %197, align 4, !tbaa !5
  %301 = tail call ptr @strerror(i32 noundef %300) #13
  %302 = load i32, ptr %197, align 4, !tbaa !5
  %303 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %294, ptr noundef nonnull %.str.5.sink362, i32 noundef %295, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %297, ptr noundef %299, ptr noundef %301, i32 noundef %302) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

304:                                              ; preds = %278
  store i32 0, ptr %143, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #13
  store i32 0, ptr %197, align 4, !tbaa !5
  store i8 33, ptr %225, align 4, !tbaa !15
  %305 = load i32, ptr @test_count, align 4, !tbaa !5
  %306 = add nsw i32 %305, 1
  store i32 %306, ptr @test_count, align 4, !tbaa !5
  %307 = tail call i32 @s2n_next_protocol_send(ptr noundef nonnull %198) #13
  %308 = icmp eq i32 %307, -1
  br i1 %308, label %309, label %331

309:                                              ; preds = %304
  %310 = load i32, ptr %197, align 4, !tbaa !5
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = tail call i32 @s2n_print_stacktrace(ptr noundef %311) #13
  %313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %314 = trunc nuw i8 %313 to i1
  br i1 %314, label %315, label %319

315:                                              ; preds = %309
  %316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %317 = tail call i32 @fileno(ptr noundef %316) #13
  %318 = tail call i32 @isatty(i32 noundef %317) #13
  %.not257 = icmp eq i32 %318, 0
  br i1 %.not257, label %319, label %320

319:                                              ; preds = %315, %309
  br label %320

320:                                              ; preds = %315, %319
  %.str.5.sink371 = phi ptr [ @.str.5, %319 ], [ @.str.2, %315 ]
  store i32 %310, ptr %197, align 4, !tbaa !5
  %321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %322 = load i32, ptr @test_count, align 4, !tbaa !5
  %323 = load i32, ptr %143, align 4, !tbaa !5
  %324 = tail call ptr @s2n_strerror(i32 noundef %323, ptr noundef nonnull @.str.4) #13
  %325 = load i32, ptr %143, align 4, !tbaa !5
  %326 = tail call ptr @s2n_strerror_debug(i32 noundef %325, ptr noundef nonnull @.str.4) #13
  %327 = load i32, ptr %197, align 4, !tbaa !5
  %328 = tail call ptr @strerror(i32 noundef %327) #13
  %329 = load i32, ptr %197, align 4, !tbaa !5
  %330 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %321, ptr noundef nonnull %.str.5.sink371, i32 noundef %322, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %324, ptr noundef %326, ptr noundef %328, i32 noundef %329) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

331:                                              ; preds = %304
  %332 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %3) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #13
  %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 = call i32 @s2n_next_protocol_recv(ptr noundef null) #13
  %336 = icmp eq i32 %335, -1
  br i1 %336, label %359, label %337

337:                                              ; preds = %331
  %338 = load i32, ptr %197, align 4, !tbaa !5
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = call i32 @s2n_print_stacktrace(ptr noundef %339) #13
  %341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %342 = trunc nuw i8 %341 to i1
  br i1 %342, label %343, label %347

343:                                              ; preds = %337
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = call i32 @fileno(ptr noundef %344) #13
  %346 = call i32 @isatty(i32 noundef %345) #13
  %.not193 = icmp eq i32 %346, 0
  br i1 %.not193, label %347, label %348

347:                                              ; preds = %343, %337
  br label %348

348:                                              ; preds = %343, %347
  %.str.5.sink380 = phi ptr [ @.str.5, %347 ], [ @.str.2, %343 ]
  store i32 %338, ptr %197, align 4, !tbaa !5
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = load i32, ptr @test_count, align 4, !tbaa !5
  %351 = load i32, ptr %143, align 4, !tbaa !5
  %352 = call ptr @s2n_strerror(i32 noundef %351, ptr noundef nonnull @.str.4) #13
  %353 = load i32, ptr %143, align 4, !tbaa !5
  %354 = call ptr @s2n_strerror_debug(i32 noundef %353, ptr noundef nonnull @.str.4) #13
  %355 = load i32, ptr %197, align 4, !tbaa !5
  %356 = call ptr @strerror(i32 noundef %355) #13
  %357 = load i32, ptr %197, align 4, !tbaa !5
  %358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %349, ptr noundef nonnull %.str.5.sink380, i32 noundef %350, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %352, ptr noundef %354, ptr noundef %356, i32 noundef %357) #15
  call void @exit(i32 noundef 1) #16
  unreachable

359:                                              ; preds = %331
  %360 = load i32, ptr @test_count, align 4, !tbaa !5
  %361 = add nsw i32 %360, 1
  store i32 %361, ptr @test_count, align 4, !tbaa !5
  %362 = load i32, ptr %143, align 4, !tbaa !5
  %363 = icmp eq i32 %362, 0
  br i1 %363, label %364, label %386

364:                                              ; preds = %359
  %365 = load i32, ptr %197, align 4, !tbaa !5
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = call i32 @s2n_print_stacktrace(ptr noundef %366) #13
  %368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %369 = trunc nuw i8 %368 to i1
  br i1 %369, label %370, label %374

370:                                              ; preds = %364
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = call i32 @fileno(ptr noundef %371) #13
  %373 = call i32 @isatty(i32 noundef %372) #13
  %.not256 = icmp eq i32 %373, 0
  br i1 %.not256, label %374, label %375

374:                                              ; preds = %370, %364
  br label %375

375:                                              ; preds = %370, %374
  %.str.5.sink389 = phi ptr [ @.str.5, %374 ], [ @.str.2, %370 ]
  store i32 %365, ptr %197, align 4, !tbaa !5
  %376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %377 = load i32, ptr @test_count, align 4, !tbaa !5
  %378 = load i32, ptr %143, align 4, !tbaa !5
  %379 = call ptr @s2n_strerror(i32 noundef %378, ptr noundef nonnull @.str.4) #13
  %380 = load i32, ptr %143, align 4, !tbaa !5
  %381 = call ptr @s2n_strerror_debug(i32 noundef %380, ptr noundef nonnull @.str.4) #13
  %382 = load i32, ptr %197, align 4, !tbaa !5
  %383 = call ptr @strerror(i32 noundef %382) #13
  %384 = load i32, ptr %197, align 4, !tbaa !5
  %385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %376, ptr noundef nonnull %.str.5.sink389, i32 noundef %377, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %379, ptr noundef %381, ptr noundef %383, i32 noundef %384) #15
  call void @exit(i32 noundef 1) #16
  unreachable

386:                                              ; preds = %359
  %387 = add nsw i32 %360, 2
  store i32 %387, ptr @test_count, align 4, !tbaa !5
  %388 = call ptr @s2n_strerror_debug(i32 noundef %362, ptr noundef nonnull @.str.4) #13
  %389 = icmp eq ptr %388, null
  br i1 %389, label %390, label %412

390:                                              ; preds = %386
  %391 = load i32, ptr %197, align 4, !tbaa !5
  %392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %393 = call i32 @s2n_print_stacktrace(ptr noundef %392) #13
  %394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %395 = trunc nuw i8 %394 to i1
  br i1 %395, label %396, label %400

396:                                              ; preds = %390
  %397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %398 = call i32 @fileno(ptr noundef %397) #13
  %399 = call i32 @isatty(i32 noundef %398) #13
  %.not255 = icmp eq i32 %399, 0
  br i1 %.not255, label %400, label %401

400:                                              ; preds = %396, %390
  br label %401

401:                                              ; preds = %396, %400
  %.str.5.sink398 = phi ptr [ @.str.5, %400 ], [ @.str.2, %396 ]
  store i32 %391, ptr %197, align 4, !tbaa !5
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = load i32, ptr @test_count, align 4, !tbaa !5
  %404 = load i32, ptr %143, align 4, !tbaa !5
  %405 = call ptr @s2n_strerror(i32 noundef %404, ptr noundef nonnull @.str.4) #13
  %406 = load i32, ptr %143, align 4, !tbaa !5
  %407 = call ptr @s2n_strerror_debug(i32 noundef %406, ptr noundef nonnull @.str.4) #13
  %408 = load i32, ptr %197, align 4, !tbaa !5
  %409 = call ptr @strerror(i32 noundef %408) #13
  %410 = load i32, ptr %197, align 4, !tbaa !5
  %411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %402, ptr noundef nonnull %.str.5.sink398, i32 noundef %403, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %405, ptr noundef %407, ptr noundef %409, i32 noundef %410) #15
  call void @exit(i32 noundef 1) #16
  unreachable

412:                                              ; preds = %386
  store i32 0, ptr %143, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %197, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #13
  %413 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %413, ptr %4, align 8, !tbaa !9
  %414 = load i32, ptr @test_count, align 4, !tbaa !5
  %415 = add nsw i32 %414, 1
  store i32 %415, ptr @test_count, align 4, !tbaa !5
  %416 = icmp eq ptr %413, null
  br i1 %416, label %417, label %439

417:                                              ; preds = %412
  %418 = load i32, ptr %197, align 4, !tbaa !5
  %419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %420 = call i32 @s2n_print_stacktrace(ptr noundef %419) #13
  %421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %422 = trunc nuw i8 %421 to i1
  br i1 %422, label %423, label %427

423:                                              ; preds = %417
  %424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %425 = call i32 @fileno(ptr noundef %424) #13
  %426 = call i32 @isatty(i32 noundef %425) #13
  %.not254 = icmp eq i32 %426, 0
  br i1 %.not254, label %427, label %428

427:                                              ; preds = %423, %417
  br label %428

428:                                              ; preds = %423, %427
  %.str.5.sink407 = phi ptr [ @.str.5, %427 ], [ @.str.2, %423 ]
  store i32 %418, ptr %197, align 4, !tbaa !5
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = load i32, ptr @test_count, align 4, !tbaa !5
  %431 = load i32, ptr %143, align 4, !tbaa !5
  %432 = call ptr @s2n_strerror(i32 noundef %431, ptr noundef nonnull @.str.4) #13
  %433 = load i32, ptr %143, align 4, !tbaa !5
  %434 = call ptr @s2n_strerror_debug(i32 noundef %433, ptr noundef nonnull @.str.4) #13
  %435 = load i32, ptr %197, align 4, !tbaa !5
  %436 = call ptr @strerror(i32 noundef %435) #13
  %437 = load i32, ptr %197, align 4, !tbaa !5
  %438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %429, ptr noundef nonnull %.str.5.sink407, i32 noundef %430, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %432, ptr noundef %434, ptr noundef %436, i32 noundef %437) #15
  call void @exit(i32 noundef 1) #16
  unreachable

439:                                              ; preds = %412
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #13
  %440 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %440, ptr %5, align 8, !tbaa !9
  %441 = load i32, ptr @test_count, align 4, !tbaa !5
  %442 = add nsw i32 %441, 1
  store i32 %442, ptr @test_count, align 4, !tbaa !5
  %443 = icmp eq ptr %440, null
  br i1 %443, label %444, label %466

444:                                              ; preds = %439
  %445 = load i32, ptr %197, align 4, !tbaa !5
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = call i32 @s2n_print_stacktrace(ptr noundef %446) #13
  %448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %449 = trunc nuw i8 %448 to i1
  br i1 %449, label %450, label %454

450:                                              ; preds = %444
  %451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %452 = call i32 @fileno(ptr noundef %451) #13
  %453 = call i32 @isatty(i32 noundef %452) #13
  %.not253 = icmp eq i32 %453, 0
  br i1 %.not253, label %454, label %455

454:                                              ; preds = %450, %444
  br label %455

455:                                              ; preds = %450, %454
  %.str.5.sink416 = phi ptr [ @.str.5, %454 ], [ @.str.2, %450 ]
  store i32 %445, ptr %197, align 4, !tbaa !5
  %456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %457 = load i32, ptr @test_count, align 4, !tbaa !5
  %458 = load i32, ptr %143, align 4, !tbaa !5
  %459 = call ptr @s2n_strerror(i32 noundef %458, ptr noundef nonnull @.str.4) #13
  %460 = load i32, ptr %143, align 4, !tbaa !5
  %461 = call ptr @s2n_strerror_debug(i32 noundef %460, ptr noundef nonnull @.str.4) #13
  %462 = load i32, ptr %197, align 4, !tbaa !5
  %463 = call ptr @strerror(i32 noundef %462) #13
  %464 = load i32, ptr %197, align 4, !tbaa !5
  %465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %456, ptr noundef nonnull %.str.5.sink416, i32 noundef %457, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %459, ptr noundef %461, ptr noundef %463, i32 noundef %464) #15
  call void @exit(i32 noundef 1) #16
  unreachable

466:                                              ; preds = %439
  %467 = getelementptr inbounds i8, ptr %440, i64 220
  store i8 33, ptr %467, align 4, !tbaa !15
  %468 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) @__const.main.protocol) #17
  %469 = trunc i64 %468 to i32
  %470 = and i32 %469, 255
  %471 = add nuw nsw i32 %470, 1
  %472 = getelementptr inbounds i8, ptr %440, i64 2528
  %473 = zext nneg i32 %471 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %472, ptr noundef nonnull align 1 dereferenceable(1) @__const.main.protocol, i64 %473, i1 false)
  %474 = add nsw i32 %441, 2
  store i32 %474, ptr @test_count, align 4, !tbaa !5
  %475 = call i32 @s2n_next_protocol_send(ptr noundef nonnull %440) #13
  %476 = icmp eq i32 %475, -1
  br i1 %476, label %477, label %499

477:                                              ; preds = %466
  %478 = load i32, ptr %197, align 4, !tbaa !5
  %479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %480 = call i32 @s2n_print_stacktrace(ptr noundef %479) #13
  %481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %482 = trunc nuw i8 %481 to i1
  br i1 %482, label %483, label %487

483:                                              ; preds = %477
  %484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %485 = call i32 @fileno(ptr noundef %484) #13
  %486 = call i32 @isatty(i32 noundef %485) #13
  %.not252 = icmp eq i32 %486, 0
  br i1 %.not252, label %487, label %488

487:                                              ; preds = %483, %477
  br label %488

488:                                              ; preds = %483, %487
  %.str.5.sink425 = phi ptr [ @.str.5, %487 ], [ @.str.2, %483 ]
  store i32 %478, ptr %197, align 4, !tbaa !5
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = load i32, ptr @test_count, align 4, !tbaa !5
  %491 = load i32, ptr %143, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror(i32 noundef %491, ptr noundef nonnull @.str.4) #13
  %493 = load i32, ptr %143, align 4, !tbaa !5
  %494 = call ptr @s2n_strerror_debug(i32 noundef %493, ptr noundef nonnull @.str.4) #13
  %495 = load i32, ptr %197, align 4, !tbaa !5
  %496 = call ptr @strerror(i32 noundef %495) #13
  %497 = load i32, ptr %197, align 4, !tbaa !5
  %498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %489, ptr noundef nonnull %.str.5.sink425, i32 noundef %490, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %492, ptr noundef %494, ptr noundef %496, i32 noundef %497) #15
  call void @exit(i32 noundef 1) #16
  unreachable

499:                                              ; preds = %466
  %500 = getelementptr inbounds i8, ptr %440, i64 2016
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = add nsw i32 %501, 1
  store i32 %502, ptr @test_count, align 4, !tbaa !5
  %503 = load ptr, ptr %4, align 8, !tbaa !9
  %504 = getelementptr inbounds i8, ptr %503, i64 2016
  %505 = getelementptr inbounds i8, ptr %440, i64 2044
  %506 = load i32, ptr %505, align 4, !tbaa !42
  %507 = getelementptr inbounds i8, ptr %440, i64 2040
  %508 = load i32, ptr %507, align 8, !tbaa !43
  %509 = sub i32 %506, %508
  %510 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %500, ptr noundef nonnull %504, i32 noundef %509) #13
  %511 = icmp eq i32 %510, -1
  br i1 %511, label %512, label %534

512:                                              ; preds = %499
  %513 = load i32, ptr %197, align 4, !tbaa !5
  %514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %515 = call i32 @s2n_print_stacktrace(ptr noundef %514) #13
  %516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %517 = trunc nuw i8 %516 to i1
  br i1 %517, label %518, label %522

518:                                              ; preds = %512
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = call i32 @fileno(ptr noundef %519) #13
  %521 = call i32 @isatty(i32 noundef %520) #13
  %.not251 = icmp eq i32 %521, 0
  br i1 %.not251, label %522, label %523

522:                                              ; preds = %518, %512
  br label %523

523:                                              ; preds = %518, %522
  %.str.5.sink434 = phi ptr [ @.str.5, %522 ], [ @.str.2, %518 ]
  store i32 %513, ptr %197, align 4, !tbaa !5
  %524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %525 = load i32, ptr @test_count, align 4, !tbaa !5
  %526 = load i32, ptr %143, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror(i32 noundef %526, ptr noundef nonnull @.str.4) #13
  %528 = load i32, ptr %143, align 4, !tbaa !5
  %529 = call ptr @s2n_strerror_debug(i32 noundef %528, ptr noundef nonnull @.str.4) #13
  %530 = load i32, ptr %197, align 4, !tbaa !5
  %531 = call ptr @strerror(i32 noundef %530) #13
  %532 = load i32, ptr %197, align 4, !tbaa !5
  %533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %524, ptr noundef nonnull %.str.5.sink434, i32 noundef %525, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %527, ptr noundef %529, ptr noundef %531, i32 noundef %532) #15
  call void @exit(i32 noundef 1) #16
  unreachable

534:                                              ; preds = %499
  %535 = load ptr, ptr %4, align 8, !tbaa !9
  %536 = getelementptr inbounds i8, ptr %535, i64 220
  store i8 34, ptr %536, align 4, !tbaa !15
  %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_next_protocol_recv(ptr noundef %535) #13
  %540 = icmp eq i32 %539, -1
  br i1 %540, label %563, label %541

541:                                              ; preds = %534
  %542 = load i32, ptr %197, align 4, !tbaa !5
  %543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %544 = call i32 @s2n_print_stacktrace(ptr noundef %543) #13
  %545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %546 = trunc nuw i8 %545 to i1
  br i1 %546, label %547, label %551

547:                                              ; preds = %541
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = call i32 @fileno(ptr noundef %548) #13
  %550 = call i32 @isatty(i32 noundef %549) #13
  %.not194 = icmp eq i32 %550, 0
  br i1 %.not194, label %551, label %552

551:                                              ; preds = %547, %541
  br label %552

552:                                              ; preds = %547, %551
  %.str.5.sink443 = phi ptr [ @.str.5, %551 ], [ @.str.2, %547 ]
  store i32 %542, ptr %197, align 4, !tbaa !5
  %553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %554 = load i32, ptr @test_count, align 4, !tbaa !5
  %555 = load i32, ptr %143, align 4, !tbaa !5
  %556 = call ptr @s2n_strerror(i32 noundef %555, ptr noundef nonnull @.str.4) #13
  %557 = load i32, ptr %143, align 4, !tbaa !5
  %558 = call ptr @s2n_strerror_debug(i32 noundef %557, ptr noundef nonnull @.str.4) #13
  %559 = load i32, ptr %197, align 4, !tbaa !5
  %560 = call ptr @strerror(i32 noundef %559) #13
  %561 = load i32, ptr %197, align 4, !tbaa !5
  %562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %553, ptr noundef nonnull %.str.5.sink443, i32 noundef %554, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %556, ptr noundef %558, ptr noundef %560, i32 noundef %561) #15
  call void @exit(i32 noundef 1) #16
  unreachable

563:                                              ; preds = %534
  %564 = load i32, ptr @test_count, align 4, !tbaa !5
  %565 = add nsw i32 %564, 1
  store i32 %565, ptr @test_count, align 4, !tbaa !5
  %566 = load i32, ptr %143, align 4, !tbaa !5
  %567 = icmp eq i32 %566, 335544322
  br i1 %567, label %590, label %568

568:                                              ; preds = %563
  %569 = load i32, ptr %197, align 4, !tbaa !5
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = call i32 @s2n_print_stacktrace(ptr noundef %570) #13
  %572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %573 = trunc nuw i8 %572 to i1
  br i1 %573, label %574, label %578

574:                                              ; preds = %568
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = call i32 @fileno(ptr noundef %575) #13
  %577 = call i32 @isatty(i32 noundef %576) #13
  %.not195 = icmp eq i32 %577, 0
  br i1 %.not195, label %578, label %579

578:                                              ; preds = %574, %568
  br label %579

579:                                              ; preds = %574, %578
  %.str.5.sink452 = phi ptr [ @.str.5, %578 ], [ @.str.2, %574 ]
  store i32 %569, ptr %197, align 4, !tbaa !5
  %580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %581 = load i32, ptr @test_count, align 4, !tbaa !5
  %582 = load i32, ptr %143, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror(i32 noundef %582, ptr noundef nonnull @.str.4) #13
  %584 = load i32, ptr %143, align 4, !tbaa !5
  %585 = call ptr @s2n_strerror_debug(i32 noundef %584, ptr noundef nonnull @.str.4) #13
  %586 = load i32, ptr %197, align 4, !tbaa !5
  %587 = call ptr @strerror(i32 noundef %586) #13
  %588 = load i32, ptr %197, align 4, !tbaa !5
  %589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %580, ptr noundef nonnull %.str.5.sink452, i32 noundef %581, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %583, ptr noundef %585, ptr noundef %587, i32 noundef %588) #15
  call void @exit(i32 noundef 1) #16
  unreachable

590:                                              ; preds = %563
  %591 = add nsw i32 %564, 2
  store i32 %591, ptr @test_count, align 4, !tbaa !5
  %592 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #13
  %593 = icmp eq ptr %592, null
  br i1 %593, label %594, label %616

594:                                              ; preds = %590
  %595 = load i32, ptr %197, align 4, !tbaa !5
  %596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %597 = call i32 @s2n_print_stacktrace(ptr noundef %596) #13
  %598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %599 = trunc nuw i8 %598 to i1
  br i1 %599, label %600, label %604

600:                                              ; preds = %594
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = call i32 @fileno(ptr noundef %601) #13
  %603 = call i32 @isatty(i32 noundef %602) #13
  %.not250 = icmp eq i32 %603, 0
  br i1 %.not250, label %604, label %605

604:                                              ; preds = %600, %594
  br label %605

605:                                              ; preds = %600, %604
  %.str.5.sink461 = phi ptr [ @.str.5, %604 ], [ @.str.2, %600 ]
  store i32 %595, ptr %197, align 4, !tbaa !5
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = load i32, ptr @test_count, align 4, !tbaa !5
  %608 = load i32, ptr %143, align 4, !tbaa !5
  %609 = call ptr @s2n_strerror(i32 noundef %608, ptr noundef nonnull @.str.4) #13
  %610 = load i32, ptr %143, align 4, !tbaa !5
  %611 = call ptr @s2n_strerror_debug(i32 noundef %610, ptr noundef nonnull @.str.4) #13
  %612 = load i32, ptr %197, align 4, !tbaa !5
  %613 = call ptr @strerror(i32 noundef %612) #13
  %614 = load i32, ptr %197, align 4, !tbaa !5
  %615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %606, ptr noundef nonnull %.str.5.sink461, i32 noundef %607, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %609, ptr noundef %611, ptr noundef %613, i32 noundef %614) #15
  call void @exit(i32 noundef 1) #16
  unreachable

616:                                              ; preds = %590
  store i32 0, ptr %143, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %197, align 4, !tbaa !5
  %617 = load ptr, ptr %4, align 8, !tbaa !9
  %618 = getelementptr inbounds i8, ptr %617, i64 220
  store i8 33, ptr %618, align 4, !tbaa !15
  %619 = load i32, ptr @test_count, align 4, !tbaa !5
  %620 = add nsw i32 %619, 1
  store i32 %620, ptr @test_count, align 4, !tbaa !5
  %621 = call i32 @s2n_next_protocol_recv(ptr noundef %617) #13
  %622 = icmp eq i32 %621, -1
  br i1 %622, label %623, label %645

623:                                              ; preds = %616
  %624 = load i32, ptr %197, align 4, !tbaa !5
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = call i32 @s2n_print_stacktrace(ptr noundef %625) #13
  %627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %628 = trunc nuw i8 %627 to i1
  br i1 %628, label %629, label %633

629:                                              ; preds = %623
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = call i32 @fileno(ptr noundef %630) #13
  %632 = call i32 @isatty(i32 noundef %631) #13
  %.not249 = icmp eq i32 %632, 0
  br i1 %.not249, label %633, label %634

633:                                              ; preds = %629, %623
  br label %634

634:                                              ; preds = %629, %633
  %.str.5.sink470 = phi ptr [ @.str.5, %633 ], [ @.str.2, %629 ]
  store i32 %624, ptr %197, align 4, !tbaa !5
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = load i32, ptr @test_count, align 4, !tbaa !5
  %637 = load i32, ptr %143, align 4, !tbaa !5
  %638 = call ptr @s2n_strerror(i32 noundef %637, ptr noundef nonnull @.str.4) #13
  %639 = load i32, ptr %143, align 4, !tbaa !5
  %640 = call ptr @s2n_strerror_debug(i32 noundef %639, ptr noundef nonnull @.str.4) #13
  %641 = load i32, ptr %197, align 4, !tbaa !5
  %642 = call ptr @strerror(i32 noundef %641) #13
  %643 = load i32, ptr %197, align 4, !tbaa !5
  %644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %635, ptr noundef nonnull %.str.5.sink470, i32 noundef %636, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %638, ptr noundef %640, ptr noundef %642, i32 noundef %643) #15
  call void @exit(i32 noundef 1) #16
  unreachable

645:                                              ; preds = %616
  %646 = load i32, ptr @test_count, align 4, !tbaa !5
  %647 = add nsw i32 %646, 1
  store i32 %647, ptr @test_count, align 4, !tbaa !5
  %648 = load ptr, ptr %4, align 8, !tbaa !9
  %649 = getelementptr inbounds i8, ptr %648, i64 2044
  %650 = load i32, ptr %649, align 4, !tbaa !44
  %651 = getelementptr inbounds i8, ptr %648, i64 2040
  %652 = load i32, ptr %651, align 8, !tbaa !45
  %653 = icmp eq i32 %650, %652
  br i1 %653, label %676, label %654

654:                                              ; preds = %645
  %655 = load i32, ptr %197, align 4, !tbaa !5
  %656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %657 = call i32 @s2n_print_stacktrace(ptr noundef %656) #13
  %658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %659 = trunc nuw i8 %658 to i1
  br i1 %659, label %660, label %664

660:                                              ; preds = %654
  %661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %662 = call i32 @fileno(ptr noundef %661) #13
  %663 = call i32 @isatty(i32 noundef %662) #13
  %.not196 = icmp eq i32 %663, 0
  br i1 %.not196, label %664, label %665

664:                                              ; preds = %660, %654
  br label %665

665:                                              ; preds = %660, %664
  %.str.5.sink479 = phi ptr [ @.str.5, %664 ], [ @.str.2, %660 ]
  store i32 %655, ptr %197, align 4, !tbaa !5
  %666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %667 = load i32, ptr @test_count, align 4, !tbaa !5
  %668 = load i32, ptr %143, align 4, !tbaa !5
  %669 = call ptr @s2n_strerror(i32 noundef %668, ptr noundef nonnull @.str.4) #13
  %670 = load i32, ptr %143, align 4, !tbaa !5
  %671 = call ptr @s2n_strerror_debug(i32 noundef %670, ptr noundef nonnull @.str.4) #13
  %672 = load i32, ptr %197, align 4, !tbaa !5
  %673 = call ptr @strerror(i32 noundef %672) #13
  %674 = load i32, ptr %197, align 4, !tbaa !5
  %675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %666, ptr noundef nonnull %.str.5.sink479, i32 noundef %667, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 82, ptr noundef %669, ptr noundef %671, ptr noundef %673, i32 noundef %674) #15
  call void @exit(i32 noundef 1) #16
  unreachable

676:                                              ; preds = %645
  %.not197 = icmp eq i32 %470, 0
  br i1 %.not197, label %706, label %677

677:                                              ; preds = %676
  %678 = add nsw i32 %646, 2
  store i32 %678, ptr @test_count, align 4, !tbaa !5
  %679 = load ptr, ptr %5, align 8, !tbaa !9
  %680 = getelementptr inbounds i8, ptr %679, i64 2528
  %681 = getelementptr inbounds i8, ptr %648, i64 2528
  %682 = and i64 %468, 255
  %bcmp = call i32 @bcmp(ptr nonnull %680, ptr nonnull %681, i64 %682)
  %683 = icmp eq i32 %bcmp, 0
  br i1 %683, label %706, label %684

684:                                              ; preds = %677
  %685 = load i32, ptr %197, align 4, !tbaa !5
  %686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %687 = call i32 @s2n_print_stacktrace(ptr noundef %686) #13
  %688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %689 = trunc nuw i8 %688 to i1
  br i1 %689, label %690, label %694

690:                                              ; preds = %684
  %691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %692 = call i32 @fileno(ptr noundef %691) #13
  %693 = call i32 @isatty(i32 noundef %692) #13
  %.not198 = icmp eq i32 %693, 0
  br i1 %.not198, label %694, label %695

694:                                              ; preds = %690, %684
  br label %695

695:                                              ; preds = %690, %694
  %.str.5.sink488 = phi ptr [ @.str.5, %694 ], [ @.str.2, %690 ]
  store i32 %685, ptr %197, align 4, !tbaa !5
  %696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %697 = load i32, ptr @test_count, align 4, !tbaa !5
  %698 = load i32, ptr %143, align 4, !tbaa !5
  %699 = call ptr @s2n_strerror(i32 noundef %698, ptr noundef nonnull @.str.4) #13
  %700 = load i32, ptr %143, align 4, !tbaa !5
  %701 = call ptr @s2n_strerror_debug(i32 noundef %700, ptr noundef nonnull @.str.4) #13
  %702 = load i32, ptr %197, align 4, !tbaa !5
  %703 = call ptr @strerror(i32 noundef %702) #13
  %704 = load i32, ptr %197, align 4, !tbaa !5
  %705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %696, ptr noundef nonnull %.str.5.sink488, i32 noundef %697, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %699, ptr noundef %701, ptr noundef %703, i32 noundef %704) #15
  call void @exit(i32 noundef 1) #16
  unreachable

706:                                              ; preds = %677, %676
  %707 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %5) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #13
  %708 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %4) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #13
  %709 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %709, ptr %6, align 8, !tbaa !9
  %710 = load i32, ptr @test_count, align 4, !tbaa !5
  %711 = add nsw i32 %710, 1
  store i32 %711, ptr @test_count, align 4, !tbaa !5
  %712 = icmp eq ptr %709, null
  br i1 %712, label %713, label %735

713:                                              ; preds = %706
  %714 = load i32, ptr %197, align 4, !tbaa !5
  %715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %716 = call i32 @s2n_print_stacktrace(ptr noundef %715) #13
  %717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %718 = trunc nuw i8 %717 to i1
  br i1 %718, label %719, label %723

719:                                              ; preds = %713
  %720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %721 = call i32 @fileno(ptr noundef %720) #13
  %722 = call i32 @isatty(i32 noundef %721) #13
  %.not248 = icmp eq i32 %722, 0
  br i1 %.not248, label %723, label %724

723:                                              ; preds = %719, %713
  br label %724

724:                                              ; preds = %719, %723
  %.str.5.sink497 = phi ptr [ @.str.5, %723 ], [ @.str.2, %719 ]
  store i32 %714, ptr %197, align 4, !tbaa !5
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = load i32, ptr %143, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror(i32 noundef %727, ptr noundef nonnull @.str.4) #13
  %729 = load i32, ptr %143, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror_debug(i32 noundef %729, ptr noundef nonnull @.str.4) #13
  %731 = load i32, ptr %197, align 4, !tbaa !5
  %732 = call ptr @strerror(i32 noundef %731) #13
  %733 = load i32, ptr %197, align 4, !tbaa !5
  %734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %725, ptr noundef nonnull %.str.5.sink497, i32 noundef %726, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %728, ptr noundef %730, ptr noundef %732, i32 noundef %733) #15
  call void @exit(i32 noundef 1) #16
  unreachable

735:                                              ; preds = %706
  %736 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.sroa.0169.0.copyload) #17
  %737 = and i64 %736, 255
  %738 = add nuw nsw i64 %737, 1
  %739 = getelementptr inbounds i8, ptr %709, i64 2528
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %739, ptr noundef nonnull align 1 dereferenceable(1) %.sroa.0169.0.copyload, i64 %738, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %7, i8 0, i64 40, i1 false)
  %740 = add nsw i32 %710, 2
  store i32 %740, ptr @test_count, align 4, !tbaa !5
  %741 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %7, i32 noundef 0) #13
  %742 = icmp eq i32 %741, -1
  br i1 %742, label %743, label %765

743:                                              ; preds = %735
  %744 = load i32, ptr %197, align 4, !tbaa !5
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = call i32 @s2n_print_stacktrace(ptr noundef %745) #13
  %747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %748 = trunc nuw i8 %747 to i1
  br i1 %748, label %749, label %753

749:                                              ; preds = %743
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = call i32 @fileno(ptr noundef %750) #13
  %752 = call i32 @isatty(i32 noundef %751) #13
  %.not247 = icmp eq i32 %752, 0
  br i1 %.not247, label %753, label %754

753:                                              ; preds = %749, %743
  br label %754

754:                                              ; preds = %749, %753
  %.str.5.sink506 = phi ptr [ @.str.5, %753 ], [ @.str.2, %749 ]
  store i32 %744, ptr %197, align 4, !tbaa !5
  %755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %756 = load i32, ptr @test_count, align 4, !tbaa !5
  %757 = load i32, ptr %143, align 4, !tbaa !5
  %758 = call ptr @s2n_strerror(i32 noundef %757, ptr noundef nonnull @.str.4) #13
  %759 = load i32, ptr %143, align 4, !tbaa !5
  %760 = call ptr @s2n_strerror_debug(i32 noundef %759, ptr noundef nonnull @.str.4) #13
  %761 = load i32, ptr %197, align 4, !tbaa !5
  %762 = call ptr @strerror(i32 noundef %761) #13
  %763 = load i32, ptr %197, align 4, !tbaa !5
  %764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %755, ptr noundef nonnull %.str.5.sink506, i32 noundef %756, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %758, ptr noundef %760, ptr noundef %762, i32 noundef %763) #15
  call void @exit(i32 noundef 1) #16
  unreachable

765:                                              ; preds = %735
  %766 = load i32, ptr @test_count, align 4, !tbaa !5
  %767 = add nsw i32 %766, 1
  store i32 %767, ptr @test_count, align 4, !tbaa !5
  %768 = load ptr, ptr %6, align 8, !tbaa !9
  %769 = call i32 @s2n_write_npn_protocol(ptr noundef %768, ptr noundef nonnull %7) #13
  %770 = call zeroext i1 @s2n_result_is_ok(i32 %769)
  br i1 %770, label %793, label %771

771:                                              ; preds = %765
  %772 = load i32, ptr %197, align 4, !tbaa !5
  %773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %774 = call i32 @s2n_print_stacktrace(ptr noundef %773) #13
  %775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %776 = trunc nuw i8 %775 to i1
  br i1 %776, label %777, label %781

777:                                              ; preds = %771
  %778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %779 = call i32 @fileno(ptr noundef %778) #13
  %780 = call i32 @isatty(i32 noundef %779) #13
  %.not199 = icmp eq i32 %780, 0
  br i1 %.not199, label %781, label %782

781:                                              ; preds = %777, %771
  br label %782

782:                                              ; preds = %777, %781
  %.str.5.sink515 = phi ptr [ @.str.5, %781 ], [ @.str.2, %777 ]
  store i32 %772, ptr %197, align 4, !tbaa !5
  %783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %784 = load i32, ptr @test_count, align 4, !tbaa !5
  %785 = load i32, ptr %143, align 4, !tbaa !5
  %786 = call ptr @s2n_strerror(i32 noundef %785, ptr noundef nonnull @.str.4) #13
  %787 = load i32, ptr %143, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror_debug(i32 noundef %787, ptr noundef nonnull @.str.4) #13
  %789 = load i32, ptr %197, align 4, !tbaa !5
  %790 = call ptr @strerror(i32 noundef %789) #13
  %791 = load i32, ptr %197, align 4, !tbaa !5
  %792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %783, ptr noundef nonnull %.str.5.sink515, i32 noundef %784, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %786, ptr noundef %788, ptr noundef %790, i32 noundef %791) #15
  call void @exit(i32 noundef 1) #16
  unreachable

793:                                              ; preds = %765
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #13
  store i8 0, ptr %8, align 1, !tbaa !46
  %794 = load i32, ptr @test_count, align 4, !tbaa !5
  %795 = add nsw i32 %794, 1
  store i32 %795, ptr @test_count, align 4, !tbaa !5
  %796 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %7, ptr noundef nonnull %8) #13
  %797 = icmp eq i32 %796, -1
  br i1 %797, label %798, label %820

798:                                              ; preds = %793
  %799 = load i32, ptr %197, align 4, !tbaa !5
  %800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %801 = call i32 @s2n_print_stacktrace(ptr noundef %800) #13
  %802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %803 = trunc nuw i8 %802 to i1
  br i1 %803, label %804, label %808

804:                                              ; preds = %798
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = call i32 @fileno(ptr noundef %805) #13
  %807 = call i32 @isatty(i32 noundef %806) #13
  %.not246 = icmp eq i32 %807, 0
  br i1 %.not246, label %808, label %809

808:                                              ; preds = %804, %798
  br label %809

809:                                              ; preds = %804, %808
  %.str.5.sink524 = phi ptr [ @.str.5, %808 ], [ @.str.2, %804 ]
  store i32 %799, ptr %197, align 4, !tbaa !5
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = load i32, ptr @test_count, align 4, !tbaa !5
  %812 = load i32, ptr %143, align 4, !tbaa !5
  %813 = call ptr @s2n_strerror(i32 noundef %812, ptr noundef nonnull @.str.4) #13
  %814 = load i32, ptr %143, align 4, !tbaa !5
  %815 = call ptr @s2n_strerror_debug(i32 noundef %814, ptr noundef nonnull @.str.4) #13
  %816 = load i32, ptr %197, align 4, !tbaa !5
  %817 = call ptr @strerror(i32 noundef %816) #13
  %818 = load i32, ptr %197, align 4, !tbaa !5
  %819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %810, ptr noundef nonnull %.str.5.sink524, i32 noundef %811, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %813, ptr noundef %815, ptr noundef %817, i32 noundef %818) #15
  call void @exit(i32 noundef 1) #16
  unreachable

820:                                              ; preds = %793
  call void @llvm.lifetime.start.p0(i64 255, ptr nonnull %9) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(255) %9, i8 0, i64 255, i1 false)
  %821 = load i32, ptr @test_count, align 4, !tbaa !5
  %822 = add nsw i32 %821, 1
  store i32 %822, ptr @test_count, align 4, !tbaa !5
  %823 = load i8, ptr %8, align 1, !tbaa !46
  %824 = zext i8 %823 to i32
  %825 = call i32 @s2n_stuffer_read_bytes(ptr noundef nonnull %7, ptr noundef nonnull %9, i32 noundef %824) #13
  %826 = icmp eq i32 %825, -1
  br i1 %826, label %827, label %849

827:                                              ; preds = %820
  %828 = load i32, ptr %197, align 4, !tbaa !5
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = call i32 @s2n_print_stacktrace(ptr noundef %829) #13
  %831 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %832 = trunc nuw i8 %831 to i1
  br i1 %832, label %833, label %837

833:                                              ; preds = %827
  %834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %835 = call i32 @fileno(ptr noundef %834) #13
  %836 = call i32 @isatty(i32 noundef %835) #13
  %.not245 = icmp eq i32 %836, 0
  br i1 %.not245, label %837, label %838

837:                                              ; preds = %833, %827
  br label %838

838:                                              ; preds = %833, %837
  %.str.5.sink533 = phi ptr [ @.str.5, %837 ], [ @.str.2, %833 ]
  store i32 %828, ptr %197, align 4, !tbaa !5
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = load i32, ptr @test_count, align 4, !tbaa !5
  %841 = load i32, ptr %143, align 4, !tbaa !5
  %842 = call ptr @s2n_strerror(i32 noundef %841, ptr noundef nonnull @.str.4) #13
  %843 = load i32, ptr %143, align 4, !tbaa !5
  %844 = call ptr @s2n_strerror_debug(i32 noundef %843, ptr noundef nonnull @.str.4) #13
  %845 = load i32, ptr %197, align 4, !tbaa !5
  %846 = call ptr @strerror(i32 noundef %845) #13
  %847 = load i32, ptr %197, align 4, !tbaa !5
  %848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %839, ptr noundef nonnull %.str.5.sink533, i32 noundef %840, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %842, ptr noundef %844, ptr noundef %846, i32 noundef %847) #15
  call void @exit(i32 noundef 1) #16
  unreachable

849:                                              ; preds = %820
  %850 = load i8, ptr %8, align 1, !tbaa !46
  %.not200 = icmp eq i8 %850, 0
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not200, label %877, label %851

851:                                              ; preds = %849
  %852 = add nsw i32 %.pre, 1
  store i32 %852, ptr @test_count, align 4, !tbaa !5
  %853 = zext i8 %850 to i64
  %bcmp201 = call i32 @bcmp(ptr nonnull %9, ptr %.sroa.0169.0.copyload, i64 %853)
  %854 = icmp eq i32 %bcmp201, 0
  br i1 %854, label %877, label %855

855:                                              ; preds = %851
  %856 = load i32, ptr %197, align 4, !tbaa !5
  %857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %858 = call i32 @s2n_print_stacktrace(ptr noundef %857) #13
  %859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %860 = trunc nuw i8 %859 to i1
  br i1 %860, label %861, label %865

861:                                              ; preds = %855
  %862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %863 = call i32 @fileno(ptr noundef %862) #13
  %864 = call i32 @isatty(i32 noundef %863) #13
  %.not202 = icmp eq i32 %864, 0
  br i1 %.not202, label %865, label %866

865:                                              ; preds = %861, %855
  br label %866

866:                                              ; preds = %861, %865
  %.str.5.sink542 = phi ptr [ @.str.5, %865 ], [ @.str.2, %861 ]
  store i32 %856, ptr %197, align 4, !tbaa !5
  %867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %868 = load i32, ptr @test_count, align 4, !tbaa !5
  %869 = load i32, ptr %143, align 4, !tbaa !5
  %870 = call ptr @s2n_strerror(i32 noundef %869, ptr noundef nonnull @.str.4) #13
  %871 = load i32, ptr %143, align 4, !tbaa !5
  %872 = call ptr @s2n_strerror_debug(i32 noundef %871, ptr noundef nonnull @.str.4) #13
  %873 = load i32, ptr %197, align 4, !tbaa !5
  %874 = call ptr @strerror(i32 noundef %873) #13
  %875 = load i32, ptr %197, align 4, !tbaa !5
  %876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %867, ptr noundef nonnull %.str.5.sink542, i32 noundef %868, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %870, ptr noundef %872, ptr noundef %874, i32 noundef %875) #15
  call void @exit(i32 noundef 1) #16
  unreachable

877:                                              ; preds = %851, %849
  %878 = phi i32 [ %852, %851 ], [ %.pre, %849 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #13
  store i8 0, ptr %10, align 1, !tbaa !46
  %879 = add nsw i32 %878, 1
  store i32 %879, ptr @test_count, align 4, !tbaa !5
  %880 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %7, ptr noundef nonnull %10) #13
  %881 = icmp eq i32 %880, -1
  br i1 %881, label %882, label %904

882:                                              ; preds = %877
  %883 = load i32, ptr %197, align 4, !tbaa !5
  %884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %885 = call i32 @s2n_print_stacktrace(ptr noundef %884) #13
  %886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %887 = trunc nuw i8 %886 to i1
  br i1 %887, label %888, label %892

888:                                              ; preds = %882
  %889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %890 = call i32 @fileno(ptr noundef %889) #13
  %891 = call i32 @isatty(i32 noundef %890) #13
  %.not244 = icmp eq i32 %891, 0
  br i1 %.not244, label %892, label %893

892:                                              ; preds = %888, %882
  br label %893

893:                                              ; preds = %888, %892
  %.str.5.sink551 = phi ptr [ @.str.5, %892 ], [ @.str.2, %888 ]
  store i32 %883, ptr %197, align 4, !tbaa !5
  %894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %895 = load i32, ptr @test_count, align 4, !tbaa !5
  %896 = load i32, ptr %143, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror(i32 noundef %896, ptr noundef nonnull @.str.4) #13
  %898 = load i32, ptr %143, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror_debug(i32 noundef %898, ptr noundef nonnull @.str.4) #13
  %900 = load i32, ptr %197, align 4, !tbaa !5
  %901 = call ptr @strerror(i32 noundef %900) #13
  %902 = load i32, ptr %197, align 4, !tbaa !5
  %903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %894, ptr noundef nonnull %.str.5.sink551, i32 noundef %895, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef %897, ptr noundef %899, ptr noundef %901, i32 noundef %902) #15
  call void @exit(i32 noundef 1) #16
  unreachable

904:                                              ; preds = %877
  %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 i8, ptr %10, align 1, !tbaa !46
  %.not203 = icmp eq i8 %907, 0
  br i1 %.not203, label %908, label %.lr.ph

908:                                              ; preds = %904
  %909 = load i32, ptr %197, align 4, !tbaa !5
  %910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %911 = call i32 @s2n_print_stacktrace(ptr noundef %910) #13
  %912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %913 = trunc nuw i8 %912 to i1
  br i1 %913, label %914, label %918

914:                                              ; preds = %908
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = call i32 @fileno(ptr noundef %915) #13
  %917 = call i32 @isatty(i32 noundef %916) #13
  %.not204 = icmp eq i32 %917, 0
  br i1 %.not204, label %918, label %919

918:                                              ; preds = %914, %908
  br label %919

919:                                              ; preds = %914, %918
  %.str.5.sink560 = phi ptr [ @.str.5, %918 ], [ @.str.2, %914 ]
  store i32 %909, ptr %197, align 4, !tbaa !5
  %920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %921 = load i32, ptr @test_count, align 4, !tbaa !5
  %922 = load i32, ptr %143, align 4, !tbaa !5
  %923 = call ptr @s2n_strerror(i32 noundef %922, ptr noundef nonnull @.str.4) #13
  %924 = load i32, ptr %143, align 4, !tbaa !5
  %925 = call ptr @s2n_strerror_debug(i32 noundef %924, ptr noundef nonnull @.str.4) #13
  %926 = load i32, ptr %197, align 4, !tbaa !5
  %927 = call ptr @strerror(i32 noundef %926) #13
  %928 = load i32, ptr %197, align 4, !tbaa !5
  %929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %920, ptr noundef nonnull %.str.5.sink560, i32 noundef %921, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %923, ptr noundef %925, ptr noundef %927, i32 noundef %928) #15
  call void @exit(i32 noundef 1) #16
  unreachable

._crit_edge:                                      ; preds = %989
  %930 = add nsw i32 %963, 2
  store i32 %930, ptr @test_count, align 4, !tbaa !5
  %931 = getelementptr inbounds i8, ptr %7, i64 28
  %932 = load i32, ptr %931, align 4, !tbaa !42
  %933 = getelementptr inbounds i8, ptr %7, i64 24
  %934 = load i32, ptr %933, align 8, !tbaa !43
  %935 = icmp eq i32 %932, %934
  br i1 %935, label %1016, label %994

.lr.ph:                                           ; preds = %904, %989
  %936 = phi i32 [ %964, %989 ], [ %906, %904 ]
  %.0266 = phi i64 [ %990, %989 ], [ 0, %904 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #13
  store i8 -1, ptr %11, align 1, !tbaa !46
  %937 = add nsw i32 %936, 1
  store i32 %937, ptr @test_count, align 4, !tbaa !5
  %938 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %7, ptr noundef nonnull %11) #13
  %939 = icmp eq i32 %938, -1
  br i1 %939, label %940, label %962

940:                                              ; preds = %.lr.ph
  %941 = load i32, ptr %197, align 4, !tbaa !5
  %942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %943 = call i32 @s2n_print_stacktrace(ptr noundef %942) #13
  %944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %945 = trunc nuw i8 %944 to i1
  br i1 %945, label %946, label %950

946:                                              ; preds = %940
  %947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %948 = call i32 @fileno(ptr noundef %947) #13
  %949 = call i32 @isatty(i32 noundef %948) #13
  %.not243 = icmp eq i32 %949, 0
  br i1 %.not243, label %950, label %951

950:                                              ; preds = %946, %940
  br label %951

951:                                              ; preds = %946, %950
  %.str.5.sink569 = phi ptr [ @.str.5, %950 ], [ @.str.2, %946 ]
  store i32 %941, ptr %197, align 4, !tbaa !5
  %952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %953 = load i32, ptr @test_count, align 4, !tbaa !5
  %954 = load i32, ptr %143, align 4, !tbaa !5
  %955 = call ptr @s2n_strerror(i32 noundef %954, ptr noundef nonnull @.str.4) #13
  %956 = load i32, ptr %143, align 4, !tbaa !5
  %957 = call ptr @s2n_strerror_debug(i32 noundef %956, ptr noundef nonnull @.str.4) #13
  %958 = load i32, ptr %197, align 4, !tbaa !5
  %959 = call ptr @strerror(i32 noundef %958) #13
  %960 = load i32, ptr %197, align 4, !tbaa !5
  %961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %952, ptr noundef nonnull %.str.5.sink569, i32 noundef %953, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %955, ptr noundef %957, ptr noundef %959, i32 noundef %960) #15
  call void @exit(i32 noundef 1) #16
  unreachable

962:                                              ; preds = %.lr.ph
  %963 = load i32, ptr @test_count, align 4, !tbaa !5
  %964 = add nsw i32 %963, 1
  store i32 %964, ptr @test_count, align 4, !tbaa !5
  %965 = load i8, ptr %11, align 1, !tbaa !46
  %966 = icmp eq i8 %965, 0
  br i1 %966, label %989, label %967

967:                                              ; preds = %962
  %968 = load i32, ptr %197, align 4, !tbaa !5
  %969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %970 = call i32 @s2n_print_stacktrace(ptr noundef %969) #13
  %971 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %972 = trunc nuw i8 %971 to i1
  br i1 %972, label %973, label %977

973:                                              ; preds = %967
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = call i32 @fileno(ptr noundef %974) #13
  %976 = call i32 @isatty(i32 noundef %975) #13
  %.not242 = icmp eq i32 %976, 0
  br i1 %.not242, label %977, label %978

977:                                              ; preds = %973, %967
  br label %978

978:                                              ; preds = %973, %977
  %.str.5.sink578 = phi ptr [ @.str.5, %977 ], [ @.str.2, %973 ]
  store i32 %968, ptr %197, align 4, !tbaa !5
  %979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %980 = load i32, ptr @test_count, align 4, !tbaa !5
  %981 = load i32, ptr %143, align 4, !tbaa !5
  %982 = call ptr @s2n_strerror(i32 noundef %981, ptr noundef nonnull @.str.4) #13
  %983 = load i32, ptr %143, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror_debug(i32 noundef %983, ptr noundef nonnull @.str.4) #13
  %985 = load i32, ptr %197, align 4, !tbaa !5
  %986 = call ptr @strerror(i32 noundef %985) #13
  %987 = load i32, ptr %197, align 4, !tbaa !5
  %988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %979, ptr noundef nonnull %.str.5.sink578, i32 noundef %980, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %982, ptr noundef %984, ptr noundef %986, i32 noundef %987) #15
  call void @exit(i32 noundef 1) #16
  unreachable

989:                                              ; preds = %962
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #13
  %990 = add nuw nsw i64 %.0266, 1
  %991 = load i8, ptr %10, align 1, !tbaa !46
  %992 = zext i8 %991 to i64
  %993 = icmp ult i64 %990, %992
  br i1 %993, label %.lr.ph, label %._crit_edge, !llvm.loop !47

994:                                              ; preds = %._crit_edge
  %995 = load i32, ptr %197, align 4, !tbaa !5
  %996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %997 = call i32 @s2n_print_stacktrace(ptr noundef %996) #13
  %998 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %999 = trunc nuw i8 %998 to i1
  br i1 %999, label %1000, label %1004

1000:                                             ; preds = %994
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1002 = call i32 @fileno(ptr noundef %1001) #13
  %1003 = call i32 @isatty(i32 noundef %1002) #13
  %.not205 = icmp eq i32 %1003, 0
  br i1 %.not205, label %1004, label %1005

1004:                                             ; preds = %1000, %994
  br label %1005

1005:                                             ; preds = %1000, %1004
  %.str.5.sink587 = phi ptr [ @.str.5, %1004 ], [ @.str.2, %1000 ]
  store i32 %995, ptr %197, align 4, !tbaa !5
  %1006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1007 = load i32, ptr @test_count, align 4, !tbaa !5
  %1008 = load i32, ptr %143, align 4, !tbaa !5
  %1009 = call ptr @s2n_strerror(i32 noundef %1008, ptr noundef nonnull @.str.4) #13
  %1010 = load i32, ptr %143, align 4, !tbaa !5
  %1011 = call ptr @s2n_strerror_debug(i32 noundef %1010, ptr noundef nonnull @.str.4) #13
  %1012 = load i32, ptr %197, align 4, !tbaa !5
  %1013 = call ptr @strerror(i32 noundef %1012) #13
  %1014 = load i32, ptr %197, align 4, !tbaa !5
  %1015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1006, ptr noundef nonnull %.str.5.sink587, i32 noundef %1007, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %1009, ptr noundef %1011, ptr noundef %1013, i32 noundef %1014) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1016:                                             ; preds = %._crit_edge
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #13
  call void @llvm.lifetime.end.p0(i64 255, ptr nonnull %9) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #13
  %1017 = call i32 @s2n_stuffer_free(ptr noundef nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #13
  %1018 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #13
  %1019 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %1019, ptr %12, align 8, !tbaa !9
  %1020 = load i32, ptr @test_count, align 4, !tbaa !5
  %1021 = add nsw i32 %1020, 1
  store i32 %1021, ptr @test_count, align 4, !tbaa !5
  %1022 = icmp eq ptr %1019, null
  br i1 %1022, label %1023, label %1045

1023:                                             ; preds = %1016
  %1024 = load i32, ptr %197, align 4, !tbaa !5
  %1025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1026 = call i32 @s2n_print_stacktrace(ptr noundef %1025) #13
  %1027 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1028 = trunc nuw i8 %1027 to i1
  br i1 %1028, label %1029, label %1033

1029:                                             ; preds = %1023
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = call i32 @fileno(ptr noundef %1030) #13
  %1032 = call i32 @isatty(i32 noundef %1031) #13
  %.not241 = icmp eq i32 %1032, 0
  br i1 %.not241, label %1033, label %1034

1033:                                             ; preds = %1029, %1023
  br label %1034

1034:                                             ; preds = %1029, %1033
  %.str.5.sink596 = phi ptr [ @.str.5, %1033 ], [ @.str.2, %1029 ]
  store i32 %1024, ptr %197, align 4, !tbaa !5
  %1035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1036 = load i32, ptr @test_count, align 4, !tbaa !5
  %1037 = load i32, ptr %143, align 4, !tbaa !5
  %1038 = call ptr @s2n_strerror(i32 noundef %1037, ptr noundef nonnull @.str.4) #13
  %1039 = load i32, ptr %143, align 4, !tbaa !5
  %1040 = call ptr @s2n_strerror_debug(i32 noundef %1039, ptr noundef nonnull @.str.4) #13
  %1041 = load i32, ptr %197, align 4, !tbaa !5
  %1042 = call ptr @strerror(i32 noundef %1041) #13
  %1043 = load i32, ptr %197, align 4, !tbaa !5
  %1044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1035, ptr noundef nonnull %.str.5.sink596, i32 noundef %1036, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %1038, ptr noundef %1040, ptr noundef %1042, i32 noundef %1043) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1045:                                             ; preds = %1016
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #13
  %1046 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %1046, ptr %13, align 8, !tbaa !9
  %1047 = load i32, ptr @test_count, align 4, !tbaa !5
  %1048 = add nsw i32 %1047, 1
  store i32 %1048, ptr @test_count, align 4, !tbaa !5
  %1049 = icmp eq ptr %1046, null
  br i1 %1049, label %1050, label %1072

1050:                                             ; preds = %1045
  %1051 = load i32, ptr %197, align 4, !tbaa !5
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = call i32 @s2n_print_stacktrace(ptr noundef %1052) #13
  %1054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1055 = trunc nuw i8 %1054 to i1
  br i1 %1055, label %1056, label %1060

1056:                                             ; preds = %1050
  %1057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1058 = call i32 @fileno(ptr noundef %1057) #13
  %1059 = call i32 @isatty(i32 noundef %1058) #13
  %.not240 = icmp eq i32 %1059, 0
  br i1 %.not240, label %1060, label %1061

1060:                                             ; preds = %1056, %1050
  br label %1061

1061:                                             ; preds = %1056, %1060
  %.str.5.sink605 = phi ptr [ @.str.5, %1060 ], [ @.str.2, %1056 ]
  store i32 %1051, ptr %197, align 4, !tbaa !5
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = load i32, ptr %143, align 4, !tbaa !5
  %1065 = call ptr @s2n_strerror(i32 noundef %1064, ptr noundef nonnull @.str.4) #13
  %1066 = load i32, ptr %143, align 4, !tbaa !5
  %1067 = call ptr @s2n_strerror_debug(i32 noundef %1066, ptr noundef nonnull @.str.4) #13
  %1068 = load i32, ptr %197, align 4, !tbaa !5
  %1069 = call ptr @strerror(i32 noundef %1068) #13
  %1070 = load i32, ptr %197, align 4, !tbaa !5
  %1071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1062, ptr noundef nonnull %.str.5.sink605, i32 noundef %1063, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %1065, ptr noundef %1067, ptr noundef %1069, i32 noundef %1070) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1072:                                             ; preds = %1045
  %1073 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.sroa.0169.0.copyload) #17
  %1074 = and i64 %1073, 255
  %1075 = add nuw nsw i64 %1074, 1
  %1076 = load ptr, ptr %12, align 8, !tbaa !9
  %1077 = getelementptr inbounds i8, ptr %1076, i64 2528
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %1077, ptr noundef nonnull align 1 dereferenceable(1) %.sroa.0169.0.copyload, i64 %1075, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %14) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %14, i8 0, i64 40, i1 false)
  %1078 = add nsw i32 %1047, 2
  store i32 %1078, ptr @test_count, align 4, !tbaa !5
  %1079 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %14, i32 noundef 0) #13
  %1080 = icmp eq i32 %1079, -1
  br i1 %1080, label %1081, label %1103

1081:                                             ; preds = %1072
  %1082 = load i32, ptr %197, align 4, !tbaa !5
  %1083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1084 = call i32 @s2n_print_stacktrace(ptr noundef %1083) #13
  %1085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1086 = trunc nuw i8 %1085 to i1
  br i1 %1086, label %1087, label %1091

1087:                                             ; preds = %1081
  %1088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1089 = call i32 @fileno(ptr noundef %1088) #13
  %1090 = call i32 @isatty(i32 noundef %1089) #13
  %.not239 = icmp eq i32 %1090, 0
  br i1 %.not239, label %1091, label %1092

1091:                                             ; preds = %1087, %1081
  br label %1092

1092:                                             ; preds = %1087, %1091
  %.str.5.sink614 = phi ptr [ @.str.5, %1091 ], [ @.str.2, %1087 ]
  store i32 %1082, ptr %197, align 4, !tbaa !5
  %1093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1094 = load i32, ptr @test_count, align 4, !tbaa !5
  %1095 = load i32, ptr %143, align 4, !tbaa !5
  %1096 = call ptr @s2n_strerror(i32 noundef %1095, ptr noundef nonnull @.str.4) #13
  %1097 = load i32, ptr %143, align 4, !tbaa !5
  %1098 = call ptr @s2n_strerror_debug(i32 noundef %1097, ptr noundef nonnull @.str.4) #13
  %1099 = load i32, ptr %197, align 4, !tbaa !5
  %1100 = call ptr @strerror(i32 noundef %1099) #13
  %1101 = load i32, ptr %197, align 4, !tbaa !5
  %1102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1093, ptr noundef nonnull %.str.5.sink614, i32 noundef %1094, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %1096, ptr noundef %1098, ptr noundef %1100, i32 noundef %1101) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1103:                                             ; preds = %1072
  %1104 = load i32, ptr @test_count, align 4, !tbaa !5
  %1105 = add nsw i32 %1104, 1
  store i32 %1105, ptr @test_count, align 4, !tbaa !5
  %1106 = load ptr, ptr %12, align 8, !tbaa !9
  %1107 = call i32 @s2n_write_npn_protocol(ptr noundef %1106, ptr noundef nonnull %14) #13
  %1108 = call zeroext i1 @s2n_result_is_ok(i32 %1107)
  br i1 %1108, label %1131, label %1109

1109:                                             ; preds = %1103
  %1110 = load i32, ptr %197, align 4, !tbaa !5
  %1111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1112 = call i32 @s2n_print_stacktrace(ptr noundef %1111) #13
  %1113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1114 = trunc nuw i8 %1113 to i1
  br i1 %1114, label %1115, label %1119

1115:                                             ; preds = %1109
  %1116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1117 = call i32 @fileno(ptr noundef %1116) #13
  %1118 = call i32 @isatty(i32 noundef %1117) #13
  %.not206 = icmp eq i32 %1118, 0
  br i1 %.not206, label %1119, label %1120

1119:                                             ; preds = %1115, %1109
  br label %1120

1120:                                             ; preds = %1115, %1119
  %.str.5.sink623 = phi ptr [ @.str.5, %1119 ], [ @.str.2, %1115 ]
  store i32 %1110, ptr %197, align 4, !tbaa !5
  %1121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1122 = load i32, ptr @test_count, align 4, !tbaa !5
  %1123 = load i32, ptr %143, align 4, !tbaa !5
  %1124 = call ptr @s2n_strerror(i32 noundef %1123, ptr noundef nonnull @.str.4) #13
  %1125 = load i32, ptr %143, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror_debug(i32 noundef %1125, ptr noundef nonnull @.str.4) #13
  %1127 = load i32, ptr %197, align 4, !tbaa !5
  %1128 = call ptr @strerror(i32 noundef %1127) #13
  %1129 = load i32, ptr %197, align 4, !tbaa !5
  %1130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1121, ptr noundef nonnull %.str.5.sink623, i32 noundef %1122, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %1124, ptr noundef %1126, ptr noundef %1128, i32 noundef %1129) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1131:                                             ; preds = %1103
  %1132 = load i32, ptr @test_count, align 4, !tbaa !5
  %1133 = add nsw i32 %1132, 1
  store i32 %1133, ptr @test_count, align 4, !tbaa !5
  %1134 = load ptr, ptr %13, align 8, !tbaa !9
  %1135 = call i32 @s2n_read_npn_protocol(ptr noundef %1134, ptr noundef nonnull %14) #13
  %1136 = call zeroext i1 @s2n_result_is_ok(i32 %1135)
  br i1 %1136, label %1159, label %1137

1137:                                             ; preds = %1131
  %1138 = load i32, ptr %197, align 4, !tbaa !5
  %1139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1140 = call i32 @s2n_print_stacktrace(ptr noundef %1139) #13
  %1141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1142 = trunc nuw i8 %1141 to i1
  br i1 %1142, label %1143, label %1147

1143:                                             ; preds = %1137
  %1144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1145 = call i32 @fileno(ptr noundef %1144) #13
  %1146 = call i32 @isatty(i32 noundef %1145) #13
  %.not207 = icmp eq i32 %1146, 0
  br i1 %.not207, label %1147, label %1148

1147:                                             ; preds = %1143, %1137
  br label %1148

1148:                                             ; preds = %1143, %1147
  %.str.5.sink632 = phi ptr [ @.str.5, %1147 ], [ @.str.2, %1143 ]
  store i32 %1138, ptr %197, align 4, !tbaa !5
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = load i32, ptr @test_count, align 4, !tbaa !5
  %1151 = load i32, ptr %143, align 4, !tbaa !5
  %1152 = call ptr @s2n_strerror(i32 noundef %1151, ptr noundef nonnull @.str.4) #13
  %1153 = load i32, ptr %143, align 4, !tbaa !5
  %1154 = call ptr @s2n_strerror_debug(i32 noundef %1153, ptr noundef nonnull @.str.4) #13
  %1155 = load i32, ptr %197, align 4, !tbaa !5
  %1156 = call ptr @strerror(i32 noundef %1155) #13
  %1157 = load i32, ptr %197, align 4, !tbaa !5
  %1158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1149, ptr noundef nonnull %.str.5.sink632, i32 noundef %1150, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1152, ptr noundef %1154, ptr noundef %1156, i32 noundef %1157) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1159:                                             ; preds = %1131
  %1160 = load i32, ptr @test_count, align 4, !tbaa !5
  %1161 = add nsw i32 %1160, 1
  store i32 %1161, ptr @test_count, align 4, !tbaa !5
  %1162 = load ptr, ptr %13, align 8, !tbaa !9
  %1163 = call ptr @s2n_get_application_protocol(ptr noundef %1162) #13
  %1164 = icmp eq ptr %1163, null
  br i1 %1164, label %1165, label %1187

1165:                                             ; preds = %1159
  %1166 = load i32, ptr %197, align 4, !tbaa !5
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = call i32 @s2n_print_stacktrace(ptr noundef %1167) #13
  %1169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1170 = trunc nuw i8 %1169 to i1
  br i1 %1170, label %1171, label %1175

1171:                                             ; preds = %1165
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = call i32 @fileno(ptr noundef %1172) #13
  %1174 = call i32 @isatty(i32 noundef %1173) #13
  %.not238 = icmp eq i32 %1174, 0
  br i1 %.not238, label %1175, label %1176

1175:                                             ; preds = %1171, %1165
  br label %1176

1176:                                             ; preds = %1171, %1175
  %.str.5.sink641 = phi ptr [ @.str.5, %1175 ], [ @.str.2, %1171 ]
  store i32 %1166, ptr %197, align 4, !tbaa !5
  %1177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1178 = load i32, ptr @test_count, align 4, !tbaa !5
  %1179 = load i32, ptr %143, align 4, !tbaa !5
  %1180 = call ptr @s2n_strerror(i32 noundef %1179, ptr noundef nonnull @.str.4) #13
  %1181 = load i32, ptr %143, align 4, !tbaa !5
  %1182 = call ptr @s2n_strerror_debug(i32 noundef %1181, ptr noundef nonnull @.str.4) #13
  %1183 = load i32, ptr %197, align 4, !tbaa !5
  %1184 = call ptr @strerror(i32 noundef %1183) #13
  %1185 = load i32, ptr %197, align 4, !tbaa !5
  %1186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1177, ptr noundef nonnull %.str.5.sink641, i32 noundef %1178, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %1180, ptr noundef %1182, ptr noundef %1184, i32 noundef %1185) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1187:                                             ; preds = %1159
  %char0 = load i8, ptr %.sroa.0169.0.copyload, align 1
  %.not208 = icmp eq i8 %char0, 0
  br i1 %.not208, label %1217, label %1188

1188:                                             ; preds = %1187
  %1189 = load i32, ptr @test_count, align 4, !tbaa !5
  %1190 = add nsw i32 %1189, 1
  store i32 %1190, ptr @test_count, align 4, !tbaa !5
  %1191 = load ptr, ptr %13, align 8, !tbaa !9
  %1192 = call ptr @s2n_get_application_protocol(ptr noundef %1191) #13
  %1193 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.sroa.0169.0.copyload) #17
  %bcmp209 = call i32 @bcmp(ptr %1192, ptr nonnull %.sroa.0169.0.copyload, i64 %1193)
  %1194 = icmp eq i32 %bcmp209, 0
  br i1 %1194, label %1217, label %1195

1195:                                             ; preds = %1188
  %1196 = load i32, ptr %197, align 4, !tbaa !5
  %1197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1198 = call i32 @s2n_print_stacktrace(ptr noundef %1197) #13
  %1199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1200 = trunc nuw i8 %1199 to i1
  br i1 %1200, label %1201, label %1205

1201:                                             ; preds = %1195
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = call i32 @fileno(ptr noundef %1202) #13
  %1204 = call i32 @isatty(i32 noundef %1203) #13
  %.not210 = icmp eq i32 %1204, 0
  br i1 %.not210, label %1205, label %1206

1205:                                             ; preds = %1201, %1195
  br label %1206

1206:                                             ; preds = %1201, %1205
  %.str.5.sink650 = phi ptr [ @.str.5, %1205 ], [ @.str.2, %1201 ]
  store i32 %1196, ptr %197, align 4, !tbaa !5
  %1207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1208 = load i32, ptr @test_count, align 4, !tbaa !5
  %1209 = load i32, ptr %143, align 4, !tbaa !5
  %1210 = call ptr @s2n_strerror(i32 noundef %1209, ptr noundef nonnull @.str.4) #13
  %1211 = load i32, ptr %143, align 4, !tbaa !5
  %1212 = call ptr @s2n_strerror_debug(i32 noundef %1211, ptr noundef nonnull @.str.4) #13
  %1213 = load i32, ptr %197, align 4, !tbaa !5
  %1214 = call ptr @strerror(i32 noundef %1213) #13
  %1215 = load i32, ptr %197, align 4, !tbaa !5
  %1216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1207, ptr noundef nonnull %.str.5.sink650, i32 noundef %1208, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %1210, ptr noundef %1212, ptr noundef %1214, i32 noundef %1215) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1217:                                             ; preds = %1188, %1187
  %1218 = call i32 @s2n_stuffer_free(ptr noundef nonnull %14) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #13
  %1219 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %13) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #13
  %1220 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %12) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #13
  %1221 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %1221, ptr %15, align 8, !tbaa !9
  %1222 = load i32, ptr @test_count, align 4, !tbaa !5
  %1223 = add nsw i32 %1222, 1
  store i32 %1223, ptr @test_count, align 4, !tbaa !5
  %1224 = icmp eq ptr %1221, null
  br i1 %1224, label %1225, label %1247

1225:                                             ; preds = %1217
  %1226 = load i32, ptr %197, align 4, !tbaa !5
  %1227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1228 = call i32 @s2n_print_stacktrace(ptr noundef %1227) #13
  %1229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1230 = trunc nuw i8 %1229 to i1
  br i1 %1230, label %1231, label %1235

1231:                                             ; preds = %1225
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = call i32 @fileno(ptr noundef %1232) #13
  %1234 = call i32 @isatty(i32 noundef %1233) #13
  %.not237 = icmp eq i32 %1234, 0
  br i1 %.not237, label %1235, label %1236

1235:                                             ; preds = %1231, %1225
  br label %1236

1236:                                             ; preds = %1231, %1235
  %.str.5.sink659 = phi ptr [ @.str.5, %1235 ], [ @.str.2, %1231 ]
  store i32 %1226, ptr %197, align 4, !tbaa !5
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = load i32, ptr @test_count, align 4, !tbaa !5
  %1239 = load i32, ptr %143, align 4, !tbaa !5
  %1240 = call ptr @s2n_strerror(i32 noundef %1239, ptr noundef nonnull @.str.4) #13
  %1241 = load i32, ptr %143, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror_debug(i32 noundef %1241, ptr noundef nonnull @.str.4) #13
  %1243 = load i32, ptr %197, align 4, !tbaa !5
  %1244 = call ptr @strerror(i32 noundef %1243) #13
  %1245 = load i32, ptr %197, align 4, !tbaa !5
  %1246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1237, ptr noundef nonnull %.str.5.sink659, i32 noundef %1238, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %1240, ptr noundef %1242, ptr noundef %1244, i32 noundef %1245) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1247:                                             ; preds = %1217
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %16) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %16, i8 0, i64 40, i1 false)
  %1248 = add nsw i32 %1222, 2
  store i32 %1248, ptr @test_count, align 4, !tbaa !5
  %1249 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %16, i32 noundef 0) #13
  %1250 = icmp eq i32 %1249, -1
  br i1 %1250, label %1251, label %1273

1251:                                             ; preds = %1247
  %1252 = load i32, ptr %197, align 4, !tbaa !5
  %1253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1254 = call i32 @s2n_print_stacktrace(ptr noundef %1253) #13
  %1255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1256 = trunc nuw i8 %1255 to i1
  br i1 %1256, label %1257, label %1261

1257:                                             ; preds = %1251
  %1258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1259 = call i32 @fileno(ptr noundef %1258) #13
  %1260 = call i32 @isatty(i32 noundef %1259) #13
  %.not236 = icmp eq i32 %1260, 0
  br i1 %.not236, label %1261, label %1262

1261:                                             ; preds = %1257, %1251
  br label %1262

1262:                                             ; preds = %1257, %1261
  %.str.5.sink668 = phi ptr [ @.str.5, %1261 ], [ @.str.2, %1257 ]
  store i32 %1252, ptr %197, align 4, !tbaa !5
  %1263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1264 = load i32, ptr @test_count, align 4, !tbaa !5
  %1265 = load i32, ptr %143, align 4, !tbaa !5
  %1266 = call ptr @s2n_strerror(i32 noundef %1265, ptr noundef nonnull @.str.4) #13
  %1267 = load i32, ptr %143, align 4, !tbaa !5
  %1268 = call ptr @s2n_strerror_debug(i32 noundef %1267, ptr noundef nonnull @.str.4) #13
  %1269 = load i32, ptr %197, align 4, !tbaa !5
  %1270 = call ptr @strerror(i32 noundef %1269) #13
  %1271 = load i32, ptr %197, align 4, !tbaa !5
  %1272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1263, ptr noundef nonnull %.str.5.sink668, i32 noundef %1264, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 145, ptr noundef %1266, ptr noundef %1268, ptr noundef %1270, i32 noundef %1271) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1273:                                             ; preds = %1247
  %1274 = load i32, ptr @test_count, align 4, !tbaa !5
  %1275 = add nsw i32 %1274, 1
  store i32 %1275, ptr @test_count, align 4, !tbaa !5
  %1276 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %16, i8 noundef zeroext 0) #13
  %1277 = icmp eq i32 %1276, -1
  br i1 %1277, label %1278, label %1300

1278:                                             ; preds = %1273
  %1279 = load i32, ptr %197, align 4, !tbaa !5
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = call i32 @s2n_print_stacktrace(ptr noundef %1280) #13
  %1282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1283 = trunc nuw i8 %1282 to i1
  br i1 %1283, label %1284, label %1288

1284:                                             ; preds = %1278
  %1285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1286 = call i32 @fileno(ptr noundef %1285) #13
  %1287 = call i32 @isatty(i32 noundef %1286) #13
  %.not235 = icmp eq i32 %1287, 0
  br i1 %.not235, label %1288, label %1289

1288:                                             ; preds = %1284, %1278
  br label %1289

1289:                                             ; preds = %1284, %1288
  %.str.5.sink677 = phi ptr [ @.str.5, %1288 ], [ @.str.2, %1284 ]
  store i32 %1279, ptr %197, align 4, !tbaa !5
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = load i32, ptr @test_count, align 4, !tbaa !5
  %1292 = load i32, ptr %143, align 4, !tbaa !5
  %1293 = call ptr @s2n_strerror(i32 noundef %1292, ptr noundef nonnull @.str.4) #13
  %1294 = load i32, ptr %143, align 4, !tbaa !5
  %1295 = call ptr @s2n_strerror_debug(i32 noundef %1294, ptr noundef nonnull @.str.4) #13
  %1296 = load i32, ptr %197, align 4, !tbaa !5
  %1297 = call ptr @strerror(i32 noundef %1296) #13
  %1298 = load i32, ptr %197, align 4, !tbaa !5
  %1299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1290, ptr noundef nonnull %.str.5.sink677, i32 noundef %1291, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1293, ptr noundef %1295, ptr noundef %1297, i32 noundef %1298) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1300:                                             ; preds = %1273
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #13
  store i8 0, ptr %17, align 1, !tbaa !46
  %1301 = load i32, ptr @test_count, align 4, !tbaa !5
  %1302 = add nsw i32 %1301, 1
  store i32 %1302, ptr @test_count, align 4, !tbaa !5
  %1303 = call i32 @s2n_calculate_padding(i8 noundef zeroext 0, ptr noundef nonnull %17) #13
  %1304 = call zeroext i1 @s2n_result_is_ok(i32 %1303)
  br i1 %1304, label %1327, label %1305

1305:                                             ; preds = %1300
  %1306 = load i32, ptr %197, align 4, !tbaa !5
  %1307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1308 = call i32 @s2n_print_stacktrace(ptr noundef %1307) #13
  %1309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1310 = trunc nuw i8 %1309 to i1
  br i1 %1310, label %1311, label %1315

1311:                                             ; preds = %1305
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = call i32 @fileno(ptr noundef %1312) #13
  %1314 = call i32 @isatty(i32 noundef %1313) #13
  %.not211 = icmp eq i32 %1314, 0
  br i1 %.not211, label %1315, label %1316

1315:                                             ; preds = %1311, %1305
  br label %1316

1316:                                             ; preds = %1311, %1315
  %.str.5.sink686 = phi ptr [ @.str.5, %1315 ], [ @.str.2, %1311 ]
  store i32 %1306, ptr %197, align 4, !tbaa !5
  %1317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1318 = load i32, ptr @test_count, align 4, !tbaa !5
  %1319 = load i32, ptr %143, align 4, !tbaa !5
  %1320 = call ptr @s2n_strerror(i32 noundef %1319, ptr noundef nonnull @.str.4) #13
  %1321 = load i32, ptr %143, align 4, !tbaa !5
  %1322 = call ptr @s2n_strerror_debug(i32 noundef %1321, ptr noundef nonnull @.str.4) #13
  %1323 = load i32, ptr %197, align 4, !tbaa !5
  %1324 = call ptr @strerror(i32 noundef %1323) #13
  %1325 = load i32, ptr %197, align 4, !tbaa !5
  %1326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1317, ptr noundef nonnull %.str.5.sink686, i32 noundef %1318, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %1320, ptr noundef %1322, ptr noundef %1324, i32 noundef %1325) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1327:                                             ; preds = %1300
  %1328 = load i32, ptr @test_count, align 4, !tbaa !5
  %1329 = add nsw i32 %1328, 1
  store i32 %1329, ptr @test_count, align 4, !tbaa !5
  %1330 = load i8, ptr %17, align 1, !tbaa !46
  %1331 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %16, i8 noundef zeroext %1330) #13
  %1332 = icmp eq i32 %1331, -1
  br i1 %1332, label %1334, label %.preheader

.preheader:                                       ; preds = %1327
  %1333 = load i8, ptr %17, align 1, !tbaa !46
  %.not272 = icmp eq i8 %1333, 0
  br i1 %.not272, label %._crit_edge269, label %.lr.ph268

1334:                                             ; preds = %1327
  %1335 = load i32, ptr %197, align 4, !tbaa !5
  %1336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1337 = call i32 @s2n_print_stacktrace(ptr noundef %1336) #13
  %1338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1339 = trunc nuw i8 %1338 to i1
  br i1 %1339, label %1340, label %1344

1340:                                             ; preds = %1334
  %1341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1342 = call i32 @fileno(ptr noundef %1341) #13
  %1343 = call i32 @isatty(i32 noundef %1342) #13
  %.not234 = icmp eq i32 %1343, 0
  br i1 %.not234, label %1344, label %1345

1344:                                             ; preds = %1340, %1334
  br label %1345

1345:                                             ; preds = %1340, %1344
  %.str.5.sink695 = phi ptr [ @.str.5, %1344 ], [ @.str.2, %1340 ]
  store i32 %1335, ptr %197, align 4, !tbaa !5
  %1346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1347 = load i32, ptr @test_count, align 4, !tbaa !5
  %1348 = load i32, ptr %143, align 4, !tbaa !5
  %1349 = call ptr @s2n_strerror(i32 noundef %1348, ptr noundef nonnull @.str.4) #13
  %1350 = load i32, ptr %143, align 4, !tbaa !5
  %1351 = call ptr @s2n_strerror_debug(i32 noundef %1350, ptr noundef nonnull @.str.4) #13
  %1352 = load i32, ptr %197, align 4, !tbaa !5
  %1353 = call ptr @strerror(i32 noundef %1352) #13
  %1354 = load i32, ptr %197, align 4, !tbaa !5
  %1355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1346, ptr noundef nonnull %.str.5.sink695, i32 noundef %1347, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %1349, ptr noundef %1351, ptr noundef %1353, i32 noundef %1354) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1356:                                             ; preds = %.lr.ph268
  %1357 = add nuw nsw i64 %.0184267, 1
  %1358 = load i8, ptr %17, align 1, !tbaa !46
  %1359 = zext i8 %1358 to i64
  %1360 = icmp ult i64 %1357, %1359
  br i1 %1360, label %.lr.ph268, label %._crit_edge269, !llvm.loop !49

._crit_edge269:                                   ; preds = %1356, %.preheader
  %1361 = load i32, ptr @test_count, align 4, !tbaa !5
  %1362 = add nsw i32 %1361, 1
  store i32 %1362, ptr @test_count, align 4, !tbaa !5
  %1363 = load ptr, ptr %15, align 8, !tbaa !9
  %1364 = call i32 @s2n_read_npn_protocol(ptr noundef %1363, ptr noundef nonnull %16) #13
  %1365 = call zeroext i1 @s2n_result_is_ok(i32 %1364)
  br i1 %1365, label %1414, label %1392

.lr.ph268:                                        ; preds = %.preheader, %1356
  %.0184267 = phi i64 [ %1357, %1356 ], [ 0, %.preheader ]
  %1366 = load i32, ptr @test_count, align 4, !tbaa !5
  %1367 = add nsw i32 %1366, 1
  store i32 %1367, ptr @test_count, align 4, !tbaa !5
  %1368 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %16, i8 noundef zeroext 0) #13
  %1369 = icmp eq i32 %1368, -1
  br i1 %1369, label %1370, label %1356

1370:                                             ; preds = %.lr.ph268
  %1371 = load i32, ptr %197, align 4, !tbaa !5
  %1372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1373 = call i32 @s2n_print_stacktrace(ptr noundef %1372) #13
  %1374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1375 = trunc nuw i8 %1374 to i1
  br i1 %1375, label %1376, label %1380

1376:                                             ; preds = %1370
  %1377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1378 = call i32 @fileno(ptr noundef %1377) #13
  %1379 = call i32 @isatty(i32 noundef %1378) #13
  %.not233 = icmp eq i32 %1379, 0
  br i1 %.not233, label %1380, label %1381

1380:                                             ; preds = %1376, %1370
  br label %1381

1381:                                             ; preds = %1376, %1380
  %.str.5.sink704 = phi ptr [ @.str.5, %1380 ], [ @.str.2, %1376 ]
  store i32 %1371, ptr %197, align 4, !tbaa !5
  %1382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1383 = load i32, ptr @test_count, align 4, !tbaa !5
  %1384 = load i32, ptr %143, align 4, !tbaa !5
  %1385 = call ptr @s2n_strerror(i32 noundef %1384, ptr noundef nonnull @.str.4) #13
  %1386 = load i32, ptr %143, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror_debug(i32 noundef %1386, ptr noundef nonnull @.str.4) #13
  %1388 = load i32, ptr %197, align 4, !tbaa !5
  %1389 = call ptr @strerror(i32 noundef %1388) #13
  %1390 = load i32, ptr %197, align 4, !tbaa !5
  %1391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1382, ptr noundef nonnull %.str.5.sink704, i32 noundef %1383, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1385, ptr noundef %1387, ptr noundef %1389, i32 noundef %1390) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1392:                                             ; preds = %._crit_edge269
  %1393 = load i32, ptr %197, align 4, !tbaa !5
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = call i32 @s2n_print_stacktrace(ptr noundef %1394) #13
  %1396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1397 = trunc nuw i8 %1396 to i1
  br i1 %1397, label %1398, label %1402

1398:                                             ; preds = %1392
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = call i32 @fileno(ptr noundef %1399) #13
  %1401 = call i32 @isatty(i32 noundef %1400) #13
  %.not212 = icmp eq i32 %1401, 0
  br i1 %.not212, label %1402, label %1403

1402:                                             ; preds = %1398, %1392
  br label %1403

1403:                                             ; preds = %1398, %1402
  %.str.5.sink713 = phi ptr [ @.str.5, %1402 ], [ @.str.2, %1398 ]
  store i32 %1393, ptr %197, align 4, !tbaa !5
  %1404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1405 = load i32, ptr @test_count, align 4, !tbaa !5
  %1406 = load i32, ptr %143, align 4, !tbaa !5
  %1407 = call ptr @s2n_strerror(i32 noundef %1406, ptr noundef nonnull @.str.4) #13
  %1408 = load i32, ptr %143, align 4, !tbaa !5
  %1409 = call ptr @s2n_strerror_debug(i32 noundef %1408, ptr noundef nonnull @.str.4) #13
  %1410 = load i32, ptr %197, align 4, !tbaa !5
  %1411 = call ptr @strerror(i32 noundef %1410) #13
  %1412 = load i32, ptr %197, align 4, !tbaa !5
  %1413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1404, ptr noundef nonnull %.str.5.sink713, i32 noundef %1405, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %1407, ptr noundef %1409, ptr noundef %1411, i32 noundef %1412) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1414:                                             ; preds = %._crit_edge269
  %1415 = load i32, ptr @test_count, align 4, !tbaa !5
  %1416 = add nsw i32 %1415, 1
  store i32 %1416, ptr @test_count, align 4, !tbaa !5
  %1417 = load ptr, ptr %15, align 8, !tbaa !9
  %1418 = call ptr @s2n_get_application_protocol(ptr noundef %1417) #13
  %1419 = icmp eq ptr %1418, null
  br i1 %1419, label %1442, label %1420

1420:                                             ; preds = %1414
  %1421 = load i32, ptr %197, align 4, !tbaa !5
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = call i32 @s2n_print_stacktrace(ptr noundef %1422) #13
  %1424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1425 = trunc nuw i8 %1424 to i1
  br i1 %1425, label %1426, label %1430

1426:                                             ; preds = %1420
  %1427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1428 = call i32 @fileno(ptr noundef %1427) #13
  %1429 = call i32 @isatty(i32 noundef %1428) #13
  %.not213 = icmp eq i32 %1429, 0
  br i1 %.not213, label %1430, label %1431

1430:                                             ; preds = %1426, %1420
  br label %1431

1431:                                             ; preds = %1426, %1430
  %.str.5.sink722 = phi ptr [ @.str.5, %1430 ], [ @.str.2, %1426 ]
  store i32 %1421, ptr %197, align 4, !tbaa !5
  %1432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1433 = load i32, ptr @test_count, align 4, !tbaa !5
  %1434 = load i32, ptr %143, align 4, !tbaa !5
  %1435 = call ptr @s2n_strerror(i32 noundef %1434, ptr noundef nonnull @.str.4) #13
  %1436 = load i32, ptr %143, align 4, !tbaa !5
  %1437 = call ptr @s2n_strerror_debug(i32 noundef %1436, ptr noundef nonnull @.str.4) #13
  %1438 = load i32, ptr %197, align 4, !tbaa !5
  %1439 = call ptr @strerror(i32 noundef %1438) #13
  %1440 = load i32, ptr %197, align 4, !tbaa !5
  %1441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1432, ptr noundef nonnull %.str.5.sink722, i32 noundef %1433, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1435, ptr noundef %1437, ptr noundef %1439, i32 noundef %1440) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1442:                                             ; preds = %1414
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #13
  %1443 = call i32 @s2n_stuffer_free(ptr noundef nonnull %16) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #13
  %1444 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %15) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #13
  %1445 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %1445, ptr %18, align 8, !tbaa !9
  %1446 = load i32, ptr @test_count, align 4, !tbaa !5
  %1447 = add nsw i32 %1446, 1
  store i32 %1447, ptr @test_count, align 4, !tbaa !5
  %1448 = icmp eq ptr %1445, null
  br i1 %1448, label %1449, label %1471

1449:                                             ; preds = %1442
  %1450 = load i32, ptr %197, align 4, !tbaa !5
  %1451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1452 = call i32 @s2n_print_stacktrace(ptr noundef %1451) #13
  %1453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1454 = trunc nuw i8 %1453 to i1
  br i1 %1454, label %1455, label %1459

1455:                                             ; preds = %1449
  %1456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1457 = call i32 @fileno(ptr noundef %1456) #13
  %1458 = call i32 @isatty(i32 noundef %1457) #13
  %.not232 = icmp eq i32 %1458, 0
  br i1 %.not232, label %1459, label %1460

1459:                                             ; preds = %1455, %1449
  br label %1460

1460:                                             ; preds = %1455, %1459
  %.str.5.sink731 = phi ptr [ @.str.5, %1459 ], [ @.str.2, %1455 ]
  store i32 %1450, ptr %197, align 4, !tbaa !5
  %1461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1462 = load i32, ptr @test_count, align 4, !tbaa !5
  %1463 = load i32, ptr %143, align 4, !tbaa !5
  %1464 = call ptr @s2n_strerror(i32 noundef %1463, ptr noundef nonnull @.str.4) #13
  %1465 = load i32, ptr %143, align 4, !tbaa !5
  %1466 = call ptr @s2n_strerror_debug(i32 noundef %1465, ptr noundef nonnull @.str.4) #13
  %1467 = load i32, ptr %197, align 4, !tbaa !5
  %1468 = call ptr @strerror(i32 noundef %1467) #13
  %1469 = load i32, ptr %197, align 4, !tbaa !5
  %1470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1461, ptr noundef nonnull %.str.5.sink731, i32 noundef %1462, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %1464, ptr noundef %1466, ptr noundef %1468, i32 noundef %1469) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1471:                                             ; preds = %1442
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #13
  %1472 = load i8, ptr @__const.main.wire_bytes, align 1
  store i8 %1472, ptr %19, align 1
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %20) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %20, i8 0, i64 40, i1 false)
  %1473 = add nsw i32 %1446, 2
  store i32 %1473, ptr @test_count, align 4, !tbaa !5
  %1474 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %20, i32 noundef 0) #13
  %1475 = icmp eq i32 %1474, -1
  br i1 %1475, label %1476, label %1498

1476:                                             ; preds = %1471
  %1477 = load i32, ptr %197, align 4, !tbaa !5
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = call i32 @s2n_print_stacktrace(ptr noundef %1478) #13
  %1480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1481 = trunc nuw i8 %1480 to i1
  br i1 %1481, label %1482, label %1486

1482:                                             ; preds = %1476
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = call i32 @fileno(ptr noundef %1483) #13
  %1485 = call i32 @isatty(i32 noundef %1484) #13
  %.not231 = icmp eq i32 %1485, 0
  br i1 %.not231, label %1486, label %1487

1486:                                             ; preds = %1482, %1476
  br label %1487

1487:                                             ; preds = %1482, %1486
  %.str.5.sink740 = phi ptr [ @.str.5, %1486 ], [ @.str.2, %1482 ]
  store i32 %1477, ptr %197, align 4, !tbaa !5
  %1488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1489 = load i32, ptr @test_count, align 4, !tbaa !5
  %1490 = load i32, ptr %143, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror(i32 noundef %1490, ptr noundef nonnull @.str.4) #13
  %1492 = load i32, ptr %143, align 4, !tbaa !5
  %1493 = call ptr @s2n_strerror_debug(i32 noundef %1492, ptr noundef nonnull @.str.4) #13
  %1494 = load i32, ptr %197, align 4, !tbaa !5
  %1495 = call ptr @strerror(i32 noundef %1494) #13
  %1496 = load i32, ptr %197, align 4, !tbaa !5
  %1497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1488, ptr noundef nonnull %.str.5.sink740, i32 noundef %1489, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %1491, ptr noundef %1493, ptr noundef %1495, i32 noundef %1496) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1498:                                             ; preds = %1471
  %1499 = load i32, ptr @test_count, align 4, !tbaa !5
  %1500 = add nsw i32 %1499, 1
  store i32 %1500, ptr @test_count, align 4, !tbaa !5
  %1501 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %20, ptr noundef nonnull %19, i32 noundef 1) #13
  %1502 = icmp eq i32 %1501, -1
  br i1 %1502, label %1503, label %1525

1503:                                             ; preds = %1498
  %1504 = load i32, ptr %197, align 4, !tbaa !5
  %1505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1506 = call i32 @s2n_print_stacktrace(ptr noundef %1505) #13
  %1507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1508 = trunc nuw i8 %1507 to i1
  br i1 %1508, label %1509, label %1513

1509:                                             ; preds = %1503
  %1510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1511 = call i32 @fileno(ptr noundef %1510) #13
  %1512 = call i32 @isatty(i32 noundef %1511) #13
  %.not230 = icmp eq i32 %1512, 0
  br i1 %.not230, label %1513, label %1514

1513:                                             ; preds = %1509, %1503
  br label %1514

1514:                                             ; preds = %1509, %1513
  %.str.5.sink749 = phi ptr [ @.str.5, %1513 ], [ @.str.2, %1509 ]
  store i32 %1504, ptr %197, align 4, !tbaa !5
  %1515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1516 = load i32, ptr @test_count, align 4, !tbaa !5
  %1517 = load i32, ptr %143, align 4, !tbaa !5
  %1518 = call ptr @s2n_strerror(i32 noundef %1517, ptr noundef nonnull @.str.4) #13
  %1519 = load i32, ptr %143, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror_debug(i32 noundef %1519, ptr noundef nonnull @.str.4) #13
  %1521 = load i32, ptr %197, align 4, !tbaa !5
  %1522 = call ptr @strerror(i32 noundef %1521) #13
  %1523 = load i32, ptr %197, align 4, !tbaa !5
  %1524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1515, ptr noundef nonnull %.str.5.sink749, i32 noundef %1516, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1518, ptr noundef %1520, ptr noundef %1522, i32 noundef %1523) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1525:                                             ; preds = %1498
  %1526 = load i32, ptr @test_count, align 4, !tbaa !5
  %1527 = add nsw i32 %1526, 1
  store i32 %1527, ptr @test_count, align 4, !tbaa !5
  %1528 = load ptr, ptr %18, align 8, !tbaa !9
  %1529 = call i32 @s2n_read_npn_protocol(ptr noundef %1528, ptr noundef nonnull %20) #13
  %1530 = call zeroext i1 @s2n_result_is_error(i32 %1529)
  br i1 %1530, label %1553, label %1531

1531:                                             ; preds = %1525
  %1532 = load i32, ptr %197, align 4, !tbaa !5
  %1533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1534 = call i32 @s2n_print_stacktrace(ptr noundef %1533) #13
  %1535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1536 = trunc nuw i8 %1535 to i1
  br i1 %1536, label %1537, label %1541

1537:                                             ; preds = %1531
  %1538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1539 = call i32 @fileno(ptr noundef %1538) #13
  %1540 = call i32 @isatty(i32 noundef %1539) #13
  %.not214 = icmp eq i32 %1540, 0
  br i1 %.not214, label %1541, label %1542

1541:                                             ; preds = %1537, %1531
  br label %1542

1542:                                             ; preds = %1537, %1541
  %.str.5.sink758 = phi ptr [ @.str.5, %1541 ], [ @.str.2, %1537 ]
  store i32 %1532, ptr %197, align 4, !tbaa !5
  %1543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1544 = load i32, ptr @test_count, align 4, !tbaa !5
  %1545 = load i32, ptr %143, align 4, !tbaa !5
  %1546 = call ptr @s2n_strerror(i32 noundef %1545, ptr noundef nonnull @.str.4) #13
  %1547 = load i32, ptr %143, align 4, !tbaa !5
  %1548 = call ptr @s2n_strerror_debug(i32 noundef %1547, ptr noundef nonnull @.str.4) #13
  %1549 = load i32, ptr %197, align 4, !tbaa !5
  %1550 = call ptr @strerror(i32 noundef %1549) #13
  %1551 = load i32, ptr %197, align 4, !tbaa !5
  %1552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1543, ptr noundef nonnull %.str.5.sink758, i32 noundef %1544, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1546, ptr noundef %1548, ptr noundef %1550, i32 noundef %1551) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1553:                                             ; preds = %1525
  %1554 = load i32, ptr @test_count, align 4, !tbaa !5
  %1555 = add nsw i32 %1554, 1
  store i32 %1555, ptr @test_count, align 4, !tbaa !5
  %1556 = load i32, ptr %143, align 4, !tbaa !5
  %1557 = icmp eq i32 %1556, 402653193
  br i1 %1557, label %1580, label %1558

1558:                                             ; preds = %1553
  %1559 = load i32, ptr %197, align 4, !tbaa !5
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = call i32 @s2n_print_stacktrace(ptr noundef %1560) #13
  %1562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1563 = trunc nuw i8 %1562 to i1
  br i1 %1563, label %1564, label %1568

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

1568:                                             ; preds = %1564, %1558
  br label %1569

1569:                                             ; preds = %1564, %1568
  %.str.5.sink767 = phi ptr [ @.str.5, %1568 ], [ @.str.2, %1564 ]
  store i32 %1559, ptr %197, align 4, !tbaa !5
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = load i32, ptr @test_count, align 4, !tbaa !5
  %1572 = load i32, ptr %143, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror(i32 noundef %1572, ptr noundef nonnull @.str.4) #13
  %1574 = load i32, ptr %143, align 4, !tbaa !5
  %1575 = call ptr @s2n_strerror_debug(i32 noundef %1574, ptr noundef nonnull @.str.4) #13
  %1576 = load i32, ptr %197, align 4, !tbaa !5
  %1577 = call ptr @strerror(i32 noundef %1576) #13
  %1578 = load i32, ptr %197, align 4, !tbaa !5
  %1579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1570, ptr noundef nonnull %.str.5.sink767, i32 noundef %1571, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1573, ptr noundef %1575, ptr noundef %1577, i32 noundef %1578) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1580:                                             ; preds = %1553
  %1581 = add nsw i32 %1554, 2
  store i32 %1581, ptr @test_count, align 4, !tbaa !5
  %1582 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #13
  %1583 = icmp eq ptr %1582, null
  br i1 %1583, label %1584, label %1606

1584:                                             ; preds = %1580
  %1585 = load i32, ptr %197, align 4, !tbaa !5
  %1586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1587 = call i32 @s2n_print_stacktrace(ptr noundef %1586) #13
  %1588 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1589 = trunc nuw i8 %1588 to i1
  br i1 %1589, label %1590, label %1594

1590:                                             ; preds = %1584
  %1591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1592 = call i32 @fileno(ptr noundef %1591) #13
  %1593 = call i32 @isatty(i32 noundef %1592) #13
  %.not229 = icmp eq i32 %1593, 0
  br i1 %.not229, label %1594, label %1595

1594:                                             ; preds = %1590, %1584
  br label %1595

1595:                                             ; preds = %1590, %1594
  %.str.5.sink776 = phi ptr [ @.str.5, %1594 ], [ @.str.2, %1590 ]
  store i32 %1585, ptr %197, align 4, !tbaa !5
  %1596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1597 = load i32, ptr @test_count, align 4, !tbaa !5
  %1598 = load i32, ptr %143, align 4, !tbaa !5
  %1599 = call ptr @s2n_strerror(i32 noundef %1598, ptr noundef nonnull @.str.4) #13
  %1600 = load i32, ptr %143, align 4, !tbaa !5
  %1601 = call ptr @s2n_strerror_debug(i32 noundef %1600, ptr noundef nonnull @.str.4) #13
  %1602 = load i32, ptr %197, align 4, !tbaa !5
  %1603 = call ptr @strerror(i32 noundef %1602) #13
  %1604 = load i32, ptr %197, align 4, !tbaa !5
  %1605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1596, ptr noundef nonnull %.str.5.sink776, i32 noundef %1597, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1599, ptr noundef %1601, ptr noundef %1603, i32 noundef %1604) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1606:                                             ; preds = %1580
  store i32 0, ptr %143, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %197, align 4, !tbaa !5
  %1607 = call i32 @s2n_stuffer_free(ptr noundef nonnull %20) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #13
  %1608 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %18) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #13
  %1609 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %1609, ptr %21, align 8, !tbaa !9
  %1610 = load i32, ptr @test_count, align 4, !tbaa !5
  %1611 = add nsw i32 %1610, 1
  store i32 %1611, ptr @test_count, align 4, !tbaa !5
  %1612 = icmp eq ptr %1609, null
  br i1 %1612, label %1613, label %1635

1613:                                             ; preds = %1606
  %1614 = load i32, ptr %197, align 4, !tbaa !5
  %1615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1616 = call i32 @s2n_print_stacktrace(ptr noundef %1615) #13
  %1617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1618 = trunc nuw i8 %1617 to i1
  br i1 %1618, label %1619, label %1623

1619:                                             ; preds = %1613
  %1620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1621 = call i32 @fileno(ptr noundef %1620) #13
  %1622 = call i32 @isatty(i32 noundef %1621) #13
  %.not228 = icmp eq i32 %1622, 0
  br i1 %.not228, label %1623, label %1624

1623:                                             ; preds = %1619, %1613
  br label %1624

1624:                                             ; preds = %1619, %1623
  %.str.5.sink785 = phi ptr [ @.str.5, %1623 ], [ @.str.2, %1619 ]
  store i32 %1614, ptr %197, align 4, !tbaa !5
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = load i32, ptr @test_count, align 4, !tbaa !5
  %1627 = load i32, ptr %143, align 4, !tbaa !5
  %1628 = call ptr @s2n_strerror(i32 noundef %1627, ptr noundef nonnull @.str.4) #13
  %1629 = load i32, ptr %143, align 4, !tbaa !5
  %1630 = call ptr @s2n_strerror_debug(i32 noundef %1629, ptr noundef nonnull @.str.4) #13
  %1631 = load i32, ptr %197, align 4, !tbaa !5
  %1632 = call ptr @strerror(i32 noundef %1631) #13
  %1633 = load i32, ptr %197, align 4, !tbaa !5
  %1634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1625, ptr noundef nonnull %.str.5.sink785, i32 noundef %1626, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %1628, ptr noundef %1630, ptr noundef %1632, i32 noundef %1633) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1635:                                             ; preds = %1606
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #13
  %1636 = load i32, ptr @__const.main.wire_bytes.46, align 1
  store i32 %1636, ptr %22, align 4
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %23) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %23, i8 0, i64 40, i1 false)
  %1637 = add nsw i32 %1610, 2
  store i32 %1637, ptr @test_count, align 4, !tbaa !5
  %1638 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %23, i32 noundef 0) #13
  %1639 = icmp eq i32 %1638, -1
  br i1 %1639, label %1640, label %1662

1640:                                             ; preds = %1635
  %1641 = load i32, ptr %197, align 4, !tbaa !5
  %1642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1643 = call i32 @s2n_print_stacktrace(ptr noundef %1642) #13
  %1644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1645 = trunc nuw i8 %1644 to i1
  br i1 %1645, label %1646, label %1650

1646:                                             ; preds = %1640
  %1647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1648 = call i32 @fileno(ptr noundef %1647) #13
  %1649 = call i32 @isatty(i32 noundef %1648) #13
  %.not227 = icmp eq i32 %1649, 0
  br i1 %.not227, label %1650, label %1651

1650:                                             ; preds = %1646, %1640
  br label %1651

1651:                                             ; preds = %1646, %1650
  %.str.5.sink794 = phi ptr [ @.str.5, %1650 ], [ @.str.2, %1646 ]
  store i32 %1641, ptr %197, align 4, !tbaa !5
  %1652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1653 = load i32, ptr @test_count, align 4, !tbaa !5
  %1654 = load i32, ptr %143, align 4, !tbaa !5
  %1655 = call ptr @s2n_strerror(i32 noundef %1654, ptr noundef nonnull @.str.4) #13
  %1656 = load i32, ptr %143, align 4, !tbaa !5
  %1657 = call ptr @s2n_strerror_debug(i32 noundef %1656, ptr noundef nonnull @.str.4) #13
  %1658 = load i32, ptr %197, align 4, !tbaa !5
  %1659 = call ptr @strerror(i32 noundef %1658) #13
  %1660 = load i32, ptr %197, align 4, !tbaa !5
  %1661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1652, ptr noundef nonnull %.str.5.sink794, i32 noundef %1653, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 191, ptr noundef %1655, ptr noundef %1657, ptr noundef %1659, i32 noundef %1660) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1662:                                             ; preds = %1635
  %1663 = load i32, ptr @test_count, align 4, !tbaa !5
  %1664 = add nsw i32 %1663, 1
  store i32 %1664, ptr @test_count, align 4, !tbaa !5
  %1665 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %23, ptr noundef nonnull %22, i32 noundef 4) #13
  %1666 = icmp eq i32 %1665, -1
  br i1 %1666, label %1667, label %1689

1667:                                             ; preds = %1662
  %1668 = load i32, ptr %197, align 4, !tbaa !5
  %1669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1670 = call i32 @s2n_print_stacktrace(ptr noundef %1669) #13
  %1671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1672 = trunc nuw i8 %1671 to i1
  br i1 %1672, label %1673, label %1677

1673:                                             ; preds = %1667
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = call i32 @fileno(ptr noundef %1674) #13
  %1676 = call i32 @isatty(i32 noundef %1675) #13
  %.not226 = icmp eq i32 %1676, 0
  br i1 %.not226, label %1677, label %1678

1677:                                             ; preds = %1673, %1667
  br label %1678

1678:                                             ; preds = %1673, %1677
  %.str.5.sink803 = phi ptr [ @.str.5, %1677 ], [ @.str.2, %1673 ]
  store i32 %1668, ptr %197, align 4, !tbaa !5
  %1679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1680 = load i32, ptr @test_count, align 4, !tbaa !5
  %1681 = load i32, ptr %143, align 4, !tbaa !5
  %1682 = call ptr @s2n_strerror(i32 noundef %1681, ptr noundef nonnull @.str.4) #13
  %1683 = load i32, ptr %143, align 4, !tbaa !5
  %1684 = call ptr @s2n_strerror_debug(i32 noundef %1683, ptr noundef nonnull @.str.4) #13
  %1685 = load i32, ptr %197, align 4, !tbaa !5
  %1686 = call ptr @strerror(i32 noundef %1685) #13
  %1687 = load i32, ptr %197, align 4, !tbaa !5
  %1688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1679, ptr noundef nonnull %.str.5.sink803, i32 noundef %1680, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %1682, ptr noundef %1684, ptr noundef %1686, i32 noundef %1687) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1689:                                             ; preds = %1662
  %1690 = load i32, ptr @test_count, align 4, !tbaa !5
  %1691 = add nsw i32 %1690, 1
  store i32 %1691, ptr @test_count, align 4, !tbaa !5
  %1692 = load ptr, ptr %21, align 8, !tbaa !9
  %1693 = call i32 @s2n_read_npn_protocol(ptr noundef %1692, ptr noundef nonnull %23) #13
  %1694 = call zeroext i1 @s2n_result_is_error(i32 %1693)
  br i1 %1694, label %1717, label %1695

1695:                                             ; preds = %1689
  %1696 = load i32, ptr %197, align 4, !tbaa !5
  %1697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1698 = call i32 @s2n_print_stacktrace(ptr noundef %1697) #13
  %1699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1700 = trunc nuw i8 %1699 to i1
  br i1 %1700, label %1701, label %1705

1701:                                             ; preds = %1695
  %1702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1703 = call i32 @fileno(ptr noundef %1702) #13
  %1704 = call i32 @isatty(i32 noundef %1703) #13
  %.not216 = icmp eq i32 %1704, 0
  br i1 %.not216, label %1705, label %1706

1705:                                             ; preds = %1701, %1695
  br label %1706

1706:                                             ; preds = %1701, %1705
  %.str.5.sink812 = phi ptr [ @.str.5, %1705 ], [ @.str.2, %1701 ]
  store i32 %1696, ptr %197, align 4, !tbaa !5
  %1707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1708 = load i32, ptr @test_count, align 4, !tbaa !5
  %1709 = load i32, ptr %143, align 4, !tbaa !5
  %1710 = call ptr @s2n_strerror(i32 noundef %1709, ptr noundef nonnull @.str.4) #13
  %1711 = load i32, ptr %143, align 4, !tbaa !5
  %1712 = call ptr @s2n_strerror_debug(i32 noundef %1711, ptr noundef nonnull @.str.4) #13
  %1713 = load i32, ptr %197, align 4, !tbaa !5
  %1714 = call ptr @strerror(i32 noundef %1713) #13
  %1715 = load i32, ptr %197, align 4, !tbaa !5
  %1716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1707, ptr noundef nonnull %.str.5.sink812, i32 noundef %1708, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %1710, ptr noundef %1712, ptr noundef %1714, i32 noundef %1715) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1717:                                             ; preds = %1689
  %1718 = load i32, ptr @test_count, align 4, !tbaa !5
  %1719 = add nsw i32 %1718, 1
  store i32 %1719, ptr @test_count, align 4, !tbaa !5
  %1720 = load i32, ptr %143, align 4, !tbaa !5
  %1721 = icmp eq i32 %1720, 402653194
  br i1 %1721, label %1744, label %1722

1722:                                             ; preds = %1717
  %1723 = load i32, ptr %197, align 4, !tbaa !5
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = call i32 @s2n_print_stacktrace(ptr noundef %1724) #13
  %1726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1727 = trunc nuw i8 %1726 to i1
  br i1 %1727, label %1728, label %1732

1728:                                             ; preds = %1722
  %1729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1730 = call i32 @fileno(ptr noundef %1729) #13
  %1731 = call i32 @isatty(i32 noundef %1730) #13
  %.not217 = icmp eq i32 %1731, 0
  br i1 %.not217, label %1732, label %1733

1732:                                             ; preds = %1728, %1722
  br label %1733

1733:                                             ; preds = %1728, %1732
  %.str.5.sink821 = phi ptr [ @.str.5, %1732 ], [ @.str.2, %1728 ]
  store i32 %1723, ptr %197, align 4, !tbaa !5
  %1734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1735 = load i32, ptr @test_count, align 4, !tbaa !5
  %1736 = load i32, ptr %143, align 4, !tbaa !5
  %1737 = call ptr @s2n_strerror(i32 noundef %1736, ptr noundef nonnull @.str.4) #13
  %1738 = load i32, ptr %143, align 4, !tbaa !5
  %1739 = call ptr @s2n_strerror_debug(i32 noundef %1738, ptr noundef nonnull @.str.4) #13
  %1740 = load i32, ptr %197, align 4, !tbaa !5
  %1741 = call ptr @strerror(i32 noundef %1740) #13
  %1742 = load i32, ptr %197, align 4, !tbaa !5
  %1743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1734, ptr noundef nonnull %.str.5.sink821, i32 noundef %1735, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %1737, ptr noundef %1739, ptr noundef %1741, i32 noundef %1742) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1744:                                             ; preds = %1717
  %1745 = add nsw i32 %1718, 2
  store i32 %1745, ptr @test_count, align 4, !tbaa !5
  %1746 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #13
  %1747 = icmp eq ptr %1746, null
  br i1 %1747, label %1748, label %1770

1748:                                             ; preds = %1744
  %1749 = load i32, ptr %197, align 4, !tbaa !5
  %1750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1751 = call i32 @s2n_print_stacktrace(ptr noundef %1750) #13
  %1752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1753 = trunc nuw i8 %1752 to i1
  br i1 %1753, label %1754, label %1758

1754:                                             ; preds = %1748
  %1755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1756 = call i32 @fileno(ptr noundef %1755) #13
  %1757 = call i32 @isatty(i32 noundef %1756) #13
  %.not225 = icmp eq i32 %1757, 0
  br i1 %.not225, label %1758, label %1759

1758:                                             ; preds = %1754, %1748
  br label %1759

1759:                                             ; preds = %1754, %1758
  %.str.5.sink830 = phi ptr [ @.str.5, %1758 ], [ @.str.2, %1754 ]
  store i32 %1749, ptr %197, align 4, !tbaa !5
  %1760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1761 = load i32, ptr @test_count, align 4, !tbaa !5
  %1762 = load i32, ptr %143, align 4, !tbaa !5
  %1763 = call ptr @s2n_strerror(i32 noundef %1762, ptr noundef nonnull @.str.4) #13
  %1764 = load i32, ptr %143, align 4, !tbaa !5
  %1765 = call ptr @s2n_strerror_debug(i32 noundef %1764, ptr noundef nonnull @.str.4) #13
  %1766 = load i32, ptr %197, align 4, !tbaa !5
  %1767 = call ptr @strerror(i32 noundef %1766) #13
  %1768 = load i32, ptr %197, align 4, !tbaa !5
  %1769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1760, ptr noundef nonnull %.str.5.sink830, i32 noundef %1761, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %1763, ptr noundef %1765, ptr noundef %1767, i32 noundef %1768) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1770:                                             ; preds = %1744
  store i32 0, ptr %143, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %197, align 4, !tbaa !5
  %1771 = call i32 @s2n_stuffer_free(ptr noundef nonnull %23) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %23) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #13
  %1772 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %21) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #13
  store i8 0, ptr %24, align 1, !tbaa !46
  %1773 = load i32, ptr @test_count, align 4, !tbaa !5
  %1774 = add nsw i32 %1773, 1
  store i32 %1774, ptr @test_count, align 4, !tbaa !5
  %1775 = load i8, ptr @__const.main.test_cases, align 1, !tbaa !50
  %1776 = call i32 @s2n_calculate_padding(i8 noundef zeroext %1775, ptr noundef nonnull %24) #13
  %1777 = call zeroext i1 @s2n_result_is_ok(i32 %1776)
  br i1 %1777, label %1800, label %1778

1778:                                             ; preds = %1872, %1861, %1850, %1839, %1828, %1770
  %1779 = load i32, ptr %197, align 4, !tbaa !5
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = call i32 @s2n_print_stacktrace(ptr noundef %1780) #13
  %1782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1783 = trunc nuw i8 %1782 to i1
  br i1 %1783, label %1784, label %1788

1784:                                             ; preds = %1778
  %1785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1786 = call i32 @fileno(ptr noundef %1785) #13
  %1787 = call i32 @isatty(i32 noundef %1786) #13
  %.not223 = icmp eq i32 %1787, 0
  br i1 %.not223, label %1788, label %1789

1788:                                             ; preds = %1784, %1778
  br label %1789

1789:                                             ; preds = %1784, %1788
  %.str.5.sink839 = phi ptr [ @.str.5, %1788 ], [ @.str.2, %1784 ]
  store i32 %1779, ptr %197, align 4, !tbaa !5
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = load i32, ptr @test_count, align 4, !tbaa !5
  %1792 = load i32, ptr %143, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror(i32 noundef %1792, ptr noundef nonnull @.str.4) #13
  %1794 = load i32, ptr %143, align 4, !tbaa !5
  %1795 = call ptr @s2n_strerror_debug(i32 noundef %1794, ptr noundef nonnull @.str.4) #13
  %1796 = load i32, ptr %197, align 4, !tbaa !5
  %1797 = call ptr @strerror(i32 noundef %1796) #13
  %1798 = load i32, ptr %197, align 4, !tbaa !5
  %1799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1790, ptr noundef nonnull %.str.5.sink839, i32 noundef %1791, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %1793, ptr noundef %1795, ptr noundef %1797, i32 noundef %1798) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1800:                                             ; preds = %1770
  %1801 = load i32, ptr @test_count, align 4, !tbaa !5
  %1802 = add nsw i32 %1801, 1
  store i32 %1802, ptr @test_count, align 4, !tbaa !5
  %1803 = load i8, ptr %24, align 1, !tbaa !46
  %1804 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 1), align 1, !tbaa !52
  %1805 = icmp eq i8 %1803, %1804
  br i1 %1805, label %1828, label %1806

1806:                                             ; preds = %1877, %1866, %1855, %1844, %1833, %1800
  %1807 = load i32, ptr %197, align 4, !tbaa !5
  %1808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1809 = call i32 @s2n_print_stacktrace(ptr noundef %1808) #13
  %1810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1811 = trunc nuw i8 %1810 to i1
  br i1 %1811, label %1812, label %1816

1812:                                             ; preds = %1806
  %1813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1814 = call i32 @fileno(ptr noundef %1813) #13
  %1815 = call i32 @isatty(i32 noundef %1814) #13
  %.not224 = icmp eq i32 %1815, 0
  br i1 %.not224, label %1816, label %1817

1816:                                             ; preds = %1812, %1806
  br label %1817

1817:                                             ; preds = %1812, %1816
  %.str.5.sink848 = phi ptr [ @.str.5, %1816 ], [ @.str.2, %1812 ]
  store i32 %1807, ptr %197, align 4, !tbaa !5
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = load i32, ptr @test_count, align 4, !tbaa !5
  %1820 = load i32, ptr %143, align 4, !tbaa !5
  %1821 = call ptr @s2n_strerror(i32 noundef %1820, ptr noundef nonnull @.str.4) #13
  %1822 = load i32, ptr %143, align 4, !tbaa !5
  %1823 = call ptr @s2n_strerror_debug(i32 noundef %1822, ptr noundef nonnull @.str.4) #13
  %1824 = load i32, ptr %197, align 4, !tbaa !5
  %1825 = call ptr @strerror(i32 noundef %1824) #13
  %1826 = load i32, ptr %197, align 4, !tbaa !5
  %1827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1818, ptr noundef nonnull %.str.5.sink848, i32 noundef %1819, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %1821, ptr noundef %1823, ptr noundef %1825, i32 noundef %1826) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1828:                                             ; preds = %1800
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #13
  store i8 0, ptr %24, align 1, !tbaa !46
  %1829 = add nsw i32 %1801, 2
  store i32 %1829, ptr @test_count, align 4, !tbaa !5
  %1830 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 2), align 1, !tbaa !50
  %1831 = call i32 @s2n_calculate_padding(i8 noundef zeroext %1830, ptr noundef nonnull %24) #13
  %1832 = call zeroext i1 @s2n_result_is_ok(i32 %1831)
  br i1 %1832, label %1833, label %1778

1833:                                             ; preds = %1828
  %1834 = load i32, ptr @test_count, align 4, !tbaa !5
  %1835 = add nsw i32 %1834, 1
  store i32 %1835, ptr @test_count, align 4, !tbaa !5
  %1836 = load i8, ptr %24, align 1, !tbaa !46
  %1837 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 3), align 1, !tbaa !52
  %1838 = icmp eq i8 %1836, %1837
  br i1 %1838, label %1839, label %1806

1839:                                             ; preds = %1833
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #13
  store i8 0, ptr %24, align 1, !tbaa !46
  %1840 = add nsw i32 %1834, 2
  store i32 %1840, ptr @test_count, align 4, !tbaa !5
  %1841 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 4), align 1, !tbaa !50
  %1842 = call i32 @s2n_calculate_padding(i8 noundef zeroext %1841, ptr noundef nonnull %24) #13
  %1843 = call zeroext i1 @s2n_result_is_ok(i32 %1842)
  br i1 %1843, label %1844, label %1778

1844:                                             ; preds = %1839
  %1845 = load i32, ptr @test_count, align 4, !tbaa !5
  %1846 = add nsw i32 %1845, 1
  store i32 %1846, ptr @test_count, align 4, !tbaa !5
  %1847 = load i8, ptr %24, align 1, !tbaa !46
  %1848 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 5), align 1, !tbaa !52
  %1849 = icmp eq i8 %1847, %1848
  br i1 %1849, label %1850, label %1806

1850:                                             ; preds = %1844
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #13
  store i8 0, ptr %24, align 1, !tbaa !46
  %1851 = add nsw i32 %1845, 2
  store i32 %1851, ptr @test_count, align 4, !tbaa !5
  %1852 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 6), align 1, !tbaa !50
  %1853 = call i32 @s2n_calculate_padding(i8 noundef zeroext %1852, ptr noundef nonnull %24) #13
  %1854 = call zeroext i1 @s2n_result_is_ok(i32 %1853)
  br i1 %1854, label %1855, label %1778

1855:                                             ; preds = %1850
  %1856 = load i32, ptr @test_count, align 4, !tbaa !5
  %1857 = add nsw i32 %1856, 1
  store i32 %1857, ptr @test_count, align 4, !tbaa !5
  %1858 = load i8, ptr %24, align 1, !tbaa !46
  %1859 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 7), align 1, !tbaa !52
  %1860 = icmp eq i8 %1858, %1859
  br i1 %1860, label %1861, label %1806

1861:                                             ; preds = %1855
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #13
  store i8 0, ptr %24, align 1, !tbaa !46
  %1862 = add nsw i32 %1856, 2
  store i32 %1862, ptr @test_count, align 4, !tbaa !5
  %1863 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 8), align 1, !tbaa !50
  %1864 = call i32 @s2n_calculate_padding(i8 noundef zeroext %1863, ptr noundef nonnull %24) #13
  %1865 = call zeroext i1 @s2n_result_is_ok(i32 %1864)
  br i1 %1865, label %1866, label %1778

1866:                                             ; preds = %1861
  %1867 = load i32, ptr @test_count, align 4, !tbaa !5
  %1868 = add nsw i32 %1867, 1
  store i32 %1868, ptr @test_count, align 4, !tbaa !5
  %1869 = load i8, ptr %24, align 1, !tbaa !46
  %1870 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 9), align 1, !tbaa !52
  %1871 = icmp eq i8 %1869, %1870
  br i1 %1871, label %1872, label %1806

1872:                                             ; preds = %1866
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #13
  store i8 0, ptr %24, align 1, !tbaa !46
  %1873 = add nsw i32 %1867, 2
  store i32 %1873, ptr @test_count, align 4, !tbaa !5
  %1874 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 10), align 1, !tbaa !50
  %1875 = call i32 @s2n_calculate_padding(i8 noundef zeroext %1874, ptr noundef nonnull %24) #13
  %1876 = call zeroext i1 @s2n_result_is_ok(i32 %1875)
  br i1 %1876, label %1877, label %1778

1877:                                             ; preds = %1872
  %1878 = load i32, ptr @test_count, align 4, !tbaa !5
  %1879 = add nsw i32 %1878, 1
  store i32 %1879, ptr @test_count, align 4, !tbaa !5
  %1880 = load i8, ptr %24, align 1, !tbaa !46
  %1881 = load i8, ptr getelementptr inbounds (i8, ptr @__const.main.test_cases, i64 11), align 1, !tbaa !52
  %1882 = icmp eq i8 %1880, %1881
  br i1 %1882, label %1883, label %1806

1883:                                             ; preds = %1877
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #13
  %1884 = call i32 @s2n_cleanup() #13
  %1885 = icmp eq i32 %1884, -1
  br i1 %1885, label %1886, label %1908

1886:                                             ; preds = %1883
  %1887 = load i32, ptr %197, align 4, !tbaa !5
  %1888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1889 = call i32 @s2n_print_stacktrace(ptr noundef %1888) #13
  %1890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1891 = trunc nuw i8 %1890 to i1
  br i1 %1891, label %1892, label %1896

1892:                                             ; preds = %1886
  %1893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1894 = call i32 @fileno(ptr noundef %1893) #13
  %1895 = call i32 @isatty(i32 noundef %1894) #13
  %.not222 = icmp eq i32 %1895, 0
  br i1 %.not222, label %1896, label %1897

1896:                                             ; preds = %1892, %1886
  br label %1897

1897:                                             ; preds = %1892, %1896
  %.str.5.sink857 = phi ptr [ @.str.5, %1896 ], [ @.str.2, %1892 ]
  store i32 %1887, ptr %197, align 4, !tbaa !5
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1899 = load i32, ptr @test_count, align 4, !tbaa !5
  %1900 = load i32, ptr %143, align 4, !tbaa !5
  %1901 = call ptr @s2n_strerror(i32 noundef %1900, ptr noundef nonnull @.str.4) #13
  %1902 = load i32, ptr %143, align 4, !tbaa !5
  %1903 = call ptr @s2n_strerror_debug(i32 noundef %1902, ptr noundef nonnull @.str.4) #13
  %1904 = load i32, ptr %197, align 4, !tbaa !5
  %1905 = call ptr @strerror(i32 noundef %1904) #13
  %1906 = load i32, ptr %197, align 4, !tbaa !5
  %1907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1898, ptr noundef nonnull %.str.5.sink857, i32 noundef %1899, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %1901, ptr noundef %1903, ptr noundef %1905, i32 noundef %1906) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1908:                                             ; preds = %1883
  %1909 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #13
  %1910 = icmp eq i32 %1909, -1
  br i1 %1910, label %1911, label %1933

1911:                                             ; preds = %1908
  %1912 = load i32, ptr %197, align 4, !tbaa !5
  %1913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1914 = call i32 @s2n_print_stacktrace(ptr noundef %1913) #13
  %1915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1916 = trunc nuw i8 %1915 to i1
  br i1 %1916, label %1917, label %1921

1917:                                             ; preds = %1911
  %1918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1919 = call i32 @fileno(ptr noundef %1918) #13
  %1920 = call i32 @isatty(i32 noundef %1919) #13
  %.not221 = icmp eq i32 %1920, 0
  br i1 %.not221, label %1921, label %1922

1921:                                             ; preds = %1917, %1911
  br label %1922

1922:                                             ; preds = %1917, %1921
  %.str.5.sink866 = phi ptr [ @.str.5, %1921 ], [ @.str.2, %1917 ]
  store i32 %1912, ptr %197, align 4, !tbaa !5
  %1923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1924 = load i32, ptr @test_count, align 4, !tbaa !5
  %1925 = load i32, ptr %143, align 4, !tbaa !5
  %1926 = call ptr @s2n_strerror(i32 noundef %1925, ptr noundef nonnull @.str.4) #13
  %1927 = load i32, ptr %143, align 4, !tbaa !5
  %1928 = call ptr @s2n_strerror_debug(i32 noundef %1927, ptr noundef nonnull @.str.4) #13
  %1929 = load i32, ptr %197, align 4, !tbaa !5
  %1930 = call ptr @strerror(i32 noundef %1929) #13
  %1931 = load i32, ptr %197, align 4, !tbaa !5
  %1932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1923, ptr noundef nonnull %.str.5.sink866, i32 noundef %1924, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %1926, ptr noundef %1928, ptr noundef %1930, i32 noundef %1931) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1933:                                             ; preds = %1908
  %1934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1935 = trunc nuw i8 %1934 to i1
  br i1 %1935, label %1936, label %1947

1936:                                             ; preds = %1933
  %1937 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1938 = call i32 @fileno(ptr noundef %1937) #13
  %1939 = call i32 @isatty(i32 noundef %1938) #13
  %.not218 = icmp eq i32 %1939, 0
  br i1 %.not218, label %1947, label %1940

1940:                                             ; preds = %1936
  %1941 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not220 = icmp eq i32 %1941, 0
  %1942 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not220, label %1945, label %1943

1943:                                             ; preds = %1940
  %1944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1942, ptr noundef nonnull @.str.52, i32 noundef %1941) #13
  br label %1954

1945:                                             ; preds = %1940
  %1946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1942, ptr noundef nonnull @.str.53) #13
  br label %1954

1947:                                             ; preds = %1936, %1933
  %1948 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not219 = icmp eq i32 %1948, 0
  %1949 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not219, label %1952, label %1950

1950:                                             ; preds = %1947
  %1951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1949, ptr noundef nonnull @.str.54, i32 noundef %1948) #13
  br label %1954

1952:                                             ; preds = %1947
  %1953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1949, ptr noundef nonnull @.str.55) #13
  br label %1954

1954:                                             ; preds = %1950, %1952, %1943, %1945
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #4

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #2

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) local_unnamed_addr #5

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #7

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #8

declare i32 @s2n_next_protocol_send(ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_next_protocol_recv(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #9

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #8

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 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) #10

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #11

declare i32 @s2n_write_npn_protocol(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint8(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_read_npn_protocol(ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_get_application_protocol(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_calculate_padding(i8 noundef zeroext, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) local_unnamed_addr #11

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #12

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 nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #11 = { 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 #12 = { nofree nounwind willreturn memory(argmem: read) }
attributes #13 = { nounwind }
attributes #14 = { nounwind willreturn memory(none) }
attributes #15 = { cold nounwind }
attributes #16 = { noreturn nounwind }
attributes #17 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 220}
!16 = !{!"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, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, 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}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, 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, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, 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}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!32, !6, i64 28}
!43 = !{!32, !6, i64 24}
!44 = !{!16, !6, i64 2044}
!45 = !{!16, !6, i64 2040}
!46 = !{!7, !7, i64 0}
!47 = distinct !{!47, !48}
!48 = !{!"llvm.loop.mustprogress"}
!49 = distinct !{!49, !48}
!50 = !{!51, !7, i64 0}
!51 = !{!"", !7, i64 0, !7, i64 1}
!52 = !{!51, !7, i64 1}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass