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

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

%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_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_blob = type { ptr, 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 [99 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_server_session_ticket_extension = external constant %struct.s2n_extension_type, align 8
@.str.12 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca 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 i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %38

38:                                               ; preds = %2
  br label %39

39:                                               ; preds = %38
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %40 = load ptr, ptr @stdout, align 8, !tbaa !9
  %41 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %40, ptr noundef @.str, ptr noundef @.str.1) #7
  %42 = load ptr, ptr @stdout, align 8, !tbaa !9
  %43 = call i32 @fflush(ptr noundef %42)
  br label %44

44:                                               ; preds = %39
  %45 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %46 = icmp eq i32 %45, -1
  br i1 %46, label %47, label %98

47:                                               ; preds = %44
  br label %48

48:                                               ; preds = %47
  br label %49

49:                                               ; preds = %48
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #7
  %50 = call ptr @__errno_location() #8
  %51 = load i32, ptr %50, align 4, !tbaa !5
  store i32 %51, ptr %6, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = call i32 @s2n_print_stacktrace(ptr noundef %52)
  %54 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %55 = trunc i8 %54 to i1
  br i1 %55, label %56, label %78

56:                                               ; preds = %49
  %57 = load ptr, ptr @stderr, align 8, !tbaa !9
  %58 = call i32 @fileno(ptr noundef %57) #7
  %59 = call i32 @isatty(i32 noundef %58) #7
  %60 = icmp ne i32 %59, 0
  br i1 %60, label %61, label %78

61:                                               ; preds = %56
  %62 = load i32, ptr %6, align 4, !tbaa !5
  %63 = call ptr @__errno_location() #8
  store i32 %62, ptr %63, align 4, !tbaa !5
  %64 = load ptr, ptr @stderr, align 8, !tbaa !9
  %65 = load i32, ptr @test_count, align 4, !tbaa !5
  %66 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %67 = load i32, ptr %66, align 4, !tbaa !5
  %68 = call ptr @s2n_strerror(i32 noundef %67, ptr noundef @.str.4)
  %69 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %70 = load i32, ptr %69, align 4, !tbaa !5
  %71 = call ptr @s2n_strerror_debug(i32 noundef %70, ptr noundef @.str.4)
  %72 = call ptr @__errno_location() #8
  %73 = load i32, ptr %72, align 4, !tbaa !5
  %74 = call ptr @strerror(i32 noundef %73) #7
  %75 = call ptr @__errno_location() #8
  %76 = load i32, ptr %75, align 4, !tbaa !5
  %77 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %64, ptr noundef @.str.2, i32 noundef %65, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 37, ptr noundef %68, ptr noundef %71, ptr noundef %74, i32 noundef %76) #7
  br label %95

78:                                               ; preds = %56, %49
  %79 = load i32, ptr %6, align 4, !tbaa !5
  %80 = call ptr @__errno_location() #8
  store i32 %79, ptr %80, align 4, !tbaa !5
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = load i32, ptr @test_count, align 4, !tbaa !5
  %83 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %84 = load i32, ptr %83, align 4, !tbaa !5
  %85 = call ptr @s2n_strerror(i32 noundef %84, ptr noundef @.str.4)
  %86 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %87 = load i32, ptr %86, align 4, !tbaa !5
  %88 = call ptr @s2n_strerror_debug(i32 noundef %87, ptr noundef @.str.4)
  %89 = call ptr @__errno_location() #8
  %90 = load i32, ptr %89, align 4, !tbaa !5
  %91 = call ptr @strerror(i32 noundef %90) #7
  %92 = call ptr @__errno_location() #8
  %93 = load i32, ptr %92, align 4, !tbaa !5
  %94 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %81, ptr noundef @.str.5, i32 noundef %82, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 37, ptr noundef %85, ptr noundef %88, ptr noundef %91, i32 noundef %93) #7
  br label %95

95:                                               ; preds = %78, %61
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  br label %96

96:                                               ; preds = %95
  call void @exit(i32 noundef 1) #9
  unreachable

97:                                               ; No predecessors!
  br label %98

98:                                               ; preds = %97, %44
  br label %99

99:                                               ; preds = %98
  br label %100

100:                                              ; preds = %99
  %101 = load i32, ptr @test_count, align 4, !tbaa !5
  %102 = add nsw i32 %101, 1
  store i32 %102, ptr @test_count, align 4, !tbaa !5
  %103 = call i32 @s2n_enable_atexit()
  %104 = icmp eq i32 %103, -1
  br i1 %104, label %105, label %156

105:                                              ; preds = %100
  br label %106

106:                                              ; preds = %105
  br label %107

107:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  %108 = call ptr @__errno_location() #8
  %109 = load i32, ptr %108, align 4, !tbaa !5
  store i32 %109, ptr %7, align 4, !tbaa !5
  %110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %111 = call i32 @s2n_print_stacktrace(ptr noundef %110)
  %112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %113 = trunc i8 %112 to i1
  br i1 %113, label %114, label %136

114:                                              ; preds = %107
  %115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %116 = call i32 @fileno(ptr noundef %115) #7
  %117 = call i32 @isatty(i32 noundef %116) #7
  %118 = icmp ne i32 %117, 0
  br i1 %118, label %119, label %136

119:                                              ; preds = %114
  %120 = load i32, ptr %7, align 4, !tbaa !5
  %121 = call ptr @__errno_location() #8
  store i32 %120, ptr %121, align 4, !tbaa !5
  %122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %123 = load i32, ptr @test_count, align 4, !tbaa !5
  %124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %125 = load i32, ptr %124, align 4, !tbaa !5
  %126 = call ptr @s2n_strerror(i32 noundef %125, ptr noundef @.str.4)
  %127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %128 = load i32, ptr %127, align 4, !tbaa !5
  %129 = call ptr @s2n_strerror_debug(i32 noundef %128, ptr noundef @.str.4)
  %130 = call ptr @__errno_location() #8
  %131 = load i32, ptr %130, align 4, !tbaa !5
  %132 = call ptr @strerror(i32 noundef %131) #7
  %133 = call ptr @__errno_location() #8
  %134 = load i32, ptr %133, align 4, !tbaa !5
  %135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %122, ptr noundef @.str.2, i32 noundef %123, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 37, ptr noundef %126, ptr noundef %129, ptr noundef %132, i32 noundef %134) #7
  br label %153

136:                                              ; preds = %114, %107
  %137 = load i32, ptr %7, align 4, !tbaa !5
  %138 = call ptr @__errno_location() #8
  store i32 %137, ptr %138, align 4, !tbaa !5
  %139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %140 = load i32, ptr @test_count, align 4, !tbaa !5
  %141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %142 = load i32, ptr %141, align 4, !tbaa !5
  %143 = call ptr @s2n_strerror(i32 noundef %142, ptr noundef @.str.4)
  %144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %145 = load i32, ptr %144, align 4, !tbaa !5
  %146 = call ptr @s2n_strerror_debug(i32 noundef %145, ptr noundef @.str.4)
  %147 = call ptr @__errno_location() #8
  %148 = load i32, ptr %147, align 4, !tbaa !5
  %149 = call ptr @strerror(i32 noundef %148) #7
  %150 = call ptr @__errno_location() #8
  %151 = load i32, ptr %150, align 4, !tbaa !5
  %152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %139, ptr noundef @.str.5, i32 noundef %140, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 37, ptr noundef %143, ptr noundef %146, ptr noundef %149, i32 noundef %151) #7
  br label %153

153:                                              ; preds = %136, %119
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  br label %154

154:                                              ; preds = %153
  call void @exit(i32 noundef 1) #9
  unreachable

155:                                              ; No predecessors!
  br label %156

156:                                              ; preds = %155, %100
  br label %157

157:                                              ; preds = %156
  br label %158

158:                                              ; preds = %157
  br label %159

159:                                              ; preds = %158
  %160 = call i32 @s2n_init()
  %161 = icmp eq i32 %160, -1
  br i1 %161, label %162, label %213

162:                                              ; preds = %159
  br label %163

163:                                              ; preds = %162
  br label %164

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

171:                                              ; preds = %164
  %172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %173 = call i32 @fileno(ptr noundef %172) #7
  %174 = call i32 @isatty(i32 noundef %173) #7
  %175 = icmp ne i32 %174, 0
  br i1 %175, label %176, label %193

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

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

210:                                              ; preds = %193, %176
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #7
  br label %211

211:                                              ; preds = %210
  call void @exit(i32 noundef 1) #9
  unreachable

212:                                              ; No predecessors!
  br label %213

213:                                              ; preds = %212, %159
  br label %214

214:                                              ; preds = %213
  br label %215

215:                                              ; preds = %214
  br label %216

216:                                              ; preds = %215
  %217 = load i32, ptr @test_count, align 4, !tbaa !5
  %218 = add nsw i32 %217, 1
  store i32 %218, ptr @test_count, align 4, !tbaa !5
  %219 = call i32 (...) @s2n_disable_tls13_in_test()
  %220 = icmp eq i32 %219, -1
  br i1 %220, label %221, label %272

221:                                              ; preds = %216
  br label %222

222:                                              ; preds = %221
  br label %223

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

230:                                              ; preds = %223
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = call i32 @fileno(ptr noundef %231) #7
  %233 = call i32 @isatty(i32 noundef %232) #7
  %234 = icmp ne i32 %233, 0
  br i1 %234, label %235, label %252

235:                                              ; preds = %230
  %236 = load i32, ptr %9, align 4, !tbaa !5
  %237 = call ptr @__errno_location() #8
  store i32 %236, ptr %237, align 4, !tbaa !5
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %241, ptr noundef @.str.4)
  %243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %244 = load i32, ptr %243, align 4, !tbaa !5
  %245 = call ptr @s2n_strerror_debug(i32 noundef %244, ptr noundef @.str.4)
  %246 = call ptr @__errno_location() #8
  %247 = load i32, ptr %246, align 4, !tbaa !5
  %248 = call ptr @strerror(i32 noundef %247) #7
  %249 = call ptr @__errno_location() #8
  %250 = load i32, ptr %249, align 4, !tbaa !5
  %251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %238, ptr noundef @.str.2, i32 noundef %239, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 38, ptr noundef %242, ptr noundef %245, ptr noundef %248, i32 noundef %250) #7
  br label %269

252:                                              ; preds = %230, %223
  %253 = load i32, ptr %9, align 4, !tbaa !5
  %254 = call ptr @__errno_location() #8
  store i32 %253, ptr %254, align 4, !tbaa !5
  %255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %256 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %258, ptr noundef @.str.4)
  %260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %261 = load i32, ptr %260, align 4, !tbaa !5
  %262 = call ptr @s2n_strerror_debug(i32 noundef %261, ptr noundef @.str.4)
  %263 = call ptr @__errno_location() #8
  %264 = load i32, ptr %263, align 4, !tbaa !5
  %265 = call ptr @strerror(i32 noundef %264) #7
  %266 = call ptr @__errno_location() #8
  %267 = load i32, ptr %266, align 4, !tbaa !5
  %268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %255, ptr noundef @.str.5, i32 noundef %256, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 38, ptr noundef %259, ptr noundef %262, ptr noundef %265, i32 noundef %267) #7
  br label %269

269:                                              ; preds = %252, %235
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  br label %270

270:                                              ; preds = %269
  call void @exit(i32 noundef 1) #9
  unreachable

271:                                              ; No predecessors!
  br label %272

272:                                              ; preds = %271, %216
  br label %273

273:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  store ptr null, ptr %10, align 8, !tbaa !9
  br label %274

274:                                              ; preds = %273
  %275 = load i32, ptr @test_count, align 4, !tbaa !5
  %276 = add nsw i32 %275, 1
  store i32 %276, ptr @test_count, align 4, !tbaa !5
  %277 = call ptr @s2n_config_new()
  store ptr %277, ptr %10, align 8, !tbaa !9
  %278 = icmp eq ptr %277, null
  br i1 %278, label %279, label %332

279:                                              ; preds = %274
  br label %280

280:                                              ; preds = %279
  br label %281

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

288:                                              ; preds = %281
  %289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %290 = call i32 @fileno(ptr noundef %289) #7
  %291 = call i32 @isatty(i32 noundef %290) #7
  %292 = icmp ne i32 %291, 0
  br i1 %292, label %293, label %310

293:                                              ; preds = %288
  %294 = load i32, ptr %11, align 4, !tbaa !5
  %295 = call ptr @__errno_location() #8
  store i32 %294, ptr %295, align 4, !tbaa !5
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = load i32, ptr @test_count, align 4, !tbaa !5
  %298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror(i32 noundef %299, ptr noundef @.str.4)
  %301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = call ptr @s2n_strerror_debug(i32 noundef %302, ptr noundef @.str.4)
  %304 = call ptr @__errno_location() #8
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = call ptr @strerror(i32 noundef %305) #7
  %307 = call ptr @__errno_location() #8
  %308 = load i32, ptr %307, align 4, !tbaa !5
  %309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %296, ptr noundef @.str.2, i32 noundef %297, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 43, ptr noundef %300, ptr noundef %303, ptr noundef %306, i32 noundef %308) #7
  br label %327

310:                                              ; preds = %288, %281
  %311 = load i32, ptr %11, align 4, !tbaa !5
  %312 = call ptr @__errno_location() #8
  store i32 %311, ptr %312, align 4, !tbaa !5
  %313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %314 = load i32, ptr @test_count, align 4, !tbaa !5
  %315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = call ptr @s2n_strerror(i32 noundef %316, ptr noundef @.str.4)
  %318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %319 = load i32, ptr %318, align 4, !tbaa !5
  %320 = call ptr @s2n_strerror_debug(i32 noundef %319, ptr noundef @.str.4)
  %321 = call ptr @__errno_location() #8
  %322 = load i32, ptr %321, align 4, !tbaa !5
  %323 = call ptr @strerror(i32 noundef %322) #7
  %324 = call ptr @__errno_location() #8
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %313, ptr noundef @.str.5, i32 noundef %314, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 43, ptr noundef %317, ptr noundef %320, ptr noundef %323, i32 noundef %325) #7
  br label %327

327:                                              ; preds = %310, %293
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  br label %328

328:                                              ; preds = %327
  br label %329

329:                                              ; preds = %328
  call void @exit(i32 noundef 1) #9
  unreachable

330:                                              ; No predecessors!
  br label %331

331:                                              ; preds = %330
  br label %332

332:                                              ; preds = %331, %274
  br label %333

333:                                              ; preds = %332
  br label %334

334:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  store ptr null, ptr %12, align 8, !tbaa !9
  br label %335

335:                                              ; preds = %334
  %336 = load i32, ptr @test_count, align 4, !tbaa !5
  %337 = add nsw i32 %336, 1
  store i32 %337, ptr @test_count, align 4, !tbaa !5
  %338 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %338, ptr %12, align 8, !tbaa !9
  %339 = icmp eq ptr %338, null
  br i1 %339, label %340, label %393

340:                                              ; preds = %335
  br label %341

341:                                              ; preds = %340
  br label %342

342:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  %343 = call ptr @__errno_location() #8
  %344 = load i32, ptr %343, align 4, !tbaa !5
  store i32 %344, ptr %13, align 4, !tbaa !5
  %345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %346 = call i32 @s2n_print_stacktrace(ptr noundef %345)
  %347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %348 = trunc i8 %347 to i1
  br i1 %348, label %349, label %371

349:                                              ; preds = %342
  %350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %351 = call i32 @fileno(ptr noundef %350) #7
  %352 = call i32 @isatty(i32 noundef %351) #7
  %353 = icmp ne i32 %352, 0
  br i1 %353, label %354, label %371

354:                                              ; preds = %349
  %355 = load i32, ptr %13, align 4, !tbaa !5
  %356 = call ptr @__errno_location() #8
  store i32 %355, ptr %356, align 4, !tbaa !5
  %357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %358 = load i32, ptr @test_count, align 4, !tbaa !5
  %359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %360 = load i32, ptr %359, align 4, !tbaa !5
  %361 = call ptr @s2n_strerror(i32 noundef %360, ptr noundef @.str.4)
  %362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = call ptr @s2n_strerror_debug(i32 noundef %363, ptr noundef @.str.4)
  %365 = call ptr @__errno_location() #8
  %366 = load i32, ptr %365, align 4, !tbaa !5
  %367 = call ptr @strerror(i32 noundef %366) #7
  %368 = call ptr @__errno_location() #8
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %357, ptr noundef @.str.2, i32 noundef %358, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 46, ptr noundef %361, ptr noundef %364, ptr noundef %367, i32 noundef %369) #7
  br label %388

371:                                              ; preds = %349, %342
  %372 = load i32, ptr %13, align 4, !tbaa !5
  %373 = call ptr @__errno_location() #8
  store i32 %372, ptr %373, align 4, !tbaa !5
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = load i32, ptr @test_count, align 4, !tbaa !5
  %376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = call ptr @s2n_strerror(i32 noundef %377, ptr noundef @.str.4)
  %379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = call ptr @s2n_strerror_debug(i32 noundef %380, ptr noundef @.str.4)
  %382 = call ptr @__errno_location() #8
  %383 = load i32, ptr %382, align 4, !tbaa !5
  %384 = call ptr @strerror(i32 noundef %383) #7
  %385 = call ptr @__errno_location() #8
  %386 = load i32, ptr %385, align 4, !tbaa !5
  %387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %374, ptr noundef @.str.5, i32 noundef %375, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 46, ptr noundef %378, ptr noundef %381, ptr noundef %384, i32 noundef %386) #7
  br label %388

388:                                              ; preds = %371, %354
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br label %389

389:                                              ; preds = %388
  br label %390

390:                                              ; preds = %389
  call void @exit(i32 noundef 1) #9
  unreachable

391:                                              ; No predecessors!
  br label %392

392:                                              ; preds = %391
  br label %393

393:                                              ; preds = %392, %335
  br label %394

394:                                              ; preds = %393
  br label %395

395:                                              ; preds = %394
  br label %396

396:                                              ; preds = %395
  %397 = load i32, ptr @test_count, align 4, !tbaa !5
  %398 = add nsw i32 %397, 1
  store i32 %398, ptr @test_count, align 4, !tbaa !5
  %399 = load ptr, ptr %12, align 8, !tbaa !9
  %400 = load ptr, ptr %10, align 8, !tbaa !9
  %401 = call i32 @s2n_connection_set_config(ptr noundef %399, ptr noundef %400)
  %402 = icmp eq i32 %401, -1
  br i1 %402, label %403, label %456

403:                                              ; preds = %396
  br label %404

404:                                              ; preds = %403
  br label %405

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

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

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

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

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

452:                                              ; preds = %451
  br label %453

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

454:                                              ; No predecessors!
  br label %455

455:                                              ; preds = %454
  br label %456

456:                                              ; preds = %455, %396
  br label %457

457:                                              ; preds = %456
  br label %458

458:                                              ; preds = %457
  br label %459

459:                                              ; preds = %458
  %460 = load i32, ptr @test_count, align 4, !tbaa !5
  %461 = add nsw i32 %460, 1
  store i32 %461, ptr @test_count, align 4, !tbaa !5
  %462 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_session_ticket_extension, i32 0, i32 5), align 8, !tbaa !15
  %463 = load ptr, ptr %12, align 8, !tbaa !9
  %464 = call zeroext i1 %462(ptr noundef %463)
  br i1 %464, label %465, label %518

465:                                              ; preds = %459
  br label %466

466:                                              ; preds = %465
  br label %467

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

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

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

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

513:                                              ; preds = %496, %479
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  br label %514

514:                                              ; preds = %513
  br label %515

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

516:                                              ; No predecessors!
  br label %517

517:                                              ; preds = %516
  br label %518

518:                                              ; preds = %517, %459
  br label %519

519:                                              ; preds = %518
  br label %520

520:                                              ; preds = %519
  br label %521

521:                                              ; preds = %520
  %522 = load i32, ptr @test_count, align 4, !tbaa !5
  %523 = add nsw i32 %522, 1
  store i32 %523, ptr @test_count, align 4, !tbaa !5
  %524 = load ptr, ptr %12, align 8, !tbaa !9
  %525 = call i32 @s2n_test_enable_extension(ptr noundef %524)
  %526 = icmp eq i32 %525, -1
  br i1 %526, label %527, label %580

527:                                              ; preds = %521
  br label %528

528:                                              ; preds = %527
  br label %529

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

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

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

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

575:                                              ; preds = %558, %541
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  br label %576

576:                                              ; preds = %575
  br label %577

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

578:                                              ; No predecessors!
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579, %521
  br label %581

581:                                              ; preds = %580
  br label %582

582:                                              ; preds = %581
  br label %583

583:                                              ; preds = %582
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr @test_count, align 4, !tbaa !5
  %586 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_session_ticket_extension, i32 0, i32 5), align 8, !tbaa !15
  %587 = load ptr, ptr %12, align 8, !tbaa !9
  %588 = call zeroext i1 %586(ptr noundef %587)
  br i1 %588, label %642, label %589

589:                                              ; preds = %583
  br label %590

590:                                              ; preds = %589
  br label %591

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

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

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

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

637:                                              ; preds = %620, %603
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %638

638:                                              ; preds = %637
  br label %639

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

640:                                              ; No predecessors!
  br label %641

641:                                              ; preds = %640
  br label %642

642:                                              ; preds = %641, %583
  br label %643

643:                                              ; preds = %642
  br label %644

644:                                              ; preds = %643
  br label %645

645:                                              ; preds = %644
  %646 = load i32, ptr @test_count, align 4, !tbaa !5
  %647 = add nsw i32 %646, 1
  store i32 %647, ptr @test_count, align 4, !tbaa !5
  %648 = load ptr, ptr %12, align 8, !tbaa !9
  %649 = call i32 @s2n_test_enable_extension(ptr noundef %648)
  %650 = icmp eq i32 %649, -1
  br i1 %650, label %651, label %704

651:                                              ; preds = %645
  br label %652

652:                                              ; preds = %651
  br label %653

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

660:                                              ; preds = %653
  %661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %662 = call i32 @fileno(ptr noundef %661) #7
  %663 = call i32 @isatty(i32 noundef %662) #7
  %664 = icmp ne i32 %663, 0
  br i1 %664, label %665, label %682

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

682:                                              ; preds = %660, %653
  %683 = load i32, ptr %18, align 4, !tbaa !5
  %684 = call ptr @__errno_location() #8
  store i32 %683, ptr %684, align 4, !tbaa !5
  %685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %686 = load i32, ptr @test_count, align 4, !tbaa !5
  %687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %688 = load i32, ptr %687, align 4, !tbaa !5
  %689 = call ptr @s2n_strerror(i32 noundef %688, ptr noundef @.str.4)
  %690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %691 = load i32, ptr %690, align 4, !tbaa !5
  %692 = call ptr @s2n_strerror_debug(i32 noundef %691, ptr noundef @.str.4)
  %693 = call ptr @__errno_location() #8
  %694 = load i32, ptr %693, align 4, !tbaa !5
  %695 = call ptr @strerror(i32 noundef %694) #7
  %696 = call ptr @__errno_location() #8
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %685, ptr noundef @.str.5, i32 noundef %686, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 57, ptr noundef %689, ptr noundef %692, ptr noundef %695, i32 noundef %697) #7
  br label %699

699:                                              ; preds = %682, %665
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %700

700:                                              ; preds = %699
  br label %701

701:                                              ; preds = %700
  call void @exit(i32 noundef 1) #9
  unreachable

702:                                              ; No predecessors!
  br label %703

703:                                              ; preds = %702
  br label %704

704:                                              ; preds = %703, %645
  br label %705

705:                                              ; preds = %704
  br label %706

706:                                              ; preds = %705
  br label %707

707:                                              ; preds = %706
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr @test_count, align 4, !tbaa !5
  %710 = load ptr, ptr %10, align 8, !tbaa !9
  %711 = call i32 @s2n_config_set_session_tickets_onoff(ptr noundef %710, i8 noundef zeroext 0)
  %712 = icmp eq i32 %711, -1
  br i1 %712, label %713, label %766

713:                                              ; preds = %707
  br label %714

714:                                              ; preds = %713
  br label %715

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

722:                                              ; preds = %715
  %723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %724 = call i32 @fileno(ptr noundef %723) #7
  %725 = call i32 @isatty(i32 noundef %724) #7
  %726 = icmp ne i32 %725, 0
  br i1 %726, label %727, label %744

727:                                              ; preds = %722
  %728 = load i32, ptr %19, align 4, !tbaa !5
  %729 = call ptr @__errno_location() #8
  store i32 %728, ptr %729, align 4, !tbaa !5
  %730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %733, ptr noundef @.str.4)
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror_debug(i32 noundef %736, ptr noundef @.str.4)
  %738 = call ptr @__errno_location() #8
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @strerror(i32 noundef %739) #7
  %741 = call ptr @__errno_location() #8
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %730, ptr noundef @.str.2, i32 noundef %731, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 58, ptr noundef %734, ptr noundef %737, ptr noundef %740, i32 noundef %742) #7
  br label %761

744:                                              ; preds = %722, %715
  %745 = load i32, ptr %19, align 4, !tbaa !5
  %746 = call ptr @__errno_location() #8
  store i32 %745, ptr %746, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %750, ptr noundef @.str.4)
  %752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror_debug(i32 noundef %753, ptr noundef @.str.4)
  %755 = call ptr @__errno_location() #8
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call ptr @strerror(i32 noundef %756) #7
  %758 = call ptr @__errno_location() #8
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %747, ptr noundef @.str.5, i32 noundef %748, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 58, ptr noundef %751, ptr noundef %754, ptr noundef %757, i32 noundef %759) #7
  br label %761

761:                                              ; preds = %744, %727
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %762

762:                                              ; preds = %761
  br label %763

763:                                              ; preds = %762
  call void @exit(i32 noundef 1) #9
  unreachable

764:                                              ; No predecessors!
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765, %707
  br label %767

767:                                              ; preds = %766
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = add nsw i32 %770, 1
  store i32 %771, ptr @test_count, align 4, !tbaa !5
  %772 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_session_ticket_extension, i32 0, i32 5), align 8, !tbaa !15
  %773 = load ptr, ptr %12, align 8, !tbaa !9
  %774 = call zeroext i1 %772(ptr noundef %773)
  br i1 %774, label %775, label %828

775:                                              ; preds = %769
  br label %776

776:                                              ; preds = %775
  br label %777

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

784:                                              ; preds = %777
  %785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %786 = call i32 @fileno(ptr noundef %785) #7
  %787 = call i32 @isatty(i32 noundef %786) #7
  %788 = icmp ne i32 %787, 0
  br i1 %788, label %789, label %806

789:                                              ; preds = %784
  %790 = load i32, ptr %20, align 4, !tbaa !5
  %791 = call ptr @__errno_location() #8
  store i32 %790, ptr %791, align 4, !tbaa !5
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %795, ptr noundef @.str.4)
  %797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %798 = load i32, ptr %797, align 4, !tbaa !5
  %799 = call ptr @s2n_strerror_debug(i32 noundef %798, ptr noundef @.str.4)
  %800 = call ptr @__errno_location() #8
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = call ptr @strerror(i32 noundef %801) #7
  %803 = call ptr @__errno_location() #8
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %792, ptr noundef @.str.2, i32 noundef %793, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 59, ptr noundef %796, ptr noundef %799, ptr noundef %802, i32 noundef %804) #7
  br label %823

806:                                              ; preds = %784, %777
  %807 = load i32, ptr %20, align 4, !tbaa !5
  %808 = call ptr @__errno_location() #8
  store i32 %807, ptr %808, align 4, !tbaa !5
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %812, ptr noundef @.str.4)
  %814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %815 = load i32, ptr %814, align 4, !tbaa !5
  %816 = call ptr @s2n_strerror_debug(i32 noundef %815, ptr noundef @.str.4)
  %817 = call ptr @__errno_location() #8
  %818 = load i32, ptr %817, align 4, !tbaa !5
  %819 = call ptr @strerror(i32 noundef %818) #7
  %820 = call ptr @__errno_location() #8
  %821 = load i32, ptr %820, align 4, !tbaa !5
  %822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %809, ptr noundef @.str.5, i32 noundef %810, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 59, ptr noundef %813, ptr noundef %816, ptr noundef %819, i32 noundef %821) #7
  br label %823

823:                                              ; preds = %806, %789
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %824

824:                                              ; preds = %823
  br label %825

825:                                              ; preds = %824
  call void @exit(i32 noundef 1) #9
  unreachable

826:                                              ; No predecessors!
  br label %827

827:                                              ; preds = %826
  br label %828

828:                                              ; preds = %827, %769
  br label %829

829:                                              ; preds = %828
  br label %830

830:                                              ; preds = %829
  br label %831

831:                                              ; preds = %830
  %832 = load i32, ptr @test_count, align 4, !tbaa !5
  %833 = add nsw i32 %832, 1
  store i32 %833, ptr @test_count, align 4, !tbaa !5
  %834 = load ptr, ptr %12, align 8, !tbaa !9
  %835 = call i32 @s2n_test_enable_extension(ptr noundef %834)
  %836 = icmp eq i32 %835, -1
  br i1 %836, label %837, label %890

837:                                              ; preds = %831
  br label %838

838:                                              ; preds = %837
  br label %839

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

846:                                              ; preds = %839
  %847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %848 = call i32 @fileno(ptr noundef %847) #7
  %849 = call i32 @isatty(i32 noundef %848) #7
  %850 = icmp ne i32 %849, 0
  br i1 %850, label %851, label %868

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

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

885:                                              ; preds = %868, %851
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br label %886

886:                                              ; preds = %885
  br label %887

887:                                              ; preds = %886
  call void @exit(i32 noundef 1) #9
  unreachable

888:                                              ; No predecessors!
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889, %831
  br label %891

891:                                              ; preds = %890
  br label %892

892:                                              ; preds = %891
  %893 = load ptr, ptr %12, align 8, !tbaa !9
  %894 = getelementptr inbounds %struct.s2n_connection, ptr %893, i32 0, i32 76
  store i32 1, ptr %894, align 4, !tbaa !18
  br label %895

895:                                              ; preds = %892
  %896 = load i32, ptr @test_count, align 4, !tbaa !5
  %897 = add nsw i32 %896, 1
  store i32 %897, ptr @test_count, align 4, !tbaa !5
  %898 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_session_ticket_extension, i32 0, i32 5), align 8, !tbaa !15
  %899 = load ptr, ptr %12, align 8, !tbaa !9
  %900 = call zeroext i1 %898(ptr noundef %899)
  br i1 %900, label %901, label %954

901:                                              ; preds = %895
  br label %902

902:                                              ; preds = %901
  br label %903

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

910:                                              ; preds = %903
  %911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %912 = call i32 @fileno(ptr noundef %911) #7
  %913 = call i32 @isatty(i32 noundef %912) #7
  %914 = icmp ne i32 %913, 0
  br i1 %914, label %915, label %932

915:                                              ; preds = %910
  %916 = load i32, ptr %22, align 4, !tbaa !5
  %917 = call ptr @__errno_location() #8
  store i32 %916, ptr %917, align 4, !tbaa !5
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = load i32, ptr @test_count, align 4, !tbaa !5
  %920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = call ptr @s2n_strerror(i32 noundef %921, ptr noundef @.str.4)
  %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_debug(i32 noundef %924, ptr noundef @.str.4)
  %926 = call ptr @__errno_location() #8
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = call ptr @strerror(i32 noundef %927) #7
  %929 = call ptr @__errno_location() #8
  %930 = load i32, ptr %929, align 4, !tbaa !5
  %931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %918, ptr noundef @.str.2, i32 noundef %919, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 64, ptr noundef %922, ptr noundef %925, ptr noundef %928, i32 noundef %930) #7
  br label %949

932:                                              ; preds = %910, %903
  %933 = load i32, ptr %22, align 4, !tbaa !5
  %934 = call ptr @__errno_location() #8
  store i32 %933, ptr %934, align 4, !tbaa !5
  %935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %936 = load i32, ptr @test_count, align 4, !tbaa !5
  %937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %938 = load i32, ptr %937, align 4, !tbaa !5
  %939 = call ptr @s2n_strerror(i32 noundef %938, ptr noundef @.str.4)
  %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_debug(i32 noundef %941, ptr noundef @.str.4)
  %943 = call ptr @__errno_location() #8
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call ptr @strerror(i32 noundef %944) #7
  %946 = call ptr @__errno_location() #8
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %935, ptr noundef @.str.5, i32 noundef %936, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 64, ptr noundef %939, ptr noundef %942, ptr noundef %945, i32 noundef %947) #7
  br label %949

949:                                              ; preds = %932, %915
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  br label %950

950:                                              ; preds = %949
  br label %951

951:                                              ; preds = %950
  call void @exit(i32 noundef 1) #9
  unreachable

952:                                              ; No predecessors!
  br label %953

953:                                              ; preds = %952
  br label %954

954:                                              ; preds = %953, %895
  br label %955

955:                                              ; preds = %954
  br label %956

956:                                              ; preds = %955
  br label %957

957:                                              ; preds = %956
  %958 = load i32, ptr @test_count, align 4, !tbaa !5
  %959 = add nsw i32 %958, 1
  store i32 %959, ptr @test_count, align 4, !tbaa !5
  %960 = load ptr, ptr %12, align 8, !tbaa !9
  %961 = call i32 @s2n_test_enable_extension(ptr noundef %960)
  %962 = icmp eq i32 %961, -1
  br i1 %962, label %963, label %1016

963:                                              ; preds = %957
  br label %964

964:                                              ; preds = %963
  br label %965

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

972:                                              ; preds = %965
  %973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %974 = call i32 @fileno(ptr noundef %973) #7
  %975 = call i32 @isatty(i32 noundef %974) #7
  %976 = icmp ne i32 %975, 0
  br i1 %976, label %977, label %994

977:                                              ; preds = %972
  %978 = load i32, ptr %23, align 4, !tbaa !5
  %979 = call ptr @__errno_location() #8
  store i32 %978, ptr %979, align 4, !tbaa !5
  %980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %981 = load i32, ptr @test_count, align 4, !tbaa !5
  %982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror(i32 noundef %983, ptr noundef @.str.4)
  %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_debug(i32 noundef %986, ptr noundef @.str.4)
  %988 = call ptr @__errno_location() #8
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = call ptr @strerror(i32 noundef %989) #7
  %991 = call ptr @__errno_location() #8
  %992 = load i32, ptr %991, align 4, !tbaa !5
  %993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %980, ptr noundef @.str.2, i32 noundef %981, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 67, ptr noundef %984, ptr noundef %987, ptr noundef %990, i32 noundef %992) #7
  br label %1011

994:                                              ; preds = %972, %965
  %995 = load i32, ptr %23, align 4, !tbaa !5
  %996 = call ptr @__errno_location() #8
  store i32 %995, ptr %996, align 4, !tbaa !5
  %997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %998 = load i32, ptr @test_count, align 4, !tbaa !5
  %999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror(i32 noundef %1000, ptr noundef @.str.4)
  %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_debug(i32 noundef %1003, ptr noundef @.str.4)
  %1005 = call ptr @__errno_location() #8
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = call ptr @strerror(i32 noundef %1006) #7
  %1008 = call ptr @__errno_location() #8
  %1009 = load i32, ptr %1008, align 4, !tbaa !5
  %1010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %997, ptr noundef @.str.5, i32 noundef %998, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1001, ptr noundef %1004, ptr noundef %1007, i32 noundef %1009) #7
  br label %1011

1011:                                             ; preds = %994, %977
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %1012

1012:                                             ; preds = %1011
  br label %1013

1013:                                             ; preds = %1012
  call void @exit(i32 noundef 1) #9
  unreachable

1014:                                             ; No predecessors!
  br label %1015

1015:                                             ; preds = %1014
  br label %1016

1016:                                             ; preds = %1015, %957
  br label %1017

1017:                                             ; preds = %1016
  br label %1018

1018:                                             ; preds = %1017
  %1019 = load ptr, ptr %12, align 8, !tbaa !9
  %1020 = getelementptr inbounds %struct.s2n_connection, ptr %1019, i32 0, i32 76
  store i32 0, ptr %1020, align 4, !tbaa !18
  br label %1021

1021:                                             ; preds = %1018
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = add nsw i32 %1022, 1
  store i32 %1023, ptr @test_count, align 4, !tbaa !5
  %1024 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_session_ticket_extension, i32 0, i32 5), align 8, !tbaa !15
  %1025 = load ptr, ptr %12, align 8, !tbaa !9
  %1026 = call zeroext i1 %1024(ptr noundef %1025)
  br i1 %1026, label %1027, label %1080

1027:                                             ; preds = %1021
  br label %1028

1028:                                             ; preds = %1027
  br label %1029

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

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

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

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

1075:                                             ; preds = %1058, %1041
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br label %1076

1076:                                             ; preds = %1075
  br label %1077

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

1078:                                             ; No predecessors!
  br label %1079

1079:                                             ; preds = %1078
  br label %1080

1080:                                             ; preds = %1079, %1021
  br label %1081

1081:                                             ; preds = %1080
  br label %1082

1082:                                             ; preds = %1081
  br label %1083

1083:                                             ; preds = %1082
  %1084 = load i32, ptr @test_count, align 4, !tbaa !5
  %1085 = add nsw i32 %1084, 1
  store i32 %1085, ptr @test_count, align 4, !tbaa !5
  %1086 = load ptr, ptr %12, align 8, !tbaa !9
  %1087 = call i32 @s2n_test_enable_extension(ptr noundef %1086)
  %1088 = icmp eq i32 %1087, -1
  br i1 %1088, label %1089, label %1142

1089:                                             ; preds = %1083
  br label %1090

1090:                                             ; preds = %1089
  br label %1091

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

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

1103:                                             ; preds = %1098
  %1104 = load i32, ptr %25, align 4, !tbaa !5
  %1105 = call ptr @__errno_location() #8
  store i32 %1104, ptr %1105, align 4, !tbaa !5
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = load i32, ptr @test_count, align 4, !tbaa !5
  %1108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1109 = load i32, ptr %1108, align 4, !tbaa !5
  %1110 = call ptr @s2n_strerror(i32 noundef %1109, ptr noundef @.str.4)
  %1111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1112 = load i32, ptr %1111, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror_debug(i32 noundef %1112, ptr noundef @.str.4)
  %1114 = call ptr @__errno_location() #8
  %1115 = load i32, ptr %1114, align 4, !tbaa !5
  %1116 = call ptr @strerror(i32 noundef %1115) #7
  %1117 = call ptr @__errno_location() #8
  %1118 = load i32, ptr %1117, align 4, !tbaa !5
  %1119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1106, ptr noundef @.str.2, i32 noundef %1107, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1110, ptr noundef %1113, ptr noundef %1116, i32 noundef %1118) #7
  br label %1137

1120:                                             ; preds = %1098, %1091
  %1121 = load i32, ptr %25, align 4, !tbaa !5
  %1122 = call ptr @__errno_location() #8
  store i32 %1121, ptr %1122, align 4, !tbaa !5
  %1123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1124 = load i32, ptr @test_count, align 4, !tbaa !5
  %1125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1126 = load i32, ptr %1125, align 4, !tbaa !5
  %1127 = call ptr @s2n_strerror(i32 noundef %1126, ptr noundef @.str.4)
  %1128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1129 = load i32, ptr %1128, align 4, !tbaa !5
  %1130 = call ptr @s2n_strerror_debug(i32 noundef %1129, ptr noundef @.str.4)
  %1131 = call ptr @__errno_location() #8
  %1132 = load i32, ptr %1131, align 4, !tbaa !5
  %1133 = call ptr @strerror(i32 noundef %1132) #7
  %1134 = call ptr @__errno_location() #8
  %1135 = load i32, ptr %1134, align 4, !tbaa !5
  %1136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1123, ptr noundef @.str.5, i32 noundef %1124, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1127, ptr noundef %1130, ptr noundef %1133, i32 noundef %1135) #7
  br label %1137

1137:                                             ; preds = %1120, %1103
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %1138

1138:                                             ; preds = %1137
  br label %1139

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

1140:                                             ; No predecessors!
  br label %1141

1141:                                             ; preds = %1140
  br label %1142

1142:                                             ; preds = %1141, %1083
  br label %1143

1143:                                             ; preds = %1142
  br label %1144

1144:                                             ; preds = %1143
  %1145 = load ptr, ptr %12, align 8, !tbaa !9
  %1146 = getelementptr inbounds %struct.s2n_connection, ptr %1145, i32 0, i32 23
  store i8 34, ptr %1146, align 4, !tbaa !44
  br label %1147

1147:                                             ; preds = %1144
  %1148 = load i32, ptr @test_count, align 4, !tbaa !5
  %1149 = add nsw i32 %1148, 1
  store i32 %1149, ptr @test_count, align 4, !tbaa !5
  %1150 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_session_ticket_extension, i32 0, i32 5), align 8, !tbaa !15
  %1151 = load ptr, ptr %12, align 8, !tbaa !9
  %1152 = call zeroext i1 %1150(ptr noundef %1151)
  br i1 %1152, label %1153, label %1206

1153:                                             ; preds = %1147
  br label %1154

1154:                                             ; preds = %1153
  br label %1155

1155:                                             ; preds = %1154
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  %1156 = call ptr @__errno_location() #8
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  store i32 %1157, ptr %26, align 4, !tbaa !5
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = call i32 @s2n_print_stacktrace(ptr noundef %1158)
  %1160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1161 = trunc i8 %1160 to i1
  br i1 %1161, label %1162, label %1184

1162:                                             ; preds = %1155
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1164 = call i32 @fileno(ptr noundef %1163) #7
  %1165 = call i32 @isatty(i32 noundef %1164) #7
  %1166 = icmp ne i32 %1165, 0
  br i1 %1166, label %1167, label %1184

1167:                                             ; preds = %1162
  %1168 = load i32, ptr %26, align 4, !tbaa !5
  %1169 = call ptr @__errno_location() #8
  store i32 %1168, ptr %1169, align 4, !tbaa !5
  %1170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1171 = load i32, ptr @test_count, align 4, !tbaa !5
  %1172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1173 = load i32, ptr %1172, align 4, !tbaa !5
  %1174 = call ptr @s2n_strerror(i32 noundef %1173, ptr noundef @.str.4)
  %1175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1176 = load i32, ptr %1175, align 4, !tbaa !5
  %1177 = call ptr @s2n_strerror_debug(i32 noundef %1176, ptr noundef @.str.4)
  %1178 = call ptr @__errno_location() #8
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  %1180 = call ptr @strerror(i32 noundef %1179) #7
  %1181 = call ptr @__errno_location() #8
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1170, ptr noundef @.str.2, i32 noundef %1171, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1174, ptr noundef %1177, ptr noundef %1180, i32 noundef %1182) #7
  br label %1201

1184:                                             ; preds = %1162, %1155
  %1185 = load i32, ptr %26, align 4, !tbaa !5
  %1186 = call ptr @__errno_location() #8
  store i32 %1185, ptr %1186, align 4, !tbaa !5
  %1187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1188 = load i32, ptr @test_count, align 4, !tbaa !5
  %1189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1190 = load i32, ptr %1189, align 4, !tbaa !5
  %1191 = call ptr @s2n_strerror(i32 noundef %1190, ptr noundef @.str.4)
  %1192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1193 = load i32, ptr %1192, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror_debug(i32 noundef %1193, ptr noundef @.str.4)
  %1195 = call ptr @__errno_location() #8
  %1196 = load i32, ptr %1195, align 4, !tbaa !5
  %1197 = call ptr @strerror(i32 noundef %1196) #7
  %1198 = call ptr @__errno_location() #8
  %1199 = load i32, ptr %1198, align 4, !tbaa !5
  %1200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1187, ptr noundef @.str.5, i32 noundef %1188, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1191, ptr noundef %1194, ptr noundef %1197, i32 noundef %1199) #7
  br label %1201

1201:                                             ; preds = %1184, %1167
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %1202

1202:                                             ; preds = %1201
  br label %1203

1203:                                             ; preds = %1202
  call void @exit(i32 noundef 1) #9
  unreachable

1204:                                             ; No predecessors!
  br label %1205

1205:                                             ; preds = %1204
  br label %1206

1206:                                             ; preds = %1205, %1147
  br label %1207

1207:                                             ; preds = %1206
  br label %1208

1208:                                             ; preds = %1207
  br label %1209

1209:                                             ; preds = %1208
  %1210 = load i32, ptr @test_count, align 4, !tbaa !5
  %1211 = add nsw i32 %1210, 1
  store i32 %1211, ptr @test_count, align 4, !tbaa !5
  %1212 = load ptr, ptr %12, align 8, !tbaa !9
  %1213 = call i32 @s2n_connection_free(ptr noundef %1212)
  %1214 = icmp eq i32 %1213, -1
  br i1 %1214, label %1215, label %1268

1215:                                             ; preds = %1209
  br label %1216

1216:                                             ; preds = %1215
  br label %1217

1217:                                             ; preds = %1216
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  %1218 = call ptr @__errno_location() #8
  %1219 = load i32, ptr %1218, align 4, !tbaa !5
  store i32 %1219, ptr %27, align 4, !tbaa !5
  %1220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1221 = call i32 @s2n_print_stacktrace(ptr noundef %1220)
  %1222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1223 = trunc i8 %1222 to i1
  br i1 %1223, label %1224, label %1246

1224:                                             ; preds = %1217
  %1225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1226 = call i32 @fileno(ptr noundef %1225) #7
  %1227 = call i32 @isatty(i32 noundef %1226) #7
  %1228 = icmp ne i32 %1227, 0
  br i1 %1228, label %1229, label %1246

1229:                                             ; preds = %1224
  %1230 = load i32, ptr %27, align 4, !tbaa !5
  %1231 = call ptr @__errno_location() #8
  store i32 %1230, ptr %1231, align 4, !tbaa !5
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = load i32, ptr @test_count, align 4, !tbaa !5
  %1234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1235 = load i32, ptr %1234, align 4, !tbaa !5
  %1236 = call ptr @s2n_strerror(i32 noundef %1235, ptr noundef @.str.4)
  %1237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1238 = load i32, ptr %1237, align 4, !tbaa !5
  %1239 = call ptr @s2n_strerror_debug(i32 noundef %1238, ptr noundef @.str.4)
  %1240 = call ptr @__errno_location() #8
  %1241 = load i32, ptr %1240, align 4, !tbaa !5
  %1242 = call ptr @strerror(i32 noundef %1241) #7
  %1243 = call ptr @__errno_location() #8
  %1244 = load i32, ptr %1243, align 4, !tbaa !5
  %1245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1232, ptr noundef @.str.2, i32 noundef %1233, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1236, ptr noundef %1239, ptr noundef %1242, i32 noundef %1244) #7
  br label %1263

1246:                                             ; preds = %1224, %1217
  %1247 = load i32, ptr %27, align 4, !tbaa !5
  %1248 = call ptr @__errno_location() #8
  store i32 %1247, ptr %1248, align 4, !tbaa !5
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %1251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1252 = load i32, ptr %1251, align 4, !tbaa !5
  %1253 = call ptr @s2n_strerror(i32 noundef %1252, ptr noundef @.str.4)
  %1254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1255 = load i32, ptr %1254, align 4, !tbaa !5
  %1256 = call ptr @s2n_strerror_debug(i32 noundef %1255, ptr noundef @.str.4)
  %1257 = call ptr @__errno_location() #8
  %1258 = load i32, ptr %1257, align 4, !tbaa !5
  %1259 = call ptr @strerror(i32 noundef %1258) #7
  %1260 = call ptr @__errno_location() #8
  %1261 = load i32, ptr %1260, align 4, !tbaa !5
  %1262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1249, ptr noundef @.str.5, i32 noundef %1250, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1253, ptr noundef %1256, ptr noundef %1259, i32 noundef %1261) #7
  br label %1263

1263:                                             ; preds = %1246, %1229
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %1264

1264:                                             ; preds = %1263
  br label %1265

1265:                                             ; preds = %1264
  call void @exit(i32 noundef 1) #9
  unreachable

1266:                                             ; No predecessors!
  br label %1267

1267:                                             ; preds = %1266
  br label %1268

1268:                                             ; preds = %1267, %1209
  br label %1269

1269:                                             ; preds = %1268
  br label %1270

1270:                                             ; preds = %1269
  br label %1271

1271:                                             ; preds = %1270
  %1272 = load i32, ptr @test_count, align 4, !tbaa !5
  %1273 = add nsw i32 %1272, 1
  store i32 %1273, ptr @test_count, align 4, !tbaa !5
  %1274 = load ptr, ptr %10, align 8, !tbaa !9
  %1275 = call i32 @s2n_config_free(ptr noundef %1274)
  %1276 = icmp eq i32 %1275, -1
  br i1 %1276, label %1277, label %1330

1277:                                             ; preds = %1271
  br label %1278

1278:                                             ; preds = %1277
  br label %1279

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

1286:                                             ; preds = %1279
  %1287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1288 = call i32 @fileno(ptr noundef %1287) #7
  %1289 = call i32 @isatty(i32 noundef %1288) #7
  %1290 = icmp ne i32 %1289, 0
  br i1 %1290, label %1291, label %1308

1291:                                             ; preds = %1286
  %1292 = load i32, ptr %28, align 4, !tbaa !5
  %1293 = call ptr @__errno_location() #8
  store i32 %1292, ptr %1293, align 4, !tbaa !5
  %1294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1295 = load i32, ptr @test_count, align 4, !tbaa !5
  %1296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1297 = load i32, ptr %1296, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror(i32 noundef %1297, ptr noundef @.str.4)
  %1299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1300 = load i32, ptr %1299, align 4, !tbaa !5
  %1301 = call ptr @s2n_strerror_debug(i32 noundef %1300, ptr noundef @.str.4)
  %1302 = call ptr @__errno_location() #8
  %1303 = load i32, ptr %1302, align 4, !tbaa !5
  %1304 = call ptr @strerror(i32 noundef %1303) #7
  %1305 = call ptr @__errno_location() #8
  %1306 = load i32, ptr %1305, align 4, !tbaa !5
  %1307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1294, ptr noundef @.str.2, i32 noundef %1295, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1298, ptr noundef %1301, ptr noundef %1304, i32 noundef %1306) #7
  br label %1325

1308:                                             ; preds = %1286, %1279
  %1309 = load i32, ptr %28, align 4, !tbaa !5
  %1310 = call ptr @__errno_location() #8
  store i32 %1309, ptr %1310, align 4, !tbaa !5
  %1311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1312 = load i32, ptr @test_count, align 4, !tbaa !5
  %1313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1314 = load i32, ptr %1313, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror(i32 noundef %1314, ptr noundef @.str.4)
  %1316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1317 = load i32, ptr %1316, align 4, !tbaa !5
  %1318 = call ptr @s2n_strerror_debug(i32 noundef %1317, ptr noundef @.str.4)
  %1319 = call ptr @__errno_location() #8
  %1320 = load i32, ptr %1319, align 4, !tbaa !5
  %1321 = call ptr @strerror(i32 noundef %1320) #7
  %1322 = call ptr @__errno_location() #8
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1311, ptr noundef @.str.5, i32 noundef %1312, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1315, ptr noundef %1318, ptr noundef %1321, i32 noundef %1323) #7
  br label %1325

1325:                                             ; preds = %1308, %1291
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %1326

1326:                                             ; preds = %1325
  br label %1327

1327:                                             ; preds = %1326
  call void @exit(i32 noundef 1) #9
  unreachable

1328:                                             ; No predecessors!
  br label %1329

1329:                                             ; preds = %1328
  br label %1330

1330:                                             ; preds = %1329, %1271
  br label %1331

1331:                                             ; preds = %1330
  br label %1332

1332:                                             ; preds = %1331
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  store ptr null, ptr %29, align 8, !tbaa !9
  br label %1333

1333:                                             ; preds = %1332
  %1334 = load i32, ptr @test_count, align 4, !tbaa !5
  %1335 = add nsw i32 %1334, 1
  store i32 %1335, ptr @test_count, align 4, !tbaa !5
  %1336 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1336, ptr %29, align 8, !tbaa !9
  %1337 = icmp eq ptr %1336, null
  br i1 %1337, label %1338, label %1391

1338:                                             ; preds = %1333
  br label %1339

1339:                                             ; preds = %1338
  br label %1340

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

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

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

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

1386:                                             ; preds = %1369, %1352
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %1387

1387:                                             ; preds = %1386
  br label %1388

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

1389:                                             ; No predecessors!
  br label %1390

1390:                                             ; preds = %1389
  br label %1391

1391:                                             ; preds = %1390, %1333
  br label %1392

1392:                                             ; preds = %1391
  br label %1393

1393:                                             ; preds = %1392
  br label %1394

1394:                                             ; preds = %1393
  %1395 = load i32, ptr @test_count, align 4, !tbaa !5
  %1396 = add nsw i32 %1395, 1
  store i32 %1396, ptr @test_count, align 4, !tbaa !5
  %1397 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_session_ticket_extension, i32 0, i32 3), align 8, !tbaa !45
  %1398 = load ptr, ptr %29, align 8, !tbaa !9
  %1399 = call i32 %1397(ptr noundef %1398, ptr noundef null)
  %1400 = icmp eq i32 %1399, -1
  br i1 %1400, label %1401, label %1454

1401:                                             ; preds = %1394
  br label %1402

1402:                                             ; preds = %1401
  br label %1403

1403:                                             ; preds = %1402
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  %1404 = call ptr @__errno_location() #8
  %1405 = load i32, ptr %1404, align 4, !tbaa !5
  store i32 %1405, ptr %31, align 4, !tbaa !5
  %1406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1407 = call i32 @s2n_print_stacktrace(ptr noundef %1406)
  %1408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1409 = trunc i8 %1408 to i1
  br i1 %1409, label %1410, label %1432

1410:                                             ; preds = %1403
  %1411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1412 = call i32 @fileno(ptr noundef %1411) #7
  %1413 = call i32 @isatty(i32 noundef %1412) #7
  %1414 = icmp ne i32 %1413, 0
  br i1 %1414, label %1415, label %1432

1415:                                             ; preds = %1410
  %1416 = load i32, ptr %31, align 4, !tbaa !5
  %1417 = call ptr @__errno_location() #8
  store i32 %1416, ptr %1417, align 4, !tbaa !5
  %1418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1419 = load i32, ptr @test_count, align 4, !tbaa !5
  %1420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call ptr @s2n_strerror(i32 noundef %1421, ptr noundef @.str.4)
  %1423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror_debug(i32 noundef %1424, ptr noundef @.str.4)
  %1426 = call ptr @__errno_location() #8
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @strerror(i32 noundef %1427) #7
  %1429 = call ptr @__errno_location() #8
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1418, ptr noundef @.str.2, i32 noundef %1419, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1422, ptr noundef %1425, ptr noundef %1428, i32 noundef %1430) #7
  br label %1449

1432:                                             ; preds = %1410, %1403
  %1433 = load i32, ptr %31, align 4, !tbaa !5
  %1434 = call ptr @__errno_location() #8
  store i32 %1433, ptr %1434, align 4, !tbaa !5
  %1435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1436 = load i32, ptr @test_count, align 4, !tbaa !5
  %1437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1438 = load i32, ptr %1437, align 4, !tbaa !5
  %1439 = call ptr @s2n_strerror(i32 noundef %1438, ptr noundef @.str.4)
  %1440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1441 = load i32, ptr %1440, align 4, !tbaa !5
  %1442 = call ptr @s2n_strerror_debug(i32 noundef %1441, ptr noundef @.str.4)
  %1443 = call ptr @__errno_location() #8
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call ptr @strerror(i32 noundef %1444) #7
  %1446 = call ptr @__errno_location() #8
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1435, ptr noundef @.str.5, i32 noundef %1436, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1439, ptr noundef %1442, ptr noundef %1445, i32 noundef %1447) #7
  br label %1449

1449:                                             ; preds = %1432, %1415
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br label %1450

1450:                                             ; preds = %1449
  br label %1451

1451:                                             ; preds = %1450
  call void @exit(i32 noundef 1) #9
  unreachable

1452:                                             ; No predecessors!
  br label %1453

1453:                                             ; preds = %1452
  br label %1454

1454:                                             ; preds = %1453, %1394
  br label %1455

1455:                                             ; preds = %1454
  br label %1456

1456:                                             ; preds = %1455
  br label %1457

1457:                                             ; preds = %1456
  %1458 = load i32, ptr @test_count, align 4, !tbaa !5
  %1459 = add nsw i32 %1458, 1
  store i32 %1459, ptr @test_count, align 4, !tbaa !5
  %1460 = load ptr, ptr %29, align 8, !tbaa !9
  %1461 = getelementptr inbounds %struct.s2n_connection, ptr %1460, i32 0, i32 76
  %1462 = load i32, ptr %1461, align 4, !tbaa !18
  %1463 = icmp eq i32 %1462, 0
  br i1 %1463, label %1517, label %1464

1464:                                             ; preds = %1457
  br label %1465

1465:                                             ; preds = %1464
  br label %1466

1466:                                             ; preds = %1465
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #7
  %1467 = call ptr @__errno_location() #8
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  store i32 %1468, ptr %32, align 4, !tbaa !5
  %1469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1470 = call i32 @s2n_print_stacktrace(ptr noundef %1469)
  %1471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1472 = trunc i8 %1471 to i1
  br i1 %1472, label %1473, label %1495

1473:                                             ; preds = %1466
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1475 = call i32 @fileno(ptr noundef %1474) #7
  %1476 = call i32 @isatty(i32 noundef %1475) #7
  %1477 = icmp ne i32 %1476, 0
  br i1 %1477, label %1478, label %1495

1478:                                             ; preds = %1473
  %1479 = load i32, ptr %32, align 4, !tbaa !5
  %1480 = call ptr @__errno_location() #8
  store i32 %1479, ptr %1480, align 4, !tbaa !5
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1482 = load i32, ptr @test_count, align 4, !tbaa !5
  %1483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1484 = load i32, ptr %1483, align 4, !tbaa !5
  %1485 = call ptr @s2n_strerror(i32 noundef %1484, ptr noundef @.str.4)
  %1486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1487 = load i32, ptr %1486, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror_debug(i32 noundef %1487, ptr noundef @.str.4)
  %1489 = call ptr @__errno_location() #8
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call ptr @strerror(i32 noundef %1490) #7
  %1492 = call ptr @__errno_location() #8
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1481, ptr noundef @.str.2, i32 noundef %1482, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1485, ptr noundef %1488, ptr noundef %1491, i32 noundef %1493) #7
  br label %1512

1495:                                             ; preds = %1473, %1466
  %1496 = load i32, ptr %32, align 4, !tbaa !5
  %1497 = call ptr @__errno_location() #8
  store i32 %1496, ptr %1497, align 4, !tbaa !5
  %1498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1499 = load i32, ptr @test_count, align 4, !tbaa !5
  %1500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1501 = load i32, ptr %1500, align 4, !tbaa !5
  %1502 = call ptr @s2n_strerror(i32 noundef %1501, ptr noundef @.str.4)
  %1503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1504 = load i32, ptr %1503, align 4, !tbaa !5
  %1505 = call ptr @s2n_strerror_debug(i32 noundef %1504, ptr noundef @.str.4)
  %1506 = call ptr @__errno_location() #8
  %1507 = load i32, ptr %1506, align 4, !tbaa !5
  %1508 = call ptr @strerror(i32 noundef %1507) #7
  %1509 = call ptr @__errno_location() #8
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1498, ptr noundef @.str.5, i32 noundef %1499, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1502, ptr noundef %1505, ptr noundef %1508, i32 noundef %1510) #7
  br label %1512

1512:                                             ; preds = %1495, %1478
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  br label %1513

1513:                                             ; preds = %1512
  br label %1514

1514:                                             ; preds = %1513
  call void @exit(i32 noundef 1) #9
  unreachable

1515:                                             ; No predecessors!
  br label %1516

1516:                                             ; preds = %1515
  br label %1517

1517:                                             ; preds = %1516, %1457
  br label %1518

1518:                                             ; preds = %1517
  br label %1519

1519:                                             ; preds = %1518
  br label %1520

1520:                                             ; preds = %1519
  %1521 = load i32, ptr @test_count, align 4, !tbaa !5
  %1522 = add nsw i32 %1521, 1
  store i32 %1522, ptr @test_count, align 4, !tbaa !5
  %1523 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_session_ticket_extension, i32 0, i32 4), align 8, !tbaa !46
  %1524 = load ptr, ptr %29, align 8, !tbaa !9
  %1525 = call i32 %1523(ptr noundef %1524, ptr noundef null)
  %1526 = icmp eq i32 %1525, -1
  br i1 %1526, label %1527, label %1580

1527:                                             ; preds = %1520
  br label %1528

1528:                                             ; preds = %1527
  br label %1529

1529:                                             ; preds = %1528
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #7
  %1530 = call ptr @__errno_location() #8
  %1531 = load i32, ptr %1530, align 4, !tbaa !5
  store i32 %1531, ptr %33, align 4, !tbaa !5
  %1532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1533 = call i32 @s2n_print_stacktrace(ptr noundef %1532)
  %1534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1535 = trunc i8 %1534 to i1
  br i1 %1535, label %1536, label %1558

1536:                                             ; preds = %1529
  %1537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1538 = call i32 @fileno(ptr noundef %1537) #7
  %1539 = call i32 @isatty(i32 noundef %1538) #7
  %1540 = icmp ne i32 %1539, 0
  br i1 %1540, label %1541, label %1558

1541:                                             ; preds = %1536
  %1542 = load i32, ptr %33, align 4, !tbaa !5
  %1543 = call ptr @__errno_location() #8
  store i32 %1542, ptr %1543, align 4, !tbaa !5
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = load i32, ptr @test_count, align 4, !tbaa !5
  %1546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  %1548 = call ptr @s2n_strerror(i32 noundef %1547, ptr noundef @.str.4)
  %1549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1550 = load i32, ptr %1549, align 4, !tbaa !5
  %1551 = call ptr @s2n_strerror_debug(i32 noundef %1550, ptr noundef @.str.4)
  %1552 = call ptr @__errno_location() #8
  %1553 = load i32, ptr %1552, align 4, !tbaa !5
  %1554 = call ptr @strerror(i32 noundef %1553) #7
  %1555 = call ptr @__errno_location() #8
  %1556 = load i32, ptr %1555, align 4, !tbaa !5
  %1557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1544, ptr noundef @.str.2, i32 noundef %1545, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1548, ptr noundef %1551, ptr noundef %1554, i32 noundef %1556) #7
  br label %1575

1558:                                             ; preds = %1536, %1529
  %1559 = load i32, ptr %33, align 4, !tbaa !5
  %1560 = call ptr @__errno_location() #8
  store i32 %1559, ptr %1560, align 4, !tbaa !5
  %1561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1562 = load i32, ptr @test_count, align 4, !tbaa !5
  %1563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1564 = load i32, ptr %1563, align 4, !tbaa !5
  %1565 = call ptr @s2n_strerror(i32 noundef %1564, ptr noundef @.str.4)
  %1566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  %1568 = call ptr @s2n_strerror_debug(i32 noundef %1567, ptr noundef @.str.4)
  %1569 = call ptr @__errno_location() #8
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = call ptr @strerror(i32 noundef %1570) #7
  %1572 = call ptr @__errno_location() #8
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1561, ptr noundef @.str.5, i32 noundef %1562, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1565, ptr noundef %1568, ptr noundef %1571, i32 noundef %1573) #7
  br label %1575

1575:                                             ; preds = %1558, %1541
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br label %1576

1576:                                             ; preds = %1575
  br label %1577

1577:                                             ; preds = %1576
  call void @exit(i32 noundef 1) #9
  unreachable

1578:                                             ; No predecessors!
  br label %1579

1579:                                             ; preds = %1578
  br label %1580

1580:                                             ; preds = %1579, %1520
  br label %1581

1581:                                             ; preds = %1580
  br label %1582

1582:                                             ; preds = %1581
  br label %1583

1583:                                             ; preds = %1582
  %1584 = load i32, ptr @test_count, align 4, !tbaa !5
  %1585 = add nsw i32 %1584, 1
  store i32 %1585, ptr @test_count, align 4, !tbaa !5
  %1586 = load ptr, ptr %29, align 8, !tbaa !9
  %1587 = getelementptr inbounds %struct.s2n_connection, ptr %1586, i32 0, i32 76
  %1588 = load i32, ptr %1587, align 4, !tbaa !18
  %1589 = icmp eq i32 %1588, 2
  br i1 %1589, label %1643, label %1590

1590:                                             ; preds = %1583
  br label %1591

1591:                                             ; preds = %1590
  br label %1592

1592:                                             ; preds = %1591
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #7
  %1593 = call ptr @__errno_location() #8
  %1594 = load i32, ptr %1593, align 4, !tbaa !5
  store i32 %1594, ptr %34, align 4, !tbaa !5
  %1595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1596 = call i32 @s2n_print_stacktrace(ptr noundef %1595)
  %1597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1598 = trunc i8 %1597 to i1
  br i1 %1598, label %1599, label %1621

1599:                                             ; preds = %1592
  %1600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1601 = call i32 @fileno(ptr noundef %1600) #7
  %1602 = call i32 @isatty(i32 noundef %1601) #7
  %1603 = icmp ne i32 %1602, 0
  br i1 %1603, label %1604, label %1621

1604:                                             ; preds = %1599
  %1605 = load i32, ptr %34, align 4, !tbaa !5
  %1606 = call ptr @__errno_location() #8
  store i32 %1605, ptr %1606, align 4, !tbaa !5
  %1607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1608 = load i32, ptr @test_count, align 4, !tbaa !5
  %1609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1610 = load i32, ptr %1609, align 4, !tbaa !5
  %1611 = call ptr @s2n_strerror(i32 noundef %1610, ptr noundef @.str.4)
  %1612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1613 = load i32, ptr %1612, align 4, !tbaa !5
  %1614 = call ptr @s2n_strerror_debug(i32 noundef %1613, ptr noundef @.str.4)
  %1615 = call ptr @__errno_location() #8
  %1616 = load i32, ptr %1615, align 4, !tbaa !5
  %1617 = call ptr @strerror(i32 noundef %1616) #7
  %1618 = call ptr @__errno_location() #8
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1607, ptr noundef @.str.2, i32 noundef %1608, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1611, ptr noundef %1614, ptr noundef %1617, i32 noundef %1619) #7
  br label %1638

1621:                                             ; preds = %1599, %1592
  %1622 = load i32, ptr %34, align 4, !tbaa !5
  %1623 = call ptr @__errno_location() #8
  store i32 %1622, ptr %1623, align 4, !tbaa !5
  %1624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1625 = load i32, ptr @test_count, align 4, !tbaa !5
  %1626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1627 = load i32, ptr %1626, align 4, !tbaa !5
  %1628 = call ptr @s2n_strerror(i32 noundef %1627, ptr noundef @.str.4)
  %1629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1630 = load i32, ptr %1629, align 4, !tbaa !5
  %1631 = call ptr @s2n_strerror_debug(i32 noundef %1630, ptr noundef @.str.4)
  %1632 = call ptr @__errno_location() #8
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = call ptr @strerror(i32 noundef %1633) #7
  %1635 = call ptr @__errno_location() #8
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1624, ptr noundef @.str.5, i32 noundef %1625, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1628, ptr noundef %1631, ptr noundef %1634, i32 noundef %1636) #7
  br label %1638

1638:                                             ; preds = %1621, %1604
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  br label %1639

1639:                                             ; preds = %1638
  br label %1640

1640:                                             ; preds = %1639
  call void @exit(i32 noundef 1) #9
  unreachable

1641:                                             ; No predecessors!
  br label %1642

1642:                                             ; preds = %1641
  br label %1643

1643:                                             ; preds = %1642, %1583
  br label %1644

1644:                                             ; preds = %1643
  br label %1645

1645:                                             ; preds = %1644
  br label %1646

1646:                                             ; preds = %1645
  %1647 = load i32, ptr @test_count, align 4, !tbaa !5
  %1648 = add nsw i32 %1647, 1
  store i32 %1648, ptr @test_count, align 4, !tbaa !5
  %1649 = load ptr, ptr %29, align 8, !tbaa !9
  %1650 = call i32 @s2n_connection_free(ptr noundef %1649)
  %1651 = icmp eq i32 %1650, -1
  br i1 %1651, label %1652, label %1705

1652:                                             ; preds = %1646
  br label %1653

1653:                                             ; preds = %1652
  br label %1654

1654:                                             ; preds = %1653
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  %1655 = call ptr @__errno_location() #8
  %1656 = load i32, ptr %1655, align 4, !tbaa !5
  store i32 %1656, ptr %35, align 4, !tbaa !5
  %1657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1658 = call i32 @s2n_print_stacktrace(ptr noundef %1657)
  %1659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1660 = trunc i8 %1659 to i1
  br i1 %1660, label %1661, label %1683

1661:                                             ; preds = %1654
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = call i32 @fileno(ptr noundef %1662) #7
  %1664 = call i32 @isatty(i32 noundef %1663) #7
  %1665 = icmp ne i32 %1664, 0
  br i1 %1665, label %1666, label %1683

1666:                                             ; preds = %1661
  %1667 = load i32, ptr %35, align 4, !tbaa !5
  %1668 = call ptr @__errno_location() #8
  store i32 %1667, ptr %1668, align 4, !tbaa !5
  %1669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1670 = load i32, ptr @test_count, align 4, !tbaa !5
  %1671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1672 = load i32, ptr %1671, align 4, !tbaa !5
  %1673 = call ptr @s2n_strerror(i32 noundef %1672, ptr noundef @.str.4)
  %1674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1675 = load i32, ptr %1674, align 4, !tbaa !5
  %1676 = call ptr @s2n_strerror_debug(i32 noundef %1675, ptr noundef @.str.4)
  %1677 = call ptr @__errno_location() #8
  %1678 = load i32, ptr %1677, align 4, !tbaa !5
  %1679 = call ptr @strerror(i32 noundef %1678) #7
  %1680 = call ptr @__errno_location() #8
  %1681 = load i32, ptr %1680, align 4, !tbaa !5
  %1682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1669, ptr noundef @.str.2, i32 noundef %1670, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1673, ptr noundef %1676, ptr noundef %1679, i32 noundef %1681) #7
  br label %1700

1683:                                             ; preds = %1661, %1654
  %1684 = load i32, ptr %35, align 4, !tbaa !5
  %1685 = call ptr @__errno_location() #8
  store i32 %1684, ptr %1685, align 4, !tbaa !5
  %1686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1687 = load i32, ptr @test_count, align 4, !tbaa !5
  %1688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1689 = load i32, ptr %1688, align 4, !tbaa !5
  %1690 = call ptr @s2n_strerror(i32 noundef %1689, ptr noundef @.str.4)
  %1691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1692 = load i32, ptr %1691, align 4, !tbaa !5
  %1693 = call ptr @s2n_strerror_debug(i32 noundef %1692, ptr noundef @.str.4)
  %1694 = call ptr @__errno_location() #8
  %1695 = load i32, ptr %1694, align 4, !tbaa !5
  %1696 = call ptr @strerror(i32 noundef %1695) #7
  %1697 = call ptr @__errno_location() #8
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  %1699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1686, ptr noundef @.str.5, i32 noundef %1687, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1690, ptr noundef %1693, ptr noundef %1696, i32 noundef %1698) #7
  br label %1700

1700:                                             ; preds = %1683, %1666
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  br label %1701

1701:                                             ; preds = %1700
  br label %1702

1702:                                             ; preds = %1701
  call void @exit(i32 noundef 1) #9
  unreachable

1703:                                             ; No predecessors!
  br label %1704

1704:                                             ; preds = %1703
  br label %1705

1705:                                             ; preds = %1704, %1646
  br label %1706

1706:                                             ; preds = %1705
  br label %1707

1707:                                             ; preds = %1706
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  br label %1708

1708:                                             ; preds = %1707
  br label %1709

1709:                                             ; preds = %1708
  %1710 = call i32 @s2n_cleanup()
  %1711 = icmp eq i32 %1710, -1
  br i1 %1711, label %1712, label %1763

1712:                                             ; preds = %1709
  br label %1713

1713:                                             ; preds = %1712
  br label %1714

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

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

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

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

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

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

1762:                                             ; No predecessors!
  br label %1763

1763:                                             ; preds = %1762, %1709
  br label %1764

1764:                                             ; preds = %1763
  br label %1765

1765:                                             ; preds = %1764
  br label %1766

1766:                                             ; preds = %1765
  %1767 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %1768 = icmp eq i32 %1767, -1
  br i1 %1768, label %1769, label %1820

1769:                                             ; preds = %1766
  br label %1770

1770:                                             ; preds = %1769
  br label %1771

1771:                                             ; preds = %1770
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  %1772 = call ptr @__errno_location() #8
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  store i32 %1773, ptr %37, align 4, !tbaa !5
  %1774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1775 = call i32 @s2n_print_stacktrace(ptr noundef %1774)
  %1776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1777 = trunc i8 %1776 to i1
  br i1 %1777, label %1778, label %1800

1778:                                             ; preds = %1771
  %1779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1780 = call i32 @fileno(ptr noundef %1779) #7
  %1781 = call i32 @isatty(i32 noundef %1780) #7
  %1782 = icmp ne i32 %1781, 0
  br i1 %1782, label %1783, label %1800

1783:                                             ; preds = %1778
  %1784 = load i32, ptr %37, align 4, !tbaa !5
  %1785 = call ptr @__errno_location() #8
  store i32 %1784, ptr %1785, align 4, !tbaa !5
  %1786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1787 = load i32, ptr @test_count, align 4, !tbaa !5
  %1788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call ptr @s2n_strerror(i32 noundef %1789, ptr noundef @.str.4)
  %1791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror_debug(i32 noundef %1792, ptr noundef @.str.4)
  %1794 = call ptr @__errno_location() #8
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call ptr @strerror(i32 noundef %1795) #7
  %1797 = call ptr @__errno_location() #8
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1786, ptr noundef @.str.2, i32 noundef %1787, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1790, ptr noundef %1793, ptr noundef %1796, i32 noundef %1798) #7
  br label %1817

1800:                                             ; preds = %1778, %1771
  %1801 = load i32, ptr %37, align 4, !tbaa !5
  %1802 = call ptr @__errno_location() #8
  store i32 %1801, ptr %1802, align 4, !tbaa !5
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1804 = load i32, ptr @test_count, align 4, !tbaa !5
  %1805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1806 = load i32, ptr %1805, align 4, !tbaa !5
  %1807 = call ptr @s2n_strerror(i32 noundef %1806, ptr noundef @.str.4)
  %1808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = call ptr @s2n_strerror_debug(i32 noundef %1809, ptr noundef @.str.4)
  %1811 = call ptr @__errno_location() #8
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  %1813 = call ptr @strerror(i32 noundef %1812) #7
  %1814 = call ptr @__errno_location() #8
  %1815 = load i32, ptr %1814, align 4, !tbaa !5
  %1816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1803, ptr noundef @.str.5, i32 noundef %1804, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1807, ptr noundef %1810, ptr noundef %1813, i32 noundef %1815) #7
  br label %1817

1817:                                             ; preds = %1800, %1783
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br label %1818

1818:                                             ; preds = %1817
  call void @exit(i32 noundef 1) #9
  unreachable

1819:                                             ; No predecessors!
  br label %1820

1820:                                             ; preds = %1819, %1766
  br label %1821

1821:                                             ; preds = %1820
  %1822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1823 = trunc i8 %1822 to i1
  br i1 %1823, label %1824, label %1840

1824:                                             ; preds = %1821
  %1825 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1826 = call i32 @fileno(ptr noundef %1825) #7
  %1827 = call i32 @isatty(i32 noundef %1826) #7
  %1828 = icmp ne i32 %1827, 0
  br i1 %1828, label %1829, label %1840

1829:                                             ; preds = %1824
  %1830 = load i32, ptr @test_count, align 4, !tbaa !5
  %1831 = icmp ne i32 %1830, 0
  br i1 %1831, label %1832, label %1836

1832:                                             ; preds = %1829
  %1833 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1834 = load i32, ptr @test_count, align 4, !tbaa !5
  %1835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1833, ptr noundef @.str.24, i32 noundef %1834) #7
  br label %1839

1836:                                             ; preds = %1829
  %1837 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1837, ptr noundef @.str.25) #7
  br label %1839

1839:                                             ; preds = %1836, %1832
  br label %1851

1840:                                             ; preds = %1824, %1821
  %1841 = load i32, ptr @test_count, align 4, !tbaa !5
  %1842 = icmp ne i32 %1841, 0
  br i1 %1842, label %1843, label %1847

1843:                                             ; preds = %1840
  %1844 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1845 = load i32, ptr @test_count, align 4, !tbaa !5
  %1846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1844, ptr noundef @.str.26, i32 noundef %1845) #7
  br label %1850

1847:                                             ; preds = %1840
  %1848 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1848, ptr noundef @.str.27) #7
  br label %1850

1850:                                             ; preds = %1847, %1843
  br label %1851

1851:                                             ; preds = %1850, %1839
  store i32 0, ptr %3, align 4
  br label %1853

1852:                                             ; No predecessors!
  br label %1853

1853:                                             ; preds = %1852, %1851
  %1854 = load i32, ptr %3, align 4
  ret i32 %1854
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare ptr @s2n_config_new() #2

declare ptr @s2n_connection_new(i32 noundef) #2

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_enable_extension(ptr noundef) #0

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

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_config_free(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 = { nounwind }
attributes #8 = { nounwind willreturn memory(none) }
attributes #9 = { noreturn nounwind }

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

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


; 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 }

@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 [99 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_server_session_ticket_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.12 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %3 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #7
  %5 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6 = tail call i32 @fflush(ptr noundef %5)
  %7 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #7
  %8 = icmp eq i32 %7, -1
  br i1 %8, label %9, label %33

9:                                                ; preds = %2
  %10 = tail call ptr @__errno_location() #8
  %11 = load i32, ptr %10, align 4, !tbaa !5
  %12 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13 = tail call i32 @s2n_print_stacktrace(ptr noundef %12) #7
  %14 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15 = trunc nuw i8 %14 to i1
  br i1 %15, label %16, label %20

16:                                               ; preds = %9
  %17 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18 = tail call i32 @fileno(ptr noundef %17) #7
  %19 = tail call i32 @isatty(i32 noundef %18) #7
  %.not116 = icmp eq i32 %19, 0
  br i1 %.not116, label %20, label %21

20:                                               ; preds = %16, %9
  br label %21

21:                                               ; preds = %16, %20
  %.str.5.sink = phi ptr [ @.str.5, %20 ], [ @.str.2, %16 ]
  store i32 %11, ptr %10, align 4, !tbaa !5
  %22 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23 = load i32, ptr @test_count, align 4, !tbaa !5
  %24 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25 = load i32, ptr %24, align 4, !tbaa !5
  %26 = tail call ptr @s2n_strerror(i32 noundef %25, ptr noundef nonnull @.str.4) #7
  %27 = load i32, ptr %24, align 4, !tbaa !5
  %28 = tail call ptr @s2n_strerror_debug(i32 noundef %27, ptr noundef nonnull @.str.4) #7
  %29 = load i32, ptr %10, align 4, !tbaa !5
  %30 = tail call ptr @strerror(i32 noundef %29) #7
  %31 = load i32, ptr %10, align 4, !tbaa !5
  %32 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22, ptr noundef nonnull %.str.5.sink, i32 noundef %23, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %26, ptr noundef %28, ptr noundef %30, i32 noundef %31) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

33:                                               ; preds = %2
  %34 = load i32, ptr @test_count, align 4, !tbaa !5
  %35 = add nsw i32 %34, 1
  store i32 %35, ptr @test_count, align 4, !tbaa !5
  %36 = tail call i32 @s2n_enable_atexit() #7
  %37 = icmp eq i32 %36, -1
  br i1 %37, label %38, label %62

38:                                               ; preds = %33
  %39 = tail call ptr @__errno_location() #8
  %40 = load i32, ptr %39, align 4, !tbaa !5
  %41 = load ptr, ptr @stderr, align 8, !tbaa !9
  %42 = tail call i32 @s2n_print_stacktrace(ptr noundef %41) #7
  %43 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %44 = trunc nuw i8 %43 to i1
  br i1 %44, label %45, label %49

45:                                               ; preds = %38
  %46 = load ptr, ptr @stderr, align 8, !tbaa !9
  %47 = tail call i32 @fileno(ptr noundef %46) #7
  %48 = tail call i32 @isatty(i32 noundef %47) #7
  %.not115 = icmp eq i32 %48, 0
  br i1 %.not115, label %49, label %50

49:                                               ; preds = %45, %38
  br label %50

50:                                               ; preds = %45, %49
  %.str.5.sink127 = phi ptr [ @.str.5, %49 ], [ @.str.2, %45 ]
  store i32 %40, ptr %39, align 4, !tbaa !5
  %51 = load ptr, ptr @stderr, align 8, !tbaa !9
  %52 = load i32, ptr @test_count, align 4, !tbaa !5
  %53 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %54 = load i32, ptr %53, align 4, !tbaa !5
  %55 = tail call ptr @s2n_strerror(i32 noundef %54, ptr noundef nonnull @.str.4) #7
  %56 = load i32, ptr %53, align 4, !tbaa !5
  %57 = tail call ptr @s2n_strerror_debug(i32 noundef %56, ptr noundef nonnull @.str.4) #7
  %58 = load i32, ptr %39, align 4, !tbaa !5
  %59 = tail call ptr @strerror(i32 noundef %58) #7
  %60 = load i32, ptr %39, align 4, !tbaa !5
  %61 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %51, ptr noundef nonnull %.str.5.sink127, i32 noundef %52, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %55, ptr noundef %57, ptr noundef %59, i32 noundef %60) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

62:                                               ; preds = %33
  %63 = tail call i32 @s2n_init() #7
  %64 = icmp eq i32 %63, -1
  br i1 %64, label %65, label %89

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

72:                                               ; preds = %65
  %73 = load ptr, ptr @stderr, align 8, !tbaa !9
  %74 = tail call i32 @fileno(ptr noundef %73) #7
  %75 = tail call i32 @isatty(i32 noundef %74) #7
  %.not114 = icmp eq i32 %75, 0
  br i1 %.not114, label %76, label %77

76:                                               ; preds = %72, %65
  br label %77

77:                                               ; preds = %72, %76
  %.str.5.sink138 = phi ptr [ @.str.5, %76 ], [ @.str.2, %72 ]
  store i32 %67, ptr %66, align 4, !tbaa !5
  %78 = load ptr, ptr @stderr, align 8, !tbaa !9
  %79 = load i32, ptr @test_count, align 4, !tbaa !5
  %80 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %81 = load i32, ptr %80, align 4, !tbaa !5
  %82 = tail call ptr @s2n_strerror(i32 noundef %81, ptr noundef nonnull @.str.4) #7
  %83 = load i32, ptr %80, align 4, !tbaa !5
  %84 = tail call ptr @s2n_strerror_debug(i32 noundef %83, ptr noundef nonnull @.str.4) #7
  %85 = load i32, ptr %66, align 4, !tbaa !5
  %86 = tail call ptr @strerror(i32 noundef %85) #7
  %87 = load i32, ptr %66, align 4, !tbaa !5
  %88 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %78, ptr noundef nonnull %.str.5.sink138, i32 noundef %79, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %82, ptr noundef %84, ptr noundef %86, i32 noundef %87) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

89:                                               ; preds = %62
  %90 = load i32, ptr @test_count, align 4, !tbaa !5
  %91 = add nsw i32 %90, 1
  store i32 %91, ptr @test_count, align 4, !tbaa !5
  %92 = tail call i32 (...) @s2n_disable_tls13_in_test() #7
  %93 = icmp eq i32 %92, -1
  br i1 %93, label %94, label %118

94:                                               ; preds = %89
  %95 = tail call ptr @__errno_location() #8
  %96 = load i32, ptr %95, align 4, !tbaa !5
  %97 = load ptr, ptr @stderr, align 8, !tbaa !9
  %98 = tail call i32 @s2n_print_stacktrace(ptr noundef %97) #7
  %99 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %100 = trunc nuw i8 %99 to i1
  br i1 %100, label %101, label %105

101:                                              ; preds = %94
  %102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %103 = tail call i32 @fileno(ptr noundef %102) #7
  %104 = tail call i32 @isatty(i32 noundef %103) #7
  %.not113 = icmp eq i32 %104, 0
  br i1 %.not113, label %105, label %106

105:                                              ; preds = %101, %94
  br label %106

106:                                              ; preds = %101, %105
  %.str.5.sink149 = phi ptr [ @.str.5, %105 ], [ @.str.2, %101 ]
  store i32 %96, ptr %95, align 4, !tbaa !5
  %107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %108 = load i32, ptr @test_count, align 4, !tbaa !5
  %109 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %110 = load i32, ptr %109, align 4, !tbaa !5
  %111 = tail call ptr @s2n_strerror(i32 noundef %110, ptr noundef nonnull @.str.4) #7
  %112 = load i32, ptr %109, align 4, !tbaa !5
  %113 = tail call ptr @s2n_strerror_debug(i32 noundef %112, ptr noundef nonnull @.str.4) #7
  %114 = load i32, ptr %95, align 4, !tbaa !5
  %115 = tail call ptr @strerror(i32 noundef %114) #7
  %116 = load i32, ptr %95, align 4, !tbaa !5
  %117 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %107, ptr noundef nonnull %.str.5.sink149, i32 noundef %108, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 38, ptr noundef %111, ptr noundef %113, ptr noundef %115, i32 noundef %116) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

118:                                              ; preds = %89
  %119 = load i32, ptr @test_count, align 4, !tbaa !5
  %120 = add nsw i32 %119, 1
  store i32 %120, ptr @test_count, align 4, !tbaa !5
  %121 = tail call ptr @s2n_config_new() #7
  %122 = icmp eq ptr %121, null
  br i1 %122, label %123, label %147

123:                                              ; preds = %118
  %124 = tail call ptr @__errno_location() #8
  %125 = load i32, ptr %124, align 4, !tbaa !5
  %126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %127 = tail call i32 @s2n_print_stacktrace(ptr noundef %126) #7
  %128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %129 = trunc nuw i8 %128 to i1
  br i1 %129, label %130, label %134

130:                                              ; preds = %123
  %131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %132 = tail call i32 @fileno(ptr noundef %131) #7
  %133 = tail call i32 @isatty(i32 noundef %132) #7
  %.not112 = icmp eq i32 %133, 0
  br i1 %.not112, label %134, label %135

134:                                              ; preds = %130, %123
  br label %135

135:                                              ; preds = %130, %134
  %.str.5.sink160 = phi ptr [ @.str.5, %134 ], [ @.str.2, %130 ]
  store i32 %125, ptr %124, align 4, !tbaa !5
  %136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %137 = load i32, ptr @test_count, align 4, !tbaa !5
  %138 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %139 = load i32, ptr %138, align 4, !tbaa !5
  %140 = tail call ptr @s2n_strerror(i32 noundef %139, ptr noundef nonnull @.str.4) #7
  %141 = load i32, ptr %138, align 4, !tbaa !5
  %142 = tail call ptr @s2n_strerror_debug(i32 noundef %141, ptr noundef nonnull @.str.4) #7
  %143 = load i32, ptr %124, align 4, !tbaa !5
  %144 = tail call ptr @strerror(i32 noundef %143) #7
  %145 = load i32, ptr %124, align 4, !tbaa !5
  %146 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %136, ptr noundef nonnull %.str.5.sink160, i32 noundef %137, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %140, ptr noundef %142, ptr noundef %144, i32 noundef %145) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

147:                                              ; preds = %118
  %148 = load i32, ptr @test_count, align 4, !tbaa !5
  %149 = add nsw i32 %148, 1
  store i32 %149, ptr @test_count, align 4, !tbaa !5
  %150 = tail call ptr @s2n_connection_new(i32 noundef 0) #7
  %151 = icmp eq ptr %150, null
  br i1 %151, label %152, label %176

152:                                              ; preds = %147
  %153 = tail call ptr @__errno_location() #8
  %154 = load i32, ptr %153, align 4, !tbaa !5
  %155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %156 = tail call i32 @s2n_print_stacktrace(ptr noundef %155) #7
  %157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %158 = trunc nuw i8 %157 to i1
  br i1 %158, label %159, label %163

159:                                              ; preds = %152
  %160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %161 = tail call i32 @fileno(ptr noundef %160) #7
  %162 = tail call i32 @isatty(i32 noundef %161) #7
  %.not111 = icmp eq i32 %162, 0
  br i1 %.not111, label %163, label %164

163:                                              ; preds = %159, %152
  br label %164

164:                                              ; preds = %159, %163
  %.str.5.sink171 = phi ptr [ @.str.5, %163 ], [ @.str.2, %159 ]
  store i32 %154, ptr %153, align 4, !tbaa !5
  %165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %166 = load i32, ptr @test_count, align 4, !tbaa !5
  %167 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %168 = load i32, ptr %167, align 4, !tbaa !5
  %169 = tail call ptr @s2n_strerror(i32 noundef %168, ptr noundef nonnull @.str.4) #7
  %170 = load i32, ptr %167, align 4, !tbaa !5
  %171 = tail call ptr @s2n_strerror_debug(i32 noundef %170, ptr noundef nonnull @.str.4) #7
  %172 = load i32, ptr %153, align 4, !tbaa !5
  %173 = tail call ptr @strerror(i32 noundef %172) #7
  %174 = load i32, ptr %153, align 4, !tbaa !5
  %175 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %165, ptr noundef nonnull %.str.5.sink171, i32 noundef %166, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %169, ptr noundef %171, ptr noundef %173, i32 noundef %174) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

176:                                              ; preds = %147
  %177 = load i32, ptr @test_count, align 4, !tbaa !5
  %178 = add nsw i32 %177, 1
  store i32 %178, ptr @test_count, align 4, !tbaa !5
  %179 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %150, ptr noundef nonnull %121) #7
  %180 = icmp eq i32 %179, -1
  br i1 %180, label %181, label %205

181:                                              ; preds = %176
  %182 = tail call ptr @__errno_location() #8
  %183 = load i32, ptr %182, align 4, !tbaa !5
  %184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %185 = tail call i32 @s2n_print_stacktrace(ptr noundef %184) #7
  %186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %187 = trunc nuw i8 %186 to i1
  br i1 %187, label %188, label %192

188:                                              ; preds = %181
  %189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %190 = tail call i32 @fileno(ptr noundef %189) #7
  %191 = tail call i32 @isatty(i32 noundef %190) #7
  %.not110 = icmp eq i32 %191, 0
  br i1 %.not110, label %192, label %193

192:                                              ; preds = %188, %181
  br label %193

193:                                              ; preds = %188, %192
  %.str.5.sink182 = phi ptr [ @.str.5, %192 ], [ @.str.2, %188 ]
  store i32 %183, ptr %182, align 4, !tbaa !5
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = load i32, ptr @test_count, align 4, !tbaa !5
  %196 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = tail call ptr @s2n_strerror(i32 noundef %197, ptr noundef nonnull @.str.4) #7
  %199 = load i32, ptr %196, align 4, !tbaa !5
  %200 = tail call ptr @s2n_strerror_debug(i32 noundef %199, ptr noundef nonnull @.str.4) #7
  %201 = load i32, ptr %182, align 4, !tbaa !5
  %202 = tail call ptr @strerror(i32 noundef %201) #7
  %203 = load i32, ptr %182, align 4, !tbaa !5
  %204 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %194, ptr noundef nonnull %.str.5.sink182, i32 noundef %195, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %198, ptr noundef %200, ptr noundef %202, i32 noundef %203) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

205:                                              ; preds = %176
  %206 = load i32, ptr @test_count, align 4, !tbaa !5
  %207 = add nsw i32 %206, 1
  store i32 %207, ptr @test_count, align 4, !tbaa !5
  %208 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_session_ticket_extension, i64 24), align 8, !tbaa !15
  %209 = tail call zeroext i1 %208(ptr noundef nonnull %150) #7
  br i1 %209, label %210, label %234

210:                                              ; preds = %205
  %211 = tail call ptr @__errno_location() #8
  %212 = load i32, ptr %211, align 4, !tbaa !5
  %213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %214 = tail call i32 @s2n_print_stacktrace(ptr noundef %213) #7
  %215 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %216 = trunc nuw i8 %215 to i1
  br i1 %216, label %217, label %221

217:                                              ; preds = %210
  %218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %219 = tail call i32 @fileno(ptr noundef %218) #7
  %220 = tail call i32 @isatty(i32 noundef %219) #7
  %.not109 = icmp eq i32 %220, 0
  br i1 %.not109, label %221, label %222

221:                                              ; preds = %217, %210
  br label %222

222:                                              ; preds = %217, %221
  %.str.5.sink193 = phi ptr [ @.str.5, %221 ], [ @.str.2, %217 ]
  store i32 %212, ptr %211, align 4, !tbaa !5
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = load i32, ptr @test_count, align 4, !tbaa !5
  %225 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = tail call ptr @s2n_strerror(i32 noundef %226, ptr noundef nonnull @.str.4) #7
  %228 = load i32, ptr %225, align 4, !tbaa !5
  %229 = tail call ptr @s2n_strerror_debug(i32 noundef %228, ptr noundef nonnull @.str.4) #7
  %230 = load i32, ptr %211, align 4, !tbaa !5
  %231 = tail call ptr @strerror(i32 noundef %230) #7
  %232 = load i32, ptr %211, align 4, !tbaa !5
  %233 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %223, ptr noundef nonnull %.str.5.sink193, i32 noundef %224, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %227, ptr noundef %229, ptr noundef %231, i32 noundef %232) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

234:                                              ; preds = %205
  %235 = load i32, ptr @test_count, align 4, !tbaa !5
  %236 = add nsw i32 %235, 1
  store i32 %236, ptr @test_count, align 4, !tbaa !5
  %237 = tail call i32 @s2n_test_enable_extension(ptr noundef nonnull %150)
  %238 = icmp eq i32 %237, -1
  br i1 %238, label %239, label %263

239:                                              ; preds = %234
  %240 = tail call ptr @__errno_location() #8
  %241 = load i32, ptr %240, align 4, !tbaa !5
  %242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %243 = tail call i32 @s2n_print_stacktrace(ptr noundef %242) #7
  %244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %245 = trunc nuw i8 %244 to i1
  br i1 %245, label %246, label %250

246:                                              ; preds = %239
  %247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %248 = tail call i32 @fileno(ptr noundef %247) #7
  %249 = tail call i32 @isatty(i32 noundef %248) #7
  %.not108 = icmp eq i32 %249, 0
  br i1 %.not108, label %250, label %251

250:                                              ; preds = %246, %239
  br label %251

251:                                              ; preds = %246, %250
  %.str.5.sink204 = phi ptr [ @.str.5, %250 ], [ @.str.2, %246 ]
  store i32 %241, ptr %240, align 4, !tbaa !5
  %252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %253 = load i32, ptr @test_count, align 4, !tbaa !5
  %254 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = tail call ptr @s2n_strerror(i32 noundef %255, ptr noundef nonnull @.str.4) #7
  %257 = load i32, ptr %254, align 4, !tbaa !5
  %258 = tail call ptr @s2n_strerror_debug(i32 noundef %257, ptr noundef nonnull @.str.4) #7
  %259 = load i32, ptr %240, align 4, !tbaa !5
  %260 = tail call ptr @strerror(i32 noundef %259) #7
  %261 = load i32, ptr %240, align 4, !tbaa !5
  %262 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %252, ptr noundef nonnull %.str.5.sink204, i32 noundef %253, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 53, ptr noundef %256, ptr noundef %258, ptr noundef %260, i32 noundef %261) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

263:                                              ; preds = %234
  %264 = load i32, ptr @test_count, align 4, !tbaa !5
  %265 = add nsw i32 %264, 1
  store i32 %265, ptr @test_count, align 4, !tbaa !5
  %266 = tail call zeroext i1 %208(ptr noundef nonnull %150) #7
  br i1 %266, label %291, label %267

267:                                              ; preds = %263
  %268 = tail call ptr @__errno_location() #8
  %269 = load i32, ptr %268, align 4, !tbaa !5
  %270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %271 = tail call i32 @s2n_print_stacktrace(ptr noundef %270) #7
  %272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %273 = trunc nuw i8 %272 to i1
  br i1 %273, label %274, label %278

274:                                              ; preds = %267
  %275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %276 = tail call i32 @fileno(ptr noundef %275) #7
  %277 = tail call i32 @isatty(i32 noundef %276) #7
  %.not = icmp eq i32 %277, 0
  br i1 %.not, label %278, label %279

278:                                              ; preds = %274, %267
  br label %279

279:                                              ; preds = %274, %278
  %.str.5.sink215 = phi ptr [ @.str.5, %278 ], [ @.str.2, %274 ]
  store i32 %269, ptr %268, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = load i32, ptr @test_count, align 4, !tbaa !5
  %282 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = tail call ptr @s2n_strerror(i32 noundef %283, ptr noundef nonnull @.str.4) #7
  %285 = load i32, ptr %282, align 4, !tbaa !5
  %286 = tail call ptr @s2n_strerror_debug(i32 noundef %285, ptr noundef nonnull @.str.4) #7
  %287 = load i32, ptr %268, align 4, !tbaa !5
  %288 = tail call ptr @strerror(i32 noundef %287) #7
  %289 = load i32, ptr %268, align 4, !tbaa !5
  %290 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %280, ptr noundef nonnull %.str.5.sink215, i32 noundef %281, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %284, ptr noundef %286, ptr noundef %288, i32 noundef %289) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

291:                                              ; preds = %263
  %292 = load i32, ptr @test_count, align 4, !tbaa !5
  %293 = add nsw i32 %292, 1
  store i32 %293, ptr @test_count, align 4, !tbaa !5
  %294 = tail call i32 @s2n_test_enable_extension(ptr noundef nonnull %150)
  %295 = icmp eq i32 %294, -1
  br i1 %295, label %296, label %320

296:                                              ; preds = %291
  %297 = tail call ptr @__errno_location() #8
  %298 = load i32, ptr %297, align 4, !tbaa !5
  %299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %300 = tail call i32 @s2n_print_stacktrace(ptr noundef %299) #7
  %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 = %296
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = tail call i32 @fileno(ptr noundef %304) #7
  %306 = tail call i32 @isatty(i32 noundef %305) #7
  %.not107 = icmp eq i32 %306, 0
  br i1 %.not107, label %307, label %308

307:                                              ; preds = %303, %296
  br label %308

308:                                              ; preds = %303, %307
  %.str.5.sink226 = phi ptr [ @.str.5, %307 ], [ @.str.2, %303 ]
  store i32 %298, ptr %297, align 4, !tbaa !5
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = tail call ptr @s2n_strerror(i32 noundef %312, ptr noundef nonnull @.str.4) #7
  %314 = load i32, ptr %311, align 4, !tbaa !5
  %315 = tail call ptr @s2n_strerror_debug(i32 noundef %314, ptr noundef nonnull @.str.4) #7
  %316 = load i32, ptr %297, align 4, !tbaa !5
  %317 = tail call ptr @strerror(i32 noundef %316) #7
  %318 = load i32, ptr %297, align 4, !tbaa !5
  %319 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %309, ptr noundef nonnull %.str.5.sink226, i32 noundef %310, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %313, ptr noundef %315, ptr noundef %317, i32 noundef %318) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

320:                                              ; preds = %291
  %321 = load i32, ptr @test_count, align 4, !tbaa !5
  %322 = add nsw i32 %321, 1
  store i32 %322, ptr @test_count, align 4, !tbaa !5
  %323 = tail call i32 @s2n_config_set_session_tickets_onoff(ptr noundef nonnull %121, i8 noundef zeroext 0) #7
  %324 = icmp eq i32 %323, -1
  br i1 %324, label %325, label %349

325:                                              ; preds = %320
  %326 = tail call ptr @__errno_location() #8
  %327 = load i32, ptr %326, align 4, !tbaa !5
  %328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %329 = tail call i32 @s2n_print_stacktrace(ptr noundef %328) #7
  %330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %331 = trunc nuw i8 %330 to i1
  br i1 %331, label %332, label %336

332:                                              ; preds = %325
  %333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %334 = tail call i32 @fileno(ptr noundef %333) #7
  %335 = tail call i32 @isatty(i32 noundef %334) #7
  %.not106 = icmp eq i32 %335, 0
  br i1 %.not106, label %336, label %337

336:                                              ; preds = %332, %325
  br label %337

337:                                              ; preds = %332, %336
  %.str.5.sink237 = phi ptr [ @.str.5, %336 ], [ @.str.2, %332 ]
  store i32 %327, ptr %326, align 4, !tbaa !5
  %338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %339 = load i32, ptr @test_count, align 4, !tbaa !5
  %340 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = tail call ptr @s2n_strerror(i32 noundef %341, ptr noundef nonnull @.str.4) #7
  %343 = load i32, ptr %340, align 4, !tbaa !5
  %344 = tail call ptr @s2n_strerror_debug(i32 noundef %343, ptr noundef nonnull @.str.4) #7
  %345 = load i32, ptr %326, align 4, !tbaa !5
  %346 = tail call ptr @strerror(i32 noundef %345) #7
  %347 = load i32, ptr %326, align 4, !tbaa !5
  %348 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %338, ptr noundef nonnull %.str.5.sink237, i32 noundef %339, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %342, ptr noundef %344, ptr noundef %346, i32 noundef %347) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

349:                                              ; preds = %320
  %350 = load i32, ptr @test_count, align 4, !tbaa !5
  %351 = add nsw i32 %350, 1
  store i32 %351, ptr @test_count, align 4, !tbaa !5
  %352 = tail call zeroext i1 %208(ptr noundef nonnull %150) #7
  br i1 %352, label %353, label %377

353:                                              ; preds = %349
  %354 = tail call ptr @__errno_location() #8
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = tail call i32 @s2n_print_stacktrace(ptr noundef %356) #7
  %358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %359 = trunc nuw i8 %358 to i1
  br i1 %359, label %360, label %364

360:                                              ; preds = %353
  %361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %362 = tail call i32 @fileno(ptr noundef %361) #7
  %363 = tail call i32 @isatty(i32 noundef %362) #7
  %.not105 = icmp eq i32 %363, 0
  br i1 %.not105, label %364, label %365

364:                                              ; preds = %360, %353
  br label %365

365:                                              ; preds = %360, %364
  %.str.5.sink248 = phi ptr [ @.str.5, %364 ], [ @.str.2, %360 ]
  store i32 %355, ptr %354, align 4, !tbaa !5
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = tail call ptr @s2n_strerror(i32 noundef %369, ptr noundef nonnull @.str.4) #7
  %371 = load i32, ptr %368, align 4, !tbaa !5
  %372 = tail call ptr @s2n_strerror_debug(i32 noundef %371, ptr noundef nonnull @.str.4) #7
  %373 = load i32, ptr %354, align 4, !tbaa !5
  %374 = tail call ptr @strerror(i32 noundef %373) #7
  %375 = load i32, ptr %354, align 4, !tbaa !5
  %376 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %366, ptr noundef nonnull %.str.5.sink248, i32 noundef %367, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %370, ptr noundef %372, ptr noundef %374, i32 noundef %375) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

377:                                              ; preds = %349
  %378 = load i32, ptr @test_count, align 4, !tbaa !5
  %379 = add nsw i32 %378, 1
  store i32 %379, ptr @test_count, align 4, !tbaa !5
  %380 = tail call i32 @s2n_test_enable_extension(ptr noundef nonnull %150)
  %381 = icmp eq i32 %380, -1
  br i1 %381, label %382, label %406

382:                                              ; preds = %377
  %383 = tail call ptr @__errno_location() #8
  %384 = load i32, ptr %383, align 4, !tbaa !5
  %385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %386 = tail call i32 @s2n_print_stacktrace(ptr noundef %385) #7
  %387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %388 = trunc nuw i8 %387 to i1
  br i1 %388, label %389, label %393

389:                                              ; preds = %382
  %390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %391 = tail call i32 @fileno(ptr noundef %390) #7
  %392 = tail call i32 @isatty(i32 noundef %391) #7
  %.not104 = icmp eq i32 %392, 0
  br i1 %.not104, label %393, label %394

393:                                              ; preds = %389, %382
  br label %394

394:                                              ; preds = %389, %393
  %.str.5.sink259 = phi ptr [ @.str.5, %393 ], [ @.str.2, %389 ]
  store i32 %384, ptr %383, align 4, !tbaa !5
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = load i32, ptr @test_count, align 4, !tbaa !5
  %397 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %398 = load i32, ptr %397, align 4, !tbaa !5
  %399 = tail call ptr @s2n_strerror(i32 noundef %398, ptr noundef nonnull @.str.4) #7
  %400 = load i32, ptr %397, align 4, !tbaa !5
  %401 = tail call ptr @s2n_strerror_debug(i32 noundef %400, ptr noundef nonnull @.str.4) #7
  %402 = load i32, ptr %383, align 4, !tbaa !5
  %403 = tail call ptr @strerror(i32 noundef %402) #7
  %404 = load i32, ptr %383, align 4, !tbaa !5
  %405 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %395, ptr noundef nonnull %.str.5.sink259, i32 noundef %396, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %399, ptr noundef %401, ptr noundef %403, i32 noundef %404) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

406:                                              ; preds = %377
  %407 = getelementptr inbounds i8, ptr %150, i64 3780
  store i32 1, ptr %407, align 4, !tbaa !18
  %408 = load i32, ptr @test_count, align 4, !tbaa !5
  %409 = add nsw i32 %408, 1
  store i32 %409, ptr @test_count, align 4, !tbaa !5
  %410 = tail call zeroext i1 %208(ptr noundef nonnull %150) #7
  br i1 %410, label %411, label %435

411:                                              ; preds = %406
  %412 = tail call ptr @__errno_location() #8
  %413 = load i32, ptr %412, align 4, !tbaa !5
  %414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %415 = tail call i32 @s2n_print_stacktrace(ptr noundef %414) #7
  %416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %417 = trunc nuw i8 %416 to i1
  br i1 %417, label %418, label %422

418:                                              ; preds = %411
  %419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %420 = tail call i32 @fileno(ptr noundef %419) #7
  %421 = tail call i32 @isatty(i32 noundef %420) #7
  %.not103 = icmp eq i32 %421, 0
  br i1 %.not103, label %422, label %423

422:                                              ; preds = %418, %411
  br label %423

423:                                              ; preds = %418, %422
  %.str.5.sink270 = phi ptr [ @.str.5, %422 ], [ @.str.2, %418 ]
  store i32 %413, ptr %412, align 4, !tbaa !5
  %424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %425 = load i32, ptr @test_count, align 4, !tbaa !5
  %426 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %427 = load i32, ptr %426, align 4, !tbaa !5
  %428 = tail call ptr @s2n_strerror(i32 noundef %427, ptr noundef nonnull @.str.4) #7
  %429 = load i32, ptr %426, align 4, !tbaa !5
  %430 = tail call ptr @s2n_strerror_debug(i32 noundef %429, ptr noundef nonnull @.str.4) #7
  %431 = load i32, ptr %412, align 4, !tbaa !5
  %432 = tail call ptr @strerror(i32 noundef %431) #7
  %433 = load i32, ptr %412, align 4, !tbaa !5
  %434 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %424, ptr noundef nonnull %.str.5.sink270, i32 noundef %425, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %428, ptr noundef %430, ptr noundef %432, i32 noundef %433) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

435:                                              ; preds = %406
  %436 = load i32, ptr @test_count, align 4, !tbaa !5
  %437 = add nsw i32 %436, 1
  store i32 %437, ptr @test_count, align 4, !tbaa !5
  %438 = tail call i32 @s2n_test_enable_extension(ptr noundef nonnull %150)
  %439 = icmp eq i32 %438, -1
  br i1 %439, label %440, label %464

440:                                              ; preds = %435
  %441 = tail call ptr @__errno_location() #8
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = tail call i32 @s2n_print_stacktrace(ptr noundef %443) #7
  %445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %446 = trunc nuw i8 %445 to i1
  br i1 %446, label %447, label %451

447:                                              ; preds = %440
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = tail call i32 @fileno(ptr noundef %448) #7
  %450 = tail call i32 @isatty(i32 noundef %449) #7
  %.not102 = icmp eq i32 %450, 0
  br i1 %.not102, label %451, label %452

451:                                              ; preds = %447, %440
  br label %452

452:                                              ; preds = %447, %451
  %.str.5.sink281 = phi ptr [ @.str.5, %451 ], [ @.str.2, %447 ]
  store i32 %442, ptr %441, align 4, !tbaa !5
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = load i32, ptr @test_count, align 4, !tbaa !5
  %455 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %456 = load i32, ptr %455, align 4, !tbaa !5
  %457 = tail call ptr @s2n_strerror(i32 noundef %456, ptr noundef nonnull @.str.4) #7
  %458 = load i32, ptr %455, align 4, !tbaa !5
  %459 = tail call ptr @s2n_strerror_debug(i32 noundef %458, ptr noundef nonnull @.str.4) #7
  %460 = load i32, ptr %441, align 4, !tbaa !5
  %461 = tail call ptr @strerror(i32 noundef %460) #7
  %462 = load i32, ptr %441, align 4, !tbaa !5
  %463 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %453, ptr noundef nonnull %.str.5.sink281, i32 noundef %454, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %457, ptr noundef %459, ptr noundef %461, i32 noundef %462) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

464:                                              ; preds = %435
  store i32 0, ptr %407, align 4, !tbaa !18
  %465 = load i32, ptr @test_count, align 4, !tbaa !5
  %466 = add nsw i32 %465, 1
  store i32 %466, ptr @test_count, align 4, !tbaa !5
  %467 = tail call zeroext i1 %208(ptr noundef nonnull %150) #7
  br i1 %467, label %468, label %492

468:                                              ; preds = %464
  %469 = tail call ptr @__errno_location() #8
  %470 = load i32, ptr %469, align 4, !tbaa !5
  %471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %472 = tail call i32 @s2n_print_stacktrace(ptr noundef %471) #7
  %473 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %474 = trunc nuw i8 %473 to i1
  br i1 %474, label %475, label %479

475:                                              ; preds = %468
  %476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %477 = tail call i32 @fileno(ptr noundef %476) #7
  %478 = tail call i32 @isatty(i32 noundef %477) #7
  %.not101 = icmp eq i32 %478, 0
  br i1 %.not101, label %479, label %480

479:                                              ; preds = %475, %468
  br label %480

480:                                              ; preds = %475, %479
  %.str.5.sink292 = phi ptr [ @.str.5, %479 ], [ @.str.2, %475 ]
  store i32 %470, ptr %469, align 4, !tbaa !5
  %481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %482 = load i32, ptr @test_count, align 4, !tbaa !5
  %483 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %484 = load i32, ptr %483, align 4, !tbaa !5
  %485 = tail call ptr @s2n_strerror(i32 noundef %484, ptr noundef nonnull @.str.4) #7
  %486 = load i32, ptr %483, align 4, !tbaa !5
  %487 = tail call ptr @s2n_strerror_debug(i32 noundef %486, ptr noundef nonnull @.str.4) #7
  %488 = load i32, ptr %469, align 4, !tbaa !5
  %489 = tail call ptr @strerror(i32 noundef %488) #7
  %490 = load i32, ptr %469, align 4, !tbaa !5
  %491 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %481, ptr noundef nonnull %.str.5.sink292, i32 noundef %482, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %485, ptr noundef %487, ptr noundef %489, i32 noundef %490) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

492:                                              ; preds = %464
  %493 = load i32, ptr @test_count, align 4, !tbaa !5
  %494 = add nsw i32 %493, 1
  store i32 %494, ptr @test_count, align 4, !tbaa !5
  %495 = tail call i32 @s2n_test_enable_extension(ptr noundef nonnull %150)
  %496 = icmp eq i32 %495, -1
  br i1 %496, label %497, label %521

497:                                              ; preds = %492
  %498 = tail call ptr @__errno_location() #8
  %499 = load i32, ptr %498, align 4, !tbaa !5
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = tail call i32 @s2n_print_stacktrace(ptr noundef %500) #7
  %502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %503 = trunc nuw i8 %502 to i1
  br i1 %503, label %504, label %508

504:                                              ; preds = %497
  %505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %506 = tail call i32 @fileno(ptr noundef %505) #7
  %507 = tail call i32 @isatty(i32 noundef %506) #7
  %.not100 = icmp eq i32 %507, 0
  br i1 %.not100, label %508, label %509

508:                                              ; preds = %504, %497
  br label %509

509:                                              ; preds = %504, %508
  %.str.5.sink303 = phi ptr [ @.str.5, %508 ], [ @.str.2, %504 ]
  store i32 %499, ptr %498, align 4, !tbaa !5
  %510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %511 = load i32, ptr @test_count, align 4, !tbaa !5
  %512 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %513 = load i32, ptr %512, align 4, !tbaa !5
  %514 = tail call ptr @s2n_strerror(i32 noundef %513, ptr noundef nonnull @.str.4) #7
  %515 = load i32, ptr %512, align 4, !tbaa !5
  %516 = tail call ptr @s2n_strerror_debug(i32 noundef %515, ptr noundef nonnull @.str.4) #7
  %517 = load i32, ptr %498, align 4, !tbaa !5
  %518 = tail call ptr @strerror(i32 noundef %517) #7
  %519 = load i32, ptr %498, align 4, !tbaa !5
  %520 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %510, ptr noundef nonnull %.str.5.sink303, i32 noundef %511, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %514, ptr noundef %516, ptr noundef %518, i32 noundef %519) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

521:                                              ; preds = %492
  %522 = getelementptr inbounds i8, ptr %150, i64 220
  store i8 34, ptr %522, align 4, !tbaa !44
  %523 = load i32, ptr @test_count, align 4, !tbaa !5
  %524 = add nsw i32 %523, 1
  store i32 %524, ptr @test_count, align 4, !tbaa !5
  %525 = tail call zeroext i1 %208(ptr noundef nonnull %150) #7
  br i1 %525, label %526, label %550

526:                                              ; preds = %521
  %527 = tail call ptr @__errno_location() #8
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %530 = tail call i32 @s2n_print_stacktrace(ptr noundef %529) #7
  %531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %532 = trunc nuw i8 %531 to i1
  br i1 %532, label %533, label %537

533:                                              ; preds = %526
  %534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %535 = tail call i32 @fileno(ptr noundef %534) #7
  %536 = tail call i32 @isatty(i32 noundef %535) #7
  %.not99 = icmp eq i32 %536, 0
  br i1 %.not99, label %537, label %538

537:                                              ; preds = %533, %526
  br label %538

538:                                              ; preds = %533, %537
  %.str.5.sink314 = phi ptr [ @.str.5, %537 ], [ @.str.2, %533 ]
  store i32 %528, ptr %527, align 4, !tbaa !5
  %539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %540 = load i32, ptr @test_count, align 4, !tbaa !5
  %541 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = tail call ptr @s2n_strerror(i32 noundef %542, ptr noundef nonnull @.str.4) #7
  %544 = load i32, ptr %541, align 4, !tbaa !5
  %545 = tail call ptr @s2n_strerror_debug(i32 noundef %544, ptr noundef nonnull @.str.4) #7
  %546 = load i32, ptr %527, align 4, !tbaa !5
  %547 = tail call ptr @strerror(i32 noundef %546) #7
  %548 = load i32, ptr %527, align 4, !tbaa !5
  %549 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %539, ptr noundef nonnull %.str.5.sink314, i32 noundef %540, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %543, ptr noundef %545, ptr noundef %547, i32 noundef %548) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

550:                                              ; preds = %521
  %551 = load i32, ptr @test_count, align 4, !tbaa !5
  %552 = add nsw i32 %551, 1
  store i32 %552, ptr @test_count, align 4, !tbaa !5
  %553 = tail call i32 @s2n_connection_free(ptr noundef nonnull %150) #7
  %554 = icmp eq i32 %553, -1
  br i1 %554, label %555, label %579

555:                                              ; preds = %550
  %556 = tail call ptr @__errno_location() #8
  %557 = load i32, ptr %556, align 4, !tbaa !5
  %558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %559 = tail call i32 @s2n_print_stacktrace(ptr noundef %558) #7
  %560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %561 = trunc nuw i8 %560 to i1
  br i1 %561, label %562, label %566

562:                                              ; preds = %555
  %563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %564 = tail call i32 @fileno(ptr noundef %563) #7
  %565 = tail call i32 @isatty(i32 noundef %564) #7
  %.not98 = icmp eq i32 %565, 0
  br i1 %.not98, label %566, label %567

566:                                              ; preds = %562, %555
  br label %567

567:                                              ; preds = %562, %566
  %.str.5.sink325 = phi ptr [ @.str.5, %566 ], [ @.str.2, %562 ]
  store i32 %557, ptr %556, align 4, !tbaa !5
  %568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %569 = load i32, ptr @test_count, align 4, !tbaa !5
  %570 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %571 = load i32, ptr %570, align 4, !tbaa !5
  %572 = tail call ptr @s2n_strerror(i32 noundef %571, ptr noundef nonnull @.str.4) #7
  %573 = load i32, ptr %570, align 4, !tbaa !5
  %574 = tail call ptr @s2n_strerror_debug(i32 noundef %573, ptr noundef nonnull @.str.4) #7
  %575 = load i32, ptr %556, align 4, !tbaa !5
  %576 = tail call ptr @strerror(i32 noundef %575) #7
  %577 = load i32, ptr %556, align 4, !tbaa !5
  %578 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %568, ptr noundef nonnull %.str.5.sink325, i32 noundef %569, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %572, ptr noundef %574, ptr noundef %576, i32 noundef %577) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

579:                                              ; preds = %550
  %580 = load i32, ptr @test_count, align 4, !tbaa !5
  %581 = add nsw i32 %580, 1
  store i32 %581, ptr @test_count, align 4, !tbaa !5
  %582 = tail call i32 @s2n_config_free(ptr noundef nonnull %121) #7
  %583 = icmp eq i32 %582, -1
  br i1 %583, label %584, label %608

584:                                              ; preds = %579
  %585 = tail call ptr @__errno_location() #8
  %586 = load i32, ptr %585, align 4, !tbaa !5
  %587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %588 = tail call i32 @s2n_print_stacktrace(ptr noundef %587) #7
  %589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %590 = trunc nuw i8 %589 to i1
  br i1 %590, label %591, label %595

591:                                              ; preds = %584
  %592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %593 = tail call i32 @fileno(ptr noundef %592) #7
  %594 = tail call i32 @isatty(i32 noundef %593) #7
  %.not97 = icmp eq i32 %594, 0
  br i1 %.not97, label %595, label %596

595:                                              ; preds = %591, %584
  br label %596

596:                                              ; preds = %591, %595
  %.str.5.sink336 = phi ptr [ @.str.5, %595 ], [ @.str.2, %591 ]
  store i32 %586, ptr %585, align 4, !tbaa !5
  %597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %598 = load i32, ptr @test_count, align 4, !tbaa !5
  %599 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %600 = load i32, ptr %599, align 4, !tbaa !5
  %601 = tail call ptr @s2n_strerror(i32 noundef %600, ptr noundef nonnull @.str.4) #7
  %602 = load i32, ptr %599, align 4, !tbaa !5
  %603 = tail call ptr @s2n_strerror_debug(i32 noundef %602, ptr noundef nonnull @.str.4) #7
  %604 = load i32, ptr %585, align 4, !tbaa !5
  %605 = tail call ptr @strerror(i32 noundef %604) #7
  %606 = load i32, ptr %585, align 4, !tbaa !5
  %607 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %597, ptr noundef nonnull %.str.5.sink336, i32 noundef %598, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %601, ptr noundef %603, ptr noundef %605, i32 noundef %606) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

608:                                              ; preds = %579
  %609 = load i32, ptr @test_count, align 4, !tbaa !5
  %610 = add nsw i32 %609, 1
  store i32 %610, ptr @test_count, align 4, !tbaa !5
  %611 = tail call ptr @s2n_connection_new(i32 noundef 0) #7
  %612 = icmp eq ptr %611, null
  br i1 %612, label %613, label %637

613:                                              ; preds = %608
  %614 = tail call ptr @__errno_location() #8
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %617 = tail call i32 @s2n_print_stacktrace(ptr noundef %616) #7
  %618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %619 = trunc nuw i8 %618 to i1
  br i1 %619, label %620, label %624

620:                                              ; preds = %613
  %621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %622 = tail call i32 @fileno(ptr noundef %621) #7
  %623 = tail call i32 @isatty(i32 noundef %622) #7
  %.not96 = icmp eq i32 %623, 0
  br i1 %.not96, label %624, label %625

624:                                              ; preds = %620, %613
  br label %625

625:                                              ; preds = %620, %624
  %.str.5.sink347 = phi ptr [ @.str.5, %624 ], [ @.str.2, %620 ]
  store i32 %615, ptr %614, align 4, !tbaa !5
  %626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %628 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = tail call ptr @s2n_strerror(i32 noundef %629, ptr noundef nonnull @.str.4) #7
  %631 = load i32, ptr %628, align 4, !tbaa !5
  %632 = tail call ptr @s2n_strerror_debug(i32 noundef %631, ptr noundef nonnull @.str.4) #7
  %633 = load i32, ptr %614, align 4, !tbaa !5
  %634 = tail call ptr @strerror(i32 noundef %633) #7
  %635 = load i32, ptr %614, align 4, !tbaa !5
  %636 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %626, ptr noundef nonnull %.str.5.sink347, i32 noundef %627, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %630, ptr noundef %632, ptr noundef %634, i32 noundef %635) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

637:                                              ; preds = %608
  %638 = load i32, ptr @test_count, align 4, !tbaa !5
  %639 = add nsw i32 %638, 1
  store i32 %639, ptr @test_count, align 4, !tbaa !5
  %640 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_session_ticket_extension, i64 8), align 8, !tbaa !45
  %641 = tail call i32 %640(ptr noundef nonnull %611, ptr noundef null) #7
  %642 = icmp eq i32 %641, -1
  br i1 %642, label %643, label %667

643:                                              ; preds = %637
  %644 = tail call ptr @__errno_location() #8
  %645 = load i32, ptr %644, align 4, !tbaa !5
  %646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %647 = tail call i32 @s2n_print_stacktrace(ptr noundef %646) #7
  %648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %649 = trunc nuw i8 %648 to i1
  br i1 %649, label %650, label %654

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

654:                                              ; preds = %650, %643
  br label %655

655:                                              ; preds = %650, %654
  %.str.5.sink358 = phi ptr [ @.str.5, %654 ], [ @.str.2, %650 ]
  store i32 %645, ptr %644, align 4, !tbaa !5
  %656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %657 = load i32, ptr @test_count, align 4, !tbaa !5
  %658 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %659 = load i32, ptr %658, align 4, !tbaa !5
  %660 = tail call ptr @s2n_strerror(i32 noundef %659, ptr noundef nonnull @.str.4) #7
  %661 = load i32, ptr %658, align 4, !tbaa !5
  %662 = tail call ptr @s2n_strerror_debug(i32 noundef %661, ptr noundef nonnull @.str.4) #7
  %663 = load i32, ptr %644, align 4, !tbaa !5
  %664 = tail call ptr @strerror(i32 noundef %663) #7
  %665 = load i32, ptr %644, align 4, !tbaa !5
  %666 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %656, ptr noundef nonnull %.str.5.sink358, i32 noundef %657, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %660, ptr noundef %662, ptr noundef %664, i32 noundef %665) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

667:                                              ; preds = %637
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = add nsw i32 %668, 1
  store i32 %669, ptr @test_count, align 4, !tbaa !5
  %670 = getelementptr inbounds i8, ptr %611, i64 3780
  %671 = load i32, ptr %670, align 4, !tbaa !18
  %672 = icmp eq i32 %671, 0
  br i1 %672, label %697, label %673

673:                                              ; preds = %667
  %674 = tail call ptr @__errno_location() #8
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %677 = tail call i32 @s2n_print_stacktrace(ptr noundef %676) #7
  %678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %679 = trunc nuw i8 %678 to i1
  br i1 %679, label %680, label %684

680:                                              ; preds = %673
  %681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %682 = tail call i32 @fileno(ptr noundef %681) #7
  %683 = tail call i32 @isatty(i32 noundef %682) #7
  %.not86 = icmp eq i32 %683, 0
  br i1 %.not86, label %684, label %685

684:                                              ; preds = %680, %673
  br label %685

685:                                              ; preds = %680, %684
  %.str.5.sink369 = phi ptr [ @.str.5, %684 ], [ @.str.2, %680 ]
  store i32 %675, ptr %674, align 4, !tbaa !5
  %686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %687 = load i32, ptr @test_count, align 4, !tbaa !5
  %688 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %689 = load i32, ptr %688, align 4, !tbaa !5
  %690 = tail call ptr @s2n_strerror(i32 noundef %689, ptr noundef nonnull @.str.4) #7
  %691 = load i32, ptr %688, align 4, !tbaa !5
  %692 = tail call ptr @s2n_strerror_debug(i32 noundef %691, ptr noundef nonnull @.str.4) #7
  %693 = load i32, ptr %674, align 4, !tbaa !5
  %694 = tail call ptr @strerror(i32 noundef %693) #7
  %695 = load i32, ptr %674, align 4, !tbaa !5
  %696 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %686, ptr noundef nonnull %.str.5.sink369, i32 noundef %687, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %690, ptr noundef %692, ptr noundef %694, i32 noundef %695) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

697:                                              ; preds = %667
  %698 = add nsw i32 %668, 2
  store i32 %698, ptr @test_count, align 4, !tbaa !5
  %699 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_session_ticket_extension, i64 16), align 8, !tbaa !46
  %700 = tail call i32 %699(ptr noundef nonnull %611, ptr noundef null) #7
  %701 = icmp eq i32 %700, -1
  br i1 %701, label %702, label %726

702:                                              ; preds = %697
  %703 = tail call ptr @__errno_location() #8
  %704 = load i32, ptr %703, align 4, !tbaa !5
  %705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %706 = tail call i32 @s2n_print_stacktrace(ptr noundef %705) #7
  %707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %708 = trunc nuw i8 %707 to i1
  br i1 %708, label %709, label %713

709:                                              ; preds = %702
  %710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %711 = tail call i32 @fileno(ptr noundef %710) #7
  %712 = tail call i32 @isatty(i32 noundef %711) #7
  %.not94 = icmp eq i32 %712, 0
  br i1 %.not94, label %713, label %714

713:                                              ; preds = %709, %702
  br label %714

714:                                              ; preds = %709, %713
  %.str.5.sink380 = phi ptr [ @.str.5, %713 ], [ @.str.2, %709 ]
  store i32 %704, ptr %703, align 4, !tbaa !5
  %715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %716 = load i32, ptr @test_count, align 4, !tbaa !5
  %717 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %718 = load i32, ptr %717, align 4, !tbaa !5
  %719 = tail call ptr @s2n_strerror(i32 noundef %718, ptr noundef nonnull @.str.4) #7
  %720 = load i32, ptr %717, align 4, !tbaa !5
  %721 = tail call ptr @s2n_strerror_debug(i32 noundef %720, ptr noundef nonnull @.str.4) #7
  %722 = load i32, ptr %703, align 4, !tbaa !5
  %723 = tail call ptr @strerror(i32 noundef %722) #7
  %724 = load i32, ptr %703, align 4, !tbaa !5
  %725 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %715, ptr noundef nonnull %.str.5.sink380, i32 noundef %716, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %719, ptr noundef %721, ptr noundef %723, i32 noundef %724) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

726:                                              ; preds = %697
  %727 = load i32, ptr @test_count, align 4, !tbaa !5
  %728 = add nsw i32 %727, 1
  store i32 %728, ptr @test_count, align 4, !tbaa !5
  %729 = load i32, ptr %670, align 4, !tbaa !18
  %730 = icmp eq i32 %729, 2
  br i1 %730, label %755, label %731

731:                                              ; preds = %726
  %732 = tail call ptr @__errno_location() #8
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %735 = tail call i32 @s2n_print_stacktrace(ptr noundef %734) #7
  %736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %737 = trunc nuw i8 %736 to i1
  br i1 %737, label %738, label %742

738:                                              ; preds = %731
  %739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %740 = tail call i32 @fileno(ptr noundef %739) #7
  %741 = tail call i32 @isatty(i32 noundef %740) #7
  %.not87 = icmp eq i32 %741, 0
  br i1 %.not87, label %742, label %743

742:                                              ; preds = %738, %731
  br label %743

743:                                              ; preds = %738, %742
  %.str.5.sink391 = phi ptr [ @.str.5, %742 ], [ @.str.2, %738 ]
  store i32 %733, ptr %732, align 4, !tbaa !5
  %744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %747 = load i32, ptr %746, align 4, !tbaa !5
  %748 = tail call ptr @s2n_strerror(i32 noundef %747, ptr noundef nonnull @.str.4) #7
  %749 = load i32, ptr %746, align 4, !tbaa !5
  %750 = tail call ptr @s2n_strerror_debug(i32 noundef %749, ptr noundef nonnull @.str.4) #7
  %751 = load i32, ptr %732, align 4, !tbaa !5
  %752 = tail call ptr @strerror(i32 noundef %751) #7
  %753 = load i32, ptr %732, align 4, !tbaa !5
  %754 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %744, ptr noundef nonnull %.str.5.sink391, i32 noundef %745, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %748, ptr noundef %750, ptr noundef %752, i32 noundef %753) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

755:                                              ; preds = %726
  %756 = add nsw i32 %727, 2
  store i32 %756, ptr @test_count, align 4, !tbaa !5
  %757 = tail call i32 @s2n_connection_free(ptr noundef nonnull %611) #7
  %758 = icmp eq i32 %757, -1
  br i1 %758, label %759, label %783

759:                                              ; preds = %755
  %760 = tail call ptr @__errno_location() #8
  %761 = load i32, ptr %760, align 4, !tbaa !5
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = tail call i32 @s2n_print_stacktrace(ptr noundef %762) #7
  %764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %765 = trunc nuw i8 %764 to i1
  br i1 %765, label %766, label %770

766:                                              ; preds = %759
  %767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %768 = tail call i32 @fileno(ptr noundef %767) #7
  %769 = tail call i32 @isatty(i32 noundef %768) #7
  %.not93 = icmp eq i32 %769, 0
  br i1 %.not93, label %770, label %771

770:                                              ; preds = %766, %759
  br label %771

771:                                              ; preds = %766, %770
  %.str.5.sink402 = phi ptr [ @.str.5, %770 ], [ @.str.2, %766 ]
  store i32 %761, ptr %760, align 4, !tbaa !5
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %774 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %775 = load i32, ptr %774, align 4, !tbaa !5
  %776 = tail call ptr @s2n_strerror(i32 noundef %775, ptr noundef nonnull @.str.4) #7
  %777 = load i32, ptr %774, align 4, !tbaa !5
  %778 = tail call ptr @s2n_strerror_debug(i32 noundef %777, ptr noundef nonnull @.str.4) #7
  %779 = load i32, ptr %760, align 4, !tbaa !5
  %780 = tail call ptr @strerror(i32 noundef %779) #7
  %781 = load i32, ptr %760, align 4, !tbaa !5
  %782 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %772, ptr noundef nonnull %.str.5.sink402, i32 noundef %773, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %776, ptr noundef %778, ptr noundef %780, i32 noundef %781) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

783:                                              ; preds = %755
  %784 = tail call i32 @s2n_cleanup() #7
  %785 = icmp eq i32 %784, -1
  br i1 %785, label %786, label %810

786:                                              ; preds = %783
  %787 = tail call ptr @__errno_location() #8
  %788 = load i32, ptr %787, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = tail call i32 @s2n_print_stacktrace(ptr noundef %789) #7
  %791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %792 = trunc nuw i8 %791 to i1
  br i1 %792, label %793, label %797

793:                                              ; preds = %786
  %794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %795 = tail call i32 @fileno(ptr noundef %794) #7
  %796 = tail call i32 @isatty(i32 noundef %795) #7
  %.not92 = icmp eq i32 %796, 0
  br i1 %.not92, label %797, label %798

797:                                              ; preds = %793, %786
  br label %798

798:                                              ; preds = %793, %797
  %.str.5.sink413 = phi ptr [ @.str.5, %797 ], [ @.str.2, %793 ]
  store i32 %788, ptr %787, align 4, !tbaa !5
  %799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %800 = load i32, ptr @test_count, align 4, !tbaa !5
  %801 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %802 = load i32, ptr %801, align 4, !tbaa !5
  %803 = tail call ptr @s2n_strerror(i32 noundef %802, ptr noundef nonnull @.str.4) #7
  %804 = load i32, ptr %801, align 4, !tbaa !5
  %805 = tail call ptr @s2n_strerror_debug(i32 noundef %804, ptr noundef nonnull @.str.4) #7
  %806 = load i32, ptr %787, align 4, !tbaa !5
  %807 = tail call ptr @strerror(i32 noundef %806) #7
  %808 = load i32, ptr %787, align 4, !tbaa !5
  %809 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %799, ptr noundef nonnull %.str.5.sink413, i32 noundef %800, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %803, ptr noundef %805, ptr noundef %807, i32 noundef %808) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

810:                                              ; preds = %783
  %811 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #7
  %812 = icmp eq i32 %811, -1
  br i1 %812, label %813, label %837

813:                                              ; preds = %810
  %814 = tail call ptr @__errno_location() #8
  %815 = load i32, ptr %814, align 4, !tbaa !5
  %816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %817 = tail call i32 @s2n_print_stacktrace(ptr noundef %816) #7
  %818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %819 = trunc nuw i8 %818 to i1
  br i1 %819, label %820, label %824

820:                                              ; preds = %813
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = tail call i32 @fileno(ptr noundef %821) #7
  %823 = tail call i32 @isatty(i32 noundef %822) #7
  %.not91 = icmp eq i32 %823, 0
  br i1 %.not91, label %824, label %825

824:                                              ; preds = %820, %813
  br label %825

825:                                              ; preds = %820, %824
  %.str.5.sink424 = phi ptr [ @.str.5, %824 ], [ @.str.2, %820 ]
  store i32 %815, ptr %814, align 4, !tbaa !5
  %826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %827 = load i32, ptr @test_count, align 4, !tbaa !5
  %828 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %829 = load i32, ptr %828, align 4, !tbaa !5
  %830 = tail call ptr @s2n_strerror(i32 noundef %829, ptr noundef nonnull @.str.4) #7
  %831 = load i32, ptr %828, align 4, !tbaa !5
  %832 = tail call ptr @s2n_strerror_debug(i32 noundef %831, ptr noundef nonnull @.str.4) #7
  %833 = load i32, ptr %814, align 4, !tbaa !5
  %834 = tail call ptr @strerror(i32 noundef %833) #7
  %835 = load i32, ptr %814, align 4, !tbaa !5
  %836 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %826, ptr noundef nonnull %.str.5.sink424, i32 noundef %827, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %830, ptr noundef %832, ptr noundef %834, i32 noundef %835) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

837:                                              ; preds = %810
  %838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %839 = trunc nuw i8 %838 to i1
  br i1 %839, label %840, label %851

840:                                              ; preds = %837
  %841 = load ptr, ptr @stdout, align 8, !tbaa !9
  %842 = tail call i32 @fileno(ptr noundef %841) #7
  %843 = tail call i32 @isatty(i32 noundef %842) #7
  %.not88 = icmp eq i32 %843, 0
  br i1 %.not88, label %851, label %844

844:                                              ; preds = %840
  %845 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not90 = icmp eq i32 %845, 0
  %846 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not90, label %849, label %847

847:                                              ; preds = %844
  %848 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %846, ptr noundef nonnull @.str.24, i32 noundef %845) #7
  br label %858

849:                                              ; preds = %844
  %850 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %846, ptr noundef nonnull @.str.25) #7
  br label %858

851:                                              ; preds = %840, %837
  %852 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not89 = icmp eq i32 %852, 0
  %853 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not89, label %856, label %854

854:                                              ; preds = %851
  %855 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %853, ptr noundef nonnull @.str.26, i32 noundef %852) #7
  br label %858

856:                                              ; preds = %851
  %857 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %853, ptr noundef nonnull @.str.27) #7
  br label %858

858:                                              ; preds = %854, %856, %847, %849
  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 nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #3

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

; 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) #5

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_enable_extension(ptr noundef) local_unnamed_addr #0

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

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(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 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 #4 = { 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 #5 = { mustprogress 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 = { nounwind }
attributes #8 = { nounwind willreturn memory(none) }
attributes #9 = { cold nounwind }
attributes #10 = { noreturn nounwind }

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

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


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass