; LLVM IR from jrl-umi3218/mc_rtc :: 3rd-party/qhull/src/libqhull_r (global_r)

; 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.qhT = type { i32, i32, i32, i32, i32, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, i32, i32, ptr, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, double, double, i32, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [29 x i32], i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, double, i32, ptr, ptr, i32, i32, i32, i32, i32, ptr, i32, ptr, i32, [256 x i8], i32, [256 x i8], [512 x i8], i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, double, double, double, double, double, double, double, double, double, double, double, double, double, double, ptr, double, double, double, double, i32, [6 x i8], [1 x %struct.__jmp_buf_tag], [40 x i8], [1 x %struct.__jmp_buf_tag], [40 x i8], ptr, ptr, ptr, ptr, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i32, ptr, i32, ptr, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i64, i32, i32, i32, i32, i32, ptr, ptr, i32, i32, i32, double, i32, double, double, double, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr, i32, i32, i32, ptr, double, double, double, double, i32, i32, i32, i32, i32, i32, ptr, i32, i32, [1 x %struct.__jmp_buf_tag], [40 x i8], i32, double, ptr, ptr, ptr, %struct.qhmemT, %struct.qhstatT }
%struct.__jmp_buf_tag = type { [8 x i64], i32, %struct.__sigset_t }
%struct.__sigset_t = type { [16 x i64] }
%struct.qhmemT = type { i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.qhstatT = type { [249 x %union.intrealT], [259 x i8], [249 x ptr], [249 x i16], [249 x i8], [249 x i8], [9 x %union.intrealT], i32, i32, i32, i32, double }
%union.intrealT = type { double }

@.str.14 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [2 x i8], align 1
@stdin = external global ptr, align 8
@.str.161 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.177 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [40 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local void @qh_appendprint(ptr noundef, i32 noundef) #0

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

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

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

declare void @qh_fprintf(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ...) #3

declare void @qh_errexit(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #3

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

declare ptr @qh_skipfilename(ptr noundef, ptr noundef) #3

declare double @qh_strtod(ptr noundef, ptr noundef) #3

declare void @qh_exit(i32 noundef) #3

; Function Attrs: nounwind uwtable
define dso_local void @qh_initflags(ptr noundef %0, ptr noundef %1) #0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i8, align 1
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca double, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca [500 x i8], align 16
  %20 = alloca [500 x i8], align 16
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #7
  %21 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %21, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  store ptr null, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  store i32 0, ptr %14, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %22 = load ptr, ptr %3, align 8, !tbaa !5
  %23 = getelementptr inbounds %struct.qhT, ptr %22, i32 0, i32 206
  %24 = load i32, ptr %23, align 8, !tbaa !11
  %25 = icmp ne i32 %24, 0
  br i1 %25, label %26, label %31

26:                                               ; preds = %2
  %27 = load ptr, ptr %3, align 8, !tbaa !5
  %28 = load ptr, ptr %3, align 8, !tbaa !5
  %29 = getelementptr inbounds %struct.qhT, ptr %28, i32 0, i32 158
  %30 = load ptr, ptr %29, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %27, ptr noundef %30, i32 noundef 6245, ptr noundef @.str.14)
  call void @qh_exit(i32 noundef 5)
  br label %31

31:                                               ; preds = %26, %2
  %32 = load ptr, ptr %4, align 8, !tbaa !5
  %33 = load ptr, ptr %3, align 8, !tbaa !5
  %34 = getelementptr inbounds %struct.qhT, ptr %33, i32 0, i32 117
  %35 = getelementptr inbounds [256 x i8], ptr %34, i64 0, i64 0
  %36 = icmp ule ptr %32, %35
  br i1 %36, label %44, label %37

37:                                               ; preds = %31
  %38 = load ptr, ptr %4, align 8, !tbaa !5
  %39 = load ptr, ptr %3, align 8, !tbaa !5
  %40 = getelementptr inbounds %struct.qhT, ptr %39, i32 0, i32 117
  %41 = getelementptr inbounds [256 x i8], ptr %40, i64 0, i64 0
  %42 = getelementptr inbounds i8, ptr %41, i64 256
  %43 = icmp ugt ptr %38, %42
  br i1 %43, label %44, label %90

44:                                               ; preds = %37, %31
  %45 = load ptr, ptr %4, align 8, !tbaa !5
  %46 = load ptr, ptr %3, align 8, !tbaa !5
  %47 = getelementptr inbounds %struct.qhT, ptr %46, i32 0, i32 117
  %48 = getelementptr inbounds [256 x i8], ptr %47, i64 0, i64 0
  %49 = icmp ne ptr %45, %48
  br i1 %49, label %50, label %65

50:                                               ; preds = %44
  %51 = load ptr, ptr %3, align 8, !tbaa !5
  %52 = getelementptr inbounds %struct.qhT, ptr %51, i32 0, i32 117
  %53 = getelementptr inbounds [256 x i8], ptr %52, i64 0, i64 0
  store i8 0, ptr %53, align 4, !tbaa !18
  %54 = load ptr, ptr %3, align 8, !tbaa !5
  %55 = getelementptr inbounds %struct.qhT, ptr %54, i32 0, i32 117
  %56 = getelementptr inbounds [256 x i8], ptr %55, i64 0, i64 0
  %57 = load ptr, ptr %4, align 8, !tbaa !5
  %58 = load ptr, ptr %3, align 8, !tbaa !5
  %59 = getelementptr inbounds %struct.qhT, ptr %58, i32 0, i32 117
  %60 = getelementptr inbounds [256 x i8], ptr %59, i64 0, i64 0
  %61 = call i64 @strlen(ptr noundef %60) #8
  %62 = sub i64 256, %61
  %63 = sub i64 %62, 1
  %64 = call ptr @strncat(ptr noundef %56, ptr noundef %57, i64 noundef %63) #7
  br label %65

65:                                               ; preds = %50, %44
  br label %66

66:                                               ; preds = %86, %65
  %67 = load ptr, ptr %8, align 8, !tbaa !5
  %68 = load i8, ptr %67, align 1, !tbaa !18
  %69 = sext i8 %68 to i32
  %70 = icmp ne i32 %69, 0
  br i1 %70, label %71, label %84

71:                                               ; preds = %66
  %72 = call ptr @__ctype_b_loc() #9
  %73 = load ptr, ptr %72, align 8, !tbaa !5
  %74 = load ptr, ptr %8, align 8, !tbaa !5
  %75 = load i8, ptr %74, align 1, !tbaa !18
  %76 = sext i8 %75 to i32
  %77 = sext i32 %76 to i64
  %78 = getelementptr inbounds i16, ptr %73, i64 %77
  %79 = load i16, ptr %78, align 2, !tbaa !19
  %80 = zext i16 %79 to i32
  %81 = and i32 %80, 8192
  %82 = icmp ne i32 %81, 0
  %83 = xor i1 %82, true
  br label %84

84:                                               ; preds = %71, %66
  %85 = phi i1 [ false, %66 ], [ %83, %71 ]
  br i1 %85, label %86, label %89

86:                                               ; preds = %84
  %87 = load ptr, ptr %8, align 8, !tbaa !5
  %88 = getelementptr inbounds i8, ptr %87, i32 1
  store ptr %88, ptr %8, align 8, !tbaa !5
  br label %66, !llvm.loop !21

89:                                               ; preds = %84
  br label %90

90:                                               ; preds = %89, %37
  br label %91

91:                                               ; preds = %2277, %90
  %92 = load ptr, ptr %8, align 8, !tbaa !5
  %93 = load i8, ptr %92, align 1, !tbaa !18
  %94 = icmp ne i8 %93, 0
  br i1 %94, label %95, label %2278

95:                                               ; preds = %91
  br label %96

96:                                               ; preds = %115, %95
  %97 = load ptr, ptr %8, align 8, !tbaa !5
  %98 = load i8, ptr %97, align 1, !tbaa !18
  %99 = sext i8 %98 to i32
  %100 = icmp ne i32 %99, 0
  br i1 %100, label %101, label %113

101:                                              ; preds = %96
  %102 = call ptr @__ctype_b_loc() #9
  %103 = load ptr, ptr %102, align 8, !tbaa !5
  %104 = load ptr, ptr %8, align 8, !tbaa !5
  %105 = load i8, ptr %104, align 1, !tbaa !18
  %106 = sext i8 %105 to i32
  %107 = sext i32 %106 to i64
  %108 = getelementptr inbounds i16, ptr %103, i64 %107
  %109 = load i16, ptr %108, align 2, !tbaa !19
  %110 = zext i16 %109 to i32
  %111 = and i32 %110, 8192
  %112 = icmp ne i32 %111, 0
  br label %113

113:                                              ; preds = %101, %96
  %114 = phi i1 [ false, %96 ], [ %112, %101 ]
  br i1 %114, label %115, label %118

115:                                              ; preds = %113
  %116 = load ptr, ptr %8, align 8, !tbaa !5
  %117 = getelementptr inbounds i8, ptr %116, i32 1
  store ptr %117, ptr %8, align 8, !tbaa !5
  br label %96, !llvm.loop !23

118:                                              ; preds = %113
  %119 = load ptr, ptr %8, align 8, !tbaa !5
  %120 = load i8, ptr %119, align 1, !tbaa !18
  %121 = sext i8 %120 to i32
  %122 = icmp eq i32 %121, 45
  br i1 %122, label %123, label %126

123:                                              ; preds = %118
  %124 = load ptr, ptr %8, align 8, !tbaa !5
  %125 = getelementptr inbounds i8, ptr %124, i32 1
  store ptr %125, ptr %8, align 8, !tbaa !5
  br label %126

126:                                              ; preds = %123, %118
  %127 = load ptr, ptr %8, align 8, !tbaa !5
  %128 = load i8, ptr %127, align 1, !tbaa !18
  %129 = icmp ne i8 %128, 0
  br i1 %129, label %131, label %130

130:                                              ; preds = %126
  br label %2278

131:                                              ; preds = %126
  %132 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %132, ptr %10, align 8, !tbaa !5
  %133 = load ptr, ptr %8, align 8, !tbaa !5
  %134 = getelementptr inbounds i8, ptr %133, i32 1
  store ptr %134, ptr %8, align 8, !tbaa !5
  %135 = load i8, ptr %133, align 1, !tbaa !18
  %136 = sext i8 %135 to i32
  switch i32 %136, label %2200 [
    i32 100, label %137
    i32 102, label %141
    i32 105, label %144
    i32 109, label %147
    i32 110, label %150
    i32 111, label %153
    i32 112, label %156
    i32 115, label %159
    i32 118, label %163
    i32 65, label %169
    i32 67, label %228
    i32 69, label %287
    i32 72, label %331
    i32 82, label %419
    i32 86, label %449
    i32 85, label %482
    i32 87, label %515
    i32 70, label %559
    i32 71, label %710
    i32 80, label %858
    i32 81, label %1050
    i32 84, label %1658
  ]

137:                                              ; preds = %131
  %138 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %138, ptr noundef @.str.15, ptr noundef null, ptr noundef null)
  %139 = load ptr, ptr %3, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.qhT, ptr %139, i32 0, i32 17
  store i32 1, ptr %140, align 8, !tbaa !24
  br label %2215

141:                                              ; preds = %131
  %142 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %142, ptr noundef @.str.16, ptr noundef null, ptr noundef null)
  %143 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %143, i32 noundef 5)
  br label %2215

144:                                              ; preds = %131
  %145 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %145, ptr noundef @.str.17, ptr noundef null, ptr noundef null)
  %146 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %146, i32 noundef 14)
  br label %2215

147:                                              ; preds = %131
  %148 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %148, ptr noundef @.str.18, ptr noundef null, ptr noundef null)
  %149 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %149, i32 noundef 15)
  br label %2215

150:                                              ; preds = %131
  %151 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %151, ptr noundef @.str.19, ptr noundef null, ptr noundef null)
  %152 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %152, i32 noundef 11)
  br label %2215

153:                                              ; preds = %131
  %154 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %154, ptr noundef @.str.20, ptr noundef null, ptr noundef null)
  %155 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %155, i32 noundef 17)
  br label %2215

156:                                              ; preds = %131
  %157 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %157, ptr noundef @.str.21, ptr noundef null, ptr noundef null)
  %158 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %158, i32 noundef 21)
  br label %2215

159:                                              ; preds = %131
  %160 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %160, ptr noundef @.str.22, ptr noundef null, ptr noundef null)
  %161 = load ptr, ptr %3, align 8, !tbaa !5
  %162 = getelementptr inbounds %struct.qhT, ptr %161, i32 0, i32 68
  store i32 1, ptr %162, align 4, !tbaa !25
  br label %2215

163:                                              ; preds = %131
  %164 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %164, ptr noundef @.str.23, ptr noundef null, ptr noundef null)
  %165 = load ptr, ptr %3, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.qhT, ptr %165, i32 0, i32 103
  store i32 1, ptr %166, align 4, !tbaa !26
  %167 = load ptr, ptr %3, align 8, !tbaa !5
  %168 = getelementptr inbounds %struct.qhT, ptr %167, i32 0, i32 17
  store i32 1, ptr %168, align 8, !tbaa !24
  br label %2215

169:                                              ; preds = %131
  %170 = call ptr @__ctype_b_loc() #9
  %171 = load ptr, ptr %170, align 8, !tbaa !5
  %172 = load ptr, ptr %8, align 8, !tbaa !5
  %173 = load i8, ptr %172, align 1, !tbaa !18
  %174 = sext i8 %173 to i32
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds i16, ptr %171, i64 %175
  %177 = load i16, ptr %176, align 2, !tbaa !19
  %178 = zext i16 %177 to i32
  %179 = and i32 %178, 2048
  %180 = icmp ne i32 %179, 0
  br i1 %180, label %198, label %181

181:                                              ; preds = %169
  %182 = load ptr, ptr %8, align 8, !tbaa !5
  %183 = load i8, ptr %182, align 1, !tbaa !18
  %184 = sext i8 %183 to i32
  %185 = icmp ne i32 %184, 46
  br i1 %185, label %186, label %198

186:                                              ; preds = %181
  %187 = load ptr, ptr %8, align 8, !tbaa !5
  %188 = load i8, ptr %187, align 1, !tbaa !18
  %189 = sext i8 %188 to i32
  %190 = icmp ne i32 %189, 45
  br i1 %190, label %191, label %198

191:                                              ; preds = %186
  %192 = load ptr, ptr %3, align 8, !tbaa !5
  %193 = load ptr, ptr %3, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.qhT, ptr %193, i32 0, i32 158
  %195 = load ptr, ptr %194, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %192, ptr noundef %195, i32 noundef 7002, ptr noundef @.str.24)
  %196 = load ptr, ptr %8, align 8, !tbaa !5
  %197 = getelementptr inbounds i8, ptr %196, i64 -1
  store ptr %197, ptr %13, align 8, !tbaa !5
  br label %227

198:                                              ; preds = %186, %181, %169
  %199 = load ptr, ptr %8, align 8, !tbaa !5
  %200 = load i8, ptr %199, align 1, !tbaa !18
  %201 = sext i8 %200 to i32
  %202 = icmp eq i32 %201, 45
  br i1 %202, label %203, label %214

203:                                              ; preds = %198
  %204 = load ptr, ptr %8, align 8, !tbaa !5
  %205 = call double @qh_strtod(ptr noundef %204, ptr noundef %8)
  %206 = fneg double %205
  %207 = load ptr, ptr %3, align 8, !tbaa !5
  %208 = getelementptr inbounds %struct.qhT, ptr %207, i32 0, i32 15
  store double %206, ptr %208, align 8, !tbaa !27
  %209 = load ptr, ptr %3, align 8, !tbaa !5
  %210 = load ptr, ptr %3, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.qhT, ptr %210, i32 0, i32 15
  call void @qh_option(ptr noundef %209, ptr noundef @.str.25, ptr noundef null, ptr noundef %211)
  %212 = load ptr, ptr %3, align 8, !tbaa !5
  %213 = getelementptr inbounds %struct.qhT, ptr %212, i32 0, i32 52
  store i32 1, ptr %213, align 4, !tbaa !28
  br label %224

214:                                              ; preds = %198
  %215 = load ptr, ptr %8, align 8, !tbaa !5
  %216 = call double @qh_strtod(ptr noundef %215, ptr noundef %8)
  %217 = load ptr, ptr %3, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.qhT, ptr %217, i32 0, i32 16
  store double %216, ptr %218, align 8, !tbaa !29
  %219 = load ptr, ptr %3, align 8, !tbaa !5
  %220 = load ptr, ptr %3, align 8, !tbaa !5
  %221 = getelementptr inbounds %struct.qhT, ptr %220, i32 0, i32 16
  call void @qh_option(ptr noundef %219, ptr noundef @.str.26, ptr noundef null, ptr noundef %221)
  %222 = load ptr, ptr %3, align 8, !tbaa !5
  %223 = getelementptr inbounds %struct.qhT, ptr %222, i32 0, i32 51
  store i32 1, ptr %223, align 8, !tbaa !30
  br label %224

224:                                              ; preds = %214, %203
  %225 = load ptr, ptr %3, align 8, !tbaa !5
  %226 = getelementptr inbounds %struct.qhT, ptr %225, i32 0, i32 39
  store i32 1, ptr %226, align 4, !tbaa !31
  br label %227

227:                                              ; preds = %224, %191
  br label %2215

228:                                              ; preds = %131
  %229 = call ptr @__ctype_b_loc() #9
  %230 = load ptr, ptr %229, align 8, !tbaa !5
  %231 = load ptr, ptr %8, align 8, !tbaa !5
  %232 = load i8, ptr %231, align 1, !tbaa !18
  %233 = sext i8 %232 to i32
  %234 = sext i32 %233 to i64
  %235 = getelementptr inbounds i16, ptr %230, i64 %234
  %236 = load i16, ptr %235, align 2, !tbaa !19
  %237 = zext i16 %236 to i32
  %238 = and i32 %237, 2048
  %239 = icmp ne i32 %238, 0
  br i1 %239, label %257, label %240

240:                                              ; preds = %228
  %241 = load ptr, ptr %8, align 8, !tbaa !5
  %242 = load i8, ptr %241, align 1, !tbaa !18
  %243 = sext i8 %242 to i32
  %244 = icmp ne i32 %243, 46
  br i1 %244, label %245, label %257

245:                                              ; preds = %240
  %246 = load ptr, ptr %8, align 8, !tbaa !5
  %247 = load i8, ptr %246, align 1, !tbaa !18
  %248 = sext i8 %247 to i32
  %249 = icmp ne i32 %248, 45
  br i1 %249, label %250, label %257

250:                                              ; preds = %245
  %251 = load ptr, ptr %3, align 8, !tbaa !5
  %252 = load ptr, ptr %3, align 8, !tbaa !5
  %253 = getelementptr inbounds %struct.qhT, ptr %252, i32 0, i32 158
  %254 = load ptr, ptr %253, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %251, ptr noundef %254, i32 noundef 7003, ptr noundef @.str.27)
  %255 = load ptr, ptr %8, align 8, !tbaa !5
  %256 = getelementptr inbounds i8, ptr %255, i64 -1
  store ptr %256, ptr %13, align 8, !tbaa !5
  br label %286

257:                                              ; preds = %245, %240, %228
  %258 = load ptr, ptr %8, align 8, !tbaa !5
  %259 = load i8, ptr %258, align 1, !tbaa !18
  %260 = sext i8 %259 to i32
  %261 = icmp eq i32 %260, 45
  br i1 %261, label %262, label %273

262:                                              ; preds = %257
  %263 = load ptr, ptr %8, align 8, !tbaa !5
  %264 = call double @qh_strtod(ptr noundef %263, ptr noundef %8)
  %265 = fneg double %264
  %266 = load ptr, ptr %3, align 8, !tbaa !5
  %267 = getelementptr inbounds %struct.qhT, ptr %266, i32 0, i32 40
  store double %265, ptr %267, align 8, !tbaa !32
  %268 = load ptr, ptr %3, align 8, !tbaa !5
  %269 = load ptr, ptr %3, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.qhT, ptr %269, i32 0, i32 40
  call void @qh_option(ptr noundef %268, ptr noundef @.str.28, ptr noundef null, ptr noundef %270)
  %271 = load ptr, ptr %3, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.qhT, ptr %271, i32 0, i32 52
  store i32 1, ptr %272, align 4, !tbaa !28
  br label %283

273:                                              ; preds = %257
  %274 = load ptr, ptr %8, align 8, !tbaa !5
  %275 = call double @qh_strtod(ptr noundef %274, ptr noundef %8)
  %276 = load ptr, ptr %3, align 8, !tbaa !5
  %277 = getelementptr inbounds %struct.qhT, ptr %276, i32 0, i32 41
  store double %275, ptr %277, align 8, !tbaa !33
  %278 = load ptr, ptr %3, align 8, !tbaa !5
  %279 = load ptr, ptr %3, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.qhT, ptr %279, i32 0, i32 41
  call void @qh_option(ptr noundef %278, ptr noundef @.str.29, ptr noundef null, ptr noundef %280)
  %281 = load ptr, ptr %3, align 8, !tbaa !5
  %282 = getelementptr inbounds %struct.qhT, ptr %281, i32 0, i32 51
  store i32 1, ptr %282, align 8, !tbaa !30
  br label %283

283:                                              ; preds = %273, %262
  %284 = load ptr, ptr %3, align 8, !tbaa !5
  %285 = getelementptr inbounds %struct.qhT, ptr %284, i32 0, i32 39
  store i32 1, ptr %285, align 4, !tbaa !31
  br label %286

286:                                              ; preds = %283, %250
  br label %2215

287:                                              ; preds = %131
  %288 = load ptr, ptr %8, align 8, !tbaa !5
  %289 = load i8, ptr %288, align 1, !tbaa !18
  %290 = sext i8 %289 to i32
  %291 = icmp eq i32 %290, 45
  br i1 %291, label %292, label %300

292:                                              ; preds = %287
  %293 = load ptr, ptr %3, align 8, !tbaa !5
  %294 = load ptr, ptr %3, align 8, !tbaa !5
  %295 = getelementptr inbounds %struct.qhT, ptr %294, i32 0, i32 158
  %296 = load ptr, ptr %295, align 8, !tbaa !17
  %297 = load ptr, ptr %8, align 8, !tbaa !5
  %298 = getelementptr inbounds i8, ptr %297, i64 -1
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %293, ptr noundef %296, i32 noundef 6363, ptr noundef @.str.30, ptr noundef %298)
  %299 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_errexit(ptr noundef %299, i32 noundef 1, ptr noundef null, ptr noundef null)
  br label %330

300:                                              ; preds = %287
  %301 = call ptr @__ctype_b_loc() #9
  %302 = load ptr, ptr %301, align 8, !tbaa !5
  %303 = load ptr, ptr %8, align 8, !tbaa !5
  %304 = load i8, ptr %303, align 1, !tbaa !18
  %305 = sext i8 %304 to i32
  %306 = sext i32 %305 to i64
  %307 = getelementptr inbounds i16, ptr %302, i64 %306
  %308 = load i16, ptr %307, align 2, !tbaa !19
  %309 = zext i16 %308 to i32
  %310 = and i32 %309, 2048
  %311 = icmp ne i32 %310, 0
  br i1 %311, label %319, label %312

312:                                              ; preds = %300
  %313 = load ptr, ptr %3, align 8, !tbaa !5
  %314 = load ptr, ptr %3, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.qhT, ptr %314, i32 0, i32 158
  %316 = load ptr, ptr %315, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %313, ptr noundef %316, i32 noundef 7005, ptr noundef @.str.31)
  %317 = load ptr, ptr %8, align 8, !tbaa !5
  %318 = getelementptr inbounds i8, ptr %317, i64 -1
  store ptr %318, ptr %13, align 8, !tbaa !5
  br label %329

319:                                              ; preds = %300
  %320 = load ptr, ptr %8, align 8, !tbaa !5
  %321 = call double @qh_strtod(ptr noundef %320, ptr noundef %8)
  %322 = load ptr, ptr %3, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.qhT, ptr %322, i32 0, i32 134
  store double %321, ptr %323, align 8, !tbaa !34
  %324 = load ptr, ptr %3, align 8, !tbaa !5
  %325 = load ptr, ptr %3, align 8, !tbaa !5
  %326 = getelementptr inbounds %struct.qhT, ptr %325, i32 0, i32 134
  call void @qh_option(ptr noundef %324, ptr noundef @.str.32, ptr noundef null, ptr noundef %326)
  %327 = load ptr, ptr %3, align 8, !tbaa !5
  %328 = getelementptr inbounds %struct.qhT, ptr %327, i32 0, i32 83
  store i32 1, ptr %328, align 4, !tbaa !35
  br label %329

329:                                              ; preds = %319, %312
  br label %330

330:                                              ; preds = %329, %292
  br label %2215

331:                                              ; preds = %131
  %332 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %332, ptr %11, align 8, !tbaa !5
  %333 = load ptr, ptr %3, align 8, !tbaa !5
  %334 = getelementptr inbounds %struct.qhT, ptr %333, i32 0, i32 27
  store i32 1, ptr %334, align 8, !tbaa !36
  %335 = load ptr, ptr %8, align 8, !tbaa !5
  %336 = call double @qh_strtod(ptr noundef %335, ptr noundef %9)
  br label %337

337:                                              ; preds = %375, %331
  %338 = load ptr, ptr %9, align 8, !tbaa !5
  %339 = load ptr, ptr %8, align 8, !tbaa !5
  %340 = icmp ugt ptr %338, %339
  br i1 %340, label %341, label %379

341:                                              ; preds = %337
  %342 = load ptr, ptr %9, align 8, !tbaa !5
  %343 = load i8, ptr %342, align 1, !tbaa !18
  %344 = sext i8 %343 to i32
  %345 = icmp ne i32 %344, 0
  br i1 %345, label %346, label %375

346:                                              ; preds = %341
  %347 = call ptr @__ctype_b_loc() #9
  %348 = load ptr, ptr %347, align 8, !tbaa !5
  %349 = load ptr, ptr %9, align 8, !tbaa !5
  %350 = load i8, ptr %349, align 1, !tbaa !18
  %351 = sext i8 %350 to i32
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds i16, ptr %348, i64 %352
  %354 = load i16, ptr %353, align 2, !tbaa !19
  %355 = zext i16 %354 to i32
  %356 = and i32 %355, 8192
  %357 = icmp ne i32 %356, 0
  br i1 %357, label %375, label %358

358:                                              ; preds = %346
  %359 = load ptr, ptr %9, align 8, !tbaa !5
  %360 = load i8, ptr %359, align 1, !tbaa !18
  %361 = sext i8 %360 to i32
  %362 = icmp eq i32 %361, 44
  br i1 %362, label %363, label %366

363:                                              ; preds = %358
  %364 = load ptr, ptr %9, align 8, !tbaa !5
  %365 = getelementptr inbounds i8, ptr %364, i32 1
  store ptr %365, ptr %9, align 8, !tbaa !5
  br label %374

366:                                              ; preds = %358
  %367 = load ptr, ptr %3, align 8, !tbaa !5
  %368 = load ptr, ptr %3, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.qhT, ptr %368, i32 0, i32 158
  %370 = load ptr, ptr %369, align 8, !tbaa !17
  %371 = load ptr, ptr %11, align 8, !tbaa !5
  %372 = getelementptr inbounds i8, ptr %371, i64 -1
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %367, ptr noundef %370, i32 noundef 6364, ptr noundef @.str.33, ptr noundef %372)
  %373 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_errexit(ptr noundef %373, i32 noundef 1, ptr noundef null, ptr noundef null)
  br label %374

374:                                              ; preds = %366, %363
  br label %375

375:                                              ; preds = %374, %346, %341
  %376 = load ptr, ptr %9, align 8, !tbaa !5
  store ptr %376, ptr %8, align 8, !tbaa !5
  %377 = load ptr, ptr %8, align 8, !tbaa !5
  %378 = call double @qh_strtod(ptr noundef %377, ptr noundef %9)
  br label %337, !llvm.loop !37

379:                                              ; preds = %337
  %380 = load ptr, ptr %11, align 8, !tbaa !5
  %381 = load ptr, ptr %9, align 8, !tbaa !5
  %382 = icmp ult ptr %380, %381
  br i1 %382, label %383, label %416

383:                                              ; preds = %379
  %384 = load ptr, ptr %9, align 8, !tbaa !5
  %385 = load ptr, ptr %11, align 8, !tbaa !5
  %386 = ptrtoint ptr %384 to i64
  %387 = ptrtoint ptr %385 to i64
  %388 = sub i64 %386, %387
  %389 = add nsw i64 %388, 1
  %390 = call noalias ptr @calloc(i64 noundef %389, i64 noundef 1) #10
  %391 = load ptr, ptr %3, align 8, !tbaa !5
  %392 = getelementptr inbounds %struct.qhT, ptr %391, i32 0, i32 106
  store ptr %390, ptr %392, align 8, !tbaa !38
  %393 = icmp ne ptr %390, null
  br i1 %393, label %400, label %394

394:                                              ; preds = %383
  %395 = load ptr, ptr %3, align 8, !tbaa !5
  %396 = load ptr, ptr %3, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.qhT, ptr %396, i32 0, i32 158
  %398 = load ptr, ptr %397, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %395, ptr noundef %398, i32 noundef 6034, ptr noundef @.str.34)
  %399 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_errexit(ptr noundef %399, i32 noundef 4, ptr noundef null, ptr noundef null)
  br label %400

400:                                              ; preds = %394, %383
  %401 = load ptr, ptr %3, align 8, !tbaa !5
  %402 = getelementptr inbounds %struct.qhT, ptr %401, i32 0, i32 106
  %403 = load ptr, ptr %402, align 8, !tbaa !38
  %404 = load ptr, ptr %11, align 8, !tbaa !5
  %405 = load ptr, ptr %9, align 8, !tbaa !5
  %406 = load ptr, ptr %11, align 8, !tbaa !5
  %407 = ptrtoint ptr %405 to i64
  %408 = ptrtoint ptr %406 to i64
  %409 = sub i64 %407, %408
  %410 = call ptr @strncpy(ptr noundef %403, ptr noundef %404, i64 noundef %409) #7
  %411 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %411, ptr noundef @.str.35, ptr noundef null, ptr noundef null)
  %412 = load ptr, ptr %3, align 8, !tbaa !5
  %413 = load ptr, ptr %3, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.qhT, ptr %413, i32 0, i32 106
  %415 = load ptr, ptr %414, align 8, !tbaa !38
  call void @qh_option(ptr noundef %412, ptr noundef %415, ptr noundef null, ptr noundef null)
  br label %418

416:                                              ; preds = %379
  %417 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %417, ptr noundef @.str.36, ptr noundef null, ptr noundef null)
  br label %418

418:                                              ; preds = %416, %400
  br label %2215

419:                                              ; preds = %131
  %420 = call ptr @__ctype_b_loc() #9
  %421 = load ptr, ptr %420, align 8, !tbaa !5
  %422 = load ptr, ptr %8, align 8, !tbaa !5
  %423 = load i8, ptr %422, align 1, !tbaa !18
  %424 = sext i8 %423 to i32
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds i16, ptr %421, i64 %425
  %427 = load i16, ptr %426, align 2, !tbaa !19
  %428 = zext i16 %427 to i32
  %429 = and i32 %428, 2048
  %430 = icmp ne i32 %429, 0
  br i1 %430, label %438, label %431

431:                                              ; preds = %419
  %432 = load ptr, ptr %3, align 8, !tbaa !5
  %433 = load ptr, ptr %3, align 8, !tbaa !5
  %434 = getelementptr inbounds %struct.qhT, ptr %433, i32 0, i32 158
  %435 = load ptr, ptr %434, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %432, ptr noundef %435, i32 noundef 7007, ptr noundef @.str.37)
  %436 = load ptr, ptr %8, align 8, !tbaa !5
  %437 = getelementptr inbounds i8, ptr %436, i64 -1
  store ptr %437, ptr %13, align 8, !tbaa !5
  br label %448

438:                                              ; preds = %419
  %439 = load ptr, ptr %8, align 8, !tbaa !5
  %440 = call double @qh_strtod(ptr noundef %439, ptr noundef %8)
  %441 = load ptr, ptr %3, align 8, !tbaa !5
  %442 = getelementptr inbounds %struct.qhT, ptr %441, i32 0, i32 73
  store double %440, ptr %442, align 8, !tbaa !39
  %443 = load ptr, ptr %3, align 8, !tbaa !5
  %444 = load ptr, ptr %3, align 8, !tbaa !5
  %445 = getelementptr inbounds %struct.qhT, ptr %444, i32 0, i32 73
  call void @qh_option(ptr noundef %443, ptr noundef @.str.38, ptr noundef null, ptr noundef %445)
  %446 = load ptr, ptr %3, align 8, !tbaa !5
  %447 = getelementptr inbounds %struct.qhT, ptr %446, i32 0, i32 72
  store i32 1, ptr %447, align 4, !tbaa !40
  br label %448

448:                                              ; preds = %438, %431
  br label %2215

449:                                              ; preds = %131
  %450 = call ptr @__ctype_b_loc() #9
  %451 = load ptr, ptr %450, align 8, !tbaa !5
  %452 = load ptr, ptr %8, align 8, !tbaa !5
  %453 = load i8, ptr %452, align 1, !tbaa !18
  %454 = sext i8 %453 to i32
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds i16, ptr %451, i64 %455
  %457 = load i16, ptr %456, align 2, !tbaa !19
  %458 = zext i16 %457 to i32
  %459 = and i32 %458, 2048
  %460 = icmp ne i32 %459, 0
  br i1 %460, label %473, label %461

461:                                              ; preds = %449
  %462 = load ptr, ptr %8, align 8, !tbaa !5
  %463 = load i8, ptr %462, align 1, !tbaa !18
  %464 = sext i8 %463 to i32
  %465 = icmp ne i32 %464, 45
  br i1 %465, label %466, label %473

466:                                              ; preds = %461
  %467 = load ptr, ptr %3, align 8, !tbaa !5
  %468 = load ptr, ptr %3, align 8, !tbaa !5
  %469 = getelementptr inbounds %struct.qhT, ptr %468, i32 0, i32 158
  %470 = load ptr, ptr %469, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %467, ptr noundef %470, i32 noundef 7008, ptr noundef @.str.39)
  %471 = load ptr, ptr %8, align 8, !tbaa !5
  %472 = getelementptr inbounds i8, ptr %471, i64 -1
  store ptr %472, ptr %13, align 8, !tbaa !5
  br label %481

473:                                              ; preds = %461, %449
  %474 = load ptr, ptr %8, align 8, !tbaa !5
  %475 = call double @qh_strtod(ptr noundef %474, ptr noundef %8)
  %476 = load ptr, ptr %3, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.qhT, ptr %476, i32 0, i32 44
  store double %475, ptr %477, align 8, !tbaa !41
  %478 = load ptr, ptr %3, align 8, !tbaa !5
  %479 = load ptr, ptr %3, align 8, !tbaa !5
  %480 = getelementptr inbounds %struct.qhT, ptr %479, i32 0, i32 44
  call void @qh_option(ptr noundef %478, ptr noundef @.str.40, ptr noundef null, ptr noundef %480)
  br label %481

481:                                              ; preds = %473, %466
  br label %2215

482:                                              ; preds = %131
  %483 = call ptr @__ctype_b_loc() #9
  %484 = load ptr, ptr %483, align 8, !tbaa !5
  %485 = load ptr, ptr %8, align 8, !tbaa !5
  %486 = load i8, ptr %485, align 1, !tbaa !18
  %487 = sext i8 %486 to i32
  %488 = sext i32 %487 to i64
  %489 = getelementptr inbounds i16, ptr %484, i64 %488
  %490 = load i16, ptr %489, align 2, !tbaa !19
  %491 = zext i16 %490 to i32
  %492 = and i32 %491, 2048
  %493 = icmp ne i32 %492, 0
  br i1 %493, label %506, label %494

494:                                              ; preds = %482
  %495 = load ptr, ptr %8, align 8, !tbaa !5
  %496 = load i8, ptr %495, align 1, !tbaa !18
  %497 = sext i8 %496 to i32
  %498 = icmp ne i32 %497, 45
  br i1 %498, label %499, label %506

499:                                              ; preds = %494
  %500 = load ptr, ptr %3, align 8, !tbaa !5
  %501 = load ptr, ptr %3, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct.qhT, ptr %501, i32 0, i32 158
  %503 = load ptr, ptr %502, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %500, ptr noundef %503, i32 noundef 7009, ptr noundef @.str.41)
  %504 = load ptr, ptr %8, align 8, !tbaa !5
  %505 = getelementptr inbounds i8, ptr %504, i64 -1
  store ptr %505, ptr %13, align 8, !tbaa !5
  br label %514

506:                                              ; preds = %494, %482
  %507 = load ptr, ptr %8, align 8, !tbaa !5
  %508 = call double @qh_strtod(ptr noundef %507, ptr noundef %8)
  %509 = load ptr, ptr %3, align 8, !tbaa !5
  %510 = getelementptr inbounds %struct.qhT, ptr %509, i32 0, i32 35
  store double %508, ptr %510, align 8, !tbaa !42
  %511 = load ptr, ptr %3, align 8, !tbaa !5
  %512 = load ptr, ptr %3, align 8, !tbaa !5
  %513 = getelementptr inbounds %struct.qhT, ptr %512, i32 0, i32 35
  call void @qh_option(ptr noundef %511, ptr noundef @.str.42, ptr noundef null, ptr noundef %513)
  br label %514

514:                                              ; preds = %506, %499
  br label %2215

515:                                              ; preds = %131
  %516 = load ptr, ptr %8, align 8, !tbaa !5
  %517 = load i8, ptr %516, align 1, !tbaa !18
  %518 = sext i8 %517 to i32
  %519 = icmp eq i32 %518, 45
  br i1 %519, label %520, label %528

520:                                              ; preds = %515
  %521 = load ptr, ptr %3, align 8, !tbaa !5
  %522 = load ptr, ptr %3, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.qhT, ptr %522, i32 0, i32 158
  %524 = load ptr, ptr %523, align 8, !tbaa !17
  %525 = load ptr, ptr %8, align 8, !tbaa !5
  %526 = getelementptr inbounds i8, ptr %525, i64 -1
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %521, ptr noundef %524, i32 noundef 6365, ptr noundef @.str.43, ptr noundef %526)
  %527 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_errexit(ptr noundef %527, i32 noundef 1, ptr noundef null, ptr noundef null)
  br label %558

528:                                              ; preds = %515
  %529 = call ptr @__ctype_b_loc() #9
  %530 = load ptr, ptr %529, align 8, !tbaa !5
  %531 = load ptr, ptr %8, align 8, !tbaa !5
  %532 = load i8, ptr %531, align 1, !tbaa !18
  %533 = sext i8 %532 to i32
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds i16, ptr %530, i64 %534
  %536 = load i16, ptr %535, align 2, !tbaa !19
  %537 = zext i16 %536 to i32
  %538 = and i32 %537, 2048
  %539 = icmp ne i32 %538, 0
  br i1 %539, label %547, label %540

540:                                              ; preds = %528
  %541 = load ptr, ptr %3, align 8, !tbaa !5
  %542 = load ptr, ptr %3, align 8, !tbaa !5
  %543 = getelementptr inbounds %struct.qhT, ptr %542, i32 0, i32 158
  %544 = load ptr, ptr %543, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %541, ptr noundef %544, i32 noundef 7011, ptr noundef @.str.44)
  %545 = load ptr, ptr %8, align 8, !tbaa !5
  %546 = getelementptr inbounds i8, ptr %545, i64 -1
  store ptr %546, ptr %13, align 8, !tbaa !5
  br label %557

547:                                              ; preds = %528
  %548 = load ptr, ptr %8, align 8, !tbaa !5
  %549 = call double @qh_strtod(ptr noundef %548, ptr noundef %8)
  %550 = load ptr, ptr %3, align 8, !tbaa !5
  %551 = getelementptr inbounds %struct.qhT, ptr %550, i32 0, i32 6
  store double %549, ptr %551, align 8, !tbaa !43
  %552 = load ptr, ptr %3, align 8, !tbaa !5
  %553 = load ptr, ptr %3, align 8, !tbaa !5
  %554 = getelementptr inbounds %struct.qhT, ptr %553, i32 0, i32 6
  call void @qh_option(ptr noundef %552, ptr noundef @.str.45, ptr noundef null, ptr noundef %554)
  %555 = load ptr, ptr %3, align 8, !tbaa !5
  %556 = getelementptr inbounds %struct.qhT, ptr %555, i32 0, i32 5
  store i32 1, ptr %556, align 4, !tbaa !44
  br label %557

557:                                              ; preds = %547, %540
  br label %558

558:                                              ; preds = %557, %520
  br label %2215

559:                                              ; preds = %131
  br label %560

560:                                              ; preds = %708, %559
  %561 = load ptr, ptr %8, align 8, !tbaa !5
  %562 = load i8, ptr %561, align 1, !tbaa !18
  %563 = sext i8 %562 to i32
  %564 = icmp ne i32 %563, 0
  br i1 %564, label %565, label %578

565:                                              ; preds = %560
  %566 = call ptr @__ctype_b_loc() #9
  %567 = load ptr, ptr %566, align 8, !tbaa !5
  %568 = load ptr, ptr %8, align 8, !tbaa !5
  %569 = load i8, ptr %568, align 1, !tbaa !18
  %570 = sext i8 %569 to i32
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds i16, ptr %567, i64 %571
  %573 = load i16, ptr %572, align 2, !tbaa !19
  %574 = zext i16 %573 to i32
  %575 = and i32 %574, 8192
  %576 = icmp ne i32 %575, 0
  %577 = xor i1 %576, true
  br label %578

578:                                              ; preds = %565, %560
  %579 = phi i1 [ false, %560 ], [ %577, %565 ]
  br i1 %579, label %580, label %709

580:                                              ; preds = %578
  %581 = load ptr, ptr %8, align 8, !tbaa !5
  %582 = getelementptr inbounds i8, ptr %581, i32 1
  store ptr %582, ptr %8, align 8, !tbaa !5
  %583 = load i8, ptr %581, align 1, !tbaa !18
  %584 = sext i8 %583 to i32
  switch i32 %584, label %672 [
    i32 97, label %585
    i32 65, label %590
    i32 99, label %594
    i32 67, label %597
    i32 100, label %600
    i32 68, label %604
    i32 70, label %608
    i32 105, label %611
    i32 73, label %614
    i32 109, label %617
    i32 77, label %620
    i32 110, label %623
    i32 78, label %626
    i32 111, label %629
    i32 79, label %632
    i32 112, label %644
    i32 80, label %647
    i32 81, label %650
    i32 115, label %653
    i32 83, label %656
    i32 116, label %661
    i32 118, label %664
    i32 86, label %666
    i32 120, label %669
  ]

585:                                              ; preds = %580
  %586 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %586, ptr noundef @.str.46, ptr noundef null, ptr noundef null)
  %587 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %587, i32 noundef 1)
  %588 = load ptr, ptr %3, align 8, !tbaa !5
  %589 = getelementptr inbounds %struct.qhT, ptr %588, i32 0, i32 108
  store i32 1, ptr %589, align 8, !tbaa !45
  br label %708

590:                                              ; preds = %580
  %591 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %591, ptr noundef @.str.47, ptr noundef null, ptr noundef null)
  %592 = load ptr, ptr %3, align 8, !tbaa !5
  %593 = getelementptr inbounds %struct.qhT, ptr %592, i32 0, i32 108
  store i32 1, ptr %593, align 8, !tbaa !45
  br label %708

594:                                              ; preds = %580
  %595 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %595, ptr noundef @.str.48, ptr noundef null, ptr noundef null)
  %596 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %596, i32 noundef 3)
  br label %708

597:                                              ; preds = %580
  %598 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %598, ptr noundef @.str.49, ptr noundef null, ptr noundef null)
  %599 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %599, i32 noundef 4)
  br label %708

600:                                              ; preds = %580
  %601 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %601, ptr noundef @.str.50, ptr noundef null, ptr noundef null)
  %602 = load ptr, ptr %3, align 8, !tbaa !5
  %603 = getelementptr inbounds %struct.qhT, ptr %602, i32 0, i32 11
  store i32 1, ptr %603, align 8, !tbaa !46
  br label %708

604:                                              ; preds = %580
  %605 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %605, ptr noundef @.str.51, ptr noundef null, ptr noundef null)
  %606 = load ptr, ptr %3, align 8, !tbaa !5
  %607 = getelementptr inbounds %struct.qhT, ptr %606, i32 0, i32 12
  store i32 1, ptr %607, align 4, !tbaa !47
  br label %708

608:                                              ; preds = %580
  %609 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %609, ptr noundef @.str.52, ptr noundef null, ptr noundef null)
  %610 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %610, i32 noundef 6)
  br label %708

611:                                              ; preds = %580
  %612 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %612, ptr noundef @.str.53, ptr noundef null, ptr noundef null)
  %613 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %613, i32 noundef 9)
  br label %708

614:                                              ; preds = %580
  %615 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %615, ptr noundef @.str.54, ptr noundef null, ptr noundef null)
  %616 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %616, i32 noundef 8)
  br label %708

617:                                              ; preds = %580
  %618 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %618, ptr noundef @.str.55, ptr noundef null, ptr noundef null)
  %619 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %619, i32 noundef 16)
  br label %708

620:                                              ; preds = %580
  %621 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %621, ptr noundef @.str.56, ptr noundef null, ptr noundef null)
  %622 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %622, i32 noundef 13)
  br label %708

623:                                              ; preds = %580
  %624 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %624, ptr noundef @.str.57, ptr noundef null, ptr noundef null)
  %625 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %625, i32 noundef 10)
  br label %708

626:                                              ; preds = %580
  %627 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %627, ptr noundef @.str.58, ptr noundef null, ptr noundef null)
  %628 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %628, i32 noundef 27)
  br label %708

629:                                              ; preds = %580
  %630 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %630, ptr noundef @.str.59, ptr noundef null, ptr noundef null)
  %631 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %631, i32 noundef 12)
  br label %708

632:                                              ; preds = %580
  %633 = load ptr, ptr %3, align 8, !tbaa !5
  %634 = getelementptr inbounds %struct.qhT, ptr %633, i32 0, i32 61
  %635 = load i32, ptr %634, align 8, !tbaa !48
  %636 = icmp ne i32 %635, 0
  br i1 %636, label %637, label %640

637:                                              ; preds = %632
  %638 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %638, ptr noundef @.str.60, ptr noundef null, ptr noundef null)
  %639 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %639, i32 noundef 18)
  br label %643

640:                                              ; preds = %632
  %641 = load ptr, ptr %3, align 8, !tbaa !5
  %642 = getelementptr inbounds %struct.qhT, ptr %641, i32 0, i32 61
  store i32 1, ptr %642, align 8, !tbaa !48
  br label %643

643:                                              ; preds = %640, %637
  br label %708

644:                                              ; preds = %580
  %645 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %645, ptr noundef @.str.61, ptr noundef null, ptr noundef null)
  %646 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %646, i32 noundef 19)
  br label %708

647:                                              ; preds = %580
  %648 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %648, ptr noundef @.str.62, ptr noundef null, ptr noundef null)
  %649 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %649, i32 noundef 20)
  br label %708

650:                                              ; preds = %580
  %651 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %651, ptr noundef @.str.63, ptr noundef null, ptr noundef null)
  %652 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %652, i32 noundef 22)
  br label %708

653:                                              ; preds = %580
  %654 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %654, ptr noundef @.str.64, ptr noundef null, ptr noundef null)
  %655 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %655, i32 noundef 24)
  br label %708

656:                                              ; preds = %580
  %657 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %657, ptr noundef @.str.65, ptr noundef null, ptr noundef null)
  %658 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %658, i32 noundef 23)
  %659 = load ptr, ptr %3, align 8, !tbaa !5
  %660 = getelementptr inbounds %struct.qhT, ptr %659, i32 0, i32 108
  store i32 1, ptr %660, align 8, !tbaa !45
  br label %708

661:                                              ; preds = %580
  %662 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %662, ptr noundef @.str.66, ptr noundef null, ptr noundef null)
  %663 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %663, i32 noundef 25)
  br label %708

664:                                              ; preds = %580
  %665 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %665, i32 noundef 26)
  br label %708

666:                                              ; preds = %580
  %667 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %667, ptr noundef @.str.67, ptr noundef null, ptr noundef null)
  %668 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %668, i32 noundef 2)
  br label %708

669:                                              ; preds = %580
  %670 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %670, ptr noundef @.str.68, ptr noundef null, ptr noundef null)
  %671 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %671, i32 noundef 28)
  br label %708

672:                                              ; preds = %580
  %673 = load ptr, ptr %8, align 8, !tbaa !5
  %674 = getelementptr inbounds i8, ptr %673, i32 -1
  store ptr %674, ptr %8, align 8, !tbaa !5
  %675 = load ptr, ptr %3, align 8, !tbaa !5
  %676 = load ptr, ptr %3, align 8, !tbaa !5
  %677 = getelementptr inbounds %struct.qhT, ptr %676, i32 0, i32 158
  %678 = load ptr, ptr %677, align 8, !tbaa !17
  %679 = load ptr, ptr %8, align 8, !tbaa !5
  %680 = getelementptr inbounds i8, ptr %679, i64 0
  %681 = load i8, ptr %680, align 1, !tbaa !18
  %682 = sext i8 %681 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %675, ptr noundef %678, i32 noundef 7012, ptr noundef @.str.69, i32 noundef %682)
  %683 = load ptr, ptr %8, align 8, !tbaa !5
  %684 = getelementptr inbounds i8, ptr %683, i64 -1
  store ptr %684, ptr %13, align 8, !tbaa !5
  br label %685

685:                                              ; preds = %706, %672
  %686 = load ptr, ptr %8, align 8, !tbaa !5
  %687 = getelementptr inbounds i8, ptr %686, i32 1
  store ptr %687, ptr %8, align 8, !tbaa !5
  %688 = load i8, ptr %687, align 1, !tbaa !18
  %689 = sext i8 %688 to i32
  %690 = icmp ne i32 %689, 0
  br i1 %690, label %691, label %704

691:                                              ; preds = %685
  %692 = call ptr @__ctype_b_loc() #9
  %693 = load ptr, ptr %692, align 8, !tbaa !5
  %694 = load ptr, ptr %8, align 8, !tbaa !5
  %695 = load i8, ptr %694, align 1, !tbaa !18
  %696 = sext i8 %695 to i32
  %697 = sext i32 %696 to i64
  %698 = getelementptr inbounds i16, ptr %693, i64 %697
  %699 = load i16, ptr %698, align 2, !tbaa !19
  %700 = zext i16 %699 to i32
  %701 = and i32 %700, 8192
  %702 = icmp ne i32 %701, 0
  %703 = xor i1 %702, true
  br label %704

704:                                              ; preds = %691, %685
  %705 = phi i1 [ false, %685 ], [ %703, %691 ]
  br i1 %705, label %706, label %707

706:                                              ; preds = %704
  br label %685, !llvm.loop !49

707:                                              ; preds = %704
  br label %708

708:                                              ; preds = %707, %669, %666, %664, %661, %656, %653, %650, %647, %644, %643, %629, %626, %623, %620, %617, %614, %611, %608, %604, %600, %597, %594, %590, %585
  br label %560, !llvm.loop !50

709:                                              ; preds = %578
  br label %2215

710:                                              ; preds = %131
  store i32 1, ptr %14, align 4, !tbaa !9
  %711 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_appendprint(ptr noundef %711, i32 noundef 7)
  br label %712

712:                                              ; preds = %856, %710
  %713 = load ptr, ptr %8, align 8, !tbaa !5
  %714 = load i8, ptr %713, align 1, !tbaa !18
  %715 = sext i8 %714 to i32
  %716 = icmp ne i32 %715, 0
  br i1 %716, label %717, label %730

717:                                              ; preds = %712
  %718 = call ptr @__ctype_b_loc() #9
  %719 = load ptr, ptr %718, align 8, !tbaa !5
  %720 = load ptr, ptr %8, align 8, !tbaa !5
  %721 = load i8, ptr %720, align 1, !tbaa !18
  %722 = sext i8 %721 to i32
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds i16, ptr %719, i64 %723
  %725 = load i16, ptr %724, align 2, !tbaa !19
  %726 = zext i16 %725 to i32
  %727 = and i32 %726, 8192
  %728 = icmp ne i32 %727, 0
  %729 = xor i1 %728, true
  br label %730

730:                                              ; preds = %717, %712
  %731 = phi i1 [ false, %712 ], [ %729, %717 ]
  br i1 %731, label %732, label %857

732:                                              ; preds = %730
  %733 = load ptr, ptr %8, align 8, !tbaa !5
  %734 = getelementptr inbounds i8, ptr %733, i32 1
  store ptr %734, ptr %8, align 8, !tbaa !5
  %735 = load i8, ptr %733, align 1, !tbaa !18
  %736 = sext i8 %735 to i32
  switch i32 %736, label %820 [
    i32 97, label %737
    i32 99, label %741
    i32 104, label %745
    i32 105, label %749
    i32 110, label %753
    i32 111, label %757
    i32 112, label %761
    i32 114, label %765
    i32 116, label %769
    i32 118, label %773
    i32 68, label %777
  ]

737:                                              ; preds = %732
  %738 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %738, ptr noundef @.str.70, ptr noundef null, ptr noundef null)
  %739 = load ptr, ptr %3, align 8, !tbaa !5
  %740 = getelementptr inbounds %struct.qhT, ptr %739, i32 0, i32 56
  store i32 1, ptr %740, align 4, !tbaa !51
  br label %856

741:                                              ; preds = %732
  %742 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %742, ptr noundef @.str.71, ptr noundef null, ptr noundef null)
  %743 = load ptr, ptr %3, align 8, !tbaa !5
  %744 = getelementptr inbounds %struct.qhT, ptr %743, i32 0, i32 53
  store i32 1, ptr %744, align 8, !tbaa !52
  br label %856

745:                                              ; preds = %732
  %746 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %746, ptr noundef @.str.72, ptr noundef null, ptr noundef null)
  %747 = load ptr, ptr %3, align 8, !tbaa !5
  %748 = getelementptr inbounds %struct.qhT, ptr %747, i32 0, i32 18
  store i32 1, ptr %748, align 4, !tbaa !53
  br label %856

749:                                              ; preds = %732
  %750 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %750, ptr noundef @.str.73, ptr noundef null, ptr noundef null)
  %751 = load ptr, ptr %3, align 8, !tbaa !5
  %752 = getelementptr inbounds %struct.qhT, ptr %751, i32 0, i32 58
  store i32 1, ptr %752, align 4, !tbaa !54
  br label %856

753:                                              ; preds = %732
  %754 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %754, ptr noundef @.str.74, ptr noundef null, ptr noundef null)
  %755 = load ptr, ptr %3, align 8, !tbaa !5
  %756 = getelementptr inbounds %struct.qhT, ptr %755, i32 0, i32 60
  store i32 1, ptr %756, align 4, !tbaa !55
  br label %856

757:                                              ; preds = %732
  %758 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %758, ptr noundef @.str.75, ptr noundef null, ptr noundef null)
  %759 = load ptr, ptr %3, align 8, !tbaa !5
  %760 = getelementptr inbounds %struct.qhT, ptr %759, i32 0, i32 62
  store i32 1, ptr %760, align 4, !tbaa !56
  br label %856

761:                                              ; preds = %732
  %762 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %762, ptr noundef @.str.76, ptr noundef null, ptr noundef null)
  %763 = load ptr, ptr %3, align 8, !tbaa !5
  %764 = getelementptr inbounds %struct.qhT, ptr %763, i32 0, i32 54
  store i32 1, ptr %764, align 4, !tbaa !57
  br label %856

765:                                              ; preds = %732
  %766 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %766, ptr noundef @.str.77, ptr noundef null, ptr noundef null)
  %767 = load ptr, ptr %3, align 8, !tbaa !5
  %768 = getelementptr inbounds %struct.qhT, ptr %767, i32 0, i32 65
  store i32 1, ptr %768, align 8, !tbaa !58
  br label %856

769:                                              ; preds = %732
  %770 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %770, ptr noundef @.str.78, ptr noundef null, ptr noundef null)
  %771 = load ptr, ptr %3, align 8, !tbaa !5
  %772 = getelementptr inbounds %struct.qhT, ptr %771, i32 0, i32 69
  store i32 1, ptr %772, align 8, !tbaa !59
  br label %856

773:                                              ; preds = %732
  %774 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %774, ptr noundef @.str.79, ptr noundef null, ptr noundef null)
  %775 = load ptr, ptr %3, align 8, !tbaa !5
  %776 = getelementptr inbounds %struct.qhT, ptr %775, i32 0, i32 66
  store i32 1, ptr %776, align 4, !tbaa !60
  br label %856

777:                                              ; preds = %732
  %778 = call ptr @__ctype_b_loc() #9
  %779 = load ptr, ptr %778, align 8, !tbaa !5
  %780 = load ptr, ptr %8, align 8, !tbaa !5
  %781 = load i8, ptr %780, align 1, !tbaa !18
  %782 = sext i8 %781 to i32
  %783 = sext i32 %782 to i64
  %784 = getelementptr inbounds i16, ptr %779, i64 %783
  %785 = load i16, ptr %784, align 2, !tbaa !19
  %786 = zext i16 %785 to i32
  %787 = and i32 %786, 2048
  %788 = icmp ne i32 %787, 0
  br i1 %788, label %796, label %789

789:                                              ; preds = %777
  %790 = load ptr, ptr %3, align 8, !tbaa !5
  %791 = load ptr, ptr %3, align 8, !tbaa !5
  %792 = getelementptr inbounds %struct.qhT, ptr %791, i32 0, i32 158
  %793 = load ptr, ptr %792, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %790, ptr noundef %793, i32 noundef 7004, ptr noundef @.str.80)
  %794 = load ptr, ptr %8, align 8, !tbaa !5
  %795 = getelementptr inbounds i8, ptr %794, i64 -2
  store ptr %795, ptr %13, align 8, !tbaa !5
  br label %819

796:                                              ; preds = %777
  %797 = load ptr, ptr %3, align 8, !tbaa !5
  %798 = getelementptr inbounds %struct.qhT, ptr %797, i32 0, i32 19
  %799 = load i32, ptr %798, align 8, !tbaa !61
  %800 = icmp sge i32 %799, 0
  br i1 %800, label %801, label %811

801:                                              ; preds = %796
  %802 = load ptr, ptr %3, align 8, !tbaa !5
  %803 = load ptr, ptr %3, align 8, !tbaa !5
  %804 = getelementptr inbounds %struct.qhT, ptr %803, i32 0, i32 158
  %805 = load ptr, ptr %804, align 8, !tbaa !17
  %806 = load ptr, ptr %3, align 8, !tbaa !5
  %807 = getelementptr inbounds %struct.qhT, ptr %806, i32 0, i32 19
  %808 = load i32, ptr %807, align 8, !tbaa !61
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %802, ptr noundef %805, i32 noundef 7013, ptr noundef @.str.81, i32 noundef %808)
  %809 = load ptr, ptr %8, align 8, !tbaa !5
  %810 = getelementptr inbounds i8, ptr %809, i64 -2
  store ptr %810, ptr %13, align 8, !tbaa !5
  br label %811

811:                                              ; preds = %801, %796
  %812 = load ptr, ptr %8, align 8, !tbaa !5
  %813 = call i32 @qh_strtol(ptr noundef %812, ptr noundef %8)
  %814 = load ptr, ptr %3, align 8, !tbaa !5
  %815 = getelementptr inbounds %struct.qhT, ptr %814, i32 0, i32 19
  store i32 %813, ptr %815, align 8, !tbaa !61
  %816 = load ptr, ptr %3, align 8, !tbaa !5
  %817 = load ptr, ptr %3, align 8, !tbaa !5
  %818 = getelementptr inbounds %struct.qhT, ptr %817, i32 0, i32 19
  call void @qh_option(ptr noundef %816, ptr noundef @.str.82, ptr noundef %818, ptr noundef null)
  br label %819

819:                                              ; preds = %811, %789
  br label %856

820:                                              ; preds = %732
  %821 = load ptr, ptr %8, align 8, !tbaa !5
  %822 = getelementptr inbounds i8, ptr %821, i32 -1
  store ptr %822, ptr %8, align 8, !tbaa !5
  %823 = load ptr, ptr %3, align 8, !tbaa !5
  %824 = load ptr, ptr %3, align 8, !tbaa !5
  %825 = getelementptr inbounds %struct.qhT, ptr %824, i32 0, i32 158
  %826 = load ptr, ptr %825, align 8, !tbaa !17
  %827 = load ptr, ptr %8, align 8, !tbaa !5
  %828 = getelementptr inbounds i8, ptr %827, i64 0
  %829 = load i8, ptr %828, align 1, !tbaa !18
  %830 = sext i8 %829 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %823, ptr noundef %826, i32 noundef 7014, ptr noundef @.str.83, i32 noundef %830)
  %831 = load ptr, ptr %8, align 8, !tbaa !5
  %832 = getelementptr inbounds i8, ptr %831, i64 -1
  store ptr %832, ptr %13, align 8, !tbaa !5
  br label %833

833:                                              ; preds = %854, %820
  %834 = load ptr, ptr %8, align 8, !tbaa !5
  %835 = getelementptr inbounds i8, ptr %834, i32 1
  store ptr %835, ptr %8, align 8, !tbaa !5
  %836 = load i8, ptr %835, align 1, !tbaa !18
  %837 = sext i8 %836 to i32
  %838 = icmp ne i32 %837, 0
  br i1 %838, label %839, label %852

839:                                              ; preds = %833
  %840 = call ptr @__ctype_b_loc() #9
  %841 = load ptr, ptr %840, align 8, !tbaa !5
  %842 = load ptr, ptr %8, align 8, !tbaa !5
  %843 = load i8, ptr %842, align 1, !tbaa !18
  %844 = sext i8 %843 to i32
  %845 = sext i32 %844 to i64
  %846 = getelementptr inbounds i16, ptr %841, i64 %845
  %847 = load i16, ptr %846, align 2, !tbaa !19
  %848 = zext i16 %847 to i32
  %849 = and i32 %848, 8192
  %850 = icmp ne i32 %849, 0
  %851 = xor i1 %850, true
  br label %852

852:                                              ; preds = %839, %833
  %853 = phi i1 [ false, %833 ], [ %851, %839 ]
  br i1 %853, label %854, label %855

854:                                              ; preds = %852
  br label %833, !llvm.loop !62

855:                                              ; preds = %852
  br label %856

856:                                              ; preds = %855, %819, %773, %769, %765, %761, %757, %753, %749, %745, %741, %737
  br label %712, !llvm.loop !63

857:                                              ; preds = %730
  br label %2215

858:                                              ; preds = %131
  br label %859

859:                                              ; preds = %1048, %858
  %860 = load ptr, ptr %8, align 8, !tbaa !5
  %861 = load i8, ptr %860, align 1, !tbaa !18
  %862 = sext i8 %861 to i32
  %863 = icmp ne i32 %862, 0
  br i1 %863, label %864, label %877

864:                                              ; preds = %859
  %865 = call ptr @__ctype_b_loc() #9
  %866 = load ptr, ptr %865, align 8, !tbaa !5
  %867 = load ptr, ptr %8, align 8, !tbaa !5
  %868 = load i8, ptr %867, align 1, !tbaa !18
  %869 = sext i8 %868 to i32
  %870 = sext i32 %869 to i64
  %871 = getelementptr inbounds i16, ptr %866, i64 %870
  %872 = load i16, ptr %871, align 2, !tbaa !19
  %873 = zext i16 %872 to i32
  %874 = and i32 %873, 8192
  %875 = icmp ne i32 %874, 0
  %876 = xor i1 %875, true
  br label %877

877:                                              ; preds = %864, %859
  %878 = phi i1 [ false, %859 ], [ %876, %864 ]
  br i1 %878, label %879, label %1049

879:                                              ; preds = %877
  %880 = load ptr, ptr %8, align 8, !tbaa !5
  %881 = getelementptr inbounds i8, ptr %880, i32 1
  store ptr %881, ptr %8, align 8, !tbaa !5
  %882 = load i8, ptr %880, align 1, !tbaa !18
  %883 = sext i8 %882 to i32
  switch i32 %883, label %1012 [
    i32 100, label %884
    i32 68, label %884
    i32 103, label %908
    i32 71, label %912
    i32 111, label %916
    i32 112, label %920
    i32 65, label %924
    i32 70, label %954
    i32 77, label %984
  ]

884:                                              ; preds = %879, %879
  %885 = load ptr, ptr %8, align 8, !tbaa !5
  %886 = getelementptr inbounds i8, ptr %885, i64 -1
  %887 = load i8, ptr %886, align 1, !tbaa !18
  store i8 %887, ptr %12, align 1, !tbaa !18
  %888 = load ptr, ptr %8, align 8, !tbaa !5
  %889 = call i32 @qh_strtol(ptr noundef %888, ptr noundef %8)
  store i32 %889, ptr %6, align 4, !tbaa !9
  store double 0.000000e+00, ptr %16, align 8, !tbaa !64
  %890 = load ptr, ptr %8, align 8, !tbaa !5
  %891 = load i8, ptr %890, align 1, !tbaa !18
  %892 = sext i8 %891 to i32
  %893 = icmp eq i32 %892, 58
  br i1 %893, label %894, label %899

894:                                              ; preds = %884
  %895 = load ptr, ptr %8, align 8, !tbaa !5
  %896 = getelementptr inbounds i8, ptr %895, i32 1
  store ptr %896, ptr %8, align 8, !tbaa !5
  %897 = load ptr, ptr %8, align 8, !tbaa !5
  %898 = call double @qh_strtod(ptr noundef %897, ptr noundef %8)
  store double %898, ptr %16, align 8, !tbaa !64
  br label %899

899:                                              ; preds = %894, %884
  %900 = load i8, ptr %12, align 1, !tbaa !18
  %901 = sext i8 %900 to i32
  %902 = icmp eq i32 %901, 100
  br i1 %902, label %903, label %905

903:                                              ; preds = %899
  %904 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %904, ptr noundef @.str.84, ptr noundef %6, ptr noundef %16)
  br label %907

905:                                              ; preds = %899
  %906 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %906, ptr noundef @.str.85, ptr noundef %6, ptr noundef %16)
  br label %907

907:                                              ; preds = %905, %903
  br label %1048

908:                                              ; preds = %879
  %909 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %909, ptr noundef @.str.86, ptr noundef null, ptr noundef null)
  %910 = load ptr, ptr %3, align 8, !tbaa !5
  %911 = getelementptr inbounds %struct.qhT, ptr %910, i32 0, i32 57
  store i32 1, ptr %911, align 8, !tbaa !65
  br label %1048

912:                                              ; preds = %879
  %913 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %913, ptr noundef @.str.87, ptr noundef null, ptr noundef null)
  %914 = load ptr, ptr %3, align 8, !tbaa !5
  %915 = getelementptr inbounds %struct.qhT, ptr %914, i32 0, i32 59
  store i32 1, ptr %915, align 8, !tbaa !66
  br label %1048

916:                                              ; preds = %879
  %917 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %917, ptr noundef @.str.88, ptr noundef null, ptr noundef null)
  %918 = load ptr, ptr %3, align 8, !tbaa !5
  %919 = getelementptr inbounds %struct.qhT, ptr %918, i32 0, i32 21
  store i32 1, ptr %919, align 8, !tbaa !67
  br label %1048

920:                                              ; preds = %879
  %921 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %921, ptr noundef @.str.89, ptr noundef null, ptr noundef null)
  %922 = load ptr, ptr %3, align 8, !tbaa !5
  %923 = getelementptr inbounds %struct.qhT, ptr %922, i32 0, i32 63
  store i32 0, ptr %923, align 8, !tbaa !68
  br label %1048

924:                                              ; preds = %879
  %925 = call ptr @__ctype_b_loc() #9
  %926 = load ptr, ptr %925, align 8, !tbaa !5
  %927 = load ptr, ptr %8, align 8, !tbaa !5
  %928 = load i8, ptr %927, align 1, !tbaa !18
  %929 = sext i8 %928 to i32
  %930 = sext i32 %929 to i64
  %931 = getelementptr inbounds i16, ptr %926, i64 %930
  %932 = load i16, ptr %931, align 2, !tbaa !19
  %933 = zext i16 %932 to i32
  %934 = and i32 %933, 2048
  %935 = icmp ne i32 %934, 0
  br i1 %935, label %943, label %936

936:                                              ; preds = %924
  %937 = load ptr, ptr %3, align 8, !tbaa !5
  %938 = load ptr, ptr %3, align 8, !tbaa !5
  %939 = getelementptr inbounds %struct.qhT, ptr %938, i32 0, i32 158
  %940 = load ptr, ptr %939, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %937, ptr noundef %940, i32 noundef 7006, ptr noundef @.str.90)
  %941 = load ptr, ptr %8, align 8, !tbaa !5
  %942 = getelementptr inbounds i8, ptr %941, i64 -2
  store ptr %942, ptr %13, align 8, !tbaa !5
  br label %953

943:                                              ; preds = %924
  %944 = load ptr, ptr %8, align 8, !tbaa !5
  %945 = call i32 @qh_strtol(ptr noundef %944, ptr noundef %8)
  %946 = load ptr, ptr %3, align 8, !tbaa !5
  %947 = getelementptr inbounds %struct.qhT, ptr %946, i32 0, i32 30
  store i32 %945, ptr %947, align 4, !tbaa !69
  %948 = load ptr, ptr %3, align 8, !tbaa !5
  %949 = load ptr, ptr %3, align 8, !tbaa !5
  %950 = getelementptr inbounds %struct.qhT, ptr %949, i32 0, i32 30
  call void @qh_option(ptr noundef %948, ptr noundef @.str.91, ptr noundef %950, ptr noundef null)
  %951 = load ptr, ptr %3, align 8, !tbaa !5
  %952 = getelementptr inbounds %struct.qhT, ptr %951, i32 0, i32 108
  store i32 1, ptr %952, align 8, !tbaa !45
  br label %953

953:                                              ; preds = %943, %936
  br label %1048

954:                                              ; preds = %879
  %955 = call ptr @__ctype_b_loc() #9
  %956 = load ptr, ptr %955, align 8, !tbaa !5
  %957 = load ptr, ptr %8, align 8, !tbaa !5
  %958 = load i8, ptr %957, align 1, !tbaa !18
  %959 = sext i8 %958 to i32
  %960 = sext i32 %959 to i64
  %961 = getelementptr inbounds i16, ptr %956, i64 %960
  %962 = load i16, ptr %961, align 2, !tbaa !19
  %963 = zext i16 %962 to i32
  %964 = and i32 %963, 2048
  %965 = icmp ne i32 %964, 0
  br i1 %965, label %973, label %966

966:                                              ; preds = %954
  %967 = load ptr, ptr %3, align 8, !tbaa !5
  %968 = load ptr, ptr %3, align 8, !tbaa !5
  %969 = getelementptr inbounds %struct.qhT, ptr %968, i32 0, i32 158
  %970 = load ptr, ptr %969, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %967, ptr noundef %970, i32 noundef 7010, ptr noundef @.str.92)
  %971 = load ptr, ptr %8, align 8, !tbaa !5
  %972 = getelementptr inbounds i8, ptr %971, i64 -2
  store ptr %972, ptr %13, align 8, !tbaa !5
  br label %983

973:                                              ; preds = %954
  %974 = load ptr, ptr %8, align 8, !tbaa !5
  %975 = call double @qh_strtod(ptr noundef %974, ptr noundef %8)
  %976 = load ptr, ptr %3, align 8, !tbaa !5
  %977 = getelementptr inbounds %struct.qhT, ptr %976, i32 0, i32 34
  store double %975, ptr %977, align 8, !tbaa !70
  %978 = load ptr, ptr %3, align 8, !tbaa !5
  %979 = load ptr, ptr %3, align 8, !tbaa !5
  %980 = getelementptr inbounds %struct.qhT, ptr %979, i32 0, i32 34
  call void @qh_option(ptr noundef %978, ptr noundef @.str.93, ptr noundef null, ptr noundef %980)
  %981 = load ptr, ptr %3, align 8, !tbaa !5
  %982 = getelementptr inbounds %struct.qhT, ptr %981, i32 0, i32 108
  store i32 1, ptr %982, align 8, !tbaa !45
  br label %983

983:                                              ; preds = %973, %966
  br label %1048

984:                                              ; preds = %879
  %985 = call ptr @__ctype_b_loc() #9
  %986 = load ptr, ptr %985, align 8, !tbaa !5
  %987 = load ptr, ptr %8, align 8, !tbaa !5
  %988 = load i8, ptr %987, align 1, !tbaa !18
  %989 = sext i8 %988 to i32
  %990 = sext i32 %989 to i64
  %991 = getelementptr inbounds i16, ptr %986, i64 %990
  %992 = load i16, ptr %991, align 2, !tbaa !19
  %993 = zext i16 %992 to i32
  %994 = and i32 %993, 2048
  %995 = icmp ne i32 %994, 0
  br i1 %995, label %1003, label %996

996:                                              ; preds = %984
  %997 = load ptr, ptr %3, align 8, !tbaa !5
  %998 = load ptr, ptr %3, align 8, !tbaa !5
  %999 = getelementptr inbounds %struct.qhT, ptr %998, i32 0, i32 158
  %1000 = load ptr, ptr %999, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %997, ptr noundef %1000, i32 noundef 7090, ptr noundef @.str.94)
  %1001 = load ptr, ptr %8, align 8, !tbaa !5
  %1002 = getelementptr inbounds i8, ptr %1001, i64 -2
  store ptr %1002, ptr %13, align 8, !tbaa !5
  br label %1011

1003:                                             ; preds = %984
  %1004 = load ptr, ptr %8, align 8, !tbaa !5
  %1005 = call i32 @qh_strtol(ptr noundef %1004, ptr noundef %8)
  %1006 = load ptr, ptr %3, align 8, !tbaa !5
  %1007 = getelementptr inbounds %struct.qhT, ptr %1006, i32 0, i32 33
  store i32 %1005, ptr %1007, align 8, !tbaa !71
  %1008 = load ptr, ptr %3, align 8, !tbaa !5
  %1009 = load ptr, ptr %3, align 8, !tbaa !5
  %1010 = getelementptr inbounds %struct.qhT, ptr %1009, i32 0, i32 33
  call void @qh_option(ptr noundef %1008, ptr noundef @.str.95, ptr noundef %1010, ptr noundef null)
  br label %1011

1011:                                             ; preds = %1003, %996
  br label %1048

1012:                                             ; preds = %879
  %1013 = load ptr, ptr %8, align 8, !tbaa !5
  %1014 = getelementptr inbounds i8, ptr %1013, i32 -1
  store ptr %1014, ptr %8, align 8, !tbaa !5
  %1015 = load ptr, ptr %3, align 8, !tbaa !5
  %1016 = load ptr, ptr %3, align 8, !tbaa !5
  %1017 = getelementptr inbounds %struct.qhT, ptr %1016, i32 0, i32 158
  %1018 = load ptr, ptr %1017, align 8, !tbaa !17
  %1019 = load ptr, ptr %8, align 8, !tbaa !5
  %1020 = getelementptr inbounds i8, ptr %1019, i64 0
  %1021 = load i8, ptr %1020, align 1, !tbaa !18
  %1022 = sext i8 %1021 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1015, ptr noundef %1018, i32 noundef 7015, ptr noundef @.str.96, i32 noundef %1022)
  %1023 = load ptr, ptr %8, align 8, !tbaa !5
  %1024 = getelementptr inbounds i8, ptr %1023, i64 -1
  store ptr %1024, ptr %13, align 8, !tbaa !5
  br label %1025

1025:                                             ; preds = %1046, %1012
  %1026 = load ptr, ptr %8, align 8, !tbaa !5
  %1027 = getelementptr inbounds i8, ptr %1026, i32 1
  store ptr %1027, ptr %8, align 8, !tbaa !5
  %1028 = load i8, ptr %1027, align 1, !tbaa !18
  %1029 = sext i8 %1028 to i32
  %1030 = icmp ne i32 %1029, 0
  br i1 %1030, label %1031, label %1044

1031:                                             ; preds = %1025
  %1032 = call ptr @__ctype_b_loc() #9
  %1033 = load ptr, ptr %1032, align 8, !tbaa !5
  %1034 = load ptr, ptr %8, align 8, !tbaa !5
  %1035 = load i8, ptr %1034, align 1, !tbaa !18
  %1036 = sext i8 %1035 to i32
  %1037 = sext i32 %1036 to i64
  %1038 = getelementptr inbounds i16, ptr %1033, i64 %1037
  %1039 = load i16, ptr %1038, align 2, !tbaa !19
  %1040 = zext i16 %1039 to i32
  %1041 = and i32 %1040, 8192
  %1042 = icmp ne i32 %1041, 0
  %1043 = xor i1 %1042, true
  br label %1044

1044:                                             ; preds = %1031, %1025
  %1045 = phi i1 [ false, %1025 ], [ %1043, %1031 ]
  br i1 %1045, label %1046, label %1047

1046:                                             ; preds = %1044
  br label %1025, !llvm.loop !72

1047:                                             ; preds = %1044
  br label %1048

1048:                                             ; preds = %1047, %1011, %983, %953, %920, %916, %912, %908, %907
  br label %859, !llvm.loop !73

1049:                                             ; preds = %877
  br label %2215

1050:                                             ; preds = %131
  store i32 -1, ptr %7, align 4, !tbaa !9
  br label %1051

1051:                                             ; preds = %1656, %1050
  %1052 = load ptr, ptr %8, align 8, !tbaa !5
  %1053 = load i8, ptr %1052, align 1, !tbaa !18
  %1054 = sext i8 %1053 to i32
  %1055 = icmp ne i32 %1054, 0
  br i1 %1055, label %1056, label %1069

1056:                                             ; preds = %1051
  %1057 = call ptr @__ctype_b_loc() #9
  %1058 = load ptr, ptr %1057, align 8, !tbaa !5
  %1059 = load ptr, ptr %8, align 8, !tbaa !5
  %1060 = load i8, ptr %1059, align 1, !tbaa !18
  %1061 = sext i8 %1060 to i32
  %1062 = sext i32 %1061 to i64
  %1063 = getelementptr inbounds i16, ptr %1058, i64 %1062
  %1064 = load i16, ptr %1063, align 2, !tbaa !19
  %1065 = zext i16 %1064 to i32
  %1066 = and i32 %1065, 8192
  %1067 = icmp ne i32 %1066, 0
  %1068 = xor i1 %1067, true
  br label %1069

1069:                                             ; preds = %1056, %1051
  %1070 = phi i1 [ false, %1051 ], [ %1068, %1056 ]
  br i1 %1070, label %1071, label %1657

1071:                                             ; preds = %1069
  %1072 = load ptr, ptr %8, align 8, !tbaa !5
  %1073 = getelementptr inbounds i8, ptr %1072, i32 1
  store ptr %1073, ptr %8, align 8, !tbaa !5
  %1074 = load i8, ptr %1072, align 1, !tbaa !18
  %1075 = sext i8 %1074 to i32
  switch i32 %1075, label %1620 [
    i32 97, label %1076
    i32 98, label %1080
    i32 66, label %1080
    i32 99, label %1231
    i32 102, label %1235
    i32 103, label %1239
    i32 105, label %1243
    i32 109, label %1247
    i32 114, label %1251
    i32 115, label %1255
    i32 116, label %1259
    i32 84, label %1263
    i32 117, label %1292
    i32 118, label %1296
    i32 120, label %1300
    i32 122, label %1304
    i32 48, label %1308
    i32 49, label %1312
    i32 50, label %1392
    i32 51, label %1396
    i32 52, label %1429
    i32 53, label %1433
    i32 54, label %1437
    i32 55, label %1441
    i32 56, label %1445
    i32 57, label %1449
    i32 71, label %1453
    i32 74, label %1502
    i32 82, label %1531
    i32 86, label %1572
    i32 119, label %1616
  ]

1076:                                             ; preds = %1071
  %1077 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1077, ptr noundef @.str.97, ptr noundef null, ptr noundef null)
  %1078 = load ptr, ptr %3, align 8, !tbaa !5
  %1079 = getelementptr inbounds %struct.qhT, ptr %1078, i32 0, i32 1
  store i32 1, ptr %1079, align 4, !tbaa !74
  br label %1656

1080:                                             ; preds = %1071, %1071
  %1081 = load ptr, ptr %8, align 8, !tbaa !5
  %1082 = getelementptr inbounds i8, ptr %1081, i64 -1
  %1083 = load i8, ptr %1082, align 1, !tbaa !18
  store i8 %1083, ptr %12, align 1, !tbaa !18
  %1084 = load i8, ptr %12, align 1, !tbaa !18
  %1085 = sext i8 %1084 to i32
  %1086 = icmp eq i32 %1085, 98
  br i1 %1086, label %1087, label %1098

1087:                                             ; preds = %1080
  %1088 = load ptr, ptr %8, align 8, !tbaa !5
  %1089 = load i8, ptr %1088, align 1, !tbaa !18
  %1090 = sext i8 %1089 to i32
  %1091 = icmp eq i32 %1090, 66
  br i1 %1091, label %1092, label %1098

1092:                                             ; preds = %1087
  %1093 = load ptr, ptr %8, align 8, !tbaa !5
  %1094 = getelementptr inbounds i8, ptr %1093, i32 1
  store ptr %1094, ptr %8, align 8, !tbaa !5
  store double 5.000000e-01, ptr %16, align 8, !tbaa !64
  %1095 = load ptr, ptr %3, align 8, !tbaa !5
  %1096 = getelementptr inbounds %struct.qhT, ptr %1095, i32 0, i32 81
  store i32 1, ptr %1096, align 4, !tbaa !75
  %1097 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1097, ptr noundef @.str.98, ptr noundef null, ptr noundef %16)
  br label %1656

1098:                                             ; preds = %1087, %1080
  %1099 = load i8, ptr %12, align 1, !tbaa !18
  %1100 = sext i8 %1099 to i32
  %1101 = icmp eq i32 %1100, 98
  br i1 %1101, label %1102, label %1113

1102:                                             ; preds = %1098
  %1103 = load ptr, ptr %8, align 8, !tbaa !5
  %1104 = load i8, ptr %1103, align 1, !tbaa !18
  %1105 = sext i8 %1104 to i32
  %1106 = icmp eq i32 %1105, 98
  br i1 %1106, label %1107, label %1113

1107:                                             ; preds = %1102
  %1108 = load ptr, ptr %8, align 8, !tbaa !5
  %1109 = getelementptr inbounds i8, ptr %1108, i32 1
  store ptr %1109, ptr %8, align 8, !tbaa !5
  %1110 = load ptr, ptr %3, align 8, !tbaa !5
  %1111 = getelementptr inbounds %struct.qhT, ptr %1110, i32 0, i32 82
  store i32 1, ptr %1111, align 8, !tbaa !76
  %1112 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1112, ptr noundef @.str.99, ptr noundef null, ptr noundef null)
  br label %1656

1113:                                             ; preds = %1102, %1098
  %1114 = load ptr, ptr %8, align 8, !tbaa !5
  %1115 = call i32 @qh_strtol(ptr noundef %1114, ptr noundef %8)
  store i32 %1115, ptr %5, align 4, !tbaa !9
  store double 0.000000e+00, ptr %16, align 8, !tbaa !64
  store i32 0, ptr %15, align 4, !tbaa !9
  %1116 = load ptr, ptr %8, align 8, !tbaa !5
  %1117 = load i8, ptr %1116, align 1, !tbaa !18
  %1118 = sext i8 %1117 to i32
  %1119 = icmp eq i32 %1118, 58
  br i1 %1119, label %1120, label %1197

1120:                                             ; preds = %1113
  %1121 = load ptr, ptr %8, align 8, !tbaa !5
  %1122 = getelementptr inbounds i8, ptr %1121, i32 1
  store ptr %1122, ptr %8, align 8, !tbaa !5
  %1123 = load ptr, ptr %8, align 8, !tbaa !5
  %1124 = call double @qh_strtod(ptr noundef %1123, ptr noundef %8)
  store double %1124, ptr %16, align 8, !tbaa !64
  %1125 = fcmp oeq double %1124, 0.000000e+00
  br i1 %1125, label %1126, label %1196

1126:                                             ; preds = %1120
  %1127 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %1127, ptr %9, align 8, !tbaa !5
  br label %1128

1128:                                             ; preds = %1194, %1126
  %1129 = load ptr, ptr %9, align 8, !tbaa !5
  %1130 = load i8, ptr %1129, align 1, !tbaa !18
  %1131 = sext i8 %1130 to i32
  %1132 = icmp ne i32 %1131, 0
  br i1 %1132, label %1133, label %1146

1133:                                             ; preds = %1128
  %1134 = call ptr @__ctype_b_loc() #9
  %1135 = load ptr, ptr %1134, align 8, !tbaa !5
  %1136 = load ptr, ptr %9, align 8, !tbaa !5
  %1137 = load i8, ptr %1136, align 1, !tbaa !18
  %1138 = sext i8 %1137 to i32
  %1139 = sext i32 %1138 to i64
  %1140 = getelementptr inbounds i16, ptr %1135, i64 %1139
  %1141 = load i16, ptr %1140, align 2, !tbaa !19
  %1142 = zext i16 %1141 to i32
  %1143 = and i32 %1142, 8192
  %1144 = icmp ne i32 %1143, 0
  %1145 = xor i1 %1144, true
  br label %1146

1146:                                             ; preds = %1133, %1128
  %1147 = phi i1 [ false, %1128 ], [ %1145, %1133 ]
  br i1 %1147, label %1148, label %1195

1148:                                             ; preds = %1146
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  %1149 = call ptr @__ctype_toupper_loc() #9
  %1150 = load ptr, ptr %1149, align 8, !tbaa !5
  %1151 = load ptr, ptr %9, align 8, !tbaa !5
  %1152 = getelementptr inbounds i8, ptr %1151, i32 1
  store ptr %1152, ptr %9, align 8, !tbaa !5
  %1153 = load i8, ptr %1151, align 1, !tbaa !18
  %1154 = sext i8 %1153 to i32
  %1155 = sext i32 %1154 to i64
  %1156 = getelementptr inbounds i32, ptr %1150, i64 %1155
  %1157 = load i32, ptr %1156, align 4, !tbaa !9
  store i32 %1157, ptr %17, align 4, !tbaa !9
  %1158 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1158, ptr %18, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  %1159 = load i32, ptr %18, align 4, !tbaa !9
  %1160 = icmp eq i32 %1159, 66
  br i1 %1160, label %1161, label %1194

1161:                                             ; preds = %1148
  %1162 = load i32, ptr %5, align 4, !tbaa !9
  %1163 = load ptr, ptr %9, align 8, !tbaa !5
  %1164 = call i32 @qh_strtol(ptr noundef %1163, ptr noundef %9)
  %1165 = icmp eq i32 %1162, %1164
  br i1 %1165, label %1166, label %1194

1166:                                             ; preds = %1161
  %1167 = load ptr, ptr %9, align 8, !tbaa !5
  %1168 = getelementptr inbounds i8, ptr %1167, i32 1
  store ptr %1168, ptr %9, align 8, !tbaa !5
  %1169 = load i8, ptr %1167, align 1, !tbaa !18
  %1170 = sext i8 %1169 to i32
  %1171 = icmp eq i32 %1170, 58
  br i1 %1171, label %1172, label %1194

1172:                                             ; preds = %1166
  %1173 = load ptr, ptr %9, align 8, !tbaa !5
  %1174 = call double @qh_strtod(ptr noundef %1173, ptr noundef %9)
  %1175 = fcmp oeq double %1174, 0.000000e+00
  br i1 %1175, label %1176, label %1194

1176:                                             ; preds = %1172
  %1177 = load ptr, ptr %3, align 8, !tbaa !5
  %1178 = getelementptr inbounds %struct.qhT, ptr %1177, i32 0, i32 71
  %1179 = load i32, ptr %1178, align 8, !tbaa !77
  %1180 = add nsw i32 %1179, 1
  store i32 %1180, ptr %1178, align 8, !tbaa !77
  %1181 = load ptr, ptr %3, align 8, !tbaa !5
  %1182 = getelementptr inbounds %struct.qhT, ptr %1181, i32 0, i32 29
  %1183 = load i32, ptr %1182, align 8, !tbaa !78
  %1184 = icmp sge i32 %1183, 2
  br i1 %1184, label %1185, label %1191

1185:                                             ; preds = %1176
  %1186 = load ptr, ptr %3, align 8, !tbaa !5
  %1187 = load ptr, ptr %3, align 8, !tbaa !5
  %1188 = getelementptr inbounds %struct.qhT, ptr %1187, i32 0, i32 158
  %1189 = load ptr, ptr %1188, align 8, !tbaa !17
  %1190 = load i32, ptr %5, align 4, !tbaa !9
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1186, ptr noundef %1189, i32 noundef 2004, ptr noundef @.str.100, i32 noundef %1190)
  br label %1191

1191:                                             ; preds = %1185, %1176
  %1192 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1192, ptr noundef @.str.101, ptr noundef %5, ptr noundef null)
  store i32 1, ptr %15, align 4, !tbaa !9
  %1193 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1193, ptr %7, align 4, !tbaa !9
  br label %1195

1194:                                             ; preds = %1172, %1166, %1161, %1148
  br label %1128, !llvm.loop !79

1195:                                             ; preds = %1191, %1146
  br label %1196

1196:                                             ; preds = %1195, %1120
  br label %1197

1197:                                             ; preds = %1196, %1113
  %1198 = load i32, ptr %15, align 4, !tbaa !9
  %1199 = icmp ne i32 %1198, 0
  br i1 %1199, label %1230, label %1200

1200:                                             ; preds = %1197
  %1201 = load i32, ptr %7, align 4, !tbaa !9
  %1202 = load i32, ptr %5, align 4, !tbaa !9
  %1203 = icmp eq i32 %1201, %1202
  br i1 %1203, label %1204, label %1208

1204:                                             ; preds = %1200
  %1205 = load double, ptr %16, align 8, !tbaa !64
  %1206 = fcmp oeq double %1205, 0.000000e+00
  br i1 %1206, label %1207, label %1208

1207:                                             ; preds = %1204
  store i32 -1, ptr %7, align 4, !tbaa !9
  br label %1229

1208:                                             ; preds = %1204, %1200
  %1209 = load i8, ptr %12, align 1, !tbaa !18
  %1210 = sext i8 %1209 to i32
  %1211 = icmp eq i32 %1210, 98
  br i1 %1211, label %1212, label %1220

1212:                                             ; preds = %1208
  %1213 = load ptr, ptr %3, align 8, !tbaa !5
  %1214 = getelementptr inbounds %struct.qhT, ptr %1213, i32 0, i32 81
  store i32 1, ptr %1214, align 4, !tbaa !75
  %1215 = load double, ptr %16, align 8, !tbaa !64
  %1216 = fcmp oeq double %1215, 0.000000e+00
  br i1 %1216, label %1217, label %1218

1217:                                             ; preds = %1212
  store double -5.000000e-01, ptr %16, align 8, !tbaa !64
  br label %1218

1218:                                             ; preds = %1217, %1212
  %1219 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1219, ptr noundef @.str.102, ptr noundef %5, ptr noundef %16)
  br label %1228

1220:                                             ; preds = %1208
  %1221 = load ptr, ptr %3, align 8, !tbaa !5
  %1222 = getelementptr inbounds %struct.qhT, ptr %1221, i32 0, i32 81
  store i32 1, ptr %1222, align 4, !tbaa !75
  %1223 = load double, ptr %16, align 8, !tbaa !64
  %1224 = fcmp oeq double %1223, 0.000000e+00
  br i1 %1224, label %1225, label %1226

1225:                                             ; preds = %1220
  store double 5.000000e-01, ptr %16, align 8, !tbaa !64
  br label %1226

1226:                                             ; preds = %1225, %1220
  %1227 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1227, ptr noundef @.str.103, ptr noundef %5, ptr noundef %16)
  br label %1228

1228:                                             ; preds = %1226, %1218
  br label %1229

1229:                                             ; preds = %1228, %1207
  br label %1230

1230:                                             ; preds = %1229, %1197
  br label %1656

1231:                                             ; preds = %1071
  %1232 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1232, ptr noundef @.str.104, ptr noundef null, ptr noundef null)
  %1233 = load ptr, ptr %3, align 8, !tbaa !5
  %1234 = getelementptr inbounds %struct.qhT, ptr %1233, i32 0, i32 31
  store i32 1, ptr %1234, align 8, !tbaa !80
  br label %1656

1235:                                             ; preds = %1071
  %1236 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1236, ptr noundef @.str.105, ptr noundef null, ptr noundef null)
  %1237 = load ptr, ptr %3, align 8, !tbaa !5
  %1238 = getelementptr inbounds %struct.qhT, ptr %1237, i32 0, i32 10
  store i32 1, ptr %1238, align 4, !tbaa !81
  br label %1656

1239:                                             ; preds = %1071
  %1240 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1240, ptr noundef @.str.106, ptr noundef null, ptr noundef null)
  %1241 = load ptr, ptr %3, align 8, !tbaa !5
  %1242 = getelementptr inbounds %struct.qhT, ptr %1241, i32 0, i32 48
  store i32 1, ptr %1242, align 4, !tbaa !82
  br label %1656

1243:                                             ; preds = %1071
  %1244 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1244, ptr noundef @.str.107, ptr noundef null, ptr noundef null)
  %1245 = load ptr, ptr %3, align 8, !tbaa !5
  %1246 = getelementptr inbounds %struct.qhT, ptr %1245, i32 0, i32 32
  store i32 1, ptr %1246, align 4, !tbaa !83
  br label %1656

1247:                                             ; preds = %1071
  %1248 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1248, ptr noundef @.str.108, ptr noundef null, ptr noundef null)
  %1249 = load ptr, ptr %3, align 8, !tbaa !5
  %1250 = getelementptr inbounds %struct.qhT, ptr %1249, i32 0, i32 49
  store i32 1, ptr %1250, align 8, !tbaa !84
  br label %1656

1251:                                             ; preds = %1071
  %1252 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1252, ptr noundef @.str.109, ptr noundef null, ptr noundef null)
  %1253 = load ptr, ptr %3, align 8, !tbaa !5
  %1254 = getelementptr inbounds %struct.qhT, ptr %1253, i32 0, i32 76
  store i32 1, ptr %1254, align 8, !tbaa !85
  br label %1656

1255:                                             ; preds = %1071
  %1256 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1256, ptr noundef @.str.110, ptr noundef null, ptr noundef null)
  %1257 = load ptr, ptr %3, align 8, !tbaa !5
  %1258 = getelementptr inbounds %struct.qhT, ptr %1257, i32 0, i32 0
  store i32 1, ptr %1258, align 8, !tbaa !86
  br label %1656

1259:                                             ; preds = %1071
  %1260 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1260, ptr noundef @.str.111, ptr noundef null, ptr noundef null)
  %1261 = load ptr, ptr %3, align 8, !tbaa !5
  %1262 = getelementptr inbounds %struct.qhT, ptr %1261, i32 0, i32 97
  store i32 1, ptr %1262, align 4, !tbaa !87
  br label %1656

1263:                                             ; preds = %1071
  %1264 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1264, ptr noundef @.str.112, ptr noundef null, ptr noundef null)
  %1265 = call ptr @__ctype_b_loc() #9
  %1266 = load ptr, ptr %1265, align 8, !tbaa !5
  %1267 = load ptr, ptr %8, align 8, !tbaa !5
  %1268 = load i8, ptr %1267, align 1, !tbaa !18
  %1269 = sext i8 %1268 to i32
  %1270 = sext i32 %1269 to i64
  %1271 = getelementptr inbounds i16, ptr %1266, i64 %1270
  %1272 = load i16, ptr %1271, align 2, !tbaa !19
  %1273 = zext i16 %1272 to i32
  %1274 = and i32 %1273, 2048
  %1275 = icmp ne i32 %1274, 0
  br i1 %1275, label %1283, label %1276

1276:                                             ; preds = %1263
  %1277 = load ptr, ptr %3, align 8, !tbaa !5
  %1278 = load ptr, ptr %3, align 8, !tbaa !5
  %1279 = getelementptr inbounds %struct.qhT, ptr %1278, i32 0, i32 158
  %1280 = load ptr, ptr %1279, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1277, ptr noundef %1280, i32 noundef 7091, ptr noundef @.str.113)
  %1281 = load ptr, ptr %8, align 8, !tbaa !5
  %1282 = getelementptr inbounds i8, ptr %1281, i64 -2
  store ptr %1282, ptr %13, align 8, !tbaa !5
  br label %1291

1283:                                             ; preds = %1263
  %1284 = load ptr, ptr %8, align 8, !tbaa !5
  %1285 = call i32 @qh_strtol(ptr noundef %1284, ptr noundef %8)
  %1286 = load ptr, ptr %3, align 8, !tbaa !5
  %1287 = getelementptr inbounds %struct.qhT, ptr %1286, i32 0, i32 90
  store i32 %1285, ptr %1287, align 8, !tbaa !88
  %1288 = load ptr, ptr %3, align 8, !tbaa !5
  %1289 = load ptr, ptr %3, align 8, !tbaa !5
  %1290 = getelementptr inbounds %struct.qhT, ptr %1289, i32 0, i32 90
  call void @qh_option(ptr noundef %1288, ptr noundef @.str.112, ptr noundef %1290, ptr noundef null)
  br label %1291

1291:                                             ; preds = %1283, %1276
  br label %1656

1292:                                             ; preds = %1071
  %1293 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1293, ptr noundef @.str.114, ptr noundef null, ptr noundef null)
  %1294 = load ptr, ptr %3, align 8, !tbaa !5
  %1295 = getelementptr inbounds %struct.qhT, ptr %1294, i32 0, i32 99
  store i32 1, ptr %1295, align 4, !tbaa !89
  br label %1656

1296:                                             ; preds = %1071
  %1297 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1297, ptr noundef @.str.115, ptr noundef null, ptr noundef null)
  %1298 = load ptr, ptr %3, align 8, !tbaa !5
  %1299 = getelementptr inbounds %struct.qhT, ptr %1298, i32 0, i32 91
  store i32 1, ptr %1299, align 4, !tbaa !90
  br label %1656

1300:                                             ; preds = %1071
  %1301 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1301, ptr noundef @.str.116, ptr noundef null, ptr noundef null)
  %1302 = load ptr, ptr %3, align 8, !tbaa !5
  %1303 = getelementptr inbounds %struct.qhT, ptr %1302, i32 0, i32 37
  store i32 1, ptr %1303, align 4, !tbaa !91
  br label %1656

1304:                                             ; preds = %1071
  %1305 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1305, ptr noundef @.str.117, ptr noundef null, ptr noundef null)
  %1306 = load ptr, ptr %3, align 8, !tbaa !5
  %1307 = getelementptr inbounds %struct.qhT, ptr %1306, i32 0, i32 8
  store i32 1, ptr %1307, align 4, !tbaa !92
  br label %1656

1308:                                             ; preds = %1071
  %1309 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1309, ptr noundef @.str.118, ptr noundef null, ptr noundef null)
  %1310 = load ptr, ptr %3, align 8, !tbaa !5
  %1311 = getelementptr inbounds %struct.qhT, ptr %1310, i32 0, i32 47
  store i32 1, ptr %1311, align 8, !tbaa !93
  br label %1656

1312:                                             ; preds = %1071
  %1313 = call ptr @__ctype_b_loc() #9
  %1314 = load ptr, ptr %1313, align 8, !tbaa !5
  %1315 = load ptr, ptr %8, align 8, !tbaa !5
  %1316 = load i8, ptr %1315, align 1, !tbaa !18
  %1317 = sext i8 %1316 to i32
  %1318 = sext i32 %1317 to i64
  %1319 = getelementptr inbounds i16, ptr %1314, i64 %1318
  %1320 = load i16, ptr %1319, align 2, !tbaa !19
  %1321 = zext i16 %1320 to i32
  %1322 = and i32 %1321, 2048
  %1323 = icmp ne i32 %1322, 0
  br i1 %1323, label %1328, label %1324

1324:                                             ; preds = %1312
  %1325 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1325, ptr noundef @.str.119, ptr noundef null, ptr noundef null)
  %1326 = load ptr, ptr %3, align 8, !tbaa !5
  %1327 = getelementptr inbounds %struct.qhT, ptr %1326, i32 0, i32 4
  store i32 1, ptr %1327, align 8, !tbaa !94
  br label %1656

1328:                                             ; preds = %1312
  %1329 = load ptr, ptr %8, align 8, !tbaa !5
  %1330 = getelementptr inbounds i8, ptr %1329, i32 1
  store ptr %1330, ptr %8, align 8, !tbaa !5
  %1331 = load i8, ptr %1329, align 1, !tbaa !18
  %1332 = sext i8 %1331 to i32
  switch i32 %1332, label %1355 [
    i32 48, label %1333
    i32 49, label %1337
    i32 50, label %1343
    i32 52, label %1347
    i32 55, label %1351
  ]

1333:                                             ; preds = %1328
  %1334 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1334, ptr noundef @.str.120, ptr noundef null, ptr noundef null)
  %1335 = load ptr, ptr %3, align 8, !tbaa !5
  %1336 = getelementptr inbounds %struct.qhT, ptr %1335, i32 0, i32 45
  store i32 1, ptr %1336, align 8, !tbaa !95
  br label %1391

1337:                                             ; preds = %1328
  %1338 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1338, ptr noundef @.str.121, ptr noundef null, ptr noundef null)
  %1339 = load ptr, ptr %3, align 8, !tbaa !5
  %1340 = getelementptr inbounds %struct.qhT, ptr %1339, i32 0, i32 98
  store i32 1, ptr %1340, align 8, !tbaa !96
  %1341 = load ptr, ptr %3, align 8, !tbaa !5
  %1342 = getelementptr inbounds %struct.qhT, ptr %1341, i32 0, i32 97
  store i32 1, ptr %1342, align 4, !tbaa !87
  br label %1391

1343:                                             ; preds = %1328
  %1344 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1344, ptr noundef @.str.122, ptr noundef null, ptr noundef null)
  %1345 = load ptr, ptr %3, align 8, !tbaa !5
  %1346 = getelementptr inbounds %struct.qhT, ptr %1345, i32 0, i32 3
  store i32 1, ptr %1346, align 4, !tbaa !97
  br label %1391

1347:                                             ; preds = %1328
  %1348 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1348, ptr noundef @.str.123, ptr noundef null, ptr noundef null)
  %1349 = load ptr, ptr %3, align 8, !tbaa !5
  %1350 = getelementptr inbounds %struct.qhT, ptr %1349, i32 0, i32 42
  store i32 1, ptr %1350, align 8, !tbaa !98
  br label %1391

1351:                                             ; preds = %1328
  %1352 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1352, ptr noundef @.str.124, ptr noundef null, ptr noundef null)
  %1353 = load ptr, ptr %3, align 8, !tbaa !5
  %1354 = getelementptr inbounds %struct.qhT, ptr %1353, i32 0, i32 13
  store i32 1, ptr %1354, align 8, !tbaa !99
  br label %1391

1355:                                             ; preds = %1328
  %1356 = load ptr, ptr %8, align 8, !tbaa !5
  %1357 = getelementptr inbounds i8, ptr %1356, i32 -1
  store ptr %1357, ptr %8, align 8, !tbaa !5
  %1358 = load ptr, ptr %3, align 8, !tbaa !5
  %1359 = load ptr, ptr %3, align 8, !tbaa !5
  %1360 = getelementptr inbounds %struct.qhT, ptr %1359, i32 0, i32 158
  %1361 = load ptr, ptr %1360, align 8, !tbaa !17
  %1362 = load ptr, ptr %8, align 8, !tbaa !5
  %1363 = getelementptr inbounds i8, ptr %1362, i64 0
  %1364 = load i8, ptr %1363, align 1, !tbaa !18
  %1365 = sext i8 %1364 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1358, ptr noundef %1361, i32 noundef 7016, ptr noundef @.str.125, i32 noundef %1365)
  %1366 = load ptr, ptr %8, align 8, !tbaa !5
  %1367 = getelementptr inbounds i8, ptr %1366, i64 -1
  store ptr %1367, ptr %13, align 8, !tbaa !5
  br label %1368

1368:                                             ; preds = %1389, %1355
  %1369 = load ptr, ptr %8, align 8, !tbaa !5
  %1370 = getelementptr inbounds i8, ptr %1369, i32 1
  store ptr %1370, ptr %8, align 8, !tbaa !5
  %1371 = load i8, ptr %1370, align 1, !tbaa !18
  %1372 = sext i8 %1371 to i32
  %1373 = icmp ne i32 %1372, 0
  br i1 %1373, label %1374, label %1387

1374:                                             ; preds = %1368
  %1375 = call ptr @__ctype_b_loc() #9
  %1376 = load ptr, ptr %1375, align 8, !tbaa !5
  %1377 = load ptr, ptr %8, align 8, !tbaa !5
  %1378 = load i8, ptr %1377, align 1, !tbaa !18
  %1379 = sext i8 %1378 to i32
  %1380 = sext i32 %1379 to i64
  %1381 = getelementptr inbounds i16, ptr %1376, i64 %1380
  %1382 = load i16, ptr %1381, align 2, !tbaa !19
  %1383 = zext i16 %1382 to i32
  %1384 = and i32 %1383, 8192
  %1385 = icmp ne i32 %1384, 0
  %1386 = xor i1 %1385, true
  br label %1387

1387:                                             ; preds = %1374, %1368
  %1388 = phi i1 [ false, %1368 ], [ %1386, %1374 ]
  br i1 %1388, label %1389, label %1390

1389:                                             ; preds = %1387
  br label %1368, !llvm.loop !100

1390:                                             ; preds = %1387
  br label %1391

1391:                                             ; preds = %1390, %1351, %1347, %1343, %1337, %1333
  br label %1656

1392:                                             ; preds = %1071
  %1393 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1393, ptr noundef @.str.126, ptr noundef null, ptr noundef null)
  %1394 = load ptr, ptr %3, align 8, !tbaa !5
  %1395 = getelementptr inbounds %struct.qhT, ptr %1394, i32 0, i32 38
  store i32 0, ptr %1395, align 8, !tbaa !101
  br label %1400

1396:                                             ; preds = %1071
  %1397 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1397, ptr noundef @.str.127, ptr noundef null, ptr noundef null)
  %1398 = load ptr, ptr %3, align 8, !tbaa !5
  %1399 = getelementptr inbounds %struct.qhT, ptr %1398, i32 0, i32 43
  store i32 0, ptr %1399, align 4, !tbaa !102
  br label %1400

1400:                                             ; preds = %1396, %1392
  %1401 = call ptr @__ctype_b_loc() #9
  %1402 = load ptr, ptr %1401, align 8, !tbaa !5
  %1403 = load ptr, ptr %8, align 8, !tbaa !5
  %1404 = load i8, ptr %1403, align 1, !tbaa !18
  %1405 = sext i8 %1404 to i32
  %1406 = sext i32 %1405 to i64
  %1407 = getelementptr inbounds i16, ptr %1402, i64 %1406
  %1408 = load i16, ptr %1407, align 2, !tbaa !19
  %1409 = zext i16 %1408 to i32
  %1410 = and i32 %1409, 2048
  %1411 = icmp ne i32 %1410, 0
  br i1 %1411, label %1412, label %1428

1412:                                             ; preds = %1400
  %1413 = load ptr, ptr %3, align 8, !tbaa !5
  %1414 = load ptr, ptr %3, align 8, !tbaa !5
  %1415 = getelementptr inbounds %struct.qhT, ptr %1414, i32 0, i32 158
  %1416 = load ptr, ptr %1415, align 8, !tbaa !17
  %1417 = load ptr, ptr %8, align 8, !tbaa !5
  %1418 = getelementptr inbounds i8, ptr %1417, i64 -1
  %1419 = load i8, ptr %1418, align 1, !tbaa !18
  %1420 = sext i8 %1419 to i32
  %1421 = load ptr, ptr %8, align 8, !tbaa !5
  %1422 = load i8, ptr %1421, align 1, !tbaa !18
  %1423 = sext i8 %1422 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1413, ptr noundef %1416, i32 noundef 7017, ptr noundef @.str.128, i32 noundef %1420, i32 noundef %1423)
  %1424 = load ptr, ptr %8, align 8, !tbaa !5
  %1425 = getelementptr inbounds i8, ptr %1424, i64 -2
  store ptr %1425, ptr %13, align 8, !tbaa !5
  %1426 = load ptr, ptr %8, align 8, !tbaa !5
  %1427 = getelementptr inbounds i8, ptr %1426, i32 1
  store ptr %1427, ptr %8, align 8, !tbaa !5
  br label %1428

1428:                                             ; preds = %1412, %1400
  br label %1656

1429:                                             ; preds = %1071
  %1430 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1430, ptr noundef @.str.129, ptr noundef null, ptr noundef null)
  %1431 = load ptr, ptr %3, align 8, !tbaa !5
  %1432 = getelementptr inbounds %struct.qhT, ptr %1431, i32 0, i32 9
  store i32 1, ptr %1432, align 8, !tbaa !103
  br label %1656

1433:                                             ; preds = %1071
  %1434 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1434, ptr noundef @.str.130, ptr noundef null, ptr noundef null)
  %1435 = load ptr, ptr %3, align 8, !tbaa !5
  %1436 = getelementptr inbounds %struct.qhT, ptr %1435, i32 0, i32 84
  store i32 1, ptr %1436, align 8, !tbaa !104
  br label %1656

1437:                                             ; preds = %1071
  %1438 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1438, ptr noundef @.str.131, ptr noundef null, ptr noundef null)
  %1439 = load ptr, ptr %3, align 8, !tbaa !5
  %1440 = getelementptr inbounds %struct.qhT, ptr %1439, i32 0, i32 85
  store i32 1, ptr %1440, align 4, !tbaa !105
  br label %1656

1441:                                             ; preds = %1071
  %1442 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1442, ptr noundef @.str.132, ptr noundef null, ptr noundef null)
  %1443 = load ptr, ptr %3, align 8, !tbaa !5
  %1444 = getelementptr inbounds %struct.qhT, ptr %1443, i32 0, i32 102
  store i32 1, ptr %1444, align 8, !tbaa !106
  br label %1656

1445:                                             ; preds = %1071
  %1446 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1446, ptr noundef @.str.133, ptr noundef null, ptr noundef null)
  %1447 = load ptr, ptr %3, align 8, !tbaa !5
  %1448 = getelementptr inbounds %struct.qhT, ptr %1447, i32 0, i32 46
  store i32 1, ptr %1448, align 4, !tbaa !107
  br label %1656

1449:                                             ; preds = %1071
  %1450 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1450, ptr noundef @.str.134, ptr noundef null, ptr noundef null)
  %1451 = load ptr, ptr %3, align 8, !tbaa !5
  %1452 = getelementptr inbounds %struct.qhT, ptr %1451, i32 0, i32 50
  store i32 1, ptr %1452, align 4, !tbaa !108
  br label %1656

1453:                                             ; preds = %1071
  %1454 = load ptr, ptr %8, align 8, !tbaa !5
  %1455 = call i32 @qh_strtol(ptr noundef %1454, ptr noundef %9)
  store i32 %1455, ptr %6, align 4, !tbaa !9
  %1456 = load ptr, ptr %3, align 8, !tbaa !5
  %1457 = getelementptr inbounds %struct.qhT, ptr %1456, i32 0, i32 22
  %1458 = load i32, ptr %1457, align 4, !tbaa !109
  %1459 = icmp ne i32 %1458, 0
  br i1 %1459, label %1460, label %1467

1460:                                             ; preds = %1453
  %1461 = load ptr, ptr %3, align 8, !tbaa !5
  %1462 = load ptr, ptr %3, align 8, !tbaa !5
  %1463 = getelementptr inbounds %struct.qhT, ptr %1462, i32 0, i32 158
  %1464 = load ptr, ptr %1463, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1461, ptr noundef %1464, i32 noundef 7018, ptr noundef @.str.135)
  %1465 = load ptr, ptr %8, align 8, !tbaa !5
  %1466 = getelementptr inbounds i8, ptr %1465, i64 -2
  store ptr %1466, ptr %13, align 8, !tbaa !5
  br label %1500

1467:                                             ; preds = %1453
  %1468 = load ptr, ptr %8, align 8, !tbaa !5
  %1469 = load ptr, ptr %9, align 8, !tbaa !5
  %1470 = icmp eq ptr %1468, %1469
  br i1 %1470, label %1471, label %1478

1471:                                             ; preds = %1467
  %1472 = load ptr, ptr %3, align 8, !tbaa !5
  %1473 = load ptr, ptr %3, align 8, !tbaa !5
  %1474 = getelementptr inbounds %struct.qhT, ptr %1473, i32 0, i32 158
  %1475 = load ptr, ptr %1474, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1472, ptr noundef %1475, i32 noundef 7019, ptr noundef @.str.136)
  %1476 = load ptr, ptr %8, align 8, !tbaa !5
  %1477 = getelementptr inbounds i8, ptr %1476, i64 -2
  store ptr %1477, ptr %13, align 8, !tbaa !5
  br label %1499

1478:                                             ; preds = %1467
  %1479 = load i32, ptr %6, align 4, !tbaa !9
  %1480 = icmp slt i32 %1479, 0
  br i1 %1480, label %1486, label %1481

1481:                                             ; preds = %1478
  %1482 = load ptr, ptr %8, align 8, !tbaa !5
  %1483 = load i8, ptr %1482, align 1, !tbaa !18
  %1484 = sext i8 %1483 to i32
  %1485 = icmp eq i32 %1484, 45
  br i1 %1485, label %1486, label %1492

1486:                                             ; preds = %1481, %1478
  %1487 = load i32, ptr %6, align 4, !tbaa !9
  %1488 = sub nsw i32 %1487, 1
  %1489 = load ptr, ptr %3, align 8, !tbaa !5
  %1490 = getelementptr inbounds %struct.qhT, ptr %1489, i32 0, i32 22
  store i32 %1488, ptr %1490, align 4, !tbaa !109
  %1491 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1491, ptr noundef @.str.137, ptr noundef %6, ptr noundef null)
  br label %1498

1492:                                             ; preds = %1481
  %1493 = load i32, ptr %6, align 4, !tbaa !9
  %1494 = add nsw i32 %1493, 1
  %1495 = load ptr, ptr %3, align 8, !tbaa !5
  %1496 = getelementptr inbounds %struct.qhT, ptr %1495, i32 0, i32 22
  store i32 %1494, ptr %1496, align 4, !tbaa !109
  %1497 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1497, ptr noundef @.str.138, ptr noundef %6, ptr noundef null)
  br label %1498

1498:                                             ; preds = %1492, %1486
  br label %1499

1499:                                             ; preds = %1498, %1471
  br label %1500

1500:                                             ; preds = %1499, %1460
  %1501 = load ptr, ptr %9, align 8, !tbaa !5
  store ptr %1501, ptr %8, align 8, !tbaa !5
  br label %1656

1502:                                             ; preds = %1071
  %1503 = call ptr @__ctype_b_loc() #9
  %1504 = load ptr, ptr %1503, align 8, !tbaa !5
  %1505 = load ptr, ptr %8, align 8, !tbaa !5
  %1506 = load i8, ptr %1505, align 1, !tbaa !18
  %1507 = sext i8 %1506 to i32
  %1508 = sext i32 %1507 to i64
  %1509 = getelementptr inbounds i16, ptr %1504, i64 %1508
  %1510 = load i16, ptr %1509, align 2, !tbaa !19
  %1511 = zext i16 %1510 to i32
  %1512 = and i32 %1511, 2048
  %1513 = icmp ne i32 %1512, 0
  br i1 %1513, label %1522, label %1514

1514:                                             ; preds = %1502
  %1515 = load ptr, ptr %8, align 8, !tbaa !5
  %1516 = load i8, ptr %1515, align 1, !tbaa !18
  %1517 = sext i8 %1516 to i32
  %1518 = icmp ne i32 %1517, 45
  br i1 %1518, label %1519, label %1522

1519:                                             ; preds = %1514
  %1520 = load ptr, ptr %3, align 8, !tbaa !5
  %1521 = getelementptr inbounds %struct.qhT, ptr %1520, i32 0, i32 197
  store double 0.000000e+00, ptr %1521, align 8, !tbaa !110
  br label %1530

1522:                                             ; preds = %1514, %1502
  %1523 = load ptr, ptr %8, align 8, !tbaa !5
  %1524 = call double @qh_strtod(ptr noundef %1523, ptr noundef %8)
  %1525 = load ptr, ptr %3, align 8, !tbaa !5
  %1526 = getelementptr inbounds %struct.qhT, ptr %1525, i32 0, i32 197
  store double %1524, ptr %1526, align 8, !tbaa !110
  %1527 = load ptr, ptr %3, align 8, !tbaa !5
  %1528 = load ptr, ptr %3, align 8, !tbaa !5
  %1529 = getelementptr inbounds %struct.qhT, ptr %1528, i32 0, i32 197
  call void @qh_option(ptr noundef %1527, ptr noundef @.str.139, ptr noundef null, ptr noundef %1529)
  br label %1530

1530:                                             ; preds = %1522, %1519
  br label %1656

1531:                                             ; preds = %1071
  %1532 = call ptr @__ctype_b_loc() #9
  %1533 = load ptr, ptr %1532, align 8, !tbaa !5
  %1534 = load ptr, ptr %8, align 8, !tbaa !5
  %1535 = load i8, ptr %1534, align 1, !tbaa !18
  %1536 = sext i8 %1535 to i32
  %1537 = sext i32 %1536 to i64
  %1538 = getelementptr inbounds i16, ptr %1533, i64 %1537
  %1539 = load i16, ptr %1538, align 2, !tbaa !19
  %1540 = zext i16 %1539 to i32
  %1541 = and i32 %1540, 2048
  %1542 = icmp ne i32 %1541, 0
  br i1 %1542, label %1555, label %1543

1543:                                             ; preds = %1531
  %1544 = load ptr, ptr %8, align 8, !tbaa !5
  %1545 = load i8, ptr %1544, align 1, !tbaa !18
  %1546 = sext i8 %1545 to i32
  %1547 = icmp ne i32 %1546, 45
  br i1 %1547, label %1548, label %1555

1548:                                             ; preds = %1543
  %1549 = load ptr, ptr %3, align 8, !tbaa !5
  %1550 = load ptr, ptr %3, align 8, !tbaa !5
  %1551 = getelementptr inbounds %struct.qhT, ptr %1550, i32 0, i32 158
  %1552 = load ptr, ptr %1551, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1549, ptr noundef %1552, i32 noundef 7020, ptr noundef @.str.140)
  %1553 = load ptr, ptr %8, align 8, !tbaa !5
  %1554 = getelementptr inbounds i8, ptr %1553, i64 -2
  store ptr %1554, ptr %13, align 8, !tbaa !5
  br label %1571

1555:                                             ; preds = %1543, %1531
  %1556 = load ptr, ptr %8, align 8, !tbaa !5
  %1557 = call i32 @qh_strtol(ptr noundef %1556, ptr noundef %8)
  store i32 %1557, ptr %6, align 4, !tbaa !9
  %1558 = load ptr, ptr %3, align 8, !tbaa !5
  %1559 = getelementptr inbounds %struct.qhT, ptr %1558, i32 0, i32 80
  store i32 %1557, ptr %1559, align 8, !tbaa !111
  %1560 = load i32, ptr %6, align 4, !tbaa !9
  %1561 = icmp sgt i32 %1560, 0
  br i1 %1561, label %1562, label %1564

1562:                                             ; preds = %1555
  %1563 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1563, ptr noundef @.str.141, ptr noundef %6, ptr noundef null)
  br label %1570

1564:                                             ; preds = %1555
  %1565 = load i32, ptr %6, align 4, !tbaa !9
  %1566 = icmp slt i32 %1565, -1
  br i1 %1566, label %1567, label %1569

1567:                                             ; preds = %1564
  %1568 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1568, ptr noundef @.str.142, ptr noundef %6, ptr noundef null)
  br label %1569

1569:                                             ; preds = %1567, %1564
  br label %1570

1570:                                             ; preds = %1569, %1562
  br label %1571

1571:                                             ; preds = %1570, %1548
  br label %1656

1572:                                             ; preds = %1071
  %1573 = load ptr, ptr %8, align 8, !tbaa !5
  %1574 = call i32 @qh_strtol(ptr noundef %1573, ptr noundef %9)
  store i32 %1574, ptr %6, align 4, !tbaa !9
  %1575 = load ptr, ptr %3, align 8, !tbaa !5
  %1576 = getelementptr inbounds %struct.qhT, ptr %1575, i32 0, i32 25
  %1577 = load i32, ptr %1576, align 4, !tbaa !112
  %1578 = icmp ne i32 %1577, 0
  br i1 %1578, label %1579, label %1586

1579:                                             ; preds = %1572
  %1580 = load ptr, ptr %3, align 8, !tbaa !5
  %1581 = load ptr, ptr %3, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.qhT, ptr %1581, i32 0, i32 158
  %1583 = load ptr, ptr %1582, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1580, ptr noundef %1583, i32 noundef 7021, ptr noundef @.str.143)
  %1584 = load ptr, ptr %8, align 8, !tbaa !5
  %1585 = getelementptr inbounds i8, ptr %1584, i64 -2
  store ptr %1585, ptr %13, align 8, !tbaa !5
  br label %1614

1586:                                             ; preds = %1572
  %1587 = load ptr, ptr %8, align 8, !tbaa !5
  %1588 = load ptr, ptr %9, align 8, !tbaa !5
  %1589 = icmp eq ptr %1587, %1588
  br i1 %1589, label %1590, label %1597

1590:                                             ; preds = %1586
  %1591 = load ptr, ptr %3, align 8, !tbaa !5
  %1592 = load ptr, ptr %3, align 8, !tbaa !5
  %1593 = getelementptr inbounds %struct.qhT, ptr %1592, i32 0, i32 158
  %1594 = load ptr, ptr %1593, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1591, ptr noundef %1594, i32 noundef 7022, ptr noundef @.str.144)
  %1595 = load ptr, ptr %8, align 8, !tbaa !5
  %1596 = getelementptr inbounds i8, ptr %1595, i64 -2
  store ptr %1596, ptr %13, align 8, !tbaa !5
  br label %1613

1597:                                             ; preds = %1586
  %1598 = load i32, ptr %6, align 4, !tbaa !9
  %1599 = icmp slt i32 %1598, 0
  br i1 %1599, label %1600, label %1606

1600:                                             ; preds = %1597
  %1601 = load i32, ptr %6, align 4, !tbaa !9
  %1602 = sub nsw i32 %1601, 1
  %1603 = load ptr, ptr %3, align 8, !tbaa !5
  %1604 = getelementptr inbounds %struct.qhT, ptr %1603, i32 0, i32 25
  store i32 %1602, ptr %1604, align 4, !tbaa !112
  %1605 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1605, ptr noundef @.str.145, ptr noundef %6, ptr noundef null)
  br label %1612

1606:                                             ; preds = %1597
  %1607 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1607, ptr noundef @.str.146, ptr noundef %6, ptr noundef null)
  %1608 = load i32, ptr %6, align 4, !tbaa !9
  %1609 = add nsw i32 %1608, 1
  %1610 = load ptr, ptr %3, align 8, !tbaa !5
  %1611 = getelementptr inbounds %struct.qhT, ptr %1610, i32 0, i32 25
  store i32 %1609, ptr %1611, align 4, !tbaa !112
  br label %1612

1612:                                             ; preds = %1606, %1600
  br label %1613

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

1614:                                             ; preds = %1613, %1579
  %1615 = load ptr, ptr %9, align 8, !tbaa !5
  store ptr %1615, ptr %8, align 8, !tbaa !5
  br label %1656

1616:                                             ; preds = %1071
  %1617 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1617, ptr noundef @.str.147, ptr noundef null, ptr noundef null)
  %1618 = load ptr, ptr %3, align 8, !tbaa !5
  %1619 = getelementptr inbounds %struct.qhT, ptr %1618, i32 0, i32 2
  store i32 1, ptr %1619, align 8, !tbaa !113
  br label %1656

1620:                                             ; preds = %1071
  %1621 = load ptr, ptr %8, align 8, !tbaa !5
  %1622 = getelementptr inbounds i8, ptr %1621, i32 -1
  store ptr %1622, ptr %8, align 8, !tbaa !5
  %1623 = load ptr, ptr %3, align 8, !tbaa !5
  %1624 = load ptr, ptr %3, align 8, !tbaa !5
  %1625 = getelementptr inbounds %struct.qhT, ptr %1624, i32 0, i32 158
  %1626 = load ptr, ptr %1625, align 8, !tbaa !17
  %1627 = load ptr, ptr %8, align 8, !tbaa !5
  %1628 = getelementptr inbounds i8, ptr %1627, i64 0
  %1629 = load i8, ptr %1628, align 1, !tbaa !18
  %1630 = sext i8 %1629 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1623, ptr noundef %1626, i32 noundef 7023, ptr noundef @.str.148, i32 noundef %1630)
  %1631 = load ptr, ptr %8, align 8, !tbaa !5
  %1632 = getelementptr inbounds i8, ptr %1631, i64 -1
  store ptr %1632, ptr %13, align 8, !tbaa !5
  br label %1633

1633:                                             ; preds = %1654, %1620
  %1634 = load ptr, ptr %8, align 8, !tbaa !5
  %1635 = getelementptr inbounds i8, ptr %1634, i32 1
  store ptr %1635, ptr %8, align 8, !tbaa !5
  %1636 = load i8, ptr %1635, align 1, !tbaa !18
  %1637 = sext i8 %1636 to i32
  %1638 = icmp ne i32 %1637, 0
  br i1 %1638, label %1639, label %1652

1639:                                             ; preds = %1633
  %1640 = call ptr @__ctype_b_loc() #9
  %1641 = load ptr, ptr %1640, align 8, !tbaa !5
  %1642 = load ptr, ptr %8, align 8, !tbaa !5
  %1643 = load i8, ptr %1642, align 1, !tbaa !18
  %1644 = sext i8 %1643 to i32
  %1645 = sext i32 %1644 to i64
  %1646 = getelementptr inbounds i16, ptr %1641, i64 %1645
  %1647 = load i16, ptr %1646, align 2, !tbaa !19
  %1648 = zext i16 %1647 to i32
  %1649 = and i32 %1648, 8192
  %1650 = icmp ne i32 %1649, 0
  %1651 = xor i1 %1650, true
  br label %1652

1652:                                             ; preds = %1639, %1633
  %1653 = phi i1 [ false, %1633 ], [ %1651, %1639 ]
  br i1 %1653, label %1654, label %1655

1654:                                             ; preds = %1652
  br label %1633, !llvm.loop !114

1655:                                             ; preds = %1652
  br label %1656

1656:                                             ; preds = %1655, %1616, %1614, %1571, %1530, %1500, %1449, %1445, %1441, %1437, %1433, %1429, %1428, %1391, %1324, %1308, %1304, %1300, %1296, %1292, %1291, %1259, %1255, %1251, %1247, %1243, %1239, %1235, %1231, %1230, %1107, %1092, %1076
  br label %1051, !llvm.loop !115

1657:                                             ; preds = %1069
  br label %2215

1658:                                             ; preds = %131
  br label %1659

1659:                                             ; preds = %2198, %1658
  %1660 = load ptr, ptr %8, align 8, !tbaa !5
  %1661 = load i8, ptr %1660, align 1, !tbaa !18
  %1662 = sext i8 %1661 to i32
  %1663 = icmp ne i32 %1662, 0
  br i1 %1663, label %1664, label %1677

1664:                                             ; preds = %1659
  %1665 = call ptr @__ctype_b_loc() #9
  %1666 = load ptr, ptr %1665, align 8, !tbaa !5
  %1667 = load ptr, ptr %8, align 8, !tbaa !5
  %1668 = load i8, ptr %1667, align 1, !tbaa !18
  %1669 = sext i8 %1668 to i32
  %1670 = sext i32 %1669 to i64
  %1671 = getelementptr inbounds i16, ptr %1666, i64 %1670
  %1672 = load i16, ptr %1671, align 2, !tbaa !19
  %1673 = zext i16 %1672 to i32
  %1674 = and i32 %1673, 8192
  %1675 = icmp ne i32 %1674, 0
  %1676 = xor i1 %1675, true
  br label %1677

1677:                                             ; preds = %1664, %1659
  %1678 = phi i1 [ false, %1659 ], [ %1676, %1664 ]
  br i1 %1678, label %1679, label %2199

1679:                                             ; preds = %1677
  %1680 = call ptr @__ctype_b_loc() #9
  %1681 = load ptr, ptr %1680, align 8, !tbaa !5
  %1682 = load ptr, ptr %8, align 8, !tbaa !5
  %1683 = load i8, ptr %1682, align 1, !tbaa !18
  %1684 = sext i8 %1683 to i32
  %1685 = sext i32 %1684 to i64
  %1686 = getelementptr inbounds i16, ptr %1681, i64 %1685
  %1687 = load i16, ptr %1686, align 2, !tbaa !19
  %1688 = zext i16 %1687 to i32
  %1689 = and i32 %1688, 2048
  %1690 = icmp ne i32 %1689, 0
  br i1 %1690, label %1696, label %1691

1691:                                             ; preds = %1679
  %1692 = load ptr, ptr %8, align 8, !tbaa !5
  %1693 = load i8, ptr %1692, align 1, !tbaa !18
  %1694 = sext i8 %1693 to i32
  %1695 = icmp eq i32 %1694, 45
  br i1 %1695, label %1696, label %1701

1696:                                             ; preds = %1691, %1679
  %1697 = load ptr, ptr %8, align 8, !tbaa !5
  %1698 = call i32 @qh_strtol(ptr noundef %1697, ptr noundef %8)
  %1699 = load ptr, ptr %3, align 8, !tbaa !5
  %1700 = getelementptr inbounds %struct.qhT, ptr %1699, i32 0, i32 29
  store i32 %1698, ptr %1700, align 8, !tbaa !78
  br label %2198

1701:                                             ; preds = %1691
  %1702 = load ptr, ptr %8, align 8, !tbaa !5
  %1703 = getelementptr inbounds i8, ptr %1702, i32 1
  store ptr %1703, ptr %8, align 8, !tbaa !5
  %1704 = load i8, ptr %1702, align 1, !tbaa !18
  %1705 = sext i8 %1704 to i32
  switch i32 %1705, label %2161 [
    i32 97, label %1706
    i32 99, label %1710
    i32 102, label %1714
    i32 115, label %1718
    i32 118, label %1722
    i32 122, label %1726
    i32 67, label %1764
    i32 70, label %1792
    i32 73, label %1826
    i32 79, label %1872
    i32 65, label %1933
    i32 80, label %1962
    i32 77, label %2046
    i32 82, label %2074
    i32 86, label %2102
    i32 87, label %2133
  ]

1706:                                             ; preds = %1701
  %1707 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1707, ptr noundef @.str.149, ptr noundef null, ptr noundef null)
  %1708 = load ptr, ptr %3, align 8, !tbaa !5
  %1709 = getelementptr inbounds %struct.qhT, ptr %1708, i32 0, i32 7
  store i32 1, ptr %1709, align 8, !tbaa !116
  br label %2197

1710:                                             ; preds = %1701
  %1711 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1711, ptr noundef @.str.150, ptr noundef null, ptr noundef null)
  %1712 = load ptr, ptr %3, align 8, !tbaa !5
  %1713 = getelementptr inbounds %struct.qhT, ptr %1712, i32 0, i32 14
  store i32 1, ptr %1713, align 4, !tbaa !117
  br label %2197

1714:                                             ; preds = %1701
  %1715 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1715, ptr noundef @.str.151, ptr noundef null, ptr noundef null)
  %1716 = load ptr, ptr %3, align 8, !tbaa !5
  %1717 = getelementptr inbounds %struct.qhT, ptr %1716, i32 0, i32 20
  store i32 1, ptr %1717, align 4, !tbaa !118
  br label %2197

1718:                                             ; preds = %1701
  %1719 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1719, ptr noundef @.str.152, ptr noundef null, ptr noundef null)
  %1720 = load ptr, ptr %3, align 8, !tbaa !5
  %1721 = getelementptr inbounds %struct.qhT, ptr %1720, i32 0, i32 67
  store i32 1, ptr %1721, align 8, !tbaa !119
  br label %2197

1722:                                             ; preds = %1701
  %1723 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1723, ptr noundef @.str.153, ptr noundef null, ptr noundef null)
  %1724 = load ptr, ptr %3, align 8, !tbaa !5
  %1725 = getelementptr inbounds %struct.qhT, ptr %1724, i32 0, i32 101
  store i32 1, ptr %1725, align 4, !tbaa !120
  br label %2197

1726:                                             ; preds = %1701
  %1727 = load ptr, ptr %3, align 8, !tbaa !5
  %1728 = getelementptr inbounds %struct.qhT, ptr %1727, i32 0, i32 158
  %1729 = load ptr, ptr %1728, align 8, !tbaa !17
  %1730 = icmp eq ptr %1729, inttoptr (i64 1 to ptr)
  br i1 %1730, label %1731, label %1735

1731:                                             ; preds = %1726
  %1732 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1732, ptr noundef @.str.154, ptr noundef null, ptr noundef null)
  %1733 = load ptr, ptr %3, align 8, !tbaa !5
  %1734 = getelementptr inbounds %struct.qhT, ptr %1733, i32 0, i32 100
  store i32 1, ptr %1734, align 8, !tbaa !121
  br label %1763

1735:                                             ; preds = %1726
  %1736 = load ptr, ptr %3, align 8, !tbaa !5
  %1737 = getelementptr inbounds %struct.qhT, ptr %1736, i32 0, i32 157
  %1738 = load ptr, ptr %1737, align 8, !tbaa !122
  %1739 = icmp ne ptr %1738, null
  br i1 %1739, label %1747, label %1740

1740:                                             ; preds = %1735
  %1741 = load ptr, ptr %3, align 8, !tbaa !5
  %1742 = load ptr, ptr %3, align 8, !tbaa !5
  %1743 = getelementptr inbounds %struct.qhT, ptr %1742, i32 0, i32 158
  %1744 = load ptr, ptr %1743, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1741, ptr noundef %1744, i32 noundef 7024, ptr noundef @.str.155)
  %1745 = load ptr, ptr %8, align 8, !tbaa !5
  %1746 = getelementptr inbounds i8, ptr %1745, i64 -2
  store ptr %1746, ptr %13, align 8, !tbaa !5
  br label %1762

1747:                                             ; preds = %1735
  %1748 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1748, ptr noundef @.str.154, ptr noundef null, ptr noundef null)
  %1749 = load ptr, ptr %3, align 8, !tbaa !5
  %1750 = getelementptr inbounds %struct.qhT, ptr %1749, i32 0, i32 100
  store i32 1, ptr %1750, align 8, !tbaa !121
  %1751 = load ptr, ptr %3, align 8, !tbaa !5
  %1752 = getelementptr inbounds %struct.qhT, ptr %1751, i32 0, i32 157
  %1753 = load ptr, ptr %1752, align 8, !tbaa !122
  %1754 = load ptr, ptr %3, align 8, !tbaa !5
  %1755 = getelementptr inbounds %struct.qhT, ptr %1754, i32 0, i32 158
  store ptr %1753, ptr %1755, align 8, !tbaa !17
  %1756 = load ptr, ptr %3, align 8, !tbaa !5
  %1757 = getelementptr inbounds %struct.qhT, ptr %1756, i32 0, i32 157
  %1758 = load ptr, ptr %1757, align 8, !tbaa !122
  %1759 = load ptr, ptr %3, align 8, !tbaa !5
  %1760 = getelementptr inbounds %struct.qhT, ptr %1759, i32 0, i32 257
  %1761 = getelementptr inbounds %struct.qhmemT, ptr %1760, i32 0, i32 13
  store ptr %1758, ptr %1761, align 8, !tbaa !123
  br label %1762

1762:                                             ; preds = %1747, %1740
  br label %1763

1763:                                             ; preds = %1762, %1731
  br label %2197

1764:                                             ; preds = %1701
  %1765 = call ptr @__ctype_b_loc() #9
  %1766 = load ptr, ptr %1765, align 8, !tbaa !5
  %1767 = load ptr, ptr %8, align 8, !tbaa !5
  %1768 = load i8, ptr %1767, align 1, !tbaa !18
  %1769 = sext i8 %1768 to i32
  %1770 = sext i32 %1769 to i64
  %1771 = getelementptr inbounds i16, ptr %1766, i64 %1770
  %1772 = load i16, ptr %1771, align 2, !tbaa !19
  %1773 = zext i16 %1772 to i32
  %1774 = and i32 %1773, 2048
  %1775 = icmp ne i32 %1774, 0
  br i1 %1775, label %1783, label %1776

1776:                                             ; preds = %1764
  %1777 = load ptr, ptr %3, align 8, !tbaa !5
  %1778 = load ptr, ptr %3, align 8, !tbaa !5
  %1779 = getelementptr inbounds %struct.qhT, ptr %1778, i32 0, i32 158
  %1780 = load ptr, ptr %1779, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1777, ptr noundef %1780, i32 noundef 7025, ptr noundef @.str.156)
  %1781 = load ptr, ptr %8, align 8, !tbaa !5
  %1782 = getelementptr inbounds i8, ptr %1781, i64 -2
  store ptr %1782, ptr %13, align 8, !tbaa !5
  br label %1791

1783:                                             ; preds = %1764
  %1784 = load ptr, ptr %8, align 8, !tbaa !5
  %1785 = call i32 @qh_strtol(ptr noundef %1784, ptr noundef %8)
  store i32 %1785, ptr %6, align 4, !tbaa !9
  %1786 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1786, ptr noundef @.str.157, ptr noundef %6, ptr noundef null)
  %1787 = load i32, ptr %6, align 4, !tbaa !9
  %1788 = add nsw i32 %1787, 1
  %1789 = load ptr, ptr %3, align 8, !tbaa !5
  %1790 = getelementptr inbounds %struct.qhT, ptr %1789, i32 0, i32 88
  store i32 %1788, ptr %1790, align 8, !tbaa !124
  br label %1791

1791:                                             ; preds = %1783, %1776
  br label %2197

1792:                                             ; preds = %1701
  %1793 = call ptr @__ctype_b_loc() #9
  %1794 = load ptr, ptr %1793, align 8, !tbaa !5
  %1795 = load ptr, ptr %8, align 8, !tbaa !5
  %1796 = load i8, ptr %1795, align 1, !tbaa !18
  %1797 = sext i8 %1796 to i32
  %1798 = sext i32 %1797 to i64
  %1799 = getelementptr inbounds i16, ptr %1794, i64 %1798
  %1800 = load i16, ptr %1799, align 2, !tbaa !19
  %1801 = zext i16 %1800 to i32
  %1802 = and i32 %1801, 2048
  %1803 = icmp ne i32 %1802, 0
  br i1 %1803, label %1811, label %1804

1804:                                             ; preds = %1792
  %1805 = load ptr, ptr %3, align 8, !tbaa !5
  %1806 = load ptr, ptr %3, align 8, !tbaa !5
  %1807 = getelementptr inbounds %struct.qhT, ptr %1806, i32 0, i32 158
  %1808 = load ptr, ptr %1807, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1805, ptr noundef %1808, i32 noundef 7026, ptr noundef @.str.158)
  %1809 = load ptr, ptr %8, align 8, !tbaa !5
  %1810 = getelementptr inbounds i8, ptr %1809, i64 -2
  store ptr %1810, ptr %13, align 8, !tbaa !5
  br label %1825

1811:                                             ; preds = %1792
  %1812 = load ptr, ptr %8, align 8, !tbaa !5
  %1813 = call i32 @qh_strtol(ptr noundef %1812, ptr noundef %8)
  %1814 = load ptr, ptr %3, align 8, !tbaa !5
  %1815 = getelementptr inbounds %struct.qhT, ptr %1814, i32 0, i32 77
  store i32 %1813, ptr %1815, align 4, !tbaa !125
  %1816 = load ptr, ptr %3, align 8, !tbaa !5
  %1817 = load ptr, ptr %3, align 8, !tbaa !5
  %1818 = getelementptr inbounds %struct.qhT, ptr %1817, i32 0, i32 77
  call void @qh_option(ptr noundef %1816, ptr noundef @.str.159, ptr noundef %1818, ptr noundef null)
  %1819 = load ptr, ptr %3, align 8, !tbaa !5
  %1820 = getelementptr inbounds %struct.qhT, ptr %1819, i32 0, i32 77
  %1821 = load i32, ptr %1820, align 4, !tbaa !125
  %1822 = sdiv i32 %1821, 2
  %1823 = load ptr, ptr %3, align 8, !tbaa !5
  %1824 = getelementptr inbounds %struct.qhT, ptr %1823, i32 0, i32 78
  store i32 %1822, ptr %1824, align 8, !tbaa !126
  br label %1825

1825:                                             ; preds = %1811, %1804
  br label %2197

1826:                                             ; preds = %1701
  br label %1827

1827:                                             ; preds = %1839, %1826
  %1828 = call ptr @__ctype_b_loc() #9
  %1829 = load ptr, ptr %1828, align 8, !tbaa !5
  %1830 = load ptr, ptr %8, align 8, !tbaa !5
  %1831 = load i8, ptr %1830, align 1, !tbaa !18
  %1832 = sext i8 %1831 to i32
  %1833 = sext i32 %1832 to i64
  %1834 = getelementptr inbounds i16, ptr %1829, i64 %1833
  %1835 = load i16, ptr %1834, align 2, !tbaa !19
  %1836 = zext i16 %1835 to i32
  %1837 = and i32 %1836, 8192
  %1838 = icmp ne i32 %1837, 0
  br i1 %1838, label %1839, label %1842

1839:                                             ; preds = %1827
  %1840 = load ptr, ptr %8, align 8, !tbaa !5
  %1841 = getelementptr inbounds i8, ptr %1840, i32 1
  store ptr %1841, ptr %8, align 8, !tbaa !5
  br label %1827, !llvm.loop !127

1842:                                             ; preds = %1827
  %1843 = load ptr, ptr %3, align 8, !tbaa !5
  %1844 = load ptr, ptr %8, align 8, !tbaa !5
  %1845 = call ptr @qh_skipfilename(ptr noundef %1843, ptr noundef %1844)
  store ptr %1845, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 500, ptr %19) #7
  %1846 = load ptr, ptr %3, align 8, !tbaa !5
  %1847 = getelementptr inbounds [500 x i8], ptr %19, i64 0, i64 0
  %1848 = load ptr, ptr %8, align 8, !tbaa !5
  %1849 = load ptr, ptr %9, align 8, !tbaa !5
  %1850 = load ptr, ptr %8, align 8, !tbaa !5
  %1851 = ptrtoint ptr %1849 to i64
  %1852 = ptrtoint ptr %1850 to i64
  %1853 = sub i64 %1851, %1852
  %1854 = trunc i64 %1853 to i32
  call void @qh_copyfilename(ptr noundef %1846, ptr noundef %1847, i32 noundef 500, ptr noundef %1848, i32 noundef %1854)
  %1855 = load ptr, ptr %9, align 8, !tbaa !5
  store ptr %1855, ptr %8, align 8, !tbaa !5
  %1856 = getelementptr inbounds [500 x i8], ptr %19, i64 0, i64 0
  %1857 = load ptr, ptr @stdin, align 8, !tbaa !5
  %1858 = call ptr @freopen(ptr noundef %1856, ptr noundef @.str.160, ptr noundef %1857)
  %1859 = icmp ne ptr %1858, null
  br i1 %1859, label %1867, label %1860

1860:                                             ; preds = %1842
  %1861 = load ptr, ptr %3, align 8, !tbaa !5
  %1862 = load ptr, ptr %3, align 8, !tbaa !5
  %1863 = getelementptr inbounds %struct.qhT, ptr %1862, i32 0, i32 158
  %1864 = load ptr, ptr %1863, align 8, !tbaa !17
  %1865 = getelementptr inbounds [500 x i8], ptr %19, i64 0, i64 0
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1861, ptr noundef %1864, i32 noundef 6041, ptr noundef @.str.161, ptr noundef %1865)
  %1866 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_errexit(ptr noundef %1866, i32 noundef 1, ptr noundef null, ptr noundef null)
  br label %1871

1867:                                             ; preds = %1842
  %1868 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1868, ptr noundef @.str.162, ptr noundef null, ptr noundef null)
  %1869 = load ptr, ptr %3, align 8, !tbaa !5
  %1870 = getelementptr inbounds [500 x i8], ptr %19, i64 0, i64 0
  call void @qh_option(ptr noundef %1869, ptr noundef %1870, ptr noundef null, ptr noundef null)
  br label %1871

1871:                                             ; preds = %1867, %1860
  call void @llvm.lifetime.end.p0(i64 500, ptr %19) #7
  br label %2197

1872:                                             ; preds = %1701
  br label %1873

1873:                                             ; preds = %1885, %1872
  %1874 = call ptr @__ctype_b_loc() #9
  %1875 = load ptr, ptr %1874, align 8, !tbaa !5
  %1876 = load ptr, ptr %8, align 8, !tbaa !5
  %1877 = load i8, ptr %1876, align 1, !tbaa !18
  %1878 = sext i8 %1877 to i32
  %1879 = sext i32 %1878 to i64
  %1880 = getelementptr inbounds i16, ptr %1875, i64 %1879
  %1881 = load i16, ptr %1880, align 2, !tbaa !19
  %1882 = zext i16 %1881 to i32
  %1883 = and i32 %1882, 8192
  %1884 = icmp ne i32 %1883, 0
  br i1 %1884, label %1885, label %1888

1885:                                             ; preds = %1873
  %1886 = load ptr, ptr %8, align 8, !tbaa !5
  %1887 = getelementptr inbounds i8, ptr %1886, i32 1
  store ptr %1887, ptr %8, align 8, !tbaa !5
  br label %1873, !llvm.loop !128

1888:                                             ; preds = %1873
  %1889 = load ptr, ptr %3, align 8, !tbaa !5
  %1890 = load ptr, ptr %8, align 8, !tbaa !5
  %1891 = call ptr @qh_skipfilename(ptr noundef %1889, ptr noundef %1890)
  store ptr %1891, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 500, ptr %20) #7
  %1892 = load ptr, ptr %3, align 8, !tbaa !5
  %1893 = getelementptr inbounds [500 x i8], ptr %20, i64 0, i64 0
  %1894 = load ptr, ptr %8, align 8, !tbaa !5
  %1895 = load ptr, ptr %9, align 8, !tbaa !5
  %1896 = load ptr, ptr %8, align 8, !tbaa !5
  %1897 = ptrtoint ptr %1895 to i64
  %1898 = ptrtoint ptr %1896 to i64
  %1899 = sub i64 %1897, %1898
  %1900 = trunc i64 %1899 to i32
  call void @qh_copyfilename(ptr noundef %1892, ptr noundef %1893, i32 noundef 500, ptr noundef %1894, i32 noundef %1900)
  %1901 = load ptr, ptr %3, align 8, !tbaa !5
  %1902 = getelementptr inbounds %struct.qhT, ptr %1901, i32 0, i32 157
  %1903 = load ptr, ptr %1902, align 8, !tbaa !122
  %1904 = icmp ne ptr %1903, null
  br i1 %1904, label %1912, label %1905

1905:                                             ; preds = %1888
  %1906 = load ptr, ptr %3, align 8, !tbaa !5
  %1907 = load ptr, ptr %3, align 8, !tbaa !5
  %1908 = getelementptr inbounds %struct.qhT, ptr %1907, i32 0, i32 158
  %1909 = load ptr, ptr %1908, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1906, ptr noundef %1909, i32 noundef 7092, ptr noundef @.str.163)
  %1910 = load ptr, ptr %8, align 8, !tbaa !5
  %1911 = getelementptr inbounds i8, ptr %1910, i64 -2
  store ptr %1911, ptr %13, align 8, !tbaa !5
  br label %1931

1912:                                             ; preds = %1888
  %1913 = getelementptr inbounds [500 x i8], ptr %20, i64 0, i64 0
  %1914 = load ptr, ptr %3, align 8, !tbaa !5
  %1915 = getelementptr inbounds %struct.qhT, ptr %1914, i32 0, i32 157
  %1916 = load ptr, ptr %1915, align 8, !tbaa !122
  %1917 = call ptr @freopen(ptr noundef %1913, ptr noundef @.str.164, ptr noundef %1916)
  %1918 = icmp ne ptr %1917, null
  br i1 %1918, label %1926, label %1919

1919:                                             ; preds = %1912
  %1920 = load ptr, ptr %3, align 8, !tbaa !5
  %1921 = load ptr, ptr %3, align 8, !tbaa !5
  %1922 = getelementptr inbounds %struct.qhT, ptr %1921, i32 0, i32 158
  %1923 = load ptr, ptr %1922, align 8, !tbaa !17
  %1924 = getelementptr inbounds [500 x i8], ptr %20, i64 0, i64 0
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1920, ptr noundef %1923, i32 noundef 6044, ptr noundef @.str.165, ptr noundef %1924)
  %1925 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_errexit(ptr noundef %1925, i32 noundef 1, ptr noundef null, ptr noundef null)
  br label %1930

1926:                                             ; preds = %1912
  %1927 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1927, ptr noundef @.str.166, ptr noundef null, ptr noundef null)
  %1928 = load ptr, ptr %3, align 8, !tbaa !5
  %1929 = getelementptr inbounds [500 x i8], ptr %20, i64 0, i64 0
  call void @qh_option(ptr noundef %1928, ptr noundef %1929, ptr noundef null, ptr noundef null)
  br label %1930

1930:                                             ; preds = %1926, %1919
  br label %1931

1931:                                             ; preds = %1930, %1905
  %1932 = load ptr, ptr %9, align 8, !tbaa !5
  store ptr %1932, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 500, ptr %20) #7
  br label %2197

1933:                                             ; preds = %1701
  %1934 = call ptr @__ctype_b_loc() #9
  %1935 = load ptr, ptr %1934, align 8, !tbaa !5
  %1936 = load ptr, ptr %8, align 8, !tbaa !5
  %1937 = load i8, ptr %1936, align 1, !tbaa !18
  %1938 = sext i8 %1937 to i32
  %1939 = sext i32 %1938 to i64
  %1940 = getelementptr inbounds i16, ptr %1935, i64 %1939
  %1941 = load i16, ptr %1940, align 2, !tbaa !19
  %1942 = zext i16 %1941 to i32
  %1943 = and i32 %1942, 2048
  %1944 = icmp ne i32 %1943, 0
  br i1 %1944, label %1952, label %1945

1945:                                             ; preds = %1933
  %1946 = load ptr, ptr %3, align 8, !tbaa !5
  %1947 = load ptr, ptr %3, align 8, !tbaa !5
  %1948 = getelementptr inbounds %struct.qhT, ptr %1947, i32 0, i32 158
  %1949 = load ptr, ptr %1948, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1946, ptr noundef %1949, i32 noundef 7093, ptr noundef @.str.167)
  %1950 = load ptr, ptr %8, align 8, !tbaa !5
  %1951 = getelementptr inbounds i8, ptr %1950, i64 -2
  store ptr %1951, ptr %13, align 8, !tbaa !5
  br label %1960

1952:                                             ; preds = %1933
  %1953 = load ptr, ptr %8, align 8, !tbaa !5
  %1954 = call i32 @qh_strtol(ptr noundef %1953, ptr noundef %9)
  store i32 %1954, ptr %6, align 4, !tbaa !9
  %1955 = load i32, ptr %6, align 4, !tbaa !9
  %1956 = add nsw i32 %1955, 1
  %1957 = load ptr, ptr %3, align 8, !tbaa !5
  %1958 = getelementptr inbounds %struct.qhT, ptr %1957, i32 0, i32 87
  store i32 %1956, ptr %1958, align 4, !tbaa !129
  %1959 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %1959, ptr noundef @.str.168, ptr noundef %6, ptr noundef null)
  br label %1960

1960:                                             ; preds = %1952, %1945
  %1961 = load ptr, ptr %9, align 8, !tbaa !5
  store ptr %1961, ptr %8, align 8, !tbaa !5
  br label %2197

1962:                                             ; preds = %1701
  %1963 = load ptr, ptr %8, align 8, !tbaa !5
  %1964 = load i8, ptr %1963, align 1, !tbaa !18
  %1965 = sext i8 %1964 to i32
  %1966 = icmp eq i32 %1965, 45
  br i1 %1966, label %1967, label %2017

1967:                                             ; preds = %1962
  %1968 = load ptr, ptr %8, align 8, !tbaa !5
  %1969 = getelementptr inbounds i8, ptr %1968, i64 1
  %1970 = load i8, ptr %1969, align 1, !tbaa !18
  %1971 = sext i8 %1970 to i32
  %1972 = icmp eq i32 %1971, 49
  br i1 %1972, label %1973, label %1994

1973:                                             ; preds = %1967
  %1974 = call ptr @__ctype_b_loc() #9
  %1975 = load ptr, ptr %1974, align 8, !tbaa !5
  %1976 = load ptr, ptr %8, align 8, !tbaa !5
  %1977 = getelementptr inbounds i8, ptr %1976, i64 2
  %1978 = load i8, ptr %1977, align 1, !tbaa !18
  %1979 = sext i8 %1978 to i32
  %1980 = sext i32 %1979 to i64
  %1981 = getelementptr inbounds i16, ptr %1975, i64 %1980
  %1982 = load i16, ptr %1981, align 2, !tbaa !19
  %1983 = zext i16 %1982 to i32
  %1984 = and i32 %1983, 2048
  %1985 = icmp ne i32 %1984, 0
  br i1 %1985, label %1994, label %1986

1986:                                             ; preds = %1973
  %1987 = load ptr, ptr %8, align 8, !tbaa !5
  %1988 = getelementptr inbounds i8, ptr %1987, i64 2
  store ptr %1988, ptr %8, align 8, !tbaa !5
  %1989 = load ptr, ptr %3, align 8, !tbaa !5
  %1990 = getelementptr inbounds %struct.qhT, ptr %1989, i32 0, i32 94
  store i32 -1, ptr %1990, align 8, !tbaa !130
  %1991 = load ptr, ptr %3, align 8, !tbaa !5
  %1992 = load ptr, ptr %3, align 8, !tbaa !5
  %1993 = getelementptr inbounds %struct.qhT, ptr %1992, i32 0, i32 94
  call void @qh_option(ptr noundef %1991, ptr noundef @.str.169, ptr noundef %1993, ptr noundef null)
  br label %2016

1994:                                             ; preds = %1973, %1967
  %1995 = load ptr, ptr %3, align 8, !tbaa !5
  %1996 = load ptr, ptr %3, align 8, !tbaa !5
  %1997 = getelementptr inbounds %struct.qhT, ptr %1996, i32 0, i32 158
  %1998 = load ptr, ptr %1997, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1995, ptr noundef %1998, i32 noundef 7100, ptr noundef @.str.170)
  %1999 = load ptr, ptr %8, align 8, !tbaa !5
  %2000 = getelementptr inbounds i8, ptr %1999, i64 -2
  store ptr %2000, ptr %13, align 8, !tbaa !5
  br label %2001

2001:                                             ; preds = %2014, %1994
  %2002 = call ptr @__ctype_b_loc() #9
  %2003 = load ptr, ptr %2002, align 8, !tbaa !5
  %2004 = load ptr, ptr %8, align 8, !tbaa !5
  %2005 = getelementptr inbounds i8, ptr %2004, i32 1
  store ptr %2005, ptr %8, align 8, !tbaa !5
  %2006 = load i8, ptr %2005, align 1, !tbaa !18
  %2007 = sext i8 %2006 to i32
  %2008 = sext i32 %2007 to i64
  %2009 = getelementptr inbounds i16, ptr %2003, i64 %2008
  %2010 = load i16, ptr %2009, align 2, !tbaa !19
  %2011 = zext i16 %2010 to i32
  %2012 = and i32 %2011, 2048
  %2013 = icmp ne i32 %2012, 0
  br i1 %2013, label %2014, label %2015

2014:                                             ; preds = %2001
  br label %2001, !llvm.loop !131

2015:                                             ; preds = %2001
  br label %2016

2016:                                             ; preds = %2015, %1986
  br label %2045

2017:                                             ; preds = %1962
  %2018 = call ptr @__ctype_b_loc() #9
  %2019 = load ptr, ptr %2018, align 8, !tbaa !5
  %2020 = load ptr, ptr %8, align 8, !tbaa !5
  %2021 = load i8, ptr %2020, align 1, !tbaa !18
  %2022 = sext i8 %2021 to i32
  %2023 = sext i32 %2022 to i64
  %2024 = getelementptr inbounds i16, ptr %2019, i64 %2023
  %2025 = load i16, ptr %2024, align 2, !tbaa !19
  %2026 = zext i16 %2025 to i32
  %2027 = and i32 %2026, 2048
  %2028 = icmp ne i32 %2027, 0
  br i1 %2028, label %2036, label %2029

2029:                                             ; preds = %2017
  %2030 = load ptr, ptr %3, align 8, !tbaa !5
  %2031 = load ptr, ptr %3, align 8, !tbaa !5
  %2032 = getelementptr inbounds %struct.qhT, ptr %2031, i32 0, i32 158
  %2033 = load ptr, ptr %2032, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %2030, ptr noundef %2033, i32 noundef 7029, ptr noundef @.str.171)
  %2034 = load ptr, ptr %8, align 8, !tbaa !5
  %2035 = getelementptr inbounds i8, ptr %2034, i64 -2
  store ptr %2035, ptr %13, align 8, !tbaa !5
  br label %2044

2036:                                             ; preds = %2017
  %2037 = load ptr, ptr %8, align 8, !tbaa !5
  %2038 = call i32 @qh_strtol(ptr noundef %2037, ptr noundef %8)
  %2039 = load ptr, ptr %3, align 8, !tbaa !5
  %2040 = getelementptr inbounds %struct.qhT, ptr %2039, i32 0, i32 94
  store i32 %2038, ptr %2040, align 8, !tbaa !130
  %2041 = load ptr, ptr %3, align 8, !tbaa !5
  %2042 = load ptr, ptr %3, align 8, !tbaa !5
  %2043 = getelementptr inbounds %struct.qhT, ptr %2042, i32 0, i32 94
  call void @qh_option(ptr noundef %2041, ptr noundef @.str.169, ptr noundef %2043, ptr noundef null)
  br label %2044

2044:                                             ; preds = %2036, %2029
  br label %2045

2045:                                             ; preds = %2044, %2016
  br label %2197

2046:                                             ; preds = %1701
  %2047 = call ptr @__ctype_b_loc() #9
  %2048 = load ptr, ptr %2047, align 8, !tbaa !5
  %2049 = load ptr, ptr %8, align 8, !tbaa !5
  %2050 = load i8, ptr %2049, align 1, !tbaa !18
  %2051 = sext i8 %2050 to i32
  %2052 = sext i32 %2051 to i64
  %2053 = getelementptr inbounds i16, ptr %2048, i64 %2052
  %2054 = load i16, ptr %2053, align 2, !tbaa !19
  %2055 = zext i16 %2054 to i32
  %2056 = and i32 %2055, 2048
  %2057 = icmp ne i32 %2056, 0
  br i1 %2057, label %2065, label %2058

2058:                                             ; preds = %2046
  %2059 = load ptr, ptr %3, align 8, !tbaa !5
  %2060 = load ptr, ptr %3, align 8, !tbaa !5
  %2061 = getelementptr inbounds %struct.qhT, ptr %2060, i32 0, i32 158
  %2062 = load ptr, ptr %2061, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %2059, ptr noundef %2062, i32 noundef 7030, ptr noundef @.str.172)
  %2063 = load ptr, ptr %8, align 8, !tbaa !5
  %2064 = getelementptr inbounds i8, ptr %2063, i64 -2
  store ptr %2064, ptr %13, align 8, !tbaa !5
  br label %2073

2065:                                             ; preds = %2046
  %2066 = load ptr, ptr %8, align 8, !tbaa !5
  %2067 = call i32 @qh_strtol(ptr noundef %2066, ptr noundef %8)
  %2068 = load ptr, ptr %3, align 8, !tbaa !5
  %2069 = getelementptr inbounds %struct.qhT, ptr %2068, i32 0, i32 96
  store i32 %2067, ptr %2069, align 8, !tbaa !132
  %2070 = load ptr, ptr %3, align 8, !tbaa !5
  %2071 = load ptr, ptr %3, align 8, !tbaa !5
  %2072 = getelementptr inbounds %struct.qhT, ptr %2071, i32 0, i32 96
  call void @qh_option(ptr noundef %2070, ptr noundef @.str.173, ptr noundef %2072, ptr noundef null)
  br label %2073

2073:                                             ; preds = %2065, %2058
  br label %2197

2074:                                             ; preds = %1701
  %2075 = call ptr @__ctype_b_loc() #9
  %2076 = load ptr, ptr %2075, align 8, !tbaa !5
  %2077 = load ptr, ptr %8, align 8, !tbaa !5
  %2078 = load i8, ptr %2077, align 1, !tbaa !18
  %2079 = sext i8 %2078 to i32
  %2080 = sext i32 %2079 to i64
  %2081 = getelementptr inbounds i16, ptr %2076, i64 %2080
  %2082 = load i16, ptr %2081, align 2, !tbaa !19
  %2083 = zext i16 %2082 to i32
  %2084 = and i32 %2083, 2048
  %2085 = icmp ne i32 %2084, 0
  br i1 %2085, label %2093, label %2086

2086:                                             ; preds = %2074
  %2087 = load ptr, ptr %3, align 8, !tbaa !5
  %2088 = load ptr, ptr %3, align 8, !tbaa !5
  %2089 = getelementptr inbounds %struct.qhT, ptr %2088, i32 0, i32 158
  %2090 = load ptr, ptr %2089, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %2087, ptr noundef %2090, i32 noundef 7031, ptr noundef @.str.174)
  %2091 = load ptr, ptr %8, align 8, !tbaa !5
  %2092 = getelementptr inbounds i8, ptr %2091, i64 -2
  store ptr %2092, ptr %13, align 8, !tbaa !5
  br label %2101

2093:                                             ; preds = %2074
  %2094 = load ptr, ptr %8, align 8, !tbaa !5
  %2095 = call i32 @qh_strtol(ptr noundef %2094, ptr noundef %8)
  %2096 = load ptr, ptr %3, align 8, !tbaa !5
  %2097 = getelementptr inbounds %struct.qhT, ptr %2096, i32 0, i32 79
  store i32 %2095, ptr %2097, align 4, !tbaa !133
  %2098 = load ptr, ptr %3, align 8, !tbaa !5
  %2099 = load ptr, ptr %3, align 8, !tbaa !5
  %2100 = getelementptr inbounds %struct.qhT, ptr %2099, i32 0, i32 79
  call void @qh_option(ptr noundef %2098, ptr noundef @.str.175, ptr noundef %2100, ptr noundef null)
  br label %2101

2101:                                             ; preds = %2093, %2086
  br label %2197

2102:                                             ; preds = %1701
  %2103 = load ptr, ptr %8, align 8, !tbaa !5
  %2104 = call i32 @qh_strtol(ptr noundef %2103, ptr noundef %9)
  store i32 %2104, ptr %6, align 4, !tbaa !9
  %2105 = load ptr, ptr %8, align 8, !tbaa !5
  %2106 = load ptr, ptr %9, align 8, !tbaa !5
  %2107 = icmp eq ptr %2105, %2106
  br i1 %2107, label %2108, label %2115

2108:                                             ; preds = %2102
  %2109 = load ptr, ptr %3, align 8, !tbaa !5
  %2110 = load ptr, ptr %3, align 8, !tbaa !5
  %2111 = getelementptr inbounds %struct.qhT, ptr %2110, i32 0, i32 158
  %2112 = load ptr, ptr %2111, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %2109, ptr noundef %2112, i32 noundef 7032, ptr noundef @.str.176)
  %2113 = load ptr, ptr %8, align 8, !tbaa !5
  %2114 = getelementptr inbounds i8, ptr %2113, i64 -2
  store ptr %2114, ptr %13, align 8, !tbaa !5
  br label %2131

2115:                                             ; preds = %2102
  %2116 = load i32, ptr %6, align 4, !tbaa !9
  %2117 = icmp slt i32 %2116, 0
  br i1 %2117, label %2118, label %2124

2118:                                             ; preds = %2115
  %2119 = load i32, ptr %6, align 4, !tbaa !9
  %2120 = sub nsw i32 %2119, 1
  %2121 = load ptr, ptr %3, align 8, !tbaa !5
  %2122 = getelementptr inbounds %struct.qhT, ptr %2121, i32 0, i32 89
  store i32 %2120, ptr %2122, align 4, !tbaa !134
  %2123 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %2123, ptr noundef @.str.177, ptr noundef %6, ptr noundef null)
  br label %2130

2124:                                             ; preds = %2115
  %2125 = load i32, ptr %6, align 4, !tbaa !9
  %2126 = add nsw i32 %2125, 1
  %2127 = load ptr, ptr %3, align 8, !tbaa !5
  %2128 = getelementptr inbounds %struct.qhT, ptr %2127, i32 0, i32 89
  store i32 %2126, ptr %2128, align 4, !tbaa !134
  %2129 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_option(ptr noundef %2129, ptr noundef @.str.178, ptr noundef %6, ptr noundef null)
  br label %2130

2130:                                             ; preds = %2124, %2118
  br label %2131

2131:                                             ; preds = %2130, %2108
  %2132 = load ptr, ptr %9, align 8, !tbaa !5
  store ptr %2132, ptr %8, align 8, !tbaa !5
  br label %2197

2133:                                             ; preds = %1701
  %2134 = call ptr @__ctype_b_loc() #9
  %2135 = load ptr, ptr %2134, align 8, !tbaa !5
  %2136 = load ptr, ptr %8, align 8, !tbaa !5
  %2137 = load i8, ptr %2136, align 1, !tbaa !18
  %2138 = sext i8 %2137 to i32
  %2139 = sext i32 %2138 to i64
  %2140 = getelementptr inbounds i16, ptr %2135, i64 %2139
  %2141 = load i16, ptr %2140, align 2, !tbaa !19
  %2142 = zext i16 %2141 to i32
  %2143 = and i32 %2142, 2048
  %2144 = icmp ne i32 %2143, 0
  br i1 %2144, label %2152, label %2145

2145:                                             ; preds = %2133
  %2146 = load ptr, ptr %3, align 8, !tbaa !5
  %2147 = load ptr, ptr %3, align 8, !tbaa !5
  %2148 = getelementptr inbounds %struct.qhT, ptr %2147, i32 0, i32 158
  %2149 = load ptr, ptr %2148, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %2146, ptr noundef %2149, i32 noundef 7033, ptr noundef @.str.179)
  %2150 = load ptr, ptr %8, align 8, !tbaa !5
  %2151 = getelementptr inbounds i8, ptr %2150, i64 -2
  store ptr %2151, ptr %13, align 8, !tbaa !5
  br label %2160

2152:                                             ; preds = %2133
  %2153 = load ptr, ptr %8, align 8, !tbaa !5
  %2154 = call double @qh_strtod(ptr noundef %2153, ptr noundef %8)
  %2155 = load ptr, ptr %3, align 8, !tbaa !5
  %2156 = getelementptr inbounds %struct.qhT, ptr %2155, i32 0, i32 95
  store double %2154, ptr %2156, align 8, !tbaa !135
  %2157 = load ptr, ptr %3, align 8, !tbaa !5
  %2158 = load ptr, ptr %3, align 8, !tbaa !5
  %2159 = getelementptr inbounds %struct.qhT, ptr %2158, i32 0, i32 95
  call void @qh_option(ptr noundef %2157, ptr noundef @.str.180, ptr noundef null, ptr noundef %2159)
  br label %2160

2160:                                             ; preds = %2152, %2145
  br label %2197

2161:                                             ; preds = %1701
  %2162 = load ptr, ptr %8, align 8, !tbaa !5
  %2163 = getelementptr inbounds i8, ptr %2162, i32 -1
  store ptr %2163, ptr %8, align 8, !tbaa !5
  %2164 = load ptr, ptr %3, align 8, !tbaa !5
  %2165 = load ptr, ptr %3, align 8, !tbaa !5
  %2166 = getelementptr inbounds %struct.qhT, ptr %2165, i32 0, i32 158
  %2167 = load ptr, ptr %2166, align 8, !tbaa !17
  %2168 = load ptr, ptr %8, align 8, !tbaa !5
  %2169 = getelementptr inbounds i8, ptr %2168, i64 0
  %2170 = load i8, ptr %2169, align 1, !tbaa !18
  %2171 = sext i8 %2170 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %2164, ptr noundef %2167, i32 noundef 7034, ptr noundef @.str.181, i32 noundef %2171)
  %2172 = load ptr, ptr %8, align 8, !tbaa !5
  %2173 = getelementptr inbounds i8, ptr %2172, i64 -2
  store ptr %2173, ptr %13, align 8, !tbaa !5
  br label %2174

2174:                                             ; preds = %2195, %2161
  %2175 = load ptr, ptr %8, align 8, !tbaa !5
  %2176 = getelementptr inbounds i8, ptr %2175, i32 1
  store ptr %2176, ptr %8, align 8, !tbaa !5
  %2177 = load i8, ptr %2176, align 1, !tbaa !18
  %2178 = sext i8 %2177 to i32
  %2179 = icmp ne i32 %2178, 0
  br i1 %2179, label %2180, label %2193

2180:                                             ; preds = %2174
  %2181 = call ptr @__ctype_b_loc() #9
  %2182 = load ptr, ptr %2181, align 8, !tbaa !5
  %2183 = load ptr, ptr %8, align 8, !tbaa !5
  %2184 = load i8, ptr %2183, align 1, !tbaa !18
  %2185 = sext i8 %2184 to i32
  %2186 = sext i32 %2185 to i64
  %2187 = getelementptr inbounds i16, ptr %2182, i64 %2186
  %2188 = load i16, ptr %2187, align 2, !tbaa !19
  %2189 = zext i16 %2188 to i32
  %2190 = and i32 %2189, 8192
  %2191 = icmp ne i32 %2190, 0
  %2192 = xor i1 %2191, true
  br label %2193

2193:                                             ; preds = %2180, %2174
  %2194 = phi i1 [ false, %2174 ], [ %2192, %2180 ]
  br i1 %2194, label %2195, label %2196

2195:                                             ; preds = %2193
  br label %2174, !llvm.loop !136

2196:                                             ; preds = %2193
  br label %2197

2197:                                             ; preds = %2196, %2160, %2131, %2101, %2073, %2045, %1960, %1931, %1871, %1825, %1791, %1763, %1722, %1718, %1714, %1710, %1706
  br label %2198

2198:                                             ; preds = %2197, %1696
  br label %1659, !llvm.loop !137

2199:                                             ; preds = %1677
  br label %2215

2200:                                             ; preds = %131
  %2201 = load ptr, ptr %3, align 8, !tbaa !5
  %2202 = load ptr, ptr %3, align 8, !tbaa !5
  %2203 = getelementptr inbounds %struct.qhT, ptr %2202, i32 0, i32 158
  %2204 = load ptr, ptr %2203, align 8, !tbaa !17
  %2205 = load ptr, ptr %8, align 8, !tbaa !5
  %2206 = getelementptr inbounds i8, ptr %2205, i64 -1
  %2207 = load i8, ptr %2206, align 1, !tbaa !18
  %2208 = sext i8 %2207 to i32
  %2209 = load ptr, ptr %8, align 8, !tbaa !5
  %2210 = getelementptr inbounds i8, ptr %2209, i64 -1
  %2211 = load i8, ptr %2210, align 1, !tbaa !18
  %2212 = sext i8 %2211 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %2201, ptr noundef %2204, i32 noundef 7094, ptr noundef @.str.182, i32 noundef %2208, i32 noundef %2212)
  %2213 = load ptr, ptr %8, align 8, !tbaa !5
  %2214 = getelementptr inbounds i8, ptr %2213, i64 -2
  store ptr %2214, ptr %13, align 8, !tbaa !5
  br label %2215

2215:                                             ; preds = %2200, %2199, %1657, %1049, %857, %709, %558, %514, %481, %448, %418, %330, %286, %227, %163, %159, %156, %153, %150, %147, %144, %141, %137
  %2216 = load ptr, ptr %8, align 8, !tbaa !5
  %2217 = getelementptr inbounds i8, ptr %2216, i64 -1
  %2218 = load ptr, ptr %10, align 8, !tbaa !5
  %2219 = icmp eq ptr %2217, %2218
  br i1 %2219, label %2220, label %2277

2220:                                             ; preds = %2215
  %2221 = load ptr, ptr %8, align 8, !tbaa !5
  %2222 = load i8, ptr %2221, align 1, !tbaa !18
  %2223 = sext i8 %2222 to i32
  %2224 = icmp ne i32 %2223, 0
  br i1 %2224, label %2225, label %2277

2225:                                             ; preds = %2220
  %2226 = call ptr @__ctype_b_loc() #9
  %2227 = load ptr, ptr %2226, align 8, !tbaa !5
  %2228 = load ptr, ptr %8, align 8, !tbaa !5
  %2229 = load i8, ptr %2228, align 1, !tbaa !18
  %2230 = sext i8 %2229 to i32
  %2231 = sext i32 %2230 to i64
  %2232 = getelementptr inbounds i16, ptr %2227, i64 %2231
  %2233 = load i16, ptr %2232, align 2, !tbaa !19
  %2234 = zext i16 %2233 to i32
  %2235 = and i32 %2234, 8192
  %2236 = icmp ne i32 %2235, 0
  br i1 %2236, label %2277, label %2237

2237:                                             ; preds = %2225
  %2238 = load ptr, ptr %3, align 8, !tbaa !5
  %2239 = load ptr, ptr %3, align 8, !tbaa !5
  %2240 = getelementptr inbounds %struct.qhT, ptr %2239, i32 0, i32 158
  %2241 = load ptr, ptr %2240, align 8, !tbaa !17
  %2242 = load ptr, ptr %10, align 8, !tbaa !5
  %2243 = load i8, ptr %2242, align 1, !tbaa !18
  %2244 = sext i8 %2243 to i32
  %2245 = load ptr, ptr %10, align 8, !tbaa !5
  %2246 = load i8, ptr %2245, align 1, !tbaa !18
  %2247 = sext i8 %2246 to i32
  %2248 = load ptr, ptr %10, align 8, !tbaa !5
  %2249 = load i8, ptr %2248, align 1, !tbaa !18
  %2250 = sext i8 %2249 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %2238, ptr noundef %2241, i32 noundef 7036, ptr noundef @.str.183, i32 noundef %2244, i32 noundef %2247, i32 noundef %2250)
  %2251 = load ptr, ptr %8, align 8, !tbaa !5
  %2252 = getelementptr inbounds i8, ptr %2251, i64 -1
  store ptr %2252, ptr %13, align 8, !tbaa !5
  br label %2253

2253:                                             ; preds = %2273, %2237
  %2254 = load ptr, ptr %8, align 8, !tbaa !5
  %2255 = load i8, ptr %2254, align 1, !tbaa !18
  %2256 = sext i8 %2255 to i32
  %2257 = icmp ne i32 %2256, 0
  br i1 %2257, label %2258, label %2271

2258:                                             ; preds = %2253
  %2259 = call ptr @__ctype_b_loc() #9
  %2260 = load ptr, ptr %2259, align 8, !tbaa !5
  %2261 = load ptr, ptr %8, align 8, !tbaa !5
  %2262 = load i8, ptr %2261, align 1, !tbaa !18
  %2263 = sext i8 %2262 to i32
  %2264 = sext i32 %2263 to i64
  %2265 = getelementptr inbounds i16, ptr %2260, i64 %2264
  %2266 = load i16, ptr %2265, align 2, !tbaa !19
  %2267 = zext i16 %2266 to i32
  %2268 = and i32 %2267, 8192
  %2269 = icmp ne i32 %2268, 0
  %2270 = xor i1 %2269, true
  br label %2271

2271:                                             ; preds = %2258, %2253
  %2272 = phi i1 [ false, %2253 ], [ %2270, %2258 ]
  br i1 %2272, label %2273, label %2276

2273:                                             ; preds = %2271
  %2274 = load ptr, ptr %8, align 8, !tbaa !5
  %2275 = getelementptr inbounds i8, ptr %2274, i32 1
  store ptr %2275, ptr %8, align 8, !tbaa !5
  br label %2253, !llvm.loop !138

2276:                                             ; preds = %2271
  br label %2277

2277:                                             ; preds = %2276, %2225, %2220, %2215
  br label %91, !llvm.loop !139

2278:                                             ; preds = %130, %91
  %2279 = load ptr, ptr %3, align 8, !tbaa !5
  %2280 = getelementptr inbounds %struct.qhT, ptr %2279, i32 0, i32 88
  %2281 = load i32, ptr %2280, align 8, !tbaa !124
  %2282 = icmp ne i32 %2281, 0
  br i1 %2282, label %2283, label %2294

2283:                                             ; preds = %2278
  %2284 = load ptr, ptr %3, align 8, !tbaa !5
  %2285 = getelementptr inbounds %struct.qhT, ptr %2284, i32 0, i32 197
  %2286 = load double, ptr %2285, align 8, !tbaa !110
  %2287 = fcmp olt double %2286, 0x7FDFFFFFFFFFFFFF
  br i1 %2287, label %2288, label %2294

2288:                                             ; preds = %2283
  %2289 = load ptr, ptr %3, align 8, !tbaa !5
  %2290 = load ptr, ptr %3, align 8, !tbaa !5
  %2291 = getelementptr inbounds %struct.qhT, ptr %2290, i32 0, i32 158
  %2292 = load ptr, ptr %2291, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %2289, ptr noundef %2292, i32 noundef 7078, ptr noundef @.str.184)
  %2293 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %2293, ptr %13, align 8, !tbaa !5
  br label %2294

2294:                                             ; preds = %2288, %2283, %2278
  %2295 = load i32, ptr %14, align 4, !tbaa !9
  %2296 = icmp ne i32 %2295, 0
  br i1 %2296, label %2297, label %2314

2297:                                             ; preds = %2294
  %2298 = load ptr, ptr %3, align 8, !tbaa !5
  %2299 = getelementptr inbounds %struct.qhT, ptr %2298, i32 0, i32 21
  %2300 = load i32, ptr %2299, align 8, !tbaa !67
  %2301 = icmp ne i32 %2300, 0
  br i1 %2301, label %2314, label %2302

2302:                                             ; preds = %2297
  %2303 = load ptr, ptr %3, align 8, !tbaa !5
  %2304 = getelementptr inbounds %struct.qhT, ptr %2303, i32 0, i32 64
  %2305 = getelementptr inbounds [29 x i32], ptr %2304, i64 0, i64 1
  %2306 = load i32, ptr %2305, align 4, !tbaa !9
  %2307 = icmp ne i32 %2306, 0
  br i1 %2307, label %2308, label %2314

2308:                                             ; preds = %2302
  %2309 = load ptr, ptr %3, align 8, !tbaa !5
  %2310 = load ptr, ptr %3, align 8, !tbaa !5
  %2311 = getelementptr inbounds %struct.qhT, ptr %2310, i32 0, i32 158
  %2312 = load ptr, ptr %2311, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %2309, ptr noundef %2312, i32 noundef 7037, ptr noundef @.str.185)
  %2313 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %2313, ptr %13, align 8, !tbaa !5
  br label %2314

2314:                                             ; preds = %2308, %2302, %2297, %2294
  %2315 = load ptr, ptr %13, align 8, !tbaa !5
  %2316 = icmp ne ptr %2315, null
  br i1 %2316, label %2317, label %2335

2317:                                             ; preds = %2314
  %2318 = load ptr, ptr %3, align 8, !tbaa !5
  %2319 = getelementptr inbounds %struct.qhT, ptr %2318, i32 0, i32 2
  %2320 = load i32, ptr %2319, align 8, !tbaa !113
  %2321 = icmp ne i32 %2320, 0
  br i1 %2321, label %2335, label %2322

2322:                                             ; preds = %2317
  %2323 = load ptr, ptr %3, align 8, !tbaa !5
  %2324 = load ptr, ptr %3, align 8, !tbaa !5
  %2325 = getelementptr inbounds %struct.qhT, ptr %2324, i32 0, i32 158
  %2326 = load ptr, ptr %2325, align 8, !tbaa !17
  %2327 = load ptr, ptr %4, align 8, !tbaa !5
  %2328 = load ptr, ptr %13, align 8, !tbaa !5
  %2329 = load ptr, ptr %4, align 8, !tbaa !5
  %2330 = ptrtoint ptr %2328 to i64
  %2331 = ptrtoint ptr %2329 to i64
  %2332 = sub i64 %2330, %2331
  %2333 = trunc i64 %2332 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %2323, ptr noundef %2326, i32 noundef 6035, ptr noundef @.str.186, ptr noundef %2327, i32 noundef %2333)
  %2334 = load ptr, ptr %3, align 8, !tbaa !5
  call void @qh_errexit(ptr noundef %2334, i32 noundef 1, ptr noundef null, ptr noundef null)
  br label %2335

2335:                                             ; preds = %2322, %2317, %2314
  %2336 = load ptr, ptr %3, align 8, !tbaa !5
  %2337 = getelementptr inbounds %struct.qhT, ptr %2336, i32 0, i32 29
  %2338 = load i32, ptr %2337, align 8, !tbaa !78
  %2339 = icmp sge i32 %2338, 4
  br i1 %2339, label %2340, label %2345

2340:                                             ; preds = %2335
  %2341 = load ptr, ptr %3, align 8, !tbaa !5
  %2342 = load ptr, ptr %3, align 8, !tbaa !5
  %2343 = getelementptr inbounds %struct.qhT, ptr %2342, i32 0, i32 158
  %2344 = load ptr, ptr %2343, align 8, !tbaa !17
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %2341, ptr noundef %2344, i32 noundef 4093, ptr noundef @.str.187)
  br label %2345

2345:                                             ; preds = %2340, %2335
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #7
  ret void
}

; Function Attrs: nounwind
declare ptr @strncat(ptr noundef, ptr noundef, i64 noundef) #5

; Function Attrs: nounwind uwtable
declare dso_local void @qh_option(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #0

; Function Attrs: nounwind allocsize(0,1)
declare noalias ptr @calloc(i64 noundef, i64 noundef) #6

; Function Attrs: nounwind
declare ptr @strncpy(ptr noundef, ptr noundef, i64 noundef) #5

declare i32 @qh_strtol(ptr noundef, ptr noundef) #3

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

declare void @qh_copyfilename(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) #3

declare ptr @freopen(ptr noundef, ptr noundef, ptr noundef) #3

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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind allocsize(0,1) "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(read) }
attributes #9 = { nounwind willreturn memory(none) }
attributes #10 = { nounwind allocsize(0,1) }

!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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 2720}
!12 = !{!"qhT", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !13, i64 24, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !13, i64 64, !13, i64 72, !10, i64 80, !10, i64 84, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !6, i64 104, !10, i64 112, !10, i64 116, !6, i64 120, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !10, i64 152, !13, i64 160, !13, i64 168, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !13, i64 192, !13, i64 200, !10, i64 208, !10, i64 212, !13, i64 216, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !10, i64 240, !10, i64 244, !10, i64 248, !10, i64 252, !10, i64 256, !10, i64 260, !10, i64 264, !10, i64 268, !10, i64 272, !10, i64 276, !10, i64 280, !10, i64 284, !10, i64 288, !10, i64 292, !10, i64 296, !7, i64 300, !10, i64 416, !10, i64 420, !10, i64 424, !10, i64 428, !10, i64 432, !10, i64 436, !10, i64 440, !10, i64 444, !13, i64 448, !13, i64 456, !13, i64 464, !10, i64 472, !10, i64 476, !10, i64 480, !10, i64 484, !10, i64 488, !10, i64 492, !10, i64 496, !10, i64 500, !10, i64 504, !10, i64 508, !10, i64 512, !10, i64 516, !10, i64 520, !10, i64 524, !10, i64 528, !10, i64 532, !10, i64 536, !10, i64 540, !10, i64 544, !13, i64 552, !10, i64 560, !10, i64 564, !10, i64 568, !10, i64 572, !10, i64 576, !10, i64 580, !10, i64 584, !10, i64 588, !13, i64 592, !10, i64 600, !6, i64 608, !6, i64 616, !10, i64 624, !10, i64 628, !10, i64 632, !10, i64 636, !10, i64 640, !6, i64 648, !10, i64 656, !6, i64 664, !10, i64 672, !7, i64 676, !10, i64 932, !7, i64 936, !7, i64 1192, !10, i64 1704, !10, i64 1708, !10, i64 1712, !10, i64 1716, !10, i64 1720, !10, i64 1724, !6, i64 1728, !6, i64 1736, !6, i64 1744, !6, i64 1752, !13, i64 1760, !13, i64 1768, !13, i64 1776, !13, i64 1784, !13, i64 1792, !13, i64 1800, !13, i64 1808, !13, i64 1816, !13, i64 1824, !13, i64 1832, !13, i64 1840, !13, i64 1848, !13, i64 1856, !13, i64 1864, !6, i64 1872, !13, i64 1880, !13, i64 1888, !13, i64 1896, !13, i64 1904, !10, i64 1912, !7, i64 1916, !7, i64 1928, !7, i64 2128, !7, i64 2168, !7, i64 2368, !6, i64 2408, !6, i64 2416, !6, i64 2424, !6, i64 2432, !10, i64 2440, !10, i64 2444, !10, i64 2448, !6, i64 2456, !6, i64 2464, !6, i64 2472, !6, i64 2480, !6, i64 2488, !10, i64 2496, !10, i64 2500, !6, i64 2504, !10, i64 2512, !6, i64 2520, !10, i64 2528, !6, i64 2536, !6, i64 2544, !6, i64 2552, !6, i64 2560, !10, i64 2568, !10, i64 2572, !10, i64 2576, !10, i64 2580, !10, i64 2584, !10, i64 2588, !10, i64 2592, !10, i64 2596, !14, i64 2600, !10, i64 2608, !10, i64 2612, !10, i64 2616, !10, i64 2620, !10, i64 2624, !6, i64 2632, !6, i64 2640, !10, i64 2648, !10, i64 2652, !10, i64 2656, !13, i64 2664, !10, i64 2672, !13, i64 2680, !13, i64 2688, !13, i64 2696, !10, i64 2704, !10, i64 2708, !10, i64 2712, !10, i64 2716, !10, i64 2720, !13, i64 2728, !13, i64 2736, !10, i64 2744, !10, i64 2748, !10, i64 2752, !10, i64 2756, !10, i64 2760, !10, i64 2764, !13, i64 2768, !13, i64 2776, !10, i64 2784, !10, i64 2788, !10, i64 2792, !10, i64 2796, !6, i64 2800, !6, i64 2808, !6, i64 2816, !6, i64 2824, !6, i64 2832, !6, i64 2840, !6, i64 2848, !6, i64 2856, !6, i64 2864, !10, i64 2872, !6, i64 2880, !6, i64 2888, !10, i64 2896, !10, i64 2900, !10, i64 2904, !6, i64 2912, !13, i64 2920, !13, i64 2928, !13, i64 2936, !13, i64 2944, !10, i64 2952, !10, i64 2956, !10, i64 2960, !10, i64 2964, !10, i64 2968, !10, i64 2972, !6, i64 2976, !10, i64 2984, !10, i64 2988, !7, i64 2992, !7, i64 3192, !10, i64 3232, !13, i64 3240, !6, i64 3248, !6, i64 3256, !6, i64 3264, !15, i64 3272, !16, i64 3424}
!13 = !{!"double", !7, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!"qhmemT", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !10, i64 64, !6, i64 72, !6, i64 80, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !10, i64 104, !10, i64 108, !10, i64 112, !10, i64 116, !10, i64 120, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144}
!16 = !{!"qhstatT", !7, i64 0, !7, i64 1992, !7, i64 2256, !7, i64 4248, !7, i64 4746, !7, i64 4995, !7, i64 5248, !10, i64 5320, !10, i64 5324, !10, i64 5328, !10, i64 5332, !13, i64 5336}
!17 = !{!12, !6, i64 2424}
!18 = !{!7, !7, i64 0}
!19 = !{!20, !20, i64 0}
!20 = !{!"short", !7, i64 0}
!21 = distinct !{!21, !22}
!22 = !{!"llvm.loop.mustprogress"}
!23 = distinct !{!23, !22}
!24 = !{!12, !10, i64 80}
!25 = !{!12, !10, i64 428}
!26 = !{!12, !10, i64 588}
!27 = !{!12, !13, i64 64}
!28 = !{!12, !10, i64 252}
!29 = !{!12, !13, i64 72}
!30 = !{!12, !10, i64 248}
!31 = !{!12, !10, i64 188}
!32 = !{!12, !13, i64 192}
!33 = !{!12, !13, i64 200}
!34 = !{!12, !13, i64 1784}
!35 = !{!12, !10, i64 500}
!36 = !{!12, !10, i64 128}
!37 = distinct !{!37, !22}
!38 = !{!12, !6, i64 608}
!39 = !{!12, !13, i64 448}
!40 = !{!12, !10, i64 444}
!41 = !{!12, !13, i64 216}
!42 = !{!12, !13, i64 168}
!43 = !{!12, !13, i64 24}
!44 = !{!12, !10, i64 20}
!45 = !{!12, !10, i64 624}
!46 = !{!12, !10, i64 48}
!47 = !{!12, !10, i64 52}
!48 = !{!12, !10, i64 288}
!49 = distinct !{!49, !22}
!50 = distinct !{!50, !22}
!51 = !{!12, !10, i64 268}
!52 = !{!12, !10, i64 256}
!53 = !{!12, !10, i64 84}
!54 = !{!12, !10, i64 276}
!55 = !{!12, !10, i64 284}
!56 = !{!12, !10, i64 292}
!57 = !{!12, !10, i64 260}
!58 = !{!12, !10, i64 416}
!59 = !{!12, !10, i64 432}
!60 = !{!12, !10, i64 420}
!61 = !{!12, !10, i64 88}
!62 = distinct !{!62, !22}
!63 = distinct !{!63, !22}
!64 = !{!13, !13, i64 0}
!65 = !{!12, !10, i64 272}
!66 = !{!12, !10, i64 280}
!67 = !{!12, !10, i64 96}
!68 = !{!12, !10, i64 296}
!69 = !{!12, !10, i64 140}
!70 = !{!12, !13, i64 160}
!71 = !{!12, !10, i64 152}
!72 = distinct !{!72, !22}
!73 = distinct !{!73, !22}
!74 = !{!12, !10, i64 4}
!75 = !{!12, !10, i64 492}
!76 = !{!12, !10, i64 496}
!77 = !{!12, !10, i64 440}
!78 = !{!12, !10, i64 136}
!79 = distinct !{!79, !22}
!80 = !{!12, !10, i64 144}
!81 = !{!12, !10, i64 44}
!82 = !{!12, !10, i64 236}
!83 = !{!12, !10, i64 148}
!84 = !{!12, !10, i64 240}
!85 = !{!12, !10, i64 472}
!86 = !{!12, !10, i64 0}
!87 = !{!12, !10, i64 564}
!88 = !{!12, !10, i64 528}
!89 = !{!12, !10, i64 572}
!90 = !{!12, !10, i64 532}
!91 = !{!12, !10, i64 180}
!92 = !{!12, !10, i64 36}
!93 = !{!12, !10, i64 232}
!94 = !{!12, !10, i64 16}
!95 = !{!12, !10, i64 224}
!96 = !{!12, !10, i64 568}
!97 = !{!12, !10, i64 12}
!98 = !{!12, !10, i64 208}
!99 = !{!12, !10, i64 56}
!100 = distinct !{!100, !22}
!101 = !{!12, !10, i64 184}
!102 = !{!12, !10, i64 212}
!103 = !{!12, !10, i64 40}
!104 = !{!12, !10, i64 504}
!105 = !{!12, !10, i64 508}
!106 = !{!12, !10, i64 584}
!107 = !{!12, !10, i64 228}
!108 = !{!12, !10, i64 244}
!109 = !{!12, !10, i64 100}
!110 = !{!12, !13, i64 2664}
!111 = !{!12, !10, i64 488}
!112 = !{!12, !10, i64 116}
!113 = !{!12, !10, i64 8}
!114 = distinct !{!114, !22}
!115 = distinct !{!115, !22}
!116 = !{!12, !10, i64 32}
!117 = !{!12, !10, i64 60}
!118 = !{!12, !10, i64 92}
!119 = !{!12, !10, i64 424}
!120 = !{!12, !10, i64 580}
!121 = !{!12, !10, i64 576}
!122 = !{!12, !6, i64 2416}
!123 = !{!12, !6, i64 3352}
!124 = !{!12, !10, i64 520}
!125 = !{!12, !10, i64 476}
!126 = !{!12, !10, i64 480}
!127 = distinct !{!127, !22}
!128 = distinct !{!128, !22}
!129 = !{!12, !10, i64 516}
!130 = !{!12, !10, i64 544}
!131 = distinct !{!131, !22}
!132 = !{!12, !10, i64 560}
!133 = !{!12, !10, i64 484}
!134 = !{!12, !10, i64 524}
!135 = !{!12, !13, i64 552}
!136 = distinct !{!136, !22}
!137 = distinct !{!137, !22}
!138 = distinct !{!138, !22}
!139 = distinct !{!139, !22}


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

@.str.14 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [2 x i8], align 1
@stdin = external local_unnamed_addr global ptr, align 8
@.str.161 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.177 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [40 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local void @qh_appendprint(ptr noundef, i32 noundef) local_unnamed_addr #0

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #2

declare void @qh_fprintf(ptr noundef, ptr noundef, i32 noundef, ptr noundef, ...) local_unnamed_addr #3

declare void @qh_errexit(ptr noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__ctype_b_loc() local_unnamed_addr #4

declare ptr @qh_skipfilename(ptr noundef, ptr noundef) local_unnamed_addr #3

declare double @qh_strtod(ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @qh_exit(i32 noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
define dso_local void @qh_initflags(ptr noundef %0, ptr noundef %1) local_unnamed_addr #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca double, align 8
  %8 = alloca [500 x i8], align 16
  %9 = alloca [500 x i8], align 16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #7
  store ptr %1, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #7
  %10 = getelementptr inbounds i8, ptr %0, i64 2720
  %11 = load i32, ptr %10, align 8, !tbaa !9
  %.not = icmp eq i32 %11, 0
  br i1 %.not, label %15, label %12

12:                                               ; preds = %2
  %13 = getelementptr inbounds i8, ptr %0, i64 2424
  %14 = load ptr, ptr %13, align 8, !tbaa !16
  tail call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %14, i32 noundef 6245, ptr noundef nonnull @.str.14) #7
  tail call void @qh_exit(i32 noundef 5) #7
  br label %15

15:                                               ; preds = %12, %2
  %16 = getelementptr inbounds i8, ptr %0, i64 676
  %.not532 = icmp uge ptr %16, %1
  %17 = getelementptr inbounds i8, ptr %0, i64 932
  %18 = icmp ult ptr %17, %1
  %or.cond622 = select i1 %.not532, i1 true, i1 %18
  br i1 %or.cond622, label %19, label %.critedge

19:                                               ; preds = %15
  %.not533 = icmp eq ptr %16, %1
  br i1 %.not533, label %24, label %20

20:                                               ; preds = %19
  store i8 0, ptr %16, align 4, !tbaa !17
  %21 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %16) #8
  %22 = sub i64 255, %21
  %23 = tail call ptr @strncat(ptr noundef nonnull dereferenceable(1) %16, ptr noundef %1, i64 noundef %22) #7
  br label %24

24:                                               ; preds = %20, %19
  %25 = load i8, ptr %1, align 1, !tbaa !17
  %.not534661 = icmp eq i8 %25, 0
  br i1 %.not534661, label %.critedge2.thread._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %24
  %26 = tail call ptr @__ctype_b_loc() #9
  br label %27

27:                                               ; preds = %.lr.ph, %35
  %28 = phi i8 [ %25, %.lr.ph ], [ %37, %35 ]
  %29 = phi ptr [ %1, %.lr.ph ], [ %36, %35 ]
  %30 = load ptr, ptr %26, align 8, !tbaa !5
  %31 = sext i8 %28 to i64
  %32 = getelementptr inbounds i16, ptr %30, i64 %31
  %33 = load i16, ptr %32, align 2, !tbaa !18
  %34 = and i16 %33, 8192
  %.not535 = icmp eq i16 %34, 0
  br i1 %.not535, label %35, label %.preheader655.lr.ph

35:                                               ; preds = %27
  %36 = getelementptr inbounds i8, ptr %29, i64 1
  store ptr %36, ptr %5, align 8, !tbaa !5
  %37 = load i8, ptr %36, align 1, !tbaa !17
  %.not534 = icmp eq i8 %37, 0
  br i1 %.not534, label %.critedge2.thread._crit_edge, label %27, !llvm.loop !20

.critedge:                                        ; preds = %15
  %.pre = load i8, ptr %1, align 1, !tbaa !17
  %.not536716 = icmp eq i8 %.pre, 0
  br i1 %.not536716, label %.critedge2.thread._crit_edge, label %.preheader655.lr.ph

.preheader655.lr.ph:                              ; preds = %27, %.critedge
  %38 = phi ptr [ %1, %.critedge ], [ %29, %27 ]
  %39 = phi i8 [ %.pre, %.critedge ], [ %28, %27 ]
  %40 = getelementptr inbounds i8, ptr %0, i64 552
  %41 = getelementptr inbounds i8, ptr %0, i64 2424
  %42 = getelementptr inbounds i8, ptr %0, i64 524
  %43 = getelementptr inbounds i8, ptr %0, i64 484
  %44 = getelementptr inbounds i8, ptr %0, i64 560
  %45 = getelementptr inbounds i8, ptr %0, i64 544
  %46 = getelementptr inbounds i8, ptr %0, i64 516
  %47 = getelementptr inbounds i8, ptr %0, i64 2416
  %48 = getelementptr inbounds i8, ptr %0, i64 476
  %49 = getelementptr inbounds i8, ptr %0, i64 480
  %50 = getelementptr inbounds i8, ptr %0, i64 520
  %51 = getelementptr inbounds i8, ptr %0, i64 576
  %52 = getelementptr inbounds i8, ptr %0, i64 3352
  %53 = getelementptr inbounds i8, ptr %0, i64 580
  %54 = getelementptr inbounds i8, ptr %0, i64 424
  %55 = getelementptr inbounds i8, ptr %0, i64 92
  %56 = getelementptr inbounds i8, ptr %0, i64 60
  %57 = getelementptr inbounds i8, ptr %0, i64 32
  %58 = getelementptr inbounds i8, ptr %0, i64 136
  %59 = getelementptr inbounds i8, ptr %0, i64 8
  %60 = getelementptr inbounds i8, ptr %0, i64 116
  %61 = getelementptr inbounds i8, ptr %0, i64 488
  %62 = getelementptr inbounds i8, ptr %0, i64 2664
  %63 = getelementptr inbounds i8, ptr %0, i64 100
  %64 = getelementptr inbounds i8, ptr %0, i64 244
  %65 = getelementptr inbounds i8, ptr %0, i64 228
  %66 = getelementptr inbounds i8, ptr %0, i64 584
  %67 = getelementptr inbounds i8, ptr %0, i64 508
  %68 = getelementptr inbounds i8, ptr %0, i64 504
  %69 = getelementptr inbounds i8, ptr %0, i64 40
  %70 = getelementptr inbounds i8, ptr %0, i64 212
  %71 = getelementptr inbounds i8, ptr %0, i64 184
  %72 = getelementptr inbounds i8, ptr %0, i64 56
  %73 = getelementptr inbounds i8, ptr %0, i64 208
  %74 = getelementptr inbounds i8, ptr %0, i64 12
  %75 = getelementptr inbounds i8, ptr %0, i64 568
  %76 = getelementptr inbounds i8, ptr %0, i64 564
  %77 = getelementptr inbounds i8, ptr %0, i64 224
  %78 = getelementptr inbounds i8, ptr %0, i64 16
  %79 = getelementptr inbounds i8, ptr %0, i64 232
  %80 = getelementptr inbounds i8, ptr %0, i64 36
  %81 = getelementptr inbounds i8, ptr %0, i64 180
  %82 = getelementptr inbounds i8, ptr %0, i64 532
  %83 = getelementptr inbounds i8, ptr %0, i64 572
  %84 = getelementptr inbounds i8, ptr %0, i64 528
  %85 = getelementptr inbounds i8, ptr %0, i64 472
  %86 = getelementptr inbounds i8, ptr %0, i64 240
  %87 = getelementptr inbounds i8, ptr %0, i64 148
  %88 = getelementptr inbounds i8, ptr %0, i64 236
  %89 = getelementptr inbounds i8, ptr %0, i64 44
  %90 = getelementptr inbounds i8, ptr %0, i64 144
  %91 = getelementptr inbounds i8, ptr %0, i64 496
  %92 = getelementptr inbounds i8, ptr %0, i64 492
  %93 = getelementptr inbounds i8, ptr %0, i64 440
  %94 = getelementptr inbounds i8, ptr %0, i64 4
  %95 = getelementptr inbounds i8, ptr %0, i64 152
  %96 = getelementptr inbounds i8, ptr %0, i64 160
  %97 = getelementptr inbounds i8, ptr %0, i64 624
  %98 = getelementptr inbounds i8, ptr %0, i64 140
  %99 = getelementptr inbounds i8, ptr %0, i64 296
  %100 = getelementptr inbounds i8, ptr %0, i64 96
  %101 = getelementptr inbounds i8, ptr %0, i64 280
  %102 = getelementptr inbounds i8, ptr %0, i64 272
  %103 = getelementptr inbounds i8, ptr %0, i64 88
  %104 = getelementptr inbounds i8, ptr %0, i64 420
  %105 = getelementptr inbounds i8, ptr %0, i64 432
  %106 = getelementptr inbounds i8, ptr %0, i64 416
  %107 = getelementptr inbounds i8, ptr %0, i64 260
  %108 = getelementptr inbounds i8, ptr %0, i64 292
  %109 = getelementptr inbounds i8, ptr %0, i64 284
  %110 = getelementptr inbounds i8, ptr %0, i64 276
  %111 = getelementptr inbounds i8, ptr %0, i64 84
  %112 = getelementptr inbounds i8, ptr %0, i64 256
  %113 = getelementptr inbounds i8, ptr %0, i64 268
  %114 = getelementptr inbounds i8, ptr %0, i64 288
  %115 = getelementptr inbounds i8, ptr %0, i64 52
  %116 = getelementptr inbounds i8, ptr %0, i64 48
  %117 = getelementptr inbounds i8, ptr %0, i64 24
  %118 = getelementptr inbounds i8, ptr %0, i64 20
  %119 = getelementptr inbounds i8, ptr %0, i64 168
  %120 = getelementptr inbounds i8, ptr %0, i64 216
  %121 = getelementptr inbounds i8, ptr %0, i64 448
  %122 = getelementptr inbounds i8, ptr %0, i64 444
  %123 = getelementptr inbounds i8, ptr %0, i64 128
  %124 = getelementptr inbounds i8, ptr %0, i64 608
  %125 = getelementptr inbounds i8, ptr %0, i64 1784
  %126 = getelementptr inbounds i8, ptr %0, i64 500
  %127 = getelementptr inbounds i8, ptr %0, i64 200
  %128 = getelementptr inbounds i8, ptr %0, i64 248
  %129 = getelementptr inbounds i8, ptr %0, i64 192
  %130 = getelementptr inbounds i8, ptr %0, i64 252
  %131 = getelementptr inbounds i8, ptr %0, i64 188
  %132 = getelementptr inbounds i8, ptr %0, i64 72
  %133 = getelementptr inbounds i8, ptr %0, i64 64
  %134 = getelementptr inbounds i8, ptr %0, i64 588
  %135 = getelementptr inbounds i8, ptr %0, i64 80
  %136 = getelementptr inbounds i8, ptr %0, i64 428
  %137 = tail call ptr @__ctype_b_loc() #9
  br label %.lr.ph665

.lr.ph665:                                        ; preds = %.critedge29, %.preheader655.lr.ph
  %138 = phi i8 [ %39, %.preheader655.lr.ph ], [ %1080, %.critedge29 ]
  %.promoted663 = phi ptr [ %38, %.preheader655.lr.ph ], [ %1081, %.critedge29 ]
  %.0488718 = phi i32 [ 0, %.preheader655.lr.ph ], [ %.1489, %.critedge29 ]
  %.0490717 = phi ptr [ null, %.preheader655.lr.ph ], [ %.18, %.critedge29 ]
  br label %139

139:                                              ; preds = %.lr.ph665, %147
  %140 = phi i8 [ %138, %.lr.ph665 ], [ %149, %147 ]
  %141 = phi ptr [ %.promoted663, %.lr.ph665 ], [ %148, %147 ]
  %142 = load ptr, ptr %137, align 8, !tbaa !5
  %143 = sext i8 %140 to i64
  %144 = getelementptr inbounds i16, ptr %142, i64 %143
  %145 = load i16, ptr %144, align 2, !tbaa !18
  %146 = and i16 %145, 8192
  %.not538 = icmp eq i16 %146, 0
  br i1 %.not538, label %.critedge2, label %147

147:                                              ; preds = %139
  %148 = getelementptr inbounds i8, ptr %141, i64 1
  store ptr %148, ptr %5, align 8, !tbaa !5
  %149 = load i8, ptr %148, align 1, !tbaa !17
  %.not537 = icmp eq i8 %149, 0
  br i1 %.not537, label %.critedge2.thread._crit_edge.loopexit, label %139, !llvm.loop !22

.critedge2:                                       ; preds = %139
  %150 = icmp eq i8 %140, 45
  br i1 %150, label %.critedge2.thread, label %.critedge2.thread.thread758

.critedge2.thread:                                ; preds = %.critedge2
  %151 = getelementptr inbounds i8, ptr %141, i64 1
  store ptr %151, ptr %5, align 8, !tbaa !5
  %.pre742 = load i8, ptr %151, align 1, !tbaa !17
  %.not539 = icmp eq i8 %.pre742, 0
  br i1 %.not539, label %.critedge2.thread._crit_edge.loopexit, label %.critedge2.thread.thread758

.critedge2.thread.thread758:                      ; preds = %.critedge2, %.critedge2.thread
  %152 = phi ptr [ %151, %.critedge2.thread ], [ %141, %.critedge2 ]
  %153 = getelementptr inbounds i8, ptr %152, i64 1
  store ptr %153, ptr %5, align 8, !tbaa !5
  %154 = load i8, ptr %152, align 1, !tbaa !17
  switch i8 %154, label %1046 [
    i8 100, label %163
    i8 102, label %164
    i8 105, label %165
    i8 109, label %166
    i8 110, label %167
    i8 111, label %168
    i8 112, label %169
    i8 115, label %170
    i8 118, label %171
    i8 65, label %172
    i8 67, label %191
    i8 69, label %210
    i8 72, label %228
    i8 82, label %267
    i8 86, label %281
    i8 85, label %295
    i8 87, label %309
    i8 70, label %.preheader647
    i8 71, label %383
    i8 80, label %.preheader649
    i8 81, label %.preheader651
    i8 84, label %.preheader653
  ]

.preheader653:                                    ; preds = %.critedge2.thread.thread758
  %155 = load i8, ptr %153, align 1, !tbaa !17
  %.not546672 = icmp eq i8 %155, 0
  br i1 %.not546672, label %.critedge4, label %.lr.ph674

.lr.ph674:                                        ; preds = %.preheader653
  %156 = tail call ptr @__ctype_b_loc() #9
  br label %793

.preheader651:                                    ; preds = %.critedge2.thread.thread758
  %157 = load i8, ptr %153, align 1, !tbaa !17
  %.not566682 = icmp eq i8 %157, 0
  br i1 %.not566682, label %.critedge4, label %.lr.ph685

.lr.ph685:                                        ; preds = %.preheader651
  %158 = tail call ptr @__ctype_b_loc() #9
  br label %531

.preheader649:                                    ; preds = %.critedge2.thread.thread758
  %159 = load i8, ptr %153, align 1, !tbaa !17
  %.not584689 = icmp eq i8 %159, 0
  br i1 %.not584689, label %.critedge4, label %.lr.ph691

.lr.ph691:                                        ; preds = %.preheader649
  %160 = tail call ptr @__ctype_b_loc() #9
  br label %447

.preheader647:                                    ; preds = %.critedge2.thread.thread758
  %161 = load i8, ptr %153, align 1, !tbaa !17
  %.not596702 = icmp eq i8 %161, 0
  br i1 %.not596702, label %.critedge4, label %.lr.ph704

.lr.ph704:                                        ; preds = %.preheader647
  %162 = tail call ptr @__ctype_b_loc() #9
  br label %327

163:                                              ; preds = %.critedge2.thread.thread758
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.15, ptr noundef null, ptr noundef null)
  store i32 1, ptr %135, align 8, !tbaa !23
  br label %.critedge4

164:                                              ; preds = %.critedge2.thread.thread758
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.16, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 5)
  br label %.critedge4

165:                                              ; preds = %.critedge2.thread.thread758
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.17, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 14)
  br label %.critedge4

166:                                              ; preds = %.critedge2.thread.thread758
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.18, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 15)
  br label %.critedge4

167:                                              ; preds = %.critedge2.thread.thread758
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.19, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 11)
  br label %.critedge4

168:                                              ; preds = %.critedge2.thread.thread758
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.20, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 17)
  br label %.critedge4

169:                                              ; preds = %.critedge2.thread.thread758
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.21, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 21)
  br label %.critedge4

170:                                              ; preds = %.critedge2.thread.thread758
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.22, ptr noundef null, ptr noundef null)
  store i32 1, ptr %136, align 4, !tbaa !24
  br label %.critedge4

171:                                              ; preds = %.critedge2.thread.thread758
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.23, ptr noundef null, ptr noundef null)
  store i32 1, ptr %134, align 4, !tbaa !25
  store i32 1, ptr %135, align 8, !tbaa !23
  br label %.critedge4

172:                                              ; preds = %.critedge2.thread.thread758
  %173 = tail call ptr @__ctype_b_loc() #9
  %174 = load ptr, ptr %173, align 8, !tbaa !5
  %175 = load i8, ptr %153, align 1, !tbaa !17
  %176 = sext i8 %175 to i64
  %177 = getelementptr inbounds i16, ptr %174, i64 %176
  %178 = load i16, ptr %177, align 2, !tbaa !18
  %.fr643 = freeze i16 %178
  %179 = and i16 %.fr643, 2048
  %.not614 = icmp ne i16 %179, 0
  %.off = add i8 %175, -45
  %switch = icmp ult i8 %.off, 2
  %or.cond635 = or i1 %switch, %.not614
  br i1 %or.cond635, label %184, label %180

180:                                              ; preds = %172
  %181 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %181, i32 noundef 7002, ptr noundef nonnull @.str.24) #7
  %182 = load ptr, ptr %5, align 8, !tbaa !5
  %183 = getelementptr inbounds i8, ptr %182, i64 -1
  br label %.critedge4

184:                                              ; preds = %172
  %185 = icmp eq i8 %175, 45
  %186 = call double @qh_strtod(ptr noundef nonnull %153, ptr noundef nonnull %5) #7
  br i1 %185, label %187, label %189

187:                                              ; preds = %184
  %188 = fneg double %186
  store double %188, ptr %133, align 8, !tbaa !26
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.25, ptr noundef null, ptr noundef nonnull %133)
  store i32 1, ptr %130, align 4, !tbaa !27
  br label %190

189:                                              ; preds = %184
  store double %186, ptr %132, align 8, !tbaa !28
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.26, ptr noundef null, ptr noundef nonnull %132)
  store i32 1, ptr %128, align 8, !tbaa !29
  br label %190

190:                                              ; preds = %189, %187
  store i32 1, ptr %131, align 4, !tbaa !30
  br label %.critedge4

191:                                              ; preds = %.critedge2.thread.thread758
  %192 = tail call ptr @__ctype_b_loc() #9
  %193 = load ptr, ptr %192, align 8, !tbaa !5
  %194 = load i8, ptr %153, align 1, !tbaa !17
  %195 = sext i8 %194 to i64
  %196 = getelementptr inbounds i16, ptr %193, i64 %195
  %197 = load i16, ptr %196, align 2, !tbaa !18
  %.fr642 = freeze i16 %197
  %198 = and i16 %.fr642, 2048
  %.not611 = icmp ne i16 %198, 0
  %.off636 = add i8 %194, -45
  %switch637 = icmp ult i8 %.off636, 2
  %or.cond638 = or i1 %switch637, %.not611
  br i1 %or.cond638, label %203, label %199

199:                                              ; preds = %191
  %200 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %200, i32 noundef 7003, ptr noundef nonnull @.str.27) #7
  %201 = load ptr, ptr %5, align 8, !tbaa !5
  %202 = getelementptr inbounds i8, ptr %201, i64 -1
  br label %.critedge4

203:                                              ; preds = %191
  %204 = icmp eq i8 %194, 45
  %205 = call double @qh_strtod(ptr noundef nonnull %153, ptr noundef nonnull %5) #7
  br i1 %204, label %206, label %208

206:                                              ; preds = %203
  %207 = fneg double %205
  store double %207, ptr %129, align 8, !tbaa !31
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.28, ptr noundef null, ptr noundef nonnull %129)
  store i32 1, ptr %130, align 4, !tbaa !27
  br label %209

208:                                              ; preds = %203
  store double %205, ptr %127, align 8, !tbaa !32
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.29, ptr noundef null, ptr noundef nonnull %127)
  store i32 1, ptr %128, align 8, !tbaa !29
  br label %209

209:                                              ; preds = %208, %206
  store i32 1, ptr %131, align 4, !tbaa !30
  br label %.critedge4

210:                                              ; preds = %.critedge2.thread.thread758
  %211 = load i8, ptr %153, align 1, !tbaa !17
  %212 = icmp eq i8 %211, 45
  br i1 %212, label %213, label %215

213:                                              ; preds = %210
  %214 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %214, i32 noundef 6363, ptr noundef nonnull @.str.30, ptr noundef nonnull %152) #7
  call void @qh_errexit(ptr noundef %0, i32 noundef 1, ptr noundef null, ptr noundef null) #7
  br label %.critedge4

215:                                              ; preds = %210
  %216 = tail call ptr @__ctype_b_loc() #9
  %217 = load ptr, ptr %216, align 8, !tbaa !5
  %218 = sext i8 %211 to i64
  %219 = getelementptr inbounds i16, ptr %217, i64 %218
  %220 = load i16, ptr %219, align 2, !tbaa !18
  %221 = and i16 %220, 2048
  %.not610 = icmp eq i16 %221, 0
  br i1 %.not610, label %222, label %226

222:                                              ; preds = %215
  %223 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %223, i32 noundef 7005, ptr noundef nonnull @.str.31) #7
  %224 = load ptr, ptr %5, align 8, !tbaa !5
  %225 = getelementptr inbounds i8, ptr %224, i64 -1
  br label %.critedge4

226:                                              ; preds = %215
  %227 = call double @qh_strtod(ptr noundef nonnull %153, ptr noundef nonnull %5) #7
  store double %227, ptr %125, align 8, !tbaa !33
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.32, ptr noundef null, ptr noundef nonnull %125)
  store i32 1, ptr %126, align 4, !tbaa !34
  br label %.critedge4

228:                                              ; preds = %.critedge2.thread.thread758
  store i32 1, ptr %123, align 8, !tbaa !35
  %229 = call double @qh_strtod(ptr noundef nonnull %153, ptr noundef nonnull %6) #7
  %230 = load ptr, ptr %6, align 8, !tbaa !5
  %231 = load ptr, ptr %5, align 8, !tbaa !5
  %232 = icmp ugt ptr %230, %231
  br i1 %232, label %.lr.ph709, label %._crit_edge710

.lr.ph709:                                        ; preds = %228, %248
  %233 = phi ptr [ %251, %248 ], [ %230, %228 ]
  %234 = load i8, ptr %233, align 1, !tbaa !17
  %.not608 = icmp eq i8 %234, 0
  br i1 %.not608, label %248, label %235

235:                                              ; preds = %.lr.ph709
  %236 = tail call ptr @__ctype_b_loc() #9
  %237 = load ptr, ptr %236, align 8, !tbaa !5
  %238 = sext i8 %234 to i64
  %239 = getelementptr inbounds i16, ptr %237, i64 %238
  %240 = load i16, ptr %239, align 2, !tbaa !18
  %241 = and i16 %240, 8192
  %.not609 = icmp eq i16 %241, 0
  br i1 %.not609, label %242, label %248

242:                                              ; preds = %235
  %243 = icmp eq i8 %234, 44
  br i1 %243, label %244, label %246

244:                                              ; preds = %242
  %245 = getelementptr inbounds i8, ptr %233, i64 1
  store ptr %245, ptr %6, align 8, !tbaa !5
  br label %248

246:                                              ; preds = %242
  %247 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %247, i32 noundef 6364, ptr noundef nonnull @.str.33, ptr noundef nonnull %152) #7
  call void @qh_errexit(ptr noundef %0, i32 noundef 1, ptr noundef null, ptr noundef null) #7
  %.pre747 = load ptr, ptr %6, align 8, !tbaa !5
  br label %248

248:                                              ; preds = %244, %246, %235, %.lr.ph709
  %249 = phi ptr [ %245, %244 ], [ %.pre747, %246 ], [ %233, %235 ], [ %233, %.lr.ph709 ]
  store ptr %249, ptr %5, align 8, !tbaa !5
  %250 = call double @qh_strtod(ptr noundef %249, ptr noundef nonnull %6) #7
  %251 = load ptr, ptr %6, align 8, !tbaa !5
  %252 = load ptr, ptr %5, align 8, !tbaa !5
  %253 = icmp ugt ptr %251, %252
  br i1 %253, label %.lr.ph709, label %._crit_edge710, !llvm.loop !36

._crit_edge710:                                   ; preds = %248, %228
  %.lcssa660 = phi ptr [ %230, %228 ], [ %251, %248 ]
  %254 = icmp ult ptr %153, %.lcssa660
  br i1 %254, label %255, label %266

255:                                              ; preds = %._crit_edge710
  %256 = ptrtoint ptr %.lcssa660 to i64
  %257 = ptrtoint ptr %153 to i64
  %reass.sub = sub i64 %256, %257
  %258 = add i64 %reass.sub, 1
  %259 = call noalias ptr @calloc(i64 noundef %258, i64 noundef 1) #10
  store ptr %259, ptr %124, align 8, !tbaa !37
  %.not607 = icmp eq ptr %259, null
  br i1 %.not607, label %260, label %262

260:                                              ; preds = %255
  %261 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %261, i32 noundef 6034, ptr noundef nonnull @.str.34) #7
  call void @qh_errexit(ptr noundef nonnull %0, i32 noundef 4, ptr noundef null, ptr noundef null) #7
  %.pre748 = load ptr, ptr %124, align 8, !tbaa !37
  %.pre749 = load ptr, ptr %6, align 8, !tbaa !5
  %.pre751 = ptrtoint ptr %.pre749 to i64
  %.pre752 = sub i64 %.pre751, %257
  br label %262

262:                                              ; preds = %260, %255
  %.pre-phi753 = phi i64 [ %.pre752, %260 ], [ %reass.sub, %255 ]
  %263 = phi ptr [ %.pre748, %260 ], [ %259, %255 ]
  %264 = call ptr @strncpy(ptr noundef %263, ptr noundef nonnull %153, i64 noundef %.pre-phi753) #7
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull @.str.35, ptr noundef null, ptr noundef null)
  %265 = load ptr, ptr %124, align 8, !tbaa !37
  call void @qh_option(ptr noundef nonnull %0, ptr noundef %265, ptr noundef null, ptr noundef null)
  br label %.critedge4

266:                                              ; preds = %._crit_edge710
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.36, ptr noundef null, ptr noundef null)
  br label %.critedge4

267:                                              ; preds = %.critedge2.thread.thread758
  %268 = tail call ptr @__ctype_b_loc() #9
  %269 = load ptr, ptr %268, align 8, !tbaa !5
  %270 = load i8, ptr %153, align 1, !tbaa !17
  %271 = sext i8 %270 to i64
  %272 = getelementptr inbounds i16, ptr %269, i64 %271
  %273 = load i16, ptr %272, align 2, !tbaa !18
  %274 = and i16 %273, 2048
  %.not606 = icmp eq i16 %274, 0
  br i1 %.not606, label %275, label %279

275:                                              ; preds = %267
  %276 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %276, i32 noundef 7007, ptr noundef nonnull @.str.37) #7
  %277 = load ptr, ptr %5, align 8, !tbaa !5
  %278 = getelementptr inbounds i8, ptr %277, i64 -1
  br label %.critedge4

279:                                              ; preds = %267
  %280 = call double @qh_strtod(ptr noundef nonnull %153, ptr noundef nonnull %5) #7
  store double %280, ptr %121, align 8, !tbaa !38
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.38, ptr noundef null, ptr noundef nonnull %121)
  store i32 1, ptr %122, align 4, !tbaa !39
  br label %.critedge4

281:                                              ; preds = %.critedge2.thread.thread758
  %282 = tail call ptr @__ctype_b_loc() #9
  %283 = load ptr, ptr %282, align 8, !tbaa !5
  %284 = load i8, ptr %153, align 1, !tbaa !17
  %285 = sext i8 %284 to i64
  %286 = getelementptr inbounds i16, ptr %283, i64 %285
  %287 = load i16, ptr %286, align 2, !tbaa !18
  %288 = and i16 %287, 2048
  %.not604 = icmp ne i16 %288, 0
  %.not605 = icmp eq i8 %284, 45
  %or.cond627 = or i1 %.not605, %.not604
  br i1 %or.cond627, label %293, label %289

289:                                              ; preds = %281
  %290 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %290, i32 noundef 7008, ptr noundef nonnull @.str.39) #7
  %291 = load ptr, ptr %5, align 8, !tbaa !5
  %292 = getelementptr inbounds i8, ptr %291, i64 -1
  br label %.critedge4

293:                                              ; preds = %281
  %294 = call double @qh_strtod(ptr noundef nonnull %153, ptr noundef nonnull %5) #7
  store double %294, ptr %120, align 8, !tbaa !40
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.40, ptr noundef null, ptr noundef nonnull %120)
  br label %.critedge4

295:                                              ; preds = %.critedge2.thread.thread758
  %296 = tail call ptr @__ctype_b_loc() #9
  %297 = load ptr, ptr %296, align 8, !tbaa !5
  %298 = load i8, ptr %153, align 1, !tbaa !17
  %299 = sext i8 %298 to i64
  %300 = getelementptr inbounds i16, ptr %297, i64 %299
  %301 = load i16, ptr %300, align 2, !tbaa !18
  %302 = and i16 %301, 2048
  %.not602 = icmp ne i16 %302, 0
  %.not603 = icmp eq i8 %298, 45
  %or.cond628 = or i1 %.not603, %.not602
  br i1 %or.cond628, label %307, label %303

303:                                              ; preds = %295
  %304 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %304, i32 noundef 7009, ptr noundef nonnull @.str.41) #7
  %305 = load ptr, ptr %5, align 8, !tbaa !5
  %306 = getelementptr inbounds i8, ptr %305, i64 -1
  br label %.critedge4

307:                                              ; preds = %295
  %308 = call double @qh_strtod(ptr noundef nonnull %153, ptr noundef nonnull %5) #7
  store double %308, ptr %119, align 8, !tbaa !41
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.42, ptr noundef null, ptr noundef nonnull %119)
  br label %.critedge4

309:                                              ; preds = %.critedge2.thread.thread758
  %310 = load i8, ptr %153, align 1, !tbaa !17
  %311 = icmp eq i8 %310, 45
  br i1 %311, label %312, label %314

312:                                              ; preds = %309
  %313 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %313, i32 noundef 6365, ptr noundef nonnull @.str.43, ptr noundef nonnull %152) #7
  call void @qh_errexit(ptr noundef %0, i32 noundef 1, ptr noundef null, ptr noundef null) #7
  br label %.critedge4

314:                                              ; preds = %309
  %315 = tail call ptr @__ctype_b_loc() #9
  %316 = load ptr, ptr %315, align 8, !tbaa !5
  %317 = sext i8 %310 to i64
  %318 = getelementptr inbounds i16, ptr %316, i64 %317
  %319 = load i16, ptr %318, align 2, !tbaa !18
  %320 = and i16 %319, 2048
  %.not601 = icmp eq i16 %320, 0
  br i1 %.not601, label %321, label %325

321:                                              ; preds = %314
  %322 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %322, i32 noundef 7011, ptr noundef nonnull @.str.44) #7
  %323 = load ptr, ptr %5, align 8, !tbaa !5
  %324 = getelementptr inbounds i8, ptr %323, i64 -1
  br label %.critedge4

325:                                              ; preds = %314
  %326 = call double @qh_strtod(ptr noundef nonnull %153, ptr noundef nonnull %5) #7
  store double %326, ptr %117, align 8, !tbaa !42
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.45, ptr noundef null, ptr noundef nonnull %117)
  store i32 1, ptr %118, align 4, !tbaa !43
  br label %.critedge4

327:                                              ; preds = %.lr.ph704, %.critedge6
  %328 = phi i8 [ %161, %.lr.ph704 ], [ %382, %.critedge6 ]
  %329 = phi ptr [ %153, %.lr.ph704 ], [ %381, %.critedge6 ]
  %.1491703 = phi ptr [ %.0490717, %.lr.ph704 ], [ %.2492, %.critedge6 ]
  %330 = load ptr, ptr %162, align 8, !tbaa !5
  %331 = sext i8 %328 to i64
  %332 = getelementptr inbounds i16, ptr %330, i64 %331
  %333 = load i16, ptr %332, align 2, !tbaa !18
  %334 = and i16 %333, 8192
  %.not597 = icmp eq i16 %334, 0
  br i1 %.not597, label %335, label %.critedge4

335:                                              ; preds = %327
  %336 = getelementptr inbounds i8, ptr %329, i64 1
  store ptr %336, ptr %5, align 8, !tbaa !5
  %337 = load i8, ptr %329, align 1, !tbaa !17
  switch i8 %337, label %365 [
    i8 97, label %338
    i8 65, label %339
    i8 99, label %340
    i8 67, label %341
    i8 100, label %342
    i8 68, label %343
    i8 70, label %344
    i8 105, label %345
    i8 73, label %346
    i8 109, label %347
    i8 77, label %348
    i8 110, label %349
    i8 78, label %350
    i8 111, label %351
    i8 79, label %352
    i8 112, label %356
    i8 80, label %357
    i8 81, label %358
    i8 115, label %359
    i8 83, label %360
    i8 116, label %361
    i8 118, label %362
    i8 86, label %363
    i8 120, label %364
  ]

338:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.46, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 1)
  store i32 1, ptr %97, align 8, !tbaa !44
  br label %.critedge6

339:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.47, ptr noundef null, ptr noundef null)
  store i32 1, ptr %97, align 8, !tbaa !44
  br label %.critedge6

340:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.48, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 3)
  br label %.critedge6

341:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.49, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 4)
  br label %.critedge6

342:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.50, ptr noundef null, ptr noundef null)
  store i32 1, ptr %116, align 8, !tbaa !45
  br label %.critedge6

343:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.51, ptr noundef null, ptr noundef null)
  store i32 1, ptr %115, align 4, !tbaa !46
  br label %.critedge6

344:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.52, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 6)
  br label %.critedge6

345:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.53, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 9)
  br label %.critedge6

346:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.54, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 8)
  br label %.critedge6

347:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.55, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 16)
  br label %.critedge6

348:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.56, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 13)
  br label %.critedge6

349:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.57, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 10)
  br label %.critedge6

350:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.58, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 27)
  br label %.critedge6

351:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.59, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 12)
  br label %.critedge6

352:                                              ; preds = %335
  %353 = load i32, ptr %114, align 8, !tbaa !47
  %.not598 = icmp eq i32 %353, 0
  br i1 %.not598, label %355, label %354

354:                                              ; preds = %352
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull @.str.60, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef nonnull %0, i32 noundef 18)
  br label %.critedge6

355:                                              ; preds = %352
  store i32 1, ptr %114, align 8, !tbaa !47
  br label %.critedge6

356:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.61, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 19)
  br label %.critedge6

357:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.62, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 20)
  br label %.critedge6

358:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.63, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 22)
  br label %.critedge6

359:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.64, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 24)
  br label %.critedge6

360:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.65, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 23)
  store i32 1, ptr %97, align 8, !tbaa !44
  br label %.critedge6

361:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.66, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 25)
  br label %.critedge6

362:                                              ; preds = %335
  call void @qh_appendprint(ptr noundef %0, i32 noundef 26)
  br label %.critedge6

363:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.67, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 2)
  br label %.critedge6

364:                                              ; preds = %335
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.68, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(ptr noundef %0, i32 noundef 28)
  br label %.critedge6

365:                                              ; preds = %335
  store ptr %329, ptr %5, align 8, !tbaa !5
  %366 = load ptr, ptr %41, align 8, !tbaa !16
  %367 = load i8, ptr %329, align 1, !tbaa !17
  %368 = sext i8 %367 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %366, i32 noundef 7012, ptr noundef nonnull @.str.69, i32 noundef %368) #7
  %369 = load ptr, ptr %5, align 8, !tbaa !5
  %370 = getelementptr inbounds i8, ptr %369, i64 -1
  br label %371

371:                                              ; preds = %375, %365
  %372 = phi ptr [ %373, %375 ], [ %369, %365 ]
  %373 = getelementptr inbounds i8, ptr %372, i64 1
  store ptr %373, ptr %5, align 8, !tbaa !5
  %374 = load i8, ptr %373, align 1, !tbaa !17
  %.not599 = icmp eq i8 %374, 0
  br i1 %.not599, label %.critedge6, label %375

375:                                              ; preds = %371
  %376 = load ptr, ptr %162, align 8, !tbaa !5
  %377 = sext i8 %374 to i64
  %378 = getelementptr inbounds i16, ptr %376, i64 %377
  %379 = load i16, ptr %378, align 2, !tbaa !18
  %380 = and i16 %379, 8192
  %.not600 = icmp eq i16 %380, 0
  br i1 %.not600, label %371, label %.critedge6, !llvm.loop !48

.critedge6:                                       ; preds = %375, %371, %354, %355, %364, %363, %362, %361, %360, %359, %358, %357, %356, %351, %350, %349, %348, %347, %346, %345, %344, %343, %342, %341, %340, %339, %338
  %.2492 = phi ptr [ %.1491703, %364 ], [ %.1491703, %363 ], [ %.1491703, %362 ], [ %.1491703, %361 ], [ %.1491703, %360 ], [ %.1491703, %359 ], [ %.1491703, %358 ], [ %.1491703, %357 ], [ %.1491703, %356 ], [ %.1491703, %354 ], [ %.1491703, %355 ], [ %.1491703, %351 ], [ %.1491703, %350 ], [ %.1491703, %349 ], [ %.1491703, %348 ], [ %.1491703, %347 ], [ %.1491703, %346 ], [ %.1491703, %345 ], [ %.1491703, %344 ], [ %.1491703, %343 ], [ %.1491703, %342 ], [ %.1491703, %341 ], [ %.1491703, %340 ], [ %.1491703, %339 ], [ %.1491703, %338 ], [ %370, %371 ], [ %370, %375 ]
  %381 = load ptr, ptr %5, align 8, !tbaa !5
  %382 = load i8, ptr %381, align 1, !tbaa !17
  %.not596 = icmp eq i8 %382, 0
  br i1 %.not596, label %.critedge4, label %327, !llvm.loop !49

383:                                              ; preds = %.critedge2.thread.thread758
  call void @qh_appendprint(ptr noundef %0, i32 noundef 7)
  %384 = load ptr, ptr %5, align 8, !tbaa !5
  %385 = load i8, ptr %384, align 1, !tbaa !17
  %.not591695 = icmp eq i8 %385, 0
  br i1 %.not591695, label %.critedge4, label %.lr.ph698

.lr.ph698:                                        ; preds = %383
  %386 = tail call ptr @__ctype_b_loc() #9
  br label %387

387:                                              ; preds = %.lr.ph698, %.critedge10
  %388 = phi i8 [ %385, %.lr.ph698 ], [ %446, %.critedge10 ]
  %389 = phi ptr [ %384, %.lr.ph698 ], [ %445, %.critedge10 ]
  %.3696 = phi ptr [ %.0490717, %.lr.ph698 ], [ %.5, %.critedge10 ]
  %390 = load ptr, ptr %386, align 8, !tbaa !5
  %391 = sext i8 %388 to i64
  %392 = getelementptr inbounds i16, ptr %390, i64 %391
  %393 = load i16, ptr %392, align 2, !tbaa !18
  %394 = and i16 %393, 8192
  %.not592 = icmp eq i16 %394, 0
  br i1 %.not592, label %395, label %.critedge4

395:                                              ; preds = %387
  %396 = getelementptr inbounds i8, ptr %389, i64 1
  store ptr %396, ptr %5, align 8, !tbaa !5
  %397 = load i8, ptr %389, align 1, !tbaa !17
  switch i8 %397, label %429 [
    i8 97, label %398
    i8 99, label %399
    i8 104, label %400
    i8 105, label %401
    i8 110, label %402
    i8 111, label %403
    i8 112, label %404
    i8 114, label %405
    i8 116, label %406
    i8 118, label %407
    i8 68, label %408
  ]

398:                                              ; preds = %395
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.70, ptr noundef null, ptr noundef null)
  store i32 1, ptr %113, align 4, !tbaa !50
  br label %.critedge10

399:                                              ; preds = %395
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.71, ptr noundef null, ptr noundef null)
  store i32 1, ptr %112, align 8, !tbaa !51
  br label %.critedge10

400:                                              ; preds = %395
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.72, ptr noundef null, ptr noundef null)
  store i32 1, ptr %111, align 4, !tbaa !52
  br label %.critedge10

401:                                              ; preds = %395
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.73, ptr noundef null, ptr noundef null)
  store i32 1, ptr %110, align 4, !tbaa !53
  br label %.critedge10

402:                                              ; preds = %395
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.74, ptr noundef null, ptr noundef null)
  store i32 1, ptr %109, align 4, !tbaa !54
  br label %.critedge10

403:                                              ; preds = %395
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.75, ptr noundef null, ptr noundef null)
  store i32 1, ptr %108, align 4, !tbaa !55
  br label %.critedge10

404:                                              ; preds = %395
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.76, ptr noundef null, ptr noundef null)
  store i32 1, ptr %107, align 4, !tbaa !56
  br label %.critedge10

405:                                              ; preds = %395
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.77, ptr noundef null, ptr noundef null)
  store i32 1, ptr %106, align 8, !tbaa !57
  br label %.critedge10

406:                                              ; preds = %395
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.78, ptr noundef null, ptr noundef null)
  store i32 1, ptr %105, align 8, !tbaa !58
  br label %.critedge10

407:                                              ; preds = %395
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.79, ptr noundef null, ptr noundef null)
  store i32 1, ptr %104, align 4, !tbaa !59
  br label %.critedge10

408:                                              ; preds = %395
  %409 = load ptr, ptr %386, align 8, !tbaa !5
  %410 = load i8, ptr %396, align 1, !tbaa !17
  %411 = sext i8 %410 to i64
  %412 = getelementptr inbounds i16, ptr %409, i64 %411
  %413 = load i16, ptr %412, align 2, !tbaa !18
  %414 = and i16 %413, 2048
  %.not593 = icmp eq i16 %414, 0
  br i1 %.not593, label %415, label %419

415:                                              ; preds = %408
  %416 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %416, i32 noundef 7004, ptr noundef nonnull @.str.80) #7
  %417 = load ptr, ptr %5, align 8, !tbaa !5
  %418 = getelementptr inbounds i8, ptr %417, i64 -2
  br label %.critedge10

419:                                              ; preds = %408
  %420 = load i32, ptr %103, align 8, !tbaa !60
  %421 = icmp sgt i32 %420, -1
  br i1 %421, label %422, label %426

422:                                              ; preds = %419
  %423 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %423, i32 noundef 7013, ptr noundef nonnull @.str.81, i32 noundef %420) #7
  %424 = load ptr, ptr %5, align 8, !tbaa !5
  %425 = getelementptr inbounds i8, ptr %424, i64 -2
  br label %426

426:                                              ; preds = %422, %419
  %427 = phi ptr [ %424, %422 ], [ %396, %419 ]
  %.4 = phi ptr [ %425, %422 ], [ %.3696, %419 ]
  %428 = call i32 @qh_strtol(ptr noundef %427, ptr noundef nonnull %5) #7
  store i32 %428, ptr %103, align 8, !tbaa !60
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull @.str.82, ptr noundef nonnull %103, ptr noundef null)
  br label %.critedge10

429:                                              ; preds = %395
  store ptr %389, ptr %5, align 8, !tbaa !5
  %430 = load ptr, ptr %41, align 8, !tbaa !16
  %431 = load i8, ptr %389, align 1, !tbaa !17
  %432 = sext i8 %431 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %430, i32 noundef 7014, ptr noundef nonnull @.str.83, i32 noundef %432) #7
  %433 = load ptr, ptr %5, align 8, !tbaa !5
  %434 = getelementptr inbounds i8, ptr %433, i64 -1
  br label %435

435:                                              ; preds = %439, %429
  %436 = phi ptr [ %437, %439 ], [ %433, %429 ]
  %437 = getelementptr inbounds i8, ptr %436, i64 1
  store ptr %437, ptr %5, align 8, !tbaa !5
  %438 = load i8, ptr %437, align 1, !tbaa !17
  %.not594 = icmp eq i8 %438, 0
  br i1 %.not594, label %.critedge10, label %439

439:                                              ; preds = %435
  %440 = load ptr, ptr %386, align 8, !tbaa !5
  %441 = sext i8 %438 to i64
  %442 = getelementptr inbounds i16, ptr %440, i64 %441
  %443 = load i16, ptr %442, align 2, !tbaa !18
  %444 = and i16 %443, 8192
  %.not595 = icmp eq i16 %444, 0
  br i1 %.not595, label %435, label %.critedge10, !llvm.loop !61

.critedge10:                                      ; preds = %439, %435, %415, %426, %407, %406, %405, %404, %403, %402, %401, %400, %399, %398
  %.5 = phi ptr [ %.4, %426 ], [ %418, %415 ], [ %.3696, %407 ], [ %.3696, %406 ], [ %.3696, %405 ], [ %.3696, %404 ], [ %.3696, %403 ], [ %.3696, %402 ], [ %.3696, %401 ], [ %.3696, %400 ], [ %.3696, %399 ], [ %.3696, %398 ], [ %434, %435 ], [ %434, %439 ]
  %445 = load ptr, ptr %5, align 8, !tbaa !5
  %446 = load i8, ptr %445, align 1, !tbaa !17
  %.not591 = icmp eq i8 %446, 0
  br i1 %.not591, label %.critedge4, label %387, !llvm.loop !62

447:                                              ; preds = %.lr.ph691, %.critedge14
  %448 = phi i8 [ %159, %.lr.ph691 ], [ %530, %.critedge14 ]
  %449 = phi ptr [ %153, %.lr.ph691 ], [ %529, %.critedge14 ]
  %.6690 = phi ptr [ %.0490717, %.lr.ph691 ], [ %.7, %.critedge14 ]
  %450 = load ptr, ptr %160, align 8, !tbaa !5
  %451 = sext i8 %448 to i64
  %452 = getelementptr inbounds i16, ptr %450, i64 %451
  %453 = load i16, ptr %452, align 2, !tbaa !18
  %454 = and i16 %453, 8192
  %.not585 = icmp eq i16 %454, 0
  br i1 %.not585, label %455, label %.critedge4

455:                                              ; preds = %447
  %456 = getelementptr inbounds i8, ptr %449, i64 1
  store ptr %456, ptr %5, align 8, !tbaa !5
  %457 = load i8, ptr %449, align 1, !tbaa !17
  switch i8 %457, label %513 [
    i8 100, label %458
    i8 68, label %458
    i8 103, label %470
    i8 71, label %471
    i8 111, label %472
    i8 112, label %473
    i8 65, label %474
    i8 70, label %487
    i8 77, label %500
  ]

458:                                              ; preds = %455, %455
  %459 = call i32 @qh_strtol(ptr noundef nonnull %456, ptr noundef nonnull %5) #7
  store i32 %459, ptr %4, align 4, !tbaa !63
  store double 0.000000e+00, ptr %7, align 8, !tbaa !64
  %460 = load ptr, ptr %5, align 8, !tbaa !5
  %461 = load i8, ptr %460, align 1, !tbaa !17
  %462 = icmp eq i8 %461, 58
  br i1 %462, label %463, label %466

463:                                              ; preds = %458
  %464 = getelementptr inbounds i8, ptr %460, i64 1
  store ptr %464, ptr %5, align 8, !tbaa !5
  %465 = call double @qh_strtod(ptr noundef nonnull %464, ptr noundef nonnull %5) #7
  store double %465, ptr %7, align 8, !tbaa !64
  br label %466

466:                                              ; preds = %463, %458
  %467 = icmp eq i8 %457, 100
  br i1 %467, label %468, label %469

468:                                              ; preds = %466
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.84, ptr noundef nonnull %4, ptr noundef nonnull %7)
  br label %.critedge14

469:                                              ; preds = %466
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.85, ptr noundef nonnull %4, ptr noundef nonnull %7)
  br label %.critedge14

470:                                              ; preds = %455
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.86, ptr noundef null, ptr noundef null)
  store i32 1, ptr %102, align 8, !tbaa !65
  br label %.critedge14

471:                                              ; preds = %455
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.87, ptr noundef null, ptr noundef null)
  store i32 1, ptr %101, align 8, !tbaa !66
  br label %.critedge14

472:                                              ; preds = %455
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.88, ptr noundef null, ptr noundef null)
  store i32 1, ptr %100, align 8, !tbaa !67
  br label %.critedge14

473:                                              ; preds = %455
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.89, ptr noundef null, ptr noundef null)
  store i32 0, ptr %99, align 8, !tbaa !68
  br label %.critedge14

474:                                              ; preds = %455
  %475 = load ptr, ptr %160, align 8, !tbaa !5
  %476 = load i8, ptr %456, align 1, !tbaa !17
  %477 = sext i8 %476 to i64
  %478 = getelementptr inbounds i16, ptr %475, i64 %477
  %479 = load i16, ptr %478, align 2, !tbaa !18
  %480 = and i16 %479, 2048
  %.not588 = icmp eq i16 %480, 0
  br i1 %.not588, label %481, label %485

481:                                              ; preds = %474
  %482 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %482, i32 noundef 7006, ptr noundef nonnull @.str.90) #7
  %483 = load ptr, ptr %5, align 8, !tbaa !5
  %484 = getelementptr inbounds i8, ptr %483, i64 -2
  br label %.critedge14

485:                                              ; preds = %474
  %486 = call i32 @qh_strtol(ptr noundef nonnull %456, ptr noundef nonnull %5) #7
  store i32 %486, ptr %98, align 4, !tbaa !69
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.91, ptr noundef nonnull %98, ptr noundef null)
  store i32 1, ptr %97, align 8, !tbaa !44
  br label %.critedge14

487:                                              ; preds = %455
  %488 = load ptr, ptr %160, align 8, !tbaa !5
  %489 = load i8, ptr %456, align 1, !tbaa !17
  %490 = sext i8 %489 to i64
  %491 = getelementptr inbounds i16, ptr %488, i64 %490
  %492 = load i16, ptr %491, align 2, !tbaa !18
  %493 = and i16 %492, 2048
  %.not587 = icmp eq i16 %493, 0
  br i1 %.not587, label %494, label %498

494:                                              ; preds = %487
  %495 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %495, i32 noundef 7010, ptr noundef nonnull @.str.92) #7
  %496 = load ptr, ptr %5, align 8, !tbaa !5
  %497 = getelementptr inbounds i8, ptr %496, i64 -2
  br label %.critedge14

498:                                              ; preds = %487
  %499 = call double @qh_strtod(ptr noundef nonnull %456, ptr noundef nonnull %5) #7
  store double %499, ptr %96, align 8, !tbaa !70
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.93, ptr noundef null, ptr noundef nonnull %96)
  store i32 1, ptr %97, align 8, !tbaa !44
  br label %.critedge14

500:                                              ; preds = %455
  %501 = load ptr, ptr %160, align 8, !tbaa !5
  %502 = load i8, ptr %456, align 1, !tbaa !17
  %503 = sext i8 %502 to i64
  %504 = getelementptr inbounds i16, ptr %501, i64 %503
  %505 = load i16, ptr %504, align 2, !tbaa !18
  %506 = and i16 %505, 2048
  %.not586 = icmp eq i16 %506, 0
  br i1 %.not586, label %507, label %511

507:                                              ; preds = %500
  %508 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %508, i32 noundef 7090, ptr noundef nonnull @.str.94) #7
  %509 = load ptr, ptr %5, align 8, !tbaa !5
  %510 = getelementptr inbounds i8, ptr %509, i64 -2
  br label %.critedge14

511:                                              ; preds = %500
  %512 = call i32 @qh_strtol(ptr noundef nonnull %456, ptr noundef nonnull %5) #7
  store i32 %512, ptr %95, align 8, !tbaa !71
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.95, ptr noundef nonnull %95, ptr noundef null)
  br label %.critedge14

513:                                              ; preds = %455
  store ptr %449, ptr %5, align 8, !tbaa !5
  %514 = load ptr, ptr %41, align 8, !tbaa !16
  %515 = load i8, ptr %449, align 1, !tbaa !17
  %516 = sext i8 %515 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %514, i32 noundef 7015, ptr noundef nonnull @.str.96, i32 noundef %516) #7
  %517 = load ptr, ptr %5, align 8, !tbaa !5
  %518 = getelementptr inbounds i8, ptr %517, i64 -1
  br label %519

519:                                              ; preds = %523, %513
  %520 = phi ptr [ %521, %523 ], [ %517, %513 ]
  %521 = getelementptr inbounds i8, ptr %520, i64 1
  store ptr %521, ptr %5, align 8, !tbaa !5
  %522 = load i8, ptr %521, align 1, !tbaa !17
  %.not589 = icmp eq i8 %522, 0
  br i1 %.not589, label %.critedge14, label %523

523:                                              ; preds = %519
  %524 = load ptr, ptr %160, align 8, !tbaa !5
  %525 = sext i8 %522 to i64
  %526 = getelementptr inbounds i16, ptr %524, i64 %525
  %527 = load i16, ptr %526, align 2, !tbaa !18
  %528 = and i16 %527, 8192
  %.not590 = icmp eq i16 %528, 0
  br i1 %.not590, label %519, label %.critedge14, !llvm.loop !72

.critedge14:                                      ; preds = %523, %519, %507, %511, %494, %498, %481, %485, %468, %469, %473, %472, %471, %470
  %.7 = phi ptr [ %.6690, %511 ], [ %510, %507 ], [ %.6690, %498 ], [ %497, %494 ], [ %.6690, %485 ], [ %484, %481 ], [ %.6690, %473 ], [ %.6690, %472 ], [ %.6690, %471 ], [ %.6690, %470 ], [ %.6690, %468 ], [ %.6690, %469 ], [ %518, %519 ], [ %518, %523 ]
  %529 = load ptr, ptr %5, align 8, !tbaa !5
  %530 = load i8, ptr %529, align 1, !tbaa !17
  %.not584 = icmp eq i8 %530, 0
  br i1 %.not584, label %.critedge4, label %447, !llvm.loop !73

531:                                              ; preds = %.lr.ph685, %.critedge21
  %532 = phi i8 [ %157, %.lr.ph685 ], [ %792, %.critedge21 ]
  %533 = phi ptr [ %153, %.lr.ph685 ], [ %791, %.critedge21 ]
  %.0684 = phi i32 [ -1, %.lr.ph685 ], [ %.2, %.critedge21 ]
  %.8683 = phi ptr [ %.0490717, %.lr.ph685 ], [ %.11, %.critedge21 ]
  %534 = load ptr, ptr %158, align 8, !tbaa !5
  %535 = sext i8 %532 to i64
  %536 = getelementptr inbounds i16, ptr %534, i64 %535
  %537 = load i16, ptr %536, align 2, !tbaa !18
  %538 = and i16 %537, 8192
  %.not567 = icmp eq i16 %538, 0
  br i1 %.not567, label %539, label %.critedge4

539:                                              ; preds = %531
  %540 = getelementptr inbounds i8, ptr %533, i64 1
  store ptr %540, ptr %5, align 8, !tbaa !5
  %541 = load i8, ptr %533, align 1, !tbaa !17
  switch i8 %541, label %775 [
    i8 97, label %542
    i8 98, label %543
    i8 66, label %543
    i8 99, label %612
    i8 102, label %613
    i8 103, label %614
    i8 105, label %615
    i8 109, label %616
    i8 114, label %617
    i8 115, label %618
    i8 116, label %619
    i8 84, label %620
    i8 117, label %634
    i8 118, label %635
    i8 120, label %636
    i8 122, label %637
    i8 48, label %638
    i8 49, label %639
    i8 50, label %671
    i8 51, label %672
    i8 52, label %690
    i8 53, label %691
    i8 54, label %692
    i8 55, label %693
    i8 56, label %694
    i8 57, label %695
    i8 71, label %696
    i8 74, label %722
    i8 82, label %732
    i8 86, label %750
    i8 119, label %774
  ]

542:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.97, ptr noundef null, ptr noundef null)
  store i32 1, ptr %94, align 4, !tbaa !74
  br label %.critedge21

543:                                              ; preds = %539, %539
  %544 = icmp eq i8 %541, 98
  br i1 %544, label %545, label %.critedge630

545:                                              ; preds = %543
  %546 = load i8, ptr %540, align 1, !tbaa !17
  switch i8 %546, label %.critedge630 [
    i8 66, label %547
    i8 98, label %549
  ]

547:                                              ; preds = %545
  %548 = getelementptr inbounds i8, ptr %533, i64 2
  store ptr %548, ptr %5, align 8, !tbaa !5
  store double 5.000000e-01, ptr %7, align 8, !tbaa !64
  store i32 1, ptr %92, align 4, !tbaa !75
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.98, ptr noundef null, ptr noundef nonnull %7)
  br label %.critedge21

549:                                              ; preds = %545
  %550 = getelementptr inbounds i8, ptr %533, i64 2
  store ptr %550, ptr %5, align 8, !tbaa !5
  store i32 1, ptr %91, align 8, !tbaa !76
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.99, ptr noundef null, ptr noundef null)
  br label %.critedge21

.critedge630:                                     ; preds = %545, %543
  %551 = call i32 @qh_strtol(ptr noundef nonnull %540, ptr noundef nonnull %5) #7
  store i32 %551, ptr %3, align 4, !tbaa !63
  store double 0.000000e+00, ptr %7, align 8, !tbaa !64
  %552 = load ptr, ptr %5, align 8, !tbaa !5
  %553 = load i8, ptr %552, align 1, !tbaa !17
  %554 = icmp eq i8 %553, 58
  br i1 %554, label %555, label %thread-pre-split

555:                                              ; preds = %.critedge630
  %556 = getelementptr inbounds i8, ptr %552, i64 1
  store ptr %556, ptr %5, align 8, !tbaa !5
  %557 = call double @qh_strtod(ptr noundef nonnull %556, ptr noundef nonnull %5) #7
  store double %557, ptr %7, align 8, !tbaa !64
  %558 = fcmp oeq double %557, 0.000000e+00
  br i1 %558, label %559, label %thread-pre-split

559:                                              ; preds = %555
  %560 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %560, ptr %6, align 8, !tbaa !5
  %561 = load i8, ptr %560, align 1, !tbaa !17
  %.not579678 = icmp eq i8 %561, 0
  br i1 %.not579678, label %thread-pre-split, label %.lr.ph680

.lr.ph680:                                        ; preds = %559, %597
  %562 = phi i8 [ %599, %597 ], [ %561, %559 ]
  %563 = phi ptr [ %598, %597 ], [ %560, %559 ]
  %564 = load ptr, ptr %158, align 8, !tbaa !5
  %565 = sext i8 %562 to i64
  %566 = getelementptr inbounds i16, ptr %564, i64 %565
  %567 = load i16, ptr %566, align 2, !tbaa !18
  %568 = and i16 %567, 8192
  %.not580 = icmp eq i16 %568, 0
  br i1 %.not580, label %569, label %thread-pre-split.loopexit

569:                                              ; preds = %.lr.ph680
  %570 = tail call ptr @__ctype_toupper_loc() #9
  %571 = load ptr, ptr %570, align 8, !tbaa !5
  %572 = getelementptr inbounds i8, ptr %563, i64 1
  store ptr %572, ptr %6, align 8, !tbaa !5
  %573 = load i8, ptr %563, align 1, !tbaa !17
  %574 = sext i8 %573 to i64
  %575 = getelementptr inbounds i32, ptr %571, i64 %574
  %576 = load i32, ptr %575, align 4, !tbaa !63
  %577 = icmp eq i32 %576, 66
  br i1 %577, label %578, label %597

578:                                              ; preds = %569
  %579 = load i32, ptr %3, align 4, !tbaa !63
  %580 = call i32 @qh_strtol(ptr noundef nonnull %572, ptr noundef nonnull %6) #7
  %581 = icmp eq i32 %579, %580
  %.pre745 = load ptr, ptr %6, align 8, !tbaa !5
  br i1 %581, label %582, label %597

582:                                              ; preds = %578
  %583 = getelementptr inbounds i8, ptr %.pre745, i64 1
  store ptr %583, ptr %6, align 8, !tbaa !5
  %584 = load i8, ptr %.pre745, align 1, !tbaa !17
  %585 = icmp eq i8 %584, 58
  br i1 %585, label %586, label %597

586:                                              ; preds = %582
  %587 = call double @qh_strtod(ptr noundef nonnull %583, ptr noundef nonnull %6) #7
  %588 = fcmp oeq double %587, 0.000000e+00
  br i1 %588, label %589, label %._crit_edge743

._crit_edge743:                                   ; preds = %586
  %.pre744 = load ptr, ptr %6, align 8, !tbaa !5
  br label %597

589:                                              ; preds = %586
  %590 = load i32, ptr %93, align 8, !tbaa !77
  %591 = add nsw i32 %590, 1
  store i32 %591, ptr %93, align 8, !tbaa !77
  %592 = load i32, ptr %58, align 8, !tbaa !78
  %593 = icmp sgt i32 %592, 1
  br i1 %593, label %594, label %.critedge18

594:                                              ; preds = %589
  %595 = load ptr, ptr %41, align 8, !tbaa !16
  %596 = load i32, ptr %3, align 4, !tbaa !63
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %595, i32 noundef 2004, ptr noundef nonnull @.str.100, i32 noundef %596) #7
  br label %.critedge18

597:                                              ; preds = %._crit_edge743, %582, %578, %569
  %598 = phi ptr [ %.pre744, %._crit_edge743 ], [ %583, %582 ], [ %.pre745, %578 ], [ %572, %569 ]
  %599 = load i8, ptr %598, align 1, !tbaa !17
  %.not579 = icmp eq i8 %599, 0
  br i1 %.not579, label %thread-pre-split.loopexit, label %.lr.ph680, !llvm.loop !79

.critedge18:                                      ; preds = %589, %594
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull @.str.101, ptr noundef nonnull %3, ptr noundef null)
  %600 = load i32, ptr %3, align 4, !tbaa !63
  br label %.critedge21

thread-pre-split.loopexit:                        ; preds = %597, %.lr.ph680
  %.pr.pre = load double, ptr %7, align 8
  br label %thread-pre-split

thread-pre-split:                                 ; preds = %559, %thread-pre-split.loopexit, %555, %.critedge630
  %601 = phi double [ %557, %555 ], [ 0.000000e+00, %.critedge630 ], [ %.pr.pre, %thread-pre-split.loopexit ], [ %557, %559 ]
  %602 = load i32, ptr %3, align 4, !tbaa !63
  %603 = icmp eq i32 %.0684, %602
  %604 = fcmp oeq double %601, 0.000000e+00
  %or.cond = select i1 %603, i1 %604, i1 false
  br i1 %or.cond, label %.critedge21, label %605

605:                                              ; preds = %thread-pre-split
  store i32 1, ptr %92, align 4, !tbaa !75
  br i1 %544, label %606, label %609

606:                                              ; preds = %605
  br i1 %604, label %607, label %608

607:                                              ; preds = %606
  store double -5.000000e-01, ptr %7, align 8, !tbaa !64
  br label %608

608:                                              ; preds = %607, %606
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull @.str.102, ptr noundef nonnull %3, ptr noundef nonnull %7)
  br label %.critedge21

609:                                              ; preds = %605
  br i1 %604, label %610, label %611

610:                                              ; preds = %609
  store double 5.000000e-01, ptr %7, align 8, !tbaa !64
  br label %611

611:                                              ; preds = %610, %609
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull @.str.103, ptr noundef nonnull %3, ptr noundef nonnull %7)
  br label %.critedge21

612:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.104, ptr noundef null, ptr noundef null)
  store i32 1, ptr %90, align 8, !tbaa !80
  br label %.critedge21

613:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.105, ptr noundef null, ptr noundef null)
  store i32 1, ptr %89, align 4, !tbaa !81
  br label %.critedge21

614:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.106, ptr noundef null, ptr noundef null)
  store i32 1, ptr %88, align 4, !tbaa !82
  br label %.critedge21

615:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.107, ptr noundef null, ptr noundef null)
  store i32 1, ptr %87, align 4, !tbaa !83
  br label %.critedge21

616:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.108, ptr noundef null, ptr noundef null)
  store i32 1, ptr %86, align 8, !tbaa !84
  br label %.critedge21

617:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.109, ptr noundef null, ptr noundef null)
  store i32 1, ptr %85, align 8, !tbaa !85
  br label %.critedge21

618:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.110, ptr noundef null, ptr noundef null)
  store i32 1, ptr %0, align 8, !tbaa !86
  br label %.critedge21

619:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.111, ptr noundef null, ptr noundef null)
  store i32 1, ptr %76, align 4, !tbaa !87
  br label %.critedge21

620:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.112, ptr noundef null, ptr noundef null)
  %621 = load ptr, ptr %158, align 8, !tbaa !5
  %622 = load ptr, ptr %5, align 8, !tbaa !5
  %623 = load i8, ptr %622, align 1, !tbaa !17
  %624 = sext i8 %623 to i64
  %625 = getelementptr inbounds i16, ptr %621, i64 %624
  %626 = load i16, ptr %625, align 2, !tbaa !18
  %627 = and i16 %626, 2048
  %.not578 = icmp eq i16 %627, 0
  br i1 %.not578, label %628, label %632

628:                                              ; preds = %620
  %629 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %629, i32 noundef 7091, ptr noundef nonnull @.str.113) #7
  %630 = load ptr, ptr %5, align 8, !tbaa !5
  %631 = getelementptr inbounds i8, ptr %630, i64 -2
  br label %.critedge21

632:                                              ; preds = %620
  %633 = call i32 @qh_strtol(ptr noundef nonnull %622, ptr noundef nonnull %5) #7
  store i32 %633, ptr %84, align 8, !tbaa !88
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.112, ptr noundef nonnull %84, ptr noundef null)
  br label %.critedge21

634:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.114, ptr noundef null, ptr noundef null)
  store i32 1, ptr %83, align 4, !tbaa !89
  br label %.critedge21

635:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.115, ptr noundef null, ptr noundef null)
  store i32 1, ptr %82, align 4, !tbaa !90
  br label %.critedge21

636:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.116, ptr noundef null, ptr noundef null)
  store i32 1, ptr %81, align 4, !tbaa !91
  br label %.critedge21

637:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.117, ptr noundef null, ptr noundef null)
  store i32 1, ptr %80, align 4, !tbaa !92
  br label %.critedge21

638:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.118, ptr noundef null, ptr noundef null)
  store i32 1, ptr %79, align 8, !tbaa !93
  br label %.critedge21

639:                                              ; preds = %539
  %640 = load ptr, ptr %158, align 8, !tbaa !5
  %641 = load i8, ptr %540, align 1, !tbaa !17
  %642 = sext i8 %641 to i64
  %643 = getelementptr inbounds i16, ptr %640, i64 %642
  %644 = load i16, ptr %643, align 2, !tbaa !18
  %645 = and i16 %644, 2048
  %.not575 = icmp eq i16 %645, 0
  br i1 %.not575, label %646, label %647

646:                                              ; preds = %639
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.119, ptr noundef null, ptr noundef null)
  store i32 1, ptr %78, align 8, !tbaa !94
  br label %.critedge21

647:                                              ; preds = %639
  %648 = getelementptr inbounds i8, ptr %533, i64 2
  store ptr %648, ptr %5, align 8, !tbaa !5
  %649 = load i8, ptr %540, align 1, !tbaa !17
  switch i8 %649, label %655 [
    i8 48, label %650
    i8 49, label %651
    i8 50, label %652
    i8 52, label %653
    i8 55, label %654
  ]

650:                                              ; preds = %647
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.120, ptr noundef null, ptr noundef null)
  store i32 1, ptr %77, align 8, !tbaa !95
  br label %.critedge21

651:                                              ; preds = %647
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.121, ptr noundef null, ptr noundef null)
  store i32 1, ptr %75, align 8, !tbaa !96
  store i32 1, ptr %76, align 4, !tbaa !87
  br label %.critedge21

652:                                              ; preds = %647
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.122, ptr noundef null, ptr noundef null)
  store i32 1, ptr %74, align 4, !tbaa !97
  br label %.critedge21

653:                                              ; preds = %647
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.123, ptr noundef null, ptr noundef null)
  store i32 1, ptr %73, align 8, !tbaa !98
  br label %.critedge21

654:                                              ; preds = %647
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.124, ptr noundef null, ptr noundef null)
  store i32 1, ptr %72, align 8, !tbaa !99
  br label %.critedge21

655:                                              ; preds = %647
  store ptr %540, ptr %5, align 8, !tbaa !5
  %656 = load ptr, ptr %41, align 8, !tbaa !16
  %657 = load i8, ptr %540, align 1, !tbaa !17
  %658 = sext i8 %657 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %656, i32 noundef 7016, ptr noundef nonnull @.str.125, i32 noundef %658) #7
  %659 = load ptr, ptr %5, align 8, !tbaa !5
  %660 = getelementptr inbounds i8, ptr %659, i64 -1
  br label %661

661:                                              ; preds = %665, %655
  %662 = phi ptr [ %663, %665 ], [ %659, %655 ]
  %663 = getelementptr inbounds i8, ptr %662, i64 1
  store ptr %663, ptr %5, align 8, !tbaa !5
  %664 = load i8, ptr %663, align 1, !tbaa !17
  %.not576 = icmp eq i8 %664, 0
  br i1 %.not576, label %.critedge21, label %665

665:                                              ; preds = %661
  %666 = load ptr, ptr %158, align 8, !tbaa !5
  %667 = sext i8 %664 to i64
  %668 = getelementptr inbounds i16, ptr %666, i64 %667
  %669 = load i16, ptr %668, align 2, !tbaa !18
  %670 = and i16 %669, 8192
  %.not577 = icmp eq i16 %670, 0
  br i1 %.not577, label %661, label %.critedge21, !llvm.loop !100

671:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.126, ptr noundef null, ptr noundef null)
  store i32 0, ptr %71, align 8, !tbaa !101
  br label %673

672:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.127, ptr noundef null, ptr noundef null)
  store i32 0, ptr %70, align 4, !tbaa !102
  br label %673

673:                                              ; preds = %672, %671
  %674 = load ptr, ptr %158, align 8, !tbaa !5
  %675 = load ptr, ptr %5, align 8, !tbaa !5
  %676 = load i8, ptr %675, align 1, !tbaa !17
  %677 = sext i8 %676 to i64
  %678 = getelementptr inbounds i16, ptr %674, i64 %677
  %679 = load i16, ptr %678, align 2, !tbaa !18
  %680 = and i16 %679, 2048
  %.not574 = icmp eq i16 %680, 0
  br i1 %.not574, label %.critedge21, label %681

681:                                              ; preds = %673
  %682 = sext i8 %676 to i32
  %683 = load ptr, ptr %41, align 8, !tbaa !16
  %684 = getelementptr inbounds i8, ptr %675, i64 -1
  %685 = load i8, ptr %684, align 1, !tbaa !17
  %686 = sext i8 %685 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %683, i32 noundef 7017, ptr noundef nonnull @.str.128, i32 noundef %686, i32 noundef %682) #7
  %687 = load ptr, ptr %5, align 8, !tbaa !5
  %688 = getelementptr inbounds i8, ptr %687, i64 -2
  %689 = getelementptr inbounds i8, ptr %687, i64 1
  store ptr %689, ptr %5, align 8, !tbaa !5
  br label %.critedge21

690:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.129, ptr noundef null, ptr noundef null)
  store i32 1, ptr %69, align 8, !tbaa !103
  br label %.critedge21

691:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.130, ptr noundef null, ptr noundef null)
  store i32 1, ptr %68, align 8, !tbaa !104
  br label %.critedge21

692:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.131, ptr noundef null, ptr noundef null)
  store i32 1, ptr %67, align 4, !tbaa !105
  br label %.critedge21

693:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.132, ptr noundef null, ptr noundef null)
  store i32 1, ptr %66, align 8, !tbaa !106
  br label %.critedge21

694:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.133, ptr noundef null, ptr noundef null)
  store i32 1, ptr %65, align 4, !tbaa !107
  br label %.critedge21

695:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.134, ptr noundef null, ptr noundef null)
  store i32 1, ptr %64, align 4, !tbaa !108
  br label %.critedge21

696:                                              ; preds = %539
  %697 = call i32 @qh_strtol(ptr noundef nonnull %540, ptr noundef nonnull %6) #7
  store i32 %697, ptr %4, align 4, !tbaa !63
  %698 = load i32, ptr %63, align 4, !tbaa !109
  %.not573 = icmp eq i32 %698, 0
  br i1 %.not573, label %703, label %699

699:                                              ; preds = %696
  %700 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %700, i32 noundef 7018, ptr noundef nonnull @.str.135) #7
  %701 = load ptr, ptr %5, align 8, !tbaa !5
  %702 = getelementptr inbounds i8, ptr %701, i64 -2
  br label %720

703:                                              ; preds = %696
  %704 = load ptr, ptr %5, align 8, !tbaa !5
  %705 = load ptr, ptr %6, align 8, !tbaa !5
  %706 = icmp eq ptr %704, %705
  br i1 %706, label %707, label %711

707:                                              ; preds = %703
  %708 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %708, i32 noundef 7019, ptr noundef nonnull @.str.136) #7
  %709 = load ptr, ptr %5, align 8, !tbaa !5
  %710 = getelementptr inbounds i8, ptr %709, i64 -2
  br label %720

711:                                              ; preds = %703
  %712 = icmp slt i32 %697, 0
  br i1 %712, label %716, label %713

713:                                              ; preds = %711
  %714 = load i8, ptr %704, align 1, !tbaa !17
  %715 = icmp eq i8 %714, 45
  br i1 %715, label %716, label %718

716:                                              ; preds = %713, %711
  %717 = add nsw i32 %697, -1
  store i32 %717, ptr %63, align 4, !tbaa !109
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull @.str.137, ptr noundef nonnull %4, ptr noundef null)
  br label %720

718:                                              ; preds = %713
  %719 = add nuw nsw i32 %697, 1
  store i32 %719, ptr %63, align 4, !tbaa !109
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull @.str.138, ptr noundef nonnull %4, ptr noundef null)
  br label %720

720:                                              ; preds = %707, %718, %716, %699
  %.9 = phi ptr [ %702, %699 ], [ %710, %707 ], [ %.8683, %716 ], [ %.8683, %718 ]
  %721 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %721, ptr %5, align 8, !tbaa !5
  br label %.critedge21

722:                                              ; preds = %539
  %723 = load ptr, ptr %158, align 8, !tbaa !5
  %724 = load i8, ptr %540, align 1, !tbaa !17
  %725 = sext i8 %724 to i64
  %726 = getelementptr inbounds i16, ptr %723, i64 %725
  %727 = load i16, ptr %726, align 2, !tbaa !18
  %728 = and i16 %727, 2048
  %.not571 = icmp ne i16 %728, 0
  %.not572 = icmp eq i8 %724, 45
  %or.cond631 = or i1 %.not572, %.not571
  br i1 %or.cond631, label %730, label %729

729:                                              ; preds = %722
  store double 0.000000e+00, ptr %62, align 8, !tbaa !110
  br label %.critedge21

730:                                              ; preds = %722
  %731 = call double @qh_strtod(ptr noundef nonnull %540, ptr noundef nonnull %5) #7
  store double %731, ptr %62, align 8, !tbaa !110
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.139, ptr noundef null, ptr noundef nonnull %62)
  br label %.critedge21

732:                                              ; preds = %539
  %733 = load ptr, ptr %158, align 8, !tbaa !5
  %734 = load i8, ptr %540, align 1, !tbaa !17
  %735 = sext i8 %734 to i64
  %736 = getelementptr inbounds i16, ptr %733, i64 %735
  %737 = load i16, ptr %736, align 2, !tbaa !18
  %738 = and i16 %737, 2048
  %.not569 = icmp ne i16 %738, 0
  %.not570 = icmp eq i8 %734, 45
  %or.cond632 = or i1 %.not570, %.not569
  br i1 %or.cond632, label %743, label %739

739:                                              ; preds = %732
  %740 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %740, i32 noundef 7020, ptr noundef nonnull @.str.140) #7
  %741 = load ptr, ptr %5, align 8, !tbaa !5
  %742 = getelementptr inbounds i8, ptr %741, i64 -2
  br label %.critedge21

743:                                              ; preds = %732
  %744 = call i32 @qh_strtol(ptr noundef nonnull %540, ptr noundef nonnull %5) #7
  store i32 %744, ptr %4, align 4, !tbaa !63
  store i32 %744, ptr %61, align 8, !tbaa !111
  %745 = icmp sgt i32 %744, 0
  br i1 %745, label %746, label %747

746:                                              ; preds = %743
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull @.str.141, ptr noundef nonnull %4, ptr noundef null)
  br label %.critedge21

747:                                              ; preds = %743
  %748 = icmp slt i32 %744, -1
  br i1 %748, label %749, label %.critedge21

749:                                              ; preds = %747
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull @.str.142, ptr noundef nonnull %4, ptr noundef null)
  br label %.critedge21

750:                                              ; preds = %539
  %751 = call i32 @qh_strtol(ptr noundef nonnull %540, ptr noundef nonnull %6) #7
  store i32 %751, ptr %4, align 4, !tbaa !63
  %752 = load i32, ptr %60, align 4, !tbaa !112
  %.not568 = icmp eq i32 %752, 0
  br i1 %.not568, label %757, label %753

753:                                              ; preds = %750
  %754 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %754, i32 noundef 7021, ptr noundef nonnull @.str.143) #7
  %755 = load ptr, ptr %5, align 8, !tbaa !5
  %756 = getelementptr inbounds i8, ptr %755, i64 -2
  br label %772

757:                                              ; preds = %750
  %758 = load ptr, ptr %5, align 8, !tbaa !5
  %759 = load ptr, ptr %6, align 8, !tbaa !5
  %760 = icmp eq ptr %758, %759
  br i1 %760, label %761, label %765

761:                                              ; preds = %757
  %762 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %762, i32 noundef 7022, ptr noundef nonnull @.str.144) #7
  %763 = load ptr, ptr %5, align 8, !tbaa !5
  %764 = getelementptr inbounds i8, ptr %763, i64 -2
  br label %772

765:                                              ; preds = %757
  %766 = icmp slt i32 %751, 0
  br i1 %766, label %767, label %769

767:                                              ; preds = %765
  %768 = add nsw i32 %751, -1
  store i32 %768, ptr %60, align 4, !tbaa !112
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull @.str.145, ptr noundef nonnull %4, ptr noundef null)
  br label %772

769:                                              ; preds = %765
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull @.str.146, ptr noundef nonnull %4, ptr noundef null)
  %770 = load i32, ptr %4, align 4, !tbaa !63
  %771 = add nsw i32 %770, 1
  store i32 %771, ptr %60, align 4, !tbaa !112
  br label %772

772:                                              ; preds = %761, %769, %767, %753
  %.10 = phi ptr [ %756, %753 ], [ %764, %761 ], [ %.8683, %767 ], [ %.8683, %769 ]
  %773 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %773, ptr %5, align 8, !tbaa !5
  br label %.critedge21

774:                                              ; preds = %539
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.147, ptr noundef null, ptr noundef null)
  store i32 1, ptr %59, align 8, !tbaa !113
  br label %.critedge21

775:                                              ; preds = %539
  store ptr %533, ptr %5, align 8, !tbaa !5
  %776 = load ptr, ptr %41, align 8, !tbaa !16
  %777 = load i8, ptr %533, align 1, !tbaa !17
  %778 = sext i8 %777 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %776, i32 noundef 7023, ptr noundef nonnull @.str.148, i32 noundef %778) #7
  %779 = load ptr, ptr %5, align 8, !tbaa !5
  %780 = getelementptr inbounds i8, ptr %779, i64 -1
  br label %781

781:                                              ; preds = %785, %775
  %782 = phi ptr [ %783, %785 ], [ %779, %775 ]
  %783 = getelementptr inbounds i8, ptr %782, i64 1
  store ptr %783, ptr %5, align 8, !tbaa !5
  %784 = load i8, ptr %783, align 1, !tbaa !17
  %.not582 = icmp eq i8 %784, 0
  br i1 %.not582, label %.critedge21, label %785

785:                                              ; preds = %781
  %786 = load ptr, ptr %158, align 8, !tbaa !5
  %787 = sext i8 %784 to i64
  %788 = getelementptr inbounds i16, ptr %786, i64 %787
  %789 = load i16, ptr %788, align 2, !tbaa !18
  %790 = and i16 %789, 8192
  %.not583 = icmp eq i16 %790, 0
  br i1 %.not583, label %781, label %.critedge21, !llvm.loop !114

.critedge21:                                      ; preds = %661, %665, %785, %781, %.critedge18, %thread-pre-split, %739, %747, %749, %746, %729, %730, %673, %681, %650, %651, %652, %653, %654, %628, %632, %608, %611, %774, %772, %720, %695, %694, %693, %692, %691, %690, %646, %638, %637, %636, %635, %634, %619, %618, %617, %616, %615, %614, %613, %612, %549, %547, %542
  %.11 = phi ptr [ %.8683, %774 ], [ %.10, %772 ], [ %.8683, %746 ], [ %.8683, %749 ], [ %.8683, %747 ], [ %742, %739 ], [ %.8683, %730 ], [ %.8683, %729 ], [ %.9, %720 ], [ %.8683, %695 ], [ %.8683, %694 ], [ %.8683, %693 ], [ %.8683, %692 ], [ %.8683, %691 ], [ %.8683, %690 ], [ %688, %681 ], [ %.8683, %673 ], [ %.8683, %654 ], [ %.8683, %653 ], [ %.8683, %652 ], [ %.8683, %651 ], [ %.8683, %650 ], [ %.8683, %646 ], [ %.8683, %638 ], [ %.8683, %637 ], [ %.8683, %636 ], [ %.8683, %635 ], [ %.8683, %634 ], [ %.8683, %632 ], [ %631, %628 ], [ %.8683, %619 ], [ %.8683, %618 ], [ %.8683, %617 ], [ %.8683, %616 ], [ %.8683, %615 ], [ %.8683, %614 ], [ %.8683, %613 ], [ %.8683, %612 ], [ %.8683, %547 ], [ %.8683, %549 ], [ %.8683, %.critedge18 ], [ %.8683, %608 ], [ %.8683, %611 ], [ %.8683, %542 ], [ %.8683, %thread-pre-split ], [ %780, %781 ], [ %780, %785 ], [ %660, %665 ], [ %660, %661 ]
  %.2 = phi i32 [ %.0684, %774 ], [ %.0684, %772 ], [ %.0684, %746 ], [ %.0684, %749 ], [ %.0684, %747 ], [ %.0684, %739 ], [ %.0684, %730 ], [ %.0684, %729 ], [ %.0684, %720 ], [ %.0684, %695 ], [ %.0684, %694 ], [ %.0684, %693 ], [ %.0684, %692 ], [ %.0684, %691 ], [ %.0684, %690 ], [ %.0684, %681 ], [ %.0684, %673 ], [ %.0684, %654 ], [ %.0684, %653 ], [ %.0684, %652 ], [ %.0684, %651 ], [ %.0684, %650 ], [ %.0684, %646 ], [ %.0684, %638 ], [ %.0684, %637 ], [ %.0684, %636 ], [ %.0684, %635 ], [ %.0684, %634 ], [ %.0684, %632 ], [ %.0684, %628 ], [ %.0684, %619 ], [ %.0684, %618 ], [ %.0684, %617 ], [ %.0684, %616 ], [ %.0684, %615 ], [ %.0684, %614 ], [ %.0684, %613 ], [ %.0684, %612 ], [ %.0684, %547 ], [ %.0684, %549 ], [ %600, %.critedge18 ], [ %.0684, %608 ], [ %.0684, %611 ], [ %.0684, %542 ], [ -1, %thread-pre-split ], [ %.0684, %781 ], [ %.0684, %785 ], [ %.0684, %665 ], [ %.0684, %661 ]
  %791 = load ptr, ptr %5, align 8, !tbaa !5
  %792 = load i8, ptr %791, align 1, !tbaa !17
  %.not566 = icmp eq i8 %792, 0
  br i1 %.not566, label %.critedge4, label %531, !llvm.loop !115

793:                                              ; preds = %.lr.ph674, %.critedge27
  %794 = phi i8 [ %155, %.lr.ph674 ], [ %1045, %.critedge27 ]
  %795 = phi ptr [ %153, %.lr.ph674 ], [ %1044, %.critedge27 ]
  %.12673 = phi ptr [ %.0490717, %.lr.ph674 ], [ %.16, %.critedge27 ]
  %796 = load ptr, ptr %156, align 8, !tbaa !5
  %797 = sext i8 %794 to i64
  %798 = getelementptr inbounds i16, ptr %796, i64 %797
  %799 = load i16, ptr %798, align 2, !tbaa !18
  %800 = zext i16 %799 to i32
  %801 = and i32 %800, 8192
  %.not547 = icmp eq i32 %801, 0
  br i1 %.not547, label %802, label %.critedge4

802:                                              ; preds = %793
  %803 = and i32 %800, 2048
  %.not548 = icmp ne i32 %803, 0
  %804 = icmp eq i8 %794, 45
  %or.cond633 = or i1 %804, %.not548
  br i1 %or.cond633, label %805, label %807

805:                                              ; preds = %802
  %806 = call i32 @qh_strtol(ptr noundef nonnull %795, ptr noundef nonnull %5) #7
  store i32 %806, ptr %58, align 8, !tbaa !78
  br label %.critedge27

807:                                              ; preds = %802
  %808 = getelementptr inbounds i8, ptr %795, i64 1
  store ptr %808, ptr %5, align 8, !tbaa !5
  %809 = load i8, ptr %795, align 1, !tbaa !17
  switch i8 %809, label %1027 [
    i8 97, label %822
    i8 99, label %823
    i8 102, label %824
    i8 115, label %825
    i8 118, label %826
    i8 122, label %827
    i8 67, label %838
    i8 70, label %853
    i8 73, label %.preheader
    i8 79, label %.preheader645
    i8 65, label %915
    i8 80, label %931
    i8 77, label %971
    i8 82, label %984
    i8 86, label %997
    i8 87, label %1014
  ]

.preheader645:                                    ; preds = %807
  %810 = load ptr, ptr %156, align 8, !tbaa !5
  %811 = load i8, ptr %808, align 1, !tbaa !17
  %812 = sext i8 %811 to i64
  %813 = getelementptr inbounds i16, ptr %810, i64 %812
  %814 = load i16, ptr %813, align 2, !tbaa !18
  %815 = and i16 %814, 8192
  %.not556666 = icmp eq i16 %815, 0
  br i1 %.not556666, label %._crit_edge, label %.lr.ph667

.preheader:                                       ; preds = %807
  %816 = load ptr, ptr %156, align 8, !tbaa !5
  %817 = load i8, ptr %808, align 1, !tbaa !17
  %818 = sext i8 %817 to i64
  %819 = getelementptr inbounds i16, ptr %816, i64 %818
  %820 = load i16, ptr %819, align 2, !tbaa !18
  %821 = and i16 %820, 8192
  %.not559668 = icmp eq i16 %821, 0
  br i1 %.not559668, label %._crit_edge670, label %.lr.ph669

822:                                              ; preds = %807
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.149, ptr noundef null, ptr noundef null)
  store i32 1, ptr %57, align 8, !tbaa !116
  br label %.critedge27

823:                                              ; preds = %807
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.150, ptr noundef null, ptr noundef null)
  store i32 1, ptr %56, align 4, !tbaa !117
  br label %.critedge27

824:                                              ; preds = %807
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.151, ptr noundef null, ptr noundef null)
  store i32 1, ptr %55, align 4, !tbaa !118
  br label %.critedge27

825:                                              ; preds = %807
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.152, ptr noundef null, ptr noundef null)
  store i32 1, ptr %54, align 8, !tbaa !119
  br label %.critedge27

826:                                              ; preds = %807
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.153, ptr noundef null, ptr noundef null)
  store i32 1, ptr %53, align 4, !tbaa !120
  br label %.critedge27

827:                                              ; preds = %807
  %828 = load ptr, ptr %41, align 8, !tbaa !16
  %829 = icmp eq ptr %828, inttoptr (i64 1 to ptr)
  br i1 %829, label %830, label %831

830:                                              ; preds = %827
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull @.str.154, ptr noundef null, ptr noundef null)
  store i32 1, ptr %51, align 8, !tbaa !121
  br label %.critedge27

831:                                              ; preds = %827
  %832 = load ptr, ptr %47, align 8, !tbaa !122
  %.not563 = icmp eq ptr %832, null
  br i1 %.not563, label %833, label %836

833:                                              ; preds = %831
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %828, i32 noundef 7024, ptr noundef nonnull @.str.155) #7
  %834 = load ptr, ptr %5, align 8, !tbaa !5
  %835 = getelementptr inbounds i8, ptr %834, i64 -2
  br label %.critedge27

836:                                              ; preds = %831
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull @.str.154, ptr noundef null, ptr noundef null)
  store i32 1, ptr %51, align 8, !tbaa !121
  %837 = load ptr, ptr %47, align 8, !tbaa !122
  store ptr %837, ptr %41, align 8, !tbaa !16
  store ptr %837, ptr %52, align 8, !tbaa !123
  br label %.critedge27

838:                                              ; preds = %807
  %839 = load ptr, ptr %156, align 8, !tbaa !5
  %840 = load i8, ptr %808, align 1, !tbaa !17
  %841 = sext i8 %840 to i64
  %842 = getelementptr inbounds i16, ptr %839, i64 %841
  %843 = load i16, ptr %842, align 2, !tbaa !18
  %844 = and i16 %843, 2048
  %.not562 = icmp eq i16 %844, 0
  br i1 %.not562, label %845, label %849

845:                                              ; preds = %838
  %846 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %846, i32 noundef 7025, ptr noundef nonnull @.str.156) #7
  %847 = load ptr, ptr %5, align 8, !tbaa !5
  %848 = getelementptr inbounds i8, ptr %847, i64 -2
  br label %.critedge27

849:                                              ; preds = %838
  %850 = call i32 @qh_strtol(ptr noundef nonnull %808, ptr noundef nonnull %5) #7
  store i32 %850, ptr %4, align 4, !tbaa !63
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.157, ptr noundef nonnull %4, ptr noundef null)
  %851 = load i32, ptr %4, align 4, !tbaa !63
  %852 = add nsw i32 %851, 1
  store i32 %852, ptr %50, align 8, !tbaa !124
  br label %.critedge27

853:                                              ; preds = %807
  %854 = load ptr, ptr %156, align 8, !tbaa !5
  %855 = load i8, ptr %808, align 1, !tbaa !17
  %856 = sext i8 %855 to i64
  %857 = getelementptr inbounds i16, ptr %854, i64 %856
  %858 = load i16, ptr %857, align 2, !tbaa !18
  %859 = and i16 %858, 2048
  %.not561 = icmp eq i16 %859, 0
  br i1 %.not561, label %860, label %864

860:                                              ; preds = %853
  %861 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %861, i32 noundef 7026, ptr noundef nonnull @.str.158) #7
  %862 = load ptr, ptr %5, align 8, !tbaa !5
  %863 = getelementptr inbounds i8, ptr %862, i64 -2
  br label %.critedge27

864:                                              ; preds = %853
  %865 = call i32 @qh_strtol(ptr noundef nonnull %808, ptr noundef nonnull %5) #7
  store i32 %865, ptr %48, align 4, !tbaa !125
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.159, ptr noundef nonnull %48, ptr noundef null)
  %866 = load i32, ptr %48, align 4, !tbaa !125
  %867 = sdiv i32 %866, 2
  store i32 %867, ptr %49, align 8, !tbaa !126
  br label %.critedge27

.lr.ph669:                                        ; preds = %.preheader, %.lr.ph669
  %868 = phi ptr [ %869, %.lr.ph669 ], [ %808, %.preheader ]
  %869 = getelementptr inbounds i8, ptr %868, i64 1
  store ptr %869, ptr %5, align 8, !tbaa !5
  %870 = load ptr, ptr %156, align 8, !tbaa !5
  %871 = load i8, ptr %869, align 1, !tbaa !17
  %872 = sext i8 %871 to i64
  %873 = getelementptr inbounds i16, ptr %870, i64 %872
  %874 = load i16, ptr %873, align 2, !tbaa !18
  %875 = and i16 %874, 8192
  %.not559 = icmp eq i16 %875, 0
  br i1 %.not559, label %._crit_edge670, label %.lr.ph669, !llvm.loop !127

._crit_edge670:                                   ; preds = %.lr.ph669, %.preheader
  %.lcssa659 = phi ptr [ %808, %.preheader ], [ %869, %.lr.ph669 ]
  %876 = call ptr @qh_skipfilename(ptr noundef %0, ptr noundef nonnull %.lcssa659) #7
  store ptr %876, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 500, ptr nonnull %8) #7
  %877 = load ptr, ptr %5, align 8, !tbaa !5
  %878 = ptrtoint ptr %876 to i64
  %879 = ptrtoint ptr %877 to i64
  %880 = sub i64 %878, %879
  %881 = trunc i64 %880 to i32
  call void @qh_copyfilename(ptr noundef %0, ptr noundef nonnull %8, i32 noundef 500, ptr noundef %877, i32 noundef %881) #7
  %882 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %882, ptr %5, align 8, !tbaa !5
  %883 = load ptr, ptr @stdin, align 8, !tbaa !5
  %884 = call ptr @freopen(ptr noundef nonnull %8, ptr noundef nonnull @.str.160, ptr noundef %883) #7
  %.not560 = icmp eq ptr %884, null
  br i1 %.not560, label %885, label %887

885:                                              ; preds = %._crit_edge670
  %886 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %886, i32 noundef 6041, ptr noundef nonnull @.str.161, ptr noundef nonnull %8) #7
  call void @qh_errexit(ptr noundef %0, i32 noundef 1, ptr noundef null, ptr noundef null) #7
  br label %888

887:                                              ; preds = %._crit_edge670
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.162, ptr noundef null, ptr noundef null)
  call void @qh_option(ptr noundef %0, ptr noundef nonnull %8, ptr noundef null, ptr noundef null)
  br label %888

888:                                              ; preds = %887, %885
  call void @llvm.lifetime.end.p0(i64 500, ptr nonnull %8) #7
  br label %.critedge27

.lr.ph667:                                        ; preds = %.preheader645, %.lr.ph667
  %889 = phi ptr [ %890, %.lr.ph667 ], [ %808, %.preheader645 ]
  %890 = getelementptr inbounds i8, ptr %889, i64 1
  store ptr %890, ptr %5, align 8, !tbaa !5
  %891 = load ptr, ptr %156, align 8, !tbaa !5
  %892 = load i8, ptr %890, align 1, !tbaa !17
  %893 = sext i8 %892 to i64
  %894 = getelementptr inbounds i16, ptr %891, i64 %893
  %895 = load i16, ptr %894, align 2, !tbaa !18
  %896 = and i16 %895, 8192
  %.not556 = icmp eq i16 %896, 0
  br i1 %.not556, label %._crit_edge, label %.lr.ph667, !llvm.loop !128

._crit_edge:                                      ; preds = %.lr.ph667, %.preheader645
  %.lcssa = phi ptr [ %808, %.preheader645 ], [ %890, %.lr.ph667 ]
  %897 = call ptr @qh_skipfilename(ptr noundef %0, ptr noundef nonnull %.lcssa) #7
  store ptr %897, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 500, ptr nonnull %9) #7
  %898 = load ptr, ptr %5, align 8, !tbaa !5
  %899 = ptrtoint ptr %897 to i64
  %900 = ptrtoint ptr %898 to i64
  %901 = sub i64 %899, %900
  %902 = trunc i64 %901 to i32
  call void @qh_copyfilename(ptr noundef %0, ptr noundef nonnull %9, i32 noundef 500, ptr noundef %898, i32 noundef %902) #7
  %903 = load ptr, ptr %47, align 8, !tbaa !122
  %.not557 = icmp eq ptr %903, null
  br i1 %.not557, label %904, label %908

904:                                              ; preds = %._crit_edge
  %905 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %905, i32 noundef 7092, ptr noundef nonnull @.str.163) #7
  %906 = load ptr, ptr %5, align 8, !tbaa !5
  %907 = getelementptr inbounds i8, ptr %906, i64 -2
  br label %913

908:                                              ; preds = %._crit_edge
  %909 = call ptr @freopen(ptr noundef nonnull %9, ptr noundef nonnull @.str.164, ptr noundef nonnull %903) #7
  %.not558 = icmp eq ptr %909, null
  br i1 %.not558, label %910, label %912

910:                                              ; preds = %908
  %911 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %911, i32 noundef 6044, ptr noundef nonnull @.str.165, ptr noundef nonnull %9) #7
  call void @qh_errexit(ptr noundef nonnull %0, i32 noundef 1, ptr noundef null, ptr noundef null) #7
  br label %913

912:                                              ; preds = %908
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull @.str.166, ptr noundef null, ptr noundef null)
  call void @qh_option(ptr noundef nonnull %0, ptr noundef nonnull %9, ptr noundef null, ptr noundef null)
  br label %913

913:                                              ; preds = %910, %912, %904
  %.13 = phi ptr [ %.12673, %912 ], [ %.12673, %910 ], [ %907, %904 ]
  %914 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %914, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 500, ptr nonnull %9) #7
  br label %.critedge27

915:                                              ; preds = %807
  %916 = load ptr, ptr %156, align 8, !tbaa !5
  %917 = load i8, ptr %808, align 1, !tbaa !17
  %918 = sext i8 %917 to i64
  %919 = getelementptr inbounds i16, ptr %916, i64 %918
  %920 = load i16, ptr %919, align 2, !tbaa !18
  %921 = and i16 %920, 2048
  %.not555 = icmp eq i16 %921, 0
  br i1 %.not555, label %922, label %926

922:                                              ; preds = %915
  %923 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %923, i32 noundef 7093, ptr noundef nonnull @.str.167) #7
  %924 = load ptr, ptr %5, align 8, !tbaa !5
  %925 = getelementptr inbounds i8, ptr %924, i64 -2
  br label %929

926:                                              ; preds = %915
  %927 = call i32 @qh_strtol(ptr noundef nonnull %808, ptr noundef nonnull %6) #7
  store i32 %927, ptr %4, align 4, !tbaa !63
  %928 = add nsw i32 %927, 1
  store i32 %928, ptr %46, align 4, !tbaa !129
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.168, ptr noundef nonnull %4, ptr noundef null)
  br label %929

929:                                              ; preds = %926, %922
  %.14 = phi ptr [ %.12673, %926 ], [ %925, %922 ]
  %930 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %930, ptr %5, align 8, !tbaa !5
  br label %.critedge27

931:                                              ; preds = %807
  %932 = load i8, ptr %808, align 1, !tbaa !17
  %933 = icmp eq i8 %932, 45
  br i1 %933, label %934, label %959

934:                                              ; preds = %931
  %935 = getelementptr inbounds i8, ptr %795, i64 2
  %936 = load i8, ptr %935, align 1, !tbaa !17
  %937 = icmp eq i8 %936, 49
  br i1 %937, label %938, label %947

938:                                              ; preds = %934
  %939 = load ptr, ptr %156, align 8, !tbaa !5
  %940 = getelementptr inbounds i8, ptr %795, i64 3
  %941 = load i8, ptr %940, align 1, !tbaa !17
  %942 = sext i8 %941 to i64
  %943 = getelementptr inbounds i16, ptr %939, i64 %942
  %944 = load i16, ptr %943, align 2, !tbaa !18
  %945 = and i16 %944, 2048
  %.not553 = icmp eq i16 %945, 0
  br i1 %.not553, label %946, label %947

946:                                              ; preds = %938
  store ptr %940, ptr %5, align 8, !tbaa !5
  store i32 -1, ptr %45, align 8, !tbaa !130
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.169, ptr noundef nonnull %45, ptr noundef null)
  br label %.critedge27

947:                                              ; preds = %938, %934
  %948 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %948, i32 noundef 7100, ptr noundef nonnull @.str.170) #7
  %949 = load ptr, ptr %5, align 8, !tbaa !5
  br label %950

950:                                              ; preds = %950, %947
  %951 = phi ptr [ %953, %950 ], [ %949, %947 ]
  %952 = load ptr, ptr %156, align 8, !tbaa !5
  %953 = getelementptr inbounds i8, ptr %951, i64 1
  store ptr %953, ptr %5, align 8, !tbaa !5
  %954 = load i8, ptr %953, align 1, !tbaa !17
  %955 = sext i8 %954 to i64
  %956 = getelementptr inbounds i16, ptr %952, i64 %955
  %957 = load i16, ptr %956, align 2, !tbaa !18
  %958 = and i16 %957, 2048
  %.not554 = icmp eq i16 %958, 0
  br i1 %.not554, label %.critedge27.loopexit725, label %950, !llvm.loop !131

959:                                              ; preds = %931
  %960 = load ptr, ptr %156, align 8, !tbaa !5
  %961 = sext i8 %932 to i64
  %962 = getelementptr inbounds i16, ptr %960, i64 %961
  %963 = load i16, ptr %962, align 2, !tbaa !18
  %964 = and i16 %963, 2048
  %.not552 = icmp eq i16 %964, 0
  br i1 %.not552, label %965, label %969

965:                                              ; preds = %959
  %966 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %966, i32 noundef 7029, ptr noundef nonnull @.str.171) #7
  %967 = load ptr, ptr %5, align 8, !tbaa !5
  %968 = getelementptr inbounds i8, ptr %967, i64 -2
  br label %.critedge27

969:                                              ; preds = %959
  %970 = call i32 @qh_strtol(ptr noundef nonnull %808, ptr noundef nonnull %5) #7
  store i32 %970, ptr %45, align 8, !tbaa !130
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.169, ptr noundef nonnull %45, ptr noundef null)
  br label %.critedge27

971:                                              ; preds = %807
  %972 = load ptr, ptr %156, align 8, !tbaa !5
  %973 = load i8, ptr %808, align 1, !tbaa !17
  %974 = sext i8 %973 to i64
  %975 = getelementptr inbounds i16, ptr %972, i64 %974
  %976 = load i16, ptr %975, align 2, !tbaa !18
  %977 = and i16 %976, 2048
  %.not551 = icmp eq i16 %977, 0
  br i1 %.not551, label %978, label %982

978:                                              ; preds = %971
  %979 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %979, i32 noundef 7030, ptr noundef nonnull @.str.172) #7
  %980 = load ptr, ptr %5, align 8, !tbaa !5
  %981 = getelementptr inbounds i8, ptr %980, i64 -2
  br label %.critedge27

982:                                              ; preds = %971
  %983 = call i32 @qh_strtol(ptr noundef nonnull %808, ptr noundef nonnull %5) #7
  store i32 %983, ptr %44, align 8, !tbaa !132
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.173, ptr noundef nonnull %44, ptr noundef null)
  br label %.critedge27

984:                                              ; preds = %807
  %985 = load ptr, ptr %156, align 8, !tbaa !5
  %986 = load i8, ptr %808, align 1, !tbaa !17
  %987 = sext i8 %986 to i64
  %988 = getelementptr inbounds i16, ptr %985, i64 %987
  %989 = load i16, ptr %988, align 2, !tbaa !18
  %990 = and i16 %989, 2048
  %.not550 = icmp eq i16 %990, 0
  br i1 %.not550, label %991, label %995

991:                                              ; preds = %984
  %992 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %992, i32 noundef 7031, ptr noundef nonnull @.str.174) #7
  %993 = load ptr, ptr %5, align 8, !tbaa !5
  %994 = getelementptr inbounds i8, ptr %993, i64 -2
  br label %.critedge27

995:                                              ; preds = %984
  %996 = call i32 @qh_strtol(ptr noundef nonnull %808, ptr noundef nonnull %5) #7
  store i32 %996, ptr %43, align 4, !tbaa !133
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.175, ptr noundef nonnull %43, ptr noundef null)
  br label %.critedge27

997:                                              ; preds = %807
  %998 = call i32 @qh_strtol(ptr noundef nonnull %808, ptr noundef nonnull %6) #7
  store i32 %998, ptr %4, align 4, !tbaa !63
  %999 = load ptr, ptr %5, align 8, !tbaa !5
  %1000 = load ptr, ptr %6, align 8, !tbaa !5
  %1001 = icmp eq ptr %999, %1000
  br i1 %1001, label %1002, label %1006

1002:                                             ; preds = %997
  %1003 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %1003, i32 noundef 7032, ptr noundef nonnull @.str.176) #7
  %1004 = load ptr, ptr %5, align 8, !tbaa !5
  %1005 = getelementptr inbounds i8, ptr %1004, i64 -2
  br label %1012

1006:                                             ; preds = %997
  %1007 = icmp slt i32 %998, 0
  br i1 %1007, label %1008, label %1010

1008:                                             ; preds = %1006
  %1009 = add nsw i32 %998, -1
  store i32 %1009, ptr %42, align 4, !tbaa !134
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.177, ptr noundef nonnull %4, ptr noundef null)
  br label %1012

1010:                                             ; preds = %1006
  %1011 = add nuw nsw i32 %998, 1
  store i32 %1011, ptr %42, align 4, !tbaa !134
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.178, ptr noundef nonnull %4, ptr noundef null)
  br label %1012

1012:                                             ; preds = %1008, %1010, %1002
  %.15 = phi ptr [ %1005, %1002 ], [ %.12673, %1008 ], [ %.12673, %1010 ]
  %1013 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %1013, ptr %5, align 8, !tbaa !5
  br label %.critedge27

1014:                                             ; preds = %807
  %1015 = load ptr, ptr %156, align 8, !tbaa !5
  %1016 = load i8, ptr %808, align 1, !tbaa !17
  %1017 = sext i8 %1016 to i64
  %1018 = getelementptr inbounds i16, ptr %1015, i64 %1017
  %1019 = load i16, ptr %1018, align 2, !tbaa !18
  %1020 = and i16 %1019, 2048
  %.not549 = icmp eq i16 %1020, 0
  br i1 %.not549, label %1021, label %1025

1021:                                             ; preds = %1014
  %1022 = load ptr, ptr %41, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %1022, i32 noundef 7033, ptr noundef nonnull @.str.179) #7
  %1023 = load ptr, ptr %5, align 8, !tbaa !5
  %1024 = getelementptr inbounds i8, ptr %1023, i64 -2
  br label %.critedge27

1025:                                             ; preds = %1014
  %1026 = call double @qh_strtod(ptr noundef nonnull %808, ptr noundef nonnull %5) #7
  store double %1026, ptr %40, align 8, !tbaa !135
  call void @qh_option(ptr noundef %0, ptr noundef nonnull @.str.180, ptr noundef null, ptr noundef nonnull %40)
  br label %.critedge27

1027:                                             ; preds = %807
  store ptr %795, ptr %5, align 8, !tbaa !5
  %1028 = load ptr, ptr %41, align 8, !tbaa !16
  %1029 = load i8, ptr %795, align 1, !tbaa !17
  %1030 = sext i8 %1029 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %1028, i32 noundef 7034, ptr noundef nonnull @.str.181, i32 noundef %1030) #7
  %1031 = load ptr, ptr %5, align 8, !tbaa !5
  %1032 = getelementptr inbounds i8, ptr %1031, i64 -2
  br label %1033

1033:                                             ; preds = %1037, %1027
  %1034 = phi ptr [ %1035, %1037 ], [ %1031, %1027 ]
  %1035 = getelementptr inbounds i8, ptr %1034, i64 1
  store ptr %1035, ptr %5, align 8, !tbaa !5
  %1036 = load i8, ptr %1035, align 1, !tbaa !17
  %.not564 = icmp eq i8 %1036, 0
  br i1 %.not564, label %.critedge27, label %1037

1037:                                             ; preds = %1033
  %1038 = load ptr, ptr %156, align 8, !tbaa !5
  %1039 = sext i8 %1036 to i64
  %1040 = getelementptr inbounds i16, ptr %1038, i64 %1039
  %1041 = load i16, ptr %1040, align 2, !tbaa !18
  %1042 = and i16 %1041, 8192
  %.not565 = icmp eq i16 %1042, 0
  br i1 %.not565, label %1033, label %.critedge27, !llvm.loop !136

.critedge27.loopexit725:                          ; preds = %950
  %1043 = getelementptr inbounds i8, ptr %949, i64 -2
  br label %.critedge27

.critedge27:                                      ; preds = %1033, %1037, %.critedge27.loopexit725, %822, %823, %824, %825, %826, %888, %913, %929, %1012, %833, %836, %830, %849, %845, %864, %860, %965, %969, %946, %982, %978, %995, %991, %1025, %1021, %805
  %.16 = phi ptr [ %.12673, %805 ], [ %.12673, %1025 ], [ %1024, %1021 ], [ %.15, %1012 ], [ %.12673, %995 ], [ %994, %991 ], [ %.12673, %982 ], [ %981, %978 ], [ %.12673, %946 ], [ %.12673, %969 ], [ %968, %965 ], [ %.14, %929 ], [ %.13, %913 ], [ %.12673, %888 ], [ %.12673, %864 ], [ %863, %860 ], [ %.12673, %849 ], [ %848, %845 ], [ %.12673, %830 ], [ %.12673, %836 ], [ %835, %833 ], [ %.12673, %826 ], [ %.12673, %825 ], [ %.12673, %824 ], [ %.12673, %823 ], [ %.12673, %822 ], [ %1043, %.critedge27.loopexit725 ], [ %1032, %1037 ], [ %1032, %1033 ]
  %1044 = load ptr, ptr %5, align 8, !tbaa !5
  %1045 = load i8, ptr %1044, align 1, !tbaa !17
  %.not546 = icmp eq i8 %1045, 0
  br i1 %.not546, label %.critedge4, label %793, !llvm.loop !137

1046:                                             ; preds = %.critedge2.thread.thread758
  %1047 = load ptr, ptr %41, align 8, !tbaa !16
  %1048 = sext i8 %154 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %1047, i32 noundef 7094, ptr noundef nonnull @.str.182, i32 noundef %1048, i32 noundef %1048) #7
  %1049 = load ptr, ptr %5, align 8, !tbaa !5
  %1050 = getelementptr inbounds i8, ptr %1049, i64 -2
  br label %.critedge4

.critedge4:                                       ; preds = %.critedge27, %793, %.critedge21, %531, %.critedge14, %447, %.critedge10, %387, %.critedge6, %327, %.preheader653, %.preheader651, %.preheader649, %383, %.preheader647, %312, %325, %321, %303, %307, %289, %293, %275, %279, %262, %266, %213, %226, %222, %199, %209, %180, %190, %1046, %171, %170, %169, %168, %167, %166, %165, %164, %163
  %.17 = phi ptr [ %1050, %1046 ], [ %.0490717, %312 ], [ %.0490717, %325 ], [ %324, %321 ], [ %.0490717, %307 ], [ %306, %303 ], [ %.0490717, %293 ], [ %292, %289 ], [ %.0490717, %279 ], [ %278, %275 ], [ %.0490717, %262 ], [ %.0490717, %266 ], [ %.0490717, %213 ], [ %.0490717, %226 ], [ %225, %222 ], [ %.0490717, %209 ], [ %202, %199 ], [ %.0490717, %190 ], [ %183, %180 ], [ %.0490717, %171 ], [ %.0490717, %170 ], [ %.0490717, %169 ], [ %.0490717, %168 ], [ %.0490717, %167 ], [ %.0490717, %166 ], [ %.0490717, %165 ], [ %.0490717, %164 ], [ %.0490717, %163 ], [ %.0490717, %.preheader647 ], [ %.0490717, %383 ], [ %.0490717, %.preheader649 ], [ %.0490717, %.preheader651 ], [ %.0490717, %.preheader653 ], [ %.2492, %.critedge6 ], [ %.1491703, %327 ], [ %.5, %.critedge10 ], [ %.3696, %387 ], [ %.7, %.critedge14 ], [ %.6690, %447 ], [ %.11, %.critedge21 ], [ %.8683, %531 ], [ %.16, %.critedge27 ], [ %.12673, %793 ]
  %.1489 = phi i32 [ %.0488718, %1046 ], [ %.0488718, %312 ], [ %.0488718, %325 ], [ %.0488718, %321 ], [ %.0488718, %307 ], [ %.0488718, %303 ], [ %.0488718, %293 ], [ %.0488718, %289 ], [ %.0488718, %279 ], [ %.0488718, %275 ], [ %.0488718, %262 ], [ %.0488718, %266 ], [ %.0488718, %213 ], [ %.0488718, %226 ], [ %.0488718, %222 ], [ %.0488718, %209 ], [ %.0488718, %199 ], [ %.0488718, %190 ], [ %.0488718, %180 ], [ %.0488718, %171 ], [ %.0488718, %170 ], [ %.0488718, %169 ], [ %.0488718, %168 ], [ %.0488718, %167 ], [ %.0488718, %166 ], [ %.0488718, %165 ], [ %.0488718, %164 ], [ %.0488718, %163 ], [ %.0488718, %.preheader647 ], [ 1, %383 ], [ %.0488718, %.preheader649 ], [ %.0488718, %.preheader651 ], [ %.0488718, %.preheader653 ], [ %.0488718, %327 ], [ %.0488718, %.critedge6 ], [ 1, %387 ], [ 1, %.critedge10 ], [ %.0488718, %447 ], [ %.0488718, %.critedge14 ], [ %.0488718, %531 ], [ %.0488718, %.critedge21 ], [ %.0488718, %793 ], [ %.0488718, %.critedge27 ]
  %1051 = load ptr, ptr %5, align 8, !tbaa !5
  %1052 = getelementptr inbounds i8, ptr %1051, i64 -1
  %1053 = icmp eq ptr %1052, %152
  %1054 = load i8, ptr %1051, align 1, !tbaa !17
  br i1 %1053, label %1055, label %.critedge29

1055:                                             ; preds = %.critedge4
  %.not617 = icmp eq i8 %1054, 0
  br i1 %.not617, label %.critedge2.thread._crit_edge.loopexit, label %1056

1056:                                             ; preds = %1055
  %1057 = tail call ptr @__ctype_b_loc() #9
  %1058 = load ptr, ptr %1057, align 8, !tbaa !5
  %1059 = sext i8 %1054 to i64
  %1060 = getelementptr inbounds i16, ptr %1058, i64 %1059
  %1061 = load i16, ptr %1060, align 2, !tbaa !18
  %1062 = and i16 %1061, 8192
  %.not618 = icmp eq i16 %1062, 0
  br i1 %.not618, label %1063, label %.critedge29

1063:                                             ; preds = %1056
  %1064 = load ptr, ptr %41, align 8, !tbaa !16
  %1065 = load i8, ptr %152, align 1, !tbaa !17
  %1066 = sext i8 %1065 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %0, ptr noundef %1064, i32 noundef 7036, ptr noundef nonnull @.str.183, i32 noundef %1066, i32 noundef %1066, i32 noundef %1066) #7
  %1067 = load ptr, ptr %5, align 8, !tbaa !5
  %1068 = getelementptr inbounds i8, ptr %1067, i64 -1
  %1069 = load i8, ptr %1067, align 1, !tbaa !17
  %.not619712 = icmp eq i8 %1069, 0
  br i1 %.not619712, label %.critedge2.thread._crit_edge.loopexit, label %.lr.ph714

.lr.ph714:                                        ; preds = %1063, %1077
  %1070 = phi i8 [ %1079, %1077 ], [ %1069, %1063 ]
  %1071 = phi ptr [ %1078, %1077 ], [ %1067, %1063 ]
  %1072 = load ptr, ptr %1057, align 8, !tbaa !5
  %1073 = sext i8 %1070 to i64
  %1074 = getelementptr inbounds i16, ptr %1072, i64 %1073
  %1075 = load i16, ptr %1074, align 2, !tbaa !18
  %1076 = and i16 %1075, 8192
  %.not620 = icmp eq i16 %1076, 0
  br i1 %.not620, label %1077, label %.critedge29

1077:                                             ; preds = %.lr.ph714
  %1078 = getelementptr inbounds i8, ptr %1071, i64 1
  store ptr %1078, ptr %5, align 8, !tbaa !5
  %1079 = load i8, ptr %1078, align 1, !tbaa !17
  %.not619 = icmp eq i8 %1079, 0
  br i1 %.not619, label %.critedge2.thread._crit_edge.loopexit, label %.lr.ph714, !llvm.loop !138

.critedge29:                                      ; preds = %.lr.ph714, %.critedge4, %1056
  %1080 = phi i8 [ %1054, %1056 ], [ %1054, %.critedge4 ], [ %1070, %.lr.ph714 ]
  %1081 = phi ptr [ %1051, %1056 ], [ %1051, %.critedge4 ], [ %1071, %.lr.ph714 ]
  %.18 = phi ptr [ %.17, %1056 ], [ %.17, %.critedge4 ], [ %1068, %.lr.ph714 ]
  %.not536 = icmp eq i8 %1080, 0
  br i1 %.not536, label %.critedge2.thread._crit_edge.loopexit, label %.lr.ph665, !llvm.loop !139

.critedge2.thread._crit_edge.loopexit:            ; preds = %1063, %1055, %.critedge2.thread, %.critedge29, %147, %1077
  %.0490.lcssa.ph = phi ptr [ %1068, %1077 ], [ %.0490717, %147 ], [ %.17, %1055 ], [ %1068, %1063 ], [ %.0490717, %.critedge2.thread ], [ %.18, %.critedge29 ]
  %.0488.lcssa.ph = phi i32 [ %.1489, %1077 ], [ %.0488718, %147 ], [ %.1489, %1055 ], [ %.1489, %1063 ], [ %.0488718, %.critedge2.thread ], [ %.1489, %.critedge29 ]
  %1082 = icmp eq i32 %.0488.lcssa.ph, 0
  br label %.critedge2.thread._crit_edge

.critedge2.thread._crit_edge:                     ; preds = %35, %24, %.critedge2.thread._crit_edge.loopexit, %.critedge
  %.0490.lcssa = phi ptr [ null, %.critedge ], [ %.0490.lcssa.ph, %.critedge2.thread._crit_edge.loopexit ], [ null, %24 ], [ null, %35 ]
  %.0488.lcssa = phi i1 [ true, %.critedge ], [ %1082, %.critedge2.thread._crit_edge.loopexit ], [ true, %24 ], [ true, %35 ]
  %1083 = getelementptr inbounds i8, ptr %0, i64 520
  %1084 = load i32, ptr %1083, align 8, !tbaa !124
  %.not540 = icmp eq i32 %1084, 0
  br i1 %.not540, label %1092, label %1085

1085:                                             ; preds = %.critedge2.thread._crit_edge
  %1086 = getelementptr inbounds i8, ptr %0, i64 2664
  %1087 = load double, ptr %1086, align 8, !tbaa !110
  %1088 = fcmp olt double %1087, 0x7FDFFFFFFFFFFFFF
  br i1 %1088, label %1089, label %1092

1089:                                             ; preds = %1085
  %1090 = getelementptr inbounds i8, ptr %0, i64 2424
  %1091 = load ptr, ptr %1090, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %1091, i32 noundef 7078, ptr noundef nonnull @.str.184) #7
  br label %1092

1092:                                             ; preds = %1089, %1085, %.critedge2.thread._crit_edge
  %.19 = phi ptr [ %1, %1089 ], [ %.0490.lcssa, %1085 ], [ %.0490.lcssa, %.critedge2.thread._crit_edge ]
  br i1 %.0488.lcssa, label %1102, label %1093

1093:                                             ; preds = %1092
  %1094 = getelementptr inbounds i8, ptr %0, i64 96
  %1095 = load i32, ptr %1094, align 8, !tbaa !67
  %.not542 = icmp eq i32 %1095, 0
  br i1 %.not542, label %1096, label %1102

1096:                                             ; preds = %1093
  %1097 = getelementptr inbounds i8, ptr %0, i64 304
  %1098 = load i32, ptr %1097, align 4, !tbaa !63
  %.not543 = icmp eq i32 %1098, 0
  br i1 %.not543, label %1102, label %1099

1099:                                             ; preds = %1096
  %1100 = getelementptr inbounds i8, ptr %0, i64 2424
  %1101 = load ptr, ptr %1100, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %1101, i32 noundef 7037, ptr noundef nonnull @.str.185) #7
  br label %1102

1102:                                             ; preds = %1099, %1096, %1093, %1092
  %.20 = phi ptr [ %.19, %1093 ], [ %1, %1099 ], [ %.19, %1096 ], [ %.19, %1092 ]
  %.not544 = icmp eq ptr %.20, null
  br i1 %.not544, label %1113, label %1103

1103:                                             ; preds = %1102
  %1104 = getelementptr inbounds i8, ptr %0, i64 8
  %1105 = load i32, ptr %1104, align 8, !tbaa !113
  %.not545 = icmp eq i32 %1105, 0
  br i1 %.not545, label %1106, label %1113

1106:                                             ; preds = %1103
  %1107 = getelementptr inbounds i8, ptr %0, i64 2424
  %1108 = load ptr, ptr %1107, align 8, !tbaa !16
  %1109 = ptrtoint ptr %.20 to i64
  %1110 = ptrtoint ptr %1 to i64
  %1111 = sub i64 %1109, %1110
  %1112 = trunc i64 %1111 to i32
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %1108, i32 noundef 6035, ptr noundef nonnull @.str.186, ptr noundef %1, i32 noundef %1112) #7
  call void @qh_errexit(ptr noundef nonnull %0, i32 noundef 1, ptr noundef null, ptr noundef null) #7
  br label %1113

1113:                                             ; preds = %1106, %1103, %1102
  %1114 = getelementptr inbounds i8, ptr %0, i64 136
  %1115 = load i32, ptr %1114, align 8, !tbaa !78
  %1116 = icmp sgt i32 %1115, 3
  br i1 %1116, label %1117, label %1120

1117:                                             ; preds = %1113
  %1118 = getelementptr inbounds i8, ptr %0, i64 2424
  %1119 = load ptr, ptr %1118, align 8, !tbaa !16
  call void (ptr, ptr, i32, ptr, ...) @qh_fprintf(ptr noundef nonnull %0, ptr noundef %1119, i32 noundef 4093, ptr noundef nonnull @.str.187) #7
  br label %1120

1120:                                             ; preds = %1117, %1113
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #7
  ret void
}

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite)
declare ptr @strncat(ptr noalias noundef returned, ptr noalias nocapture noundef readonly, i64 noundef) local_unnamed_addr #5

; Function Attrs: nounwind uwtable
declare dso_local void @qh_option(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite)
declare ptr @strncpy(ptr noalias noundef returned writeonly, ptr noalias nocapture noundef readonly, i64 noundef) local_unnamed_addr #5

declare i32 @qh_strtol(ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__ctype_toupper_loc() local_unnamed_addr #4

declare void @qh_copyfilename(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare ptr @freopen(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

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 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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(read) }
attributes #9 = { nounwind willreturn memory(none) }
attributes #10 = { nounwind allocsize(0,1) }

!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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !11, i64 2720}
!10 = !{!"qhT", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !12, i64 24, !11, i64 32, !11, i64 36, !11, i64 40, !11, i64 44, !11, i64 48, !11, i64 52, !11, i64 56, !11, i64 60, !12, i64 64, !12, i64 72, !11, i64 80, !11, i64 84, !11, i64 88, !11, i64 92, !11, i64 96, !11, i64 100, !6, i64 104, !11, i64 112, !11, i64 116, !6, i64 120, !11, i64 128, !11, i64 132, !11, i64 136, !11, i64 140, !11, i64 144, !11, i64 148, !11, i64 152, !12, i64 160, !12, i64 168, !11, i64 176, !11, i64 180, !11, i64 184, !11, i64 188, !12, i64 192, !12, i64 200, !11, i64 208, !11, i64 212, !12, i64 216, !11, i64 224, !11, i64 228, !11, i64 232, !11, i64 236, !11, i64 240, !11, i64 244, !11, i64 248, !11, i64 252, !11, i64 256, !11, i64 260, !11, i64 264, !11, i64 268, !11, i64 272, !11, i64 276, !11, i64 280, !11, i64 284, !11, i64 288, !11, i64 292, !11, i64 296, !7, i64 300, !11, i64 416, !11, i64 420, !11, i64 424, !11, i64 428, !11, i64 432, !11, i64 436, !11, i64 440, !11, i64 444, !12, i64 448, !12, i64 456, !12, i64 464, !11, i64 472, !11, i64 476, !11, i64 480, !11, i64 484, !11, i64 488, !11, i64 492, !11, i64 496, !11, i64 500, !11, i64 504, !11, i64 508, !11, i64 512, !11, i64 516, !11, i64 520, !11, i64 524, !11, i64 528, !11, i64 532, !11, i64 536, !11, i64 540, !11, i64 544, !12, i64 552, !11, i64 560, !11, i64 564, !11, i64 568, !11, i64 572, !11, i64 576, !11, i64 580, !11, i64 584, !11, i64 588, !12, i64 592, !11, i64 600, !6, i64 608, !6, i64 616, !11, i64 624, !11, i64 628, !11, i64 632, !11, i64 636, !11, i64 640, !6, i64 648, !11, i64 656, !6, i64 664, !11, i64 672, !7, i64 676, !11, i64 932, !7, i64 936, !7, i64 1192, !11, i64 1704, !11, i64 1708, !11, i64 1712, !11, i64 1716, !11, i64 1720, !11, i64 1724, !6, i64 1728, !6, i64 1736, !6, i64 1744, !6, i64 1752, !12, i64 1760, !12, i64 1768, !12, i64 1776, !12, i64 1784, !12, i64 1792, !12, i64 1800, !12, i64 1808, !12, i64 1816, !12, i64 1824, !12, i64 1832, !12, i64 1840, !12, i64 1848, !12, i64 1856, !12, i64 1864, !6, i64 1872, !12, i64 1880, !12, i64 1888, !12, i64 1896, !12, i64 1904, !11, i64 1912, !7, i64 1916, !7, i64 1928, !7, i64 2128, !7, i64 2168, !7, i64 2368, !6, i64 2408, !6, i64 2416, !6, i64 2424, !6, i64 2432, !11, i64 2440, !11, i64 2444, !11, i64 2448, !6, i64 2456, !6, i64 2464, !6, i64 2472, !6, i64 2480, !6, i64 2488, !11, i64 2496, !11, i64 2500, !6, i64 2504, !11, i64 2512, !6, i64 2520, !11, i64 2528, !6, i64 2536, !6, i64 2544, !6, i64 2552, !6, i64 2560, !11, i64 2568, !11, i64 2572, !11, i64 2576, !11, i64 2580, !11, i64 2584, !11, i64 2588, !11, i64 2592, !11, i64 2596, !13, i64 2600, !11, i64 2608, !11, i64 2612, !11, i64 2616, !11, i64 2620, !11, i64 2624, !6, i64 2632, !6, i64 2640, !11, i64 2648, !11, i64 2652, !11, i64 2656, !12, i64 2664, !11, i64 2672, !12, i64 2680, !12, i64 2688, !12, i64 2696, !11, i64 2704, !11, i64 2708, !11, i64 2712, !11, i64 2716, !11, i64 2720, !12, i64 2728, !12, i64 2736, !11, i64 2744, !11, i64 2748, !11, i64 2752, !11, i64 2756, !11, i64 2760, !11, i64 2764, !12, i64 2768, !12, i64 2776, !11, i64 2784, !11, i64 2788, !11, i64 2792, !11, i64 2796, !6, i64 2800, !6, i64 2808, !6, i64 2816, !6, i64 2824, !6, i64 2832, !6, i64 2840, !6, i64 2848, !6, i64 2856, !6, i64 2864, !11, i64 2872, !6, i64 2880, !6, i64 2888, !11, i64 2896, !11, i64 2900, !11, i64 2904, !6, i64 2912, !12, i64 2920, !12, i64 2928, !12, i64 2936, !12, i64 2944, !11, i64 2952, !11, i64 2956, !11, i64 2960, !11, i64 2964, !11, i64 2968, !11, i64 2972, !6, i64 2976, !11, i64 2984, !11, i64 2988, !7, i64 2992, !7, i64 3192, !11, i64 3232, !12, i64 3240, !6, i64 3248, !6, i64 3256, !6, i64 3264, !14, i64 3272, !15, i64 3424}
!11 = !{!"int", !7, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!"qhmemT", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !11, i64 64, !6, i64 72, !6, i64 80, !11, i64 88, !11, i64 92, !11, i64 96, !11, i64 100, !11, i64 104, !11, i64 108, !11, i64 112, !11, i64 116, !11, i64 120, !11, i64 124, !11, i64 128, !11, i64 132, !11, i64 136, !11, i64 140, !11, i64 144}
!15 = !{!"qhstatT", !7, i64 0, !7, i64 1992, !7, i64 2256, !7, i64 4248, !7, i64 4746, !7, i64 4995, !7, i64 5248, !11, i64 5320, !11, i64 5324, !11, i64 5328, !11, i64 5332, !12, i64 5336}
!16 = !{!10, !6, i64 2424}
!17 = !{!7, !7, i64 0}
!18 = !{!19, !19, i64 0}
!19 = !{!"short", !7, i64 0}
!20 = distinct !{!20, !21}
!21 = !{!"llvm.loop.mustprogress"}
!22 = distinct !{!22, !21}
!23 = !{!10, !11, i64 80}
!24 = !{!10, !11, i64 428}
!25 = !{!10, !11, i64 588}
!26 = !{!10, !12, i64 64}
!27 = !{!10, !11, i64 252}
!28 = !{!10, !12, i64 72}
!29 = !{!10, !11, i64 248}
!30 = !{!10, !11, i64 188}
!31 = !{!10, !12, i64 192}
!32 = !{!10, !12, i64 200}
!33 = !{!10, !12, i64 1784}
!34 = !{!10, !11, i64 500}
!35 = !{!10, !11, i64 128}
!36 = distinct !{!36, !21}
!37 = !{!10, !6, i64 608}
!38 = !{!10, !12, i64 448}
!39 = !{!10, !11, i64 444}
!40 = !{!10, !12, i64 216}
!41 = !{!10, !12, i64 168}
!42 = !{!10, !12, i64 24}
!43 = !{!10, !11, i64 20}
!44 = !{!10, !11, i64 624}
!45 = !{!10, !11, i64 48}
!46 = !{!10, !11, i64 52}
!47 = !{!10, !11, i64 288}
!48 = distinct !{!48, !21}
!49 = distinct !{!49, !21}
!50 = !{!10, !11, i64 268}
!51 = !{!10, !11, i64 256}
!52 = !{!10, !11, i64 84}
!53 = !{!10, !11, i64 276}
!54 = !{!10, !11, i64 284}
!55 = !{!10, !11, i64 292}
!56 = !{!10, !11, i64 260}
!57 = !{!10, !11, i64 416}
!58 = !{!10, !11, i64 432}
!59 = !{!10, !11, i64 420}
!60 = !{!10, !11, i64 88}
!61 = distinct !{!61, !21}
!62 = distinct !{!62, !21}
!63 = !{!11, !11, i64 0}
!64 = !{!12, !12, i64 0}
!65 = !{!10, !11, i64 272}
!66 = !{!10, !11, i64 280}
!67 = !{!10, !11, i64 96}
!68 = !{!10, !11, i64 296}
!69 = !{!10, !11, i64 140}
!70 = !{!10, !12, i64 160}
!71 = !{!10, !11, i64 152}
!72 = distinct !{!72, !21}
!73 = distinct !{!73, !21}
!74 = !{!10, !11, i64 4}
!75 = !{!10, !11, i64 492}
!76 = !{!10, !11, i64 496}
!77 = !{!10, !11, i64 440}
!78 = !{!10, !11, i64 136}
!79 = distinct !{!79, !21}
!80 = !{!10, !11, i64 144}
!81 = !{!10, !11, i64 44}
!82 = !{!10, !11, i64 236}
!83 = !{!10, !11, i64 148}
!84 = !{!10, !11, i64 240}
!85 = !{!10, !11, i64 472}
!86 = !{!10, !11, i64 0}
!87 = !{!10, !11, i64 564}
!88 = !{!10, !11, i64 528}
!89 = !{!10, !11, i64 572}
!90 = !{!10, !11, i64 532}
!91 = !{!10, !11, i64 180}
!92 = !{!10, !11, i64 36}
!93 = !{!10, !11, i64 232}
!94 = !{!10, !11, i64 16}
!95 = !{!10, !11, i64 224}
!96 = !{!10, !11, i64 568}
!97 = !{!10, !11, i64 12}
!98 = !{!10, !11, i64 208}
!99 = !{!10, !11, i64 56}
!100 = distinct !{!100, !21}
!101 = !{!10, !11, i64 184}
!102 = !{!10, !11, i64 212}
!103 = !{!10, !11, i64 40}
!104 = !{!10, !11, i64 504}
!105 = !{!10, !11, i64 508}
!106 = !{!10, !11, i64 584}
!107 = !{!10, !11, i64 228}
!108 = !{!10, !11, i64 244}
!109 = !{!10, !11, i64 100}
!110 = !{!10, !12, i64 2664}
!111 = !{!10, !11, i64 488}
!112 = !{!10, !11, i64 116}
!113 = !{!10, !11, i64 8}
!114 = distinct !{!114, !21}
!115 = distinct !{!115, !21}
!116 = !{!10, !11, i64 32}
!117 = !{!10, !11, i64 60}
!118 = !{!10, !11, i64 92}
!119 = !{!10, !11, i64 424}
!120 = !{!10, !11, i64 580}
!121 = !{!10, !11, i64 576}
!122 = !{!10, !6, i64 2416}
!123 = !{!10, !6, i64 3352}
!124 = !{!10, !11, i64 520}
!125 = !{!10, !11, i64 476}
!126 = !{!10, !11, i64 480}
!127 = distinct !{!127, !21}
!128 = distinct !{!128, !21}
!129 = !{!10, !11, i64 516}
!130 = !{!10, !11, i64 544}
!131 = distinct !{!131, !21}
!132 = !{!10, !11, i64 560}
!133 = !{!10, !11, i64 484}
!134 = !{!10, !11, i64 524}
!135 = !{!10, !12, i64 552}
!136 = distinct !{!136, !21}
!137 = distinct !{!137, !21}
!138 = distinct !{!138, !21}
!139 = distinct !{!139, !21}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass