; LLVM IR from MQCPack/mqcPack :: examples/tools (Check)

; 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.InputLine = type { ptr, ptr, i32, i32, i32, ptr, ptr }

@GAU_File = external dso_local global ptr, align 8
@CheckGAU_File = external dso_local global ptr, align 8
@Last_Keyword = external dso_local global ptr, align 8
@Last_NonBlank = external dso_local global ptr, align 8
@.str = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [34 x i8], align 1
@EndOfString = external dso_local global [8 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [40 x i8], align 1

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

; Function Attrs: nounwind uwtable
define dso_local ptr @mqc_GetMatrixFile(ptr noundef %0, ptr noundef %1, i32 noundef %2) #1 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca [1024 x i8], align 16
  %10 = alloca [1024 x i8], align 16
  %11 = alloca [1024 x i8], align 16
  %12 = alloca [1024 x i8], align 16
  %13 = alloca [1024 x i8], align 16
  %14 = alloca [1024 x i8], align 16
  %15 = alloca [1024 x i8], align 16
  %16 = alloca [1024 x i8], align 16
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca [2048 x i8], align 16
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store i32 %2, ptr %7, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.start.p0(i64 1024, ptr %9) #5
  call void @llvm.lifetime.start.p0(i64 1024, ptr %10) #5
  call void @llvm.lifetime.start.p0(i64 1024, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 1024, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 1024, ptr %13) #5
  call void @llvm.lifetime.start.p0(i64 1024, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 1024, ptr %15) #5
  call void @llvm.lifetime.start.p0(i64 1024, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 2048, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #5
  store ptr null, ptr %19, align 8, !tbaa !5
  store i32 0, ptr %23, align 4, !tbaa !9
  store i32 0, ptr %24, align 4, !tbaa !9
  store i32 -1, ptr %28, align 4, !tbaa !9
  store i32 0, ptr %29, align 4, !tbaa !9
  %44 = call i32 @getpid() #5
  store i32 %44, ptr %22, align 4, !tbaa !9
  %45 = call ptr @getenv(ptr noundef @.str) #5
  store ptr %45, ptr %18, align 8, !tbaa !5
  %46 = load ptr, ptr %18, align 8, !tbaa !5
  %47 = icmp eq ptr %46, null
  br i1 %47, label %48, label %52

48:                                               ; preds = %3
  %49 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %50 = load i32, ptr %22, align 4, !tbaa !9
  %51 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %49, ptr noundef @.str.1, i32 noundef %50) #5
  br label %57

52:                                               ; preds = %3
  %53 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %54 = load ptr, ptr %18, align 8, !tbaa !5
  %55 = load i32, ptr %22, align 4, !tbaa !9
  %56 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %53, ptr noundef @.str.2, ptr noundef %54, i32 noundef %55) #5
  br label %57

57:                                               ; preds = %52, %48
  %58 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %59 = call noalias ptr @fopen(ptr noundef %58, ptr noundef @.str.3)
  store ptr %59, ptr @CheckGAU_File, align 8, !tbaa !5
  %60 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !5
  %61 = icmp eq ptr %60, null
  br i1 %61, label %62, label %67

62:                                               ; preds = %57
  %63 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %64 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %65 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %63, ptr noundef @.str.4, ptr noundef %64, ptr noundef @EndOfString) #5
  %66 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  call void @mqc_error_i_c2f_0(ptr noundef %66, ptr noundef %7)
  br label %67

67:                                               ; preds = %62, %57
  %68 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !5
  %69 = call i32 @fclose(ptr noundef %68)
  store i32 %69, ptr %21, align 4, !tbaa !9
  store ptr null, ptr @CheckGAU_File, align 8, !tbaa !5
  %70 = load i32, ptr %21, align 4, !tbaa !9
  %71 = icmp ne i32 %70, 0
  br i1 %71, label %72, label %77

72:                                               ; preds = %67
  %73 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %74 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %75 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %73, ptr noundef @.str.5, ptr noundef %74, ptr noundef @EndOfString) #5
  %76 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  call void @mqc_error_i_c2f_0(ptr noundef %76, ptr noundef %7)
  br label %77

77:                                               ; preds = %72, %67
  %78 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %79 = call i32 @unlink(ptr noundef %78) #5
  store ptr null, ptr @CheckGAU_File, align 8, !tbaa !5
  %80 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %81 = load ptr, ptr %5, align 8, !tbaa !5
  %82 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %83 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %80, ptr noundef @.str.6, ptr noundef %81, ptr noundef %82) #5
  %84 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %85 = call i32 @system(ptr noundef %84)
  store i32 %85, ptr %31, align 4, !tbaa !9
  %86 = load i32, ptr %31, align 4, !tbaa !9
  %87 = icmp eq i32 %86, -1
  br i1 %87, label %88, label %107

88:                                               ; preds = %77
  %89 = load ptr, ptr %5, align 8, !tbaa !5
  %90 = call noalias ptr @fopen(ptr noundef %89, ptr noundef @.str.7)
  store ptr %90, ptr @GAU_File, align 8, !tbaa !5
  %91 = load ptr, ptr @GAU_File, align 8, !tbaa !5
  %92 = icmp eq ptr %91, null
  br i1 %92, label %93, label %97

93:                                               ; preds = %88
  %94 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %95 = load ptr, ptr %5, align 8, !tbaa !5
  %96 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %94, ptr noundef @.str.8, ptr noundef %95, ptr noundef @EndOfString) #5
  br label %101

97:                                               ; preds = %88
  %98 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %99 = load ptr, ptr %5, align 8, !tbaa !5
  %100 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %98, ptr noundef @.str.9, ptr noundef %99, ptr noundef @EndOfString) #5
  br label %101

101:                                              ; preds = %97, %93
  %102 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %103 = call noalias ptr @fopen(ptr noundef %102, ptr noundef @.str.3)
  store ptr %103, ptr @CheckGAU_File, align 8, !tbaa !5
  %104 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %105 = call i32 @unlink(ptr noundef %104) #5
  %106 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  call void @mqc_error_i_c2f_0(ptr noundef %106, ptr noundef %7)
  br label %107

107:                                              ; preds = %101, %77
  %108 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %109 = call noalias ptr @fopen(ptr noundef %108, ptr noundef @.str.7)
  store ptr %109, ptr @CheckGAU_File, align 8, !tbaa !5
  %110 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !5
  %111 = icmp eq ptr %110, null
  br i1 %111, label %112, label %117

112:                                              ; preds = %107
  %113 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %114 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %115 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %113, ptr noundef @.str.10, ptr noundef %114, ptr noundef @EndOfString) #5
  %116 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  call void @mqc_error_i_c2f_0(ptr noundef %116, ptr noundef %7)
  br label %117

117:                                              ; preds = %112, %107
  %118 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %119 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !5
  %120 = call ptr @fgets(ptr noundef %118, i32 noundef 1024, ptr noundef %119)
  store ptr %120, ptr %19, align 8, !tbaa !5
  %121 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !5
  %122 = call i32 @fclose(ptr noundef %121)
  store i32 %122, ptr %21, align 4, !tbaa !9
  store ptr null, ptr @CheckGAU_File, align 8, !tbaa !5
  %123 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %124 = call i32 @mqc_FINDstrINline(ptr noundef @.str.11, ptr noundef %123)
  %125 = icmp eq i32 -1, %124
  br i1 %125, label %126, label %132

126:                                              ; preds = %117
  %127 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %128 = call i32 @unlink(ptr noundef %127) #5
  %129 = load ptr, ptr %5, align 8, !tbaa !5
  %130 = call ptr @mqc_DupString(ptr noundef %129, ptr noundef null)
  store ptr %130, ptr %8, align 8, !tbaa !5
  %131 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %131, ptr %4, align 8
  store i32 1, ptr %43, align 4
  br label %541

132:                                              ; preds = %117
  %133 = getelementptr inbounds [1024 x i8], ptr %12, i64 0, i64 0
  %134 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %135 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %133, ptr noundef @.str.12, ptr noundef %134) #5
  %136 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %137 = load ptr, ptr %6, align 8, !tbaa !5
  %138 = getelementptr inbounds [1024 x i8], ptr %12, i64 0, i64 0
  %139 = getelementptr inbounds [1024 x i8], ptr %12, i64 0, i64 0
  %140 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %136, ptr noundef @.str.13, ptr noundef %137, ptr noundef %138, ptr noundef %139) #5
  %141 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %142 = call noalias ptr @fopen(ptr noundef %141, ptr noundef @.str.3)
  store ptr %142, ptr @CheckGAU_File, align 8, !tbaa !5
  %143 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %144 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !5
  %145 = call i32 @fputs(ptr noundef %143, ptr noundef %144)
  store i32 %145, ptr %26, align 4, !tbaa !9
  %146 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !5
  %147 = call i32 @fclose(ptr noundef %146)
  store i32 %147, ptr %21, align 4, !tbaa !9
  store ptr null, ptr @CheckGAU_File, align 8, !tbaa !5
  %148 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %149 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %150 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %151 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %148, ptr noundef @.str.14, ptr noundef %149, ptr noundef %150, ptr noundef @EndOfString) #5
  %152 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %153 = call i32 @system(ptr noundef %152)
  store i32 %153, ptr %31, align 4, !tbaa !9
  %154 = call i32 @unlink(ptr noundef @.str.15) #5
  %155 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %156 = call i32 @unlink(ptr noundef %155) #5
  %157 = load i32, ptr %31, align 4, !tbaa !9
  %158 = icmp eq i32 %157, -1
  br i1 %158, label %159, label %164

159:                                              ; preds = %132
  %160 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %161 = load ptr, ptr %6, align 8, !tbaa !5
  %162 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %160, ptr noundef @.str.16, ptr noundef %161, ptr noundef @EndOfString) #5
  %163 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  call void @mqc_error_i_c2f_0(ptr noundef %163, ptr noundef %7)
  br label %164

164:                                              ; preds = %159, %132
  %165 = getelementptr inbounds [1024 x i8], ptr %12, i64 0, i64 0
  %166 = call noalias ptr @fopen(ptr noundef %165, ptr noundef @.str.7)
  store ptr %166, ptr @CheckGAU_File, align 8, !tbaa !5
  %167 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %168 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !5
  %169 = call ptr @fgets(ptr noundef %167, i32 noundef 1024, ptr noundef %168)
  store ptr %169, ptr %19, align 8, !tbaa !5
  %170 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !5
  %171 = call i32 @fclose(ptr noundef %170)
  store i32 %171, ptr %21, align 4, !tbaa !9
  store ptr null, ptr @CheckGAU_File, align 8, !tbaa !5
  %172 = getelementptr inbounds [1024 x i8], ptr %12, i64 0, i64 0
  %173 = call i32 @unlink(ptr noundef %172) #5
  %174 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %175 = call i32 @strncmp(ptr noundef %174, ptr noundef @.str.17, i64 noundef 1) #6
  %176 = icmp ne i32 %175, 0
  br i1 %176, label %177, label %182

177:                                              ; preds = %164
  %178 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %179 = load ptr, ptr %6, align 8, !tbaa !5
  %180 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %178, ptr noundef @.str.18, ptr noundef %179, ptr noundef @EndOfString) #5
  %181 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  call void @mqc_error_i_c2f_0(ptr noundef %181, ptr noundef %7)
  br label %182

182:                                              ; preds = %177, %164
  %183 = load ptr, ptr %5, align 8, !tbaa !5
  %184 = call noalias ptr @fopen(ptr noundef %183, ptr noundef @.str.7)
  store ptr %184, ptr @GAU_File, align 8, !tbaa !5
  %185 = load ptr, ptr @GAU_File, align 8, !tbaa !5
  %186 = icmp eq ptr %185, null
  br i1 %186, label %187, label %192

187:                                              ; preds = %182
  %188 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %189 = load ptr, ptr %5, align 8, !tbaa !5
  %190 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %188, ptr noundef @.str.19, ptr noundef %189, ptr noundef @EndOfString) #5
  %191 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  call void @mqc_error_i_c2f_0(ptr noundef %191, ptr noundef %7)
  br label %192

192:                                              ; preds = %187, %182
  store i32 -1, ptr %28, align 4, !tbaa !9
  %193 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %194 = load ptr, ptr @GAU_File, align 8, !tbaa !5
  %195 = call ptr @fgets(ptr noundef %193, i32 noundef 1024, ptr noundef %194)
  store ptr %195, ptr %19, align 8, !tbaa !5
  %196 = load ptr, ptr %19, align 8, !tbaa !5
  %197 = icmp ne ptr %196, null
  br i1 %197, label %198, label %203

198:                                              ; preds = %192
  %199 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %200 = load i32, ptr %7, align 4, !tbaa !9
  %201 = call ptr @mqc_Alloc_InputLine(ptr noundef %199, ptr noundef null, i32 noundef %200)
  store ptr %201, ptr %40, align 8, !tbaa !5
  %202 = load ptr, ptr %40, align 8, !tbaa !5
  store ptr %202, ptr %39, align 8, !tbaa !5
  br label %203

203:                                              ; preds = %198, %192
  br label %204

204:                                              ; preds = %372, %203
  %205 = load ptr, ptr %19, align 8, !tbaa !5
  %206 = icmp ne ptr %205, null
  br i1 %206, label %207, label %373

207:                                              ; preds = %204
  %208 = load ptr, ptr %40, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.InputLine, ptr %208, i32 0, i32 3
  %210 = load i32, ptr %209, align 4, !tbaa !11
  %211 = icmp eq i32 %210, 1
  br i1 %211, label %212, label %356

212:                                              ; preds = %207
  store i32 0, ptr %27, align 4, !tbaa !9
  %213 = load i32, ptr %29, align 4, !tbaa !9
  %214 = add nsw i32 %213, 1
  store i32 %214, ptr %29, align 4, !tbaa !9
  store i32 0, ptr %30, align 4, !tbaa !9
  %215 = load i32, ptr %23, align 4, !tbaa !9
  %216 = add nsw i32 %215, 1
  store i32 %216, ptr %23, align 4, !tbaa !9
  br label %217

217:                                              ; preds = %322, %212
  %218 = load ptr, ptr %40, align 8, !tbaa !5
  %219 = getelementptr inbounds %struct.InputLine, ptr %218, i32 0, i32 2
  %220 = load i32, ptr %219, align 8, !tbaa !13
  %221 = icmp eq i32 %220, 0
  br i1 %221, label %222, label %225

222:                                              ; preds = %217
  %223 = load ptr, ptr %19, align 8, !tbaa !5
  %224 = icmp ne ptr %223, null
  br label %225

225:                                              ; preds = %222, %217
  %226 = phi i1 [ false, %217 ], [ %224, %222 ]
  br i1 %226, label %227, label %323

227:                                              ; preds = %225
  %228 = load ptr, ptr %40, align 8, !tbaa !5
  %229 = getelementptr inbounds %struct.InputLine, ptr %228, i32 0, i32 6
  %230 = load ptr, ptr %229, align 8, !tbaa !14
  %231 = call i32 @mqc_FINDstrINline(ptr noundef @.str.20, ptr noundef %230)
  %232 = icmp ne i32 %231, -1
  br i1 %232, label %233, label %234

233:                                              ; preds = %227
  store i32 1, ptr %27, align 4, !tbaa !9
  br label %234

234:                                              ; preds = %233, %227
  store i32 0, ptr %36, align 4, !tbaa !9
  %235 = load ptr, ptr %40, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.InputLine, ptr %235, i32 0, i32 6
  %237 = load ptr, ptr %236, align 8, !tbaa !14
  %238 = call i32 @mqc_FINDstrINline(ptr noundef @.str.21, ptr noundef %237)
  store i32 %238, ptr %32, align 4, !tbaa !9
  %239 = load i32, ptr %32, align 4, !tbaa !9
  %240 = icmp ne i32 %239, -1
  br i1 %240, label %241, label %277

241:                                              ; preds = %234
  %242 = getelementptr inbounds [1024 x i8], ptr %10, i64 0, i64 0
  %243 = load ptr, ptr %40, align 8, !tbaa !5
  %244 = getelementptr inbounds %struct.InputLine, ptr %243, i32 0, i32 6
  %245 = load ptr, ptr %244, align 8, !tbaa !14
  %246 = call ptr @strcpy(ptr noundef %242, ptr noundef %245) #5
  %247 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %248 = load i32, ptr %32, align 4, !tbaa !9
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds [1024 x i8], ptr %10, i64 0, i64 %249
  %251 = call ptr @strcpy(ptr noundef %247, ptr noundef %250) #5
  %252 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %253 = call i32 @mqc_FINDstrINline(ptr noundef @.str.22, ptr noundef %252)
  store i32 %253, ptr %32, align 4, !tbaa !9
  %254 = load i32, ptr %32, align 4, !tbaa !9
  %255 = icmp ne i32 %254, -1
  br i1 %255, label %256, label %261

256:                                              ; preds = %241
  %257 = load i32, ptr %32, align 4, !tbaa !9
  %258 = sext i32 %257 to i64
  %259 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 %258
  %260 = call ptr @strcpy(ptr noundef %259, ptr noundef @EndOfString) #5
  br label %261

261:                                              ; preds = %256, %241
  %262 = load ptr, ptr %40, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.InputLine, ptr %262, i32 0, i32 3
  store i32 1, ptr %263, align 4, !tbaa !11
  %264 = load ptr, ptr %40, align 8, !tbaa !5
  %265 = getelementptr inbounds %struct.InputLine, ptr %264, i32 0, i32 6
  %266 = load ptr, ptr %265, align 8, !tbaa !14
  %267 = call i32 @mqc_FINDstrINline(ptr noundef @.str.23, ptr noundef %266)
  %268 = icmp ne i32 %267, -1
  br i1 %268, label %275, label %269

269:                                              ; preds = %261
  %270 = load ptr, ptr %40, align 8, !tbaa !5
  %271 = getelementptr inbounds %struct.InputLine, ptr %270, i32 0, i32 6
  %272 = load ptr, ptr %271, align 8, !tbaa !14
  %273 = call i32 @mqc_FINDstrINline(ptr noundef @.str.24, ptr noundef %272)
  %274 = icmp ne i32 %273, -1
  br i1 %274, label %275, label %276

275:                                              ; preds = %269, %261
  store i32 1, ptr %36, align 4, !tbaa !9
  br label %276

276:                                              ; preds = %275, %269
  br label %277

277:                                              ; preds = %276, %234
  %278 = load ptr, ptr %40, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.InputLine, ptr %278, i32 0, i32 6
  %280 = load ptr, ptr %279, align 8, !tbaa !14
  %281 = call ptr @mqc_DupString(ptr noundef %280, ptr noundef null)
  store ptr %281, ptr %17, align 8, !tbaa !5
  %282 = load ptr, ptr %17, align 8, !tbaa !5
  %283 = call ptr @mqc_Replace_String(ptr noundef @.str.25, ptr noundef @.str.26, ptr noundef %282)
  store ptr %283, ptr %17, align 8, !tbaa !5
  %284 = load ptr, ptr %17, align 8, !tbaa !5
  %285 = call ptr @mqc_Replace_String(ptr noundef @.str.27, ptr noundef @.str.28, ptr noundef %284)
  store ptr %285, ptr %17, align 8, !tbaa !5
  %286 = load ptr, ptr %17, align 8, !tbaa !5
  %287 = call i32 @mqc_FINDstrINline(ptr noundef @.str.29, ptr noundef %286)
  %288 = icmp ne i32 %287, -1
  br i1 %288, label %289, label %290

289:                                              ; preds = %277
  store i32 1, ptr %38, align 4, !tbaa !9
  br label %291

290:                                              ; preds = %277
  store i32 0, ptr %38, align 4, !tbaa !9
  br label %291

291:                                              ; preds = %290, %289
  %292 = load ptr, ptr %17, align 8, !tbaa !5
  call void @free(ptr noundef %292) #5
  %293 = load i32, ptr %36, align 4, !tbaa !9
  %294 = icmp eq i32 %293, 1
  br i1 %294, label %298, label %295

295:                                              ; preds = %291
  %296 = load i32, ptr %38, align 4, !tbaa !9
  %297 = icmp eq i32 %296, 1
  br i1 %297, label %298, label %310

298:                                              ; preds = %295, %291
  %299 = load i32, ptr %30, align 4, !tbaa !9
  %300 = icmp eq i32 %299, 0
  br i1 %300, label %301, label %304

301:                                              ; preds = %298
  %302 = load i32, ptr %24, align 4, !tbaa !9
  %303 = add nsw i32 %302, 1
  store i32 %303, ptr %24, align 4, !tbaa !9
  br label %309

304:                                              ; preds = %298
  %305 = getelementptr inbounds [2048 x i8], ptr %20, i64 0, i64 0
  %306 = load i32, ptr %29, align 4, !tbaa !9
  %307 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %305, ptr noundef @.str.30, i32 noundef %306, ptr noundef @EndOfString) #5
  %308 = getelementptr inbounds [2048 x i8], ptr %20, i64 0, i64 0
  call void @print_line_c2f(ptr noundef %308, ptr noundef %7)
  br label %309

309:                                              ; preds = %304, %301
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %310

310:                                              ; preds = %309, %295
  %311 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %312 = load ptr, ptr @GAU_File, align 8, !tbaa !5
  %313 = call ptr @fgets(ptr noundef %311, i32 noundef 1024, ptr noundef %312)
  store ptr %313, ptr %19, align 8, !tbaa !5
  %314 = load ptr, ptr %19, align 8, !tbaa !5
  %315 = icmp ne ptr %314, null
  br i1 %315, label %316, label %322

316:                                              ; preds = %310
  %317 = load ptr, ptr %40, align 8, !tbaa !5
  store ptr %317, ptr %41, align 8, !tbaa !5
  %318 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %319 = load ptr, ptr %41, align 8, !tbaa !5
  %320 = load i32, ptr %7, align 4, !tbaa !9
  %321 = call ptr @mqc_Alloc_InputLine(ptr noundef %318, ptr noundef %319, i32 noundef %320)
  store ptr %321, ptr %40, align 8, !tbaa !5
  br label %322

322:                                              ; preds = %316, %310
  br label %217, !llvm.loop !15

323:                                              ; preds = %225
  %324 = load i32, ptr %30, align 4, !tbaa !9
  %325 = icmp eq i32 %324, 0
  br i1 %325, label %326, label %346

326:                                              ; preds = %323
  %327 = load i32, ptr %27, align 4, !tbaa !9
  %328 = icmp eq i32 %327, 1
  br i1 %328, label %329, label %346

329:                                              ; preds = %326
  %330 = load i32, ptr %28, align 4, !tbaa !9
  %331 = icmp eq i32 %330, -1
  br i1 %331, label %332, label %337

332:                                              ; preds = %329
  %333 = getelementptr inbounds [2048 x i8], ptr %20, i64 0, i64 0
  %334 = load i32, ptr %29, align 4, !tbaa !9
  %335 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %333, ptr noundef @.str.31, i32 noundef %334, ptr noundef @EndOfString) #5
  %336 = getelementptr inbounds [2048 x i8], ptr %20, i64 0, i64 0
  call void @print_line_c2f(ptr noundef %336, ptr noundef %7)
  br label %345

337:                                              ; preds = %329
  %338 = load i32, ptr %28, align 4, !tbaa !9
  %339 = icmp ne i32 %338, 0
  br i1 %339, label %340, label %343

340:                                              ; preds = %337
  %341 = load i32, ptr %24, align 4, !tbaa !9
  %342 = add nsw i32 %341, 1
  store i32 %342, ptr %24, align 4, !tbaa !9
  br label %343

343:                                              ; preds = %340, %337
  %344 = load i32, ptr %28, align 4, !tbaa !9
  store i32 %344, ptr %30, align 4, !tbaa !9
  br label %345

345:                                              ; preds = %343, %332
  br label %355

346:                                              ; preds = %326, %323
  %347 = load i32, ptr %28, align 4, !tbaa !9
  %348 = icmp ne i32 %347, -1
  br i1 %348, label %352, label %349

349:                                              ; preds = %346
  %350 = load i32, ptr %30, align 4, !tbaa !9
  %351 = icmp ne i32 %350, 0
  br i1 %351, label %352, label %354

352:                                              ; preds = %349, %346
  %353 = load i32, ptr %30, align 4, !tbaa !9
  store i32 %353, ptr %28, align 4, !tbaa !9
  br label %354

354:                                              ; preds = %352, %349
  br label %355

355:                                              ; preds = %354, %345
  br label %356

356:                                              ; preds = %355, %207
  %357 = load ptr, ptr %19, align 8, !tbaa !5
  %358 = icmp ne ptr %357, null
  br i1 %358, label %359, label %372

359:                                              ; preds = %356
  %360 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %361 = load ptr, ptr @GAU_File, align 8, !tbaa !5
  %362 = call ptr @fgets(ptr noundef %360, i32 noundef 1024, ptr noundef %361)
  store ptr %362, ptr %19, align 8, !tbaa !5
  %363 = load ptr, ptr %19, align 8, !tbaa !5
  %364 = icmp ne ptr %363, null
  br i1 %364, label %365, label %371

365:                                              ; preds = %359
  %366 = load ptr, ptr %40, align 8, !tbaa !5
  store ptr %366, ptr %41, align 8, !tbaa !5
  %367 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %368 = load ptr, ptr %41, align 8, !tbaa !5
  %369 = load i32, ptr %7, align 4, !tbaa !9
  %370 = call ptr @mqc_Alloc_InputLine(ptr noundef %367, ptr noundef %368, i32 noundef %369)
  store ptr %370, ptr %40, align 8, !tbaa !5
  br label %371

371:                                              ; preds = %365, %359
  br label %372

372:                                              ; preds = %371, %356
  br label %204, !llvm.loop !17

373:                                              ; preds = %204
  %374 = load ptr, ptr @GAU_File, align 8, !tbaa !5
  %375 = call i32 @fclose(ptr noundef %374)
  store i32 %375, ptr %21, align 4, !tbaa !9
  store ptr null, ptr @GAU_File, align 8, !tbaa !5
  %376 = load i32, ptr %21, align 4, !tbaa !9
  %377 = icmp ne i32 %376, 0
  br i1 %377, label %378, label %383

378:                                              ; preds = %373
  %379 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %380 = load ptr, ptr %5, align 8, !tbaa !5
  %381 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %379, ptr noundef @.str.32, ptr noundef %380, ptr noundef @EndOfString) #5
  %382 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  call void @mqc_error_i_c2f_0(ptr noundef %382, ptr noundef %7)
  br label %383

383:                                              ; preds = %378, %373
  store i32 1, ptr %37, align 4, !tbaa !9
  %384 = load i32, ptr %30, align 4, !tbaa !9
  %385 = icmp eq i32 %384, 0
  br i1 %385, label %386, label %394

386:                                              ; preds = %383
  %387 = load i32, ptr %28, align 4, !tbaa !9
  %388 = icmp eq i32 %387, -1
  br i1 %388, label %389, label %394

389:                                              ; preds = %386
  %390 = load i32, ptr %27, align 4, !tbaa !9
  %391 = icmp ne i32 %390, 1
  br i1 %391, label %392, label %393

392:                                              ; preds = %389
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %393

393:                                              ; preds = %392, %389
  br label %399

394:                                              ; preds = %386, %383
  %395 = load i32, ptr %28, align 4, !tbaa !9
  %396 = icmp eq i32 %395, 0
  br i1 %396, label %397, label %398

397:                                              ; preds = %394
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %398

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

399:                                              ; preds = %398, %393
  %400 = load i32, ptr %37, align 4, !tbaa !9
  %401 = icmp eq i32 %400, 0
  br i1 %401, label %402, label %418

402:                                              ; preds = %399
  %403 = load ptr, ptr @Last_Keyword, align 8, !tbaa !5
  %404 = getelementptr inbounds %struct.InputLine, ptr %403, i32 0, i32 5
  %405 = load ptr, ptr %404, align 8, !tbaa !18
  call void @mqc_Remove_Return(ptr noundef %405)
  %406 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %407 = load ptr, ptr @Last_Keyword, align 8, !tbaa !5
  %408 = getelementptr inbounds %struct.InputLine, ptr %407, i32 0, i32 5
  %409 = load ptr, ptr %408, align 8, !tbaa !18
  %410 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %406, ptr noundef @.str.33, ptr noundef %409) #5
  %411 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %412 = load ptr, ptr @Last_Keyword, align 8, !tbaa !5
  %413 = getelementptr inbounds %struct.InputLine, ptr %412, i32 0, i32 5
  %414 = load ptr, ptr %413, align 8, !tbaa !18
  %415 = call ptr @mqc_DupString(ptr noundef %411, ptr noundef %414)
  %416 = load ptr, ptr @Last_Keyword, align 8, !tbaa !5
  %417 = getelementptr inbounds %struct.InputLine, ptr %416, i32 0, i32 5
  store ptr %415, ptr %417, align 8, !tbaa !18
  br label %418

418:                                              ; preds = %402, %399
  %419 = getelementptr inbounds [1024 x i8], ptr %15, i64 0, i64 0
  %420 = load ptr, ptr %5, align 8, !tbaa !5
  %421 = call ptr @strcpy(ptr noundef %419, ptr noundef %420) #5
  %422 = getelementptr inbounds [1024 x i8], ptr %15, i64 0, i64 0
  %423 = call i64 @strlen(ptr noundef %422) #6
  %424 = trunc i64 %423 to i32
  store i32 %424, ptr %34, align 4, !tbaa !9
  %425 = load i32, ptr %34, align 4, !tbaa !9
  %426 = sub nsw i32 %425, 4
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds [1024 x i8], ptr %15, i64 0, i64 %427
  %429 = call i32 @strncmp(ptr noundef %428, ptr noundef @.str.34, i64 noundef 4) #6
  %430 = icmp eq i32 %429, 0
  br i1 %430, label %431, label %437

431:                                              ; preds = %418
  %432 = load i32, ptr %34, align 4, !tbaa !9
  %433 = sub nsw i32 %432, 4
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds [1024 x i8], ptr %15, i64 0, i64 %434
  %436 = call ptr @strcpy(ptr noundef %435, ptr noundef @EndOfString) #5
  br label %437

437:                                              ; preds = %431, %418
  %438 = load ptr, ptr @Last_NonBlank, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct.InputLine, ptr %438, i32 0, i32 1
  %440 = load ptr, ptr %439, align 8, !tbaa !19
  store ptr %440, ptr %41, align 8, !tbaa !5
  %441 = load ptr, ptr %41, align 8, !tbaa !5
  %442 = getelementptr inbounds %struct.InputLine, ptr %441, i32 0, i32 2
  %443 = load i32, ptr %442, align 8, !tbaa !13
  %444 = icmp eq i32 %443, 0
  br i1 %444, label %451, label %445

445:                                              ; preds = %437
  %446 = load ptr, ptr %41, align 8, !tbaa !5
  %447 = getelementptr inbounds %struct.InputLine, ptr %446, i32 0, i32 5
  %448 = load ptr, ptr %447, align 8, !tbaa !18
  %449 = call i32 @mqc_FINDstrINline(ptr noundef @.str.22, ptr noundef %448)
  %450 = icmp ne i32 %449, -1
  br i1 %450, label %451, label %452

451:                                              ; preds = %445, %437
  store i32 0, ptr %37, align 4, !tbaa !9
  br label %452

452:                                              ; preds = %451, %445
  %453 = load i32, ptr %37, align 4, !tbaa !9
  %454 = icmp eq i32 %453, 0
  br i1 %454, label %455, label %473

455:                                              ; preds = %452
  %456 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %457 = getelementptr inbounds [1024 x i8], ptr %15, i64 0, i64 0
  %458 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %456, ptr noundef @.str.35, ptr noundef %457) #5
  %459 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %460 = load ptr, ptr @Last_NonBlank, align 8, !tbaa !5
  %461 = load i32, ptr %7, align 4, !tbaa !9
  %462 = call ptr @mqc_Alloc_InputLine(ptr noundef %459, ptr noundef %460, i32 noundef %461)
  store ptr %462, ptr %40, align 8, !tbaa !5
  %463 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %464 = getelementptr inbounds [1024 x i8], ptr %15, i64 0, i64 0
  %465 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %463, ptr noundef @.str.36, ptr noundef %464) #5
  %466 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %467 = call ptr @mqc_DupString(ptr noundef %466, ptr noundef null)
  store ptr %467, ptr %8, align 8, !tbaa !5
  %468 = getelementptr inbounds [1024 x i8], ptr %16, i64 0, i64 0
  %469 = getelementptr inbounds [1024 x i8], ptr %15, i64 0, i64 0
  %470 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %468, ptr noundef @.str.37, ptr noundef %469) #5
  %471 = getelementptr inbounds [1024 x i8], ptr %16, i64 0, i64 0
  %472 = load ptr, ptr %39, align 8, !tbaa !5
  call void @mqc_Write_InputLines(ptr noundef %471, ptr noundef %472)
  br label %481

473:                                              ; preds = %452
  %474 = getelementptr inbounds [1024 x i8], ptr %16, i64 0, i64 0
  %475 = load ptr, ptr %5, align 8, !tbaa !5
  %476 = call ptr @strcpy(ptr noundef %474, ptr noundef %475) #5
  %477 = load ptr, ptr @Last_NonBlank, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.InputLine, ptr %477, i32 0, i32 5
  %479 = load ptr, ptr %478, align 8, !tbaa !18
  %480 = call ptr @mqc_DupString(ptr noundef %479, ptr noundef null)
  store ptr %480, ptr %8, align 8, !tbaa !5
  br label %481

481:                                              ; preds = %473, %455
  %482 = load ptr, ptr %39, align 8, !tbaa !5
  call void @mqc_Free_InputLines(ptr noundef %482)
  %483 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %484 = load ptr, ptr %6, align 8, !tbaa !5
  %485 = getelementptr inbounds [1024 x i8], ptr %16, i64 0, i64 0
  %486 = getelementptr inbounds [1024 x i8], ptr %15, i64 0, i64 0
  %487 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %483, ptr noundef @.str.38, ptr noundef %484, ptr noundef %485, ptr noundef %486) #5
  %488 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %489 = call i32 @system(ptr noundef %488)
  store i32 %489, ptr %31, align 4, !tbaa !9
  %490 = load i32, ptr %31, align 4, !tbaa !9
  %491 = icmp eq i32 %490, -1
  br i1 %491, label %492, label %497

492:                                              ; preds = %481
  %493 = getelementptr inbounds [2048 x i8], ptr %20, i64 0, i64 0
  %494 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %495 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %493, ptr noundef @.str.39, ptr noundef %494, ptr noundef @EndOfString) #5
  %496 = getelementptr inbounds [2048 x i8], ptr %20, i64 0, i64 0
  call void @print_line_c2f(ptr noundef %496, ptr noundef %7)
  br label %497

497:                                              ; preds = %492, %481
  %498 = load ptr, ptr %8, align 8, !tbaa !5
  call void @mqc_Remove_Return(ptr noundef %498)
  %499 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %500 = load ptr, ptr %8, align 8, !tbaa !5
  %501 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %502 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %499, ptr noundef @.str.6, ptr noundef %500, ptr noundef %501) #5
  %503 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %504 = call i32 @system(ptr noundef %503)
  store i32 %504, ptr %31, align 4, !tbaa !9
  %505 = load i32, ptr %31, align 4, !tbaa !9
  %506 = icmp eq i32 %505, -1
  br i1 %506, label %507, label %513

507:                                              ; preds = %497
  %508 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %509 = load ptr, ptr %8, align 8, !tbaa !5
  %510 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %511 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %508, ptr noundef @.str.40, ptr noundef %509, ptr noundef %510, ptr noundef @EndOfString) #5
  %512 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  call void @mqc_error_i_c2f_0(ptr noundef %512, ptr noundef %7)
  br label %513

513:                                              ; preds = %507, %497
  %514 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %515 = call noalias ptr @fopen(ptr noundef %514, ptr noundef @.str.7)
  store ptr %515, ptr @CheckGAU_File, align 8, !tbaa !5
  %516 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !5
  %517 = icmp eq ptr %516, null
  br i1 %517, label %518, label %523

518:                                              ; preds = %513
  %519 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %520 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %521 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %519, ptr noundef @.str.10, ptr noundef %520, ptr noundef @EndOfString) #5
  %522 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  call void @mqc_error_i_c2f_0(ptr noundef %522, ptr noundef %7)
  br label %523

523:                                              ; preds = %518, %513
  %524 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %525 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !5
  %526 = call ptr @fgets(ptr noundef %524, i32 noundef 1024, ptr noundef %525)
  store ptr %526, ptr %19, align 8, !tbaa !5
  %527 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !5
  %528 = call i32 @fclose(ptr noundef %527)
  store i32 %528, ptr %21, align 4, !tbaa !9
  %529 = getelementptr inbounds [1024 x i8], ptr %11, i64 0, i64 0
  %530 = call i32 @unlink(ptr noundef %529) #5
  store ptr null, ptr @CheckGAU_File, align 8, !tbaa !5
  %531 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %532 = call i32 @mqc_FINDstrINline(ptr noundef @.str.41, ptr noundef %531)
  %533 = icmp eq i32 -1, %532
  br i1 %533, label %534, label %539

534:                                              ; preds = %523
  %535 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  %536 = load ptr, ptr %8, align 8, !tbaa !5
  %537 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %535, ptr noundef @.str.42, ptr noundef %536, ptr noundef @EndOfString) #5
  %538 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 0
  call void @mqc_error_i_c2f_0(ptr noundef %538, ptr noundef %7)
  br label %539

539:                                              ; preds = %534, %523
  %540 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %540, ptr %4, align 8
  store i32 1, ptr %43, align 4
  br label %541

541:                                              ; preds = %539, %126
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 2048, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 1024, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 1024, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 1024, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 1024, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 1024, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 1024, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 1024, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 1024, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #5
  %542 = load ptr, ptr %4, align 8
  ret ptr %542
}

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

; Function Attrs: nounwind
declare i32 @getpid() #2

; Function Attrs: nounwind
declare ptr @getenv(ptr noundef) #2

; Function Attrs: nounwind
declare i32 @sprintf(ptr noundef, ptr noundef, ...) #2

declare noalias ptr @fopen(ptr noundef, ptr noundef) #3

declare void @mqc_error_i_c2f_0(ptr noundef, ptr noundef) #3

declare i32 @fclose(ptr noundef) #3

; Function Attrs: nounwind
declare i32 @unlink(ptr noundef) #2

declare i32 @system(ptr noundef) #3

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @mqc_FINDstrINline(ptr noundef, ptr noundef) #1

; Function Attrs: nounwind uwtable
declare dso_local ptr @mqc_DupString(ptr noundef, ptr noundef) #1

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strncmp(ptr noundef, ptr noundef, i64 noundef) #4

; Function Attrs: nounwind uwtable
declare dso_local ptr @mqc_Alloc_InputLine(ptr noundef, ptr noundef, i32 noundef) #1

; Function Attrs: nounwind
declare ptr @strcpy(ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare dso_local ptr @mqc_Replace_String(ptr noundef, ptr noundef, ptr noundef) #1

; Function Attrs: nounwind
declare void @free(ptr noundef) #2

declare void @print_line_c2f(ptr noundef, ptr noundef) #3

; Function Attrs: nounwind uwtable
declare dso_local void @mqc_Remove_Return(ptr noundef) #1

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

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

; Function Attrs: nounwind uwtable
declare dso_local void @mqc_Free_InputLines(ptr noundef) #1

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #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(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 #5 = { nounwind }
attributes #6 = { nounwind willreturn memory(read) }

!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 20}
!12 = !{!"InputLine", !6, i64 0, !6, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !6, i64 32, !6, i64 40}
!13 = !{!12, !10, i64 16}
!14 = !{!12, !6, i64 40}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = !{!12, !6, i64 32}
!19 = !{!12, !6, i64 8}


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

@GAU_File = external dso_local local_unnamed_addr global ptr, align 8
@CheckGAU_File = external dso_local local_unnamed_addr global ptr, align 8
@Last_Keyword = external dso_local local_unnamed_addr global ptr, align 8
@Last_NonBlank = external dso_local local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [34 x i8], align 1
@EndOfString = external dso_local global [8 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [40 x i8], align 1

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

; Function Attrs: nounwind uwtable
define dso_local ptr @mqc_GetMatrixFile(ptr noundef %0, ptr noundef %1, i32 noundef %2) local_unnamed_addr #1 {
  %4 = alloca i32, align 4
  %5 = alloca [1024 x i8], align 16
  %6 = alloca [1024 x i8], align 16
  %7 = alloca [1024 x i8], align 16
  %8 = alloca [1024 x i8], align 16
  %9 = alloca [1024 x i8], align 16
  %10 = alloca [1024 x i8], align 16
  %11 = alloca [2048 x i8], align 16
  store i32 %2, ptr %4, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %5) #10
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %6) #10
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %7) #10
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %8) #10
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %9) #10
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %10) #10
  call void @llvm.lifetime.start.p0(i64 2048, ptr nonnull %11) #10
  %12 = tail call i32 @getpid() #10
  %13 = tail call ptr @getenv(ptr noundef nonnull @.str) #10
  %14 = icmp eq ptr %13, null
  br i1 %14, label %15, label %17

15:                                               ; preds = %3
  %16 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %7, ptr noundef nonnull dereferenceable(1) @.str.1, i32 noundef %12) #10
  br label %19

17:                                               ; preds = %3
  %18 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %7, ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef nonnull %13, i32 noundef %12) #10
  br label %19

19:                                               ; preds = %17, %15
  %20 = call noalias ptr @fopen(ptr noundef nonnull %7, ptr noundef nonnull @.str.3)
  store ptr %20, ptr @CheckGAU_File, align 8, !tbaa !9
  %21 = icmp eq ptr %20, null
  br i1 %21, label %22, label %24

22:                                               ; preds = %19
  %23 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.4, ptr noundef nonnull %7, ptr noundef nonnull @EndOfString) #10
  call void @mqc_error_i_c2f_0(ptr noundef nonnull %5, ptr noundef nonnull %4) #10
  %.pre = load ptr, ptr @CheckGAU_File, align 8, !tbaa !9
  br label %24

24:                                               ; preds = %22, %19
  %25 = phi ptr [ %.pre, %22 ], [ %20, %19 ]
  %26 = call i32 @fclose(ptr noundef %25)
  store ptr null, ptr @CheckGAU_File, align 8, !tbaa !9
  %.not = icmp eq i32 %26, 0
  br i1 %.not, label %29, label %27

27:                                               ; preds = %24
  %28 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.5, ptr noundef nonnull %7, ptr noundef nonnull @EndOfString) #10
  call void @mqc_error_i_c2f_0(ptr noundef nonnull %5, ptr noundef nonnull %4) #10
  br label %29

29:                                               ; preds = %27, %24
  %30 = call i32 @unlink(ptr noundef nonnull %7) #10
  store ptr null, ptr @CheckGAU_File, align 8, !tbaa !9
  %31 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.6, ptr noundef %0, ptr noundef nonnull %7) #10
  %32 = call i32 @system(ptr noundef nonnull %5) #10
  %33 = icmp eq i32 %32, -1
  br i1 %33, label %34, label %40

34:                                               ; preds = %29
  %35 = call noalias ptr @fopen(ptr noundef %0, ptr noundef nonnull @.str.7)
  store ptr %35, ptr @GAU_File, align 8, !tbaa !9
  %36 = icmp eq ptr %35, null
  %.str.8..str.9 = select i1 %36, ptr @.str.8, ptr @.str.9
  %37 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) %.str.8..str.9, ptr noundef %0, ptr noundef nonnull @EndOfString) #10
  %38 = call noalias ptr @fopen(ptr noundef nonnull %7, ptr noundef nonnull @.str.3)
  store ptr %38, ptr @CheckGAU_File, align 8, !tbaa !9
  %39 = call i32 @unlink(ptr noundef nonnull %7) #10
  call void @mqc_error_i_c2f_0(ptr noundef nonnull %5, ptr noundef nonnull %4) #10
  br label %40

40:                                               ; preds = %34, %29
  %41 = call noalias ptr @fopen(ptr noundef nonnull %7, ptr noundef nonnull @.str.7)
  store ptr %41, ptr @CheckGAU_File, align 8, !tbaa !9
  %42 = icmp eq ptr %41, null
  br i1 %42, label %43, label %45

43:                                               ; preds = %40
  %44 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.10, ptr noundef nonnull %7, ptr noundef nonnull @EndOfString) #10
  call void @mqc_error_i_c2f_0(ptr noundef nonnull %5, ptr noundef nonnull %4) #10
  %.pre202 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !9
  br label %45

45:                                               ; preds = %43, %40
  %46 = phi ptr [ %.pre202, %43 ], [ %41, %40 ]
  %47 = call ptr @fgets(ptr noundef nonnull %5, i32 noundef 1024, ptr noundef %46)
  %48 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !9
  %49 = call i32 @fclose(ptr noundef %48)
  store ptr null, ptr @CheckGAU_File, align 8, !tbaa !9
  %50 = call i32 @mqc_FINDstrINline(ptr noundef nonnull @.str.11, ptr noundef nonnull %5)
  %51 = icmp eq i32 %50, -1
  br i1 %51, label %52, label %55

52:                                               ; preds = %45
  %53 = call i32 @unlink(ptr noundef nonnull %7) #10
  %54 = call ptr @mqc_DupString(ptr noundef %0, ptr noundef null)
  br label %239

55:                                               ; preds = %45
  %56 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %8, ptr noundef nonnull dereferenceable(1) @.str.12, ptr noundef nonnull %7) #10
  %57 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.13, ptr noundef %1, ptr noundef nonnull %8, ptr noundef nonnull %8) #10
  %58 = call noalias ptr @fopen(ptr noundef nonnull %7, ptr noundef nonnull @.str.3)
  store ptr %58, ptr @CheckGAU_File, align 8, !tbaa !9
  %59 = call i32 @fputs(ptr noundef nonnull %5, ptr noundef %58)
  %60 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !9
  %61 = call i32 @fclose(ptr noundef %60)
  store ptr null, ptr @CheckGAU_File, align 8, !tbaa !9
  %62 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.14, ptr noundef nonnull %7, ptr noundef nonnull %7, ptr noundef nonnull @EndOfString) #10
  %63 = call i32 @system(ptr noundef nonnull %5) #10
  %64 = call i32 @unlink(ptr noundef nonnull @.str.15) #10
  %65 = call i32 @unlink(ptr noundef nonnull %7) #10
  %66 = icmp eq i32 %63, -1
  br i1 %66, label %67, label %69

67:                                               ; preds = %55
  %68 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.16, ptr noundef %1, ptr noundef nonnull @EndOfString) #10
  call void @mqc_error_i_c2f_0(ptr noundef nonnull %5, ptr noundef nonnull %4) #10
  br label %69

69:                                               ; preds = %67, %55
  %70 = call noalias ptr @fopen(ptr noundef nonnull %8, ptr noundef nonnull @.str.7)
  store ptr %70, ptr @CheckGAU_File, align 8, !tbaa !9
  %71 = call ptr @fgets(ptr noundef nonnull %5, i32 noundef 1024, ptr noundef %70)
  %72 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !9
  %73 = call i32 @fclose(ptr noundef %72)
  store ptr null, ptr @CheckGAU_File, align 8, !tbaa !9
  %74 = call i32 @unlink(ptr noundef nonnull %8) #10
  %lhsc = load i8, ptr %5, align 16
  %rhsc = load i8, ptr @.str.17, align 1
  %.not130 = icmp eq i8 %lhsc, %rhsc
  br i1 %.not130, label %77, label %75

75:                                               ; preds = %69
  %76 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.18, ptr noundef %1, ptr noundef nonnull @EndOfString) #10
  call void @mqc_error_i_c2f_0(ptr noundef nonnull %5, ptr noundef nonnull %4) #10
  br label %77

77:                                               ; preds = %75, %69
  %78 = call noalias ptr @fopen(ptr noundef %0, ptr noundef nonnull @.str.7)
  store ptr %78, ptr @GAU_File, align 8, !tbaa !9
  %79 = icmp eq ptr %78, null
  br i1 %79, label %80, label %82

80:                                               ; preds = %77
  %81 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.19, ptr noundef %0, ptr noundef nonnull @EndOfString) #10
  call void @mqc_error_i_c2f_0(ptr noundef nonnull %5, ptr noundef nonnull %4) #10
  %.pre203 = load ptr, ptr @GAU_File, align 8, !tbaa !9
  br label %82

82:                                               ; preds = %80, %77
  %83 = phi ptr [ %.pre203, %80 ], [ %78, %77 ]
  %84 = call ptr @fgets(ptr noundef nonnull %5, i32 noundef 1024, ptr noundef %83)
  %.not131 = icmp eq ptr %84, null
  br i1 %.not131, label %._crit_edge198, label %.lr.ph197.preheader

.lr.ph197.preheader:                              ; preds = %82
  %85 = load i32, ptr %4, align 4, !tbaa !5
  %86 = call ptr @mqc_Alloc_InputLine(ptr noundef nonnull %5, ptr noundef null, i32 noundef %85)
  br label %.lr.ph197

.lr.ph197:                                        ; preds = %149, %.lr.ph197.preheader
  %.1195 = phi ptr [ %151, %149 ], [ %86, %.lr.ph197.preheader ]
  %.0101194 = phi ptr [ %148, %149 ], [ %84, %.lr.ph197.preheader ]
  %.0105193 = phi i32 [ %.3108171, %149 ], [ undef, %.lr.ph197.preheader ]
  %.0109192 = phi i32 [ %.1110169, %149 ], [ 0, %.lr.ph197.preheader ]
  %.0111191 = phi i32 [ %.1112167, %149 ], [ -1, %.lr.ph197.preheader ]
  %.0113190 = phi i32 [ %.3116165, %149 ], [ undef, %.lr.ph197.preheader ]
  %87 = getelementptr inbounds i8, ptr %.1195, i64 20
  %88 = load i32, ptr %87, align 4, !tbaa !11
  %89 = icmp eq i32 %88, 1
  br i1 %89, label %90, label %.thread

90:                                               ; preds = %.lr.ph197
  %91 = add nsw i32 %.0109192, 1
  %92 = getelementptr inbounds i8, ptr %.1195, i64 16
  %93 = load i32, ptr %92, align 8, !tbaa !13
  %94 = icmp eq i32 %93, 0
  br i1 %94, label %.lr.ph, label %._crit_edge.thread

.lr.ph:                                           ; preds = %90, %133
  %.2182 = phi ptr [ %135, %133 ], [ %.1195, %90 ]
  %.1106181 = phi i32 [ %.2107, %133 ], [ 0, %90 ]
  %.1114180 = phi i32 [ %spec.select, %133 ], [ 0, %90 ]
  %95 = getelementptr inbounds i8, ptr %.2182, i64 40
  %96 = load ptr, ptr %95, align 8, !tbaa !14
  %97 = call i32 @mqc_FINDstrINline(ptr noundef nonnull @.str.20, ptr noundef %96)
  %.not139 = icmp eq i32 %97, -1
  %spec.select = select i1 %.not139, i32 %.1114180, i32 1
  %98 = load ptr, ptr %95, align 8, !tbaa !14
  %99 = call i32 @mqc_FINDstrINline(ptr noundef nonnull @.str.21, ptr noundef %98)
  %.not140 = icmp eq i32 %99, -1
  br i1 %.not140, label %119, label %100

100:                                              ; preds = %.lr.ph
  %101 = load ptr, ptr %95, align 8, !tbaa !14
  %102 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %6, ptr noundef nonnull dereferenceable(1) %101) #10
  %103 = sext i32 %99 to i64
  %104 = getelementptr inbounds [1024 x i8], ptr %6, i64 0, i64 %103
  %105 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) %104) #10
  %106 = call i32 @mqc_FINDstrINline(ptr noundef nonnull @.str.22, ptr noundef nonnull %5)
  %.not141 = icmp eq i32 %106, -1
  br i1 %.not141, label %111, label %107

107:                                              ; preds = %100
  %108 = sext i32 %106 to i64
  %109 = getelementptr inbounds [1024 x i8], ptr %5, i64 0, i64 %108
  %110 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %109, ptr noundef nonnull dereferenceable(1) @EndOfString) #10
  br label %111

111:                                              ; preds = %107, %100
  %112 = getelementptr inbounds i8, ptr %.2182, i64 20
  store i32 1, ptr %112, align 4, !tbaa !11
  %113 = load ptr, ptr %95, align 8, !tbaa !14
  %114 = call i32 @mqc_FINDstrINline(ptr noundef nonnull @.str.23, ptr noundef %113)
  %.not142 = icmp eq i32 %114, -1
  br i1 %.not142, label %115, label %118

115:                                              ; preds = %111
  %116 = load ptr, ptr %95, align 8, !tbaa !14
  %117 = call i32 @mqc_FINDstrINline(ptr noundef nonnull @.str.24, ptr noundef %116)
  %.not143 = icmp eq i32 %117, -1
  br i1 %.not143, label %119, label %118

118:                                              ; preds = %115, %111
  br label %119

119:                                              ; preds = %115, %118, %.lr.ph
  %120 = phi i1 [ true, %118 ], [ false, %115 ], [ false, %.lr.ph ]
  %121 = load ptr, ptr %95, align 8, !tbaa !14
  %122 = call ptr @mqc_DupString(ptr noundef %121, ptr noundef null)
  %123 = call ptr @mqc_Replace_String(ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.26, ptr noundef %122)
  %124 = call ptr @mqc_Replace_String(ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.28, ptr noundef %123)
  %125 = call i32 @mqc_FINDstrINline(ptr noundef nonnull @.str.29, ptr noundef %124)
  %.not144 = icmp ne i32 %125, -1
  call void @free(ptr noundef %124) #10
  %or.cond = or i1 %120, %.not144
  br i1 %or.cond, label %126, label %130

126:                                              ; preds = %119
  %127 = icmp eq i32 %.1106181, 0
  br i1 %127, label %130, label %128

128:                                              ; preds = %126
  %129 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %11, ptr noundef nonnull dereferenceable(1) @.str.30, i32 noundef %91, ptr noundef nonnull @EndOfString) #10
  call void @print_line_c2f(ptr noundef nonnull %11, ptr noundef nonnull %4) #10
  br label %130

130:                                              ; preds = %126, %128, %119
  %.2107 = phi i32 [ %.1106181, %119 ], [ 1, %128 ], [ 1, %126 ]
  %131 = load ptr, ptr @GAU_File, align 8, !tbaa !9
  %132 = call ptr @fgets(ptr noundef nonnull %5, i32 noundef 1024, ptr noundef %131)
  %.not145 = icmp eq ptr %132, null
  br i1 %.not145, label %._crit_edge, label %133

133:                                              ; preds = %130
  %134 = load i32, ptr %4, align 4, !tbaa !5
  %135 = call ptr @mqc_Alloc_InputLine(ptr noundef nonnull %5, ptr noundef nonnull %.2182, i32 noundef %134)
  %136 = getelementptr inbounds i8, ptr %135, i64 16
  %137 = load i32, ptr %136, align 8, !tbaa !13
  %138 = icmp eq i32 %137, 0
  br i1 %138, label %.lr.ph, label %._crit_edge, !llvm.loop !15

._crit_edge:                                      ; preds = %130, %133
  %.1102.lcssa = phi ptr [ %132, %133 ], [ null, %130 ]
  %.2.lcssa = phi ptr [ %135, %133 ], [ %.2182, %130 ]
  %139 = icmp eq i32 %.2107, 0
  %140 = icmp eq i32 %spec.select, 1
  %or.cond3 = select i1 %139, i1 %140, i1 false
  br i1 %or.cond3, label %141, label %._crit_edge.thread

141:                                              ; preds = %._crit_edge
  %cond = icmp eq i32 %.0111191, -1
  br i1 %cond, label %142, label %146

142:                                              ; preds = %141
  %143 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %11, ptr noundef nonnull dereferenceable(1) @.str.31, i32 noundef %91, ptr noundef nonnull @EndOfString) #10
  call void @print_line_c2f(ptr noundef nonnull %11, ptr noundef nonnull %4) #10
  br label %146

._crit_edge.thread:                               ; preds = %90, %._crit_edge
  %.2.lcssa221 = phi ptr [ %.2.lcssa, %._crit_edge ], [ %.1195, %90 ]
  %.1102.lcssa219 = phi ptr [ %.1102.lcssa, %._crit_edge ], [ %.0101194, %90 ]
  %.1106.lcssa217 = phi i32 [ %.2107, %._crit_edge ], [ 0, %90 ]
  %.1114.lcssa216 = phi i32 [ %spec.select, %._crit_edge ], [ 0, %90 ]
  %144 = icmp ne i32 %.0111191, -1
  %145 = icmp ne i32 %.1106.lcssa217, 0
  %or.cond5 = or i1 %144, %145
  %spec.select146 = select i1 %or.cond5, i32 %.1106.lcssa217, i32 -1
  br label %146

146:                                              ; preds = %141, %._crit_edge.thread, %142
  %.2.lcssa220 = phi ptr [ %.2.lcssa, %142 ], [ %.2.lcssa221, %._crit_edge.thread ], [ %.2.lcssa, %141 ]
  %.1102.lcssa218 = phi ptr [ %.1102.lcssa, %142 ], [ %.1102.lcssa219, %._crit_edge.thread ], [ %.1102.lcssa, %141 ]
  %.3116 = phi i32 [ 1, %142 ], [ %.1114.lcssa216, %._crit_edge.thread ], [ 1, %141 ]
  %.1112 = phi i32 [ -1, %142 ], [ %spec.select146, %._crit_edge.thread ], [ %.0111191, %141 ]
  %.3108 = phi i32 [ 0, %142 ], [ %.1106.lcssa217, %._crit_edge.thread ], [ %.0111191, %141 ]
  %.not137 = icmp eq ptr %.1102.lcssa218, null
  br i1 %.not137, label %._crit_edge198.loopexit, label %.thread

.thread:                                          ; preds = %.lr.ph197, %146
  %.4173 = phi ptr [ %.2.lcssa220, %146 ], [ %.1195, %.lr.ph197 ]
  %.3108171 = phi i32 [ %.3108, %146 ], [ %.0105193, %.lr.ph197 ]
  %.1110169 = phi i32 [ %91, %146 ], [ %.0109192, %.lr.ph197 ]
  %.1112167 = phi i32 [ %.1112, %146 ], [ %.0111191, %.lr.ph197 ]
  %.3116165 = phi i32 [ %.3116, %146 ], [ %.0113190, %.lr.ph197 ]
  %147 = load ptr, ptr @GAU_File, align 8, !tbaa !9
  %148 = call ptr @fgets(ptr noundef nonnull %5, i32 noundef 1024, ptr noundef %147)
  %.not138 = icmp eq ptr %148, null
  br i1 %.not138, label %._crit_edge198.loopexit, label %149

149:                                              ; preds = %.thread
  %150 = load i32, ptr %4, align 4, !tbaa !5
  %151 = call ptr @mqc_Alloc_InputLine(ptr noundef nonnull %5, ptr noundef nonnull %.4173, i32 noundef %150)
  br label %.lr.ph197, !llvm.loop !17

._crit_edge198.loopexit:                          ; preds = %.thread, %146
  %.3108172.ph = phi i32 [ %.3108, %146 ], [ %.3108171, %.thread ]
  %.1112168.ph = phi i32 [ %.1112, %146 ], [ %.1112167, %.thread ]
  %.3116166.ph = phi i32 [ %.3116, %146 ], [ %.3116165, %.thread ]
  %152 = icmp eq i32 %.3108172.ph, 0
  %153 = icmp eq i32 %.3116166.ph, 1
  br label %._crit_edge198

._crit_edge198:                                   ; preds = %82, %._crit_edge198.loopexit
  %.094207 = phi ptr [ %86, %._crit_edge198.loopexit ], [ undef, %82 ]
  %.0113.lcssa = phi i1 [ %153, %._crit_edge198.loopexit ], [ undef, %82 ]
  %.0111.lcssa = phi i32 [ %.1112168.ph, %._crit_edge198.loopexit ], [ -1, %82 ]
  %.0105.lcssa = phi i1 [ %152, %._crit_edge198.loopexit ], [ undef, %82 ]
  %154 = load ptr, ptr @GAU_File, align 8, !tbaa !9
  %155 = call i32 @fclose(ptr noundef %154)
  store ptr null, ptr @GAU_File, align 8, !tbaa !9
  %.not133 = icmp eq i32 %155, 0
  br i1 %.not133, label %158, label %156

156:                                              ; preds = %._crit_edge198
  %157 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.32, ptr noundef %0, ptr noundef nonnull @EndOfString) #10
  call void @mqc_error_i_c2f_0(ptr noundef nonnull %5, ptr noundef nonnull %4) #10
  br label %158

158:                                              ; preds = %156, %._crit_edge198
  %159 = icmp eq i32 %.0111.lcssa, -1
  %or.cond7 = select i1 %.0105.lcssa, i1 %159, i1 false
  br i1 %or.cond7, label %160, label %161

160:                                              ; preds = %158
  br i1 %.0113.lcssa, label %177, label %163

161:                                              ; preds = %158
  %162 = icmp eq i32 %.0111.lcssa, 0
  br i1 %162, label %163, label %177

163:                                              ; preds = %160, %161
  %164 = load ptr, ptr @Last_Keyword, align 8, !tbaa !9
  %165 = getelementptr inbounds i8, ptr %164, i64 32
  %166 = load ptr, ptr %165, align 8, !tbaa !18
  call void @mqc_Remove_Return(ptr noundef %166)
  %167 = load ptr, ptr @Last_Keyword, align 8, !tbaa !9
  %168 = getelementptr inbounds i8, ptr %167, i64 32
  %169 = load ptr, ptr %168, align 8, !tbaa !18
  %170 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.33, ptr noundef %169) #10
  %171 = load ptr, ptr @Last_Keyword, align 8, !tbaa !9
  %172 = getelementptr inbounds i8, ptr %171, i64 32
  %173 = load ptr, ptr %172, align 8, !tbaa !18
  %174 = call ptr @mqc_DupString(ptr noundef nonnull %5, ptr noundef %173)
  %175 = load ptr, ptr @Last_Keyword, align 8, !tbaa !9
  %176 = getelementptr inbounds i8, ptr %175, i64 32
  store ptr %174, ptr %176, align 8, !tbaa !18
  br label %177

177:                                              ; preds = %160, %163, %161
  %178 = phi i1 [ false, %160 ], [ true, %163 ], [ false, %161 ]
  %179 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) %0) #10
  %180 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #11
  %181 = shl i64 %180, 32
  %sext = add i64 %181, -17179869184
  %182 = ashr exact i64 %sext, 32
  %183 = getelementptr inbounds [1024 x i8], ptr %9, i64 0, i64 %182
  %184 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %183, ptr noundef nonnull dereferenceable(1) @.str.34, i64 noundef 4) #11
  %185 = icmp eq i32 %184, 0
  br i1 %185, label %186, label %188

186:                                              ; preds = %177
  %187 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %183, ptr noundef nonnull dereferenceable(1) @EndOfString) #10
  br label %188

188:                                              ; preds = %186, %177
  %189 = load ptr, ptr @Last_NonBlank, align 8, !tbaa !9
  %190 = getelementptr inbounds i8, ptr %189, i64 8
  %191 = load ptr, ptr %190, align 8, !tbaa !19
  %192 = getelementptr inbounds i8, ptr %191, i64 16
  %193 = load i32, ptr %192, align 8, !tbaa !13
  %194 = icmp eq i32 %193, 0
  br i1 %194, label %.thread176, label %195

195:                                              ; preds = %188
  %196 = getelementptr inbounds i8, ptr %191, i64 32
  %197 = load ptr, ptr %196, align 8, !tbaa !18
  %198 = call i32 @mqc_FINDstrINline(ptr noundef nonnull @.str.22, ptr noundef %197)
  %.not135 = icmp ne i32 %198, -1
  %or.cond178 = or i1 %178, %.not135
  br i1 %or.cond178, label %.thread176, label %206

.thread176:                                       ; preds = %195, %188
  %199 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.35, ptr noundef nonnull %9) #10
  %200 = load ptr, ptr @Last_NonBlank, align 8, !tbaa !9
  %201 = load i32, ptr %4, align 4, !tbaa !5
  %202 = call ptr @mqc_Alloc_InputLine(ptr noundef nonnull %5, ptr noundef %200, i32 noundef %201)
  %203 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.36, ptr noundef nonnull %9) #10
  %204 = call ptr @mqc_DupString(ptr noundef nonnull %5, ptr noundef null)
  %205 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.37, ptr noundef nonnull %9) #10
  call void @mqc_Write_InputLines(ptr noundef nonnull %10, ptr noundef %.094207)
  br label %212

206:                                              ; preds = %195
  %207 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) %0) #10
  %208 = load ptr, ptr @Last_NonBlank, align 8, !tbaa !9
  %209 = getelementptr inbounds i8, ptr %208, i64 32
  %210 = load ptr, ptr %209, align 8, !tbaa !18
  %211 = call ptr @mqc_DupString(ptr noundef %210, ptr noundef null)
  br label %212

212:                                              ; preds = %206, %.thread176
  %.0100 = phi ptr [ %204, %.thread176 ], [ %211, %206 ]
  call void @mqc_Free_InputLines(ptr noundef %.094207)
  %213 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.38, ptr noundef %1, ptr noundef nonnull %10, ptr noundef nonnull %9) #10
  %214 = call i32 @system(ptr noundef nonnull %5) #10
  %215 = icmp eq i32 %214, -1
  br i1 %215, label %216, label %218

216:                                              ; preds = %212
  %217 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %11, ptr noundef nonnull dereferenceable(1) @.str.39, ptr noundef nonnull %5, ptr noundef nonnull @EndOfString) #10
  call void @print_line_c2f(ptr noundef nonnull %11, ptr noundef nonnull %4) #10
  br label %218

218:                                              ; preds = %216, %212
  call void @mqc_Remove_Return(ptr noundef %.0100)
  %219 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.6, ptr noundef %.0100, ptr noundef nonnull %7) #10
  %220 = call i32 @system(ptr noundef nonnull %5) #10
  %221 = icmp eq i32 %220, -1
  br i1 %221, label %222, label %224

222:                                              ; preds = %218
  %223 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.40, ptr noundef %.0100, ptr noundef nonnull %7, ptr noundef nonnull @EndOfString) #10
  call void @mqc_error_i_c2f_0(ptr noundef nonnull %5, ptr noundef nonnull %4) #10
  br label %224

224:                                              ; preds = %222, %218
  %225 = call noalias ptr @fopen(ptr noundef nonnull %7, ptr noundef nonnull @.str.7)
  store ptr %225, ptr @CheckGAU_File, align 8, !tbaa !9
  %226 = icmp eq ptr %225, null
  br i1 %226, label %227, label %229

227:                                              ; preds = %224
  %228 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.10, ptr noundef nonnull %7, ptr noundef nonnull @EndOfString) #10
  call void @mqc_error_i_c2f_0(ptr noundef nonnull %5, ptr noundef nonnull %4) #10
  %.pre204 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !9
  br label %229

229:                                              ; preds = %227, %224
  %230 = phi ptr [ %.pre204, %227 ], [ %225, %224 ]
  %231 = call ptr @fgets(ptr noundef nonnull %5, i32 noundef 1024, ptr noundef %230)
  %232 = load ptr, ptr @CheckGAU_File, align 8, !tbaa !9
  %233 = call i32 @fclose(ptr noundef %232)
  %234 = call i32 @unlink(ptr noundef nonnull %7) #10
  store ptr null, ptr @CheckGAU_File, align 8, !tbaa !9
  %235 = call i32 @mqc_FINDstrINline(ptr noundef nonnull @.str.41, ptr noundef nonnull %5)
  %236 = icmp eq i32 %235, -1
  br i1 %236, label %237, label %239

237:                                              ; preds = %229
  %238 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.42, ptr noundef %.0100, ptr noundef nonnull @EndOfString) #10
  call void @mqc_error_i_c2f_0(ptr noundef nonnull %5, ptr noundef nonnull %4) #10
  br label %239

239:                                              ; preds = %229, %237, %52
  %.0 = phi ptr [ %54, %52 ], [ %.0100, %237 ], [ %.0100, %229 ]
  call void @llvm.lifetime.end.p0(i64 2048, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %5) #10
  ret ptr %.0
}

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

; Function Attrs: nounwind
declare i32 @getpid() local_unnamed_addr #2

; Function Attrs: nofree nounwind memory(read)
declare noundef ptr @getenv(ptr nocapture noundef) local_unnamed_addr #3

; Function Attrs: nofree nounwind
declare noundef i32 @sprintf(ptr noalias nocapture noundef writeonly, ptr nocapture noundef readonly, ...) local_unnamed_addr #4

; Function Attrs: nofree nounwind
declare noalias noundef ptr @fopen(ptr nocapture noundef readonly, ptr nocapture noundef readonly) local_unnamed_addr #4

declare void @mqc_error_i_c2f_0(ptr noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fclose(ptr nocapture noundef) local_unnamed_addr #4

; Function Attrs: nofree nounwind
declare noundef i32 @unlink(ptr nocapture noundef readonly) local_unnamed_addr #4

; Function Attrs: nofree
declare noundef i32 @system(ptr nocapture noundef readonly) local_unnamed_addr #6

; Function Attrs: nofree nounwind
declare noundef ptr @fgets(ptr noundef, i32 noundef, ptr nocapture noundef) local_unnamed_addr #4

; Function Attrs: nounwind uwtable
declare dso_local i32 @mqc_FINDstrINline(ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local ptr @mqc_DupString(ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noundef i32 @fputs(ptr nocapture noundef readonly, ptr nocapture noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strncmp(ptr nocapture noundef, ptr nocapture noundef, i64 noundef) local_unnamed_addr #7

; Function Attrs: nounwind uwtable
declare dso_local ptr @mqc_Alloc_InputLine(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

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

; Function Attrs: nounwind uwtable
declare dso_local ptr @mqc_Replace_String(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #9

declare void @print_line_c2f(ptr noundef, ptr noundef) local_unnamed_addr #5

; Function Attrs: nounwind uwtable
declare dso_local void @mqc_Remove_Return(ptr noundef) local_unnamed_addr #1

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

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

; Function Attrs: nounwind uwtable
declare dso_local void @mqc_Free_InputLines(ptr noundef) local_unnamed_addr #1

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !6, i64 20}
!12 = !{!"InputLine", !10, i64 0, !10, i64 8, !6, i64 16, !6, i64 20, !6, i64 24, !10, i64 32, !10, i64 40}
!13 = !{!12, !6, i64 16}
!14 = !{!12, !10, i64 40}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = !{!12, !10, i64 32}
!19 = !{!12, !10, i64 8}


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