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

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

%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%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 [90 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [55 x i8], align 1
@__const.main.extension_data = external hidden unnamed_addr constant [5 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [99 x i8], align 1
@__const.main.test_extension_type = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.10 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [90 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 [100 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [112 x i8], align 1
@received_flag = external hidden global i8, align 1
@.str.18 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [73 x i8], align 1
@__const.main.test_required_extension_type = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.27 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [56 x i8], align 1
@__const.main.test_optional_extension_type = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.29 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_server_server_name_extension = external constant %struct.s2n_extension_type, align 8
@.str.32 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_server_max_fragment_length_extension = external constant %struct.s2n_extension_type, align 8
@.str.34 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [39 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() #0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca [5 x i8], align 1
  %7 = alloca %struct.s2n_blob, align 8
  %8 = alloca i32, align 4
  %9 = alloca %struct.s2n_extension_type, align 8
  %10 = alloca i8, align 1
  %11 = alloca i32, align 4
  %12 = alloca %struct.s2n_connection, align 8
  %13 = alloca %struct.s2n_parsed_extensions_list, align 8
  %14 = alloca %struct.s2n_extension_type, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca %struct.s2n_parsed_extensions_list, align 8
  %25 = alloca %struct.s2n_parsed_extension, align 8
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca i8, align 1
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca %struct.s2n_parsed_extensions_list, align 8
  %35 = alloca %struct.s2n_parsed_extension, align 8
  %36 = alloca ptr, align 8
  %37 = alloca i32, align 4
  %38 = alloca i8, align 1
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca %struct.s2n_parsed_extensions_list, align 8
  %48 = alloca %struct.s2n_blob, align 8
  %49 = alloca %struct.s2n_parsed_extension, align 8
  %50 = alloca ptr, align 8
  %51 = alloca i32, align 4
  %52 = alloca i8, align 1
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca %struct.s2n_parsed_extensions_list, align 8
  %59 = alloca %struct.s2n_parsed_extension, align 8
  %60 = alloca ptr, align 8
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i64, align 8
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca %struct.s2n_parsed_extensions_list, align 8
  %70 = alloca %struct.s2n_extension_type, align 8
  %71 = alloca ptr, align 8
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i64, align 8
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca %struct.s2n_parsed_extensions_list, align 8
  %81 = alloca %struct.s2n_extension_type, align 8
  %82 = alloca ptr, align 8
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca %struct.s2n_parsed_extension, align 8
  %89 = alloca %struct.s2n_parsed_extension, align 8
  %90 = alloca %struct.s2n_stuffer, align 8
  %91 = alloca i32, align 4
  %92 = alloca ptr, align 8
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i8, align 1
  %100 = alloca i8, align 1
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca %struct.s2n_connection, align 8
  %105 = alloca %struct.s2n_parsed_extensions_list, align 8
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca %struct.s2n_parsed_extensions_list, align 8
  %116 = alloca ptr, align 8
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i8, align 1
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca %struct.s2n_parsed_extensions_list, align 8
  %126 = alloca ptr, align 8
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i8, align 1
  %130 = alloca i32, align 4
  %131 = alloca i8, align 1
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca %struct.s2n_parsed_extensions_list, align 8
  %139 = alloca ptr, align 8
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i8, align 1
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i64, align 8
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  store i32 0, ptr %1, align 4
  br label %151

151:                                              ; preds = %0
  br label %152

152:                                              ; preds = %151
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %153 = load ptr, ptr @stdout, align 8, !tbaa !9
  %154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %153, ptr noundef @.str, ptr noundef @.str.1) #9
  %155 = load ptr, ptr @stdout, align 8, !tbaa !9
  %156 = call i32 @fflush(ptr noundef %155)
  br label %157

157:                                              ; preds = %152
  %158 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %159 = icmp eq i32 %158, -1
  br i1 %159, label %160, label %211

160:                                              ; preds = %157
  br label %161

161:                                              ; preds = %160
  br label %162

162:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #9
  %163 = call ptr @__errno_location() #10
  %164 = load i32, ptr %163, align 4, !tbaa !5
  store i32 %164, ptr %2, align 4, !tbaa !5
  %165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %166 = call i32 @s2n_print_stacktrace(ptr noundef %165)
  %167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %168 = trunc i8 %167 to i1
  br i1 %168, label %169, label %191

169:                                              ; preds = %162
  %170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %171 = call i32 @fileno(ptr noundef %170) #9
  %172 = call i32 @isatty(i32 noundef %171) #9
  %173 = icmp ne i32 %172, 0
  br i1 %173, label %174, label %191

174:                                              ; preds = %169
  %175 = load i32, ptr %2, align 4, !tbaa !5
  %176 = call ptr @__errno_location() #10
  store i32 %175, ptr %176, align 4, !tbaa !5
  %177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %178 = load i32, ptr @test_count, align 4, !tbaa !5
  %179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %180 = load i32, ptr %179, align 4, !tbaa !5
  %181 = call ptr @s2n_strerror(i32 noundef %180, ptr noundef @.str.4)
  %182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %183 = load i32, ptr %182, align 4, !tbaa !5
  %184 = call ptr @s2n_strerror_debug(i32 noundef %183, ptr noundef @.str.4)
  %185 = call ptr @__errno_location() #10
  %186 = load i32, ptr %185, align 4, !tbaa !5
  %187 = call ptr @strerror(i32 noundef %186) #9
  %188 = call ptr @__errno_location() #10
  %189 = load i32, ptr %188, align 4, !tbaa !5
  %190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %177, ptr noundef @.str.2, i32 noundef %178, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 62, ptr noundef %181, ptr noundef %184, ptr noundef %187, i32 noundef %189) #9
  br label %208

191:                                              ; preds = %169, %162
  %192 = load i32, ptr %2, align 4, !tbaa !5
  %193 = call ptr @__errno_location() #10
  store i32 %192, ptr %193, align 4, !tbaa !5
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = load i32, ptr @test_count, align 4, !tbaa !5
  %196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = call ptr @s2n_strerror(i32 noundef %197, ptr noundef @.str.4)
  %199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %200 = load i32, ptr %199, align 4, !tbaa !5
  %201 = call ptr @s2n_strerror_debug(i32 noundef %200, ptr noundef @.str.4)
  %202 = call ptr @__errno_location() #10
  %203 = load i32, ptr %202, align 4, !tbaa !5
  %204 = call ptr @strerror(i32 noundef %203) #9
  %205 = call ptr @__errno_location() #10
  %206 = load i32, ptr %205, align 4, !tbaa !5
  %207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %194, ptr noundef @.str.5, i32 noundef %195, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 62, ptr noundef %198, ptr noundef %201, ptr noundef %204, i32 noundef %206) #9
  br label %208

208:                                              ; preds = %191, %174
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #9
  br label %209

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

210:                                              ; No predecessors!
  br label %211

211:                                              ; preds = %210, %157
  br label %212

212:                                              ; preds = %211
  br label %213

213:                                              ; preds = %212
  %214 = load i32, ptr @test_count, align 4, !tbaa !5
  %215 = add nsw i32 %214, 1
  store i32 %215, ptr @test_count, align 4, !tbaa !5
  %216 = call i32 @s2n_enable_atexit()
  %217 = icmp eq i32 %216, -1
  br i1 %217, label %218, label %269

218:                                              ; preds = %213
  br label %219

219:                                              ; preds = %218
  br label %220

220:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #9
  %221 = call ptr @__errno_location() #10
  %222 = load i32, ptr %221, align 4, !tbaa !5
  store i32 %222, ptr %3, align 4, !tbaa !5
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = call i32 @s2n_print_stacktrace(ptr noundef %223)
  %225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %226 = trunc i8 %225 to i1
  br i1 %226, label %227, label %249

227:                                              ; preds = %220
  %228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %229 = call i32 @fileno(ptr noundef %228) #9
  %230 = call i32 @isatty(i32 noundef %229) #9
  %231 = icmp ne i32 %230, 0
  br i1 %231, label %232, label %249

232:                                              ; preds = %227
  %233 = load i32, ptr %3, align 4, !tbaa !5
  %234 = call ptr @__errno_location() #10
  store i32 %233, ptr %234, align 4, !tbaa !5
  %235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %238 = load i32, ptr %237, align 4, !tbaa !5
  %239 = call ptr @s2n_strerror(i32 noundef %238, ptr noundef @.str.4)
  %240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %241 = load i32, ptr %240, align 4, !tbaa !5
  %242 = call ptr @s2n_strerror_debug(i32 noundef %241, ptr noundef @.str.4)
  %243 = call ptr @__errno_location() #10
  %244 = load i32, ptr %243, align 4, !tbaa !5
  %245 = call ptr @strerror(i32 noundef %244) #9
  %246 = call ptr @__errno_location() #10
  %247 = load i32, ptr %246, align 4, !tbaa !5
  %248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %235, ptr noundef @.str.2, i32 noundef %236, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 62, ptr noundef %239, ptr noundef %242, ptr noundef %245, i32 noundef %247) #9
  br label %266

249:                                              ; preds = %227, %220
  %250 = load i32, ptr %3, align 4, !tbaa !5
  %251 = call ptr @__errno_location() #10
  store i32 %250, ptr %251, align 4, !tbaa !5
  %252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %253 = load i32, ptr @test_count, align 4, !tbaa !5
  %254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = call ptr @s2n_strerror(i32 noundef %255, ptr noundef @.str.4)
  %257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %258 = load i32, ptr %257, align 4, !tbaa !5
  %259 = call ptr @s2n_strerror_debug(i32 noundef %258, ptr noundef @.str.4)
  %260 = call ptr @__errno_location() #10
  %261 = load i32, ptr %260, align 4, !tbaa !5
  %262 = call ptr @strerror(i32 noundef %261) #9
  %263 = call ptr @__errno_location() #10
  %264 = load i32, ptr %263, align 4, !tbaa !5
  %265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %252, ptr noundef @.str.5, i32 noundef %253, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 62, ptr noundef %256, ptr noundef %259, ptr noundef %262, i32 noundef %264) #9
  br label %266

266:                                              ; preds = %249, %232
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #9
  br label %267

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

268:                                              ; No predecessors!
  br label %269

269:                                              ; preds = %268, %213
  br label %270

270:                                              ; preds = %269
  br label %271

271:                                              ; preds = %270
  br label %272

272:                                              ; preds = %271
  %273 = call i32 @s2n_init()
  %274 = icmp eq i32 %273, -1
  br i1 %274, label %275, label %326

275:                                              ; preds = %272
  br label %276

276:                                              ; preds = %275
  br label %277

277:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #9
  %278 = call ptr @__errno_location() #10
  %279 = load i32, ptr %278, align 4, !tbaa !5
  store i32 %279, ptr %4, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = call i32 @s2n_print_stacktrace(ptr noundef %280)
  %282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %283 = trunc i8 %282 to i1
  br i1 %283, label %284, label %306

284:                                              ; preds = %277
  %285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %286 = call i32 @fileno(ptr noundef %285) #9
  %287 = call i32 @isatty(i32 noundef %286) #9
  %288 = icmp ne i32 %287, 0
  br i1 %288, label %289, label %306

289:                                              ; preds = %284
  %290 = load i32, ptr %4, align 4, !tbaa !5
  %291 = call ptr @__errno_location() #10
  store i32 %290, ptr %291, align 4, !tbaa !5
  %292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %293 = load i32, ptr @test_count, align 4, !tbaa !5
  %294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %295 = load i32, ptr %294, align 4, !tbaa !5
  %296 = call ptr @s2n_strerror(i32 noundef %295, ptr noundef @.str.4)
  %297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %298 = load i32, ptr %297, align 4, !tbaa !5
  %299 = call ptr @s2n_strerror_debug(i32 noundef %298, ptr noundef @.str.4)
  %300 = call ptr @__errno_location() #10
  %301 = load i32, ptr %300, align 4, !tbaa !5
  %302 = call ptr @strerror(i32 noundef %301) #9
  %303 = call ptr @__errno_location() #10
  %304 = load i32, ptr %303, align 4, !tbaa !5
  %305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %292, ptr noundef @.str.2, i32 noundef %293, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 62, ptr noundef %296, ptr noundef %299, ptr noundef %302, i32 noundef %304) #9
  br label %323

306:                                              ; preds = %284, %277
  %307 = load i32, ptr %4, align 4, !tbaa !5
  %308 = call ptr @__errno_location() #10
  store i32 %307, ptr %308, align 4, !tbaa !5
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = call ptr @s2n_strerror(i32 noundef %312, ptr noundef @.str.4)
  %314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %315 = load i32, ptr %314, align 4, !tbaa !5
  %316 = call ptr @s2n_strerror_debug(i32 noundef %315, ptr noundef @.str.4)
  %317 = call ptr @__errno_location() #10
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = call ptr @strerror(i32 noundef %318) #9
  %320 = call ptr @__errno_location() #10
  %321 = load i32, ptr %320, align 4, !tbaa !5
  %322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %309, ptr noundef @.str.5, i32 noundef %310, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 62, ptr noundef %313, ptr noundef %316, ptr noundef %319, i32 noundef %321) #9
  br label %323

323:                                              ; preds = %306, %289
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #9
  br label %324

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

325:                                              ; No predecessors!
  br label %326

326:                                              ; preds = %325, %272
  br label %327

327:                                              ; preds = %326
  br label %328

328:                                              ; preds = %327
  br label %329

329:                                              ; preds = %328
  %330 = load i32, ptr @test_count, align 4, !tbaa !5
  %331 = add nsw i32 %330, 1
  store i32 %331, ptr @test_count, align 4, !tbaa !5
  %332 = call i32 (...) @s2n_enable_tls13_in_test()
  %333 = icmp eq i32 %332, -1
  br i1 %333, label %334, label %385

334:                                              ; preds = %329
  br label %335

335:                                              ; preds = %334
  br label %336

336:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #9
  %337 = call ptr @__errno_location() #10
  %338 = load i32, ptr %337, align 4, !tbaa !5
  store i32 %338, ptr %5, align 4, !tbaa !5
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = call i32 @s2n_print_stacktrace(ptr noundef %339)
  %341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %342 = trunc i8 %341 to i1
  br i1 %342, label %343, label %365

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

348:                                              ; preds = %343
  %349 = load i32, ptr %5, align 4, !tbaa !5
  %350 = call ptr @__errno_location() #10
  store i32 %349, ptr %350, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call ptr @s2n_strerror(i32 noundef %354, ptr noundef @.str.4)
  %356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = call ptr @s2n_strerror_debug(i32 noundef %357, ptr noundef @.str.4)
  %359 = call ptr @__errno_location() #10
  %360 = load i32, ptr %359, align 4, !tbaa !5
  %361 = call ptr @strerror(i32 noundef %360) #9
  %362 = call ptr @__errno_location() #10
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %351, ptr noundef @.str.2, i32 noundef %352, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 64, ptr noundef %355, ptr noundef %358, ptr noundef %361, i32 noundef %363) #9
  br label %382

365:                                              ; preds = %343, %336
  %366 = load i32, ptr %5, align 4, !tbaa !5
  %367 = call ptr @__errno_location() #10
  store i32 %366, ptr %367, align 4, !tbaa !5
  %368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %369 = load i32, ptr @test_count, align 4, !tbaa !5
  %370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call ptr @s2n_strerror(i32 noundef %371, ptr noundef @.str.4)
  %373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call ptr @s2n_strerror_debug(i32 noundef %374, ptr noundef @.str.4)
  %376 = call ptr @__errno_location() #10
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = call ptr @strerror(i32 noundef %377) #9
  %379 = call ptr @__errno_location() #10
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %368, ptr noundef @.str.5, i32 noundef %369, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 64, ptr noundef %372, ptr noundef %375, ptr noundef %378, i32 noundef %380) #9
  br label %382

382:                                              ; preds = %365, %348
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #9
  br label %383

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

384:                                              ; No predecessors!
  br label %385

385:                                              ; preds = %384, %329
  br label %386

386:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 5, ptr %6) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %6, ptr align 1 @__const.main.extension_data, i64 5, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %7) #9
  call void @llvm.memset.p0.i64(ptr align 8 %7, i8 0, i64 24, i1 false)
  br label %387

387:                                              ; preds = %386
  %388 = load i32, ptr @test_count, align 4, !tbaa !5
  %389 = add nsw i32 %388, 1
  store i32 %389, ptr @test_count, align 4, !tbaa !5
  %390 = getelementptr inbounds [5 x i8], ptr %6, i64 0, i64 0
  %391 = call i32 @s2n_blob_init(ptr noundef %7, ptr noundef %390, i32 noundef 5)
  %392 = icmp eq i32 %391, -1
  br i1 %392, label %393, label %446

393:                                              ; preds = %387
  br label %394

394:                                              ; preds = %393
  br label %395

395:                                              ; preds = %394
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  %396 = call ptr @__errno_location() #10
  %397 = load i32, ptr %396, align 4, !tbaa !5
  store i32 %397, ptr %8, align 4, !tbaa !5
  %398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %399 = call i32 @s2n_print_stacktrace(ptr noundef %398)
  %400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %401 = trunc i8 %400 to i1
  br i1 %401, label %402, label %424

402:                                              ; preds = %395
  %403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %404 = call i32 @fileno(ptr noundef %403) #9
  %405 = call i32 @isatty(i32 noundef %404) #9
  %406 = icmp ne i32 %405, 0
  br i1 %406, label %407, label %424

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

424:                                              ; preds = %402, %395
  %425 = load i32, ptr %8, align 4, !tbaa !5
  %426 = call ptr @__errno_location() #10
  store i32 %425, ptr %426, align 4, !tbaa !5
  %427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %428 = load i32, ptr @test_count, align 4, !tbaa !5
  %429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %430 = load i32, ptr %429, align 4, !tbaa !5
  %431 = call ptr @s2n_strerror(i32 noundef %430, ptr noundef @.str.4)
  %432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = call ptr @s2n_strerror_debug(i32 noundef %433, ptr noundef @.str.4)
  %435 = call ptr @__errno_location() #10
  %436 = load i32, ptr %435, align 4, !tbaa !5
  %437 = call ptr @strerror(i32 noundef %436) #9
  %438 = call ptr @__errno_location() #10
  %439 = load i32, ptr %438, align 4, !tbaa !5
  %440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %427, ptr noundef @.str.5, i32 noundef %428, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 70, ptr noundef %431, ptr noundef %434, ptr noundef %437, i32 noundef %439) #9
  br label %441

441:                                              ; preds = %424, %407
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %442

442:                                              ; preds = %441
  br label %443

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

444:                                              ; No predecessors!
  br label %445

445:                                              ; preds = %444
  br label %446

446:                                              ; preds = %445, %387
  br label %447

447:                                              ; preds = %446
  br label %448

448:                                              ; preds = %447
  call void @llvm.lifetime.start.p0(i64 40, ptr %9) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %9, ptr align 8 @__const.main.test_extension_type, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #9
  store i8 0, ptr %10, align 1, !tbaa !15
  br label %449

449:                                              ; preds = %448
  %450 = load i32, ptr @test_count, align 4, !tbaa !5
  %451 = add nsw i32 %450, 1
  store i32 %451, ptr @test_count, align 4, !tbaa !5
  %452 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext 43, ptr noundef %10)
  %453 = icmp eq i32 %452, -1
  br i1 %453, label %454, label %507

454:                                              ; preds = %449
  br label %455

455:                                              ; preds = %454
  br label %456

456:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  %457 = call ptr @__errno_location() #10
  %458 = load i32, ptr %457, align 4, !tbaa !5
  store i32 %458, ptr %11, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @s2n_print_stacktrace(ptr noundef %459)
  %461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %462 = trunc i8 %461 to i1
  br i1 %462, label %463, label %485

463:                                              ; preds = %456
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = call i32 @fileno(ptr noundef %464) #9
  %466 = call i32 @isatty(i32 noundef %465) #9
  %467 = icmp ne i32 %466, 0
  br i1 %467, label %468, label %485

468:                                              ; preds = %463
  %469 = load i32, ptr %11, align 4, !tbaa !5
  %470 = call ptr @__errno_location() #10
  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() #10
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = call ptr @strerror(i32 noundef %480) #9
  %482 = call ptr @__errno_location() #10
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %471, ptr noundef @.str.2, i32 noundef %472, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 83, ptr noundef %475, ptr noundef %478, ptr noundef %481, i32 noundef %483) #9
  br label %502

485:                                              ; preds = %463, %456
  %486 = load i32, ptr %11, align 4, !tbaa !5
  %487 = call ptr @__errno_location() #10
  store i32 %486, ptr %487, align 4, !tbaa !5
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = load i32, ptr @test_count, align 4, !tbaa !5
  %490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror(i32 noundef %491, ptr noundef @.str.4)
  %493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = call ptr @s2n_strerror_debug(i32 noundef %494, ptr noundef @.str.4)
  %496 = call ptr @__errno_location() #10
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call ptr @strerror(i32 noundef %497) #9
  %499 = call ptr @__errno_location() #10
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %488, ptr noundef @.str.5, i32 noundef %489, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 83, ptr noundef %492, ptr noundef %495, ptr noundef %498, i32 noundef %500) #9
  br label %502

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

503:                                              ; preds = %502
  br label %504

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

505:                                              ; No predecessors!
  br label %506

506:                                              ; preds = %505
  br label %507

507:                                              ; preds = %506, %449
  br label %508

508:                                              ; preds = %507
  br label %509

509:                                              ; preds = %508
  call void @llvm.lifetime.start.p0(i64 4184, ptr %12) #9
  call void @llvm.memset.p0.i64(ptr align 8 %12, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 704, ptr %13) #9
  call void @llvm.memset.p0.i64(ptr align 8 %13, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %14) #9
  call void @llvm.memset.p0.i64(ptr align 8 %14, i8 0, i64 40, i1 false)
  br label %510

510:                                              ; preds = %509
  br label %511

511:                                              ; preds = %510
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = add nsw i32 %512, 1
  store i32 %513, ptr @test_count, align 4, !tbaa !5
  %514 = call i32 @s2n_extension_process(ptr noundef null, ptr noundef %12, ptr noundef %13)
  %515 = icmp eq i32 %514, -1
  br i1 %515, label %569, label %516

516:                                              ; preds = %511
  br label %517

517:                                              ; preds = %516
  br label %518

518:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %519 = call ptr @__errno_location() #10
  %520 = load i32, ptr %519, align 4, !tbaa !5
  store i32 %520, ptr %15, align 4, !tbaa !5
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = call i32 @s2n_print_stacktrace(ptr noundef %521)
  %523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %524 = trunc i8 %523 to i1
  br i1 %524, label %525, label %547

525:                                              ; preds = %518
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = call i32 @fileno(ptr noundef %526) #9
  %528 = call i32 @isatty(i32 noundef %527) #9
  %529 = icmp ne i32 %528, 0
  br i1 %529, label %530, label %547

530:                                              ; preds = %525
  %531 = load i32, ptr %15, align 4, !tbaa !5
  %532 = call ptr @__errno_location() #10
  store i32 %531, ptr %532, align 4, !tbaa !5
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call ptr @s2n_strerror(i32 noundef %536, ptr noundef @.str.4)
  %538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = call ptr @s2n_strerror_debug(i32 noundef %539, ptr noundef @.str.4)
  %541 = call ptr @__errno_location() #10
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = call ptr @strerror(i32 noundef %542) #9
  %544 = call ptr @__errno_location() #10
  %545 = load i32, ptr %544, align 4, !tbaa !5
  %546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %533, ptr noundef @.str.2, i32 noundef %534, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 91, ptr noundef %537, ptr noundef %540, ptr noundef %543, i32 noundef %545) #9
  br label %564

547:                                              ; preds = %525, %518
  %548 = load i32, ptr %15, align 4, !tbaa !5
  %549 = call ptr @__errno_location() #10
  store i32 %548, ptr %549, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = load i32, ptr @test_count, align 4, !tbaa !5
  %552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror(i32 noundef %553, ptr noundef @.str.4)
  %555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror_debug(i32 noundef %556, ptr noundef @.str.4)
  %558 = call ptr @__errno_location() #10
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call ptr @strerror(i32 noundef %559) #9
  %561 = call ptr @__errno_location() #10
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %550, ptr noundef @.str.5, i32 noundef %551, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 91, ptr noundef %554, ptr noundef %557, ptr noundef %560, i32 noundef %562) #9
  br label %564

564:                                              ; preds = %547, %530
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %565

565:                                              ; preds = %564
  br label %566

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

567:                                              ; No predecessors!
  br label %568

568:                                              ; preds = %567
  br label %569

569:                                              ; preds = %568, %511
  br label %570

570:                                              ; preds = %569
  br label %571

571:                                              ; preds = %570
  br label %572

572:                                              ; preds = %571
  %573 = load i32, ptr @test_count, align 4, !tbaa !5
  %574 = add nsw i32 %573, 1
  store i32 %574, ptr @test_count, align 4, !tbaa !5
  %575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %576 = load i32, ptr %575, align 4, !tbaa !5
  %577 = icmp eq i32 %576, 0
  br i1 %577, label %578, label %631

578:                                              ; preds = %572
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  %581 = call ptr @__errno_location() #10
  %582 = load i32, ptr %581, align 4, !tbaa !5
  store i32 %582, ptr %16, align 4, !tbaa !5
  %583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %584 = call i32 @s2n_print_stacktrace(ptr noundef %583)
  %585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %586 = trunc i8 %585 to i1
  br i1 %586, label %587, label %609

587:                                              ; preds = %580
  %588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %589 = call i32 @fileno(ptr noundef %588) #9
  %590 = call i32 @isatty(i32 noundef %589) #9
  %591 = icmp ne i32 %590, 0
  br i1 %591, label %592, label %609

592:                                              ; preds = %587
  %593 = load i32, ptr %16, align 4, !tbaa !5
  %594 = call ptr @__errno_location() #10
  store i32 %593, ptr %594, align 4, !tbaa !5
  %595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %596 = load i32, ptr @test_count, align 4, !tbaa !5
  %597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %598 = load i32, ptr %597, align 4, !tbaa !5
  %599 = call ptr @s2n_strerror(i32 noundef %598, ptr noundef @.str.4)
  %600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %601 = load i32, ptr %600, align 4, !tbaa !5
  %602 = call ptr @s2n_strerror_debug(i32 noundef %601, ptr noundef @.str.4)
  %603 = call ptr @__errno_location() #10
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = call ptr @strerror(i32 noundef %604) #9
  %606 = call ptr @__errno_location() #10
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %595, ptr noundef @.str.2, i32 noundef %596, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 91, ptr noundef %599, ptr noundef %602, ptr noundef %605, i32 noundef %607) #9
  br label %626

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

626:                                              ; preds = %609, %592
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %627

627:                                              ; preds = %626
  br label %628

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

629:                                              ; No predecessors!
  br label %630

630:                                              ; preds = %629
  br label %631

631:                                              ; preds = %630, %572
  br label %632

632:                                              ; preds = %631
  br label %633

633:                                              ; preds = %632
  br label %634

634:                                              ; preds = %633
  %635 = load i32, ptr @test_count, align 4, !tbaa !5
  %636 = add nsw i32 %635, 1
  store i32 %636, ptr @test_count, align 4, !tbaa !5
  %637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror_debug(i32 noundef %638, ptr noundef @.str.4)
  %640 = icmp eq ptr %639, null
  br i1 %640, label %641, label %694

641:                                              ; preds = %634
  br label %642

642:                                              ; preds = %641
  br label %643

643:                                              ; preds = %642
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %644 = call ptr @__errno_location() #10
  %645 = load i32, ptr %644, align 4, !tbaa !5
  store i32 %645, ptr %17, align 4, !tbaa !5
  %646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %647 = call i32 @s2n_print_stacktrace(ptr noundef %646)
  %648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %649 = trunc i8 %648 to i1
  br i1 %649, label %650, label %672

650:                                              ; preds = %643
  %651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %652 = call i32 @fileno(ptr noundef %651) #9
  %653 = call i32 @isatty(i32 noundef %652) #9
  %654 = icmp ne i32 %653, 0
  br i1 %654, label %655, label %672

655:                                              ; preds = %650
  %656 = load i32, ptr %17, align 4, !tbaa !5
  %657 = call ptr @__errno_location() #10
  store i32 %656, ptr %657, align 4, !tbaa !5
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = load i32, ptr @test_count, align 4, !tbaa !5
  %660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror(i32 noundef %661, ptr noundef @.str.4)
  %663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = call ptr @s2n_strerror_debug(i32 noundef %664, ptr noundef @.str.4)
  %666 = call ptr @__errno_location() #10
  %667 = load i32, ptr %666, align 4, !tbaa !5
  %668 = call ptr @strerror(i32 noundef %667) #9
  %669 = call ptr @__errno_location() #10
  %670 = load i32, ptr %669, align 4, !tbaa !5
  %671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %658, ptr noundef @.str.2, i32 noundef %659, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 91, ptr noundef %662, ptr noundef %665, ptr noundef %668, i32 noundef %670) #9
  br label %689

672:                                              ; preds = %650, %643
  %673 = load i32, ptr %17, align 4, !tbaa !5
  %674 = call ptr @__errno_location() #10
  store i32 %673, ptr %674, align 4, !tbaa !5
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = load i32, ptr @test_count, align 4, !tbaa !5
  %677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror(i32 noundef %678, ptr noundef @.str.4)
  %680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %681 = load i32, ptr %680, align 4, !tbaa !5
  %682 = call ptr @s2n_strerror_debug(i32 noundef %681, ptr noundef @.str.4)
  %683 = call ptr @__errno_location() #10
  %684 = load i32, ptr %683, align 4, !tbaa !5
  %685 = call ptr @strerror(i32 noundef %684) #9
  %686 = call ptr @__errno_location() #10
  %687 = load i32, ptr %686, align 4, !tbaa !5
  %688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %675, ptr noundef @.str.5, i32 noundef %676, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 91, ptr noundef %679, ptr noundef %682, ptr noundef %685, i32 noundef %687) #9
  br label %689

689:                                              ; preds = %672, %655
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %690

690:                                              ; preds = %689
  br label %691

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

692:                                              ; No predecessors!
  br label %693

693:                                              ; preds = %692
  br label %694

694:                                              ; preds = %693, %634
  br label %695

695:                                              ; preds = %694
  br label %696

696:                                              ; preds = %695
  br label %697

697:                                              ; preds = %696
  %698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %698, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %699 = call ptr @__errno_location() #10
  store i32 0, ptr %699, align 4, !tbaa !5
  br label %700

700:                                              ; preds = %697
  br label %701

701:                                              ; preds = %700
  br label %702

702:                                              ; preds = %701
  br label %703

703:                                              ; preds = %702
  br label %704

704:                                              ; preds = %703
  br label %705

705:                                              ; preds = %704
  %706 = load i32, ptr @test_count, align 4, !tbaa !5
  %707 = add nsw i32 %706, 1
  store i32 %707, ptr @test_count, align 4, !tbaa !5
  %708 = call i32 @s2n_extension_process(ptr noundef %14, ptr noundef null, ptr noundef %13)
  %709 = icmp eq i32 %708, -1
  br i1 %709, label %763, label %710

710:                                              ; preds = %705
  br label %711

711:                                              ; preds = %710
  br label %712

712:                                              ; preds = %711
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  %713 = call ptr @__errno_location() #10
  %714 = load i32, ptr %713, align 4, !tbaa !5
  store i32 %714, ptr %18, align 4, !tbaa !5
  %715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %716 = call i32 @s2n_print_stacktrace(ptr noundef %715)
  %717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %718 = trunc i8 %717 to i1
  br i1 %718, label %719, label %741

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

724:                                              ; preds = %719
  %725 = load i32, ptr %18, align 4, !tbaa !5
  %726 = call ptr @__errno_location() #10
  store i32 %725, ptr %726, align 4, !tbaa !5
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = load i32, ptr @test_count, align 4, !tbaa !5
  %729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %730 = load i32, ptr %729, align 4, !tbaa !5
  %731 = call ptr @s2n_strerror(i32 noundef %730, ptr noundef @.str.4)
  %732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = call ptr @s2n_strerror_debug(i32 noundef %733, ptr noundef @.str.4)
  %735 = call ptr @__errno_location() #10
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @strerror(i32 noundef %736) #9
  %738 = call ptr @__errno_location() #10
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %727, ptr noundef @.str.2, i32 noundef %728, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 92, ptr noundef %731, ptr noundef %734, ptr noundef %737, i32 noundef %739) #9
  br label %758

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

758:                                              ; preds = %741, %724
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %759

759:                                              ; preds = %758
  br label %760

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

761:                                              ; No predecessors!
  br label %762

762:                                              ; preds = %761
  br label %763

763:                                              ; preds = %762, %705
  br label %764

764:                                              ; preds = %763
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765
  %767 = load i32, ptr @test_count, align 4, !tbaa !5
  %768 = add nsw i32 %767, 1
  store i32 %768, ptr @test_count, align 4, !tbaa !5
  %769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %770 = load i32, ptr %769, align 4, !tbaa !5
  %771 = icmp eq i32 %770, 0
  br i1 %771, label %772, label %825

772:                                              ; preds = %766
  br label %773

773:                                              ; preds = %772
  br label %774

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

781:                                              ; preds = %774
  %782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %783 = call i32 @fileno(ptr noundef %782) #9
  %784 = call i32 @isatty(i32 noundef %783) #9
  %785 = icmp ne i32 %784, 0
  br i1 %785, label %786, label %803

786:                                              ; preds = %781
  %787 = load i32, ptr %19, align 4, !tbaa !5
  %788 = call ptr @__errno_location() #10
  store i32 %787, ptr %788, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %792 = load i32, ptr %791, align 4, !tbaa !5
  %793 = call ptr @s2n_strerror(i32 noundef %792, ptr noundef @.str.4)
  %794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = call ptr @s2n_strerror_debug(i32 noundef %795, ptr noundef @.str.4)
  %797 = call ptr @__errno_location() #10
  %798 = load i32, ptr %797, align 4, !tbaa !5
  %799 = call ptr @strerror(i32 noundef %798) #9
  %800 = call ptr @__errno_location() #10
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %789, ptr noundef @.str.2, i32 noundef %790, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 92, ptr noundef %793, ptr noundef %796, ptr noundef %799, i32 noundef %801) #9
  br label %820

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

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

821:                                              ; preds = %820
  br label %822

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

823:                                              ; No predecessors!
  br label %824

824:                                              ; preds = %823
  br label %825

825:                                              ; preds = %824, %766
  br label %826

826:                                              ; preds = %825
  br label %827

827:                                              ; preds = %826
  br label %828

828:                                              ; preds = %827
  %829 = load i32, ptr @test_count, align 4, !tbaa !5
  %830 = add nsw i32 %829, 1
  store i32 %830, ptr @test_count, align 4, !tbaa !5
  %831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %832 = load i32, ptr %831, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror_debug(i32 noundef %832, ptr noundef @.str.4)
  %834 = icmp eq ptr %833, null
  br i1 %834, label %835, label %888

835:                                              ; preds = %828
  br label %836

836:                                              ; preds = %835
  br label %837

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

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

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

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

883:                                              ; preds = %866, %849
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %884

884:                                              ; preds = %883
  br label %885

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

886:                                              ; No predecessors!
  br label %887

887:                                              ; preds = %886
  br label %888

888:                                              ; preds = %887, %828
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889
  br label %891

891:                                              ; preds = %890
  %892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %892, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %893 = call ptr @__errno_location() #10
  store i32 0, ptr %893, align 4, !tbaa !5
  br label %894

894:                                              ; preds = %891
  br label %895

895:                                              ; preds = %894
  br label %896

896:                                              ; preds = %895
  br label %897

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897
  br label %899

899:                                              ; preds = %898
  %900 = load i32, ptr @test_count, align 4, !tbaa !5
  %901 = add nsw i32 %900, 1
  store i32 %901, ptr @test_count, align 4, !tbaa !5
  %902 = call i32 @s2n_extension_process(ptr noundef %14, ptr noundef %12, ptr noundef null)
  %903 = icmp eq i32 %902, -1
  br i1 %903, label %957, label %904

904:                                              ; preds = %899
  br label %905

905:                                              ; preds = %904
  br label %906

906:                                              ; preds = %905
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %907 = call ptr @__errno_location() #10
  %908 = load i32, ptr %907, align 4, !tbaa !5
  store i32 %908, ptr %21, align 4, !tbaa !5
  %909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %910 = call i32 @s2n_print_stacktrace(ptr noundef %909)
  %911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %912 = trunc i8 %911 to i1
  br i1 %912, label %913, label %935

913:                                              ; preds = %906
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = call i32 @fileno(ptr noundef %914) #9
  %916 = call i32 @isatty(i32 noundef %915) #9
  %917 = icmp ne i32 %916, 0
  br i1 %917, label %918, label %935

918:                                              ; preds = %913
  %919 = load i32, ptr %21, align 4, !tbaa !5
  %920 = call ptr @__errno_location() #10
  store i32 %919, ptr %920, align 4, !tbaa !5
  %921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %922 = load i32, ptr @test_count, align 4, !tbaa !5
  %923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %924 = load i32, ptr %923, align 4, !tbaa !5
  %925 = call ptr @s2n_strerror(i32 noundef %924, ptr noundef @.str.4)
  %926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror_debug(i32 noundef %927, ptr noundef @.str.4)
  %929 = call ptr @__errno_location() #10
  %930 = load i32, ptr %929, align 4, !tbaa !5
  %931 = call ptr @strerror(i32 noundef %930) #9
  %932 = call ptr @__errno_location() #10
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %921, ptr noundef @.str.2, i32 noundef %922, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 93, ptr noundef %925, ptr noundef %928, ptr noundef %931, i32 noundef %933) #9
  br label %952

935:                                              ; preds = %913, %906
  %936 = load i32, ptr %21, align 4, !tbaa !5
  %937 = call ptr @__errno_location() #10
  store i32 %936, ptr %937, align 4, !tbaa !5
  %938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %941 = load i32, ptr %940, align 4, !tbaa !5
  %942 = call ptr @s2n_strerror(i32 noundef %941, ptr noundef @.str.4)
  %943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror_debug(i32 noundef %944, ptr noundef @.str.4)
  %946 = call ptr @__errno_location() #10
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call ptr @strerror(i32 noundef %947) #9
  %949 = call ptr @__errno_location() #10
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %938, ptr noundef @.str.5, i32 noundef %939, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 93, ptr noundef %942, ptr noundef %945, ptr noundef %948, i32 noundef %950) #9
  br label %952

952:                                              ; preds = %935, %918
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %953

953:                                              ; preds = %952
  br label %954

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

955:                                              ; No predecessors!
  br label %956

956:                                              ; preds = %955
  br label %957

957:                                              ; preds = %956, %899
  br label %958

958:                                              ; preds = %957
  br label %959

959:                                              ; preds = %958
  br label %960

960:                                              ; preds = %959
  %961 = load i32, ptr @test_count, align 4, !tbaa !5
  %962 = add nsw i32 %961, 1
  store i32 %962, ptr @test_count, align 4, !tbaa !5
  %963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = icmp eq i32 %964, 0
  br i1 %965, label %966, label %1019

966:                                              ; preds = %960
  br label %967

967:                                              ; preds = %966
  br label %968

968:                                              ; preds = %967
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %969 = call ptr @__errno_location() #10
  %970 = load i32, ptr %969, align 4, !tbaa !5
  store i32 %970, ptr %22, align 4, !tbaa !5
  %971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %972 = call i32 @s2n_print_stacktrace(ptr noundef %971)
  %973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %974 = trunc i8 %973 to i1
  br i1 %974, label %975, label %997

975:                                              ; preds = %968
  %976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %977 = call i32 @fileno(ptr noundef %976) #9
  %978 = call i32 @isatty(i32 noundef %977) #9
  %979 = icmp ne i32 %978, 0
  br i1 %979, label %980, label %997

980:                                              ; preds = %975
  %981 = load i32, ptr %22, align 4, !tbaa !5
  %982 = call ptr @__errno_location() #10
  store i32 %981, ptr %982, align 4, !tbaa !5
  %983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %984 = load i32, ptr @test_count, align 4, !tbaa !5
  %985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call ptr @s2n_strerror(i32 noundef %986, ptr noundef @.str.4)
  %988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = call ptr @s2n_strerror_debug(i32 noundef %989, ptr noundef @.str.4)
  %991 = call ptr @__errno_location() #10
  %992 = load i32, ptr %991, align 4, !tbaa !5
  %993 = call ptr @strerror(i32 noundef %992) #9
  %994 = call ptr @__errno_location() #10
  %995 = load i32, ptr %994, align 4, !tbaa !5
  %996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %983, ptr noundef @.str.2, i32 noundef %984, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 93, ptr noundef %987, ptr noundef %990, ptr noundef %993, i32 noundef %995) #9
  br label %1014

997:                                              ; preds = %975, %968
  %998 = load i32, ptr %22, align 4, !tbaa !5
  %999 = call ptr @__errno_location() #10
  store i32 %998, ptr %999, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call ptr @s2n_strerror(i32 noundef %1003, ptr noundef @.str.4)
  %1005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = call ptr @s2n_strerror_debug(i32 noundef %1006, ptr noundef @.str.4)
  %1008 = call ptr @__errno_location() #10
  %1009 = load i32, ptr %1008, align 4, !tbaa !5
  %1010 = call ptr @strerror(i32 noundef %1009) #9
  %1011 = call ptr @__errno_location() #10
  %1012 = load i32, ptr %1011, align 4, !tbaa !5
  %1013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1000, ptr noundef @.str.5, i32 noundef %1001, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1004, ptr noundef %1007, ptr noundef %1010, i32 noundef %1012) #9
  br label %1014

1014:                                             ; preds = %997, %980
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %1015

1015:                                             ; preds = %1014
  br label %1016

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

1017:                                             ; No predecessors!
  br label %1018

1018:                                             ; preds = %1017
  br label %1019

1019:                                             ; preds = %1018, %960
  br label %1020

1020:                                             ; preds = %1019
  br label %1021

1021:                                             ; preds = %1020
  br label %1022

1022:                                             ; preds = %1021
  %1023 = load i32, ptr @test_count, align 4, !tbaa !5
  %1024 = add nsw i32 %1023, 1
  store i32 %1024, ptr @test_count, align 4, !tbaa !5
  %1025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror_debug(i32 noundef %1026, ptr noundef @.str.4)
  %1028 = icmp eq ptr %1027, null
  br i1 %1028, label %1029, label %1082

1029:                                             ; preds = %1022
  br label %1030

1030:                                             ; preds = %1029
  br label %1031

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

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

1043:                                             ; preds = %1038
  %1044 = load i32, ptr %23, align 4, !tbaa !5
  %1045 = call ptr @__errno_location() #10
  store i32 %1044, ptr %1045, align 4, !tbaa !5
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1047 = load i32, ptr @test_count, align 4, !tbaa !5
  %1048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = call ptr @s2n_strerror(i32 noundef %1049, ptr noundef @.str.4)
  %1051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror_debug(i32 noundef %1052, ptr noundef @.str.4)
  %1054 = call ptr @__errno_location() #10
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = call ptr @strerror(i32 noundef %1055) #9
  %1057 = call ptr @__errno_location() #10
  %1058 = load i32, ptr %1057, align 4, !tbaa !5
  %1059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1046, ptr noundef @.str.2, i32 noundef %1047, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1050, ptr noundef %1053, ptr noundef %1056, i32 noundef %1058) #9
  br label %1077

1060:                                             ; preds = %1038, %1031
  %1061 = load i32, ptr %23, align 4, !tbaa !5
  %1062 = call ptr @__errno_location() #10
  store i32 %1061, ptr %1062, align 4, !tbaa !5
  %1063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1064 = load i32, ptr @test_count, align 4, !tbaa !5
  %1065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1066 = load i32, ptr %1065, align 4, !tbaa !5
  %1067 = call ptr @s2n_strerror(i32 noundef %1066, ptr noundef @.str.4)
  %1068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1069 = load i32, ptr %1068, align 4, !tbaa !5
  %1070 = call ptr @s2n_strerror_debug(i32 noundef %1069, ptr noundef @.str.4)
  %1071 = call ptr @__errno_location() #10
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = call ptr @strerror(i32 noundef %1072) #9
  %1074 = call ptr @__errno_location() #10
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  %1076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1063, ptr noundef @.str.5, i32 noundef %1064, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1067, ptr noundef %1070, ptr noundef %1073, i32 noundef %1075) #9
  br label %1077

1077:                                             ; preds = %1060, %1043
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %1078

1078:                                             ; preds = %1077
  br label %1079

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

1080:                                             ; No predecessors!
  br label %1081

1081:                                             ; preds = %1080
  br label %1082

1082:                                             ; preds = %1081, %1022
  br label %1083

1083:                                             ; preds = %1082
  br label %1084

1084:                                             ; preds = %1083
  br label %1085

1085:                                             ; preds = %1084
  %1086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1086, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1087 = call ptr @__errno_location() #10
  store i32 0, ptr %1087, align 4, !tbaa !5
  br label %1088

1088:                                             ; preds = %1085
  br label %1089

1089:                                             ; preds = %1088
  br label %1090

1090:                                             ; preds = %1089
  br label %1091

1091:                                             ; preds = %1090
  call void @llvm.lifetime.end.p0(i64 40, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 704, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 4184, ptr %12) #9
  call void @llvm.lifetime.start.p0(i64 704, ptr %24) #9
  call void @llvm.memset.p0.i64(ptr align 8 %24, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #9
  %1092 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %25, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1092, ptr align 8 %7, i64 24, i1 false), !tbaa.struct !16
  %1093 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %25, i32 0, i32 1
  store i16 43, ptr %1093, align 8, !tbaa !17
  %1094 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %25, i32 0, i32 2
  store i16 0, ptr %1094, align 2, !tbaa !21
  %1095 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %25, i32 0, i32 3
  %1096 = load i8, ptr %1095, align 4
  %1097 = and i8 %1096, -2
  %1098 = or i8 %1097, 0
  store i8 %1098, ptr %1095, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #9
  store ptr null, ptr %26, align 8, !tbaa !9
  br label %1099

1099:                                             ; preds = %1091
  %1100 = load i32, ptr @test_count, align 4, !tbaa !5
  %1101 = add nsw i32 %1100, 1
  store i32 %1101, ptr @test_count, align 4, !tbaa !5
  %1102 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1102, ptr %26, align 8, !tbaa !9
  %1103 = icmp eq ptr %1102, null
  br i1 %1103, label %1104, label %1157

1104:                                             ; preds = %1099
  br label %1105

1105:                                             ; preds = %1104
  br label %1106

1106:                                             ; preds = %1105
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %1107 = call ptr @__errno_location() #10
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  store i32 %1108, ptr %27, align 4, !tbaa !5
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = call i32 @s2n_print_stacktrace(ptr noundef %1109)
  %1111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1112 = trunc i8 %1111 to i1
  br i1 %1112, label %1113, label %1135

1113:                                             ; preds = %1106
  %1114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1115 = call i32 @fileno(ptr noundef %1114) #9
  %1116 = call i32 @isatty(i32 noundef %1115) #9
  %1117 = icmp ne i32 %1116, 0
  br i1 %1117, label %1118, label %1135

1118:                                             ; preds = %1113
  %1119 = load i32, ptr %27, align 4, !tbaa !5
  %1120 = call ptr @__errno_location() #10
  store i32 %1119, ptr %1120, align 4, !tbaa !5
  %1121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1122 = load i32, ptr @test_count, align 4, !tbaa !5
  %1123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1124 = load i32, ptr %1123, align 4, !tbaa !5
  %1125 = call ptr @s2n_strerror(i32 noundef %1124, ptr noundef @.str.4)
  %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_debug(i32 noundef %1127, ptr noundef @.str.4)
  %1129 = call ptr @__errno_location() #10
  %1130 = load i32, ptr %1129, align 4, !tbaa !5
  %1131 = call ptr @strerror(i32 noundef %1130) #9
  %1132 = call ptr @__errno_location() #10
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1121, ptr noundef @.str.2, i32 noundef %1122, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 105, ptr noundef %1125, ptr noundef %1128, ptr noundef %1131, i32 noundef %1133) #9
  br label %1152

1135:                                             ; preds = %1113, %1106
  %1136 = load i32, ptr %27, align 4, !tbaa !5
  %1137 = call ptr @__errno_location() #10
  store i32 %1136, ptr %1137, align 4, !tbaa !5
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1139 = load i32, ptr @test_count, align 4, !tbaa !5
  %1140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  %1142 = call ptr @s2n_strerror(i32 noundef %1141, ptr noundef @.str.4)
  %1143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call ptr @s2n_strerror_debug(i32 noundef %1144, ptr noundef @.str.4)
  %1146 = call ptr @__errno_location() #10
  %1147 = load i32, ptr %1146, align 4, !tbaa !5
  %1148 = call ptr @strerror(i32 noundef %1147) #9
  %1149 = call ptr @__errno_location() #10
  %1150 = load i32, ptr %1149, align 4, !tbaa !5
  %1151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1138, ptr noundef @.str.5, i32 noundef %1139, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 105, ptr noundef %1142, ptr noundef %1145, ptr noundef %1148, i32 noundef %1150) #9
  br label %1152

1152:                                             ; preds = %1135, %1118
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %1153

1153:                                             ; preds = %1152
  br label %1154

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

1155:                                             ; No predecessors!
  br label %1156

1156:                                             ; preds = %1155
  br label %1157

1157:                                             ; preds = %1156, %1099
  br label %1158

1158:                                             ; preds = %1157
  br label %1159

1159:                                             ; preds = %1158
  br label %1160

1160:                                             ; preds = %1159
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #9
  store i8 0, ptr %28, align 1, !tbaa !15
  br label %1161

1161:                                             ; preds = %1160
  %1162 = load i32, ptr @test_count, align 4, !tbaa !5
  %1163 = add nsw i32 %1162, 1
  store i32 %1163, ptr @test_count, align 4, !tbaa !5
  %1164 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %25, i32 0, i32 1
  %1165 = load i16, ptr %1164, align 8, !tbaa !17
  %1166 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %1165, ptr noundef %28)
  %1167 = icmp eq i32 %1166, -1
  br i1 %1167, label %1168, label %1221

1168:                                             ; preds = %1161
  br label %1169

1169:                                             ; preds = %1168
  br label %1170

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

1177:                                             ; preds = %1170
  %1178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1179 = call i32 @fileno(ptr noundef %1178) #9
  %1180 = call i32 @isatty(i32 noundef %1179) #9
  %1181 = icmp ne i32 %1180, 0
  br i1 %1181, label %1182, label %1199

1182:                                             ; preds = %1177
  %1183 = load i32, ptr %29, align 4, !tbaa !5
  %1184 = call ptr @__errno_location() #10
  store i32 %1183, ptr %1184, align 4, !tbaa !5
  %1185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1186 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1188, ptr noundef @.str.4)
  %1190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1191 = load i32, ptr %1190, align 4, !tbaa !5
  %1192 = call ptr @s2n_strerror_debug(i32 noundef %1191, ptr noundef @.str.4)
  %1193 = call ptr @__errno_location() #10
  %1194 = load i32, ptr %1193, align 4, !tbaa !5
  %1195 = call ptr @strerror(i32 noundef %1194) #9
  %1196 = call ptr @__errno_location() #10
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1185, ptr noundef @.str.2, i32 noundef %1186, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1189, ptr noundef %1192, ptr noundef %1195, i32 noundef %1197) #9
  br label %1216

1199:                                             ; preds = %1177, %1170
  %1200 = load i32, ptr %29, align 4, !tbaa !5
  %1201 = call ptr @__errno_location() #10
  store i32 %1200, ptr %1201, align 4, !tbaa !5
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1205, ptr noundef @.str.4)
  %1207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1208 = load i32, ptr %1207, align 4, !tbaa !5
  %1209 = call ptr @s2n_strerror_debug(i32 noundef %1208, ptr noundef @.str.4)
  %1210 = call ptr @__errno_location() #10
  %1211 = load i32, ptr %1210, align 4, !tbaa !5
  %1212 = call ptr @strerror(i32 noundef %1211) #9
  %1213 = call ptr @__errno_location() #10
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  %1215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1202, ptr noundef @.str.5, i32 noundef %1203, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1206, ptr noundef %1209, ptr noundef %1212, i32 noundef %1214) #9
  br label %1216

1216:                                             ; preds = %1199, %1182
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1217

1217:                                             ; preds = %1216
  br label %1218

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

1219:                                             ; No predecessors!
  br label %1220

1220:                                             ; preds = %1219
  br label %1221

1221:                                             ; preds = %1220, %1161
  br label %1222

1222:                                             ; preds = %1221
  br label %1223

1223:                                             ; preds = %1222
  %1224 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %24, i32 0, i32 0
  %1225 = load i8, ptr %28, align 1, !tbaa !15
  %1226 = zext i8 %1225 to i64
  %1227 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %1224, i64 0, i64 %1226
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1227, ptr align 8 %25, i64 32, i1 false), !tbaa.struct !22
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #9
  br label %1228

1228:                                             ; preds = %1223
  br label %1229

1229:                                             ; preds = %1228
  store i8 0, ptr @received_flag, align 1, !tbaa !11
  br label %1230

1230:                                             ; preds = %1229
  %1231 = load i32, ptr @test_count, align 4, !tbaa !5
  %1232 = add nsw i32 %1231, 1
  store i32 %1232, ptr @test_count, align 4, !tbaa !5
  %1233 = load ptr, ptr %26, align 8, !tbaa !9
  %1234 = call i32 @s2n_extension_process(ptr noundef %9, ptr noundef %1233, ptr noundef %24)
  %1235 = icmp eq i32 %1234, -1
  br i1 %1235, label %1236, label %1289

1236:                                             ; preds = %1230
  br label %1237

1237:                                             ; preds = %1236
  br label %1238

1238:                                             ; preds = %1237
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %1239 = call ptr @__errno_location() #10
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  store i32 %1240, ptr %30, align 4, !tbaa !5
  %1241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1242 = call i32 @s2n_print_stacktrace(ptr noundef %1241)
  %1243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1244 = trunc i8 %1243 to i1
  br i1 %1244, label %1245, label %1267

1245:                                             ; preds = %1238
  %1246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1247 = call i32 @fileno(ptr noundef %1246) #9
  %1248 = call i32 @isatty(i32 noundef %1247) #9
  %1249 = icmp ne i32 %1248, 0
  br i1 %1249, label %1250, label %1267

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

1267:                                             ; preds = %1245, %1238
  %1268 = load i32, ptr %30, align 4, !tbaa !5
  %1269 = call ptr @__errno_location() #10
  store i32 %1268, ptr %1269, align 4, !tbaa !5
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = load i32, ptr @test_count, align 4, !tbaa !5
  %1272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  %1274 = call ptr @s2n_strerror(i32 noundef %1273, ptr noundef @.str.4)
  %1275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call ptr @s2n_strerror_debug(i32 noundef %1276, ptr noundef @.str.4)
  %1278 = call ptr @__errno_location() #10
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = call ptr @strerror(i32 noundef %1279) #9
  %1281 = call ptr @__errno_location() #10
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1270, ptr noundef @.str.5, i32 noundef %1271, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1274, ptr noundef %1277, ptr noundef %1280, i32 noundef %1282) #9
  br label %1284

1284:                                             ; preds = %1267, %1250
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1285

1285:                                             ; preds = %1284
  br label %1286

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

1287:                                             ; No predecessors!
  br label %1288

1288:                                             ; preds = %1287
  br label %1289

1289:                                             ; preds = %1288, %1230
  br label %1290

1290:                                             ; preds = %1289
  br label %1291

1291:                                             ; preds = %1290
  br label %1292

1292:                                             ; preds = %1291
  %1293 = load i32, ptr @test_count, align 4, !tbaa !5
  %1294 = add nsw i32 %1293, 1
  store i32 %1294, ptr @test_count, align 4, !tbaa !5
  %1295 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %24, i32 0, i32 0
  %1296 = load i8, ptr %10, align 1, !tbaa !15
  %1297 = zext i8 %1296 to i64
  %1298 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %1295, i64 0, i64 %1297
  %1299 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %1298, i32 0, i32 3
  %1300 = load i8, ptr %1299, align 4
  %1301 = and i8 %1300, 1
  %1302 = zext i8 %1301 to i32
  %1303 = icmp ne i32 %1302, 0
  br i1 %1303, label %1357, label %1304

1304:                                             ; preds = %1292
  br label %1305

1305:                                             ; preds = %1304
  br label %1306

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

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

1318:                                             ; preds = %1313
  %1319 = load i32, ptr %31, align 4, !tbaa !5
  %1320 = call ptr @__errno_location() #10
  store i32 %1319, ptr %1320, align 4, !tbaa !5
  %1321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1322 = load i32, ptr @test_count, align 4, !tbaa !5
  %1323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  %1325 = call ptr @s2n_strerror(i32 noundef %1324, ptr noundef @.str.4)
  %1326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1327 = load i32, ptr %1326, align 4, !tbaa !5
  %1328 = call ptr @s2n_strerror_debug(i32 noundef %1327, ptr noundef @.str.4)
  %1329 = call ptr @__errno_location() #10
  %1330 = load i32, ptr %1329, align 4, !tbaa !5
  %1331 = call ptr @strerror(i32 noundef %1330) #9
  %1332 = call ptr @__errno_location() #10
  %1333 = load i32, ptr %1332, align 4, !tbaa !5
  %1334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1321, ptr noundef @.str.2, i32 noundef %1322, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1325, ptr noundef %1328, ptr noundef %1331, i32 noundef %1333) #9
  br label %1352

1335:                                             ; preds = %1313, %1306
  %1336 = load i32, ptr %31, align 4, !tbaa !5
  %1337 = call ptr @__errno_location() #10
  store i32 %1336, ptr %1337, align 4, !tbaa !5
  %1338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1339 = load i32, ptr @test_count, align 4, !tbaa !5
  %1340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1341 = load i32, ptr %1340, align 4, !tbaa !5
  %1342 = call ptr @s2n_strerror(i32 noundef %1341, ptr noundef @.str.4)
  %1343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1344 = load i32, ptr %1343, align 4, !tbaa !5
  %1345 = call ptr @s2n_strerror_debug(i32 noundef %1344, ptr noundef @.str.4)
  %1346 = call ptr @__errno_location() #10
  %1347 = load i32, ptr %1346, align 4, !tbaa !5
  %1348 = call ptr @strerror(i32 noundef %1347) #9
  %1349 = call ptr @__errno_location() #10
  %1350 = load i32, ptr %1349, align 4, !tbaa !5
  %1351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1338, ptr noundef @.str.5, i32 noundef %1339, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1342, ptr noundef %1345, ptr noundef %1348, i32 noundef %1350) #9
  br label %1352

1352:                                             ; preds = %1335, %1318
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  br label %1353

1353:                                             ; preds = %1352
  br label %1354

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

1355:                                             ; No predecessors!
  br label %1356

1356:                                             ; preds = %1355
  br label %1357

1357:                                             ; preds = %1356, %1292
  br label %1358

1358:                                             ; preds = %1357
  br label %1359

1359:                                             ; preds = %1358
  br label %1360

1360:                                             ; preds = %1359
  %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 i8, ptr @received_flag, align 1, !tbaa !11, !range !13, !noundef !14
  %1364 = trunc i8 %1363 to i1
  br i1 %1364, label %1418, label %1365

1365:                                             ; preds = %1360
  br label %1366

1366:                                             ; preds = %1365
  br label %1367

1367:                                             ; preds = %1366
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  %1368 = call ptr @__errno_location() #10
  %1369 = load i32, ptr %1368, align 4, !tbaa !5
  store i32 %1369, ptr %32, align 4, !tbaa !5
  %1370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1371 = call i32 @s2n_print_stacktrace(ptr noundef %1370)
  %1372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1373 = trunc i8 %1372 to i1
  br i1 %1373, label %1374, label %1396

1374:                                             ; preds = %1367
  %1375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1376 = call i32 @fileno(ptr noundef %1375) #9
  %1377 = call i32 @isatty(i32 noundef %1376) #9
  %1378 = icmp ne i32 %1377, 0
  br i1 %1378, label %1379, label %1396

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

1396:                                             ; preds = %1374, %1367
  %1397 = load i32, ptr %32, align 4, !tbaa !5
  %1398 = call ptr @__errno_location() #10
  store i32 %1397, ptr %1398, align 4, !tbaa !5
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = load i32, ptr @test_count, align 4, !tbaa !5
  %1401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1402 = load i32, ptr %1401, align 4, !tbaa !5
  %1403 = call ptr @s2n_strerror(i32 noundef %1402, ptr noundef @.str.4)
  %1404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1405 = load i32, ptr %1404, align 4, !tbaa !5
  %1406 = call ptr @s2n_strerror_debug(i32 noundef %1405, ptr noundef @.str.4)
  %1407 = call ptr @__errno_location() #10
  %1408 = load i32, ptr %1407, align 4, !tbaa !5
  %1409 = call ptr @strerror(i32 noundef %1408) #9
  %1410 = call ptr @__errno_location() #10
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1399, ptr noundef @.str.5, i32 noundef %1400, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 113, ptr noundef %1403, ptr noundef %1406, ptr noundef %1409, i32 noundef %1411) #9
  br label %1413

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

1414:                                             ; preds = %1413
  br label %1415

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

1416:                                             ; No predecessors!
  br label %1417

1417:                                             ; preds = %1416
  br label %1418

1418:                                             ; preds = %1417, %1360
  br label %1419

1419:                                             ; preds = %1418
  br label %1420

1420:                                             ; preds = %1419
  br label %1421

1421:                                             ; preds = %1420
  %1422 = load i32, ptr @test_count, align 4, !tbaa !5
  %1423 = add nsw i32 %1422, 1
  store i32 %1423, ptr @test_count, align 4, !tbaa !5
  %1424 = load ptr, ptr %26, align 8, !tbaa !9
  %1425 = call i32 @s2n_connection_free(ptr noundef %1424)
  %1426 = icmp eq i32 %1425, -1
  br i1 %1426, label %1427, label %1480

1427:                                             ; preds = %1421
  br label %1428

1428:                                             ; preds = %1427
  br label %1429

1429:                                             ; preds = %1428
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  %1430 = call ptr @__errno_location() #10
  %1431 = load i32, ptr %1430, align 4, !tbaa !5
  store i32 %1431, ptr %33, align 4, !tbaa !5
  %1432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1433 = call i32 @s2n_print_stacktrace(ptr noundef %1432)
  %1434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1435 = trunc i8 %1434 to i1
  br i1 %1435, label %1436, label %1458

1436:                                             ; preds = %1429
  %1437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1438 = call i32 @fileno(ptr noundef %1437) #9
  %1439 = call i32 @isatty(i32 noundef %1438) #9
  %1440 = icmp ne i32 %1439, 0
  br i1 %1440, label %1441, label %1458

1441:                                             ; preds = %1436
  %1442 = load i32, ptr %33, align 4, !tbaa !5
  %1443 = call ptr @__errno_location() #10
  store i32 %1442, ptr %1443, align 4, !tbaa !5
  %1444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1445 = load i32, ptr @test_count, align 4, !tbaa !5
  %1446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call ptr @s2n_strerror(i32 noundef %1447, ptr noundef @.str.4)
  %1449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call ptr @s2n_strerror_debug(i32 noundef %1450, ptr noundef @.str.4)
  %1452 = call ptr @__errno_location() #10
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call ptr @strerror(i32 noundef %1453) #9
  %1455 = call ptr @__errno_location() #10
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  %1457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1444, ptr noundef @.str.2, i32 noundef %1445, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 115, ptr noundef %1448, ptr noundef %1451, ptr noundef %1454, i32 noundef %1456) #9
  br label %1475

1458:                                             ; preds = %1436, %1429
  %1459 = load i32, ptr %33, align 4, !tbaa !5
  %1460 = call ptr @__errno_location() #10
  store i32 %1459, ptr %1460, align 4, !tbaa !5
  %1461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1462 = load i32, ptr @test_count, align 4, !tbaa !5
  %1463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1464 = load i32, ptr %1463, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror(i32 noundef %1464, ptr noundef @.str.4)
  %1466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  %1468 = call ptr @s2n_strerror_debug(i32 noundef %1467, ptr noundef @.str.4)
  %1469 = call ptr @__errno_location() #10
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = call ptr @strerror(i32 noundef %1470) #9
  %1472 = call ptr @__errno_location() #10
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  %1474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1461, ptr noundef @.str.5, i32 noundef %1462, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 115, ptr noundef %1465, ptr noundef %1468, ptr noundef %1471, i32 noundef %1473) #9
  br label %1475

1475:                                             ; preds = %1458, %1441
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1476

1476:                                             ; preds = %1475
  br label %1477

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

1478:                                             ; No predecessors!
  br label %1479

1479:                                             ; preds = %1478
  br label %1480

1480:                                             ; preds = %1479, %1421
  br label %1481

1481:                                             ; preds = %1480
  br label %1482

1482:                                             ; preds = %1481
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 704, ptr %24) #9
  call void @llvm.lifetime.start.p0(i64 704, ptr %34) #9
  call void @llvm.memset.p0.i64(ptr align 8 %34, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #9
  %1483 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %35, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1483, ptr align 8 %7, i64 24, i1 false), !tbaa.struct !16
  %1484 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %35, i32 0, i32 1
  store i16 43, ptr %1484, align 8, !tbaa !17
  %1485 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %35, i32 0, i32 2
  store i16 0, ptr %1485, align 2, !tbaa !21
  %1486 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %35, i32 0, i32 3
  %1487 = load i8, ptr %1486, align 4
  %1488 = and i8 %1487, -2
  %1489 = or i8 %1488, 0
  store i8 %1489, ptr %1486, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  %1490 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1490, ptr %36, align 8, !tbaa !9
  br label %1491

1491:                                             ; preds = %1482
  %1492 = load i32, ptr @test_count, align 4, !tbaa !5
  %1493 = add nsw i32 %1492, 1
  store i32 %1493, ptr @test_count, align 4, !tbaa !5
  %1494 = load ptr, ptr %36, align 8, !tbaa !9
  %1495 = icmp eq ptr %1494, null
  br i1 %1495, label %1496, label %1549

1496:                                             ; preds = %1491
  br label %1497

1497:                                             ; preds = %1496
  br label %1498

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

1505:                                             ; preds = %1498
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @fileno(ptr noundef %1506) #9
  %1508 = call i32 @isatty(i32 noundef %1507) #9
  %1509 = icmp ne i32 %1508, 0
  br i1 %1509, label %1510, label %1527

1510:                                             ; preds = %1505
  %1511 = load i32, ptr %37, align 4, !tbaa !5
  %1512 = call ptr @__errno_location() #10
  store i32 %1511, ptr %1512, align 4, !tbaa !5
  %1513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1514 = load i32, ptr @test_count, align 4, !tbaa !5
  %1515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  %1517 = call ptr @s2n_strerror(i32 noundef %1516, ptr noundef @.str.4)
  %1518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror_debug(i32 noundef %1519, ptr noundef @.str.4)
  %1521 = call ptr @__errno_location() #10
  %1522 = load i32, ptr %1521, align 4, !tbaa !5
  %1523 = call ptr @strerror(i32 noundef %1522) #9
  %1524 = call ptr @__errno_location() #10
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  %1526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1513, ptr noundef @.str.2, i32 noundef %1514, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 127, ptr noundef %1517, ptr noundef %1520, ptr noundef %1523, i32 noundef %1525) #9
  br label %1544

1527:                                             ; preds = %1505, %1498
  %1528 = load i32, ptr %37, align 4, !tbaa !5
  %1529 = call ptr @__errno_location() #10
  store i32 %1528, ptr %1529, align 4, !tbaa !5
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = load i32, ptr @test_count, align 4, !tbaa !5
  %1532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1533 = load i32, ptr %1532, align 4, !tbaa !5
  %1534 = call ptr @s2n_strerror(i32 noundef %1533, ptr noundef @.str.4)
  %1535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1536 = load i32, ptr %1535, align 4, !tbaa !5
  %1537 = call ptr @s2n_strerror_debug(i32 noundef %1536, ptr noundef @.str.4)
  %1538 = call ptr @__errno_location() #10
  %1539 = load i32, ptr %1538, align 4, !tbaa !5
  %1540 = call ptr @strerror(i32 noundef %1539) #9
  %1541 = call ptr @__errno_location() #10
  %1542 = load i32, ptr %1541, align 4, !tbaa !5
  %1543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1530, ptr noundef @.str.5, i32 noundef %1531, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 127, ptr noundef %1534, ptr noundef %1537, ptr noundef %1540, i32 noundef %1542) #9
  br label %1544

1544:                                             ; preds = %1527, %1510
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1545

1545:                                             ; preds = %1544
  br label %1546

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

1547:                                             ; No predecessors!
  br label %1548

1548:                                             ; preds = %1547
  br label %1549

1549:                                             ; preds = %1548, %1491
  br label %1550

1550:                                             ; preds = %1549
  br label %1551

1551:                                             ; preds = %1550
  br label %1552

1552:                                             ; preds = %1551
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #9
  store i8 0, ptr %38, align 1, !tbaa !15
  br label %1553

1553:                                             ; preds = %1552
  %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 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %35, i32 0, i32 1
  %1557 = load i16, ptr %1556, align 8, !tbaa !17
  %1558 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %1557, ptr noundef %38)
  %1559 = icmp eq i32 %1558, -1
  br i1 %1559, label %1560, label %1613

1560:                                             ; preds = %1553
  br label %1561

1561:                                             ; preds = %1560
  br label %1562

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

1569:                                             ; preds = %1562
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = call i32 @fileno(ptr noundef %1570) #9
  %1572 = call i32 @isatty(i32 noundef %1571) #9
  %1573 = icmp ne i32 %1572, 0
  br i1 %1573, label %1574, label %1591

1574:                                             ; preds = %1569
  %1575 = load i32, ptr %39, align 4, !tbaa !5
  %1576 = call ptr @__errno_location() #10
  store i32 %1575, ptr %1576, align 4, !tbaa !5
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = load i32, ptr @test_count, align 4, !tbaa !5
  %1579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1580 = load i32, ptr %1579, align 4, !tbaa !5
  %1581 = call ptr @s2n_strerror(i32 noundef %1580, ptr noundef @.str.4)
  %1582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1583 = load i32, ptr %1582, align 4, !tbaa !5
  %1584 = call ptr @s2n_strerror_debug(i32 noundef %1583, ptr noundef @.str.4)
  %1585 = call ptr @__errno_location() #10
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  %1587 = call ptr @strerror(i32 noundef %1586) #9
  %1588 = call ptr @__errno_location() #10
  %1589 = load i32, ptr %1588, align 4, !tbaa !5
  %1590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1577, ptr noundef @.str.2, i32 noundef %1578, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 129, ptr noundef %1581, ptr noundef %1584, ptr noundef %1587, i32 noundef %1589) #9
  br label %1608

1591:                                             ; preds = %1569, %1562
  %1592 = load i32, ptr %39, align 4, !tbaa !5
  %1593 = call ptr @__errno_location() #10
  store i32 %1592, ptr %1593, align 4, !tbaa !5
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = load i32, ptr @test_count, align 4, !tbaa !5
  %1596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1597 = load i32, ptr %1596, align 4, !tbaa !5
  %1598 = call ptr @s2n_strerror(i32 noundef %1597, ptr noundef @.str.4)
  %1599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  %1601 = call ptr @s2n_strerror_debug(i32 noundef %1600, ptr noundef @.str.4)
  %1602 = call ptr @__errno_location() #10
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  %1604 = call ptr @strerror(i32 noundef %1603) #9
  %1605 = call ptr @__errno_location() #10
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  %1607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1594, ptr noundef @.str.5, i32 noundef %1595, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 129, ptr noundef %1598, ptr noundef %1601, ptr noundef %1604, i32 noundef %1606) #9
  br label %1608

1608:                                             ; preds = %1591, %1574
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1609

1609:                                             ; preds = %1608
  br label %1610

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

1611:                                             ; No predecessors!
  br label %1612

1612:                                             ; preds = %1611
  br label %1613

1613:                                             ; preds = %1612, %1553
  br label %1614

1614:                                             ; preds = %1613
  br label %1615

1615:                                             ; preds = %1614
  %1616 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %34, i32 0, i32 0
  %1617 = load i8, ptr %38, align 1, !tbaa !15
  %1618 = zext i8 %1617 to i64
  %1619 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %1616, i64 0, i64 %1618
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1619, ptr align 8 %35, i64 32, i1 false), !tbaa.struct !22
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #9
  br label %1620

1620:                                             ; preds = %1615
  br label %1621

1621:                                             ; preds = %1620
  store i8 0, ptr @received_flag, align 1, !tbaa !11
  br label %1622

1622:                                             ; preds = %1621
  %1623 = load i32, ptr @test_count, align 4, !tbaa !5
  %1624 = add nsw i32 %1623, 1
  store i32 %1624, ptr @test_count, align 4, !tbaa !5
  %1625 = load ptr, ptr %36, align 8, !tbaa !9
  %1626 = call i32 @s2n_extension_process(ptr noundef %9, ptr noundef %1625, ptr noundef %34)
  %1627 = icmp eq i32 %1626, -1
  br i1 %1627, label %1628, label %1681

1628:                                             ; preds = %1622
  br label %1629

1629:                                             ; preds = %1628
  br label %1630

1630:                                             ; preds = %1629
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  %1631 = call ptr @__errno_location() #10
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  store i32 %1632, ptr %40, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = call i32 @s2n_print_stacktrace(ptr noundef %1633)
  %1635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1636 = trunc i8 %1635 to i1
  br i1 %1636, label %1637, label %1659

1637:                                             ; preds = %1630
  %1638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1639 = call i32 @fileno(ptr noundef %1638) #9
  %1640 = call i32 @isatty(i32 noundef %1639) #9
  %1641 = icmp ne i32 %1640, 0
  br i1 %1641, label %1642, label %1659

1642:                                             ; preds = %1637
  %1643 = load i32, ptr %40, align 4, !tbaa !5
  %1644 = call ptr @__errno_location() #10
  store i32 %1643, ptr %1644, align 4, !tbaa !5
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = load i32, ptr @test_count, align 4, !tbaa !5
  %1647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call ptr @s2n_strerror(i32 noundef %1648, ptr noundef @.str.4)
  %1650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = call ptr @s2n_strerror_debug(i32 noundef %1651, ptr noundef @.str.4)
  %1653 = call ptr @__errno_location() #10
  %1654 = load i32, ptr %1653, align 4, !tbaa !5
  %1655 = call ptr @strerror(i32 noundef %1654) #9
  %1656 = call ptr @__errno_location() #10
  %1657 = load i32, ptr %1656, align 4, !tbaa !5
  %1658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1645, ptr noundef @.str.2, i32 noundef %1646, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 133, ptr noundef %1649, ptr noundef %1652, ptr noundef %1655, i32 noundef %1657) #9
  br label %1676

1659:                                             ; preds = %1637, %1630
  %1660 = load i32, ptr %40, align 4, !tbaa !5
  %1661 = call ptr @__errno_location() #10
  store i32 %1660, ptr %1661, align 4, !tbaa !5
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = load i32, ptr @test_count, align 4, !tbaa !5
  %1664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  %1666 = call ptr @s2n_strerror(i32 noundef %1665, ptr noundef @.str.4)
  %1667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1668 = load i32, ptr %1667, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror_debug(i32 noundef %1668, ptr noundef @.str.4)
  %1670 = call ptr @__errno_location() #10
  %1671 = load i32, ptr %1670, align 4, !tbaa !5
  %1672 = call ptr @strerror(i32 noundef %1671) #9
  %1673 = call ptr @__errno_location() #10
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  %1675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1662, ptr noundef @.str.5, i32 noundef %1663, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 133, ptr noundef %1666, ptr noundef %1669, ptr noundef %1672, i32 noundef %1674) #9
  br label %1676

1676:                                             ; preds = %1659, %1642
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1677

1677:                                             ; preds = %1676
  br label %1678

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

1679:                                             ; No predecessors!
  br label %1680

1680:                                             ; preds = %1679
  br label %1681

1681:                                             ; preds = %1680, %1622
  br label %1682

1682:                                             ; preds = %1681
  br label %1683

1683:                                             ; preds = %1682
  br label %1684

1684:                                             ; preds = %1683
  %1685 = load i32, ptr @test_count, align 4, !tbaa !5
  %1686 = add nsw i32 %1685, 1
  store i32 %1686, ptr @test_count, align 4, !tbaa !5
  %1687 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %34, i32 0, i32 0
  %1688 = load i8, ptr %10, align 1, !tbaa !15
  %1689 = zext i8 %1688 to i64
  %1690 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %1687, i64 0, i64 %1689
  %1691 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %1690, i32 0, i32 3
  %1692 = load i8, ptr %1691, align 4
  %1693 = and i8 %1692, 1
  %1694 = zext i8 %1693 to i32
  %1695 = icmp ne i32 %1694, 0
  br i1 %1695, label %1749, label %1696

1696:                                             ; preds = %1684
  br label %1697

1697:                                             ; preds = %1696
  br label %1698

1698:                                             ; preds = %1697
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %1699 = call ptr @__errno_location() #10
  %1700 = load i32, ptr %1699, align 4, !tbaa !5
  store i32 %1700, ptr %41, align 4, !tbaa !5
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = call i32 @s2n_print_stacktrace(ptr noundef %1701)
  %1703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1704 = trunc i8 %1703 to i1
  br i1 %1704, label %1705, label %1727

1705:                                             ; preds = %1698
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = call i32 @fileno(ptr noundef %1706) #9
  %1708 = call i32 @isatty(i32 noundef %1707) #9
  %1709 = icmp ne i32 %1708, 0
  br i1 %1709, label %1710, label %1727

1710:                                             ; preds = %1705
  %1711 = load i32, ptr %41, align 4, !tbaa !5
  %1712 = call ptr @__errno_location() #10
  store i32 %1711, ptr %1712, align 4, !tbaa !5
  %1713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1714 = load i32, ptr @test_count, align 4, !tbaa !5
  %1715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  %1717 = call ptr @s2n_strerror(i32 noundef %1716, ptr noundef @.str.4)
  %1718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1719 = load i32, ptr %1718, align 4, !tbaa !5
  %1720 = call ptr @s2n_strerror_debug(i32 noundef %1719, ptr noundef @.str.4)
  %1721 = call ptr @__errno_location() #10
  %1722 = load i32, ptr %1721, align 4, !tbaa !5
  %1723 = call ptr @strerror(i32 noundef %1722) #9
  %1724 = call ptr @__errno_location() #10
  %1725 = load i32, ptr %1724, align 4, !tbaa !5
  %1726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1713, ptr noundef @.str.2, i32 noundef %1714, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 134, ptr noundef %1717, ptr noundef %1720, ptr noundef %1723, i32 noundef %1725) #9
  br label %1744

1727:                                             ; preds = %1705, %1698
  %1728 = load i32, ptr %41, align 4, !tbaa !5
  %1729 = call ptr @__errno_location() #10
  store i32 %1728, ptr %1729, align 4, !tbaa !5
  %1730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1731 = load i32, ptr @test_count, align 4, !tbaa !5
  %1732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1733 = load i32, ptr %1732, align 4, !tbaa !5
  %1734 = call ptr @s2n_strerror(i32 noundef %1733, ptr noundef @.str.4)
  %1735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1736 = load i32, ptr %1735, align 4, !tbaa !5
  %1737 = call ptr @s2n_strerror_debug(i32 noundef %1736, ptr noundef @.str.4)
  %1738 = call ptr @__errno_location() #10
  %1739 = load i32, ptr %1738, align 4, !tbaa !5
  %1740 = call ptr @strerror(i32 noundef %1739) #9
  %1741 = call ptr @__errno_location() #10
  %1742 = load i32, ptr %1741, align 4, !tbaa !5
  %1743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1730, ptr noundef @.str.5, i32 noundef %1731, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 134, ptr noundef %1734, ptr noundef %1737, ptr noundef %1740, i32 noundef %1742) #9
  br label %1744

1744:                                             ; preds = %1727, %1710
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1745

1745:                                             ; preds = %1744
  br label %1746

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

1747:                                             ; No predecessors!
  br label %1748

1748:                                             ; preds = %1747
  br label %1749

1749:                                             ; preds = %1748, %1684
  br label %1750

1750:                                             ; preds = %1749
  br label %1751

1751:                                             ; preds = %1750
  br label %1752

1752:                                             ; preds = %1751
  %1753 = load i32, ptr @test_count, align 4, !tbaa !5
  %1754 = add nsw i32 %1753, 1
  store i32 %1754, ptr @test_count, align 4, !tbaa !5
  %1755 = load i8, ptr @received_flag, align 1, !tbaa !11, !range !13, !noundef !14
  %1756 = trunc i8 %1755 to i1
  br i1 %1756, label %1810, label %1757

1757:                                             ; preds = %1752
  br label %1758

1758:                                             ; preds = %1757
  br label %1759

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

1766:                                             ; preds = %1759
  %1767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1768 = call i32 @fileno(ptr noundef %1767) #9
  %1769 = call i32 @isatty(i32 noundef %1768) #9
  %1770 = icmp ne i32 %1769, 0
  br i1 %1770, label %1771, label %1788

1771:                                             ; preds = %1766
  %1772 = load i32, ptr %42, align 4, !tbaa !5
  %1773 = call ptr @__errno_location() #10
  store i32 %1772, ptr %1773, align 4, !tbaa !5
  %1774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1775 = load i32, ptr @test_count, align 4, !tbaa !5
  %1776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1777 = load i32, ptr %1776, align 4, !tbaa !5
  %1778 = call ptr @s2n_strerror(i32 noundef %1777, ptr noundef @.str.4)
  %1779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1780 = load i32, ptr %1779, align 4, !tbaa !5
  %1781 = call ptr @s2n_strerror_debug(i32 noundef %1780, ptr noundef @.str.4)
  %1782 = call ptr @__errno_location() #10
  %1783 = load i32, ptr %1782, align 4, !tbaa !5
  %1784 = call ptr @strerror(i32 noundef %1783) #9
  %1785 = call ptr @__errno_location() #10
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1774, ptr noundef @.str.2, i32 noundef %1775, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 135, ptr noundef %1778, ptr noundef %1781, ptr noundef %1784, i32 noundef %1786) #9
  br label %1805

1788:                                             ; preds = %1766, %1759
  %1789 = load i32, ptr %42, align 4, !tbaa !5
  %1790 = call ptr @__errno_location() #10
  store i32 %1789, ptr %1790, align 4, !tbaa !5
  %1791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1792 = load i32, ptr @test_count, align 4, !tbaa !5
  %1793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1794 = load i32, ptr %1793, align 4, !tbaa !5
  %1795 = call ptr @s2n_strerror(i32 noundef %1794, ptr noundef @.str.4)
  %1796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1797 = load i32, ptr %1796, align 4, !tbaa !5
  %1798 = call ptr @s2n_strerror_debug(i32 noundef %1797, ptr noundef @.str.4)
  %1799 = call ptr @__errno_location() #10
  %1800 = load i32, ptr %1799, align 4, !tbaa !5
  %1801 = call ptr @strerror(i32 noundef %1800) #9
  %1802 = call ptr @__errno_location() #10
  %1803 = load i32, ptr %1802, align 4, !tbaa !5
  %1804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1791, ptr noundef @.str.5, i32 noundef %1792, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 135, ptr noundef %1795, ptr noundef %1798, ptr noundef %1801, i32 noundef %1803) #9
  br label %1805

1805:                                             ; preds = %1788, %1771
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %1806

1806:                                             ; preds = %1805
  br label %1807

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

1808:                                             ; No predecessors!
  br label %1809

1809:                                             ; preds = %1808
  br label %1810

1810:                                             ; preds = %1809, %1752
  br label %1811

1811:                                             ; preds = %1810
  br label %1812

1812:                                             ; preds = %1811
  store i8 0, ptr @received_flag, align 1, !tbaa !11
  br label %1813

1813:                                             ; preds = %1812
  %1814 = load i32, ptr @test_count, align 4, !tbaa !5
  %1815 = add nsw i32 %1814, 1
  store i32 %1815, ptr @test_count, align 4, !tbaa !5
  %1816 = load ptr, ptr %36, align 8, !tbaa !9
  %1817 = call i32 @s2n_extension_process(ptr noundef %9, ptr noundef %1816, ptr noundef %34)
  %1818 = icmp eq i32 %1817, -1
  br i1 %1818, label %1819, label %1872

1819:                                             ; preds = %1813
  br label %1820

1820:                                             ; preds = %1819
  br label %1821

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

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

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

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

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

1868:                                             ; preds = %1867
  br label %1869

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

1870:                                             ; No predecessors!
  br label %1871

1871:                                             ; preds = %1870
  br label %1872

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

1873:                                             ; preds = %1872
  br label %1874

1874:                                             ; preds = %1873
  br label %1875

1875:                                             ; preds = %1874
  %1876 = load i32, ptr @test_count, align 4, !tbaa !5
  %1877 = add nsw i32 %1876, 1
  store i32 %1877, ptr @test_count, align 4, !tbaa !5
  %1878 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %34, i32 0, i32 0
  %1879 = load i8, ptr %10, align 1, !tbaa !15
  %1880 = zext i8 %1879 to i64
  %1881 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %1878, i64 0, i64 %1880
  %1882 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %1881, i32 0, i32 3
  %1883 = load i8, ptr %1882, align 4
  %1884 = and i8 %1883, 1
  %1885 = zext i8 %1884 to i32
  %1886 = icmp ne i32 %1885, 0
  br i1 %1886, label %1940, label %1887

1887:                                             ; preds = %1875
  br label %1888

1888:                                             ; preds = %1887
  br label %1889

1889:                                             ; preds = %1888
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  %1890 = call ptr @__errno_location() #10
  %1891 = load i32, ptr %1890, align 4, !tbaa !5
  store i32 %1891, ptr %44, align 4, !tbaa !5
  %1892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1893 = call i32 @s2n_print_stacktrace(ptr noundef %1892)
  %1894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1895 = trunc i8 %1894 to i1
  br i1 %1895, label %1896, label %1918

1896:                                             ; preds = %1889
  %1897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1898 = call i32 @fileno(ptr noundef %1897) #9
  %1899 = call i32 @isatty(i32 noundef %1898) #9
  %1900 = icmp ne i32 %1899, 0
  br i1 %1900, label %1901, label %1918

1901:                                             ; preds = %1896
  %1902 = load i32, ptr %44, align 4, !tbaa !5
  %1903 = call ptr @__errno_location() #10
  store i32 %1902, ptr %1903, align 4, !tbaa !5
  %1904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1905 = load i32, ptr @test_count, align 4, !tbaa !5
  %1906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1907 = load i32, ptr %1906, align 4, !tbaa !5
  %1908 = call ptr @s2n_strerror(i32 noundef %1907, ptr noundef @.str.4)
  %1909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1910 = load i32, ptr %1909, align 4, !tbaa !5
  %1911 = call ptr @s2n_strerror_debug(i32 noundef %1910, ptr noundef @.str.4)
  %1912 = call ptr @__errno_location() #10
  %1913 = load i32, ptr %1912, align 4, !tbaa !5
  %1914 = call ptr @strerror(i32 noundef %1913) #9
  %1915 = call ptr @__errno_location() #10
  %1916 = load i32, ptr %1915, align 4, !tbaa !5
  %1917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1904, ptr noundef @.str.2, i32 noundef %1905, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 140, ptr noundef %1908, ptr noundef %1911, ptr noundef %1914, i32 noundef %1916) #9
  br label %1935

1918:                                             ; preds = %1896, %1889
  %1919 = load i32, ptr %44, align 4, !tbaa !5
  %1920 = call ptr @__errno_location() #10
  store i32 %1919, ptr %1920, align 4, !tbaa !5
  %1921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1922 = load i32, ptr @test_count, align 4, !tbaa !5
  %1923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1924 = load i32, ptr %1923, align 4, !tbaa !5
  %1925 = call ptr @s2n_strerror(i32 noundef %1924, ptr noundef @.str.4)
  %1926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1927 = load i32, ptr %1926, align 4, !tbaa !5
  %1928 = call ptr @s2n_strerror_debug(i32 noundef %1927, ptr noundef @.str.4)
  %1929 = call ptr @__errno_location() #10
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  %1931 = call ptr @strerror(i32 noundef %1930) #9
  %1932 = call ptr @__errno_location() #10
  %1933 = load i32, ptr %1932, align 4, !tbaa !5
  %1934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1921, ptr noundef @.str.5, i32 noundef %1922, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 140, ptr noundef %1925, ptr noundef %1928, ptr noundef %1931, i32 noundef %1933) #9
  br label %1935

1935:                                             ; preds = %1918, %1901
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %1936

1936:                                             ; preds = %1935
  br label %1937

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

1938:                                             ; No predecessors!
  br label %1939

1939:                                             ; preds = %1938
  br label %1940

1940:                                             ; preds = %1939, %1875
  br label %1941

1941:                                             ; preds = %1940
  br label %1942

1942:                                             ; preds = %1941
  br label %1943

1943:                                             ; preds = %1942
  %1944 = load i32, ptr @test_count, align 4, !tbaa !5
  %1945 = add nsw i32 %1944, 1
  store i32 %1945, ptr @test_count, align 4, !tbaa !5
  %1946 = load i8, ptr @received_flag, align 1, !tbaa !11, !range !13, !noundef !14
  %1947 = trunc i8 %1946 to i1
  br i1 %1947, label %1948, label %2001

1948:                                             ; preds = %1943
  br label %1949

1949:                                             ; preds = %1948
  br label %1950

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

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

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

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

1996:                                             ; preds = %1979, %1962
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %1997

1997:                                             ; preds = %1996
  br label %1998

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

1999:                                             ; No predecessors!
  br label %2000

2000:                                             ; preds = %1999
  br label %2001

2001:                                             ; preds = %2000, %1943
  br label %2002

2002:                                             ; preds = %2001
  br label %2003

2003:                                             ; preds = %2002
  br label %2004

2004:                                             ; preds = %2003
  %2005 = load i32, ptr @test_count, align 4, !tbaa !5
  %2006 = add nsw i32 %2005, 1
  store i32 %2006, ptr @test_count, align 4, !tbaa !5
  %2007 = load ptr, ptr %36, align 8, !tbaa !9
  %2008 = call i32 @s2n_connection_free(ptr noundef %2007)
  %2009 = icmp eq i32 %2008, -1
  br i1 %2009, label %2010, label %2063

2010:                                             ; preds = %2004
  br label %2011

2011:                                             ; preds = %2010
  br label %2012

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

2019:                                             ; preds = %2012
  %2020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2021 = call i32 @fileno(ptr noundef %2020) #9
  %2022 = call i32 @isatty(i32 noundef %2021) #9
  %2023 = icmp ne i32 %2022, 0
  br i1 %2023, label %2024, label %2041

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

2041:                                             ; preds = %2019, %2012
  %2042 = load i32, ptr %46, align 4, !tbaa !5
  %2043 = call ptr @__errno_location() #10
  store i32 %2042, ptr %2043, align 4, !tbaa !5
  %2044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2045 = load i32, ptr @test_count, align 4, !tbaa !5
  %2046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = call ptr @s2n_strerror(i32 noundef %2047, ptr noundef @.str.4)
  %2049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2050 = load i32, ptr %2049, align 4, !tbaa !5
  %2051 = call ptr @s2n_strerror_debug(i32 noundef %2050, ptr noundef @.str.4)
  %2052 = call ptr @__errno_location() #10
  %2053 = load i32, ptr %2052, align 4, !tbaa !5
  %2054 = call ptr @strerror(i32 noundef %2053) #9
  %2055 = call ptr @__errno_location() #10
  %2056 = load i32, ptr %2055, align 4, !tbaa !5
  %2057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2044, ptr noundef @.str.5, i32 noundef %2045, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 144, ptr noundef %2048, ptr noundef %2051, ptr noundef %2054, i32 noundef %2056) #9
  br label %2058

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

2059:                                             ; preds = %2058
  br label %2060

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

2061:                                             ; No predecessors!
  br label %2062

2062:                                             ; preds = %2061
  br label %2063

2063:                                             ; preds = %2062, %2004
  br label %2064

2064:                                             ; preds = %2063
  br label %2065

2065:                                             ; preds = %2064
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 704, ptr %34) #9
  call void @llvm.lifetime.start.p0(i64 704, ptr %47) #9
  call void @llvm.memset.p0.i64(ptr align 8 %47, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %48) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %48, ptr align 8 %7, i64 24, i1 false), !tbaa.struct !16
  %2066 = getelementptr inbounds %struct.s2n_blob, ptr %48, i32 0, i32 1
  store i32 0, ptr %2066, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #9
  %2067 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %49, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2067, ptr align 8 %48, i64 24, i1 false), !tbaa.struct !16
  %2068 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %49, i32 0, i32 1
  store i16 43, ptr %2068, align 8, !tbaa !17
  %2069 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %49, i32 0, i32 2
  store i16 0, ptr %2069, align 2, !tbaa !21
  %2070 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %49, i32 0, i32 3
  %2071 = load i8, ptr %2070, align 4
  %2072 = and i8 %2071, -2
  %2073 = or i8 %2072, 0
  store i8 %2073, ptr %2070, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  store ptr null, ptr %50, align 8, !tbaa !9
  br label %2074

2074:                                             ; preds = %2065
  %2075 = load i32, ptr @test_count, align 4, !tbaa !5
  %2076 = add nsw i32 %2075, 1
  store i32 %2076, ptr @test_count, align 4, !tbaa !5
  %2077 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2077, ptr %50, align 8, !tbaa !9
  %2078 = icmp eq ptr %2077, null
  br i1 %2078, label %2079, label %2132

2079:                                             ; preds = %2074
  br label %2080

2080:                                             ; preds = %2079
  br label %2081

2081:                                             ; preds = %2080
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  %2082 = call ptr @__errno_location() #10
  %2083 = load i32, ptr %2082, align 4, !tbaa !5
  store i32 %2083, ptr %51, align 4, !tbaa !5
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = call i32 @s2n_print_stacktrace(ptr noundef %2084)
  %2086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2087 = trunc i8 %2086 to i1
  br i1 %2087, label %2088, label %2110

2088:                                             ; preds = %2081
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = call i32 @fileno(ptr noundef %2089) #9
  %2091 = call i32 @isatty(i32 noundef %2090) #9
  %2092 = icmp ne i32 %2091, 0
  br i1 %2092, label %2093, label %2110

2093:                                             ; preds = %2088
  %2094 = load i32, ptr %51, align 4, !tbaa !5
  %2095 = call ptr @__errno_location() #10
  store i32 %2094, ptr %2095, align 4, !tbaa !5
  %2096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2097 = load i32, ptr @test_count, align 4, !tbaa !5
  %2098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2099 = load i32, ptr %2098, align 4, !tbaa !5
  %2100 = call ptr @s2n_strerror(i32 noundef %2099, ptr noundef @.str.4)
  %2101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2102 = load i32, ptr %2101, align 4, !tbaa !5
  %2103 = call ptr @s2n_strerror_debug(i32 noundef %2102, ptr noundef @.str.4)
  %2104 = call ptr @__errno_location() #10
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  %2106 = call ptr @strerror(i32 noundef %2105) #9
  %2107 = call ptr @__errno_location() #10
  %2108 = load i32, ptr %2107, align 4, !tbaa !5
  %2109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2096, ptr noundef @.str.2, i32 noundef %2097, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 158, ptr noundef %2100, ptr noundef %2103, ptr noundef %2106, i32 noundef %2108) #9
  br label %2127

2110:                                             ; preds = %2088, %2081
  %2111 = load i32, ptr %51, align 4, !tbaa !5
  %2112 = call ptr @__errno_location() #10
  store i32 %2111, ptr %2112, align 4, !tbaa !5
  %2113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2114 = load i32, ptr @test_count, align 4, !tbaa !5
  %2115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2116 = load i32, ptr %2115, align 4, !tbaa !5
  %2117 = call ptr @s2n_strerror(i32 noundef %2116, ptr noundef @.str.4)
  %2118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror_debug(i32 noundef %2119, ptr noundef @.str.4)
  %2121 = call ptr @__errno_location() #10
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call ptr @strerror(i32 noundef %2122) #9
  %2124 = call ptr @__errno_location() #10
  %2125 = load i32, ptr %2124, align 4, !tbaa !5
  %2126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2113, ptr noundef @.str.5, i32 noundef %2114, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 158, ptr noundef %2117, ptr noundef %2120, ptr noundef %2123, i32 noundef %2125) #9
  br label %2127

2127:                                             ; preds = %2110, %2093
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %2128

2128:                                             ; preds = %2127
  br label %2129

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

2130:                                             ; No predecessors!
  br label %2131

2131:                                             ; preds = %2130
  br label %2132

2132:                                             ; preds = %2131, %2074
  br label %2133

2133:                                             ; preds = %2132
  br label %2134

2134:                                             ; preds = %2133
  br label %2135

2135:                                             ; preds = %2134
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #9
  store i8 0, ptr %52, align 1, !tbaa !15
  br label %2136

2136:                                             ; preds = %2135
  %2137 = load i32, ptr @test_count, align 4, !tbaa !5
  %2138 = add nsw i32 %2137, 1
  store i32 %2138, ptr @test_count, align 4, !tbaa !5
  %2139 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %49, i32 0, i32 1
  %2140 = load i16, ptr %2139, align 8, !tbaa !17
  %2141 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %2140, ptr noundef %52)
  %2142 = icmp eq i32 %2141, -1
  br i1 %2142, label %2143, label %2196

2143:                                             ; preds = %2136
  br label %2144

2144:                                             ; preds = %2143
  br label %2145

2145:                                             ; preds = %2144
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  %2146 = call ptr @__errno_location() #10
  %2147 = load i32, ptr %2146, align 4, !tbaa !5
  store i32 %2147, ptr %53, align 4, !tbaa !5
  %2148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2149 = call i32 @s2n_print_stacktrace(ptr noundef %2148)
  %2150 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2151 = trunc i8 %2150 to i1
  br i1 %2151, label %2152, label %2174

2152:                                             ; preds = %2145
  %2153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2154 = call i32 @fileno(ptr noundef %2153) #9
  %2155 = call i32 @isatty(i32 noundef %2154) #9
  %2156 = icmp ne i32 %2155, 0
  br i1 %2156, label %2157, label %2174

2157:                                             ; preds = %2152
  %2158 = load i32, ptr %53, align 4, !tbaa !5
  %2159 = call ptr @__errno_location() #10
  store i32 %2158, ptr %2159, align 4, !tbaa !5
  %2160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2161 = load i32, ptr @test_count, align 4, !tbaa !5
  %2162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2163 = load i32, ptr %2162, align 4, !tbaa !5
  %2164 = call ptr @s2n_strerror(i32 noundef %2163, ptr noundef @.str.4)
  %2165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  %2167 = call ptr @s2n_strerror_debug(i32 noundef %2166, ptr noundef @.str.4)
  %2168 = call ptr @__errno_location() #10
  %2169 = load i32, ptr %2168, align 4, !tbaa !5
  %2170 = call ptr @strerror(i32 noundef %2169) #9
  %2171 = call ptr @__errno_location() #10
  %2172 = load i32, ptr %2171, align 4, !tbaa !5
  %2173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2160, ptr noundef @.str.2, i32 noundef %2161, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 160, ptr noundef %2164, ptr noundef %2167, ptr noundef %2170, i32 noundef %2172) #9
  br label %2191

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

2191:                                             ; preds = %2174, %2157
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2192

2192:                                             ; preds = %2191
  br label %2193

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

2194:                                             ; No predecessors!
  br label %2195

2195:                                             ; preds = %2194
  br label %2196

2196:                                             ; preds = %2195, %2136
  br label %2197

2197:                                             ; preds = %2196
  br label %2198

2198:                                             ; preds = %2197
  %2199 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %47, i32 0, i32 0
  %2200 = load i8, ptr %52, align 1, !tbaa !15
  %2201 = zext i8 %2200 to i64
  %2202 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %2199, i64 0, i64 %2201
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2202, ptr align 8 %49, i64 32, i1 false), !tbaa.struct !22
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #9
  br label %2203

2203:                                             ; preds = %2198
  br label %2204

2204:                                             ; preds = %2203
  store i8 0, ptr @received_flag, align 1, !tbaa !11
  br label %2205

2205:                                             ; preds = %2204
  %2206 = load i32, ptr @test_count, align 4, !tbaa !5
  %2207 = add nsw i32 %2206, 1
  store i32 %2207, ptr @test_count, align 4, !tbaa !5
  %2208 = load ptr, ptr %50, align 8, !tbaa !9
  %2209 = call i32 @s2n_extension_process(ptr noundef %9, ptr noundef %2208, ptr noundef %47)
  %2210 = icmp eq i32 %2209, -1
  br i1 %2210, label %2211, label %2264

2211:                                             ; preds = %2205
  br label %2212

2212:                                             ; preds = %2211
  br label %2213

2213:                                             ; preds = %2212
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  %2214 = call ptr @__errno_location() #10
  %2215 = load i32, ptr %2214, align 4, !tbaa !5
  store i32 %2215, ptr %54, align 4, !tbaa !5
  %2216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2217 = call i32 @s2n_print_stacktrace(ptr noundef %2216)
  %2218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2219 = trunc i8 %2218 to i1
  br i1 %2219, label %2220, label %2242

2220:                                             ; preds = %2213
  %2221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2222 = call i32 @fileno(ptr noundef %2221) #9
  %2223 = call i32 @isatty(i32 noundef %2222) #9
  %2224 = icmp ne i32 %2223, 0
  br i1 %2224, label %2225, label %2242

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

2242:                                             ; preds = %2220, %2213
  %2243 = load i32, ptr %54, align 4, !tbaa !5
  %2244 = call ptr @__errno_location() #10
  store i32 %2243, ptr %2244, align 4, !tbaa !5
  %2245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2246 = load i32, ptr @test_count, align 4, !tbaa !5
  %2247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2248 = load i32, ptr %2247, align 4, !tbaa !5
  %2249 = call ptr @s2n_strerror(i32 noundef %2248, ptr noundef @.str.4)
  %2250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2251 = load i32, ptr %2250, align 4, !tbaa !5
  %2252 = call ptr @s2n_strerror_debug(i32 noundef %2251, ptr noundef @.str.4)
  %2253 = call ptr @__errno_location() #10
  %2254 = load i32, ptr %2253, align 4, !tbaa !5
  %2255 = call ptr @strerror(i32 noundef %2254) #9
  %2256 = call ptr @__errno_location() #10
  %2257 = load i32, ptr %2256, align 4, !tbaa !5
  %2258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2245, ptr noundef @.str.5, i32 noundef %2246, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 163, ptr noundef %2249, ptr noundef %2252, ptr noundef %2255, i32 noundef %2257) #9
  br label %2259

2259:                                             ; preds = %2242, %2225
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2260

2260:                                             ; preds = %2259
  br label %2261

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

2262:                                             ; No predecessors!
  br label %2263

2263:                                             ; preds = %2262
  br label %2264

2264:                                             ; preds = %2263, %2205
  br label %2265

2265:                                             ; preds = %2264
  br label %2266

2266:                                             ; preds = %2265
  br label %2267

2267:                                             ; preds = %2266
  %2268 = load i32, ptr @test_count, align 4, !tbaa !5
  %2269 = add nsw i32 %2268, 1
  store i32 %2269, ptr @test_count, align 4, !tbaa !5
  %2270 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %47, i32 0, i32 0
  %2271 = load i8, ptr %10, align 1, !tbaa !15
  %2272 = zext i8 %2271 to i64
  %2273 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %2270, i64 0, i64 %2272
  %2274 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %2273, i32 0, i32 3
  %2275 = load i8, ptr %2274, align 4
  %2276 = and i8 %2275, 1
  %2277 = zext i8 %2276 to i32
  %2278 = icmp ne i32 %2277, 0
  br i1 %2278, label %2332, label %2279

2279:                                             ; preds = %2267
  br label %2280

2280:                                             ; preds = %2279
  br label %2281

2281:                                             ; preds = %2280
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  %2282 = call ptr @__errno_location() #10
  %2283 = load i32, ptr %2282, align 4, !tbaa !5
  store i32 %2283, ptr %55, align 4, !tbaa !5
  %2284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2285 = call i32 @s2n_print_stacktrace(ptr noundef %2284)
  %2286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2287 = trunc i8 %2286 to i1
  br i1 %2287, label %2288, label %2310

2288:                                             ; preds = %2281
  %2289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2290 = call i32 @fileno(ptr noundef %2289) #9
  %2291 = call i32 @isatty(i32 noundef %2290) #9
  %2292 = icmp ne i32 %2291, 0
  br i1 %2292, label %2293, label %2310

2293:                                             ; preds = %2288
  %2294 = load i32, ptr %55, align 4, !tbaa !5
  %2295 = call ptr @__errno_location() #10
  store i32 %2294, ptr %2295, align 4, !tbaa !5
  %2296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2297 = load i32, ptr @test_count, align 4, !tbaa !5
  %2298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2299 = load i32, ptr %2298, align 4, !tbaa !5
  %2300 = call ptr @s2n_strerror(i32 noundef %2299, ptr noundef @.str.4)
  %2301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2302 = load i32, ptr %2301, align 4, !tbaa !5
  %2303 = call ptr @s2n_strerror_debug(i32 noundef %2302, ptr noundef @.str.4)
  %2304 = call ptr @__errno_location() #10
  %2305 = load i32, ptr %2304, align 4, !tbaa !5
  %2306 = call ptr @strerror(i32 noundef %2305) #9
  %2307 = call ptr @__errno_location() #10
  %2308 = load i32, ptr %2307, align 4, !tbaa !5
  %2309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2296, ptr noundef @.str.2, i32 noundef %2297, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2300, ptr noundef %2303, ptr noundef %2306, i32 noundef %2308) #9
  br label %2327

2310:                                             ; preds = %2288, %2281
  %2311 = load i32, ptr %55, align 4, !tbaa !5
  %2312 = call ptr @__errno_location() #10
  store i32 %2311, ptr %2312, align 4, !tbaa !5
  %2313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2314 = load i32, ptr @test_count, align 4, !tbaa !5
  %2315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2316 = load i32, ptr %2315, align 4, !tbaa !5
  %2317 = call ptr @s2n_strerror(i32 noundef %2316, ptr noundef @.str.4)
  %2318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2319 = load i32, ptr %2318, align 4, !tbaa !5
  %2320 = call ptr @s2n_strerror_debug(i32 noundef %2319, ptr noundef @.str.4)
  %2321 = call ptr @__errno_location() #10
  %2322 = load i32, ptr %2321, align 4, !tbaa !5
  %2323 = call ptr @strerror(i32 noundef %2322) #9
  %2324 = call ptr @__errno_location() #10
  %2325 = load i32, ptr %2324, align 4, !tbaa !5
  %2326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2313, ptr noundef @.str.5, i32 noundef %2314, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2317, ptr noundef %2320, ptr noundef %2323, i32 noundef %2325) #9
  br label %2327

2327:                                             ; preds = %2310, %2293
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %2328

2328:                                             ; preds = %2327
  br label %2329

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

2330:                                             ; No predecessors!
  br label %2331

2331:                                             ; preds = %2330
  br label %2332

2332:                                             ; preds = %2331, %2267
  br label %2333

2333:                                             ; preds = %2332
  br label %2334

2334:                                             ; preds = %2333
  br label %2335

2335:                                             ; preds = %2334
  %2336 = load i32, ptr @test_count, align 4, !tbaa !5
  %2337 = add nsw i32 %2336, 1
  store i32 %2337, ptr @test_count, align 4, !tbaa !5
  %2338 = load i8, ptr @received_flag, align 1, !tbaa !11, !range !13, !noundef !14
  %2339 = trunc i8 %2338 to i1
  br i1 %2339, label %2393, label %2340

2340:                                             ; preds = %2335
  br label %2341

2341:                                             ; preds = %2340
  br label %2342

2342:                                             ; preds = %2341
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  %2343 = call ptr @__errno_location() #10
  %2344 = load i32, ptr %2343, align 4, !tbaa !5
  store i32 %2344, ptr %56, align 4, !tbaa !5
  %2345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2346 = call i32 @s2n_print_stacktrace(ptr noundef %2345)
  %2347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2348 = trunc i8 %2347 to i1
  br i1 %2348, label %2349, label %2371

2349:                                             ; preds = %2342
  %2350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2351 = call i32 @fileno(ptr noundef %2350) #9
  %2352 = call i32 @isatty(i32 noundef %2351) #9
  %2353 = icmp ne i32 %2352, 0
  br i1 %2353, label %2354, label %2371

2354:                                             ; preds = %2349
  %2355 = load i32, ptr %56, align 4, !tbaa !5
  %2356 = call ptr @__errno_location() #10
  store i32 %2355, ptr %2356, align 4, !tbaa !5
  %2357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2358 = load i32, ptr @test_count, align 4, !tbaa !5
  %2359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2360 = load i32, ptr %2359, align 4, !tbaa !5
  %2361 = call ptr @s2n_strerror(i32 noundef %2360, ptr noundef @.str.4)
  %2362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2363 = load i32, ptr %2362, align 4, !tbaa !5
  %2364 = call ptr @s2n_strerror_debug(i32 noundef %2363, ptr noundef @.str.4)
  %2365 = call ptr @__errno_location() #10
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call ptr @strerror(i32 noundef %2366) #9
  %2368 = call ptr @__errno_location() #10
  %2369 = load i32, ptr %2368, align 4, !tbaa !5
  %2370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2357, ptr noundef @.str.2, i32 noundef %2358, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2361, ptr noundef %2364, ptr noundef %2367, i32 noundef %2369) #9
  br label %2388

2371:                                             ; preds = %2349, %2342
  %2372 = load i32, ptr %56, align 4, !tbaa !5
  %2373 = call ptr @__errno_location() #10
  store i32 %2372, ptr %2373, align 4, !tbaa !5
  %2374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2375 = load i32, ptr @test_count, align 4, !tbaa !5
  %2376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2377 = load i32, ptr %2376, align 4, !tbaa !5
  %2378 = call ptr @s2n_strerror(i32 noundef %2377, ptr noundef @.str.4)
  %2379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2380 = load i32, ptr %2379, align 4, !tbaa !5
  %2381 = call ptr @s2n_strerror_debug(i32 noundef %2380, ptr noundef @.str.4)
  %2382 = call ptr @__errno_location() #10
  %2383 = load i32, ptr %2382, align 4, !tbaa !5
  %2384 = call ptr @strerror(i32 noundef %2383) #9
  %2385 = call ptr @__errno_location() #10
  %2386 = load i32, ptr %2385, align 4, !tbaa !5
  %2387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2374, ptr noundef @.str.5, i32 noundef %2375, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2378, ptr noundef %2381, ptr noundef %2384, i32 noundef %2386) #9
  br label %2388

2388:                                             ; preds = %2371, %2354
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %2389

2389:                                             ; preds = %2388
  br label %2390

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

2391:                                             ; No predecessors!
  br label %2392

2392:                                             ; preds = %2391
  br label %2393

2393:                                             ; preds = %2392, %2335
  br label %2394

2394:                                             ; preds = %2393
  br label %2395

2395:                                             ; preds = %2394
  br label %2396

2396:                                             ; preds = %2395
  %2397 = load i32, ptr @test_count, align 4, !tbaa !5
  %2398 = add nsw i32 %2397, 1
  store i32 %2398, ptr @test_count, align 4, !tbaa !5
  %2399 = load ptr, ptr %50, align 8, !tbaa !9
  %2400 = call i32 @s2n_connection_free(ptr noundef %2399)
  %2401 = icmp eq i32 %2400, -1
  br i1 %2401, label %2402, label %2455

2402:                                             ; preds = %2396
  br label %2403

2403:                                             ; preds = %2402
  br label %2404

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

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

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

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

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

2451:                                             ; preds = %2450
  br label %2452

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

2453:                                             ; No predecessors!
  br label %2454

2454:                                             ; preds = %2453
  br label %2455

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

2456:                                             ; preds = %2455
  br label %2457

2457:                                             ; preds = %2456
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 704, ptr %47) #9
  call void @llvm.lifetime.start.p0(i64 704, ptr %58) #9
  call void @llvm.memset.p0.i64(ptr align 8 %58, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #9
  %2458 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %59, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2458, ptr align 8 %7, i64 24, i1 false), !tbaa.struct !16
  %2459 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %59, i32 0, i32 1
  store i16 42, ptr %2459, align 8, !tbaa !17
  %2460 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %59, i32 0, i32 2
  store i16 0, ptr %2460, align 2, !tbaa !21
  %2461 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %59, i32 0, i32 3
  %2462 = load i8, ptr %2461, align 4
  %2463 = and i8 %2462, -2
  %2464 = or i8 %2463, 0
  store i8 %2464, ptr %2461, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #9
  store ptr null, ptr %60, align 8, !tbaa !9
  br label %2465

2465:                                             ; preds = %2457
  %2466 = load i32, ptr @test_count, align 4, !tbaa !5
  %2467 = add nsw i32 %2466, 1
  store i32 %2467, ptr @test_count, align 4, !tbaa !5
  %2468 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2468, ptr %60, align 8, !tbaa !9
  %2469 = icmp eq ptr %2468, null
  br i1 %2469, label %2470, label %2523

2470:                                             ; preds = %2465
  br label %2471

2471:                                             ; preds = %2470
  br label %2472

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

2479:                                             ; preds = %2472
  %2480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2481 = call i32 @fileno(ptr noundef %2480) #9
  %2482 = call i32 @isatty(i32 noundef %2481) #9
  %2483 = icmp ne i32 %2482, 0
  br i1 %2483, label %2484, label %2501

2484:                                             ; preds = %2479
  %2485 = load i32, ptr %61, align 4, !tbaa !5
  %2486 = call ptr @__errno_location() #10
  store i32 %2485, ptr %2486, align 4, !tbaa !5
  %2487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2488 = load i32, ptr @test_count, align 4, !tbaa !5
  %2489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2490 = load i32, ptr %2489, align 4, !tbaa !5
  %2491 = call ptr @s2n_strerror(i32 noundef %2490, ptr noundef @.str.4)
  %2492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2493 = load i32, ptr %2492, align 4, !tbaa !5
  %2494 = call ptr @s2n_strerror_debug(i32 noundef %2493, ptr noundef @.str.4)
  %2495 = call ptr @__errno_location() #10
  %2496 = load i32, ptr %2495, align 4, !tbaa !5
  %2497 = call ptr @strerror(i32 noundef %2496) #9
  %2498 = call ptr @__errno_location() #10
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2487, ptr noundef @.str.2, i32 noundef %2488, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 180, ptr noundef %2491, ptr noundef %2494, ptr noundef %2497, i32 noundef %2499) #9
  br label %2518

2501:                                             ; preds = %2479, %2472
  %2502 = load i32, ptr %61, align 4, !tbaa !5
  %2503 = call ptr @__errno_location() #10
  store i32 %2502, ptr %2503, align 4, !tbaa !5
  %2504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2505 = load i32, ptr @test_count, align 4, !tbaa !5
  %2506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2507 = load i32, ptr %2506, align 4, !tbaa !5
  %2508 = call ptr @s2n_strerror(i32 noundef %2507, ptr noundef @.str.4)
  %2509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2510 = load i32, ptr %2509, align 4, !tbaa !5
  %2511 = call ptr @s2n_strerror_debug(i32 noundef %2510, ptr noundef @.str.4)
  %2512 = call ptr @__errno_location() #10
  %2513 = load i32, ptr %2512, align 4, !tbaa !5
  %2514 = call ptr @strerror(i32 noundef %2513) #9
  %2515 = call ptr @__errno_location() #10
  %2516 = load i32, ptr %2515, align 4, !tbaa !5
  %2517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2504, ptr noundef @.str.5, i32 noundef %2505, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 180, ptr noundef %2508, ptr noundef %2511, ptr noundef %2514, i32 noundef %2516) #9
  br label %2518

2518:                                             ; preds = %2501, %2484
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %2519

2519:                                             ; preds = %2518
  br label %2520

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

2521:                                             ; No predecessors!
  br label %2522

2522:                                             ; preds = %2521
  br label %2523

2523:                                             ; preds = %2522, %2465
  br label %2524

2524:                                             ; preds = %2523
  br label %2525

2525:                                             ; preds = %2524
  %2526 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %58, i32 0, i32 0
  %2527 = load i8, ptr %10, align 1, !tbaa !15
  %2528 = zext i8 %2527 to i64
  %2529 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %2526, i64 0, i64 %2528
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2529, ptr align 8 %59, i64 32, i1 false), !tbaa.struct !22
  store i8 0, ptr @received_flag, align 1, !tbaa !11
  br label %2530

2530:                                             ; preds = %2525
  br label %2531

2531:                                             ; preds = %2530
  br label %2532

2532:                                             ; preds = %2531
  %2533 = load i32, ptr @test_count, align 4, !tbaa !5
  %2534 = add nsw i32 %2533, 1
  store i32 %2534, ptr @test_count, align 4, !tbaa !5
  %2535 = load ptr, ptr %60, align 8, !tbaa !9
  %2536 = call i32 @s2n_extension_process(ptr noundef %9, ptr noundef %2535, ptr noundef %58)
  %2537 = icmp eq i32 %2536, -1
  br i1 %2537, label %2591, label %2538

2538:                                             ; preds = %2532
  br label %2539

2539:                                             ; preds = %2538
  br label %2540

2540:                                             ; preds = %2539
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %2541 = call ptr @__errno_location() #10
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  store i32 %2542, ptr %62, align 4, !tbaa !5
  %2543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2544 = call i32 @s2n_print_stacktrace(ptr noundef %2543)
  %2545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2546 = trunc i8 %2545 to i1
  br i1 %2546, label %2547, label %2569

2547:                                             ; preds = %2540
  %2548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2549 = call i32 @fileno(ptr noundef %2548) #9
  %2550 = call i32 @isatty(i32 noundef %2549) #9
  %2551 = icmp ne i32 %2550, 0
  br i1 %2551, label %2552, label %2569

2552:                                             ; preds = %2547
  %2553 = load i32, ptr %62, align 4, !tbaa !5
  %2554 = call ptr @__errno_location() #10
  store i32 %2553, ptr %2554, align 4, !tbaa !5
  %2555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2556 = load i32, ptr @test_count, align 4, !tbaa !5
  %2557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2558 = load i32, ptr %2557, align 4, !tbaa !5
  %2559 = call ptr @s2n_strerror(i32 noundef %2558, ptr noundef @.str.4)
  %2560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2561 = load i32, ptr %2560, align 4, !tbaa !5
  %2562 = call ptr @s2n_strerror_debug(i32 noundef %2561, ptr noundef @.str.4)
  %2563 = call ptr @__errno_location() #10
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = call ptr @strerror(i32 noundef %2564) #9
  %2566 = call ptr @__errno_location() #10
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2555, ptr noundef @.str.2, i32 noundef %2556, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 186, ptr noundef %2559, ptr noundef %2562, ptr noundef %2565, i32 noundef %2567) #9
  br label %2586

2569:                                             ; preds = %2547, %2540
  %2570 = load i32, ptr %62, align 4, !tbaa !5
  %2571 = call ptr @__errno_location() #10
  store i32 %2570, ptr %2571, align 4, !tbaa !5
  %2572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2573 = load i32, ptr @test_count, align 4, !tbaa !5
  %2574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2575 = load i32, ptr %2574, align 4, !tbaa !5
  %2576 = call ptr @s2n_strerror(i32 noundef %2575, ptr noundef @.str.4)
  %2577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2578 = load i32, ptr %2577, align 4, !tbaa !5
  %2579 = call ptr @s2n_strerror_debug(i32 noundef %2578, ptr noundef @.str.4)
  %2580 = call ptr @__errno_location() #10
  %2581 = load i32, ptr %2580, align 4, !tbaa !5
  %2582 = call ptr @strerror(i32 noundef %2581) #9
  %2583 = call ptr @__errno_location() #10
  %2584 = load i32, ptr %2583, align 4, !tbaa !5
  %2585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2572, ptr noundef @.str.5, i32 noundef %2573, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 186, ptr noundef %2576, ptr noundef %2579, ptr noundef %2582, i32 noundef %2584) #9
  br label %2586

2586:                                             ; preds = %2569, %2552
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %2587

2587:                                             ; preds = %2586
  br label %2588

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

2589:                                             ; No predecessors!
  br label %2590

2590:                                             ; preds = %2589
  br label %2591

2591:                                             ; preds = %2590, %2532
  br label %2592

2592:                                             ; preds = %2591
  br label %2593

2593:                                             ; preds = %2592
  br label %2594

2594:                                             ; preds = %2593
  %2595 = load i32, ptr @test_count, align 4, !tbaa !5
  %2596 = add nsw i32 %2595, 1
  store i32 %2596, ptr @test_count, align 4, !tbaa !5
  %2597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2598 = load i32, ptr %2597, align 4, !tbaa !5
  %2599 = icmp eq i32 %2598, 402653257
  br i1 %2599, label %2653, label %2600

2600:                                             ; preds = %2594
  br label %2601

2601:                                             ; preds = %2600
  br label %2602

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

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

2614:                                             ; preds = %2609
  %2615 = load i32, ptr %63, align 4, !tbaa !5
  %2616 = call ptr @__errno_location() #10
  store i32 %2615, ptr %2616, align 4, !tbaa !5
  %2617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2618 = load i32, ptr @test_count, align 4, !tbaa !5
  %2619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2620 = load i32, ptr %2619, align 4, !tbaa !5
  %2621 = call ptr @s2n_strerror(i32 noundef %2620, ptr noundef @.str.4)
  %2622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2623 = load i32, ptr %2622, align 4, !tbaa !5
  %2624 = call ptr @s2n_strerror_debug(i32 noundef %2623, ptr noundef @.str.4)
  %2625 = call ptr @__errno_location() #10
  %2626 = load i32, ptr %2625, align 4, !tbaa !5
  %2627 = call ptr @strerror(i32 noundef %2626) #9
  %2628 = call ptr @__errno_location() #10
  %2629 = load i32, ptr %2628, align 4, !tbaa !5
  %2630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2617, ptr noundef @.str.2, i32 noundef %2618, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 186, ptr noundef %2621, ptr noundef %2624, ptr noundef %2627, i32 noundef %2629) #9
  br label %2648

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

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

2649:                                             ; preds = %2648
  br label %2650

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

2651:                                             ; No predecessors!
  br label %2652

2652:                                             ; preds = %2651
  br label %2653

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

2654:                                             ; preds = %2653
  br label %2655

2655:                                             ; preds = %2654
  br label %2656

2656:                                             ; preds = %2655
  %2657 = load i32, ptr @test_count, align 4, !tbaa !5
  %2658 = add nsw i32 %2657, 1
  store i32 %2658, ptr @test_count, align 4, !tbaa !5
  %2659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call ptr @s2n_strerror_debug(i32 noundef %2660, ptr noundef @.str.4)
  %2662 = icmp eq ptr %2661, null
  br i1 %2662, label %2663, label %2716

2663:                                             ; preds = %2656
  br label %2664

2664:                                             ; preds = %2663
  br label %2665

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

2672:                                             ; preds = %2665
  %2673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2674 = call i32 @fileno(ptr noundef %2673) #9
  %2675 = call i32 @isatty(i32 noundef %2674) #9
  %2676 = icmp ne i32 %2675, 0
  br i1 %2676, label %2677, label %2694

2677:                                             ; preds = %2672
  %2678 = load i32, ptr %64, align 4, !tbaa !5
  %2679 = call ptr @__errno_location() #10
  store i32 %2678, ptr %2679, align 4, !tbaa !5
  %2680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2681 = load i32, ptr @test_count, align 4, !tbaa !5
  %2682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror(i32 noundef %2683, ptr noundef @.str.4)
  %2685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call ptr @s2n_strerror_debug(i32 noundef %2686, ptr noundef @.str.4)
  %2688 = call ptr @__errno_location() #10
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call ptr @strerror(i32 noundef %2689) #9
  %2691 = call ptr @__errno_location() #10
  %2692 = load i32, ptr %2691, align 4, !tbaa !5
  %2693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2680, ptr noundef @.str.2, i32 noundef %2681, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 186, ptr noundef %2684, ptr noundef %2687, ptr noundef %2690, i32 noundef %2692) #9
  br label %2711

2694:                                             ; preds = %2672, %2665
  %2695 = load i32, ptr %64, align 4, !tbaa !5
  %2696 = call ptr @__errno_location() #10
  store i32 %2695, ptr %2696, align 4, !tbaa !5
  %2697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2698 = load i32, ptr @test_count, align 4, !tbaa !5
  %2699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2700 = load i32, ptr %2699, align 4, !tbaa !5
  %2701 = call ptr @s2n_strerror(i32 noundef %2700, ptr noundef @.str.4)
  %2702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2703 = load i32, ptr %2702, align 4, !tbaa !5
  %2704 = call ptr @s2n_strerror_debug(i32 noundef %2703, ptr noundef @.str.4)
  %2705 = call ptr @__errno_location() #10
  %2706 = load i32, ptr %2705, align 4, !tbaa !5
  %2707 = call ptr @strerror(i32 noundef %2706) #9
  %2708 = call ptr @__errno_location() #10
  %2709 = load i32, ptr %2708, align 4, !tbaa !5
  %2710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2697, ptr noundef @.str.5, i32 noundef %2698, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 186, ptr noundef %2701, ptr noundef %2704, ptr noundef %2707, i32 noundef %2709) #9
  br label %2711

2711:                                             ; preds = %2694, %2677
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %2712

2712:                                             ; preds = %2711
  br label %2713

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

2714:                                             ; No predecessors!
  br label %2715

2715:                                             ; preds = %2714
  br label %2716

2716:                                             ; preds = %2715, %2656
  br label %2717

2717:                                             ; preds = %2716
  br label %2718

2718:                                             ; preds = %2717
  br label %2719

2719:                                             ; preds = %2718
  br label %2720

2720:                                             ; preds = %2719
  br label %2721

2721:                                             ; preds = %2720
  %2722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2722, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2723 = call ptr @__errno_location() #10
  store i32 0, ptr %2723, align 4, !tbaa !5
  br label %2724

2724:                                             ; preds = %2721
  br label %2725

2725:                                             ; preds = %2724
  br label %2726

2726:                                             ; preds = %2725
  br label %2727

2727:                                             ; preds = %2726
  br label %2728

2728:                                             ; preds = %2727
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  store i64 0, ptr %65, align 8, !tbaa !25
  br label %2729

2729:                                             ; preds = %2801, %2728
  %2730 = load i64, ptr %65, align 8, !tbaa !25
  %2731 = icmp ult i64 %2730, 21
  br i1 %2731, label %2733, label %2732

2732:                                             ; preds = %2729
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  br label %2804

2733:                                             ; preds = %2729
  br label %2734

2734:                                             ; preds = %2733
  %2735 = load i32, ptr @test_count, align 4, !tbaa !5
  %2736 = add nsw i32 %2735, 1
  store i32 %2736, ptr @test_count, align 4, !tbaa !5
  %2737 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %58, i32 0, i32 0
  %2738 = load i64, ptr %65, align 8, !tbaa !25
  %2739 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %2737, i64 0, i64 %2738
  %2740 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %2739, i32 0, i32 3
  %2741 = load i8, ptr %2740, align 4
  %2742 = and i8 %2741, 1
  %2743 = zext i8 %2742 to i32
  %2744 = icmp ne i32 %2743, 0
  br i1 %2744, label %2745, label %2798

2745:                                             ; preds = %2734
  br label %2746

2746:                                             ; preds = %2745
  br label %2747

2747:                                             ; preds = %2746
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  %2748 = call ptr @__errno_location() #10
  %2749 = load i32, ptr %2748, align 4, !tbaa !5
  store i32 %2749, ptr %66, align 4, !tbaa !5
  %2750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2751 = call i32 @s2n_print_stacktrace(ptr noundef %2750)
  %2752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2753 = trunc i8 %2752 to i1
  br i1 %2753, label %2754, label %2776

2754:                                             ; preds = %2747
  %2755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2756 = call i32 @fileno(ptr noundef %2755) #9
  %2757 = call i32 @isatty(i32 noundef %2756) #9
  %2758 = icmp ne i32 %2757, 0
  br i1 %2758, label %2759, label %2776

2759:                                             ; preds = %2754
  %2760 = load i32, ptr %66, align 4, !tbaa !5
  %2761 = call ptr @__errno_location() #10
  store i32 %2760, ptr %2761, align 4, !tbaa !5
  %2762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2763 = load i32, ptr @test_count, align 4, !tbaa !5
  %2764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2765 = load i32, ptr %2764, align 4, !tbaa !5
  %2766 = call ptr @s2n_strerror(i32 noundef %2765, ptr noundef @.str.4)
  %2767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2768 = load i32, ptr %2767, align 4, !tbaa !5
  %2769 = call ptr @s2n_strerror_debug(i32 noundef %2768, ptr noundef @.str.4)
  %2770 = call ptr @__errno_location() #10
  %2771 = load i32, ptr %2770, align 4, !tbaa !5
  %2772 = call ptr @strerror(i32 noundef %2771) #9
  %2773 = call ptr @__errno_location() #10
  %2774 = load i32, ptr %2773, align 4, !tbaa !5
  %2775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2762, ptr noundef @.str.2, i32 noundef %2763, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 188, ptr noundef %2766, ptr noundef %2769, ptr noundef %2772, i32 noundef %2774) #9
  br label %2793

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

2793:                                             ; preds = %2776, %2759
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %2794

2794:                                             ; preds = %2793
  br label %2795

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

2796:                                             ; No predecessors!
  br label %2797

2797:                                             ; preds = %2796
  br label %2798

2798:                                             ; preds = %2797, %2734
  br label %2799

2799:                                             ; preds = %2798
  br label %2800

2800:                                             ; preds = %2799
  br label %2801

2801:                                             ; preds = %2800
  %2802 = load i64, ptr %65, align 8, !tbaa !25
  %2803 = add i64 %2802, 1
  store i64 %2803, ptr %65, align 8, !tbaa !25
  br label %2729, !llvm.loop !27

2804:                                             ; preds = %2732
  br label %2805

2805:                                             ; preds = %2804
  br label %2806

2806:                                             ; preds = %2805
  br label %2807

2807:                                             ; preds = %2806
  %2808 = load i32, ptr @test_count, align 4, !tbaa !5
  %2809 = add nsw i32 %2808, 1
  store i32 %2809, ptr @test_count, align 4, !tbaa !5
  %2810 = load i8, ptr @received_flag, align 1, !tbaa !11, !range !13, !noundef !14
  %2811 = trunc i8 %2810 to i1
  br i1 %2811, label %2812, label %2865

2812:                                             ; preds = %2807
  br label %2813

2813:                                             ; preds = %2812
  br label %2814

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

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

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

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

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

2861:                                             ; preds = %2860
  br label %2862

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

2863:                                             ; No predecessors!
  br label %2864

2864:                                             ; preds = %2863
  br label %2865

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

2866:                                             ; preds = %2865
  br label %2867

2867:                                             ; preds = %2866
  br label %2868

2868:                                             ; preds = %2867
  %2869 = load i32, ptr @test_count, align 4, !tbaa !5
  %2870 = add nsw i32 %2869, 1
  store i32 %2870, ptr @test_count, align 4, !tbaa !5
  %2871 = load ptr, ptr %60, align 8, !tbaa !9
  %2872 = call i32 @s2n_connection_free(ptr noundef %2871)
  %2873 = icmp eq i32 %2872, -1
  br i1 %2873, label %2874, label %2927

2874:                                             ; preds = %2868
  br label %2875

2875:                                             ; preds = %2874
  br label %2876

2876:                                             ; preds = %2875
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  %2877 = call ptr @__errno_location() #10
  %2878 = load i32, ptr %2877, align 4, !tbaa !5
  store i32 %2878, ptr %68, align 4, !tbaa !5
  %2879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2880 = call i32 @s2n_print_stacktrace(ptr noundef %2879)
  %2881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2882 = trunc i8 %2881 to i1
  br i1 %2882, label %2883, label %2905

2883:                                             ; preds = %2876
  %2884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2885 = call i32 @fileno(ptr noundef %2884) #9
  %2886 = call i32 @isatty(i32 noundef %2885) #9
  %2887 = icmp ne i32 %2886, 0
  br i1 %2887, label %2888, label %2905

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

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

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

2923:                                             ; preds = %2922
  br label %2924

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

2925:                                             ; No predecessors!
  br label %2926

2926:                                             ; preds = %2925
  br label %2927

2927:                                             ; preds = %2926, %2868
  br label %2928

2928:                                             ; preds = %2927
  br label %2929

2929:                                             ; preds = %2928
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 704, ptr %58) #9
  call void @llvm.lifetime.start.p0(i64 704, ptr %69) #9
  call void @llvm.memset.p0.i64(ptr align 8 %69, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %70) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %70, ptr align 8 @__const.main.test_required_extension_type, i64 40, i1 false)
  %2930 = getelementptr inbounds %struct.s2n_extension_type, ptr %70, i32 0, i32 6
  store ptr @s2n_extension_error_if_missing, ptr %2930, align 8, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  store ptr null, ptr %71, align 8, !tbaa !9
  br label %2931

2931:                                             ; preds = %2929
  %2932 = load i32, ptr @test_count, align 4, !tbaa !5
  %2933 = add nsw i32 %2932, 1
  store i32 %2933, ptr @test_count, align 4, !tbaa !5
  %2934 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2934, ptr %71, align 8, !tbaa !9
  %2935 = icmp eq ptr %2934, null
  br i1 %2935, label %2936, label %2989

2936:                                             ; preds = %2931
  br label %2937

2937:                                             ; preds = %2936
  br label %2938

2938:                                             ; preds = %2937
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %2939 = call ptr @__errno_location() #10
  %2940 = load i32, ptr %2939, align 4, !tbaa !5
  store i32 %2940, ptr %72, align 4, !tbaa !5
  %2941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2942 = call i32 @s2n_print_stacktrace(ptr noundef %2941)
  %2943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2944 = trunc i8 %2943 to i1
  br i1 %2944, label %2945, label %2967

2945:                                             ; preds = %2938
  %2946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2947 = call i32 @fileno(ptr noundef %2946) #9
  %2948 = call i32 @isatty(i32 noundef %2947) #9
  %2949 = icmp ne i32 %2948, 0
  br i1 %2949, label %2950, label %2967

2950:                                             ; preds = %2945
  %2951 = load i32, ptr %72, align 4, !tbaa !5
  %2952 = call ptr @__errno_location() #10
  store i32 %2951, ptr %2952, align 4, !tbaa !5
  %2953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2954 = load i32, ptr @test_count, align 4, !tbaa !5
  %2955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2956 = load i32, ptr %2955, align 4, !tbaa !5
  %2957 = call ptr @s2n_strerror(i32 noundef %2956, ptr noundef @.str.4)
  %2958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2959 = load i32, ptr %2958, align 4, !tbaa !5
  %2960 = call ptr @s2n_strerror_debug(i32 noundef %2959, ptr noundef @.str.4)
  %2961 = call ptr @__errno_location() #10
  %2962 = load i32, ptr %2961, align 4, !tbaa !5
  %2963 = call ptr @strerror(i32 noundef %2962) #9
  %2964 = call ptr @__errno_location() #10
  %2965 = load i32, ptr %2964, align 4, !tbaa !5
  %2966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2953, ptr noundef @.str.2, i32 noundef %2954, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 204, ptr noundef %2957, ptr noundef %2960, ptr noundef %2963, i32 noundef %2965) #9
  br label %2984

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

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

2985:                                             ; preds = %2984
  br label %2986

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

2987:                                             ; No predecessors!
  br label %2988

2988:                                             ; preds = %2987
  br label %2989

2989:                                             ; preds = %2988, %2931
  br label %2990

2990:                                             ; preds = %2989
  br label %2991

2991:                                             ; preds = %2990
  store i8 0, ptr @received_flag, align 1, !tbaa !11
  br label %2992

2992:                                             ; preds = %2991
  br label %2993

2993:                                             ; preds = %2992
  br label %2994

2994:                                             ; preds = %2993
  %2995 = load i32, ptr @test_count, align 4, !tbaa !5
  %2996 = add nsw i32 %2995, 1
  store i32 %2996, ptr @test_count, align 4, !tbaa !5
  %2997 = load ptr, ptr %71, align 8, !tbaa !9
  %2998 = call i32 @s2n_extension_process(ptr noundef %70, ptr noundef %2997, ptr noundef %69)
  %2999 = icmp eq i32 %2998, -1
  br i1 %2999, label %3053, label %3000

3000:                                             ; preds = %2994
  br label %3001

3001:                                             ; preds = %3000
  br label %3002

3002:                                             ; preds = %3001
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %3003 = call ptr @__errno_location() #10
  %3004 = load i32, ptr %3003, align 4, !tbaa !5
  store i32 %3004, ptr %73, align 4, !tbaa !5
  %3005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3006 = call i32 @s2n_print_stacktrace(ptr noundef %3005)
  %3007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3008 = trunc i8 %3007 to i1
  br i1 %3008, label %3009, label %3031

3009:                                             ; preds = %3002
  %3010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3011 = call i32 @fileno(ptr noundef %3010) #9
  %3012 = call i32 @isatty(i32 noundef %3011) #9
  %3013 = icmp ne i32 %3012, 0
  br i1 %3013, label %3014, label %3031

3014:                                             ; preds = %3009
  %3015 = load i32, ptr %73, align 4, !tbaa !5
  %3016 = call ptr @__errno_location() #10
  store i32 %3015, ptr %3016, align 4, !tbaa !5
  %3017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3018 = load i32, ptr @test_count, align 4, !tbaa !5
  %3019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3020 = load i32, ptr %3019, align 4, !tbaa !5
  %3021 = call ptr @s2n_strerror(i32 noundef %3020, ptr noundef @.str.4)
  %3022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3023 = load i32, ptr %3022, align 4, !tbaa !5
  %3024 = call ptr @s2n_strerror_debug(i32 noundef %3023, ptr noundef @.str.4)
  %3025 = call ptr @__errno_location() #10
  %3026 = load i32, ptr %3025, align 4, !tbaa !5
  %3027 = call ptr @strerror(i32 noundef %3026) #9
  %3028 = call ptr @__errno_location() #10
  %3029 = load i32, ptr %3028, align 4, !tbaa !5
  %3030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3017, ptr noundef @.str.2, i32 noundef %3018, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 208, ptr noundef %3021, ptr noundef %3024, ptr noundef %3027, i32 noundef %3029) #9
  br label %3048

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

3048:                                             ; preds = %3031, %3014
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %3049

3049:                                             ; preds = %3048
  br label %3050

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

3051:                                             ; No predecessors!
  br label %3052

3052:                                             ; preds = %3051
  br label %3053

3053:                                             ; preds = %3052, %2994
  br label %3054

3054:                                             ; preds = %3053
  br label %3055

3055:                                             ; preds = %3054
  br label %3056

3056:                                             ; preds = %3055
  %3057 = load i32, ptr @test_count, align 4, !tbaa !5
  %3058 = add nsw i32 %3057, 1
  store i32 %3058, ptr @test_count, align 4, !tbaa !5
  %3059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3060 = load i32, ptr %3059, align 4, !tbaa !5
  %3061 = icmp eq i32 %3060, 335544393
  br i1 %3061, label %3115, label %3062

3062:                                             ; preds = %3056
  br label %3063

3063:                                             ; preds = %3062
  br label %3064

3064:                                             ; preds = %3063
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  %3065 = call ptr @__errno_location() #10
  %3066 = load i32, ptr %3065, align 4, !tbaa !5
  store i32 %3066, ptr %74, align 4, !tbaa !5
  %3067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3068 = call i32 @s2n_print_stacktrace(ptr noundef %3067)
  %3069 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3070 = trunc i8 %3069 to i1
  br i1 %3070, label %3071, label %3093

3071:                                             ; preds = %3064
  %3072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3073 = call i32 @fileno(ptr noundef %3072) #9
  %3074 = call i32 @isatty(i32 noundef %3073) #9
  %3075 = icmp ne i32 %3074, 0
  br i1 %3075, label %3076, label %3093

3076:                                             ; preds = %3071
  %3077 = load i32, ptr %74, align 4, !tbaa !5
  %3078 = call ptr @__errno_location() #10
  store i32 %3077, ptr %3078, align 4, !tbaa !5
  %3079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3080 = load i32, ptr @test_count, align 4, !tbaa !5
  %3081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3082 = load i32, ptr %3081, align 4, !tbaa !5
  %3083 = call ptr @s2n_strerror(i32 noundef %3082, ptr noundef @.str.4)
  %3084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3085 = load i32, ptr %3084, align 4, !tbaa !5
  %3086 = call ptr @s2n_strerror_debug(i32 noundef %3085, ptr noundef @.str.4)
  %3087 = call ptr @__errno_location() #10
  %3088 = load i32, ptr %3087, align 4, !tbaa !5
  %3089 = call ptr @strerror(i32 noundef %3088) #9
  %3090 = call ptr @__errno_location() #10
  %3091 = load i32, ptr %3090, align 4, !tbaa !5
  %3092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3079, ptr noundef @.str.2, i32 noundef %3080, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 208, ptr noundef %3083, ptr noundef %3086, ptr noundef %3089, i32 noundef %3091) #9
  br label %3110

3093:                                             ; preds = %3071, %3064
  %3094 = load i32, ptr %74, align 4, !tbaa !5
  %3095 = call ptr @__errno_location() #10
  store i32 %3094, ptr %3095, align 4, !tbaa !5
  %3096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3097 = load i32, ptr @test_count, align 4, !tbaa !5
  %3098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3099 = load i32, ptr %3098, align 4, !tbaa !5
  %3100 = call ptr @s2n_strerror(i32 noundef %3099, ptr noundef @.str.4)
  %3101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3102 = load i32, ptr %3101, align 4, !tbaa !5
  %3103 = call ptr @s2n_strerror_debug(i32 noundef %3102, ptr noundef @.str.4)
  %3104 = call ptr @__errno_location() #10
  %3105 = load i32, ptr %3104, align 4, !tbaa !5
  %3106 = call ptr @strerror(i32 noundef %3105) #9
  %3107 = call ptr @__errno_location() #10
  %3108 = load i32, ptr %3107, align 4, !tbaa !5
  %3109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3096, ptr noundef @.str.5, i32 noundef %3097, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 208, ptr noundef %3100, ptr noundef %3103, ptr noundef %3106, i32 noundef %3108) #9
  br label %3110

3110:                                             ; preds = %3093, %3076
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %3111

3111:                                             ; preds = %3110
  br label %3112

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

3113:                                             ; No predecessors!
  br label %3114

3114:                                             ; preds = %3113
  br label %3115

3115:                                             ; preds = %3114, %3056
  br label %3116

3116:                                             ; preds = %3115
  br label %3117

3117:                                             ; preds = %3116
  br label %3118

3118:                                             ; preds = %3117
  %3119 = load i32, ptr @test_count, align 4, !tbaa !5
  %3120 = add nsw i32 %3119, 1
  store i32 %3120, ptr @test_count, align 4, !tbaa !5
  %3121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3122 = load i32, ptr %3121, align 4, !tbaa !5
  %3123 = call ptr @s2n_strerror_debug(i32 noundef %3122, ptr noundef @.str.4)
  %3124 = icmp eq ptr %3123, null
  br i1 %3124, label %3125, label %3178

3125:                                             ; preds = %3118
  br label %3126

3126:                                             ; preds = %3125
  br label %3127

3127:                                             ; preds = %3126
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #9
  %3128 = call ptr @__errno_location() #10
  %3129 = load i32, ptr %3128, align 4, !tbaa !5
  store i32 %3129, ptr %75, align 4, !tbaa !5
  %3130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3131 = call i32 @s2n_print_stacktrace(ptr noundef %3130)
  %3132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3133 = trunc i8 %3132 to i1
  br i1 %3133, label %3134, label %3156

3134:                                             ; preds = %3127
  %3135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3136 = call i32 @fileno(ptr noundef %3135) #9
  %3137 = call i32 @isatty(i32 noundef %3136) #9
  %3138 = icmp ne i32 %3137, 0
  br i1 %3138, label %3139, label %3156

3139:                                             ; preds = %3134
  %3140 = load i32, ptr %75, align 4, !tbaa !5
  %3141 = call ptr @__errno_location() #10
  store i32 %3140, ptr %3141, align 4, !tbaa !5
  %3142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3143 = load i32, ptr @test_count, align 4, !tbaa !5
  %3144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3145 = load i32, ptr %3144, align 4, !tbaa !5
  %3146 = call ptr @s2n_strerror(i32 noundef %3145, ptr noundef @.str.4)
  %3147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3148 = load i32, ptr %3147, align 4, !tbaa !5
  %3149 = call ptr @s2n_strerror_debug(i32 noundef %3148, ptr noundef @.str.4)
  %3150 = call ptr @__errno_location() #10
  %3151 = load i32, ptr %3150, align 4, !tbaa !5
  %3152 = call ptr @strerror(i32 noundef %3151) #9
  %3153 = call ptr @__errno_location() #10
  %3154 = load i32, ptr %3153, align 4, !tbaa !5
  %3155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3142, ptr noundef @.str.2, i32 noundef %3143, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 208, ptr noundef %3146, ptr noundef %3149, ptr noundef %3152, i32 noundef %3154) #9
  br label %3173

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

3173:                                             ; preds = %3156, %3139
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #9
  br label %3174

3174:                                             ; preds = %3173
  br label %3175

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

3176:                                             ; No predecessors!
  br label %3177

3177:                                             ; preds = %3176
  br label %3178

3178:                                             ; preds = %3177, %3118
  br label %3179

3179:                                             ; preds = %3178
  br label %3180

3180:                                             ; preds = %3179
  br label %3181

3181:                                             ; preds = %3180
  br label %3182

3182:                                             ; preds = %3181
  br label %3183

3183:                                             ; preds = %3182
  %3184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3184, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3185 = call ptr @__errno_location() #10
  store i32 0, ptr %3185, align 4, !tbaa !5
  br label %3186

3186:                                             ; preds = %3183
  br label %3187

3187:                                             ; preds = %3186
  br label %3188

3188:                                             ; preds = %3187
  br label %3189

3189:                                             ; preds = %3188
  br label %3190

3190:                                             ; preds = %3189
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #9
  store i64 0, ptr %76, align 8, !tbaa !25
  br label %3191

3191:                                             ; preds = %3263, %3190
  %3192 = load i64, ptr %76, align 8, !tbaa !25
  %3193 = icmp ult i64 %3192, 21
  br i1 %3193, label %3195, label %3194

3194:                                             ; preds = %3191
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #9
  br label %3266

3195:                                             ; preds = %3191
  br label %3196

3196:                                             ; preds = %3195
  %3197 = load i32, ptr @test_count, align 4, !tbaa !5
  %3198 = add nsw i32 %3197, 1
  store i32 %3198, ptr @test_count, align 4, !tbaa !5
  %3199 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %69, i32 0, i32 0
  %3200 = load i64, ptr %76, align 8, !tbaa !25
  %3201 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %3199, i64 0, i64 %3200
  %3202 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %3201, i32 0, i32 3
  %3203 = load i8, ptr %3202, align 4
  %3204 = and i8 %3203, 1
  %3205 = zext i8 %3204 to i32
  %3206 = icmp ne i32 %3205, 0
  br i1 %3206, label %3207, label %3260

3207:                                             ; preds = %3196
  br label %3208

3208:                                             ; preds = %3207
  br label %3209

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

3216:                                             ; preds = %3209
  %3217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3218 = call i32 @fileno(ptr noundef %3217) #9
  %3219 = call i32 @isatty(i32 noundef %3218) #9
  %3220 = icmp ne i32 %3219, 0
  br i1 %3220, label %3221, label %3238

3221:                                             ; preds = %3216
  %3222 = load i32, ptr %77, align 4, !tbaa !5
  %3223 = call ptr @__errno_location() #10
  store i32 %3222, ptr %3223, align 4, !tbaa !5
  %3224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3225 = load i32, ptr @test_count, align 4, !tbaa !5
  %3226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3227 = load i32, ptr %3226, align 4, !tbaa !5
  %3228 = call ptr @s2n_strerror(i32 noundef %3227, ptr noundef @.str.4)
  %3229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3230 = load i32, ptr %3229, align 4, !tbaa !5
  %3231 = call ptr @s2n_strerror_debug(i32 noundef %3230, ptr noundef @.str.4)
  %3232 = call ptr @__errno_location() #10
  %3233 = load i32, ptr %3232, align 4, !tbaa !5
  %3234 = call ptr @strerror(i32 noundef %3233) #9
  %3235 = call ptr @__errno_location() #10
  %3236 = load i32, ptr %3235, align 4, !tbaa !5
  %3237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3224, ptr noundef @.str.2, i32 noundef %3225, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 210, ptr noundef %3228, ptr noundef %3231, ptr noundef %3234, i32 noundef %3236) #9
  br label %3255

3238:                                             ; preds = %3216, %3209
  %3239 = load i32, ptr %77, align 4, !tbaa !5
  %3240 = call ptr @__errno_location() #10
  store i32 %3239, ptr %3240, align 4, !tbaa !5
  %3241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3242 = load i32, ptr @test_count, align 4, !tbaa !5
  %3243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3244 = load i32, ptr %3243, align 4, !tbaa !5
  %3245 = call ptr @s2n_strerror(i32 noundef %3244, ptr noundef @.str.4)
  %3246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3247 = load i32, ptr %3246, align 4, !tbaa !5
  %3248 = call ptr @s2n_strerror_debug(i32 noundef %3247, ptr noundef @.str.4)
  %3249 = call ptr @__errno_location() #10
  %3250 = load i32, ptr %3249, align 4, !tbaa !5
  %3251 = call ptr @strerror(i32 noundef %3250) #9
  %3252 = call ptr @__errno_location() #10
  %3253 = load i32, ptr %3252, align 4, !tbaa !5
  %3254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3241, ptr noundef @.str.5, i32 noundef %3242, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 210, ptr noundef %3245, ptr noundef %3248, ptr noundef %3251, i32 noundef %3253) #9
  br label %3255

3255:                                             ; preds = %3238, %3221
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %3256

3256:                                             ; preds = %3255
  br label %3257

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

3258:                                             ; No predecessors!
  br label %3259

3259:                                             ; preds = %3258
  br label %3260

3260:                                             ; preds = %3259, %3196
  br label %3261

3261:                                             ; preds = %3260
  br label %3262

3262:                                             ; preds = %3261
  br label %3263

3263:                                             ; preds = %3262
  %3264 = load i64, ptr %76, align 8, !tbaa !25
  %3265 = add i64 %3264, 1
  store i64 %3265, ptr %76, align 8, !tbaa !25
  br label %3191, !llvm.loop !31

3266:                                             ; preds = %3194
  br label %3267

3267:                                             ; preds = %3266
  br label %3268

3268:                                             ; preds = %3267
  br label %3269

3269:                                             ; preds = %3268
  %3270 = load i32, ptr @test_count, align 4, !tbaa !5
  %3271 = add nsw i32 %3270, 1
  store i32 %3271, ptr @test_count, align 4, !tbaa !5
  %3272 = load i8, ptr @received_flag, align 1, !tbaa !11, !range !13, !noundef !14
  %3273 = trunc i8 %3272 to i1
  br i1 %3273, label %3274, label %3327

3274:                                             ; preds = %3269
  br label %3275

3275:                                             ; preds = %3274
  br label %3276

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

3283:                                             ; preds = %3276
  %3284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3285 = call i32 @fileno(ptr noundef %3284) #9
  %3286 = call i32 @isatty(i32 noundef %3285) #9
  %3287 = icmp ne i32 %3286, 0
  br i1 %3287, label %3288, label %3305

3288:                                             ; preds = %3283
  %3289 = load i32, ptr %78, align 4, !tbaa !5
  %3290 = call ptr @__errno_location() #10
  store i32 %3289, ptr %3290, align 4, !tbaa !5
  %3291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3292 = load i32, ptr @test_count, align 4, !tbaa !5
  %3293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3294 = load i32, ptr %3293, align 4, !tbaa !5
  %3295 = call ptr @s2n_strerror(i32 noundef %3294, ptr noundef @.str.4)
  %3296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3297 = load i32, ptr %3296, align 4, !tbaa !5
  %3298 = call ptr @s2n_strerror_debug(i32 noundef %3297, ptr noundef @.str.4)
  %3299 = call ptr @__errno_location() #10
  %3300 = load i32, ptr %3299, align 4, !tbaa !5
  %3301 = call ptr @strerror(i32 noundef %3300) #9
  %3302 = call ptr @__errno_location() #10
  %3303 = load i32, ptr %3302, align 4, !tbaa !5
  %3304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3291, ptr noundef @.str.2, i32 noundef %3292, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 211, ptr noundef %3295, ptr noundef %3298, ptr noundef %3301, i32 noundef %3303) #9
  br label %3322

3305:                                             ; preds = %3283, %3276
  %3306 = load i32, ptr %78, align 4, !tbaa !5
  %3307 = call ptr @__errno_location() #10
  store i32 %3306, ptr %3307, align 4, !tbaa !5
  %3308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3309 = load i32, ptr @test_count, align 4, !tbaa !5
  %3310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3311 = load i32, ptr %3310, align 4, !tbaa !5
  %3312 = call ptr @s2n_strerror(i32 noundef %3311, ptr noundef @.str.4)
  %3313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3314 = load i32, ptr %3313, align 4, !tbaa !5
  %3315 = call ptr @s2n_strerror_debug(i32 noundef %3314, ptr noundef @.str.4)
  %3316 = call ptr @__errno_location() #10
  %3317 = load i32, ptr %3316, align 4, !tbaa !5
  %3318 = call ptr @strerror(i32 noundef %3317) #9
  %3319 = call ptr @__errno_location() #10
  %3320 = load i32, ptr %3319, align 4, !tbaa !5
  %3321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3308, ptr noundef @.str.5, i32 noundef %3309, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 211, ptr noundef %3312, ptr noundef %3315, ptr noundef %3318, i32 noundef %3320) #9
  br label %3322

3322:                                             ; preds = %3305, %3288
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %3323

3323:                                             ; preds = %3322
  br label %3324

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

3325:                                             ; No predecessors!
  br label %3326

3326:                                             ; preds = %3325
  br label %3327

3327:                                             ; preds = %3326, %3269
  br label %3328

3328:                                             ; preds = %3327
  br label %3329

3329:                                             ; preds = %3328
  br label %3330

3330:                                             ; preds = %3329
  %3331 = load i32, ptr @test_count, align 4, !tbaa !5
  %3332 = add nsw i32 %3331, 1
  store i32 %3332, ptr @test_count, align 4, !tbaa !5
  %3333 = load ptr, ptr %71, align 8, !tbaa !9
  %3334 = call i32 @s2n_connection_free(ptr noundef %3333)
  %3335 = icmp eq i32 %3334, -1
  br i1 %3335, label %3336, label %3389

3336:                                             ; preds = %3330
  br label %3337

3337:                                             ; preds = %3336
  br label %3338

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

3345:                                             ; preds = %3338
  %3346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3347 = call i32 @fileno(ptr noundef %3346) #9
  %3348 = call i32 @isatty(i32 noundef %3347) #9
  %3349 = icmp ne i32 %3348, 0
  br i1 %3349, label %3350, label %3367

3350:                                             ; preds = %3345
  %3351 = load i32, ptr %79, align 4, !tbaa !5
  %3352 = call ptr @__errno_location() #10
  store i32 %3351, ptr %3352, align 4, !tbaa !5
  %3353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3354 = load i32, ptr @test_count, align 4, !tbaa !5
  %3355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror(i32 noundef %3356, ptr noundef @.str.4)
  %3358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3359 = load i32, ptr %3358, align 4, !tbaa !5
  %3360 = call ptr @s2n_strerror_debug(i32 noundef %3359, ptr noundef @.str.4)
  %3361 = call ptr @__errno_location() #10
  %3362 = load i32, ptr %3361, align 4, !tbaa !5
  %3363 = call ptr @strerror(i32 noundef %3362) #9
  %3364 = call ptr @__errno_location() #10
  %3365 = load i32, ptr %3364, align 4, !tbaa !5
  %3366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3353, ptr noundef @.str.2, i32 noundef %3354, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 213, ptr noundef %3357, ptr noundef %3360, ptr noundef %3363, i32 noundef %3365) #9
  br label %3384

3367:                                             ; preds = %3345, %3338
  %3368 = load i32, ptr %79, align 4, !tbaa !5
  %3369 = call ptr @__errno_location() #10
  store i32 %3368, ptr %3369, align 4, !tbaa !5
  %3370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3371 = load i32, ptr @test_count, align 4, !tbaa !5
  %3372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3373 = load i32, ptr %3372, align 4, !tbaa !5
  %3374 = call ptr @s2n_strerror(i32 noundef %3373, ptr noundef @.str.4)
  %3375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3376 = load i32, ptr %3375, align 4, !tbaa !5
  %3377 = call ptr @s2n_strerror_debug(i32 noundef %3376, ptr noundef @.str.4)
  %3378 = call ptr @__errno_location() #10
  %3379 = load i32, ptr %3378, align 4, !tbaa !5
  %3380 = call ptr @strerror(i32 noundef %3379) #9
  %3381 = call ptr @__errno_location() #10
  %3382 = load i32, ptr %3381, align 4, !tbaa !5
  %3383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3370, ptr noundef @.str.5, i32 noundef %3371, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 213, ptr noundef %3374, ptr noundef %3377, ptr noundef %3380, i32 noundef %3382) #9
  br label %3384

3384:                                             ; preds = %3367, %3350
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %3385

3385:                                             ; preds = %3384
  br label %3386

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

3387:                                             ; No predecessors!
  br label %3388

3388:                                             ; preds = %3387
  br label %3389

3389:                                             ; preds = %3388, %3330
  br label %3390

3390:                                             ; preds = %3389
  br label %3391

3391:                                             ; preds = %3390
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 704, ptr %69) #9
  call void @llvm.lifetime.start.p0(i64 704, ptr %80) #9
  call void @llvm.memset.p0.i64(ptr align 8 %80, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %81) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %81, ptr align 8 @__const.main.test_optional_extension_type, i64 40, i1 false)
  %3392 = getelementptr inbounds %struct.s2n_extension_type, ptr %81, i32 0, i32 6
  store ptr @s2n_extension_noop_if_missing, ptr %3392, align 8, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #9
  store ptr null, ptr %82, align 8, !tbaa !9
  br label %3393

3393:                                             ; preds = %3391
  %3394 = load i32, ptr @test_count, align 4, !tbaa !5
  %3395 = add nsw i32 %3394, 1
  store i32 %3395, ptr @test_count, align 4, !tbaa !5
  %3396 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3396, ptr %82, align 8, !tbaa !9
  %3397 = icmp eq ptr %3396, null
  br i1 %3397, label %3398, label %3451

3398:                                             ; preds = %3393
  br label %3399

3399:                                             ; preds = %3398
  br label %3400

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

3407:                                             ; preds = %3400
  %3408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3409 = call i32 @fileno(ptr noundef %3408) #9
  %3410 = call i32 @isatty(i32 noundef %3409) #9
  %3411 = icmp ne i32 %3410, 0
  br i1 %3411, label %3412, label %3429

3412:                                             ; preds = %3407
  %3413 = load i32, ptr %83, align 4, !tbaa !5
  %3414 = call ptr @__errno_location() #10
  store i32 %3413, ptr %3414, align 4, !tbaa !5
  %3415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3416 = load i32, ptr @test_count, align 4, !tbaa !5
  %3417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3418 = load i32, ptr %3417, align 4, !tbaa !5
  %3419 = call ptr @s2n_strerror(i32 noundef %3418, ptr noundef @.str.4)
  %3420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3421 = load i32, ptr %3420, align 4, !tbaa !5
  %3422 = call ptr @s2n_strerror_debug(i32 noundef %3421, ptr noundef @.str.4)
  %3423 = call ptr @__errno_location() #10
  %3424 = load i32, ptr %3423, align 4, !tbaa !5
  %3425 = call ptr @strerror(i32 noundef %3424) #9
  %3426 = call ptr @__errno_location() #10
  %3427 = load i32, ptr %3426, align 4, !tbaa !5
  %3428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3415, ptr noundef @.str.2, i32 noundef %3416, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 224, ptr noundef %3419, ptr noundef %3422, ptr noundef %3425, i32 noundef %3427) #9
  br label %3446

3429:                                             ; preds = %3407, %3400
  %3430 = load i32, ptr %83, align 4, !tbaa !5
  %3431 = call ptr @__errno_location() #10
  store i32 %3430, ptr %3431, align 4, !tbaa !5
  %3432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3433 = load i32, ptr @test_count, align 4, !tbaa !5
  %3434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3435 = load i32, ptr %3434, align 4, !tbaa !5
  %3436 = call ptr @s2n_strerror(i32 noundef %3435, ptr noundef @.str.4)
  %3437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3438 = load i32, ptr %3437, align 4, !tbaa !5
  %3439 = call ptr @s2n_strerror_debug(i32 noundef %3438, ptr noundef @.str.4)
  %3440 = call ptr @__errno_location() #10
  %3441 = load i32, ptr %3440, align 4, !tbaa !5
  %3442 = call ptr @strerror(i32 noundef %3441) #9
  %3443 = call ptr @__errno_location() #10
  %3444 = load i32, ptr %3443, align 4, !tbaa !5
  %3445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3432, ptr noundef @.str.5, i32 noundef %3433, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 224, ptr noundef %3436, ptr noundef %3439, ptr noundef %3442, i32 noundef %3444) #9
  br label %3446

3446:                                             ; preds = %3429, %3412
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  br label %3447

3447:                                             ; preds = %3446
  br label %3448

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

3449:                                             ; No predecessors!
  br label %3450

3450:                                             ; preds = %3449
  br label %3451

3451:                                             ; preds = %3450, %3393
  br label %3452

3452:                                             ; preds = %3451
  br label %3453

3453:                                             ; preds = %3452
  store i8 0, ptr @received_flag, align 1, !tbaa !11
  br label %3454

3454:                                             ; preds = %3453
  %3455 = load i32, ptr @test_count, align 4, !tbaa !5
  %3456 = add nsw i32 %3455, 1
  store i32 %3456, ptr @test_count, align 4, !tbaa !5
  %3457 = load ptr, ptr %82, align 8, !tbaa !9
  %3458 = call i32 @s2n_extension_process(ptr noundef %81, ptr noundef %3457, ptr noundef %80)
  %3459 = icmp eq i32 %3458, -1
  br i1 %3459, label %3460, label %3513

3460:                                             ; preds = %3454
  br label %3461

3461:                                             ; preds = %3460
  br label %3462

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

3469:                                             ; preds = %3462
  %3470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3471 = call i32 @fileno(ptr noundef %3470) #9
  %3472 = call i32 @isatty(i32 noundef %3471) #9
  %3473 = icmp ne i32 %3472, 0
  br i1 %3473, label %3474, label %3491

3474:                                             ; preds = %3469
  %3475 = load i32, ptr %84, align 4, !tbaa !5
  %3476 = call ptr @__errno_location() #10
  store i32 %3475, ptr %3476, align 4, !tbaa !5
  %3477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3478 = load i32, ptr @test_count, align 4, !tbaa !5
  %3479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3480 = load i32, ptr %3479, align 4, !tbaa !5
  %3481 = call ptr @s2n_strerror(i32 noundef %3480, ptr noundef @.str.4)
  %3482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3483 = load i32, ptr %3482, align 4, !tbaa !5
  %3484 = call ptr @s2n_strerror_debug(i32 noundef %3483, ptr noundef @.str.4)
  %3485 = call ptr @__errno_location() #10
  %3486 = load i32, ptr %3485, align 4, !tbaa !5
  %3487 = call ptr @strerror(i32 noundef %3486) #9
  %3488 = call ptr @__errno_location() #10
  %3489 = load i32, ptr %3488, align 4, !tbaa !5
  %3490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3477, ptr noundef @.str.2, i32 noundef %3478, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 227, ptr noundef %3481, ptr noundef %3484, ptr noundef %3487, i32 noundef %3489) #9
  br label %3508

3491:                                             ; preds = %3469, %3462
  %3492 = load i32, ptr %84, align 4, !tbaa !5
  %3493 = call ptr @__errno_location() #10
  store i32 %3492, ptr %3493, align 4, !tbaa !5
  %3494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3495 = load i32, ptr @test_count, align 4, !tbaa !5
  %3496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3497 = load i32, ptr %3496, align 4, !tbaa !5
  %3498 = call ptr @s2n_strerror(i32 noundef %3497, ptr noundef @.str.4)
  %3499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3500 = load i32, ptr %3499, align 4, !tbaa !5
  %3501 = call ptr @s2n_strerror_debug(i32 noundef %3500, ptr noundef @.str.4)
  %3502 = call ptr @__errno_location() #10
  %3503 = load i32, ptr %3502, align 4, !tbaa !5
  %3504 = call ptr @strerror(i32 noundef %3503) #9
  %3505 = call ptr @__errno_location() #10
  %3506 = load i32, ptr %3505, align 4, !tbaa !5
  %3507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3494, ptr noundef @.str.5, i32 noundef %3495, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 227, ptr noundef %3498, ptr noundef %3501, ptr noundef %3504, i32 noundef %3506) #9
  br label %3508

3508:                                             ; preds = %3491, %3474
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %3509

3509:                                             ; preds = %3508
  br label %3510

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

3511:                                             ; No predecessors!
  br label %3512

3512:                                             ; preds = %3511
  br label %3513

3513:                                             ; preds = %3512, %3454
  br label %3514

3514:                                             ; preds = %3513
  br label %3515

3515:                                             ; preds = %3514
  br label %3516

3516:                                             ; preds = %3515
  %3517 = load i32, ptr @test_count, align 4, !tbaa !5
  %3518 = add nsw i32 %3517, 1
  store i32 %3518, ptr @test_count, align 4, !tbaa !5
  %3519 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %80, i32 0, i32 0
  %3520 = load i8, ptr %10, align 1, !tbaa !15
  %3521 = zext i8 %3520 to i64
  %3522 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %3519, i64 0, i64 %3521
  %3523 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %3522, i32 0, i32 3
  %3524 = load i8, ptr %3523, align 4
  %3525 = and i8 %3524, 1
  %3526 = zext i8 %3525 to i32
  %3527 = icmp ne i32 %3526, 0
  br i1 %3527, label %3581, label %3528

3528:                                             ; preds = %3516
  br label %3529

3529:                                             ; preds = %3528
  br label %3530

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

3537:                                             ; preds = %3530
  %3538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3539 = call i32 @fileno(ptr noundef %3538) #9
  %3540 = call i32 @isatty(i32 noundef %3539) #9
  %3541 = icmp ne i32 %3540, 0
  br i1 %3541, label %3542, label %3559

3542:                                             ; preds = %3537
  %3543 = load i32, ptr %85, align 4, !tbaa !5
  %3544 = call ptr @__errno_location() #10
  store i32 %3543, ptr %3544, align 4, !tbaa !5
  %3545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3546 = load i32, ptr @test_count, align 4, !tbaa !5
  %3547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3548 = load i32, ptr %3547, align 4, !tbaa !5
  %3549 = call ptr @s2n_strerror(i32 noundef %3548, ptr noundef @.str.4)
  %3550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3551 = load i32, ptr %3550, align 4, !tbaa !5
  %3552 = call ptr @s2n_strerror_debug(i32 noundef %3551, ptr noundef @.str.4)
  %3553 = call ptr @__errno_location() #10
  %3554 = load i32, ptr %3553, align 4, !tbaa !5
  %3555 = call ptr @strerror(i32 noundef %3554) #9
  %3556 = call ptr @__errno_location() #10
  %3557 = load i32, ptr %3556, align 4, !tbaa !5
  %3558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3545, ptr noundef @.str.2, i32 noundef %3546, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 229, ptr noundef %3549, ptr noundef %3552, ptr noundef %3555, i32 noundef %3557) #9
  br label %3576

3559:                                             ; preds = %3537, %3530
  %3560 = load i32, ptr %85, align 4, !tbaa !5
  %3561 = call ptr @__errno_location() #10
  store i32 %3560, ptr %3561, align 4, !tbaa !5
  %3562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3563 = load i32, ptr @test_count, align 4, !tbaa !5
  %3564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3565 = load i32, ptr %3564, align 4, !tbaa !5
  %3566 = call ptr @s2n_strerror(i32 noundef %3565, ptr noundef @.str.4)
  %3567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3568 = load i32, ptr %3567, align 4, !tbaa !5
  %3569 = call ptr @s2n_strerror_debug(i32 noundef %3568, ptr noundef @.str.4)
  %3570 = call ptr @__errno_location() #10
  %3571 = load i32, ptr %3570, align 4, !tbaa !5
  %3572 = call ptr @strerror(i32 noundef %3571) #9
  %3573 = call ptr @__errno_location() #10
  %3574 = load i32, ptr %3573, align 4, !tbaa !5
  %3575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3562, ptr noundef @.str.5, i32 noundef %3563, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 229, ptr noundef %3566, ptr noundef %3569, ptr noundef %3572, i32 noundef %3574) #9
  br label %3576

3576:                                             ; preds = %3559, %3542
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %3577

3577:                                             ; preds = %3576
  br label %3578

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

3579:                                             ; No predecessors!
  br label %3580

3580:                                             ; preds = %3579
  br label %3581

3581:                                             ; preds = %3580, %3516
  br label %3582

3582:                                             ; preds = %3581
  br label %3583

3583:                                             ; preds = %3582
  br label %3584

3584:                                             ; preds = %3583
  %3585 = load i32, ptr @test_count, align 4, !tbaa !5
  %3586 = add nsw i32 %3585, 1
  store i32 %3586, ptr @test_count, align 4, !tbaa !5
  %3587 = load i8, ptr @received_flag, align 1, !tbaa !11, !range !13, !noundef !14
  %3588 = trunc i8 %3587 to i1
  br i1 %3588, label %3589, label %3642

3589:                                             ; preds = %3584
  br label %3590

3590:                                             ; preds = %3589
  br label %3591

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

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

3603:                                             ; preds = %3598
  %3604 = load i32, ptr %86, align 4, !tbaa !5
  %3605 = call ptr @__errno_location() #10
  store i32 %3604, ptr %3605, align 4, !tbaa !5
  %3606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3607 = load i32, ptr @test_count, align 4, !tbaa !5
  %3608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3609 = load i32, ptr %3608, align 4, !tbaa !5
  %3610 = call ptr @s2n_strerror(i32 noundef %3609, ptr noundef @.str.4)
  %3611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3612 = load i32, ptr %3611, align 4, !tbaa !5
  %3613 = call ptr @s2n_strerror_debug(i32 noundef %3612, ptr noundef @.str.4)
  %3614 = call ptr @__errno_location() #10
  %3615 = load i32, ptr %3614, align 4, !tbaa !5
  %3616 = call ptr @strerror(i32 noundef %3615) #9
  %3617 = call ptr @__errno_location() #10
  %3618 = load i32, ptr %3617, align 4, !tbaa !5
  %3619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3606, ptr noundef @.str.2, i32 noundef %3607, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 230, ptr noundef %3610, ptr noundef %3613, ptr noundef %3616, i32 noundef %3618) #9
  br label %3637

3620:                                             ; preds = %3598, %3591
  %3621 = load i32, ptr %86, align 4, !tbaa !5
  %3622 = call ptr @__errno_location() #10
  store i32 %3621, ptr %3622, align 4, !tbaa !5
  %3623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3624 = load i32, ptr @test_count, align 4, !tbaa !5
  %3625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3626 = load i32, ptr %3625, align 4, !tbaa !5
  %3627 = call ptr @s2n_strerror(i32 noundef %3626, ptr noundef @.str.4)
  %3628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3629 = load i32, ptr %3628, align 4, !tbaa !5
  %3630 = call ptr @s2n_strerror_debug(i32 noundef %3629, ptr noundef @.str.4)
  %3631 = call ptr @__errno_location() #10
  %3632 = load i32, ptr %3631, align 4, !tbaa !5
  %3633 = call ptr @strerror(i32 noundef %3632) #9
  %3634 = call ptr @__errno_location() #10
  %3635 = load i32, ptr %3634, align 4, !tbaa !5
  %3636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3623, ptr noundef @.str.5, i32 noundef %3624, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 230, ptr noundef %3627, ptr noundef %3630, ptr noundef %3633, i32 noundef %3635) #9
  br label %3637

3637:                                             ; preds = %3620, %3603
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %3638

3638:                                             ; preds = %3637
  br label %3639

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

3640:                                             ; No predecessors!
  br label %3641

3641:                                             ; preds = %3640
  br label %3642

3642:                                             ; preds = %3641, %3584
  br label %3643

3643:                                             ; preds = %3642
  br label %3644

3644:                                             ; preds = %3643
  br label %3645

3645:                                             ; preds = %3644
  %3646 = load i32, ptr @test_count, align 4, !tbaa !5
  %3647 = add nsw i32 %3646, 1
  store i32 %3647, ptr @test_count, align 4, !tbaa !5
  %3648 = load ptr, ptr %82, align 8, !tbaa !9
  %3649 = call i32 @s2n_connection_free(ptr noundef %3648)
  %3650 = icmp eq i32 %3649, -1
  br i1 %3650, label %3651, label %3704

3651:                                             ; preds = %3645
  br label %3652

3652:                                             ; preds = %3651
  br label %3653

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

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

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

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

3699:                                             ; preds = %3682, %3665
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %3700

3700:                                             ; preds = %3699
  br label %3701

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

3702:                                             ; No predecessors!
  br label %3703

3703:                                             ; preds = %3702
  br label %3704

3704:                                             ; preds = %3703, %3645
  br label %3705

3705:                                             ; preds = %3704
  br label %3706

3706:                                             ; preds = %3705
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %81) #9
  call void @llvm.lifetime.end.p0(i64 704, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 5, ptr %6) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #9
  call void @llvm.memset.p0.i64(ptr align 8 %88, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #9
  call void @llvm.memset.p0.i64(ptr align 8 %89, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %90) #9
  br label %3707

3707:                                             ; preds = %3706
  %3708 = load i32, ptr @test_count, align 4, !tbaa !5
  %3709 = add nsw i32 %3708, 1
  store i32 %3709, ptr @test_count, align 4, !tbaa !5
  %3710 = call i32 @s2n_stuffer_alloc(ptr noundef %90, i32 noundef 100)
  %3711 = icmp eq i32 %3710, -1
  br i1 %3711, label %3712, label %3765

3712:                                             ; preds = %3707
  br label %3713

3713:                                             ; preds = %3712
  br label %3714

3714:                                             ; preds = %3713
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #9
  %3715 = call ptr @__errno_location() #10
  %3716 = load i32, ptr %3715, align 4, !tbaa !5
  store i32 %3716, ptr %91, align 4, !tbaa !5
  %3717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3718 = call i32 @s2n_print_stacktrace(ptr noundef %3717)
  %3719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3720 = trunc i8 %3719 to i1
  br i1 %3720, label %3721, label %3743

3721:                                             ; preds = %3714
  %3722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3723 = call i32 @fileno(ptr noundef %3722) #9
  %3724 = call i32 @isatty(i32 noundef %3723) #9
  %3725 = icmp ne i32 %3724, 0
  br i1 %3725, label %3726, label %3743

3726:                                             ; preds = %3721
  %3727 = load i32, ptr %91, align 4, !tbaa !5
  %3728 = call ptr @__errno_location() #10
  store i32 %3727, ptr %3728, align 4, !tbaa !5
  %3729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3730 = load i32, ptr @test_count, align 4, !tbaa !5
  %3731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3732 = load i32, ptr %3731, align 4, !tbaa !5
  %3733 = call ptr @s2n_strerror(i32 noundef %3732, ptr noundef @.str.4)
  %3734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3735 = load i32, ptr %3734, align 4, !tbaa !5
  %3736 = call ptr @s2n_strerror_debug(i32 noundef %3735, ptr noundef @.str.4)
  %3737 = call ptr @__errno_location() #10
  %3738 = load i32, ptr %3737, align 4, !tbaa !5
  %3739 = call ptr @strerror(i32 noundef %3738) #9
  %3740 = call ptr @__errno_location() #10
  %3741 = load i32, ptr %3740, align 4, !tbaa !5
  %3742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3729, ptr noundef @.str.2, i32 noundef %3730, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 243, ptr noundef %3733, ptr noundef %3736, ptr noundef %3739, i32 noundef %3741) #9
  br label %3760

3743:                                             ; preds = %3721, %3714
  %3744 = load i32, ptr %91, align 4, !tbaa !5
  %3745 = call ptr @__errno_location() #10
  store i32 %3744, ptr %3745, align 4, !tbaa !5
  %3746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3747 = load i32, ptr @test_count, align 4, !tbaa !5
  %3748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3749 = load i32, ptr %3748, align 4, !tbaa !5
  %3750 = call ptr @s2n_strerror(i32 noundef %3749, ptr noundef @.str.4)
  %3751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3752 = load i32, ptr %3751, align 4, !tbaa !5
  %3753 = call ptr @s2n_strerror_debug(i32 noundef %3752, ptr noundef @.str.4)
  %3754 = call ptr @__errno_location() #10
  %3755 = load i32, ptr %3754, align 4, !tbaa !5
  %3756 = call ptr @strerror(i32 noundef %3755) #9
  %3757 = call ptr @__errno_location() #10
  %3758 = load i32, ptr %3757, align 4, !tbaa !5
  %3759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3746, ptr noundef @.str.5, i32 noundef %3747, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 243, ptr noundef %3750, ptr noundef %3753, ptr noundef %3756, i32 noundef %3758) #9
  br label %3760

3760:                                             ; preds = %3743, %3726
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  br label %3761

3761:                                             ; preds = %3760
  br label %3762

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

3763:                                             ; No predecessors!
  br label %3764

3764:                                             ; preds = %3763
  br label %3765

3765:                                             ; preds = %3764, %3707
  br label %3766

3766:                                             ; preds = %3765
  br label %3767

3767:                                             ; preds = %3766
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #9
  store ptr null, ptr %92, align 8, !tbaa !9
  br label %3768

3768:                                             ; preds = %3767
  %3769 = load i32, ptr @test_count, align 4, !tbaa !5
  %3770 = add nsw i32 %3769, 1
  store i32 %3770, ptr @test_count, align 4, !tbaa !5
  %3771 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3771, ptr %92, align 8, !tbaa !9
  %3772 = icmp eq ptr %3771, null
  br i1 %3772, label %3773, label %3826

3773:                                             ; preds = %3768
  br label %3774

3774:                                             ; preds = %3773
  br label %3775

3775:                                             ; preds = %3774
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  %3776 = call ptr @__errno_location() #10
  %3777 = load i32, ptr %3776, align 4, !tbaa !5
  store i32 %3777, ptr %93, align 4, !tbaa !5
  %3778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3779 = call i32 @s2n_print_stacktrace(ptr noundef %3778)
  %3780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3781 = trunc i8 %3780 to i1
  br i1 %3781, label %3782, label %3804

3782:                                             ; preds = %3775
  %3783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3784 = call i32 @fileno(ptr noundef %3783) #9
  %3785 = call i32 @isatty(i32 noundef %3784) #9
  %3786 = icmp ne i32 %3785, 0
  br i1 %3786, label %3787, label %3804

3787:                                             ; preds = %3782
  %3788 = load i32, ptr %93, align 4, !tbaa !5
  %3789 = call ptr @__errno_location() #10
  store i32 %3788, ptr %3789, align 4, !tbaa !5
  %3790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3791 = load i32, ptr @test_count, align 4, !tbaa !5
  %3792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3793 = load i32, ptr %3792, align 4, !tbaa !5
  %3794 = call ptr @s2n_strerror(i32 noundef %3793, ptr noundef @.str.4)
  %3795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3796 = load i32, ptr %3795, align 4, !tbaa !5
  %3797 = call ptr @s2n_strerror_debug(i32 noundef %3796, ptr noundef @.str.4)
  %3798 = call ptr @__errno_location() #10
  %3799 = load i32, ptr %3798, align 4, !tbaa !5
  %3800 = call ptr @strerror(i32 noundef %3799) #9
  %3801 = call ptr @__errno_location() #10
  %3802 = load i32, ptr %3801, align 4, !tbaa !5
  %3803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3790, ptr noundef @.str.2, i32 noundef %3791, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 248, ptr noundef %3794, ptr noundef %3797, ptr noundef %3800, i32 noundef %3802) #9
  br label %3821

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

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

3822:                                             ; preds = %3821
  br label %3823

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

3824:                                             ; No predecessors!
  br label %3825

3825:                                             ; preds = %3824
  br label %3826

3826:                                             ; preds = %3825, %3768
  br label %3827

3827:                                             ; preds = %3826
  br label %3828

3828:                                             ; preds = %3827
  br label %3829

3829:                                             ; preds = %3828
  %3830 = load i32, ptr @test_count, align 4, !tbaa !5
  %3831 = add nsw i32 %3830, 1
  store i32 %3831, ptr @test_count, align 4, !tbaa !5
  %3832 = load ptr, ptr %92, align 8, !tbaa !9
  %3833 = call i32 @s2n_setup_test_parsed_extension(ptr noundef @s2n_server_server_name_extension, ptr noundef %88, ptr noundef %3832, ptr noundef %90)
  %3834 = icmp eq i32 %3833, -1
  br i1 %3834, label %3835, label %3888

3835:                                             ; preds = %3829
  br label %3836

3836:                                             ; preds = %3835
  br label %3837

3837:                                             ; preds = %3836
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #9
  %3838 = call ptr @__errno_location() #10
  %3839 = load i32, ptr %3838, align 4, !tbaa !5
  store i32 %3839, ptr %94, align 4, !tbaa !5
  %3840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3841 = call i32 @s2n_print_stacktrace(ptr noundef %3840)
  %3842 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3843 = trunc i8 %3842 to i1
  br i1 %3843, label %3844, label %3866

3844:                                             ; preds = %3837
  %3845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3846 = call i32 @fileno(ptr noundef %3845) #9
  %3847 = call i32 @isatty(i32 noundef %3846) #9
  %3848 = icmp ne i32 %3847, 0
  br i1 %3848, label %3849, label %3866

3849:                                             ; preds = %3844
  %3850 = load i32, ptr %94, align 4, !tbaa !5
  %3851 = call ptr @__errno_location() #10
  store i32 %3850, ptr %3851, align 4, !tbaa !5
  %3852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3853 = load i32, ptr @test_count, align 4, !tbaa !5
  %3854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3855 = load i32, ptr %3854, align 4, !tbaa !5
  %3856 = call ptr @s2n_strerror(i32 noundef %3855, ptr noundef @.str.4)
  %3857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3858 = load i32, ptr %3857, align 4, !tbaa !5
  %3859 = call ptr @s2n_strerror_debug(i32 noundef %3858, ptr noundef @.str.4)
  %3860 = call ptr @__errno_location() #10
  %3861 = load i32, ptr %3860, align 4, !tbaa !5
  %3862 = call ptr @strerror(i32 noundef %3861) #9
  %3863 = call ptr @__errno_location() #10
  %3864 = load i32, ptr %3863, align 4, !tbaa !5
  %3865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3852, ptr noundef @.str.2, i32 noundef %3853, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 251, ptr noundef %3856, ptr noundef %3859, ptr noundef %3862, i32 noundef %3864) #9
  br label %3883

3866:                                             ; preds = %3844, %3837
  %3867 = load i32, ptr %94, align 4, !tbaa !5
  %3868 = call ptr @__errno_location() #10
  store i32 %3867, ptr %3868, align 4, !tbaa !5
  %3869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3870 = load i32, ptr @test_count, align 4, !tbaa !5
  %3871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3872 = load i32, ptr %3871, align 4, !tbaa !5
  %3873 = call ptr @s2n_strerror(i32 noundef %3872, ptr noundef @.str.4)
  %3874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3875 = load i32, ptr %3874, align 4, !tbaa !5
  %3876 = call ptr @s2n_strerror_debug(i32 noundef %3875, ptr noundef @.str.4)
  %3877 = call ptr @__errno_location() #10
  %3878 = load i32, ptr %3877, align 4, !tbaa !5
  %3879 = call ptr @strerror(i32 noundef %3878) #9
  %3880 = call ptr @__errno_location() #10
  %3881 = load i32, ptr %3880, align 4, !tbaa !5
  %3882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3869, ptr noundef @.str.5, i32 noundef %3870, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 251, ptr noundef %3873, ptr noundef %3876, ptr noundef %3879, i32 noundef %3881) #9
  br label %3883

3883:                                             ; preds = %3866, %3849
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #9
  br label %3884

3884:                                             ; preds = %3883
  br label %3885

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

3886:                                             ; No predecessors!
  br label %3887

3887:                                             ; preds = %3886
  br label %3888

3888:                                             ; preds = %3887, %3829
  br label %3889

3889:                                             ; preds = %3888
  br label %3890

3890:                                             ; preds = %3889
  br label %3891

3891:                                             ; preds = %3890
  %3892 = load i32, ptr @test_count, align 4, !tbaa !5
  %3893 = add nsw i32 %3892, 1
  store i32 %3893, ptr @test_count, align 4, !tbaa !5
  %3894 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %88, i32 0, i32 0
  %3895 = getelementptr inbounds %struct.s2n_blob, ptr %3894, i32 0, i32 1
  %3896 = load i32, ptr %3895, align 8, !tbaa !32
  %3897 = icmp eq i32 %3896, 0
  br i1 %3897, label %3951, label %3898

3898:                                             ; preds = %3891
  br label %3899

3899:                                             ; preds = %3898
  br label %3900

3900:                                             ; preds = %3899
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #9
  %3901 = call ptr @__errno_location() #10
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  store i32 %3902, ptr %95, align 4, !tbaa !5
  %3903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3904 = call i32 @s2n_print_stacktrace(ptr noundef %3903)
  %3905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3906 = trunc i8 %3905 to i1
  br i1 %3906, label %3907, label %3929

3907:                                             ; preds = %3900
  %3908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3909 = call i32 @fileno(ptr noundef %3908) #9
  %3910 = call i32 @isatty(i32 noundef %3909) #9
  %3911 = icmp ne i32 %3910, 0
  br i1 %3911, label %3912, label %3929

3912:                                             ; preds = %3907
  %3913 = load i32, ptr %95, align 4, !tbaa !5
  %3914 = call ptr @__errno_location() #10
  store i32 %3913, ptr %3914, align 4, !tbaa !5
  %3915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3916 = load i32, ptr @test_count, align 4, !tbaa !5
  %3917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3918 = load i32, ptr %3917, align 4, !tbaa !5
  %3919 = call ptr @s2n_strerror(i32 noundef %3918, ptr noundef @.str.4)
  %3920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3921 = load i32, ptr %3920, align 4, !tbaa !5
  %3922 = call ptr @s2n_strerror_debug(i32 noundef %3921, ptr noundef @.str.4)
  %3923 = call ptr @__errno_location() #10
  %3924 = load i32, ptr %3923, align 4, !tbaa !5
  %3925 = call ptr @strerror(i32 noundef %3924) #9
  %3926 = call ptr @__errno_location() #10
  %3927 = load i32, ptr %3926, align 4, !tbaa !5
  %3928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3915, ptr noundef @.str.2, i32 noundef %3916, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 252, ptr noundef %3919, ptr noundef %3922, ptr noundef %3925, i32 noundef %3927) #9
  br label %3946

3929:                                             ; preds = %3907, %3900
  %3930 = load i32, ptr %95, align 4, !tbaa !5
  %3931 = call ptr @__errno_location() #10
  store i32 %3930, ptr %3931, align 4, !tbaa !5
  %3932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3933 = load i32, ptr @test_count, align 4, !tbaa !5
  %3934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3935 = load i32, ptr %3934, align 4, !tbaa !5
  %3936 = call ptr @s2n_strerror(i32 noundef %3935, ptr noundef @.str.4)
  %3937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3938 = load i32, ptr %3937, align 4, !tbaa !5
  %3939 = call ptr @s2n_strerror_debug(i32 noundef %3938, ptr noundef @.str.4)
  %3940 = call ptr @__errno_location() #10
  %3941 = load i32, ptr %3940, align 4, !tbaa !5
  %3942 = call ptr @strerror(i32 noundef %3941) #9
  %3943 = call ptr @__errno_location() #10
  %3944 = load i32, ptr %3943, align 4, !tbaa !5
  %3945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3932, ptr noundef @.str.5, i32 noundef %3933, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 252, ptr noundef %3936, ptr noundef %3939, ptr noundef %3942, i32 noundef %3944) #9
  br label %3946

3946:                                             ; preds = %3929, %3912
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  br label %3947

3947:                                             ; preds = %3946
  br label %3948

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

3949:                                             ; No predecessors!
  br label %3950

3950:                                             ; preds = %3949
  br label %3951

3951:                                             ; preds = %3950, %3891
  br label %3952

3952:                                             ; preds = %3951
  br label %3953

3953:                                             ; preds = %3952
  br label %3954

3954:                                             ; preds = %3953
  %3955 = load i32, ptr @test_count, align 4, !tbaa !5
  %3956 = add nsw i32 %3955, 1
  store i32 %3956, ptr @test_count, align 4, !tbaa !5
  %3957 = load ptr, ptr %92, align 8, !tbaa !9
  %3958 = call i32 @s2n_setup_test_parsed_extension(ptr noundef @s2n_server_max_fragment_length_extension, ptr noundef %89, ptr noundef %3957, ptr noundef %90)
  %3959 = icmp eq i32 %3958, -1
  br i1 %3959, label %3960, label %4013

3960:                                             ; preds = %3954
  br label %3961

3961:                                             ; preds = %3960
  br label %3962

3962:                                             ; preds = %3961
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #9
  %3963 = call ptr @__errno_location() #10
  %3964 = load i32, ptr %3963, align 4, !tbaa !5
  store i32 %3964, ptr %96, align 4, !tbaa !5
  %3965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3966 = call i32 @s2n_print_stacktrace(ptr noundef %3965)
  %3967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3968 = trunc i8 %3967 to i1
  br i1 %3968, label %3969, label %3991

3969:                                             ; preds = %3962
  %3970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3971 = call i32 @fileno(ptr noundef %3970) #9
  %3972 = call i32 @isatty(i32 noundef %3971) #9
  %3973 = icmp ne i32 %3972, 0
  br i1 %3973, label %3974, label %3991

3974:                                             ; preds = %3969
  %3975 = load i32, ptr %96, align 4, !tbaa !5
  %3976 = call ptr @__errno_location() #10
  store i32 %3975, ptr %3976, align 4, !tbaa !5
  %3977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3978 = load i32, ptr @test_count, align 4, !tbaa !5
  %3979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3980 = load i32, ptr %3979, align 4, !tbaa !5
  %3981 = call ptr @s2n_strerror(i32 noundef %3980, ptr noundef @.str.4)
  %3982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3983 = load i32, ptr %3982, align 4, !tbaa !5
  %3984 = call ptr @s2n_strerror_debug(i32 noundef %3983, ptr noundef @.str.4)
  %3985 = call ptr @__errno_location() #10
  %3986 = load i32, ptr %3985, align 4, !tbaa !5
  %3987 = call ptr @strerror(i32 noundef %3986) #9
  %3988 = call ptr @__errno_location() #10
  %3989 = load i32, ptr %3988, align 4, !tbaa !5
  %3990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3977, ptr noundef @.str.2, i32 noundef %3978, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 255, ptr noundef %3981, ptr noundef %3984, ptr noundef %3987, i32 noundef %3989) #9
  br label %4008

3991:                                             ; preds = %3969, %3962
  %3992 = load i32, ptr %96, align 4, !tbaa !5
  %3993 = call ptr @__errno_location() #10
  store i32 %3992, ptr %3993, align 4, !tbaa !5
  %3994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3995 = load i32, ptr @test_count, align 4, !tbaa !5
  %3996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3997 = load i32, ptr %3996, align 4, !tbaa !5
  %3998 = call ptr @s2n_strerror(i32 noundef %3997, ptr noundef @.str.4)
  %3999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4000 = load i32, ptr %3999, align 4, !tbaa !5
  %4001 = call ptr @s2n_strerror_debug(i32 noundef %4000, ptr noundef @.str.4)
  %4002 = call ptr @__errno_location() #10
  %4003 = load i32, ptr %4002, align 4, !tbaa !5
  %4004 = call ptr @strerror(i32 noundef %4003) #9
  %4005 = call ptr @__errno_location() #10
  %4006 = load i32, ptr %4005, align 4, !tbaa !5
  %4007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3994, ptr noundef @.str.5, i32 noundef %3995, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 255, ptr noundef %3998, ptr noundef %4001, ptr noundef %4004, i32 noundef %4006) #9
  br label %4008

4008:                                             ; preds = %3991, %3974
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #9
  br label %4009

4009:                                             ; preds = %4008
  br label %4010

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

4011:                                             ; No predecessors!
  br label %4012

4012:                                             ; preds = %4011
  br label %4013

4013:                                             ; preds = %4012, %3954
  br label %4014

4014:                                             ; preds = %4013
  br label %4015

4015:                                             ; preds = %4014
  br label %4016

4016:                                             ; preds = %4015
  %4017 = load i32, ptr @test_count, align 4, !tbaa !5
  %4018 = add nsw i32 %4017, 1
  store i32 %4018, ptr @test_count, align 4, !tbaa !5
  %4019 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %89, i32 0, i32 0
  %4020 = getelementptr inbounds %struct.s2n_blob, ptr %4019, i32 0, i32 1
  %4021 = load i32, ptr %4020, align 8, !tbaa !32
  %4022 = icmp eq i32 %4021, 0
  br i1 %4022, label %4023, label %4076

4023:                                             ; preds = %4016
  br label %4024

4024:                                             ; preds = %4023
  br label %4025

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

4032:                                             ; preds = %4025
  %4033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4034 = call i32 @fileno(ptr noundef %4033) #9
  %4035 = call i32 @isatty(i32 noundef %4034) #9
  %4036 = icmp ne i32 %4035, 0
  br i1 %4036, label %4037, label %4054

4037:                                             ; preds = %4032
  %4038 = load i32, ptr %97, align 4, !tbaa !5
  %4039 = call ptr @__errno_location() #10
  store i32 %4038, ptr %4039, align 4, !tbaa !5
  %4040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4041 = load i32, ptr @test_count, align 4, !tbaa !5
  %4042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4043 = load i32, ptr %4042, align 4, !tbaa !5
  %4044 = call ptr @s2n_strerror(i32 noundef %4043, ptr noundef @.str.4)
  %4045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4046 = load i32, ptr %4045, align 4, !tbaa !5
  %4047 = call ptr @s2n_strerror_debug(i32 noundef %4046, ptr noundef @.str.4)
  %4048 = call ptr @__errno_location() #10
  %4049 = load i32, ptr %4048, align 4, !tbaa !5
  %4050 = call ptr @strerror(i32 noundef %4049) #9
  %4051 = call ptr @__errno_location() #10
  %4052 = load i32, ptr %4051, align 4, !tbaa !5
  %4053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4040, ptr noundef @.str.2, i32 noundef %4041, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 256, ptr noundef %4044, ptr noundef %4047, ptr noundef %4050, i32 noundef %4052) #9
  br label %4071

4054:                                             ; preds = %4032, %4025
  %4055 = load i32, ptr %97, align 4, !tbaa !5
  %4056 = call ptr @__errno_location() #10
  store i32 %4055, ptr %4056, align 4, !tbaa !5
  %4057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4058 = load i32, ptr @test_count, align 4, !tbaa !5
  %4059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4060 = load i32, ptr %4059, align 4, !tbaa !5
  %4061 = call ptr @s2n_strerror(i32 noundef %4060, ptr noundef @.str.4)
  %4062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4063 = load i32, ptr %4062, align 4, !tbaa !5
  %4064 = call ptr @s2n_strerror_debug(i32 noundef %4063, ptr noundef @.str.4)
  %4065 = call ptr @__errno_location() #10
  %4066 = load i32, ptr %4065, align 4, !tbaa !5
  %4067 = call ptr @strerror(i32 noundef %4066) #9
  %4068 = call ptr @__errno_location() #10
  %4069 = load i32, ptr %4068, align 4, !tbaa !5
  %4070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4057, ptr noundef @.str.5, i32 noundef %4058, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 256, ptr noundef %4061, ptr noundef %4064, ptr noundef %4067, i32 noundef %4069) #9
  br label %4071

4071:                                             ; preds = %4054, %4037
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %4072

4072:                                             ; preds = %4071
  br label %4073

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

4074:                                             ; No predecessors!
  br label %4075

4075:                                             ; preds = %4074
  br label %4076

4076:                                             ; preds = %4075, %4016
  br label %4077

4077:                                             ; preds = %4076
  br label %4078

4078:                                             ; preds = %4077
  br label %4079

4079:                                             ; preds = %4078
  %4080 = load i32, ptr @test_count, align 4, !tbaa !5
  %4081 = add nsw i32 %4080, 1
  store i32 %4081, ptr @test_count, align 4, !tbaa !5
  %4082 = load ptr, ptr %92, align 8, !tbaa !9
  %4083 = call i32 @s2n_connection_free(ptr noundef %4082)
  %4084 = icmp eq i32 %4083, -1
  br i1 %4084, label %4085, label %4138

4085:                                             ; preds = %4079
  br label %4086

4086:                                             ; preds = %4085
  br label %4087

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

4094:                                             ; preds = %4087
  %4095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4096 = call i32 @fileno(ptr noundef %4095) #9
  %4097 = call i32 @isatty(i32 noundef %4096) #9
  %4098 = icmp ne i32 %4097, 0
  br i1 %4098, label %4099, label %4116

4099:                                             ; preds = %4094
  %4100 = load i32, ptr %98, align 4, !tbaa !5
  %4101 = call ptr @__errno_location() #10
  store i32 %4100, ptr %4101, align 4, !tbaa !5
  %4102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4103 = load i32, ptr @test_count, align 4, !tbaa !5
  %4104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4105 = load i32, ptr %4104, align 4, !tbaa !5
  %4106 = call ptr @s2n_strerror(i32 noundef %4105, ptr noundef @.str.4)
  %4107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4108 = load i32, ptr %4107, align 4, !tbaa !5
  %4109 = call ptr @s2n_strerror_debug(i32 noundef %4108, ptr noundef @.str.4)
  %4110 = call ptr @__errno_location() #10
  %4111 = load i32, ptr %4110, align 4, !tbaa !5
  %4112 = call ptr @strerror(i32 noundef %4111) #9
  %4113 = call ptr @__errno_location() #10
  %4114 = load i32, ptr %4113, align 4, !tbaa !5
  %4115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4102, ptr noundef @.str.2, i32 noundef %4103, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 258, ptr noundef %4106, ptr noundef %4109, ptr noundef %4112, i32 noundef %4114) #9
  br label %4133

4116:                                             ; preds = %4094, %4087
  %4117 = load i32, ptr %98, align 4, !tbaa !5
  %4118 = call ptr @__errno_location() #10
  store i32 %4117, ptr %4118, align 4, !tbaa !5
  %4119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4120 = load i32, ptr @test_count, align 4, !tbaa !5
  %4121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4122 = load i32, ptr %4121, align 4, !tbaa !5
  %4123 = call ptr @s2n_strerror(i32 noundef %4122, ptr noundef @.str.4)
  %4124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4125 = load i32, ptr %4124, align 4, !tbaa !5
  %4126 = call ptr @s2n_strerror_debug(i32 noundef %4125, ptr noundef @.str.4)
  %4127 = call ptr @__errno_location() #10
  %4128 = load i32, ptr %4127, align 4, !tbaa !5
  %4129 = call ptr @strerror(i32 noundef %4128) #9
  %4130 = call ptr @__errno_location() #10
  %4131 = load i32, ptr %4130, align 4, !tbaa !5
  %4132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4119, ptr noundef @.str.5, i32 noundef %4120, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 258, ptr noundef %4123, ptr noundef %4126, ptr noundef %4129, i32 noundef %4131) #9
  br label %4133

4133:                                             ; preds = %4116, %4099
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  br label %4134

4134:                                             ; preds = %4133
  br label %4135

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

4136:                                             ; No predecessors!
  br label %4137

4137:                                             ; preds = %4136
  br label %4138

4138:                                             ; preds = %4137, %4079
  br label %4139

4139:                                             ; preds = %4138
  br label %4140

4140:                                             ; preds = %4139
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #9
  store i8 0, ptr %99, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %100) #9
  store i8 0, ptr %100, align 1, !tbaa !15
  br label %4141

4141:                                             ; preds = %4140
  %4142 = load i32, ptr @test_count, align 4, !tbaa !5
  %4143 = add nsw i32 %4142, 1
  store i32 %4143, ptr @test_count, align 4, !tbaa !5
  %4144 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %89, i32 0, i32 1
  %4145 = load i16, ptr %4144, align 8, !tbaa !17
  %4146 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %4145, ptr noundef %99)
  %4147 = icmp eq i32 %4146, -1
  br i1 %4147, label %4148, label %4201

4148:                                             ; preds = %4141
  br label %4149

4149:                                             ; preds = %4148
  br label %4150

4150:                                             ; preds = %4149
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #9
  %4151 = call ptr @__errno_location() #10
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  store i32 %4152, ptr %101, align 4, !tbaa !5
  %4153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4154 = call i32 @s2n_print_stacktrace(ptr noundef %4153)
  %4155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4156 = trunc i8 %4155 to i1
  br i1 %4156, label %4157, label %4179

4157:                                             ; preds = %4150
  %4158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4159 = call i32 @fileno(ptr noundef %4158) #9
  %4160 = call i32 @isatty(i32 noundef %4159) #9
  %4161 = icmp ne i32 %4160, 0
  br i1 %4161, label %4162, label %4179

4162:                                             ; preds = %4157
  %4163 = load i32, ptr %101, align 4, !tbaa !5
  %4164 = call ptr @__errno_location() #10
  store i32 %4163, ptr %4164, align 4, !tbaa !5
  %4165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4166 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4168, ptr noundef @.str.4)
  %4170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4171 = load i32, ptr %4170, align 4, !tbaa !5
  %4172 = call ptr @s2n_strerror_debug(i32 noundef %4171, ptr noundef @.str.4)
  %4173 = call ptr @__errno_location() #10
  %4174 = load i32, ptr %4173, align 4, !tbaa !5
  %4175 = call ptr @strerror(i32 noundef %4174) #9
  %4176 = call ptr @__errno_location() #10
  %4177 = load i32, ptr %4176, align 4, !tbaa !5
  %4178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4165, ptr noundef @.str.2, i32 noundef %4166, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 262, ptr noundef %4169, ptr noundef %4172, ptr noundef %4175, i32 noundef %4177) #9
  br label %4196

4179:                                             ; preds = %4157, %4150
  %4180 = load i32, ptr %101, align 4, !tbaa !5
  %4181 = call ptr @__errno_location() #10
  store i32 %4180, ptr %4181, align 4, !tbaa !5
  %4182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4183 = load i32, ptr @test_count, align 4, !tbaa !5
  %4184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4185 = load i32, ptr %4184, align 4, !tbaa !5
  %4186 = call ptr @s2n_strerror(i32 noundef %4185, ptr noundef @.str.4)
  %4187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4188 = load i32, ptr %4187, align 4, !tbaa !5
  %4189 = call ptr @s2n_strerror_debug(i32 noundef %4188, ptr noundef @.str.4)
  %4190 = call ptr @__errno_location() #10
  %4191 = load i32, ptr %4190, align 4, !tbaa !5
  %4192 = call ptr @strerror(i32 noundef %4191) #9
  %4193 = call ptr @__errno_location() #10
  %4194 = load i32, ptr %4193, align 4, !tbaa !5
  %4195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4182, ptr noundef @.str.5, i32 noundef %4183, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 262, ptr noundef %4186, ptr noundef %4189, ptr noundef %4192, i32 noundef %4194) #9
  br label %4196

4196:                                             ; preds = %4179, %4162
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #9
  br label %4197

4197:                                             ; preds = %4196
  br label %4198

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

4199:                                             ; No predecessors!
  br label %4200

4200:                                             ; preds = %4199
  br label %4201

4201:                                             ; preds = %4200, %4141
  br label %4202

4202:                                             ; preds = %4201
  br label %4203

4203:                                             ; preds = %4202
  br label %4204

4204:                                             ; preds = %4203
  %4205 = load i32, ptr @test_count, align 4, !tbaa !5
  %4206 = add nsw i32 %4205, 1
  store i32 %4206, ptr @test_count, align 4, !tbaa !5
  %4207 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %88, i32 0, i32 1
  %4208 = load i16, ptr %4207, align 8, !tbaa !17
  %4209 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %4208, ptr noundef %100)
  %4210 = icmp eq i32 %4209, -1
  br i1 %4210, label %4211, label %4264

4211:                                             ; preds = %4204
  br label %4212

4212:                                             ; preds = %4211
  br label %4213

4213:                                             ; preds = %4212
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #9
  %4214 = call ptr @__errno_location() #10
  %4215 = load i32, ptr %4214, align 4, !tbaa !5
  store i32 %4215, ptr %102, align 4, !tbaa !5
  %4216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4217 = call i32 @s2n_print_stacktrace(ptr noundef %4216)
  %4218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4219 = trunc i8 %4218 to i1
  br i1 %4219, label %4220, label %4242

4220:                                             ; preds = %4213
  %4221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4222 = call i32 @fileno(ptr noundef %4221) #9
  %4223 = call i32 @isatty(i32 noundef %4222) #9
  %4224 = icmp ne i32 %4223, 0
  br i1 %4224, label %4225, label %4242

4225:                                             ; preds = %4220
  %4226 = load i32, ptr %102, align 4, !tbaa !5
  %4227 = call ptr @__errno_location() #10
  store i32 %4226, ptr %4227, align 4, !tbaa !5
  %4228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4229 = load i32, ptr @test_count, align 4, !tbaa !5
  %4230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4231 = load i32, ptr %4230, align 4, !tbaa !5
  %4232 = call ptr @s2n_strerror(i32 noundef %4231, ptr noundef @.str.4)
  %4233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4234 = load i32, ptr %4233, align 4, !tbaa !5
  %4235 = call ptr @s2n_strerror_debug(i32 noundef %4234, ptr noundef @.str.4)
  %4236 = call ptr @__errno_location() #10
  %4237 = load i32, ptr %4236, align 4, !tbaa !5
  %4238 = call ptr @strerror(i32 noundef %4237) #9
  %4239 = call ptr @__errno_location() #10
  %4240 = load i32, ptr %4239, align 4, !tbaa !5
  %4241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4228, ptr noundef @.str.2, i32 noundef %4229, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 263, ptr noundef %4232, ptr noundef %4235, ptr noundef %4238, i32 noundef %4240) #9
  br label %4259

4242:                                             ; preds = %4220, %4213
  %4243 = load i32, ptr %102, align 4, !tbaa !5
  %4244 = call ptr @__errno_location() #10
  store i32 %4243, ptr %4244, align 4, !tbaa !5
  %4245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4246 = load i32, ptr @test_count, align 4, !tbaa !5
  %4247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4248 = load i32, ptr %4247, align 4, !tbaa !5
  %4249 = call ptr @s2n_strerror(i32 noundef %4248, ptr noundef @.str.4)
  %4250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4251 = load i32, ptr %4250, align 4, !tbaa !5
  %4252 = call ptr @s2n_strerror_debug(i32 noundef %4251, ptr noundef @.str.4)
  %4253 = call ptr @__errno_location() #10
  %4254 = load i32, ptr %4253, align 4, !tbaa !5
  %4255 = call ptr @strerror(i32 noundef %4254) #9
  %4256 = call ptr @__errno_location() #10
  %4257 = load i32, ptr %4256, align 4, !tbaa !5
  %4258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4245, ptr noundef @.str.5, i32 noundef %4246, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 263, ptr noundef %4249, ptr noundef %4252, ptr noundef %4255, i32 noundef %4257) #9
  br label %4259

4259:                                             ; preds = %4242, %4225
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #9
  br label %4260

4260:                                             ; preds = %4259
  br label %4261

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

4262:                                             ; No predecessors!
  br label %4263

4263:                                             ; preds = %4262
  br label %4264

4264:                                             ; preds = %4263, %4204
  br label %4265

4265:                                             ; preds = %4264
  br label %4266

4266:                                             ; preds = %4265
  br label %4267

4267:                                             ; preds = %4266
  %4268 = load i32, ptr @test_count, align 4, !tbaa !5
  %4269 = add nsw i32 %4268, 1
  store i32 %4269, ptr @test_count, align 4, !tbaa !5
  %4270 = load i8, ptr %99, align 1, !tbaa !15
  %4271 = zext i8 %4270 to i32
  %4272 = load i8, ptr %100, align 1, !tbaa !15
  %4273 = zext i8 %4272 to i32
  %4274 = icmp eq i32 %4271, %4273
  br i1 %4274, label %4275, label %4328

4275:                                             ; preds = %4267
  br label %4276

4276:                                             ; preds = %4275
  br label %4277

4277:                                             ; preds = %4276
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #9
  %4278 = call ptr @__errno_location() #10
  %4279 = load i32, ptr %4278, align 4, !tbaa !5
  store i32 %4279, ptr %103, align 4, !tbaa !5
  %4280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4281 = call i32 @s2n_print_stacktrace(ptr noundef %4280)
  %4282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4283 = trunc i8 %4282 to i1
  br i1 %4283, label %4284, label %4306

4284:                                             ; preds = %4277
  %4285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4286 = call i32 @fileno(ptr noundef %4285) #9
  %4287 = call i32 @isatty(i32 noundef %4286) #9
  %4288 = icmp ne i32 %4287, 0
  br i1 %4288, label %4289, label %4306

4289:                                             ; preds = %4284
  %4290 = load i32, ptr %103, align 4, !tbaa !5
  %4291 = call ptr @__errno_location() #10
  store i32 %4290, ptr %4291, align 4, !tbaa !5
  %4292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4293 = load i32, ptr @test_count, align 4, !tbaa !5
  %4294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4295 = load i32, ptr %4294, align 4, !tbaa !5
  %4296 = call ptr @s2n_strerror(i32 noundef %4295, ptr noundef @.str.4)
  %4297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4298 = load i32, ptr %4297, align 4, !tbaa !5
  %4299 = call ptr @s2n_strerror_debug(i32 noundef %4298, ptr noundef @.str.4)
  %4300 = call ptr @__errno_location() #10
  %4301 = load i32, ptr %4300, align 4, !tbaa !5
  %4302 = call ptr @strerror(i32 noundef %4301) #9
  %4303 = call ptr @__errno_location() #10
  %4304 = load i32, ptr %4303, align 4, !tbaa !5
  %4305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4292, ptr noundef @.str.2, i32 noundef %4293, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 264, ptr noundef %4296, ptr noundef %4299, ptr noundef %4302, i32 noundef %4304) #9
  br label %4323

4306:                                             ; preds = %4284, %4277
  %4307 = load i32, ptr %103, align 4, !tbaa !5
  %4308 = call ptr @__errno_location() #10
  store i32 %4307, ptr %4308, align 4, !tbaa !5
  %4309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4310 = load i32, ptr @test_count, align 4, !tbaa !5
  %4311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4312 = load i32, ptr %4311, align 4, !tbaa !5
  %4313 = call ptr @s2n_strerror(i32 noundef %4312, ptr noundef @.str.4)
  %4314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4315 = load i32, ptr %4314, align 4, !tbaa !5
  %4316 = call ptr @s2n_strerror_debug(i32 noundef %4315, ptr noundef @.str.4)
  %4317 = call ptr @__errno_location() #10
  %4318 = load i32, ptr %4317, align 4, !tbaa !5
  %4319 = call ptr @strerror(i32 noundef %4318) #9
  %4320 = call ptr @__errno_location() #10
  %4321 = load i32, ptr %4320, align 4, !tbaa !5
  %4322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4309, ptr noundef @.str.5, i32 noundef %4310, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 264, ptr noundef %4313, ptr noundef %4316, ptr noundef %4319, i32 noundef %4321) #9
  br label %4323

4323:                                             ; preds = %4306, %4289
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  br label %4324

4324:                                             ; preds = %4323
  br label %4325

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

4326:                                             ; No predecessors!
  br label %4327

4327:                                             ; preds = %4326
  br label %4328

4328:                                             ; preds = %4327, %4267
  br label %4329

4329:                                             ; preds = %4328
  br label %4330

4330:                                             ; preds = %4329
  call void @llvm.lifetime.start.p0(i64 4184, ptr %104) #9
  call void @llvm.memset.p0.i64(ptr align 8 %104, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 704, ptr %105) #9
  call void @llvm.memset.p0.i64(ptr align 8 %105, i8 0, i64 704, i1 false)
  br label %4331

4331:                                             ; preds = %4330
  br label %4332

4332:                                             ; preds = %4331
  %4333 = load i32, ptr @test_count, align 4, !tbaa !5
  %4334 = add nsw i32 %4333, 1
  store i32 %4334, ptr @test_count, align 4, !tbaa !5
  %4335 = call i32 @s2n_extension_list_process(i32 noundef 0, ptr noundef null, ptr noundef %105)
  %4336 = icmp eq i32 %4335, -1
  br i1 %4336, label %4390, label %4337

4337:                                             ; preds = %4332
  br label %4338

4338:                                             ; preds = %4337
  br label %4339

4339:                                             ; preds = %4338
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #9
  %4340 = call ptr @__errno_location() #10
  %4341 = load i32, ptr %4340, align 4, !tbaa !5
  store i32 %4341, ptr %106, align 4, !tbaa !5
  %4342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4343 = call i32 @s2n_print_stacktrace(ptr noundef %4342)
  %4344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4345 = trunc i8 %4344 to i1
  br i1 %4345, label %4346, label %4368

4346:                                             ; preds = %4339
  %4347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4348 = call i32 @fileno(ptr noundef %4347) #9
  %4349 = call i32 @isatty(i32 noundef %4348) #9
  %4350 = icmp ne i32 %4349, 0
  br i1 %4350, label %4351, label %4368

4351:                                             ; preds = %4346
  %4352 = load i32, ptr %106, align 4, !tbaa !5
  %4353 = call ptr @__errno_location() #10
  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() #10
  %4363 = load i32, ptr %4362, align 4, !tbaa !5
  %4364 = call ptr @strerror(i32 noundef %4363) #9
  %4365 = call ptr @__errno_location() #10
  %4366 = load i32, ptr %4365, align 4, !tbaa !5
  %4367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4354, ptr noundef @.str.2, i32 noundef %4355, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 271, ptr noundef %4358, ptr noundef %4361, ptr noundef %4364, i32 noundef %4366) #9
  br label %4385

4368:                                             ; preds = %4346, %4339
  %4369 = load i32, ptr %106, align 4, !tbaa !5
  %4370 = call ptr @__errno_location() #10
  store i32 %4369, ptr %4370, align 4, !tbaa !5
  %4371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4372 = load i32, ptr @test_count, align 4, !tbaa !5
  %4373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4374 = load i32, ptr %4373, align 4, !tbaa !5
  %4375 = call ptr @s2n_strerror(i32 noundef %4374, ptr noundef @.str.4)
  %4376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4377 = load i32, ptr %4376, align 4, !tbaa !5
  %4378 = call ptr @s2n_strerror_debug(i32 noundef %4377, ptr noundef @.str.4)
  %4379 = call ptr @__errno_location() #10
  %4380 = load i32, ptr %4379, align 4, !tbaa !5
  %4381 = call ptr @strerror(i32 noundef %4380) #9
  %4382 = call ptr @__errno_location() #10
  %4383 = load i32, ptr %4382, align 4, !tbaa !5
  %4384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4371, ptr noundef @.str.5, i32 noundef %4372, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 271, ptr noundef %4375, ptr noundef %4378, ptr noundef %4381, i32 noundef %4383) #9
  br label %4385

4385:                                             ; preds = %4368, %4351
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #9
  br label %4386

4386:                                             ; preds = %4385
  br label %4387

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

4388:                                             ; No predecessors!
  br label %4389

4389:                                             ; preds = %4388
  br label %4390

4390:                                             ; preds = %4389, %4332
  br label %4391

4391:                                             ; preds = %4390
  br label %4392

4392:                                             ; preds = %4391
  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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4397 = load i32, ptr %4396, align 4, !tbaa !5
  %4398 = icmp eq i32 %4397, 0
  br i1 %4398, label %4399, label %4452

4399:                                             ; preds = %4393
  br label %4400

4400:                                             ; preds = %4399
  br label %4401

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

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

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

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

4447:                                             ; preds = %4430, %4413
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #9
  br label %4448

4448:                                             ; preds = %4447
  br label %4449

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

4450:                                             ; No predecessors!
  br label %4451

4451:                                             ; preds = %4450
  br label %4452

4452:                                             ; preds = %4451, %4393
  br label %4453

4453:                                             ; preds = %4452
  br label %4454

4454:                                             ; preds = %4453
  br label %4455

4455:                                             ; preds = %4454
  %4456 = load i32, ptr @test_count, align 4, !tbaa !5
  %4457 = add nsw i32 %4456, 1
  store i32 %4457, ptr @test_count, align 4, !tbaa !5
  %4458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4459 = load i32, ptr %4458, align 4, !tbaa !5
  %4460 = call ptr @s2n_strerror_debug(i32 noundef %4459, ptr noundef @.str.4)
  %4461 = icmp eq ptr %4460, null
  br i1 %4461, label %4462, label %4515

4462:                                             ; preds = %4455
  br label %4463

4463:                                             ; preds = %4462
  br label %4464

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

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

4476:                                             ; preds = %4471
  %4477 = load i32, ptr %108, align 4, !tbaa !5
  %4478 = call ptr @__errno_location() #10
  store i32 %4477, ptr %4478, align 4, !tbaa !5
  %4479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4480 = load i32, ptr @test_count, align 4, !tbaa !5
  %4481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4482 = load i32, ptr %4481, align 4, !tbaa !5
  %4483 = call ptr @s2n_strerror(i32 noundef %4482, ptr noundef @.str.4)
  %4484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4485 = load i32, ptr %4484, align 4, !tbaa !5
  %4486 = call ptr @s2n_strerror_debug(i32 noundef %4485, ptr noundef @.str.4)
  %4487 = call ptr @__errno_location() #10
  %4488 = load i32, ptr %4487, align 4, !tbaa !5
  %4489 = call ptr @strerror(i32 noundef %4488) #9
  %4490 = call ptr @__errno_location() #10
  %4491 = load i32, ptr %4490, align 4, !tbaa !5
  %4492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4479, ptr noundef @.str.2, i32 noundef %4480, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 271, ptr noundef %4483, ptr noundef %4486, ptr noundef %4489, i32 noundef %4491) #9
  br label %4510

4493:                                             ; preds = %4471, %4464
  %4494 = load i32, ptr %108, align 4, !tbaa !5
  %4495 = call ptr @__errno_location() #10
  store i32 %4494, ptr %4495, align 4, !tbaa !5
  %4496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4497 = load i32, ptr @test_count, align 4, !tbaa !5
  %4498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4499 = load i32, ptr %4498, align 4, !tbaa !5
  %4500 = call ptr @s2n_strerror(i32 noundef %4499, ptr noundef @.str.4)
  %4501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4502 = load i32, ptr %4501, align 4, !tbaa !5
  %4503 = call ptr @s2n_strerror_debug(i32 noundef %4502, ptr noundef @.str.4)
  %4504 = call ptr @__errno_location() #10
  %4505 = load i32, ptr %4504, align 4, !tbaa !5
  %4506 = call ptr @strerror(i32 noundef %4505) #9
  %4507 = call ptr @__errno_location() #10
  %4508 = load i32, ptr %4507, align 4, !tbaa !5
  %4509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4496, ptr noundef @.str.5, i32 noundef %4497, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 271, ptr noundef %4500, ptr noundef %4503, ptr noundef %4506, i32 noundef %4508) #9
  br label %4510

4510:                                             ; preds = %4493, %4476
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #9
  br label %4511

4511:                                             ; preds = %4510
  br label %4512

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

4513:                                             ; No predecessors!
  br label %4514

4514:                                             ; preds = %4513
  br label %4515

4515:                                             ; preds = %4514, %4455
  br label %4516

4516:                                             ; preds = %4515
  br label %4517

4517:                                             ; preds = %4516
  br label %4518

4518:                                             ; preds = %4517
  %4519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4519, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4520 = call ptr @__errno_location() #10
  store i32 0, ptr %4520, align 4, !tbaa !5
  br label %4521

4521:                                             ; preds = %4518
  br label %4522

4522:                                             ; preds = %4521
  br label %4523

4523:                                             ; preds = %4522
  br label %4524

4524:                                             ; preds = %4523
  br label %4525

4525:                                             ; preds = %4524
  br label %4526

4526:                                             ; preds = %4525
  %4527 = load i32, ptr @test_count, align 4, !tbaa !5
  %4528 = add nsw i32 %4527, 1
  store i32 %4528, ptr @test_count, align 4, !tbaa !5
  %4529 = call i32 @s2n_extension_list_process(i32 noundef 0, ptr noundef %104, ptr noundef null)
  %4530 = icmp eq i32 %4529, -1
  br i1 %4530, label %4584, label %4531

4531:                                             ; preds = %4526
  br label %4532

4532:                                             ; preds = %4531
  br label %4533

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

4540:                                             ; preds = %4533
  %4541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4542 = call i32 @fileno(ptr noundef %4541) #9
  %4543 = call i32 @isatty(i32 noundef %4542) #9
  %4544 = icmp ne i32 %4543, 0
  br i1 %4544, label %4545, label %4562

4545:                                             ; preds = %4540
  %4546 = load i32, ptr %109, align 4, !tbaa !5
  %4547 = call ptr @__errno_location() #10
  store i32 %4546, ptr %4547, align 4, !tbaa !5
  %4548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4549 = load i32, ptr @test_count, align 4, !tbaa !5
  %4550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4551 = load i32, ptr %4550, align 4, !tbaa !5
  %4552 = call ptr @s2n_strerror(i32 noundef %4551, ptr noundef @.str.4)
  %4553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4554 = load i32, ptr %4553, align 4, !tbaa !5
  %4555 = call ptr @s2n_strerror_debug(i32 noundef %4554, ptr noundef @.str.4)
  %4556 = call ptr @__errno_location() #10
  %4557 = load i32, ptr %4556, align 4, !tbaa !5
  %4558 = call ptr @strerror(i32 noundef %4557) #9
  %4559 = call ptr @__errno_location() #10
  %4560 = load i32, ptr %4559, align 4, !tbaa !5
  %4561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4548, ptr noundef @.str.2, i32 noundef %4549, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 272, ptr noundef %4552, ptr noundef %4555, ptr noundef %4558, i32 noundef %4560) #9
  br label %4579

4562:                                             ; preds = %4540, %4533
  %4563 = load i32, ptr %109, align 4, !tbaa !5
  %4564 = call ptr @__errno_location() #10
  store i32 %4563, ptr %4564, align 4, !tbaa !5
  %4565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4566 = load i32, ptr @test_count, align 4, !tbaa !5
  %4567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4568 = load i32, ptr %4567, align 4, !tbaa !5
  %4569 = call ptr @s2n_strerror(i32 noundef %4568, ptr noundef @.str.4)
  %4570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4571 = load i32, ptr %4570, align 4, !tbaa !5
  %4572 = call ptr @s2n_strerror_debug(i32 noundef %4571, ptr noundef @.str.4)
  %4573 = call ptr @__errno_location() #10
  %4574 = load i32, ptr %4573, align 4, !tbaa !5
  %4575 = call ptr @strerror(i32 noundef %4574) #9
  %4576 = call ptr @__errno_location() #10
  %4577 = load i32, ptr %4576, align 4, !tbaa !5
  %4578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4565, ptr noundef @.str.5, i32 noundef %4566, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 272, ptr noundef %4569, ptr noundef %4572, ptr noundef %4575, i32 noundef %4577) #9
  br label %4579

4579:                                             ; preds = %4562, %4545
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #9
  br label %4580

4580:                                             ; preds = %4579
  br label %4581

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

4582:                                             ; No predecessors!
  br label %4583

4583:                                             ; preds = %4582
  br label %4584

4584:                                             ; preds = %4583, %4526
  br label %4585

4585:                                             ; preds = %4584
  br label %4586

4586:                                             ; preds = %4585
  br label %4587

4587:                                             ; preds = %4586
  %4588 = load i32, ptr @test_count, align 4, !tbaa !5
  %4589 = add nsw i32 %4588, 1
  store i32 %4589, ptr @test_count, align 4, !tbaa !5
  %4590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4591 = load i32, ptr %4590, align 4, !tbaa !5
  %4592 = icmp eq i32 %4591, 0
  br i1 %4592, label %4593, label %4646

4593:                                             ; preds = %4587
  br label %4594

4594:                                             ; preds = %4593
  br label %4595

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

4602:                                             ; preds = %4595
  %4603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4604 = call i32 @fileno(ptr noundef %4603) #9
  %4605 = call i32 @isatty(i32 noundef %4604) #9
  %4606 = icmp ne i32 %4605, 0
  br i1 %4606, label %4607, label %4624

4607:                                             ; preds = %4602
  %4608 = load i32, ptr %110, align 4, !tbaa !5
  %4609 = call ptr @__errno_location() #10
  store i32 %4608, ptr %4609, align 4, !tbaa !5
  %4610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4611 = load i32, ptr @test_count, align 4, !tbaa !5
  %4612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4613 = load i32, ptr %4612, align 4, !tbaa !5
  %4614 = call ptr @s2n_strerror(i32 noundef %4613, ptr noundef @.str.4)
  %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_debug(i32 noundef %4616, ptr noundef @.str.4)
  %4618 = call ptr @__errno_location() #10
  %4619 = load i32, ptr %4618, align 4, !tbaa !5
  %4620 = call ptr @strerror(i32 noundef %4619) #9
  %4621 = call ptr @__errno_location() #10
  %4622 = load i32, ptr %4621, align 4, !tbaa !5
  %4623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4610, ptr noundef @.str.2, i32 noundef %4611, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 272, ptr noundef %4614, ptr noundef %4617, ptr noundef %4620, i32 noundef %4622) #9
  br label %4641

4624:                                             ; preds = %4602, %4595
  %4625 = load i32, ptr %110, align 4, !tbaa !5
  %4626 = call ptr @__errno_location() #10
  store i32 %4625, ptr %4626, align 4, !tbaa !5
  %4627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4628 = load i32, ptr @test_count, align 4, !tbaa !5
  %4629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4630 = load i32, ptr %4629, align 4, !tbaa !5
  %4631 = call ptr @s2n_strerror(i32 noundef %4630, ptr noundef @.str.4)
  %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_debug(i32 noundef %4633, ptr noundef @.str.4)
  %4635 = call ptr @__errno_location() #10
  %4636 = load i32, ptr %4635, align 4, !tbaa !5
  %4637 = call ptr @strerror(i32 noundef %4636) #9
  %4638 = call ptr @__errno_location() #10
  %4639 = load i32, ptr %4638, align 4, !tbaa !5
  %4640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4627, ptr noundef @.str.5, i32 noundef %4628, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 272, ptr noundef %4631, ptr noundef %4634, ptr noundef %4637, i32 noundef %4639) #9
  br label %4641

4641:                                             ; preds = %4624, %4607
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #9
  br label %4642

4642:                                             ; preds = %4641
  br label %4643

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

4644:                                             ; No predecessors!
  br label %4645

4645:                                             ; preds = %4644
  br label %4646

4646:                                             ; preds = %4645, %4587
  br label %4647

4647:                                             ; preds = %4646
  br label %4648

4648:                                             ; preds = %4647
  br label %4649

4649:                                             ; preds = %4648
  %4650 = load i32, ptr @test_count, align 4, !tbaa !5
  %4651 = add nsw i32 %4650, 1
  store i32 %4651, ptr @test_count, align 4, !tbaa !5
  %4652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4653 = load i32, ptr %4652, align 4, !tbaa !5
  %4654 = call ptr @s2n_strerror_debug(i32 noundef %4653, ptr noundef @.str.4)
  %4655 = icmp eq ptr %4654, null
  br i1 %4655, label %4656, label %4709

4656:                                             ; preds = %4649
  br label %4657

4657:                                             ; preds = %4656
  br label %4658

4658:                                             ; preds = %4657
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #9
  %4659 = call ptr @__errno_location() #10
  %4660 = load i32, ptr %4659, align 4, !tbaa !5
  store i32 %4660, ptr %111, align 4, !tbaa !5
  %4661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4662 = call i32 @s2n_print_stacktrace(ptr noundef %4661)
  %4663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4664 = trunc i8 %4663 to i1
  br i1 %4664, label %4665, label %4687

4665:                                             ; preds = %4658
  %4666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4667 = call i32 @fileno(ptr noundef %4666) #9
  %4668 = call i32 @isatty(i32 noundef %4667) #9
  %4669 = icmp ne i32 %4668, 0
  br i1 %4669, label %4670, label %4687

4670:                                             ; preds = %4665
  %4671 = load i32, ptr %111, align 4, !tbaa !5
  %4672 = call ptr @__errno_location() #10
  store i32 %4671, ptr %4672, align 4, !tbaa !5
  %4673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4674 = load i32, ptr @test_count, align 4, !tbaa !5
  %4675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4676 = load i32, ptr %4675, align 4, !tbaa !5
  %4677 = call ptr @s2n_strerror(i32 noundef %4676, ptr noundef @.str.4)
  %4678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4679 = load i32, ptr %4678, align 4, !tbaa !5
  %4680 = call ptr @s2n_strerror_debug(i32 noundef %4679, ptr noundef @.str.4)
  %4681 = call ptr @__errno_location() #10
  %4682 = load i32, ptr %4681, align 4, !tbaa !5
  %4683 = call ptr @strerror(i32 noundef %4682) #9
  %4684 = call ptr @__errno_location() #10
  %4685 = load i32, ptr %4684, align 4, !tbaa !5
  %4686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4673, ptr noundef @.str.2, i32 noundef %4674, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 272, ptr noundef %4677, ptr noundef %4680, ptr noundef %4683, i32 noundef %4685) #9
  br label %4704

4687:                                             ; preds = %4665, %4658
  %4688 = load i32, ptr %111, align 4, !tbaa !5
  %4689 = call ptr @__errno_location() #10
  store i32 %4688, ptr %4689, align 4, !tbaa !5
  %4690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4691 = load i32, ptr @test_count, align 4, !tbaa !5
  %4692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4693 = load i32, ptr %4692, align 4, !tbaa !5
  %4694 = call ptr @s2n_strerror(i32 noundef %4693, ptr noundef @.str.4)
  %4695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4696 = load i32, ptr %4695, align 4, !tbaa !5
  %4697 = call ptr @s2n_strerror_debug(i32 noundef %4696, ptr noundef @.str.4)
  %4698 = call ptr @__errno_location() #10
  %4699 = load i32, ptr %4698, align 4, !tbaa !5
  %4700 = call ptr @strerror(i32 noundef %4699) #9
  %4701 = call ptr @__errno_location() #10
  %4702 = load i32, ptr %4701, align 4, !tbaa !5
  %4703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4690, ptr noundef @.str.5, i32 noundef %4691, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 272, ptr noundef %4694, ptr noundef %4697, ptr noundef %4700, i32 noundef %4702) #9
  br label %4704

4704:                                             ; preds = %4687, %4670
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #9
  br label %4705

4705:                                             ; preds = %4704
  br label %4706

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

4707:                                             ; No predecessors!
  br label %4708

4708:                                             ; preds = %4707
  br label %4709

4709:                                             ; preds = %4708, %4649
  br label %4710

4710:                                             ; preds = %4709
  br label %4711

4711:                                             ; preds = %4710
  br label %4712

4712:                                             ; preds = %4711
  %4713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4713, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4714 = call ptr @__errno_location() #10
  store i32 0, ptr %4714, align 4, !tbaa !5
  br label %4715

4715:                                             ; preds = %4712
  br label %4716

4716:                                             ; preds = %4715
  br label %4717

4717:                                             ; preds = %4716
  br label %4718

4718:                                             ; preds = %4717
  br label %4719

4719:                                             ; preds = %4718
  br label %4720

4720:                                             ; preds = %4719
  %4721 = load i32, ptr @test_count, align 4, !tbaa !5
  %4722 = add nsw i32 %4721, 1
  store i32 %4722, ptr @test_count, align 4, !tbaa !5
  %4723 = call i32 @s2n_extension_list_process(i32 noundef -1, ptr noundef %104, ptr noundef %105)
  %4724 = icmp eq i32 %4723, -1
  br i1 %4724, label %4778, label %4725

4725:                                             ; preds = %4720
  br label %4726

4726:                                             ; preds = %4725
  br label %4727

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

4734:                                             ; preds = %4727
  %4735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4736 = call i32 @fileno(ptr noundef %4735) #9
  %4737 = call i32 @isatty(i32 noundef %4736) #9
  %4738 = icmp ne i32 %4737, 0
  br i1 %4738, label %4739, label %4756

4739:                                             ; preds = %4734
  %4740 = load i32, ptr %112, align 4, !tbaa !5
  %4741 = call ptr @__errno_location() #10
  store i32 %4740, ptr %4741, align 4, !tbaa !5
  %4742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4743 = load i32, ptr @test_count, align 4, !tbaa !5
  %4744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4745 = load i32, ptr %4744, align 4, !tbaa !5
  %4746 = call ptr @s2n_strerror(i32 noundef %4745, ptr noundef @.str.4)
  %4747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4748 = load i32, ptr %4747, align 4, !tbaa !5
  %4749 = call ptr @s2n_strerror_debug(i32 noundef %4748, ptr noundef @.str.4)
  %4750 = call ptr @__errno_location() #10
  %4751 = load i32, ptr %4750, align 4, !tbaa !5
  %4752 = call ptr @strerror(i32 noundef %4751) #9
  %4753 = call ptr @__errno_location() #10
  %4754 = load i32, ptr %4753, align 4, !tbaa !5
  %4755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4742, ptr noundef @.str.2, i32 noundef %4743, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 273, ptr noundef %4746, ptr noundef %4749, ptr noundef %4752, i32 noundef %4754) #9
  br label %4773

4756:                                             ; preds = %4734, %4727
  %4757 = load i32, ptr %112, align 4, !tbaa !5
  %4758 = call ptr @__errno_location() #10
  store i32 %4757, ptr %4758, align 4, !tbaa !5
  %4759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4760 = load i32, ptr @test_count, align 4, !tbaa !5
  %4761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4762 = load i32, ptr %4761, align 4, !tbaa !5
  %4763 = call ptr @s2n_strerror(i32 noundef %4762, ptr noundef @.str.4)
  %4764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4765 = load i32, ptr %4764, align 4, !tbaa !5
  %4766 = call ptr @s2n_strerror_debug(i32 noundef %4765, ptr noundef @.str.4)
  %4767 = call ptr @__errno_location() #10
  %4768 = load i32, ptr %4767, align 4, !tbaa !5
  %4769 = call ptr @strerror(i32 noundef %4768) #9
  %4770 = call ptr @__errno_location() #10
  %4771 = load i32, ptr %4770, align 4, !tbaa !5
  %4772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4759, ptr noundef @.str.5, i32 noundef %4760, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 273, ptr noundef %4763, ptr noundef %4766, ptr noundef %4769, i32 noundef %4771) #9
  br label %4773

4773:                                             ; preds = %4756, %4739
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #9
  br label %4774

4774:                                             ; preds = %4773
  br label %4775

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

4776:                                             ; No predecessors!
  br label %4777

4777:                                             ; preds = %4776
  br label %4778

4778:                                             ; preds = %4777, %4720
  br label %4779

4779:                                             ; preds = %4778
  br label %4780

4780:                                             ; preds = %4779
  br label %4781

4781:                                             ; preds = %4780
  %4782 = load i32, ptr @test_count, align 4, !tbaa !5
  %4783 = add nsw i32 %4782, 1
  store i32 %4783, ptr @test_count, align 4, !tbaa !5
  %4784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4785 = load i32, ptr %4784, align 4, !tbaa !5
  %4786 = icmp eq i32 %4785, 0
  br i1 %4786, label %4787, label %4840

4787:                                             ; preds = %4781
  br label %4788

4788:                                             ; preds = %4787
  br label %4789

4789:                                             ; preds = %4788
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #9
  %4790 = call ptr @__errno_location() #10
  %4791 = load i32, ptr %4790, align 4, !tbaa !5
  store i32 %4791, ptr %113, align 4, !tbaa !5
  %4792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4793 = call i32 @s2n_print_stacktrace(ptr noundef %4792)
  %4794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4795 = trunc i8 %4794 to i1
  br i1 %4795, label %4796, label %4818

4796:                                             ; preds = %4789
  %4797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4798 = call i32 @fileno(ptr noundef %4797) #9
  %4799 = call i32 @isatty(i32 noundef %4798) #9
  %4800 = icmp ne i32 %4799, 0
  br i1 %4800, label %4801, label %4818

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

4818:                                             ; preds = %4796, %4789
  %4819 = load i32, ptr %113, align 4, !tbaa !5
  %4820 = call ptr @__errno_location() #10
  store i32 %4819, ptr %4820, align 4, !tbaa !5
  %4821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4822 = load i32, ptr @test_count, align 4, !tbaa !5
  %4823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4824 = load i32, ptr %4823, align 4, !tbaa !5
  %4825 = call ptr @s2n_strerror(i32 noundef %4824, ptr noundef @.str.4)
  %4826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4827 = load i32, ptr %4826, align 4, !tbaa !5
  %4828 = call ptr @s2n_strerror_debug(i32 noundef %4827, ptr noundef @.str.4)
  %4829 = call ptr @__errno_location() #10
  %4830 = load i32, ptr %4829, align 4, !tbaa !5
  %4831 = call ptr @strerror(i32 noundef %4830) #9
  %4832 = call ptr @__errno_location() #10
  %4833 = load i32, ptr %4832, align 4, !tbaa !5
  %4834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4821, ptr noundef @.str.5, i32 noundef %4822, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 273, ptr noundef %4825, ptr noundef %4828, ptr noundef %4831, i32 noundef %4833) #9
  br label %4835

4835:                                             ; preds = %4818, %4801
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #9
  br label %4836

4836:                                             ; preds = %4835
  br label %4837

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

4838:                                             ; No predecessors!
  br label %4839

4839:                                             ; preds = %4838
  br label %4840

4840:                                             ; preds = %4839, %4781
  br label %4841

4841:                                             ; preds = %4840
  br label %4842

4842:                                             ; preds = %4841
  br label %4843

4843:                                             ; preds = %4842
  %4844 = load i32, ptr @test_count, align 4, !tbaa !5
  %4845 = add nsw i32 %4844, 1
  store i32 %4845, ptr @test_count, align 4, !tbaa !5
  %4846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4847 = load i32, ptr %4846, align 4, !tbaa !5
  %4848 = call ptr @s2n_strerror_debug(i32 noundef %4847, ptr noundef @.str.4)
  %4849 = icmp eq ptr %4848, null
  br i1 %4849, label %4850, label %4903

4850:                                             ; preds = %4843
  br label %4851

4851:                                             ; preds = %4850
  br label %4852

4852:                                             ; preds = %4851
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #9
  %4853 = call ptr @__errno_location() #10
  %4854 = load i32, ptr %4853, align 4, !tbaa !5
  store i32 %4854, ptr %114, align 4, !tbaa !5
  %4855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4856 = call i32 @s2n_print_stacktrace(ptr noundef %4855)
  %4857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4858 = trunc i8 %4857 to i1
  br i1 %4858, label %4859, label %4881

4859:                                             ; preds = %4852
  %4860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4861 = call i32 @fileno(ptr noundef %4860) #9
  %4862 = call i32 @isatty(i32 noundef %4861) #9
  %4863 = icmp ne i32 %4862, 0
  br i1 %4863, label %4864, label %4881

4864:                                             ; preds = %4859
  %4865 = load i32, ptr %114, align 4, !tbaa !5
  %4866 = call ptr @__errno_location() #10
  store i32 %4865, ptr %4866, align 4, !tbaa !5
  %4867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4868 = load i32, ptr @test_count, align 4, !tbaa !5
  %4869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4870 = load i32, ptr %4869, align 4, !tbaa !5
  %4871 = call ptr @s2n_strerror(i32 noundef %4870, ptr noundef @.str.4)
  %4872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4873 = load i32, ptr %4872, align 4, !tbaa !5
  %4874 = call ptr @s2n_strerror_debug(i32 noundef %4873, ptr noundef @.str.4)
  %4875 = call ptr @__errno_location() #10
  %4876 = load i32, ptr %4875, align 4, !tbaa !5
  %4877 = call ptr @strerror(i32 noundef %4876) #9
  %4878 = call ptr @__errno_location() #10
  %4879 = load i32, ptr %4878, align 4, !tbaa !5
  %4880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4867, ptr noundef @.str.2, i32 noundef %4868, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 273, ptr noundef %4871, ptr noundef %4874, ptr noundef %4877, i32 noundef %4879) #9
  br label %4898

4881:                                             ; preds = %4859, %4852
  %4882 = load i32, ptr %114, align 4, !tbaa !5
  %4883 = call ptr @__errno_location() #10
  store i32 %4882, ptr %4883, align 4, !tbaa !5
  %4884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4885 = load i32, ptr @test_count, align 4, !tbaa !5
  %4886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4887 = load i32, ptr %4886, align 4, !tbaa !5
  %4888 = call ptr @s2n_strerror(i32 noundef %4887, ptr noundef @.str.4)
  %4889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4890 = load i32, ptr %4889, align 4, !tbaa !5
  %4891 = call ptr @s2n_strerror_debug(i32 noundef %4890, ptr noundef @.str.4)
  %4892 = call ptr @__errno_location() #10
  %4893 = load i32, ptr %4892, align 4, !tbaa !5
  %4894 = call ptr @strerror(i32 noundef %4893) #9
  %4895 = call ptr @__errno_location() #10
  %4896 = load i32, ptr %4895, align 4, !tbaa !5
  %4897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4884, ptr noundef @.str.5, i32 noundef %4885, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 273, ptr noundef %4888, ptr noundef %4891, ptr noundef %4894, i32 noundef %4896) #9
  br label %4898

4898:                                             ; preds = %4881, %4864
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #9
  br label %4899

4899:                                             ; preds = %4898
  br label %4900

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

4901:                                             ; No predecessors!
  br label %4902

4902:                                             ; preds = %4901
  br label %4903

4903:                                             ; preds = %4902, %4843
  br label %4904

4904:                                             ; preds = %4903
  br label %4905

4905:                                             ; preds = %4904
  br label %4906

4906:                                             ; preds = %4905
  %4907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4907, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4908 = call ptr @__errno_location() #10
  store i32 0, ptr %4908, align 4, !tbaa !5
  br label %4909

4909:                                             ; preds = %4906
  br label %4910

4910:                                             ; preds = %4909
  br label %4911

4911:                                             ; preds = %4910
  br label %4912

4912:                                             ; preds = %4911
  call void @llvm.lifetime.end.p0(i64 704, ptr %105) #9
  call void @llvm.lifetime.end.p0(i64 4184, ptr %104) #9
  call void @llvm.lifetime.start.p0(i64 704, ptr %115) #9
  call void @llvm.memset.p0.i64(ptr align 8 %115, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #9
  store ptr null, ptr %116, align 8, !tbaa !9
  br label %4913

4913:                                             ; preds = %4912
  %4914 = load i32, ptr @test_count, align 4, !tbaa !5
  %4915 = add nsw i32 %4914, 1
  store i32 %4915, ptr @test_count, align 4, !tbaa !5
  %4916 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4916, ptr %116, align 8, !tbaa !9
  %4917 = icmp eq ptr %4916, null
  br i1 %4917, label %4918, label %4971

4918:                                             ; preds = %4913
  br label %4919

4919:                                             ; preds = %4918
  br label %4920

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

4927:                                             ; preds = %4920
  %4928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4929 = call i32 @fileno(ptr noundef %4928) #9
  %4930 = call i32 @isatty(i32 noundef %4929) #9
  %4931 = icmp ne i32 %4930, 0
  br i1 %4931, label %4932, label %4949

4932:                                             ; preds = %4927
  %4933 = load i32, ptr %117, align 4, !tbaa !5
  %4934 = call ptr @__errno_location() #10
  store i32 %4933, ptr %4934, align 4, !tbaa !5
  %4935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4936 = load i32, ptr @test_count, align 4, !tbaa !5
  %4937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4938 = load i32, ptr %4937, align 4, !tbaa !5
  %4939 = call ptr @s2n_strerror(i32 noundef %4938, ptr noundef @.str.4)
  %4940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4941 = load i32, ptr %4940, align 4, !tbaa !5
  %4942 = call ptr @s2n_strerror_debug(i32 noundef %4941, ptr noundef @.str.4)
  %4943 = call ptr @__errno_location() #10
  %4944 = load i32, ptr %4943, align 4, !tbaa !5
  %4945 = call ptr @strerror(i32 noundef %4944) #9
  %4946 = call ptr @__errno_location() #10
  %4947 = load i32, ptr %4946, align 4, !tbaa !5
  %4948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4935, ptr noundef @.str.2, i32 noundef %4936, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 281, ptr noundef %4939, ptr noundef %4942, ptr noundef %4945, i32 noundef %4947) #9
  br label %4966

4949:                                             ; preds = %4927, %4920
  %4950 = load i32, ptr %117, align 4, !tbaa !5
  %4951 = call ptr @__errno_location() #10
  store i32 %4950, ptr %4951, align 4, !tbaa !5
  %4952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4953 = load i32, ptr @test_count, align 4, !tbaa !5
  %4954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4955 = load i32, ptr %4954, align 4, !tbaa !5
  %4956 = call ptr @s2n_strerror(i32 noundef %4955, ptr noundef @.str.4)
  %4957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4958 = load i32, ptr %4957, align 4, !tbaa !5
  %4959 = call ptr @s2n_strerror_debug(i32 noundef %4958, ptr noundef @.str.4)
  %4960 = call ptr @__errno_location() #10
  %4961 = load i32, ptr %4960, align 4, !tbaa !5
  %4962 = call ptr @strerror(i32 noundef %4961) #9
  %4963 = call ptr @__errno_location() #10
  %4964 = load i32, ptr %4963, align 4, !tbaa !5
  %4965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4952, ptr noundef @.str.5, i32 noundef %4953, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 281, ptr noundef %4956, ptr noundef %4959, ptr noundef %4962, i32 noundef %4964) #9
  br label %4966

4966:                                             ; preds = %4949, %4932
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #9
  br label %4967

4967:                                             ; preds = %4966
  br label %4968

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

4969:                                             ; No predecessors!
  br label %4970

4970:                                             ; preds = %4969
  br label %4971

4971:                                             ; preds = %4970, %4913
  br label %4972

4972:                                             ; preds = %4971
  br label %4973

4973:                                             ; preds = %4972
  br label %4974

4974:                                             ; preds = %4973
  %4975 = load i32, ptr @test_count, align 4, !tbaa !5
  %4976 = add nsw i32 %4975, 1
  store i32 %4976, ptr @test_count, align 4, !tbaa !5
  %4977 = load ptr, ptr %116, align 8, !tbaa !9
  %4978 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %4977)
  %4979 = icmp eq i32 %4978, -1
  br i1 %4979, label %4980, label %5033

4980:                                             ; preds = %4974
  br label %4981

4981:                                             ; preds = %4980
  br label %4982

4982:                                             ; preds = %4981
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #9
  %4983 = call ptr @__errno_location() #10
  %4984 = load i32, ptr %4983, align 4, !tbaa !5
  store i32 %4984, ptr %118, align 4, !tbaa !5
  %4985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4986 = call i32 @s2n_print_stacktrace(ptr noundef %4985)
  %4987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4988 = trunc i8 %4987 to i1
  br i1 %4988, label %4989, label %5011

4989:                                             ; preds = %4982
  %4990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4991 = call i32 @fileno(ptr noundef %4990) #9
  %4992 = call i32 @isatty(i32 noundef %4991) #9
  %4993 = icmp ne i32 %4992, 0
  br i1 %4993, label %4994, label %5011

4994:                                             ; preds = %4989
  %4995 = load i32, ptr %118, align 4, !tbaa !5
  %4996 = call ptr @__errno_location() #10
  store i32 %4995, ptr %4996, align 4, !tbaa !5
  %4997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4998 = load i32, ptr @test_count, align 4, !tbaa !5
  %4999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5000 = load i32, ptr %4999, align 4, !tbaa !5
  %5001 = call ptr @s2n_strerror(i32 noundef %5000, ptr noundef @.str.4)
  %5002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5003 = load i32, ptr %5002, align 4, !tbaa !5
  %5004 = call ptr @s2n_strerror_debug(i32 noundef %5003, ptr noundef @.str.4)
  %5005 = call ptr @__errno_location() #10
  %5006 = load i32, ptr %5005, align 4, !tbaa !5
  %5007 = call ptr @strerror(i32 noundef %5006) #9
  %5008 = call ptr @__errno_location() #10
  %5009 = load i32, ptr %5008, align 4, !tbaa !5
  %5010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4997, ptr noundef @.str.2, i32 noundef %4998, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 282, ptr noundef %5001, ptr noundef %5004, ptr noundef %5007, i32 noundef %5009) #9
  br label %5028

5011:                                             ; preds = %4989, %4982
  %5012 = load i32, ptr %118, align 4, !tbaa !5
  %5013 = call ptr @__errno_location() #10
  store i32 %5012, ptr %5013, align 4, !tbaa !5
  %5014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5015 = load i32, ptr @test_count, align 4, !tbaa !5
  %5016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5017 = load i32, ptr %5016, align 4, !tbaa !5
  %5018 = call ptr @s2n_strerror(i32 noundef %5017, ptr noundef @.str.4)
  %5019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5020 = load i32, ptr %5019, align 4, !tbaa !5
  %5021 = call ptr @s2n_strerror_debug(i32 noundef %5020, ptr noundef @.str.4)
  %5022 = call ptr @__errno_location() #10
  %5023 = load i32, ptr %5022, align 4, !tbaa !5
  %5024 = call ptr @strerror(i32 noundef %5023) #9
  %5025 = call ptr @__errno_location() #10
  %5026 = load i32, ptr %5025, align 4, !tbaa !5
  %5027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5014, ptr noundef @.str.5, i32 noundef %5015, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 282, ptr noundef %5018, ptr noundef %5021, ptr noundef %5024, i32 noundef %5026) #9
  br label %5028

5028:                                             ; preds = %5011, %4994
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #9
  br label %5029

5029:                                             ; preds = %5028
  br label %5030

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

5031:                                             ; No predecessors!
  br label %5032

5032:                                             ; preds = %5031
  br label %5033

5033:                                             ; preds = %5032, %4974
  br label %5034

5034:                                             ; preds = %5033
  br label %5035

5035:                                             ; preds = %5034
  br label %5036

5036:                                             ; preds = %5035
  call void @llvm.lifetime.start.p0(i64 1, ptr %119) #9
  store i8 0, ptr %119, align 1, !tbaa !15
  br label %5037

5037:                                             ; preds = %5036
  %5038 = load i32, ptr @test_count, align 4, !tbaa !5
  %5039 = add nsw i32 %5038, 1
  store i32 %5039, ptr @test_count, align 4, !tbaa !5
  %5040 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %88, i32 0, i32 1
  %5041 = load i16, ptr %5040, align 8, !tbaa !17
  %5042 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %5041, ptr noundef %119)
  %5043 = icmp eq i32 %5042, -1
  br i1 %5043, label %5044, label %5097

5044:                                             ; preds = %5037
  br label %5045

5045:                                             ; preds = %5044
  br label %5046

5046:                                             ; preds = %5045
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #9
  %5047 = call ptr @__errno_location() #10
  %5048 = load i32, ptr %5047, align 4, !tbaa !5
  store i32 %5048, ptr %120, align 4, !tbaa !5
  %5049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5050 = call i32 @s2n_print_stacktrace(ptr noundef %5049)
  %5051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5052 = trunc i8 %5051 to i1
  br i1 %5052, label %5053, label %5075

5053:                                             ; preds = %5046
  %5054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5055 = call i32 @fileno(ptr noundef %5054) #9
  %5056 = call i32 @isatty(i32 noundef %5055) #9
  %5057 = icmp ne i32 %5056, 0
  br i1 %5057, label %5058, label %5075

5058:                                             ; preds = %5053
  %5059 = load i32, ptr %120, align 4, !tbaa !5
  %5060 = call ptr @__errno_location() #10
  store i32 %5059, ptr %5060, align 4, !tbaa !5
  %5061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5062 = load i32, ptr @test_count, align 4, !tbaa !5
  %5063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5064 = load i32, ptr %5063, align 4, !tbaa !5
  %5065 = call ptr @s2n_strerror(i32 noundef %5064, ptr noundef @.str.4)
  %5066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5067 = load i32, ptr %5066, align 4, !tbaa !5
  %5068 = call ptr @s2n_strerror_debug(i32 noundef %5067, ptr noundef @.str.4)
  %5069 = call ptr @__errno_location() #10
  %5070 = load i32, ptr %5069, align 4, !tbaa !5
  %5071 = call ptr @strerror(i32 noundef %5070) #9
  %5072 = call ptr @__errno_location() #10
  %5073 = load i32, ptr %5072, align 4, !tbaa !5
  %5074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5061, ptr noundef @.str.2, i32 noundef %5062, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 284, ptr noundef %5065, ptr noundef %5068, ptr noundef %5071, i32 noundef %5073) #9
  br label %5092

5075:                                             ; preds = %5053, %5046
  %5076 = load i32, ptr %120, align 4, !tbaa !5
  %5077 = call ptr @__errno_location() #10
  store i32 %5076, ptr %5077, align 4, !tbaa !5
  %5078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5079 = load i32, ptr @test_count, align 4, !tbaa !5
  %5080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5081 = load i32, ptr %5080, align 4, !tbaa !5
  %5082 = call ptr @s2n_strerror(i32 noundef %5081, ptr noundef @.str.4)
  %5083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5084 = load i32, ptr %5083, align 4, !tbaa !5
  %5085 = call ptr @s2n_strerror_debug(i32 noundef %5084, ptr noundef @.str.4)
  %5086 = call ptr @__errno_location() #10
  %5087 = load i32, ptr %5086, align 4, !tbaa !5
  %5088 = call ptr @strerror(i32 noundef %5087) #9
  %5089 = call ptr @__errno_location() #10
  %5090 = load i32, ptr %5089, align 4, !tbaa !5
  %5091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5078, ptr noundef @.str.5, i32 noundef %5079, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 284, ptr noundef %5082, ptr noundef %5085, ptr noundef %5088, i32 noundef %5090) #9
  br label %5092

5092:                                             ; preds = %5075, %5058
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #9
  br label %5093

5093:                                             ; preds = %5092
  br label %5094

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

5095:                                             ; No predecessors!
  br label %5096

5096:                                             ; preds = %5095
  br label %5097

5097:                                             ; preds = %5096, %5037
  br label %5098

5098:                                             ; preds = %5097
  br label %5099

5099:                                             ; preds = %5098
  %5100 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %115, i32 0, i32 0
  %5101 = load i8, ptr %119, align 1, !tbaa !15
  %5102 = zext i8 %5101 to i64
  %5103 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %5100, i64 0, i64 %5102
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5103, ptr align 8 %88, i64 32, i1 false), !tbaa.struct !22
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #9
  br label %5104

5104:                                             ; preds = %5099
  br label %5105

5105:                                             ; preds = %5104
  %5106 = load ptr, ptr %116, align 8, !tbaa !9
  %5107 = load i32, ptr %5106, align 8
  %5108 = and i32 %5107, -65
  %5109 = or i32 %5108, 0
  store i32 %5109, ptr %5106, align 8
  br label %5110

5110:                                             ; preds = %5105
  %5111 = load i32, ptr @test_count, align 4, !tbaa !5
  %5112 = add nsw i32 %5111, 1
  store i32 %5112, ptr @test_count, align 4, !tbaa !5
  %5113 = load ptr, ptr %116, align 8, !tbaa !9
  %5114 = call i32 @s2n_extension_list_process(i32 noundef 4, ptr noundef %5113, ptr noundef %115)
  %5115 = icmp eq i32 %5114, -1
  br i1 %5115, label %5116, label %5169

5116:                                             ; preds = %5110
  br label %5117

5117:                                             ; preds = %5116
  br label %5118

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

5125:                                             ; preds = %5118
  %5126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5127 = call i32 @fileno(ptr noundef %5126) #9
  %5128 = call i32 @isatty(i32 noundef %5127) #9
  %5129 = icmp ne i32 %5128, 0
  br i1 %5129, label %5130, label %5147

5130:                                             ; preds = %5125
  %5131 = load i32, ptr %121, align 4, !tbaa !5
  %5132 = call ptr @__errno_location() #10
  store i32 %5131, ptr %5132, align 4, !tbaa !5
  %5133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5134 = load i32, ptr @test_count, align 4, !tbaa !5
  %5135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5136 = load i32, ptr %5135, align 4, !tbaa !5
  %5137 = call ptr @s2n_strerror(i32 noundef %5136, ptr noundef @.str.4)
  %5138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5139 = load i32, ptr %5138, align 4, !tbaa !5
  %5140 = call ptr @s2n_strerror_debug(i32 noundef %5139, ptr noundef @.str.4)
  %5141 = call ptr @__errno_location() #10
  %5142 = load i32, ptr %5141, align 4, !tbaa !5
  %5143 = call ptr @strerror(i32 noundef %5142) #9
  %5144 = call ptr @__errno_location() #10
  %5145 = load i32, ptr %5144, align 4, !tbaa !5
  %5146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5133, ptr noundef @.str.2, i32 noundef %5134, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 288, ptr noundef %5137, ptr noundef %5140, ptr noundef %5143, i32 noundef %5145) #9
  br label %5164

5147:                                             ; preds = %5125, %5118
  %5148 = load i32, ptr %121, align 4, !tbaa !5
  %5149 = call ptr @__errno_location() #10
  store i32 %5148, ptr %5149, align 4, !tbaa !5
  %5150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5151 = load i32, ptr @test_count, align 4, !tbaa !5
  %5152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5153 = load i32, ptr %5152, align 4, !tbaa !5
  %5154 = call ptr @s2n_strerror(i32 noundef %5153, ptr noundef @.str.4)
  %5155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5156 = load i32, ptr %5155, align 4, !tbaa !5
  %5157 = call ptr @s2n_strerror_debug(i32 noundef %5156, ptr noundef @.str.4)
  %5158 = call ptr @__errno_location() #10
  %5159 = load i32, ptr %5158, align 4, !tbaa !5
  %5160 = call ptr @strerror(i32 noundef %5159) #9
  %5161 = call ptr @__errno_location() #10
  %5162 = load i32, ptr %5161, align 4, !tbaa !5
  %5163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5150, ptr noundef @.str.5, i32 noundef %5151, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 288, ptr noundef %5154, ptr noundef %5157, ptr noundef %5160, i32 noundef %5162) #9
  br label %5164

5164:                                             ; preds = %5147, %5130
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #9
  br label %5165

5165:                                             ; preds = %5164
  br label %5166

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

5167:                                             ; No predecessors!
  br label %5168

5168:                                             ; preds = %5167
  br label %5169

5169:                                             ; preds = %5168, %5110
  br label %5170

5170:                                             ; preds = %5169
  br label %5171

5171:                                             ; preds = %5170
  br label %5172

5172:                                             ; preds = %5171
  %5173 = load i32, ptr @test_count, align 4, !tbaa !5
  %5174 = add nsw i32 %5173, 1
  store i32 %5174, ptr @test_count, align 4, !tbaa !5
  %5175 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %115, i32 0, i32 0
  %5176 = load i8, ptr %100, align 1, !tbaa !15
  %5177 = zext i8 %5176 to i64
  %5178 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %5175, i64 0, i64 %5177
  %5179 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %5178, i32 0, i32 3
  %5180 = load i8, ptr %5179, align 4
  %5181 = and i8 %5180, 1
  %5182 = zext i8 %5181 to i32
  %5183 = icmp ne i32 %5182, 0
  br i1 %5183, label %5237, label %5184

5184:                                             ; preds = %5172
  br label %5185

5185:                                             ; preds = %5184
  br label %5186

5186:                                             ; preds = %5185
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #9
  %5187 = call ptr @__errno_location() #10
  %5188 = load i32, ptr %5187, align 4, !tbaa !5
  store i32 %5188, ptr %122, align 4, !tbaa !5
  %5189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5190 = call i32 @s2n_print_stacktrace(ptr noundef %5189)
  %5191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5192 = trunc i8 %5191 to i1
  br i1 %5192, label %5193, label %5215

5193:                                             ; preds = %5186
  %5194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5195 = call i32 @fileno(ptr noundef %5194) #9
  %5196 = call i32 @isatty(i32 noundef %5195) #9
  %5197 = icmp ne i32 %5196, 0
  br i1 %5197, label %5198, label %5215

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

5215:                                             ; preds = %5193, %5186
  %5216 = load i32, ptr %122, align 4, !tbaa !5
  %5217 = call ptr @__errno_location() #10
  store i32 %5216, ptr %5217, align 4, !tbaa !5
  %5218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5219 = load i32, ptr @test_count, align 4, !tbaa !5
  %5220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5221 = load i32, ptr %5220, align 4, !tbaa !5
  %5222 = call ptr @s2n_strerror(i32 noundef %5221, ptr noundef @.str.4)
  %5223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5224 = load i32, ptr %5223, align 4, !tbaa !5
  %5225 = call ptr @s2n_strerror_debug(i32 noundef %5224, ptr noundef @.str.4)
  %5226 = call ptr @__errno_location() #10
  %5227 = load i32, ptr %5226, align 4, !tbaa !5
  %5228 = call ptr @strerror(i32 noundef %5227) #9
  %5229 = call ptr @__errno_location() #10
  %5230 = load i32, ptr %5229, align 4, !tbaa !5
  %5231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5218, ptr noundef @.str.5, i32 noundef %5219, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 290, ptr noundef %5222, ptr noundef %5225, ptr noundef %5228, i32 noundef %5230) #9
  br label %5232

5232:                                             ; preds = %5215, %5198
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #9
  br label %5233

5233:                                             ; preds = %5232
  br label %5234

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

5235:                                             ; No predecessors!
  br label %5236

5236:                                             ; preds = %5235
  br label %5237

5237:                                             ; preds = %5236, %5172
  br label %5238

5238:                                             ; preds = %5237
  br label %5239

5239:                                             ; preds = %5238
  br label %5240

5240:                                             ; preds = %5239
  %5241 = load i32, ptr @test_count, align 4, !tbaa !5
  %5242 = add nsw i32 %5241, 1
  store i32 %5242, ptr @test_count, align 4, !tbaa !5
  %5243 = load ptr, ptr %116, align 8, !tbaa !9
  %5244 = load i32, ptr %5243, align 8
  %5245 = lshr i32 %5244, 6
  %5246 = and i32 %5245, 1
  %5247 = icmp ne i32 %5246, 0
  br i1 %5247, label %5301, label %5248

5248:                                             ; preds = %5240
  br label %5249

5249:                                             ; preds = %5248
  br label %5250

5250:                                             ; preds = %5249
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #9
  %5251 = call ptr @__errno_location() #10
  %5252 = load i32, ptr %5251, align 4, !tbaa !5
  store i32 %5252, ptr %123, align 4, !tbaa !5
  %5253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5254 = call i32 @s2n_print_stacktrace(ptr noundef %5253)
  %5255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5256 = trunc i8 %5255 to i1
  br i1 %5256, label %5257, label %5279

5257:                                             ; preds = %5250
  %5258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5259 = call i32 @fileno(ptr noundef %5258) #9
  %5260 = call i32 @isatty(i32 noundef %5259) #9
  %5261 = icmp ne i32 %5260, 0
  br i1 %5261, label %5262, label %5279

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

5279:                                             ; preds = %5257, %5250
  %5280 = load i32, ptr %123, align 4, !tbaa !5
  %5281 = call ptr @__errno_location() #10
  store i32 %5280, ptr %5281, align 4, !tbaa !5
  %5282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5283 = load i32, ptr @test_count, align 4, !tbaa !5
  %5284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5285 = load i32, ptr %5284, align 4, !tbaa !5
  %5286 = call ptr @s2n_strerror(i32 noundef %5285, ptr noundef @.str.4)
  %5287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5288 = load i32, ptr %5287, align 4, !tbaa !5
  %5289 = call ptr @s2n_strerror_debug(i32 noundef %5288, ptr noundef @.str.4)
  %5290 = call ptr @__errno_location() #10
  %5291 = load i32, ptr %5290, align 4, !tbaa !5
  %5292 = call ptr @strerror(i32 noundef %5291) #9
  %5293 = call ptr @__errno_location() #10
  %5294 = load i32, ptr %5293, align 4, !tbaa !5
  %5295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5282, ptr noundef @.str.5, i32 noundef %5283, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 291, ptr noundef %5286, ptr noundef %5289, ptr noundef %5292, i32 noundef %5294) #9
  br label %5296

5296:                                             ; preds = %5279, %5262
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #9
  br label %5297

5297:                                             ; preds = %5296
  br label %5298

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

5299:                                             ; No predecessors!
  br label %5300

5300:                                             ; preds = %5299
  br label %5301

5301:                                             ; preds = %5300, %5240
  br label %5302

5302:                                             ; preds = %5301
  br label %5303

5303:                                             ; preds = %5302
  br label %5304

5304:                                             ; preds = %5303
  %5305 = load i32, ptr @test_count, align 4, !tbaa !5
  %5306 = add nsw i32 %5305, 1
  store i32 %5306, ptr @test_count, align 4, !tbaa !5
  %5307 = load ptr, ptr %116, align 8, !tbaa !9
  %5308 = call i32 @s2n_connection_free(ptr noundef %5307)
  %5309 = icmp eq i32 %5308, -1
  br i1 %5309, label %5310, label %5363

5310:                                             ; preds = %5304
  br label %5311

5311:                                             ; preds = %5310
  br label %5312

5312:                                             ; preds = %5311
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #9
  %5313 = call ptr @__errno_location() #10
  %5314 = load i32, ptr %5313, align 4, !tbaa !5
  store i32 %5314, ptr %124, align 4, !tbaa !5
  %5315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5316 = call i32 @s2n_print_stacktrace(ptr noundef %5315)
  %5317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5318 = trunc i8 %5317 to i1
  br i1 %5318, label %5319, label %5341

5319:                                             ; preds = %5312
  %5320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5321 = call i32 @fileno(ptr noundef %5320) #9
  %5322 = call i32 @isatty(i32 noundef %5321) #9
  %5323 = icmp ne i32 %5322, 0
  br i1 %5323, label %5324, label %5341

5324:                                             ; preds = %5319
  %5325 = load i32, ptr %124, align 4, !tbaa !5
  %5326 = call ptr @__errno_location() #10
  store i32 %5325, ptr %5326, align 4, !tbaa !5
  %5327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5328 = load i32, ptr @test_count, align 4, !tbaa !5
  %5329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5330 = load i32, ptr %5329, align 4, !tbaa !5
  %5331 = call ptr @s2n_strerror(i32 noundef %5330, ptr noundef @.str.4)
  %5332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5333 = load i32, ptr %5332, align 4, !tbaa !5
  %5334 = call ptr @s2n_strerror_debug(i32 noundef %5333, ptr noundef @.str.4)
  %5335 = call ptr @__errno_location() #10
  %5336 = load i32, ptr %5335, align 4, !tbaa !5
  %5337 = call ptr @strerror(i32 noundef %5336) #9
  %5338 = call ptr @__errno_location() #10
  %5339 = load i32, ptr %5338, align 4, !tbaa !5
  %5340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5327, ptr noundef @.str.2, i32 noundef %5328, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 293, ptr noundef %5331, ptr noundef %5334, ptr noundef %5337, i32 noundef %5339) #9
  br label %5358

5341:                                             ; preds = %5319, %5312
  %5342 = load i32, ptr %124, align 4, !tbaa !5
  %5343 = call ptr @__errno_location() #10
  store i32 %5342, ptr %5343, align 4, !tbaa !5
  %5344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5345 = load i32, ptr @test_count, align 4, !tbaa !5
  %5346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5347 = load i32, ptr %5346, align 4, !tbaa !5
  %5348 = call ptr @s2n_strerror(i32 noundef %5347, ptr noundef @.str.4)
  %5349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5350 = load i32, ptr %5349, align 4, !tbaa !5
  %5351 = call ptr @s2n_strerror_debug(i32 noundef %5350, ptr noundef @.str.4)
  %5352 = call ptr @__errno_location() #10
  %5353 = load i32, ptr %5352, align 4, !tbaa !5
  %5354 = call ptr @strerror(i32 noundef %5353) #9
  %5355 = call ptr @__errno_location() #10
  %5356 = load i32, ptr %5355, align 4, !tbaa !5
  %5357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5344, ptr noundef @.str.5, i32 noundef %5345, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 293, ptr noundef %5348, ptr noundef %5351, ptr noundef %5354, i32 noundef %5356) #9
  br label %5358

5358:                                             ; preds = %5341, %5324
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #9
  br label %5359

5359:                                             ; preds = %5358
  br label %5360

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

5361:                                             ; No predecessors!
  br label %5362

5362:                                             ; preds = %5361
  br label %5363

5363:                                             ; preds = %5362, %5304
  br label %5364

5364:                                             ; preds = %5363
  br label %5365

5365:                                             ; preds = %5364
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #9
  call void @llvm.lifetime.end.p0(i64 704, ptr %115) #9
  call void @llvm.lifetime.start.p0(i64 704, ptr %125) #9
  call void @llvm.memset.p0.i64(ptr align 8 %125, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #9
  store ptr null, ptr %126, align 8, !tbaa !9
  br label %5366

5366:                                             ; preds = %5365
  %5367 = load i32, ptr @test_count, align 4, !tbaa !5
  %5368 = add nsw i32 %5367, 1
  store i32 %5368, ptr @test_count, align 4, !tbaa !5
  %5369 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5369, ptr %126, align 8, !tbaa !9
  %5370 = icmp eq ptr %5369, null
  br i1 %5370, label %5371, label %5424

5371:                                             ; preds = %5366
  br label %5372

5372:                                             ; preds = %5371
  br label %5373

5373:                                             ; preds = %5372
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #9
  %5374 = call ptr @__errno_location() #10
  %5375 = load i32, ptr %5374, align 4, !tbaa !5
  store i32 %5375, ptr %127, align 4, !tbaa !5
  %5376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5377 = call i32 @s2n_print_stacktrace(ptr noundef %5376)
  %5378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5379 = trunc i8 %5378 to i1
  br i1 %5379, label %5380, label %5402

5380:                                             ; preds = %5373
  %5381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5382 = call i32 @fileno(ptr noundef %5381) #9
  %5383 = call i32 @isatty(i32 noundef %5382) #9
  %5384 = icmp ne i32 %5383, 0
  br i1 %5384, label %5385, label %5402

5385:                                             ; preds = %5380
  %5386 = load i32, ptr %127, align 4, !tbaa !5
  %5387 = call ptr @__errno_location() #10
  store i32 %5386, ptr %5387, align 4, !tbaa !5
  %5388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5389 = load i32, ptr @test_count, align 4, !tbaa !5
  %5390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5391 = load i32, ptr %5390, align 4, !tbaa !5
  %5392 = call ptr @s2n_strerror(i32 noundef %5391, ptr noundef @.str.4)
  %5393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5394 = load i32, ptr %5393, align 4, !tbaa !5
  %5395 = call ptr @s2n_strerror_debug(i32 noundef %5394, ptr noundef @.str.4)
  %5396 = call ptr @__errno_location() #10
  %5397 = load i32, ptr %5396, align 4, !tbaa !5
  %5398 = call ptr @strerror(i32 noundef %5397) #9
  %5399 = call ptr @__errno_location() #10
  %5400 = load i32, ptr %5399, align 4, !tbaa !5
  %5401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5388, ptr noundef @.str.2, i32 noundef %5389, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 301, ptr noundef %5392, ptr noundef %5395, ptr noundef %5398, i32 noundef %5400) #9
  br label %5419

5402:                                             ; preds = %5380, %5373
  %5403 = load i32, ptr %127, align 4, !tbaa !5
  %5404 = call ptr @__errno_location() #10
  store i32 %5403, ptr %5404, align 4, !tbaa !5
  %5405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5406 = load i32, ptr @test_count, align 4, !tbaa !5
  %5407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5408 = load i32, ptr %5407, align 4, !tbaa !5
  %5409 = call ptr @s2n_strerror(i32 noundef %5408, ptr noundef @.str.4)
  %5410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5411 = load i32, ptr %5410, align 4, !tbaa !5
  %5412 = call ptr @s2n_strerror_debug(i32 noundef %5411, ptr noundef @.str.4)
  %5413 = call ptr @__errno_location() #10
  %5414 = load i32, ptr %5413, align 4, !tbaa !5
  %5415 = call ptr @strerror(i32 noundef %5414) #9
  %5416 = call ptr @__errno_location() #10
  %5417 = load i32, ptr %5416, align 4, !tbaa !5
  %5418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5405, ptr noundef @.str.5, i32 noundef %5406, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 301, ptr noundef %5409, ptr noundef %5412, ptr noundef %5415, i32 noundef %5417) #9
  br label %5419

5419:                                             ; preds = %5402, %5385
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #9
  br label %5420

5420:                                             ; preds = %5419
  br label %5421

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

5422:                                             ; No predecessors!
  br label %5423

5423:                                             ; preds = %5422
  br label %5424

5424:                                             ; preds = %5423, %5366
  br label %5425

5425:                                             ; preds = %5424
  br label %5426

5426:                                             ; preds = %5425
  br label %5427

5427:                                             ; preds = %5426
  %5428 = load i32, ptr @test_count, align 4, !tbaa !5
  %5429 = add nsw i32 %5428, 1
  store i32 %5429, ptr @test_count, align 4, !tbaa !5
  %5430 = load ptr, ptr %126, align 8, !tbaa !9
  %5431 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %5430)
  %5432 = icmp eq i32 %5431, -1
  br i1 %5432, label %5433, label %5486

5433:                                             ; preds = %5427
  br label %5434

5434:                                             ; preds = %5433
  br label %5435

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

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

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

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

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

5482:                                             ; preds = %5481
  br label %5483

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

5484:                                             ; No predecessors!
  br label %5485

5485:                                             ; preds = %5484
  br label %5486

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

5487:                                             ; preds = %5486
  br label %5488

5488:                                             ; preds = %5487
  br label %5489

5489:                                             ; preds = %5488
  call void @llvm.lifetime.start.p0(i64 1, ptr %129) #9
  store i8 0, ptr %129, align 1, !tbaa !15
  br label %5490

5490:                                             ; preds = %5489
  %5491 = load i32, ptr @test_count, align 4, !tbaa !5
  %5492 = add nsw i32 %5491, 1
  store i32 %5492, ptr @test_count, align 4, !tbaa !5
  %5493 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %88, i32 0, i32 1
  %5494 = load i16, ptr %5493, align 8, !tbaa !17
  %5495 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %5494, ptr noundef %129)
  %5496 = icmp eq i32 %5495, -1
  br i1 %5496, label %5497, label %5550

5497:                                             ; preds = %5490
  br label %5498

5498:                                             ; preds = %5497
  br label %5499

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

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

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

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

5545:                                             ; preds = %5528, %5511
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #9
  br label %5546

5546:                                             ; preds = %5545
  br label %5547

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

5548:                                             ; No predecessors!
  br label %5549

5549:                                             ; preds = %5548
  br label %5550

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

5551:                                             ; preds = %5550
  br label %5552

5552:                                             ; preds = %5551
  %5553 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %125, i32 0, i32 0
  %5554 = load i8, ptr %129, align 1, !tbaa !15
  %5555 = zext i8 %5554 to i64
  %5556 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %5553, i64 0, i64 %5555
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5556, ptr align 8 %88, i64 32, i1 false), !tbaa.struct !22
  call void @llvm.lifetime.end.p0(i64 1, ptr %129) #9
  br label %5557

5557:                                             ; preds = %5552
  br label %5558

5558:                                             ; preds = %5557
  br label %5559

5559:                                             ; preds = %5558
  call void @llvm.lifetime.start.p0(i64 1, ptr %131) #9
  store i8 0, ptr %131, align 1, !tbaa !15
  br label %5560

5560:                                             ; preds = %5559
  %5561 = load i32, ptr @test_count, align 4, !tbaa !5
  %5562 = add nsw i32 %5561, 1
  store i32 %5562, ptr @test_count, align 4, !tbaa !5
  %5563 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %89, i32 0, i32 1
  %5564 = load i16, ptr %5563, align 8, !tbaa !17
  %5565 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %5564, ptr noundef %131)
  %5566 = icmp eq i32 %5565, -1
  br i1 %5566, label %5567, label %5620

5567:                                             ; preds = %5560
  br label %5568

5568:                                             ; preds = %5567
  br label %5569

5569:                                             ; preds = %5568
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #9
  %5570 = call ptr @__errno_location() #10
  %5571 = load i32, ptr %5570, align 4, !tbaa !5
  store i32 %5571, ptr %132, align 4, !tbaa !5
  %5572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5573 = call i32 @s2n_print_stacktrace(ptr noundef %5572)
  %5574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5575 = trunc i8 %5574 to i1
  br i1 %5575, label %5576, label %5598

5576:                                             ; preds = %5569
  %5577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5578 = call i32 @fileno(ptr noundef %5577) #9
  %5579 = call i32 @isatty(i32 noundef %5578) #9
  %5580 = icmp ne i32 %5579, 0
  br i1 %5580, label %5581, label %5598

5581:                                             ; preds = %5576
  %5582 = load i32, ptr %132, align 4, !tbaa !5
  %5583 = call ptr @__errno_location() #10
  store i32 %5582, ptr %5583, align 4, !tbaa !5
  %5584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5585 = load i32, ptr @test_count, align 4, !tbaa !5
  %5586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5587 = load i32, ptr %5586, align 4, !tbaa !5
  %5588 = call ptr @s2n_strerror(i32 noundef %5587, ptr noundef @.str.4)
  %5589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5590 = load i32, ptr %5589, align 4, !tbaa !5
  %5591 = call ptr @s2n_strerror_debug(i32 noundef %5590, ptr noundef @.str.4)
  %5592 = call ptr @__errno_location() #10
  %5593 = load i32, ptr %5592, align 4, !tbaa !5
  %5594 = call ptr @strerror(i32 noundef %5593) #9
  %5595 = call ptr @__errno_location() #10
  %5596 = load i32, ptr %5595, align 4, !tbaa !5
  %5597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5584, ptr noundef @.str.2, i32 noundef %5585, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 305, ptr noundef %5588, ptr noundef %5591, ptr noundef %5594, i32 noundef %5596) #9
  br label %5615

5598:                                             ; preds = %5576, %5569
  %5599 = load i32, ptr %132, align 4, !tbaa !5
  %5600 = call ptr @__errno_location() #10
  store i32 %5599, ptr %5600, align 4, !tbaa !5
  %5601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5602 = load i32, ptr @test_count, align 4, !tbaa !5
  %5603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5604 = load i32, ptr %5603, align 4, !tbaa !5
  %5605 = call ptr @s2n_strerror(i32 noundef %5604, ptr noundef @.str.4)
  %5606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5607 = load i32, ptr %5606, align 4, !tbaa !5
  %5608 = call ptr @s2n_strerror_debug(i32 noundef %5607, ptr noundef @.str.4)
  %5609 = call ptr @__errno_location() #10
  %5610 = load i32, ptr %5609, align 4, !tbaa !5
  %5611 = call ptr @strerror(i32 noundef %5610) #9
  %5612 = call ptr @__errno_location() #10
  %5613 = load i32, ptr %5612, align 4, !tbaa !5
  %5614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5601, ptr noundef @.str.5, i32 noundef %5602, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 305, ptr noundef %5605, ptr noundef %5608, ptr noundef %5611, i32 noundef %5613) #9
  br label %5615

5615:                                             ; preds = %5598, %5581
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #9
  br label %5616

5616:                                             ; preds = %5615
  br label %5617

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

5618:                                             ; No predecessors!
  br label %5619

5619:                                             ; preds = %5618
  br label %5620

5620:                                             ; preds = %5619, %5560
  br label %5621

5621:                                             ; preds = %5620
  br label %5622

5622:                                             ; preds = %5621
  %5623 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %125, i32 0, i32 0
  %5624 = load i8, ptr %131, align 1, !tbaa !15
  %5625 = zext i8 %5624 to i64
  %5626 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %5623, i64 0, i64 %5625
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %5626, ptr align 8 %89, i64 32, i1 false), !tbaa.struct !22
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #9
  br label %5627

5627:                                             ; preds = %5622
  br label %5628

5628:                                             ; preds = %5627
  %5629 = load ptr, ptr %126, align 8, !tbaa !9
  %5630 = load i32, ptr %5629, align 8
  %5631 = and i32 %5630, -65
  %5632 = or i32 %5631, 0
  store i32 %5632, ptr %5629, align 8
  br label %5633

5633:                                             ; preds = %5628
  %5634 = load i32, ptr @test_count, align 4, !tbaa !5
  %5635 = add nsw i32 %5634, 1
  store i32 %5635, ptr @test_count, align 4, !tbaa !5
  %5636 = load ptr, ptr %126, align 8, !tbaa !9
  %5637 = call i32 @s2n_extension_list_process(i32 noundef 4, ptr noundef %5636, ptr noundef %125)
  %5638 = icmp eq i32 %5637, -1
  br i1 %5638, label %5639, label %5692

5639:                                             ; preds = %5633
  br label %5640

5640:                                             ; preds = %5639
  br label %5641

5641:                                             ; preds = %5640
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #9
  %5642 = call ptr @__errno_location() #10
  %5643 = load i32, ptr %5642, align 4, !tbaa !5
  store i32 %5643, ptr %133, align 4, !tbaa !5
  %5644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5645 = call i32 @s2n_print_stacktrace(ptr noundef %5644)
  %5646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5647 = trunc i8 %5646 to i1
  br i1 %5647, label %5648, label %5670

5648:                                             ; preds = %5641
  %5649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5650 = call i32 @fileno(ptr noundef %5649) #9
  %5651 = call i32 @isatty(i32 noundef %5650) #9
  %5652 = icmp ne i32 %5651, 0
  br i1 %5652, label %5653, label %5670

5653:                                             ; preds = %5648
  %5654 = load i32, ptr %133, align 4, !tbaa !5
  %5655 = call ptr @__errno_location() #10
  store i32 %5654, ptr %5655, align 4, !tbaa !5
  %5656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5657 = load i32, ptr @test_count, align 4, !tbaa !5
  %5658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5659 = load i32, ptr %5658, align 4, !tbaa !5
  %5660 = call ptr @s2n_strerror(i32 noundef %5659, ptr noundef @.str.4)
  %5661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5662 = load i32, ptr %5661, align 4, !tbaa !5
  %5663 = call ptr @s2n_strerror_debug(i32 noundef %5662, ptr noundef @.str.4)
  %5664 = call ptr @__errno_location() #10
  %5665 = load i32, ptr %5664, align 4, !tbaa !5
  %5666 = call ptr @strerror(i32 noundef %5665) #9
  %5667 = call ptr @__errno_location() #10
  %5668 = load i32, ptr %5667, align 4, !tbaa !5
  %5669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5656, ptr noundef @.str.2, i32 noundef %5657, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 309, ptr noundef %5660, ptr noundef %5663, ptr noundef %5666, i32 noundef %5668) #9
  br label %5687

5670:                                             ; preds = %5648, %5641
  %5671 = load i32, ptr %133, align 4, !tbaa !5
  %5672 = call ptr @__errno_location() #10
  store i32 %5671, ptr %5672, align 4, !tbaa !5
  %5673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5674 = load i32, ptr @test_count, align 4, !tbaa !5
  %5675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5676 = load i32, ptr %5675, align 4, !tbaa !5
  %5677 = call ptr @s2n_strerror(i32 noundef %5676, ptr noundef @.str.4)
  %5678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5679 = load i32, ptr %5678, align 4, !tbaa !5
  %5680 = call ptr @s2n_strerror_debug(i32 noundef %5679, ptr noundef @.str.4)
  %5681 = call ptr @__errno_location() #10
  %5682 = load i32, ptr %5681, align 4, !tbaa !5
  %5683 = call ptr @strerror(i32 noundef %5682) #9
  %5684 = call ptr @__errno_location() #10
  %5685 = load i32, ptr %5684, align 4, !tbaa !5
  %5686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5673, ptr noundef @.str.5, i32 noundef %5674, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 309, ptr noundef %5677, ptr noundef %5680, ptr noundef %5683, i32 noundef %5685) #9
  br label %5687

5687:                                             ; preds = %5670, %5653
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #9
  br label %5688

5688:                                             ; preds = %5687
  br label %5689

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

5690:                                             ; No predecessors!
  br label %5691

5691:                                             ; preds = %5690
  br label %5692

5692:                                             ; preds = %5691, %5633
  br label %5693

5693:                                             ; preds = %5692
  br label %5694

5694:                                             ; preds = %5693
  br label %5695

5695:                                             ; preds = %5694
  %5696 = load i32, ptr @test_count, align 4, !tbaa !5
  %5697 = add nsw i32 %5696, 1
  store i32 %5697, ptr @test_count, align 4, !tbaa !5
  %5698 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %125, i32 0, i32 0
  %5699 = load i8, ptr %99, align 1, !tbaa !15
  %5700 = zext i8 %5699 to i64
  %5701 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %5698, i64 0, i64 %5700
  %5702 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %5701, i32 0, i32 3
  %5703 = load i8, ptr %5702, align 4
  %5704 = and i8 %5703, 1
  %5705 = zext i8 %5704 to i32
  %5706 = icmp ne i32 %5705, 0
  br i1 %5706, label %5760, label %5707

5707:                                             ; preds = %5695
  br label %5708

5708:                                             ; preds = %5707
  br label %5709

5709:                                             ; preds = %5708
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #9
  %5710 = call ptr @__errno_location() #10
  %5711 = load i32, ptr %5710, align 4, !tbaa !5
  store i32 %5711, ptr %134, align 4, !tbaa !5
  %5712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5713 = call i32 @s2n_print_stacktrace(ptr noundef %5712)
  %5714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5715 = trunc i8 %5714 to i1
  br i1 %5715, label %5716, label %5738

5716:                                             ; preds = %5709
  %5717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5718 = call i32 @fileno(ptr noundef %5717) #9
  %5719 = call i32 @isatty(i32 noundef %5718) #9
  %5720 = icmp ne i32 %5719, 0
  br i1 %5720, label %5721, label %5738

5721:                                             ; preds = %5716
  %5722 = load i32, ptr %134, align 4, !tbaa !5
  %5723 = call ptr @__errno_location() #10
  store i32 %5722, ptr %5723, align 4, !tbaa !5
  %5724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5725 = load i32, ptr @test_count, align 4, !tbaa !5
  %5726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5727 = load i32, ptr %5726, align 4, !tbaa !5
  %5728 = call ptr @s2n_strerror(i32 noundef %5727, ptr noundef @.str.4)
  %5729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5730 = load i32, ptr %5729, align 4, !tbaa !5
  %5731 = call ptr @s2n_strerror_debug(i32 noundef %5730, ptr noundef @.str.4)
  %5732 = call ptr @__errno_location() #10
  %5733 = load i32, ptr %5732, align 4, !tbaa !5
  %5734 = call ptr @strerror(i32 noundef %5733) #9
  %5735 = call ptr @__errno_location() #10
  %5736 = load i32, ptr %5735, align 4, !tbaa !5
  %5737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5724, ptr noundef @.str.2, i32 noundef %5725, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 311, ptr noundef %5728, ptr noundef %5731, ptr noundef %5734, i32 noundef %5736) #9
  br label %5755

5738:                                             ; preds = %5716, %5709
  %5739 = load i32, ptr %134, align 4, !tbaa !5
  %5740 = call ptr @__errno_location() #10
  store i32 %5739, ptr %5740, align 4, !tbaa !5
  %5741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5742 = load i32, ptr @test_count, align 4, !tbaa !5
  %5743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5744 = load i32, ptr %5743, align 4, !tbaa !5
  %5745 = call ptr @s2n_strerror(i32 noundef %5744, ptr noundef @.str.4)
  %5746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5747 = load i32, ptr %5746, align 4, !tbaa !5
  %5748 = call ptr @s2n_strerror_debug(i32 noundef %5747, ptr noundef @.str.4)
  %5749 = call ptr @__errno_location() #10
  %5750 = load i32, ptr %5749, align 4, !tbaa !5
  %5751 = call ptr @strerror(i32 noundef %5750) #9
  %5752 = call ptr @__errno_location() #10
  %5753 = load i32, ptr %5752, align 4, !tbaa !5
  %5754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5741, ptr noundef @.str.5, i32 noundef %5742, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 311, ptr noundef %5745, ptr noundef %5748, ptr noundef %5751, i32 noundef %5753) #9
  br label %5755

5755:                                             ; preds = %5738, %5721
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #9
  br label %5756

5756:                                             ; preds = %5755
  br label %5757

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

5758:                                             ; No predecessors!
  br label %5759

5759:                                             ; preds = %5758
  br label %5760

5760:                                             ; preds = %5759, %5695
  br label %5761

5761:                                             ; preds = %5760
  br label %5762

5762:                                             ; preds = %5761
  br label %5763

5763:                                             ; preds = %5762
  %5764 = load i32, ptr @test_count, align 4, !tbaa !5
  %5765 = add nsw i32 %5764, 1
  store i32 %5765, ptr @test_count, align 4, !tbaa !5
  %5766 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %125, i32 0, i32 0
  %5767 = load i8, ptr %100, align 1, !tbaa !15
  %5768 = zext i8 %5767 to i64
  %5769 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %5766, i64 0, i64 %5768
  %5770 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %5769, i32 0, i32 3
  %5771 = load i8, ptr %5770, align 4
  %5772 = and i8 %5771, 1
  %5773 = zext i8 %5772 to i32
  %5774 = icmp ne i32 %5773, 0
  br i1 %5774, label %5828, label %5775

5775:                                             ; preds = %5763
  br label %5776

5776:                                             ; preds = %5775
  br label %5777

5777:                                             ; preds = %5776
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #9
  %5778 = call ptr @__errno_location() #10
  %5779 = load i32, ptr %5778, align 4, !tbaa !5
  store i32 %5779, ptr %135, align 4, !tbaa !5
  %5780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5781 = call i32 @s2n_print_stacktrace(ptr noundef %5780)
  %5782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5783 = trunc i8 %5782 to i1
  br i1 %5783, label %5784, label %5806

5784:                                             ; preds = %5777
  %5785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5786 = call i32 @fileno(ptr noundef %5785) #9
  %5787 = call i32 @isatty(i32 noundef %5786) #9
  %5788 = icmp ne i32 %5787, 0
  br i1 %5788, label %5789, label %5806

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

5806:                                             ; preds = %5784, %5777
  %5807 = load i32, ptr %135, align 4, !tbaa !5
  %5808 = call ptr @__errno_location() #10
  store i32 %5807, ptr %5808, align 4, !tbaa !5
  %5809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5810 = load i32, ptr @test_count, align 4, !tbaa !5
  %5811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5812 = load i32, ptr %5811, align 4, !tbaa !5
  %5813 = call ptr @s2n_strerror(i32 noundef %5812, ptr noundef @.str.4)
  %5814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5815 = load i32, ptr %5814, align 4, !tbaa !5
  %5816 = call ptr @s2n_strerror_debug(i32 noundef %5815, ptr noundef @.str.4)
  %5817 = call ptr @__errno_location() #10
  %5818 = load i32, ptr %5817, align 4, !tbaa !5
  %5819 = call ptr @strerror(i32 noundef %5818) #9
  %5820 = call ptr @__errno_location() #10
  %5821 = load i32, ptr %5820, align 4, !tbaa !5
  %5822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5809, ptr noundef @.str.5, i32 noundef %5810, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 312, ptr noundef %5813, ptr noundef %5816, ptr noundef %5819, i32 noundef %5821) #9
  br label %5823

5823:                                             ; preds = %5806, %5789
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #9
  br label %5824

5824:                                             ; preds = %5823
  br label %5825

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

5826:                                             ; No predecessors!
  br label %5827

5827:                                             ; preds = %5826
  br label %5828

5828:                                             ; preds = %5827, %5763
  br label %5829

5829:                                             ; preds = %5828
  br label %5830

5830:                                             ; preds = %5829
  br label %5831

5831:                                             ; preds = %5830
  %5832 = load i32, ptr @test_count, align 4, !tbaa !5
  %5833 = add nsw i32 %5832, 1
  store i32 %5833, ptr @test_count, align 4, !tbaa !5
  %5834 = load ptr, ptr %126, align 8, !tbaa !9
  %5835 = load i32, ptr %5834, align 8
  %5836 = lshr i32 %5835, 6
  %5837 = and i32 %5836, 1
  %5838 = icmp ne i32 %5837, 0
  br i1 %5838, label %5892, label %5839

5839:                                             ; preds = %5831
  br label %5840

5840:                                             ; preds = %5839
  br label %5841

5841:                                             ; preds = %5840
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #9
  %5842 = call ptr @__errno_location() #10
  %5843 = load i32, ptr %5842, align 4, !tbaa !5
  store i32 %5843, ptr %136, align 4, !tbaa !5
  %5844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5845 = call i32 @s2n_print_stacktrace(ptr noundef %5844)
  %5846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5847 = trunc i8 %5846 to i1
  br i1 %5847, label %5848, label %5870

5848:                                             ; preds = %5841
  %5849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5850 = call i32 @fileno(ptr noundef %5849) #9
  %5851 = call i32 @isatty(i32 noundef %5850) #9
  %5852 = icmp ne i32 %5851, 0
  br i1 %5852, label %5853, label %5870

5853:                                             ; preds = %5848
  %5854 = load i32, ptr %136, align 4, !tbaa !5
  %5855 = call ptr @__errno_location() #10
  store i32 %5854, ptr %5855, align 4, !tbaa !5
  %5856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5857 = load i32, ptr @test_count, align 4, !tbaa !5
  %5858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5859 = load i32, ptr %5858, align 4, !tbaa !5
  %5860 = call ptr @s2n_strerror(i32 noundef %5859, ptr noundef @.str.4)
  %5861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5862 = load i32, ptr %5861, align 4, !tbaa !5
  %5863 = call ptr @s2n_strerror_debug(i32 noundef %5862, ptr noundef @.str.4)
  %5864 = call ptr @__errno_location() #10
  %5865 = load i32, ptr %5864, align 4, !tbaa !5
  %5866 = call ptr @strerror(i32 noundef %5865) #9
  %5867 = call ptr @__errno_location() #10
  %5868 = load i32, ptr %5867, align 4, !tbaa !5
  %5869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5856, ptr noundef @.str.2, i32 noundef %5857, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 313, ptr noundef %5860, ptr noundef %5863, ptr noundef %5866, i32 noundef %5868) #9
  br label %5887

5870:                                             ; preds = %5848, %5841
  %5871 = load i32, ptr %136, align 4, !tbaa !5
  %5872 = call ptr @__errno_location() #10
  store i32 %5871, ptr %5872, align 4, !tbaa !5
  %5873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5874 = load i32, ptr @test_count, align 4, !tbaa !5
  %5875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5876 = load i32, ptr %5875, align 4, !tbaa !5
  %5877 = call ptr @s2n_strerror(i32 noundef %5876, ptr noundef @.str.4)
  %5878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5879 = load i32, ptr %5878, align 4, !tbaa !5
  %5880 = call ptr @s2n_strerror_debug(i32 noundef %5879, ptr noundef @.str.4)
  %5881 = call ptr @__errno_location() #10
  %5882 = load i32, ptr %5881, align 4, !tbaa !5
  %5883 = call ptr @strerror(i32 noundef %5882) #9
  %5884 = call ptr @__errno_location() #10
  %5885 = load i32, ptr %5884, align 4, !tbaa !5
  %5886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5873, ptr noundef @.str.5, i32 noundef %5874, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 313, ptr noundef %5877, ptr noundef %5880, ptr noundef %5883, i32 noundef %5885) #9
  br label %5887

5887:                                             ; preds = %5870, %5853
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #9
  br label %5888

5888:                                             ; preds = %5887
  br label %5889

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

5890:                                             ; No predecessors!
  br label %5891

5891:                                             ; preds = %5890
  br label %5892

5892:                                             ; preds = %5891, %5831
  br label %5893

5893:                                             ; preds = %5892
  br label %5894

5894:                                             ; preds = %5893
  br label %5895

5895:                                             ; preds = %5894
  %5896 = load i32, ptr @test_count, align 4, !tbaa !5
  %5897 = add nsw i32 %5896, 1
  store i32 %5897, ptr @test_count, align 4, !tbaa !5
  %5898 = load ptr, ptr %126, align 8, !tbaa !9
  %5899 = call i32 @s2n_connection_free(ptr noundef %5898)
  %5900 = icmp eq i32 %5899, -1
  br i1 %5900, label %5901, label %5954

5901:                                             ; preds = %5895
  br label %5902

5902:                                             ; preds = %5901
  br label %5903

5903:                                             ; preds = %5902
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #9
  %5904 = call ptr @__errno_location() #10
  %5905 = load i32, ptr %5904, align 4, !tbaa !5
  store i32 %5905, ptr %137, align 4, !tbaa !5
  %5906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5907 = call i32 @s2n_print_stacktrace(ptr noundef %5906)
  %5908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5909 = trunc i8 %5908 to i1
  br i1 %5909, label %5910, label %5932

5910:                                             ; preds = %5903
  %5911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5912 = call i32 @fileno(ptr noundef %5911) #9
  %5913 = call i32 @isatty(i32 noundef %5912) #9
  %5914 = icmp ne i32 %5913, 0
  br i1 %5914, label %5915, label %5932

5915:                                             ; preds = %5910
  %5916 = load i32, ptr %137, align 4, !tbaa !5
  %5917 = call ptr @__errno_location() #10
  store i32 %5916, ptr %5917, align 4, !tbaa !5
  %5918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5919 = load i32, ptr @test_count, align 4, !tbaa !5
  %5920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5921 = load i32, ptr %5920, align 4, !tbaa !5
  %5922 = call ptr @s2n_strerror(i32 noundef %5921, ptr noundef @.str.4)
  %5923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5924 = load i32, ptr %5923, align 4, !tbaa !5
  %5925 = call ptr @s2n_strerror_debug(i32 noundef %5924, ptr noundef @.str.4)
  %5926 = call ptr @__errno_location() #10
  %5927 = load i32, ptr %5926, align 4, !tbaa !5
  %5928 = call ptr @strerror(i32 noundef %5927) #9
  %5929 = call ptr @__errno_location() #10
  %5930 = load i32, ptr %5929, align 4, !tbaa !5
  %5931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5918, ptr noundef @.str.2, i32 noundef %5919, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 315, ptr noundef %5922, ptr noundef %5925, ptr noundef %5928, i32 noundef %5930) #9
  br label %5949

5932:                                             ; preds = %5910, %5903
  %5933 = load i32, ptr %137, align 4, !tbaa !5
  %5934 = call ptr @__errno_location() #10
  store i32 %5933, ptr %5934, align 4, !tbaa !5
  %5935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5936 = load i32, ptr @test_count, align 4, !tbaa !5
  %5937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5938 = load i32, ptr %5937, align 4, !tbaa !5
  %5939 = call ptr @s2n_strerror(i32 noundef %5938, ptr noundef @.str.4)
  %5940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5941 = load i32, ptr %5940, align 4, !tbaa !5
  %5942 = call ptr @s2n_strerror_debug(i32 noundef %5941, ptr noundef @.str.4)
  %5943 = call ptr @__errno_location() #10
  %5944 = load i32, ptr %5943, align 4, !tbaa !5
  %5945 = call ptr @strerror(i32 noundef %5944) #9
  %5946 = call ptr @__errno_location() #10
  %5947 = load i32, ptr %5946, align 4, !tbaa !5
  %5948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5935, ptr noundef @.str.5, i32 noundef %5936, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 315, ptr noundef %5939, ptr noundef %5942, ptr noundef %5945, i32 noundef %5947) #9
  br label %5949

5949:                                             ; preds = %5932, %5915
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #9
  br label %5950

5950:                                             ; preds = %5949
  br label %5951

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

5952:                                             ; No predecessors!
  br label %5953

5953:                                             ; preds = %5952
  br label %5954

5954:                                             ; preds = %5953, %5895
  br label %5955

5955:                                             ; preds = %5954
  br label %5956

5956:                                             ; preds = %5955
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #9
  call void @llvm.lifetime.end.p0(i64 704, ptr %125) #9
  call void @llvm.lifetime.start.p0(i64 704, ptr %138) #9
  call void @llvm.memset.p0.i64(ptr align 8 %138, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #9
  store ptr null, ptr %139, align 8, !tbaa !9
  br label %5957

5957:                                             ; preds = %5956
  %5958 = load i32, ptr @test_count, align 4, !tbaa !5
  %5959 = add nsw i32 %5958, 1
  store i32 %5959, ptr @test_count, align 4, !tbaa !5
  %5960 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5960, ptr %139, align 8, !tbaa !9
  %5961 = icmp eq ptr %5960, null
  br i1 %5961, label %5962, label %6015

5962:                                             ; preds = %5957
  br label %5963

5963:                                             ; preds = %5962
  br label %5964

5964:                                             ; preds = %5963
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #9
  %5965 = call ptr @__errno_location() #10
  %5966 = load i32, ptr %5965, align 4, !tbaa !5
  store i32 %5966, ptr %140, align 4, !tbaa !5
  %5967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5968 = call i32 @s2n_print_stacktrace(ptr noundef %5967)
  %5969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5970 = trunc i8 %5969 to i1
  br i1 %5970, label %5971, label %5993

5971:                                             ; preds = %5964
  %5972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5973 = call i32 @fileno(ptr noundef %5972) #9
  %5974 = call i32 @isatty(i32 noundef %5973) #9
  %5975 = icmp ne i32 %5974, 0
  br i1 %5975, label %5976, label %5993

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

5993:                                             ; preds = %5971, %5964
  %5994 = load i32, ptr %140, align 4, !tbaa !5
  %5995 = call ptr @__errno_location() #10
  store i32 %5994, ptr %5995, align 4, !tbaa !5
  %5996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5997 = load i32, ptr @test_count, align 4, !tbaa !5
  %5998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5999 = load i32, ptr %5998, align 4, !tbaa !5
  %6000 = call ptr @s2n_strerror(i32 noundef %5999, ptr noundef @.str.4)
  %6001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6002 = load i32, ptr %6001, align 4, !tbaa !5
  %6003 = call ptr @s2n_strerror_debug(i32 noundef %6002, ptr noundef @.str.4)
  %6004 = call ptr @__errno_location() #10
  %6005 = load i32, ptr %6004, align 4, !tbaa !5
  %6006 = call ptr @strerror(i32 noundef %6005) #9
  %6007 = call ptr @__errno_location() #10
  %6008 = load i32, ptr %6007, align 4, !tbaa !5
  %6009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5996, ptr noundef @.str.5, i32 noundef %5997, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 323, ptr noundef %6000, ptr noundef %6003, ptr noundef %6006, i32 noundef %6008) #9
  br label %6010

6010:                                             ; preds = %5993, %5976
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #9
  br label %6011

6011:                                             ; preds = %6010
  br label %6012

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

6013:                                             ; No predecessors!
  br label %6014

6014:                                             ; preds = %6013
  br label %6015

6015:                                             ; preds = %6014, %5957
  br label %6016

6016:                                             ; preds = %6015
  br label %6017

6017:                                             ; preds = %6016
  br label %6018

6018:                                             ; preds = %6017
  %6019 = load i32, ptr @test_count, align 4, !tbaa !5
  %6020 = add nsw i32 %6019, 1
  store i32 %6020, ptr @test_count, align 4, !tbaa !5
  %6021 = load ptr, ptr %139, align 8, !tbaa !9
  %6022 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %6021)
  %6023 = icmp eq i32 %6022, -1
  br i1 %6023, label %6024, label %6077

6024:                                             ; preds = %6018
  br label %6025

6025:                                             ; preds = %6024
  br label %6026

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

6033:                                             ; preds = %6026
  %6034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6035 = call i32 @fileno(ptr noundef %6034) #9
  %6036 = call i32 @isatty(i32 noundef %6035) #9
  %6037 = icmp ne i32 %6036, 0
  br i1 %6037, label %6038, label %6055

6038:                                             ; preds = %6033
  %6039 = load i32, ptr %141, align 4, !tbaa !5
  %6040 = call ptr @__errno_location() #10
  store i32 %6039, ptr %6040, align 4, !tbaa !5
  %6041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6042 = load i32, ptr @test_count, align 4, !tbaa !5
  %6043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6044 = load i32, ptr %6043, align 4, !tbaa !5
  %6045 = call ptr @s2n_strerror(i32 noundef %6044, ptr noundef @.str.4)
  %6046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6047 = load i32, ptr %6046, align 4, !tbaa !5
  %6048 = call ptr @s2n_strerror_debug(i32 noundef %6047, ptr noundef @.str.4)
  %6049 = call ptr @__errno_location() #10
  %6050 = load i32, ptr %6049, align 4, !tbaa !5
  %6051 = call ptr @strerror(i32 noundef %6050) #9
  %6052 = call ptr @__errno_location() #10
  %6053 = load i32, ptr %6052, align 4, !tbaa !5
  %6054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6041, ptr noundef @.str.2, i32 noundef %6042, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 324, ptr noundef %6045, ptr noundef %6048, ptr noundef %6051, i32 noundef %6053) #9
  br label %6072

6055:                                             ; preds = %6033, %6026
  %6056 = load i32, ptr %141, align 4, !tbaa !5
  %6057 = call ptr @__errno_location() #10
  store i32 %6056, ptr %6057, align 4, !tbaa !5
  %6058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6059 = load i32, ptr @test_count, align 4, !tbaa !5
  %6060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6061 = load i32, ptr %6060, align 4, !tbaa !5
  %6062 = call ptr @s2n_strerror(i32 noundef %6061, ptr noundef @.str.4)
  %6063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6064 = load i32, ptr %6063, align 4, !tbaa !5
  %6065 = call ptr @s2n_strerror_debug(i32 noundef %6064, ptr noundef @.str.4)
  %6066 = call ptr @__errno_location() #10
  %6067 = load i32, ptr %6066, align 4, !tbaa !5
  %6068 = call ptr @strerror(i32 noundef %6067) #9
  %6069 = call ptr @__errno_location() #10
  %6070 = load i32, ptr %6069, align 4, !tbaa !5
  %6071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6058, ptr noundef @.str.5, i32 noundef %6059, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 324, ptr noundef %6062, ptr noundef %6065, ptr noundef %6068, i32 noundef %6070) #9
  br label %6072

6072:                                             ; preds = %6055, %6038
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #9
  br label %6073

6073:                                             ; preds = %6072
  br label %6074

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

6075:                                             ; No predecessors!
  br label %6076

6076:                                             ; preds = %6075
  br label %6077

6077:                                             ; preds = %6076, %6018
  br label %6078

6078:                                             ; preds = %6077
  br label %6079

6079:                                             ; preds = %6078
  br label %6080

6080:                                             ; preds = %6079
  call void @llvm.lifetime.start.p0(i64 1, ptr %142) #9
  store i8 0, ptr %142, align 1, !tbaa !15
  br label %6081

6081:                                             ; preds = %6080
  %6082 = load i32, ptr @test_count, align 4, !tbaa !5
  %6083 = add nsw i32 %6082, 1
  store i32 %6083, ptr @test_count, align 4, !tbaa !5
  %6084 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %88, i32 0, i32 1
  %6085 = load i16, ptr %6084, align 8, !tbaa !17
  %6086 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %6085, ptr noundef %142)
  %6087 = icmp eq i32 %6086, -1
  br i1 %6087, label %6088, label %6141

6088:                                             ; preds = %6081
  br label %6089

6089:                                             ; preds = %6088
  br label %6090

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

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

6102:                                             ; preds = %6097
  %6103 = load i32, ptr %143, align 4, !tbaa !5
  %6104 = call ptr @__errno_location() #10
  store i32 %6103, ptr %6104, align 4, !tbaa !5
  %6105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6106 = load i32, ptr @test_count, align 4, !tbaa !5
  %6107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6108 = load i32, ptr %6107, align 4, !tbaa !5
  %6109 = call ptr @s2n_strerror(i32 noundef %6108, ptr noundef @.str.4)
  %6110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6111 = load i32, ptr %6110, align 4, !tbaa !5
  %6112 = call ptr @s2n_strerror_debug(i32 noundef %6111, ptr noundef @.str.4)
  %6113 = call ptr @__errno_location() #10
  %6114 = load i32, ptr %6113, align 4, !tbaa !5
  %6115 = call ptr @strerror(i32 noundef %6114) #9
  %6116 = call ptr @__errno_location() #10
  %6117 = load i32, ptr %6116, align 4, !tbaa !5
  %6118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6105, ptr noundef @.str.2, i32 noundef %6106, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 326, ptr noundef %6109, ptr noundef %6112, ptr noundef %6115, i32 noundef %6117) #9
  br label %6136

6119:                                             ; preds = %6097, %6090
  %6120 = load i32, ptr %143, align 4, !tbaa !5
  %6121 = call ptr @__errno_location() #10
  store i32 %6120, ptr %6121, align 4, !tbaa !5
  %6122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6123 = load i32, ptr @test_count, align 4, !tbaa !5
  %6124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6125 = load i32, ptr %6124, align 4, !tbaa !5
  %6126 = call ptr @s2n_strerror(i32 noundef %6125, ptr noundef @.str.4)
  %6127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6128 = load i32, ptr %6127, align 4, !tbaa !5
  %6129 = call ptr @s2n_strerror_debug(i32 noundef %6128, ptr noundef @.str.4)
  %6130 = call ptr @__errno_location() #10
  %6131 = load i32, ptr %6130, align 4, !tbaa !5
  %6132 = call ptr @strerror(i32 noundef %6131) #9
  %6133 = call ptr @__errno_location() #10
  %6134 = load i32, ptr %6133, align 4, !tbaa !5
  %6135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6122, ptr noundef @.str.5, i32 noundef %6123, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 326, ptr noundef %6126, ptr noundef %6129, ptr noundef %6132, i32 noundef %6134) #9
  br label %6136

6136:                                             ; preds = %6119, %6102
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #9
  br label %6137

6137:                                             ; preds = %6136
  br label %6138

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

6139:                                             ; No predecessors!
  br label %6140

6140:                                             ; preds = %6139
  br label %6141

6141:                                             ; preds = %6140, %6081
  br label %6142

6142:                                             ; preds = %6141
  br label %6143

6143:                                             ; preds = %6142
  %6144 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %138, i32 0, i32 0
  %6145 = load i8, ptr %142, align 1, !tbaa !15
  %6146 = zext i8 %6145 to i64
  %6147 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %6144, i64 0, i64 %6146
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6147, ptr align 8 %88, i64 32, i1 false), !tbaa.struct !22
  call void @llvm.lifetime.end.p0(i64 1, ptr %142) #9
  br label %6148

6148:                                             ; preds = %6143
  br label %6149

6149:                                             ; preds = %6148
  %6150 = load ptr, ptr %139, align 8, !tbaa !9
  %6151 = load i32, ptr %6150, align 8
  %6152 = and i32 %6151, -65
  %6153 = or i32 %6152, 0
  store i32 %6153, ptr %6150, align 8
  br label %6154

6154:                                             ; preds = %6149
  %6155 = load i32, ptr @test_count, align 4, !tbaa !5
  %6156 = add nsw i32 %6155, 1
  store i32 %6156, ptr @test_count, align 4, !tbaa !5
  %6157 = load ptr, ptr %139, align 8, !tbaa !9
  %6158 = call i32 @s2n_extension_list_process(i32 noundef 9, ptr noundef %6157, ptr noundef %138)
  %6159 = icmp eq i32 %6158, -1
  br i1 %6159, label %6160, label %6213

6160:                                             ; preds = %6154
  br label %6161

6161:                                             ; preds = %6160
  br label %6162

6162:                                             ; preds = %6161
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #9
  %6163 = call ptr @__errno_location() #10
  %6164 = load i32, ptr %6163, align 4, !tbaa !5
  store i32 %6164, ptr %144, align 4, !tbaa !5
  %6165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6166 = call i32 @s2n_print_stacktrace(ptr noundef %6165)
  %6167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6168 = trunc i8 %6167 to i1
  br i1 %6168, label %6169, label %6191

6169:                                             ; preds = %6162
  %6170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6171 = call i32 @fileno(ptr noundef %6170) #9
  %6172 = call i32 @isatty(i32 noundef %6171) #9
  %6173 = icmp ne i32 %6172, 0
  br i1 %6173, label %6174, label %6191

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

6191:                                             ; preds = %6169, %6162
  %6192 = load i32, ptr %144, align 4, !tbaa !5
  %6193 = call ptr @__errno_location() #10
  store i32 %6192, ptr %6193, align 4, !tbaa !5
  %6194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6195 = load i32, ptr @test_count, align 4, !tbaa !5
  %6196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6197 = load i32, ptr %6196, align 4, !tbaa !5
  %6198 = call ptr @s2n_strerror(i32 noundef %6197, ptr noundef @.str.4)
  %6199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6200 = load i32, ptr %6199, align 4, !tbaa !5
  %6201 = call ptr @s2n_strerror_debug(i32 noundef %6200, ptr noundef @.str.4)
  %6202 = call ptr @__errno_location() #10
  %6203 = load i32, ptr %6202, align 4, !tbaa !5
  %6204 = call ptr @strerror(i32 noundef %6203) #9
  %6205 = call ptr @__errno_location() #10
  %6206 = load i32, ptr %6205, align 4, !tbaa !5
  %6207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6194, ptr noundef @.str.5, i32 noundef %6195, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 329, ptr noundef %6198, ptr noundef %6201, ptr noundef %6204, i32 noundef %6206) #9
  br label %6208

6208:                                             ; preds = %6191, %6174
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #9
  br label %6209

6209:                                             ; preds = %6208
  br label %6210

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

6211:                                             ; No predecessors!
  br label %6212

6212:                                             ; preds = %6211
  br label %6213

6213:                                             ; preds = %6212, %6154
  br label %6214

6214:                                             ; preds = %6213
  br label %6215

6215:                                             ; preds = %6214
  br label %6216

6216:                                             ; preds = %6215
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #9
  store i64 0, ptr %145, align 8, !tbaa !25
  br label %6217

6217:                                             ; preds = %6289, %6216
  %6218 = load i64, ptr %145, align 8, !tbaa !25
  %6219 = icmp ult i64 %6218, 21
  br i1 %6219, label %6221, label %6220

6220:                                             ; preds = %6217
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #9
  br label %6292

6221:                                             ; preds = %6217
  br label %6222

6222:                                             ; preds = %6221
  %6223 = load i32, ptr @test_count, align 4, !tbaa !5
  %6224 = add nsw i32 %6223, 1
  store i32 %6224, ptr @test_count, align 4, !tbaa !5
  %6225 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %138, i32 0, i32 0
  %6226 = load i64, ptr %145, align 8, !tbaa !25
  %6227 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %6225, i64 0, i64 %6226
  %6228 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %6227, i32 0, i32 3
  %6229 = load i8, ptr %6228, align 4
  %6230 = and i8 %6229, 1
  %6231 = zext i8 %6230 to i32
  %6232 = icmp ne i32 %6231, 0
  br i1 %6232, label %6233, label %6286

6233:                                             ; preds = %6222
  br label %6234

6234:                                             ; preds = %6233
  br label %6235

6235:                                             ; preds = %6234
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #9
  %6236 = call ptr @__errno_location() #10
  %6237 = load i32, ptr %6236, align 4, !tbaa !5
  store i32 %6237, ptr %146, align 4, !tbaa !5
  %6238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6239 = call i32 @s2n_print_stacktrace(ptr noundef %6238)
  %6240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6241 = trunc i8 %6240 to i1
  br i1 %6241, label %6242, label %6264

6242:                                             ; preds = %6235
  %6243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6244 = call i32 @fileno(ptr noundef %6243) #9
  %6245 = call i32 @isatty(i32 noundef %6244) #9
  %6246 = icmp ne i32 %6245, 0
  br i1 %6246, label %6247, label %6264

6247:                                             ; preds = %6242
  %6248 = load i32, ptr %146, align 4, !tbaa !5
  %6249 = call ptr @__errno_location() #10
  store i32 %6248, ptr %6249, align 4, !tbaa !5
  %6250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6251 = load i32, ptr @test_count, align 4, !tbaa !5
  %6252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6253 = load i32, ptr %6252, align 4, !tbaa !5
  %6254 = call ptr @s2n_strerror(i32 noundef %6253, ptr noundef @.str.4)
  %6255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6256 = load i32, ptr %6255, align 4, !tbaa !5
  %6257 = call ptr @s2n_strerror_debug(i32 noundef %6256, ptr noundef @.str.4)
  %6258 = call ptr @__errno_location() #10
  %6259 = load i32, ptr %6258, align 4, !tbaa !5
  %6260 = call ptr @strerror(i32 noundef %6259) #9
  %6261 = call ptr @__errno_location() #10
  %6262 = load i32, ptr %6261, align 4, !tbaa !5
  %6263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6250, ptr noundef @.str.2, i32 noundef %6251, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 331, ptr noundef %6254, ptr noundef %6257, ptr noundef %6260, i32 noundef %6262) #9
  br label %6281

6264:                                             ; preds = %6242, %6235
  %6265 = load i32, ptr %146, align 4, !tbaa !5
  %6266 = call ptr @__errno_location() #10
  store i32 %6265, ptr %6266, align 4, !tbaa !5
  %6267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6268 = load i32, ptr @test_count, align 4, !tbaa !5
  %6269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6270 = load i32, ptr %6269, align 4, !tbaa !5
  %6271 = call ptr @s2n_strerror(i32 noundef %6270, ptr noundef @.str.4)
  %6272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6273 = load i32, ptr %6272, align 4, !tbaa !5
  %6274 = call ptr @s2n_strerror_debug(i32 noundef %6273, ptr noundef @.str.4)
  %6275 = call ptr @__errno_location() #10
  %6276 = load i32, ptr %6275, align 4, !tbaa !5
  %6277 = call ptr @strerror(i32 noundef %6276) #9
  %6278 = call ptr @__errno_location() #10
  %6279 = load i32, ptr %6278, align 4, !tbaa !5
  %6280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6267, ptr noundef @.str.5, i32 noundef %6268, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 331, ptr noundef %6271, ptr noundef %6274, ptr noundef %6277, i32 noundef %6279) #9
  br label %6281

6281:                                             ; preds = %6264, %6247
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #9
  br label %6282

6282:                                             ; preds = %6281
  br label %6283

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

6284:                                             ; No predecessors!
  br label %6285

6285:                                             ; preds = %6284
  br label %6286

6286:                                             ; preds = %6285, %6222
  br label %6287

6287:                                             ; preds = %6286
  br label %6288

6288:                                             ; preds = %6287
  br label %6289

6289:                                             ; preds = %6288
  %6290 = load i64, ptr %145, align 8, !tbaa !25
  %6291 = add i64 %6290, 1
  store i64 %6291, ptr %145, align 8, !tbaa !25
  br label %6217, !llvm.loop !33

6292:                                             ; preds = %6220
  br label %6293

6293:                                             ; preds = %6292
  br label %6294

6294:                                             ; preds = %6293
  br label %6295

6295:                                             ; preds = %6294
  %6296 = load i32, ptr @test_count, align 4, !tbaa !5
  %6297 = add nsw i32 %6296, 1
  store i32 %6297, ptr @test_count, align 4, !tbaa !5
  %6298 = load ptr, ptr %139, align 8, !tbaa !9
  %6299 = load i32, ptr %6298, align 8
  %6300 = lshr i32 %6299, 6
  %6301 = and i32 %6300, 1
  %6302 = icmp ne i32 %6301, 0
  br i1 %6302, label %6303, label %6356

6303:                                             ; preds = %6295
  br label %6304

6304:                                             ; preds = %6303
  br label %6305

6305:                                             ; preds = %6304
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #9
  %6306 = call ptr @__errno_location() #10
  %6307 = load i32, ptr %6306, align 4, !tbaa !5
  store i32 %6307, ptr %147, align 4, !tbaa !5
  %6308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6309 = call i32 @s2n_print_stacktrace(ptr noundef %6308)
  %6310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6311 = trunc i8 %6310 to i1
  br i1 %6311, label %6312, label %6334

6312:                                             ; preds = %6305
  %6313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6314 = call i32 @fileno(ptr noundef %6313) #9
  %6315 = call i32 @isatty(i32 noundef %6314) #9
  %6316 = icmp ne i32 %6315, 0
  br i1 %6316, label %6317, label %6334

6317:                                             ; preds = %6312
  %6318 = load i32, ptr %147, align 4, !tbaa !5
  %6319 = call ptr @__errno_location() #10
  store i32 %6318, ptr %6319, align 4, !tbaa !5
  %6320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6321 = load i32, ptr @test_count, align 4, !tbaa !5
  %6322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6323 = load i32, ptr %6322, align 4, !tbaa !5
  %6324 = call ptr @s2n_strerror(i32 noundef %6323, ptr noundef @.str.4)
  %6325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6326 = load i32, ptr %6325, align 4, !tbaa !5
  %6327 = call ptr @s2n_strerror_debug(i32 noundef %6326, ptr noundef @.str.4)
  %6328 = call ptr @__errno_location() #10
  %6329 = load i32, ptr %6328, align 4, !tbaa !5
  %6330 = call ptr @strerror(i32 noundef %6329) #9
  %6331 = call ptr @__errno_location() #10
  %6332 = load i32, ptr %6331, align 4, !tbaa !5
  %6333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6320, ptr noundef @.str.2, i32 noundef %6321, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 332, ptr noundef %6324, ptr noundef %6327, ptr noundef %6330, i32 noundef %6332) #9
  br label %6351

6334:                                             ; preds = %6312, %6305
  %6335 = load i32, ptr %147, align 4, !tbaa !5
  %6336 = call ptr @__errno_location() #10
  store i32 %6335, ptr %6336, align 4, !tbaa !5
  %6337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6338 = load i32, ptr @test_count, align 4, !tbaa !5
  %6339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6340 = load i32, ptr %6339, align 4, !tbaa !5
  %6341 = call ptr @s2n_strerror(i32 noundef %6340, ptr noundef @.str.4)
  %6342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6343 = load i32, ptr %6342, align 4, !tbaa !5
  %6344 = call ptr @s2n_strerror_debug(i32 noundef %6343, ptr noundef @.str.4)
  %6345 = call ptr @__errno_location() #10
  %6346 = load i32, ptr %6345, align 4, !tbaa !5
  %6347 = call ptr @strerror(i32 noundef %6346) #9
  %6348 = call ptr @__errno_location() #10
  %6349 = load i32, ptr %6348, align 4, !tbaa !5
  %6350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6337, ptr noundef @.str.5, i32 noundef %6338, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 332, ptr noundef %6341, ptr noundef %6344, ptr noundef %6347, i32 noundef %6349) #9
  br label %6351

6351:                                             ; preds = %6334, %6317
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #9
  br label %6352

6352:                                             ; preds = %6351
  br label %6353

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

6354:                                             ; No predecessors!
  br label %6355

6355:                                             ; preds = %6354
  br label %6356

6356:                                             ; preds = %6355, %6295
  br label %6357

6357:                                             ; preds = %6356
  br label %6358

6358:                                             ; preds = %6357
  br label %6359

6359:                                             ; preds = %6358
  %6360 = load i32, ptr @test_count, align 4, !tbaa !5
  %6361 = add nsw i32 %6360, 1
  store i32 %6361, ptr @test_count, align 4, !tbaa !5
  %6362 = load ptr, ptr %139, align 8, !tbaa !9
  %6363 = call i32 @s2n_connection_free(ptr noundef %6362)
  %6364 = icmp eq i32 %6363, -1
  br i1 %6364, label %6365, label %6418

6365:                                             ; preds = %6359
  br label %6366

6366:                                             ; preds = %6365
  br label %6367

6367:                                             ; preds = %6366
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #9
  %6368 = call ptr @__errno_location() #10
  %6369 = load i32, ptr %6368, align 4, !tbaa !5
  store i32 %6369, ptr %148, align 4, !tbaa !5
  %6370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6371 = call i32 @s2n_print_stacktrace(ptr noundef %6370)
  %6372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6373 = trunc i8 %6372 to i1
  br i1 %6373, label %6374, label %6396

6374:                                             ; preds = %6367
  %6375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6376 = call i32 @fileno(ptr noundef %6375) #9
  %6377 = call i32 @isatty(i32 noundef %6376) #9
  %6378 = icmp ne i32 %6377, 0
  br i1 %6378, label %6379, label %6396

6379:                                             ; preds = %6374
  %6380 = load i32, ptr %148, align 4, !tbaa !5
  %6381 = call ptr @__errno_location() #10
  store i32 %6380, ptr %6381, align 4, !tbaa !5
  %6382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6383 = load i32, ptr @test_count, align 4, !tbaa !5
  %6384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6385 = load i32, ptr %6384, align 4, !tbaa !5
  %6386 = call ptr @s2n_strerror(i32 noundef %6385, ptr noundef @.str.4)
  %6387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6388 = load i32, ptr %6387, align 4, !tbaa !5
  %6389 = call ptr @s2n_strerror_debug(i32 noundef %6388, ptr noundef @.str.4)
  %6390 = call ptr @__errno_location() #10
  %6391 = load i32, ptr %6390, align 4, !tbaa !5
  %6392 = call ptr @strerror(i32 noundef %6391) #9
  %6393 = call ptr @__errno_location() #10
  %6394 = load i32, ptr %6393, align 4, !tbaa !5
  %6395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6382, ptr noundef @.str.2, i32 noundef %6383, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 334, ptr noundef %6386, ptr noundef %6389, ptr noundef %6392, i32 noundef %6394) #9
  br label %6413

6396:                                             ; preds = %6374, %6367
  %6397 = load i32, ptr %148, align 4, !tbaa !5
  %6398 = call ptr @__errno_location() #10
  store i32 %6397, ptr %6398, align 4, !tbaa !5
  %6399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6400 = load i32, ptr @test_count, align 4, !tbaa !5
  %6401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6402 = load i32, ptr %6401, align 4, !tbaa !5
  %6403 = call ptr @s2n_strerror(i32 noundef %6402, ptr noundef @.str.4)
  %6404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6405 = load i32, ptr %6404, align 4, !tbaa !5
  %6406 = call ptr @s2n_strerror_debug(i32 noundef %6405, ptr noundef @.str.4)
  %6407 = call ptr @__errno_location() #10
  %6408 = load i32, ptr %6407, align 4, !tbaa !5
  %6409 = call ptr @strerror(i32 noundef %6408) #9
  %6410 = call ptr @__errno_location() #10
  %6411 = load i32, ptr %6410, align 4, !tbaa !5
  %6412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6399, ptr noundef @.str.5, i32 noundef %6400, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 334, ptr noundef %6403, ptr noundef %6406, ptr noundef %6409, i32 noundef %6411) #9
  br label %6413

6413:                                             ; preds = %6396, %6379
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #9
  br label %6414

6414:                                             ; preds = %6413
  br label %6415

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

6416:                                             ; No predecessors!
  br label %6417

6417:                                             ; preds = %6416
  br label %6418

6418:                                             ; preds = %6417, %6359
  br label %6419

6419:                                             ; preds = %6418
  br label %6420

6420:                                             ; preds = %6419
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #9
  call void @llvm.lifetime.end.p0(i64 704, ptr %138) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #9
  %6421 = call i32 @s2n_stuffer_free(ptr noundef %90)
  call void @llvm.lifetime.end.p0(i64 40, ptr %90) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #9
  br label %6422

6422:                                             ; preds = %6420
  br label %6423

6423:                                             ; preds = %6422
  %6424 = call i32 @s2n_cleanup()
  %6425 = icmp eq i32 %6424, -1
  br i1 %6425, label %6426, label %6477

6426:                                             ; preds = %6423
  br label %6427

6427:                                             ; preds = %6426
  br label %6428

6428:                                             ; preds = %6427
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #9
  %6429 = call ptr @__errno_location() #10
  %6430 = load i32, ptr %6429, align 4, !tbaa !5
  store i32 %6430, ptr %149, align 4, !tbaa !5
  %6431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6432 = call i32 @s2n_print_stacktrace(ptr noundef %6431)
  %6433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6434 = trunc i8 %6433 to i1
  br i1 %6434, label %6435, label %6457

6435:                                             ; preds = %6428
  %6436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6437 = call i32 @fileno(ptr noundef %6436) #9
  %6438 = call i32 @isatty(i32 noundef %6437) #9
  %6439 = icmp ne i32 %6438, 0
  br i1 %6439, label %6440, label %6457

6440:                                             ; preds = %6435
  %6441 = load i32, ptr %149, align 4, !tbaa !5
  %6442 = call ptr @__errno_location() #10
  store i32 %6441, ptr %6442, align 4, !tbaa !5
  %6443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6444 = load i32, ptr @test_count, align 4, !tbaa !5
  %6445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6446 = load i32, ptr %6445, align 4, !tbaa !5
  %6447 = call ptr @s2n_strerror(i32 noundef %6446, ptr noundef @.str.4)
  %6448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6449 = load i32, ptr %6448, align 4, !tbaa !5
  %6450 = call ptr @s2n_strerror_debug(i32 noundef %6449, ptr noundef @.str.4)
  %6451 = call ptr @__errno_location() #10
  %6452 = load i32, ptr %6451, align 4, !tbaa !5
  %6453 = call ptr @strerror(i32 noundef %6452) #9
  %6454 = call ptr @__errno_location() #10
  %6455 = load i32, ptr %6454, align 4, !tbaa !5
  %6456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6443, ptr noundef @.str.2, i32 noundef %6444, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 338, ptr noundef %6447, ptr noundef %6450, ptr noundef %6453, i32 noundef %6455) #9
  br label %6474

6457:                                             ; preds = %6435, %6428
  %6458 = load i32, ptr %149, align 4, !tbaa !5
  %6459 = call ptr @__errno_location() #10
  store i32 %6458, ptr %6459, align 4, !tbaa !5
  %6460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6461 = load i32, ptr @test_count, align 4, !tbaa !5
  %6462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6463 = load i32, ptr %6462, align 4, !tbaa !5
  %6464 = call ptr @s2n_strerror(i32 noundef %6463, ptr noundef @.str.4)
  %6465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6466 = load i32, ptr %6465, align 4, !tbaa !5
  %6467 = call ptr @s2n_strerror_debug(i32 noundef %6466, ptr noundef @.str.4)
  %6468 = call ptr @__errno_location() #10
  %6469 = load i32, ptr %6468, align 4, !tbaa !5
  %6470 = call ptr @strerror(i32 noundef %6469) #9
  %6471 = call ptr @__errno_location() #10
  %6472 = load i32, ptr %6471, align 4, !tbaa !5
  %6473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6460, ptr noundef @.str.5, i32 noundef %6461, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 338, ptr noundef %6464, ptr noundef %6467, ptr noundef %6470, i32 noundef %6472) #9
  br label %6474

6474:                                             ; preds = %6457, %6440
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #9
  br label %6475

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

6476:                                             ; No predecessors!
  br label %6477

6477:                                             ; preds = %6476, %6423
  br label %6478

6478:                                             ; preds = %6477
  br label %6479

6479:                                             ; preds = %6478
  br label %6480

6480:                                             ; preds = %6479
  %6481 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %6482 = icmp eq i32 %6481, -1
  br i1 %6482, label %6483, label %6534

6483:                                             ; preds = %6480
  br label %6484

6484:                                             ; preds = %6483
  br label %6485

6485:                                             ; preds = %6484
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #9
  %6486 = call ptr @__errno_location() #10
  %6487 = load i32, ptr %6486, align 4, !tbaa !5
  store i32 %6487, ptr %150, align 4, !tbaa !5
  %6488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6489 = call i32 @s2n_print_stacktrace(ptr noundef %6488)
  %6490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6491 = trunc i8 %6490 to i1
  br i1 %6491, label %6492, label %6514

6492:                                             ; preds = %6485
  %6493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6494 = call i32 @fileno(ptr noundef %6493) #9
  %6495 = call i32 @isatty(i32 noundef %6494) #9
  %6496 = icmp ne i32 %6495, 0
  br i1 %6496, label %6497, label %6514

6497:                                             ; preds = %6492
  %6498 = load i32, ptr %150, align 4, !tbaa !5
  %6499 = call ptr @__errno_location() #10
  store i32 %6498, ptr %6499, align 4, !tbaa !5
  %6500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6501 = load i32, ptr @test_count, align 4, !tbaa !5
  %6502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6503 = load i32, ptr %6502, align 4, !tbaa !5
  %6504 = call ptr @s2n_strerror(i32 noundef %6503, ptr noundef @.str.4)
  %6505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6506 = load i32, ptr %6505, align 4, !tbaa !5
  %6507 = call ptr @s2n_strerror_debug(i32 noundef %6506, ptr noundef @.str.4)
  %6508 = call ptr @__errno_location() #10
  %6509 = load i32, ptr %6508, align 4, !tbaa !5
  %6510 = call ptr @strerror(i32 noundef %6509) #9
  %6511 = call ptr @__errno_location() #10
  %6512 = load i32, ptr %6511, align 4, !tbaa !5
  %6513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6500, ptr noundef @.str.2, i32 noundef %6501, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 338, ptr noundef %6504, ptr noundef %6507, ptr noundef %6510, i32 noundef %6512) #9
  br label %6531

6514:                                             ; preds = %6492, %6485
  %6515 = load i32, ptr %150, align 4, !tbaa !5
  %6516 = call ptr @__errno_location() #10
  store i32 %6515, ptr %6516, align 4, !tbaa !5
  %6517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6518 = load i32, ptr @test_count, align 4, !tbaa !5
  %6519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6520 = load i32, ptr %6519, align 4, !tbaa !5
  %6521 = call ptr @s2n_strerror(i32 noundef %6520, ptr noundef @.str.4)
  %6522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6523 = load i32, ptr %6522, align 4, !tbaa !5
  %6524 = call ptr @s2n_strerror_debug(i32 noundef %6523, ptr noundef @.str.4)
  %6525 = call ptr @__errno_location() #10
  %6526 = load i32, ptr %6525, align 4, !tbaa !5
  %6527 = call ptr @strerror(i32 noundef %6526) #9
  %6528 = call ptr @__errno_location() #10
  %6529 = load i32, ptr %6528, align 4, !tbaa !5
  %6530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6517, ptr noundef @.str.5, i32 noundef %6518, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 338, ptr noundef %6521, ptr noundef %6524, ptr noundef %6527, i32 noundef %6529) #9
  br label %6531

6531:                                             ; preds = %6514, %6497
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #9
  br label %6532

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

6533:                                             ; No predecessors!
  br label %6534

6534:                                             ; preds = %6533, %6480
  br label %6535

6535:                                             ; preds = %6534
  %6536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6537 = trunc i8 %6536 to i1
  br i1 %6537, label %6538, label %6554

6538:                                             ; preds = %6535
  %6539 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6540 = call i32 @fileno(ptr noundef %6539) #9
  %6541 = call i32 @isatty(i32 noundef %6540) #9
  %6542 = icmp ne i32 %6541, 0
  br i1 %6542, label %6543, label %6554

6543:                                             ; preds = %6538
  %6544 = load i32, ptr @test_count, align 4, !tbaa !5
  %6545 = icmp ne i32 %6544, 0
  br i1 %6545, label %6546, label %6550

6546:                                             ; preds = %6543
  %6547 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6548 = load i32, ptr @test_count, align 4, !tbaa !5
  %6549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6547, ptr noundef @.str.52, i32 noundef %6548) #9
  br label %6553

6550:                                             ; preds = %6543
  %6551 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6551, ptr noundef @.str.53) #9
  br label %6553

6553:                                             ; preds = %6550, %6546
  br label %6565

6554:                                             ; preds = %6538, %6535
  %6555 = load i32, ptr @test_count, align 4, !tbaa !5
  %6556 = icmp ne i32 %6555, 0
  br i1 %6556, label %6557, label %6561

6557:                                             ; preds = %6554
  %6558 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6559 = load i32, ptr @test_count, align 4, !tbaa !5
  %6560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6558, ptr noundef @.str.54, i32 noundef %6559) #9
  br label %6564

6561:                                             ; preds = %6554
  %6562 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6562, ptr noundef @.str.55) #9
  br label %6564

6564:                                             ; preds = %6561, %6557
  br label %6565

6565:                                             ; preds = %6564, %6553
  store i32 0, ptr %1, align 4
  br label %6567

6566:                                             ; No predecessors!
  br label %6567

6567:                                             ; preds = %6566, %6565
  %6568 = load i32, ptr %1, align 4
  ret i32 %6568
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_enable_tls13_in_test(...) #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

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

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

declare i32 @s2n_extension_noop_if_missing(ptr noundef) #2

declare i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext, ptr noundef) #2

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

declare void @s2n_debug_info_reset() #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_extension_error_if_missing(ptr noundef) #2

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_setup_test_parsed_extension(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #0

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

declare i32 @s2n_connection_allow_all_response_extensions(ptr noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!7, !7, i64 0}
!16 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !15}
!17 = !{!18, !20, i64 24}
!18 = !{!"", !19, i64 0, !20, i64 24, !20, i64 26, !6, i64 28}
!19 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!20 = !{!"short", !7, i64 0}
!21 = !{!18, !20, i64 26}
!22 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !15, i64 24, i64 2, !23, i64 26, i64 2, !23, i64 28, i64 1, !15}
!23 = !{!20, !20, i64 0}
!24 = !{!19, !6, i64 8}
!25 = !{!26, !26, i64 0}
!26 = !{!"long", !7, i64 0}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.mustprogress"}
!29 = !{!30, !10, i64 32}
!30 = !{!"", !20, i64 0, !6, i64 2, !20, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!31 = distinct !{!31, !28}
!32 = !{!18, !6, i64 8}
!33 = distinct !{!33, !28}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%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 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 [90 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [55 x i8], align 1
@__const.main.extension_data = external hidden unnamed_addr constant [5 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [99 x i8], align 1
@__const.main.test_extension_type = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.10 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [90 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 [100 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [112 x i8], align 1
@received_flag = external hidden local_unnamed_addr global i8, align 1
@.str.18 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [73 x i8], align 1
@__const.main.test_required_extension_type = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.27 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [56 x i8], align 1
@__const.main.test_optional_extension_type = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.29 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_server_server_name_extension = external constant %struct.s2n_extension_type, align 8
@.str.32 = external hidden unnamed_addr constant [156 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [65 x i8], align 1
@s2n_server_max_fragment_length_extension = external constant %struct.s2n_extension_type, align 8
@.str.34 = external hidden unnamed_addr constant [158 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [39 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() local_unnamed_addr #0 {
  %1 = alloca [5 x i8], align 1
  %2 = alloca %struct.s2n_blob, align 8
  %3 = alloca %struct.s2n_extension_type, align 8
  %4 = alloca i8, align 1
  %5 = alloca %struct.s2n_connection, align 8
  %6 = alloca %struct.s2n_parsed_extensions_list, align 8
  %7 = alloca %struct.s2n_extension_type, align 8
  %8 = alloca %struct.s2n_parsed_extensions_list, align 8
  %.sroa.0221 = alloca %struct.s2n_blob, align 8
  %9 = alloca i8, align 1
  %10 = alloca %struct.s2n_parsed_extensions_list, align 8
  %.sroa.0202 = alloca %struct.s2n_blob, align 8
  %11 = alloca i8, align 1
  %12 = alloca %struct.s2n_parsed_extensions_list, align 8
  %.sroa.0172.sroa.5 = alloca [12 x i8], align 4
  %13 = alloca i8, align 1
  %14 = alloca %struct.s2n_parsed_extensions_list, align 8
  %.sroa.0 = alloca %struct.s2n_blob, align 8
  %15 = alloca %struct.s2n_parsed_extensions_list, align 8
  %16 = alloca %struct.s2n_extension_type, align 8
  %17 = alloca %struct.s2n_parsed_extensions_list, align 8
  %18 = alloca %struct.s2n_extension_type, align 8
  %19 = alloca %struct.s2n_parsed_extension, align 8
  %20 = alloca %struct.s2n_parsed_extension, align 8
  %21 = alloca %struct.s2n_stuffer, align 8
  %22 = alloca i8, align 1
  %23 = alloca i8, align 1
  %24 = alloca %struct.s2n_connection, align 8
  %25 = alloca %struct.s2n_parsed_extensions_list, align 8
  %26 = alloca %struct.s2n_parsed_extensions_list, align 8
  %27 = alloca i8, align 1
  %28 = alloca %struct.s2n_parsed_extensions_list, align 8
  %29 = alloca i8, align 1
  %30 = alloca i8, align 1
  %31 = alloca %struct.s2n_parsed_extensions_list, align 8
  %32 = alloca i8, align 1
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %33 = load ptr, ptr @stdout, align 8, !tbaa !9
  %34 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #10
  %35 = load ptr, ptr @stdout, align 8, !tbaa !9
  %36 = tail call i32 @fflush(ptr noundef %35)
  %37 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #10
  %38 = icmp eq i32 %37, -1
  br i1 %38, label %39, label %63

39:                                               ; preds = %0
  %40 = tail call ptr @__errno_location() #11
  %41 = load i32, ptr %40, align 4, !tbaa !5
  %42 = load ptr, ptr @stderr, align 8, !tbaa !9
  %43 = tail call i32 @s2n_print_stacktrace(ptr noundef %42) #10
  %44 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %45 = trunc nuw i8 %44 to i1
  br i1 %45, label %46, label %50

46:                                               ; preds = %39
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = tail call i32 @fileno(ptr noundef %47) #10
  %49 = tail call i32 @isatty(i32 noundef %48) #10
  %.not385 = icmp eq i32 %49, 0
  br i1 %.not385, label %50, label %51

50:                                               ; preds = %46, %39
  br label %51

51:                                               ; preds = %46, %50
  %.str.5.sink = phi ptr [ @.str.5, %50 ], [ @.str.2, %46 ]
  store i32 %41, ptr %40, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = load i32, ptr @test_count, align 4, !tbaa !5
  %54 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %55 = load i32, ptr %54, align 4, !tbaa !5
  %56 = tail call ptr @s2n_strerror(i32 noundef %55, ptr noundef nonnull @.str.4) #10
  %57 = load i32, ptr %54, align 4, !tbaa !5
  %58 = tail call ptr @s2n_strerror_debug(i32 noundef %57, ptr noundef nonnull @.str.4) #10
  %59 = load i32, ptr %40, align 4, !tbaa !5
  %60 = tail call ptr @strerror(i32 noundef %59) #10
  %61 = load i32, ptr %40, align 4, !tbaa !5
  %62 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %52, ptr noundef nonnull %.str.5.sink, i32 noundef %53, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %56, ptr noundef %58, ptr noundef %60, i32 noundef %61) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

63:                                               ; preds = %0
  %64 = load i32, ptr @test_count, align 4, !tbaa !5
  %65 = add nsw i32 %64, 1
  store i32 %65, ptr @test_count, align 4, !tbaa !5
  %66 = tail call i32 @s2n_enable_atexit() #10
  %67 = icmp eq i32 %66, -1
  br i1 %67, label %68, label %92

68:                                               ; preds = %63
  %69 = tail call ptr @__errno_location() #11
  %70 = load i32, ptr %69, align 4, !tbaa !5
  %71 = load ptr, ptr @stderr, align 8, !tbaa !9
  %72 = tail call i32 @s2n_print_stacktrace(ptr noundef %71) #10
  %73 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %74 = trunc nuw i8 %73 to i1
  br i1 %74, label %75, label %79

75:                                               ; preds = %68
  %76 = load ptr, ptr @stderr, align 8, !tbaa !9
  %77 = tail call i32 @fileno(ptr noundef %76) #10
  %78 = tail call i32 @isatty(i32 noundef %77) #10
  %.not384 = icmp eq i32 %78, 0
  br i1 %.not384, label %79, label %80

79:                                               ; preds = %75, %68
  br label %80

80:                                               ; preds = %75, %79
  %.str.5.sink417 = phi ptr [ @.str.5, %79 ], [ @.str.2, %75 ]
  store i32 %70, ptr %69, align 4, !tbaa !5
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = load i32, ptr @test_count, align 4, !tbaa !5
  %83 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %84 = load i32, ptr %83, align 4, !tbaa !5
  %85 = tail call ptr @s2n_strerror(i32 noundef %84, ptr noundef nonnull @.str.4) #10
  %86 = load i32, ptr %83, align 4, !tbaa !5
  %87 = tail call ptr @s2n_strerror_debug(i32 noundef %86, ptr noundef nonnull @.str.4) #10
  %88 = load i32, ptr %69, align 4, !tbaa !5
  %89 = tail call ptr @strerror(i32 noundef %88) #10
  %90 = load i32, ptr %69, align 4, !tbaa !5
  %91 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %81, ptr noundef nonnull %.str.5.sink417, i32 noundef %82, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %85, ptr noundef %87, ptr noundef %89, i32 noundef %90) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

92:                                               ; preds = %63
  %93 = tail call i32 @s2n_init() #10
  %94 = icmp eq i32 %93, -1
  br i1 %94, label %95, label %119

95:                                               ; preds = %92
  %96 = tail call ptr @__errno_location() #11
  %97 = load i32, ptr %96, align 4, !tbaa !5
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = tail call i32 @s2n_print_stacktrace(ptr noundef %98) #10
  %100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %101 = trunc nuw i8 %100 to i1
  br i1 %101, label %102, label %106

102:                                              ; preds = %95
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = tail call i32 @fileno(ptr noundef %103) #10
  %105 = tail call i32 @isatty(i32 noundef %104) #10
  %.not383 = icmp eq i32 %105, 0
  br i1 %.not383, label %106, label %107

106:                                              ; preds = %102, %95
  br label %107

107:                                              ; preds = %102, %106
  %.str.5.sink428 = phi ptr [ @.str.5, %106 ], [ @.str.2, %102 ]
  store i32 %97, ptr %96, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = load i32, ptr @test_count, align 4, !tbaa !5
  %110 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = tail call ptr @s2n_strerror(i32 noundef %111, ptr noundef nonnull @.str.4) #10
  %113 = load i32, ptr %110, align 4, !tbaa !5
  %114 = tail call ptr @s2n_strerror_debug(i32 noundef %113, ptr noundef nonnull @.str.4) #10
  %115 = load i32, ptr %96, align 4, !tbaa !5
  %116 = tail call ptr @strerror(i32 noundef %115) #10
  %117 = load i32, ptr %96, align 4, !tbaa !5
  %118 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef nonnull %.str.5.sink428, i32 noundef %109, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %112, ptr noundef %114, ptr noundef %116, i32 noundef %117) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

119:                                              ; preds = %92
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = add nsw i32 %120, 1
  store i32 %121, ptr @test_count, align 4, !tbaa !5
  %122 = tail call i32 (...) @s2n_enable_tls13_in_test() #10
  %123 = icmp eq i32 %122, -1
  br i1 %123, label %124, label %148

124:                                              ; preds = %119
  %125 = tail call ptr @__errno_location() #11
  %126 = load i32, ptr %125, align 4, !tbaa !5
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = tail call i32 @s2n_print_stacktrace(ptr noundef %127) #10
  %129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %130 = trunc nuw i8 %129 to i1
  br i1 %130, label %131, label %135

131:                                              ; preds = %124
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = tail call i32 @fileno(ptr noundef %132) #10
  %134 = tail call i32 @isatty(i32 noundef %133) #10
  %.not382 = icmp eq i32 %134, 0
  br i1 %.not382, label %135, label %136

135:                                              ; preds = %131, %124
  br label %136

136:                                              ; preds = %131, %135
  %.str.5.sink439 = phi ptr [ @.str.5, %135 ], [ @.str.2, %131 ]
  store i32 %126, ptr %125, align 4, !tbaa !5
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = load i32, ptr @test_count, align 4, !tbaa !5
  %139 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %140 = load i32, ptr %139, align 4, !tbaa !5
  %141 = tail call ptr @s2n_strerror(i32 noundef %140, ptr noundef nonnull @.str.4) #10
  %142 = load i32, ptr %139, align 4, !tbaa !5
  %143 = tail call ptr @s2n_strerror_debug(i32 noundef %142, ptr noundef nonnull @.str.4) #10
  %144 = load i32, ptr %125, align 4, !tbaa !5
  %145 = tail call ptr @strerror(i32 noundef %144) #10
  %146 = load i32, ptr %125, align 4, !tbaa !5
  %147 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %137, ptr noundef nonnull %.str.5.sink439, i32 noundef %138, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %141, ptr noundef %143, ptr noundef %145, i32 noundef %146) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

148:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %1) #10
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %1, ptr noundef nonnull align 1 dereferenceable(5) @__const.main.extension_data, i64 5, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %2, i8 0, i64 24, i1 false)
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = add nsw i32 %149, 1
  store i32 %150, ptr @test_count, align 4, !tbaa !5
  %151 = call i32 @s2n_blob_init(ptr noundef nonnull %2, ptr noundef nonnull %1, i32 noundef 5) #10
  %152 = icmp eq i32 %151, -1
  br i1 %152, label %153, label %177

153:                                              ; preds = %148
  %154 = tail call ptr @__errno_location() #11
  %155 = load i32, ptr %154, align 4, !tbaa !5
  %156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %157 = call i32 @s2n_print_stacktrace(ptr noundef %156) #10
  %158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %159 = trunc nuw i8 %158 to i1
  br i1 %159, label %160, label %164

160:                                              ; preds = %153
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = call i32 @fileno(ptr noundef %161) #10
  %163 = call i32 @isatty(i32 noundef %162) #10
  %.not381 = icmp eq i32 %163, 0
  br i1 %.not381, label %164, label %165

164:                                              ; preds = %160, %153
  br label %165

165:                                              ; preds = %160, %164
  %.str.5.sink450 = phi ptr [ @.str.5, %164 ], [ @.str.2, %160 ]
  store i32 %155, ptr %154, align 4, !tbaa !5
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = load i32, ptr @test_count, align 4, !tbaa !5
  %168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = call ptr @s2n_strerror(i32 noundef %169, ptr noundef nonnull @.str.4) #10
  %171 = load i32, ptr %168, align 4, !tbaa !5
  %172 = call ptr @s2n_strerror_debug(i32 noundef %171, ptr noundef nonnull @.str.4) #10
  %173 = load i32, ptr %154, align 4, !tbaa !5
  %174 = call ptr @strerror(i32 noundef %173) #10
  %175 = load i32, ptr %154, align 4, !tbaa !5
  %176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %166, ptr noundef nonnull %.str.5.sink450, i32 noundef %167, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %170, ptr noundef %172, ptr noundef %174, i32 noundef %175) #12
  call void @exit(i32 noundef 1) #13
  unreachable

177:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #10
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.test_extension_type, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #10
  store i8 0, ptr %4, align 1, !tbaa !15
  %178 = load i32, ptr @test_count, align 4, !tbaa !5
  %179 = add nsw i32 %178, 1
  store i32 %179, ptr @test_count, align 4, !tbaa !5
  %180 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext 43, ptr noundef nonnull %4) #10
  %181 = icmp eq i32 %180, -1
  br i1 %181, label %182, label %206

182:                                              ; preds = %177
  %183 = tail call ptr @__errno_location() #11
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %186 = call i32 @s2n_print_stacktrace(ptr noundef %185) #10
  %187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %188 = trunc nuw i8 %187 to i1
  br i1 %188, label %189, label %193

189:                                              ; preds = %182
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = call i32 @fileno(ptr noundef %190) #10
  %192 = call i32 @isatty(i32 noundef %191) #10
  %.not380 = icmp eq i32 %192, 0
  br i1 %.not380, label %193, label %194

193:                                              ; preds = %189, %182
  br label %194

194:                                              ; preds = %189, %193
  %.str.5.sink461 = phi ptr [ @.str.5, %193 ], [ @.str.2, %189 ]
  store i32 %184, ptr %183, align 4, !tbaa !5
  %195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %196 = load i32, ptr @test_count, align 4, !tbaa !5
  %197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = call ptr @s2n_strerror(i32 noundef %198, ptr noundef nonnull @.str.4) #10
  %200 = load i32, ptr %197, align 4, !tbaa !5
  %201 = call ptr @s2n_strerror_debug(i32 noundef %200, ptr noundef nonnull @.str.4) #10
  %202 = load i32, ptr %183, align 4, !tbaa !5
  %203 = call ptr @strerror(i32 noundef %202) #10
  %204 = load i32, ptr %183, align 4, !tbaa !5
  %205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %195, ptr noundef nonnull %.str.5.sink461, i32 noundef %196, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %199, ptr noundef %201, ptr noundef %203, i32 noundef %204) #12
  call void @exit(i32 noundef 1) #13
  unreachable

206:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %5) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %5, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 704, ptr nonnull %6) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(704) %6, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %7, i8 0, i64 40, i1 false)
  %207 = load i32, ptr @test_count, align 4, !tbaa !5
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr @test_count, align 4, !tbaa !5
  %209 = call i32 @s2n_extension_process(ptr noundef null, ptr noundef nonnull %5, ptr noundef nonnull %6) #10
  %210 = icmp eq i32 %209, -1
  br i1 %210, label %235, label %211

211:                                              ; preds = %206
  %212 = tail call ptr @__errno_location() #11
  %213 = load i32, ptr %212, align 4, !tbaa !5
  %214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %215 = call i32 @s2n_print_stacktrace(ptr noundef %214) #10
  %216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %217 = trunc nuw i8 %216 to i1
  br i1 %217, label %218, label %222

218:                                              ; preds = %211
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @fileno(ptr noundef %219) #10
  %221 = call i32 @isatty(i32 noundef %220) #10
  %.not = icmp eq i32 %221, 0
  br i1 %.not, label %222, label %223

222:                                              ; preds = %218, %211
  br label %223

223:                                              ; preds = %218, %222
  %.str.5.sink472 = phi ptr [ @.str.5, %222 ], [ @.str.2, %218 ]
  store i32 %213, ptr %212, align 4, !tbaa !5
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = load i32, ptr @test_count, align 4, !tbaa !5
  %226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = call ptr @s2n_strerror(i32 noundef %227, ptr noundef nonnull @.str.4) #10
  %229 = load i32, ptr %226, align 4, !tbaa !5
  %230 = call ptr @s2n_strerror_debug(i32 noundef %229, ptr noundef nonnull @.str.4) #10
  %231 = load i32, ptr %212, align 4, !tbaa !5
  %232 = call ptr @strerror(i32 noundef %231) #10
  %233 = load i32, ptr %212, align 4, !tbaa !5
  %234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %224, ptr noundef nonnull %.str.5.sink472, i32 noundef %225, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %228, ptr noundef %230, ptr noundef %232, i32 noundef %233) #12
  call void @exit(i32 noundef 1) #13
  unreachable

235:                                              ; preds = %206
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = add nsw i32 %236, 1
  store i32 %237, ptr @test_count, align 4, !tbaa !5
  %238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = icmp eq i32 %239, 0
  br i1 %240, label %241, label %264

241:                                              ; preds = %235
  %242 = tail call ptr @__errno_location() #11
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %245 = call i32 @s2n_print_stacktrace(ptr noundef %244) #10
  %246 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %247 = trunc nuw i8 %246 to i1
  br i1 %247, label %248, label %252

248:                                              ; preds = %241
  %249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %250 = call i32 @fileno(ptr noundef %249) #10
  %251 = call i32 @isatty(i32 noundef %250) #10
  %.not379 = icmp eq i32 %251, 0
  br i1 %.not379, label %252, label %253

252:                                              ; preds = %248, %241
  br label %253

253:                                              ; preds = %248, %252
  %.str.5.sink483 = phi ptr [ @.str.5, %252 ], [ @.str.2, %248 ]
  store i32 %243, ptr %242, align 4, !tbaa !5
  %254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %255 = load i32, ptr @test_count, align 4, !tbaa !5
  %256 = load i32, ptr %238, align 4, !tbaa !5
  %257 = call ptr @s2n_strerror(i32 noundef %256, ptr noundef nonnull @.str.4) #10
  %258 = load i32, ptr %238, align 4, !tbaa !5
  %259 = call ptr @s2n_strerror_debug(i32 noundef %258, ptr noundef nonnull @.str.4) #10
  %260 = load i32, ptr %242, align 4, !tbaa !5
  %261 = call ptr @strerror(i32 noundef %260) #10
  %262 = load i32, ptr %242, align 4, !tbaa !5
  %263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %254, ptr noundef nonnull %.str.5.sink483, i32 noundef %255, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %257, ptr noundef %259, ptr noundef %261, i32 noundef %262) #12
  call void @exit(i32 noundef 1) #13
  unreachable

264:                                              ; preds = %235
  %265 = add nsw i32 %236, 2
  store i32 %265, ptr @test_count, align 4, !tbaa !5
  %266 = call ptr @s2n_strerror_debug(i32 noundef %239, ptr noundef nonnull @.str.4) #10
  %267 = icmp eq ptr %266, null
  br i1 %267, label %268, label %291

268:                                              ; preds = %264
  %269 = tail call ptr @__errno_location() #11
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = call i32 @s2n_print_stacktrace(ptr noundef %271) #10
  %273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %274 = trunc nuw i8 %273 to i1
  br i1 %274, label %275, label %279

275:                                              ; preds = %268
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = call i32 @fileno(ptr noundef %276) #10
  %278 = call i32 @isatty(i32 noundef %277) #10
  %.not378 = icmp eq i32 %278, 0
  br i1 %.not378, label %279, label %280

279:                                              ; preds = %275, %268
  br label %280

280:                                              ; preds = %275, %279
  %.str.5.sink492 = phi ptr [ @.str.5, %279 ], [ @.str.2, %275 ]
  store i32 %270, ptr %269, align 4, !tbaa !5
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = load i32, ptr @test_count, align 4, !tbaa !5
  %283 = load i32, ptr %238, align 4, !tbaa !5
  %284 = call ptr @s2n_strerror(i32 noundef %283, ptr noundef nonnull @.str.4) #10
  %285 = load i32, ptr %238, align 4, !tbaa !5
  %286 = call ptr @s2n_strerror_debug(i32 noundef %285, ptr noundef nonnull @.str.4) #10
  %287 = load i32, ptr %269, align 4, !tbaa !5
  %288 = call ptr @strerror(i32 noundef %287) #10
  %289 = load i32, ptr %269, align 4, !tbaa !5
  %290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %281, ptr noundef nonnull %.str.5.sink492, i32 noundef %282, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %284, ptr noundef %286, ptr noundef %288, i32 noundef %289) #12
  call void @exit(i32 noundef 1) #13
  unreachable

291:                                              ; preds = %264
  store i32 0, ptr %238, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  %292 = tail call ptr @__errno_location() #11
  store i32 0, ptr %292, align 4, !tbaa !5
  %293 = load i32, ptr @test_count, align 4, !tbaa !5
  %294 = add nsw i32 %293, 1
  store i32 %294, ptr @test_count, align 4, !tbaa !5
  %295 = call i32 @s2n_extension_process(ptr noundef nonnull %7, ptr noundef null, ptr noundef nonnull %6) #10
  %296 = icmp eq i32 %295, -1
  br i1 %296, label %319, label %297

297:                                              ; preds = %291
  %298 = load i32, ptr %292, align 4, !tbaa !5
  %299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %300 = call i32 @s2n_print_stacktrace(ptr noundef %299) #10
  %301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %302 = trunc nuw i8 %301 to i1
  br i1 %302, label %303, label %307

303:                                              ; preds = %297
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = call i32 @fileno(ptr noundef %304) #10
  %306 = call i32 @isatty(i32 noundef %305) #10
  %.not271 = icmp eq i32 %306, 0
  br i1 %.not271, label %307, label %308

307:                                              ; preds = %303, %297
  br label %308

308:                                              ; preds = %303, %307
  %.str.5.sink501 = phi ptr [ @.str.5, %307 ], [ @.str.2, %303 ]
  store i32 %298, ptr %292, align 4, !tbaa !5
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = load i32, ptr %238, align 4, !tbaa !5
  %312 = call ptr @s2n_strerror(i32 noundef %311, ptr noundef nonnull @.str.4) #10
  %313 = load i32, ptr %238, align 4, !tbaa !5
  %314 = call ptr @s2n_strerror_debug(i32 noundef %313, ptr noundef nonnull @.str.4) #10
  %315 = load i32, ptr %292, align 4, !tbaa !5
  %316 = call ptr @strerror(i32 noundef %315) #10
  %317 = load i32, ptr %292, align 4, !tbaa !5
  %318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %309, ptr noundef nonnull %.str.5.sink501, i32 noundef %310, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %312, ptr noundef %314, ptr noundef %316, i32 noundef %317) #12
  call void @exit(i32 noundef 1) #13
  unreachable

319:                                              ; preds = %291
  %320 = load i32, ptr @test_count, align 4, !tbaa !5
  %321 = add nsw i32 %320, 1
  store i32 %321, ptr @test_count, align 4, !tbaa !5
  %322 = load i32, ptr %238, align 4, !tbaa !5
  %323 = icmp eq i32 %322, 0
  br i1 %323, label %324, label %346

324:                                              ; preds = %319
  %325 = load i32, ptr %292, align 4, !tbaa !5
  %326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %327 = call i32 @s2n_print_stacktrace(ptr noundef %326) #10
  %328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %329 = trunc nuw i8 %328 to i1
  br i1 %329, label %330, label %334

330:                                              ; preds = %324
  %331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %332 = call i32 @fileno(ptr noundef %331) #10
  %333 = call i32 @isatty(i32 noundef %332) #10
  %.not377 = icmp eq i32 %333, 0
  br i1 %.not377, label %334, label %335

334:                                              ; preds = %330, %324
  br label %335

335:                                              ; preds = %330, %334
  %.str.5.sink510 = phi ptr [ @.str.5, %334 ], [ @.str.2, %330 ]
  store i32 %325, ptr %292, align 4, !tbaa !5
  %336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %337 = load i32, ptr @test_count, align 4, !tbaa !5
  %338 = load i32, ptr %238, align 4, !tbaa !5
  %339 = call ptr @s2n_strerror(i32 noundef %338, ptr noundef nonnull @.str.4) #10
  %340 = load i32, ptr %238, align 4, !tbaa !5
  %341 = call ptr @s2n_strerror_debug(i32 noundef %340, ptr noundef nonnull @.str.4) #10
  %342 = load i32, ptr %292, align 4, !tbaa !5
  %343 = call ptr @strerror(i32 noundef %342) #10
  %344 = load i32, ptr %292, align 4, !tbaa !5
  %345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %336, ptr noundef nonnull %.str.5.sink510, i32 noundef %337, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %339, ptr noundef %341, ptr noundef %343, i32 noundef %344) #12
  call void @exit(i32 noundef 1) #13
  unreachable

346:                                              ; preds = %319
  %347 = add nsw i32 %320, 2
  store i32 %347, ptr @test_count, align 4, !tbaa !5
  %348 = call ptr @s2n_strerror_debug(i32 noundef %322, ptr noundef nonnull @.str.4) #10
  %349 = icmp eq ptr %348, null
  br i1 %349, label %350, label %372

350:                                              ; preds = %346
  %351 = load i32, ptr %292, align 4, !tbaa !5
  %352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %353 = call i32 @s2n_print_stacktrace(ptr noundef %352) #10
  %354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %355 = trunc nuw i8 %354 to i1
  br i1 %355, label %356, label %360

356:                                              ; preds = %350
  %357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %358 = call i32 @fileno(ptr noundef %357) #10
  %359 = call i32 @isatty(i32 noundef %358) #10
  %.not376 = icmp eq i32 %359, 0
  br i1 %.not376, label %360, label %361

360:                                              ; preds = %356, %350
  br label %361

361:                                              ; preds = %356, %360
  %.str.5.sink519 = phi ptr [ @.str.5, %360 ], [ @.str.2, %356 ]
  store i32 %351, ptr %292, align 4, !tbaa !5
  %362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %363 = load i32, ptr @test_count, align 4, !tbaa !5
  %364 = load i32, ptr %238, align 4, !tbaa !5
  %365 = call ptr @s2n_strerror(i32 noundef %364, ptr noundef nonnull @.str.4) #10
  %366 = load i32, ptr %238, align 4, !tbaa !5
  %367 = call ptr @s2n_strerror_debug(i32 noundef %366, ptr noundef nonnull @.str.4) #10
  %368 = load i32, ptr %292, align 4, !tbaa !5
  %369 = call ptr @strerror(i32 noundef %368) #10
  %370 = load i32, ptr %292, align 4, !tbaa !5
  %371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %362, ptr noundef nonnull %.str.5.sink519, i32 noundef %363, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %365, ptr noundef %367, ptr noundef %369, i32 noundef %370) #12
  call void @exit(i32 noundef 1) #13
  unreachable

372:                                              ; preds = %346
  store i32 0, ptr %238, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %292, align 4, !tbaa !5
  %373 = load i32, ptr @test_count, align 4, !tbaa !5
  %374 = add nsw i32 %373, 1
  store i32 %374, ptr @test_count, align 4, !tbaa !5
  %375 = call i32 @s2n_extension_process(ptr noundef nonnull %7, ptr noundef nonnull %5, ptr noundef null) #10
  %376 = icmp eq i32 %375, -1
  br i1 %376, label %399, label %377

377:                                              ; preds = %372
  %378 = load i32, ptr %292, align 4, !tbaa !5
  %379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %380 = call i32 @s2n_print_stacktrace(ptr noundef %379) #10
  %381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %382 = trunc nuw i8 %381 to i1
  br i1 %382, label %383, label %387

383:                                              ; preds = %377
  %384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %385 = call i32 @fileno(ptr noundef %384) #10
  %386 = call i32 @isatty(i32 noundef %385) #10
  %.not272 = icmp eq i32 %386, 0
  br i1 %.not272, label %387, label %388

387:                                              ; preds = %383, %377
  br label %388

388:                                              ; preds = %383, %387
  %.str.5.sink528 = phi ptr [ @.str.5, %387 ], [ @.str.2, %383 ]
  store i32 %378, ptr %292, align 4, !tbaa !5
  %389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %390 = load i32, ptr @test_count, align 4, !tbaa !5
  %391 = load i32, ptr %238, align 4, !tbaa !5
  %392 = call ptr @s2n_strerror(i32 noundef %391, ptr noundef nonnull @.str.4) #10
  %393 = load i32, ptr %238, align 4, !tbaa !5
  %394 = call ptr @s2n_strerror_debug(i32 noundef %393, ptr noundef nonnull @.str.4) #10
  %395 = load i32, ptr %292, align 4, !tbaa !5
  %396 = call ptr @strerror(i32 noundef %395) #10
  %397 = load i32, ptr %292, align 4, !tbaa !5
  %398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %389, ptr noundef nonnull %.str.5.sink528, i32 noundef %390, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %392, ptr noundef %394, ptr noundef %396, i32 noundef %397) #12
  call void @exit(i32 noundef 1) #13
  unreachable

399:                                              ; preds = %372
  %400 = load i32, ptr @test_count, align 4, !tbaa !5
  %401 = add nsw i32 %400, 1
  store i32 %401, ptr @test_count, align 4, !tbaa !5
  %402 = load i32, ptr %238, align 4, !tbaa !5
  %403 = icmp eq i32 %402, 0
  br i1 %403, label %404, label %426

404:                                              ; preds = %399
  %405 = load i32, ptr %292, align 4, !tbaa !5
  %406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %407 = call i32 @s2n_print_stacktrace(ptr noundef %406) #10
  %408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %409 = trunc nuw i8 %408 to i1
  br i1 %409, label %410, label %414

410:                                              ; preds = %404
  %411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %412 = call i32 @fileno(ptr noundef %411) #10
  %413 = call i32 @isatty(i32 noundef %412) #10
  %.not375 = icmp eq i32 %413, 0
  br i1 %.not375, label %414, label %415

414:                                              ; preds = %410, %404
  br label %415

415:                                              ; preds = %410, %414
  %.str.5.sink537 = phi ptr [ @.str.5, %414 ], [ @.str.2, %410 ]
  store i32 %405, ptr %292, align 4, !tbaa !5
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = load i32, ptr @test_count, align 4, !tbaa !5
  %418 = load i32, ptr %238, align 4, !tbaa !5
  %419 = call ptr @s2n_strerror(i32 noundef %418, ptr noundef nonnull @.str.4) #10
  %420 = load i32, ptr %238, align 4, !tbaa !5
  %421 = call ptr @s2n_strerror_debug(i32 noundef %420, ptr noundef nonnull @.str.4) #10
  %422 = load i32, ptr %292, align 4, !tbaa !5
  %423 = call ptr @strerror(i32 noundef %422) #10
  %424 = load i32, ptr %292, align 4, !tbaa !5
  %425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %416, ptr noundef nonnull %.str.5.sink537, i32 noundef %417, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %419, ptr noundef %421, ptr noundef %423, i32 noundef %424) #12
  call void @exit(i32 noundef 1) #13
  unreachable

426:                                              ; preds = %399
  %427 = add nsw i32 %400, 2
  store i32 %427, ptr @test_count, align 4, !tbaa !5
  %428 = call ptr @s2n_strerror_debug(i32 noundef %402, ptr noundef nonnull @.str.4) #10
  %429 = icmp eq ptr %428, null
  br i1 %429, label %430, label %452

430:                                              ; preds = %426
  %431 = load i32, ptr %292, align 4, !tbaa !5
  %432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %433 = call i32 @s2n_print_stacktrace(ptr noundef %432) #10
  %434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %435 = trunc nuw i8 %434 to i1
  br i1 %435, label %436, label %440

436:                                              ; preds = %430
  %437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %438 = call i32 @fileno(ptr noundef %437) #10
  %439 = call i32 @isatty(i32 noundef %438) #10
  %.not374 = icmp eq i32 %439, 0
  br i1 %.not374, label %440, label %441

440:                                              ; preds = %436, %430
  br label %441

441:                                              ; preds = %436, %440
  %.str.5.sink546 = phi ptr [ @.str.5, %440 ], [ @.str.2, %436 ]
  store i32 %431, ptr %292, align 4, !tbaa !5
  %442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %443 = load i32, ptr @test_count, align 4, !tbaa !5
  %444 = load i32, ptr %238, align 4, !tbaa !5
  %445 = call ptr @s2n_strerror(i32 noundef %444, ptr noundef nonnull @.str.4) #10
  %446 = load i32, ptr %238, align 4, !tbaa !5
  %447 = call ptr @s2n_strerror_debug(i32 noundef %446, ptr noundef nonnull @.str.4) #10
  %448 = load i32, ptr %292, align 4, !tbaa !5
  %449 = call ptr @strerror(i32 noundef %448) #10
  %450 = load i32, ptr %292, align 4, !tbaa !5
  %451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %442, ptr noundef nonnull %.str.5.sink546, i32 noundef %443, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %445, ptr noundef %447, ptr noundef %449, i32 noundef %450) #12
  call void @exit(i32 noundef 1) #13
  unreachable

452:                                              ; preds = %426
  store i32 0, ptr %238, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %292, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 704, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %5) #10
  call void @llvm.lifetime.start.p0(i64 704, ptr nonnull %8) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(704) %8, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.0221)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0221, ptr noundef nonnull align 8 dereferenceable(24) %2, i64 24, i1 false), !tbaa.struct !16
  %453 = load i32, ptr @test_count, align 4, !tbaa !5
  %454 = add nsw i32 %453, 1
  store i32 %454, ptr @test_count, align 4, !tbaa !5
  %455 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %456 = icmp eq ptr %455, null
  br i1 %456, label %457, label %479

457:                                              ; preds = %452
  %458 = load i32, ptr %292, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @s2n_print_stacktrace(ptr noundef %459) #10
  %461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %462 = trunc nuw i8 %461 to i1
  br i1 %462, label %463, label %467

463:                                              ; preds = %457
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = call i32 @fileno(ptr noundef %464) #10
  %466 = call i32 @isatty(i32 noundef %465) #10
  %.not373 = icmp eq i32 %466, 0
  br i1 %.not373, label %467, label %468

467:                                              ; preds = %463, %457
  br label %468

468:                                              ; preds = %463, %467
  %.str.5.sink555 = phi ptr [ @.str.5, %467 ], [ @.str.2, %463 ]
  store i32 %458, ptr %292, align 4, !tbaa !5
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = load i32, ptr @test_count, align 4, !tbaa !5
  %471 = load i32, ptr %238, align 4, !tbaa !5
  %472 = call ptr @s2n_strerror(i32 noundef %471, ptr noundef nonnull @.str.4) #10
  %473 = load i32, ptr %238, align 4, !tbaa !5
  %474 = call ptr @s2n_strerror_debug(i32 noundef %473, ptr noundef nonnull @.str.4) #10
  %475 = load i32, ptr %292, align 4, !tbaa !5
  %476 = call ptr @strerror(i32 noundef %475) #10
  %477 = load i32, ptr %292, align 4, !tbaa !5
  %478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %469, ptr noundef nonnull %.str.5.sink555, i32 noundef %470, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %472, ptr noundef %474, ptr noundef %476, i32 noundef %477) #12
  call void @exit(i32 noundef 1) #13
  unreachable

479:                                              ; preds = %452
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #10
  store i8 0, ptr %9, align 1, !tbaa !15
  %480 = load i32, ptr @test_count, align 4, !tbaa !5
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr @test_count, align 4, !tbaa !5
  %482 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext 43, ptr noundef nonnull %9) #10
  %483 = icmp eq i32 %482, -1
  br i1 %483, label %484, label %506

484:                                              ; preds = %479
  %485 = load i32, ptr %292, align 4, !tbaa !5
  %486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %487 = call i32 @s2n_print_stacktrace(ptr noundef %486) #10
  %488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %489 = trunc nuw i8 %488 to i1
  br i1 %489, label %490, label %494

490:                                              ; preds = %484
  %491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %492 = call i32 @fileno(ptr noundef %491) #10
  %493 = call i32 @isatty(i32 noundef %492) #10
  %.not372 = icmp eq i32 %493, 0
  br i1 %.not372, label %494, label %495

494:                                              ; preds = %490, %484
  br label %495

495:                                              ; preds = %490, %494
  %.str.5.sink564 = phi ptr [ @.str.5, %494 ], [ @.str.2, %490 ]
  store i32 %485, ptr %292, align 4, !tbaa !5
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = load i32, ptr %238, align 4, !tbaa !5
  %499 = call ptr @s2n_strerror(i32 noundef %498, ptr noundef nonnull @.str.4) #10
  %500 = load i32, ptr %238, align 4, !tbaa !5
  %501 = call ptr @s2n_strerror_debug(i32 noundef %500, ptr noundef nonnull @.str.4) #10
  %502 = load i32, ptr %292, align 4, !tbaa !5
  %503 = call ptr @strerror(i32 noundef %502) #10
  %504 = load i32, ptr %292, align 4, !tbaa !5
  %505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %496, ptr noundef nonnull %.str.5.sink564, i32 noundef %497, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %499, ptr noundef %501, ptr noundef %503, i32 noundef %504) #12
  call void @exit(i32 noundef 1) #13
  unreachable

506:                                              ; preds = %479
  %507 = load i8, ptr %9, align 1, !tbaa !15
  %508 = zext i8 %507 to i64
  %509 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %8, i64 0, i64 %508
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %509, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0221, i64 24, i1 false), !tbaa.struct !17
  %.sroa.4222.0..sroa_idx = getelementptr inbounds i8, ptr %509, i64 24
  store i16 43, ptr %.sroa.4222.0..sroa_idx, align 8, !tbaa !18
  %.sroa.6223.0..sroa_idx = getelementptr inbounds i8, ptr %509, i64 26
  store i16 0, ptr %.sroa.6223.0..sroa_idx, align 2, !tbaa !18
  %.sroa.7224.0..sroa_idx = getelementptr inbounds i8, ptr %509, i64 28
  store i8 0, ptr %.sroa.7224.0..sroa_idx, align 4, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #10
  store i8 0, ptr @received_flag, align 1, !tbaa !11
  %510 = load i32, ptr @test_count, align 4, !tbaa !5
  %511 = add nsw i32 %510, 1
  store i32 %511, ptr @test_count, align 4, !tbaa !5
  %512 = call i32 @s2n_extension_process(ptr noundef nonnull %3, ptr noundef nonnull %455, ptr noundef nonnull %8) #10
  %513 = icmp eq i32 %512, -1
  br i1 %513, label %514, label %536

514:                                              ; preds = %506
  %515 = load i32, ptr %292, align 4, !tbaa !5
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = call i32 @s2n_print_stacktrace(ptr noundef %516) #10
  %518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %519 = trunc nuw i8 %518 to i1
  br i1 %519, label %520, label %524

520:                                              ; preds = %514
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = call i32 @fileno(ptr noundef %521) #10
  %523 = call i32 @isatty(i32 noundef %522) #10
  %.not371 = icmp eq i32 %523, 0
  br i1 %.not371, label %524, label %525

524:                                              ; preds = %520, %514
  br label %525

525:                                              ; preds = %520, %524
  %.str.5.sink573 = phi ptr [ @.str.5, %524 ], [ @.str.2, %520 ]
  store i32 %515, ptr %292, align 4, !tbaa !5
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = load i32, ptr @test_count, align 4, !tbaa !5
  %528 = load i32, ptr %238, align 4, !tbaa !5
  %529 = call ptr @s2n_strerror(i32 noundef %528, ptr noundef nonnull @.str.4) #10
  %530 = load i32, ptr %238, align 4, !tbaa !5
  %531 = call ptr @s2n_strerror_debug(i32 noundef %530, ptr noundef nonnull @.str.4) #10
  %532 = load i32, ptr %292, align 4, !tbaa !5
  %533 = call ptr @strerror(i32 noundef %532) #10
  %534 = load i32, ptr %292, align 4, !tbaa !5
  %535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %526, ptr noundef nonnull %.str.5.sink573, i32 noundef %527, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %529, ptr noundef %531, ptr noundef %533, i32 noundef %534) #12
  call void @exit(i32 noundef 1) #13
  unreachable

536:                                              ; preds = %506
  %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 = load i8, ptr %4, align 1, !tbaa !15
  %540 = zext i8 %539 to i64
  %541 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %8, i64 0, i64 %540, i32 3
  %542 = load i8, ptr %541, align 4
  %543 = and i8 %542, 1
  %.not273 = icmp eq i8 %543, 0
  br i1 %.not273, label %544, label %566

544:                                              ; preds = %536
  %545 = load i32, ptr %292, align 4, !tbaa !5
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = call i32 @s2n_print_stacktrace(ptr noundef %546) #10
  %548 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %549 = trunc nuw i8 %548 to i1
  br i1 %549, label %550, label %554

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

554:                                              ; preds = %550, %544
  br label %555

555:                                              ; preds = %550, %554
  %.str.5.sink582 = phi ptr [ @.str.5, %554 ], [ @.str.2, %550 ]
  store i32 %545, ptr %292, align 4, !tbaa !5
  %556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %557 = load i32, ptr @test_count, align 4, !tbaa !5
  %558 = load i32, ptr %238, align 4, !tbaa !5
  %559 = call ptr @s2n_strerror(i32 noundef %558, ptr noundef nonnull @.str.4) #10
  %560 = load i32, ptr %238, align 4, !tbaa !5
  %561 = call ptr @s2n_strerror_debug(i32 noundef %560, ptr noundef nonnull @.str.4) #10
  %562 = load i32, ptr %292, align 4, !tbaa !5
  %563 = call ptr @strerror(i32 noundef %562) #10
  %564 = load i32, ptr %292, align 4, !tbaa !5
  %565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %556, ptr noundef nonnull %.str.5.sink582, i32 noundef %557, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %559, ptr noundef %561, ptr noundef %563, i32 noundef %564) #12
  call void @exit(i32 noundef 1) #13
  unreachable

566:                                              ; preds = %536
  %567 = add nsw i32 %537, 2
  store i32 %567, ptr @test_count, align 4, !tbaa !5
  %568 = load i8, ptr @received_flag, align 1, !tbaa !11, !range !13, !noundef !14
  %569 = trunc nuw i8 %568 to i1
  br i1 %569, label %592, label %570

570:                                              ; preds = %566
  %571 = load i32, ptr %292, align 4, !tbaa !5
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = call i32 @s2n_print_stacktrace(ptr noundef %572) #10
  %574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %575 = trunc nuw i8 %574 to i1
  br i1 %575, label %576, label %580

576:                                              ; preds = %570
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = call i32 @fileno(ptr noundef %577) #10
  %579 = call i32 @isatty(i32 noundef %578) #10
  %.not275 = icmp eq i32 %579, 0
  br i1 %.not275, label %580, label %581

580:                                              ; preds = %576, %570
  br label %581

581:                                              ; preds = %576, %580
  %.str.5.sink591 = phi ptr [ @.str.5, %580 ], [ @.str.2, %576 ]
  store i32 %571, ptr %292, align 4, !tbaa !5
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = load i32, ptr %238, align 4, !tbaa !5
  %585 = call ptr @s2n_strerror(i32 noundef %584, ptr noundef nonnull @.str.4) #10
  %586 = load i32, ptr %238, align 4, !tbaa !5
  %587 = call ptr @s2n_strerror_debug(i32 noundef %586, ptr noundef nonnull @.str.4) #10
  %588 = load i32, ptr %292, align 4, !tbaa !5
  %589 = call ptr @strerror(i32 noundef %588) #10
  %590 = load i32, ptr %292, align 4, !tbaa !5
  %591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %582, ptr noundef nonnull %.str.5.sink591, i32 noundef %583, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %585, ptr noundef %587, ptr noundef %589, i32 noundef %590) #12
  call void @exit(i32 noundef 1) #13
  unreachable

592:                                              ; preds = %566
  %593 = add nsw i32 %537, 3
  store i32 %593, ptr @test_count, align 4, !tbaa !5
  %594 = call i32 @s2n_connection_free(ptr noundef nonnull %455) #10
  %595 = icmp eq i32 %594, -1
  br i1 %595, label %596, label %618

596:                                              ; preds = %592
  %597 = load i32, ptr %292, align 4, !tbaa !5
  %598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %599 = call i32 @s2n_print_stacktrace(ptr noundef %598) #10
  %600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %601 = trunc nuw i8 %600 to i1
  br i1 %601, label %602, label %606

602:                                              ; preds = %596
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = call i32 @fileno(ptr noundef %603) #10
  %605 = call i32 @isatty(i32 noundef %604) #10
  %.not370 = icmp eq i32 %605, 0
  br i1 %.not370, label %606, label %607

606:                                              ; preds = %602, %596
  br label %607

607:                                              ; preds = %602, %606
  %.str.5.sink600 = phi ptr [ @.str.5, %606 ], [ @.str.2, %602 ]
  store i32 %597, ptr %292, align 4, !tbaa !5
  %608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %609 = load i32, ptr @test_count, align 4, !tbaa !5
  %610 = load i32, ptr %238, align 4, !tbaa !5
  %611 = call ptr @s2n_strerror(i32 noundef %610, ptr noundef nonnull @.str.4) #10
  %612 = load i32, ptr %238, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror_debug(i32 noundef %612, ptr noundef nonnull @.str.4) #10
  %614 = load i32, ptr %292, align 4, !tbaa !5
  %615 = call ptr @strerror(i32 noundef %614) #10
  %616 = load i32, ptr %292, align 4, !tbaa !5
  %617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %608, ptr noundef nonnull %.str.5.sink600, i32 noundef %609, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %611, ptr noundef %613, ptr noundef %615, i32 noundef %616) #12
  call void @exit(i32 noundef 1) #13
  unreachable

618:                                              ; preds = %592
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %.sroa.0221)
  call void @llvm.lifetime.end.p0(i64 704, ptr nonnull %8) #10
  call void @llvm.lifetime.start.p0(i64 704, ptr nonnull %10) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(704) %10, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.0202)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0202, ptr noundef nonnull align 8 dereferenceable(24) %2, i64 24, i1 false), !tbaa.struct !16
  %619 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %620 = load i32, ptr @test_count, align 4, !tbaa !5
  %621 = add nsw i32 %620, 1
  store i32 %621, ptr @test_count, align 4, !tbaa !5
  %622 = icmp eq ptr %619, null
  br i1 %622, label %623, label %645

623:                                              ; preds = %618
  %624 = load i32, ptr %292, align 4, !tbaa !5
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = call i32 @s2n_print_stacktrace(ptr noundef %625) #10
  %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) #10
  %632 = call i32 @isatty(i32 noundef %631) #10
  %.not369 = icmp eq i32 %632, 0
  br i1 %.not369, label %633, label %634

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

634:                                              ; preds = %629, %633
  %.str.5.sink609 = phi ptr [ @.str.5, %633 ], [ @.str.2, %629 ]
  store i32 %624, ptr %292, 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 %238, align 4, !tbaa !5
  %638 = call ptr @s2n_strerror(i32 noundef %637, ptr noundef nonnull @.str.4) #10
  %639 = load i32, ptr %238, align 4, !tbaa !5
  %640 = call ptr @s2n_strerror_debug(i32 noundef %639, ptr noundef nonnull @.str.4) #10
  %641 = load i32, ptr %292, align 4, !tbaa !5
  %642 = call ptr @strerror(i32 noundef %641) #10
  %643 = load i32, ptr %292, align 4, !tbaa !5
  %644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %635, ptr noundef nonnull %.str.5.sink609, i32 noundef %636, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 127, ptr noundef %638, ptr noundef %640, ptr noundef %642, i32 noundef %643) #12
  call void @exit(i32 noundef 1) #13
  unreachable

645:                                              ; preds = %618
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #10
  store i8 0, ptr %11, align 1, !tbaa !15
  %646 = add nsw i32 %620, 2
  store i32 %646, ptr @test_count, align 4, !tbaa !5
  %647 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext 43, ptr noundef nonnull %11) #10
  %648 = icmp eq i32 %647, -1
  br i1 %648, label %649, label %671

649:                                              ; preds = %645
  %650 = load i32, ptr %292, align 4, !tbaa !5
  %651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %652 = call i32 @s2n_print_stacktrace(ptr noundef %651) #10
  %653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %654 = trunc nuw i8 %653 to i1
  br i1 %654, label %655, label %659

655:                                              ; preds = %649
  %656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %657 = call i32 @fileno(ptr noundef %656) #10
  %658 = call i32 @isatty(i32 noundef %657) #10
  %.not368 = icmp eq i32 %658, 0
  br i1 %.not368, label %659, label %660

659:                                              ; preds = %655, %649
  br label %660

660:                                              ; preds = %655, %659
  %.str.5.sink618 = phi ptr [ @.str.5, %659 ], [ @.str.2, %655 ]
  store i32 %650, ptr %292, align 4, !tbaa !5
  %661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %662 = load i32, ptr @test_count, align 4, !tbaa !5
  %663 = load i32, ptr %238, align 4, !tbaa !5
  %664 = call ptr @s2n_strerror(i32 noundef %663, ptr noundef nonnull @.str.4) #10
  %665 = load i32, ptr %238, align 4, !tbaa !5
  %666 = call ptr @s2n_strerror_debug(i32 noundef %665, ptr noundef nonnull @.str.4) #10
  %667 = load i32, ptr %292, align 4, !tbaa !5
  %668 = call ptr @strerror(i32 noundef %667) #10
  %669 = load i32, ptr %292, align 4, !tbaa !5
  %670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %661, ptr noundef nonnull %.str.5.sink618, i32 noundef %662, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %664, ptr noundef %666, ptr noundef %668, i32 noundef %669) #12
  call void @exit(i32 noundef 1) #13
  unreachable

671:                                              ; preds = %645
  %672 = load i8, ptr %11, align 1, !tbaa !15
  %673 = zext i8 %672 to i64
  %674 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %10, i64 0, i64 %673
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %674, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0202, i64 24, i1 false), !tbaa.struct !17
  %.sroa.4203.0..sroa_idx = getelementptr inbounds i8, ptr %674, i64 24
  store i16 43, ptr %.sroa.4203.0..sroa_idx, align 8, !tbaa !18
  %.sroa.6204.0..sroa_idx = getelementptr inbounds i8, ptr %674, i64 26
  store i16 0, ptr %.sroa.6204.0..sroa_idx, align 2, !tbaa !18
  %.sroa.7205.0..sroa_idx = getelementptr inbounds i8, ptr %674, i64 28
  store i8 0, ptr %.sroa.7205.0..sroa_idx, align 4, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #10
  store i8 0, ptr @received_flag, align 1, !tbaa !11
  %675 = load i32, ptr @test_count, align 4, !tbaa !5
  %676 = add nsw i32 %675, 1
  store i32 %676, ptr @test_count, align 4, !tbaa !5
  %677 = call i32 @s2n_extension_process(ptr noundef nonnull %3, ptr noundef nonnull %619, ptr noundef nonnull %10) #10
  %678 = icmp eq i32 %677, -1
  br i1 %678, label %679, label %701

679:                                              ; preds = %671
  %680 = load i32, ptr %292, align 4, !tbaa !5
  %681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %682 = call i32 @s2n_print_stacktrace(ptr noundef %681) #10
  %683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %684 = trunc nuw i8 %683 to i1
  br i1 %684, label %685, label %689

685:                                              ; preds = %679
  %686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %687 = call i32 @fileno(ptr noundef %686) #10
  %688 = call i32 @isatty(i32 noundef %687) #10
  %.not367 = icmp eq i32 %688, 0
  br i1 %.not367, label %689, label %690

689:                                              ; preds = %685, %679
  br label %690

690:                                              ; preds = %685, %689
  %.str.5.sink627 = phi ptr [ @.str.5, %689 ], [ @.str.2, %685 ]
  store i32 %680, ptr %292, align 4, !tbaa !5
  %691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %692 = load i32, ptr @test_count, align 4, !tbaa !5
  %693 = load i32, ptr %238, align 4, !tbaa !5
  %694 = call ptr @s2n_strerror(i32 noundef %693, ptr noundef nonnull @.str.4) #10
  %695 = load i32, ptr %238, align 4, !tbaa !5
  %696 = call ptr @s2n_strerror_debug(i32 noundef %695, ptr noundef nonnull @.str.4) #10
  %697 = load i32, ptr %292, align 4, !tbaa !5
  %698 = call ptr @strerror(i32 noundef %697) #10
  %699 = load i32, ptr %292, align 4, !tbaa !5
  %700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %691, ptr noundef nonnull %.str.5.sink627, i32 noundef %692, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %694, ptr noundef %696, ptr noundef %698, i32 noundef %699) #12
  call void @exit(i32 noundef 1) #13
  unreachable

701:                                              ; preds = %671
  %702 = load i32, ptr @test_count, align 4, !tbaa !5
  %703 = add nsw i32 %702, 1
  store i32 %703, ptr @test_count, align 4, !tbaa !5
  %704 = load i8, ptr %4, align 1, !tbaa !15
  %705 = zext i8 %704 to i64
  %706 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %10, i64 0, i64 %705, i32 3
  %707 = load i8, ptr %706, align 4
  %708 = and i8 %707, 1
  %.not276 = icmp eq i8 %708, 0
  br i1 %.not276, label %709, label %731

709:                                              ; preds = %701
  %710 = load i32, ptr %292, align 4, !tbaa !5
  %711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %712 = call i32 @s2n_print_stacktrace(ptr noundef %711) #10
  %713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %714 = trunc nuw i8 %713 to i1
  br i1 %714, label %715, label %719

715:                                              ; preds = %709
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = call i32 @fileno(ptr noundef %716) #10
  %718 = call i32 @isatty(i32 noundef %717) #10
  %.not277 = icmp eq i32 %718, 0
  br i1 %.not277, label %719, label %720

719:                                              ; preds = %715, %709
  br label %720

720:                                              ; preds = %715, %719
  %.str.5.sink636 = phi ptr [ @.str.5, %719 ], [ @.str.2, %715 ]
  store i32 %710, ptr %292, align 4, !tbaa !5
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = load i32, ptr @test_count, align 4, !tbaa !5
  %723 = load i32, ptr %238, align 4, !tbaa !5
  %724 = call ptr @s2n_strerror(i32 noundef %723, ptr noundef nonnull @.str.4) #10
  %725 = load i32, ptr %238, align 4, !tbaa !5
  %726 = call ptr @s2n_strerror_debug(i32 noundef %725, ptr noundef nonnull @.str.4) #10
  %727 = load i32, ptr %292, align 4, !tbaa !5
  %728 = call ptr @strerror(i32 noundef %727) #10
  %729 = load i32, ptr %292, align 4, !tbaa !5
  %730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %721, ptr noundef nonnull %.str.5.sink636, i32 noundef %722, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %724, ptr noundef %726, ptr noundef %728, i32 noundef %729) #12
  call void @exit(i32 noundef 1) #13
  unreachable

731:                                              ; preds = %701
  %732 = add nsw i32 %702, 2
  store i32 %732, ptr @test_count, align 4, !tbaa !5
  %733 = load i8, ptr @received_flag, align 1, !tbaa !11, !range !13, !noundef !14
  %734 = trunc nuw i8 %733 to i1
  br i1 %734, label %757, label %735

735:                                              ; preds = %731
  %736 = load i32, ptr %292, align 4, !tbaa !5
  %737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %738 = call i32 @s2n_print_stacktrace(ptr noundef %737) #10
  %739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %740 = trunc nuw i8 %739 to i1
  br i1 %740, label %741, label %745

741:                                              ; preds = %735
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = call i32 @fileno(ptr noundef %742) #10
  %744 = call i32 @isatty(i32 noundef %743) #10
  %.not278 = icmp eq i32 %744, 0
  br i1 %.not278, label %745, label %746

745:                                              ; preds = %741, %735
  br label %746

746:                                              ; preds = %741, %745
  %.str.5.sink645 = phi ptr [ @.str.5, %745 ], [ @.str.2, %741 ]
  store i32 %736, ptr %292, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = load i32, ptr @test_count, align 4, !tbaa !5
  %749 = load i32, ptr %238, align 4, !tbaa !5
  %750 = call ptr @s2n_strerror(i32 noundef %749, ptr noundef nonnull @.str.4) #10
  %751 = load i32, ptr %238, align 4, !tbaa !5
  %752 = call ptr @s2n_strerror_debug(i32 noundef %751, ptr noundef nonnull @.str.4) #10
  %753 = load i32, ptr %292, align 4, !tbaa !5
  %754 = call ptr @strerror(i32 noundef %753) #10
  %755 = load i32, ptr %292, align 4, !tbaa !5
  %756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %747, ptr noundef nonnull %.str.5.sink645, i32 noundef %748, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %750, ptr noundef %752, ptr noundef %754, i32 noundef %755) #12
  call void @exit(i32 noundef 1) #13
  unreachable

757:                                              ; preds = %731
  store i8 0, ptr @received_flag, align 1, !tbaa !11
  %758 = add nsw i32 %702, 3
  store i32 %758, ptr @test_count, align 4, !tbaa !5
  %759 = call i32 @s2n_extension_process(ptr noundef nonnull %3, ptr noundef nonnull %619, ptr noundef nonnull %10) #10
  %760 = icmp eq i32 %759, -1
  br i1 %760, label %761, label %783

761:                                              ; preds = %757
  %762 = load i32, ptr %292, align 4, !tbaa !5
  %763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %764 = call i32 @s2n_print_stacktrace(ptr noundef %763) #10
  %765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %766 = trunc nuw i8 %765 to i1
  br i1 %766, label %767, label %771

767:                                              ; preds = %761
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = call i32 @fileno(ptr noundef %768) #10
  %770 = call i32 @isatty(i32 noundef %769) #10
  %.not366 = icmp eq i32 %770, 0
  br i1 %.not366, label %771, label %772

771:                                              ; preds = %767, %761
  br label %772

772:                                              ; preds = %767, %771
  %.str.5.sink654 = phi ptr [ @.str.5, %771 ], [ @.str.2, %767 ]
  store i32 %762, ptr %292, align 4, !tbaa !5
  %773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %774 = load i32, ptr @test_count, align 4, !tbaa !5
  %775 = load i32, ptr %238, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror(i32 noundef %775, ptr noundef nonnull @.str.4) #10
  %777 = load i32, ptr %238, align 4, !tbaa !5
  %778 = call ptr @s2n_strerror_debug(i32 noundef %777, ptr noundef nonnull @.str.4) #10
  %779 = load i32, ptr %292, align 4, !tbaa !5
  %780 = call ptr @strerror(i32 noundef %779) #10
  %781 = load i32, ptr %292, align 4, !tbaa !5
  %782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %773, ptr noundef nonnull %.str.5.sink654, i32 noundef %774, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %776, ptr noundef %778, ptr noundef %780, i32 noundef %781) #12
  call void @exit(i32 noundef 1) #13
  unreachable

783:                                              ; preds = %757
  %784 = load i32, ptr @test_count, align 4, !tbaa !5
  %785 = add nsw i32 %784, 1
  store i32 %785, ptr @test_count, align 4, !tbaa !5
  %786 = load i8, ptr %4, align 1, !tbaa !15
  %787 = zext i8 %786 to i64
  %788 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %10, i64 0, i64 %787, i32 3
  %789 = load i8, ptr %788, align 4
  %790 = and i8 %789, 1
  %.not279 = icmp eq i8 %790, 0
  br i1 %.not279, label %791, label %813

791:                                              ; preds = %783
  %792 = load i32, ptr %292, align 4, !tbaa !5
  %793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %794 = call i32 @s2n_print_stacktrace(ptr noundef %793) #10
  %795 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %796 = trunc nuw i8 %795 to i1
  br i1 %796, label %797, label %801

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

801:                                              ; preds = %797, %791
  br label %802

802:                                              ; preds = %797, %801
  %.str.5.sink663 = phi ptr [ @.str.5, %801 ], [ @.str.2, %797 ]
  store i32 %792, ptr %292, align 4, !tbaa !5
  %803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %804 = load i32, ptr @test_count, align 4, !tbaa !5
  %805 = load i32, ptr %238, align 4, !tbaa !5
  %806 = call ptr @s2n_strerror(i32 noundef %805, ptr noundef nonnull @.str.4) #10
  %807 = load i32, ptr %238, align 4, !tbaa !5
  %808 = call ptr @s2n_strerror_debug(i32 noundef %807, ptr noundef nonnull @.str.4) #10
  %809 = load i32, ptr %292, align 4, !tbaa !5
  %810 = call ptr @strerror(i32 noundef %809) #10
  %811 = load i32, ptr %292, align 4, !tbaa !5
  %812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %803, ptr noundef nonnull %.str.5.sink663, i32 noundef %804, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %806, ptr noundef %808, ptr noundef %810, i32 noundef %811) #12
  call void @exit(i32 noundef 1) #13
  unreachable

813:                                              ; preds = %783
  %814 = add nsw i32 %784, 2
  store i32 %814, ptr @test_count, align 4, !tbaa !5
  %815 = load i8, ptr @received_flag, align 1, !tbaa !11, !range !13, !noundef !14
  %816 = trunc nuw i8 %815 to i1
  br i1 %816, label %817, label %839

817:                                              ; preds = %813
  %818 = load i32, ptr %292, align 4, !tbaa !5
  %819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %820 = call i32 @s2n_print_stacktrace(ptr noundef %819) #10
  %821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %822 = trunc nuw i8 %821 to i1
  br i1 %822, label %823, label %827

823:                                              ; preds = %817
  %824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %825 = call i32 @fileno(ptr noundef %824) #10
  %826 = call i32 @isatty(i32 noundef %825) #10
  %.not365 = icmp eq i32 %826, 0
  br i1 %.not365, label %827, label %828

827:                                              ; preds = %823, %817
  br label %828

828:                                              ; preds = %823, %827
  %.str.5.sink672 = phi ptr [ @.str.5, %827 ], [ @.str.2, %823 ]
  store i32 %818, ptr %292, align 4, !tbaa !5
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = load i32, ptr @test_count, align 4, !tbaa !5
  %831 = load i32, ptr %238, align 4, !tbaa !5
  %832 = call ptr @s2n_strerror(i32 noundef %831, ptr noundef nonnull @.str.4) #10
  %833 = load i32, ptr %238, align 4, !tbaa !5
  %834 = call ptr @s2n_strerror_debug(i32 noundef %833, ptr noundef nonnull @.str.4) #10
  %835 = load i32, ptr %292, align 4, !tbaa !5
  %836 = call ptr @strerror(i32 noundef %835) #10
  %837 = load i32, ptr %292, align 4, !tbaa !5
  %838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %829, ptr noundef nonnull %.str.5.sink672, i32 noundef %830, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %832, ptr noundef %834, ptr noundef %836, i32 noundef %837) #12
  call void @exit(i32 noundef 1) #13
  unreachable

839:                                              ; preds = %813
  %840 = add nsw i32 %784, 3
  store i32 %840, ptr @test_count, align 4, !tbaa !5
  %841 = call i32 @s2n_connection_free(ptr noundef nonnull %619) #10
  %842 = icmp eq i32 %841, -1
  br i1 %842, label %843, label %865

843:                                              ; preds = %839
  %844 = load i32, ptr %292, align 4, !tbaa !5
  %845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %846 = call i32 @s2n_print_stacktrace(ptr noundef %845) #10
  %847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %848 = trunc nuw i8 %847 to i1
  br i1 %848, label %849, label %853

849:                                              ; preds = %843
  %850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %851 = call i32 @fileno(ptr noundef %850) #10
  %852 = call i32 @isatty(i32 noundef %851) #10
  %.not364 = icmp eq i32 %852, 0
  br i1 %.not364, label %853, label %854

853:                                              ; preds = %849, %843
  br label %854

854:                                              ; preds = %849, %853
  %.str.5.sink681 = phi ptr [ @.str.5, %853 ], [ @.str.2, %849 ]
  store i32 %844, ptr %292, align 4, !tbaa !5
  %855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %856 = load i32, ptr @test_count, align 4, !tbaa !5
  %857 = load i32, ptr %238, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror(i32 noundef %857, ptr noundef nonnull @.str.4) #10
  %859 = load i32, ptr %238, align 4, !tbaa !5
  %860 = call ptr @s2n_strerror_debug(i32 noundef %859, ptr noundef nonnull @.str.4) #10
  %861 = load i32, ptr %292, align 4, !tbaa !5
  %862 = call ptr @strerror(i32 noundef %861) #10
  %863 = load i32, ptr %292, align 4, !tbaa !5
  %864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %855, ptr noundef nonnull %.str.5.sink681, i32 noundef %856, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 144, ptr noundef %858, ptr noundef %860, ptr noundef %862, i32 noundef %863) #12
  call void @exit(i32 noundef 1) #13
  unreachable

865:                                              ; preds = %839
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %.sroa.0202)
  call void @llvm.lifetime.end.p0(i64 704, ptr nonnull %10) #10
  call void @llvm.lifetime.start.p0(i64 704, ptr nonnull %12) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(704) %12, i8 0, i64 704, i1 false)
  %.sroa.0175.0.copyload = load ptr, ptr %2, align 8, !tbaa !9
  %.sroa.5179.0..sroa_idx = getelementptr inbounds i8, ptr %2, i64 12
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %.sroa.0172.sroa.5)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.0172.sroa.5, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.5179.0..sroa_idx, i64 12, i1 false)
  %866 = load i32, ptr @test_count, align 4, !tbaa !5
  %867 = add nsw i32 %866, 1
  store i32 %867, ptr @test_count, align 4, !tbaa !5
  %868 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %869 = icmp eq ptr %868, null
  br i1 %869, label %870, label %892

870:                                              ; preds = %865
  %871 = load i32, ptr %292, align 4, !tbaa !5
  %872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %873 = call i32 @s2n_print_stacktrace(ptr noundef %872) #10
  %874 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %875 = trunc nuw i8 %874 to i1
  br i1 %875, label %876, label %880

876:                                              ; preds = %870
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = call i32 @fileno(ptr noundef %877) #10
  %879 = call i32 @isatty(i32 noundef %878) #10
  %.not363 = icmp eq i32 %879, 0
  br i1 %.not363, label %880, label %881

880:                                              ; preds = %876, %870
  br label %881

881:                                              ; preds = %876, %880
  %.str.5.sink690 = phi ptr [ @.str.5, %880 ], [ @.str.2, %876 ]
  store i32 %871, ptr %292, align 4, !tbaa !5
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = load i32, ptr @test_count, align 4, !tbaa !5
  %884 = load i32, ptr %238, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror(i32 noundef %884, ptr noundef nonnull @.str.4) #10
  %886 = load i32, ptr %238, align 4, !tbaa !5
  %887 = call ptr @s2n_strerror_debug(i32 noundef %886, ptr noundef nonnull @.str.4) #10
  %888 = load i32, ptr %292, align 4, !tbaa !5
  %889 = call ptr @strerror(i32 noundef %888) #10
  %890 = load i32, ptr %292, align 4, !tbaa !5
  %891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %882, ptr noundef nonnull %.str.5.sink690, i32 noundef %883, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %885, ptr noundef %887, ptr noundef %889, i32 noundef %890) #12
  call void @exit(i32 noundef 1) #13
  unreachable

892:                                              ; preds = %865
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #10
  store i8 0, ptr %13, align 1, !tbaa !15
  %893 = load i32, ptr @test_count, align 4, !tbaa !5
  %894 = add nsw i32 %893, 1
  store i32 %894, ptr @test_count, align 4, !tbaa !5
  %895 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext 43, ptr noundef nonnull %13) #10
  %896 = icmp eq i32 %895, -1
  br i1 %896, label %897, label %919

897:                                              ; preds = %892
  %898 = load i32, ptr %292, align 4, !tbaa !5
  %899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %900 = call i32 @s2n_print_stacktrace(ptr noundef %899) #10
  %901 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %902 = trunc nuw i8 %901 to i1
  br i1 %902, label %903, label %907

903:                                              ; preds = %897
  %904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %905 = call i32 @fileno(ptr noundef %904) #10
  %906 = call i32 @isatty(i32 noundef %905) #10
  %.not362 = icmp eq i32 %906, 0
  br i1 %.not362, label %907, label %908

907:                                              ; preds = %903, %897
  br label %908

908:                                              ; preds = %903, %907
  %.str.5.sink699 = phi ptr [ @.str.5, %907 ], [ @.str.2, %903 ]
  store i32 %898, ptr %292, align 4, !tbaa !5
  %909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %910 = load i32, ptr @test_count, align 4, !tbaa !5
  %911 = load i32, ptr %238, align 4, !tbaa !5
  %912 = call ptr @s2n_strerror(i32 noundef %911, ptr noundef nonnull @.str.4) #10
  %913 = load i32, ptr %238, align 4, !tbaa !5
  %914 = call ptr @s2n_strerror_debug(i32 noundef %913, ptr noundef nonnull @.str.4) #10
  %915 = load i32, ptr %292, align 4, !tbaa !5
  %916 = call ptr @strerror(i32 noundef %915) #10
  %917 = load i32, ptr %292, align 4, !tbaa !5
  %918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %909, ptr noundef nonnull %.str.5.sink699, i32 noundef %910, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %912, ptr noundef %914, ptr noundef %916, i32 noundef %917) #12
  call void @exit(i32 noundef 1) #13
  unreachable

919:                                              ; preds = %892
  %920 = load i8, ptr %13, align 1, !tbaa !15
  %921 = zext i8 %920 to i64
  %922 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %12, i64 0, i64 %921
  store ptr %.sroa.0175.0.copyload, ptr %922, align 8, !tbaa !9
  %.sroa.0172.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %922, i64 8
  store i32 0, ptr %.sroa.0172.sroa.4.0..sroa_idx, align 8, !tbaa !5
  %.sroa.0172.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %922, i64 12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.0172.sroa.5.0..sroa_idx, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.0172.sroa.5, i64 12, i1 false), !tbaa.struct !20
  %.sroa.4173.0..sroa_idx = getelementptr inbounds i8, ptr %922, i64 24
  store i16 43, ptr %.sroa.4173.0..sroa_idx, align 8, !tbaa !18
  %.sroa.6174.0..sroa_idx = getelementptr inbounds i8, ptr %922, i64 26
  store i16 0, ptr %.sroa.6174.0..sroa_idx, align 2, !tbaa !18
  %.sroa.7.0..sroa_idx = getelementptr inbounds i8, ptr %922, i64 28
  store i8 0, ptr %.sroa.7.0..sroa_idx, align 4, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #10
  store i8 0, ptr @received_flag, align 1, !tbaa !11
  %923 = load i32, ptr @test_count, align 4, !tbaa !5
  %924 = add nsw i32 %923, 1
  store i32 %924, ptr @test_count, align 4, !tbaa !5
  %925 = call i32 @s2n_extension_process(ptr noundef nonnull %3, ptr noundef nonnull %868, ptr noundef nonnull %12) #10
  %926 = icmp eq i32 %925, -1
  br i1 %926, label %927, label %949

927:                                              ; preds = %919
  %928 = load i32, ptr %292, align 4, !tbaa !5
  %929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %930 = call i32 @s2n_print_stacktrace(ptr noundef %929) #10
  %931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %932 = trunc nuw i8 %931 to i1
  br i1 %932, label %933, label %937

933:                                              ; preds = %927
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = call i32 @fileno(ptr noundef %934) #10
  %936 = call i32 @isatty(i32 noundef %935) #10
  %.not361 = icmp eq i32 %936, 0
  br i1 %.not361, label %937, label %938

937:                                              ; preds = %933, %927
  br label %938

938:                                              ; preds = %933, %937
  %.str.5.sink708 = phi ptr [ @.str.5, %937 ], [ @.str.2, %933 ]
  store i32 %928, ptr %292, align 4, !tbaa !5
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = load i32, ptr @test_count, align 4, !tbaa !5
  %941 = load i32, ptr %238, align 4, !tbaa !5
  %942 = call ptr @s2n_strerror(i32 noundef %941, ptr noundef nonnull @.str.4) #10
  %943 = load i32, ptr %238, align 4, !tbaa !5
  %944 = call ptr @s2n_strerror_debug(i32 noundef %943, ptr noundef nonnull @.str.4) #10
  %945 = load i32, ptr %292, align 4, !tbaa !5
  %946 = call ptr @strerror(i32 noundef %945) #10
  %947 = load i32, ptr %292, align 4, !tbaa !5
  %948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %939, ptr noundef nonnull %.str.5.sink708, i32 noundef %940, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %942, ptr noundef %944, ptr noundef %946, i32 noundef %947) #12
  call void @exit(i32 noundef 1) #13
  unreachable

949:                                              ; preds = %919
  %950 = load i32, ptr @test_count, align 4, !tbaa !5
  %951 = add nsw i32 %950, 1
  store i32 %951, ptr @test_count, align 4, !tbaa !5
  %952 = load i8, ptr %4, align 1, !tbaa !15
  %953 = zext i8 %952 to i64
  %954 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %12, i64 0, i64 %953, i32 3
  %955 = load i8, ptr %954, align 4
  %956 = and i8 %955, 1
  %.not281 = icmp eq i8 %956, 0
  br i1 %.not281, label %957, label %979

957:                                              ; preds = %949
  %958 = load i32, ptr %292, align 4, !tbaa !5
  %959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %960 = call i32 @s2n_print_stacktrace(ptr noundef %959) #10
  %961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %962 = trunc nuw i8 %961 to i1
  br i1 %962, label %963, label %967

963:                                              ; preds = %957
  %964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %965 = call i32 @fileno(ptr noundef %964) #10
  %966 = call i32 @isatty(i32 noundef %965) #10
  %.not282 = icmp eq i32 %966, 0
  br i1 %.not282, label %967, label %968

967:                                              ; preds = %963, %957
  br label %968

968:                                              ; preds = %963, %967
  %.str.5.sink717 = phi ptr [ @.str.5, %967 ], [ @.str.2, %963 ]
  store i32 %958, ptr %292, align 4, !tbaa !5
  %969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %970 = load i32, ptr @test_count, align 4, !tbaa !5
  %971 = load i32, ptr %238, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror(i32 noundef %971, ptr noundef nonnull @.str.4) #10
  %973 = load i32, ptr %238, align 4, !tbaa !5
  %974 = call ptr @s2n_strerror_debug(i32 noundef %973, ptr noundef nonnull @.str.4) #10
  %975 = load i32, ptr %292, align 4, !tbaa !5
  %976 = call ptr @strerror(i32 noundef %975) #10
  %977 = load i32, ptr %292, align 4, !tbaa !5
  %978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %969, ptr noundef nonnull %.str.5.sink717, i32 noundef %970, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %972, ptr noundef %974, ptr noundef %976, i32 noundef %977) #12
  call void @exit(i32 noundef 1) #13
  unreachable

979:                                              ; preds = %949
  %980 = add nsw i32 %950, 2
  store i32 %980, ptr @test_count, align 4, !tbaa !5
  %981 = load i8, ptr @received_flag, align 1, !tbaa !11, !range !13, !noundef !14
  %982 = trunc nuw i8 %981 to i1
  br i1 %982, label %1005, label %983

983:                                              ; preds = %979
  %984 = load i32, ptr %292, align 4, !tbaa !5
  %985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %986 = call i32 @s2n_print_stacktrace(ptr noundef %985) #10
  %987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %988 = trunc nuw i8 %987 to i1
  br i1 %988, label %989, label %993

989:                                              ; preds = %983
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = call i32 @fileno(ptr noundef %990) #10
  %992 = call i32 @isatty(i32 noundef %991) #10
  %.not283 = icmp eq i32 %992, 0
  br i1 %.not283, label %993, label %994

993:                                              ; preds = %989, %983
  br label %994

994:                                              ; preds = %989, %993
  %.str.5.sink726 = phi ptr [ @.str.5, %993 ], [ @.str.2, %989 ]
  store i32 %984, ptr %292, align 4, !tbaa !5
  %995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %996 = load i32, ptr @test_count, align 4, !tbaa !5
  %997 = load i32, ptr %238, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror(i32 noundef %997, ptr noundef nonnull @.str.4) #10
  %999 = load i32, ptr %238, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror_debug(i32 noundef %999, ptr noundef nonnull @.str.4) #10
  %1001 = load i32, ptr %292, align 4, !tbaa !5
  %1002 = call ptr @strerror(i32 noundef %1001) #10
  %1003 = load i32, ptr %292, align 4, !tbaa !5
  %1004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %995, ptr noundef nonnull %.str.5.sink726, i32 noundef %996, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %998, ptr noundef %1000, ptr noundef %1002, i32 noundef %1003) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1005:                                             ; preds = %979
  %1006 = add nsw i32 %950, 3
  store i32 %1006, ptr @test_count, align 4, !tbaa !5
  %1007 = call i32 @s2n_connection_free(ptr noundef nonnull %868) #10
  %1008 = icmp eq i32 %1007, -1
  br i1 %1008, label %1009, label %1031

1009:                                             ; preds = %1005
  %1010 = load i32, ptr %292, align 4, !tbaa !5
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = call i32 @s2n_print_stacktrace(ptr noundef %1011) #10
  %1013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1014 = trunc nuw i8 %1013 to i1
  br i1 %1014, label %1015, label %1019

1015:                                             ; preds = %1009
  %1016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1017 = call i32 @fileno(ptr noundef %1016) #10
  %1018 = call i32 @isatty(i32 noundef %1017) #10
  %.not360 = icmp eq i32 %1018, 0
  br i1 %.not360, label %1019, label %1020

1019:                                             ; preds = %1015, %1009
  br label %1020

1020:                                             ; preds = %1015, %1019
  %.str.5.sink735 = phi ptr [ @.str.5, %1019 ], [ @.str.2, %1015 ]
  store i32 %1010, ptr %292, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = load i32, ptr %238, align 4, !tbaa !5
  %1024 = call ptr @s2n_strerror(i32 noundef %1023, ptr noundef nonnull @.str.4) #10
  %1025 = load i32, ptr %238, align 4, !tbaa !5
  %1026 = call ptr @s2n_strerror_debug(i32 noundef %1025, ptr noundef nonnull @.str.4) #10
  %1027 = load i32, ptr %292, align 4, !tbaa !5
  %1028 = call ptr @strerror(i32 noundef %1027) #10
  %1029 = load i32, ptr %292, align 4, !tbaa !5
  %1030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1021, ptr noundef nonnull %.str.5.sink735, i32 noundef %1022, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %1024, ptr noundef %1026, ptr noundef %1028, i32 noundef %1029) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1031:                                             ; preds = %1005
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %.sroa.0172.sroa.5)
  call void @llvm.lifetime.end.p0(i64 704, ptr nonnull %12) #10
  call void @llvm.lifetime.start.p0(i64 704, ptr nonnull %14) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(704) %14, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.0)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0, ptr noundef nonnull align 8 dereferenceable(24) %2, i64 24, i1 false), !tbaa.struct !16
  %1032 = load i32, ptr @test_count, align 4, !tbaa !5
  %1033 = add nsw i32 %1032, 1
  store i32 %1033, ptr @test_count, align 4, !tbaa !5
  %1034 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %1035 = icmp eq ptr %1034, null
  br i1 %1035, label %1036, label %1058

1036:                                             ; preds = %1031
  %1037 = load i32, ptr %292, align 4, !tbaa !5
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @s2n_print_stacktrace(ptr noundef %1038) #10
  %1040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1041 = trunc nuw i8 %1040 to i1
  br i1 %1041, label %1042, label %1046

1042:                                             ; preds = %1036
  %1043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1044 = call i32 @fileno(ptr noundef %1043) #10
  %1045 = call i32 @isatty(i32 noundef %1044) #10
  %.not359 = icmp eq i32 %1045, 0
  br i1 %.not359, label %1046, label %1047

1046:                                             ; preds = %1042, %1036
  br label %1047

1047:                                             ; preds = %1042, %1046
  %.str.5.sink744 = phi ptr [ @.str.5, %1046 ], [ @.str.2, %1042 ]
  store i32 %1037, ptr %292, align 4, !tbaa !5
  %1048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1049 = load i32, ptr @test_count, align 4, !tbaa !5
  %1050 = load i32, ptr %238, align 4, !tbaa !5
  %1051 = call ptr @s2n_strerror(i32 noundef %1050, ptr noundef nonnull @.str.4) #10
  %1052 = load i32, ptr %238, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror_debug(i32 noundef %1052, ptr noundef nonnull @.str.4) #10
  %1054 = load i32, ptr %292, align 4, !tbaa !5
  %1055 = call ptr @strerror(i32 noundef %1054) #10
  %1056 = load i32, ptr %292, align 4, !tbaa !5
  %1057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1048, ptr noundef nonnull %.str.5.sink744, i32 noundef %1049, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %1051, ptr noundef %1053, ptr noundef %1055, i32 noundef %1056) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1058:                                             ; preds = %1031
  %1059 = load i8, ptr %4, align 1, !tbaa !15
  %1060 = zext i8 %1059 to i64
  %1061 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %14, i64 0, i64 %1060
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %1061, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0, i64 24, i1 false), !tbaa.struct !17
  %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %1061, i64 24
  store i16 42, ptr %.sroa.4.0..sroa_idx, align 8, !tbaa !18
  %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %1061, i64 26
  store i16 0, ptr %.sroa.5.0..sroa_idx, align 2, !tbaa !18
  %.sroa.6.0..sroa_idx = getelementptr inbounds i8, ptr %1061, i64 28
  store i8 0, ptr %.sroa.6.0..sroa_idx, align 4, !tbaa !15
  store i8 0, ptr @received_flag, align 1, !tbaa !11
  %1062 = load i32, ptr @test_count, align 4, !tbaa !5
  %1063 = add nsw i32 %1062, 1
  store i32 %1063, ptr @test_count, align 4, !tbaa !5
  %1064 = call i32 @s2n_extension_process(ptr noundef nonnull %3, ptr noundef nonnull %1034, ptr noundef nonnull %14) #10
  %1065 = icmp eq i32 %1064, -1
  br i1 %1065, label %1088, label %1066

1066:                                             ; preds = %1058
  %1067 = load i32, ptr %292, align 4, !tbaa !5
  %1068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1069 = call i32 @s2n_print_stacktrace(ptr noundef %1068) #10
  %1070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1071 = trunc nuw i8 %1070 to i1
  br i1 %1071, label %1072, label %1076

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

1076:                                             ; preds = %1072, %1066
  br label %1077

1077:                                             ; preds = %1072, %1076
  %.str.5.sink753 = phi ptr [ @.str.5, %1076 ], [ @.str.2, %1072 ]
  store i32 %1067, ptr %292, align 4, !tbaa !5
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = load i32, ptr @test_count, align 4, !tbaa !5
  %1080 = load i32, ptr %238, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror(i32 noundef %1080, ptr noundef nonnull @.str.4) #10
  %1082 = load i32, ptr %238, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror_debug(i32 noundef %1082, ptr noundef nonnull @.str.4) #10
  %1084 = load i32, ptr %292, align 4, !tbaa !5
  %1085 = call ptr @strerror(i32 noundef %1084) #10
  %1086 = load i32, ptr %292, align 4, !tbaa !5
  %1087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1078, ptr noundef nonnull %.str.5.sink753, i32 noundef %1079, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1081, ptr noundef %1083, ptr noundef %1085, i32 noundef %1086) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1088:                                             ; preds = %1058
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = add nsw i32 %1089, 1
  store i32 %1090, ptr @test_count, align 4, !tbaa !5
  %1091 = load i32, ptr %238, align 4, !tbaa !5
  %1092 = icmp eq i32 %1091, 402653257
  br i1 %1092, label %1115, label %1093

1093:                                             ; preds = %1088
  %1094 = load i32, ptr %292, align 4, !tbaa !5
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = call i32 @s2n_print_stacktrace(ptr noundef %1095) #10
  %1097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1098 = trunc nuw i8 %1097 to i1
  br i1 %1098, label %1099, label %1103

1099:                                             ; preds = %1093
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1101 = call i32 @fileno(ptr noundef %1100) #10
  %1102 = call i32 @isatty(i32 noundef %1101) #10
  %.not285 = icmp eq i32 %1102, 0
  br i1 %.not285, label %1103, label %1104

1103:                                             ; preds = %1099, %1093
  br label %1104

1104:                                             ; preds = %1099, %1103
  %.str.5.sink762 = phi ptr [ @.str.5, %1103 ], [ @.str.2, %1099 ]
  store i32 %1094, ptr %292, align 4, !tbaa !5
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = load i32, ptr @test_count, align 4, !tbaa !5
  %1107 = load i32, ptr %238, align 4, !tbaa !5
  %1108 = call ptr @s2n_strerror(i32 noundef %1107, ptr noundef nonnull @.str.4) #10
  %1109 = load i32, ptr %238, align 4, !tbaa !5
  %1110 = call ptr @s2n_strerror_debug(i32 noundef %1109, ptr noundef nonnull @.str.4) #10
  %1111 = load i32, ptr %292, align 4, !tbaa !5
  %1112 = call ptr @strerror(i32 noundef %1111) #10
  %1113 = load i32, ptr %292, align 4, !tbaa !5
  %1114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1105, ptr noundef nonnull %.str.5.sink762, i32 noundef %1106, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1108, ptr noundef %1110, ptr noundef %1112, i32 noundef %1113) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1115:                                             ; preds = %1088
  %1116 = add nsw i32 %1089, 2
  store i32 %1116, ptr @test_count, align 4, !tbaa !5
  %1117 = call ptr @s2n_strerror_debug(i32 noundef 402653257, ptr noundef nonnull @.str.4) #10
  %1118 = icmp eq ptr %1117, null
  br i1 %1118, label %1119, label %1141

1119:                                             ; preds = %1115
  %1120 = load i32, ptr %292, align 4, !tbaa !5
  %1121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1122 = call i32 @s2n_print_stacktrace(ptr noundef %1121) #10
  %1123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1124 = trunc nuw i8 %1123 to i1
  br i1 %1124, label %1125, label %1129

1125:                                             ; preds = %1119
  %1126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1127 = call i32 @fileno(ptr noundef %1126) #10
  %1128 = call i32 @isatty(i32 noundef %1127) #10
  %.not358 = icmp eq i32 %1128, 0
  br i1 %.not358, label %1129, label %1130

1129:                                             ; preds = %1125, %1119
  br label %1130

1130:                                             ; preds = %1125, %1129
  %.str.5.sink771 = phi ptr [ @.str.5, %1129 ], [ @.str.2, %1125 ]
  store i32 %1120, ptr %292, align 4, !tbaa !5
  %1131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1132 = load i32, ptr @test_count, align 4, !tbaa !5
  %1133 = load i32, ptr %238, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror(i32 noundef %1133, ptr noundef nonnull @.str.4) #10
  %1135 = load i32, ptr %238, align 4, !tbaa !5
  %1136 = call ptr @s2n_strerror_debug(i32 noundef %1135, ptr noundef nonnull @.str.4) #10
  %1137 = load i32, ptr %292, align 4, !tbaa !5
  %1138 = call ptr @strerror(i32 noundef %1137) #10
  %1139 = load i32, ptr %292, align 4, !tbaa !5
  %1140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1131, ptr noundef nonnull %.str.5.sink771, i32 noundef %1132, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1134, ptr noundef %1136, ptr noundef %1138, i32 noundef %1139) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1141:                                             ; preds = %1115
  store i32 0, ptr %238, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %292, align 4, !tbaa !5
  %test_count.promoted = load i32, ptr @test_count, align 4, !tbaa !5
  %1142 = add i32 %test_count.promoted, 20
  %1143 = add nsw i32 %test_count.promoted, 1
  %1144 = getelementptr inbounds i8, ptr %14, i64 28
  %1145 = load i8, ptr %1144, align 4
  %1146 = and i8 %1145, 1
  %.not356 = icmp eq i8 %1146, 0
  br i1 %.not356, label %1147, label %1250

1147:                                             ; preds = %1141
  %1148 = add nsw i32 %test_count.promoted, 2
  %1149 = getelementptr inbounds i8, ptr %14, i64 60
  %1150 = load i8, ptr %1149, align 4
  %1151 = and i8 %1150, 1
  %.not356.1 = icmp eq i8 %1151, 0
  br i1 %.not356.1, label %1152, label %1250

1152:                                             ; preds = %1147
  %1153 = add nsw i32 %test_count.promoted, 3
  %1154 = getelementptr inbounds i8, ptr %14, i64 92
  %1155 = load i8, ptr %1154, align 4
  %1156 = and i8 %1155, 1
  %.not356.2 = icmp eq i8 %1156, 0
  br i1 %.not356.2, label %1157, label %1250

1157:                                             ; preds = %1152
  %1158 = add nsw i32 %test_count.promoted, 4
  %1159 = getelementptr inbounds i8, ptr %14, i64 124
  %1160 = load i8, ptr %1159, align 4
  %1161 = and i8 %1160, 1
  %.not356.3 = icmp eq i8 %1161, 0
  br i1 %.not356.3, label %1162, label %1250

1162:                                             ; preds = %1157
  %1163 = add nsw i32 %test_count.promoted, 5
  %1164 = getelementptr inbounds i8, ptr %14, i64 156
  %1165 = load i8, ptr %1164, align 4
  %1166 = and i8 %1165, 1
  %.not356.4 = icmp eq i8 %1166, 0
  br i1 %.not356.4, label %1167, label %1250

1167:                                             ; preds = %1162
  %1168 = add nsw i32 %test_count.promoted, 6
  %1169 = getelementptr inbounds i8, ptr %14, i64 188
  %1170 = load i8, ptr %1169, align 4
  %1171 = and i8 %1170, 1
  %.not356.5 = icmp eq i8 %1171, 0
  br i1 %.not356.5, label %1172, label %1250

1172:                                             ; preds = %1167
  %1173 = add nsw i32 %test_count.promoted, 7
  %1174 = getelementptr inbounds i8, ptr %14, i64 220
  %1175 = load i8, ptr %1174, align 4
  %1176 = and i8 %1175, 1
  %.not356.6 = icmp eq i8 %1176, 0
  br i1 %.not356.6, label %1177, label %1250

1177:                                             ; preds = %1172
  %1178 = add nsw i32 %test_count.promoted, 8
  %1179 = getelementptr inbounds i8, ptr %14, i64 252
  %1180 = load i8, ptr %1179, align 4
  %1181 = and i8 %1180, 1
  %.not356.7 = icmp eq i8 %1181, 0
  br i1 %.not356.7, label %1182, label %1250

1182:                                             ; preds = %1177
  %1183 = add nsw i32 %test_count.promoted, 9
  %1184 = getelementptr inbounds i8, ptr %14, i64 284
  %1185 = load i8, ptr %1184, align 4
  %1186 = and i8 %1185, 1
  %.not356.8 = icmp eq i8 %1186, 0
  br i1 %.not356.8, label %1187, label %1250

1187:                                             ; preds = %1182
  %1188 = add nsw i32 %test_count.promoted, 10
  %1189 = getelementptr inbounds i8, ptr %14, i64 316
  %1190 = load i8, ptr %1189, align 4
  %1191 = and i8 %1190, 1
  %.not356.9 = icmp eq i8 %1191, 0
  br i1 %.not356.9, label %1192, label %1250

1192:                                             ; preds = %1187
  %1193 = add nsw i32 %test_count.promoted, 11
  %1194 = getelementptr inbounds i8, ptr %14, i64 348
  %1195 = load i8, ptr %1194, align 4
  %1196 = and i8 %1195, 1
  %.not356.10 = icmp eq i8 %1196, 0
  br i1 %.not356.10, label %1197, label %1250

1197:                                             ; preds = %1192
  %1198 = add nsw i32 %test_count.promoted, 12
  %1199 = getelementptr inbounds i8, ptr %14, i64 380
  %1200 = load i8, ptr %1199, align 4
  %1201 = and i8 %1200, 1
  %.not356.11 = icmp eq i8 %1201, 0
  br i1 %.not356.11, label %1202, label %1250

1202:                                             ; preds = %1197
  %1203 = add nsw i32 %test_count.promoted, 13
  %1204 = getelementptr inbounds i8, ptr %14, i64 412
  %1205 = load i8, ptr %1204, align 4
  %1206 = and i8 %1205, 1
  %.not356.12 = icmp eq i8 %1206, 0
  br i1 %.not356.12, label %1207, label %1250

1207:                                             ; preds = %1202
  %1208 = add nsw i32 %test_count.promoted, 14
  %1209 = getelementptr inbounds i8, ptr %14, i64 444
  %1210 = load i8, ptr %1209, align 4
  %1211 = and i8 %1210, 1
  %.not356.13 = icmp eq i8 %1211, 0
  br i1 %.not356.13, label %1212, label %1250

1212:                                             ; preds = %1207
  %1213 = add nsw i32 %test_count.promoted, 15
  %1214 = getelementptr inbounds i8, ptr %14, i64 476
  %1215 = load i8, ptr %1214, align 4
  %1216 = and i8 %1215, 1
  %.not356.14 = icmp eq i8 %1216, 0
  br i1 %.not356.14, label %1217, label %1250

1217:                                             ; preds = %1212
  %1218 = add nsw i32 %test_count.promoted, 16
  %1219 = getelementptr inbounds i8, ptr %14, i64 508
  %1220 = load i8, ptr %1219, align 4
  %1221 = and i8 %1220, 1
  %.not356.15 = icmp eq i8 %1221, 0
  br i1 %.not356.15, label %1222, label %1250

1222:                                             ; preds = %1217
  %1223 = add nsw i32 %test_count.promoted, 17
  %1224 = getelementptr inbounds i8, ptr %14, i64 540
  %1225 = load i8, ptr %1224, align 4
  %1226 = and i8 %1225, 1
  %.not356.16 = icmp eq i8 %1226, 0
  br i1 %.not356.16, label %1227, label %1250

1227:                                             ; preds = %1222
  %1228 = add nsw i32 %test_count.promoted, 18
  %1229 = getelementptr inbounds i8, ptr %14, i64 572
  %1230 = load i8, ptr %1229, align 4
  %1231 = and i8 %1230, 1
  %.not356.17 = icmp eq i8 %1231, 0
  br i1 %.not356.17, label %1232, label %1250

1232:                                             ; preds = %1227
  %1233 = add nsw i32 %test_count.promoted, 19
  %1234 = getelementptr inbounds i8, ptr %14, i64 604
  %1235 = load i8, ptr %1234, align 4
  %1236 = and i8 %1235, 1
  %.not356.18 = icmp eq i8 %1236, 0
  br i1 %.not356.18, label %1237, label %1250

1237:                                             ; preds = %1232
  %1238 = getelementptr inbounds i8, ptr %14, i64 636
  %1239 = load i8, ptr %1238, align 4
  %1240 = and i8 %1239, 1
  %.not356.19 = icmp eq i8 %1240, 0
  br i1 %.not356.19, label %1241, label %1250

1241:                                             ; preds = %1237
  %1242 = add nsw i32 %test_count.promoted, 21
  %1243 = getelementptr inbounds i8, ptr %14, i64 668
  %1244 = load i8, ptr %1243, align 4
  %1245 = and i8 %1244, 1
  %.not356.20 = icmp eq i8 %1245, 0
  br i1 %.not356.20, label %1246, label %1250

1246:                                             ; preds = %1241
  %1247 = add i32 %test_count.promoted, 22
  store i32 %1247, ptr @test_count, align 4, !tbaa !5
  %1248 = load i8, ptr @received_flag, align 1, !tbaa !11, !range !13, !noundef !14
  %1249 = trunc nuw i8 %1248 to i1
  br i1 %1249, label %1272, label %1294

1250:                                             ; preds = %1241, %1237, %1232, %1227, %1222, %1217, %1212, %1207, %1202, %1197, %1192, %1187, %1182, %1177, %1172, %1167, %1162, %1157, %1152, %1147, %1141
  %.lcssa403 = phi i32 [ %1143, %1141 ], [ %1148, %1147 ], [ %1153, %1152 ], [ %1158, %1157 ], [ %1163, %1162 ], [ %1168, %1167 ], [ %1173, %1172 ], [ %1178, %1177 ], [ %1183, %1182 ], [ %1188, %1187 ], [ %1193, %1192 ], [ %1198, %1197 ], [ %1203, %1202 ], [ %1208, %1207 ], [ %1213, %1212 ], [ %1218, %1217 ], [ %1223, %1222 ], [ %1228, %1227 ], [ %1233, %1232 ], [ %1142, %1237 ], [ %1242, %1241 ]
  store i32 %.lcssa403, ptr @test_count, align 4, !tbaa !5
  %1251 = load i32, ptr %292, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 @s2n_print_stacktrace(ptr noundef %1252) #10
  %1254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1255 = trunc nuw i8 %1254 to i1
  br i1 %1255, label %1256, label %1260

1256:                                             ; preds = %1250
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = call i32 @fileno(ptr noundef %1257) #10
  %1259 = call i32 @isatty(i32 noundef %1258) #10
  %.not357 = icmp eq i32 %1259, 0
  br i1 %.not357, label %1260, label %1261

1260:                                             ; preds = %1256, %1250
  br label %1261

1261:                                             ; preds = %1256, %1260
  %.str.5.sink780 = phi ptr [ @.str.5, %1260 ], [ @.str.2, %1256 ]
  store i32 %1251, ptr %292, align 4, !tbaa !5
  %1262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1263 = load i32, ptr @test_count, align 4, !tbaa !5
  %1264 = load i32, ptr %238, align 4, !tbaa !5
  %1265 = call ptr @s2n_strerror(i32 noundef %1264, ptr noundef nonnull @.str.4) #10
  %1266 = load i32, ptr %238, align 4, !tbaa !5
  %1267 = call ptr @s2n_strerror_debug(i32 noundef %1266, ptr noundef nonnull @.str.4) #10
  %1268 = load i32, ptr %292, align 4, !tbaa !5
  %1269 = call ptr @strerror(i32 noundef %1268) #10
  %1270 = load i32, ptr %292, align 4, !tbaa !5
  %1271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1262, ptr noundef nonnull %.str.5.sink780, i32 noundef %1263, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %1265, ptr noundef %1267, ptr noundef %1269, i32 noundef %1270) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1272:                                             ; preds = %1246
  %1273 = load i32, ptr %292, align 4, !tbaa !5
  %1274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1275 = call i32 @s2n_print_stacktrace(ptr noundef %1274) #10
  %1276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1277 = trunc nuw i8 %1276 to i1
  br i1 %1277, label %1278, label %1282

1278:                                             ; preds = %1272
  %1279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1280 = call i32 @fileno(ptr noundef %1279) #10
  %1281 = call i32 @isatty(i32 noundef %1280) #10
  %.not355 = icmp eq i32 %1281, 0
  br i1 %.not355, label %1282, label %1283

1282:                                             ; preds = %1278, %1272
  br label %1283

1283:                                             ; preds = %1278, %1282
  %.str.5.sink789 = phi ptr [ @.str.5, %1282 ], [ @.str.2, %1278 ]
  store i32 %1273, ptr %292, align 4, !tbaa !5
  %1284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1285 = load i32, ptr @test_count, align 4, !tbaa !5
  %1286 = load i32, ptr %238, align 4, !tbaa !5
  %1287 = call ptr @s2n_strerror(i32 noundef %1286, ptr noundef nonnull @.str.4) #10
  %1288 = load i32, ptr %238, align 4, !tbaa !5
  %1289 = call ptr @s2n_strerror_debug(i32 noundef %1288, ptr noundef nonnull @.str.4) #10
  %1290 = load i32, ptr %292, align 4, !tbaa !5
  %1291 = call ptr @strerror(i32 noundef %1290) #10
  %1292 = load i32, ptr %292, align 4, !tbaa !5
  %1293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1284, ptr noundef nonnull %.str.5.sink789, i32 noundef %1285, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %1287, ptr noundef %1289, ptr noundef %1291, i32 noundef %1292) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1294:                                             ; preds = %1246
  %1295 = add i32 %test_count.promoted, 23
  store i32 %1295, ptr @test_count, align 4, !tbaa !5
  %1296 = call i32 @s2n_connection_free(ptr noundef nonnull %1034) #10
  %1297 = icmp eq i32 %1296, -1
  br i1 %1297, label %1298, label %1320

1298:                                             ; preds = %1294
  %1299 = load i32, ptr %292, align 4, !tbaa !5
  %1300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1301 = call i32 @s2n_print_stacktrace(ptr noundef %1300) #10
  %1302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1303 = trunc nuw i8 %1302 to i1
  br i1 %1303, label %1304, label %1308

1304:                                             ; preds = %1298
  %1305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1306 = call i32 @fileno(ptr noundef %1305) #10
  %1307 = call i32 @isatty(i32 noundef %1306) #10
  %.not354 = icmp eq i32 %1307, 0
  br i1 %.not354, label %1308, label %1309

1308:                                             ; preds = %1304, %1298
  br label %1309

1309:                                             ; preds = %1304, %1308
  %.str.5.sink798 = phi ptr [ @.str.5, %1308 ], [ @.str.2, %1304 ]
  store i32 %1299, ptr %292, align 4, !tbaa !5
  %1310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1311 = load i32, ptr @test_count, align 4, !tbaa !5
  %1312 = load i32, ptr %238, align 4, !tbaa !5
  %1313 = call ptr @s2n_strerror(i32 noundef %1312, ptr noundef nonnull @.str.4) #10
  %1314 = load i32, ptr %238, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror_debug(i32 noundef %1314, ptr noundef nonnull @.str.4) #10
  %1316 = load i32, ptr %292, align 4, !tbaa !5
  %1317 = call ptr @strerror(i32 noundef %1316) #10
  %1318 = load i32, ptr %292, align 4, !tbaa !5
  %1319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1310, ptr noundef nonnull %.str.5.sink798, i32 noundef %1311, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 191, ptr noundef %1313, ptr noundef %1315, ptr noundef %1317, i32 noundef %1318) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1320:                                             ; preds = %1294
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %.sroa.0)
  call void @llvm.lifetime.end.p0(i64 704, ptr nonnull %14) #10
  call void @llvm.lifetime.start.p0(i64 704, ptr nonnull %15) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(704) %15, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %16) #10
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.test_required_extension_type, i64 32, i1 false)
  %1321 = getelementptr inbounds i8, ptr %16, i64 32
  store ptr @s2n_extension_error_if_missing, ptr %1321, align 8, !tbaa !21
  %1322 = load i32, ptr @test_count, align 4, !tbaa !5
  %1323 = add nsw i32 %1322, 1
  store i32 %1323, ptr @test_count, align 4, !tbaa !5
  %1324 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %1325 = icmp eq ptr %1324, null
  br i1 %1325, label %1326, label %1348

1326:                                             ; preds = %1320
  %1327 = load i32, ptr %292, align 4, !tbaa !5
  %1328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1329 = call i32 @s2n_print_stacktrace(ptr noundef %1328) #10
  %1330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1331 = trunc nuw i8 %1330 to i1
  br i1 %1331, label %1332, label %1336

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

1336:                                             ; preds = %1332, %1326
  br label %1337

1337:                                             ; preds = %1332, %1336
  %.str.5.sink807 = phi ptr [ @.str.5, %1336 ], [ @.str.2, %1332 ]
  store i32 %1327, ptr %292, align 4, !tbaa !5
  %1338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1339 = load i32, ptr @test_count, align 4, !tbaa !5
  %1340 = load i32, ptr %238, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror(i32 noundef %1340, ptr noundef nonnull @.str.4) #10
  %1342 = load i32, ptr %238, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror_debug(i32 noundef %1342, ptr noundef nonnull @.str.4) #10
  %1344 = load i32, ptr %292, align 4, !tbaa !5
  %1345 = call ptr @strerror(i32 noundef %1344) #10
  %1346 = load i32, ptr %292, align 4, !tbaa !5
  %1347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1338, ptr noundef nonnull %.str.5.sink807, i32 noundef %1339, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %1341, ptr noundef %1343, ptr noundef %1345, i32 noundef %1346) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1348:                                             ; preds = %1320
  store i8 0, ptr @received_flag, align 1, !tbaa !11
  %1349 = load i32, ptr @test_count, align 4, !tbaa !5
  %1350 = add nsw i32 %1349, 1
  store i32 %1350, ptr @test_count, align 4, !tbaa !5
  %1351 = call i32 @s2n_extension_process(ptr noundef nonnull %16, ptr noundef nonnull %1324, ptr noundef nonnull %15) #10
  %1352 = icmp eq i32 %1351, -1
  br i1 %1352, label %1375, label %1353

1353:                                             ; preds = %1348
  %1354 = load i32, ptr %292, align 4, !tbaa !5
  %1355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1356 = call i32 @s2n_print_stacktrace(ptr noundef %1355) #10
  %1357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1358 = trunc nuw i8 %1357 to i1
  br i1 %1358, label %1359, label %1363

1359:                                             ; preds = %1353
  %1360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1361 = call i32 @fileno(ptr noundef %1360) #10
  %1362 = call i32 @isatty(i32 noundef %1361) #10
  %.not286 = icmp eq i32 %1362, 0
  br i1 %.not286, label %1363, label %1364

1363:                                             ; preds = %1359, %1353
  br label %1364

1364:                                             ; preds = %1359, %1363
  %.str.5.sink816 = phi ptr [ @.str.5, %1363 ], [ @.str.2, %1359 ]
  store i32 %1354, ptr %292, align 4, !tbaa !5
  %1365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1366 = load i32, ptr @test_count, align 4, !tbaa !5
  %1367 = load i32, ptr %238, align 4, !tbaa !5
  %1368 = call ptr @s2n_strerror(i32 noundef %1367, ptr noundef nonnull @.str.4) #10
  %1369 = load i32, ptr %238, align 4, !tbaa !5
  %1370 = call ptr @s2n_strerror_debug(i32 noundef %1369, ptr noundef nonnull @.str.4) #10
  %1371 = load i32, ptr %292, align 4, !tbaa !5
  %1372 = call ptr @strerror(i32 noundef %1371) #10
  %1373 = load i32, ptr %292, align 4, !tbaa !5
  %1374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1365, ptr noundef nonnull %.str.5.sink816, i32 noundef %1366, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %1368, ptr noundef %1370, ptr noundef %1372, i32 noundef %1373) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1375:                                             ; preds = %1348
  %1376 = load i32, ptr @test_count, align 4, !tbaa !5
  %1377 = add nsw i32 %1376, 1
  store i32 %1377, ptr @test_count, align 4, !tbaa !5
  %1378 = load i32, ptr %238, align 4, !tbaa !5
  %1379 = icmp eq i32 %1378, 335544393
  br i1 %1379, label %1402, label %1380

1380:                                             ; preds = %1375
  %1381 = load i32, ptr %292, align 4, !tbaa !5
  %1382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1383 = call i32 @s2n_print_stacktrace(ptr noundef %1382) #10
  %1384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1385 = trunc nuw i8 %1384 to i1
  br i1 %1385, label %1386, label %1390

1386:                                             ; preds = %1380
  %1387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1388 = call i32 @fileno(ptr noundef %1387) #10
  %1389 = call i32 @isatty(i32 noundef %1388) #10
  %.not287 = icmp eq i32 %1389, 0
  br i1 %.not287, label %1390, label %1391

1390:                                             ; preds = %1386, %1380
  br label %1391

1391:                                             ; preds = %1386, %1390
  %.str.5.sink825 = phi ptr [ @.str.5, %1390 ], [ @.str.2, %1386 ]
  store i32 %1381, ptr %292, align 4, !tbaa !5
  %1392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1393 = load i32, ptr @test_count, align 4, !tbaa !5
  %1394 = load i32, ptr %238, align 4, !tbaa !5
  %1395 = call ptr @s2n_strerror(i32 noundef %1394, ptr noundef nonnull @.str.4) #10
  %1396 = load i32, ptr %238, align 4, !tbaa !5
  %1397 = call ptr @s2n_strerror_debug(i32 noundef %1396, ptr noundef nonnull @.str.4) #10
  %1398 = load i32, ptr %292, align 4, !tbaa !5
  %1399 = call ptr @strerror(i32 noundef %1398) #10
  %1400 = load i32, ptr %292, align 4, !tbaa !5
  %1401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1392, ptr noundef nonnull %.str.5.sink825, i32 noundef %1393, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %1395, ptr noundef %1397, ptr noundef %1399, i32 noundef %1400) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1402:                                             ; preds = %1375
  %1403 = add nsw i32 %1376, 2
  store i32 %1403, ptr @test_count, align 4, !tbaa !5
  %1404 = call ptr @s2n_strerror_debug(i32 noundef 335544393, ptr noundef nonnull @.str.4) #10
  %1405 = icmp eq ptr %1404, null
  br i1 %1405, label %1406, label %1428

1406:                                             ; preds = %1402
  %1407 = load i32, ptr %292, align 4, !tbaa !5
  %1408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1409 = call i32 @s2n_print_stacktrace(ptr noundef %1408) #10
  %1410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1411 = trunc nuw i8 %1410 to i1
  br i1 %1411, label %1412, label %1416

1412:                                             ; preds = %1406
  %1413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1414 = call i32 @fileno(ptr noundef %1413) #10
  %1415 = call i32 @isatty(i32 noundef %1414) #10
  %.not352 = icmp eq i32 %1415, 0
  br i1 %.not352, label %1416, label %1417

1416:                                             ; preds = %1412, %1406
  br label %1417

1417:                                             ; preds = %1412, %1416
  %.str.5.sink834 = phi ptr [ @.str.5, %1416 ], [ @.str.2, %1412 ]
  store i32 %1407, ptr %292, align 4, !tbaa !5
  %1418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1419 = load i32, ptr @test_count, align 4, !tbaa !5
  %1420 = load i32, ptr %238, align 4, !tbaa !5
  %1421 = call ptr @s2n_strerror(i32 noundef %1420, ptr noundef nonnull @.str.4) #10
  %1422 = load i32, ptr %238, align 4, !tbaa !5
  %1423 = call ptr @s2n_strerror_debug(i32 noundef %1422, ptr noundef nonnull @.str.4) #10
  %1424 = load i32, ptr %292, align 4, !tbaa !5
  %1425 = call ptr @strerror(i32 noundef %1424) #10
  %1426 = load i32, ptr %292, align 4, !tbaa !5
  %1427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1418, ptr noundef nonnull %.str.5.sink834, i32 noundef %1419, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %1421, ptr noundef %1423, ptr noundef %1425, i32 noundef %1426) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1428:                                             ; preds = %1402
  store i32 0, ptr %238, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %292, align 4, !tbaa !5
  %test_count.promoted388 = load i32, ptr @test_count, align 4, !tbaa !5
  %1429 = add i32 %test_count.promoted388, 20
  %1430 = add nsw i32 %test_count.promoted388, 1
  %1431 = getelementptr inbounds i8, ptr %15, i64 28
  %1432 = load i8, ptr %1431, align 4
  %1433 = and i8 %1432, 1
  %.not350 = icmp eq i8 %1433, 0
  br i1 %.not350, label %1434, label %1537

1434:                                             ; preds = %1428
  %1435 = add nsw i32 %test_count.promoted388, 2
  %1436 = getelementptr inbounds i8, ptr %15, i64 60
  %1437 = load i8, ptr %1436, align 4
  %1438 = and i8 %1437, 1
  %.not350.1 = icmp eq i8 %1438, 0
  br i1 %.not350.1, label %1439, label %1537

1439:                                             ; preds = %1434
  %1440 = add nsw i32 %test_count.promoted388, 3
  %1441 = getelementptr inbounds i8, ptr %15, i64 92
  %1442 = load i8, ptr %1441, align 4
  %1443 = and i8 %1442, 1
  %.not350.2 = icmp eq i8 %1443, 0
  br i1 %.not350.2, label %1444, label %1537

1444:                                             ; preds = %1439
  %1445 = add nsw i32 %test_count.promoted388, 4
  %1446 = getelementptr inbounds i8, ptr %15, i64 124
  %1447 = load i8, ptr %1446, align 4
  %1448 = and i8 %1447, 1
  %.not350.3 = icmp eq i8 %1448, 0
  br i1 %.not350.3, label %1449, label %1537

1449:                                             ; preds = %1444
  %1450 = add nsw i32 %test_count.promoted388, 5
  %1451 = getelementptr inbounds i8, ptr %15, i64 156
  %1452 = load i8, ptr %1451, align 4
  %1453 = and i8 %1452, 1
  %.not350.4 = icmp eq i8 %1453, 0
  br i1 %.not350.4, label %1454, label %1537

1454:                                             ; preds = %1449
  %1455 = add nsw i32 %test_count.promoted388, 6
  %1456 = getelementptr inbounds i8, ptr %15, i64 188
  %1457 = load i8, ptr %1456, align 4
  %1458 = and i8 %1457, 1
  %.not350.5 = icmp eq i8 %1458, 0
  br i1 %.not350.5, label %1459, label %1537

1459:                                             ; preds = %1454
  %1460 = add nsw i32 %test_count.promoted388, 7
  %1461 = getelementptr inbounds i8, ptr %15, i64 220
  %1462 = load i8, ptr %1461, align 4
  %1463 = and i8 %1462, 1
  %.not350.6 = icmp eq i8 %1463, 0
  br i1 %.not350.6, label %1464, label %1537

1464:                                             ; preds = %1459
  %1465 = add nsw i32 %test_count.promoted388, 8
  %1466 = getelementptr inbounds i8, ptr %15, i64 252
  %1467 = load i8, ptr %1466, align 4
  %1468 = and i8 %1467, 1
  %.not350.7 = icmp eq i8 %1468, 0
  br i1 %.not350.7, label %1469, label %1537

1469:                                             ; preds = %1464
  %1470 = add nsw i32 %test_count.promoted388, 9
  %1471 = getelementptr inbounds i8, ptr %15, i64 284
  %1472 = load i8, ptr %1471, align 4
  %1473 = and i8 %1472, 1
  %.not350.8 = icmp eq i8 %1473, 0
  br i1 %.not350.8, label %1474, label %1537

1474:                                             ; preds = %1469
  %1475 = add nsw i32 %test_count.promoted388, 10
  %1476 = getelementptr inbounds i8, ptr %15, i64 316
  %1477 = load i8, ptr %1476, align 4
  %1478 = and i8 %1477, 1
  %.not350.9 = icmp eq i8 %1478, 0
  br i1 %.not350.9, label %1479, label %1537

1479:                                             ; preds = %1474
  %1480 = add nsw i32 %test_count.promoted388, 11
  %1481 = getelementptr inbounds i8, ptr %15, i64 348
  %1482 = load i8, ptr %1481, align 4
  %1483 = and i8 %1482, 1
  %.not350.10 = icmp eq i8 %1483, 0
  br i1 %.not350.10, label %1484, label %1537

1484:                                             ; preds = %1479
  %1485 = add nsw i32 %test_count.promoted388, 12
  %1486 = getelementptr inbounds i8, ptr %15, i64 380
  %1487 = load i8, ptr %1486, align 4
  %1488 = and i8 %1487, 1
  %.not350.11 = icmp eq i8 %1488, 0
  br i1 %.not350.11, label %1489, label %1537

1489:                                             ; preds = %1484
  %1490 = add nsw i32 %test_count.promoted388, 13
  %1491 = getelementptr inbounds i8, ptr %15, i64 412
  %1492 = load i8, ptr %1491, align 4
  %1493 = and i8 %1492, 1
  %.not350.12 = icmp eq i8 %1493, 0
  br i1 %.not350.12, label %1494, label %1537

1494:                                             ; preds = %1489
  %1495 = add nsw i32 %test_count.promoted388, 14
  %1496 = getelementptr inbounds i8, ptr %15, i64 444
  %1497 = load i8, ptr %1496, align 4
  %1498 = and i8 %1497, 1
  %.not350.13 = icmp eq i8 %1498, 0
  br i1 %.not350.13, label %1499, label %1537

1499:                                             ; preds = %1494
  %1500 = add nsw i32 %test_count.promoted388, 15
  %1501 = getelementptr inbounds i8, ptr %15, i64 476
  %1502 = load i8, ptr %1501, align 4
  %1503 = and i8 %1502, 1
  %.not350.14 = icmp eq i8 %1503, 0
  br i1 %.not350.14, label %1504, label %1537

1504:                                             ; preds = %1499
  %1505 = add nsw i32 %test_count.promoted388, 16
  %1506 = getelementptr inbounds i8, ptr %15, i64 508
  %1507 = load i8, ptr %1506, align 4
  %1508 = and i8 %1507, 1
  %.not350.15 = icmp eq i8 %1508, 0
  br i1 %.not350.15, label %1509, label %1537

1509:                                             ; preds = %1504
  %1510 = add nsw i32 %test_count.promoted388, 17
  %1511 = getelementptr inbounds i8, ptr %15, i64 540
  %1512 = load i8, ptr %1511, align 4
  %1513 = and i8 %1512, 1
  %.not350.16 = icmp eq i8 %1513, 0
  br i1 %.not350.16, label %1514, label %1537

1514:                                             ; preds = %1509
  %1515 = add nsw i32 %test_count.promoted388, 18
  %1516 = getelementptr inbounds i8, ptr %15, i64 572
  %1517 = load i8, ptr %1516, align 4
  %1518 = and i8 %1517, 1
  %.not350.17 = icmp eq i8 %1518, 0
  br i1 %.not350.17, label %1519, label %1537

1519:                                             ; preds = %1514
  %1520 = add nsw i32 %test_count.promoted388, 19
  %1521 = getelementptr inbounds i8, ptr %15, i64 604
  %1522 = load i8, ptr %1521, align 4
  %1523 = and i8 %1522, 1
  %.not350.18 = icmp eq i8 %1523, 0
  br i1 %.not350.18, label %1524, label %1537

1524:                                             ; preds = %1519
  %1525 = getelementptr inbounds i8, ptr %15, i64 636
  %1526 = load i8, ptr %1525, align 4
  %1527 = and i8 %1526, 1
  %.not350.19 = icmp eq i8 %1527, 0
  br i1 %.not350.19, label %1528, label %1537

1528:                                             ; preds = %1524
  %1529 = add nsw i32 %test_count.promoted388, 21
  %1530 = getelementptr inbounds i8, ptr %15, i64 668
  %1531 = load i8, ptr %1530, align 4
  %1532 = and i8 %1531, 1
  %.not350.20 = icmp eq i8 %1532, 0
  br i1 %.not350.20, label %1533, label %1537

1533:                                             ; preds = %1528
  %1534 = add i32 %test_count.promoted388, 22
  store i32 %1534, ptr @test_count, align 4, !tbaa !5
  %1535 = load i8, ptr @received_flag, align 1, !tbaa !11, !range !13, !noundef !14
  %1536 = trunc nuw i8 %1535 to i1
  br i1 %1536, label %1559, label %1581

1537:                                             ; preds = %1528, %1524, %1519, %1514, %1509, %1504, %1499, %1494, %1489, %1484, %1479, %1474, %1469, %1464, %1459, %1454, %1449, %1444, %1439, %1434, %1428
  %.lcssa399 = phi i32 [ %1430, %1428 ], [ %1435, %1434 ], [ %1440, %1439 ], [ %1445, %1444 ], [ %1450, %1449 ], [ %1455, %1454 ], [ %1460, %1459 ], [ %1465, %1464 ], [ %1470, %1469 ], [ %1475, %1474 ], [ %1480, %1479 ], [ %1485, %1484 ], [ %1490, %1489 ], [ %1495, %1494 ], [ %1500, %1499 ], [ %1505, %1504 ], [ %1510, %1509 ], [ %1515, %1514 ], [ %1520, %1519 ], [ %1429, %1524 ], [ %1529, %1528 ]
  store i32 %.lcssa399, ptr @test_count, align 4, !tbaa !5
  %1538 = load i32, ptr %292, align 4, !tbaa !5
  %1539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1540 = call i32 @s2n_print_stacktrace(ptr noundef %1539) #10
  %1541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1542 = trunc nuw i8 %1541 to i1
  br i1 %1542, label %1543, label %1547

1543:                                             ; preds = %1537
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = call i32 @fileno(ptr noundef %1544) #10
  %1546 = call i32 @isatty(i32 noundef %1545) #10
  %.not351 = icmp eq i32 %1546, 0
  br i1 %.not351, label %1547, label %1548

1547:                                             ; preds = %1543, %1537
  br label %1548

1548:                                             ; preds = %1543, %1547
  %.str.5.sink843 = phi ptr [ @.str.5, %1547 ], [ @.str.2, %1543 ]
  store i32 %1538, ptr %292, align 4, !tbaa !5
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = load i32, ptr @test_count, align 4, !tbaa !5
  %1551 = load i32, ptr %238, align 4, !tbaa !5
  %1552 = call ptr @s2n_strerror(i32 noundef %1551, ptr noundef nonnull @.str.4) #10
  %1553 = load i32, ptr %238, align 4, !tbaa !5
  %1554 = call ptr @s2n_strerror_debug(i32 noundef %1553, ptr noundef nonnull @.str.4) #10
  %1555 = load i32, ptr %292, align 4, !tbaa !5
  %1556 = call ptr @strerror(i32 noundef %1555) #10
  %1557 = load i32, ptr %292, align 4, !tbaa !5
  %1558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1549, ptr noundef nonnull %.str.5.sink843, i32 noundef %1550, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 210, ptr noundef %1552, ptr noundef %1554, ptr noundef %1556, i32 noundef %1557) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1559:                                             ; preds = %1533
  %1560 = load i32, ptr %292, align 4, !tbaa !5
  %1561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1562 = call i32 @s2n_print_stacktrace(ptr noundef %1561) #10
  %1563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1564 = trunc nuw i8 %1563 to i1
  br i1 %1564, label %1565, label %1569

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

1569:                                             ; preds = %1565, %1559
  br label %1570

1570:                                             ; preds = %1565, %1569
  %.str.5.sink852 = phi ptr [ @.str.5, %1569 ], [ @.str.2, %1565 ]
  store i32 %1560, ptr %292, align 4, !tbaa !5
  %1571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1572 = load i32, ptr @test_count, align 4, !tbaa !5
  %1573 = load i32, ptr %238, align 4, !tbaa !5
  %1574 = call ptr @s2n_strerror(i32 noundef %1573, ptr noundef nonnull @.str.4) #10
  %1575 = load i32, ptr %238, align 4, !tbaa !5
  %1576 = call ptr @s2n_strerror_debug(i32 noundef %1575, ptr noundef nonnull @.str.4) #10
  %1577 = load i32, ptr %292, align 4, !tbaa !5
  %1578 = call ptr @strerror(i32 noundef %1577) #10
  %1579 = load i32, ptr %292, align 4, !tbaa !5
  %1580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1571, ptr noundef nonnull %.str.5.sink852, i32 noundef %1572, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 211, ptr noundef %1574, ptr noundef %1576, ptr noundef %1578, i32 noundef %1579) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1581:                                             ; preds = %1533
  %1582 = add i32 %test_count.promoted388, 23
  store i32 %1582, ptr @test_count, align 4, !tbaa !5
  %1583 = call i32 @s2n_connection_free(ptr noundef nonnull %1324) #10
  %1584 = icmp eq i32 %1583, -1
  br i1 %1584, label %1585, label %1607

1585:                                             ; preds = %1581
  %1586 = load i32, ptr %292, align 4, !tbaa !5
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = call i32 @s2n_print_stacktrace(ptr noundef %1587) #10
  %1589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1590 = trunc nuw i8 %1589 to i1
  br i1 %1590, label %1591, label %1595

1591:                                             ; preds = %1585
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = call i32 @fileno(ptr noundef %1592) #10
  %1594 = call i32 @isatty(i32 noundef %1593) #10
  %.not348 = icmp eq i32 %1594, 0
  br i1 %.not348, label %1595, label %1596

1595:                                             ; preds = %1591, %1585
  br label %1596

1596:                                             ; preds = %1591, %1595
  %.str.5.sink861 = phi ptr [ @.str.5, %1595 ], [ @.str.2, %1591 ]
  store i32 %1586, ptr %292, align 4, !tbaa !5
  %1597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1598 = load i32, ptr @test_count, align 4, !tbaa !5
  %1599 = load i32, ptr %238, align 4, !tbaa !5
  %1600 = call ptr @s2n_strerror(i32 noundef %1599, ptr noundef nonnull @.str.4) #10
  %1601 = load i32, ptr %238, align 4, !tbaa !5
  %1602 = call ptr @s2n_strerror_debug(i32 noundef %1601, ptr noundef nonnull @.str.4) #10
  %1603 = load i32, ptr %292, align 4, !tbaa !5
  %1604 = call ptr @strerror(i32 noundef %1603) #10
  %1605 = load i32, ptr %292, align 4, !tbaa !5
  %1606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1597, ptr noundef nonnull %.str.5.sink861, i32 noundef %1598, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 213, ptr noundef %1600, ptr noundef %1602, ptr noundef %1604, i32 noundef %1605) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1607:                                             ; preds = %1581
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #10
  call void @llvm.lifetime.end.p0(i64 704, ptr nonnull %15) #10
  call void @llvm.lifetime.start.p0(i64 704, ptr nonnull %17) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(704) %17, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %18) #10
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %18, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.test_optional_extension_type, i64 32, i1 false)
  %1608 = getelementptr inbounds i8, ptr %18, i64 32
  store ptr @s2n_extension_noop_if_missing, ptr %1608, align 8, !tbaa !21
  %1609 = load i32, ptr @test_count, align 4, !tbaa !5
  %1610 = add nsw i32 %1609, 1
  store i32 %1610, ptr @test_count, align 4, !tbaa !5
  %1611 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %1612 = icmp eq ptr %1611, null
  br i1 %1612, label %1613, label %1635

1613:                                             ; preds = %1607
  %1614 = load i32, ptr %292, align 4, !tbaa !5
  %1615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1616 = call i32 @s2n_print_stacktrace(ptr noundef %1615) #10
  %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) #10
  %1622 = call i32 @isatty(i32 noundef %1621) #10
  %.not347 = icmp eq i32 %1622, 0
  br i1 %.not347, label %1623, label %1624

1623:                                             ; preds = %1619, %1613
  br label %1624

1624:                                             ; preds = %1619, %1623
  %.str.5.sink870 = phi ptr [ @.str.5, %1623 ], [ @.str.2, %1619 ]
  store i32 %1614, ptr %292, 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 %238, align 4, !tbaa !5
  %1628 = call ptr @s2n_strerror(i32 noundef %1627, ptr noundef nonnull @.str.4) #10
  %1629 = load i32, ptr %238, align 4, !tbaa !5
  %1630 = call ptr @s2n_strerror_debug(i32 noundef %1629, ptr noundef nonnull @.str.4) #10
  %1631 = load i32, ptr %292, align 4, !tbaa !5
  %1632 = call ptr @strerror(i32 noundef %1631) #10
  %1633 = load i32, ptr %292, align 4, !tbaa !5
  %1634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1625, ptr noundef nonnull %.str.5.sink870, i32 noundef %1626, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %1628, ptr noundef %1630, ptr noundef %1632, i32 noundef %1633) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1635:                                             ; preds = %1607
  store i8 0, ptr @received_flag, align 1, !tbaa !11
  %1636 = load i32, ptr @test_count, align 4, !tbaa !5
  %1637 = add nsw i32 %1636, 1
  store i32 %1637, ptr @test_count, align 4, !tbaa !5
  %1638 = call i32 @s2n_extension_process(ptr noundef nonnull %18, ptr noundef nonnull %1611, ptr noundef nonnull %17) #10
  %1639 = icmp eq i32 %1638, -1
  br i1 %1639, label %1640, label %1662

1640:                                             ; preds = %1635
  %1641 = load i32, ptr %292, align 4, !tbaa !5
  %1642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1643 = call i32 @s2n_print_stacktrace(ptr noundef %1642) #10
  %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) #10
  %1649 = call i32 @isatty(i32 noundef %1648) #10
  %.not346 = icmp eq i32 %1649, 0
  br i1 %.not346, label %1650, label %1651

1650:                                             ; preds = %1646, %1640
  br label %1651

1651:                                             ; preds = %1646, %1650
  %.str.5.sink879 = phi ptr [ @.str.5, %1650 ], [ @.str.2, %1646 ]
  store i32 %1641, ptr %292, 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 %238, align 4, !tbaa !5
  %1655 = call ptr @s2n_strerror(i32 noundef %1654, ptr noundef nonnull @.str.4) #10
  %1656 = load i32, ptr %238, align 4, !tbaa !5
  %1657 = call ptr @s2n_strerror_debug(i32 noundef %1656, ptr noundef nonnull @.str.4) #10
  %1658 = load i32, ptr %292, align 4, !tbaa !5
  %1659 = call ptr @strerror(i32 noundef %1658) #10
  %1660 = load i32, ptr %292, align 4, !tbaa !5
  %1661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1652, ptr noundef nonnull %.str.5.sink879, i32 noundef %1653, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %1655, ptr noundef %1657, ptr noundef %1659, i32 noundef %1660) #12
  call void @exit(i32 noundef 1) #13
  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 = load i8, ptr %4, align 1, !tbaa !15
  %1666 = zext i8 %1665 to i64
  %1667 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %17, i64 0, i64 %1666, i32 3
  %1668 = load i8, ptr %1667, align 4
  %1669 = and i8 %1668, 1
  %.not288 = icmp eq i8 %1669, 0
  br i1 %.not288, label %1670, label %1692

1670:                                             ; preds = %1662
  %1671 = load i32, ptr %292, align 4, !tbaa !5
  %1672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1673 = call i32 @s2n_print_stacktrace(ptr noundef %1672) #10
  %1674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1675 = trunc nuw i8 %1674 to i1
  br i1 %1675, label %1676, label %1680

1676:                                             ; preds = %1670
  %1677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1678 = call i32 @fileno(ptr noundef %1677) #10
  %1679 = call i32 @isatty(i32 noundef %1678) #10
  %.not289 = icmp eq i32 %1679, 0
  br i1 %.not289, label %1680, label %1681

1680:                                             ; preds = %1676, %1670
  br label %1681

1681:                                             ; preds = %1676, %1680
  %.str.5.sink888 = phi ptr [ @.str.5, %1680 ], [ @.str.2, %1676 ]
  store i32 %1671, ptr %292, align 4, !tbaa !5
  %1682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1683 = load i32, ptr @test_count, align 4, !tbaa !5
  %1684 = load i32, ptr %238, align 4, !tbaa !5
  %1685 = call ptr @s2n_strerror(i32 noundef %1684, ptr noundef nonnull @.str.4) #10
  %1686 = load i32, ptr %238, align 4, !tbaa !5
  %1687 = call ptr @s2n_strerror_debug(i32 noundef %1686, ptr noundef nonnull @.str.4) #10
  %1688 = load i32, ptr %292, align 4, !tbaa !5
  %1689 = call ptr @strerror(i32 noundef %1688) #10
  %1690 = load i32, ptr %292, align 4, !tbaa !5
  %1691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1682, ptr noundef nonnull %.str.5.sink888, i32 noundef %1683, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %1685, ptr noundef %1687, ptr noundef %1689, i32 noundef %1690) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1692:                                             ; preds = %1662
  %1693 = add nsw i32 %1663, 2
  store i32 %1693, ptr @test_count, align 4, !tbaa !5
  %1694 = load i8, ptr @received_flag, align 1, !tbaa !11, !range !13, !noundef !14
  %1695 = trunc nuw i8 %1694 to i1
  br i1 %1695, label %1696, label %1718

1696:                                             ; preds = %1692
  %1697 = load i32, ptr %292, align 4, !tbaa !5
  %1698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1699 = call i32 @s2n_print_stacktrace(ptr noundef %1698) #10
  %1700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1701 = trunc nuw i8 %1700 to i1
  br i1 %1701, label %1702, label %1706

1702:                                             ; preds = %1696
  %1703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1704 = call i32 @fileno(ptr noundef %1703) #10
  %1705 = call i32 @isatty(i32 noundef %1704) #10
  %.not345 = icmp eq i32 %1705, 0
  br i1 %.not345, label %1706, label %1707

1706:                                             ; preds = %1702, %1696
  br label %1707

1707:                                             ; preds = %1702, %1706
  %.str.5.sink897 = phi ptr [ @.str.5, %1706 ], [ @.str.2, %1702 ]
  store i32 %1697, ptr %292, align 4, !tbaa !5
  %1708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1709 = load i32, ptr @test_count, align 4, !tbaa !5
  %1710 = load i32, ptr %238, align 4, !tbaa !5
  %1711 = call ptr @s2n_strerror(i32 noundef %1710, ptr noundef nonnull @.str.4) #10
  %1712 = load i32, ptr %238, align 4, !tbaa !5
  %1713 = call ptr @s2n_strerror_debug(i32 noundef %1712, ptr noundef nonnull @.str.4) #10
  %1714 = load i32, ptr %292, align 4, !tbaa !5
  %1715 = call ptr @strerror(i32 noundef %1714) #10
  %1716 = load i32, ptr %292, align 4, !tbaa !5
  %1717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1708, ptr noundef nonnull %.str.5.sink897, i32 noundef %1709, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %1711, ptr noundef %1713, ptr noundef %1715, i32 noundef %1716) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1718:                                             ; preds = %1692
  %1719 = add nsw i32 %1663, 3
  store i32 %1719, ptr @test_count, align 4, !tbaa !5
  %1720 = call i32 @s2n_connection_free(ptr noundef nonnull %1611) #10
  %1721 = icmp eq i32 %1720, -1
  br i1 %1721, label %1722, label %1744

1722:                                             ; preds = %1718
  %1723 = load i32, ptr %292, align 4, !tbaa !5
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = call i32 @s2n_print_stacktrace(ptr noundef %1724) #10
  %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) #10
  %1731 = call i32 @isatty(i32 noundef %1730) #10
  %.not344 = icmp eq i32 %1731, 0
  br i1 %.not344, label %1732, label %1733

1732:                                             ; preds = %1728, %1722
  br label %1733

1733:                                             ; preds = %1728, %1732
  %.str.5.sink906 = phi ptr [ @.str.5, %1732 ], [ @.str.2, %1728 ]
  store i32 %1723, ptr %292, 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 %238, align 4, !tbaa !5
  %1737 = call ptr @s2n_strerror(i32 noundef %1736, ptr noundef nonnull @.str.4) #10
  %1738 = load i32, ptr %238, align 4, !tbaa !5
  %1739 = call ptr @s2n_strerror_debug(i32 noundef %1738, ptr noundef nonnull @.str.4) #10
  %1740 = load i32, ptr %292, align 4, !tbaa !5
  %1741 = call ptr @strerror(i32 noundef %1740) #10
  %1742 = load i32, ptr %292, align 4, !tbaa !5
  %1743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1734, ptr noundef nonnull %.str.5.sink906, i32 noundef %1735, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 232, ptr noundef %1737, ptr noundef %1739, ptr noundef %1741, i32 noundef %1742) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1744:                                             ; preds = %1718
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 704, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #10
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %1) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %19, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %20, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %21) #10
  %1745 = load i32, ptr @test_count, align 4, !tbaa !5
  %1746 = add nsw i32 %1745, 1
  store i32 %1746, ptr @test_count, align 4, !tbaa !5
  %1747 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %21, i32 noundef 100) #10
  %1748 = icmp eq i32 %1747, -1
  br i1 %1748, label %1749, label %1771

1749:                                             ; preds = %1744
  %1750 = load i32, ptr %292, align 4, !tbaa !5
  %1751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1752 = call i32 @s2n_print_stacktrace(ptr noundef %1751) #10
  %1753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1754 = trunc nuw i8 %1753 to i1
  br i1 %1754, label %1755, label %1759

1755:                                             ; preds = %1749
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = call i32 @fileno(ptr noundef %1756) #10
  %1758 = call i32 @isatty(i32 noundef %1757) #10
  %.not343 = icmp eq i32 %1758, 0
  br i1 %.not343, label %1759, label %1760

1759:                                             ; preds = %1755, %1749
  br label %1760

1760:                                             ; preds = %1755, %1759
  %.str.5.sink915 = phi ptr [ @.str.5, %1759 ], [ @.str.2, %1755 ]
  store i32 %1750, ptr %292, align 4, !tbaa !5
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = load i32, ptr @test_count, align 4, !tbaa !5
  %1763 = load i32, ptr %238, align 4, !tbaa !5
  %1764 = call ptr @s2n_strerror(i32 noundef %1763, ptr noundef nonnull @.str.4) #10
  %1765 = load i32, ptr %238, align 4, !tbaa !5
  %1766 = call ptr @s2n_strerror_debug(i32 noundef %1765, ptr noundef nonnull @.str.4) #10
  %1767 = load i32, ptr %292, align 4, !tbaa !5
  %1768 = call ptr @strerror(i32 noundef %1767) #10
  %1769 = load i32, ptr %292, align 4, !tbaa !5
  %1770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1761, ptr noundef nonnull %.str.5.sink915, i32 noundef %1762, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %1764, ptr noundef %1766, ptr noundef %1768, i32 noundef %1769) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1771:                                             ; preds = %1744
  %1772 = load i32, ptr @test_count, align 4, !tbaa !5
  %1773 = add nsw i32 %1772, 1
  store i32 %1773, ptr @test_count, align 4, !tbaa !5
  %1774 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %1775 = icmp eq ptr %1774, null
  br i1 %1775, label %1776, label %1798

1776:                                             ; preds = %1771
  %1777 = load i32, ptr %292, align 4, !tbaa !5
  %1778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1779 = call i32 @s2n_print_stacktrace(ptr noundef %1778) #10
  %1780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1781 = trunc nuw i8 %1780 to i1
  br i1 %1781, label %1782, label %1786

1782:                                             ; preds = %1776
  %1783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1784 = call i32 @fileno(ptr noundef %1783) #10
  %1785 = call i32 @isatty(i32 noundef %1784) #10
  %.not342 = icmp eq i32 %1785, 0
  br i1 %.not342, label %1786, label %1787

1786:                                             ; preds = %1782, %1776
  br label %1787

1787:                                             ; preds = %1782, %1786
  %.str.5.sink924 = phi ptr [ @.str.5, %1786 ], [ @.str.2, %1782 ]
  store i32 %1777, ptr %292, align 4, !tbaa !5
  %1788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1789 = load i32, ptr @test_count, align 4, !tbaa !5
  %1790 = load i32, ptr %238, align 4, !tbaa !5
  %1791 = call ptr @s2n_strerror(i32 noundef %1790, ptr noundef nonnull @.str.4) #10
  %1792 = load i32, ptr %238, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror_debug(i32 noundef %1792, ptr noundef nonnull @.str.4) #10
  %1794 = load i32, ptr %292, align 4, !tbaa !5
  %1795 = call ptr @strerror(i32 noundef %1794) #10
  %1796 = load i32, ptr %292, align 4, !tbaa !5
  %1797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1788, ptr noundef nonnull %.str.5.sink924, i32 noundef %1789, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 248, ptr noundef %1791, ptr noundef %1793, ptr noundef %1795, i32 noundef %1796) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1798:                                             ; preds = %1771
  %1799 = load i32, ptr @test_count, align 4, !tbaa !5
  %1800 = add nsw i32 %1799, 1
  store i32 %1800, ptr @test_count, align 4, !tbaa !5
  %1801 = call i32 @s2n_setup_test_parsed_extension(ptr noundef nonnull @s2n_server_server_name_extension, ptr noundef nonnull %19, ptr noundef nonnull %1774, ptr noundef nonnull %21)
  %1802 = icmp eq i32 %1801, -1
  br i1 %1802, label %1803, label %1825

1803:                                             ; preds = %1798
  %1804 = load i32, ptr %292, align 4, !tbaa !5
  %1805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1806 = call i32 @s2n_print_stacktrace(ptr noundef %1805) #10
  %1807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1808 = trunc nuw i8 %1807 to i1
  br i1 %1808, label %1809, label %1813

1809:                                             ; preds = %1803
  %1810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1811 = call i32 @fileno(ptr noundef %1810) #10
  %1812 = call i32 @isatty(i32 noundef %1811) #10
  %.not341 = icmp eq i32 %1812, 0
  br i1 %.not341, label %1813, label %1814

1813:                                             ; preds = %1809, %1803
  br label %1814

1814:                                             ; preds = %1809, %1813
  %.str.5.sink933 = phi ptr [ @.str.5, %1813 ], [ @.str.2, %1809 ]
  store i32 %1804, ptr %292, align 4, !tbaa !5
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1816 = load i32, ptr @test_count, align 4, !tbaa !5
  %1817 = load i32, ptr %238, align 4, !tbaa !5
  %1818 = call ptr @s2n_strerror(i32 noundef %1817, ptr noundef nonnull @.str.4) #10
  %1819 = load i32, ptr %238, align 4, !tbaa !5
  %1820 = call ptr @s2n_strerror_debug(i32 noundef %1819, ptr noundef nonnull @.str.4) #10
  %1821 = load i32, ptr %292, align 4, !tbaa !5
  %1822 = call ptr @strerror(i32 noundef %1821) #10
  %1823 = load i32, ptr %292, align 4, !tbaa !5
  %1824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1815, ptr noundef nonnull %.str.5.sink933, i32 noundef %1816, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 251, ptr noundef %1818, ptr noundef %1820, ptr noundef %1822, i32 noundef %1823) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1825:                                             ; preds = %1798
  %1826 = load i32, ptr @test_count, align 4, !tbaa !5
  %1827 = add nsw i32 %1826, 1
  store i32 %1827, ptr @test_count, align 4, !tbaa !5
  %1828 = getelementptr inbounds i8, ptr %19, i64 8
  %1829 = load i32, ptr %1828, align 8, !tbaa !23
  %1830 = icmp eq i32 %1829, 0
  br i1 %1830, label %1853, label %1831

1831:                                             ; preds = %1825
  %1832 = load i32, ptr %292, align 4, !tbaa !5
  %1833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1834 = call i32 @s2n_print_stacktrace(ptr noundef %1833) #10
  %1835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1836 = trunc nuw i8 %1835 to i1
  br i1 %1836, label %1837, label %1841

1837:                                             ; preds = %1831
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = call i32 @fileno(ptr noundef %1838) #10
  %1840 = call i32 @isatty(i32 noundef %1839) #10
  %.not290 = icmp eq i32 %1840, 0
  br i1 %.not290, label %1841, label %1842

1841:                                             ; preds = %1837, %1831
  br label %1842

1842:                                             ; preds = %1837, %1841
  %.str.5.sink942 = phi ptr [ @.str.5, %1841 ], [ @.str.2, %1837 ]
  store i32 %1832, ptr %292, align 4, !tbaa !5
  %1843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1844 = load i32, ptr @test_count, align 4, !tbaa !5
  %1845 = load i32, ptr %238, align 4, !tbaa !5
  %1846 = call ptr @s2n_strerror(i32 noundef %1845, ptr noundef nonnull @.str.4) #10
  %1847 = load i32, ptr %238, align 4, !tbaa !5
  %1848 = call ptr @s2n_strerror_debug(i32 noundef %1847, ptr noundef nonnull @.str.4) #10
  %1849 = load i32, ptr %292, align 4, !tbaa !5
  %1850 = call ptr @strerror(i32 noundef %1849) #10
  %1851 = load i32, ptr %292, align 4, !tbaa !5
  %1852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1843, ptr noundef nonnull %.str.5.sink942, i32 noundef %1844, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 252, ptr noundef %1846, ptr noundef %1848, ptr noundef %1850, i32 noundef %1851) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1853:                                             ; preds = %1825
  %1854 = add nsw i32 %1826, 2
  store i32 %1854, ptr @test_count, align 4, !tbaa !5
  %1855 = call i32 @s2n_setup_test_parsed_extension(ptr noundef nonnull @s2n_server_max_fragment_length_extension, ptr noundef nonnull %20, ptr noundef nonnull %1774, ptr noundef nonnull %21)
  %1856 = icmp eq i32 %1855, -1
  br i1 %1856, label %1857, label %1879

1857:                                             ; preds = %1853
  %1858 = load i32, ptr %292, align 4, !tbaa !5
  %1859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1860 = call i32 @s2n_print_stacktrace(ptr noundef %1859) #10
  %1861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1862 = trunc nuw i8 %1861 to i1
  br i1 %1862, label %1863, label %1867

1863:                                             ; preds = %1857
  %1864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1865 = call i32 @fileno(ptr noundef %1864) #10
  %1866 = call i32 @isatty(i32 noundef %1865) #10
  %.not340 = icmp eq i32 %1866, 0
  br i1 %.not340, label %1867, label %1868

1867:                                             ; preds = %1863, %1857
  br label %1868

1868:                                             ; preds = %1863, %1867
  %.str.5.sink951 = phi ptr [ @.str.5, %1867 ], [ @.str.2, %1863 ]
  store i32 %1858, ptr %292, align 4, !tbaa !5
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = load i32, ptr @test_count, align 4, !tbaa !5
  %1871 = load i32, ptr %238, align 4, !tbaa !5
  %1872 = call ptr @s2n_strerror(i32 noundef %1871, ptr noundef nonnull @.str.4) #10
  %1873 = load i32, ptr %238, align 4, !tbaa !5
  %1874 = call ptr @s2n_strerror_debug(i32 noundef %1873, ptr noundef nonnull @.str.4) #10
  %1875 = load i32, ptr %292, align 4, !tbaa !5
  %1876 = call ptr @strerror(i32 noundef %1875) #10
  %1877 = load i32, ptr %292, align 4, !tbaa !5
  %1878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1869, ptr noundef nonnull %.str.5.sink951, i32 noundef %1870, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %1872, ptr noundef %1874, ptr noundef %1876, i32 noundef %1877) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1879:                                             ; preds = %1853
  %1880 = load i32, ptr @test_count, align 4, !tbaa !5
  %1881 = add nsw i32 %1880, 1
  store i32 %1881, ptr @test_count, align 4, !tbaa !5
  %1882 = getelementptr inbounds i8, ptr %20, i64 8
  %1883 = load i32, ptr %1882, align 8, !tbaa !23
  %1884 = icmp eq i32 %1883, 0
  br i1 %1884, label %1885, label %1907

1885:                                             ; preds = %1879
  %1886 = load i32, ptr %292, align 4, !tbaa !5
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = call i32 @s2n_print_stacktrace(ptr noundef %1887) #10
  %1889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1890 = trunc nuw i8 %1889 to i1
  br i1 %1890, label %1891, label %1895

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

1895:                                             ; preds = %1891, %1885
  br label %1896

1896:                                             ; preds = %1891, %1895
  %.str.5.sink960 = phi ptr [ @.str.5, %1895 ], [ @.str.2, %1891 ]
  store i32 %1886, ptr %292, align 4, !tbaa !5
  %1897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1898 = load i32, ptr @test_count, align 4, !tbaa !5
  %1899 = load i32, ptr %238, align 4, !tbaa !5
  %1900 = call ptr @s2n_strerror(i32 noundef %1899, ptr noundef nonnull @.str.4) #10
  %1901 = load i32, ptr %238, align 4, !tbaa !5
  %1902 = call ptr @s2n_strerror_debug(i32 noundef %1901, ptr noundef nonnull @.str.4) #10
  %1903 = load i32, ptr %292, align 4, !tbaa !5
  %1904 = call ptr @strerror(i32 noundef %1903) #10
  %1905 = load i32, ptr %292, align 4, !tbaa !5
  %1906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1897, ptr noundef nonnull %.str.5.sink960, i32 noundef %1898, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %1900, ptr noundef %1902, ptr noundef %1904, i32 noundef %1905) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1907:                                             ; preds = %1879
  %1908 = add nsw i32 %1880, 2
  store i32 %1908, ptr @test_count, align 4, !tbaa !5
  %1909 = call i32 @s2n_connection_free(ptr noundef nonnull %1774) #10
  %1910 = icmp eq i32 %1909, -1
  br i1 %1910, label %1911, label %1933

1911:                                             ; preds = %1907
  %1912 = load i32, ptr %292, align 4, !tbaa !5
  %1913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1914 = call i32 @s2n_print_stacktrace(ptr noundef %1913) #10
  %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) #10
  %1920 = call i32 @isatty(i32 noundef %1919) #10
  %.not338 = icmp eq i32 %1920, 0
  br i1 %.not338, label %1921, label %1922

1921:                                             ; preds = %1917, %1911
  br label %1922

1922:                                             ; preds = %1917, %1921
  %.str.5.sink969 = phi ptr [ @.str.5, %1921 ], [ @.str.2, %1917 ]
  store i32 %1912, ptr %292, 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 %238, align 4, !tbaa !5
  %1926 = call ptr @s2n_strerror(i32 noundef %1925, ptr noundef nonnull @.str.4) #10
  %1927 = load i32, ptr %238, align 4, !tbaa !5
  %1928 = call ptr @s2n_strerror_debug(i32 noundef %1927, ptr noundef nonnull @.str.4) #10
  %1929 = load i32, ptr %292, align 4, !tbaa !5
  %1930 = call ptr @strerror(i32 noundef %1929) #10
  %1931 = load i32, ptr %292, align 4, !tbaa !5
  %1932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1923, ptr noundef nonnull %.str.5.sink969, i32 noundef %1924, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %1926, ptr noundef %1928, ptr noundef %1930, i32 noundef %1931) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1933:                                             ; preds = %1907
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #10
  store i8 0, ptr %22, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #10
  store i8 0, ptr %23, align 1, !tbaa !15
  %1934 = load i32, ptr @test_count, align 4, !tbaa !5
  %1935 = add nsw i32 %1934, 1
  store i32 %1935, ptr @test_count, align 4, !tbaa !5
  %1936 = getelementptr inbounds i8, ptr %20, i64 24
  %1937 = load i16, ptr %1936, align 8, !tbaa !26
  %1938 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %1937, ptr noundef nonnull %22) #10
  %1939 = icmp eq i32 %1938, -1
  br i1 %1939, label %1940, label %1962

1940:                                             ; preds = %1933
  %1941 = load i32, ptr %292, align 4, !tbaa !5
  %1942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1943 = call i32 @s2n_print_stacktrace(ptr noundef %1942) #10
  %1944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1945 = trunc nuw i8 %1944 to i1
  br i1 %1945, label %1946, label %1950

1946:                                             ; preds = %1940
  %1947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1948 = call i32 @fileno(ptr noundef %1947) #10
  %1949 = call i32 @isatty(i32 noundef %1948) #10
  %.not337 = icmp eq i32 %1949, 0
  br i1 %.not337, label %1950, label %1951

1950:                                             ; preds = %1946, %1940
  br label %1951

1951:                                             ; preds = %1946, %1950
  %.str.5.sink978 = phi ptr [ @.str.5, %1950 ], [ @.str.2, %1946 ]
  store i32 %1941, ptr %292, align 4, !tbaa !5
  %1952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1953 = load i32, ptr @test_count, align 4, !tbaa !5
  %1954 = load i32, ptr %238, align 4, !tbaa !5
  %1955 = call ptr @s2n_strerror(i32 noundef %1954, ptr noundef nonnull @.str.4) #10
  %1956 = load i32, ptr %238, align 4, !tbaa !5
  %1957 = call ptr @s2n_strerror_debug(i32 noundef %1956, ptr noundef nonnull @.str.4) #10
  %1958 = load i32, ptr %292, align 4, !tbaa !5
  %1959 = call ptr @strerror(i32 noundef %1958) #10
  %1960 = load i32, ptr %292, align 4, !tbaa !5
  %1961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1952, ptr noundef nonnull %.str.5.sink978, i32 noundef %1953, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %1955, ptr noundef %1957, ptr noundef %1959, i32 noundef %1960) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1962:                                             ; preds = %1933
  %1963 = load i32, ptr @test_count, align 4, !tbaa !5
  %1964 = add nsw i32 %1963, 1
  store i32 %1964, ptr @test_count, align 4, !tbaa !5
  %1965 = getelementptr inbounds i8, ptr %19, i64 24
  %1966 = load i16, ptr %1965, align 8, !tbaa !26
  %1967 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %1966, ptr noundef nonnull %23) #10
  %1968 = icmp eq i32 %1967, -1
  br i1 %1968, label %1969, label %1991

1969:                                             ; preds = %1962
  %1970 = load i32, ptr %292, align 4, !tbaa !5
  %1971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1972 = call i32 @s2n_print_stacktrace(ptr noundef %1971) #10
  %1973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1974 = trunc nuw i8 %1973 to i1
  br i1 %1974, label %1975, label %1979

1975:                                             ; preds = %1969
  %1976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1977 = call i32 @fileno(ptr noundef %1976) #10
  %1978 = call i32 @isatty(i32 noundef %1977) #10
  %.not336 = icmp eq i32 %1978, 0
  br i1 %.not336, label %1979, label %1980

1979:                                             ; preds = %1975, %1969
  br label %1980

1980:                                             ; preds = %1975, %1979
  %.str.5.sink987 = phi ptr [ @.str.5, %1979 ], [ @.str.2, %1975 ]
  store i32 %1970, ptr %292, align 4, !tbaa !5
  %1981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1982 = load i32, ptr @test_count, align 4, !tbaa !5
  %1983 = load i32, ptr %238, align 4, !tbaa !5
  %1984 = call ptr @s2n_strerror(i32 noundef %1983, ptr noundef nonnull @.str.4) #10
  %1985 = load i32, ptr %238, align 4, !tbaa !5
  %1986 = call ptr @s2n_strerror_debug(i32 noundef %1985, ptr noundef nonnull @.str.4) #10
  %1987 = load i32, ptr %292, align 4, !tbaa !5
  %1988 = call ptr @strerror(i32 noundef %1987) #10
  %1989 = load i32, ptr %292, align 4, !tbaa !5
  %1990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1981, ptr noundef nonnull %.str.5.sink987, i32 noundef %1982, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 263, ptr noundef %1984, ptr noundef %1986, ptr noundef %1988, i32 noundef %1989) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1991:                                             ; preds = %1962
  %1992 = load i32, ptr @test_count, align 4, !tbaa !5
  %1993 = add nsw i32 %1992, 1
  store i32 %1993, ptr @test_count, align 4, !tbaa !5
  %1994 = load i8, ptr %22, align 1, !tbaa !15
  %1995 = load i8, ptr %23, align 1, !tbaa !15
  %1996 = icmp eq i8 %1994, %1995
  br i1 %1996, label %1997, label %2019

1997:                                             ; preds = %1991
  %1998 = load i32, ptr %292, align 4, !tbaa !5
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = call i32 @s2n_print_stacktrace(ptr noundef %1999) #10
  %2001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2002 = trunc nuw i8 %2001 to i1
  br i1 %2002, label %2003, label %2007

2003:                                             ; preds = %1997
  %2004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2005 = call i32 @fileno(ptr noundef %2004) #10
  %2006 = call i32 @isatty(i32 noundef %2005) #10
  %.not335 = icmp eq i32 %2006, 0
  br i1 %.not335, label %2007, label %2008

2007:                                             ; preds = %2003, %1997
  br label %2008

2008:                                             ; preds = %2003, %2007
  %.str.5.sink996 = phi ptr [ @.str.5, %2007 ], [ @.str.2, %2003 ]
  store i32 %1998, ptr %292, align 4, !tbaa !5
  %2009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2010 = load i32, ptr @test_count, align 4, !tbaa !5
  %2011 = load i32, ptr %238, align 4, !tbaa !5
  %2012 = call ptr @s2n_strerror(i32 noundef %2011, ptr noundef nonnull @.str.4) #10
  %2013 = load i32, ptr %238, align 4, !tbaa !5
  %2014 = call ptr @s2n_strerror_debug(i32 noundef %2013, ptr noundef nonnull @.str.4) #10
  %2015 = load i32, ptr %292, align 4, !tbaa !5
  %2016 = call ptr @strerror(i32 noundef %2015) #10
  %2017 = load i32, ptr %292, align 4, !tbaa !5
  %2018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2009, ptr noundef nonnull %.str.5.sink996, i32 noundef %2010, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 264, ptr noundef %2012, ptr noundef %2014, ptr noundef %2016, i32 noundef %2017) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2019:                                             ; preds = %1991
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %24) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %24, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 704, ptr nonnull %25) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(704) %25, i8 0, i64 704, i1 false)
  %2020 = add nsw i32 %1992, 2
  store i32 %2020, ptr @test_count, align 4, !tbaa !5
  %2021 = call i32 @s2n_extension_list_process(i32 noundef 0, ptr noundef null, ptr noundef nonnull %25) #10
  %2022 = icmp eq i32 %2021, -1
  br i1 %2022, label %2045, label %2023

2023:                                             ; preds = %2019
  %2024 = load i32, ptr %292, align 4, !tbaa !5
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = call i32 @s2n_print_stacktrace(ptr noundef %2025) #10
  %2027 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2028 = trunc nuw i8 %2027 to i1
  br i1 %2028, label %2029, label %2033

2029:                                             ; preds = %2023
  %2030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2031 = call i32 @fileno(ptr noundef %2030) #10
  %2032 = call i32 @isatty(i32 noundef %2031) #10
  %.not291 = icmp eq i32 %2032, 0
  br i1 %.not291, label %2033, label %2034

2033:                                             ; preds = %2029, %2023
  br label %2034

2034:                                             ; preds = %2029, %2033
  %.str.5.sink1005 = phi ptr [ @.str.5, %2033 ], [ @.str.2, %2029 ]
  store i32 %2024, ptr %292, align 4, !tbaa !5
  %2035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2036 = load i32, ptr @test_count, align 4, !tbaa !5
  %2037 = load i32, ptr %238, align 4, !tbaa !5
  %2038 = call ptr @s2n_strerror(i32 noundef %2037, ptr noundef nonnull @.str.4) #10
  %2039 = load i32, ptr %238, align 4, !tbaa !5
  %2040 = call ptr @s2n_strerror_debug(i32 noundef %2039, ptr noundef nonnull @.str.4) #10
  %2041 = load i32, ptr %292, align 4, !tbaa !5
  %2042 = call ptr @strerror(i32 noundef %2041) #10
  %2043 = load i32, ptr %292, align 4, !tbaa !5
  %2044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2035, ptr noundef nonnull %.str.5.sink1005, i32 noundef %2036, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 271, ptr noundef %2038, ptr noundef %2040, ptr noundef %2042, i32 noundef %2043) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2045:                                             ; preds = %2019
  %2046 = load i32, ptr @test_count, align 4, !tbaa !5
  %2047 = add nsw i32 %2046, 1
  store i32 %2047, ptr @test_count, align 4, !tbaa !5
  %2048 = load i32, ptr %238, align 4, !tbaa !5
  %2049 = icmp eq i32 %2048, 0
  br i1 %2049, label %2050, label %2072

2050:                                             ; preds = %2045
  %2051 = load i32, ptr %292, align 4, !tbaa !5
  %2052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2053 = call i32 @s2n_print_stacktrace(ptr noundef %2052) #10
  %2054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2055 = trunc nuw i8 %2054 to i1
  br i1 %2055, label %2056, label %2060

2056:                                             ; preds = %2050
  %2057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2058 = call i32 @fileno(ptr noundef %2057) #10
  %2059 = call i32 @isatty(i32 noundef %2058) #10
  %.not334 = icmp eq i32 %2059, 0
  br i1 %.not334, label %2060, label %2061

2060:                                             ; preds = %2056, %2050
  br label %2061

2061:                                             ; preds = %2056, %2060
  %.str.5.sink1014 = phi ptr [ @.str.5, %2060 ], [ @.str.2, %2056 ]
  store i32 %2051, ptr %292, align 4, !tbaa !5
  %2062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2063 = load i32, ptr @test_count, align 4, !tbaa !5
  %2064 = load i32, ptr %238, align 4, !tbaa !5
  %2065 = call ptr @s2n_strerror(i32 noundef %2064, ptr noundef nonnull @.str.4) #10
  %2066 = load i32, ptr %238, align 4, !tbaa !5
  %2067 = call ptr @s2n_strerror_debug(i32 noundef %2066, ptr noundef nonnull @.str.4) #10
  %2068 = load i32, ptr %292, align 4, !tbaa !5
  %2069 = call ptr @strerror(i32 noundef %2068) #10
  %2070 = load i32, ptr %292, align 4, !tbaa !5
  %2071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2062, ptr noundef nonnull %.str.5.sink1014, i32 noundef %2063, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 271, ptr noundef %2065, ptr noundef %2067, ptr noundef %2069, i32 noundef %2070) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2072:                                             ; preds = %2045
  %2073 = add nsw i32 %2046, 2
  store i32 %2073, ptr @test_count, align 4, !tbaa !5
  %2074 = call ptr @s2n_strerror_debug(i32 noundef %2048, ptr noundef nonnull @.str.4) #10
  %2075 = icmp eq ptr %2074, null
  br i1 %2075, label %2076, label %2098

2076:                                             ; preds = %2072
  %2077 = load i32, ptr %292, align 4, !tbaa !5
  %2078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2079 = call i32 @s2n_print_stacktrace(ptr noundef %2078) #10
  %2080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2081 = trunc nuw i8 %2080 to i1
  br i1 %2081, label %2082, label %2086

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

2086:                                             ; preds = %2082, %2076
  br label %2087

2087:                                             ; preds = %2082, %2086
  %.str.5.sink1023 = phi ptr [ @.str.5, %2086 ], [ @.str.2, %2082 ]
  store i32 %2077, ptr %292, align 4, !tbaa !5
  %2088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2089 = load i32, ptr @test_count, align 4, !tbaa !5
  %2090 = load i32, ptr %238, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror(i32 noundef %2090, ptr noundef nonnull @.str.4) #10
  %2092 = load i32, ptr %238, align 4, !tbaa !5
  %2093 = call ptr @s2n_strerror_debug(i32 noundef %2092, ptr noundef nonnull @.str.4) #10
  %2094 = load i32, ptr %292, align 4, !tbaa !5
  %2095 = call ptr @strerror(i32 noundef %2094) #10
  %2096 = load i32, ptr %292, align 4, !tbaa !5
  %2097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2088, ptr noundef nonnull %.str.5.sink1023, i32 noundef %2089, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 271, ptr noundef %2091, ptr noundef %2093, ptr noundef %2095, i32 noundef %2096) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2098:                                             ; preds = %2072
  store i32 0, ptr %238, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %292, align 4, !tbaa !5
  %2099 = load i32, ptr @test_count, align 4, !tbaa !5
  %2100 = add nsw i32 %2099, 1
  store i32 %2100, ptr @test_count, align 4, !tbaa !5
  %2101 = call i32 @s2n_extension_list_process(i32 noundef 0, ptr noundef nonnull %24, ptr noundef null) #10
  %2102 = icmp eq i32 %2101, -1
  br i1 %2102, label %2125, label %2103

2103:                                             ; preds = %2098
  %2104 = load i32, ptr %292, align 4, !tbaa !5
  %2105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2106 = call i32 @s2n_print_stacktrace(ptr noundef %2105) #10
  %2107 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2108 = trunc nuw i8 %2107 to i1
  br i1 %2108, label %2109, label %2113

2109:                                             ; preds = %2103
  %2110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2111 = call i32 @fileno(ptr noundef %2110) #10
  %2112 = call i32 @isatty(i32 noundef %2111) #10
  %.not292 = icmp eq i32 %2112, 0
  br i1 %.not292, label %2113, label %2114

2113:                                             ; preds = %2109, %2103
  br label %2114

2114:                                             ; preds = %2109, %2113
  %.str.5.sink1032 = phi ptr [ @.str.5, %2113 ], [ @.str.2, %2109 ]
  store i32 %2104, ptr %292, align 4, !tbaa !5
  %2115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2116 = load i32, ptr @test_count, align 4, !tbaa !5
  %2117 = load i32, ptr %238, align 4, !tbaa !5
  %2118 = call ptr @s2n_strerror(i32 noundef %2117, ptr noundef nonnull @.str.4) #10
  %2119 = load i32, ptr %238, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror_debug(i32 noundef %2119, ptr noundef nonnull @.str.4) #10
  %2121 = load i32, ptr %292, align 4, !tbaa !5
  %2122 = call ptr @strerror(i32 noundef %2121) #10
  %2123 = load i32, ptr %292, align 4, !tbaa !5
  %2124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2115, ptr noundef nonnull %.str.5.sink1032, i32 noundef %2116, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %2118, ptr noundef %2120, ptr noundef %2122, i32 noundef %2123) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2125:                                             ; preds = %2098
  %2126 = load i32, ptr @test_count, align 4, !tbaa !5
  %2127 = add nsw i32 %2126, 1
  store i32 %2127, ptr @test_count, align 4, !tbaa !5
  %2128 = load i32, ptr %238, align 4, !tbaa !5
  %2129 = icmp eq i32 %2128, 0
  br i1 %2129, label %2130, label %2152

2130:                                             ; preds = %2125
  %2131 = load i32, ptr %292, align 4, !tbaa !5
  %2132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2133 = call i32 @s2n_print_stacktrace(ptr noundef %2132) #10
  %2134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2135 = trunc nuw i8 %2134 to i1
  br i1 %2135, label %2136, label %2140

2136:                                             ; preds = %2130
  %2137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2138 = call i32 @fileno(ptr noundef %2137) #10
  %2139 = call i32 @isatty(i32 noundef %2138) #10
  %.not332 = icmp eq i32 %2139, 0
  br i1 %.not332, label %2140, label %2141

2140:                                             ; preds = %2136, %2130
  br label %2141

2141:                                             ; preds = %2136, %2140
  %.str.5.sink1041 = phi ptr [ @.str.5, %2140 ], [ @.str.2, %2136 ]
  store i32 %2131, ptr %292, align 4, !tbaa !5
  %2142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2143 = load i32, ptr @test_count, align 4, !tbaa !5
  %2144 = load i32, ptr %238, align 4, !tbaa !5
  %2145 = call ptr @s2n_strerror(i32 noundef %2144, ptr noundef nonnull @.str.4) #10
  %2146 = load i32, ptr %238, align 4, !tbaa !5
  %2147 = call ptr @s2n_strerror_debug(i32 noundef %2146, ptr noundef nonnull @.str.4) #10
  %2148 = load i32, ptr %292, align 4, !tbaa !5
  %2149 = call ptr @strerror(i32 noundef %2148) #10
  %2150 = load i32, ptr %292, align 4, !tbaa !5
  %2151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2142, ptr noundef nonnull %.str.5.sink1041, i32 noundef %2143, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %2145, ptr noundef %2147, ptr noundef %2149, i32 noundef %2150) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2152:                                             ; preds = %2125
  %2153 = add nsw i32 %2126, 2
  store i32 %2153, ptr @test_count, align 4, !tbaa !5
  %2154 = call ptr @s2n_strerror_debug(i32 noundef %2128, ptr noundef nonnull @.str.4) #10
  %2155 = icmp eq ptr %2154, null
  br i1 %2155, label %2156, label %2178

2156:                                             ; preds = %2152
  %2157 = load i32, ptr %292, align 4, !tbaa !5
  %2158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2159 = call i32 @s2n_print_stacktrace(ptr noundef %2158) #10
  %2160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2161 = trunc nuw i8 %2160 to i1
  br i1 %2161, label %2162, label %2166

2162:                                             ; preds = %2156
  %2163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2164 = call i32 @fileno(ptr noundef %2163) #10
  %2165 = call i32 @isatty(i32 noundef %2164) #10
  %.not331 = icmp eq i32 %2165, 0
  br i1 %.not331, label %2166, label %2167

2166:                                             ; preds = %2162, %2156
  br label %2167

2167:                                             ; preds = %2162, %2166
  %.str.5.sink1050 = phi ptr [ @.str.5, %2166 ], [ @.str.2, %2162 ]
  store i32 %2157, ptr %292, align 4, !tbaa !5
  %2168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2169 = load i32, ptr @test_count, align 4, !tbaa !5
  %2170 = load i32, ptr %238, align 4, !tbaa !5
  %2171 = call ptr @s2n_strerror(i32 noundef %2170, ptr noundef nonnull @.str.4) #10
  %2172 = load i32, ptr %238, align 4, !tbaa !5
  %2173 = call ptr @s2n_strerror_debug(i32 noundef %2172, ptr noundef nonnull @.str.4) #10
  %2174 = load i32, ptr %292, align 4, !tbaa !5
  %2175 = call ptr @strerror(i32 noundef %2174) #10
  %2176 = load i32, ptr %292, align 4, !tbaa !5
  %2177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2168, ptr noundef nonnull %.str.5.sink1050, i32 noundef %2169, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %2171, ptr noundef %2173, ptr noundef %2175, i32 noundef %2176) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2178:                                             ; preds = %2152
  store i32 0, ptr %238, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %292, align 4, !tbaa !5
  %2179 = load i32, ptr @test_count, align 4, !tbaa !5
  %2180 = add nsw i32 %2179, 1
  store i32 %2180, ptr @test_count, align 4, !tbaa !5
  %2181 = call i32 @s2n_extension_list_process(i32 noundef -1, ptr noundef nonnull %24, ptr noundef nonnull %25) #10
  %2182 = icmp eq i32 %2181, -1
  br i1 %2182, label %2205, label %2183

2183:                                             ; preds = %2178
  %2184 = load i32, ptr %292, align 4, !tbaa !5
  %2185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2186 = call i32 @s2n_print_stacktrace(ptr noundef %2185) #10
  %2187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2188 = trunc nuw i8 %2187 to i1
  br i1 %2188, label %2189, label %2193

2189:                                             ; preds = %2183
  %2190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2191 = call i32 @fileno(ptr noundef %2190) #10
  %2192 = call i32 @isatty(i32 noundef %2191) #10
  %.not293 = icmp eq i32 %2192, 0
  br i1 %.not293, label %2193, label %2194

2193:                                             ; preds = %2189, %2183
  br label %2194

2194:                                             ; preds = %2189, %2193
  %.str.5.sink1059 = phi ptr [ @.str.5, %2193 ], [ @.str.2, %2189 ]
  store i32 %2184, ptr %292, align 4, !tbaa !5
  %2195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2196 = load i32, ptr @test_count, align 4, !tbaa !5
  %2197 = load i32, ptr %238, align 4, !tbaa !5
  %2198 = call ptr @s2n_strerror(i32 noundef %2197, ptr noundef nonnull @.str.4) #10
  %2199 = load i32, ptr %238, align 4, !tbaa !5
  %2200 = call ptr @s2n_strerror_debug(i32 noundef %2199, ptr noundef nonnull @.str.4) #10
  %2201 = load i32, ptr %292, align 4, !tbaa !5
  %2202 = call ptr @strerror(i32 noundef %2201) #10
  %2203 = load i32, ptr %292, align 4, !tbaa !5
  %2204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2195, ptr noundef nonnull %.str.5.sink1059, i32 noundef %2196, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %2198, ptr noundef %2200, ptr noundef %2202, i32 noundef %2203) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2205:                                             ; preds = %2178
  %2206 = load i32, ptr @test_count, align 4, !tbaa !5
  %2207 = add nsw i32 %2206, 1
  store i32 %2207, ptr @test_count, align 4, !tbaa !5
  %2208 = load i32, ptr %238, align 4, !tbaa !5
  %2209 = icmp eq i32 %2208, 0
  br i1 %2209, label %2210, label %2232

2210:                                             ; preds = %2205
  %2211 = load i32, ptr %292, align 4, !tbaa !5
  %2212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2213 = call i32 @s2n_print_stacktrace(ptr noundef %2212) #10
  %2214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2215 = trunc nuw i8 %2214 to i1
  br i1 %2215, label %2216, label %2220

2216:                                             ; preds = %2210
  %2217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2218 = call i32 @fileno(ptr noundef %2217) #10
  %2219 = call i32 @isatty(i32 noundef %2218) #10
  %.not330 = icmp eq i32 %2219, 0
  br i1 %.not330, label %2220, label %2221

2220:                                             ; preds = %2216, %2210
  br label %2221

2221:                                             ; preds = %2216, %2220
  %.str.5.sink1068 = phi ptr [ @.str.5, %2220 ], [ @.str.2, %2216 ]
  store i32 %2211, ptr %292, align 4, !tbaa !5
  %2222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2223 = load i32, ptr @test_count, align 4, !tbaa !5
  %2224 = load i32, ptr %238, align 4, !tbaa !5
  %2225 = call ptr @s2n_strerror(i32 noundef %2224, ptr noundef nonnull @.str.4) #10
  %2226 = load i32, ptr %238, align 4, !tbaa !5
  %2227 = call ptr @s2n_strerror_debug(i32 noundef %2226, ptr noundef nonnull @.str.4) #10
  %2228 = load i32, ptr %292, align 4, !tbaa !5
  %2229 = call ptr @strerror(i32 noundef %2228) #10
  %2230 = load i32, ptr %292, align 4, !tbaa !5
  %2231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2222, ptr noundef nonnull %.str.5.sink1068, i32 noundef %2223, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %2225, ptr noundef %2227, ptr noundef %2229, i32 noundef %2230) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2232:                                             ; preds = %2205
  %2233 = add nsw i32 %2206, 2
  store i32 %2233, ptr @test_count, align 4, !tbaa !5
  %2234 = call ptr @s2n_strerror_debug(i32 noundef %2208, ptr noundef nonnull @.str.4) #10
  %2235 = icmp eq ptr %2234, null
  br i1 %2235, label %2236, label %2258

2236:                                             ; preds = %2232
  %2237 = load i32, ptr %292, align 4, !tbaa !5
  %2238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2239 = call i32 @s2n_print_stacktrace(ptr noundef %2238) #10
  %2240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2241 = trunc nuw i8 %2240 to i1
  br i1 %2241, label %2242, label %2246

2242:                                             ; preds = %2236
  %2243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2244 = call i32 @fileno(ptr noundef %2243) #10
  %2245 = call i32 @isatty(i32 noundef %2244) #10
  %.not329 = icmp eq i32 %2245, 0
  br i1 %.not329, label %2246, label %2247

2246:                                             ; preds = %2242, %2236
  br label %2247

2247:                                             ; preds = %2242, %2246
  %.str.5.sink1077 = phi ptr [ @.str.5, %2246 ], [ @.str.2, %2242 ]
  store i32 %2237, ptr %292, align 4, !tbaa !5
  %2248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2249 = load i32, ptr @test_count, align 4, !tbaa !5
  %2250 = load i32, ptr %238, align 4, !tbaa !5
  %2251 = call ptr @s2n_strerror(i32 noundef %2250, ptr noundef nonnull @.str.4) #10
  %2252 = load i32, ptr %238, align 4, !tbaa !5
  %2253 = call ptr @s2n_strerror_debug(i32 noundef %2252, ptr noundef nonnull @.str.4) #10
  %2254 = load i32, ptr %292, align 4, !tbaa !5
  %2255 = call ptr @strerror(i32 noundef %2254) #10
  %2256 = load i32, ptr %292, align 4, !tbaa !5
  %2257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2248, ptr noundef nonnull %.str.5.sink1077, i32 noundef %2249, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %2251, ptr noundef %2253, ptr noundef %2255, i32 noundef %2256) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2258:                                             ; preds = %2232
  store i32 0, ptr %238, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %292, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 704, ptr nonnull %25) #10
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %24) #10
  call void @llvm.lifetime.start.p0(i64 704, ptr nonnull %26) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(704) %26, i8 0, i64 704, i1 false)
  %2259 = load i32, ptr @test_count, align 4, !tbaa !5
  %2260 = add nsw i32 %2259, 1
  store i32 %2260, ptr @test_count, align 4, !tbaa !5
  %2261 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %2262 = icmp eq ptr %2261, null
  br i1 %2262, label %2263, label %2285

2263:                                             ; preds = %2258
  %2264 = load i32, ptr %292, align 4, !tbaa !5
  %2265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2266 = call i32 @s2n_print_stacktrace(ptr noundef %2265) #10
  %2267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2268 = trunc nuw i8 %2267 to i1
  br i1 %2268, label %2269, label %2273

2269:                                             ; preds = %2263
  %2270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2271 = call i32 @fileno(ptr noundef %2270) #10
  %2272 = call i32 @isatty(i32 noundef %2271) #10
  %.not328 = icmp eq i32 %2272, 0
  br i1 %.not328, label %2273, label %2274

2273:                                             ; preds = %2269, %2263
  br label %2274

2274:                                             ; preds = %2269, %2273
  %.str.5.sink1086 = phi ptr [ @.str.5, %2273 ], [ @.str.2, %2269 ]
  store i32 %2264, ptr %292, align 4, !tbaa !5
  %2275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2276 = load i32, ptr @test_count, align 4, !tbaa !5
  %2277 = load i32, ptr %238, align 4, !tbaa !5
  %2278 = call ptr @s2n_strerror(i32 noundef %2277, ptr noundef nonnull @.str.4) #10
  %2279 = load i32, ptr %238, align 4, !tbaa !5
  %2280 = call ptr @s2n_strerror_debug(i32 noundef %2279, ptr noundef nonnull @.str.4) #10
  %2281 = load i32, ptr %292, align 4, !tbaa !5
  %2282 = call ptr @strerror(i32 noundef %2281) #10
  %2283 = load i32, ptr %292, align 4, !tbaa !5
  %2284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2275, ptr noundef nonnull %.str.5.sink1086, i32 noundef %2276, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 281, ptr noundef %2278, ptr noundef %2280, ptr noundef %2282, i32 noundef %2283) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2285:                                             ; preds = %2258
  %2286 = load i32, ptr @test_count, align 4, !tbaa !5
  %2287 = add nsw i32 %2286, 1
  store i32 %2287, ptr @test_count, align 4, !tbaa !5
  %2288 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %2261) #10
  %2289 = icmp eq i32 %2288, -1
  br i1 %2289, label %2290, label %2312

2290:                                             ; preds = %2285
  %2291 = load i32, ptr %292, align 4, !tbaa !5
  %2292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2293 = call i32 @s2n_print_stacktrace(ptr noundef %2292) #10
  %2294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2295 = trunc nuw i8 %2294 to i1
  br i1 %2295, label %2296, label %2300

2296:                                             ; preds = %2290
  %2297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2298 = call i32 @fileno(ptr noundef %2297) #10
  %2299 = call i32 @isatty(i32 noundef %2298) #10
  %.not327 = icmp eq i32 %2299, 0
  br i1 %.not327, label %2300, label %2301

2300:                                             ; preds = %2296, %2290
  br label %2301

2301:                                             ; preds = %2296, %2300
  %.str.5.sink1095 = phi ptr [ @.str.5, %2300 ], [ @.str.2, %2296 ]
  store i32 %2291, ptr %292, align 4, !tbaa !5
  %2302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2303 = load i32, ptr @test_count, align 4, !tbaa !5
  %2304 = load i32, ptr %238, align 4, !tbaa !5
  %2305 = call ptr @s2n_strerror(i32 noundef %2304, ptr noundef nonnull @.str.4) #10
  %2306 = load i32, ptr %238, align 4, !tbaa !5
  %2307 = call ptr @s2n_strerror_debug(i32 noundef %2306, ptr noundef nonnull @.str.4) #10
  %2308 = load i32, ptr %292, align 4, !tbaa !5
  %2309 = call ptr @strerror(i32 noundef %2308) #10
  %2310 = load i32, ptr %292, align 4, !tbaa !5
  %2311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2302, ptr noundef nonnull %.str.5.sink1095, i32 noundef %2303, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 282, ptr noundef %2305, ptr noundef %2307, ptr noundef %2309, i32 noundef %2310) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2312:                                             ; preds = %2285
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #10
  store i8 0, ptr %27, align 1, !tbaa !15
  %2313 = load i32, ptr @test_count, align 4, !tbaa !5
  %2314 = add nsw i32 %2313, 1
  store i32 %2314, ptr @test_count, align 4, !tbaa !5
  %2315 = load i16, ptr %1965, align 8, !tbaa !26
  %2316 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %2315, ptr noundef nonnull %27) #10
  %2317 = icmp eq i32 %2316, -1
  br i1 %2317, label %2318, label %2340

2318:                                             ; preds = %2312
  %2319 = load i32, ptr %292, align 4, !tbaa !5
  %2320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2321 = call i32 @s2n_print_stacktrace(ptr noundef %2320) #10
  %2322 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2323 = trunc nuw i8 %2322 to i1
  br i1 %2323, label %2324, label %2328

2324:                                             ; preds = %2318
  %2325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2326 = call i32 @fileno(ptr noundef %2325) #10
  %2327 = call i32 @isatty(i32 noundef %2326) #10
  %.not326 = icmp eq i32 %2327, 0
  br i1 %.not326, label %2328, label %2329

2328:                                             ; preds = %2324, %2318
  br label %2329

2329:                                             ; preds = %2324, %2328
  %.str.5.sink1104 = phi ptr [ @.str.5, %2328 ], [ @.str.2, %2324 ]
  store i32 %2319, ptr %292, align 4, !tbaa !5
  %2330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2331 = load i32, ptr @test_count, align 4, !tbaa !5
  %2332 = load i32, ptr %238, align 4, !tbaa !5
  %2333 = call ptr @s2n_strerror(i32 noundef %2332, ptr noundef nonnull @.str.4) #10
  %2334 = load i32, ptr %238, align 4, !tbaa !5
  %2335 = call ptr @s2n_strerror_debug(i32 noundef %2334, ptr noundef nonnull @.str.4) #10
  %2336 = load i32, ptr %292, align 4, !tbaa !5
  %2337 = call ptr @strerror(i32 noundef %2336) #10
  %2338 = load i32, ptr %292, align 4, !tbaa !5
  %2339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2330, ptr noundef nonnull %.str.5.sink1104, i32 noundef %2331, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %2333, ptr noundef %2335, ptr noundef %2337, i32 noundef %2338) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2340:                                             ; preds = %2312
  %2341 = load i8, ptr %27, align 1, !tbaa !15
  %2342 = zext i8 %2341 to i64
  %2343 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %26, i64 0, i64 %2342
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %2343, ptr noundef nonnull align 8 dereferenceable(32) %19, i64 32, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #10
  %2344 = load i32, ptr %2261, align 8
  %2345 = and i32 %2344, -65
  store i32 %2345, ptr %2261, align 8
  %2346 = load i32, ptr @test_count, align 4, !tbaa !5
  %2347 = add nsw i32 %2346, 1
  store i32 %2347, ptr @test_count, align 4, !tbaa !5
  %2348 = call i32 @s2n_extension_list_process(i32 noundef 4, ptr noundef nonnull %2261, ptr noundef nonnull %26) #10
  %2349 = icmp eq i32 %2348, -1
  br i1 %2349, label %2350, label %2372

2350:                                             ; preds = %2340
  %2351 = load i32, ptr %292, align 4, !tbaa !5
  %2352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2353 = call i32 @s2n_print_stacktrace(ptr noundef %2352) #10
  %2354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2355 = trunc nuw i8 %2354 to i1
  br i1 %2355, label %2356, label %2360

2356:                                             ; preds = %2350
  %2357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2358 = call i32 @fileno(ptr noundef %2357) #10
  %2359 = call i32 @isatty(i32 noundef %2358) #10
  %.not325 = icmp eq i32 %2359, 0
  br i1 %.not325, label %2360, label %2361

2360:                                             ; preds = %2356, %2350
  br label %2361

2361:                                             ; preds = %2356, %2360
  %.str.5.sink1113 = phi ptr [ @.str.5, %2360 ], [ @.str.2, %2356 ]
  store i32 %2351, ptr %292, align 4, !tbaa !5
  %2362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2363 = load i32, ptr @test_count, align 4, !tbaa !5
  %2364 = load i32, ptr %238, align 4, !tbaa !5
  %2365 = call ptr @s2n_strerror(i32 noundef %2364, ptr noundef nonnull @.str.4) #10
  %2366 = load i32, ptr %238, align 4, !tbaa !5
  %2367 = call ptr @s2n_strerror_debug(i32 noundef %2366, ptr noundef nonnull @.str.4) #10
  %2368 = load i32, ptr %292, align 4, !tbaa !5
  %2369 = call ptr @strerror(i32 noundef %2368) #10
  %2370 = load i32, ptr %292, align 4, !tbaa !5
  %2371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2362, ptr noundef nonnull %.str.5.sink1113, i32 noundef %2363, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %2365, ptr noundef %2367, ptr noundef %2369, i32 noundef %2370) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2372:                                             ; preds = %2340
  %2373 = load i32, ptr @test_count, align 4, !tbaa !5
  %2374 = add nsw i32 %2373, 1
  store i32 %2374, ptr @test_count, align 4, !tbaa !5
  %2375 = load i8, ptr %23, align 1, !tbaa !15
  %2376 = zext i8 %2375 to i64
  %2377 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %26, i64 0, i64 %2376, i32 3
  %2378 = load i8, ptr %2377, align 4
  %2379 = and i8 %2378, 1
  %.not294 = icmp eq i8 %2379, 0
  br i1 %.not294, label %2380, label %2402

2380:                                             ; preds = %2372
  %2381 = load i32, ptr %292, align 4, !tbaa !5
  %2382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2383 = call i32 @s2n_print_stacktrace(ptr noundef %2382) #10
  %2384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2385 = trunc nuw i8 %2384 to i1
  br i1 %2385, label %2386, label %2390

2386:                                             ; preds = %2380
  %2387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2388 = call i32 @fileno(ptr noundef %2387) #10
  %2389 = call i32 @isatty(i32 noundef %2388) #10
  %.not295 = icmp eq i32 %2389, 0
  br i1 %.not295, label %2390, label %2391

2390:                                             ; preds = %2386, %2380
  br label %2391

2391:                                             ; preds = %2386, %2390
  %.str.5.sink1122 = phi ptr [ @.str.5, %2390 ], [ @.str.2, %2386 ]
  store i32 %2381, ptr %292, align 4, !tbaa !5
  %2392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2393 = load i32, ptr @test_count, align 4, !tbaa !5
  %2394 = load i32, ptr %238, align 4, !tbaa !5
  %2395 = call ptr @s2n_strerror(i32 noundef %2394, ptr noundef nonnull @.str.4) #10
  %2396 = load i32, ptr %238, align 4, !tbaa !5
  %2397 = call ptr @s2n_strerror_debug(i32 noundef %2396, ptr noundef nonnull @.str.4) #10
  %2398 = load i32, ptr %292, align 4, !tbaa !5
  %2399 = call ptr @strerror(i32 noundef %2398) #10
  %2400 = load i32, ptr %292, align 4, !tbaa !5
  %2401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2392, ptr noundef nonnull %.str.5.sink1122, i32 noundef %2393, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %2395, ptr noundef %2397, ptr noundef %2399, i32 noundef %2400) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2402:                                             ; preds = %2372
  %2403 = add nsw i32 %2373, 2
  store i32 %2403, ptr @test_count, align 4, !tbaa !5
  %2404 = load i32, ptr %2261, align 8
  %2405 = and i32 %2404, 64
  %.not296 = icmp eq i32 %2405, 0
  br i1 %.not296, label %2406, label %2428

2406:                                             ; preds = %2402
  %2407 = load i32, ptr %292, align 4, !tbaa !5
  %2408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2409 = call i32 @s2n_print_stacktrace(ptr noundef %2408) #10
  %2410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2411 = trunc nuw i8 %2410 to i1
  br i1 %2411, label %2412, label %2416

2412:                                             ; preds = %2406
  %2413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2414 = call i32 @fileno(ptr noundef %2413) #10
  %2415 = call i32 @isatty(i32 noundef %2414) #10
  %.not297 = icmp eq i32 %2415, 0
  br i1 %.not297, label %2416, label %2417

2416:                                             ; preds = %2412, %2406
  br label %2417

2417:                                             ; preds = %2412, %2416
  %.str.5.sink1131 = phi ptr [ @.str.5, %2416 ], [ @.str.2, %2412 ]
  store i32 %2407, ptr %292, align 4, !tbaa !5
  %2418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2419 = load i32, ptr @test_count, align 4, !tbaa !5
  %2420 = load i32, ptr %238, align 4, !tbaa !5
  %2421 = call ptr @s2n_strerror(i32 noundef %2420, ptr noundef nonnull @.str.4) #10
  %2422 = load i32, ptr %238, align 4, !tbaa !5
  %2423 = call ptr @s2n_strerror_debug(i32 noundef %2422, ptr noundef nonnull @.str.4) #10
  %2424 = load i32, ptr %292, align 4, !tbaa !5
  %2425 = call ptr @strerror(i32 noundef %2424) #10
  %2426 = load i32, ptr %292, align 4, !tbaa !5
  %2427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2418, ptr noundef nonnull %.str.5.sink1131, i32 noundef %2419, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %2421, ptr noundef %2423, ptr noundef %2425, i32 noundef %2426) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2428:                                             ; preds = %2402
  %2429 = add nsw i32 %2373, 3
  store i32 %2429, ptr @test_count, align 4, !tbaa !5
  %2430 = call i32 @s2n_connection_free(ptr noundef nonnull %2261) #10
  %2431 = icmp eq i32 %2430, -1
  br i1 %2431, label %2432, label %2454

2432:                                             ; preds = %2428
  %2433 = load i32, ptr %292, align 4, !tbaa !5
  %2434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2435 = call i32 @s2n_print_stacktrace(ptr noundef %2434) #10
  %2436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2437 = trunc nuw i8 %2436 to i1
  br i1 %2437, label %2438, label %2442

2438:                                             ; preds = %2432
  %2439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2440 = call i32 @fileno(ptr noundef %2439) #10
  %2441 = call i32 @isatty(i32 noundef %2440) #10
  %.not324 = icmp eq i32 %2441, 0
  br i1 %.not324, label %2442, label %2443

2442:                                             ; preds = %2438, %2432
  br label %2443

2443:                                             ; preds = %2438, %2442
  %.str.5.sink1140 = phi ptr [ @.str.5, %2442 ], [ @.str.2, %2438 ]
  store i32 %2433, ptr %292, align 4, !tbaa !5
  %2444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2445 = load i32, ptr @test_count, align 4, !tbaa !5
  %2446 = load i32, ptr %238, align 4, !tbaa !5
  %2447 = call ptr @s2n_strerror(i32 noundef %2446, ptr noundef nonnull @.str.4) #10
  %2448 = load i32, ptr %238, align 4, !tbaa !5
  %2449 = call ptr @s2n_strerror_debug(i32 noundef %2448, ptr noundef nonnull @.str.4) #10
  %2450 = load i32, ptr %292, align 4, !tbaa !5
  %2451 = call ptr @strerror(i32 noundef %2450) #10
  %2452 = load i32, ptr %292, align 4, !tbaa !5
  %2453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2444, ptr noundef nonnull %.str.5.sink1140, i32 noundef %2445, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %2447, ptr noundef %2449, ptr noundef %2451, i32 noundef %2452) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2454:                                             ; preds = %2428
  call void @llvm.lifetime.end.p0(i64 704, ptr nonnull %26) #10
  call void @llvm.lifetime.start.p0(i64 704, ptr nonnull %28) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(704) %28, i8 0, i64 704, i1 false)
  %2455 = load i32, ptr @test_count, align 4, !tbaa !5
  %2456 = add nsw i32 %2455, 1
  store i32 %2456, ptr @test_count, align 4, !tbaa !5
  %2457 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %2458 = icmp eq ptr %2457, null
  br i1 %2458, label %2459, label %2481

2459:                                             ; preds = %2454
  %2460 = load i32, ptr %292, align 4, !tbaa !5
  %2461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2462 = call i32 @s2n_print_stacktrace(ptr noundef %2461) #10
  %2463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2464 = trunc nuw i8 %2463 to i1
  br i1 %2464, label %2465, label %2469

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

2469:                                             ; preds = %2465, %2459
  br label %2470

2470:                                             ; preds = %2465, %2469
  %.str.5.sink1149 = phi ptr [ @.str.5, %2469 ], [ @.str.2, %2465 ]
  store i32 %2460, ptr %292, align 4, !tbaa !5
  %2471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2472 = load i32, ptr @test_count, align 4, !tbaa !5
  %2473 = load i32, ptr %238, align 4, !tbaa !5
  %2474 = call ptr @s2n_strerror(i32 noundef %2473, ptr noundef nonnull @.str.4) #10
  %2475 = load i32, ptr %238, align 4, !tbaa !5
  %2476 = call ptr @s2n_strerror_debug(i32 noundef %2475, ptr noundef nonnull @.str.4) #10
  %2477 = load i32, ptr %292, align 4, !tbaa !5
  %2478 = call ptr @strerror(i32 noundef %2477) #10
  %2479 = load i32, ptr %292, align 4, !tbaa !5
  %2480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2471, ptr noundef nonnull %.str.5.sink1149, i32 noundef %2472, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %2474, ptr noundef %2476, ptr noundef %2478, i32 noundef %2479) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2481:                                             ; preds = %2454
  %2482 = load i32, ptr @test_count, align 4, !tbaa !5
  %2483 = add nsw i32 %2482, 1
  store i32 %2483, ptr @test_count, align 4, !tbaa !5
  %2484 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %2457) #10
  %2485 = icmp eq i32 %2484, -1
  br i1 %2485, label %2486, label %2508

2486:                                             ; preds = %2481
  %2487 = load i32, ptr %292, align 4, !tbaa !5
  %2488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2489 = call i32 @s2n_print_stacktrace(ptr noundef %2488) #10
  %2490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2491 = trunc nuw i8 %2490 to i1
  br i1 %2491, label %2492, label %2496

2492:                                             ; preds = %2486
  %2493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2494 = call i32 @fileno(ptr noundef %2493) #10
  %2495 = call i32 @isatty(i32 noundef %2494) #10
  %.not322 = icmp eq i32 %2495, 0
  br i1 %.not322, label %2496, label %2497

2496:                                             ; preds = %2492, %2486
  br label %2497

2497:                                             ; preds = %2492, %2496
  %.str.5.sink1158 = phi ptr [ @.str.5, %2496 ], [ @.str.2, %2492 ]
  store i32 %2487, ptr %292, align 4, !tbaa !5
  %2498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2499 = load i32, ptr @test_count, align 4, !tbaa !5
  %2500 = load i32, ptr %238, align 4, !tbaa !5
  %2501 = call ptr @s2n_strerror(i32 noundef %2500, ptr noundef nonnull @.str.4) #10
  %2502 = load i32, ptr %238, align 4, !tbaa !5
  %2503 = call ptr @s2n_strerror_debug(i32 noundef %2502, ptr noundef nonnull @.str.4) #10
  %2504 = load i32, ptr %292, align 4, !tbaa !5
  %2505 = call ptr @strerror(i32 noundef %2504) #10
  %2506 = load i32, ptr %292, align 4, !tbaa !5
  %2507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2498, ptr noundef nonnull %.str.5.sink1158, i32 noundef %2499, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %2501, ptr noundef %2503, ptr noundef %2505, i32 noundef %2506) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2508:                                             ; preds = %2481
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #10
  store i8 0, ptr %29, align 1, !tbaa !15
  %2509 = load i32, ptr @test_count, align 4, !tbaa !5
  %2510 = add nsw i32 %2509, 1
  store i32 %2510, ptr @test_count, align 4, !tbaa !5
  %2511 = load i16, ptr %1965, align 8, !tbaa !26
  %2512 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %2511, ptr noundef nonnull %29) #10
  %2513 = icmp eq i32 %2512, -1
  br i1 %2513, label %2514, label %2536

2514:                                             ; preds = %2508
  %2515 = load i32, ptr %292, align 4, !tbaa !5
  %2516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2517 = call i32 @s2n_print_stacktrace(ptr noundef %2516) #10
  %2518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2519 = trunc nuw i8 %2518 to i1
  br i1 %2519, label %2520, label %2524

2520:                                             ; preds = %2514
  %2521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2522 = call i32 @fileno(ptr noundef %2521) #10
  %2523 = call i32 @isatty(i32 noundef %2522) #10
  %.not321 = icmp eq i32 %2523, 0
  br i1 %.not321, label %2524, label %2525

2524:                                             ; preds = %2520, %2514
  br label %2525

2525:                                             ; preds = %2520, %2524
  %.str.5.sink1167 = phi ptr [ @.str.5, %2524 ], [ @.str.2, %2520 ]
  store i32 %2515, ptr %292, align 4, !tbaa !5
  %2526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2527 = load i32, ptr @test_count, align 4, !tbaa !5
  %2528 = load i32, ptr %238, align 4, !tbaa !5
  %2529 = call ptr @s2n_strerror(i32 noundef %2528, ptr noundef nonnull @.str.4) #10
  %2530 = load i32, ptr %238, align 4, !tbaa !5
  %2531 = call ptr @s2n_strerror_debug(i32 noundef %2530, ptr noundef nonnull @.str.4) #10
  %2532 = load i32, ptr %292, align 4, !tbaa !5
  %2533 = call ptr @strerror(i32 noundef %2532) #10
  %2534 = load i32, ptr %292, align 4, !tbaa !5
  %2535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2526, ptr noundef nonnull %.str.5.sink1167, i32 noundef %2527, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 304, ptr noundef %2529, ptr noundef %2531, ptr noundef %2533, i32 noundef %2534) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2536:                                             ; preds = %2508
  %2537 = load i8, ptr %29, align 1, !tbaa !15
  %2538 = zext i8 %2537 to i64
  %2539 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %28, i64 0, i64 %2538
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %2539, ptr noundef nonnull align 8 dereferenceable(32) %19, i64 32, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #10
  store i8 0, ptr %30, align 1, !tbaa !15
  %2540 = load i32, ptr @test_count, align 4, !tbaa !5
  %2541 = add nsw i32 %2540, 1
  store i32 %2541, ptr @test_count, align 4, !tbaa !5
  %2542 = load i16, ptr %1936, align 8, !tbaa !26
  %2543 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %2542, ptr noundef nonnull %30) #10
  %2544 = icmp eq i32 %2543, -1
  br i1 %2544, label %2545, label %2567

2545:                                             ; preds = %2536
  %2546 = load i32, ptr %292, align 4, !tbaa !5
  %2547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2548 = call i32 @s2n_print_stacktrace(ptr noundef %2547) #10
  %2549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2550 = trunc nuw i8 %2549 to i1
  br i1 %2550, label %2551, label %2555

2551:                                             ; preds = %2545
  %2552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2553 = call i32 @fileno(ptr noundef %2552) #10
  %2554 = call i32 @isatty(i32 noundef %2553) #10
  %.not320 = icmp eq i32 %2554, 0
  br i1 %.not320, label %2555, label %2556

2555:                                             ; preds = %2551, %2545
  br label %2556

2556:                                             ; preds = %2551, %2555
  %.str.5.sink1176 = phi ptr [ @.str.5, %2555 ], [ @.str.2, %2551 ]
  store i32 %2546, ptr %292, align 4, !tbaa !5
  %2557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2558 = load i32, ptr @test_count, align 4, !tbaa !5
  %2559 = load i32, ptr %238, align 4, !tbaa !5
  %2560 = call ptr @s2n_strerror(i32 noundef %2559, ptr noundef nonnull @.str.4) #10
  %2561 = load i32, ptr %238, align 4, !tbaa !5
  %2562 = call ptr @s2n_strerror_debug(i32 noundef %2561, ptr noundef nonnull @.str.4) #10
  %2563 = load i32, ptr %292, align 4, !tbaa !5
  %2564 = call ptr @strerror(i32 noundef %2563) #10
  %2565 = load i32, ptr %292, align 4, !tbaa !5
  %2566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2557, ptr noundef nonnull %.str.5.sink1176, i32 noundef %2558, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %2560, ptr noundef %2562, ptr noundef %2564, i32 noundef %2565) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2567:                                             ; preds = %2536
  %2568 = load i8, ptr %30, align 1, !tbaa !15
  %2569 = zext i8 %2568 to i64
  %2570 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %28, i64 0, i64 %2569
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %2570, ptr noundef nonnull align 8 dereferenceable(32) %20, i64 32, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #10
  %2571 = load i32, ptr %2457, align 8
  %2572 = and i32 %2571, -65
  store i32 %2572, ptr %2457, align 8
  %2573 = load i32, ptr @test_count, align 4, !tbaa !5
  %2574 = add nsw i32 %2573, 1
  store i32 %2574, ptr @test_count, align 4, !tbaa !5
  %2575 = call i32 @s2n_extension_list_process(i32 noundef 4, ptr noundef nonnull %2457, ptr noundef nonnull %28) #10
  %2576 = icmp eq i32 %2575, -1
  br i1 %2576, label %2577, label %2599

2577:                                             ; preds = %2567
  %2578 = load i32, ptr %292, align 4, !tbaa !5
  %2579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2580 = call i32 @s2n_print_stacktrace(ptr noundef %2579) #10
  %2581 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2582 = trunc nuw i8 %2581 to i1
  br i1 %2582, label %2583, label %2587

2583:                                             ; preds = %2577
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = call i32 @fileno(ptr noundef %2584) #10
  %2586 = call i32 @isatty(i32 noundef %2585) #10
  %.not319 = icmp eq i32 %2586, 0
  br i1 %.not319, label %2587, label %2588

2587:                                             ; preds = %2583, %2577
  br label %2588

2588:                                             ; preds = %2583, %2587
  %.str.5.sink1185 = phi ptr [ @.str.5, %2587 ], [ @.str.2, %2583 ]
  store i32 %2578, ptr %292, align 4, !tbaa !5
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = load i32, ptr @test_count, align 4, !tbaa !5
  %2591 = load i32, ptr %238, align 4, !tbaa !5
  %2592 = call ptr @s2n_strerror(i32 noundef %2591, ptr noundef nonnull @.str.4) #10
  %2593 = load i32, ptr %238, align 4, !tbaa !5
  %2594 = call ptr @s2n_strerror_debug(i32 noundef %2593, ptr noundef nonnull @.str.4) #10
  %2595 = load i32, ptr %292, align 4, !tbaa !5
  %2596 = call ptr @strerror(i32 noundef %2595) #10
  %2597 = load i32, ptr %292, align 4, !tbaa !5
  %2598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2589, ptr noundef nonnull %.str.5.sink1185, i32 noundef %2590, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 309, ptr noundef %2592, ptr noundef %2594, ptr noundef %2596, i32 noundef %2597) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2599:                                             ; preds = %2567
  %2600 = load i32, ptr @test_count, align 4, !tbaa !5
  %2601 = add nsw i32 %2600, 1
  store i32 %2601, ptr @test_count, align 4, !tbaa !5
  %2602 = load i8, ptr %22, align 1, !tbaa !15
  %2603 = zext i8 %2602 to i64
  %2604 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %28, i64 0, i64 %2603, i32 3
  %2605 = load i8, ptr %2604, align 4
  %2606 = and i8 %2605, 1
  %.not298 = icmp eq i8 %2606, 0
  br i1 %.not298, label %2607, label %2629

2607:                                             ; preds = %2599
  %2608 = load i32, ptr %292, align 4, !tbaa !5
  %2609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2610 = call i32 @s2n_print_stacktrace(ptr noundef %2609) #10
  %2611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2612 = trunc nuw i8 %2611 to i1
  br i1 %2612, label %2613, label %2617

2613:                                             ; preds = %2607
  %2614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2615 = call i32 @fileno(ptr noundef %2614) #10
  %2616 = call i32 @isatty(i32 noundef %2615) #10
  %.not299 = icmp eq i32 %2616, 0
  br i1 %.not299, label %2617, label %2618

2617:                                             ; preds = %2613, %2607
  br label %2618

2618:                                             ; preds = %2613, %2617
  %.str.5.sink1194 = phi ptr [ @.str.5, %2617 ], [ @.str.2, %2613 ]
  store i32 %2608, ptr %292, align 4, !tbaa !5
  %2619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2620 = load i32, ptr @test_count, align 4, !tbaa !5
  %2621 = load i32, ptr %238, align 4, !tbaa !5
  %2622 = call ptr @s2n_strerror(i32 noundef %2621, ptr noundef nonnull @.str.4) #10
  %2623 = load i32, ptr %238, align 4, !tbaa !5
  %2624 = call ptr @s2n_strerror_debug(i32 noundef %2623, ptr noundef nonnull @.str.4) #10
  %2625 = load i32, ptr %292, align 4, !tbaa !5
  %2626 = call ptr @strerror(i32 noundef %2625) #10
  %2627 = load i32, ptr %292, align 4, !tbaa !5
  %2628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2619, ptr noundef nonnull %.str.5.sink1194, i32 noundef %2620, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 311, ptr noundef %2622, ptr noundef %2624, ptr noundef %2626, i32 noundef %2627) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2629:                                             ; preds = %2599
  %2630 = add nsw i32 %2600, 2
  store i32 %2630, ptr @test_count, align 4, !tbaa !5
  %2631 = load i8, ptr %23, align 1, !tbaa !15
  %2632 = zext i8 %2631 to i64
  %2633 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %28, i64 0, i64 %2632, i32 3
  %2634 = load i8, ptr %2633, align 4
  %2635 = and i8 %2634, 1
  %.not300 = icmp eq i8 %2635, 0
  br i1 %.not300, label %2636, label %2658

2636:                                             ; preds = %2629
  %2637 = load i32, ptr %292, align 4, !tbaa !5
  %2638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2639 = call i32 @s2n_print_stacktrace(ptr noundef %2638) #10
  %2640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2641 = trunc nuw i8 %2640 to i1
  br i1 %2641, label %2642, label %2646

2642:                                             ; preds = %2636
  %2643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2644 = call i32 @fileno(ptr noundef %2643) #10
  %2645 = call i32 @isatty(i32 noundef %2644) #10
  %.not301 = icmp eq i32 %2645, 0
  br i1 %.not301, label %2646, label %2647

2646:                                             ; preds = %2642, %2636
  br label %2647

2647:                                             ; preds = %2642, %2646
  %.str.5.sink1203 = phi ptr [ @.str.5, %2646 ], [ @.str.2, %2642 ]
  store i32 %2637, ptr %292, align 4, !tbaa !5
  %2648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2649 = load i32, ptr @test_count, align 4, !tbaa !5
  %2650 = load i32, ptr %238, align 4, !tbaa !5
  %2651 = call ptr @s2n_strerror(i32 noundef %2650, ptr noundef nonnull @.str.4) #10
  %2652 = load i32, ptr %238, align 4, !tbaa !5
  %2653 = call ptr @s2n_strerror_debug(i32 noundef %2652, ptr noundef nonnull @.str.4) #10
  %2654 = load i32, ptr %292, align 4, !tbaa !5
  %2655 = call ptr @strerror(i32 noundef %2654) #10
  %2656 = load i32, ptr %292, align 4, !tbaa !5
  %2657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2648, ptr noundef nonnull %.str.5.sink1203, i32 noundef %2649, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 312, ptr noundef %2651, ptr noundef %2653, ptr noundef %2655, i32 noundef %2656) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2658:                                             ; preds = %2629
  %2659 = add nsw i32 %2600, 3
  store i32 %2659, ptr @test_count, align 4, !tbaa !5
  %2660 = load i32, ptr %2457, align 8
  %2661 = and i32 %2660, 64
  %.not302 = icmp eq i32 %2661, 0
  br i1 %.not302, label %2662, label %2684

2662:                                             ; preds = %2658
  %2663 = load i32, ptr %292, align 4, !tbaa !5
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = call i32 @s2n_print_stacktrace(ptr noundef %2664) #10
  %2666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2667 = trunc nuw i8 %2666 to i1
  br i1 %2667, label %2668, label %2672

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

2672:                                             ; preds = %2668, %2662
  br label %2673

2673:                                             ; preds = %2668, %2672
  %.str.5.sink1212 = phi ptr [ @.str.5, %2672 ], [ @.str.2, %2668 ]
  store i32 %2663, ptr %292, align 4, !tbaa !5
  %2674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2675 = load i32, ptr @test_count, align 4, !tbaa !5
  %2676 = load i32, ptr %238, align 4, !tbaa !5
  %2677 = call ptr @s2n_strerror(i32 noundef %2676, ptr noundef nonnull @.str.4) #10
  %2678 = load i32, ptr %238, align 4, !tbaa !5
  %2679 = call ptr @s2n_strerror_debug(i32 noundef %2678, ptr noundef nonnull @.str.4) #10
  %2680 = load i32, ptr %292, align 4, !tbaa !5
  %2681 = call ptr @strerror(i32 noundef %2680) #10
  %2682 = load i32, ptr %292, align 4, !tbaa !5
  %2683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2674, ptr noundef nonnull %.str.5.sink1212, i32 noundef %2675, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 313, ptr noundef %2677, ptr noundef %2679, ptr noundef %2681, i32 noundef %2682) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2684:                                             ; preds = %2658
  %2685 = add nsw i32 %2600, 4
  store i32 %2685, ptr @test_count, align 4, !tbaa !5
  %2686 = call i32 @s2n_connection_free(ptr noundef nonnull %2457) #10
  %2687 = icmp eq i32 %2686, -1
  br i1 %2687, label %2688, label %2710

2688:                                             ; preds = %2684
  %2689 = load i32, ptr %292, align 4, !tbaa !5
  %2690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2691 = call i32 @s2n_print_stacktrace(ptr noundef %2690) #10
  %2692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2693 = trunc nuw i8 %2692 to i1
  br i1 %2693, label %2694, label %2698

2694:                                             ; preds = %2688
  %2695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2696 = call i32 @fileno(ptr noundef %2695) #10
  %2697 = call i32 @isatty(i32 noundef %2696) #10
  %.not318 = icmp eq i32 %2697, 0
  br i1 %.not318, label %2698, label %2699

2698:                                             ; preds = %2694, %2688
  br label %2699

2699:                                             ; preds = %2694, %2698
  %.str.5.sink1221 = phi ptr [ @.str.5, %2698 ], [ @.str.2, %2694 ]
  store i32 %2689, ptr %292, align 4, !tbaa !5
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = load i32, ptr @test_count, align 4, !tbaa !5
  %2702 = load i32, ptr %238, align 4, !tbaa !5
  %2703 = call ptr @s2n_strerror(i32 noundef %2702, ptr noundef nonnull @.str.4) #10
  %2704 = load i32, ptr %238, align 4, !tbaa !5
  %2705 = call ptr @s2n_strerror_debug(i32 noundef %2704, ptr noundef nonnull @.str.4) #10
  %2706 = load i32, ptr %292, align 4, !tbaa !5
  %2707 = call ptr @strerror(i32 noundef %2706) #10
  %2708 = load i32, ptr %292, align 4, !tbaa !5
  %2709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2700, ptr noundef nonnull %.str.5.sink1221, i32 noundef %2701, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %2703, ptr noundef %2705, ptr noundef %2707, i32 noundef %2708) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2710:                                             ; preds = %2684
  call void @llvm.lifetime.end.p0(i64 704, ptr nonnull %28) #10
  call void @llvm.lifetime.start.p0(i64 704, ptr nonnull %31) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(704) %31, i8 0, i64 704, i1 false)
  %2711 = load i32, ptr @test_count, align 4, !tbaa !5
  %2712 = add nsw i32 %2711, 1
  store i32 %2712, ptr @test_count, align 4, !tbaa !5
  %2713 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %2714 = icmp eq ptr %2713, null
  br i1 %2714, label %2715, label %2737

2715:                                             ; preds = %2710
  %2716 = load i32, ptr %292, align 4, !tbaa !5
  %2717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2718 = call i32 @s2n_print_stacktrace(ptr noundef %2717) #10
  %2719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2720 = trunc nuw i8 %2719 to i1
  br i1 %2720, label %2721, label %2725

2721:                                             ; preds = %2715
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = call i32 @fileno(ptr noundef %2722) #10
  %2724 = call i32 @isatty(i32 noundef %2723) #10
  %.not317 = icmp eq i32 %2724, 0
  br i1 %.not317, label %2725, label %2726

2725:                                             ; preds = %2721, %2715
  br label %2726

2726:                                             ; preds = %2721, %2725
  %.str.5.sink1230 = phi ptr [ @.str.5, %2725 ], [ @.str.2, %2721 ]
  store i32 %2716, ptr %292, align 4, !tbaa !5
  %2727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2728 = load i32, ptr @test_count, align 4, !tbaa !5
  %2729 = load i32, ptr %238, align 4, !tbaa !5
  %2730 = call ptr @s2n_strerror(i32 noundef %2729, ptr noundef nonnull @.str.4) #10
  %2731 = load i32, ptr %238, align 4, !tbaa !5
  %2732 = call ptr @s2n_strerror_debug(i32 noundef %2731, ptr noundef nonnull @.str.4) #10
  %2733 = load i32, ptr %292, align 4, !tbaa !5
  %2734 = call ptr @strerror(i32 noundef %2733) #10
  %2735 = load i32, ptr %292, align 4, !tbaa !5
  %2736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2727, ptr noundef nonnull %.str.5.sink1230, i32 noundef %2728, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 323, ptr noundef %2730, ptr noundef %2732, ptr noundef %2734, i32 noundef %2735) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2737:                                             ; preds = %2710
  %2738 = load i32, ptr @test_count, align 4, !tbaa !5
  %2739 = add nsw i32 %2738, 1
  store i32 %2739, ptr @test_count, align 4, !tbaa !5
  %2740 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %2713) #10
  %2741 = icmp eq i32 %2740, -1
  br i1 %2741, label %2742, label %2764

2742:                                             ; preds = %2737
  %2743 = load i32, ptr %292, align 4, !tbaa !5
  %2744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2745 = call i32 @s2n_print_stacktrace(ptr noundef %2744) #10
  %2746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2747 = trunc nuw i8 %2746 to i1
  br i1 %2747, label %2748, label %2752

2748:                                             ; preds = %2742
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = call i32 @fileno(ptr noundef %2749) #10
  %2751 = call i32 @isatty(i32 noundef %2750) #10
  %.not316 = icmp eq i32 %2751, 0
  br i1 %.not316, label %2752, label %2753

2752:                                             ; preds = %2748, %2742
  br label %2753

2753:                                             ; preds = %2748, %2752
  %.str.5.sink1239 = phi ptr [ @.str.5, %2752 ], [ @.str.2, %2748 ]
  store i32 %2743, ptr %292, align 4, !tbaa !5
  %2754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2755 = load i32, ptr @test_count, align 4, !tbaa !5
  %2756 = load i32, ptr %238, align 4, !tbaa !5
  %2757 = call ptr @s2n_strerror(i32 noundef %2756, ptr noundef nonnull @.str.4) #10
  %2758 = load i32, ptr %238, align 4, !tbaa !5
  %2759 = call ptr @s2n_strerror_debug(i32 noundef %2758, ptr noundef nonnull @.str.4) #10
  %2760 = load i32, ptr %292, align 4, !tbaa !5
  %2761 = call ptr @strerror(i32 noundef %2760) #10
  %2762 = load i32, ptr %292, align 4, !tbaa !5
  %2763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2754, ptr noundef nonnull %.str.5.sink1239, i32 noundef %2755, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 324, ptr noundef %2757, ptr noundef %2759, ptr noundef %2761, i32 noundef %2762) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2764:                                             ; preds = %2737
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #10
  store i8 0, ptr %32, align 1, !tbaa !15
  %2765 = load i32, ptr @test_count, align 4, !tbaa !5
  %2766 = add nsw i32 %2765, 1
  store i32 %2766, ptr @test_count, align 4, !tbaa !5
  %2767 = load i16, ptr %1965, align 8, !tbaa !26
  %2768 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %2767, ptr noundef nonnull %32) #10
  %2769 = icmp eq i32 %2768, -1
  br i1 %2769, label %2770, label %2792

2770:                                             ; preds = %2764
  %2771 = load i32, ptr %292, align 4, !tbaa !5
  %2772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2773 = call i32 @s2n_print_stacktrace(ptr noundef %2772) #10
  %2774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2775 = trunc nuw i8 %2774 to i1
  br i1 %2775, label %2776, label %2780

2776:                                             ; preds = %2770
  %2777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2778 = call i32 @fileno(ptr noundef %2777) #10
  %2779 = call i32 @isatty(i32 noundef %2778) #10
  %.not315 = icmp eq i32 %2779, 0
  br i1 %.not315, label %2780, label %2781

2780:                                             ; preds = %2776, %2770
  br label %2781

2781:                                             ; preds = %2776, %2780
  %.str.5.sink1248 = phi ptr [ @.str.5, %2780 ], [ @.str.2, %2776 ]
  store i32 %2771, ptr %292, align 4, !tbaa !5
  %2782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2783 = load i32, ptr @test_count, align 4, !tbaa !5
  %2784 = load i32, ptr %238, align 4, !tbaa !5
  %2785 = call ptr @s2n_strerror(i32 noundef %2784, ptr noundef nonnull @.str.4) #10
  %2786 = load i32, ptr %238, align 4, !tbaa !5
  %2787 = call ptr @s2n_strerror_debug(i32 noundef %2786, ptr noundef nonnull @.str.4) #10
  %2788 = load i32, ptr %292, align 4, !tbaa !5
  %2789 = call ptr @strerror(i32 noundef %2788) #10
  %2790 = load i32, ptr %292, align 4, !tbaa !5
  %2791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2782, ptr noundef nonnull %.str.5.sink1248, i32 noundef %2783, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 326, ptr noundef %2785, ptr noundef %2787, ptr noundef %2789, i32 noundef %2790) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2792:                                             ; preds = %2764
  %2793 = load i8, ptr %32, align 1, !tbaa !15
  %2794 = zext i8 %2793 to i64
  %2795 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %31, i64 0, i64 %2794
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %2795, ptr noundef nonnull align 8 dereferenceable(32) %19, i64 32, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #10
  %2796 = load i32, ptr %2713, align 8
  %2797 = and i32 %2796, -65
  store i32 %2797, ptr %2713, align 8
  %2798 = load i32, ptr @test_count, align 4, !tbaa !5
  %2799 = add nsw i32 %2798, 1
  store i32 %2799, ptr @test_count, align 4, !tbaa !5
  %2800 = call i32 @s2n_extension_list_process(i32 noundef 9, ptr noundef nonnull %2713, ptr noundef nonnull %31) #10
  %2801 = icmp eq i32 %2800, -1
  br i1 %2801, label %2807, label %.preheader

.preheader:                                       ; preds = %2792
  %test_count.promoted392 = load i32, ptr @test_count, align 4, !tbaa !5
  %2802 = add i32 %test_count.promoted392, 20
  %2803 = add nsw i32 %test_count.promoted392, 1
  %2804 = getelementptr inbounds i8, ptr %31, i64 28
  %2805 = load i8, ptr %2804, align 4
  %2806 = and i8 %2805, 1
  %.not312 = icmp eq i8 %2806, 0
  br i1 %.not312, label %2829, label %2932

2807:                                             ; preds = %2792
  %2808 = load i32, ptr %292, align 4, !tbaa !5
  %2809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2810 = call i32 @s2n_print_stacktrace(ptr noundef %2809) #10
  %2811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2812 = trunc nuw i8 %2811 to i1
  br i1 %2812, label %2813, label %2817

2813:                                             ; preds = %2807
  %2814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2815 = call i32 @fileno(ptr noundef %2814) #10
  %2816 = call i32 @isatty(i32 noundef %2815) #10
  %.not314 = icmp eq i32 %2816, 0
  br i1 %.not314, label %2817, label %2818

2817:                                             ; preds = %2813, %2807
  br label %2818

2818:                                             ; preds = %2813, %2817
  %.str.5.sink1257 = phi ptr [ @.str.5, %2817 ], [ @.str.2, %2813 ]
  store i32 %2808, ptr %292, align 4, !tbaa !5
  %2819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2820 = load i32, ptr @test_count, align 4, !tbaa !5
  %2821 = load i32, ptr %238, align 4, !tbaa !5
  %2822 = call ptr @s2n_strerror(i32 noundef %2821, ptr noundef nonnull @.str.4) #10
  %2823 = load i32, ptr %238, align 4, !tbaa !5
  %2824 = call ptr @s2n_strerror_debug(i32 noundef %2823, ptr noundef nonnull @.str.4) #10
  %2825 = load i32, ptr %292, align 4, !tbaa !5
  %2826 = call ptr @strerror(i32 noundef %2825) #10
  %2827 = load i32, ptr %292, align 4, !tbaa !5
  %2828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2819, ptr noundef nonnull %.str.5.sink1257, i32 noundef %2820, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 329, ptr noundef %2822, ptr noundef %2824, ptr noundef %2826, i32 noundef %2827) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2829:                                             ; preds = %.preheader
  %2830 = add nsw i32 %test_count.promoted392, 2
  %2831 = getelementptr inbounds i8, ptr %31, i64 60
  %2832 = load i8, ptr %2831, align 4
  %2833 = and i8 %2832, 1
  %.not312.1 = icmp eq i8 %2833, 0
  br i1 %.not312.1, label %2834, label %2932

2834:                                             ; preds = %2829
  %2835 = add nsw i32 %test_count.promoted392, 3
  %2836 = getelementptr inbounds i8, ptr %31, i64 92
  %2837 = load i8, ptr %2836, align 4
  %2838 = and i8 %2837, 1
  %.not312.2 = icmp eq i8 %2838, 0
  br i1 %.not312.2, label %2839, label %2932

2839:                                             ; preds = %2834
  %2840 = add nsw i32 %test_count.promoted392, 4
  %2841 = getelementptr inbounds i8, ptr %31, i64 124
  %2842 = load i8, ptr %2841, align 4
  %2843 = and i8 %2842, 1
  %.not312.3 = icmp eq i8 %2843, 0
  br i1 %.not312.3, label %2844, label %2932

2844:                                             ; preds = %2839
  %2845 = add nsw i32 %test_count.promoted392, 5
  %2846 = getelementptr inbounds i8, ptr %31, i64 156
  %2847 = load i8, ptr %2846, align 4
  %2848 = and i8 %2847, 1
  %.not312.4 = icmp eq i8 %2848, 0
  br i1 %.not312.4, label %2849, label %2932

2849:                                             ; preds = %2844
  %2850 = add nsw i32 %test_count.promoted392, 6
  %2851 = getelementptr inbounds i8, ptr %31, i64 188
  %2852 = load i8, ptr %2851, align 4
  %2853 = and i8 %2852, 1
  %.not312.5 = icmp eq i8 %2853, 0
  br i1 %.not312.5, label %2854, label %2932

2854:                                             ; preds = %2849
  %2855 = add nsw i32 %test_count.promoted392, 7
  %2856 = getelementptr inbounds i8, ptr %31, i64 220
  %2857 = load i8, ptr %2856, align 4
  %2858 = and i8 %2857, 1
  %.not312.6 = icmp eq i8 %2858, 0
  br i1 %.not312.6, label %2859, label %2932

2859:                                             ; preds = %2854
  %2860 = add nsw i32 %test_count.promoted392, 8
  %2861 = getelementptr inbounds i8, ptr %31, i64 252
  %2862 = load i8, ptr %2861, align 4
  %2863 = and i8 %2862, 1
  %.not312.7 = icmp eq i8 %2863, 0
  br i1 %.not312.7, label %2864, label %2932

2864:                                             ; preds = %2859
  %2865 = add nsw i32 %test_count.promoted392, 9
  %2866 = getelementptr inbounds i8, ptr %31, i64 284
  %2867 = load i8, ptr %2866, align 4
  %2868 = and i8 %2867, 1
  %.not312.8 = icmp eq i8 %2868, 0
  br i1 %.not312.8, label %2869, label %2932

2869:                                             ; preds = %2864
  %2870 = add nsw i32 %test_count.promoted392, 10
  %2871 = getelementptr inbounds i8, ptr %31, i64 316
  %2872 = load i8, ptr %2871, align 4
  %2873 = and i8 %2872, 1
  %.not312.9 = icmp eq i8 %2873, 0
  br i1 %.not312.9, label %2874, label %2932

2874:                                             ; preds = %2869
  %2875 = add nsw i32 %test_count.promoted392, 11
  %2876 = getelementptr inbounds i8, ptr %31, i64 348
  %2877 = load i8, ptr %2876, align 4
  %2878 = and i8 %2877, 1
  %.not312.10 = icmp eq i8 %2878, 0
  br i1 %.not312.10, label %2879, label %2932

2879:                                             ; preds = %2874
  %2880 = add nsw i32 %test_count.promoted392, 12
  %2881 = getelementptr inbounds i8, ptr %31, i64 380
  %2882 = load i8, ptr %2881, align 4
  %2883 = and i8 %2882, 1
  %.not312.11 = icmp eq i8 %2883, 0
  br i1 %.not312.11, label %2884, label %2932

2884:                                             ; preds = %2879
  %2885 = add nsw i32 %test_count.promoted392, 13
  %2886 = getelementptr inbounds i8, ptr %31, i64 412
  %2887 = load i8, ptr %2886, align 4
  %2888 = and i8 %2887, 1
  %.not312.12 = icmp eq i8 %2888, 0
  br i1 %.not312.12, label %2889, label %2932

2889:                                             ; preds = %2884
  %2890 = add nsw i32 %test_count.promoted392, 14
  %2891 = getelementptr inbounds i8, ptr %31, i64 444
  %2892 = load i8, ptr %2891, align 4
  %2893 = and i8 %2892, 1
  %.not312.13 = icmp eq i8 %2893, 0
  br i1 %.not312.13, label %2894, label %2932

2894:                                             ; preds = %2889
  %2895 = add nsw i32 %test_count.promoted392, 15
  %2896 = getelementptr inbounds i8, ptr %31, i64 476
  %2897 = load i8, ptr %2896, align 4
  %2898 = and i8 %2897, 1
  %.not312.14 = icmp eq i8 %2898, 0
  br i1 %.not312.14, label %2899, label %2932

2899:                                             ; preds = %2894
  %2900 = add nsw i32 %test_count.promoted392, 16
  %2901 = getelementptr inbounds i8, ptr %31, i64 508
  %2902 = load i8, ptr %2901, align 4
  %2903 = and i8 %2902, 1
  %.not312.15 = icmp eq i8 %2903, 0
  br i1 %.not312.15, label %2904, label %2932

2904:                                             ; preds = %2899
  %2905 = add nsw i32 %test_count.promoted392, 17
  %2906 = getelementptr inbounds i8, ptr %31, i64 540
  %2907 = load i8, ptr %2906, align 4
  %2908 = and i8 %2907, 1
  %.not312.16 = icmp eq i8 %2908, 0
  br i1 %.not312.16, label %2909, label %2932

2909:                                             ; preds = %2904
  %2910 = add nsw i32 %test_count.promoted392, 18
  %2911 = getelementptr inbounds i8, ptr %31, i64 572
  %2912 = load i8, ptr %2911, align 4
  %2913 = and i8 %2912, 1
  %.not312.17 = icmp eq i8 %2913, 0
  br i1 %.not312.17, label %2914, label %2932

2914:                                             ; preds = %2909
  %2915 = add nsw i32 %test_count.promoted392, 19
  %2916 = getelementptr inbounds i8, ptr %31, i64 604
  %2917 = load i8, ptr %2916, align 4
  %2918 = and i8 %2917, 1
  %.not312.18 = icmp eq i8 %2918, 0
  br i1 %.not312.18, label %2919, label %2932

2919:                                             ; preds = %2914
  %2920 = getelementptr inbounds i8, ptr %31, i64 636
  %2921 = load i8, ptr %2920, align 4
  %2922 = and i8 %2921, 1
  %.not312.19 = icmp eq i8 %2922, 0
  br i1 %.not312.19, label %2923, label %2932

2923:                                             ; preds = %2919
  %2924 = add nsw i32 %test_count.promoted392, 21
  %2925 = getelementptr inbounds i8, ptr %31, i64 668
  %2926 = load i8, ptr %2925, align 4
  %2927 = and i8 %2926, 1
  %.not312.20 = icmp eq i8 %2927, 0
  br i1 %.not312.20, label %2928, label %2932

2928:                                             ; preds = %2923
  %2929 = add i32 %test_count.promoted392, 22
  store i32 %2929, ptr @test_count, align 4, !tbaa !5
  %2930 = load i32, ptr %2713, align 8
  %2931 = and i32 %2930, 64
  %.not304 = icmp eq i32 %2931, 0
  br i1 %.not304, label %2976, label %2954

2932:                                             ; preds = %2923, %2919, %2914, %2909, %2904, %2899, %2894, %2889, %2884, %2879, %2874, %2869, %2864, %2859, %2854, %2849, %2844, %2839, %2834, %2829, %.preheader
  %.lcssa = phi i32 [ %2803, %.preheader ], [ %2830, %2829 ], [ %2835, %2834 ], [ %2840, %2839 ], [ %2845, %2844 ], [ %2850, %2849 ], [ %2855, %2854 ], [ %2860, %2859 ], [ %2865, %2864 ], [ %2870, %2869 ], [ %2875, %2874 ], [ %2880, %2879 ], [ %2885, %2884 ], [ %2890, %2889 ], [ %2895, %2894 ], [ %2900, %2899 ], [ %2905, %2904 ], [ %2910, %2909 ], [ %2915, %2914 ], [ %2802, %2919 ], [ %2924, %2923 ]
  store i32 %.lcssa, ptr @test_count, align 4, !tbaa !5
  %2933 = load i32, ptr %292, align 4, !tbaa !5
  %2934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2935 = call i32 @s2n_print_stacktrace(ptr noundef %2934) #10
  %2936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2937 = trunc nuw i8 %2936 to i1
  br i1 %2937, label %2938, label %2942

2938:                                             ; preds = %2932
  %2939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2940 = call i32 @fileno(ptr noundef %2939) #10
  %2941 = call i32 @isatty(i32 noundef %2940) #10
  %.not313 = icmp eq i32 %2941, 0
  br i1 %.not313, label %2942, label %2943

2942:                                             ; preds = %2938, %2932
  br label %2943

2943:                                             ; preds = %2938, %2942
  %.str.5.sink1266 = phi ptr [ @.str.5, %2942 ], [ @.str.2, %2938 ]
  store i32 %2933, ptr %292, align 4, !tbaa !5
  %2944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2945 = load i32, ptr @test_count, align 4, !tbaa !5
  %2946 = load i32, ptr %238, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror(i32 noundef %2946, ptr noundef nonnull @.str.4) #10
  %2948 = load i32, ptr %238, align 4, !tbaa !5
  %2949 = call ptr @s2n_strerror_debug(i32 noundef %2948, ptr noundef nonnull @.str.4) #10
  %2950 = load i32, ptr %292, align 4, !tbaa !5
  %2951 = call ptr @strerror(i32 noundef %2950) #10
  %2952 = load i32, ptr %292, align 4, !tbaa !5
  %2953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2944, ptr noundef nonnull %.str.5.sink1266, i32 noundef %2945, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 331, ptr noundef %2947, ptr noundef %2949, ptr noundef %2951, i32 noundef %2952) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2954:                                             ; preds = %2928
  %2955 = load i32, ptr %292, align 4, !tbaa !5
  %2956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2957 = call i32 @s2n_print_stacktrace(ptr noundef %2956) #10
  %2958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2959 = trunc nuw i8 %2958 to i1
  br i1 %2959, label %2960, label %2964

2960:                                             ; preds = %2954
  %2961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2962 = call i32 @fileno(ptr noundef %2961) #10
  %2963 = call i32 @isatty(i32 noundef %2962) #10
  %.not311 = icmp eq i32 %2963, 0
  br i1 %.not311, label %2964, label %2965

2964:                                             ; preds = %2960, %2954
  br label %2965

2965:                                             ; preds = %2960, %2964
  %.str.5.sink1275 = phi ptr [ @.str.5, %2964 ], [ @.str.2, %2960 ]
  store i32 %2955, ptr %292, align 4, !tbaa !5
  %2966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2967 = load i32, ptr @test_count, align 4, !tbaa !5
  %2968 = load i32, ptr %238, align 4, !tbaa !5
  %2969 = call ptr @s2n_strerror(i32 noundef %2968, ptr noundef nonnull @.str.4) #10
  %2970 = load i32, ptr %238, align 4, !tbaa !5
  %2971 = call ptr @s2n_strerror_debug(i32 noundef %2970, ptr noundef nonnull @.str.4) #10
  %2972 = load i32, ptr %292, align 4, !tbaa !5
  %2973 = call ptr @strerror(i32 noundef %2972) #10
  %2974 = load i32, ptr %292, align 4, !tbaa !5
  %2975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2966, ptr noundef nonnull %.str.5.sink1275, i32 noundef %2967, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %2969, ptr noundef %2971, ptr noundef %2973, i32 noundef %2974) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2976:                                             ; preds = %2928
  %2977 = add i32 %test_count.promoted392, 23
  store i32 %2977, ptr @test_count, align 4, !tbaa !5
  %2978 = call i32 @s2n_connection_free(ptr noundef nonnull %2713) #10
  %2979 = icmp eq i32 %2978, -1
  br i1 %2979, label %2980, label %3002

2980:                                             ; preds = %2976
  %2981 = load i32, ptr %292, align 4, !tbaa !5
  %2982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2983 = call i32 @s2n_print_stacktrace(ptr noundef %2982) #10
  %2984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2985 = trunc nuw i8 %2984 to i1
  br i1 %2985, label %2986, label %2990

2986:                                             ; preds = %2980
  %2987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2988 = call i32 @fileno(ptr noundef %2987) #10
  %2989 = call i32 @isatty(i32 noundef %2988) #10
  %.not310 = icmp eq i32 %2989, 0
  br i1 %.not310, label %2990, label %2991

2990:                                             ; preds = %2986, %2980
  br label %2991

2991:                                             ; preds = %2986, %2990
  %.str.5.sink1284 = phi ptr [ @.str.5, %2990 ], [ @.str.2, %2986 ]
  store i32 %2981, ptr %292, align 4, !tbaa !5
  %2992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2993 = load i32, ptr @test_count, align 4, !tbaa !5
  %2994 = load i32, ptr %238, align 4, !tbaa !5
  %2995 = call ptr @s2n_strerror(i32 noundef %2994, ptr noundef nonnull @.str.4) #10
  %2996 = load i32, ptr %238, align 4, !tbaa !5
  %2997 = call ptr @s2n_strerror_debug(i32 noundef %2996, ptr noundef nonnull @.str.4) #10
  %2998 = load i32, ptr %292, align 4, !tbaa !5
  %2999 = call ptr @strerror(i32 noundef %2998) #10
  %3000 = load i32, ptr %292, align 4, !tbaa !5
  %3001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2992, ptr noundef nonnull %.str.5.sink1284, i32 noundef %2993, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 334, ptr noundef %2995, ptr noundef %2997, ptr noundef %2999, i32 noundef %3000) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3002:                                             ; preds = %2976
  call void @llvm.lifetime.end.p0(i64 704, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #10
  %3003 = call i32 @s2n_stuffer_free(ptr noundef nonnull %21) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %21) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #10
  %3004 = call i32 @s2n_cleanup() #10
  %3005 = icmp eq i32 %3004, -1
  br i1 %3005, label %3006, label %3028

3006:                                             ; preds = %3002
  %3007 = load i32, ptr %292, align 4, !tbaa !5
  %3008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3009 = call i32 @s2n_print_stacktrace(ptr noundef %3008) #10
  %3010 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3011 = trunc nuw i8 %3010 to i1
  br i1 %3011, label %3012, label %3016

3012:                                             ; preds = %3006
  %3013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3014 = call i32 @fileno(ptr noundef %3013) #10
  %3015 = call i32 @isatty(i32 noundef %3014) #10
  %.not309 = icmp eq i32 %3015, 0
  br i1 %.not309, label %3016, label %3017

3016:                                             ; preds = %3012, %3006
  br label %3017

3017:                                             ; preds = %3012, %3016
  %.str.5.sink1293 = phi ptr [ @.str.5, %3016 ], [ @.str.2, %3012 ]
  store i32 %3007, ptr %292, align 4, !tbaa !5
  %3018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3019 = load i32, ptr @test_count, align 4, !tbaa !5
  %3020 = load i32, ptr %238, align 4, !tbaa !5
  %3021 = call ptr @s2n_strerror(i32 noundef %3020, ptr noundef nonnull @.str.4) #10
  %3022 = load i32, ptr %238, align 4, !tbaa !5
  %3023 = call ptr @s2n_strerror_debug(i32 noundef %3022, ptr noundef nonnull @.str.4) #10
  %3024 = load i32, ptr %292, align 4, !tbaa !5
  %3025 = call ptr @strerror(i32 noundef %3024) #10
  %3026 = load i32, ptr %292, align 4, !tbaa !5
  %3027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3018, ptr noundef nonnull %.str.5.sink1293, i32 noundef %3019, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 338, ptr noundef %3021, ptr noundef %3023, ptr noundef %3025, i32 noundef %3026) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3028:                                             ; preds = %3002
  %3029 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %3030 = icmp eq i32 %3029, -1
  br i1 %3030, label %3031, label %3053

3031:                                             ; preds = %3028
  %3032 = load i32, ptr %292, align 4, !tbaa !5
  %3033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3034 = call i32 @s2n_print_stacktrace(ptr noundef %3033) #10
  %3035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3036 = trunc nuw i8 %3035 to i1
  br i1 %3036, label %3037, label %3041

3037:                                             ; preds = %3031
  %3038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3039 = call i32 @fileno(ptr noundef %3038) #10
  %3040 = call i32 @isatty(i32 noundef %3039) #10
  %.not308 = icmp eq i32 %3040, 0
  br i1 %.not308, label %3041, label %3042

3041:                                             ; preds = %3037, %3031
  br label %3042

3042:                                             ; preds = %3037, %3041
  %.str.5.sink1302 = phi ptr [ @.str.5, %3041 ], [ @.str.2, %3037 ]
  store i32 %3032, ptr %292, align 4, !tbaa !5
  %3043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3044 = load i32, ptr @test_count, align 4, !tbaa !5
  %3045 = load i32, ptr %238, align 4, !tbaa !5
  %3046 = call ptr @s2n_strerror(i32 noundef %3045, ptr noundef nonnull @.str.4) #10
  %3047 = load i32, ptr %238, align 4, !tbaa !5
  %3048 = call ptr @s2n_strerror_debug(i32 noundef %3047, ptr noundef nonnull @.str.4) #10
  %3049 = load i32, ptr %292, align 4, !tbaa !5
  %3050 = call ptr @strerror(i32 noundef %3049) #10
  %3051 = load i32, ptr %292, align 4, !tbaa !5
  %3052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3043, ptr noundef nonnull %.str.5.sink1302, i32 noundef %3044, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 338, ptr noundef %3046, ptr noundef %3048, ptr noundef %3050, i32 noundef %3051) #12
  call void @exit(i32 noundef 1) #13
  unreachable

3053:                                             ; preds = %3028
  %3054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3055 = trunc nuw i8 %3054 to i1
  br i1 %3055, label %3056, label %3067

3056:                                             ; preds = %3053
  %3057 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3058 = call i32 @fileno(ptr noundef %3057) #10
  %3059 = call i32 @isatty(i32 noundef %3058) #10
  %.not305 = icmp eq i32 %3059, 0
  br i1 %.not305, label %3067, label %3060

3060:                                             ; preds = %3056
  %3061 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not307 = icmp eq i32 %3061, 0
  %3062 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not307, label %3065, label %3063

3063:                                             ; preds = %3060
  %3064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3062, ptr noundef nonnull @.str.52, i32 noundef %3061) #10
  br label %3074

3065:                                             ; preds = %3060
  %3066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3062, ptr noundef nonnull @.str.53) #10
  br label %3074

3067:                                             ; preds = %3056, %3053
  %3068 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not306 = icmp eq i32 %3068, 0
  %3069 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not306, label %3072, label %3070

3070:                                             ; preds = %3067
  %3071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3069, ptr noundef nonnull @.str.54, i32 noundef %3068) #10
  br label %3074

3072:                                             ; preds = %3067
  %3073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3069, ptr noundef nonnull @.str.55) #10
  br label %3074

3074:                                             ; preds = %3070, %3072, %3063, %3065
  ret i32 0
}

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

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_enable_tls13_in_test(...) 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

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

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_extension_noop_if_missing(ptr noundef) #2

declare i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_extension_process(ptr noundef, ptr noundef, 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_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_extension_error_if_missing(ptr noundef) #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_setup_test_parsed_extension(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_extension_list_process(i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_allow_all_response_extensions(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { cold nounwind }
attributes #13 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!7, !7, i64 0}
!16 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !15}
!17 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !15, i64 24, i64 2, !18, i64 26, i64 2, !18, i64 28, i64 1, !15}
!18 = !{!19, !19, i64 0}
!19 = !{!"short", !7, i64 0}
!20 = !{i64 0, i64 4, !5, i64 4, i64 1, !15, i64 12, i64 2, !18, i64 14, i64 2, !18, i64 16, i64 1, !15}
!21 = !{!22, !10, i64 32}
!22 = !{!"", !19, i64 0, !6, i64 2, !19, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!23 = !{!24, !6, i64 8}
!24 = !{!"", !25, i64 0, !19, i64 24, !19, i64 26, !6, i64 28}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!24, !19, i64 24}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,MemCpyOptPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass