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

; 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, ptr, i32 }
%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 }

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

; Function Attrs: nounwind uwtable
declare dso_local void @qh_appendprint(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, i32 noundef, ptr noundef, ...) #3

declare void @qh_errexit(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) #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) #0 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i8, align 1
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca double, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca [500 x i8], align 16
  %18 = alloca [500 x i8], align 16
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #7
  %19 = load ptr, ptr %2, align 8, !tbaa !5
  store ptr %19, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  store ptr null, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  store i32 0, ptr %12, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %20 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 206), align 8, !tbaa !11
  %21 = icmp ne i32 %20, 0
  br i1 %21, label %22, label %24

22:                                               ; preds = %1
  %23 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %23, i32 noundef 6245, ptr noundef @.str.13)
  call void @qh_exit(i32 noundef 5)
  br label %24

24:                                               ; preds = %22, %1
  %25 = load ptr, ptr %2, align 8, !tbaa !5
  %26 = icmp ule ptr %25, getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 117)
  br i1 %26, label %30, label %27

27:                                               ; preds = %24
  %28 = load ptr, ptr %2, align 8, !tbaa !5
  %29 = icmp ugt ptr %28, getelementptr inbounds (i8, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 117), i64 256)
  br i1 %29, label %30, label %64

30:                                               ; preds = %27, %24
  %31 = load ptr, ptr %2, align 8, !tbaa !5
  %32 = icmp ne ptr %31, getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 117)
  br i1 %32, label %33, label %39

33:                                               ; preds = %30
  store i8 0, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 117), align 4, !tbaa !16
  %34 = load ptr, ptr %2, align 8, !tbaa !5
  %35 = call i64 @strlen(ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 117)) #8
  %36 = sub i64 256, %35
  %37 = sub i64 %36, 1
  %38 = call ptr @strncat(ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 117), ptr noundef %34, i64 noundef %37) #7
  br label %39

39:                                               ; preds = %33, %30
  br label %40

40:                                               ; preds = %60, %39
  %41 = load ptr, ptr %6, align 8, !tbaa !5
  %42 = load i8, ptr %41, align 1, !tbaa !16
  %43 = sext i8 %42 to i32
  %44 = icmp ne i32 %43, 0
  br i1 %44, label %45, label %58

45:                                               ; preds = %40
  %46 = call ptr @__ctype_b_loc() #9
  %47 = load ptr, ptr %46, align 8, !tbaa !5
  %48 = load ptr, ptr %6, align 8, !tbaa !5
  %49 = load i8, ptr %48, align 1, !tbaa !16
  %50 = sext i8 %49 to i32
  %51 = sext i32 %50 to i64
  %52 = getelementptr inbounds i16, ptr %47, i64 %51
  %53 = load i16, ptr %52, align 2, !tbaa !17
  %54 = zext i16 %53 to i32
  %55 = and i32 %54, 8192
  %56 = icmp ne i32 %55, 0
  %57 = xor i1 %56, true
  br label %58

58:                                               ; preds = %45, %40
  %59 = phi i1 [ false, %40 ], [ %57, %45 ]
  br i1 %59, label %60, label %63

60:                                               ; preds = %58
  %61 = load ptr, ptr %6, align 8, !tbaa !5
  %62 = getelementptr inbounds i8, ptr %61, i32 1
  store ptr %62, ptr %6, align 8, !tbaa !5
  br label %40, !llvm.loop !19

63:                                               ; preds = %58
  br label %64

64:                                               ; preds = %63, %27
  br label %65

65:                                               ; preds = %1649, %64
  %66 = load ptr, ptr %6, align 8, !tbaa !5
  %67 = load i8, ptr %66, align 1, !tbaa !16
  %68 = icmp ne i8 %67, 0
  br i1 %68, label %69, label %1650

69:                                               ; preds = %65
  br label %70

70:                                               ; preds = %89, %69
  %71 = load ptr, ptr %6, align 8, !tbaa !5
  %72 = load i8, ptr %71, align 1, !tbaa !16
  %73 = sext i8 %72 to i32
  %74 = icmp ne i32 %73, 0
  br i1 %74, label %75, label %87

75:                                               ; preds = %70
  %76 = call ptr @__ctype_b_loc() #9
  %77 = load ptr, ptr %76, align 8, !tbaa !5
  %78 = load ptr, ptr %6, align 8, !tbaa !5
  %79 = load i8, ptr %78, align 1, !tbaa !16
  %80 = sext i8 %79 to i32
  %81 = sext i32 %80 to i64
  %82 = getelementptr inbounds i16, ptr %77, i64 %81
  %83 = load i16, ptr %82, align 2, !tbaa !17
  %84 = zext i16 %83 to i32
  %85 = and i32 %84, 8192
  %86 = icmp ne i32 %85, 0
  br label %87

87:                                               ; preds = %75, %70
  %88 = phi i1 [ false, %70 ], [ %86, %75 ]
  br i1 %88, label %89, label %92

89:                                               ; preds = %87
  %90 = load ptr, ptr %6, align 8, !tbaa !5
  %91 = getelementptr inbounds i8, ptr %90, i32 1
  store ptr %91, ptr %6, align 8, !tbaa !5
  br label %70, !llvm.loop !21

92:                                               ; preds = %87
  %93 = load ptr, ptr %6, align 8, !tbaa !5
  %94 = load i8, ptr %93, align 1, !tbaa !16
  %95 = sext i8 %94 to i32
  %96 = icmp eq i32 %95, 45
  br i1 %96, label %97, label %100

97:                                               ; preds = %92
  %98 = load ptr, ptr %6, align 8, !tbaa !5
  %99 = getelementptr inbounds i8, ptr %98, i32 1
  store ptr %99, ptr %6, align 8, !tbaa !5
  br label %100

100:                                              ; preds = %97, %92
  %101 = load ptr, ptr %6, align 8, !tbaa !5
  %102 = load i8, ptr %101, align 1, !tbaa !16
  %103 = icmp ne i8 %102, 0
  br i1 %103, label %105, label %104

104:                                              ; preds = %100
  br label %1650

105:                                              ; preds = %100
  %106 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %106, ptr %8, align 8, !tbaa !5
  %107 = load ptr, ptr %6, align 8, !tbaa !5
  %108 = getelementptr inbounds i8, ptr %107, i32 1
  store ptr %108, ptr %6, align 8, !tbaa !5
  %109 = load i8, ptr %107, align 1, !tbaa !16
  %110 = sext i8 %109 to i32
  switch i32 %110, label %1578 [
    i32 100, label %111
    i32 102, label %112
    i32 105, label %113
    i32 109, label %114
    i32 110, label %115
    i32 111, label %116
    i32 112, label %117
    i32 115, label %118
    i32 118, label %119
    i32 65, label %120
    i32 67, label %160
    i32 69, label %200
    i32 72, label %230
    i32 82, label %299
    i32 86, label %319
    i32 85, label %344
    i32 87, label %369
    i32 70, label %399
    i32 71, label %489
    i32 80, label %588
    i32 81, label %735
    i32 84, label %1174
  ]

111:                                              ; preds = %105
  call void @qh_option(ptr noundef @.str.14, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 17), align 8, !tbaa !22
  br label %1590

112:                                              ; preds = %105
  call void @qh_option(ptr noundef @.str.15, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 5)
  br label %1590

113:                                              ; preds = %105
  call void @qh_option(ptr noundef @.str.16, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 14)
  br label %1590

114:                                              ; preds = %105
  call void @qh_option(ptr noundef @.str.17, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 15)
  br label %1590

115:                                              ; preds = %105
  call void @qh_option(ptr noundef @.str.18, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 11)
  br label %1590

116:                                              ; preds = %105
  call void @qh_option(ptr noundef @.str.19, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 17)
  br label %1590

117:                                              ; preds = %105
  call void @qh_option(ptr noundef @.str.20, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 21)
  br label %1590

118:                                              ; preds = %105
  call void @qh_option(ptr noundef @.str.21, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 68), align 4, !tbaa !23
  br label %1590

119:                                              ; preds = %105
  call void @qh_option(ptr noundef @.str.22, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 103), align 4, !tbaa !24
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 17), align 8, !tbaa !22
  br label %1590

120:                                              ; preds = %105
  %121 = call ptr @__ctype_b_loc() #9
  %122 = load ptr, ptr %121, align 8, !tbaa !5
  %123 = load ptr, ptr %6, align 8, !tbaa !5
  %124 = load i8, ptr %123, align 1, !tbaa !16
  %125 = sext i8 %124 to i32
  %126 = sext i32 %125 to i64
  %127 = getelementptr inbounds i16, ptr %122, i64 %126
  %128 = load i16, ptr %127, align 2, !tbaa !17
  %129 = zext i16 %128 to i32
  %130 = and i32 %129, 2048
  %131 = icmp ne i32 %130, 0
  br i1 %131, label %146, label %132

132:                                              ; preds = %120
  %133 = load ptr, ptr %6, align 8, !tbaa !5
  %134 = load i8, ptr %133, align 1, !tbaa !16
  %135 = sext i8 %134 to i32
  %136 = icmp ne i32 %135, 46
  br i1 %136, label %137, label %146

137:                                              ; preds = %132
  %138 = load ptr, ptr %6, align 8, !tbaa !5
  %139 = load i8, ptr %138, align 1, !tbaa !16
  %140 = sext i8 %139 to i32
  %141 = icmp ne i32 %140, 45
  br i1 %141, label %142, label %146

142:                                              ; preds = %137
  %143 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %143, i32 noundef 7002, ptr noundef @.str.23)
  %144 = load ptr, ptr %6, align 8, !tbaa !5
  %145 = getelementptr inbounds i8, ptr %144, i64 -1
  store ptr %145, ptr %11, align 8, !tbaa !5
  br label %159

146:                                              ; preds = %137, %132, %120
  %147 = load ptr, ptr %6, align 8, !tbaa !5
  %148 = load i8, ptr %147, align 1, !tbaa !16
  %149 = sext i8 %148 to i32
  %150 = icmp eq i32 %149, 45
  br i1 %150, label %151, label %155

151:                                              ; preds = %146
  %152 = load ptr, ptr %6, align 8, !tbaa !5
  %153 = call double @qh_strtod(ptr noundef %152, ptr noundef %6)
  %154 = fneg double %153
  store double %154, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 15), align 8, !tbaa !25
  call void @qh_option(ptr noundef @.str.24, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 15))
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 52), align 4, !tbaa !26
  br label %158

155:                                              ; preds = %146
  %156 = load ptr, ptr %6, align 8, !tbaa !5
  %157 = call double @qh_strtod(ptr noundef %156, ptr noundef %6)
  store double %157, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 16), align 8, !tbaa !27
  call void @qh_option(ptr noundef @.str.25, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 16))
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 51), align 8, !tbaa !28
  br label %158

158:                                              ; preds = %155, %151
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 39), align 4, !tbaa !29
  br label %159

159:                                              ; preds = %158, %142
  br label %1590

160:                                              ; preds = %105
  %161 = call ptr @__ctype_b_loc() #9
  %162 = load ptr, ptr %161, align 8, !tbaa !5
  %163 = load ptr, ptr %6, align 8, !tbaa !5
  %164 = load i8, ptr %163, align 1, !tbaa !16
  %165 = sext i8 %164 to i32
  %166 = sext i32 %165 to i64
  %167 = getelementptr inbounds i16, ptr %162, i64 %166
  %168 = load i16, ptr %167, align 2, !tbaa !17
  %169 = zext i16 %168 to i32
  %170 = and i32 %169, 2048
  %171 = icmp ne i32 %170, 0
  br i1 %171, label %186, label %172

172:                                              ; preds = %160
  %173 = load ptr, ptr %6, align 8, !tbaa !5
  %174 = load i8, ptr %173, align 1, !tbaa !16
  %175 = sext i8 %174 to i32
  %176 = icmp ne i32 %175, 46
  br i1 %176, label %177, label %186

177:                                              ; preds = %172
  %178 = load ptr, ptr %6, align 8, !tbaa !5
  %179 = load i8, ptr %178, align 1, !tbaa !16
  %180 = sext i8 %179 to i32
  %181 = icmp ne i32 %180, 45
  br i1 %181, label %182, label %186

182:                                              ; preds = %177
  %183 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %183, i32 noundef 7003, ptr noundef @.str.26)
  %184 = load ptr, ptr %6, align 8, !tbaa !5
  %185 = getelementptr inbounds i8, ptr %184, i64 -1
  store ptr %185, ptr %11, align 8, !tbaa !5
  br label %199

186:                                              ; preds = %177, %172, %160
  %187 = load ptr, ptr %6, align 8, !tbaa !5
  %188 = load i8, ptr %187, align 1, !tbaa !16
  %189 = sext i8 %188 to i32
  %190 = icmp eq i32 %189, 45
  br i1 %190, label %191, label %195

191:                                              ; preds = %186
  %192 = load ptr, ptr %6, align 8, !tbaa !5
  %193 = call double @qh_strtod(ptr noundef %192, ptr noundef %6)
  %194 = fneg double %193
  store double %194, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 40), align 8, !tbaa !30
  call void @qh_option(ptr noundef @.str.27, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 40))
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 52), align 4, !tbaa !26
  br label %198

195:                                              ; preds = %186
  %196 = load ptr, ptr %6, align 8, !tbaa !5
  %197 = call double @qh_strtod(ptr noundef %196, ptr noundef %6)
  store double %197, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 41), align 8, !tbaa !31
  call void @qh_option(ptr noundef @.str.28, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 41))
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 51), align 8, !tbaa !28
  br label %198

198:                                              ; preds = %195, %191
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 39), align 4, !tbaa !29
  br label %199

199:                                              ; preds = %198, %182
  br label %1590

200:                                              ; preds = %105
  %201 = load ptr, ptr %6, align 8, !tbaa !5
  %202 = load i8, ptr %201, align 1, !tbaa !16
  %203 = sext i8 %202 to i32
  %204 = icmp eq i32 %203, 45
  br i1 %204, label %205, label %209

205:                                              ; preds = %200
  %206 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %207 = load ptr, ptr %6, align 8, !tbaa !5
  %208 = getelementptr inbounds i8, ptr %207, i64 -1
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %206, i32 noundef 6363, ptr noundef @.str.29, ptr noundef %208)
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null)
  br label %229

209:                                              ; preds = %200
  %210 = call ptr @__ctype_b_loc() #9
  %211 = load ptr, ptr %210, align 8, !tbaa !5
  %212 = load ptr, ptr %6, align 8, !tbaa !5
  %213 = load i8, ptr %212, align 1, !tbaa !16
  %214 = sext i8 %213 to i32
  %215 = sext i32 %214 to i64
  %216 = getelementptr inbounds i16, ptr %211, i64 %215
  %217 = load i16, ptr %216, align 2, !tbaa !17
  %218 = zext i16 %217 to i32
  %219 = and i32 %218, 2048
  %220 = icmp ne i32 %219, 0
  br i1 %220, label %225, label %221

221:                                              ; preds = %209
  %222 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %222, i32 noundef 7005, ptr noundef @.str.30)
  %223 = load ptr, ptr %6, align 8, !tbaa !5
  %224 = getelementptr inbounds i8, ptr %223, i64 -1
  store ptr %224, ptr %11, align 8, !tbaa !5
  br label %228

225:                                              ; preds = %209
  %226 = load ptr, ptr %6, align 8, !tbaa !5
  %227 = call double @qh_strtod(ptr noundef %226, ptr noundef %6)
  store double %227, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 134), align 8, !tbaa !32
  call void @qh_option(ptr noundef @.str.31, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 134))
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 83), align 4, !tbaa !33
  br label %228

228:                                              ; preds = %225, %221
  br label %229

229:                                              ; preds = %228, %205
  br label %1590

230:                                              ; preds = %105
  %231 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %231, ptr %9, align 8, !tbaa !5
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 27), align 8, !tbaa !34
  %232 = load ptr, ptr %6, align 8, !tbaa !5
  %233 = call double @qh_strtod(ptr noundef %232, ptr noundef %7)
  br label %234

234:                                              ; preds = %268, %230
  %235 = load ptr, ptr %7, align 8, !tbaa !5
  %236 = load ptr, ptr %6, align 8, !tbaa !5
  %237 = icmp ugt ptr %235, %236
  br i1 %237, label %238, label %272

238:                                              ; preds = %234
  %239 = load ptr, ptr %7, align 8, !tbaa !5
  %240 = load i8, ptr %239, align 1, !tbaa !16
  %241 = sext i8 %240 to i32
  %242 = icmp ne i32 %241, 0
  br i1 %242, label %243, label %268

243:                                              ; preds = %238
  %244 = call ptr @__ctype_b_loc() #9
  %245 = load ptr, ptr %244, align 8, !tbaa !5
  %246 = load ptr, ptr %7, align 8, !tbaa !5
  %247 = load i8, ptr %246, align 1, !tbaa !16
  %248 = sext i8 %247 to i32
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds i16, ptr %245, i64 %249
  %251 = load i16, ptr %250, align 2, !tbaa !17
  %252 = zext i16 %251 to i32
  %253 = and i32 %252, 8192
  %254 = icmp ne i32 %253, 0
  br i1 %254, label %268, label %255

255:                                              ; preds = %243
  %256 = load ptr, ptr %7, align 8, !tbaa !5
  %257 = load i8, ptr %256, align 1, !tbaa !16
  %258 = sext i8 %257 to i32
  %259 = icmp eq i32 %258, 44
  br i1 %259, label %260, label %263

260:                                              ; preds = %255
  %261 = load ptr, ptr %7, align 8, !tbaa !5
  %262 = getelementptr inbounds i8, ptr %261, i32 1
  store ptr %262, ptr %7, align 8, !tbaa !5
  br label %267

263:                                              ; preds = %255
  %264 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %265 = load ptr, ptr %9, align 8, !tbaa !5
  %266 = getelementptr inbounds i8, ptr %265, i64 -1
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %264, i32 noundef 6364, ptr noundef @.str.32, ptr noundef %266)
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null)
  br label %267

267:                                              ; preds = %263, %260
  br label %268

268:                                              ; preds = %267, %243, %238
  %269 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %269, ptr %6, align 8, !tbaa !5
  %270 = load ptr, ptr %6, align 8, !tbaa !5
  %271 = call double @qh_strtod(ptr noundef %270, ptr noundef %7)
  br label %234, !llvm.loop !35

272:                                              ; preds = %234
  %273 = load ptr, ptr %9, align 8, !tbaa !5
  %274 = load ptr, ptr %7, align 8, !tbaa !5
  %275 = icmp ult ptr %273, %274
  br i1 %275, label %276, label %297

276:                                              ; preds = %272
  %277 = load ptr, ptr %7, align 8, !tbaa !5
  %278 = load ptr, ptr %9, align 8, !tbaa !5
  %279 = ptrtoint ptr %277 to i64
  %280 = ptrtoint ptr %278 to i64
  %281 = sub i64 %279, %280
  %282 = add nsw i64 %281, 1
  %283 = call noalias ptr @calloc(i64 noundef %282, i64 noundef 1) #10
  store ptr %283, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 106), align 8, !tbaa !36
  %284 = icmp ne ptr %283, null
  br i1 %284, label %287, label %285

285:                                              ; preds = %276
  %286 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %286, i32 noundef 6034, ptr noundef @.str.33)
  call void @qh_errexit(i32 noundef 4, ptr noundef null, ptr noundef null)
  br label %287

287:                                              ; preds = %285, %276
  %288 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 106), align 8, !tbaa !36
  %289 = load ptr, ptr %9, align 8, !tbaa !5
  %290 = load ptr, ptr %7, align 8, !tbaa !5
  %291 = load ptr, ptr %9, align 8, !tbaa !5
  %292 = ptrtoint ptr %290 to i64
  %293 = ptrtoint ptr %291 to i64
  %294 = sub i64 %292, %293
  %295 = call ptr @strncpy(ptr noundef %288, ptr noundef %289, i64 noundef %294) #7
  call void @qh_option(ptr noundef @.str.34, ptr noundef null, ptr noundef null)
  %296 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 106), align 8, !tbaa !36
  call void @qh_option(ptr noundef %296, ptr noundef null, ptr noundef null)
  br label %298

297:                                              ; preds = %272
  call void @qh_option(ptr noundef @.str.35, ptr noundef null, ptr noundef null)
  br label %298

298:                                              ; preds = %297, %287
  br label %1590

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

311:                                              ; preds = %299
  %312 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %312, i32 noundef 7007, ptr noundef @.str.36)
  %313 = load ptr, ptr %6, align 8, !tbaa !5
  %314 = getelementptr inbounds i8, ptr %313, i64 -1
  store ptr %314, ptr %11, align 8, !tbaa !5
  br label %318

315:                                              ; preds = %299
  %316 = load ptr, ptr %6, align 8, !tbaa !5
  %317 = call double @qh_strtod(ptr noundef %316, ptr noundef %6)
  store double %317, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 73), align 8, !tbaa !37
  call void @qh_option(ptr noundef @.str.37, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 73))
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 72), align 4, !tbaa !38
  br label %318

318:                                              ; preds = %315, %311
  br label %1590

319:                                              ; preds = %105
  %320 = call ptr @__ctype_b_loc() #9
  %321 = load ptr, ptr %320, align 8, !tbaa !5
  %322 = load ptr, ptr %6, align 8, !tbaa !5
  %323 = load i8, ptr %322, align 1, !tbaa !16
  %324 = sext i8 %323 to i32
  %325 = sext i32 %324 to i64
  %326 = getelementptr inbounds i16, ptr %321, i64 %325
  %327 = load i16, ptr %326, align 2, !tbaa !17
  %328 = zext i16 %327 to i32
  %329 = and i32 %328, 2048
  %330 = icmp ne i32 %329, 0
  br i1 %330, label %340, label %331

331:                                              ; preds = %319
  %332 = load ptr, ptr %6, align 8, !tbaa !5
  %333 = load i8, ptr %332, align 1, !tbaa !16
  %334 = sext i8 %333 to i32
  %335 = icmp ne i32 %334, 45
  br i1 %335, label %336, label %340

336:                                              ; preds = %331
  %337 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %337, i32 noundef 7008, ptr noundef @.str.38)
  %338 = load ptr, ptr %6, align 8, !tbaa !5
  %339 = getelementptr inbounds i8, ptr %338, i64 -1
  store ptr %339, ptr %11, align 8, !tbaa !5
  br label %343

340:                                              ; preds = %331, %319
  %341 = load ptr, ptr %6, align 8, !tbaa !5
  %342 = call double @qh_strtod(ptr noundef %341, ptr noundef %6)
  store double %342, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 44), align 8, !tbaa !39
  call void @qh_option(ptr noundef @.str.39, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 44))
  br label %343

343:                                              ; preds = %340, %336
  br label %1590

344:                                              ; preds = %105
  %345 = call ptr @__ctype_b_loc() #9
  %346 = load ptr, ptr %345, align 8, !tbaa !5
  %347 = load ptr, ptr %6, align 8, !tbaa !5
  %348 = load i8, ptr %347, align 1, !tbaa !16
  %349 = sext i8 %348 to i32
  %350 = sext i32 %349 to i64
  %351 = getelementptr inbounds i16, ptr %346, i64 %350
  %352 = load i16, ptr %351, align 2, !tbaa !17
  %353 = zext i16 %352 to i32
  %354 = and i32 %353, 2048
  %355 = icmp ne i32 %354, 0
  br i1 %355, label %365, label %356

356:                                              ; preds = %344
  %357 = load ptr, ptr %6, align 8, !tbaa !5
  %358 = load i8, ptr %357, align 1, !tbaa !16
  %359 = sext i8 %358 to i32
  %360 = icmp ne i32 %359, 45
  br i1 %360, label %361, label %365

361:                                              ; preds = %356
  %362 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %362, i32 noundef 7009, ptr noundef @.str.40)
  %363 = load ptr, ptr %6, align 8, !tbaa !5
  %364 = getelementptr inbounds i8, ptr %363, i64 -1
  store ptr %364, ptr %11, align 8, !tbaa !5
  br label %368

365:                                              ; preds = %356, %344
  %366 = load ptr, ptr %6, align 8, !tbaa !5
  %367 = call double @qh_strtod(ptr noundef %366, ptr noundef %6)
  store double %367, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 35), align 8, !tbaa !40
  call void @qh_option(ptr noundef @.str.41, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 35))
  br label %368

368:                                              ; preds = %365, %361
  br label %1590

369:                                              ; preds = %105
  %370 = load ptr, ptr %6, align 8, !tbaa !5
  %371 = load i8, ptr %370, align 1, !tbaa !16
  %372 = sext i8 %371 to i32
  %373 = icmp eq i32 %372, 45
  br i1 %373, label %374, label %378

374:                                              ; preds = %369
  %375 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %376 = load ptr, ptr %6, align 8, !tbaa !5
  %377 = getelementptr inbounds i8, ptr %376, i64 -1
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %375, i32 noundef 6365, ptr noundef @.str.42, ptr noundef %377)
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null)
  br label %398

378:                                              ; preds = %369
  %379 = call ptr @__ctype_b_loc() #9
  %380 = load ptr, ptr %379, align 8, !tbaa !5
  %381 = load ptr, ptr %6, align 8, !tbaa !5
  %382 = load i8, ptr %381, align 1, !tbaa !16
  %383 = sext i8 %382 to i32
  %384 = sext i32 %383 to i64
  %385 = getelementptr inbounds i16, ptr %380, i64 %384
  %386 = load i16, ptr %385, align 2, !tbaa !17
  %387 = zext i16 %386 to i32
  %388 = and i32 %387, 2048
  %389 = icmp ne i32 %388, 0
  br i1 %389, label %394, label %390

390:                                              ; preds = %378
  %391 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %391, i32 noundef 7011, ptr noundef @.str.43)
  %392 = load ptr, ptr %6, align 8, !tbaa !5
  %393 = getelementptr inbounds i8, ptr %392, i64 -1
  store ptr %393, ptr %11, align 8, !tbaa !5
  br label %397

394:                                              ; preds = %378
  %395 = load ptr, ptr %6, align 8, !tbaa !5
  %396 = call double @qh_strtod(ptr noundef %395, ptr noundef %6)
  store double %396, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 6), align 8, !tbaa !41
  call void @qh_option(ptr noundef @.str.44, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 6))
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 5), align 4, !tbaa !42
  br label %397

397:                                              ; preds = %394, %390
  br label %398

398:                                              ; preds = %397, %374
  br label %1590

399:                                              ; preds = %105
  br label %400

400:                                              ; preds = %487, %399
  %401 = load ptr, ptr %6, align 8, !tbaa !5
  %402 = load i8, ptr %401, align 1, !tbaa !16
  %403 = sext i8 %402 to i32
  %404 = icmp ne i32 %403, 0
  br i1 %404, label %405, label %418

405:                                              ; preds = %400
  %406 = call ptr @__ctype_b_loc() #9
  %407 = load ptr, ptr %406, align 8, !tbaa !5
  %408 = load ptr, ptr %6, align 8, !tbaa !5
  %409 = load i8, ptr %408, align 1, !tbaa !16
  %410 = sext i8 %409 to i32
  %411 = sext i32 %410 to i64
  %412 = getelementptr inbounds i16, ptr %407, i64 %411
  %413 = load i16, ptr %412, align 2, !tbaa !17
  %414 = zext i16 %413 to i32
  %415 = and i32 %414, 8192
  %416 = icmp ne i32 %415, 0
  %417 = xor i1 %416, true
  br label %418

418:                                              ; preds = %405, %400
  %419 = phi i1 [ false, %400 ], [ %417, %405 ]
  br i1 %419, label %420, label %488

420:                                              ; preds = %418
  %421 = load ptr, ptr %6, align 8, !tbaa !5
  %422 = getelementptr inbounds i8, ptr %421, i32 1
  store ptr %422, ptr %6, align 8, !tbaa !5
  %423 = load i8, ptr %421, align 1, !tbaa !16
  %424 = sext i8 %423 to i32
  switch i32 %424, label %454 [
    i32 97, label %425
    i32 65, label %426
    i32 99, label %427
    i32 67, label %428
    i32 100, label %429
    i32 68, label %430
    i32 70, label %431
    i32 105, label %432
    i32 73, label %433
    i32 109, label %434
    i32 77, label %435
    i32 110, label %436
    i32 78, label %437
    i32 111, label %438
    i32 79, label %439
    i32 112, label %445
    i32 80, label %446
    i32 81, label %447
    i32 115, label %448
    i32 83, label %449
    i32 116, label %450
    i32 118, label %451
    i32 86, label %452
    i32 120, label %453
  ]

425:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.45, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 1)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 108), align 8, !tbaa !43
  br label %487

426:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.46, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 108), align 8, !tbaa !43
  br label %487

427:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.47, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 3)
  br label %487

428:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.48, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 4)
  br label %487

429:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.49, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 11), align 8, !tbaa !44
  br label %487

430:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.50, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 12), align 4, !tbaa !45
  br label %487

431:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.51, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 6)
  br label %487

432:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.52, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 9)
  br label %487

433:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.53, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 8)
  br label %487

434:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.54, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 16)
  br label %487

435:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.55, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 13)
  br label %487

436:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.56, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 10)
  br label %487

437:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.57, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 27)
  br label %487

438:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.58, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 12)
  br label %487

439:                                              ; preds = %420
  %440 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 61), align 8, !tbaa !46
  %441 = icmp ne i32 %440, 0
  br i1 %441, label %442, label %443

442:                                              ; preds = %439
  call void @qh_option(ptr noundef @.str.59, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 18)
  br label %444

443:                                              ; preds = %439
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 61), align 8, !tbaa !46
  br label %444

444:                                              ; preds = %443, %442
  br label %487

445:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.60, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 19)
  br label %487

446:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.61, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 20)
  br label %487

447:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.62, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 22)
  br label %487

448:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.63, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 24)
  br label %487

449:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.64, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 23)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 108), align 8, !tbaa !43
  br label %487

450:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.65, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 25)
  br label %487

451:                                              ; preds = %420
  call void @qh_appendprint(i32 noundef 26)
  br label %487

452:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.66, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 2)
  br label %487

453:                                              ; preds = %420
  call void @qh_option(ptr noundef @.str.67, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 28)
  br label %487

454:                                              ; preds = %420
  %455 = load ptr, ptr %6, align 8, !tbaa !5
  %456 = getelementptr inbounds i8, ptr %455, i32 -1
  store ptr %456, ptr %6, align 8, !tbaa !5
  %457 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %458 = load ptr, ptr %6, align 8, !tbaa !5
  %459 = getelementptr inbounds i8, ptr %458, i64 0
  %460 = load i8, ptr %459, align 1, !tbaa !16
  %461 = sext i8 %460 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %457, i32 noundef 7012, ptr noundef @.str.68, i32 noundef %461)
  %462 = load ptr, ptr %6, align 8, !tbaa !5
  %463 = getelementptr inbounds i8, ptr %462, i64 -1
  store ptr %463, ptr %11, align 8, !tbaa !5
  br label %464

464:                                              ; preds = %485, %454
  %465 = load ptr, ptr %6, align 8, !tbaa !5
  %466 = getelementptr inbounds i8, ptr %465, i32 1
  store ptr %466, ptr %6, align 8, !tbaa !5
  %467 = load i8, ptr %466, align 1, !tbaa !16
  %468 = sext i8 %467 to i32
  %469 = icmp ne i32 %468, 0
  br i1 %469, label %470, label %483

470:                                              ; preds = %464
  %471 = call ptr @__ctype_b_loc() #9
  %472 = load ptr, ptr %471, align 8, !tbaa !5
  %473 = load ptr, ptr %6, align 8, !tbaa !5
  %474 = load i8, ptr %473, align 1, !tbaa !16
  %475 = sext i8 %474 to i32
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds i16, ptr %472, i64 %476
  %478 = load i16, ptr %477, align 2, !tbaa !17
  %479 = zext i16 %478 to i32
  %480 = and i32 %479, 8192
  %481 = icmp ne i32 %480, 0
  %482 = xor i1 %481, true
  br label %483

483:                                              ; preds = %470, %464
  %484 = phi i1 [ false, %464 ], [ %482, %470 ]
  br i1 %484, label %485, label %486

485:                                              ; preds = %483
  br label %464, !llvm.loop !47

486:                                              ; preds = %483
  br label %487

487:                                              ; preds = %486, %453, %452, %451, %450, %449, %448, %447, %446, %445, %444, %438, %437, %436, %435, %434, %433, %432, %431, %430, %429, %428, %427, %426, %425
  br label %400, !llvm.loop !48

488:                                              ; preds = %418
  br label %1590

489:                                              ; preds = %105
  store i32 1, ptr %12, align 4, !tbaa !9
  call void @qh_appendprint(i32 noundef 7)
  br label %490

490:                                              ; preds = %586, %489
  %491 = load ptr, ptr %6, align 8, !tbaa !5
  %492 = load i8, ptr %491, align 1, !tbaa !16
  %493 = sext i8 %492 to i32
  %494 = icmp ne i32 %493, 0
  br i1 %494, label %495, label %508

495:                                              ; preds = %490
  %496 = call ptr @__ctype_b_loc() #9
  %497 = load ptr, ptr %496, align 8, !tbaa !5
  %498 = load ptr, ptr %6, align 8, !tbaa !5
  %499 = load i8, ptr %498, align 1, !tbaa !16
  %500 = sext i8 %499 to i32
  %501 = sext i32 %500 to i64
  %502 = getelementptr inbounds i16, ptr %497, i64 %501
  %503 = load i16, ptr %502, align 2, !tbaa !17
  %504 = zext i16 %503 to i32
  %505 = and i32 %504, 8192
  %506 = icmp ne i32 %505, 0
  %507 = xor i1 %506, true
  br label %508

508:                                              ; preds = %495, %490
  %509 = phi i1 [ false, %490 ], [ %507, %495 ]
  br i1 %509, label %510, label %587

510:                                              ; preds = %508
  %511 = load ptr, ptr %6, align 8, !tbaa !5
  %512 = getelementptr inbounds i8, ptr %511, i32 1
  store ptr %512, ptr %6, align 8, !tbaa !5
  %513 = load i8, ptr %511, align 1, !tbaa !16
  %514 = sext i8 %513 to i32
  switch i32 %514, label %553 [
    i32 97, label %515
    i32 99, label %516
    i32 104, label %517
    i32 105, label %518
    i32 110, label %519
    i32 111, label %520
    i32 112, label %521
    i32 114, label %522
    i32 116, label %523
    i32 118, label %524
    i32 68, label %525
  ]

515:                                              ; preds = %510
  call void @qh_option(ptr noundef @.str.69, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 56), align 4, !tbaa !49
  br label %586

516:                                              ; preds = %510
  call void @qh_option(ptr noundef @.str.70, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 53), align 8, !tbaa !50
  br label %586

517:                                              ; preds = %510
  call void @qh_option(ptr noundef @.str.71, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 18), align 4, !tbaa !51
  br label %586

518:                                              ; preds = %510
  call void @qh_option(ptr noundef @.str.72, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 58), align 4, !tbaa !52
  br label %586

519:                                              ; preds = %510
  call void @qh_option(ptr noundef @.str.73, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 60), align 4, !tbaa !53
  br label %586

520:                                              ; preds = %510
  call void @qh_option(ptr noundef @.str.74, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 62), align 4, !tbaa !54
  br label %586

521:                                              ; preds = %510
  call void @qh_option(ptr noundef @.str.75, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 54), align 4, !tbaa !55
  br label %586

522:                                              ; preds = %510
  call void @qh_option(ptr noundef @.str.76, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 65), align 8, !tbaa !56
  br label %586

523:                                              ; preds = %510
  call void @qh_option(ptr noundef @.str.77, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 69), align 8, !tbaa !57
  br label %586

524:                                              ; preds = %510
  call void @qh_option(ptr noundef @.str.78, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 66), align 4, !tbaa !58
  br label %586

525:                                              ; preds = %510
  %526 = call ptr @__ctype_b_loc() #9
  %527 = load ptr, ptr %526, align 8, !tbaa !5
  %528 = load ptr, ptr %6, align 8, !tbaa !5
  %529 = load i8, ptr %528, align 1, !tbaa !16
  %530 = sext i8 %529 to i32
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds i16, ptr %527, i64 %531
  %533 = load i16, ptr %532, align 2, !tbaa !17
  %534 = zext i16 %533 to i32
  %535 = and i32 %534, 2048
  %536 = icmp ne i32 %535, 0
  br i1 %536, label %541, label %537

537:                                              ; preds = %525
  %538 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %538, i32 noundef 7004, ptr noundef @.str.79)
  %539 = load ptr, ptr %6, align 8, !tbaa !5
  %540 = getelementptr inbounds i8, ptr %539, i64 -2
  store ptr %540, ptr %11, align 8, !tbaa !5
  br label %552

541:                                              ; preds = %525
  %542 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 19), align 8, !tbaa !59
  %543 = icmp sge i32 %542, 0
  br i1 %543, label %544, label %549

544:                                              ; preds = %541
  %545 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %546 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 19), align 8, !tbaa !59
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %545, i32 noundef 7013, ptr noundef @.str.80, i32 noundef %546)
  %547 = load ptr, ptr %6, align 8, !tbaa !5
  %548 = getelementptr inbounds i8, ptr %547, i64 -2
  store ptr %548, ptr %11, align 8, !tbaa !5
  br label %549

549:                                              ; preds = %544, %541
  %550 = load ptr, ptr %6, align 8, !tbaa !5
  %551 = call i32 @qh_strtol(ptr noundef %550, ptr noundef %6)
  store i32 %551, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 19), align 8, !tbaa !59
  call void @qh_option(ptr noundef @.str.81, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 19), ptr noundef null)
  br label %552

552:                                              ; preds = %549, %537
  br label %586

553:                                              ; preds = %510
  %554 = load ptr, ptr %6, align 8, !tbaa !5
  %555 = getelementptr inbounds i8, ptr %554, i32 -1
  store ptr %555, ptr %6, align 8, !tbaa !5
  %556 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %557 = load ptr, ptr %6, align 8, !tbaa !5
  %558 = getelementptr inbounds i8, ptr %557, i64 0
  %559 = load i8, ptr %558, align 1, !tbaa !16
  %560 = sext i8 %559 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %556, i32 noundef 7014, ptr noundef @.str.82, i32 noundef %560)
  %561 = load ptr, ptr %6, align 8, !tbaa !5
  %562 = getelementptr inbounds i8, ptr %561, i64 -1
  store ptr %562, ptr %11, align 8, !tbaa !5
  br label %563

563:                                              ; preds = %584, %553
  %564 = load ptr, ptr %6, align 8, !tbaa !5
  %565 = getelementptr inbounds i8, ptr %564, i32 1
  store ptr %565, ptr %6, align 8, !tbaa !5
  %566 = load i8, ptr %565, align 1, !tbaa !16
  %567 = sext i8 %566 to i32
  %568 = icmp ne i32 %567, 0
  br i1 %568, label %569, label %582

569:                                              ; preds = %563
  %570 = call ptr @__ctype_b_loc() #9
  %571 = load ptr, ptr %570, align 8, !tbaa !5
  %572 = load ptr, ptr %6, align 8, !tbaa !5
  %573 = load i8, ptr %572, align 1, !tbaa !16
  %574 = sext i8 %573 to i32
  %575 = sext i32 %574 to i64
  %576 = getelementptr inbounds i16, ptr %571, i64 %575
  %577 = load i16, ptr %576, align 2, !tbaa !17
  %578 = zext i16 %577 to i32
  %579 = and i32 %578, 8192
  %580 = icmp ne i32 %579, 0
  %581 = xor i1 %580, true
  br label %582

582:                                              ; preds = %569, %563
  %583 = phi i1 [ false, %563 ], [ %581, %569 ]
  br i1 %583, label %584, label %585

584:                                              ; preds = %582
  br label %563, !llvm.loop !60

585:                                              ; preds = %582
  br label %586

586:                                              ; preds = %585, %552, %524, %523, %522, %521, %520, %519, %518, %517, %516, %515
  br label %490, !llvm.loop !61

587:                                              ; preds = %508
  br label %1590

588:                                              ; preds = %105
  br label %589

589:                                              ; preds = %733, %588
  %590 = load ptr, ptr %6, align 8, !tbaa !5
  %591 = load i8, ptr %590, align 1, !tbaa !16
  %592 = sext i8 %591 to i32
  %593 = icmp ne i32 %592, 0
  br i1 %593, label %594, label %607

594:                                              ; preds = %589
  %595 = call ptr @__ctype_b_loc() #9
  %596 = load ptr, ptr %595, align 8, !tbaa !5
  %597 = load ptr, ptr %6, align 8, !tbaa !5
  %598 = load i8, ptr %597, align 1, !tbaa !16
  %599 = sext i8 %598 to i32
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds i16, ptr %596, i64 %600
  %602 = load i16, ptr %601, align 2, !tbaa !17
  %603 = zext i16 %602 to i32
  %604 = and i32 %603, 8192
  %605 = icmp ne i32 %604, 0
  %606 = xor i1 %605, true
  br label %607

607:                                              ; preds = %594, %589
  %608 = phi i1 [ false, %589 ], [ %606, %594 ]
  br i1 %608, label %609, label %734

609:                                              ; preds = %607
  %610 = load ptr, ptr %6, align 8, !tbaa !5
  %611 = getelementptr inbounds i8, ptr %610, i32 1
  store ptr %611, ptr %6, align 8, !tbaa !5
  %612 = load i8, ptr %610, align 1, !tbaa !16
  %613 = sext i8 %612 to i32
  switch i32 %613, label %700 [
    i32 100, label %614
    i32 68, label %614
    i32 103, label %636
    i32 71, label %637
    i32 111, label %638
    i32 112, label %639
    i32 65, label %640
    i32 70, label %660
    i32 77, label %680
  ]

614:                                              ; preds = %609, %609
  %615 = load ptr, ptr %6, align 8, !tbaa !5
  %616 = getelementptr inbounds i8, ptr %615, i64 -1
  %617 = load i8, ptr %616, align 1, !tbaa !16
  store i8 %617, ptr %10, align 1, !tbaa !16
  %618 = load ptr, ptr %6, align 8, !tbaa !5
  %619 = call i32 @qh_strtol(ptr noundef %618, ptr noundef %6)
  store i32 %619, ptr %4, align 4, !tbaa !9
  store double 0.000000e+00, ptr %14, align 8, !tbaa !62
  %620 = load ptr, ptr %6, align 8, !tbaa !5
  %621 = load i8, ptr %620, align 1, !tbaa !16
  %622 = sext i8 %621 to i32
  %623 = icmp eq i32 %622, 58
  br i1 %623, label %624, label %629

624:                                              ; preds = %614
  %625 = load ptr, ptr %6, align 8, !tbaa !5
  %626 = getelementptr inbounds i8, ptr %625, i32 1
  store ptr %626, ptr %6, align 8, !tbaa !5
  %627 = load ptr, ptr %6, align 8, !tbaa !5
  %628 = call double @qh_strtod(ptr noundef %627, ptr noundef %6)
  store double %628, ptr %14, align 8, !tbaa !62
  br label %629

629:                                              ; preds = %624, %614
  %630 = load i8, ptr %10, align 1, !tbaa !16
  %631 = sext i8 %630 to i32
  %632 = icmp eq i32 %631, 100
  br i1 %632, label %633, label %634

633:                                              ; preds = %629
  call void @qh_option(ptr noundef @.str.83, ptr noundef %4, ptr noundef %14)
  br label %635

634:                                              ; preds = %629
  call void @qh_option(ptr noundef @.str.84, ptr noundef %4, ptr noundef %14)
  br label %635

635:                                              ; preds = %634, %633
  br label %733

636:                                              ; preds = %609
  call void @qh_option(ptr noundef @.str.85, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 57), align 8, !tbaa !63
  br label %733

637:                                              ; preds = %609
  call void @qh_option(ptr noundef @.str.86, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 59), align 8, !tbaa !64
  br label %733

638:                                              ; preds = %609
  call void @qh_option(ptr noundef @.str.87, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 21), align 8, !tbaa !65
  br label %733

639:                                              ; preds = %609
  call void @qh_option(ptr noundef @.str.88, ptr noundef null, ptr noundef null)
  store i32 0, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 63), align 8, !tbaa !66
  br label %733

640:                                              ; preds = %609
  %641 = call ptr @__ctype_b_loc() #9
  %642 = load ptr, ptr %641, align 8, !tbaa !5
  %643 = load ptr, ptr %6, align 8, !tbaa !5
  %644 = load i8, ptr %643, align 1, !tbaa !16
  %645 = sext i8 %644 to i32
  %646 = sext i32 %645 to i64
  %647 = getelementptr inbounds i16, ptr %642, i64 %646
  %648 = load i16, ptr %647, align 2, !tbaa !17
  %649 = zext i16 %648 to i32
  %650 = and i32 %649, 2048
  %651 = icmp ne i32 %650, 0
  br i1 %651, label %656, label %652

652:                                              ; preds = %640
  %653 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %653, i32 noundef 7006, ptr noundef @.str.89)
  %654 = load ptr, ptr %6, align 8, !tbaa !5
  %655 = getelementptr inbounds i8, ptr %654, i64 -2
  store ptr %655, ptr %11, align 8, !tbaa !5
  br label %659

656:                                              ; preds = %640
  %657 = load ptr, ptr %6, align 8, !tbaa !5
  %658 = call i32 @qh_strtol(ptr noundef %657, ptr noundef %6)
  store i32 %658, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 30), align 4, !tbaa !67
  call void @qh_option(ptr noundef @.str.90, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 30), ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 108), align 8, !tbaa !43
  br label %659

659:                                              ; preds = %656, %652
  br label %733

660:                                              ; preds = %609
  %661 = call ptr @__ctype_b_loc() #9
  %662 = load ptr, ptr %661, align 8, !tbaa !5
  %663 = load ptr, ptr %6, align 8, !tbaa !5
  %664 = load i8, ptr %663, align 1, !tbaa !16
  %665 = sext i8 %664 to i32
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds i16, ptr %662, i64 %666
  %668 = load i16, ptr %667, align 2, !tbaa !17
  %669 = zext i16 %668 to i32
  %670 = and i32 %669, 2048
  %671 = icmp ne i32 %670, 0
  br i1 %671, label %676, label %672

672:                                              ; preds = %660
  %673 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %673, i32 noundef 7010, ptr noundef @.str.91)
  %674 = load ptr, ptr %6, align 8, !tbaa !5
  %675 = getelementptr inbounds i8, ptr %674, i64 -2
  store ptr %675, ptr %11, align 8, !tbaa !5
  br label %679

676:                                              ; preds = %660
  %677 = load ptr, ptr %6, align 8, !tbaa !5
  %678 = call double @qh_strtod(ptr noundef %677, ptr noundef %6)
  store double %678, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 34), align 8, !tbaa !68
  call void @qh_option(ptr noundef @.str.92, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 34))
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 108), align 8, !tbaa !43
  br label %679

679:                                              ; preds = %676, %672
  br label %733

680:                                              ; preds = %609
  %681 = call ptr @__ctype_b_loc() #9
  %682 = load ptr, ptr %681, align 8, !tbaa !5
  %683 = load ptr, ptr %6, align 8, !tbaa !5
  %684 = load i8, ptr %683, align 1, !tbaa !16
  %685 = sext i8 %684 to i32
  %686 = sext i32 %685 to i64
  %687 = getelementptr inbounds i16, ptr %682, i64 %686
  %688 = load i16, ptr %687, align 2, !tbaa !17
  %689 = zext i16 %688 to i32
  %690 = and i32 %689, 2048
  %691 = icmp ne i32 %690, 0
  br i1 %691, label %696, label %692

692:                                              ; preds = %680
  %693 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %693, i32 noundef 7090, ptr noundef @.str.93)
  %694 = load ptr, ptr %6, align 8, !tbaa !5
  %695 = getelementptr inbounds i8, ptr %694, i64 -2
  store ptr %695, ptr %11, align 8, !tbaa !5
  br label %699

696:                                              ; preds = %680
  %697 = load ptr, ptr %6, align 8, !tbaa !5
  %698 = call i32 @qh_strtol(ptr noundef %697, ptr noundef %6)
  store i32 %698, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 33), align 8, !tbaa !69
  call void @qh_option(ptr noundef @.str.94, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 33), ptr noundef null)
  br label %699

699:                                              ; preds = %696, %692
  br label %733

700:                                              ; preds = %609
  %701 = load ptr, ptr %6, align 8, !tbaa !5
  %702 = getelementptr inbounds i8, ptr %701, i32 -1
  store ptr %702, ptr %6, align 8, !tbaa !5
  %703 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %704 = load ptr, ptr %6, align 8, !tbaa !5
  %705 = getelementptr inbounds i8, ptr %704, i64 0
  %706 = load i8, ptr %705, align 1, !tbaa !16
  %707 = sext i8 %706 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %703, i32 noundef 7015, ptr noundef @.str.95, i32 noundef %707)
  %708 = load ptr, ptr %6, align 8, !tbaa !5
  %709 = getelementptr inbounds i8, ptr %708, i64 -1
  store ptr %709, ptr %11, align 8, !tbaa !5
  br label %710

710:                                              ; preds = %731, %700
  %711 = load ptr, ptr %6, align 8, !tbaa !5
  %712 = getelementptr inbounds i8, ptr %711, i32 1
  store ptr %712, ptr %6, align 8, !tbaa !5
  %713 = load i8, ptr %712, align 1, !tbaa !16
  %714 = sext i8 %713 to i32
  %715 = icmp ne i32 %714, 0
  br i1 %715, label %716, label %729

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

729:                                              ; preds = %716, %710
  %730 = phi i1 [ false, %710 ], [ %728, %716 ]
  br i1 %730, label %731, label %732

731:                                              ; preds = %729
  br label %710, !llvm.loop !70

732:                                              ; preds = %729
  br label %733

733:                                              ; preds = %732, %699, %679, %659, %639, %638, %637, %636, %635
  br label %589, !llvm.loop !71

734:                                              ; preds = %607
  br label %1590

735:                                              ; preds = %105
  store i32 -1, ptr %5, align 4, !tbaa !9
  br label %736

736:                                              ; preds = %1172, %735
  %737 = load ptr, ptr %6, align 8, !tbaa !5
  %738 = load i8, ptr %737, align 1, !tbaa !16
  %739 = sext i8 %738 to i32
  %740 = icmp ne i32 %739, 0
  br i1 %740, label %741, label %754

741:                                              ; preds = %736
  %742 = call ptr @__ctype_b_loc() #9
  %743 = load ptr, ptr %742, align 8, !tbaa !5
  %744 = load ptr, ptr %6, align 8, !tbaa !5
  %745 = load i8, ptr %744, align 1, !tbaa !16
  %746 = sext i8 %745 to i32
  %747 = sext i32 %746 to i64
  %748 = getelementptr inbounds i16, ptr %743, i64 %747
  %749 = load i16, ptr %748, align 2, !tbaa !17
  %750 = zext i16 %749 to i32
  %751 = and i32 %750, 8192
  %752 = icmp ne i32 %751, 0
  %753 = xor i1 %752, true
  br label %754

754:                                              ; preds = %741, %736
  %755 = phi i1 [ false, %736 ], [ %753, %741 ]
  br i1 %755, label %756, label %1173

756:                                              ; preds = %754
  %757 = load ptr, ptr %6, align 8, !tbaa !5
  %758 = getelementptr inbounds i8, ptr %757, i32 1
  store ptr %758, ptr %6, align 8, !tbaa !5
  %759 = load i8, ptr %757, align 1, !tbaa !16
  %760 = sext i8 %759 to i32
  switch i32 %760, label %1139 [
    i32 97, label %761
    i32 98, label %762
    i32 66, label %762
    i32 99, label %893
    i32 102, label %894
    i32 103, label %895
    i32 105, label %896
    i32 109, label %897
    i32 114, label %898
    i32 115, label %899
    i32 116, label %900
    i32 84, label %901
    i32 117, label %921
    i32 118, label %922
    i32 120, label %923
    i32 122, label %924
    i32 48, label %925
    i32 49, label %926
    i32 50, label %983
    i32 51, label %984
    i32 52, label %1011
    i32 53, label %1012
    i32 54, label %1013
    i32 55, label %1014
    i32 56, label %1015
    i32 57, label %1016
    i32 71, label %1017
    i32 74, label %1052
    i32 82, label %1074
    i32 86, label %1108
    i32 119, label %1138
  ]

761:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.96, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 1), align 4, !tbaa !72
  br label %1172

762:                                              ; preds = %756, %756
  %763 = load ptr, ptr %6, align 8, !tbaa !5
  %764 = getelementptr inbounds i8, ptr %763, i64 -1
  %765 = load i8, ptr %764, align 1, !tbaa !16
  store i8 %765, ptr %10, align 1, !tbaa !16
  %766 = load i8, ptr %10, align 1, !tbaa !16
  %767 = sext i8 %766 to i32
  %768 = icmp eq i32 %767, 98
  br i1 %768, label %769, label %777

769:                                              ; preds = %762
  %770 = load ptr, ptr %6, align 8, !tbaa !5
  %771 = load i8, ptr %770, align 1, !tbaa !16
  %772 = sext i8 %771 to i32
  %773 = icmp eq i32 %772, 66
  br i1 %773, label %774, label %777

774:                                              ; preds = %769
  %775 = load ptr, ptr %6, align 8, !tbaa !5
  %776 = getelementptr inbounds i8, ptr %775, i32 1
  store ptr %776, ptr %6, align 8, !tbaa !5
  store double 5.000000e-01, ptr %14, align 8, !tbaa !62
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 81), align 4, !tbaa !73
  call void @qh_option(ptr noundef @.str.97, ptr noundef null, ptr noundef %14)
  br label %1172

777:                                              ; preds = %769, %762
  %778 = load i8, ptr %10, align 1, !tbaa !16
  %779 = sext i8 %778 to i32
  %780 = icmp eq i32 %779, 98
  br i1 %780, label %781, label %789

781:                                              ; preds = %777
  %782 = load ptr, ptr %6, align 8, !tbaa !5
  %783 = load i8, ptr %782, align 1, !tbaa !16
  %784 = sext i8 %783 to i32
  %785 = icmp eq i32 %784, 98
  br i1 %785, label %786, label %789

786:                                              ; preds = %781
  %787 = load ptr, ptr %6, align 8, !tbaa !5
  %788 = getelementptr inbounds i8, ptr %787, i32 1
  store ptr %788, ptr %6, align 8, !tbaa !5
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 82), align 8, !tbaa !74
  call void @qh_option(ptr noundef @.str.98, ptr noundef null, ptr noundef null)
  br label %1172

789:                                              ; preds = %781, %777
  %790 = load ptr, ptr %6, align 8, !tbaa !5
  %791 = call i32 @qh_strtol(ptr noundef %790, ptr noundef %6)
  store i32 %791, ptr %3, align 4, !tbaa !9
  store double 0.000000e+00, ptr %14, align 8, !tbaa !62
  store i32 0, ptr %13, align 4, !tbaa !9
  %792 = load ptr, ptr %6, align 8, !tbaa !5
  %793 = load i8, ptr %792, align 1, !tbaa !16
  %794 = sext i8 %793 to i32
  %795 = icmp eq i32 %794, 58
  br i1 %795, label %796, label %865

796:                                              ; preds = %789
  %797 = load ptr, ptr %6, align 8, !tbaa !5
  %798 = getelementptr inbounds i8, ptr %797, i32 1
  store ptr %798, ptr %6, align 8, !tbaa !5
  %799 = load ptr, ptr %6, align 8, !tbaa !5
  %800 = call double @qh_strtod(ptr noundef %799, ptr noundef %6)
  store double %800, ptr %14, align 8, !tbaa !62
  %801 = fcmp oeq double %800, 0.000000e+00
  br i1 %801, label %802, label %864

802:                                              ; preds = %796
  %803 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %803, ptr %7, align 8, !tbaa !5
  br label %804

804:                                              ; preds = %862, %802
  %805 = load ptr, ptr %7, align 8, !tbaa !5
  %806 = load i8, ptr %805, align 1, !tbaa !16
  %807 = sext i8 %806 to i32
  %808 = icmp ne i32 %807, 0
  br i1 %808, label %809, label %822

809:                                              ; preds = %804
  %810 = call ptr @__ctype_b_loc() #9
  %811 = load ptr, ptr %810, align 8, !tbaa !5
  %812 = load ptr, ptr %7, align 8, !tbaa !5
  %813 = load i8, ptr %812, align 1, !tbaa !16
  %814 = sext i8 %813 to i32
  %815 = sext i32 %814 to i64
  %816 = getelementptr inbounds i16, ptr %811, i64 %815
  %817 = load i16, ptr %816, align 2, !tbaa !17
  %818 = zext i16 %817 to i32
  %819 = and i32 %818, 8192
  %820 = icmp ne i32 %819, 0
  %821 = xor i1 %820, true
  br label %822

822:                                              ; preds = %809, %804
  %823 = phi i1 [ false, %804 ], [ %821, %809 ]
  br i1 %823, label %824, label %863

824:                                              ; preds = %822
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  %825 = call ptr @__ctype_toupper_loc() #9
  %826 = load ptr, ptr %825, align 8, !tbaa !5
  %827 = load ptr, ptr %7, align 8, !tbaa !5
  %828 = getelementptr inbounds i8, ptr %827, i32 1
  store ptr %828, ptr %7, align 8, !tbaa !5
  %829 = load i8, ptr %827, align 1, !tbaa !16
  %830 = sext i8 %829 to i32
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds i32, ptr %826, i64 %831
  %833 = load i32, ptr %832, align 4, !tbaa !9
  store i32 %833, ptr %15, align 4, !tbaa !9
  %834 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %834, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  %835 = load i32, ptr %16, align 4, !tbaa !9
  %836 = icmp eq i32 %835, 66
  br i1 %836, label %837, label %862

837:                                              ; preds = %824
  %838 = load i32, ptr %3, align 4, !tbaa !9
  %839 = load ptr, ptr %7, align 8, !tbaa !5
  %840 = call i32 @qh_strtol(ptr noundef %839, ptr noundef %7)
  %841 = icmp eq i32 %838, %840
  br i1 %841, label %842, label %862

842:                                              ; preds = %837
  %843 = load ptr, ptr %7, align 8, !tbaa !5
  %844 = getelementptr inbounds i8, ptr %843, i32 1
  store ptr %844, ptr %7, align 8, !tbaa !5
  %845 = load i8, ptr %843, align 1, !tbaa !16
  %846 = sext i8 %845 to i32
  %847 = icmp eq i32 %846, 58
  br i1 %847, label %848, label %862

848:                                              ; preds = %842
  %849 = load ptr, ptr %7, align 8, !tbaa !5
  %850 = call double @qh_strtod(ptr noundef %849, ptr noundef %7)
  %851 = fcmp oeq double %850, 0.000000e+00
  br i1 %851, label %852, label %862

852:                                              ; preds = %848
  %853 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 71), align 8, !tbaa !75
  %854 = add nsw i32 %853, 1
  store i32 %854, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 71), align 8, !tbaa !75
  %855 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 29), align 8, !tbaa !76
  %856 = icmp sge i32 %855, 2
  br i1 %856, label %857, label %860

857:                                              ; preds = %852
  %858 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %859 = load i32, ptr %3, align 4, !tbaa !9
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %858, i32 noundef 2004, ptr noundef @.str.99, i32 noundef %859)
  br label %860

860:                                              ; preds = %857, %852
  call void @qh_option(ptr noundef @.str.100, ptr noundef %3, ptr noundef null)
  store i32 1, ptr %13, align 4, !tbaa !9
  %861 = load i32, ptr %3, align 4, !tbaa !9
  store i32 %861, ptr %5, align 4, !tbaa !9
  br label %863

862:                                              ; preds = %848, %842, %837, %824
  br label %804, !llvm.loop !77

863:                                              ; preds = %860, %822
  br label %864

864:                                              ; preds = %863, %796
  br label %865

865:                                              ; preds = %864, %789
  %866 = load i32, ptr %13, align 4, !tbaa !9
  %867 = icmp ne i32 %866, 0
  br i1 %867, label %892, label %868

868:                                              ; preds = %865
  %869 = load i32, ptr %5, align 4, !tbaa !9
  %870 = load i32, ptr %3, align 4, !tbaa !9
  %871 = icmp eq i32 %869, %870
  br i1 %871, label %872, label %876

872:                                              ; preds = %868
  %873 = load double, ptr %14, align 8, !tbaa !62
  %874 = fcmp oeq double %873, 0.000000e+00
  br i1 %874, label %875, label %876

875:                                              ; preds = %872
  store i32 -1, ptr %5, align 4, !tbaa !9
  br label %891

876:                                              ; preds = %872, %868
  %877 = load i8, ptr %10, align 1, !tbaa !16
  %878 = sext i8 %877 to i32
  %879 = icmp eq i32 %878, 98
  br i1 %879, label %880, label %885

880:                                              ; preds = %876
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 81), align 4, !tbaa !73
  %881 = load double, ptr %14, align 8, !tbaa !62
  %882 = fcmp oeq double %881, 0.000000e+00
  br i1 %882, label %883, label %884

883:                                              ; preds = %880
  store double -5.000000e-01, ptr %14, align 8, !tbaa !62
  br label %884

884:                                              ; preds = %883, %880
  call void @qh_option(ptr noundef @.str.101, ptr noundef %3, ptr noundef %14)
  br label %890

885:                                              ; preds = %876
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 81), align 4, !tbaa !73
  %886 = load double, ptr %14, align 8, !tbaa !62
  %887 = fcmp oeq double %886, 0.000000e+00
  br i1 %887, label %888, label %889

888:                                              ; preds = %885
  store double 5.000000e-01, ptr %14, align 8, !tbaa !62
  br label %889

889:                                              ; preds = %888, %885
  call void @qh_option(ptr noundef @.str.102, ptr noundef %3, ptr noundef %14)
  br label %890

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

891:                                              ; preds = %890, %875
  br label %892

892:                                              ; preds = %891, %865
  br label %1172

893:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.103, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 31), align 8, !tbaa !78
  br label %1172

894:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.104, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 10), align 4, !tbaa !79
  br label %1172

895:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.105, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 48), align 4, !tbaa !80
  br label %1172

896:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.106, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 32), align 4, !tbaa !81
  br label %1172

897:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.107, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 49), align 8, !tbaa !82
  br label %1172

898:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.108, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 76), align 8, !tbaa !83
  br label %1172

899:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.109, ptr noundef null, ptr noundef null)
  store i32 1, ptr @qh_qh, align 8, !tbaa !84
  br label %1172

900:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.110, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 97), align 4, !tbaa !85
  br label %1172

901:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.111, ptr noundef null, ptr noundef null)
  %902 = call ptr @__ctype_b_loc() #9
  %903 = load ptr, ptr %902, align 8, !tbaa !5
  %904 = load ptr, ptr %6, align 8, !tbaa !5
  %905 = load i8, ptr %904, align 1, !tbaa !16
  %906 = sext i8 %905 to i32
  %907 = sext i32 %906 to i64
  %908 = getelementptr inbounds i16, ptr %903, i64 %907
  %909 = load i16, ptr %908, align 2, !tbaa !17
  %910 = zext i16 %909 to i32
  %911 = and i32 %910, 2048
  %912 = icmp ne i32 %911, 0
  br i1 %912, label %917, label %913

913:                                              ; preds = %901
  %914 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %914, i32 noundef 7091, ptr noundef @.str.112)
  %915 = load ptr, ptr %6, align 8, !tbaa !5
  %916 = getelementptr inbounds i8, ptr %915, i64 -2
  store ptr %916, ptr %11, align 8, !tbaa !5
  br label %920

917:                                              ; preds = %901
  %918 = load ptr, ptr %6, align 8, !tbaa !5
  %919 = call i32 @qh_strtol(ptr noundef %918, ptr noundef %6)
  store i32 %919, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 90), align 8, !tbaa !86
  call void @qh_option(ptr noundef @.str.111, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 90), ptr noundef null)
  br label %920

920:                                              ; preds = %917, %913
  br label %1172

921:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.113, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 99), align 4, !tbaa !87
  br label %1172

922:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.114, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 91), align 4, !tbaa !88
  br label %1172

923:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.115, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 37), align 4, !tbaa !89
  br label %1172

924:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.116, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 8), align 4, !tbaa !90
  br label %1172

925:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.117, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 47), align 8, !tbaa !91
  br label %1172

926:                                              ; preds = %756
  %927 = call ptr @__ctype_b_loc() #9
  %928 = load ptr, ptr %927, align 8, !tbaa !5
  %929 = load ptr, ptr %6, align 8, !tbaa !5
  %930 = load i8, ptr %929, align 1, !tbaa !16
  %931 = sext i8 %930 to i32
  %932 = sext i32 %931 to i64
  %933 = getelementptr inbounds i16, ptr %928, i64 %932
  %934 = load i16, ptr %933, align 2, !tbaa !17
  %935 = zext i16 %934 to i32
  %936 = and i32 %935, 2048
  %937 = icmp ne i32 %936, 0
  br i1 %937, label %939, label %938

938:                                              ; preds = %926
  call void @qh_option(ptr noundef @.str.118, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 4), align 8, !tbaa !92
  br label %1172

939:                                              ; preds = %926
  %940 = load ptr, ptr %6, align 8, !tbaa !5
  %941 = getelementptr inbounds i8, ptr %940, i32 1
  store ptr %941, ptr %6, align 8, !tbaa !5
  %942 = load i8, ptr %940, align 1, !tbaa !16
  %943 = sext i8 %942 to i32
  switch i32 %943, label %949 [
    i32 48, label %944
    i32 49, label %945
    i32 50, label %946
    i32 52, label %947
    i32 55, label %948
  ]

944:                                              ; preds = %939
  call void @qh_option(ptr noundef @.str.119, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 45), align 8, !tbaa !93
  br label %982

945:                                              ; preds = %939
  call void @qh_option(ptr noundef @.str.120, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 98), align 8, !tbaa !94
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 97), align 4, !tbaa !85
  br label %982

946:                                              ; preds = %939
  call void @qh_option(ptr noundef @.str.121, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 3), align 4, !tbaa !95
  br label %982

947:                                              ; preds = %939
  call void @qh_option(ptr noundef @.str.122, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 42), align 8, !tbaa !96
  br label %982

948:                                              ; preds = %939
  call void @qh_option(ptr noundef @.str.123, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 13), align 8, !tbaa !97
  br label %982

949:                                              ; preds = %939
  %950 = load ptr, ptr %6, align 8, !tbaa !5
  %951 = getelementptr inbounds i8, ptr %950, i32 -1
  store ptr %951, ptr %6, align 8, !tbaa !5
  %952 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %953 = load ptr, ptr %6, align 8, !tbaa !5
  %954 = getelementptr inbounds i8, ptr %953, i64 0
  %955 = load i8, ptr %954, align 1, !tbaa !16
  %956 = sext i8 %955 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %952, i32 noundef 7016, ptr noundef @.str.124, i32 noundef %956)
  %957 = load ptr, ptr %6, align 8, !tbaa !5
  %958 = getelementptr inbounds i8, ptr %957, i64 -1
  store ptr %958, ptr %11, align 8, !tbaa !5
  br label %959

959:                                              ; preds = %980, %949
  %960 = load ptr, ptr %6, align 8, !tbaa !5
  %961 = getelementptr inbounds i8, ptr %960, i32 1
  store ptr %961, ptr %6, align 8, !tbaa !5
  %962 = load i8, ptr %961, align 1, !tbaa !16
  %963 = sext i8 %962 to i32
  %964 = icmp ne i32 %963, 0
  br i1 %964, label %965, label %978

965:                                              ; preds = %959
  %966 = call ptr @__ctype_b_loc() #9
  %967 = load ptr, ptr %966, align 8, !tbaa !5
  %968 = load ptr, ptr %6, align 8, !tbaa !5
  %969 = load i8, ptr %968, align 1, !tbaa !16
  %970 = sext i8 %969 to i32
  %971 = sext i32 %970 to i64
  %972 = getelementptr inbounds i16, ptr %967, i64 %971
  %973 = load i16, ptr %972, align 2, !tbaa !17
  %974 = zext i16 %973 to i32
  %975 = and i32 %974, 8192
  %976 = icmp ne i32 %975, 0
  %977 = xor i1 %976, true
  br label %978

978:                                              ; preds = %965, %959
  %979 = phi i1 [ false, %959 ], [ %977, %965 ]
  br i1 %979, label %980, label %981

980:                                              ; preds = %978
  br label %959, !llvm.loop !98

981:                                              ; preds = %978
  br label %982

982:                                              ; preds = %981, %948, %947, %946, %945, %944
  br label %1172

983:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.125, ptr noundef null, ptr noundef null)
  store i32 0, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 38), align 8, !tbaa !99
  br label %985

984:                                              ; preds = %756
  call void @qh_option(ptr noundef @.str.126, ptr noundef null, ptr noundef null)
  store i32 0, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 43), align 4, !tbaa !100
  br label %985

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

997:                                              ; preds = %985
  %998 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %999 = load ptr, ptr %6, align 8, !tbaa !5
  %1000 = getelementptr inbounds i8, ptr %999, i64 -1
  %1001 = load i8, ptr %1000, align 1, !tbaa !16
  %1002 = sext i8 %1001 to i32
  %1003 = load ptr, ptr %6, align 8, !tbaa !5
  %1004 = load i8, ptr %1003, align 1, !tbaa !16
  %1005 = sext i8 %1004 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %998, i32 noundef 7017, ptr noundef @.str.127, i32 noundef %1002, i32 noundef %1005)
  %1006 = load ptr, ptr %6, align 8, !tbaa !5
  %1007 = getelementptr inbounds i8, ptr %1006, i64 -2
  store ptr %1007, ptr %11, align 8, !tbaa !5
  %1008 = load ptr, ptr %6, align 8, !tbaa !5
  %1009 = getelementptr inbounds i8, ptr %1008, i32 1
  store ptr %1009, ptr %6, align 8, !tbaa !5
  br label %1010

1010:                                             ; preds = %997, %985
  br label %1172

1011:                                             ; preds = %756
  call void @qh_option(ptr noundef @.str.128, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 9), align 8, !tbaa !101
  br label %1172

1012:                                             ; preds = %756
  call void @qh_option(ptr noundef @.str.129, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 84), align 8, !tbaa !102
  br label %1172

1013:                                             ; preds = %756
  call void @qh_option(ptr noundef @.str.130, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 85), align 4, !tbaa !103
  br label %1172

1014:                                             ; preds = %756
  call void @qh_option(ptr noundef @.str.131, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 102), align 8, !tbaa !104
  br label %1172

1015:                                             ; preds = %756
  call void @qh_option(ptr noundef @.str.132, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 46), align 4, !tbaa !105
  br label %1172

1016:                                             ; preds = %756
  call void @qh_option(ptr noundef @.str.133, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 50), align 4, !tbaa !106
  br label %1172

1017:                                             ; preds = %756
  %1018 = load ptr, ptr %6, align 8, !tbaa !5
  %1019 = call i32 @qh_strtol(ptr noundef %1018, ptr noundef %7)
  store i32 %1019, ptr %4, align 4, !tbaa !9
  %1020 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 22), align 4, !tbaa !107
  %1021 = icmp ne i32 %1020, 0
  br i1 %1021, label %1022, label %1026

1022:                                             ; preds = %1017
  %1023 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1023, i32 noundef 7018, ptr noundef @.str.134)
  %1024 = load ptr, ptr %6, align 8, !tbaa !5
  %1025 = getelementptr inbounds i8, ptr %1024, i64 -2
  store ptr %1025, ptr %11, align 8, !tbaa !5
  br label %1050

1026:                                             ; preds = %1017
  %1027 = load ptr, ptr %6, align 8, !tbaa !5
  %1028 = load ptr, ptr %7, align 8, !tbaa !5
  %1029 = icmp eq ptr %1027, %1028
  br i1 %1029, label %1030, label %1034

1030:                                             ; preds = %1026
  %1031 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1031, i32 noundef 7019, ptr noundef @.str.135)
  %1032 = load ptr, ptr %6, align 8, !tbaa !5
  %1033 = getelementptr inbounds i8, ptr %1032, i64 -2
  store ptr %1033, ptr %11, align 8, !tbaa !5
  br label %1049

1034:                                             ; preds = %1026
  %1035 = load i32, ptr %4, align 4, !tbaa !9
  %1036 = icmp slt i32 %1035, 0
  br i1 %1036, label %1042, label %1037

1037:                                             ; preds = %1034
  %1038 = load ptr, ptr %6, align 8, !tbaa !5
  %1039 = load i8, ptr %1038, align 1, !tbaa !16
  %1040 = sext i8 %1039 to i32
  %1041 = icmp eq i32 %1040, 45
  br i1 %1041, label %1042, label %1045

1042:                                             ; preds = %1037, %1034
  %1043 = load i32, ptr %4, align 4, !tbaa !9
  %1044 = sub nsw i32 %1043, 1
  store i32 %1044, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 22), align 4, !tbaa !107
  call void @qh_option(ptr noundef @.str.136, ptr noundef %4, ptr noundef null)
  br label %1048

1045:                                             ; preds = %1037
  %1046 = load i32, ptr %4, align 4, !tbaa !9
  %1047 = add nsw i32 %1046, 1
  store i32 %1047, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 22), align 4, !tbaa !107
  call void @qh_option(ptr noundef @.str.137, ptr noundef %4, ptr noundef null)
  br label %1048

1048:                                             ; preds = %1045, %1042
  br label %1049

1049:                                             ; preds = %1048, %1030
  br label %1050

1050:                                             ; preds = %1049, %1022
  %1051 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %1051, ptr %6, align 8, !tbaa !5
  br label %1172

1052:                                             ; preds = %756
  %1053 = call ptr @__ctype_b_loc() #9
  %1054 = load ptr, ptr %1053, align 8, !tbaa !5
  %1055 = load ptr, ptr %6, align 8, !tbaa !5
  %1056 = load i8, ptr %1055, align 1, !tbaa !16
  %1057 = sext i8 %1056 to i32
  %1058 = sext i32 %1057 to i64
  %1059 = getelementptr inbounds i16, ptr %1054, i64 %1058
  %1060 = load i16, ptr %1059, align 2, !tbaa !17
  %1061 = zext i16 %1060 to i32
  %1062 = and i32 %1061, 2048
  %1063 = icmp ne i32 %1062, 0
  br i1 %1063, label %1070, label %1064

1064:                                             ; preds = %1052
  %1065 = load ptr, ptr %6, align 8, !tbaa !5
  %1066 = load i8, ptr %1065, align 1, !tbaa !16
  %1067 = sext i8 %1066 to i32
  %1068 = icmp ne i32 %1067, 45
  br i1 %1068, label %1069, label %1070

1069:                                             ; preds = %1064
  store double 0.000000e+00, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 197), align 8, !tbaa !108
  br label %1073

1070:                                             ; preds = %1064, %1052
  %1071 = load ptr, ptr %6, align 8, !tbaa !5
  %1072 = call double @qh_strtod(ptr noundef %1071, ptr noundef %6)
  store double %1072, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 197), align 8, !tbaa !108
  call void @qh_option(ptr noundef @.str.138, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 197))
  br label %1073

1073:                                             ; preds = %1070, %1069
  br label %1172

1074:                                             ; preds = %756
  %1075 = call ptr @__ctype_b_loc() #9
  %1076 = load ptr, ptr %1075, align 8, !tbaa !5
  %1077 = load ptr, ptr %6, align 8, !tbaa !5
  %1078 = load i8, ptr %1077, align 1, !tbaa !16
  %1079 = sext i8 %1078 to i32
  %1080 = sext i32 %1079 to i64
  %1081 = getelementptr inbounds i16, ptr %1076, i64 %1080
  %1082 = load i16, ptr %1081, align 2, !tbaa !17
  %1083 = zext i16 %1082 to i32
  %1084 = and i32 %1083, 2048
  %1085 = icmp ne i32 %1084, 0
  br i1 %1085, label %1095, label %1086

1086:                                             ; preds = %1074
  %1087 = load ptr, ptr %6, align 8, !tbaa !5
  %1088 = load i8, ptr %1087, align 1, !tbaa !16
  %1089 = sext i8 %1088 to i32
  %1090 = icmp ne i32 %1089, 45
  br i1 %1090, label %1091, label %1095

1091:                                             ; preds = %1086
  %1092 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1092, i32 noundef 7020, ptr noundef @.str.139)
  %1093 = load ptr, ptr %6, align 8, !tbaa !5
  %1094 = getelementptr inbounds i8, ptr %1093, i64 -2
  store ptr %1094, ptr %11, align 8, !tbaa !5
  br label %1107

1095:                                             ; preds = %1086, %1074
  %1096 = load ptr, ptr %6, align 8, !tbaa !5
  %1097 = call i32 @qh_strtol(ptr noundef %1096, ptr noundef %6)
  store i32 %1097, ptr %4, align 4, !tbaa !9
  store i32 %1097, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 80), align 8, !tbaa !109
  %1098 = load i32, ptr %4, align 4, !tbaa !9
  %1099 = icmp sgt i32 %1098, 0
  br i1 %1099, label %1100, label %1101

1100:                                             ; preds = %1095
  call void @qh_option(ptr noundef @.str.140, ptr noundef %4, ptr noundef null)
  br label %1106

1101:                                             ; preds = %1095
  %1102 = load i32, ptr %4, align 4, !tbaa !9
  %1103 = icmp slt i32 %1102, -1
  br i1 %1103, label %1104, label %1105

1104:                                             ; preds = %1101
  call void @qh_option(ptr noundef @.str.141, ptr noundef %4, ptr noundef null)
  br label %1105

1105:                                             ; preds = %1104, %1101
  br label %1106

1106:                                             ; preds = %1105, %1100
  br label %1107

1107:                                             ; preds = %1106, %1091
  br label %1172

1108:                                             ; preds = %756
  %1109 = load ptr, ptr %6, align 8, !tbaa !5
  %1110 = call i32 @qh_strtol(ptr noundef %1109, ptr noundef %7)
  store i32 %1110, ptr %4, align 4, !tbaa !9
  %1111 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 25), align 4, !tbaa !110
  %1112 = icmp ne i32 %1111, 0
  br i1 %1112, label %1113, label %1117

1113:                                             ; preds = %1108
  %1114 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1114, i32 noundef 7021, ptr noundef @.str.142)
  %1115 = load ptr, ptr %6, align 8, !tbaa !5
  %1116 = getelementptr inbounds i8, ptr %1115, i64 -2
  store ptr %1116, ptr %11, align 8, !tbaa !5
  br label %1136

1117:                                             ; preds = %1108
  %1118 = load ptr, ptr %6, align 8, !tbaa !5
  %1119 = load ptr, ptr %7, align 8, !tbaa !5
  %1120 = icmp eq ptr %1118, %1119
  br i1 %1120, label %1121, label %1125

1121:                                             ; preds = %1117
  %1122 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1122, i32 noundef 7022, ptr noundef @.str.143)
  %1123 = load ptr, ptr %6, align 8, !tbaa !5
  %1124 = getelementptr inbounds i8, ptr %1123, i64 -2
  store ptr %1124, ptr %11, align 8, !tbaa !5
  br label %1135

1125:                                             ; preds = %1117
  %1126 = load i32, ptr %4, align 4, !tbaa !9
  %1127 = icmp slt i32 %1126, 0
  br i1 %1127, label %1128, label %1131

1128:                                             ; preds = %1125
  %1129 = load i32, ptr %4, align 4, !tbaa !9
  %1130 = sub nsw i32 %1129, 1
  store i32 %1130, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 25), align 4, !tbaa !110
  call void @qh_option(ptr noundef @.str.144, ptr noundef %4, ptr noundef null)
  br label %1134

1131:                                             ; preds = %1125
  call void @qh_option(ptr noundef @.str.145, ptr noundef %4, ptr noundef null)
  %1132 = load i32, ptr %4, align 4, !tbaa !9
  %1133 = add nsw i32 %1132, 1
  store i32 %1133, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 25), align 4, !tbaa !110
  br label %1134

1134:                                             ; preds = %1131, %1128
  br label %1135

1135:                                             ; preds = %1134, %1121
  br label %1136

1136:                                             ; preds = %1135, %1113
  %1137 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %1137, ptr %6, align 8, !tbaa !5
  br label %1172

1138:                                             ; preds = %756
  call void @qh_option(ptr noundef @.str.146, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 2), align 8, !tbaa !111
  br label %1172

1139:                                             ; preds = %756
  %1140 = load ptr, ptr %6, align 8, !tbaa !5
  %1141 = getelementptr inbounds i8, ptr %1140, i32 -1
  store ptr %1141, ptr %6, align 8, !tbaa !5
  %1142 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %1143 = load ptr, ptr %6, align 8, !tbaa !5
  %1144 = getelementptr inbounds i8, ptr %1143, i64 0
  %1145 = load i8, ptr %1144, align 1, !tbaa !16
  %1146 = sext i8 %1145 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1142, i32 noundef 7023, ptr noundef @.str.147, i32 noundef %1146)
  %1147 = load ptr, ptr %6, align 8, !tbaa !5
  %1148 = getelementptr inbounds i8, ptr %1147, i64 -1
  store ptr %1148, ptr %11, align 8, !tbaa !5
  br label %1149

1149:                                             ; preds = %1170, %1139
  %1150 = load ptr, ptr %6, align 8, !tbaa !5
  %1151 = getelementptr inbounds i8, ptr %1150, i32 1
  store ptr %1151, ptr %6, align 8, !tbaa !5
  %1152 = load i8, ptr %1151, align 1, !tbaa !16
  %1153 = sext i8 %1152 to i32
  %1154 = icmp ne i32 %1153, 0
  br i1 %1154, label %1155, label %1168

1155:                                             ; preds = %1149
  %1156 = call ptr @__ctype_b_loc() #9
  %1157 = load ptr, ptr %1156, align 8, !tbaa !5
  %1158 = load ptr, ptr %6, align 8, !tbaa !5
  %1159 = load i8, ptr %1158, align 1, !tbaa !16
  %1160 = sext i8 %1159 to i32
  %1161 = sext i32 %1160 to i64
  %1162 = getelementptr inbounds i16, ptr %1157, i64 %1161
  %1163 = load i16, ptr %1162, align 2, !tbaa !17
  %1164 = zext i16 %1163 to i32
  %1165 = and i32 %1164, 8192
  %1166 = icmp ne i32 %1165, 0
  %1167 = xor i1 %1166, true
  br label %1168

1168:                                             ; preds = %1155, %1149
  %1169 = phi i1 [ false, %1149 ], [ %1167, %1155 ]
  br i1 %1169, label %1170, label %1171

1170:                                             ; preds = %1168
  br label %1149, !llvm.loop !112

1171:                                             ; preds = %1168
  br label %1172

1172:                                             ; preds = %1171, %1138, %1136, %1107, %1073, %1050, %1016, %1015, %1014, %1013, %1012, %1011, %1010, %982, %938, %925, %924, %923, %922, %921, %920, %900, %899, %898, %897, %896, %895, %894, %893, %892, %786, %774, %761
  br label %736, !llvm.loop !113

1173:                                             ; preds = %754
  br label %1590

1174:                                             ; preds = %105
  br label %1175

1175:                                             ; preds = %1576, %1174
  %1176 = load ptr, ptr %6, align 8, !tbaa !5
  %1177 = load i8, ptr %1176, align 1, !tbaa !16
  %1178 = sext i8 %1177 to i32
  %1179 = icmp ne i32 %1178, 0
  br i1 %1179, label %1180, label %1193

1180:                                             ; preds = %1175
  %1181 = call ptr @__ctype_b_loc() #9
  %1182 = load ptr, ptr %1181, align 8, !tbaa !5
  %1183 = load ptr, ptr %6, align 8, !tbaa !5
  %1184 = load i8, ptr %1183, align 1, !tbaa !16
  %1185 = sext i8 %1184 to i32
  %1186 = sext i32 %1185 to i64
  %1187 = getelementptr inbounds i16, ptr %1182, i64 %1186
  %1188 = load i16, ptr %1187, align 2, !tbaa !17
  %1189 = zext i16 %1188 to i32
  %1190 = and i32 %1189, 8192
  %1191 = icmp ne i32 %1190, 0
  %1192 = xor i1 %1191, true
  br label %1193

1193:                                             ; preds = %1180, %1175
  %1194 = phi i1 [ false, %1175 ], [ %1192, %1180 ]
  br i1 %1194, label %1195, label %1577

1195:                                             ; preds = %1193
  %1196 = call ptr @__ctype_b_loc() #9
  %1197 = load ptr, ptr %1196, align 8, !tbaa !5
  %1198 = load ptr, ptr %6, align 8, !tbaa !5
  %1199 = load i8, ptr %1198, align 1, !tbaa !16
  %1200 = sext i8 %1199 to i32
  %1201 = sext i32 %1200 to i64
  %1202 = getelementptr inbounds i16, ptr %1197, i64 %1201
  %1203 = load i16, ptr %1202, align 2, !tbaa !17
  %1204 = zext i16 %1203 to i32
  %1205 = and i32 %1204, 2048
  %1206 = icmp ne i32 %1205, 0
  br i1 %1206, label %1212, label %1207

1207:                                             ; preds = %1195
  %1208 = load ptr, ptr %6, align 8, !tbaa !5
  %1209 = load i8, ptr %1208, align 1, !tbaa !16
  %1210 = sext i8 %1209 to i32
  %1211 = icmp eq i32 %1210, 45
  br i1 %1211, label %1212, label %1215

1212:                                             ; preds = %1207, %1195
  %1213 = load ptr, ptr %6, align 8, !tbaa !5
  %1214 = call i32 @qh_strtol(ptr noundef %1213, ptr noundef %6)
  store i32 %1214, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 29), align 8, !tbaa !76
  br label %1576

1215:                                             ; preds = %1207
  %1216 = load ptr, ptr %6, align 8, !tbaa !5
  %1217 = getelementptr inbounds i8, ptr %1216, i32 1
  store ptr %1217, ptr %6, align 8, !tbaa !5
  %1218 = load i8, ptr %1216, align 1, !tbaa !16
  %1219 = sext i8 %1218 to i32
  switch i32 %1219, label %1542 [
    i32 97, label %1220
    i32 99, label %1221
    i32 102, label %1222
    i32 115, label %1223
    i32 118, label %1224
    i32 122, label %1225
    i32 67, label %1241
    i32 70, label %1263
    i32 73, label %1285
    i32 79, label %1323
    i32 65, label %1369
    i32 80, label %1392
    i32 77, label %1460
    i32 82, label %1480
    i32 86, label %1500
    i32 87, label %1522
  ]

1220:                                             ; preds = %1215
  call void @qh_option(ptr noundef @.str.148, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 7), align 8, !tbaa !114
  br label %1575

1221:                                             ; preds = %1215
  call void @qh_option(ptr noundef @.str.149, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 14), align 4, !tbaa !115
  br label %1575

1222:                                             ; preds = %1215
  call void @qh_option(ptr noundef @.str.150, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 20), align 4, !tbaa !116
  br label %1575

1223:                                             ; preds = %1215
  call void @qh_option(ptr noundef @.str.151, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 67), align 8, !tbaa !117
  br label %1575

1224:                                             ; preds = %1215
  call void @qh_option(ptr noundef @.str.152, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 101), align 4, !tbaa !118
  br label %1575

1225:                                             ; preds = %1215
  %1226 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %1227 = icmp eq ptr %1226, inttoptr (i64 1 to ptr)
  br i1 %1227, label %1228, label %1229

1228:                                             ; preds = %1225
  call void @qh_option(ptr noundef @.str.153, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 100), align 8, !tbaa !119
  br label %1240

1229:                                             ; preds = %1225
  %1230 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 157), align 8, !tbaa !120
  %1231 = icmp ne ptr %1230, null
  br i1 %1231, label %1236, label %1232

1232:                                             ; preds = %1229
  %1233 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1233, i32 noundef 7024, ptr noundef @.str.154)
  %1234 = load ptr, ptr %6, align 8, !tbaa !5
  %1235 = getelementptr inbounds i8, ptr %1234, i64 -2
  store ptr %1235, ptr %11, align 8, !tbaa !5
  br label %1239

1236:                                             ; preds = %1229
  call void @qh_option(ptr noundef @.str.153, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 100), align 8, !tbaa !119
  %1237 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 157), align 8, !tbaa !120
  store ptr %1237, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %1238 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 157), align 8, !tbaa !120
  store ptr %1238, ptr getelementptr inbounds (%struct.qhmemT, ptr @qhmem, i32 0, i32 13), align 8, !tbaa !121
  br label %1239

1239:                                             ; preds = %1236, %1232
  br label %1240

1240:                                             ; preds = %1239, %1228
  br label %1575

1241:                                             ; preds = %1215
  %1242 = call ptr @__ctype_b_loc() #9
  %1243 = load ptr, ptr %1242, align 8, !tbaa !5
  %1244 = load ptr, ptr %6, align 8, !tbaa !5
  %1245 = load i8, ptr %1244, align 1, !tbaa !16
  %1246 = sext i8 %1245 to i32
  %1247 = sext i32 %1246 to i64
  %1248 = getelementptr inbounds i16, ptr %1243, i64 %1247
  %1249 = load i16, ptr %1248, align 2, !tbaa !17
  %1250 = zext i16 %1249 to i32
  %1251 = and i32 %1250, 2048
  %1252 = icmp ne i32 %1251, 0
  br i1 %1252, label %1257, label %1253

1253:                                             ; preds = %1241
  %1254 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1254, i32 noundef 7025, ptr noundef @.str.155)
  %1255 = load ptr, ptr %6, align 8, !tbaa !5
  %1256 = getelementptr inbounds i8, ptr %1255, i64 -2
  store ptr %1256, ptr %11, align 8, !tbaa !5
  br label %1262

1257:                                             ; preds = %1241
  %1258 = load ptr, ptr %6, align 8, !tbaa !5
  %1259 = call i32 @qh_strtol(ptr noundef %1258, ptr noundef %6)
  store i32 %1259, ptr %4, align 4, !tbaa !9
  call void @qh_option(ptr noundef @.str.156, ptr noundef %4, ptr noundef null)
  %1260 = load i32, ptr %4, align 4, !tbaa !9
  %1261 = add nsw i32 %1260, 1
  store i32 %1261, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 88), align 8, !tbaa !123
  br label %1262

1262:                                             ; preds = %1257, %1253
  br label %1575

1263:                                             ; preds = %1215
  %1264 = call ptr @__ctype_b_loc() #9
  %1265 = load ptr, ptr %1264, align 8, !tbaa !5
  %1266 = load ptr, ptr %6, align 8, !tbaa !5
  %1267 = load i8, ptr %1266, align 1, !tbaa !16
  %1268 = sext i8 %1267 to i32
  %1269 = sext i32 %1268 to i64
  %1270 = getelementptr inbounds i16, ptr %1265, i64 %1269
  %1271 = load i16, ptr %1270, align 2, !tbaa !17
  %1272 = zext i16 %1271 to i32
  %1273 = and i32 %1272, 2048
  %1274 = icmp ne i32 %1273, 0
  br i1 %1274, label %1279, label %1275

1275:                                             ; preds = %1263
  %1276 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1276, i32 noundef 7026, ptr noundef @.str.157)
  %1277 = load ptr, ptr %6, align 8, !tbaa !5
  %1278 = getelementptr inbounds i8, ptr %1277, i64 -2
  store ptr %1278, ptr %11, align 8, !tbaa !5
  br label %1284

1279:                                             ; preds = %1263
  %1280 = load ptr, ptr %6, align 8, !tbaa !5
  %1281 = call i32 @qh_strtol(ptr noundef %1280, ptr noundef %6)
  store i32 %1281, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 77), align 4, !tbaa !124
  call void @qh_option(ptr noundef @.str.158, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 77), ptr noundef null)
  %1282 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 77), align 4, !tbaa !124
  %1283 = sdiv i32 %1282, 2
  store i32 %1283, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 78), align 8, !tbaa !125
  br label %1284

1284:                                             ; preds = %1279, %1275
  br label %1575

1285:                                             ; preds = %1215
  br label %1286

1286:                                             ; preds = %1298, %1285
  %1287 = call ptr @__ctype_b_loc() #9
  %1288 = load ptr, ptr %1287, align 8, !tbaa !5
  %1289 = load ptr, ptr %6, align 8, !tbaa !5
  %1290 = load i8, ptr %1289, align 1, !tbaa !16
  %1291 = sext i8 %1290 to i32
  %1292 = sext i32 %1291 to i64
  %1293 = getelementptr inbounds i16, ptr %1288, i64 %1292
  %1294 = load i16, ptr %1293, align 2, !tbaa !17
  %1295 = zext i16 %1294 to i32
  %1296 = and i32 %1295, 8192
  %1297 = icmp ne i32 %1296, 0
  br i1 %1297, label %1298, label %1301

1298:                                             ; preds = %1286
  %1299 = load ptr, ptr %6, align 8, !tbaa !5
  %1300 = getelementptr inbounds i8, ptr %1299, i32 1
  store ptr %1300, ptr %6, align 8, !tbaa !5
  br label %1286, !llvm.loop !126

1301:                                             ; preds = %1286
  %1302 = load ptr, ptr %6, align 8, !tbaa !5
  %1303 = call ptr @qh_skipfilename(ptr noundef %1302)
  store ptr %1303, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 500, ptr %17) #7
  %1304 = getelementptr inbounds [500 x i8], ptr %17, i64 0, i64 0
  %1305 = load ptr, ptr %6, align 8, !tbaa !5
  %1306 = load ptr, ptr %7, align 8, !tbaa !5
  %1307 = load ptr, ptr %6, align 8, !tbaa !5
  %1308 = ptrtoint ptr %1306 to i64
  %1309 = ptrtoint ptr %1307 to i64
  %1310 = sub i64 %1308, %1309
  %1311 = trunc i64 %1310 to i32
  call void @qh_copyfilename(ptr noundef %1304, i32 noundef 500, ptr noundef %1305, i32 noundef %1311)
  %1312 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %1312, ptr %6, align 8, !tbaa !5
  %1313 = getelementptr inbounds [500 x i8], ptr %17, i64 0, i64 0
  %1314 = load ptr, ptr @stdin, align 8, !tbaa !5
  %1315 = call ptr @freopen(ptr noundef %1313, ptr noundef @.str.159, ptr noundef %1314)
  %1316 = icmp ne ptr %1315, null
  br i1 %1316, label %1320, label %1317

1317:                                             ; preds = %1301
  %1318 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %1319 = getelementptr inbounds [500 x i8], ptr %17, i64 0, i64 0
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1318, i32 noundef 6041, ptr noundef @.str.160, ptr noundef %1319)
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null)
  br label %1322

1320:                                             ; preds = %1301
  call void @qh_option(ptr noundef @.str.161, ptr noundef null, ptr noundef null)
  %1321 = getelementptr inbounds [500 x i8], ptr %17, i64 0, i64 0
  call void @qh_option(ptr noundef %1321, ptr noundef null, ptr noundef null)
  br label %1322

1322:                                             ; preds = %1320, %1317
  call void @llvm.lifetime.end.p0(i64 500, ptr %17) #7
  br label %1575

1323:                                             ; preds = %1215
  br label %1324

1324:                                             ; preds = %1336, %1323
  %1325 = call ptr @__ctype_b_loc() #9
  %1326 = load ptr, ptr %1325, align 8, !tbaa !5
  %1327 = load ptr, ptr %6, align 8, !tbaa !5
  %1328 = load i8, ptr %1327, align 1, !tbaa !16
  %1329 = sext i8 %1328 to i32
  %1330 = sext i32 %1329 to i64
  %1331 = getelementptr inbounds i16, ptr %1326, i64 %1330
  %1332 = load i16, ptr %1331, align 2, !tbaa !17
  %1333 = zext i16 %1332 to i32
  %1334 = and i32 %1333, 8192
  %1335 = icmp ne i32 %1334, 0
  br i1 %1335, label %1336, label %1339

1336:                                             ; preds = %1324
  %1337 = load ptr, ptr %6, align 8, !tbaa !5
  %1338 = getelementptr inbounds i8, ptr %1337, i32 1
  store ptr %1338, ptr %6, align 8, !tbaa !5
  br label %1324, !llvm.loop !127

1339:                                             ; preds = %1324
  %1340 = load ptr, ptr %6, align 8, !tbaa !5
  %1341 = call ptr @qh_skipfilename(ptr noundef %1340)
  store ptr %1341, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 500, ptr %18) #7
  %1342 = getelementptr inbounds [500 x i8], ptr %18, i64 0, i64 0
  %1343 = load ptr, ptr %6, align 8, !tbaa !5
  %1344 = load ptr, ptr %7, align 8, !tbaa !5
  %1345 = load ptr, ptr %6, align 8, !tbaa !5
  %1346 = ptrtoint ptr %1344 to i64
  %1347 = ptrtoint ptr %1345 to i64
  %1348 = sub i64 %1346, %1347
  %1349 = trunc i64 %1348 to i32
  call void @qh_copyfilename(ptr noundef %1342, i32 noundef 500, ptr noundef %1343, i32 noundef %1349)
  %1350 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 157), align 8, !tbaa !120
  %1351 = icmp ne ptr %1350, null
  br i1 %1351, label %1356, label %1352

1352:                                             ; preds = %1339
  %1353 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1353, i32 noundef 7092, ptr noundef @.str.162)
  %1354 = load ptr, ptr %6, align 8, !tbaa !5
  %1355 = getelementptr inbounds i8, ptr %1354, i64 -2
  store ptr %1355, ptr %11, align 8, !tbaa !5
  br label %1367

1356:                                             ; preds = %1339
  %1357 = getelementptr inbounds [500 x i8], ptr %18, i64 0, i64 0
  %1358 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 157), align 8, !tbaa !120
  %1359 = call ptr @freopen(ptr noundef %1357, ptr noundef @.str.163, ptr noundef %1358)
  %1360 = icmp ne ptr %1359, null
  br i1 %1360, label %1364, label %1361

1361:                                             ; preds = %1356
  %1362 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %1363 = getelementptr inbounds [500 x i8], ptr %18, i64 0, i64 0
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1362, i32 noundef 6044, ptr noundef @.str.164, ptr noundef %1363)
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null)
  br label %1366

1364:                                             ; preds = %1356
  call void @qh_option(ptr noundef @.str.165, ptr noundef null, ptr noundef null)
  %1365 = getelementptr inbounds [500 x i8], ptr %18, i64 0, i64 0
  call void @qh_option(ptr noundef %1365, ptr noundef null, ptr noundef null)
  br label %1366

1366:                                             ; preds = %1364, %1361
  br label %1367

1367:                                             ; preds = %1366, %1352
  %1368 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %1368, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 500, ptr %18) #7
  br label %1575

1369:                                             ; preds = %1215
  %1370 = call ptr @__ctype_b_loc() #9
  %1371 = load ptr, ptr %1370, align 8, !tbaa !5
  %1372 = load ptr, ptr %6, align 8, !tbaa !5
  %1373 = load i8, ptr %1372, align 1, !tbaa !16
  %1374 = sext i8 %1373 to i32
  %1375 = sext i32 %1374 to i64
  %1376 = getelementptr inbounds i16, ptr %1371, i64 %1375
  %1377 = load i16, ptr %1376, align 2, !tbaa !17
  %1378 = zext i16 %1377 to i32
  %1379 = and i32 %1378, 2048
  %1380 = icmp ne i32 %1379, 0
  br i1 %1380, label %1385, label %1381

1381:                                             ; preds = %1369
  %1382 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1382, i32 noundef 7093, ptr noundef @.str.166)
  %1383 = load ptr, ptr %6, align 8, !tbaa !5
  %1384 = getelementptr inbounds i8, ptr %1383, i64 -2
  store ptr %1384, ptr %11, align 8, !tbaa !5
  br label %1390

1385:                                             ; preds = %1369
  %1386 = load ptr, ptr %6, align 8, !tbaa !5
  %1387 = call i32 @qh_strtol(ptr noundef %1386, ptr noundef %7)
  store i32 %1387, ptr %4, align 4, !tbaa !9
  %1388 = load i32, ptr %4, align 4, !tbaa !9
  %1389 = add nsw i32 %1388, 1
  store i32 %1389, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 87), align 4, !tbaa !128
  call void @qh_option(ptr noundef @.str.167, ptr noundef %4, ptr noundef null)
  br label %1390

1390:                                             ; preds = %1385, %1381
  %1391 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %1391, ptr %6, align 8, !tbaa !5
  br label %1575

1392:                                             ; preds = %1215
  %1393 = load ptr, ptr %6, align 8, !tbaa !5
  %1394 = load i8, ptr %1393, align 1, !tbaa !16
  %1395 = sext i8 %1394 to i32
  %1396 = icmp eq i32 %1395, 45
  br i1 %1396, label %1397, label %1439

1397:                                             ; preds = %1392
  %1398 = load ptr, ptr %6, align 8, !tbaa !5
  %1399 = getelementptr inbounds i8, ptr %1398, i64 1
  %1400 = load i8, ptr %1399, align 1, !tbaa !16
  %1401 = sext i8 %1400 to i32
  %1402 = icmp eq i32 %1401, 49
  br i1 %1402, label %1403, label %1419

1403:                                             ; preds = %1397
  %1404 = call ptr @__ctype_b_loc() #9
  %1405 = load ptr, ptr %1404, align 8, !tbaa !5
  %1406 = load ptr, ptr %6, align 8, !tbaa !5
  %1407 = getelementptr inbounds i8, ptr %1406, i64 2
  %1408 = load i8, ptr %1407, align 1, !tbaa !16
  %1409 = sext i8 %1408 to i32
  %1410 = sext i32 %1409 to i64
  %1411 = getelementptr inbounds i16, ptr %1405, i64 %1410
  %1412 = load i16, ptr %1411, align 2, !tbaa !17
  %1413 = zext i16 %1412 to i32
  %1414 = and i32 %1413, 2048
  %1415 = icmp ne i32 %1414, 0
  br i1 %1415, label %1419, label %1416

1416:                                             ; preds = %1403
  %1417 = load ptr, ptr %6, align 8, !tbaa !5
  %1418 = getelementptr inbounds i8, ptr %1417, i64 2
  store ptr %1418, ptr %6, align 8, !tbaa !5
  store i32 -1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 94), align 8, !tbaa !129
  call void @qh_option(ptr noundef @.str.168, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 94), ptr noundef null)
  br label %1438

1419:                                             ; preds = %1403, %1397
  %1420 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1420, i32 noundef 7100, ptr noundef @.str.169)
  %1421 = load ptr, ptr %6, align 8, !tbaa !5
  %1422 = getelementptr inbounds i8, ptr %1421, i64 -2
  store ptr %1422, ptr %11, align 8, !tbaa !5
  br label %1423

1423:                                             ; preds = %1436, %1419
  %1424 = call ptr @__ctype_b_loc() #9
  %1425 = load ptr, ptr %1424, align 8, !tbaa !5
  %1426 = load ptr, ptr %6, align 8, !tbaa !5
  %1427 = getelementptr inbounds i8, ptr %1426, i32 1
  store ptr %1427, ptr %6, align 8, !tbaa !5
  %1428 = load i8, ptr %1427, align 1, !tbaa !16
  %1429 = sext i8 %1428 to i32
  %1430 = sext i32 %1429 to i64
  %1431 = getelementptr inbounds i16, ptr %1425, i64 %1430
  %1432 = load i16, ptr %1431, align 2, !tbaa !17
  %1433 = zext i16 %1432 to i32
  %1434 = and i32 %1433, 2048
  %1435 = icmp ne i32 %1434, 0
  br i1 %1435, label %1436, label %1437

1436:                                             ; preds = %1423
  br label %1423, !llvm.loop !130

1437:                                             ; preds = %1423
  br label %1438

1438:                                             ; preds = %1437, %1416
  br label %1459

1439:                                             ; preds = %1392
  %1440 = call ptr @__ctype_b_loc() #9
  %1441 = load ptr, ptr %1440, align 8, !tbaa !5
  %1442 = load ptr, ptr %6, align 8, !tbaa !5
  %1443 = load i8, ptr %1442, align 1, !tbaa !16
  %1444 = sext i8 %1443 to i32
  %1445 = sext i32 %1444 to i64
  %1446 = getelementptr inbounds i16, ptr %1441, i64 %1445
  %1447 = load i16, ptr %1446, align 2, !tbaa !17
  %1448 = zext i16 %1447 to i32
  %1449 = and i32 %1448, 2048
  %1450 = icmp ne i32 %1449, 0
  br i1 %1450, label %1455, label %1451

1451:                                             ; preds = %1439
  %1452 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1452, i32 noundef 7029, ptr noundef @.str.170)
  %1453 = load ptr, ptr %6, align 8, !tbaa !5
  %1454 = getelementptr inbounds i8, ptr %1453, i64 -2
  store ptr %1454, ptr %11, align 8, !tbaa !5
  br label %1458

1455:                                             ; preds = %1439
  %1456 = load ptr, ptr %6, align 8, !tbaa !5
  %1457 = call i32 @qh_strtol(ptr noundef %1456, ptr noundef %6)
  store i32 %1457, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 94), align 8, !tbaa !129
  call void @qh_option(ptr noundef @.str.168, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 94), ptr noundef null)
  br label %1458

1458:                                             ; preds = %1455, %1451
  br label %1459

1459:                                             ; preds = %1458, %1438
  br label %1575

1460:                                             ; preds = %1215
  %1461 = call ptr @__ctype_b_loc() #9
  %1462 = load ptr, ptr %1461, align 8, !tbaa !5
  %1463 = load ptr, ptr %6, align 8, !tbaa !5
  %1464 = load i8, ptr %1463, align 1, !tbaa !16
  %1465 = sext i8 %1464 to i32
  %1466 = sext i32 %1465 to i64
  %1467 = getelementptr inbounds i16, ptr %1462, i64 %1466
  %1468 = load i16, ptr %1467, align 2, !tbaa !17
  %1469 = zext i16 %1468 to i32
  %1470 = and i32 %1469, 2048
  %1471 = icmp ne i32 %1470, 0
  br i1 %1471, label %1476, label %1472

1472:                                             ; preds = %1460
  %1473 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1473, i32 noundef 7030, ptr noundef @.str.171)
  %1474 = load ptr, ptr %6, align 8, !tbaa !5
  %1475 = getelementptr inbounds i8, ptr %1474, i64 -2
  store ptr %1475, ptr %11, align 8, !tbaa !5
  br label %1479

1476:                                             ; preds = %1460
  %1477 = load ptr, ptr %6, align 8, !tbaa !5
  %1478 = call i32 @qh_strtol(ptr noundef %1477, ptr noundef %6)
  store i32 %1478, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 96), align 8, !tbaa !131
  call void @qh_option(ptr noundef @.str.172, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 96), ptr noundef null)
  br label %1479

1479:                                             ; preds = %1476, %1472
  br label %1575

1480:                                             ; preds = %1215
  %1481 = call ptr @__ctype_b_loc() #9
  %1482 = load ptr, ptr %1481, align 8, !tbaa !5
  %1483 = load ptr, ptr %6, align 8, !tbaa !5
  %1484 = load i8, ptr %1483, align 1, !tbaa !16
  %1485 = sext i8 %1484 to i32
  %1486 = sext i32 %1485 to i64
  %1487 = getelementptr inbounds i16, ptr %1482, i64 %1486
  %1488 = load i16, ptr %1487, align 2, !tbaa !17
  %1489 = zext i16 %1488 to i32
  %1490 = and i32 %1489, 2048
  %1491 = icmp ne i32 %1490, 0
  br i1 %1491, label %1496, label %1492

1492:                                             ; preds = %1480
  %1493 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1493, i32 noundef 7031, ptr noundef @.str.173)
  %1494 = load ptr, ptr %6, align 8, !tbaa !5
  %1495 = getelementptr inbounds i8, ptr %1494, i64 -2
  store ptr %1495, ptr %11, align 8, !tbaa !5
  br label %1499

1496:                                             ; preds = %1480
  %1497 = load ptr, ptr %6, align 8, !tbaa !5
  %1498 = call i32 @qh_strtol(ptr noundef %1497, ptr noundef %6)
  store i32 %1498, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 79), align 4, !tbaa !132
  call void @qh_option(ptr noundef @.str.174, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 79), ptr noundef null)
  br label %1499

1499:                                             ; preds = %1496, %1492
  br label %1575

1500:                                             ; preds = %1215
  %1501 = load ptr, ptr %6, align 8, !tbaa !5
  %1502 = call i32 @qh_strtol(ptr noundef %1501, ptr noundef %7)
  store i32 %1502, ptr %4, align 4, !tbaa !9
  %1503 = load ptr, ptr %6, align 8, !tbaa !5
  %1504 = load ptr, ptr %7, align 8, !tbaa !5
  %1505 = icmp eq ptr %1503, %1504
  br i1 %1505, label %1506, label %1510

1506:                                             ; preds = %1500
  %1507 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1507, i32 noundef 7032, ptr noundef @.str.175)
  %1508 = load ptr, ptr %6, align 8, !tbaa !5
  %1509 = getelementptr inbounds i8, ptr %1508, i64 -2
  store ptr %1509, ptr %11, align 8, !tbaa !5
  br label %1520

1510:                                             ; preds = %1500
  %1511 = load i32, ptr %4, align 4, !tbaa !9
  %1512 = icmp slt i32 %1511, 0
  br i1 %1512, label %1513, label %1516

1513:                                             ; preds = %1510
  %1514 = load i32, ptr %4, align 4, !tbaa !9
  %1515 = sub nsw i32 %1514, 1
  store i32 %1515, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 89), align 4, !tbaa !133
  call void @qh_option(ptr noundef @.str.176, ptr noundef %4, ptr noundef null)
  br label %1519

1516:                                             ; preds = %1510
  %1517 = load i32, ptr %4, align 4, !tbaa !9
  %1518 = add nsw i32 %1517, 1
  store i32 %1518, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 89), align 4, !tbaa !133
  call void @qh_option(ptr noundef @.str.177, ptr noundef %4, ptr noundef null)
  br label %1519

1519:                                             ; preds = %1516, %1513
  br label %1520

1520:                                             ; preds = %1519, %1506
  %1521 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %1521, ptr %6, align 8, !tbaa !5
  br label %1575

1522:                                             ; preds = %1215
  %1523 = call ptr @__ctype_b_loc() #9
  %1524 = load ptr, ptr %1523, align 8, !tbaa !5
  %1525 = load ptr, ptr %6, align 8, !tbaa !5
  %1526 = load i8, ptr %1525, align 1, !tbaa !16
  %1527 = sext i8 %1526 to i32
  %1528 = sext i32 %1527 to i64
  %1529 = getelementptr inbounds i16, ptr %1524, i64 %1528
  %1530 = load i16, ptr %1529, align 2, !tbaa !17
  %1531 = zext i16 %1530 to i32
  %1532 = and i32 %1531, 2048
  %1533 = icmp ne i32 %1532, 0
  br i1 %1533, label %1538, label %1534

1534:                                             ; preds = %1522
  %1535 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1535, i32 noundef 7033, ptr noundef @.str.178)
  %1536 = load ptr, ptr %6, align 8, !tbaa !5
  %1537 = getelementptr inbounds i8, ptr %1536, i64 -2
  store ptr %1537, ptr %11, align 8, !tbaa !5
  br label %1541

1538:                                             ; preds = %1522
  %1539 = load ptr, ptr %6, align 8, !tbaa !5
  %1540 = call double @qh_strtod(ptr noundef %1539, ptr noundef %6)
  store double %1540, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 95), align 8, !tbaa !134
  call void @qh_option(ptr noundef @.str.179, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 95))
  br label %1541

1541:                                             ; preds = %1538, %1534
  br label %1575

1542:                                             ; preds = %1215
  %1543 = load ptr, ptr %6, align 8, !tbaa !5
  %1544 = getelementptr inbounds i8, ptr %1543, i32 -1
  store ptr %1544, ptr %6, align 8, !tbaa !5
  %1545 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %1546 = load ptr, ptr %6, align 8, !tbaa !5
  %1547 = getelementptr inbounds i8, ptr %1546, i64 0
  %1548 = load i8, ptr %1547, align 1, !tbaa !16
  %1549 = sext i8 %1548 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1545, i32 noundef 7034, ptr noundef @.str.180, i32 noundef %1549)
  %1550 = load ptr, ptr %6, align 8, !tbaa !5
  %1551 = getelementptr inbounds i8, ptr %1550, i64 -2
  store ptr %1551, ptr %11, align 8, !tbaa !5
  br label %1552

1552:                                             ; preds = %1573, %1542
  %1553 = load ptr, ptr %6, align 8, !tbaa !5
  %1554 = getelementptr inbounds i8, ptr %1553, i32 1
  store ptr %1554, ptr %6, align 8, !tbaa !5
  %1555 = load i8, ptr %1554, align 1, !tbaa !16
  %1556 = sext i8 %1555 to i32
  %1557 = icmp ne i32 %1556, 0
  br i1 %1557, label %1558, label %1571

1558:                                             ; preds = %1552
  %1559 = call ptr @__ctype_b_loc() #9
  %1560 = load ptr, ptr %1559, align 8, !tbaa !5
  %1561 = load ptr, ptr %6, align 8, !tbaa !5
  %1562 = load i8, ptr %1561, align 1, !tbaa !16
  %1563 = sext i8 %1562 to i32
  %1564 = sext i32 %1563 to i64
  %1565 = getelementptr inbounds i16, ptr %1560, i64 %1564
  %1566 = load i16, ptr %1565, align 2, !tbaa !17
  %1567 = zext i16 %1566 to i32
  %1568 = and i32 %1567, 8192
  %1569 = icmp ne i32 %1568, 0
  %1570 = xor i1 %1569, true
  br label %1571

1571:                                             ; preds = %1558, %1552
  %1572 = phi i1 [ false, %1552 ], [ %1570, %1558 ]
  br i1 %1572, label %1573, label %1574

1573:                                             ; preds = %1571
  br label %1552, !llvm.loop !135

1574:                                             ; preds = %1571
  br label %1575

1575:                                             ; preds = %1574, %1541, %1520, %1499, %1479, %1459, %1390, %1367, %1322, %1284, %1262, %1240, %1224, %1223, %1222, %1221, %1220
  br label %1576

1576:                                             ; preds = %1575, %1212
  br label %1175, !llvm.loop !136

1577:                                             ; preds = %1193
  br label %1590

1578:                                             ; preds = %105
  %1579 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %1580 = load ptr, ptr %6, align 8, !tbaa !5
  %1581 = getelementptr inbounds i8, ptr %1580, i64 -1
  %1582 = load i8, ptr %1581, align 1, !tbaa !16
  %1583 = sext i8 %1582 to i32
  %1584 = load ptr, ptr %6, align 8, !tbaa !5
  %1585 = getelementptr inbounds i8, ptr %1584, i64 -1
  %1586 = load i8, ptr %1585, align 1, !tbaa !16
  %1587 = sext i8 %1586 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1579, i32 noundef 7094, ptr noundef @.str.181, i32 noundef %1583, i32 noundef %1587)
  %1588 = load ptr, ptr %6, align 8, !tbaa !5
  %1589 = getelementptr inbounds i8, ptr %1588, i64 -2
  store ptr %1589, ptr %11, align 8, !tbaa !5
  br label %1590

1590:                                             ; preds = %1578, %1577, %1173, %734, %587, %488, %398, %368, %343, %318, %298, %229, %199, %159, %119, %118, %117, %116, %115, %114, %113, %112, %111
  %1591 = load ptr, ptr %6, align 8, !tbaa !5
  %1592 = getelementptr inbounds i8, ptr %1591, i64 -1
  %1593 = load ptr, ptr %8, align 8, !tbaa !5
  %1594 = icmp eq ptr %1592, %1593
  br i1 %1594, label %1595, label %1649

1595:                                             ; preds = %1590
  %1596 = load ptr, ptr %6, align 8, !tbaa !5
  %1597 = load i8, ptr %1596, align 1, !tbaa !16
  %1598 = sext i8 %1597 to i32
  %1599 = icmp ne i32 %1598, 0
  br i1 %1599, label %1600, label %1649

1600:                                             ; preds = %1595
  %1601 = call ptr @__ctype_b_loc() #9
  %1602 = load ptr, ptr %1601, align 8, !tbaa !5
  %1603 = load ptr, ptr %6, align 8, !tbaa !5
  %1604 = load i8, ptr %1603, align 1, !tbaa !16
  %1605 = sext i8 %1604 to i32
  %1606 = sext i32 %1605 to i64
  %1607 = getelementptr inbounds i16, ptr %1602, i64 %1606
  %1608 = load i16, ptr %1607, align 2, !tbaa !17
  %1609 = zext i16 %1608 to i32
  %1610 = and i32 %1609, 8192
  %1611 = icmp ne i32 %1610, 0
  br i1 %1611, label %1649, label %1612

1612:                                             ; preds = %1600
  %1613 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %1614 = load ptr, ptr %8, align 8, !tbaa !5
  %1615 = load i8, ptr %1614, align 1, !tbaa !16
  %1616 = sext i8 %1615 to i32
  %1617 = load ptr, ptr %8, align 8, !tbaa !5
  %1618 = load i8, ptr %1617, align 1, !tbaa !16
  %1619 = sext i8 %1618 to i32
  %1620 = load ptr, ptr %8, align 8, !tbaa !5
  %1621 = load i8, ptr %1620, align 1, !tbaa !16
  %1622 = sext i8 %1621 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1613, i32 noundef 7036, ptr noundef @.str.182, i32 noundef %1616, i32 noundef %1619, i32 noundef %1622)
  %1623 = load ptr, ptr %6, align 8, !tbaa !5
  %1624 = getelementptr inbounds i8, ptr %1623, i64 -1
  store ptr %1624, ptr %11, align 8, !tbaa !5
  br label %1625

1625:                                             ; preds = %1645, %1612
  %1626 = load ptr, ptr %6, align 8, !tbaa !5
  %1627 = load i8, ptr %1626, align 1, !tbaa !16
  %1628 = sext i8 %1627 to i32
  %1629 = icmp ne i32 %1628, 0
  br i1 %1629, label %1630, label %1643

1630:                                             ; preds = %1625
  %1631 = call ptr @__ctype_b_loc() #9
  %1632 = load ptr, ptr %1631, align 8, !tbaa !5
  %1633 = load ptr, ptr %6, align 8, !tbaa !5
  %1634 = load i8, ptr %1633, align 1, !tbaa !16
  %1635 = sext i8 %1634 to i32
  %1636 = sext i32 %1635 to i64
  %1637 = getelementptr inbounds i16, ptr %1632, i64 %1636
  %1638 = load i16, ptr %1637, align 2, !tbaa !17
  %1639 = zext i16 %1638 to i32
  %1640 = and i32 %1639, 8192
  %1641 = icmp ne i32 %1640, 0
  %1642 = xor i1 %1641, true
  br label %1643

1643:                                             ; preds = %1630, %1625
  %1644 = phi i1 [ false, %1625 ], [ %1642, %1630 ]
  br i1 %1644, label %1645, label %1648

1645:                                             ; preds = %1643
  %1646 = load ptr, ptr %6, align 8, !tbaa !5
  %1647 = getelementptr inbounds i8, ptr %1646, i32 1
  store ptr %1647, ptr %6, align 8, !tbaa !5
  br label %1625, !llvm.loop !137

1648:                                             ; preds = %1643
  br label %1649

1649:                                             ; preds = %1648, %1600, %1595, %1590
  br label %65, !llvm.loop !138

1650:                                             ; preds = %104, %65
  %1651 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 88), align 8, !tbaa !123
  %1652 = icmp ne i32 %1651, 0
  br i1 %1652, label %1653, label %1659

1653:                                             ; preds = %1650
  %1654 = load double, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 197), align 8, !tbaa !108
  %1655 = fcmp olt double %1654, 0x7FDFFFFFFFFFFFFF
  br i1 %1655, label %1656, label %1659

1656:                                             ; preds = %1653
  %1657 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1657, i32 noundef 7078, ptr noundef @.str.183)
  %1658 = load ptr, ptr %2, align 8, !tbaa !5
  store ptr %1658, ptr %11, align 8, !tbaa !5
  br label %1659

1659:                                             ; preds = %1656, %1653, %1650
  %1660 = load i32, ptr %12, align 4, !tbaa !9
  %1661 = icmp ne i32 %1660, 0
  br i1 %1661, label %1662, label %1671

1662:                                             ; preds = %1659
  %1663 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 21), align 8, !tbaa !65
  %1664 = icmp ne i32 %1663, 0
  br i1 %1664, label %1671, label %1665

1665:                                             ; preds = %1662
  %1666 = load i32, ptr getelementptr inbounds ([29 x i32], ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 64), i64 0, i64 1), align 4, !tbaa !9
  %1667 = icmp ne i32 %1666, 0
  br i1 %1667, label %1668, label %1671

1668:                                             ; preds = %1665
  %1669 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1669, i32 noundef 7037, ptr noundef @.str.184)
  %1670 = load ptr, ptr %2, align 8, !tbaa !5
  store ptr %1670, ptr %11, align 8, !tbaa !5
  br label %1671

1671:                                             ; preds = %1668, %1665, %1662, %1659
  %1672 = load ptr, ptr %11, align 8, !tbaa !5
  %1673 = icmp ne ptr %1672, null
  br i1 %1673, label %1674, label %1686

1674:                                             ; preds = %1671
  %1675 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 2), align 8, !tbaa !111
  %1676 = icmp ne i32 %1675, 0
  br i1 %1676, label %1686, label %1677

1677:                                             ; preds = %1674
  %1678 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  %1679 = load ptr, ptr %2, align 8, !tbaa !5
  %1680 = load ptr, ptr %11, align 8, !tbaa !5
  %1681 = load ptr, ptr %2, align 8, !tbaa !5
  %1682 = ptrtoint ptr %1680 to i64
  %1683 = ptrtoint ptr %1681 to i64
  %1684 = sub i64 %1682, %1683
  %1685 = trunc i64 %1684 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1678, i32 noundef 6035, ptr noundef @.str.185, ptr noundef %1679, i32 noundef %1685)
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null)
  br label %1686

1686:                                             ; preds = %1677, %1674, %1671
  %1687 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 29), align 8, !tbaa !76
  %1688 = icmp sge i32 %1687, 4
  br i1 %1688, label %1689, label %1691

1689:                                             ; preds = %1686
  %1690 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 158), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1690, i32 noundef 4093, ptr noundef @.str.186)
  br label %1691

1691:                                             ; preds = %1689, %1686
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 1, 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 8, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #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) #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, 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, !6, i64 2984, !10, i64 2992}
!13 = !{!"double", !7, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!12, !6, i64 2424}
!16 = !{!7, !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"short", !7, i64 0}
!19 = distinct !{!19, !20}
!20 = !{!"llvm.loop.mustprogress"}
!21 = distinct !{!21, !20}
!22 = !{!12, !10, i64 80}
!23 = !{!12, !10, i64 428}
!24 = !{!12, !10, i64 588}
!25 = !{!12, !13, i64 64}
!26 = !{!12, !10, i64 252}
!27 = !{!12, !13, i64 72}
!28 = !{!12, !10, i64 248}
!29 = !{!12, !10, i64 188}
!30 = !{!12, !13, i64 192}
!31 = !{!12, !13, i64 200}
!32 = !{!12, !13, i64 1784}
!33 = !{!12, !10, i64 500}
!34 = !{!12, !10, i64 128}
!35 = distinct !{!35, !20}
!36 = !{!12, !6, i64 608}
!37 = !{!12, !13, i64 448}
!38 = !{!12, !10, i64 444}
!39 = !{!12, !13, i64 216}
!40 = !{!12, !13, i64 168}
!41 = !{!12, !13, i64 24}
!42 = !{!12, !10, i64 20}
!43 = !{!12, !10, i64 624}
!44 = !{!12, !10, i64 48}
!45 = !{!12, !10, i64 52}
!46 = !{!12, !10, i64 288}
!47 = distinct !{!47, !20}
!48 = distinct !{!48, !20}
!49 = !{!12, !10, i64 268}
!50 = !{!12, !10, i64 256}
!51 = !{!12, !10, i64 84}
!52 = !{!12, !10, i64 276}
!53 = !{!12, !10, i64 284}
!54 = !{!12, !10, i64 292}
!55 = !{!12, !10, i64 260}
!56 = !{!12, !10, i64 416}
!57 = !{!12, !10, i64 432}
!58 = !{!12, !10, i64 420}
!59 = !{!12, !10, i64 88}
!60 = distinct !{!60, !20}
!61 = distinct !{!61, !20}
!62 = !{!13, !13, i64 0}
!63 = !{!12, !10, i64 272}
!64 = !{!12, !10, i64 280}
!65 = !{!12, !10, i64 96}
!66 = !{!12, !10, i64 296}
!67 = !{!12, !10, i64 140}
!68 = !{!12, !13, i64 160}
!69 = !{!12, !10, i64 152}
!70 = distinct !{!70, !20}
!71 = distinct !{!71, !20}
!72 = !{!12, !10, i64 4}
!73 = !{!12, !10, i64 492}
!74 = !{!12, !10, i64 496}
!75 = !{!12, !10, i64 440}
!76 = !{!12, !10, i64 136}
!77 = distinct !{!77, !20}
!78 = !{!12, !10, i64 144}
!79 = !{!12, !10, i64 44}
!80 = !{!12, !10, i64 236}
!81 = !{!12, !10, i64 148}
!82 = !{!12, !10, i64 240}
!83 = !{!12, !10, i64 472}
!84 = !{!12, !10, i64 0}
!85 = !{!12, !10, i64 564}
!86 = !{!12, !10, i64 528}
!87 = !{!12, !10, i64 572}
!88 = !{!12, !10, i64 532}
!89 = !{!12, !10, i64 180}
!90 = !{!12, !10, i64 36}
!91 = !{!12, !10, i64 232}
!92 = !{!12, !10, i64 16}
!93 = !{!12, !10, i64 224}
!94 = !{!12, !10, i64 568}
!95 = !{!12, !10, i64 12}
!96 = !{!12, !10, i64 208}
!97 = !{!12, !10, i64 56}
!98 = distinct !{!98, !20}
!99 = !{!12, !10, i64 184}
!100 = !{!12, !10, i64 212}
!101 = !{!12, !10, i64 40}
!102 = !{!12, !10, i64 504}
!103 = !{!12, !10, i64 508}
!104 = !{!12, !10, i64 584}
!105 = !{!12, !10, i64 228}
!106 = !{!12, !10, i64 244}
!107 = !{!12, !10, i64 100}
!108 = !{!12, !13, i64 2664}
!109 = !{!12, !10, i64 488}
!110 = !{!12, !10, i64 116}
!111 = !{!12, !10, i64 8}
!112 = distinct !{!112, !20}
!113 = distinct !{!113, !20}
!114 = !{!12, !10, i64 32}
!115 = !{!12, !10, i64 60}
!116 = !{!12, !10, i64 92}
!117 = !{!12, !10, i64 424}
!118 = !{!12, !10, i64 580}
!119 = !{!12, !10, i64 576}
!120 = !{!12, !6, i64 2416}
!121 = !{!122, !6, i64 80}
!122 = !{!"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}
!123 = !{!12, !10, i64 520}
!124 = !{!12, !10, i64 476}
!125 = !{!12, !10, i64 480}
!126 = distinct !{!126, !20}
!127 = distinct !{!127, !20}
!128 = !{!12, !10, i64 516}
!129 = !{!12, !10, i64 544}
!130 = distinct !{!130, !20}
!131 = !{!12, !10, i64 560}
!132 = !{!12, !10, i64 484}
!133 = !{!12, !10, i64 524}
!134 = !{!12, !13, i64 552}
!135 = distinct !{!135, !20}
!136 = distinct !{!136, !20}
!137 = distinct !{!137, !20}
!138 = distinct !{!138, !20}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.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, ptr, i32 }
%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 }

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

; Function Attrs: nounwind uwtable
declare dso_local void @qh_appendprint(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, i32 noundef, ptr noundef, ...) local_unnamed_addr #3

declare void @qh_errexit(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) 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) local_unnamed_addr #0 {
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca double, align 8
  %7 = alloca [500 x i8], align 16
  %8 = alloca [500 x i8], align 16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #7
  store ptr %0, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #7
  %9 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2720), align 8, !tbaa !9
  %.not = icmp eq i32 %9, 0
  br i1 %.not, label %12, label %10

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

12:                                               ; preds = %10, %1
  %13 = icmp ule ptr %0, getelementptr inbounds (i8, ptr @qh_qh, i64 676)
  %14 = icmp ugt ptr %0, getelementptr inbounds (i8, ptr @qh_qh, i64 932)
  %or.cond = select i1 %13, i1 true, i1 %14
  br i1 %or.cond, label %15, label %.critedge

15:                                               ; preds = %12
  %.not109 = icmp eq ptr %0, getelementptr inbounds (i8, ptr @qh_qh, i64 676)
  br i1 %.not109, label %20, label %16

16:                                               ; preds = %15
  store i8 0, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 676), align 4, !tbaa !15
  %17 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @qh_qh, i64 676)) #8
  %18 = sub i64 255, %17
  %19 = tail call ptr @strncat(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @qh_qh, i64 676), ptr noundef %0, i64 noundef %18) #7
  br label %20

20:                                               ; preds = %16, %15
  %21 = load i8, ptr %0, align 1, !tbaa !15
  %.not110232 = icmp eq i8 %21, 0
  br i1 %.not110232, label %.critedge3.thread._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %20
  %22 = tail call ptr @__ctype_b_loc() #9
  br label %23

23:                                               ; preds = %.lr.ph, %31
  %24 = phi i8 [ %21, %.lr.ph ], [ %33, %31 ]
  %25 = phi ptr [ %0, %.lr.ph ], [ %32, %31 ]
  %26 = load ptr, ptr %22, align 8, !tbaa !5
  %27 = sext i8 %24 to i64
  %28 = getelementptr inbounds i16, ptr %26, i64 %27
  %29 = load i16, ptr %28, align 2, !tbaa !16
  %30 = and i16 %29, 8192
  %.not111 = icmp eq i16 %30, 0
  br i1 %.not111, label %31, label %.preheader226.preheader

31:                                               ; preds = %23
  %32 = getelementptr inbounds i8, ptr %25, i64 1
  store ptr %32, ptr %4, align 8, !tbaa !5
  %33 = load i8, ptr %32, align 1, !tbaa !15
  %.not110 = icmp eq i8 %33, 0
  br i1 %.not110, label %.critedge3.thread._crit_edge, label %23, !llvm.loop !18

.critedge:                                        ; preds = %12
  %.pre = load i8, ptr %0, align 1, !tbaa !15
  %.not112287 = icmp eq i8 %.pre, 0
  br i1 %.not112287, label %.critedge3.thread._crit_edge, label %.preheader226.preheader

.preheader226.preheader:                          ; preds = %23, %.critedge
  %34 = phi ptr [ %0, %.critedge ], [ %25, %23 ]
  %35 = phi i8 [ %.pre, %.critedge ], [ %24, %23 ]
  %36 = tail call ptr @__ctype_b_loc() #9
  br label %.lr.ph236

.lr.ph236:                                        ; preds = %.critedge31, %.preheader226.preheader
  %37 = phi i8 [ %979, %.critedge31 ], [ %35, %.preheader226.preheader ]
  %.promoted234 = phi ptr [ %980, %.critedge31 ], [ %34, %.preheader226.preheader ]
  %.068289 = phi i32 [ %.169, %.critedge31 ], [ 0, %.preheader226.preheader ]
  %.070288 = phi ptr [ %.18, %.critedge31 ], [ null, %.preheader226.preheader ]
  br label %38

38:                                               ; preds = %.lr.ph236, %46
  %39 = phi i8 [ %37, %.lr.ph236 ], [ %48, %46 ]
  %40 = phi ptr [ %.promoted234, %.lr.ph236 ], [ %47, %46 ]
  %41 = load ptr, ptr %36, align 8, !tbaa !5
  %42 = sext i8 %39 to i64
  %43 = getelementptr inbounds i16, ptr %41, i64 %42
  %44 = load i16, ptr %43, align 2, !tbaa !16
  %45 = and i16 %44, 8192
  %.not114 = icmp eq i16 %45, 0
  br i1 %.not114, label %.critedge3, label %46

46:                                               ; preds = %38
  %47 = getelementptr inbounds i8, ptr %40, i64 1
  store ptr %47, ptr %4, align 8, !tbaa !5
  %48 = load i8, ptr %47, align 1, !tbaa !15
  %.not113 = icmp eq i8 %48, 0
  br i1 %.not113, label %.critedge3.thread._crit_edge.loopexit, label %38, !llvm.loop !20

.critedge3:                                       ; preds = %38
  %49 = icmp eq i8 %39, 45
  br i1 %49, label %.critedge3.thread, label %.critedge3.thread.thread329

.critedge3.thread:                                ; preds = %.critedge3
  %50 = getelementptr inbounds i8, ptr %40, i64 1
  store ptr %50, ptr %4, align 8, !tbaa !5
  %.pre313 = load i8, ptr %50, align 1, !tbaa !15
  %.not115 = icmp eq i8 %.pre313, 0
  br i1 %.not115, label %.critedge3.thread._crit_edge.loopexit, label %.critedge3.thread.thread329

.critedge3.thread.thread329:                      ; preds = %.critedge3, %.critedge3.thread
  %51 = phi ptr [ %50, %.critedge3.thread ], [ %40, %.critedge3 ]
  %52 = getelementptr inbounds i8, ptr %51, i64 1
  store ptr %52, ptr %4, align 8, !tbaa !5
  %53 = load i8, ptr %51, align 1, !tbaa !15
  switch i8 %53, label %945 [
    i8 100, label %62
    i8 102, label %63
    i8 105, label %64
    i8 109, label %65
    i8 110, label %66
    i8 111, label %67
    i8 112, label %68
    i8 115, label %69
    i8 118, label %70
    i8 65, label %71
    i8 67, label %90
    i8 69, label %109
    i8 72, label %127
    i8 82, label %166
    i8 86, label %180
    i8 85, label %194
    i8 87, label %208
    i8 70, label %.preheader218
    i8 71, label %282
    i8 80, label %.preheader220
    i8 81, label %.preheader222
    i8 84, label %.preheader224
  ]

.preheader224:                                    ; preds = %.critedge3.thread.thread329
  %54 = load i8, ptr %52, align 1, !tbaa !15
  %.not119243 = icmp eq i8 %54, 0
  br i1 %.not119243, label %.critedge5, label %.lr.ph245

.lr.ph245:                                        ; preds = %.preheader224
  %55 = tail call ptr @__ctype_b_loc() #9
  br label %692

.preheader222:                                    ; preds = %.critedge3.thread.thread329
  %56 = load i8, ptr %52, align 1, !tbaa !15
  %.not139253 = icmp eq i8 %56, 0
  br i1 %.not139253, label %.critedge5, label %.lr.ph256

.lr.ph256:                                        ; preds = %.preheader222
  %57 = tail call ptr @__ctype_b_loc() #9
  br label %430

.preheader220:                                    ; preds = %.critedge3.thread.thread329
  %58 = load i8, ptr %52, align 1, !tbaa !15
  %.not157260 = icmp eq i8 %58, 0
  br i1 %.not157260, label %.critedge5, label %.lr.ph262

.lr.ph262:                                        ; preds = %.preheader220
  %59 = tail call ptr @__ctype_b_loc() #9
  br label %346

.preheader218:                                    ; preds = %.critedge3.thread.thread329
  %60 = load i8, ptr %52, align 1, !tbaa !15
  %.not169273 = icmp eq i8 %60, 0
  br i1 %.not169273, label %.critedge5, label %.lr.ph275

.lr.ph275:                                        ; preds = %.preheader218
  %61 = tail call ptr @__ctype_b_loc() #9
  br label %226

62:                                               ; preds = %.critedge3.thread.thread329
  call void @qh_option(ptr noundef nonnull @.str.14, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 80), align 8, !tbaa !21
  br label %.critedge5

63:                                               ; preds = %.critedge3.thread.thread329
  call void @qh_option(ptr noundef nonnull @.str.15, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 5)
  br label %.critedge5

64:                                               ; preds = %.critedge3.thread.thread329
  call void @qh_option(ptr noundef nonnull @.str.16, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 14)
  br label %.critedge5

65:                                               ; preds = %.critedge3.thread.thread329
  call void @qh_option(ptr noundef nonnull @.str.17, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 15)
  br label %.critedge5

66:                                               ; preds = %.critedge3.thread.thread329
  call void @qh_option(ptr noundef nonnull @.str.18, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 11)
  br label %.critedge5

67:                                               ; preds = %.critedge3.thread.thread329
  call void @qh_option(ptr noundef nonnull @.str.19, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 17)
  br label %.critedge5

68:                                               ; preds = %.critedge3.thread.thread329
  call void @qh_option(ptr noundef nonnull @.str.20, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 21)
  br label %.critedge5

69:                                               ; preds = %.critedge3.thread.thread329
  call void @qh_option(ptr noundef nonnull @.str.21, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 428), align 4, !tbaa !22
  br label %.critedge5

70:                                               ; preds = %.critedge3.thread.thread329
  call void @qh_option(ptr noundef nonnull @.str.22, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 588), align 4, !tbaa !23
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 80), align 8, !tbaa !21
  br label %.critedge5

71:                                               ; preds = %.critedge3.thread.thread329
  %72 = tail call ptr @__ctype_b_loc() #9
  %73 = load ptr, ptr %72, align 8, !tbaa !5
  %74 = load i8, ptr %52, align 1, !tbaa !15
  %75 = sext i8 %74 to i64
  %76 = getelementptr inbounds i16, ptr %73, i64 %75
  %77 = load i16, ptr %76, align 2, !tbaa !16
  %.fr214 = freeze i16 %77
  %78 = and i16 %.fr214, 2048
  %.not187 = icmp ne i16 %78, 0
  %.off = add i8 %74, -45
  %switch = icmp ult i8 %.off, 2
  %or.cond206 = or i1 %switch, %.not187
  br i1 %or.cond206, label %83, label %79

79:                                               ; preds = %71
  %80 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %80, i32 noundef 7002, ptr noundef nonnull @.str.23) #7
  %81 = load ptr, ptr %4, align 8, !tbaa !5
  %82 = getelementptr inbounds i8, ptr %81, i64 -1
  br label %.critedge5

83:                                               ; preds = %71
  %84 = icmp eq i8 %74, 45
  %85 = call double @qh_strtod(ptr noundef nonnull %52, ptr noundef nonnull %4) #7
  br i1 %84, label %86, label %88

86:                                               ; preds = %83
  %87 = fneg double %85
  store double %87, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 64), align 8, !tbaa !24
  call void @qh_option(ptr noundef nonnull @.str.24, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 64))
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 252), align 4, !tbaa !25
  br label %89

88:                                               ; preds = %83
  store double %85, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 72), align 8, !tbaa !26
  call void @qh_option(ptr noundef nonnull @.str.25, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 72))
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 248), align 8, !tbaa !27
  br label %89

89:                                               ; preds = %88, %86
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 188), align 4, !tbaa !28
  br label %.critedge5

90:                                               ; preds = %.critedge3.thread.thread329
  %91 = tail call ptr @__ctype_b_loc() #9
  %92 = load ptr, ptr %91, align 8, !tbaa !5
  %93 = load i8, ptr %52, align 1, !tbaa !15
  %94 = sext i8 %93 to i64
  %95 = getelementptr inbounds i16, ptr %92, i64 %94
  %96 = load i16, ptr %95, align 2, !tbaa !16
  %.fr213 = freeze i16 %96
  %97 = and i16 %.fr213, 2048
  %.not184 = icmp ne i16 %97, 0
  %.off207 = add i8 %93, -45
  %switch208 = icmp ult i8 %.off207, 2
  %or.cond209 = or i1 %switch208, %.not184
  br i1 %or.cond209, label %102, label %98

98:                                               ; preds = %90
  %99 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %99, i32 noundef 7003, ptr noundef nonnull @.str.26) #7
  %100 = load ptr, ptr %4, align 8, !tbaa !5
  %101 = getelementptr inbounds i8, ptr %100, i64 -1
  br label %.critedge5

102:                                              ; preds = %90
  %103 = icmp eq i8 %93, 45
  %104 = call double @qh_strtod(ptr noundef nonnull %52, ptr noundef nonnull %4) #7
  br i1 %103, label %105, label %107

105:                                              ; preds = %102
  %106 = fneg double %104
  store double %106, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 192), align 8, !tbaa !29
  call void @qh_option(ptr noundef nonnull @.str.27, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 192))
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 252), align 4, !tbaa !25
  br label %108

107:                                              ; preds = %102
  store double %104, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 200), align 8, !tbaa !30
  call void @qh_option(ptr noundef nonnull @.str.28, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 200))
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 248), align 8, !tbaa !27
  br label %108

108:                                              ; preds = %107, %105
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 188), align 4, !tbaa !28
  br label %.critedge5

109:                                              ; preds = %.critedge3.thread.thread329
  %110 = load i8, ptr %52, align 1, !tbaa !15
  %111 = icmp eq i8 %110, 45
  br i1 %111, label %112, label %114

112:                                              ; preds = %109
  %113 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %113, i32 noundef 6363, ptr noundef nonnull @.str.29, ptr noundef nonnull %51) #7
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null) #7
  br label %.critedge5

114:                                              ; preds = %109
  %115 = tail call ptr @__ctype_b_loc() #9
  %116 = load ptr, ptr %115, align 8, !tbaa !5
  %117 = sext i8 %110 to i64
  %118 = getelementptr inbounds i16, ptr %116, i64 %117
  %119 = load i16, ptr %118, align 2, !tbaa !16
  %120 = and i16 %119, 2048
  %.not183 = icmp eq i16 %120, 0
  br i1 %.not183, label %121, label %125

121:                                              ; preds = %114
  %122 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %122, i32 noundef 7005, ptr noundef nonnull @.str.30) #7
  %123 = load ptr, ptr %4, align 8, !tbaa !5
  %124 = getelementptr inbounds i8, ptr %123, i64 -1
  br label %.critedge5

125:                                              ; preds = %114
  %126 = call double @qh_strtod(ptr noundef nonnull %52, ptr noundef nonnull %4) #7
  store double %126, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 1784), align 8, !tbaa !31
  call void @qh_option(ptr noundef nonnull @.str.31, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 1784))
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 500), align 4, !tbaa !32
  br label %.critedge5

127:                                              ; preds = %.critedge3.thread.thread329
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 128), align 8, !tbaa !33
  %128 = call double @qh_strtod(ptr noundef nonnull %52, ptr noundef nonnull %5) #7
  %129 = load ptr, ptr %5, align 8, !tbaa !5
  %130 = load ptr, ptr %4, align 8, !tbaa !5
  %131 = icmp ugt ptr %129, %130
  br i1 %131, label %.lr.ph280, label %._crit_edge281

.lr.ph280:                                        ; preds = %127, %147
  %132 = phi ptr [ %150, %147 ], [ %129, %127 ]
  %133 = load i8, ptr %132, align 1, !tbaa !15
  %.not181 = icmp eq i8 %133, 0
  br i1 %.not181, label %147, label %134

134:                                              ; preds = %.lr.ph280
  %135 = tail call ptr @__ctype_b_loc() #9
  %136 = load ptr, ptr %135, align 8, !tbaa !5
  %137 = sext i8 %133 to i64
  %138 = getelementptr inbounds i16, ptr %136, i64 %137
  %139 = load i16, ptr %138, align 2, !tbaa !16
  %140 = and i16 %139, 8192
  %.not182 = icmp eq i16 %140, 0
  br i1 %.not182, label %141, label %147

141:                                              ; preds = %134
  %142 = icmp eq i8 %133, 44
  br i1 %142, label %143, label %145

143:                                              ; preds = %141
  %144 = getelementptr inbounds i8, ptr %132, i64 1
  store ptr %144, ptr %5, align 8, !tbaa !5
  br label %147

145:                                              ; preds = %141
  %146 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %146, i32 noundef 6364, ptr noundef nonnull @.str.32, ptr noundef nonnull %51) #7
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null) #7
  %.pre318 = load ptr, ptr %5, align 8, !tbaa !5
  br label %147

147:                                              ; preds = %143, %145, %134, %.lr.ph280
  %148 = phi ptr [ %144, %143 ], [ %.pre318, %145 ], [ %132, %134 ], [ %132, %.lr.ph280 ]
  store ptr %148, ptr %4, align 8, !tbaa !5
  %149 = call double @qh_strtod(ptr noundef %148, ptr noundef nonnull %5) #7
  %150 = load ptr, ptr %5, align 8, !tbaa !5
  %151 = load ptr, ptr %4, align 8, !tbaa !5
  %152 = icmp ugt ptr %150, %151
  br i1 %152, label %.lr.ph280, label %._crit_edge281, !llvm.loop !34

._crit_edge281:                                   ; preds = %147, %127
  %.lcssa231 = phi ptr [ %129, %127 ], [ %150, %147 ]
  %153 = icmp ult ptr %52, %.lcssa231
  br i1 %153, label %154, label %165

154:                                              ; preds = %._crit_edge281
  %155 = ptrtoint ptr %.lcssa231 to i64
  %156 = ptrtoint ptr %52 to i64
  %reass.sub = sub i64 %155, %156
  %157 = add i64 %reass.sub, 1
  %158 = call noalias ptr @calloc(i64 noundef %157, i64 noundef 1) #10
  store ptr %158, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 608), align 8, !tbaa !35
  %.not180 = icmp eq ptr %158, null
  br i1 %.not180, label %159, label %161

159:                                              ; preds = %154
  %160 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %160, i32 noundef 6034, ptr noundef nonnull @.str.33) #7
  call void @qh_errexit(i32 noundef 4, ptr noundef null, ptr noundef null) #7
  %.pre319 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 608), align 8, !tbaa !35
  %.pre320 = load ptr, ptr %5, align 8, !tbaa !5
  %.pre322 = ptrtoint ptr %.pre320 to i64
  %.pre323 = sub i64 %.pre322, %156
  br label %161

161:                                              ; preds = %159, %154
  %.pre-phi324 = phi i64 [ %.pre323, %159 ], [ %reass.sub, %154 ]
  %162 = phi ptr [ %.pre319, %159 ], [ %158, %154 ]
  %163 = call ptr @strncpy(ptr noundef %162, ptr noundef nonnull %52, i64 noundef %.pre-phi324) #7
  call void @qh_option(ptr noundef nonnull @.str.34, ptr noundef null, ptr noundef null)
  %164 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 608), align 8, !tbaa !35
  call void @qh_option(ptr noundef %164, ptr noundef null, ptr noundef null)
  br label %.critedge5

165:                                              ; preds = %._crit_edge281
  call void @qh_option(ptr noundef nonnull @.str.35, ptr noundef null, ptr noundef null)
  br label %.critedge5

166:                                              ; preds = %.critedge3.thread.thread329
  %167 = tail call ptr @__ctype_b_loc() #9
  %168 = load ptr, ptr %167, align 8, !tbaa !5
  %169 = load i8, ptr %52, align 1, !tbaa !15
  %170 = sext i8 %169 to i64
  %171 = getelementptr inbounds i16, ptr %168, i64 %170
  %172 = load i16, ptr %171, align 2, !tbaa !16
  %173 = and i16 %172, 2048
  %.not179 = icmp eq i16 %173, 0
  br i1 %.not179, label %174, label %178

174:                                              ; preds = %166
  %175 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %175, i32 noundef 7007, ptr noundef nonnull @.str.36) #7
  %176 = load ptr, ptr %4, align 8, !tbaa !5
  %177 = getelementptr inbounds i8, ptr %176, i64 -1
  br label %.critedge5

178:                                              ; preds = %166
  %179 = call double @qh_strtod(ptr noundef nonnull %52, ptr noundef nonnull %4) #7
  store double %179, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 448), align 8, !tbaa !36
  call void @qh_option(ptr noundef nonnull @.str.37, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 448))
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 444), align 4, !tbaa !37
  br label %.critedge5

180:                                              ; preds = %.critedge3.thread.thread329
  %181 = tail call ptr @__ctype_b_loc() #9
  %182 = load ptr, ptr %181, align 8, !tbaa !5
  %183 = load i8, ptr %52, align 1, !tbaa !15
  %184 = sext i8 %183 to i64
  %185 = getelementptr inbounds i16, ptr %182, i64 %184
  %186 = load i16, ptr %185, align 2, !tbaa !16
  %187 = and i16 %186, 2048
  %.not177 = icmp ne i16 %187, 0
  %.not178 = icmp eq i8 %183, 45
  %or.cond198 = or i1 %.not178, %.not177
  br i1 %or.cond198, label %192, label %188

188:                                              ; preds = %180
  %189 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %189, i32 noundef 7008, ptr noundef nonnull @.str.38) #7
  %190 = load ptr, ptr %4, align 8, !tbaa !5
  %191 = getelementptr inbounds i8, ptr %190, i64 -1
  br label %.critedge5

192:                                              ; preds = %180
  %193 = call double @qh_strtod(ptr noundef nonnull %52, ptr noundef nonnull %4) #7
  store double %193, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 216), align 8, !tbaa !38
  call void @qh_option(ptr noundef nonnull @.str.39, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 216))
  br label %.critedge5

194:                                              ; preds = %.critedge3.thread.thread329
  %195 = tail call ptr @__ctype_b_loc() #9
  %196 = load ptr, ptr %195, align 8, !tbaa !5
  %197 = load i8, ptr %52, align 1, !tbaa !15
  %198 = sext i8 %197 to i64
  %199 = getelementptr inbounds i16, ptr %196, i64 %198
  %200 = load i16, ptr %199, align 2, !tbaa !16
  %201 = and i16 %200, 2048
  %.not175 = icmp ne i16 %201, 0
  %.not176 = icmp eq i8 %197, 45
  %or.cond199 = or i1 %.not176, %.not175
  br i1 %or.cond199, label %206, label %202

202:                                              ; preds = %194
  %203 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %203, i32 noundef 7009, ptr noundef nonnull @.str.40) #7
  %204 = load ptr, ptr %4, align 8, !tbaa !5
  %205 = getelementptr inbounds i8, ptr %204, i64 -1
  br label %.critedge5

206:                                              ; preds = %194
  %207 = call double @qh_strtod(ptr noundef nonnull %52, ptr noundef nonnull %4) #7
  store double %207, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 168), align 8, !tbaa !39
  call void @qh_option(ptr noundef nonnull @.str.41, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 168))
  br label %.critedge5

208:                                              ; preds = %.critedge3.thread.thread329
  %209 = load i8, ptr %52, align 1, !tbaa !15
  %210 = icmp eq i8 %209, 45
  br i1 %210, label %211, label %213

211:                                              ; preds = %208
  %212 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %212, i32 noundef 6365, ptr noundef nonnull @.str.42, ptr noundef nonnull %51) #7
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null) #7
  br label %.critedge5

213:                                              ; preds = %208
  %214 = tail call ptr @__ctype_b_loc() #9
  %215 = load ptr, ptr %214, align 8, !tbaa !5
  %216 = sext i8 %209 to i64
  %217 = getelementptr inbounds i16, ptr %215, i64 %216
  %218 = load i16, ptr %217, align 2, !tbaa !16
  %219 = and i16 %218, 2048
  %.not174 = icmp eq i16 %219, 0
  br i1 %.not174, label %220, label %224

220:                                              ; preds = %213
  %221 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %221, i32 noundef 7011, ptr noundef nonnull @.str.43) #7
  %222 = load ptr, ptr %4, align 8, !tbaa !5
  %223 = getelementptr inbounds i8, ptr %222, i64 -1
  br label %.critedge5

224:                                              ; preds = %213
  %225 = call double @qh_strtod(ptr noundef nonnull %52, ptr noundef nonnull %4) #7
  store double %225, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 24), align 8, !tbaa !40
  call void @qh_option(ptr noundef nonnull @.str.44, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 24))
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 20), align 4, !tbaa !41
  br label %.critedge5

226:                                              ; preds = %.lr.ph275, %.critedge7
  %227 = phi i8 [ %60, %.lr.ph275 ], [ %281, %.critedge7 ]
  %228 = phi ptr [ %52, %.lr.ph275 ], [ %280, %.critedge7 ]
  %.171274 = phi ptr [ %.070288, %.lr.ph275 ], [ %.272, %.critedge7 ]
  %229 = load ptr, ptr %61, align 8, !tbaa !5
  %230 = sext i8 %227 to i64
  %231 = getelementptr inbounds i16, ptr %229, i64 %230
  %232 = load i16, ptr %231, align 2, !tbaa !16
  %233 = and i16 %232, 8192
  %.not170 = icmp eq i16 %233, 0
  br i1 %.not170, label %234, label %.critedge5

234:                                              ; preds = %226
  %235 = getelementptr inbounds i8, ptr %228, i64 1
  store ptr %235, ptr %4, align 8, !tbaa !5
  %236 = load i8, ptr %228, align 1, !tbaa !15
  switch i8 %236, label %264 [
    i8 97, label %237
    i8 65, label %238
    i8 99, label %239
    i8 67, label %240
    i8 100, label %241
    i8 68, label %242
    i8 70, label %243
    i8 105, label %244
    i8 73, label %245
    i8 109, label %246
    i8 77, label %247
    i8 110, label %248
    i8 78, label %249
    i8 111, label %250
    i8 79, label %251
    i8 112, label %255
    i8 80, label %256
    i8 81, label %257
    i8 115, label %258
    i8 83, label %259
    i8 116, label %260
    i8 118, label %261
    i8 86, label %262
    i8 120, label %263
  ]

237:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.45, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 1)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 624), align 8, !tbaa !42
  br label %.critedge7

238:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.46, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 624), align 8, !tbaa !42
  br label %.critedge7

239:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.47, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 3)
  br label %.critedge7

240:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.48, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 4)
  br label %.critedge7

241:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.49, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 48), align 8, !tbaa !43
  br label %.critedge7

242:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.50, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 52), align 4, !tbaa !44
  br label %.critedge7

243:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.51, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 6)
  br label %.critedge7

244:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.52, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 9)
  br label %.critedge7

245:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.53, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 8)
  br label %.critedge7

246:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.54, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 16)
  br label %.critedge7

247:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.55, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 13)
  br label %.critedge7

248:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.56, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 10)
  br label %.critedge7

249:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.57, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 27)
  br label %.critedge7

250:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.58, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 12)
  br label %.critedge7

251:                                              ; preds = %234
  %252 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 288), align 8, !tbaa !45
  %.not171 = icmp eq i32 %252, 0
  br i1 %.not171, label %254, label %253

253:                                              ; preds = %251
  call void @qh_option(ptr noundef nonnull @.str.59, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 18)
  br label %.critedge7

254:                                              ; preds = %251
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 288), align 8, !tbaa !45
  br label %.critedge7

255:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.60, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 19)
  br label %.critedge7

256:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.61, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 20)
  br label %.critedge7

257:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.62, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 22)
  br label %.critedge7

258:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.63, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 24)
  br label %.critedge7

259:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.64, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 23)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 624), align 8, !tbaa !42
  br label %.critedge7

260:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.65, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 25)
  br label %.critedge7

261:                                              ; preds = %234
  call void @qh_appendprint(i32 noundef 26)
  br label %.critedge7

262:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.66, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 2)
  br label %.critedge7

263:                                              ; preds = %234
  call void @qh_option(ptr noundef nonnull @.str.67, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 28)
  br label %.critedge7

264:                                              ; preds = %234
  store ptr %228, ptr %4, align 8, !tbaa !5
  %265 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  %266 = load i8, ptr %228, align 1, !tbaa !15
  %267 = sext i8 %266 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %265, i32 noundef 7012, ptr noundef nonnull @.str.68, i32 noundef %267) #7
  %268 = load ptr, ptr %4, align 8, !tbaa !5
  %269 = getelementptr inbounds i8, ptr %268, i64 -1
  br label %270

270:                                              ; preds = %274, %264
  %271 = phi ptr [ %272, %274 ], [ %268, %264 ]
  %272 = getelementptr inbounds i8, ptr %271, i64 1
  store ptr %272, ptr %4, align 8, !tbaa !5
  %273 = load i8, ptr %272, align 1, !tbaa !15
  %.not172 = icmp eq i8 %273, 0
  br i1 %.not172, label %.critedge7, label %274

274:                                              ; preds = %270
  %275 = load ptr, ptr %61, align 8, !tbaa !5
  %276 = sext i8 %273 to i64
  %277 = getelementptr inbounds i16, ptr %275, i64 %276
  %278 = load i16, ptr %277, align 2, !tbaa !16
  %279 = and i16 %278, 8192
  %.not173 = icmp eq i16 %279, 0
  br i1 %.not173, label %270, label %.critedge7, !llvm.loop !46

.critedge7:                                       ; preds = %274, %270, %253, %254, %263, %262, %261, %260, %259, %258, %257, %256, %255, %250, %249, %248, %247, %246, %245, %244, %243, %242, %241, %240, %239, %238, %237
  %.272 = phi ptr [ %.171274, %263 ], [ %.171274, %262 ], [ %.171274, %261 ], [ %.171274, %260 ], [ %.171274, %259 ], [ %.171274, %258 ], [ %.171274, %257 ], [ %.171274, %256 ], [ %.171274, %255 ], [ %.171274, %253 ], [ %.171274, %254 ], [ %.171274, %250 ], [ %.171274, %249 ], [ %.171274, %248 ], [ %.171274, %247 ], [ %.171274, %246 ], [ %.171274, %245 ], [ %.171274, %244 ], [ %.171274, %243 ], [ %.171274, %242 ], [ %.171274, %241 ], [ %.171274, %240 ], [ %.171274, %239 ], [ %.171274, %238 ], [ %.171274, %237 ], [ %269, %270 ], [ %269, %274 ]
  %280 = load ptr, ptr %4, align 8, !tbaa !5
  %281 = load i8, ptr %280, align 1, !tbaa !15
  %.not169 = icmp eq i8 %281, 0
  br i1 %.not169, label %.critedge5, label %226, !llvm.loop !47

282:                                              ; preds = %.critedge3.thread.thread329
  call void @qh_appendprint(i32 noundef 7)
  %283 = load ptr, ptr %4, align 8, !tbaa !5
  %284 = load i8, ptr %283, align 1, !tbaa !15
  %.not164266 = icmp eq i8 %284, 0
  br i1 %.not164266, label %.critedge5, label %.lr.ph269

.lr.ph269:                                        ; preds = %282
  %285 = tail call ptr @__ctype_b_loc() #9
  br label %286

286:                                              ; preds = %.lr.ph269, %.critedge11
  %287 = phi i8 [ %284, %.lr.ph269 ], [ %345, %.critedge11 ]
  %288 = phi ptr [ %283, %.lr.ph269 ], [ %344, %.critedge11 ]
  %.3267 = phi ptr [ %.070288, %.lr.ph269 ], [ %.5, %.critedge11 ]
  %289 = load ptr, ptr %285, align 8, !tbaa !5
  %290 = sext i8 %287 to i64
  %291 = getelementptr inbounds i16, ptr %289, i64 %290
  %292 = load i16, ptr %291, align 2, !tbaa !16
  %293 = and i16 %292, 8192
  %.not165 = icmp eq i16 %293, 0
  br i1 %.not165, label %294, label %.critedge5

294:                                              ; preds = %286
  %295 = getelementptr inbounds i8, ptr %288, i64 1
  store ptr %295, ptr %4, align 8, !tbaa !5
  %296 = load i8, ptr %288, align 1, !tbaa !15
  switch i8 %296, label %328 [
    i8 97, label %297
    i8 99, label %298
    i8 104, label %299
    i8 105, label %300
    i8 110, label %301
    i8 111, label %302
    i8 112, label %303
    i8 114, label %304
    i8 116, label %305
    i8 118, label %306
    i8 68, label %307
  ]

297:                                              ; preds = %294
  call void @qh_option(ptr noundef nonnull @.str.69, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 268), align 4, !tbaa !48
  br label %.critedge11

298:                                              ; preds = %294
  call void @qh_option(ptr noundef nonnull @.str.70, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 256), align 8, !tbaa !49
  br label %.critedge11

299:                                              ; preds = %294
  call void @qh_option(ptr noundef nonnull @.str.71, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 84), align 4, !tbaa !50
  br label %.critedge11

300:                                              ; preds = %294
  call void @qh_option(ptr noundef nonnull @.str.72, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 276), align 4, !tbaa !51
  br label %.critedge11

301:                                              ; preds = %294
  call void @qh_option(ptr noundef nonnull @.str.73, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 284), align 4, !tbaa !52
  br label %.critedge11

302:                                              ; preds = %294
  call void @qh_option(ptr noundef nonnull @.str.74, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 292), align 4, !tbaa !53
  br label %.critedge11

303:                                              ; preds = %294
  call void @qh_option(ptr noundef nonnull @.str.75, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 260), align 4, !tbaa !54
  br label %.critedge11

304:                                              ; preds = %294
  call void @qh_option(ptr noundef nonnull @.str.76, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 416), align 8, !tbaa !55
  br label %.critedge11

305:                                              ; preds = %294
  call void @qh_option(ptr noundef nonnull @.str.77, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 432), align 8, !tbaa !56
  br label %.critedge11

306:                                              ; preds = %294
  call void @qh_option(ptr noundef nonnull @.str.78, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 420), align 4, !tbaa !57
  br label %.critedge11

307:                                              ; preds = %294
  %308 = load ptr, ptr %285, align 8, !tbaa !5
  %309 = load i8, ptr %295, align 1, !tbaa !15
  %310 = sext i8 %309 to i64
  %311 = getelementptr inbounds i16, ptr %308, i64 %310
  %312 = load i16, ptr %311, align 2, !tbaa !16
  %313 = and i16 %312, 2048
  %.not166 = icmp eq i16 %313, 0
  br i1 %.not166, label %314, label %318

314:                                              ; preds = %307
  %315 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %315, i32 noundef 7004, ptr noundef nonnull @.str.79) #7
  %316 = load ptr, ptr %4, align 8, !tbaa !5
  %317 = getelementptr inbounds i8, ptr %316, i64 -2
  br label %.critedge11

318:                                              ; preds = %307
  %319 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 88), align 8, !tbaa !58
  %320 = icmp sgt i32 %319, -1
  br i1 %320, label %321, label %325

321:                                              ; preds = %318
  %322 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %322, i32 noundef 7013, ptr noundef nonnull @.str.80, i32 noundef %319) #7
  %323 = load ptr, ptr %4, align 8, !tbaa !5
  %324 = getelementptr inbounds i8, ptr %323, i64 -2
  br label %325

325:                                              ; preds = %321, %318
  %326 = phi ptr [ %323, %321 ], [ %295, %318 ]
  %.4 = phi ptr [ %324, %321 ], [ %.3267, %318 ]
  %327 = call i32 @qh_strtol(ptr noundef %326, ptr noundef nonnull %4) #7
  store i32 %327, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 88), align 8, !tbaa !58
  call void @qh_option(ptr noundef nonnull @.str.81, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 88), ptr noundef null)
  br label %.critedge11

328:                                              ; preds = %294
  store ptr %288, ptr %4, align 8, !tbaa !5
  %329 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  %330 = load i8, ptr %288, align 1, !tbaa !15
  %331 = sext i8 %330 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %329, i32 noundef 7014, ptr noundef nonnull @.str.82, i32 noundef %331) #7
  %332 = load ptr, ptr %4, align 8, !tbaa !5
  %333 = getelementptr inbounds i8, ptr %332, i64 -1
  br label %334

334:                                              ; preds = %338, %328
  %335 = phi ptr [ %336, %338 ], [ %332, %328 ]
  %336 = getelementptr inbounds i8, ptr %335, i64 1
  store ptr %336, ptr %4, align 8, !tbaa !5
  %337 = load i8, ptr %336, align 1, !tbaa !15
  %.not167 = icmp eq i8 %337, 0
  br i1 %.not167, label %.critedge11, label %338

338:                                              ; preds = %334
  %339 = load ptr, ptr %285, align 8, !tbaa !5
  %340 = sext i8 %337 to i64
  %341 = getelementptr inbounds i16, ptr %339, i64 %340
  %342 = load i16, ptr %341, align 2, !tbaa !16
  %343 = and i16 %342, 8192
  %.not168 = icmp eq i16 %343, 0
  br i1 %.not168, label %334, label %.critedge11, !llvm.loop !59

.critedge11:                                      ; preds = %338, %334, %314, %325, %306, %305, %304, %303, %302, %301, %300, %299, %298, %297
  %.5 = phi ptr [ %.4, %325 ], [ %317, %314 ], [ %.3267, %306 ], [ %.3267, %305 ], [ %.3267, %304 ], [ %.3267, %303 ], [ %.3267, %302 ], [ %.3267, %301 ], [ %.3267, %300 ], [ %.3267, %299 ], [ %.3267, %298 ], [ %.3267, %297 ], [ %333, %334 ], [ %333, %338 ]
  %344 = load ptr, ptr %4, align 8, !tbaa !5
  %345 = load i8, ptr %344, align 1, !tbaa !15
  %.not164 = icmp eq i8 %345, 0
  br i1 %.not164, label %.critedge5, label %286, !llvm.loop !60

346:                                              ; preds = %.lr.ph262, %.critedge15
  %347 = phi i8 [ %58, %.lr.ph262 ], [ %429, %.critedge15 ]
  %348 = phi ptr [ %52, %.lr.ph262 ], [ %428, %.critedge15 ]
  %.6261 = phi ptr [ %.070288, %.lr.ph262 ], [ %.7, %.critedge15 ]
  %349 = load ptr, ptr %59, align 8, !tbaa !5
  %350 = sext i8 %347 to i64
  %351 = getelementptr inbounds i16, ptr %349, i64 %350
  %352 = load i16, ptr %351, align 2, !tbaa !16
  %353 = and i16 %352, 8192
  %.not158 = icmp eq i16 %353, 0
  br i1 %.not158, label %354, label %.critedge5

354:                                              ; preds = %346
  %355 = getelementptr inbounds i8, ptr %348, i64 1
  store ptr %355, ptr %4, align 8, !tbaa !5
  %356 = load i8, ptr %348, align 1, !tbaa !15
  switch i8 %356, label %412 [
    i8 100, label %357
    i8 68, label %357
    i8 103, label %369
    i8 71, label %370
    i8 111, label %371
    i8 112, label %372
    i8 65, label %373
    i8 70, label %386
    i8 77, label %399
  ]

357:                                              ; preds = %354, %354
  %358 = call i32 @qh_strtol(ptr noundef nonnull %355, ptr noundef nonnull %4) #7
  store i32 %358, ptr %3, align 4, !tbaa !61
  store double 0.000000e+00, ptr %6, align 8, !tbaa !62
  %359 = load ptr, ptr %4, align 8, !tbaa !5
  %360 = load i8, ptr %359, align 1, !tbaa !15
  %361 = icmp eq i8 %360, 58
  br i1 %361, label %362, label %365

362:                                              ; preds = %357
  %363 = getelementptr inbounds i8, ptr %359, i64 1
  store ptr %363, ptr %4, align 8, !tbaa !5
  %364 = call double @qh_strtod(ptr noundef nonnull %363, ptr noundef nonnull %4) #7
  store double %364, ptr %6, align 8, !tbaa !62
  br label %365

365:                                              ; preds = %362, %357
  %366 = icmp eq i8 %356, 100
  br i1 %366, label %367, label %368

367:                                              ; preds = %365
  call void @qh_option(ptr noundef nonnull @.str.83, ptr noundef nonnull %3, ptr noundef nonnull %6)
  br label %.critedge15

368:                                              ; preds = %365
  call void @qh_option(ptr noundef nonnull @.str.84, ptr noundef nonnull %3, ptr noundef nonnull %6)
  br label %.critedge15

369:                                              ; preds = %354
  call void @qh_option(ptr noundef nonnull @.str.85, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 272), align 8, !tbaa !63
  br label %.critedge15

370:                                              ; preds = %354
  call void @qh_option(ptr noundef nonnull @.str.86, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 280), align 8, !tbaa !64
  br label %.critedge15

371:                                              ; preds = %354
  call void @qh_option(ptr noundef nonnull @.str.87, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 96), align 8, !tbaa !65
  br label %.critedge15

372:                                              ; preds = %354
  call void @qh_option(ptr noundef nonnull @.str.88, ptr noundef null, ptr noundef null)
  store i32 0, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 296), align 8, !tbaa !66
  br label %.critedge15

373:                                              ; preds = %354
  %374 = load ptr, ptr %59, align 8, !tbaa !5
  %375 = load i8, ptr %355, align 1, !tbaa !15
  %376 = sext i8 %375 to i64
  %377 = getelementptr inbounds i16, ptr %374, i64 %376
  %378 = load i16, ptr %377, align 2, !tbaa !16
  %379 = and i16 %378, 2048
  %.not161 = icmp eq i16 %379, 0
  br i1 %.not161, label %380, label %384

380:                                              ; preds = %373
  %381 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %381, i32 noundef 7006, ptr noundef nonnull @.str.89) #7
  %382 = load ptr, ptr %4, align 8, !tbaa !5
  %383 = getelementptr inbounds i8, ptr %382, i64 -2
  br label %.critedge15

384:                                              ; preds = %373
  %385 = call i32 @qh_strtol(ptr noundef nonnull %355, ptr noundef nonnull %4) #7
  store i32 %385, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 140), align 4, !tbaa !67
  call void @qh_option(ptr noundef nonnull @.str.90, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 140), ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 624), align 8, !tbaa !42
  br label %.critedge15

386:                                              ; preds = %354
  %387 = load ptr, ptr %59, align 8, !tbaa !5
  %388 = load i8, ptr %355, align 1, !tbaa !15
  %389 = sext i8 %388 to i64
  %390 = getelementptr inbounds i16, ptr %387, i64 %389
  %391 = load i16, ptr %390, align 2, !tbaa !16
  %392 = and i16 %391, 2048
  %.not160 = icmp eq i16 %392, 0
  br i1 %.not160, label %393, label %397

393:                                              ; preds = %386
  %394 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %394, i32 noundef 7010, ptr noundef nonnull @.str.91) #7
  %395 = load ptr, ptr %4, align 8, !tbaa !5
  %396 = getelementptr inbounds i8, ptr %395, i64 -2
  br label %.critedge15

397:                                              ; preds = %386
  %398 = call double @qh_strtod(ptr noundef nonnull %355, ptr noundef nonnull %4) #7
  store double %398, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 160), align 8, !tbaa !68
  call void @qh_option(ptr noundef nonnull @.str.92, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 160))
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 624), align 8, !tbaa !42
  br label %.critedge15

399:                                              ; preds = %354
  %400 = load ptr, ptr %59, align 8, !tbaa !5
  %401 = load i8, ptr %355, align 1, !tbaa !15
  %402 = sext i8 %401 to i64
  %403 = getelementptr inbounds i16, ptr %400, i64 %402
  %404 = load i16, ptr %403, align 2, !tbaa !16
  %405 = and i16 %404, 2048
  %.not159 = icmp eq i16 %405, 0
  br i1 %.not159, label %406, label %410

406:                                              ; preds = %399
  %407 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %407, i32 noundef 7090, ptr noundef nonnull @.str.93) #7
  %408 = load ptr, ptr %4, align 8, !tbaa !5
  %409 = getelementptr inbounds i8, ptr %408, i64 -2
  br label %.critedge15

410:                                              ; preds = %399
  %411 = call i32 @qh_strtol(ptr noundef nonnull %355, ptr noundef nonnull %4) #7
  store i32 %411, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 152), align 8, !tbaa !69
  call void @qh_option(ptr noundef nonnull @.str.94, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 152), ptr noundef null)
  br label %.critedge15

412:                                              ; preds = %354
  store ptr %348, ptr %4, align 8, !tbaa !5
  %413 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  %414 = load i8, ptr %348, align 1, !tbaa !15
  %415 = sext i8 %414 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %413, i32 noundef 7015, ptr noundef nonnull @.str.95, i32 noundef %415) #7
  %416 = load ptr, ptr %4, align 8, !tbaa !5
  %417 = getelementptr inbounds i8, ptr %416, i64 -1
  br label %418

418:                                              ; preds = %422, %412
  %419 = phi ptr [ %420, %422 ], [ %416, %412 ]
  %420 = getelementptr inbounds i8, ptr %419, i64 1
  store ptr %420, ptr %4, align 8, !tbaa !5
  %421 = load i8, ptr %420, align 1, !tbaa !15
  %.not162 = icmp eq i8 %421, 0
  br i1 %.not162, label %.critedge15, label %422

422:                                              ; preds = %418
  %423 = load ptr, ptr %59, align 8, !tbaa !5
  %424 = sext i8 %421 to i64
  %425 = getelementptr inbounds i16, ptr %423, i64 %424
  %426 = load i16, ptr %425, align 2, !tbaa !16
  %427 = and i16 %426, 8192
  %.not163 = icmp eq i16 %427, 0
  br i1 %.not163, label %418, label %.critedge15, !llvm.loop !70

.critedge15:                                      ; preds = %422, %418, %406, %410, %393, %397, %380, %384, %367, %368, %372, %371, %370, %369
  %.7 = phi ptr [ %.6261, %410 ], [ %409, %406 ], [ %.6261, %397 ], [ %396, %393 ], [ %.6261, %384 ], [ %383, %380 ], [ %.6261, %372 ], [ %.6261, %371 ], [ %.6261, %370 ], [ %.6261, %369 ], [ %.6261, %367 ], [ %.6261, %368 ], [ %417, %418 ], [ %417, %422 ]
  %428 = load ptr, ptr %4, align 8, !tbaa !5
  %429 = load i8, ptr %428, align 1, !tbaa !15
  %.not157 = icmp eq i8 %429, 0
  br i1 %.not157, label %.critedge5, label %346, !llvm.loop !71

430:                                              ; preds = %.lr.ph256, %.critedge23
  %431 = phi i8 [ %56, %.lr.ph256 ], [ %691, %.critedge23 ]
  %432 = phi ptr [ %52, %.lr.ph256 ], [ %690, %.critedge23 ]
  %.0255 = phi i32 [ -1, %.lr.ph256 ], [ %.2, %.critedge23 ]
  %.8254 = phi ptr [ %.070288, %.lr.ph256 ], [ %.11, %.critedge23 ]
  %433 = load ptr, ptr %57, align 8, !tbaa !5
  %434 = sext i8 %431 to i64
  %435 = getelementptr inbounds i16, ptr %433, i64 %434
  %436 = load i16, ptr %435, align 2, !tbaa !16
  %437 = and i16 %436, 8192
  %.not140 = icmp eq i16 %437, 0
  br i1 %.not140, label %438, label %.critedge5

438:                                              ; preds = %430
  %439 = getelementptr inbounds i8, ptr %432, i64 1
  store ptr %439, ptr %4, align 8, !tbaa !5
  %440 = load i8, ptr %432, align 1, !tbaa !15
  switch i8 %440, label %674 [
    i8 97, label %441
    i8 98, label %442
    i8 66, label %442
    i8 99, label %511
    i8 102, label %512
    i8 103, label %513
    i8 105, label %514
    i8 109, label %515
    i8 114, label %516
    i8 115, label %517
    i8 116, label %518
    i8 84, label %519
    i8 117, label %533
    i8 118, label %534
    i8 120, label %535
    i8 122, label %536
    i8 48, label %537
    i8 49, label %538
    i8 50, label %570
    i8 51, label %571
    i8 52, label %589
    i8 53, label %590
    i8 54, label %591
    i8 55, label %592
    i8 56, label %593
    i8 57, label %594
    i8 71, label %595
    i8 74, label %621
    i8 82, label %631
    i8 86, label %649
    i8 119, label %673
  ]

441:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.96, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 4), align 4, !tbaa !72
  br label %.critedge23

442:                                              ; preds = %438, %438
  %443 = icmp eq i8 %440, 98
  br i1 %443, label %444, label %.critedge201

444:                                              ; preds = %442
  %445 = load i8, ptr %439, align 1, !tbaa !15
  switch i8 %445, label %.critedge201 [
    i8 66, label %446
    i8 98, label %448
  ]

446:                                              ; preds = %444
  %447 = getelementptr inbounds i8, ptr %432, i64 2
  store ptr %447, ptr %4, align 8, !tbaa !5
  store double 5.000000e-01, ptr %6, align 8, !tbaa !62
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 492), align 4, !tbaa !73
  call void @qh_option(ptr noundef nonnull @.str.97, ptr noundef null, ptr noundef nonnull %6)
  br label %.critedge23

448:                                              ; preds = %444
  %449 = getelementptr inbounds i8, ptr %432, i64 2
  store ptr %449, ptr %4, align 8, !tbaa !5
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 496), align 8, !tbaa !74
  call void @qh_option(ptr noundef nonnull @.str.98, ptr noundef null, ptr noundef null)
  br label %.critedge23

.critedge201:                                     ; preds = %444, %442
  %450 = call i32 @qh_strtol(ptr noundef nonnull %439, ptr noundef nonnull %4) #7
  store i32 %450, ptr %2, align 4, !tbaa !61
  store double 0.000000e+00, ptr %6, align 8, !tbaa !62
  %451 = load ptr, ptr %4, align 8, !tbaa !5
  %452 = load i8, ptr %451, align 1, !tbaa !15
  %453 = icmp eq i8 %452, 58
  br i1 %453, label %454, label %thread-pre-split

454:                                              ; preds = %.critedge201
  %455 = getelementptr inbounds i8, ptr %451, i64 1
  store ptr %455, ptr %4, align 8, !tbaa !5
  %456 = call double @qh_strtod(ptr noundef nonnull %455, ptr noundef nonnull %4) #7
  store double %456, ptr %6, align 8, !tbaa !62
  %457 = fcmp oeq double %456, 0.000000e+00
  br i1 %457, label %458, label %thread-pre-split

458:                                              ; preds = %454
  %459 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %459, ptr %5, align 8, !tbaa !5
  %460 = load i8, ptr %459, align 1, !tbaa !15
  %.not152249 = icmp eq i8 %460, 0
  br i1 %.not152249, label %thread-pre-split, label %.lr.ph251

.lr.ph251:                                        ; preds = %458, %496
  %461 = phi i8 [ %498, %496 ], [ %460, %458 ]
  %462 = phi ptr [ %497, %496 ], [ %459, %458 ]
  %463 = load ptr, ptr %57, align 8, !tbaa !5
  %464 = sext i8 %461 to i64
  %465 = getelementptr inbounds i16, ptr %463, i64 %464
  %466 = load i16, ptr %465, align 2, !tbaa !16
  %467 = and i16 %466, 8192
  %.not153 = icmp eq i16 %467, 0
  br i1 %.not153, label %468, label %thread-pre-split.loopexit

468:                                              ; preds = %.lr.ph251
  %469 = tail call ptr @__ctype_toupper_loc() #9
  %470 = load ptr, ptr %469, align 8, !tbaa !5
  %471 = getelementptr inbounds i8, ptr %462, i64 1
  store ptr %471, ptr %5, align 8, !tbaa !5
  %472 = load i8, ptr %462, align 1, !tbaa !15
  %473 = sext i8 %472 to i64
  %474 = getelementptr inbounds i32, ptr %470, i64 %473
  %475 = load i32, ptr %474, align 4, !tbaa !61
  %476 = icmp eq i32 %475, 66
  br i1 %476, label %477, label %496

477:                                              ; preds = %468
  %478 = load i32, ptr %2, align 4, !tbaa !61
  %479 = call i32 @qh_strtol(ptr noundef nonnull %471, ptr noundef nonnull %5) #7
  %480 = icmp eq i32 %478, %479
  %.pre316 = load ptr, ptr %5, align 8, !tbaa !5
  br i1 %480, label %481, label %496

481:                                              ; preds = %477
  %482 = getelementptr inbounds i8, ptr %.pre316, i64 1
  store ptr %482, ptr %5, align 8, !tbaa !5
  %483 = load i8, ptr %.pre316, align 1, !tbaa !15
  %484 = icmp eq i8 %483, 58
  br i1 %484, label %485, label %496

485:                                              ; preds = %481
  %486 = call double @qh_strtod(ptr noundef nonnull %482, ptr noundef nonnull %5) #7
  %487 = fcmp oeq double %486, 0.000000e+00
  br i1 %487, label %488, label %._crit_edge314

._crit_edge314:                                   ; preds = %485
  %.pre315 = load ptr, ptr %5, align 8, !tbaa !5
  br label %496

488:                                              ; preds = %485
  %489 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 440), align 8, !tbaa !75
  %490 = add nsw i32 %489, 1
  store i32 %490, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 440), align 8, !tbaa !75
  %491 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 136), align 8, !tbaa !76
  %492 = icmp sgt i32 %491, 1
  br i1 %492, label %493, label %.critedge19

493:                                              ; preds = %488
  %494 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  %495 = load i32, ptr %2, align 4, !tbaa !61
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %494, i32 noundef 2004, ptr noundef nonnull @.str.99, i32 noundef %495) #7
  br label %.critedge19

496:                                              ; preds = %._crit_edge314, %481, %477, %468
  %497 = phi ptr [ %.pre315, %._crit_edge314 ], [ %482, %481 ], [ %.pre316, %477 ], [ %471, %468 ]
  %498 = load i8, ptr %497, align 1, !tbaa !15
  %.not152 = icmp eq i8 %498, 0
  br i1 %.not152, label %thread-pre-split.loopexit, label %.lr.ph251, !llvm.loop !77

.critedge19:                                      ; preds = %488, %493
  call void @qh_option(ptr noundef nonnull @.str.100, ptr noundef nonnull %2, ptr noundef null)
  %499 = load i32, ptr %2, align 4, !tbaa !61
  br label %.critedge23

thread-pre-split.loopexit:                        ; preds = %496, %.lr.ph251
  %.pr.pre = load double, ptr %6, align 8
  br label %thread-pre-split

thread-pre-split:                                 ; preds = %458, %thread-pre-split.loopexit, %454, %.critedge201
  %500 = phi double [ %456, %454 ], [ 0.000000e+00, %.critedge201 ], [ %.pr.pre, %thread-pre-split.loopexit ], [ %456, %458 ]
  %501 = load i32, ptr %2, align 4, !tbaa !61
  %502 = icmp eq i32 %.0255, %501
  %503 = fcmp oeq double %500, 0.000000e+00
  %or.cond21 = select i1 %502, i1 %503, i1 false
  br i1 %or.cond21, label %.critedge23, label %504

504:                                              ; preds = %thread-pre-split
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 492), align 4, !tbaa !73
  br i1 %443, label %505, label %508

505:                                              ; preds = %504
  br i1 %503, label %506, label %507

506:                                              ; preds = %505
  store double -5.000000e-01, ptr %6, align 8, !tbaa !62
  br label %507

507:                                              ; preds = %506, %505
  call void @qh_option(ptr noundef nonnull @.str.101, ptr noundef nonnull %2, ptr noundef nonnull %6)
  br label %.critedge23

508:                                              ; preds = %504
  br i1 %503, label %509, label %510

509:                                              ; preds = %508
  store double 5.000000e-01, ptr %6, align 8, !tbaa !62
  br label %510

510:                                              ; preds = %509, %508
  call void @qh_option(ptr noundef nonnull @.str.102, ptr noundef nonnull %2, ptr noundef nonnull %6)
  br label %.critedge23

511:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.103, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 144), align 8, !tbaa !78
  br label %.critedge23

512:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.104, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 44), align 4, !tbaa !79
  br label %.critedge23

513:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.105, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 236), align 4, !tbaa !80
  br label %.critedge23

514:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.106, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 148), align 4, !tbaa !81
  br label %.critedge23

515:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.107, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 240), align 8, !tbaa !82
  br label %.critedge23

516:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.108, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 472), align 8, !tbaa !83
  br label %.critedge23

517:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.109, ptr noundef null, ptr noundef null)
  store i32 1, ptr @qh_qh, align 8, !tbaa !84
  br label %.critedge23

518:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.110, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 564), align 4, !tbaa !85
  br label %.critedge23

519:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.111, ptr noundef null, ptr noundef null)
  %520 = load ptr, ptr %57, align 8, !tbaa !5
  %521 = load ptr, ptr %4, align 8, !tbaa !5
  %522 = load i8, ptr %521, align 1, !tbaa !15
  %523 = sext i8 %522 to i64
  %524 = getelementptr inbounds i16, ptr %520, i64 %523
  %525 = load i16, ptr %524, align 2, !tbaa !16
  %526 = and i16 %525, 2048
  %.not151 = icmp eq i16 %526, 0
  br i1 %.not151, label %527, label %531

527:                                              ; preds = %519
  %528 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %528, i32 noundef 7091, ptr noundef nonnull @.str.112) #7
  %529 = load ptr, ptr %4, align 8, !tbaa !5
  %530 = getelementptr inbounds i8, ptr %529, i64 -2
  br label %.critedge23

531:                                              ; preds = %519
  %532 = call i32 @qh_strtol(ptr noundef nonnull %521, ptr noundef nonnull %4) #7
  store i32 %532, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 528), align 8, !tbaa !86
  call void @qh_option(ptr noundef nonnull @.str.111, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 528), ptr noundef null)
  br label %.critedge23

533:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.113, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 572), align 4, !tbaa !87
  br label %.critedge23

534:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.114, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 532), align 4, !tbaa !88
  br label %.critedge23

535:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.115, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 180), align 4, !tbaa !89
  br label %.critedge23

536:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.116, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 36), align 4, !tbaa !90
  br label %.critedge23

537:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.117, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 232), align 8, !tbaa !91
  br label %.critedge23

538:                                              ; preds = %438
  %539 = load ptr, ptr %57, align 8, !tbaa !5
  %540 = load i8, ptr %439, align 1, !tbaa !15
  %541 = sext i8 %540 to i64
  %542 = getelementptr inbounds i16, ptr %539, i64 %541
  %543 = load i16, ptr %542, align 2, !tbaa !16
  %544 = and i16 %543, 2048
  %.not148 = icmp eq i16 %544, 0
  br i1 %.not148, label %545, label %546

545:                                              ; preds = %538
  call void @qh_option(ptr noundef nonnull @.str.118, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 16), align 8, !tbaa !92
  br label %.critedge23

546:                                              ; preds = %538
  %547 = getelementptr inbounds i8, ptr %432, i64 2
  store ptr %547, ptr %4, align 8, !tbaa !5
  %548 = load i8, ptr %439, align 1, !tbaa !15
  switch i8 %548, label %554 [
    i8 48, label %549
    i8 49, label %550
    i8 50, label %551
    i8 52, label %552
    i8 55, label %553
  ]

549:                                              ; preds = %546
  call void @qh_option(ptr noundef nonnull @.str.119, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 224), align 8, !tbaa !93
  br label %.critedge23

550:                                              ; preds = %546
  call void @qh_option(ptr noundef nonnull @.str.120, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 568), align 8, !tbaa !94
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 564), align 4, !tbaa !85
  br label %.critedge23

551:                                              ; preds = %546
  call void @qh_option(ptr noundef nonnull @.str.121, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 12), align 4, !tbaa !95
  br label %.critedge23

552:                                              ; preds = %546
  call void @qh_option(ptr noundef nonnull @.str.122, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 208), align 8, !tbaa !96
  br label %.critedge23

553:                                              ; preds = %546
  call void @qh_option(ptr noundef nonnull @.str.123, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 56), align 8, !tbaa !97
  br label %.critedge23

554:                                              ; preds = %546
  store ptr %439, ptr %4, align 8, !tbaa !5
  %555 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  %556 = load i8, ptr %439, align 1, !tbaa !15
  %557 = sext i8 %556 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %555, i32 noundef 7016, ptr noundef nonnull @.str.124, i32 noundef %557) #7
  %558 = load ptr, ptr %4, align 8, !tbaa !5
  %559 = getelementptr inbounds i8, ptr %558, i64 -1
  br label %560

560:                                              ; preds = %564, %554
  %561 = phi ptr [ %562, %564 ], [ %558, %554 ]
  %562 = getelementptr inbounds i8, ptr %561, i64 1
  store ptr %562, ptr %4, align 8, !tbaa !5
  %563 = load i8, ptr %562, align 1, !tbaa !15
  %.not149 = icmp eq i8 %563, 0
  br i1 %.not149, label %.critedge23, label %564

564:                                              ; preds = %560
  %565 = load ptr, ptr %57, align 8, !tbaa !5
  %566 = sext i8 %563 to i64
  %567 = getelementptr inbounds i16, ptr %565, i64 %566
  %568 = load i16, ptr %567, align 2, !tbaa !16
  %569 = and i16 %568, 8192
  %.not150 = icmp eq i16 %569, 0
  br i1 %.not150, label %560, label %.critedge23, !llvm.loop !98

570:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.125, ptr noundef null, ptr noundef null)
  store i32 0, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 184), align 8, !tbaa !99
  br label %572

571:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.126, ptr noundef null, ptr noundef null)
  store i32 0, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 212), align 4, !tbaa !100
  br label %572

572:                                              ; preds = %571, %570
  %573 = load ptr, ptr %57, align 8, !tbaa !5
  %574 = load ptr, ptr %4, align 8, !tbaa !5
  %575 = load i8, ptr %574, align 1, !tbaa !15
  %576 = sext i8 %575 to i64
  %577 = getelementptr inbounds i16, ptr %573, i64 %576
  %578 = load i16, ptr %577, align 2, !tbaa !16
  %579 = and i16 %578, 2048
  %.not147 = icmp eq i16 %579, 0
  br i1 %.not147, label %.critedge23, label %580

580:                                              ; preds = %572
  %581 = sext i8 %575 to i32
  %582 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  %583 = getelementptr inbounds i8, ptr %574, i64 -1
  %584 = load i8, ptr %583, align 1, !tbaa !15
  %585 = sext i8 %584 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %582, i32 noundef 7017, ptr noundef nonnull @.str.127, i32 noundef %585, i32 noundef %581) #7
  %586 = load ptr, ptr %4, align 8, !tbaa !5
  %587 = getelementptr inbounds i8, ptr %586, i64 -2
  %588 = getelementptr inbounds i8, ptr %586, i64 1
  store ptr %588, ptr %4, align 8, !tbaa !5
  br label %.critedge23

589:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.128, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 40), align 8, !tbaa !101
  br label %.critedge23

590:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.129, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 504), align 8, !tbaa !102
  br label %.critedge23

591:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.130, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 508), align 4, !tbaa !103
  br label %.critedge23

592:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.131, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 584), align 8, !tbaa !104
  br label %.critedge23

593:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.132, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 228), align 4, !tbaa !105
  br label %.critedge23

594:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.133, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 244), align 4, !tbaa !106
  br label %.critedge23

595:                                              ; preds = %438
  %596 = call i32 @qh_strtol(ptr noundef nonnull %439, ptr noundef nonnull %5) #7
  store i32 %596, ptr %3, align 4, !tbaa !61
  %597 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 100), align 4, !tbaa !107
  %.not146 = icmp eq i32 %597, 0
  br i1 %.not146, label %602, label %598

598:                                              ; preds = %595
  %599 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %599, i32 noundef 7018, ptr noundef nonnull @.str.134) #7
  %600 = load ptr, ptr %4, align 8, !tbaa !5
  %601 = getelementptr inbounds i8, ptr %600, i64 -2
  br label %619

602:                                              ; preds = %595
  %603 = load ptr, ptr %4, align 8, !tbaa !5
  %604 = load ptr, ptr %5, align 8, !tbaa !5
  %605 = icmp eq ptr %603, %604
  br i1 %605, label %606, label %610

606:                                              ; preds = %602
  %607 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %607, i32 noundef 7019, ptr noundef nonnull @.str.135) #7
  %608 = load ptr, ptr %4, align 8, !tbaa !5
  %609 = getelementptr inbounds i8, ptr %608, i64 -2
  br label %619

610:                                              ; preds = %602
  %611 = icmp slt i32 %596, 0
  br i1 %611, label %615, label %612

612:                                              ; preds = %610
  %613 = load i8, ptr %603, align 1, !tbaa !15
  %614 = icmp eq i8 %613, 45
  br i1 %614, label %615, label %617

615:                                              ; preds = %612, %610
  %616 = add nsw i32 %596, -1
  store i32 %616, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 100), align 4, !tbaa !107
  call void @qh_option(ptr noundef nonnull @.str.136, ptr noundef nonnull %3, ptr noundef null)
  br label %619

617:                                              ; preds = %612
  %618 = add nuw nsw i32 %596, 1
  store i32 %618, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 100), align 4, !tbaa !107
  call void @qh_option(ptr noundef nonnull @.str.137, ptr noundef nonnull %3, ptr noundef null)
  br label %619

619:                                              ; preds = %606, %617, %615, %598
  %.9 = phi ptr [ %601, %598 ], [ %609, %606 ], [ %.8254, %615 ], [ %.8254, %617 ]
  %620 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %620, ptr %4, align 8, !tbaa !5
  br label %.critedge23

621:                                              ; preds = %438
  %622 = load ptr, ptr %57, align 8, !tbaa !5
  %623 = load i8, ptr %439, align 1, !tbaa !15
  %624 = sext i8 %623 to i64
  %625 = getelementptr inbounds i16, ptr %622, i64 %624
  %626 = load i16, ptr %625, align 2, !tbaa !16
  %627 = and i16 %626, 2048
  %.not144 = icmp ne i16 %627, 0
  %.not145 = icmp eq i8 %623, 45
  %or.cond202 = or i1 %.not145, %.not144
  br i1 %or.cond202, label %629, label %628

628:                                              ; preds = %621
  store double 0.000000e+00, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2664), align 8, !tbaa !108
  br label %.critedge23

629:                                              ; preds = %621
  %630 = call double @qh_strtod(ptr noundef nonnull %439, ptr noundef nonnull %4) #7
  store double %630, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2664), align 8, !tbaa !108
  call void @qh_option(ptr noundef nonnull @.str.138, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 2664))
  br label %.critedge23

631:                                              ; preds = %438
  %632 = load ptr, ptr %57, align 8, !tbaa !5
  %633 = load i8, ptr %439, align 1, !tbaa !15
  %634 = sext i8 %633 to i64
  %635 = getelementptr inbounds i16, ptr %632, i64 %634
  %636 = load i16, ptr %635, align 2, !tbaa !16
  %637 = and i16 %636, 2048
  %.not142 = icmp ne i16 %637, 0
  %.not143 = icmp eq i8 %633, 45
  %or.cond203 = or i1 %.not143, %.not142
  br i1 %or.cond203, label %642, label %638

638:                                              ; preds = %631
  %639 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %639, i32 noundef 7020, ptr noundef nonnull @.str.139) #7
  %640 = load ptr, ptr %4, align 8, !tbaa !5
  %641 = getelementptr inbounds i8, ptr %640, i64 -2
  br label %.critedge23

642:                                              ; preds = %631
  %643 = call i32 @qh_strtol(ptr noundef nonnull %439, ptr noundef nonnull %4) #7
  store i32 %643, ptr %3, align 4, !tbaa !61
  store i32 %643, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 488), align 8, !tbaa !109
  %644 = icmp sgt i32 %643, 0
  br i1 %644, label %645, label %646

645:                                              ; preds = %642
  call void @qh_option(ptr noundef nonnull @.str.140, ptr noundef nonnull %3, ptr noundef null)
  br label %.critedge23

646:                                              ; preds = %642
  %647 = icmp slt i32 %643, -1
  br i1 %647, label %648, label %.critedge23

648:                                              ; preds = %646
  call void @qh_option(ptr noundef nonnull @.str.141, ptr noundef nonnull %3, ptr noundef null)
  br label %.critedge23

649:                                              ; preds = %438
  %650 = call i32 @qh_strtol(ptr noundef nonnull %439, ptr noundef nonnull %5) #7
  store i32 %650, ptr %3, align 4, !tbaa !61
  %651 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 116), align 4, !tbaa !110
  %.not141 = icmp eq i32 %651, 0
  br i1 %.not141, label %656, label %652

652:                                              ; preds = %649
  %653 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %653, i32 noundef 7021, ptr noundef nonnull @.str.142) #7
  %654 = load ptr, ptr %4, align 8, !tbaa !5
  %655 = getelementptr inbounds i8, ptr %654, i64 -2
  br label %671

656:                                              ; preds = %649
  %657 = load ptr, ptr %4, align 8, !tbaa !5
  %658 = load ptr, ptr %5, align 8, !tbaa !5
  %659 = icmp eq ptr %657, %658
  br i1 %659, label %660, label %664

660:                                              ; preds = %656
  %661 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %661, i32 noundef 7022, ptr noundef nonnull @.str.143) #7
  %662 = load ptr, ptr %4, align 8, !tbaa !5
  %663 = getelementptr inbounds i8, ptr %662, i64 -2
  br label %671

664:                                              ; preds = %656
  %665 = icmp slt i32 %650, 0
  br i1 %665, label %666, label %668

666:                                              ; preds = %664
  %667 = add nsw i32 %650, -1
  store i32 %667, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 116), align 4, !tbaa !110
  call void @qh_option(ptr noundef nonnull @.str.144, ptr noundef nonnull %3, ptr noundef null)
  br label %671

668:                                              ; preds = %664
  call void @qh_option(ptr noundef nonnull @.str.145, ptr noundef nonnull %3, ptr noundef null)
  %669 = load i32, ptr %3, align 4, !tbaa !61
  %670 = add nsw i32 %669, 1
  store i32 %670, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 116), align 4, !tbaa !110
  br label %671

671:                                              ; preds = %660, %668, %666, %652
  %.10 = phi ptr [ %655, %652 ], [ %663, %660 ], [ %.8254, %666 ], [ %.8254, %668 ]
  %672 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %672, ptr %4, align 8, !tbaa !5
  br label %.critedge23

673:                                              ; preds = %438
  call void @qh_option(ptr noundef nonnull @.str.146, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 8), align 8, !tbaa !111
  br label %.critedge23

674:                                              ; preds = %438
  store ptr %432, ptr %4, align 8, !tbaa !5
  %675 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  %676 = load i8, ptr %432, align 1, !tbaa !15
  %677 = sext i8 %676 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %675, i32 noundef 7023, ptr noundef nonnull @.str.147, i32 noundef %677) #7
  %678 = load ptr, ptr %4, align 8, !tbaa !5
  %679 = getelementptr inbounds i8, ptr %678, i64 -1
  br label %680

680:                                              ; preds = %684, %674
  %681 = phi ptr [ %682, %684 ], [ %678, %674 ]
  %682 = getelementptr inbounds i8, ptr %681, i64 1
  store ptr %682, ptr %4, align 8, !tbaa !5
  %683 = load i8, ptr %682, align 1, !tbaa !15
  %.not155 = icmp eq i8 %683, 0
  br i1 %.not155, label %.critedge23, label %684

684:                                              ; preds = %680
  %685 = load ptr, ptr %57, align 8, !tbaa !5
  %686 = sext i8 %683 to i64
  %687 = getelementptr inbounds i16, ptr %685, i64 %686
  %688 = load i16, ptr %687, align 2, !tbaa !16
  %689 = and i16 %688, 8192
  %.not156 = icmp eq i16 %689, 0
  br i1 %.not156, label %680, label %.critedge23, !llvm.loop !112

.critedge23:                                      ; preds = %560, %564, %684, %680, %.critedge19, %thread-pre-split, %638, %646, %648, %645, %628, %629, %572, %580, %549, %550, %551, %552, %553, %527, %531, %507, %510, %673, %671, %619, %594, %593, %592, %591, %590, %589, %545, %537, %536, %535, %534, %533, %518, %517, %516, %515, %514, %513, %512, %511, %448, %446, %441
  %.11 = phi ptr [ %.8254, %673 ], [ %.10, %671 ], [ %.8254, %645 ], [ %.8254, %648 ], [ %.8254, %646 ], [ %641, %638 ], [ %.8254, %629 ], [ %.8254, %628 ], [ %.9, %619 ], [ %.8254, %594 ], [ %.8254, %593 ], [ %.8254, %592 ], [ %.8254, %591 ], [ %.8254, %590 ], [ %.8254, %589 ], [ %587, %580 ], [ %.8254, %572 ], [ %.8254, %553 ], [ %.8254, %552 ], [ %.8254, %551 ], [ %.8254, %550 ], [ %.8254, %549 ], [ %.8254, %545 ], [ %.8254, %537 ], [ %.8254, %536 ], [ %.8254, %535 ], [ %.8254, %534 ], [ %.8254, %533 ], [ %.8254, %531 ], [ %530, %527 ], [ %.8254, %518 ], [ %.8254, %517 ], [ %.8254, %516 ], [ %.8254, %515 ], [ %.8254, %514 ], [ %.8254, %513 ], [ %.8254, %512 ], [ %.8254, %511 ], [ %.8254, %446 ], [ %.8254, %448 ], [ %.8254, %.critedge19 ], [ %.8254, %507 ], [ %.8254, %510 ], [ %.8254, %441 ], [ %.8254, %thread-pre-split ], [ %679, %680 ], [ %679, %684 ], [ %559, %564 ], [ %559, %560 ]
  %.2 = phi i32 [ %.0255, %673 ], [ %.0255, %671 ], [ %.0255, %645 ], [ %.0255, %648 ], [ %.0255, %646 ], [ %.0255, %638 ], [ %.0255, %629 ], [ %.0255, %628 ], [ %.0255, %619 ], [ %.0255, %594 ], [ %.0255, %593 ], [ %.0255, %592 ], [ %.0255, %591 ], [ %.0255, %590 ], [ %.0255, %589 ], [ %.0255, %580 ], [ %.0255, %572 ], [ %.0255, %553 ], [ %.0255, %552 ], [ %.0255, %551 ], [ %.0255, %550 ], [ %.0255, %549 ], [ %.0255, %545 ], [ %.0255, %537 ], [ %.0255, %536 ], [ %.0255, %535 ], [ %.0255, %534 ], [ %.0255, %533 ], [ %.0255, %531 ], [ %.0255, %527 ], [ %.0255, %518 ], [ %.0255, %517 ], [ %.0255, %516 ], [ %.0255, %515 ], [ %.0255, %514 ], [ %.0255, %513 ], [ %.0255, %512 ], [ %.0255, %511 ], [ %.0255, %446 ], [ %.0255, %448 ], [ %499, %.critedge19 ], [ %.0255, %507 ], [ %.0255, %510 ], [ %.0255, %441 ], [ -1, %thread-pre-split ], [ %.0255, %680 ], [ %.0255, %684 ], [ %.0255, %564 ], [ %.0255, %560 ]
  %690 = load ptr, ptr %4, align 8, !tbaa !5
  %691 = load i8, ptr %690, align 1, !tbaa !15
  %.not139 = icmp eq i8 %691, 0
  br i1 %.not139, label %.critedge5, label %430, !llvm.loop !113

692:                                              ; preds = %.lr.ph245, %.critedge29
  %693 = phi i8 [ %54, %.lr.ph245 ], [ %944, %.critedge29 ]
  %694 = phi ptr [ %52, %.lr.ph245 ], [ %943, %.critedge29 ]
  %.12244 = phi ptr [ %.070288, %.lr.ph245 ], [ %.16, %.critedge29 ]
  %695 = load ptr, ptr %55, align 8, !tbaa !5
  %696 = sext i8 %693 to i64
  %697 = getelementptr inbounds i16, ptr %695, i64 %696
  %698 = load i16, ptr %697, align 2, !tbaa !16
  %699 = zext i16 %698 to i32
  %700 = and i32 %699, 8192
  %.not120 = icmp eq i32 %700, 0
  br i1 %.not120, label %701, label %.critedge5

701:                                              ; preds = %692
  %702 = and i32 %699, 2048
  %.not121 = icmp ne i32 %702, 0
  %703 = icmp eq i8 %693, 45
  %or.cond204 = or i1 %703, %.not121
  br i1 %or.cond204, label %704, label %706

704:                                              ; preds = %701
  %705 = call i32 @qh_strtol(ptr noundef nonnull %694, ptr noundef nonnull %4) #7
  store i32 %705, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 136), align 8, !tbaa !76
  br label %.critedge29

706:                                              ; preds = %701
  %707 = getelementptr inbounds i8, ptr %694, i64 1
  store ptr %707, ptr %4, align 8, !tbaa !5
  %708 = load i8, ptr %694, align 1, !tbaa !15
  switch i8 %708, label %926 [
    i8 97, label %721
    i8 99, label %722
    i8 102, label %723
    i8 115, label %724
    i8 118, label %725
    i8 122, label %726
    i8 67, label %737
    i8 70, label %752
    i8 73, label %.preheader
    i8 79, label %.preheader216
    i8 65, label %814
    i8 80, label %830
    i8 77, label %870
    i8 82, label %883
    i8 86, label %896
    i8 87, label %913
  ]

.preheader216:                                    ; preds = %706
  %709 = load ptr, ptr %55, align 8, !tbaa !5
  %710 = load i8, ptr %707, align 1, !tbaa !15
  %711 = sext i8 %710 to i64
  %712 = getelementptr inbounds i16, ptr %709, i64 %711
  %713 = load i16, ptr %712, align 2, !tbaa !16
  %714 = and i16 %713, 8192
  %.not129237 = icmp eq i16 %714, 0
  br i1 %.not129237, label %._crit_edge, label %.lr.ph238

.preheader:                                       ; preds = %706
  %715 = load ptr, ptr %55, align 8, !tbaa !5
  %716 = load i8, ptr %707, align 1, !tbaa !15
  %717 = sext i8 %716 to i64
  %718 = getelementptr inbounds i16, ptr %715, i64 %717
  %719 = load i16, ptr %718, align 2, !tbaa !16
  %720 = and i16 %719, 8192
  %.not132239 = icmp eq i16 %720, 0
  br i1 %.not132239, label %._crit_edge241, label %.lr.ph240

721:                                              ; preds = %706
  call void @qh_option(ptr noundef nonnull @.str.148, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 32), align 8, !tbaa !114
  br label %.critedge29

722:                                              ; preds = %706
  call void @qh_option(ptr noundef nonnull @.str.149, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 60), align 4, !tbaa !115
  br label %.critedge29

723:                                              ; preds = %706
  call void @qh_option(ptr noundef nonnull @.str.150, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 92), align 4, !tbaa !116
  br label %.critedge29

724:                                              ; preds = %706
  call void @qh_option(ptr noundef nonnull @.str.151, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 424), align 8, !tbaa !117
  br label %.critedge29

725:                                              ; preds = %706
  call void @qh_option(ptr noundef nonnull @.str.152, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 580), align 4, !tbaa !118
  br label %.critedge29

726:                                              ; preds = %706
  %727 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  %728 = icmp eq ptr %727, inttoptr (i64 1 to ptr)
  br i1 %728, label %729, label %730

729:                                              ; preds = %726
  call void @qh_option(ptr noundef nonnull @.str.153, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 576), align 8, !tbaa !119
  br label %.critedge29

730:                                              ; preds = %726
  %731 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2416), align 8, !tbaa !120
  %.not136 = icmp eq ptr %731, null
  br i1 %.not136, label %732, label %735

732:                                              ; preds = %730
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %727, i32 noundef 7024, ptr noundef nonnull @.str.154) #7
  %733 = load ptr, ptr %4, align 8, !tbaa !5
  %734 = getelementptr inbounds i8, ptr %733, i64 -2
  br label %.critedge29

735:                                              ; preds = %730
  call void @qh_option(ptr noundef nonnull @.str.153, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 576), align 8, !tbaa !119
  %736 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2416), align 8, !tbaa !120
  store ptr %736, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  store ptr %736, ptr getelementptr inbounds (i8, ptr @qhmem, i64 80), align 8, !tbaa !121
  br label %.critedge29

737:                                              ; preds = %706
  %738 = load ptr, ptr %55, align 8, !tbaa !5
  %739 = load i8, ptr %707, align 1, !tbaa !15
  %740 = sext i8 %739 to i64
  %741 = getelementptr inbounds i16, ptr %738, i64 %740
  %742 = load i16, ptr %741, align 2, !tbaa !16
  %743 = and i16 %742, 2048
  %.not135 = icmp eq i16 %743, 0
  br i1 %.not135, label %744, label %748

744:                                              ; preds = %737
  %745 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %745, i32 noundef 7025, ptr noundef nonnull @.str.155) #7
  %746 = load ptr, ptr %4, align 8, !tbaa !5
  %747 = getelementptr inbounds i8, ptr %746, i64 -2
  br label %.critedge29

748:                                              ; preds = %737
  %749 = call i32 @qh_strtol(ptr noundef nonnull %707, ptr noundef nonnull %4) #7
  store i32 %749, ptr %3, align 4, !tbaa !61
  call void @qh_option(ptr noundef nonnull @.str.156, ptr noundef nonnull %3, ptr noundef null)
  %750 = load i32, ptr %3, align 4, !tbaa !61
  %751 = add nsw i32 %750, 1
  store i32 %751, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 520), align 8, !tbaa !123
  br label %.critedge29

752:                                              ; preds = %706
  %753 = load ptr, ptr %55, align 8, !tbaa !5
  %754 = load i8, ptr %707, align 1, !tbaa !15
  %755 = sext i8 %754 to i64
  %756 = getelementptr inbounds i16, ptr %753, i64 %755
  %757 = load i16, ptr %756, align 2, !tbaa !16
  %758 = and i16 %757, 2048
  %.not134 = icmp eq i16 %758, 0
  br i1 %.not134, label %759, label %763

759:                                              ; preds = %752
  %760 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %760, i32 noundef 7026, ptr noundef nonnull @.str.157) #7
  %761 = load ptr, ptr %4, align 8, !tbaa !5
  %762 = getelementptr inbounds i8, ptr %761, i64 -2
  br label %.critedge29

763:                                              ; preds = %752
  %764 = call i32 @qh_strtol(ptr noundef nonnull %707, ptr noundef nonnull %4) #7
  store i32 %764, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 476), align 4, !tbaa !124
  call void @qh_option(ptr noundef nonnull @.str.158, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 476), ptr noundef null)
  %765 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 476), align 4, !tbaa !124
  %766 = sdiv i32 %765, 2
  store i32 %766, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 480), align 8, !tbaa !125
  br label %.critedge29

.lr.ph240:                                        ; preds = %.preheader, %.lr.ph240
  %767 = phi ptr [ %768, %.lr.ph240 ], [ %707, %.preheader ]
  %768 = getelementptr inbounds i8, ptr %767, i64 1
  store ptr %768, ptr %4, align 8, !tbaa !5
  %769 = load ptr, ptr %55, align 8, !tbaa !5
  %770 = load i8, ptr %768, align 1, !tbaa !15
  %771 = sext i8 %770 to i64
  %772 = getelementptr inbounds i16, ptr %769, i64 %771
  %773 = load i16, ptr %772, align 2, !tbaa !16
  %774 = and i16 %773, 8192
  %.not132 = icmp eq i16 %774, 0
  br i1 %.not132, label %._crit_edge241, label %.lr.ph240, !llvm.loop !126

._crit_edge241:                                   ; preds = %.lr.ph240, %.preheader
  %.lcssa230 = phi ptr [ %707, %.preheader ], [ %768, %.lr.ph240 ]
  %775 = call ptr @qh_skipfilename(ptr noundef nonnull %.lcssa230) #7
  store ptr %775, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 500, ptr nonnull %7) #7
  %776 = load ptr, ptr %4, align 8, !tbaa !5
  %777 = ptrtoint ptr %775 to i64
  %778 = ptrtoint ptr %776 to i64
  %779 = sub i64 %777, %778
  %780 = trunc i64 %779 to i32
  call void @qh_copyfilename(ptr noundef nonnull %7, i32 noundef 500, ptr noundef %776, i32 noundef %780) #7
  %781 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %781, ptr %4, align 8, !tbaa !5
  %782 = load ptr, ptr @stdin, align 8, !tbaa !5
  %783 = call ptr @freopen(ptr noundef nonnull %7, ptr noundef nonnull @.str.159, ptr noundef %782) #7
  %.not133 = icmp eq ptr %783, null
  br i1 %.not133, label %784, label %786

784:                                              ; preds = %._crit_edge241
  %785 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %785, i32 noundef 6041, ptr noundef nonnull @.str.160, ptr noundef nonnull %7) #7
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null) #7
  br label %787

786:                                              ; preds = %._crit_edge241
  call void @qh_option(ptr noundef nonnull @.str.161, ptr noundef null, ptr noundef null)
  call void @qh_option(ptr noundef nonnull %7, ptr noundef null, ptr noundef null)
  br label %787

787:                                              ; preds = %786, %784
  call void @llvm.lifetime.end.p0(i64 500, ptr nonnull %7) #7
  br label %.critedge29

.lr.ph238:                                        ; preds = %.preheader216, %.lr.ph238
  %788 = phi ptr [ %789, %.lr.ph238 ], [ %707, %.preheader216 ]
  %789 = getelementptr inbounds i8, ptr %788, i64 1
  store ptr %789, ptr %4, align 8, !tbaa !5
  %790 = load ptr, ptr %55, align 8, !tbaa !5
  %791 = load i8, ptr %789, align 1, !tbaa !15
  %792 = sext i8 %791 to i64
  %793 = getelementptr inbounds i16, ptr %790, i64 %792
  %794 = load i16, ptr %793, align 2, !tbaa !16
  %795 = and i16 %794, 8192
  %.not129 = icmp eq i16 %795, 0
  br i1 %.not129, label %._crit_edge, label %.lr.ph238, !llvm.loop !127

._crit_edge:                                      ; preds = %.lr.ph238, %.preheader216
  %.lcssa = phi ptr [ %707, %.preheader216 ], [ %789, %.lr.ph238 ]
  %796 = call ptr @qh_skipfilename(ptr noundef nonnull %.lcssa) #7
  store ptr %796, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 500, ptr nonnull %8) #7
  %797 = load ptr, ptr %4, align 8, !tbaa !5
  %798 = ptrtoint ptr %796 to i64
  %799 = ptrtoint ptr %797 to i64
  %800 = sub i64 %798, %799
  %801 = trunc i64 %800 to i32
  call void @qh_copyfilename(ptr noundef nonnull %8, i32 noundef 500, ptr noundef %797, i32 noundef %801) #7
  %802 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2416), align 8, !tbaa !120
  %.not130 = icmp eq ptr %802, null
  br i1 %.not130, label %803, label %807

803:                                              ; preds = %._crit_edge
  %804 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %804, i32 noundef 7092, ptr noundef nonnull @.str.162) #7
  %805 = load ptr, ptr %4, align 8, !tbaa !5
  %806 = getelementptr inbounds i8, ptr %805, i64 -2
  br label %812

807:                                              ; preds = %._crit_edge
  %808 = call ptr @freopen(ptr noundef nonnull %8, ptr noundef nonnull @.str.163, ptr noundef nonnull %802) #7
  %.not131 = icmp eq ptr %808, null
  br i1 %.not131, label %809, label %811

809:                                              ; preds = %807
  %810 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %810, i32 noundef 6044, ptr noundef nonnull @.str.164, ptr noundef nonnull %8) #7
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null) #7
  br label %812

811:                                              ; preds = %807
  call void @qh_option(ptr noundef nonnull @.str.165, ptr noundef null, ptr noundef null)
  call void @qh_option(ptr noundef nonnull %8, ptr noundef null, ptr noundef null)
  br label %812

812:                                              ; preds = %809, %811, %803
  %.13 = phi ptr [ %.12244, %811 ], [ %.12244, %809 ], [ %806, %803 ]
  %813 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %813, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 500, ptr nonnull %8) #7
  br label %.critedge29

814:                                              ; preds = %706
  %815 = load ptr, ptr %55, align 8, !tbaa !5
  %816 = load i8, ptr %707, align 1, !tbaa !15
  %817 = sext i8 %816 to i64
  %818 = getelementptr inbounds i16, ptr %815, i64 %817
  %819 = load i16, ptr %818, align 2, !tbaa !16
  %820 = and i16 %819, 2048
  %.not128 = icmp eq i16 %820, 0
  br i1 %.not128, label %821, label %825

821:                                              ; preds = %814
  %822 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %822, i32 noundef 7093, ptr noundef nonnull @.str.166) #7
  %823 = load ptr, ptr %4, align 8, !tbaa !5
  %824 = getelementptr inbounds i8, ptr %823, i64 -2
  br label %828

825:                                              ; preds = %814
  %826 = call i32 @qh_strtol(ptr noundef nonnull %707, ptr noundef nonnull %5) #7
  store i32 %826, ptr %3, align 4, !tbaa !61
  %827 = add nsw i32 %826, 1
  store i32 %827, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 516), align 4, !tbaa !128
  call void @qh_option(ptr noundef nonnull @.str.167, ptr noundef nonnull %3, ptr noundef null)
  br label %828

828:                                              ; preds = %825, %821
  %.14 = phi ptr [ %.12244, %825 ], [ %824, %821 ]
  %829 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %829, ptr %4, align 8, !tbaa !5
  br label %.critedge29

830:                                              ; preds = %706
  %831 = load i8, ptr %707, align 1, !tbaa !15
  %832 = icmp eq i8 %831, 45
  br i1 %832, label %833, label %858

833:                                              ; preds = %830
  %834 = getelementptr inbounds i8, ptr %694, i64 2
  %835 = load i8, ptr %834, align 1, !tbaa !15
  %836 = icmp eq i8 %835, 49
  br i1 %836, label %837, label %846

837:                                              ; preds = %833
  %838 = load ptr, ptr %55, align 8, !tbaa !5
  %839 = getelementptr inbounds i8, ptr %694, i64 3
  %840 = load i8, ptr %839, align 1, !tbaa !15
  %841 = sext i8 %840 to i64
  %842 = getelementptr inbounds i16, ptr %838, i64 %841
  %843 = load i16, ptr %842, align 2, !tbaa !16
  %844 = and i16 %843, 2048
  %.not126 = icmp eq i16 %844, 0
  br i1 %.not126, label %845, label %846

845:                                              ; preds = %837
  store ptr %839, ptr %4, align 8, !tbaa !5
  store i32 -1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 544), align 8, !tbaa !129
  call void @qh_option(ptr noundef nonnull @.str.168, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 544), ptr noundef null)
  br label %.critedge29

846:                                              ; preds = %837, %833
  %847 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %847, i32 noundef 7100, ptr noundef nonnull @.str.169) #7
  %848 = load ptr, ptr %4, align 8, !tbaa !5
  br label %849

849:                                              ; preds = %849, %846
  %850 = phi ptr [ %852, %849 ], [ %848, %846 ]
  %851 = load ptr, ptr %55, align 8, !tbaa !5
  %852 = getelementptr inbounds i8, ptr %850, i64 1
  store ptr %852, ptr %4, align 8, !tbaa !5
  %853 = load i8, ptr %852, align 1, !tbaa !15
  %854 = sext i8 %853 to i64
  %855 = getelementptr inbounds i16, ptr %851, i64 %854
  %856 = load i16, ptr %855, align 2, !tbaa !16
  %857 = and i16 %856, 2048
  %.not127 = icmp eq i16 %857, 0
  br i1 %.not127, label %.critedge29.loopexit296, label %849, !llvm.loop !130

858:                                              ; preds = %830
  %859 = load ptr, ptr %55, align 8, !tbaa !5
  %860 = sext i8 %831 to i64
  %861 = getelementptr inbounds i16, ptr %859, i64 %860
  %862 = load i16, ptr %861, align 2, !tbaa !16
  %863 = and i16 %862, 2048
  %.not125 = icmp eq i16 %863, 0
  br i1 %.not125, label %864, label %868

864:                                              ; preds = %858
  %865 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %865, i32 noundef 7029, ptr noundef nonnull @.str.170) #7
  %866 = load ptr, ptr %4, align 8, !tbaa !5
  %867 = getelementptr inbounds i8, ptr %866, i64 -2
  br label %.critedge29

868:                                              ; preds = %858
  %869 = call i32 @qh_strtol(ptr noundef nonnull %707, ptr noundef nonnull %4) #7
  store i32 %869, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 544), align 8, !tbaa !129
  call void @qh_option(ptr noundef nonnull @.str.168, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 544), ptr noundef null)
  br label %.critedge29

870:                                              ; preds = %706
  %871 = load ptr, ptr %55, align 8, !tbaa !5
  %872 = load i8, ptr %707, align 1, !tbaa !15
  %873 = sext i8 %872 to i64
  %874 = getelementptr inbounds i16, ptr %871, i64 %873
  %875 = load i16, ptr %874, align 2, !tbaa !16
  %876 = and i16 %875, 2048
  %.not124 = icmp eq i16 %876, 0
  br i1 %.not124, label %877, label %881

877:                                              ; preds = %870
  %878 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %878, i32 noundef 7030, ptr noundef nonnull @.str.171) #7
  %879 = load ptr, ptr %4, align 8, !tbaa !5
  %880 = getelementptr inbounds i8, ptr %879, i64 -2
  br label %.critedge29

881:                                              ; preds = %870
  %882 = call i32 @qh_strtol(ptr noundef nonnull %707, ptr noundef nonnull %4) #7
  store i32 %882, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 560), align 8, !tbaa !131
  call void @qh_option(ptr noundef nonnull @.str.172, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 560), ptr noundef null)
  br label %.critedge29

883:                                              ; preds = %706
  %884 = load ptr, ptr %55, align 8, !tbaa !5
  %885 = load i8, ptr %707, align 1, !tbaa !15
  %886 = sext i8 %885 to i64
  %887 = getelementptr inbounds i16, ptr %884, i64 %886
  %888 = load i16, ptr %887, align 2, !tbaa !16
  %889 = and i16 %888, 2048
  %.not123 = icmp eq i16 %889, 0
  br i1 %.not123, label %890, label %894

890:                                              ; preds = %883
  %891 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %891, i32 noundef 7031, ptr noundef nonnull @.str.173) #7
  %892 = load ptr, ptr %4, align 8, !tbaa !5
  %893 = getelementptr inbounds i8, ptr %892, i64 -2
  br label %.critedge29

894:                                              ; preds = %883
  %895 = call i32 @qh_strtol(ptr noundef nonnull %707, ptr noundef nonnull %4) #7
  store i32 %895, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 484), align 4, !tbaa !132
  call void @qh_option(ptr noundef nonnull @.str.174, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 484), ptr noundef null)
  br label %.critedge29

896:                                              ; preds = %706
  %897 = call i32 @qh_strtol(ptr noundef nonnull %707, ptr noundef nonnull %5) #7
  store i32 %897, ptr %3, align 4, !tbaa !61
  %898 = load ptr, ptr %4, align 8, !tbaa !5
  %899 = load ptr, ptr %5, align 8, !tbaa !5
  %900 = icmp eq ptr %898, %899
  br i1 %900, label %901, label %905

901:                                              ; preds = %896
  %902 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %902, i32 noundef 7032, ptr noundef nonnull @.str.175) #7
  %903 = load ptr, ptr %4, align 8, !tbaa !5
  %904 = getelementptr inbounds i8, ptr %903, i64 -2
  br label %911

905:                                              ; preds = %896
  %906 = icmp slt i32 %897, 0
  br i1 %906, label %907, label %909

907:                                              ; preds = %905
  %908 = add nsw i32 %897, -1
  store i32 %908, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 524), align 4, !tbaa !133
  call void @qh_option(ptr noundef nonnull @.str.176, ptr noundef nonnull %3, ptr noundef null)
  br label %911

909:                                              ; preds = %905
  %910 = add nuw nsw i32 %897, 1
  store i32 %910, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 524), align 4, !tbaa !133
  call void @qh_option(ptr noundef nonnull @.str.177, ptr noundef nonnull %3, ptr noundef null)
  br label %911

911:                                              ; preds = %907, %909, %901
  %.15 = phi ptr [ %904, %901 ], [ %.12244, %907 ], [ %.12244, %909 ]
  %912 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %912, ptr %4, align 8, !tbaa !5
  br label %.critedge29

913:                                              ; preds = %706
  %914 = load ptr, ptr %55, align 8, !tbaa !5
  %915 = load i8, ptr %707, align 1, !tbaa !15
  %916 = sext i8 %915 to i64
  %917 = getelementptr inbounds i16, ptr %914, i64 %916
  %918 = load i16, ptr %917, align 2, !tbaa !16
  %919 = and i16 %918, 2048
  %.not122 = icmp eq i16 %919, 0
  br i1 %.not122, label %920, label %924

920:                                              ; preds = %913
  %921 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %921, i32 noundef 7033, ptr noundef nonnull @.str.178) #7
  %922 = load ptr, ptr %4, align 8, !tbaa !5
  %923 = getelementptr inbounds i8, ptr %922, i64 -2
  br label %.critedge29

924:                                              ; preds = %913
  %925 = call double @qh_strtod(ptr noundef nonnull %707, ptr noundef nonnull %4) #7
  store double %925, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 552), align 8, !tbaa !134
  call void @qh_option(ptr noundef nonnull @.str.179, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 552))
  br label %.critedge29

926:                                              ; preds = %706
  store ptr %694, ptr %4, align 8, !tbaa !5
  %927 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  %928 = load i8, ptr %694, align 1, !tbaa !15
  %929 = sext i8 %928 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %927, i32 noundef 7034, ptr noundef nonnull @.str.180, i32 noundef %929) #7
  %930 = load ptr, ptr %4, align 8, !tbaa !5
  %931 = getelementptr inbounds i8, ptr %930, i64 -2
  br label %932

932:                                              ; preds = %936, %926
  %933 = phi ptr [ %934, %936 ], [ %930, %926 ]
  %934 = getelementptr inbounds i8, ptr %933, i64 1
  store ptr %934, ptr %4, align 8, !tbaa !5
  %935 = load i8, ptr %934, align 1, !tbaa !15
  %.not137 = icmp eq i8 %935, 0
  br i1 %.not137, label %.critedge29, label %936

936:                                              ; preds = %932
  %937 = load ptr, ptr %55, align 8, !tbaa !5
  %938 = sext i8 %935 to i64
  %939 = getelementptr inbounds i16, ptr %937, i64 %938
  %940 = load i16, ptr %939, align 2, !tbaa !16
  %941 = and i16 %940, 8192
  %.not138 = icmp eq i16 %941, 0
  br i1 %.not138, label %932, label %.critedge29, !llvm.loop !135

.critedge29.loopexit296:                          ; preds = %849
  %942 = getelementptr inbounds i8, ptr %848, i64 -2
  br label %.critedge29

.critedge29:                                      ; preds = %932, %936, %.critedge29.loopexit296, %721, %722, %723, %724, %725, %787, %812, %828, %911, %732, %735, %729, %748, %744, %763, %759, %864, %868, %845, %881, %877, %894, %890, %924, %920, %704
  %.16 = phi ptr [ %.12244, %704 ], [ %.12244, %924 ], [ %923, %920 ], [ %.15, %911 ], [ %.12244, %894 ], [ %893, %890 ], [ %.12244, %881 ], [ %880, %877 ], [ %.12244, %845 ], [ %.12244, %868 ], [ %867, %864 ], [ %.14, %828 ], [ %.13, %812 ], [ %.12244, %787 ], [ %.12244, %763 ], [ %762, %759 ], [ %.12244, %748 ], [ %747, %744 ], [ %.12244, %729 ], [ %.12244, %735 ], [ %734, %732 ], [ %.12244, %725 ], [ %.12244, %724 ], [ %.12244, %723 ], [ %.12244, %722 ], [ %.12244, %721 ], [ %942, %.critedge29.loopexit296 ], [ %931, %936 ], [ %931, %932 ]
  %943 = load ptr, ptr %4, align 8, !tbaa !5
  %944 = load i8, ptr %943, align 1, !tbaa !15
  %.not119 = icmp eq i8 %944, 0
  br i1 %.not119, label %.critedge5, label %692, !llvm.loop !136

945:                                              ; preds = %.critedge3.thread.thread329
  %946 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  %947 = sext i8 %53 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %946, i32 noundef 7094, ptr noundef nonnull @.str.181, i32 noundef %947, i32 noundef %947) #7
  %948 = load ptr, ptr %4, align 8, !tbaa !5
  %949 = getelementptr inbounds i8, ptr %948, i64 -2
  br label %.critedge5

.critedge5:                                       ; preds = %.critedge29, %692, %.critedge23, %430, %.critedge15, %346, %.critedge11, %286, %.critedge7, %226, %.preheader224, %.preheader222, %.preheader220, %282, %.preheader218, %211, %224, %220, %202, %206, %188, %192, %174, %178, %161, %165, %112, %125, %121, %98, %108, %79, %89, %945, %70, %69, %68, %67, %66, %65, %64, %63, %62
  %.17 = phi ptr [ %949, %945 ], [ %.070288, %211 ], [ %.070288, %224 ], [ %223, %220 ], [ %.070288, %206 ], [ %205, %202 ], [ %.070288, %192 ], [ %191, %188 ], [ %.070288, %178 ], [ %177, %174 ], [ %.070288, %161 ], [ %.070288, %165 ], [ %.070288, %112 ], [ %.070288, %125 ], [ %124, %121 ], [ %.070288, %108 ], [ %101, %98 ], [ %.070288, %89 ], [ %82, %79 ], [ %.070288, %70 ], [ %.070288, %69 ], [ %.070288, %68 ], [ %.070288, %67 ], [ %.070288, %66 ], [ %.070288, %65 ], [ %.070288, %64 ], [ %.070288, %63 ], [ %.070288, %62 ], [ %.070288, %.preheader218 ], [ %.070288, %282 ], [ %.070288, %.preheader220 ], [ %.070288, %.preheader222 ], [ %.070288, %.preheader224 ], [ %.272, %.critedge7 ], [ %.171274, %226 ], [ %.5, %.critedge11 ], [ %.3267, %286 ], [ %.7, %.critedge15 ], [ %.6261, %346 ], [ %.11, %.critedge23 ], [ %.8254, %430 ], [ %.16, %.critedge29 ], [ %.12244, %692 ]
  %.169 = phi i32 [ %.068289, %945 ], [ %.068289, %211 ], [ %.068289, %224 ], [ %.068289, %220 ], [ %.068289, %206 ], [ %.068289, %202 ], [ %.068289, %192 ], [ %.068289, %188 ], [ %.068289, %178 ], [ %.068289, %174 ], [ %.068289, %161 ], [ %.068289, %165 ], [ %.068289, %112 ], [ %.068289, %125 ], [ %.068289, %121 ], [ %.068289, %108 ], [ %.068289, %98 ], [ %.068289, %89 ], [ %.068289, %79 ], [ %.068289, %70 ], [ %.068289, %69 ], [ %.068289, %68 ], [ %.068289, %67 ], [ %.068289, %66 ], [ %.068289, %65 ], [ %.068289, %64 ], [ %.068289, %63 ], [ %.068289, %62 ], [ %.068289, %.preheader218 ], [ 1, %282 ], [ %.068289, %.preheader220 ], [ %.068289, %.preheader222 ], [ %.068289, %.preheader224 ], [ %.068289, %226 ], [ %.068289, %.critedge7 ], [ 1, %286 ], [ 1, %.critedge11 ], [ %.068289, %346 ], [ %.068289, %.critedge15 ], [ %.068289, %430 ], [ %.068289, %.critedge23 ], [ %.068289, %692 ], [ %.068289, %.critedge29 ]
  %950 = load ptr, ptr %4, align 8, !tbaa !5
  %951 = getelementptr inbounds i8, ptr %950, i64 -1
  %952 = icmp eq ptr %951, %51
  %953 = load i8, ptr %950, align 1, !tbaa !15
  br i1 %952, label %954, label %.critedge31

954:                                              ; preds = %.critedge5
  %.not190 = icmp eq i8 %953, 0
  br i1 %.not190, label %.critedge3.thread._crit_edge.loopexit, label %955

955:                                              ; preds = %954
  %956 = tail call ptr @__ctype_b_loc() #9
  %957 = load ptr, ptr %956, align 8, !tbaa !5
  %958 = sext i8 %953 to i64
  %959 = getelementptr inbounds i16, ptr %957, i64 %958
  %960 = load i16, ptr %959, align 2, !tbaa !16
  %961 = and i16 %960, 8192
  %.not191 = icmp eq i16 %961, 0
  br i1 %.not191, label %962, label %.critedge31

962:                                              ; preds = %955
  %963 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  %964 = load i8, ptr %51, align 1, !tbaa !15
  %965 = sext i8 %964 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %963, i32 noundef 7036, ptr noundef nonnull @.str.182, i32 noundef %965, i32 noundef %965, i32 noundef %965) #7
  %966 = load ptr, ptr %4, align 8, !tbaa !5
  %967 = getelementptr inbounds i8, ptr %966, i64 -1
  %968 = load i8, ptr %966, align 1, !tbaa !15
  %.not192283 = icmp eq i8 %968, 0
  br i1 %.not192283, label %.critedge3.thread._crit_edge.loopexit, label %.lr.ph285

.lr.ph285:                                        ; preds = %962, %976
  %969 = phi i8 [ %978, %976 ], [ %968, %962 ]
  %970 = phi ptr [ %977, %976 ], [ %966, %962 ]
  %971 = load ptr, ptr %956, align 8, !tbaa !5
  %972 = sext i8 %969 to i64
  %973 = getelementptr inbounds i16, ptr %971, i64 %972
  %974 = load i16, ptr %973, align 2, !tbaa !16
  %975 = and i16 %974, 8192
  %.not193 = icmp eq i16 %975, 0
  br i1 %.not193, label %976, label %.critedge31

976:                                              ; preds = %.lr.ph285
  %977 = getelementptr inbounds i8, ptr %970, i64 1
  store ptr %977, ptr %4, align 8, !tbaa !5
  %978 = load i8, ptr %977, align 1, !tbaa !15
  %.not192 = icmp eq i8 %978, 0
  br i1 %.not192, label %.critedge3.thread._crit_edge.loopexit, label %.lr.ph285, !llvm.loop !137

.critedge31:                                      ; preds = %.lr.ph285, %.critedge5, %955
  %979 = phi i8 [ %953, %955 ], [ %953, %.critedge5 ], [ %969, %.lr.ph285 ]
  %980 = phi ptr [ %950, %955 ], [ %950, %.critedge5 ], [ %970, %.lr.ph285 ]
  %.18 = phi ptr [ %.17, %955 ], [ %.17, %.critedge5 ], [ %967, %.lr.ph285 ]
  %.not112 = icmp eq i8 %979, 0
  br i1 %.not112, label %.critedge3.thread._crit_edge.loopexit, label %.lr.ph236, !llvm.loop !138

.critedge3.thread._crit_edge.loopexit:            ; preds = %962, %954, %.critedge3.thread, %.critedge31, %46, %976
  %.070.lcssa.ph = phi ptr [ %967, %976 ], [ %.070288, %46 ], [ %.17, %954 ], [ %967, %962 ], [ %.070288, %.critedge3.thread ], [ %.18, %.critedge31 ]
  %.068.lcssa.ph = phi i32 [ %.169, %976 ], [ %.068289, %46 ], [ %.169, %954 ], [ %.169, %962 ], [ %.068289, %.critedge3.thread ], [ %.169, %.critedge31 ]
  %981 = icmp ne i32 %.068.lcssa.ph, 0
  br label %.critedge3.thread._crit_edge

.critedge3.thread._crit_edge:                     ; preds = %31, %20, %.critedge3.thread._crit_edge.loopexit, %.critedge
  %.070.lcssa = phi ptr [ null, %.critedge ], [ %.070.lcssa.ph, %.critedge3.thread._crit_edge.loopexit ], [ null, %20 ], [ null, %31 ]
  %.068.lcssa = phi i1 [ false, %.critedge ], [ %981, %.critedge3.thread._crit_edge.loopexit ], [ false, %20 ], [ false, %31 ]
  %982 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 520), align 8, !tbaa !123
  %983 = icmp ne i32 %982, 0
  %984 = load double, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2664), align 8
  %985 = fcmp olt double %984, 0x7FDFFFFFFFFFFFFF
  %or.cond33 = select i1 %983, i1 %985, i1 false
  br i1 %or.cond33, label %986, label %988

986:                                              ; preds = %.critedge3.thread._crit_edge
  %987 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %987, i32 noundef 7078, ptr noundef nonnull @.str.183) #7
  br label %988

988:                                              ; preds = %986, %.critedge3.thread._crit_edge
  %.19 = phi ptr [ %0, %986 ], [ %.070.lcssa, %.critedge3.thread._crit_edge ]
  %989 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 96), align 8
  %990 = icmp eq i32 %989, 0
  %or.cond35.not118 = select i1 %.068.lcssa, i1 %990, i1 false
  %991 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 304), align 8
  %992 = icmp ne i32 %991, 0
  %or.cond37 = select i1 %or.cond35.not118, i1 %992, i1 false
  br i1 %or.cond37, label %993, label %995

993:                                              ; preds = %988
  %994 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %994, i32 noundef 7037, ptr noundef nonnull @.str.184) #7
  br label %995

995:                                              ; preds = %993, %988
  %.20 = phi ptr [ %0, %993 ], [ %.19, %988 ]
  %996 = icmp eq ptr %.20, null
  %997 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 8), align 8
  %998 = icmp ne i32 %997, 0
  %or.cond39 = select i1 %996, i1 true, i1 %998
  br i1 %or.cond39, label %1005, label %999

999:                                              ; preds = %995
  %1000 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  %1001 = ptrtoint ptr %.20 to i64
  %1002 = ptrtoint ptr %0 to i64
  %1003 = sub i64 %1001, %1002
  %1004 = trunc i64 %1003 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1000, i32 noundef 6035, ptr noundef nonnull @.str.185, ptr noundef %0, i32 noundef %1004) #7
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null) #7
  br label %1005

1005:                                             ; preds = %999, %995
  %1006 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 136), align 8, !tbaa !76
  %1007 = icmp sgt i32 %1006, 3
  br i1 %1007, label %1008, label %1010

1008:                                             ; preds = %1005
  %1009 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2424), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1009, i32 noundef 4093, ptr noundef nonnull @.str.186) #7
  br label %1010

1010:                                             ; preds = %1008, %1005
  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 8, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #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) 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, 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, !6, i64 2984, !11, i64 2992}
!11 = !{!"int", !7, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!10, !6, i64 2424}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"short", !7, i64 0}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = distinct !{!20, !19}
!21 = !{!10, !11, i64 80}
!22 = !{!10, !11, i64 428}
!23 = !{!10, !11, i64 588}
!24 = !{!10, !12, i64 64}
!25 = !{!10, !11, i64 252}
!26 = !{!10, !12, i64 72}
!27 = !{!10, !11, i64 248}
!28 = !{!10, !11, i64 188}
!29 = !{!10, !12, i64 192}
!30 = !{!10, !12, i64 200}
!31 = !{!10, !12, i64 1784}
!32 = !{!10, !11, i64 500}
!33 = !{!10, !11, i64 128}
!34 = distinct !{!34, !19}
!35 = !{!10, !6, i64 608}
!36 = !{!10, !12, i64 448}
!37 = !{!10, !11, i64 444}
!38 = !{!10, !12, i64 216}
!39 = !{!10, !12, i64 168}
!40 = !{!10, !12, i64 24}
!41 = !{!10, !11, i64 20}
!42 = !{!10, !11, i64 624}
!43 = !{!10, !11, i64 48}
!44 = !{!10, !11, i64 52}
!45 = !{!10, !11, i64 288}
!46 = distinct !{!46, !19}
!47 = distinct !{!47, !19}
!48 = !{!10, !11, i64 268}
!49 = !{!10, !11, i64 256}
!50 = !{!10, !11, i64 84}
!51 = !{!10, !11, i64 276}
!52 = !{!10, !11, i64 284}
!53 = !{!10, !11, i64 292}
!54 = !{!10, !11, i64 260}
!55 = !{!10, !11, i64 416}
!56 = !{!10, !11, i64 432}
!57 = !{!10, !11, i64 420}
!58 = !{!10, !11, i64 88}
!59 = distinct !{!59, !19}
!60 = distinct !{!60, !19}
!61 = !{!11, !11, i64 0}
!62 = !{!12, !12, i64 0}
!63 = !{!10, !11, i64 272}
!64 = !{!10, !11, i64 280}
!65 = !{!10, !11, i64 96}
!66 = !{!10, !11, i64 296}
!67 = !{!10, !11, i64 140}
!68 = !{!10, !12, i64 160}
!69 = !{!10, !11, i64 152}
!70 = distinct !{!70, !19}
!71 = distinct !{!71, !19}
!72 = !{!10, !11, i64 4}
!73 = !{!10, !11, i64 492}
!74 = !{!10, !11, i64 496}
!75 = !{!10, !11, i64 440}
!76 = !{!10, !11, i64 136}
!77 = distinct !{!77, !19}
!78 = !{!10, !11, i64 144}
!79 = !{!10, !11, i64 44}
!80 = !{!10, !11, i64 236}
!81 = !{!10, !11, i64 148}
!82 = !{!10, !11, i64 240}
!83 = !{!10, !11, i64 472}
!84 = !{!10, !11, i64 0}
!85 = !{!10, !11, i64 564}
!86 = !{!10, !11, i64 528}
!87 = !{!10, !11, i64 572}
!88 = !{!10, !11, i64 532}
!89 = !{!10, !11, i64 180}
!90 = !{!10, !11, i64 36}
!91 = !{!10, !11, i64 232}
!92 = !{!10, !11, i64 16}
!93 = !{!10, !11, i64 224}
!94 = !{!10, !11, i64 568}
!95 = !{!10, !11, i64 12}
!96 = !{!10, !11, i64 208}
!97 = !{!10, !11, i64 56}
!98 = distinct !{!98, !19}
!99 = !{!10, !11, i64 184}
!100 = !{!10, !11, i64 212}
!101 = !{!10, !11, i64 40}
!102 = !{!10, !11, i64 504}
!103 = !{!10, !11, i64 508}
!104 = !{!10, !11, i64 584}
!105 = !{!10, !11, i64 228}
!106 = !{!10, !11, i64 244}
!107 = !{!10, !11, i64 100}
!108 = !{!10, !12, i64 2664}
!109 = !{!10, !11, i64 488}
!110 = !{!10, !11, i64 116}
!111 = !{!10, !11, i64 8}
!112 = distinct !{!112, !19}
!113 = distinct !{!113, !19}
!114 = !{!10, !11, i64 32}
!115 = !{!10, !11, i64 60}
!116 = !{!10, !11, i64 92}
!117 = !{!10, !11, i64 424}
!118 = !{!10, !11, i64 580}
!119 = !{!10, !11, i64 576}
!120 = !{!10, !6, i64 2416}
!121 = !{!122, !6, i64 80}
!122 = !{!"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}
!123 = !{!10, !11, i64 520}
!124 = !{!10, !11, i64 476}
!125 = !{!10, !11, i64 480}
!126 = distinct !{!126, !19}
!127 = distinct !{!127, !19}
!128 = !{!10, !11, i64 516}
!129 = !{!10, !11, i64 544}
!130 = distinct !{!130, !19}
!131 = !{!10, !11, i64 560}
!132 = !{!10, !11, i64 484}
!133 = !{!10, !11, i64 524}
!134 = !{!10, !12, i64 552}
!135 = distinct !{!135, !19}
!136 = distinct !{!136, !19}
!137 = distinct !{!137, !19}
!138 = distinct !{!138, !19}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass