; LLVM IR from Discngine/fpocket :: src/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, double, i32, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, i32, ptr, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, double, double, i32, double, i32, 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, i32, double, double, double, 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, i32, ptr, double, double, double, double, [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, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i64, i32, i32, i32, i32, ptr, i32, i32, double, i32, double, double, double, i32, i32, i32, i32, double, double, i32, i32, i32, i32, double, double, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr, i32, i32, i32, ptr, double, double, double, 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.10 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [7 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 [73 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [70 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 [22 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [2 x i8], align 1
@stdin = external global ptr, align 8
@.str.153 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [75 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 i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca double, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca [500 x i8], align 16
  %17 = 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
  %18 = load ptr, ptr %2, align 8, !tbaa !5
  store ptr %18, 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 4, ptr %11) #7
  store i32 0, ptr %11, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  %19 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 192), align 4, !tbaa !11
  %20 = icmp ne i32 %19, 0
  br i1 %20, label %21, label %23

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

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

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

29:                                               ; preds = %26, %23
  %30 = load ptr, ptr %2, align 8, !tbaa !5
  %31 = icmp ne ptr %30, getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 111)
  br i1 %31, label %32, label %38

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

38:                                               ; preds = %32, %29
  br label %39

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

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

57:                                               ; preds = %44, %39
  %58 = phi i1 [ false, %39 ], [ %56, %44 ]
  br i1 %58, label %59, label %62

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

62:                                               ; preds = %57
  br label %63

63:                                               ; preds = %62, %26
  br label %64

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

68:                                               ; preds = %64
  br label %69

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

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

86:                                               ; preds = %74, %69
  %87 = phi i1 [ false, %69 ], [ %85, %74 ]
  br i1 %87, label %88, label %91

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

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

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

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

103:                                              ; preds = %99
  br label %1517

104:                                              ; preds = %99
  %105 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %105, ptr %8, align 8, !tbaa !5
  %106 = load ptr, ptr %6, align 8, !tbaa !5
  %107 = getelementptr inbounds i8, ptr %106, i32 1
  store ptr %107, ptr %6, align 8, !tbaa !5
  %108 = load i8, ptr %106, align 1, !tbaa !16
  %109 = sext i8 %108 to i32
  switch i32 %109, label %1452 [
    i32 100, label %110
    i32 102, label %111
    i32 105, label %112
    i32 109, label %113
    i32 110, label %114
    i32 111, label %115
    i32 112, label %116
    i32 115, label %117
    i32 118, label %118
    i32 65, label %119
    i32 67, label %157
    i32 69, label %195
    i32 72, label %221
    i32 82, label %288
    i32 86, label %306
    i32 85, label %329
    i32 87, label %352
    i32 70, label %378
    i32 71, label %466
    i32 80, label %559
    i32 81, label %698
    i32 84, label %1110
  ]

110:                                              ; preds = %104
  call void @qh_option(ptr noundef @.str.11, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 13), align 8, !tbaa !22
  br label %1462

111:                                              ; preds = %104
  call void @qh_option(ptr noundef @.str.12, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 5)
  br label %1462

112:                                              ; preds = %104
  call void @qh_option(ptr noundef @.str.13, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 14)
  br label %1462

113:                                              ; preds = %104
  call void @qh_option(ptr noundef @.str.14, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 15)
  br label %1462

114:                                              ; preds = %104
  call void @qh_option(ptr noundef @.str.15, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 11)
  br label %1462

115:                                              ; preds = %104
  call void @qh_option(ptr noundef @.str.16, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 17)
  br label %1462

116:                                              ; preds = %104
  call void @qh_option(ptr noundef @.str.17, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 21)
  br label %1462

117:                                              ; preds = %104
  call void @qh_option(ptr noundef @.str.18, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 62), align 8, !tbaa !23
  br label %1462

118:                                              ; preds = %104
  call void @qh_option(ptr noundef @.str.19, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 97), align 4, !tbaa !24
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 13), align 8, !tbaa !22
  br label %1462

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

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

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

141:                                              ; preds = %136
  %142 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %142, i32 noundef 7002, ptr noundef @.str.20)
  br label %156

143:                                              ; preds = %136, %131, %119
  %144 = load ptr, ptr %6, align 8, !tbaa !5
  %145 = load i8, ptr %144, align 1, !tbaa !16
  %146 = sext i8 %145 to i32
  %147 = icmp eq i32 %146, 45
  br i1 %147, label %148, label %152

148:                                              ; preds = %143
  %149 = load ptr, ptr %6, align 8, !tbaa !5
  %150 = call double @qh_strtod(ptr noundef %149, ptr noundef %6)
  %151 = fneg double %150
  store double %151, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 11), align 8, !tbaa !25
  call void @qh_option(ptr noundef @.str.21, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 11))
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 46), align 8, !tbaa !26
  br label %155

152:                                              ; preds = %143
  %153 = load ptr, ptr %6, align 8, !tbaa !5
  %154 = call double @qh_strtod(ptr noundef %153, ptr noundef %6)
  store double %154, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 12), align 8, !tbaa !27
  call void @qh_option(ptr noundef @.str.22, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 12))
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 45), align 4, !tbaa !28
  br label %155

155:                                              ; preds = %152, %148
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 33), align 8, !tbaa !29
  br label %156

156:                                              ; preds = %155, %141
  br label %1462

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

169:                                              ; preds = %157
  %170 = load ptr, ptr %6, align 8, !tbaa !5
  %171 = load i8, ptr %170, align 1, !tbaa !16
  %172 = sext i8 %171 to i32
  %173 = icmp ne i32 %172, 46
  br i1 %173, label %174, label %181

174:                                              ; preds = %169
  %175 = load ptr, ptr %6, align 8, !tbaa !5
  %176 = load i8, ptr %175, align 1, !tbaa !16
  %177 = sext i8 %176 to i32
  %178 = icmp ne i32 %177, 45
  br i1 %178, label %179, label %181

179:                                              ; preds = %174
  %180 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %180, i32 noundef 7003, ptr noundef @.str.23)
  br label %194

181:                                              ; preds = %174, %169, %157
  %182 = load ptr, ptr %6, align 8, !tbaa !5
  %183 = load i8, ptr %182, align 1, !tbaa !16
  %184 = sext i8 %183 to i32
  %185 = icmp eq i32 %184, 45
  br i1 %185, label %186, label %190

186:                                              ; preds = %181
  %187 = load ptr, ptr %6, align 8, !tbaa !5
  %188 = call double @qh_strtod(ptr noundef %187, ptr noundef %6)
  %189 = fneg double %188
  store double %189, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 34), align 8, !tbaa !30
  call void @qh_option(ptr noundef @.str.24, 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 46), align 8, !tbaa !26
  br label %193

190:                                              ; preds = %181
  %191 = load ptr, ptr %6, align 8, !tbaa !5
  %192 = call double @qh_strtod(ptr noundef %191, ptr noundef %6)
  store double %192, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 35), align 8, !tbaa !31
  call void @qh_option(ptr noundef @.str.25, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 35))
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 45), align 4, !tbaa !28
  br label %193

193:                                              ; preds = %190, %186
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 33), align 8, !tbaa !29
  br label %194

194:                                              ; preds = %193, %179
  br label %1462

195:                                              ; preds = %104
  %196 = load ptr, ptr %6, align 8, !tbaa !5
  %197 = load i8, ptr %196, align 1, !tbaa !16
  %198 = sext i8 %197 to i32
  %199 = icmp eq i32 %198, 45
  br i1 %199, label %200, label %202

200:                                              ; preds = %195
  %201 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %201, i32 noundef 7004, ptr noundef @.str.26)
  br label %220

202:                                              ; preds = %195
  %203 = call ptr @__ctype_b_loc() #9
  %204 = load ptr, ptr %203, align 8, !tbaa !5
  %205 = load ptr, ptr %6, align 8, !tbaa !5
  %206 = load i8, ptr %205, align 1, !tbaa !16
  %207 = sext i8 %206 to i32
  %208 = sext i32 %207 to i64
  %209 = getelementptr inbounds i16, ptr %204, i64 %208
  %210 = load i16, ptr %209, align 2, !tbaa !17
  %211 = zext i16 %210 to i32
  %212 = and i32 %211, 2048
  %213 = icmp ne i32 %212, 0
  br i1 %213, label %216, label %214

214:                                              ; preds = %202
  %215 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %215, i32 noundef 7005, ptr noundef @.str.27)
  br label %219

216:                                              ; preds = %202
  %217 = load ptr, ptr %6, align 8, !tbaa !5
  %218 = call double @qh_strtod(ptr noundef %217, ptr noundef %6)
  store double %218, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 128), align 8, !tbaa !32
  call void @qh_option(ptr noundef @.str.28, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 128))
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 78), align 4, !tbaa !33
  br label %219

219:                                              ; preds = %216, %214
  br label %220

220:                                              ; preds = %219, %200
  br label %1462

221:                                              ; preds = %104
  %222 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %222, ptr %9, align 8, !tbaa !5
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 22), align 8, !tbaa !34
  %223 = load ptr, ptr %6, align 8, !tbaa !5
  %224 = call double @qh_strtod(ptr noundef %223, ptr noundef %7)
  br label %225

225:                                              ; preds = %257, %221
  %226 = load ptr, ptr %7, align 8, !tbaa !5
  %227 = load ptr, ptr %6, align 8, !tbaa !5
  %228 = icmp ugt ptr %226, %227
  br i1 %228, label %229, label %261

229:                                              ; preds = %225
  %230 = load ptr, ptr %7, align 8, !tbaa !5
  %231 = load i8, ptr %230, align 1, !tbaa !16
  %232 = sext i8 %231 to i32
  %233 = icmp ne i32 %232, 0
  br i1 %233, label %234, label %257

234:                                              ; preds = %229
  %235 = call ptr @__ctype_b_loc() #9
  %236 = load ptr, ptr %235, align 8, !tbaa !5
  %237 = load ptr, ptr %7, align 8, !tbaa !5
  %238 = load i8, ptr %237, align 1, !tbaa !16
  %239 = sext i8 %238 to i32
  %240 = sext i32 %239 to i64
  %241 = getelementptr inbounds i16, ptr %236, i64 %240
  %242 = load i16, ptr %241, align 2, !tbaa !17
  %243 = zext i16 %242 to i32
  %244 = and i32 %243, 8192
  %245 = icmp ne i32 %244, 0
  br i1 %245, label %257, label %246

246:                                              ; preds = %234
  %247 = load ptr, ptr %7, align 8, !tbaa !5
  %248 = load i8, ptr %247, align 1, !tbaa !16
  %249 = sext i8 %248 to i32
  %250 = icmp eq i32 %249, 44
  br i1 %250, label %251, label %254

251:                                              ; preds = %246
  %252 = load ptr, ptr %7, align 8, !tbaa !5
  %253 = getelementptr inbounds i8, ptr %252, i32 1
  store ptr %253, ptr %7, align 8, !tbaa !5
  br label %256

254:                                              ; preds = %246
  %255 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %255, i32 noundef 7006, ptr noundef @.str.29)
  br label %256

256:                                              ; preds = %254, %251
  br label %257

257:                                              ; preds = %256, %234, %229
  %258 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %258, ptr %6, align 8, !tbaa !5
  %259 = load ptr, ptr %6, align 8, !tbaa !5
  %260 = call double @qh_strtod(ptr noundef %259, ptr noundef %7)
  br label %225, !llvm.loop !35

261:                                              ; preds = %225
  %262 = load ptr, ptr %9, align 8, !tbaa !5
  %263 = load ptr, ptr %7, align 8, !tbaa !5
  %264 = icmp ult ptr %262, %263
  br i1 %264, label %265, label %286

265:                                              ; preds = %261
  %266 = load ptr, ptr %7, align 8, !tbaa !5
  %267 = load ptr, ptr %9, align 8, !tbaa !5
  %268 = ptrtoint ptr %266 to i64
  %269 = ptrtoint ptr %267 to i64
  %270 = sub i64 %268, %269
  %271 = add nsw i64 %270, 1
  %272 = call noalias ptr @calloc(i64 noundef %271, i64 noundef 1) #10
  store ptr %272, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 100), align 8, !tbaa !36
  %273 = icmp ne ptr %272, null
  br i1 %273, label %276, label %274

274:                                              ; preds = %265
  %275 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %275, i32 noundef 6034, ptr noundef @.str.30)
  call void @qh_errexit(i32 noundef 4, ptr noundef null, ptr noundef null)
  br label %276

276:                                              ; preds = %274, %265
  %277 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 100), align 8, !tbaa !36
  %278 = load ptr, ptr %9, align 8, !tbaa !5
  %279 = load ptr, ptr %7, align 8, !tbaa !5
  %280 = load ptr, ptr %9, align 8, !tbaa !5
  %281 = ptrtoint ptr %279 to i64
  %282 = ptrtoint ptr %280 to i64
  %283 = sub i64 %281, %282
  %284 = call ptr @strncpy(ptr noundef %277, ptr noundef %278, i64 noundef %283) #7
  call void @qh_option(ptr noundef @.str.31, ptr noundef null, ptr noundef null)
  %285 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 100), align 8, !tbaa !36
  call void @qh_option(ptr noundef %285, ptr noundef null, ptr noundef null)
  br label %287

286:                                              ; preds = %261
  call void @qh_option(ptr noundef @.str.32, ptr noundef null, ptr noundef null)
  br label %287

287:                                              ; preds = %286, %276
  br label %1462

288:                                              ; preds = %104
  %289 = call ptr @__ctype_b_loc() #9
  %290 = load ptr, ptr %289, align 8, !tbaa !5
  %291 = load ptr, ptr %6, align 8, !tbaa !5
  %292 = load i8, ptr %291, align 1, !tbaa !16
  %293 = sext i8 %292 to i32
  %294 = sext i32 %293 to i64
  %295 = getelementptr inbounds i16, ptr %290, i64 %294
  %296 = load i16, ptr %295, align 2, !tbaa !17
  %297 = zext i16 %296 to i32
  %298 = and i32 %297, 2048
  %299 = icmp ne i32 %298, 0
  br i1 %299, label %302, label %300

300:                                              ; preds = %288
  %301 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %301, i32 noundef 7007, ptr noundef @.str.33)
  br label %305

302:                                              ; preds = %288
  %303 = load ptr, ptr %6, align 8, !tbaa !5
  %304 = call double @qh_strtod(ptr noundef %303, ptr noundef %6)
  store double %304, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 68), align 8, !tbaa !37
  call void @qh_option(ptr noundef @.str.34, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 68))
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 67), align 4, !tbaa !38
  br label %305

305:                                              ; preds = %302, %300
  br label %1462

306:                                              ; preds = %104
  %307 = call ptr @__ctype_b_loc() #9
  %308 = load ptr, ptr %307, align 8, !tbaa !5
  %309 = load ptr, ptr %6, align 8, !tbaa !5
  %310 = load i8, ptr %309, align 1, !tbaa !16
  %311 = sext i8 %310 to i32
  %312 = sext i32 %311 to i64
  %313 = getelementptr inbounds i16, ptr %308, i64 %312
  %314 = load i16, ptr %313, align 2, !tbaa !17
  %315 = zext i16 %314 to i32
  %316 = and i32 %315, 2048
  %317 = icmp ne i32 %316, 0
  br i1 %317, label %325, label %318

318:                                              ; preds = %306
  %319 = load ptr, ptr %6, align 8, !tbaa !5
  %320 = load i8, ptr %319, align 1, !tbaa !16
  %321 = sext i8 %320 to i32
  %322 = icmp ne i32 %321, 45
  br i1 %322, label %323, label %325

323:                                              ; preds = %318
  %324 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %324, i32 noundef 7008, ptr noundef @.str.35)
  br label %328

325:                                              ; preds = %318, %306
  %326 = load ptr, ptr %6, align 8, !tbaa !5
  %327 = call double @qh_strtod(ptr noundef %326, ptr noundef %6)
  store double %327, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 37), align 8, !tbaa !39
  call void @qh_option(ptr noundef @.str.36, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 37))
  br label %328

328:                                              ; preds = %325, %323
  br label %1462

329:                                              ; preds = %104
  %330 = call ptr @__ctype_b_loc() #9
  %331 = load ptr, ptr %330, align 8, !tbaa !5
  %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 = sext i32 %334 to i64
  %336 = getelementptr inbounds i16, ptr %331, i64 %335
  %337 = load i16, ptr %336, align 2, !tbaa !17
  %338 = zext i16 %337 to i32
  %339 = and i32 %338, 2048
  %340 = icmp ne i32 %339, 0
  br i1 %340, label %348, label %341

341:                                              ; preds = %329
  %342 = load ptr, ptr %6, align 8, !tbaa !5
  %343 = load i8, ptr %342, align 1, !tbaa !16
  %344 = sext i8 %343 to i32
  %345 = icmp ne i32 %344, 45
  br i1 %345, label %346, label %348

346:                                              ; preds = %341
  %347 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %347, i32 noundef 7009, ptr noundef @.str.37)
  br label %351

348:                                              ; preds = %341, %329
  %349 = load ptr, ptr %6, align 8, !tbaa !5
  %350 = call double @qh_strtod(ptr noundef %349, ptr noundef %6)
  store double %350, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 30), align 8, !tbaa !40
  call void @qh_option(ptr noundef @.str.38, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 30))
  br label %351

351:                                              ; preds = %348, %346
  br label %1462

352:                                              ; preds = %104
  %353 = load ptr, ptr %6, align 8, !tbaa !5
  %354 = load i8, ptr %353, align 1, !tbaa !16
  %355 = sext i8 %354 to i32
  %356 = icmp eq i32 %355, 45
  br i1 %356, label %357, label %359

357:                                              ; preds = %352
  %358 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %358, i32 noundef 7010, ptr noundef @.str.39)
  br label %377

359:                                              ; preds = %352
  %360 = call ptr @__ctype_b_loc() #9
  %361 = load ptr, ptr %360, align 8, !tbaa !5
  %362 = load ptr, ptr %6, align 8, !tbaa !5
  %363 = load i8, ptr %362, align 1, !tbaa !16
  %364 = sext i8 %363 to i32
  %365 = sext i32 %364 to i64
  %366 = getelementptr inbounds i16, ptr %361, i64 %365
  %367 = load i16, ptr %366, align 2, !tbaa !17
  %368 = zext i16 %367 to i32
  %369 = and i32 %368, 2048
  %370 = icmp ne i32 %369, 0
  br i1 %370, label %373, label %371

371:                                              ; preds = %359
  %372 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %372, i32 noundef 7011, ptr noundef @.str.40)
  br label %376

373:                                              ; preds = %359
  %374 = load ptr, ptr %6, align 8, !tbaa !5
  %375 = call double @qh_strtod(ptr noundef %374, ptr noundef %6)
  store double %375, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 3), align 8, !tbaa !41
  call void @qh_option(ptr noundef @.str.41, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 3))
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 2), align 8, !tbaa !42
  br label %376

376:                                              ; preds = %373, %371
  br label %377

377:                                              ; preds = %376, %357
  br label %1462

378:                                              ; preds = %104
  br label %379

379:                                              ; preds = %464, %378
  %380 = load ptr, ptr %6, align 8, !tbaa !5
  %381 = load i8, ptr %380, align 1, !tbaa !16
  %382 = sext i8 %381 to i32
  %383 = icmp ne i32 %382, 0
  br i1 %383, label %384, label %397

384:                                              ; preds = %379
  %385 = call ptr @__ctype_b_loc() #9
  %386 = load ptr, ptr %385, align 8, !tbaa !5
  %387 = load ptr, ptr %6, align 8, !tbaa !5
  %388 = load i8, ptr %387, align 1, !tbaa !16
  %389 = sext i8 %388 to i32
  %390 = sext i32 %389 to i64
  %391 = getelementptr inbounds i16, ptr %386, i64 %390
  %392 = load i16, ptr %391, align 2, !tbaa !17
  %393 = zext i16 %392 to i32
  %394 = and i32 %393, 8192
  %395 = icmp ne i32 %394, 0
  %396 = xor i1 %395, true
  br label %397

397:                                              ; preds = %384, %379
  %398 = phi i1 [ false, %379 ], [ %396, %384 ]
  br i1 %398, label %399, label %465

399:                                              ; preds = %397
  %400 = load ptr, ptr %6, align 8, !tbaa !5
  %401 = getelementptr inbounds i8, ptr %400, i32 1
  store ptr %401, ptr %6, align 8, !tbaa !5
  %402 = load i8, ptr %400, align 1, !tbaa !16
  %403 = sext i8 %402 to i32
  switch i32 %403, label %433 [
    i32 97, label %404
    i32 65, label %405
    i32 99, label %406
    i32 67, label %407
    i32 100, label %408
    i32 68, label %409
    i32 70, label %410
    i32 105, label %411
    i32 73, label %412
    i32 109, label %413
    i32 77, label %414
    i32 110, label %415
    i32 78, label %416
    i32 111, label %417
    i32 79, label %418
    i32 112, label %424
    i32 80, label %425
    i32 81, label %426
    i32 115, label %427
    i32 83, label %428
    i32 116, label %429
    i32 118, label %430
    i32 86, label %431
    i32 120, label %432
  ]

404:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.42, 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 102), align 8, !tbaa !43
  br label %464

405:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.43, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 102), align 8, !tbaa !43
  br label %464

406:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.44, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 3)
  br label %464

407:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.45, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 4)
  br label %464

408:                                              ; preds = %399
  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 8), align 8, !tbaa !44
  br label %464

409:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.47, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 9), align 4, !tbaa !45
  br label %464

410:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.48, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 6)
  br label %464

411:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.49, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 9)
  br label %464

412:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.50, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 8)
  br label %464

413:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.51, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 16)
  br label %464

414:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.52, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 13)
  br label %464

415:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.53, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 10)
  br label %464

416:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.54, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 27)
  br label %464

417:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.55, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 12)
  br label %464

418:                                              ; preds = %399
  %419 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 55), align 4, !tbaa !46
  %420 = icmp ne i32 %419, 0
  br i1 %420, label %421, label %422

421:                                              ; preds = %418
  call void @qh_option(ptr noundef @.str.56, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 18)
  br label %423

422:                                              ; preds = %418
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 55), align 4, !tbaa !46
  br label %423

423:                                              ; preds = %422, %421
  br label %464

424:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.57, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 19)
  br label %464

425:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.58, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 20)
  br label %464

426:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.59, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 22)
  br label %464

427:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.60, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 24)
  br label %464

428:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.61, 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 102), align 8, !tbaa !43
  br label %464

429:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.62, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 25)
  br label %464

430:                                              ; preds = %399
  call void @qh_appendprint(i32 noundef 26)
  br label %464

431:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.63, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 2)
  br label %464

432:                                              ; preds = %399
  call void @qh_option(ptr noundef @.str.64, ptr noundef null, ptr noundef null)
  call void @qh_appendprint(i32 noundef 28)
  br label %464

433:                                              ; preds = %399
  %434 = load ptr, ptr %6, align 8, !tbaa !5
  %435 = getelementptr inbounds i8, ptr %434, i32 -1
  store ptr %435, ptr %6, align 8, !tbaa !5
  %436 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %437 = load ptr, ptr %6, align 8, !tbaa !5
  %438 = getelementptr inbounds i8, ptr %437, i64 0
  %439 = load i8, ptr %438, align 1, !tbaa !16
  %440 = sext i8 %439 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %436, i32 noundef 7012, ptr noundef @.str.65, i32 noundef %440)
  br label %441

441:                                              ; preds = %462, %433
  %442 = load ptr, ptr %6, align 8, !tbaa !5
  %443 = getelementptr inbounds i8, ptr %442, i32 1
  store ptr %443, ptr %6, align 8, !tbaa !5
  %444 = load i8, ptr %443, align 1, !tbaa !16
  %445 = sext i8 %444 to i32
  %446 = icmp ne i32 %445, 0
  br i1 %446, label %447, label %460

447:                                              ; preds = %441
  %448 = call ptr @__ctype_b_loc() #9
  %449 = load ptr, ptr %448, align 8, !tbaa !5
  %450 = load ptr, ptr %6, align 8, !tbaa !5
  %451 = load i8, ptr %450, align 1, !tbaa !16
  %452 = sext i8 %451 to i32
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds i16, ptr %449, i64 %453
  %455 = load i16, ptr %454, align 2, !tbaa !17
  %456 = zext i16 %455 to i32
  %457 = and i32 %456, 8192
  %458 = icmp ne i32 %457, 0
  %459 = xor i1 %458, true
  br label %460

460:                                              ; preds = %447, %441
  %461 = phi i1 [ false, %441 ], [ %459, %447 ]
  br i1 %461, label %462, label %463

462:                                              ; preds = %460
  br label %441, !llvm.loop !47

463:                                              ; preds = %460
  br label %464

464:                                              ; preds = %463, %432, %431, %430, %429, %428, %427, %426, %425, %424, %423, %417, %416, %415, %414, %413, %412, %411, %410, %409, %408, %407, %406, %405, %404
  br label %379, !llvm.loop !48

465:                                              ; preds = %397
  br label %1462

466:                                              ; preds = %104
  store i32 1, ptr %11, align 4, !tbaa !9
  call void @qh_appendprint(i32 noundef 7)
  br label %467

467:                                              ; preds = %557, %466
  %468 = load ptr, ptr %6, align 8, !tbaa !5
  %469 = load i8, ptr %468, align 1, !tbaa !16
  %470 = sext i8 %469 to i32
  %471 = icmp ne i32 %470, 0
  br i1 %471, label %472, label %485

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

485:                                              ; preds = %472, %467
  %486 = phi i1 [ false, %467 ], [ %484, %472 ]
  br i1 %486, label %487, label %558

487:                                              ; preds = %485
  %488 = load ptr, ptr %6, align 8, !tbaa !5
  %489 = getelementptr inbounds i8, ptr %488, i32 1
  store ptr %489, ptr %6, align 8, !tbaa !5
  %490 = load i8, ptr %488, align 1, !tbaa !16
  %491 = sext i8 %490 to i32
  switch i32 %491, label %526 [
    i32 97, label %492
    i32 99, label %493
    i32 104, label %494
    i32 105, label %495
    i32 110, label %496
    i32 111, label %497
    i32 112, label %498
    i32 114, label %499
    i32 116, label %500
    i32 118, label %501
    i32 68, label %502
  ]

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

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

494:                                              ; preds = %487
  call void @qh_option(ptr noundef @.str.68, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 14), align 4, !tbaa !51
  br label %557

495:                                              ; preds = %487
  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 52), align 8, !tbaa !52
  br label %557

496:                                              ; preds = %487
  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 54), align 8, !tbaa !53
  br label %557

497:                                              ; preds = %487
  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 56), align 8, !tbaa !54
  br label %557

498:                                              ; preds = %487
  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 48), align 8, !tbaa !55
  br label %557

499:                                              ; preds = %487
  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 59), align 4, !tbaa !56
  br label %557

500:                                              ; preds = %487
  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 63), align 4, !tbaa !57
  br label %557

501:                                              ; preds = %487
  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 60), align 8, !tbaa !58
  br label %557

502:                                              ; preds = %487
  %503 = call ptr @__ctype_b_loc() #9
  %504 = load ptr, ptr %503, align 8, !tbaa !5
  %505 = load ptr, ptr %6, align 8, !tbaa !5
  %506 = load i8, ptr %505, align 1, !tbaa !16
  %507 = sext i8 %506 to i32
  %508 = sext i32 %507 to i64
  %509 = getelementptr inbounds i16, ptr %504, i64 %508
  %510 = load i16, ptr %509, align 2, !tbaa !17
  %511 = zext i16 %510 to i32
  %512 = and i32 %511, 2048
  %513 = icmp ne i32 %512, 0
  br i1 %513, label %516, label %514

514:                                              ; preds = %502
  %515 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %515, i32 noundef 6035, ptr noundef @.str.76)
  br label %525

516:                                              ; preds = %502
  %517 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 15), align 8, !tbaa !59
  %518 = icmp sge i32 %517, 0
  br i1 %518, label %519, label %522

519:                                              ; preds = %516
  %520 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %521 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 15), align 8, !tbaa !59
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %520, i32 noundef 7013, ptr noundef @.str.77, i32 noundef %521)
  br label %522

522:                                              ; preds = %519, %516
  %523 = load ptr, ptr %6, align 8, !tbaa !5
  %524 = call i32 @qh_strtol(ptr noundef %523, ptr noundef %6)
  store i32 %524, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 15), align 8, !tbaa !59
  call void @qh_option(ptr noundef @.str.78, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 15), ptr noundef null)
  br label %525

525:                                              ; preds = %522, %514
  br label %557

526:                                              ; preds = %487
  %527 = load ptr, ptr %6, align 8, !tbaa !5
  %528 = getelementptr inbounds i8, ptr %527, i32 -1
  store ptr %528, ptr %6, align 8, !tbaa !5
  %529 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %530 = load ptr, ptr %6, align 8, !tbaa !5
  %531 = getelementptr inbounds i8, ptr %530, i64 0
  %532 = load i8, ptr %531, align 1, !tbaa !16
  %533 = sext i8 %532 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %529, i32 noundef 7014, ptr noundef @.str.79, i32 noundef %533)
  br label %534

534:                                              ; preds = %555, %526
  %535 = load ptr, ptr %6, align 8, !tbaa !5
  %536 = getelementptr inbounds i8, ptr %535, i32 1
  store ptr %536, ptr %6, align 8, !tbaa !5
  %537 = load i8, ptr %536, align 1, !tbaa !16
  %538 = sext i8 %537 to i32
  %539 = icmp ne i32 %538, 0
  br i1 %539, label %540, label %553

540:                                              ; preds = %534
  %541 = call ptr @__ctype_b_loc() #9
  %542 = load ptr, ptr %541, align 8, !tbaa !5
  %543 = load ptr, ptr %6, align 8, !tbaa !5
  %544 = load i8, ptr %543, align 1, !tbaa !16
  %545 = sext i8 %544 to i32
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds i16, ptr %542, i64 %546
  %548 = load i16, ptr %547, align 2, !tbaa !17
  %549 = zext i16 %548 to i32
  %550 = and i32 %549, 8192
  %551 = icmp ne i32 %550, 0
  %552 = xor i1 %551, true
  br label %553

553:                                              ; preds = %540, %534
  %554 = phi i1 [ false, %534 ], [ %552, %540 ]
  br i1 %554, label %555, label %556

555:                                              ; preds = %553
  br label %534, !llvm.loop !60

556:                                              ; preds = %553
  br label %557

557:                                              ; preds = %556, %525, %501, %500, %499, %498, %497, %496, %495, %494, %493, %492
  br label %467, !llvm.loop !61

558:                                              ; preds = %485
  br label %1462

559:                                              ; preds = %104
  br label %560

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

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

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

580:                                              ; preds = %578
  %581 = load ptr, ptr %6, align 8, !tbaa !5
  %582 = getelementptr inbounds i8, ptr %581, i32 1
  store ptr %582, ptr %6, align 8, !tbaa !5
  %583 = load i8, ptr %581, align 1, !tbaa !16
  %584 = sext i8 %583 to i32
  switch i32 %584, label %665 [
    i32 100, label %585
    i32 68, label %585
    i32 103, label %607
    i32 71, label %608
    i32 111, label %609
    i32 112, label %610
    i32 65, label %611
    i32 70, label %629
    i32 77, label %647
  ]

585:                                              ; preds = %580, %580
  %586 = load ptr, ptr %6, align 8, !tbaa !5
  %587 = getelementptr inbounds i8, ptr %586, i64 -1
  %588 = load i8, ptr %587, align 1, !tbaa !16
  store i8 %588, ptr %10, align 1, !tbaa !16
  %589 = load ptr, ptr %6, align 8, !tbaa !5
  %590 = call i32 @qh_strtol(ptr noundef %589, ptr noundef %6)
  store i32 %590, ptr %4, align 4, !tbaa !9
  store double 0.000000e+00, ptr %13, align 8, !tbaa !62
  %591 = load ptr, ptr %6, align 8, !tbaa !5
  %592 = load i8, ptr %591, align 1, !tbaa !16
  %593 = sext i8 %592 to i32
  %594 = icmp eq i32 %593, 58
  br i1 %594, label %595, label %600

595:                                              ; preds = %585
  %596 = load ptr, ptr %6, align 8, !tbaa !5
  %597 = getelementptr inbounds i8, ptr %596, i32 1
  store ptr %597, ptr %6, align 8, !tbaa !5
  %598 = load ptr, ptr %6, align 8, !tbaa !5
  %599 = call double @qh_strtod(ptr noundef %598, ptr noundef %6)
  store double %599, ptr %13, align 8, !tbaa !62
  br label %600

600:                                              ; preds = %595, %585
  %601 = load i8, ptr %10, align 1, !tbaa !16
  %602 = sext i8 %601 to i32
  %603 = icmp eq i32 %602, 100
  br i1 %603, label %604, label %605

604:                                              ; preds = %600
  call void @qh_option(ptr noundef @.str.80, ptr noundef %4, ptr noundef %13)
  br label %606

605:                                              ; preds = %600
  call void @qh_option(ptr noundef @.str.81, ptr noundef %4, ptr noundef %13)
  br label %606

606:                                              ; preds = %605, %604
  br label %696

607:                                              ; preds = %580
  call void @qh_option(ptr noundef @.str.82, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 51), align 4, !tbaa !63
  br label %696

608:                                              ; preds = %580
  call void @qh_option(ptr noundef @.str.83, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 53), align 4, !tbaa !64
  br label %696

609:                                              ; preds = %580
  call void @qh_option(ptr noundef @.str.84, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 16), align 4, !tbaa !65
  br label %696

610:                                              ; preds = %580
  call void @qh_option(ptr noundef @.str.85, ptr noundef null, ptr noundef null)
  store i32 0, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 57), align 4, !tbaa !66
  br label %696

611:                                              ; preds = %580
  %612 = call ptr @__ctype_b_loc() #9
  %613 = load ptr, ptr %612, align 8, !tbaa !5
  %614 = load ptr, ptr %6, align 8, !tbaa !5
  %615 = load i8, ptr %614, align 1, !tbaa !16
  %616 = sext i8 %615 to i32
  %617 = sext i32 %616 to i64
  %618 = getelementptr inbounds i16, ptr %613, i64 %617
  %619 = load i16, ptr %618, align 2, !tbaa !17
  %620 = zext i16 %619 to i32
  %621 = and i32 %620, 2048
  %622 = icmp ne i32 %621, 0
  br i1 %622, label %625, label %623

623:                                              ; preds = %611
  %624 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %624, i32 noundef 6036, ptr noundef @.str.86)
  br label %628

625:                                              ; preds = %611
  %626 = load ptr, ptr %6, align 8, !tbaa !5
  %627 = call i32 @qh_strtol(ptr noundef %626, ptr noundef %6)
  store i32 %627, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 25), align 4, !tbaa !67
  call void @qh_option(ptr noundef @.str.87, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 25), ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 102), align 8, !tbaa !43
  br label %628

628:                                              ; preds = %625, %623
  br label %696

629:                                              ; preds = %580
  %630 = call ptr @__ctype_b_loc() #9
  %631 = load ptr, ptr %630, align 8, !tbaa !5
  %632 = load ptr, ptr %6, align 8, !tbaa !5
  %633 = load i8, ptr %632, align 1, !tbaa !16
  %634 = sext i8 %633 to i32
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds i16, ptr %631, i64 %635
  %637 = load i16, ptr %636, align 2, !tbaa !17
  %638 = zext i16 %637 to i32
  %639 = and i32 %638, 2048
  %640 = icmp ne i32 %639, 0
  br i1 %640, label %643, label %641

641:                                              ; preds = %629
  %642 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %642, i32 noundef 6037, ptr noundef @.str.88)
  br label %646

643:                                              ; preds = %629
  %644 = load ptr, ptr %6, align 8, !tbaa !5
  %645 = call double @qh_strtod(ptr noundef %644, ptr noundef %6)
  store double %645, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 29), align 8, !tbaa !68
  call void @qh_option(ptr noundef @.str.89, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 29))
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 102), align 8, !tbaa !43
  br label %646

646:                                              ; preds = %643, %641
  br label %696

647:                                              ; preds = %580
  %648 = call ptr @__ctype_b_loc() #9
  %649 = load ptr, ptr %648, align 8, !tbaa !5
  %650 = load ptr, ptr %6, align 8, !tbaa !5
  %651 = load i8, ptr %650, align 1, !tbaa !16
  %652 = sext i8 %651 to i32
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds i16, ptr %649, i64 %653
  %655 = load i16, ptr %654, align 2, !tbaa !17
  %656 = zext i16 %655 to i32
  %657 = and i32 %656, 2048
  %658 = icmp ne i32 %657, 0
  br i1 %658, label %661, label %659

659:                                              ; preds = %647
  %660 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %660, i32 noundef 6038, ptr noundef @.str.90)
  br label %664

661:                                              ; preds = %647
  %662 = load ptr, ptr %6, align 8, !tbaa !5
  %663 = call i32 @qh_strtol(ptr noundef %662, ptr noundef %6)
  store i32 %663, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 28), align 8, !tbaa !69
  call void @qh_option(ptr noundef @.str.91, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 28), ptr noundef null)
  br label %664

664:                                              ; preds = %661, %659
  br label %696

665:                                              ; preds = %580
  %666 = load ptr, ptr %6, align 8, !tbaa !5
  %667 = getelementptr inbounds i8, ptr %666, i32 -1
  store ptr %667, ptr %6, align 8, !tbaa !5
  %668 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %669 = load ptr, ptr %6, align 8, !tbaa !5
  %670 = getelementptr inbounds i8, ptr %669, i64 0
  %671 = load i8, ptr %670, align 1, !tbaa !16
  %672 = sext i8 %671 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %668, i32 noundef 7015, ptr noundef @.str.92, i32 noundef %672)
  br label %673

673:                                              ; preds = %694, %665
  %674 = load ptr, ptr %6, align 8, !tbaa !5
  %675 = getelementptr inbounds i8, ptr %674, i32 1
  store ptr %675, ptr %6, align 8, !tbaa !5
  %676 = load i8, ptr %675, align 1, !tbaa !16
  %677 = sext i8 %676 to i32
  %678 = icmp ne i32 %677, 0
  br i1 %678, label %679, label %692

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

692:                                              ; preds = %679, %673
  %693 = phi i1 [ false, %673 ], [ %691, %679 ]
  br i1 %693, label %694, label %695

694:                                              ; preds = %692
  br label %673, !llvm.loop !70

695:                                              ; preds = %692
  br label %696

696:                                              ; preds = %695, %664, %646, %628, %610, %609, %608, %607, %606
  br label %560, !llvm.loop !71

697:                                              ; preds = %578
  br label %1462

698:                                              ; preds = %104
  store i32 -1, ptr %5, align 4, !tbaa !9
  br label %699

699:                                              ; preds = %1108, %698
  %700 = load ptr, ptr %6, align 8, !tbaa !5
  %701 = load i8, ptr %700, align 1, !tbaa !16
  %702 = sext i8 %701 to i32
  %703 = icmp ne i32 %702, 0
  br i1 %703, label %704, label %717

704:                                              ; preds = %699
  %705 = call ptr @__ctype_b_loc() #9
  %706 = load ptr, ptr %705, align 8, !tbaa !5
  %707 = load ptr, ptr %6, align 8, !tbaa !5
  %708 = load i8, ptr %707, align 1, !tbaa !16
  %709 = sext i8 %708 to i32
  %710 = sext i32 %709 to i64
  %711 = getelementptr inbounds i16, ptr %706, i64 %710
  %712 = load i16, ptr %711, align 2, !tbaa !17
  %713 = zext i16 %712 to i32
  %714 = and i32 %713, 8192
  %715 = icmp ne i32 %714, 0
  %716 = xor i1 %715, true
  br label %717

717:                                              ; preds = %704, %699
  %718 = phi i1 [ false, %699 ], [ %716, %704 ]
  br i1 %718, label %719, label %1109

719:                                              ; preds = %717
  %720 = load ptr, ptr %6, align 8, !tbaa !5
  %721 = getelementptr inbounds i8, ptr %720, i32 1
  store ptr %721, ptr %6, align 8, !tbaa !5
  %722 = load i8, ptr %720, align 1, !tbaa !16
  %723 = sext i8 %722 to i32
  switch i32 %723, label %1077 [
    i32 98, label %724
    i32 66, label %724
    i32 99, label %855
    i32 102, label %856
    i32 103, label %857
    i32 105, label %858
    i32 109, label %859
    i32 114, label %860
    i32 115, label %861
    i32 116, label %862
    i32 84, label %863
    i32 117, label %881
    i32 118, label %882
    i32 120, label %883
    i32 122, label %884
    i32 48, label %885
    i32 49, label %886
    i32 50, label %939
    i32 51, label %940
    i32 52, label %960
    i32 53, label %961
    i32 54, label %962
    i32 55, label %963
    i32 56, label %964
    i32 57, label %965
    i32 71, label %966
    i32 74, label %997
    i32 82, label %1019
    i32 86, label %1051
  ]

724:                                              ; preds = %719, %719
  %725 = load ptr, ptr %6, align 8, !tbaa !5
  %726 = getelementptr inbounds i8, ptr %725, i64 -1
  %727 = load i8, ptr %726, align 1, !tbaa !16
  store i8 %727, ptr %10, align 1, !tbaa !16
  %728 = load i8, ptr %10, align 1, !tbaa !16
  %729 = sext i8 %728 to i32
  %730 = icmp eq i32 %729, 98
  br i1 %730, label %731, label %739

731:                                              ; preds = %724
  %732 = load ptr, ptr %6, align 8, !tbaa !5
  %733 = load i8, ptr %732, align 1, !tbaa !16
  %734 = sext i8 %733 to i32
  %735 = icmp eq i32 %734, 66
  br i1 %735, label %736, label %739

736:                                              ; preds = %731
  %737 = load ptr, ptr %6, align 8, !tbaa !5
  %738 = getelementptr inbounds i8, ptr %737, i32 1
  store ptr %738, ptr %6, align 8, !tbaa !5
  store double 5.000000e-01, ptr %13, align 8, !tbaa !62
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 76), align 4, !tbaa !72
  call void @qh_option(ptr noundef @.str.93, ptr noundef null, ptr noundef %13)
  br label %1108

739:                                              ; preds = %731, %724
  %740 = load i8, ptr %10, align 1, !tbaa !16
  %741 = sext i8 %740 to i32
  %742 = icmp eq i32 %741, 98
  br i1 %742, label %743, label %751

743:                                              ; preds = %739
  %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 = icmp eq i32 %746, 98
  br i1 %747, label %748, label %751

748:                                              ; preds = %743
  %749 = load ptr, ptr %6, align 8, !tbaa !5
  %750 = getelementptr inbounds i8, ptr %749, i32 1
  store ptr %750, ptr %6, align 8, !tbaa !5
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 77), align 8, !tbaa !73
  call void @qh_option(ptr noundef @.str.94, ptr noundef null, ptr noundef null)
  br label %1108

751:                                              ; preds = %743, %739
  %752 = load ptr, ptr %6, align 8, !tbaa !5
  %753 = call i32 @qh_strtol(ptr noundef %752, ptr noundef %6)
  store i32 %753, ptr %3, align 4, !tbaa !9
  store double 0.000000e+00, ptr %13, align 8, !tbaa !62
  store i32 0, ptr %12, align 4, !tbaa !9
  %754 = load ptr, ptr %6, align 8, !tbaa !5
  %755 = load i8, ptr %754, align 1, !tbaa !16
  %756 = sext i8 %755 to i32
  %757 = icmp eq i32 %756, 58
  br i1 %757, label %758, label %827

758:                                              ; preds = %751
  %759 = load ptr, ptr %6, align 8, !tbaa !5
  %760 = getelementptr inbounds i8, ptr %759, i32 1
  store ptr %760, ptr %6, align 8, !tbaa !5
  %761 = load ptr, ptr %6, align 8, !tbaa !5
  %762 = call double @qh_strtod(ptr noundef %761, ptr noundef %6)
  store double %762, ptr %13, align 8, !tbaa !62
  %763 = fcmp oeq double %762, 0.000000e+00
  br i1 %763, label %764, label %826

764:                                              ; preds = %758
  %765 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %765, ptr %7, align 8, !tbaa !5
  br label %766

766:                                              ; preds = %824, %764
  %767 = load ptr, ptr %7, align 8, !tbaa !5
  %768 = load i8, ptr %767, align 1, !tbaa !16
  %769 = sext i8 %768 to i32
  %770 = icmp ne i32 %769, 0
  br i1 %770, label %771, label %784

771:                                              ; preds = %766
  %772 = call ptr @__ctype_b_loc() #9
  %773 = load ptr, ptr %772, align 8, !tbaa !5
  %774 = load ptr, ptr %7, align 8, !tbaa !5
  %775 = load i8, ptr %774, align 1, !tbaa !16
  %776 = sext i8 %775 to i32
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds i16, ptr %773, i64 %777
  %779 = load i16, ptr %778, align 2, !tbaa !17
  %780 = zext i16 %779 to i32
  %781 = and i32 %780, 8192
  %782 = icmp ne i32 %781, 0
  %783 = xor i1 %782, true
  br label %784

784:                                              ; preds = %771, %766
  %785 = phi i1 [ false, %766 ], [ %783, %771 ]
  br i1 %785, label %786, label %825

786:                                              ; preds = %784
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  %787 = call ptr @__ctype_toupper_loc() #9
  %788 = load ptr, ptr %787, align 8, !tbaa !5
  %789 = load ptr, ptr %7, align 8, !tbaa !5
  %790 = getelementptr inbounds i8, ptr %789, i32 1
  store ptr %790, ptr %7, align 8, !tbaa !5
  %791 = load i8, ptr %789, align 1, !tbaa !16
  %792 = sext i8 %791 to i32
  %793 = sext i32 %792 to i64
  %794 = getelementptr inbounds i32, ptr %788, i64 %793
  %795 = load i32, ptr %794, align 4, !tbaa !9
  store i32 %795, ptr %14, align 4, !tbaa !9
  %796 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %796, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  %797 = load i32, ptr %15, align 4, !tbaa !9
  %798 = icmp eq i32 %797, 66
  br i1 %798, label %799, label %824

799:                                              ; preds = %786
  %800 = load i32, ptr %3, align 4, !tbaa !9
  %801 = load ptr, ptr %7, align 8, !tbaa !5
  %802 = call i32 @qh_strtol(ptr noundef %801, ptr noundef %7)
  %803 = icmp eq i32 %800, %802
  br i1 %803, label %804, label %824

804:                                              ; preds = %799
  %805 = load ptr, ptr %7, align 8, !tbaa !5
  %806 = getelementptr inbounds i8, ptr %805, i32 1
  store ptr %806, ptr %7, align 8, !tbaa !5
  %807 = load i8, ptr %805, align 1, !tbaa !16
  %808 = sext i8 %807 to i32
  %809 = icmp eq i32 %808, 58
  br i1 %809, label %810, label %824

810:                                              ; preds = %804
  %811 = load ptr, ptr %7, align 8, !tbaa !5
  %812 = call double @qh_strtod(ptr noundef %811, ptr noundef %7)
  %813 = fcmp oeq double %812, 0.000000e+00
  br i1 %813, label %814, label %824

814:                                              ; preds = %810
  %815 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 65), align 4, !tbaa !74
  %816 = add nsw i32 %815, 1
  store i32 %816, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 65), align 4, !tbaa !74
  %817 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 24), align 8, !tbaa !75
  %818 = icmp sge i32 %817, 2
  br i1 %818, label %819, label %822

819:                                              ; preds = %814
  %820 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %821 = load i32, ptr %3, align 4, !tbaa !9
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %820, i32 noundef 2004, ptr noundef @.str.95, i32 noundef %821)
  br label %822

822:                                              ; preds = %819, %814
  call void @qh_option(ptr noundef @.str.96, ptr noundef %3, ptr noundef null)
  store i32 1, ptr %12, align 4, !tbaa !9
  %823 = load i32, ptr %3, align 4, !tbaa !9
  store i32 %823, ptr %5, align 4, !tbaa !9
  br label %825

824:                                              ; preds = %810, %804, %799, %786
  br label %766, !llvm.loop !76

825:                                              ; preds = %822, %784
  br label %826

826:                                              ; preds = %825, %758
  br label %827

827:                                              ; preds = %826, %751
  %828 = load i32, ptr %12, align 4, !tbaa !9
  %829 = icmp ne i32 %828, 0
  br i1 %829, label %854, label %830

830:                                              ; preds = %827
  %831 = load i32, ptr %5, align 4, !tbaa !9
  %832 = load i32, ptr %3, align 4, !tbaa !9
  %833 = icmp eq i32 %831, %832
  br i1 %833, label %834, label %838

834:                                              ; preds = %830
  %835 = load double, ptr %13, align 8, !tbaa !62
  %836 = fcmp oeq double %835, 0.000000e+00
  br i1 %836, label %837, label %838

837:                                              ; preds = %834
  store i32 -1, ptr %5, align 4, !tbaa !9
  br label %853

838:                                              ; preds = %834, %830
  %839 = load i8, ptr %10, align 1, !tbaa !16
  %840 = sext i8 %839 to i32
  %841 = icmp eq i32 %840, 98
  br i1 %841, label %842, label %847

842:                                              ; preds = %838
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 76), align 4, !tbaa !72
  %843 = load double, ptr %13, align 8, !tbaa !62
  %844 = fcmp oeq double %843, 0.000000e+00
  br i1 %844, label %845, label %846

845:                                              ; preds = %842
  store double -5.000000e-01, ptr %13, align 8, !tbaa !62
  br label %846

846:                                              ; preds = %845, %842
  call void @qh_option(ptr noundef @.str.97, ptr noundef %3, ptr noundef %13)
  br label %852

847:                                              ; preds = %838
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 76), align 4, !tbaa !72
  %848 = load double, ptr %13, align 8, !tbaa !62
  %849 = fcmp oeq double %848, 0.000000e+00
  br i1 %849, label %850, label %851

850:                                              ; preds = %847
  store double 5.000000e-01, ptr %13, align 8, !tbaa !62
  br label %851

851:                                              ; preds = %850, %847
  call void @qh_option(ptr noundef @.str.98, ptr noundef %3, ptr noundef %13)
  br label %852

852:                                              ; preds = %851, %846
  br label %853

853:                                              ; preds = %852, %837
  br label %854

854:                                              ; preds = %853, %827
  br label %1108

855:                                              ; preds = %719
  call void @qh_option(ptr noundef @.str.99, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 26), align 8, !tbaa !77
  br label %1108

856:                                              ; preds = %719
  call void @qh_option(ptr noundef @.str.100, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 7), align 4, !tbaa !78
  br label %1108

857:                                              ; preds = %719
  call void @qh_option(ptr noundef @.str.101, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 42), align 8, !tbaa !79
  br label %1108

858:                                              ; preds = %719
  call void @qh_option(ptr noundef @.str.102, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 27), align 4, !tbaa !80
  br label %1108

859:                                              ; preds = %719
  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 43), align 4, !tbaa !81
  br label %1108

860:                                              ; preds = %719
  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 71), align 8, !tbaa !82
  br label %1108

861:                                              ; preds = %719
  call void @qh_option(ptr noundef @.str.105, ptr noundef null, ptr noundef null)
  store i32 1, ptr @qh_qh, align 8, !tbaa !83
  br label %1108

862:                                              ; preds = %719
  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 91), align 4, !tbaa !84
  br label %1108

863:                                              ; preds = %719
  call void @qh_option(ptr noundef @.str.107, ptr noundef null, ptr noundef null)
  %864 = call ptr @__ctype_b_loc() #9
  %865 = load ptr, ptr %864, align 8, !tbaa !5
  %866 = load ptr, ptr %6, align 8, !tbaa !5
  %867 = load i8, ptr %866, align 1, !tbaa !16
  %868 = sext i8 %867 to i32
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds i16, ptr %865, i64 %869
  %871 = load i16, ptr %870, align 2, !tbaa !17
  %872 = zext i16 %871 to i32
  %873 = and i32 %872, 2048
  %874 = icmp ne i32 %873, 0
  br i1 %874, label %877, label %875

875:                                              ; preds = %863
  %876 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %876, i32 noundef 6039, ptr noundef @.str.108)
  br label %880

877:                                              ; preds = %863
  %878 = load ptr, ptr %6, align 8, !tbaa !5
  %879 = call i32 @qh_strtol(ptr noundef %878, ptr noundef %6)
  store i32 %879, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 84), align 4, !tbaa !85
  call void @qh_option(ptr noundef @.str.107, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 84), ptr noundef null)
  br label %880

880:                                              ; preds = %877, %875
  br label %1108

881:                                              ; preds = %719
  call void @qh_option(ptr noundef @.str.109, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 93), align 4, !tbaa !86
  br label %1108

882:                                              ; preds = %719
  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 85), align 8, !tbaa !87
  br label %1108

883:                                              ; preds = %719
  call void @qh_option(ptr noundef @.str.111, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 31), align 8, !tbaa !88
  br label %1108

884:                                              ; preds = %719
  call void @qh_option(ptr noundef @.str.112, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 5), align 4, !tbaa !89
  br label %1108

885:                                              ; preds = %719
  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 40), align 8, !tbaa !90
  br label %1108

886:                                              ; preds = %719
  %887 = call ptr @__ctype_b_loc() #9
  %888 = load ptr, ptr %887, align 8, !tbaa !5
  %889 = load ptr, ptr %6, align 8, !tbaa !5
  %890 = load i8, ptr %889, align 1, !tbaa !16
  %891 = sext i8 %890 to i32
  %892 = sext i32 %891 to i64
  %893 = getelementptr inbounds i16, ptr %888, i64 %892
  %894 = load i16, ptr %893, align 2, !tbaa !17
  %895 = zext i16 %894 to i32
  %896 = and i32 %895, 2048
  %897 = icmp ne i32 %896, 0
  br i1 %897, label %899, label %898

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

899:                                              ; preds = %886
  %900 = load ptr, ptr %6, align 8, !tbaa !5
  %901 = getelementptr inbounds i8, ptr %900, i32 1
  store ptr %901, ptr %6, align 8, !tbaa !5
  %902 = load i8, ptr %900, align 1, !tbaa !16
  %903 = sext i8 %902 to i32
  switch i32 %903, label %907 [
    i32 48, label %904
    i32 49, label %905
    i32 50, label %906
  ]

904:                                              ; preds = %899
  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 38), align 8, !tbaa !92
  br label %938

905:                                              ; preds = %899
  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 92), align 8, !tbaa !93
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 91), align 4, !tbaa !84
  br label %938

906:                                              ; preds = %899
  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 41), align 4, !tbaa !94
  br label %938

907:                                              ; preds = %899
  %908 = load ptr, ptr %6, align 8, !tbaa !5
  %909 = getelementptr inbounds i8, ptr %908, i32 -1
  store ptr %909, ptr %6, align 8, !tbaa !5
  %910 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %911 = load ptr, ptr %6, align 8, !tbaa !5
  %912 = getelementptr inbounds i8, ptr %911, i64 0
  %913 = load i8, ptr %912, align 1, !tbaa !16
  %914 = sext i8 %913 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %910, i32 noundef 7016, ptr noundef @.str.118, i32 noundef %914)
  br label %915

915:                                              ; preds = %936, %907
  %916 = load ptr, ptr %6, align 8, !tbaa !5
  %917 = getelementptr inbounds i8, ptr %916, i32 1
  store ptr %917, ptr %6, align 8, !tbaa !5
  %918 = load i8, ptr %917, align 1, !tbaa !16
  %919 = sext i8 %918 to i32
  %920 = icmp ne i32 %919, 0
  br i1 %920, label %921, label %934

921:                                              ; preds = %915
  %922 = call ptr @__ctype_b_loc() #9
  %923 = load ptr, ptr %922, align 8, !tbaa !5
  %924 = load ptr, ptr %6, align 8, !tbaa !5
  %925 = load i8, ptr %924, align 1, !tbaa !16
  %926 = sext i8 %925 to i32
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds i16, ptr %923, i64 %927
  %929 = load i16, ptr %928, align 2, !tbaa !17
  %930 = zext i16 %929 to i32
  %931 = and i32 %930, 8192
  %932 = icmp ne i32 %931, 0
  %933 = xor i1 %932, true
  br label %934

934:                                              ; preds = %921, %915
  %935 = phi i1 [ false, %915 ], [ %933, %921 ]
  br i1 %935, label %936, label %937

936:                                              ; preds = %934
  br label %915, !llvm.loop !95

937:                                              ; preds = %934
  br label %938

938:                                              ; preds = %937, %906, %905, %904
  br label %1108

939:                                              ; preds = %719
  call void @qh_option(ptr noundef @.str.119, ptr noundef null, ptr noundef null)
  store i32 0, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 32), align 4, !tbaa !96
  br label %941

940:                                              ; preds = %719
  call void @qh_option(ptr noundef @.str.120, ptr noundef null, ptr noundef null)
  store i32 0, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 36), align 8, !tbaa !97
  br label %941

941:                                              ; preds = %940, %939
  %942 = call ptr @__ctype_b_loc() #9
  %943 = load ptr, ptr %942, align 8, !tbaa !5
  %944 = load ptr, ptr %6, align 8, !tbaa !5
  %945 = load i8, ptr %944, align 1, !tbaa !16
  %946 = sext i8 %945 to i32
  %947 = sext i32 %946 to i64
  %948 = getelementptr inbounds i16, ptr %943, i64 %947
  %949 = load i16, ptr %948, align 2, !tbaa !17
  %950 = zext i16 %949 to i32
  %951 = and i32 %950, 2048
  %952 = icmp ne i32 %951, 0
  br i1 %952, label %953, label %959

953:                                              ; preds = %941
  %954 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %955 = load ptr, ptr %6, align 8, !tbaa !5
  %956 = getelementptr inbounds i8, ptr %955, i32 1
  store ptr %956, ptr %6, align 8, !tbaa !5
  %957 = load i8, ptr %955, align 1, !tbaa !16
  %958 = sext i8 %957 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %954, i32 noundef 7017, ptr noundef @.str.121, i32 noundef %958)
  br label %959

959:                                              ; preds = %953, %941
  br label %1108

960:                                              ; preds = %719
  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 6), align 8, !tbaa !98
  br label %1108

961:                                              ; preds = %719
  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 79), align 8, !tbaa !99
  br label %1108

962:                                              ; preds = %719
  call void @qh_option(ptr noundef @.str.124, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 80), align 4, !tbaa !100
  br label %1108

963:                                              ; preds = %719
  call void @qh_option(ptr noundef @.str.125, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 96), align 8, !tbaa !101
  br label %1108

964:                                              ; preds = %719
  call void @qh_option(ptr noundef @.str.126, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 39), align 4, !tbaa !102
  br label %1108

965:                                              ; preds = %719
  call void @qh_option(ptr noundef @.str.127, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 44), align 8, !tbaa !103
  br label %1108

966:                                              ; preds = %719
  %967 = load ptr, ptr %6, align 8, !tbaa !5
  %968 = call i32 @qh_strtol(ptr noundef %967, ptr noundef %7)
  store i32 %968, ptr %4, align 4, !tbaa !9
  %969 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 17), align 8, !tbaa !104
  %970 = icmp ne i32 %969, 0
  br i1 %970, label %971, label %973

971:                                              ; preds = %966
  %972 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %972, i32 noundef 7018, ptr noundef @.str.128)
  br label %995

973:                                              ; preds = %966
  %974 = load ptr, ptr %6, align 8, !tbaa !5
  %975 = load ptr, ptr %7, align 8, !tbaa !5
  %976 = icmp eq ptr %974, %975
  br i1 %976, label %977, label %979

977:                                              ; preds = %973
  %978 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %978, i32 noundef 7019, ptr noundef @.str.129)
  br label %994

979:                                              ; preds = %973
  %980 = load i32, ptr %4, align 4, !tbaa !9
  %981 = icmp slt i32 %980, 0
  br i1 %981, label %987, label %982

982:                                              ; preds = %979
  %983 = load ptr, ptr %6, align 8, !tbaa !5
  %984 = load i8, ptr %983, align 1, !tbaa !16
  %985 = sext i8 %984 to i32
  %986 = icmp eq i32 %985, 45
  br i1 %986, label %987, label %990

987:                                              ; preds = %982, %979
  %988 = load i32, ptr %4, align 4, !tbaa !9
  %989 = sub nsw i32 %988, 1
  store i32 %989, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 17), align 8, !tbaa !104
  call void @qh_option(ptr noundef @.str.130, ptr noundef %4, ptr noundef null)
  br label %993

990:                                              ; preds = %982
  %991 = load i32, ptr %4, align 4, !tbaa !9
  %992 = add nsw i32 %991, 1
  store i32 %992, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 17), align 8, !tbaa !104
  call void @qh_option(ptr noundef @.str.131, ptr noundef %4, ptr noundef null)
  br label %993

993:                                              ; preds = %990, %987
  br label %994

994:                                              ; preds = %993, %977
  br label %995

995:                                              ; preds = %994, %971
  %996 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %996, ptr %6, align 8, !tbaa !5
  br label %1108

997:                                              ; preds = %719
  %998 = call ptr @__ctype_b_loc() #9
  %999 = load ptr, ptr %998, align 8, !tbaa !5
  %1000 = load ptr, ptr %6, align 8, !tbaa !5
  %1001 = load i8, ptr %1000, align 1, !tbaa !16
  %1002 = sext i8 %1001 to i32
  %1003 = sext i32 %1002 to i64
  %1004 = getelementptr inbounds i16, ptr %999, i64 %1003
  %1005 = load i16, ptr %1004, align 2, !tbaa !17
  %1006 = zext i16 %1005 to i32
  %1007 = and i32 %1006, 2048
  %1008 = icmp ne i32 %1007, 0
  br i1 %1008, label %1015, label %1009

1009:                                             ; preds = %997
  %1010 = load ptr, ptr %6, align 8, !tbaa !5
  %1011 = load i8, ptr %1010, align 1, !tbaa !16
  %1012 = sext i8 %1011 to i32
  %1013 = icmp ne i32 %1012, 45
  br i1 %1013, label %1014, label %1015

1014:                                             ; preds = %1009
  store double 0.000000e+00, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 184), align 8, !tbaa !105
  br label %1018

1015:                                             ; preds = %1009, %997
  %1016 = load ptr, ptr %6, align 8, !tbaa !5
  %1017 = call double @qh_strtod(ptr noundef %1016, ptr noundef %6)
  store double %1017, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 184), align 8, !tbaa !105
  call void @qh_option(ptr noundef @.str.132, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 184))
  br label %1018

1018:                                             ; preds = %1015, %1014
  br label %1108

1019:                                             ; preds = %719
  %1020 = call ptr @__ctype_b_loc() #9
  %1021 = load ptr, ptr %1020, align 8, !tbaa !5
  %1022 = load ptr, ptr %6, align 8, !tbaa !5
  %1023 = load i8, ptr %1022, align 1, !tbaa !16
  %1024 = sext i8 %1023 to i32
  %1025 = sext i32 %1024 to i64
  %1026 = getelementptr inbounds i16, ptr %1021, i64 %1025
  %1027 = load i16, ptr %1026, align 2, !tbaa !17
  %1028 = zext i16 %1027 to i32
  %1029 = and i32 %1028, 2048
  %1030 = icmp ne i32 %1029, 0
  br i1 %1030, label %1038, label %1031

1031:                                             ; preds = %1019
  %1032 = load ptr, ptr %6, align 8, !tbaa !5
  %1033 = load i8, ptr %1032, align 1, !tbaa !16
  %1034 = sext i8 %1033 to i32
  %1035 = icmp ne i32 %1034, 45
  br i1 %1035, label %1036, label %1038

1036:                                             ; preds = %1031
  %1037 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1037, i32 noundef 7020, ptr noundef @.str.133)
  br label %1050

1038:                                             ; preds = %1031, %1019
  %1039 = load ptr, ptr %6, align 8, !tbaa !5
  %1040 = call i32 @qh_strtol(ptr noundef %1039, ptr noundef %6)
  store i32 %1040, ptr %4, align 4, !tbaa !9
  store i32 %1040, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 75), align 8, !tbaa !106
  %1041 = load i32, ptr %4, align 4, !tbaa !9
  %1042 = icmp sgt i32 %1041, 0
  br i1 %1042, label %1043, label %1044

1043:                                             ; preds = %1038
  call void @qh_option(ptr noundef @.str.134, ptr noundef %4, ptr noundef null)
  br label %1049

1044:                                             ; preds = %1038
  %1045 = load i32, ptr %4, align 4, !tbaa !9
  %1046 = icmp slt i32 %1045, -1
  br i1 %1046, label %1047, label %1048

1047:                                             ; preds = %1044
  call void @qh_option(ptr noundef @.str.135, ptr noundef %4, ptr noundef null)
  br label %1048

1048:                                             ; preds = %1047, %1044
  br label %1049

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

1050:                                             ; preds = %1049, %1036
  br label %1108

1051:                                             ; preds = %719
  %1052 = load ptr, ptr %6, align 8, !tbaa !5
  %1053 = call i32 @qh_strtol(ptr noundef %1052, ptr noundef %7)
  store i32 %1053, ptr %4, align 4, !tbaa !9
  %1054 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 20), align 4, !tbaa !107
  %1055 = icmp ne i32 %1054, 0
  br i1 %1055, label %1056, label %1058

1056:                                             ; preds = %1051
  %1057 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1057, i32 noundef 7021, ptr noundef @.str.136)
  br label %1075

1058:                                             ; preds = %1051
  %1059 = load ptr, ptr %6, align 8, !tbaa !5
  %1060 = load ptr, ptr %7, align 8, !tbaa !5
  %1061 = icmp eq ptr %1059, %1060
  br i1 %1061, label %1062, label %1064

1062:                                             ; preds = %1058
  %1063 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1063, i32 noundef 7022, ptr noundef @.str.137)
  br label %1074

1064:                                             ; preds = %1058
  %1065 = load i32, ptr %4, align 4, !tbaa !9
  %1066 = icmp slt i32 %1065, 0
  br i1 %1066, label %1067, label %1070

1067:                                             ; preds = %1064
  %1068 = load i32, ptr %4, align 4, !tbaa !9
  %1069 = sub nsw i32 %1068, 1
  store i32 %1069, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 20), align 4, !tbaa !107
  call void @qh_option(ptr noundef @.str.138, ptr noundef %4, ptr noundef null)
  br label %1073

1070:                                             ; preds = %1064
  call void @qh_option(ptr noundef @.str.139, ptr noundef %4, ptr noundef null)
  %1071 = load i32, ptr %4, align 4, !tbaa !9
  %1072 = add nsw i32 %1071, 1
  store i32 %1072, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 20), align 4, !tbaa !107
  br label %1073

1073:                                             ; preds = %1070, %1067
  br label %1074

1074:                                             ; preds = %1073, %1062
  br label %1075

1075:                                             ; preds = %1074, %1056
  %1076 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %1076, ptr %6, align 8, !tbaa !5
  br label %1108

1077:                                             ; preds = %719
  %1078 = load ptr, ptr %6, align 8, !tbaa !5
  %1079 = getelementptr inbounds i8, ptr %1078, i32 -1
  store ptr %1079, ptr %6, align 8, !tbaa !5
  %1080 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %1081 = load ptr, ptr %6, align 8, !tbaa !5
  %1082 = getelementptr inbounds i8, ptr %1081, i64 0
  %1083 = load i8, ptr %1082, align 1, !tbaa !16
  %1084 = sext i8 %1083 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1080, i32 noundef 7023, ptr noundef @.str.140, i32 noundef %1084)
  br label %1085

1085:                                             ; preds = %1106, %1077
  %1086 = load ptr, ptr %6, align 8, !tbaa !5
  %1087 = getelementptr inbounds i8, ptr %1086, i32 1
  store ptr %1087, 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, 0
  br i1 %1090, label %1091, label %1104

1091:                                             ; preds = %1085
  %1092 = call ptr @__ctype_b_loc() #9
  %1093 = load ptr, ptr %1092, align 8, !tbaa !5
  %1094 = load ptr, ptr %6, align 8, !tbaa !5
  %1095 = load i8, ptr %1094, align 1, !tbaa !16
  %1096 = sext i8 %1095 to i32
  %1097 = sext i32 %1096 to i64
  %1098 = getelementptr inbounds i16, ptr %1093, i64 %1097
  %1099 = load i16, ptr %1098, align 2, !tbaa !17
  %1100 = zext i16 %1099 to i32
  %1101 = and i32 %1100, 8192
  %1102 = icmp ne i32 %1101, 0
  %1103 = xor i1 %1102, true
  br label %1104

1104:                                             ; preds = %1091, %1085
  %1105 = phi i1 [ false, %1085 ], [ %1103, %1091 ]
  br i1 %1105, label %1106, label %1107

1106:                                             ; preds = %1104
  br label %1085, !llvm.loop !108

1107:                                             ; preds = %1104
  br label %1108

1108:                                             ; preds = %1107, %1075, %1050, %1018, %995, %965, %964, %963, %962, %961, %960, %959, %938, %898, %885, %884, %883, %882, %881, %880, %862, %861, %860, %859, %858, %857, %856, %855, %854, %748, %736
  br label %699, !llvm.loop !109

1109:                                             ; preds = %717
  br label %1462

1110:                                             ; preds = %104
  br label %1111

1111:                                             ; preds = %1450, %1110
  %1112 = load ptr, ptr %6, align 8, !tbaa !5
  %1113 = load i8, ptr %1112, align 1, !tbaa !16
  %1114 = sext i8 %1113 to i32
  %1115 = icmp ne i32 %1114, 0
  br i1 %1115, label %1116, label %1129

1116:                                             ; preds = %1111
  %1117 = call ptr @__ctype_b_loc() #9
  %1118 = load ptr, ptr %1117, align 8, !tbaa !5
  %1119 = load ptr, ptr %6, align 8, !tbaa !5
  %1120 = load i8, ptr %1119, align 1, !tbaa !16
  %1121 = sext i8 %1120 to i32
  %1122 = sext i32 %1121 to i64
  %1123 = getelementptr inbounds i16, ptr %1118, i64 %1122
  %1124 = load i16, ptr %1123, align 2, !tbaa !17
  %1125 = zext i16 %1124 to i32
  %1126 = and i32 %1125, 8192
  %1127 = icmp ne i32 %1126, 0
  %1128 = xor i1 %1127, true
  br label %1129

1129:                                             ; preds = %1116, %1111
  %1130 = phi i1 [ false, %1111 ], [ %1128, %1116 ]
  br i1 %1130, label %1131, label %1451

1131:                                             ; preds = %1129
  %1132 = call ptr @__ctype_b_loc() #9
  %1133 = load ptr, ptr %1132, align 8, !tbaa !5
  %1134 = load ptr, ptr %6, align 8, !tbaa !5
  %1135 = load i8, ptr %1134, align 1, !tbaa !16
  %1136 = sext i8 %1135 to i32
  %1137 = sext i32 %1136 to i64
  %1138 = getelementptr inbounds i16, ptr %1133, i64 %1137
  %1139 = load i16, ptr %1138, align 2, !tbaa !17
  %1140 = zext i16 %1139 to i32
  %1141 = and i32 %1140, 2048
  %1142 = icmp ne i32 %1141, 0
  br i1 %1142, label %1148, label %1143

1143:                                             ; preds = %1131
  %1144 = load ptr, ptr %6, align 8, !tbaa !5
  %1145 = load i8, ptr %1144, align 1, !tbaa !16
  %1146 = sext i8 %1145 to i32
  %1147 = icmp eq i32 %1146, 45
  br i1 %1147, label %1148, label %1151

1148:                                             ; preds = %1143, %1131
  %1149 = load ptr, ptr %6, align 8, !tbaa !5
  %1150 = call i32 @qh_strtol(ptr noundef %1149, ptr noundef %6)
  store i32 %1150, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 24), align 8, !tbaa !75
  br label %1450

1151:                                             ; preds = %1143
  %1152 = load ptr, ptr %6, align 8, !tbaa !5
  %1153 = getelementptr inbounds i8, ptr %1152, i32 1
  store ptr %1153, ptr %6, align 8, !tbaa !5
  %1154 = load i8, ptr %1152, align 1, !tbaa !16
  %1155 = sext i8 %1154 to i32
  switch i32 %1155, label %1418 [
    i32 97, label %1156
    i32 99, label %1157
    i32 115, label %1158
    i32 118, label %1159
    i32 122, label %1160
    i32 67, label %1174
    i32 70, label %1194
    i32 73, label %1214
    i32 79, label %1267
    i32 80, label %1326
    i32 77, label %1344
    i32 82, label %1362
    i32 86, label %1380
    i32 87, label %1400
  ]

1156:                                             ; preds = %1151
  call void @qh_option(ptr noundef @.str.141, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 4), align 8, !tbaa !110
  br label %1449

1157:                                             ; preds = %1151
  call void @qh_option(ptr noundef @.str.142, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 10), align 8, !tbaa !111
  br label %1449

1158:                                             ; preds = %1151
  call void @qh_option(ptr noundef @.str.143, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 61), align 4, !tbaa !112
  br label %1449

1159:                                             ; preds = %1151
  call void @qh_option(ptr noundef @.str.144, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 95), align 4, !tbaa !113
  br label %1449

1160:                                             ; preds = %1151
  %1161 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %1162 = icmp eq ptr %1161, inttoptr (i64 1 to ptr)
  br i1 %1162, label %1163, label %1164

1163:                                             ; preds = %1160
  call void @qh_option(ptr noundef @.str.145, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 94), align 8, !tbaa !114
  br label %1173

1164:                                             ; preds = %1160
  %1165 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 150), align 8, !tbaa !115
  %1166 = icmp ne ptr %1165, null
  br i1 %1166, label %1169, label %1167

1167:                                             ; preds = %1164
  %1168 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1168, i32 noundef 7024, ptr noundef @.str.146)
  br label %1172

1169:                                             ; preds = %1164
  call void @qh_option(ptr noundef @.str.145, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 94), align 8, !tbaa !114
  %1170 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 150), align 8, !tbaa !115
  store ptr %1170, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %1171 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 150), align 8, !tbaa !115
  store ptr %1171, ptr getelementptr inbounds (%struct.qhmemT, ptr @qhmem, i32 0, i32 13), align 8, !tbaa !116
  br label %1172

1172:                                             ; preds = %1169, %1167
  br label %1173

1173:                                             ; preds = %1172, %1163
  br label %1449

1174:                                             ; preds = %1151
  %1175 = call ptr @__ctype_b_loc() #9
  %1176 = load ptr, ptr %1175, align 8, !tbaa !5
  %1177 = load ptr, ptr %6, align 8, !tbaa !5
  %1178 = load i8, ptr %1177, align 1, !tbaa !16
  %1179 = sext i8 %1178 to i32
  %1180 = sext i32 %1179 to i64
  %1181 = getelementptr inbounds i16, ptr %1176, i64 %1180
  %1182 = load i16, ptr %1181, align 2, !tbaa !17
  %1183 = zext i16 %1182 to i32
  %1184 = and i32 %1183, 2048
  %1185 = icmp ne i32 %1184, 0
  br i1 %1185, label %1188, label %1186

1186:                                             ; preds = %1174
  %1187 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1187, i32 noundef 7025, ptr noundef @.str.147)
  br label %1193

1188:                                             ; preds = %1174
  %1189 = load ptr, ptr %6, align 8, !tbaa !5
  %1190 = call i32 @qh_strtol(ptr noundef %1189, ptr noundef %6)
  store i32 %1190, ptr %4, align 4, !tbaa !9
  call void @qh_option(ptr noundef @.str.148, ptr noundef %4, ptr noundef null)
  %1191 = load i32, ptr %4, align 4, !tbaa !9
  %1192 = add nsw i32 %1191, 1
  store i32 %1192, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 82), align 4, !tbaa !118
  br label %1193

1193:                                             ; preds = %1188, %1186
  br label %1449

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

1206:                                             ; preds = %1194
  %1207 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1207, i32 noundef 7026, ptr noundef @.str.149)
  br label %1213

1208:                                             ; preds = %1194
  %1209 = load ptr, ptr %6, align 8, !tbaa !5
  %1210 = call i32 @qh_strtol(ptr noundef %1209, ptr noundef %6)
  store i32 %1210, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 72), align 4, !tbaa !119
  call void @qh_option(ptr noundef @.str.150, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 72), ptr noundef null)
  %1211 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 72), align 4, !tbaa !119
  %1212 = sdiv i32 %1211, 2
  store i32 %1212, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 73), align 8, !tbaa !120
  br label %1213

1213:                                             ; preds = %1208, %1206
  br label %1449

1214:                                             ; preds = %1151
  %1215 = call ptr @__ctype_b_loc() #9
  %1216 = load ptr, ptr %1215, align 8, !tbaa !5
  %1217 = load ptr, ptr %6, align 8, !tbaa !5
  %1218 = load i8, ptr %1217, align 1, !tbaa !16
  %1219 = sext i8 %1218 to i32
  %1220 = sext i32 %1219 to i64
  %1221 = getelementptr inbounds i16, ptr %1216, i64 %1220
  %1222 = load i16, ptr %1221, align 2, !tbaa !17
  %1223 = zext i16 %1222 to i32
  %1224 = and i32 %1223, 8192
  %1225 = icmp ne i32 %1224, 0
  br i1 %1225, label %1229, label %1226

1226:                                             ; preds = %1214
  %1227 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %1228 = load ptr, ptr %6, align 8, !tbaa !5
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1227, i32 noundef 7027, ptr noundef @.str.151, ptr noundef %1228)
  br label %1229

1229:                                             ; preds = %1226, %1214
  br label %1230

1230:                                             ; preds = %1242, %1229
  %1231 = call ptr @__ctype_b_loc() #9
  %1232 = load ptr, ptr %1231, align 8, !tbaa !5
  %1233 = load ptr, ptr %6, align 8, !tbaa !5
  %1234 = load i8, ptr %1233, align 1, !tbaa !16
  %1235 = sext i8 %1234 to i32
  %1236 = sext i32 %1235 to i64
  %1237 = getelementptr inbounds i16, ptr %1232, i64 %1236
  %1238 = load i16, ptr %1237, align 2, !tbaa !17
  %1239 = zext i16 %1238 to i32
  %1240 = and i32 %1239, 8192
  %1241 = icmp ne i32 %1240, 0
  br i1 %1241, label %1242, label %1245

1242:                                             ; preds = %1230
  %1243 = load ptr, ptr %6, align 8, !tbaa !5
  %1244 = getelementptr inbounds i8, ptr %1243, i32 1
  store ptr %1244, ptr %6, align 8, !tbaa !5
  br label %1230, !llvm.loop !121

1245:                                             ; preds = %1230
  %1246 = load ptr, ptr %6, align 8, !tbaa !5
  %1247 = call ptr @qh_skipfilename(ptr noundef %1246)
  store ptr %1247, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 500, ptr %16) #7
  %1248 = getelementptr inbounds [500 x i8], ptr %16, i64 0, i64 0
  %1249 = load ptr, ptr %6, align 8, !tbaa !5
  %1250 = load ptr, ptr %7, align 8, !tbaa !5
  %1251 = load ptr, ptr %6, align 8, !tbaa !5
  %1252 = ptrtoint ptr %1250 to i64
  %1253 = ptrtoint ptr %1251 to i64
  %1254 = sub i64 %1252, %1253
  %1255 = trunc i64 %1254 to i32
  call void @qh_copyfilename(ptr noundef %1248, i32 noundef 500, ptr noundef %1249, i32 noundef %1255)
  %1256 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %1256, ptr %6, align 8, !tbaa !5
  %1257 = getelementptr inbounds [500 x i8], ptr %16, i64 0, i64 0
  %1258 = load ptr, ptr @stdin, align 8, !tbaa !5
  %1259 = call ptr @freopen(ptr noundef %1257, ptr noundef @.str.152, ptr noundef %1258)
  %1260 = icmp ne ptr %1259, null
  br i1 %1260, label %1264, label %1261

1261:                                             ; preds = %1245
  %1262 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %1263 = getelementptr inbounds [500 x i8], ptr %16, i64 0, i64 0
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1262, i32 noundef 6041, ptr noundef @.str.153, ptr noundef %1263)
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null)
  br label %1266

1264:                                             ; preds = %1245
  call void @qh_option(ptr noundef @.str.154, ptr noundef null, ptr noundef null)
  %1265 = getelementptr inbounds [500 x i8], ptr %16, i64 0, i64 0
  call void @qh_option(ptr noundef %1265, ptr noundef null, ptr noundef null)
  br label %1266

1266:                                             ; preds = %1264, %1261
  call void @llvm.lifetime.end.p0(i64 500, ptr %16) #7
  br label %1449

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

1279:                                             ; preds = %1267
  %1280 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %1281 = load ptr, ptr %6, align 8, !tbaa !5
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1280, i32 noundef 7028, ptr noundef @.str.155, ptr noundef %1281)
  br label %1282

1282:                                             ; preds = %1279, %1267
  br label %1283

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

1295:                                             ; preds = %1283
  %1296 = load ptr, ptr %6, align 8, !tbaa !5
  %1297 = getelementptr inbounds i8, ptr %1296, i32 1
  store ptr %1297, ptr %6, align 8, !tbaa !5
  br label %1283, !llvm.loop !122

1298:                                             ; preds = %1283
  %1299 = load ptr, ptr %6, align 8, !tbaa !5
  %1300 = call ptr @qh_skipfilename(ptr noundef %1299)
  store ptr %1300, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 500, ptr %17) #7
  %1301 = getelementptr inbounds [500 x i8], ptr %17, i64 0, i64 0
  %1302 = load ptr, ptr %6, align 8, !tbaa !5
  %1303 = load ptr, ptr %7, align 8, !tbaa !5
  %1304 = load ptr, ptr %6, align 8, !tbaa !5
  %1305 = ptrtoint ptr %1303 to i64
  %1306 = ptrtoint ptr %1304 to i64
  %1307 = sub i64 %1305, %1306
  %1308 = trunc i64 %1307 to i32
  call void @qh_copyfilename(ptr noundef %1301, i32 noundef 500, ptr noundef %1302, i32 noundef %1308)
  %1309 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %1309, ptr %6, align 8, !tbaa !5
  %1310 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 150), align 8, !tbaa !115
  %1311 = icmp ne ptr %1310, null
  br i1 %1311, label %1314, label %1312

1312:                                             ; preds = %1298
  %1313 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1313, i32 noundef 6266, ptr noundef @.str.156)
  br label %1325

1314:                                             ; preds = %1298
  %1315 = getelementptr inbounds [500 x i8], ptr %17, i64 0, i64 0
  %1316 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 150), align 8, !tbaa !115
  %1317 = call ptr @freopen(ptr noundef %1315, ptr noundef @.str.157, ptr noundef %1316)
  %1318 = icmp ne ptr %1317, null
  br i1 %1318, label %1322, label %1319

1319:                                             ; preds = %1314
  %1320 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %1321 = getelementptr inbounds [500 x i8], ptr %17, i64 0, i64 0
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1320, i32 noundef 6044, ptr noundef @.str.153, ptr noundef %1321)
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null)
  br label %1324

1322:                                             ; preds = %1314
  call void @qh_option(ptr noundef @.str.158, ptr noundef null, ptr noundef null)
  %1323 = getelementptr inbounds [500 x i8], ptr %17, i64 0, i64 0
  call void @qh_option(ptr noundef %1323, ptr noundef null, ptr noundef null)
  br label %1324

1324:                                             ; preds = %1322, %1319
  br label %1325

1325:                                             ; preds = %1324, %1312
  call void @llvm.lifetime.end.p0(i64 500, ptr %17) #7
  br label %1449

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

1338:                                             ; preds = %1326
  %1339 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1339, i32 noundef 7029, ptr noundef @.str.159)
  br label %1343

1340:                                             ; preds = %1326
  %1341 = load ptr, ptr %6, align 8, !tbaa !5
  %1342 = call i32 @qh_strtol(ptr noundef %1341, ptr noundef %6)
  store i32 %1342, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 88), align 4, !tbaa !123
  call void @qh_option(ptr noundef @.str.160, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 88), ptr noundef null)
  br label %1343

1343:                                             ; preds = %1340, %1338
  br label %1449

1344:                                             ; preds = %1151
  %1345 = call ptr @__ctype_b_loc() #9
  %1346 = load ptr, ptr %1345, align 8, !tbaa !5
  %1347 = load ptr, ptr %6, align 8, !tbaa !5
  %1348 = load i8, ptr %1347, align 1, !tbaa !16
  %1349 = sext i8 %1348 to i32
  %1350 = sext i32 %1349 to i64
  %1351 = getelementptr inbounds i16, ptr %1346, i64 %1350
  %1352 = load i16, ptr %1351, align 2, !tbaa !17
  %1353 = zext i16 %1352 to i32
  %1354 = and i32 %1353, 2048
  %1355 = icmp ne i32 %1354, 0
  br i1 %1355, label %1358, label %1356

1356:                                             ; preds = %1344
  %1357 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1357, i32 noundef 7030, ptr noundef @.str.161)
  br label %1361

1358:                                             ; preds = %1344
  %1359 = load ptr, ptr %6, align 8, !tbaa !5
  %1360 = call i32 @qh_strtol(ptr noundef %1359, ptr noundef %6)
  store i32 %1360, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 90), align 8, !tbaa !124
  call void @qh_option(ptr noundef @.str.162, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 90), ptr noundef null)
  br label %1361

1361:                                             ; preds = %1358, %1356
  br label %1449

1362:                                             ; preds = %1151
  %1363 = call ptr @__ctype_b_loc() #9
  %1364 = load ptr, ptr %1363, align 8, !tbaa !5
  %1365 = load ptr, ptr %6, align 8, !tbaa !5
  %1366 = load i8, ptr %1365, align 1, !tbaa !16
  %1367 = sext i8 %1366 to i32
  %1368 = sext i32 %1367 to i64
  %1369 = getelementptr inbounds i16, ptr %1364, i64 %1368
  %1370 = load i16, ptr %1369, align 2, !tbaa !17
  %1371 = zext i16 %1370 to i32
  %1372 = and i32 %1371, 2048
  %1373 = icmp ne i32 %1372, 0
  br i1 %1373, label %1376, label %1374

1374:                                             ; preds = %1362
  %1375 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1375, i32 noundef 7031, ptr noundef @.str.163)
  br label %1379

1376:                                             ; preds = %1362
  %1377 = load ptr, ptr %6, align 8, !tbaa !5
  %1378 = call i32 @qh_strtol(ptr noundef %1377, ptr noundef %6)
  store i32 %1378, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 74), align 4, !tbaa !125
  call void @qh_option(ptr noundef @.str.164, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 74), ptr noundef null)
  br label %1379

1379:                                             ; preds = %1376, %1374
  br label %1449

1380:                                             ; preds = %1151
  %1381 = load ptr, ptr %6, align 8, !tbaa !5
  %1382 = call i32 @qh_strtol(ptr noundef %1381, ptr noundef %7)
  store i32 %1382, ptr %4, align 4, !tbaa !9
  %1383 = load ptr, ptr %6, align 8, !tbaa !5
  %1384 = load ptr, ptr %7, align 8, !tbaa !5
  %1385 = icmp eq ptr %1383, %1384
  br i1 %1385, label %1386, label %1388

1386:                                             ; preds = %1380
  %1387 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1387, i32 noundef 7032, ptr noundef @.str.165)
  br label %1398

1388:                                             ; preds = %1380
  %1389 = load i32, ptr %4, align 4, !tbaa !9
  %1390 = icmp slt i32 %1389, 0
  br i1 %1390, label %1391, label %1394

1391:                                             ; preds = %1388
  %1392 = load i32, ptr %4, align 4, !tbaa !9
  %1393 = sub nsw i32 %1392, 1
  store i32 %1393, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 83), align 8, !tbaa !126
  call void @qh_option(ptr noundef @.str.166, ptr noundef %4, ptr noundef null)
  br label %1397

1394:                                             ; preds = %1388
  %1395 = load i32, ptr %4, align 4, !tbaa !9
  %1396 = add nsw i32 %1395, 1
  store i32 %1396, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 83), align 8, !tbaa !126
  call void @qh_option(ptr noundef @.str.167, ptr noundef %4, ptr noundef null)
  br label %1397

1397:                                             ; preds = %1394, %1391
  br label %1398

1398:                                             ; preds = %1397, %1386
  %1399 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %1399, ptr %6, align 8, !tbaa !5
  br label %1449

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

1412:                                             ; preds = %1400
  %1413 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1413, i32 noundef 7033, ptr noundef @.str.168)
  br label %1417

1414:                                             ; preds = %1400
  %1415 = load ptr, ptr %6, align 8, !tbaa !5
  %1416 = call double @qh_strtod(ptr noundef %1415, ptr noundef %6)
  store double %1416, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 89), align 8, !tbaa !127
  call void @qh_option(ptr noundef @.str.169, ptr noundef null, ptr noundef getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 89))
  br label %1417

1417:                                             ; preds = %1414, %1412
  br label %1449

1418:                                             ; preds = %1151
  %1419 = load ptr, ptr %6, align 8, !tbaa !5
  %1420 = getelementptr inbounds i8, ptr %1419, i32 -1
  store ptr %1420, ptr %6, align 8, !tbaa !5
  %1421 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %1422 = load ptr, ptr %6, align 8, !tbaa !5
  %1423 = getelementptr inbounds i8, ptr %1422, i64 0
  %1424 = load i8, ptr %1423, align 1, !tbaa !16
  %1425 = sext i8 %1424 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1421, i32 noundef 7034, ptr noundef @.str.170, i32 noundef %1425)
  br label %1426

1426:                                             ; preds = %1447, %1418
  %1427 = load ptr, ptr %6, align 8, !tbaa !5
  %1428 = getelementptr inbounds i8, ptr %1427, i32 1
  store ptr %1428, ptr %6, align 8, !tbaa !5
  %1429 = load i8, ptr %1428, align 1, !tbaa !16
  %1430 = sext i8 %1429 to i32
  %1431 = icmp ne i32 %1430, 0
  br i1 %1431, label %1432, label %1445

1432:                                             ; preds = %1426
  %1433 = call ptr @__ctype_b_loc() #9
  %1434 = load ptr, ptr %1433, align 8, !tbaa !5
  %1435 = load ptr, ptr %6, align 8, !tbaa !5
  %1436 = load i8, ptr %1435, align 1, !tbaa !16
  %1437 = sext i8 %1436 to i32
  %1438 = sext i32 %1437 to i64
  %1439 = getelementptr inbounds i16, ptr %1434, i64 %1438
  %1440 = load i16, ptr %1439, align 2, !tbaa !17
  %1441 = zext i16 %1440 to i32
  %1442 = and i32 %1441, 8192
  %1443 = icmp ne i32 %1442, 0
  %1444 = xor i1 %1443, true
  br label %1445

1445:                                             ; preds = %1432, %1426
  %1446 = phi i1 [ false, %1426 ], [ %1444, %1432 ]
  br i1 %1446, label %1447, label %1448

1447:                                             ; preds = %1445
  br label %1426, !llvm.loop !128

1448:                                             ; preds = %1445
  br label %1449

1449:                                             ; preds = %1448, %1417, %1398, %1379, %1361, %1343, %1325, %1266, %1213, %1193, %1173, %1159, %1158, %1157, %1156
  br label %1450

1450:                                             ; preds = %1449, %1148
  br label %1111, !llvm.loop !129

1451:                                             ; preds = %1129
  br label %1462

1452:                                             ; preds = %104
  %1453 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %1454 = load ptr, ptr %6, align 8, !tbaa !5
  %1455 = getelementptr inbounds i8, ptr %1454, i64 -1
  %1456 = load i8, ptr %1455, align 1, !tbaa !16
  %1457 = sext i8 %1456 to i32
  %1458 = load ptr, ptr %6, align 8, !tbaa !5
  %1459 = getelementptr inbounds i8, ptr %1458, i64 -1
  %1460 = load i8, ptr %1459, align 1, !tbaa !16
  %1461 = sext i8 %1460 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1453, i32 noundef 7035, ptr noundef @.str.171, i32 noundef %1457, i32 noundef %1461)
  br label %1462

1462:                                             ; preds = %1452, %1451, %1109, %697, %558, %465, %377, %351, %328, %305, %287, %220, %194, %156, %118, %117, %116, %115, %114, %113, %112, %111, %110
  %1463 = load ptr, ptr %6, align 8, !tbaa !5
  %1464 = getelementptr inbounds i8, ptr %1463, i64 -1
  %1465 = load ptr, ptr %8, align 8, !tbaa !5
  %1466 = icmp eq ptr %1464, %1465
  br i1 %1466, label %1467, label %1516

1467:                                             ; preds = %1462
  %1468 = load ptr, ptr %6, align 8, !tbaa !5
  %1469 = load i8, ptr %1468, align 1, !tbaa !16
  %1470 = sext i8 %1469 to i32
  %1471 = icmp ne i32 %1470, 0
  br i1 %1471, label %1472, label %1516

1472:                                             ; preds = %1467
  %1473 = call ptr @__ctype_b_loc() #9
  %1474 = load ptr, ptr %1473, align 8, !tbaa !5
  %1475 = load ptr, ptr %6, align 8, !tbaa !5
  %1476 = load i8, ptr %1475, align 1, !tbaa !16
  %1477 = sext i8 %1476 to i32
  %1478 = sext i32 %1477 to i64
  %1479 = getelementptr inbounds i16, ptr %1474, i64 %1478
  %1480 = load i16, ptr %1479, align 2, !tbaa !17
  %1481 = zext i16 %1480 to i32
  %1482 = and i32 %1481, 8192
  %1483 = icmp ne i32 %1482, 0
  br i1 %1483, label %1516, label %1484

1484:                                             ; preds = %1472
  %1485 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  %1486 = load ptr, ptr %8, align 8, !tbaa !5
  %1487 = load i8, ptr %1486, align 1, !tbaa !16
  %1488 = sext i8 %1487 to i32
  %1489 = load ptr, ptr %8, align 8, !tbaa !5
  %1490 = load i8, ptr %1489, align 1, !tbaa !16
  %1491 = sext i8 %1490 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1485, i32 noundef 7036, ptr noundef @.str.172, i32 noundef %1488, i32 noundef %1491)
  br label %1492

1492:                                             ; preds = %1512, %1484
  %1493 = load ptr, ptr %6, align 8, !tbaa !5
  %1494 = load i8, ptr %1493, align 1, !tbaa !16
  %1495 = sext i8 %1494 to i32
  %1496 = icmp ne i32 %1495, 0
  br i1 %1496, label %1497, label %1510

1497:                                             ; preds = %1492
  %1498 = call ptr @__ctype_b_loc() #9
  %1499 = load ptr, ptr %1498, align 8, !tbaa !5
  %1500 = load ptr, ptr %6, align 8, !tbaa !5
  %1501 = load i8, ptr %1500, align 1, !tbaa !16
  %1502 = sext i8 %1501 to i32
  %1503 = sext i32 %1502 to i64
  %1504 = getelementptr inbounds i16, ptr %1499, i64 %1503
  %1505 = load i16, ptr %1504, align 2, !tbaa !17
  %1506 = zext i16 %1505 to i32
  %1507 = and i32 %1506, 8192
  %1508 = icmp ne i32 %1507, 0
  %1509 = xor i1 %1508, true
  br label %1510

1510:                                             ; preds = %1497, %1492
  %1511 = phi i1 [ false, %1492 ], [ %1509, %1497 ]
  br i1 %1511, label %1512, label %1515

1512:                                             ; preds = %1510
  %1513 = load ptr, ptr %6, align 8, !tbaa !5
  %1514 = getelementptr inbounds i8, ptr %1513, i32 1
  store ptr %1514, ptr %6, align 8, !tbaa !5
  br label %1492, !llvm.loop !130

1515:                                             ; preds = %1510
  br label %1516

1516:                                             ; preds = %1515, %1472, %1467, %1462
  br label %64, !llvm.loop !131

1517:                                             ; preds = %103, %64
  %1518 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 82), align 4, !tbaa !118
  %1519 = icmp ne i32 %1518, 0
  br i1 %1519, label %1520, label %1525

1520:                                             ; preds = %1517
  %1521 = load double, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 184), align 8, !tbaa !105
  %1522 = fcmp olt double %1521, 0x7FDFFFFFFFFFFFFF
  br i1 %1522, label %1523, label %1525

1523:                                             ; preds = %1520
  %1524 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1524, i32 noundef 7078, ptr noundef @.str.173)
  br label %1525

1525:                                             ; preds = %1523, %1520, %1517
  %1526 = load i32, ptr %11, align 4, !tbaa !9
  %1527 = icmp ne i32 %1526, 0
  br i1 %1527, label %1528, label %1536

1528:                                             ; preds = %1525
  %1529 = load i32, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 16), align 4, !tbaa !65
  %1530 = icmp ne i32 %1529, 0
  br i1 %1530, label %1536, label %1531

1531:                                             ; preds = %1528
  %1532 = load i32, ptr getelementptr inbounds ([29 x i32], ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 58), i64 0, i64 1), align 4, !tbaa !9
  %1533 = icmp ne i32 %1532, 0
  br i1 %1533, label %1534, label %1536

1534:                                             ; preds = %1531
  %1535 = load ptr, ptr getelementptr inbounds (%struct.qhT, ptr @qh_qh, i32 0, i32 151), align 8, !tbaa !15
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %1535, i32 noundef 7037, ptr noundef @.str.174)
  br label %1536

1536:                                             ; preds = %1534, %1531, %1528, %1525
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 4, 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 2660}
!12 = !{!"qhT", !10, i64 0, !10, i64 4, !10, i64 8, !13, i64 16, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !13, i64 56, !13, i64 64, !10, i64 72, !10, i64 76, !10, i64 80, !10, i64 84, !10, i64 88, !6, i64 96, !10, i64 104, !10, i64 108, !6, i64 112, !10, i64 120, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !13, i64 152, !13, i64 160, !10, i64 168, !10, i64 172, !10, i64 176, !13, i64 184, !13, i64 192, !10, i64 200, !13, i64 208, !10, i64 216, !10, i64 220, !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, !7, i64 296, !10, i64 412, !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, !13, i64 544, !10, i64 552, !10, i64 556, !10, i64 560, !10, i64 564, !10, i64 568, !10, i64 572, !10, i64 576, !10, i64 580, !13, i64 584, !10, i64 592, !6, i64 600, !6, i64 608, !10, i64 616, !10, i64 620, !10, i64 624, !10, i64 628, !10, i64 632, !6, i64 640, !10, i64 648, !6, i64 656, !10, i64 664, !7, i64 668, !10, i64 924, !7, i64 928, !7, i64 1184, !10, i64 1696, !10, i64 1700, !10, i64 1704, !10, i64 1708, !10, i64 1712, !10, i64 1716, !6, i64 1720, !6, i64 1728, !6, i64 1736, !6, i64 1744, !13, 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, !10, i64 1856, !6, i64 1864, !13, i64 1872, !13, i64 1880, !13, i64 1888, !13, i64 1896, !7, i64 1904, !7, i64 1912, !7, i64 2112, !7, i64 2152, !7, i64 2352, !6, i64 2392, !6, i64 2400, !6, i64 2408, !6, i64 2416, !10, i64 2424, !10, i64 2428, !10, i64 2432, !6, i64 2440, !6, i64 2448, !6, i64 2456, !6, i64 2464, !6, i64 2472, !10, i64 2480, !10, i64 2484, !6, i64 2488, !10, i64 2496, !6, i64 2504, !6, i64 2512, !6, i64 2520, !6, i64 2528, !10, i64 2536, !10, i64 2540, !10, i64 2544, !10, i64 2548, !10, i64 2552, !10, i64 2556, !10, i64 2560, !14, i64 2568, !10, i64 2576, !10, i64 2580, !10, i64 2584, !10, i64 2588, !6, i64 2592, !10, i64 2600, !10, i64 2604, !13, i64 2608, !10, i64 2616, !13, i64 2624, !13, i64 2632, !13, i64 2640, !10, i64 2648, !10, i64 2652, !10, i64 2656, !10, i64 2660, !13, i64 2664, !13, i64 2672, !10, i64 2680, !10, i64 2684, !10, i64 2688, !10, i64 2692, !13, i64 2696, !13, i64 2704, !10, i64 2712, !10, i64 2716, !10, i64 2720, !10, i64 2724, !6, i64 2728, !6, i64 2736, !6, i64 2744, !6, i64 2752, !6, i64 2760, !6, i64 2768, !6, i64 2776, !6, i64 2784, !10, i64 2792, !6, i64 2800, !6, i64 2808, !10, i64 2816, !10, i64 2820, !10, i64 2824, !6, i64 2832, !13, i64 2840, !13, i64 2848, !13, i64 2856, !10, i64 2864, !10, i64 2868, !6, i64 2872, !6, i64 2880, !10, i64 2888}
!13 = !{!"double", !7, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!12, !6, i64 2408}
!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 72}
!23 = !{!12, !10, i64 424}
!24 = !{!12, !10, i64 580}
!25 = !{!12, !13, i64 56}
!26 = !{!12, !10, i64 248}
!27 = !{!12, !13, i64 64}
!28 = !{!12, !10, i64 244}
!29 = !{!12, !10, i64 176}
!30 = !{!12, !13, i64 184}
!31 = !{!12, !13, i64 192}
!32 = !{!12, !13, i64 1776}
!33 = !{!12, !10, i64 500}
!34 = !{!12, !10, i64 120}
!35 = distinct !{!35, !20}
!36 = !{!12, !6, i64 600}
!37 = !{!12, !13, i64 448}
!38 = !{!12, !10, i64 444}
!39 = !{!12, !13, i64 208}
!40 = !{!12, !13, i64 160}
!41 = !{!12, !13, i64 16}
!42 = !{!12, !10, i64 8}
!43 = !{!12, !10, i64 616}
!44 = !{!12, !10, i64 40}
!45 = !{!12, !10, i64 44}
!46 = !{!12, !10, i64 284}
!47 = distinct !{!47, !20}
!48 = distinct !{!48, !20}
!49 = !{!12, !10, i64 264}
!50 = !{!12, !10, i64 252}
!51 = !{!12, !10, i64 76}
!52 = !{!12, !10, i64 272}
!53 = !{!12, !10, i64 280}
!54 = !{!12, !10, i64 288}
!55 = !{!12, !10, i64 256}
!56 = !{!12, !10, i64 412}
!57 = !{!12, !10, i64 428}
!58 = !{!12, !10, i64 416}
!59 = !{!12, !10, i64 80}
!60 = distinct !{!60, !20}
!61 = distinct !{!61, !20}
!62 = !{!13, !13, i64 0}
!63 = !{!12, !10, i64 268}
!64 = !{!12, !10, i64 276}
!65 = !{!12, !10, i64 84}
!66 = !{!12, !10, i64 292}
!67 = !{!12, !10, i64 132}
!68 = !{!12, !13, i64 152}
!69 = !{!12, !10, i64 144}
!70 = distinct !{!70, !20}
!71 = distinct !{!71, !20}
!72 = !{!12, !10, i64 492}
!73 = !{!12, !10, i64 496}
!74 = !{!12, !10, i64 436}
!75 = !{!12, !10, i64 128}
!76 = distinct !{!76, !20}
!77 = !{!12, !10, i64 136}
!78 = !{!12, !10, i64 36}
!79 = !{!12, !10, i64 232}
!80 = !{!12, !10, i64 140}
!81 = !{!12, !10, i64 236}
!82 = !{!12, !10, i64 472}
!83 = !{!12, !10, i64 0}
!84 = !{!12, !10, i64 556}
!85 = !{!12, !10, i64 524}
!86 = !{!12, !10, i64 564}
!87 = !{!12, !10, i64 528}
!88 = !{!12, !10, i64 168}
!89 = !{!12, !10, i64 28}
!90 = !{!12, !10, i64 224}
!91 = !{!12, !10, i64 4}
!92 = !{!12, !10, i64 216}
!93 = !{!12, !10, i64 560}
!94 = !{!12, !10, i64 228}
!95 = distinct !{!95, !20}
!96 = !{!12, !10, i64 172}
!97 = !{!12, !10, i64 200}
!98 = !{!12, !10, i64 32}
!99 = !{!12, !10, i64 504}
!100 = !{!12, !10, i64 508}
!101 = !{!12, !10, i64 576}
!102 = !{!12, !10, i64 220}
!103 = !{!12, !10, i64 240}
!104 = !{!12, !10, i64 88}
!105 = !{!12, !13, i64 2608}
!106 = !{!12, !10, i64 488}
!107 = !{!12, !10, i64 108}
!108 = distinct !{!108, !20}
!109 = distinct !{!109, !20}
!110 = !{!12, !10, i64 24}
!111 = !{!12, !10, i64 48}
!112 = !{!12, !10, i64 420}
!113 = !{!12, !10, i64 572}
!114 = !{!12, !10, i64 568}
!115 = !{!12, !6, i64 2400}
!116 = !{!117, !6, i64 80}
!117 = !{!"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}
!118 = !{!12, !10, i64 516}
!119 = !{!12, !10, i64 476}
!120 = !{!12, !10, i64 480}
!121 = distinct !{!121, !20}
!122 = distinct !{!122, !20}
!123 = !{!12, !10, i64 540}
!124 = !{!12, !10, i64 552}
!125 = !{!12, !10, i64 484}
!126 = !{!12, !10, i64 520}
!127 = !{!12, !13, i64 544}
!128 = distinct !{!128, !20}
!129 = distinct !{!129, !20}
!130 = distinct !{!130, !20}
!131 = distinct !{!131, !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, double, i32, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, i32, ptr, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, double, double, i32, double, i32, 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, i32, double, double, double, 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, i32, ptr, double, double, double, double, [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, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i64, i32, i32, i32, i32, ptr, i32, i32, double, i32, double, double, double, i32, i32, i32, i32, double, double, i32, i32, i32, i32, double, double, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr, i32, i32, i32, ptr, double, double, double, 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.10 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [7 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 [73 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [70 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 [22 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.121 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [2 x i8], align 1
@stdin = external local_unnamed_addr global ptr, align 8
@.str.153 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [75 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 2660), align 4, !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 2408), align 8, !tbaa !14
  tail call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %11, i32 noundef 6245, ptr noundef nonnull @.str.10) #7
  tail call void @qh_exit(i32 noundef 6245) #7
  br label %12

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

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

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

20:                                               ; preds = %16, %15
  %21 = load i8, ptr %0, align 1, !tbaa !15
  %.not96214 = icmp eq i8 %21, 0
  br i1 %.not96214, 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
  %.not97 = icmp eq i16 %30, 0
  br i1 %.not97, label %31, label %.preheader208.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
  %.not96 = icmp eq i8 %33, 0
  br i1 %.not96, label %.critedge3.thread._crit_edge, label %23, !llvm.loop !18

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

.preheader208.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.ph218

.lr.ph218:                                        ; preds = %.critedge31, %.preheader208.preheader
  %37 = phi i8 [ %863, %.critedge31 ], [ %35, %.preheader208.preheader ]
  %.promoted216 = phi ptr [ %864, %.critedge31 ], [ %34, %.preheader208.preheader ]
  %.058256 = phi i32 [ %.159, %.critedge31 ], [ 0, %.preheader208.preheader ]
  br label %38

38:                                               ; preds = %.lr.ph218, %46
  %39 = phi i8 [ %37, %.lr.ph218 ], [ %48, %46 ]
  %40 = phi ptr [ %.promoted216, %.lr.ph218 ], [ %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
  %.not100 = icmp eq i16 %45, 0
  br i1 %.not100, 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
  %.not99 = icmp eq i8 %48, 0
  br i1 %.not99, 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.thread313

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

.critedge3.thread.thread313:                      ; 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 %832 [
    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 %88
    i8 69, label %105
    i8 72, label %121
    i8 82, label %160
    i8 86, label %172
    i8 85, label %184
    i8 87, label %196
    i8 70, label %.preheader
    i8 71, label %266
    i8 80, label %.preheader202
    i8 81, label %.preheader204
    i8 84, label %.preheader206
  ]

.preheader206:                                    ; preds = %.critedge3.thread.thread313
  %54 = load i8, ptr %52, align 1, !tbaa !15
  %.not105226 = icmp eq i8 %54, 0
  br i1 %.not105226, label %.critedge5, label %.lr.ph227

.lr.ph227:                                        ; preds = %.preheader206
  %55 = tail call ptr @__ctype_b_loc() #9
  br label %638

.preheader204:                                    ; preds = %.critedge3.thread.thread313
  %56 = load i8, ptr %52, align 1, !tbaa !15
  %.not124233 = icmp eq i8 %56, 0
  br i1 %.not124233, label %.critedge5, label %.lr.ph235

.lr.ph235:                                        ; preds = %.preheader204
  %57 = tail call ptr @__ctype_b_loc() #9
  br label %400

.preheader202:                                    ; preds = %.critedge3.thread.thread313
  %58 = load i8, ptr %52, align 1, !tbaa !15
  %.not142237 = icmp eq i8 %58, 0
  br i1 %.not142237, label %.critedge5, label %.lr.ph238

.lr.ph238:                                        ; preds = %.preheader202
  %59 = tail call ptr @__ctype_b_loc() #9
  br label %324

.preheader:                                       ; preds = %.critedge3.thread.thread313
  %60 = load i8, ptr %52, align 1, !tbaa !15
  %.not154244 = icmp eq i8 %60, 0
  br i1 %.not154244, label %.critedge5, label %.lr.ph245

.lr.ph245:                                        ; preds = %.preheader
  %61 = tail call ptr @__ctype_b_loc() #9
  br label %212

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

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

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

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

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

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

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

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

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

71:                                               ; preds = %.critedge3.thread.thread313
  %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
  %.fr199 = freeze i16 %77
  %78 = and i16 %.fr199, 2048
  %.not172 = icmp ne i16 %78, 0
  %.off = add i8 %74, -45
  %switch = icmp ult i8 %.off, 2
  %or.cond191 = or i1 %switch, %.not172
  br i1 %or.cond191, label %81, label %79

79:                                               ; preds = %71
  %80 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %80, i32 noundef 7002, ptr noundef nonnull @.str.20) #7
  br label %.critedge5

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

84:                                               ; preds = %81
  %85 = fneg double %83
  store double %85, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 56), align 8, !tbaa !24
  call void @qh_option(ptr noundef nonnull @.str.21, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 56))
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 248), align 8, !tbaa !25
  br label %87

86:                                               ; preds = %81
  store double %83, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 64), align 8, !tbaa !26
  call void @qh_option(ptr noundef nonnull @.str.22, 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 244), align 4, !tbaa !27
  br label %87

87:                                               ; preds = %86, %84
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 176), align 8, !tbaa !28
  br label %.critedge5

88:                                               ; preds = %.critedge3.thread.thread313
  %89 = tail call ptr @__ctype_b_loc() #9
  %90 = load ptr, ptr %89, align 8, !tbaa !5
  %91 = load i8, ptr %52, align 1, !tbaa !15
  %92 = sext i8 %91 to i64
  %93 = getelementptr inbounds i16, ptr %90, i64 %92
  %94 = load i16, ptr %93, align 2, !tbaa !16
  %.fr198 = freeze i16 %94
  %95 = and i16 %.fr198, 2048
  %.not169 = icmp ne i16 %95, 0
  %.off192 = add i8 %91, -45
  %switch193 = icmp ult i8 %.off192, 2
  %or.cond194 = or i1 %switch193, %.not169
  br i1 %or.cond194, label %98, label %96

96:                                               ; preds = %88
  %97 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %97, i32 noundef 7003, ptr noundef nonnull @.str.23) #7
  br label %.critedge5

98:                                               ; preds = %88
  %99 = icmp eq i8 %91, 45
  %100 = call double @qh_strtod(ptr noundef nonnull %52, ptr noundef nonnull %4) #7
  br i1 %99, label %101, label %103

101:                                              ; preds = %98
  %102 = fneg double %100
  store double %102, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 184), align 8, !tbaa !29
  call void @qh_option(ptr noundef nonnull @.str.24, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 184))
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 248), align 8, !tbaa !25
  br label %104

103:                                              ; preds = %98
  store double %100, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 192), align 8, !tbaa !30
  call void @qh_option(ptr noundef nonnull @.str.25, 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 244), align 4, !tbaa !27
  br label %104

104:                                              ; preds = %103, %101
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 176), align 8, !tbaa !28
  br label %.critedge5

105:                                              ; preds = %.critedge3.thread.thread313
  %106 = load i8, ptr %52, align 1, !tbaa !15
  %107 = icmp eq i8 %106, 45
  br i1 %107, label %108, label %110

108:                                              ; preds = %105
  %109 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %109, i32 noundef 7004, ptr noundef nonnull @.str.26) #7
  br label %.critedge5

110:                                              ; preds = %105
  %111 = tail call ptr @__ctype_b_loc() #9
  %112 = load ptr, ptr %111, align 8, !tbaa !5
  %113 = sext i8 %106 to i64
  %114 = getelementptr inbounds i16, ptr %112, i64 %113
  %115 = load i16, ptr %114, align 2, !tbaa !16
  %116 = and i16 %115, 2048
  %.not168 = icmp eq i16 %116, 0
  br i1 %.not168, label %117, label %119

117:                                              ; preds = %110
  %118 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %118, i32 noundef 7005, ptr noundef nonnull @.str.27) #7
  br label %.critedge5

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

121:                                              ; preds = %.critedge3.thread.thread313
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 120), align 8, !tbaa !33
  %122 = call double @qh_strtod(ptr noundef nonnull %52, ptr noundef nonnull %5) #7
  %123 = load ptr, ptr %5, align 8, !tbaa !5
  %124 = load ptr, ptr %4, align 8, !tbaa !5
  %125 = icmp ugt ptr %123, %124
  br i1 %125, label %.lr.ph248, label %._crit_edge249

.lr.ph248:                                        ; preds = %121, %141
  %126 = phi ptr [ %144, %141 ], [ %123, %121 ]
  %127 = load i8, ptr %126, align 1, !tbaa !15
  %.not166 = icmp eq i8 %127, 0
  br i1 %.not166, label %141, label %128

128:                                              ; preds = %.lr.ph248
  %129 = tail call ptr @__ctype_b_loc() #9
  %130 = load ptr, ptr %129, align 8, !tbaa !5
  %131 = sext i8 %127 to i64
  %132 = getelementptr inbounds i16, ptr %130, i64 %131
  %133 = load i16, ptr %132, align 2, !tbaa !16
  %134 = and i16 %133, 8192
  %.not167 = icmp eq i16 %134, 0
  br i1 %.not167, label %135, label %141

135:                                              ; preds = %128
  %136 = icmp eq i8 %127, 44
  br i1 %136, label %137, label %139

137:                                              ; preds = %135
  %138 = getelementptr inbounds i8, ptr %126, i64 1
  store ptr %138, ptr %5, align 8, !tbaa !5
  br label %141

139:                                              ; preds = %135
  %140 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %140, i32 noundef 7006, ptr noundef nonnull @.str.29) #7
  %.pre296 = load ptr, ptr %5, align 8, !tbaa !5
  br label %141

141:                                              ; preds = %137, %139, %128, %.lr.ph248
  %142 = phi ptr [ %138, %137 ], [ %.pre296, %139 ], [ %126, %128 ], [ %126, %.lr.ph248 ]
  store ptr %142, ptr %4, align 8, !tbaa !5
  %143 = call double @qh_strtod(ptr noundef %142, ptr noundef nonnull %5) #7
  %144 = load ptr, ptr %5, align 8, !tbaa !5
  %145 = load ptr, ptr %4, align 8, !tbaa !5
  %146 = icmp ugt ptr %144, %145
  br i1 %146, label %.lr.ph248, label %._crit_edge249, !llvm.loop !34

._crit_edge249:                                   ; preds = %141, %121
  %.lcssa213 = phi ptr [ %123, %121 ], [ %144, %141 ]
  %147 = icmp ult ptr %52, %.lcssa213
  br i1 %147, label %148, label %159

148:                                              ; preds = %._crit_edge249
  %149 = ptrtoint ptr %.lcssa213 to i64
  %150 = ptrtoint ptr %52 to i64
  %reass.sub = sub i64 %149, %150
  %151 = add i64 %reass.sub, 1
  %152 = call noalias ptr @calloc(i64 noundef %151, i64 noundef 1) #10
  store ptr %152, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 600), align 8, !tbaa !35
  %.not165 = icmp eq ptr %152, null
  br i1 %.not165, label %153, label %155

153:                                              ; preds = %148
  %154 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %154, i32 noundef 6034, ptr noundef nonnull @.str.30) #7
  call void @qh_errexit(i32 noundef 4, ptr noundef null, ptr noundef null) #7
  %.pre297 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 600), align 8, !tbaa !35
  %.pre298 = load ptr, ptr %5, align 8, !tbaa !5
  %.pre300 = ptrtoint ptr %.pre298 to i64
  %.pre301 = sub i64 %.pre300, %150
  br label %155

155:                                              ; preds = %153, %148
  %.pre-phi302 = phi i64 [ %.pre301, %153 ], [ %reass.sub, %148 ]
  %156 = phi ptr [ %.pre297, %153 ], [ %152, %148 ]
  %157 = call ptr @strncpy(ptr noundef %156, ptr noundef nonnull %52, i64 noundef %.pre-phi302) #7
  call void @qh_option(ptr noundef nonnull @.str.31, ptr noundef null, ptr noundef null)
  %158 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 600), align 8, !tbaa !35
  call void @qh_option(ptr noundef %158, ptr noundef null, ptr noundef null)
  br label %.critedge5

159:                                              ; preds = %._crit_edge249
  call void @qh_option(ptr noundef nonnull @.str.32, ptr noundef null, ptr noundef null)
  br label %.critedge5

160:                                              ; preds = %.critedge3.thread.thread313
  %161 = tail call ptr @__ctype_b_loc() #9
  %162 = load ptr, ptr %161, align 8, !tbaa !5
  %163 = load i8, ptr %52, align 1, !tbaa !15
  %164 = sext i8 %163 to i64
  %165 = getelementptr inbounds i16, ptr %162, i64 %164
  %166 = load i16, ptr %165, align 2, !tbaa !16
  %167 = and i16 %166, 2048
  %.not164 = icmp eq i16 %167, 0
  br i1 %.not164, label %168, label %170

168:                                              ; preds = %160
  %169 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %169, i32 noundef 7007, ptr noundef nonnull @.str.33) #7
  br label %.critedge5

170:                                              ; preds = %160
  %171 = call double @qh_strtod(ptr noundef nonnull %52, ptr noundef nonnull %4) #7
  store double %171, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 448), align 8, !tbaa !36
  call void @qh_option(ptr noundef nonnull @.str.34, 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

172:                                              ; preds = %.critedge3.thread.thread313
  %173 = tail call ptr @__ctype_b_loc() #9
  %174 = load ptr, ptr %173, align 8, !tbaa !5
  %175 = load i8, ptr %52, align 1, !tbaa !15
  %176 = sext i8 %175 to i64
  %177 = getelementptr inbounds i16, ptr %174, i64 %176
  %178 = load i16, ptr %177, align 2, !tbaa !16
  %179 = and i16 %178, 2048
  %.not162 = icmp ne i16 %179, 0
  %.not163 = icmp eq i8 %175, 45
  %or.cond183 = or i1 %.not163, %.not162
  br i1 %or.cond183, label %182, label %180

180:                                              ; preds = %172
  %181 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %181, i32 noundef 7008, ptr noundef nonnull @.str.35) #7
  br label %.critedge5

182:                                              ; preds = %172
  %183 = call double @qh_strtod(ptr noundef nonnull %52, ptr noundef nonnull %4) #7
  store double %183, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 208), align 8, !tbaa !38
  call void @qh_option(ptr noundef nonnull @.str.36, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 208))
  br label %.critedge5

184:                                              ; preds = %.critedge3.thread.thread313
  %185 = tail call ptr @__ctype_b_loc() #9
  %186 = load ptr, ptr %185, align 8, !tbaa !5
  %187 = load i8, ptr %52, align 1, !tbaa !15
  %188 = sext i8 %187 to i64
  %189 = getelementptr inbounds i16, ptr %186, i64 %188
  %190 = load i16, ptr %189, align 2, !tbaa !16
  %191 = and i16 %190, 2048
  %.not160 = icmp ne i16 %191, 0
  %.not161 = icmp eq i8 %187, 45
  %or.cond184 = or i1 %.not161, %.not160
  br i1 %or.cond184, label %194, label %192

192:                                              ; preds = %184
  %193 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %193, i32 noundef 7009, ptr noundef nonnull @.str.37) #7
  br label %.critedge5

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

196:                                              ; preds = %.critedge3.thread.thread313
  %197 = load i8, ptr %52, align 1, !tbaa !15
  %198 = icmp eq i8 %197, 45
  br i1 %198, label %199, label %201

199:                                              ; preds = %196
  %200 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %200, i32 noundef 7010, ptr noundef nonnull @.str.39) #7
  br label %.critedge5

201:                                              ; preds = %196
  %202 = tail call ptr @__ctype_b_loc() #9
  %203 = load ptr, ptr %202, align 8, !tbaa !5
  %204 = sext i8 %197 to i64
  %205 = getelementptr inbounds i16, ptr %203, i64 %204
  %206 = load i16, ptr %205, align 2, !tbaa !16
  %207 = and i16 %206, 2048
  %.not159 = icmp eq i16 %207, 0
  br i1 %.not159, label %208, label %210

208:                                              ; preds = %201
  %209 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %209, i32 noundef 7011, ptr noundef nonnull @.str.40) #7
  br label %.critedge5

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

212:                                              ; preds = %.lr.ph245, %.critedge7
  %213 = phi i8 [ %60, %.lr.ph245 ], [ %265, %.critedge7 ]
  %214 = phi ptr [ %52, %.lr.ph245 ], [ %264, %.critedge7 ]
  %215 = load ptr, ptr %61, align 8, !tbaa !5
  %216 = sext i8 %213 to i64
  %217 = getelementptr inbounds i16, ptr %215, i64 %216
  %218 = load i16, ptr %217, align 2, !tbaa !16
  %219 = and i16 %218, 8192
  %.not155 = icmp eq i16 %219, 0
  br i1 %.not155, label %220, label %.critedge5

220:                                              ; preds = %212
  %221 = getelementptr inbounds i8, ptr %214, i64 1
  store ptr %221, ptr %4, align 8, !tbaa !5
  %222 = load i8, ptr %214, align 1, !tbaa !15
  switch i8 %222, label %250 [
    i8 97, label %223
    i8 65, label %224
    i8 99, label %225
    i8 67, label %226
    i8 100, label %227
    i8 68, label %228
    i8 70, label %229
    i8 105, label %230
    i8 73, label %231
    i8 109, label %232
    i8 77, label %233
    i8 110, label %234
    i8 78, label %235
    i8 111, label %236
    i8 79, label %237
    i8 112, label %241
    i8 80, label %242
    i8 81, label %243
    i8 115, label %244
    i8 83, label %245
    i8 116, label %246
    i8 118, label %247
    i8 86, label %248
    i8 120, label %249
  ]

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

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

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

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

227:                                              ; preds = %220
  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 40), align 8, !tbaa !43
  br label %.critedge7

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

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

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

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

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

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

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

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

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

237:                                              ; preds = %220
  %238 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 284), align 4, !tbaa !45
  %.not156 = icmp eq i32 %238, 0
  br i1 %.not156, label %240, label %239

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

240:                                              ; preds = %237
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 284), align 4, !tbaa !45
  br label %.critedge7

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

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

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

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

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

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

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

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

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

250:                                              ; preds = %220
  store ptr %214, ptr %4, align 8, !tbaa !5
  %251 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  %252 = load i8, ptr %214, align 1, !tbaa !15
  %253 = sext i8 %252 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %251, i32 noundef 7012, ptr noundef nonnull @.str.65, i32 noundef %253) #7
  %.pre295 = load ptr, ptr %4, align 8, !tbaa !5
  br label %254

254:                                              ; preds = %258, %250
  %255 = phi ptr [ %256, %258 ], [ %.pre295, %250 ]
  %256 = getelementptr inbounds i8, ptr %255, i64 1
  store ptr %256, ptr %4, align 8, !tbaa !5
  %257 = load i8, ptr %256, align 1, !tbaa !15
  %.not157 = icmp eq i8 %257, 0
  br i1 %.not157, label %.critedge7, label %258

258:                                              ; preds = %254
  %259 = load ptr, ptr %61, align 8, !tbaa !5
  %260 = sext i8 %257 to i64
  %261 = getelementptr inbounds i16, ptr %259, i64 %260
  %262 = load i16, ptr %261, align 2, !tbaa !16
  %263 = and i16 %262, 8192
  %.not158 = icmp eq i16 %263, 0
  br i1 %.not158, label %254, label %.critedge7, !llvm.loop !46

.critedge7:                                       ; preds = %258, %254, %239, %240, %249, %248, %247, %246, %245, %244, %243, %242, %241, %236, %235, %234, %233, %232, %231, %230, %229, %228, %227, %226, %225, %224, %223
  %264 = load ptr, ptr %4, align 8, !tbaa !5
  %265 = load i8, ptr %264, align 1, !tbaa !15
  %.not154 = icmp eq i8 %265, 0
  br i1 %.not154, label %.critedge5, label %212, !llvm.loop !47

266:                                              ; preds = %.critedge3.thread.thread313
  call void @qh_appendprint(i32 noundef 7)
  %267 = load ptr, ptr %4, align 8, !tbaa !5
  %268 = load i8, ptr %267, align 1, !tbaa !15
  %.not149240 = icmp eq i8 %268, 0
  br i1 %.not149240, label %.critedge5, label %.lr.ph242

.lr.ph242:                                        ; preds = %266
  %269 = tail call ptr @__ctype_b_loc() #9
  br label %270

270:                                              ; preds = %.lr.ph242, %.critedge11
  %271 = phi i8 [ %268, %.lr.ph242 ], [ %323, %.critedge11 ]
  %272 = phi ptr [ %267, %.lr.ph242 ], [ %322, %.critedge11 ]
  %273 = load ptr, ptr %269, align 8, !tbaa !5
  %274 = sext i8 %271 to i64
  %275 = getelementptr inbounds i16, ptr %273, i64 %274
  %276 = load i16, ptr %275, align 2, !tbaa !16
  %277 = and i16 %276, 8192
  %.not150 = icmp eq i16 %277, 0
  br i1 %.not150, label %278, label %.critedge5

278:                                              ; preds = %270
  %279 = getelementptr inbounds i8, ptr %272, i64 1
  store ptr %279, ptr %4, align 8, !tbaa !5
  %280 = load i8, ptr %272, align 1, !tbaa !15
  switch i8 %280, label %308 [
    i8 97, label %281
    i8 99, label %282
    i8 104, label %283
    i8 105, label %284
    i8 110, label %285
    i8 111, label %286
    i8 112, label %287
    i8 114, label %288
    i8 116, label %289
    i8 118, label %290
    i8 68, label %291
  ]

281:                                              ; preds = %278
  call void @qh_option(ptr noundef nonnull @.str.66, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 264), align 8, !tbaa !48
  br label %.critedge11

282:                                              ; preds = %278
  call void @qh_option(ptr noundef nonnull @.str.67, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 252), align 4, !tbaa !49
  br label %.critedge11

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

284:                                              ; preds = %278
  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 272), align 8, !tbaa !51
  br label %.critedge11

285:                                              ; preds = %278
  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 280), align 8, !tbaa !52
  br label %.critedge11

286:                                              ; preds = %278
  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 288), align 8, !tbaa !53
  br label %.critedge11

287:                                              ; preds = %278
  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 256), align 8, !tbaa !54
  br label %.critedge11

288:                                              ; preds = %278
  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 412), align 4, !tbaa !55
  br label %.critedge11

289:                                              ; preds = %278
  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 428), align 4, !tbaa !56
  br label %.critedge11

290:                                              ; preds = %278
  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 416), align 8, !tbaa !57
  br label %.critedge11

291:                                              ; preds = %278
  %292 = load ptr, ptr %269, align 8, !tbaa !5
  %293 = load i8, ptr %279, align 1, !tbaa !15
  %294 = sext i8 %293 to i64
  %295 = getelementptr inbounds i16, ptr %292, i64 %294
  %296 = load i16, ptr %295, align 2, !tbaa !16
  %297 = and i16 %296, 2048
  %.not151 = icmp eq i16 %297, 0
  br i1 %.not151, label %298, label %300

298:                                              ; preds = %291
  %299 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %299, i32 noundef 6035, ptr noundef nonnull @.str.76) #7
  br label %.critedge11

300:                                              ; preds = %291
  %301 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 80), align 8, !tbaa !58
  %302 = icmp sgt i32 %301, -1
  br i1 %302, label %303, label %305

303:                                              ; preds = %300
  %304 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %304, i32 noundef 7013, ptr noundef nonnull @.str.77, i32 noundef %301) #7
  %.pre293 = load ptr, ptr %4, align 8, !tbaa !5
  br label %305

305:                                              ; preds = %303, %300
  %306 = phi ptr [ %.pre293, %303 ], [ %279, %300 ]
  %307 = call i32 @qh_strtol(ptr noundef %306, ptr noundef nonnull %4) #7
  store i32 %307, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 80), align 8, !tbaa !58
  call void @qh_option(ptr noundef nonnull @.str.78, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 80), ptr noundef null)
  br label %.critedge11

308:                                              ; preds = %278
  store ptr %272, ptr %4, align 8, !tbaa !5
  %309 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  %310 = load i8, ptr %272, align 1, !tbaa !15
  %311 = sext i8 %310 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %309, i32 noundef 7014, ptr noundef nonnull @.str.79, i32 noundef %311) #7
  %.pre294 = load ptr, ptr %4, align 8, !tbaa !5
  br label %312

312:                                              ; preds = %316, %308
  %313 = phi ptr [ %314, %316 ], [ %.pre294, %308 ]
  %314 = getelementptr inbounds i8, ptr %313, i64 1
  store ptr %314, ptr %4, align 8, !tbaa !5
  %315 = load i8, ptr %314, align 1, !tbaa !15
  %.not152 = icmp eq i8 %315, 0
  br i1 %.not152, label %.critedge11, label %316

316:                                              ; preds = %312
  %317 = load ptr, ptr %269, align 8, !tbaa !5
  %318 = sext i8 %315 to i64
  %319 = getelementptr inbounds i16, ptr %317, i64 %318
  %320 = load i16, ptr %319, align 2, !tbaa !16
  %321 = and i16 %320, 8192
  %.not153 = icmp eq i16 %321, 0
  br i1 %.not153, label %312, label %.critedge11, !llvm.loop !59

.critedge11:                                      ; preds = %316, %312, %298, %305, %290, %289, %288, %287, %286, %285, %284, %283, %282, %281
  %322 = load ptr, ptr %4, align 8, !tbaa !5
  %323 = load i8, ptr %322, align 1, !tbaa !15
  %.not149 = icmp eq i8 %323, 0
  br i1 %.not149, label %.critedge5, label %270, !llvm.loop !60

324:                                              ; preds = %.lr.ph238, %.critedge15
  %325 = phi i8 [ %58, %.lr.ph238 ], [ %399, %.critedge15 ]
  %326 = phi ptr [ %52, %.lr.ph238 ], [ %398, %.critedge15 ]
  %327 = load ptr, ptr %59, align 8, !tbaa !5
  %328 = sext i8 %325 to i64
  %329 = getelementptr inbounds i16, ptr %327, i64 %328
  %330 = load i16, ptr %329, align 2, !tbaa !16
  %331 = and i16 %330, 8192
  %.not143 = icmp eq i16 %331, 0
  br i1 %.not143, label %332, label %.critedge5

332:                                              ; preds = %324
  %333 = getelementptr inbounds i8, ptr %326, i64 1
  store ptr %333, ptr %4, align 8, !tbaa !5
  %334 = load i8, ptr %326, align 1, !tbaa !15
  switch i8 %334, label %384 [
    i8 100, label %335
    i8 68, label %335
    i8 103, label %347
    i8 71, label %348
    i8 111, label %349
    i8 112, label %350
    i8 65, label %351
    i8 70, label %362
    i8 77, label %373
  ]

335:                                              ; preds = %332, %332
  %336 = call i32 @qh_strtol(ptr noundef nonnull %333, ptr noundef nonnull %4) #7
  store i32 %336, ptr %3, align 4, !tbaa !61
  store double 0.000000e+00, ptr %6, align 8, !tbaa !62
  %337 = load ptr, ptr %4, align 8, !tbaa !5
  %338 = load i8, ptr %337, align 1, !tbaa !15
  %339 = icmp eq i8 %338, 58
  br i1 %339, label %340, label %343

340:                                              ; preds = %335
  %341 = getelementptr inbounds i8, ptr %337, i64 1
  store ptr %341, ptr %4, align 8, !tbaa !5
  %342 = call double @qh_strtod(ptr noundef nonnull %341, ptr noundef nonnull %4) #7
  store double %342, ptr %6, align 8, !tbaa !62
  br label %343

343:                                              ; preds = %340, %335
  %344 = icmp eq i8 %334, 100
  br i1 %344, label %345, label %346

345:                                              ; preds = %343
  call void @qh_option(ptr noundef nonnull @.str.80, ptr noundef nonnull %3, ptr noundef nonnull %6)
  br label %.critedge15

346:                                              ; preds = %343
  call void @qh_option(ptr noundef nonnull @.str.81, ptr noundef nonnull %3, ptr noundef nonnull %6)
  br label %.critedge15

347:                                              ; preds = %332
  call void @qh_option(ptr noundef nonnull @.str.82, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 268), align 4, !tbaa !63
  br label %.critedge15

348:                                              ; preds = %332
  call void @qh_option(ptr noundef nonnull @.str.83, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 276), align 4, !tbaa !64
  br label %.critedge15

349:                                              ; preds = %332
  call void @qh_option(ptr noundef nonnull @.str.84, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 84), align 4, !tbaa !65
  br label %.critedge15

350:                                              ; preds = %332
  call void @qh_option(ptr noundef nonnull @.str.85, ptr noundef null, ptr noundef null)
  store i32 0, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 292), align 4, !tbaa !66
  br label %.critedge15

351:                                              ; preds = %332
  %352 = load ptr, ptr %59, align 8, !tbaa !5
  %353 = load i8, ptr %333, align 1, !tbaa !15
  %354 = sext i8 %353 to i64
  %355 = getelementptr inbounds i16, ptr %352, i64 %354
  %356 = load i16, ptr %355, align 2, !tbaa !16
  %357 = and i16 %356, 2048
  %.not146 = icmp eq i16 %357, 0
  br i1 %.not146, label %358, label %360

358:                                              ; preds = %351
  %359 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %359, i32 noundef 6036, ptr noundef nonnull @.str.86) #7
  br label %.critedge15

360:                                              ; preds = %351
  %361 = call i32 @qh_strtol(ptr noundef nonnull %333, ptr noundef nonnull %4) #7
  store i32 %361, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 132), align 4, !tbaa !67
  call void @qh_option(ptr noundef nonnull @.str.87, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 132), ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 616), align 8, !tbaa !42
  br label %.critedge15

362:                                              ; preds = %332
  %363 = load ptr, ptr %59, align 8, !tbaa !5
  %364 = load i8, ptr %333, align 1, !tbaa !15
  %365 = sext i8 %364 to i64
  %366 = getelementptr inbounds i16, ptr %363, i64 %365
  %367 = load i16, ptr %366, align 2, !tbaa !16
  %368 = and i16 %367, 2048
  %.not145 = icmp eq i16 %368, 0
  br i1 %.not145, label %369, label %371

369:                                              ; preds = %362
  %370 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %370, i32 noundef 6037, ptr noundef nonnull @.str.88) #7
  br label %.critedge15

371:                                              ; preds = %362
  %372 = call double @qh_strtod(ptr noundef nonnull %333, ptr noundef nonnull %4) #7
  store double %372, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 152), align 8, !tbaa !68
  call void @qh_option(ptr noundef nonnull @.str.89, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 152))
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 616), align 8, !tbaa !42
  br label %.critedge15

373:                                              ; preds = %332
  %374 = load ptr, ptr %59, align 8, !tbaa !5
  %375 = load i8, ptr %333, 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
  %.not144 = icmp eq i16 %379, 0
  br i1 %.not144, label %380, label %382

380:                                              ; preds = %373
  %381 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %381, i32 noundef 6038, ptr noundef nonnull @.str.90) #7
  br label %.critedge15

382:                                              ; preds = %373
  %383 = call i32 @qh_strtol(ptr noundef nonnull %333, ptr noundef nonnull %4) #7
  store i32 %383, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 144), align 8, !tbaa !69
  call void @qh_option(ptr noundef nonnull @.str.91, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 144), ptr noundef null)
  br label %.critedge15

384:                                              ; preds = %332
  store ptr %326, ptr %4, align 8, !tbaa !5
  %385 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  %386 = load i8, ptr %326, align 1, !tbaa !15
  %387 = sext i8 %386 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %385, i32 noundef 7015, ptr noundef nonnull @.str.92, i32 noundef %387) #7
  %.pre292 = load ptr, ptr %4, align 8, !tbaa !5
  br label %388

388:                                              ; preds = %392, %384
  %389 = phi ptr [ %390, %392 ], [ %.pre292, %384 ]
  %390 = getelementptr inbounds i8, ptr %389, i64 1
  store ptr %390, ptr %4, align 8, !tbaa !5
  %391 = load i8, ptr %390, align 1, !tbaa !15
  %.not147 = icmp eq i8 %391, 0
  br i1 %.not147, label %.critedge15, label %392

392:                                              ; preds = %388
  %393 = load ptr, ptr %59, align 8, !tbaa !5
  %394 = sext i8 %391 to i64
  %395 = getelementptr inbounds i16, ptr %393, i64 %394
  %396 = load i16, ptr %395, align 2, !tbaa !16
  %397 = and i16 %396, 8192
  %.not148 = icmp eq i16 %397, 0
  br i1 %.not148, label %388, label %.critedge15, !llvm.loop !70

.critedge15:                                      ; preds = %392, %388, %380, %382, %369, %371, %358, %360, %345, %346, %350, %349, %348, %347
  %398 = load ptr, ptr %4, align 8, !tbaa !5
  %399 = load i8, ptr %398, align 1, !tbaa !15
  %.not142 = icmp eq i8 %399, 0
  br i1 %.not142, label %.critedge5, label %324, !llvm.loop !71

400:                                              ; preds = %.lr.ph235, %.critedge23
  %401 = phi i8 [ %56, %.lr.ph235 ], [ %637, %.critedge23 ]
  %402 = phi ptr [ %52, %.lr.ph235 ], [ %636, %.critedge23 ]
  %.0234 = phi i32 [ -1, %.lr.ph235 ], [ %.2, %.critedge23 ]
  %403 = load ptr, ptr %57, align 8, !tbaa !5
  %404 = sext i8 %401 to i64
  %405 = getelementptr inbounds i16, ptr %403, i64 %404
  %406 = load i16, ptr %405, align 2, !tbaa !16
  %407 = and i16 %406, 8192
  %.not125 = icmp eq i16 %407, 0
  br i1 %.not125, label %408, label %.critedge5

408:                                              ; preds = %400
  %409 = getelementptr inbounds i8, ptr %402, i64 1
  store ptr %409, ptr %4, align 8, !tbaa !5
  %410 = load i8, ptr %402, align 1, !tbaa !15
  switch i8 %410, label %622 [
    i8 98, label %411
    i8 66, label %411
    i8 99, label %480
    i8 102, label %481
    i8 103, label %482
    i8 105, label %483
    i8 109, label %484
    i8 114, label %485
    i8 115, label %486
    i8 116, label %487
    i8 84, label %488
    i8 117, label %500
    i8 118, label %501
    i8 120, label %502
    i8 122, label %503
    i8 48, label %504
    i8 49, label %505
    i8 50, label %533
    i8 51, label %534
    i8 52, label %548
    i8 53, label %549
    i8 54, label %550
    i8 55, label %551
    i8 56, label %552
    i8 57, label %553
    i8 71, label %554
    i8 74, label %576
    i8 82, label %586
    i8 86, label %602
  ]

411:                                              ; preds = %408, %408
  %412 = icmp eq i8 %410, 98
  br i1 %412, label %413, label %.critedge186

413:                                              ; preds = %411
  %414 = load i8, ptr %409, align 1, !tbaa !15
  switch i8 %414, label %.critedge186 [
    i8 66, label %415
    i8 98, label %417
  ]

415:                                              ; preds = %413
  %416 = getelementptr inbounds i8, ptr %402, i64 2
  store ptr %416, 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 !72
  call void @qh_option(ptr noundef nonnull @.str.93, ptr noundef null, ptr noundef nonnull %6)
  br label %.critedge23

417:                                              ; preds = %413
  %418 = getelementptr inbounds i8, ptr %402, i64 2
  store ptr %418, ptr %4, align 8, !tbaa !5
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 496), align 8, !tbaa !73
  call void @qh_option(ptr noundef nonnull @.str.94, ptr noundef null, ptr noundef null)
  br label %.critedge23

.critedge186:                                     ; preds = %413, %411
  %419 = call i32 @qh_strtol(ptr noundef nonnull %409, ptr noundef nonnull %4) #7
  store i32 %419, ptr %2, align 4, !tbaa !61
  store double 0.000000e+00, ptr %6, align 8, !tbaa !62
  %420 = load ptr, ptr %4, align 8, !tbaa !5
  %421 = load i8, ptr %420, align 1, !tbaa !15
  %422 = icmp eq i8 %421, 58
  br i1 %422, label %423, label %thread-pre-split

423:                                              ; preds = %.critedge186
  %424 = getelementptr inbounds i8, ptr %420, i64 1
  store ptr %424, ptr %4, align 8, !tbaa !5
  %425 = call double @qh_strtod(ptr noundef nonnull %424, ptr noundef nonnull %4) #7
  store double %425, ptr %6, align 8, !tbaa !62
  %426 = fcmp oeq double %425, 0.000000e+00
  br i1 %426, label %427, label %thread-pre-split

427:                                              ; preds = %423
  %428 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %428, ptr %5, align 8, !tbaa !5
  %429 = load i8, ptr %428, align 1, !tbaa !15
  %.not137229 = icmp eq i8 %429, 0
  br i1 %.not137229, label %thread-pre-split, label %.lr.ph231

.lr.ph231:                                        ; preds = %427, %465
  %430 = phi i8 [ %467, %465 ], [ %429, %427 ]
  %431 = phi ptr [ %466, %465 ], [ %428, %427 ]
  %432 = load ptr, ptr %57, align 8, !tbaa !5
  %433 = sext i8 %430 to i64
  %434 = getelementptr inbounds i16, ptr %432, i64 %433
  %435 = load i16, ptr %434, align 2, !tbaa !16
  %436 = and i16 %435, 8192
  %.not138 = icmp eq i16 %436, 0
  br i1 %.not138, label %437, label %thread-pre-split.loopexit

437:                                              ; preds = %.lr.ph231
  %438 = tail call ptr @__ctype_toupper_loc() #9
  %439 = load ptr, ptr %438, align 8, !tbaa !5
  %440 = getelementptr inbounds i8, ptr %431, i64 1
  store ptr %440, ptr %5, align 8, !tbaa !5
  %441 = load i8, ptr %431, align 1, !tbaa !15
  %442 = sext i8 %441 to i64
  %443 = getelementptr inbounds i32, ptr %439, i64 %442
  %444 = load i32, ptr %443, align 4, !tbaa !61
  %445 = icmp eq i32 %444, 66
  br i1 %445, label %446, label %465

446:                                              ; preds = %437
  %447 = load i32, ptr %2, align 4, !tbaa !61
  %448 = call i32 @qh_strtol(ptr noundef nonnull %440, ptr noundef nonnull %5) #7
  %449 = icmp eq i32 %447, %448
  %.pre289 = load ptr, ptr %5, align 8, !tbaa !5
  br i1 %449, label %450, label %465

450:                                              ; preds = %446
  %451 = getelementptr inbounds i8, ptr %.pre289, i64 1
  store ptr %451, ptr %5, align 8, !tbaa !5
  %452 = load i8, ptr %.pre289, align 1, !tbaa !15
  %453 = icmp eq i8 %452, 58
  br i1 %453, label %454, label %465

454:                                              ; preds = %450
  %455 = call double @qh_strtod(ptr noundef nonnull %451, ptr noundef nonnull %5) #7
  %456 = fcmp oeq double %455, 0.000000e+00
  br i1 %456, label %457, label %._crit_edge287

._crit_edge287:                                   ; preds = %454
  %.pre288 = load ptr, ptr %5, align 8, !tbaa !5
  br label %465

457:                                              ; preds = %454
  %458 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 436), align 4, !tbaa !74
  %459 = add nsw i32 %458, 1
  store i32 %459, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 436), align 4, !tbaa !74
  %460 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 128), align 8, !tbaa !75
  %461 = icmp sgt i32 %460, 1
  br i1 %461, label %462, label %.critedge19

462:                                              ; preds = %457
  %463 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  %464 = load i32, ptr %2, align 4, !tbaa !61
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %463, i32 noundef 2004, ptr noundef nonnull @.str.95, i32 noundef %464) #7
  br label %.critedge19

465:                                              ; preds = %._crit_edge287, %450, %446, %437
  %466 = phi ptr [ %.pre288, %._crit_edge287 ], [ %451, %450 ], [ %.pre289, %446 ], [ %440, %437 ]
  %467 = load i8, ptr %466, align 1, !tbaa !15
  %.not137 = icmp eq i8 %467, 0
  br i1 %.not137, label %thread-pre-split.loopexit, label %.lr.ph231, !llvm.loop !76

.critedge19:                                      ; preds = %457, %462
  call void @qh_option(ptr noundef nonnull @.str.96, ptr noundef nonnull %2, ptr noundef null)
  %468 = load i32, ptr %2, align 4, !tbaa !61
  br label %.critedge23

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

thread-pre-split:                                 ; preds = %427, %thread-pre-split.loopexit, %423, %.critedge186
  %469 = phi double [ %425, %423 ], [ 0.000000e+00, %.critedge186 ], [ %.pr.pre, %thread-pre-split.loopexit ], [ %425, %427 ]
  %470 = load i32, ptr %2, align 4, !tbaa !61
  %471 = icmp eq i32 %.0234, %470
  %472 = fcmp oeq double %469, 0.000000e+00
  %or.cond21 = select i1 %471, i1 %472, i1 false
  br i1 %or.cond21, label %.critedge23, label %473

473:                                              ; preds = %thread-pre-split
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 492), align 4, !tbaa !72
  br i1 %412, label %474, label %477

474:                                              ; preds = %473
  br i1 %472, label %475, label %476

475:                                              ; preds = %474
  store double -5.000000e-01, ptr %6, align 8, !tbaa !62
  br label %476

476:                                              ; preds = %475, %474
  call void @qh_option(ptr noundef nonnull @.str.97, ptr noundef nonnull %2, ptr noundef nonnull %6)
  br label %.critedge23

477:                                              ; preds = %473
  br i1 %472, label %478, label %479

478:                                              ; preds = %477
  store double 5.000000e-01, ptr %6, align 8, !tbaa !62
  br label %479

479:                                              ; preds = %478, %477
  call void @qh_option(ptr noundef nonnull @.str.98, ptr noundef nonnull %2, ptr noundef nonnull %6)
  br label %.critedge23

480:                                              ; preds = %408
  call void @qh_option(ptr noundef nonnull @.str.99, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 136), align 8, !tbaa !77
  br label %.critedge23

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

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

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

484:                                              ; preds = %408
  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 236), align 4, !tbaa !81
  br label %.critedge23

485:                                              ; preds = %408
  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 472), align 8, !tbaa !82
  br label %.critedge23

486:                                              ; preds = %408
  call void @qh_option(ptr noundef nonnull @.str.105, ptr noundef null, ptr noundef null)
  store i32 1, ptr @qh_qh, align 8, !tbaa !83
  br label %.critedge23

487:                                              ; preds = %408
  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 556), align 4, !tbaa !84
  br label %.critedge23

488:                                              ; preds = %408
  call void @qh_option(ptr noundef nonnull @.str.107, ptr noundef null, ptr noundef null)
  %489 = load ptr, ptr %57, align 8, !tbaa !5
  %490 = load ptr, ptr %4, align 8, !tbaa !5
  %491 = load i8, ptr %490, align 1, !tbaa !15
  %492 = sext i8 %491 to i64
  %493 = getelementptr inbounds i16, ptr %489, i64 %492
  %494 = load i16, ptr %493, align 2, !tbaa !16
  %495 = and i16 %494, 2048
  %.not136 = icmp eq i16 %495, 0
  br i1 %.not136, label %496, label %498

496:                                              ; preds = %488
  %497 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %497, i32 noundef 6039, ptr noundef nonnull @.str.108) #7
  br label %.critedge23

498:                                              ; preds = %488
  %499 = call i32 @qh_strtol(ptr noundef nonnull %490, ptr noundef nonnull %4) #7
  store i32 %499, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 524), align 4, !tbaa !85
  call void @qh_option(ptr noundef nonnull @.str.107, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 524), ptr noundef null)
  br label %.critedge23

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

501:                                              ; preds = %408
  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 528), align 8, !tbaa !87
  br label %.critedge23

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

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

504:                                              ; preds = %408
  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 224), align 8, !tbaa !90
  br label %.critedge23

505:                                              ; preds = %408
  %506 = load ptr, ptr %57, align 8, !tbaa !5
  %507 = load i8, ptr %409, align 1, !tbaa !15
  %508 = sext i8 %507 to i64
  %509 = getelementptr inbounds i16, ptr %506, i64 %508
  %510 = load i16, ptr %509, align 2, !tbaa !16
  %511 = and i16 %510, 2048
  %.not133 = icmp eq i16 %511, 0
  br i1 %.not133, label %512, label %513

512:                                              ; preds = %505
  call void @qh_option(ptr noundef nonnull @.str.114, ptr noundef null, ptr noundef null)
  store i32 0, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 4), align 4, !tbaa !91
  br label %.critedge23

513:                                              ; preds = %505
  %514 = getelementptr inbounds i8, ptr %402, i64 2
  store ptr %514, ptr %4, align 8, !tbaa !5
  %515 = load i8, ptr %409, align 1, !tbaa !15
  switch i8 %515, label %519 [
    i8 48, label %516
    i8 49, label %517
    i8 50, label %518
  ]

516:                                              ; preds = %513
  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 216), align 8, !tbaa !92
  br label %.critedge23

517:                                              ; preds = %513
  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 560), align 8, !tbaa !93
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 556), align 4, !tbaa !84
  br label %.critedge23

518:                                              ; preds = %513
  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 228), align 4, !tbaa !94
  br label %.critedge23

519:                                              ; preds = %513
  store ptr %409, ptr %4, align 8, !tbaa !5
  %520 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  %521 = load i8, ptr %409, align 1, !tbaa !15
  %522 = sext i8 %521 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %520, i32 noundef 7016, ptr noundef nonnull @.str.118, i32 noundef %522) #7
  %.pre286 = load ptr, ptr %4, align 8, !tbaa !5
  br label %523

523:                                              ; preds = %527, %519
  %524 = phi ptr [ %525, %527 ], [ %.pre286, %519 ]
  %525 = getelementptr inbounds i8, ptr %524, i64 1
  store ptr %525, ptr %4, align 8, !tbaa !5
  %526 = load i8, ptr %525, align 1, !tbaa !15
  %.not134 = icmp eq i8 %526, 0
  br i1 %.not134, label %.critedge23, label %527

527:                                              ; preds = %523
  %528 = load ptr, ptr %57, align 8, !tbaa !5
  %529 = sext i8 %526 to i64
  %530 = getelementptr inbounds i16, ptr %528, i64 %529
  %531 = load i16, ptr %530, align 2, !tbaa !16
  %532 = and i16 %531, 8192
  %.not135 = icmp eq i16 %532, 0
  br i1 %.not135, label %523, label %.critedge23, !llvm.loop !95

533:                                              ; preds = %408
  call void @qh_option(ptr noundef nonnull @.str.119, ptr noundef null, ptr noundef null)
  store i32 0, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 172), align 4, !tbaa !96
  br label %535

534:                                              ; preds = %408
  call void @qh_option(ptr noundef nonnull @.str.120, ptr noundef null, ptr noundef null)
  store i32 0, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 200), align 8, !tbaa !97
  br label %535

535:                                              ; preds = %534, %533
  %536 = load ptr, ptr %57, align 8, !tbaa !5
  %537 = load ptr, ptr %4, align 8, !tbaa !5
  %538 = load i8, ptr %537, align 1, !tbaa !15
  %539 = sext i8 %538 to i64
  %540 = getelementptr inbounds i16, ptr %536, i64 %539
  %541 = load i16, ptr %540, align 2, !tbaa !16
  %542 = and i16 %541, 2048
  %.not132 = icmp eq i16 %542, 0
  br i1 %.not132, label %.critedge23, label %543

543:                                              ; preds = %535
  %544 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  %545 = getelementptr inbounds i8, ptr %537, i64 1
  store ptr %545, ptr %4, align 8, !tbaa !5
  %546 = load i8, ptr %537, align 1, !tbaa !15
  %547 = sext i8 %546 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %544, i32 noundef 7017, ptr noundef nonnull @.str.121, i32 noundef %547) #7
  br label %.critedge23

548:                                              ; preds = %408
  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 32), align 8, !tbaa !98
  br label %.critedge23

549:                                              ; preds = %408
  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 504), align 8, !tbaa !99
  br label %.critedge23

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

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

552:                                              ; preds = %408
  call void @qh_option(ptr noundef nonnull @.str.126, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 220), align 4, !tbaa !102
  br label %.critedge23

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

554:                                              ; preds = %408
  %555 = call i32 @qh_strtol(ptr noundef nonnull %409, ptr noundef nonnull %5) #7
  store i32 %555, ptr %3, align 4, !tbaa !61
  %556 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 88), align 8, !tbaa !104
  %.not131 = icmp eq i32 %556, 0
  br i1 %.not131, label %559, label %557

557:                                              ; preds = %554
  %558 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %558, i32 noundef 7018, ptr noundef nonnull @.str.128) #7
  br label %574

559:                                              ; preds = %554
  %560 = load ptr, ptr %4, align 8, !tbaa !5
  %561 = load ptr, ptr %5, align 8, !tbaa !5
  %562 = icmp eq ptr %560, %561
  br i1 %562, label %563, label %565

563:                                              ; preds = %559
  %564 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %564, i32 noundef 7019, ptr noundef nonnull @.str.129) #7
  br label %574

565:                                              ; preds = %559
  %566 = icmp slt i32 %555, 0
  br i1 %566, label %570, label %567

567:                                              ; preds = %565
  %568 = load i8, ptr %560, align 1, !tbaa !15
  %569 = icmp eq i8 %568, 45
  br i1 %569, label %570, label %572

570:                                              ; preds = %567, %565
  %571 = add nsw i32 %555, -1
  store i32 %571, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 88), align 8, !tbaa !104
  call void @qh_option(ptr noundef nonnull @.str.130, ptr noundef nonnull %3, ptr noundef null)
  br label %574

572:                                              ; preds = %567
  %573 = add nuw nsw i32 %555, 1
  store i32 %573, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 88), align 8, !tbaa !104
  call void @qh_option(ptr noundef nonnull @.str.131, ptr noundef nonnull %3, ptr noundef null)
  br label %574

574:                                              ; preds = %563, %572, %570, %557
  %575 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %575, ptr %4, align 8, !tbaa !5
  br label %.critedge23

576:                                              ; preds = %408
  %577 = load ptr, ptr %57, align 8, !tbaa !5
  %578 = load i8, ptr %409, align 1, !tbaa !15
  %579 = sext i8 %578 to i64
  %580 = getelementptr inbounds i16, ptr %577, i64 %579
  %581 = load i16, ptr %580, align 2, !tbaa !16
  %582 = and i16 %581, 2048
  %.not129 = icmp ne i16 %582, 0
  %.not130 = icmp eq i8 %578, 45
  %or.cond187 = or i1 %.not130, %.not129
  br i1 %or.cond187, label %584, label %583

583:                                              ; preds = %576
  store double 0.000000e+00, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2608), align 8, !tbaa !105
  br label %.critedge23

584:                                              ; preds = %576
  %585 = call double @qh_strtod(ptr noundef nonnull %409, ptr noundef nonnull %4) #7
  store double %585, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2608), align 8, !tbaa !105
  call void @qh_option(ptr noundef nonnull @.str.132, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 2608))
  br label %.critedge23

586:                                              ; preds = %408
  %587 = load ptr, ptr %57, align 8, !tbaa !5
  %588 = load i8, ptr %409, align 1, !tbaa !15
  %589 = sext i8 %588 to i64
  %590 = getelementptr inbounds i16, ptr %587, i64 %589
  %591 = load i16, ptr %590, align 2, !tbaa !16
  %592 = and i16 %591, 2048
  %.not127 = icmp ne i16 %592, 0
  %.not128 = icmp eq i8 %588, 45
  %or.cond188 = or i1 %.not128, %.not127
  br i1 %or.cond188, label %595, label %593

593:                                              ; preds = %586
  %594 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %594, i32 noundef 7020, ptr noundef nonnull @.str.133) #7
  br label %.critedge23

595:                                              ; preds = %586
  %596 = call i32 @qh_strtol(ptr noundef nonnull %409, ptr noundef nonnull %4) #7
  store i32 %596, ptr %3, align 4, !tbaa !61
  store i32 %596, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 488), align 8, !tbaa !106
  %597 = icmp sgt i32 %596, 0
  br i1 %597, label %598, label %599

598:                                              ; preds = %595
  call void @qh_option(ptr noundef nonnull @.str.134, ptr noundef nonnull %3, ptr noundef null)
  br label %.critedge23

599:                                              ; preds = %595
  %600 = icmp slt i32 %596, -1
  br i1 %600, label %601, label %.critedge23

601:                                              ; preds = %599
  call void @qh_option(ptr noundef nonnull @.str.135, ptr noundef nonnull %3, ptr noundef null)
  br label %.critedge23

602:                                              ; preds = %408
  %603 = call i32 @qh_strtol(ptr noundef nonnull %409, ptr noundef nonnull %5) #7
  store i32 %603, ptr %3, align 4, !tbaa !61
  %604 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 108), align 4, !tbaa !107
  %.not126 = icmp eq i32 %604, 0
  br i1 %.not126, label %607, label %605

605:                                              ; preds = %602
  %606 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %606, i32 noundef 7021, ptr noundef nonnull @.str.136) #7
  br label %620

607:                                              ; preds = %602
  %608 = load ptr, ptr %4, align 8, !tbaa !5
  %609 = load ptr, ptr %5, align 8, !tbaa !5
  %610 = icmp eq ptr %608, %609
  br i1 %610, label %611, label %613

611:                                              ; preds = %607
  %612 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %612, i32 noundef 7022, ptr noundef nonnull @.str.137) #7
  br label %620

613:                                              ; preds = %607
  %614 = icmp slt i32 %603, 0
  br i1 %614, label %615, label %617

615:                                              ; preds = %613
  %616 = add nsw i32 %603, -1
  store i32 %616, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 108), align 4, !tbaa !107
  call void @qh_option(ptr noundef nonnull @.str.138, ptr noundef nonnull %3, ptr noundef null)
  br label %620

617:                                              ; preds = %613
  call void @qh_option(ptr noundef nonnull @.str.139, ptr noundef nonnull %3, ptr noundef null)
  %618 = load i32, ptr %3, align 4, !tbaa !61
  %619 = add nsw i32 %618, 1
  store i32 %619, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 108), align 4, !tbaa !107
  br label %620

620:                                              ; preds = %611, %617, %615, %605
  %621 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %621, ptr %4, align 8, !tbaa !5
  br label %.critedge23

622:                                              ; preds = %408
  store ptr %402, ptr %4, align 8, !tbaa !5
  %623 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  %624 = load i8, ptr %402, align 1, !tbaa !15
  %625 = sext i8 %624 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %623, i32 noundef 7023, ptr noundef nonnull @.str.140, i32 noundef %625) #7
  %.pre291 = load ptr, ptr %4, align 8, !tbaa !5
  br label %626

626:                                              ; preds = %630, %622
  %627 = phi ptr [ %628, %630 ], [ %.pre291, %622 ]
  %628 = getelementptr inbounds i8, ptr %627, i64 1
  store ptr %628, ptr %4, align 8, !tbaa !5
  %629 = load i8, ptr %628, align 1, !tbaa !15
  %.not140 = icmp eq i8 %629, 0
  br i1 %.not140, label %.critedge23, label %630

630:                                              ; preds = %626
  %631 = load ptr, ptr %57, align 8, !tbaa !5
  %632 = sext i8 %629 to i64
  %633 = getelementptr inbounds i16, ptr %631, i64 %632
  %634 = load i16, ptr %633, align 2, !tbaa !16
  %635 = and i16 %634, 8192
  %.not141 = icmp eq i16 %635, 0
  br i1 %.not141, label %626, label %.critedge23, !llvm.loop !108

.critedge23:                                      ; preds = %523, %527, %630, %626, %.critedge19, %thread-pre-split, %593, %599, %601, %598, %583, %584, %535, %543, %516, %517, %518, %496, %498, %476, %479, %620, %574, %553, %552, %551, %550, %549, %548, %512, %504, %503, %502, %501, %500, %487, %486, %485, %484, %483, %482, %481, %480, %417, %415
  %.2 = phi i32 [ %.0234, %620 ], [ %.0234, %598 ], [ %.0234, %601 ], [ %.0234, %599 ], [ %.0234, %593 ], [ %.0234, %584 ], [ %.0234, %583 ], [ %.0234, %574 ], [ %.0234, %553 ], [ %.0234, %552 ], [ %.0234, %551 ], [ %.0234, %550 ], [ %.0234, %549 ], [ %.0234, %548 ], [ %.0234, %543 ], [ %.0234, %535 ], [ %.0234, %518 ], [ %.0234, %517 ], [ %.0234, %516 ], [ %.0234, %512 ], [ %.0234, %504 ], [ %.0234, %503 ], [ %.0234, %502 ], [ %.0234, %501 ], [ %.0234, %500 ], [ %.0234, %498 ], [ %.0234, %496 ], [ %.0234, %487 ], [ %.0234, %486 ], [ %.0234, %485 ], [ %.0234, %484 ], [ %.0234, %483 ], [ %.0234, %482 ], [ %.0234, %481 ], [ %.0234, %480 ], [ %.0234, %415 ], [ %.0234, %417 ], [ %468, %.critedge19 ], [ %.0234, %476 ], [ %.0234, %479 ], [ -1, %thread-pre-split ], [ %.0234, %626 ], [ %.0234, %630 ], [ %.0234, %527 ], [ %.0234, %523 ]
  %636 = load ptr, ptr %4, align 8, !tbaa !5
  %637 = load i8, ptr %636, align 1, !tbaa !15
  %.not124 = icmp eq i8 %637, 0
  br i1 %.not124, label %.critedge5, label %400, !llvm.loop !109

638:                                              ; preds = %.lr.ph227, %.critedge29
  %639 = phi i8 [ %54, %.lr.ph227 ], [ %831, %.critedge29 ]
  %640 = phi ptr [ %52, %.lr.ph227 ], [ %830, %.critedge29 ]
  %641 = load ptr, ptr %55, align 8, !tbaa !5
  %642 = sext i8 %639 to i64
  %643 = getelementptr inbounds i16, ptr %641, i64 %642
  %644 = load i16, ptr %643, align 2, !tbaa !16
  %645 = zext i16 %644 to i32
  %646 = and i32 %645, 8192
  %.not106 = icmp eq i32 %646, 0
  br i1 %.not106, label %647, label %.critedge5

647:                                              ; preds = %638
  %648 = and i32 %645, 2048
  %.not107 = icmp ne i32 %648, 0
  %649 = icmp eq i8 %639, 45
  %or.cond189 = or i1 %649, %.not107
  br i1 %or.cond189, label %650, label %652

650:                                              ; preds = %647
  %651 = call i32 @qh_strtol(ptr noundef nonnull %640, ptr noundef nonnull %4) #7
  store i32 %651, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 128), align 8, !tbaa !75
  br label %.critedge29

652:                                              ; preds = %647
  %653 = getelementptr inbounds i8, ptr %640, i64 1
  store ptr %653, ptr %4, align 8, !tbaa !5
  %654 = load i8, ptr %640, align 1, !tbaa !15
  switch i8 %654, label %816 [
    i8 97, label %655
    i8 99, label %656
    i8 115, label %657
    i8 118, label %658
    i8 122, label %659
    i8 67, label %668
    i8 70, label %681
    i8 73, label %694
    i8 79, label %724
    i8 80, label %757
    i8 77, label %768
    i8 82, label %779
    i8 86, label %790
    i8 87, label %805
  ]

655:                                              ; preds = %652
  call void @qh_option(ptr noundef nonnull @.str.141, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 24), align 8, !tbaa !110
  br label %.critedge29

656:                                              ; preds = %652
  call void @qh_option(ptr noundef nonnull @.str.142, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 48), align 8, !tbaa !111
  br label %.critedge29

657:                                              ; preds = %652
  call void @qh_option(ptr noundef nonnull @.str.143, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 420), align 4, !tbaa !112
  br label %.critedge29

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

659:                                              ; preds = %652
  %660 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  %661 = icmp eq ptr %660, inttoptr (i64 1 to ptr)
  br i1 %661, label %662, label %663

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

663:                                              ; preds = %659
  %664 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2400), align 8, !tbaa !115
  %.not121 = icmp eq ptr %664, null
  br i1 %.not121, label %665, label %666

665:                                              ; preds = %663
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %660, i32 noundef 7024, ptr noundef nonnull @.str.146) #7
  br label %.critedge29

666:                                              ; preds = %663
  call void @qh_option(ptr noundef nonnull @.str.145, ptr noundef null, ptr noundef null)
  store i32 1, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 568), align 8, !tbaa !114
  %667 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2400), align 8, !tbaa !115
  store ptr %667, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  store ptr %667, ptr getelementptr inbounds (i8, ptr @qhmem, i64 80), align 8, !tbaa !116
  br label %.critedge29

668:                                              ; preds = %652
  %669 = load ptr, ptr %55, align 8, !tbaa !5
  %670 = load i8, ptr %653, align 1, !tbaa !15
  %671 = sext i8 %670 to i64
  %672 = getelementptr inbounds i16, ptr %669, i64 %671
  %673 = load i16, ptr %672, align 2, !tbaa !16
  %674 = and i16 %673, 2048
  %.not120 = icmp eq i16 %674, 0
  br i1 %.not120, label %675, label %677

675:                                              ; preds = %668
  %676 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %676, i32 noundef 7025, ptr noundef nonnull @.str.147) #7
  br label %.critedge29

677:                                              ; preds = %668
  %678 = call i32 @qh_strtol(ptr noundef nonnull %653, ptr noundef nonnull %4) #7
  store i32 %678, ptr %3, align 4, !tbaa !61
  call void @qh_option(ptr noundef nonnull @.str.148, ptr noundef nonnull %3, ptr noundef null)
  %679 = load i32, ptr %3, align 4, !tbaa !61
  %680 = add nsw i32 %679, 1
  store i32 %680, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 516), align 4, !tbaa !118
  br label %.critedge29

681:                                              ; preds = %652
  %682 = load ptr, ptr %55, align 8, !tbaa !5
  %683 = load i8, ptr %653, align 1, !tbaa !15
  %684 = sext i8 %683 to i64
  %685 = getelementptr inbounds i16, ptr %682, i64 %684
  %686 = load i16, ptr %685, align 2, !tbaa !16
  %687 = and i16 %686, 2048
  %.not119 = icmp eq i16 %687, 0
  br i1 %.not119, label %688, label %690

688:                                              ; preds = %681
  %689 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %689, i32 noundef 7026, ptr noundef nonnull @.str.149) #7
  br label %.critedge29

690:                                              ; preds = %681
  %691 = call i32 @qh_strtol(ptr noundef nonnull %653, ptr noundef nonnull %4) #7
  store i32 %691, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 476), align 4, !tbaa !119
  call void @qh_option(ptr noundef nonnull @.str.150, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 476), ptr noundef null)
  %692 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 476), align 4, !tbaa !119
  %693 = sdiv i32 %692, 2
  store i32 %693, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 480), align 8, !tbaa !120
  br label %.critedge29

694:                                              ; preds = %652
  %695 = load ptr, ptr %55, align 8, !tbaa !5
  %696 = load i8, ptr %653, align 1, !tbaa !15
  %697 = sext i8 %696 to i64
  %698 = getelementptr inbounds i16, ptr %695, i64 %697
  %699 = load i16, ptr %698, align 2, !tbaa !16
  %700 = and i16 %699, 8192
  %.not116 = icmp eq i16 %700, 0
  br i1 %.not116, label %701, label %.lr.ph223.preheader

701:                                              ; preds = %694
  %702 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %702, i32 noundef 7027, ptr noundef nonnull @.str.151, ptr noundef nonnull %653) #7
  %.pre279 = load ptr, ptr %55, align 8, !tbaa !5
  %.pre280 = load ptr, ptr %4, align 8, !tbaa !5
  %.pre281 = load i8, ptr %.pre280, align 1, !tbaa !15
  %.phi.trans.insert282 = sext i8 %.pre281 to i64
  %.phi.trans.insert283 = getelementptr inbounds i16, ptr %.pre279, i64 %.phi.trans.insert282
  %.pre284 = load i16, ptr %.phi.trans.insert283, align 2, !tbaa !16
  %.pre304 = and i16 %.pre284, 8192
  %.not117221 = icmp eq i16 %.pre304, 0
  br i1 %.not117221, label %._crit_edge224, label %.lr.ph223.preheader

.lr.ph223.preheader:                              ; preds = %694, %701
  %.ph = phi ptr [ %653, %694 ], [ %.pre280, %701 ]
  br label %.lr.ph223

.lr.ph223:                                        ; preds = %.lr.ph223.preheader, %.lr.ph223
  %703 = phi ptr [ %704, %.lr.ph223 ], [ %.ph, %.lr.ph223.preheader ]
  %704 = getelementptr inbounds i8, ptr %703, i64 1
  store ptr %704, ptr %4, align 8, !tbaa !5
  %705 = load ptr, ptr %55, align 8, !tbaa !5
  %706 = load i8, ptr %704, align 1, !tbaa !15
  %707 = sext i8 %706 to i64
  %708 = getelementptr inbounds i16, ptr %705, i64 %707
  %709 = load i16, ptr %708, align 2, !tbaa !16
  %710 = and i16 %709, 8192
  %.not117 = icmp eq i16 %710, 0
  br i1 %.not117, label %._crit_edge224, label %.lr.ph223, !llvm.loop !121

._crit_edge224:                                   ; preds = %.lr.ph223, %701
  %.lcssa212 = phi ptr [ %.pre280, %701 ], [ %704, %.lr.ph223 ]
  %711 = call ptr @qh_skipfilename(ptr noundef nonnull %.lcssa212) #7
  store ptr %711, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 500, ptr nonnull %7) #7
  %712 = load ptr, ptr %4, align 8, !tbaa !5
  %713 = ptrtoint ptr %711 to i64
  %714 = ptrtoint ptr %712 to i64
  %715 = sub i64 %713, %714
  %716 = trunc i64 %715 to i32
  call void @qh_copyfilename(ptr noundef nonnull %7, i32 noundef 500, ptr noundef %712, i32 noundef %716) #7
  %717 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %717, ptr %4, align 8, !tbaa !5
  %718 = load ptr, ptr @stdin, align 8, !tbaa !5
  %719 = call ptr @freopen(ptr noundef nonnull %7, ptr noundef nonnull @.str.152, ptr noundef %718) #7
  %.not118 = icmp eq ptr %719, null
  br i1 %.not118, label %720, label %722

720:                                              ; preds = %._crit_edge224
  %721 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %721, i32 noundef 6041, ptr noundef nonnull @.str.153, ptr noundef nonnull %7) #7
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null) #7
  br label %723

722:                                              ; preds = %._crit_edge224
  call void @qh_option(ptr noundef nonnull @.str.154, ptr noundef null, ptr noundef null)
  call void @qh_option(ptr noundef nonnull %7, ptr noundef null, ptr noundef null)
  br label %723

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

724:                                              ; preds = %652
  %725 = load ptr, ptr %55, align 8, !tbaa !5
  %726 = load i8, ptr %653, align 1, !tbaa !15
  %727 = sext i8 %726 to i64
  %728 = getelementptr inbounds i16, ptr %725, i64 %727
  %729 = load i16, ptr %728, align 2, !tbaa !16
  %730 = and i16 %729, 8192
  %.not112 = icmp eq i16 %730, 0
  br i1 %.not112, label %731, label %.lr.ph220.preheader

731:                                              ; preds = %724
  %732 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %732, i32 noundef 7028, ptr noundef nonnull @.str.155, ptr noundef nonnull %653) #7
  %.pre274 = load ptr, ptr %55, align 8, !tbaa !5
  %.pre275 = load ptr, ptr %4, align 8, !tbaa !5
  %.pre276 = load i8, ptr %.pre275, align 1, !tbaa !15
  %.phi.trans.insert = sext i8 %.pre276 to i64
  %.phi.trans.insert277 = getelementptr inbounds i16, ptr %.pre274, i64 %.phi.trans.insert
  %.pre278 = load i16, ptr %.phi.trans.insert277, align 2, !tbaa !16
  %.pre307 = and i16 %.pre278, 8192
  %.not113219 = icmp eq i16 %.pre307, 0
  br i1 %.not113219, label %._crit_edge, label %.lr.ph220.preheader

.lr.ph220.preheader:                              ; preds = %724, %731
  %.ph372 = phi ptr [ %653, %724 ], [ %.pre275, %731 ]
  br label %.lr.ph220

.lr.ph220:                                        ; preds = %.lr.ph220.preheader, %.lr.ph220
  %733 = phi ptr [ %734, %.lr.ph220 ], [ %.ph372, %.lr.ph220.preheader ]
  %734 = getelementptr inbounds i8, ptr %733, i64 1
  store ptr %734, ptr %4, align 8, !tbaa !5
  %735 = load ptr, ptr %55, align 8, !tbaa !5
  %736 = load i8, ptr %734, align 1, !tbaa !15
  %737 = sext i8 %736 to i64
  %738 = getelementptr inbounds i16, ptr %735, i64 %737
  %739 = load i16, ptr %738, align 2, !tbaa !16
  %740 = and i16 %739, 8192
  %.not113 = icmp eq i16 %740, 0
  br i1 %.not113, label %._crit_edge, label %.lr.ph220, !llvm.loop !122

._crit_edge:                                      ; preds = %.lr.ph220, %731
  %.lcssa = phi ptr [ %.pre275, %731 ], [ %734, %.lr.ph220 ]
  %741 = call ptr @qh_skipfilename(ptr noundef nonnull %.lcssa) #7
  store ptr %741, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 500, ptr nonnull %8) #7
  %742 = load ptr, ptr %4, align 8, !tbaa !5
  %743 = ptrtoint ptr %741 to i64
  %744 = ptrtoint ptr %742 to i64
  %745 = sub i64 %743, %744
  %746 = trunc i64 %745 to i32
  call void @qh_copyfilename(ptr noundef nonnull %8, i32 noundef 500, ptr noundef %742, i32 noundef %746) #7
  %747 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %747, ptr %4, align 8, !tbaa !5
  %748 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2400), align 8, !tbaa !115
  %.not114 = icmp eq ptr %748, null
  br i1 %.not114, label %749, label %751

749:                                              ; preds = %._crit_edge
  %750 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %750, i32 noundef 6266, ptr noundef nonnull @.str.156) #7
  br label %756

751:                                              ; preds = %._crit_edge
  %752 = call ptr @freopen(ptr noundef nonnull %8, ptr noundef nonnull @.str.157, ptr noundef nonnull %748) #7
  %.not115 = icmp eq ptr %752, null
  br i1 %.not115, label %753, label %755

753:                                              ; preds = %751
  %754 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %754, i32 noundef 6044, ptr noundef nonnull @.str.153, ptr noundef nonnull %8) #7
  call void @qh_errexit(i32 noundef 1, ptr noundef null, ptr noundef null) #7
  br label %756

755:                                              ; preds = %751
  call void @qh_option(ptr noundef nonnull @.str.158, ptr noundef null, ptr noundef null)
  call void @qh_option(ptr noundef nonnull %8, ptr noundef null, ptr noundef null)
  br label %756

756:                                              ; preds = %753, %755, %749
  call void @llvm.lifetime.end.p0(i64 500, ptr nonnull %8) #7
  br label %.critedge29

757:                                              ; preds = %652
  %758 = load ptr, ptr %55, align 8, !tbaa !5
  %759 = load i8, ptr %653, align 1, !tbaa !15
  %760 = sext i8 %759 to i64
  %761 = getelementptr inbounds i16, ptr %758, i64 %760
  %762 = load i16, ptr %761, align 2, !tbaa !16
  %763 = and i16 %762, 2048
  %.not111 = icmp eq i16 %763, 0
  br i1 %.not111, label %764, label %766

764:                                              ; preds = %757
  %765 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %765, i32 noundef 7029, ptr noundef nonnull @.str.159) #7
  br label %.critedge29

766:                                              ; preds = %757
  %767 = call i32 @qh_strtol(ptr noundef nonnull %653, ptr noundef nonnull %4) #7
  store i32 %767, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 540), align 4, !tbaa !123
  call void @qh_option(ptr noundef nonnull @.str.160, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 540), ptr noundef null)
  br label %.critedge29

768:                                              ; preds = %652
  %769 = load ptr, ptr %55, align 8, !tbaa !5
  %770 = load i8, ptr %653, 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, 2048
  %.not110 = icmp eq i16 %774, 0
  br i1 %.not110, label %775, label %777

775:                                              ; preds = %768
  %776 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %776, i32 noundef 7030, ptr noundef nonnull @.str.161) #7
  br label %.critedge29

777:                                              ; preds = %768
  %778 = call i32 @qh_strtol(ptr noundef nonnull %653, ptr noundef nonnull %4) #7
  store i32 %778, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 552), align 8, !tbaa !124
  call void @qh_option(ptr noundef nonnull @.str.162, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 552), ptr noundef null)
  br label %.critedge29

779:                                              ; preds = %652
  %780 = load ptr, ptr %55, align 8, !tbaa !5
  %781 = load i8, ptr %653, align 1, !tbaa !15
  %782 = sext i8 %781 to i64
  %783 = getelementptr inbounds i16, ptr %780, i64 %782
  %784 = load i16, ptr %783, align 2, !tbaa !16
  %785 = and i16 %784, 2048
  %.not109 = icmp eq i16 %785, 0
  br i1 %.not109, label %786, label %788

786:                                              ; preds = %779
  %787 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %787, i32 noundef 7031, ptr noundef nonnull @.str.163) #7
  br label %.critedge29

788:                                              ; preds = %779
  %789 = call i32 @qh_strtol(ptr noundef nonnull %653, ptr noundef nonnull %4) #7
  store i32 %789, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 484), align 4, !tbaa !125
  call void @qh_option(ptr noundef nonnull @.str.164, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 484), ptr noundef null)
  br label %.critedge29

790:                                              ; preds = %652
  %791 = call i32 @qh_strtol(ptr noundef nonnull %653, ptr noundef nonnull %5) #7
  store i32 %791, ptr %3, align 4, !tbaa !61
  %792 = load ptr, ptr %4, align 8, !tbaa !5
  %793 = load ptr, ptr %5, align 8, !tbaa !5
  %794 = icmp eq ptr %792, %793
  br i1 %794, label %795, label %797

795:                                              ; preds = %790
  %796 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %796, i32 noundef 7032, ptr noundef nonnull @.str.165) #7
  br label %803

797:                                              ; preds = %790
  %798 = icmp slt i32 %791, 0
  br i1 %798, label %799, label %801

799:                                              ; preds = %797
  %800 = add nsw i32 %791, -1
  store i32 %800, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 520), align 8, !tbaa !126
  call void @qh_option(ptr noundef nonnull @.str.166, ptr noundef nonnull %3, ptr noundef null)
  br label %803

801:                                              ; preds = %797
  %802 = add nuw nsw i32 %791, 1
  store i32 %802, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 520), align 8, !tbaa !126
  call void @qh_option(ptr noundef nonnull @.str.167, ptr noundef nonnull %3, ptr noundef null)
  br label %803

803:                                              ; preds = %799, %801, %795
  %804 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %804, ptr %4, align 8, !tbaa !5
  br label %.critedge29

805:                                              ; preds = %652
  %806 = load ptr, ptr %55, align 8, !tbaa !5
  %807 = load i8, ptr %653, align 1, !tbaa !15
  %808 = sext i8 %807 to i64
  %809 = getelementptr inbounds i16, ptr %806, i64 %808
  %810 = load i16, ptr %809, align 2, !tbaa !16
  %811 = and i16 %810, 2048
  %.not108 = icmp eq i16 %811, 0
  br i1 %.not108, label %812, label %814

812:                                              ; preds = %805
  %813 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %813, i32 noundef 7033, ptr noundef nonnull @.str.168) #7
  br label %.critedge29

814:                                              ; preds = %805
  %815 = call double @qh_strtod(ptr noundef nonnull %653, ptr noundef nonnull %4) #7
  store double %815, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 544), align 8, !tbaa !127
  call void @qh_option(ptr noundef nonnull @.str.169, ptr noundef null, ptr noundef nonnull getelementptr inbounds (i8, ptr @qh_qh, i64 544))
  br label %.critedge29

816:                                              ; preds = %652
  store ptr %640, ptr %4, align 8, !tbaa !5
  %817 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  %818 = load i8, ptr %640, align 1, !tbaa !15
  %819 = sext i8 %818 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %817, i32 noundef 7034, ptr noundef nonnull @.str.170, i32 noundef %819) #7
  %.pre285 = load ptr, ptr %4, align 8, !tbaa !5
  br label %820

820:                                              ; preds = %824, %816
  %821 = phi ptr [ %822, %824 ], [ %.pre285, %816 ]
  %822 = getelementptr inbounds i8, ptr %821, i64 1
  store ptr %822, ptr %4, align 8, !tbaa !5
  %823 = load i8, ptr %822, align 1, !tbaa !15
  %.not122 = icmp eq i8 %823, 0
  br i1 %.not122, label %.critedge29, label %824

824:                                              ; preds = %820
  %825 = load ptr, ptr %55, align 8, !tbaa !5
  %826 = sext i8 %823 to i64
  %827 = getelementptr inbounds i16, ptr %825, i64 %826
  %828 = load i16, ptr %827, align 2, !tbaa !16
  %829 = and i16 %828, 8192
  %.not123 = icmp eq i16 %829, 0
  br i1 %.not123, label %820, label %.critedge29, !llvm.loop !128

.critedge29:                                      ; preds = %820, %824, %655, %656, %657, %658, %723, %756, %803, %665, %666, %662, %677, %675, %690, %688, %766, %764, %777, %775, %788, %786, %814, %812, %650
  %830 = load ptr, ptr %4, align 8, !tbaa !5
  %831 = load i8, ptr %830, align 1, !tbaa !15
  %.not105 = icmp eq i8 %831, 0
  br i1 %.not105, label %.critedge5, label %638, !llvm.loop !129

832:                                              ; preds = %.critedge3.thread.thread313
  %833 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  %834 = sext i8 %53 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %833, i32 noundef 7035, ptr noundef nonnull @.str.171, i32 noundef %834, i32 noundef %834) #7
  br label %.critedge5

.critedge5:                                       ; preds = %.critedge29, %638, %.critedge23, %400, %.critedge15, %324, %.critedge11, %270, %.critedge7, %212, %.preheader206, %.preheader204, %.preheader202, %266, %.preheader, %199, %210, %208, %192, %194, %180, %182, %168, %170, %155, %159, %108, %119, %117, %96, %104, %79, %87, %832, %70, %69, %68, %67, %66, %65, %64, %63, %62
  %.159 = phi i32 [ %.058256, %832 ], [ %.058256, %199 ], [ %.058256, %210 ], [ %.058256, %208 ], [ %.058256, %194 ], [ %.058256, %192 ], [ %.058256, %182 ], [ %.058256, %180 ], [ %.058256, %170 ], [ %.058256, %168 ], [ %.058256, %155 ], [ %.058256, %159 ], [ %.058256, %108 ], [ %.058256, %119 ], [ %.058256, %117 ], [ %.058256, %104 ], [ %.058256, %96 ], [ %.058256, %87 ], [ %.058256, %79 ], [ %.058256, %70 ], [ %.058256, %69 ], [ %.058256, %68 ], [ %.058256, %67 ], [ %.058256, %66 ], [ %.058256, %65 ], [ %.058256, %64 ], [ %.058256, %63 ], [ %.058256, %62 ], [ %.058256, %.preheader ], [ 1, %266 ], [ %.058256, %.preheader202 ], [ %.058256, %.preheader204 ], [ %.058256, %.preheader206 ], [ %.058256, %212 ], [ %.058256, %.critedge7 ], [ 1, %270 ], [ 1, %.critedge11 ], [ %.058256, %324 ], [ %.058256, %.critedge15 ], [ %.058256, %400 ], [ %.058256, %.critedge23 ], [ %.058256, %638 ], [ %.058256, %.critedge29 ]
  %835 = load ptr, ptr %4, align 8, !tbaa !5
  %836 = getelementptr inbounds i8, ptr %835, i64 -1
  %837 = icmp eq ptr %836, %51
  %838 = load i8, ptr %835, align 1, !tbaa !15
  br i1 %837, label %839, label %.critedge31

839:                                              ; preds = %.critedge5
  %.not175 = icmp eq i8 %838, 0
  br i1 %.not175, label %.critedge3.thread._crit_edge.loopexit, label %840

840:                                              ; preds = %839
  %841 = tail call ptr @__ctype_b_loc() #9
  %842 = load ptr, ptr %841, align 8, !tbaa !5
  %843 = sext i8 %838 to i64
  %844 = getelementptr inbounds i16, ptr %842, i64 %843
  %845 = load i16, ptr %844, align 2, !tbaa !16
  %846 = and i16 %845, 8192
  %.not176 = icmp eq i16 %846, 0
  br i1 %.not176, label %847, label %.critedge31

847:                                              ; preds = %840
  %848 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  %849 = load i8, ptr %51, align 1, !tbaa !15
  %850 = sext i8 %849 to i32
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %848, i32 noundef 7036, ptr noundef nonnull @.str.172, i32 noundef %850, i32 noundef %850) #7
  %851 = load ptr, ptr %4, align 8, !tbaa !5
  %852 = load i8, ptr %851, align 1, !tbaa !15
  %.not177251 = icmp eq i8 %852, 0
  br i1 %.not177251, label %.critedge3.thread._crit_edge.loopexit, label %.lr.ph253

.lr.ph253:                                        ; preds = %847, %860
  %853 = phi i8 [ %862, %860 ], [ %852, %847 ]
  %854 = phi ptr [ %861, %860 ], [ %851, %847 ]
  %855 = load ptr, ptr %841, align 8, !tbaa !5
  %856 = sext i8 %853 to i64
  %857 = getelementptr inbounds i16, ptr %855, i64 %856
  %858 = load i16, ptr %857, align 2, !tbaa !16
  %859 = and i16 %858, 8192
  %.not178 = icmp eq i16 %859, 0
  br i1 %.not178, label %860, label %.critedge31

860:                                              ; preds = %.lr.ph253
  %861 = getelementptr inbounds i8, ptr %854, i64 1
  store ptr %861, ptr %4, align 8, !tbaa !5
  %862 = load i8, ptr %861, align 1, !tbaa !15
  %.not177 = icmp eq i8 %862, 0
  br i1 %.not177, label %.critedge3.thread._crit_edge.loopexit, label %.lr.ph253, !llvm.loop !130

.critedge31:                                      ; preds = %.lr.ph253, %.critedge5, %840
  %863 = phi i8 [ %838, %840 ], [ %838, %.critedge5 ], [ %853, %.lr.ph253 ]
  %864 = phi ptr [ %835, %840 ], [ %835, %.critedge5 ], [ %854, %.lr.ph253 ]
  %.not98 = icmp eq i8 %863, 0
  br i1 %.not98, label %.critedge3.thread._crit_edge.loopexit, label %.lr.ph218, !llvm.loop !131

.critedge3.thread._crit_edge.loopexit:            ; preds = %839, %847, %.critedge3.thread, %.critedge31, %46, %860
  %.058.lcssa.ph = phi i32 [ %.159, %860 ], [ %.058256, %46 ], [ %.159, %839 ], [ %.159, %847 ], [ %.058256, %.critedge3.thread ], [ %.159, %.critedge31 ]
  %865 = icmp ne i32 %.058.lcssa.ph, 0
  br label %.critedge3.thread._crit_edge

.critedge3.thread._crit_edge:                     ; preds = %31, %20, %.critedge3.thread._crit_edge.loopexit, %.critedge
  %.058.lcssa = phi i1 [ false, %.critedge ], [ %865, %.critedge3.thread._crit_edge.loopexit ], [ false, %20 ], [ false, %31 ]
  %866 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 516), align 4, !tbaa !118
  %867 = icmp ne i32 %866, 0
  %868 = load double, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2608), align 8
  %869 = fcmp olt double %868, 0x7FDFFFFFFFFFFFFF
  %or.cond33 = select i1 %867, i1 %869, i1 false
  br i1 %or.cond33, label %870, label %872

870:                                              ; preds = %.critedge3.thread._crit_edge
  %871 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %871, i32 noundef 7078, ptr noundef nonnull @.str.173) #7
  br label %872

872:                                              ; preds = %870, %.critedge3.thread._crit_edge
  %873 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 84), align 4
  %874 = icmp eq i32 %873, 0
  %or.cond35.not104 = select i1 %.058.lcssa, i1 %874, i1 false
  %875 = load i32, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 300), align 4
  %876 = icmp ne i32 %875, 0
  %or.cond37 = select i1 %or.cond35.not104, i1 %876, i1 false
  br i1 %or.cond37, label %877, label %879

877:                                              ; preds = %872
  %878 = load ptr, ptr getelementptr inbounds (i8, ptr @qh_qh, i64 2408), align 8, !tbaa !14
  call void (ptr, i32, ptr, ...) @qh_fprintf(ptr noundef %878, i32 noundef 7037, ptr noundef nonnull @.str.174) #7
  br label %879

879:                                              ; preds = %877, %872
  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 2660}
!10 = !{!"qhT", !11, i64 0, !11, i64 4, !11, i64 8, !12, i64 16, !11, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !11, i64 44, !11, i64 48, !12, i64 56, !12, i64 64, !11, i64 72, !11, i64 76, !11, i64 80, !11, i64 84, !11, i64 88, !6, i64 96, !11, i64 104, !11, i64 108, !6, i64 112, !11, i64 120, !11, i64 124, !11, i64 128, !11, i64 132, !11, i64 136, !11, i64 140, !11, i64 144, !12, i64 152, !12, i64 160, !11, i64 168, !11, i64 172, !11, i64 176, !12, i64 184, !12, i64 192, !11, i64 200, !12, i64 208, !11, i64 216, !11, i64 220, !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, !7, i64 296, !11, i64 412, !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, !12, i64 544, !11, i64 552, !11, i64 556, !11, i64 560, !11, i64 564, !11, i64 568, !11, i64 572, !11, i64 576, !11, i64 580, !12, i64 584, !11, i64 592, !6, i64 600, !6, i64 608, !11, i64 616, !11, i64 620, !11, i64 624, !11, i64 628, !11, i64 632, !6, i64 640, !11, i64 648, !6, i64 656, !11, i64 664, !7, i64 668, !11, i64 924, !7, i64 928, !7, i64 1184, !11, i64 1696, !11, i64 1700, !11, i64 1704, !11, i64 1708, !11, i64 1712, !11, i64 1716, !6, i64 1720, !6, i64 1728, !6, i64 1736, !6, i64 1744, !12, 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, !11, i64 1856, !6, i64 1864, !12, i64 1872, !12, i64 1880, !12, i64 1888, !12, i64 1896, !7, i64 1904, !7, i64 1912, !7, i64 2112, !7, i64 2152, !7, i64 2352, !6, i64 2392, !6, i64 2400, !6, i64 2408, !6, i64 2416, !11, i64 2424, !11, i64 2428, !11, i64 2432, !6, i64 2440, !6, i64 2448, !6, i64 2456, !6, i64 2464, !6, i64 2472, !11, i64 2480, !11, i64 2484, !6, i64 2488, !11, i64 2496, !6, i64 2504, !6, i64 2512, !6, i64 2520, !6, i64 2528, !11, i64 2536, !11, i64 2540, !11, i64 2544, !11, i64 2548, !11, i64 2552, !11, i64 2556, !11, i64 2560, !13, i64 2568, !11, i64 2576, !11, i64 2580, !11, i64 2584, !11, i64 2588, !6, i64 2592, !11, i64 2600, !11, i64 2604, !12, i64 2608, !11, i64 2616, !12, i64 2624, !12, i64 2632, !12, i64 2640, !11, i64 2648, !11, i64 2652, !11, i64 2656, !11, i64 2660, !12, i64 2664, !12, i64 2672, !11, i64 2680, !11, i64 2684, !11, i64 2688, !11, i64 2692, !12, i64 2696, !12, i64 2704, !11, i64 2712, !11, i64 2716, !11, i64 2720, !11, i64 2724, !6, i64 2728, !6, i64 2736, !6, i64 2744, !6, i64 2752, !6, i64 2760, !6, i64 2768, !6, i64 2776, !6, i64 2784, !11, i64 2792, !6, i64 2800, !6, i64 2808, !11, i64 2816, !11, i64 2820, !11, i64 2824, !6, i64 2832, !12, i64 2840, !12, i64 2848, !12, i64 2856, !11, i64 2864, !11, i64 2868, !6, i64 2872, !6, i64 2880, !11, i64 2888}
!11 = !{!"int", !7, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!10, !6, i64 2408}
!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 72}
!22 = !{!10, !11, i64 424}
!23 = !{!10, !11, i64 580}
!24 = !{!10, !12, i64 56}
!25 = !{!10, !11, i64 248}
!26 = !{!10, !12, i64 64}
!27 = !{!10, !11, i64 244}
!28 = !{!10, !11, i64 176}
!29 = !{!10, !12, i64 184}
!30 = !{!10, !12, i64 192}
!31 = !{!10, !12, i64 1776}
!32 = !{!10, !11, i64 500}
!33 = !{!10, !11, i64 120}
!34 = distinct !{!34, !19}
!35 = !{!10, !6, i64 600}
!36 = !{!10, !12, i64 448}
!37 = !{!10, !11, i64 444}
!38 = !{!10, !12, i64 208}
!39 = !{!10, !12, i64 160}
!40 = !{!10, !12, i64 16}
!41 = !{!10, !11, i64 8}
!42 = !{!10, !11, i64 616}
!43 = !{!10, !11, i64 40}
!44 = !{!10, !11, i64 44}
!45 = !{!10, !11, i64 284}
!46 = distinct !{!46, !19}
!47 = distinct !{!47, !19}
!48 = !{!10, !11, i64 264}
!49 = !{!10, !11, i64 252}
!50 = !{!10, !11, i64 76}
!51 = !{!10, !11, i64 272}
!52 = !{!10, !11, i64 280}
!53 = !{!10, !11, i64 288}
!54 = !{!10, !11, i64 256}
!55 = !{!10, !11, i64 412}
!56 = !{!10, !11, i64 428}
!57 = !{!10, !11, i64 416}
!58 = !{!10, !11, i64 80}
!59 = distinct !{!59, !19}
!60 = distinct !{!60, !19}
!61 = !{!11, !11, i64 0}
!62 = !{!12, !12, i64 0}
!63 = !{!10, !11, i64 268}
!64 = !{!10, !11, i64 276}
!65 = !{!10, !11, i64 84}
!66 = !{!10, !11, i64 292}
!67 = !{!10, !11, i64 132}
!68 = !{!10, !12, i64 152}
!69 = !{!10, !11, i64 144}
!70 = distinct !{!70, !19}
!71 = distinct !{!71, !19}
!72 = !{!10, !11, i64 492}
!73 = !{!10, !11, i64 496}
!74 = !{!10, !11, i64 436}
!75 = !{!10, !11, i64 128}
!76 = distinct !{!76, !19}
!77 = !{!10, !11, i64 136}
!78 = !{!10, !11, i64 36}
!79 = !{!10, !11, i64 232}
!80 = !{!10, !11, i64 140}
!81 = !{!10, !11, i64 236}
!82 = !{!10, !11, i64 472}
!83 = !{!10, !11, i64 0}
!84 = !{!10, !11, i64 556}
!85 = !{!10, !11, i64 524}
!86 = !{!10, !11, i64 564}
!87 = !{!10, !11, i64 528}
!88 = !{!10, !11, i64 168}
!89 = !{!10, !11, i64 28}
!90 = !{!10, !11, i64 224}
!91 = !{!10, !11, i64 4}
!92 = !{!10, !11, i64 216}
!93 = !{!10, !11, i64 560}
!94 = !{!10, !11, i64 228}
!95 = distinct !{!95, !19}
!96 = !{!10, !11, i64 172}
!97 = !{!10, !11, i64 200}
!98 = !{!10, !11, i64 32}
!99 = !{!10, !11, i64 504}
!100 = !{!10, !11, i64 508}
!101 = !{!10, !11, i64 576}
!102 = !{!10, !11, i64 220}
!103 = !{!10, !11, i64 240}
!104 = !{!10, !11, i64 88}
!105 = !{!10, !12, i64 2608}
!106 = !{!10, !11, i64 488}
!107 = !{!10, !11, i64 108}
!108 = distinct !{!108, !19}
!109 = distinct !{!109, !19}
!110 = !{!10, !11, i64 24}
!111 = !{!10, !11, i64 48}
!112 = !{!10, !11, i64 420}
!113 = !{!10, !11, i64 572}
!114 = !{!10, !11, i64 568}
!115 = !{!10, !6, i64 2400}
!116 = !{!117, !6, i64 80}
!117 = !{!"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}
!118 = !{!10, !11, i64 516}
!119 = !{!10, !11, i64 476}
!120 = !{!10, !11, i64 480}
!121 = distinct !{!121, !19}
!122 = distinct !{!122, !19}
!123 = !{!10, !11, i64 540}
!124 = !{!10, !11, i64 552}
!125 = !{!10, !11, i64 484}
!126 = !{!10, !11, i64 520}
!127 = !{!10, !12, i64 544}
!128 = distinct !{!128, !19}
!129 = distinct !{!129, !19}
!130 = distinct !{!130, !19}
!131 = distinct !{!131, !19}


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