; LLVM IR from alexzheng42/sDMD :: src (Initialization)

; 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.DynamicWallStr = type { [16 x i8], i32, i32, double, double, double, double, [4 x double] }
%struct.PreBondStr = type { i32, i32, double }
%struct.FlowStr = type { i32, %struct.ConstVStr, %struct.ForceStr, %struct.ChargeStr }
%struct.ConstVStr = type { [4 x double] }
%struct.ForceStr = type { [4 x double], ptr, ptr }
%struct.ChargeStr = type { i32, i32, ptr, ptr, ptr, ptr }
%struct.REMDStr = type { i32, i32, i32, [50 x i8], [50 x i8], %struct.REMDTempStr }
%struct.REMDTempStr = type { i32, double }
%struct.ObstructionStr = type { i32, i32, ptr, ptr, ptr }
%struct.CGGovStr = type { [2 x [16 x i8]], i32, i32, ptr, ptr }
%struct.FileStr = type { i32, [256 x i8], ptr }

@__const.InputData.saveDataFileName = external hidden unnamed_addr constant [50 x i8], align 16
@__const.InputData.coordinateFileName = external hidden unnamed_addr constant [50 x i8], align 16
@fileList = external global ptr, align 8
@.str = external hidden unnamed_addr constant [3 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [71 x i8], align 1
@datadir = external global [1024 x i8], align 16
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [69 x i8], align 1
@savedir = external global [1024 x i8], align 16
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [5 x i8], align 1
@boxDimension = external global [4 x double], align 16
@.str.8 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [5 x i8], align 1
@wallDyn = external global %struct.DynamicWallStr, align 8
@.str.21 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@preBond = external global %struct.PreBondStr, align 8
@.str.23 = external hidden unnamed_addr constant [5 x i8], align 1
@chargeAA = external global [9 x i32], align 16
@.str.24 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [5 x i8], align 1
@flow = external global %struct.FlowStr, align 8
@.str.33 = external hidden unnamed_addr constant [6 x i8], align 1
@REMDInfo = external global %struct.REMDStr, align 8
@.str.34 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [72 x i8], align 1
@targetTemperature = external global double, align 8
@.str.37 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [8 x i8], align 1
@visual = external global i32, align 4
@.str.40 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [4 x i8], align 1
@neworcontinue = external global [20 x i8], align 16
@.str.79 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [2 x i8], align 1
@seed = external global i32, align 4
@.str.85 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [33 x i8], align 1
@stdout = external global ptr, align 8
@wallExist = external global [20 x i8], align 16
@.str.88 = external hidden unnamed_addr constant [3 x i8], align 1
@obstObj = external global %struct.ObstructionStr, align 8
@CG = external global %struct.CGGovStr, align 8
@.str.89 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [55 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @InputData(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca [50 x i8], align 16
  %7 = alloca [50 x i8], align 16
  %8 = alloca [1024 x i8], align 16
  %9 = alloca i32, align 4
  store i32 %0, ptr %3, align 4, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #9
  call void @llvm.lifetime.start.p0(i64 50, ptr %6) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %6, ptr align 16 @__const.InputData.saveDataFileName, i64 50, i1 false)
  call void @llvm.lifetime.start.p0(i64 50, ptr %7) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %7, ptr align 16 @__const.InputData.coordinateFileName, i64 50, i1 false)
  call void @llvm.lifetime.start.p0(i64 1024, ptr %8) #9
  %10 = call noalias ptr @calloc(i64 noundef 15, i64 noundef 272) #10
  store ptr %10, ptr @fileList, align 8, !tbaa !9
  %11 = load i32, ptr %3, align 4, !tbaa !5
  %12 = icmp sgt i32 %11, 0
  br i1 %12, label %13, label %1046

13:                                               ; preds = %2
  store i32 1, ptr %9, align 4, !tbaa !5
  br label %14

14:                                               ; preds = %1042, %13
  %15 = load i32, ptr %9, align 4, !tbaa !5
  %16 = load i32, ptr %3, align 4, !tbaa !5
  %17 = icmp slt i32 %15, %16
  br i1 %17, label %18, label %1045

18:                                               ; preds = %14
  %19 = load ptr, ptr %4, align 8, !tbaa !9
  %20 = load i32, ptr %9, align 4, !tbaa !5
  %21 = sext i32 %20 to i64
  %22 = getelementptr inbounds ptr, ptr %19, i64 %21
  %23 = load ptr, ptr %22, align 8, !tbaa !9
  %24 = getelementptr inbounds i8, ptr %23, i64 0
  %25 = load i8, ptr %24, align 1, !tbaa !11
  %26 = sext i8 %25 to i32
  %27 = icmp eq i32 %26, 45
  br i1 %27, label %28, label %1041

28:                                               ; preds = %18
  %29 = load ptr, ptr %4, align 8, !tbaa !9
  %30 = load i32, ptr %9, align 4, !tbaa !5
  %31 = sext i32 %30 to i64
  %32 = getelementptr inbounds ptr, ptr %29, i64 %31
  %33 = load ptr, ptr %32, align 8, !tbaa !9
  %34 = call i32 @strcmp(ptr noundef %33, ptr noundef @.str) #11
  %35 = icmp eq i32 %34, 0
  br i1 %35, label %36, label %61

36:                                               ; preds = %28
  %37 = load i32, ptr %9, align 4, !tbaa !5
  %38 = add nsw i32 %37, 1
  %39 = load i32, ptr %3, align 4, !tbaa !5
  %40 = icmp sge i32 %38, %39
  br i1 %40, label %50, label %41

41:                                               ; preds = %36
  %42 = load ptr, ptr %4, align 8, !tbaa !9
  %43 = load i32, ptr %9, align 4, !tbaa !5
  %44 = add nsw i32 %43, 1
  %45 = sext i32 %44 to i64
  %46 = getelementptr inbounds ptr, ptr %42, i64 %45
  %47 = load ptr, ptr %46, align 8, !tbaa !9
  %48 = call ptr @opendir(ptr noundef %47)
  %49 = icmp ne ptr %48, null
  br i1 %49, label %52, label %50

50:                                               ; preds = %41, %36
  %51 = call i32 (ptr, ...) @printf(ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 68)
  br label %972

52:                                               ; preds = %41
  %53 = load ptr, ptr %4, align 8, !tbaa !9
  %54 = load i32, ptr %9, align 4, !tbaa !5
  %55 = add nsw i32 %54, 1
  %56 = sext i32 %55 to i64
  %57 = getelementptr inbounds ptr, ptr %53, i64 %56
  %58 = load ptr, ptr %57, align 8, !tbaa !9
  %59 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef @datadir, ptr noundef @.str.3, ptr noundef %58) #9
  br label %60

60:                                               ; preds = %52
  br label %1040

61:                                               ; preds = %28
  %62 = load ptr, ptr %4, align 8, !tbaa !9
  %63 = load i32, ptr %9, align 4, !tbaa !5
  %64 = sext i32 %63 to i64
  %65 = getelementptr inbounds ptr, ptr %62, i64 %64
  %66 = load ptr, ptr %65, align 8, !tbaa !9
  %67 = call i32 @strcmp(ptr noundef %66, ptr noundef @.str.4) #11
  %68 = icmp eq i32 %67, 0
  br i1 %68, label %69, label %94

69:                                               ; preds = %61
  %70 = load i32, ptr %9, align 4, !tbaa !5
  %71 = add nsw i32 %70, 1
  %72 = load i32, ptr %3, align 4, !tbaa !5
  %73 = icmp sge i32 %71, %72
  br i1 %73, label %83, label %74

74:                                               ; preds = %69
  %75 = load ptr, ptr %4, align 8, !tbaa !9
  %76 = load i32, ptr %9, align 4, !tbaa !5
  %77 = add nsw i32 %76, 1
  %78 = sext i32 %77 to i64
  %79 = getelementptr inbounds ptr, ptr %75, i64 %78
  %80 = load ptr, ptr %79, align 8, !tbaa !9
  %81 = call ptr @opendir(ptr noundef %80)
  %82 = icmp ne ptr %81, null
  br i1 %82, label %85, label %83

83:                                               ; preds = %74, %69
  %84 = call i32 (ptr, ...) @printf(ptr noundef @.str.5)
  br label %972

85:                                               ; preds = %74
  %86 = load ptr, ptr %4, align 8, !tbaa !9
  %87 = load i32, ptr %9, align 4, !tbaa !5
  %88 = add nsw i32 %87, 1
  %89 = sext i32 %88 to i64
  %90 = getelementptr inbounds ptr, ptr %86, i64 %89
  %91 = load ptr, ptr %90, align 8, !tbaa !9
  %92 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef @savedir, ptr noundef @.str.3, ptr noundef %91) #9
  br label %93

93:                                               ; preds = %85
  br label %1039

94:                                               ; preds = %61
  %95 = load ptr, ptr %4, align 8, !tbaa !9
  %96 = load i32, ptr %9, align 4, !tbaa !5
  %97 = sext i32 %96 to i64
  %98 = getelementptr inbounds ptr, ptr %95, i64 %97
  %99 = load ptr, ptr %98, align 8, !tbaa !9
  %100 = call i32 @strcmp(ptr noundef %99, ptr noundef @.str.6) #11
  %101 = icmp eq i32 %100, 0
  br i1 %101, label %102, label %128

102:                                              ; preds = %94
  %103 = load i32, ptr %9, align 4, !tbaa !5
  %104 = add nsw i32 %103, 1
  %105 = load i32, ptr %3, align 4, !tbaa !5
  %106 = icmp sge i32 %104, %105
  br i1 %106, label %127, label %107

107:                                              ; preds = %102
  %108 = load ptr, ptr %4, align 8, !tbaa !9
  %109 = load i32, ptr %9, align 4, !tbaa !5
  %110 = add nsw i32 %109, 1
  %111 = sext i32 %110 to i64
  %112 = getelementptr inbounds ptr, ptr %108, i64 %111
  %113 = load ptr, ptr %112, align 8, !tbaa !9
  %114 = getelementptr inbounds i8, ptr %113, i64 0
  %115 = load i8, ptr %114, align 1, !tbaa !11
  %116 = sext i8 %115 to i32
  %117 = icmp eq i32 %116, 45
  br i1 %117, label %127, label %118

118:                                              ; preds = %107
  %119 = getelementptr inbounds [50 x i8], ptr %7, i64 0, i64 0
  %120 = load ptr, ptr %4, align 8, !tbaa !9
  %121 = load i32, ptr %9, align 4, !tbaa !5
  %122 = add nsw i32 %121, 1
  %123 = sext i32 %122 to i64
  %124 = getelementptr inbounds ptr, ptr %120, i64 %123
  %125 = load ptr, ptr %124, align 8, !tbaa !9
  %126 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %119, ptr noundef @.str.3, ptr noundef %125) #9
  br label %127

127:                                              ; preds = %118, %107, %102
  br label %1038

128:                                              ; preds = %94
  %129 = load ptr, ptr %4, align 8, !tbaa !9
  %130 = load i32, ptr %9, align 4, !tbaa !5
  %131 = sext i32 %130 to i64
  %132 = getelementptr inbounds ptr, ptr %129, i64 %131
  %133 = load ptr, ptr %132, align 8, !tbaa !9
  %134 = call i32 @strcmp(ptr noundef %133, ptr noundef @.str.7) #11
  %135 = icmp eq i32 %134, 0
  br i1 %135, label %136, label %158

136:                                              ; preds = %128
  %137 = load ptr, ptr %4, align 8, !tbaa !9
  %138 = load i32, ptr %9, align 4, !tbaa !5
  %139 = add nsw i32 %138, 1
  %140 = sext i32 %139 to i64
  %141 = getelementptr inbounds ptr, ptr %137, i64 %140
  %142 = load ptr, ptr %141, align 8, !tbaa !9
  %143 = call double @atof(ptr noundef %142) #11
  store double %143, ptr getelementptr inbounds ([4 x double], ptr @boxDimension, i64 0, i64 1), align 8, !tbaa !12
  %144 = load ptr, ptr %4, align 8, !tbaa !9
  %145 = load i32, ptr %9, align 4, !tbaa !5
  %146 = add nsw i32 %145, 2
  %147 = sext i32 %146 to i64
  %148 = getelementptr inbounds ptr, ptr %144, i64 %147
  %149 = load ptr, ptr %148, align 8, !tbaa !9
  %150 = call double @atof(ptr noundef %149) #11
  store double %150, ptr getelementptr inbounds ([4 x double], ptr @boxDimension, i64 0, i64 2), align 16, !tbaa !12
  %151 = load ptr, ptr %4, align 8, !tbaa !9
  %152 = load i32, ptr %9, align 4, !tbaa !5
  %153 = add nsw i32 %152, 3
  %154 = sext i32 %153 to i64
  %155 = getelementptr inbounds ptr, ptr %151, i64 %154
  %156 = load ptr, ptr %155, align 8, !tbaa !9
  %157 = call double @atof(ptr noundef %156) #11
  store double %157, ptr getelementptr inbounds ([4 x double], ptr @boxDimension, i64 0, i64 3), align 8, !tbaa !12
  br label %1037

158:                                              ; preds = %128
  %159 = load ptr, ptr %4, align 8, !tbaa !9
  %160 = load i32, ptr %9, align 4, !tbaa !5
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds ptr, ptr %159, i64 %161
  %163 = load ptr, ptr %162, align 8, !tbaa !9
  %164 = call i32 @strcmp(ptr noundef %163, ptr noundef @.str.8) #11
  %165 = icmp eq i32 %164, 0
  br i1 %165, label %166, label %192

166:                                              ; preds = %158
  %167 = load i32, ptr %9, align 4, !tbaa !5
  %168 = add nsw i32 %167, 1
  %169 = load i32, ptr %3, align 4, !tbaa !5
  %170 = icmp sge i32 %168, %169
  br i1 %170, label %191, label %171

171:                                              ; preds = %166
  %172 = load ptr, ptr %4, align 8, !tbaa !9
  %173 = load i32, ptr %9, align 4, !tbaa !5
  %174 = add nsw i32 %173, 1
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds ptr, ptr %172, i64 %175
  %177 = load ptr, ptr %176, align 8, !tbaa !9
  %178 = getelementptr inbounds i8, ptr %177, i64 0
  %179 = load i8, ptr %178, align 1, !tbaa !11
  %180 = sext i8 %179 to i32
  %181 = icmp eq i32 %180, 45
  br i1 %181, label %191, label %182

182:                                              ; preds = %171
  %183 = getelementptr inbounds [50 x i8], ptr %6, i64 0, i64 0
  %184 = load ptr, ptr %4, align 8, !tbaa !9
  %185 = load i32, ptr %9, align 4, !tbaa !5
  %186 = add nsw i32 %185, 1
  %187 = sext i32 %186 to i64
  %188 = getelementptr inbounds ptr, ptr %184, i64 %187
  %189 = load ptr, ptr %188, align 8, !tbaa !9
  %190 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %183, ptr noundef @.str.3, ptr noundef %189) #9
  br label %191

191:                                              ; preds = %182, %171, %166
  br label %1036

192:                                              ; preds = %158
  %193 = load ptr, ptr %4, align 8, !tbaa !9
  %194 = load i32, ptr %9, align 4, !tbaa !5
  %195 = sext i32 %194 to i64
  %196 = getelementptr inbounds ptr, ptr %193, i64 %195
  %197 = load ptr, ptr %196, align 8, !tbaa !9
  %198 = call i32 @strcmp(ptr noundef %197, ptr noundef @.str.9) #11
  %199 = icmp eq i32 %198, 0
  br i1 %199, label %200, label %229

200:                                              ; preds = %192
  %201 = load i32, ptr %9, align 4, !tbaa !5
  %202 = add nsw i32 %201, 1
  %203 = load i32, ptr %3, align 4, !tbaa !5
  %204 = icmp sge i32 %202, %203
  br i1 %204, label %228, label %205

205:                                              ; preds = %200
  %206 = load ptr, ptr %4, align 8, !tbaa !9
  %207 = load i32, ptr %9, align 4, !tbaa !5
  %208 = add nsw i32 %207, 1
  %209 = sext i32 %208 to i64
  %210 = getelementptr inbounds ptr, ptr %206, i64 %209
  %211 = load ptr, ptr %210, align 8, !tbaa !9
  %212 = getelementptr inbounds i8, ptr %211, i64 0
  %213 = load i8, ptr %212, align 1, !tbaa !11
  %214 = sext i8 %213 to i32
  %215 = icmp eq i32 %214, 45
  br i1 %215, label %228, label %216

216:                                              ; preds = %205
  %217 = load ptr, ptr @fileList, align 8, !tbaa !9
  %218 = getelementptr inbounds %struct.FileStr, ptr %217, i64 13
  %219 = getelementptr inbounds %struct.FileStr, ptr %218, i32 0, i32 1
  %220 = getelementptr inbounds [256 x i8], ptr %219, i64 0, i64 0
  %221 = load ptr, ptr %4, align 8, !tbaa !9
  %222 = load i32, ptr %9, align 4, !tbaa !5
  %223 = add nsw i32 %222, 1
  %224 = sext i32 %223 to i64
  %225 = getelementptr inbounds ptr, ptr %221, i64 %224
  %226 = load ptr, ptr %225, align 8, !tbaa !9
  %227 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %220, ptr noundef @.str.3, ptr noundef %226) #9
  br label %228

228:                                              ; preds = %216, %205, %200
  br label %1035

229:                                              ; preds = %192
  %230 = load ptr, ptr %4, align 8, !tbaa !9
  %231 = load i32, ptr %9, align 4, !tbaa !5
  %232 = sext i32 %231 to i64
  %233 = getelementptr inbounds ptr, ptr %230, i64 %232
  %234 = load ptr, ptr %233, align 8, !tbaa !9
  %235 = call i32 @strcmp(ptr noundef %234, ptr noundef @.str.10) #11
  %236 = icmp eq i32 %235, 0
  br i1 %236, label %237, label %266

237:                                              ; preds = %229
  %238 = load i32, ptr %9, align 4, !tbaa !5
  %239 = add nsw i32 %238, 1
  %240 = load i32, ptr %3, align 4, !tbaa !5
  %241 = icmp sge i32 %239, %240
  br i1 %241, label %265, label %242

242:                                              ; preds = %237
  %243 = load ptr, ptr %4, align 8, !tbaa !9
  %244 = load i32, ptr %9, align 4, !tbaa !5
  %245 = add nsw i32 %244, 1
  %246 = sext i32 %245 to i64
  %247 = getelementptr inbounds ptr, ptr %243, i64 %246
  %248 = load ptr, ptr %247, align 8, !tbaa !9
  %249 = getelementptr inbounds i8, ptr %248, i64 0
  %250 = load i8, ptr %249, align 1, !tbaa !11
  %251 = sext i8 %250 to i32
  %252 = icmp eq i32 %251, 45
  br i1 %252, label %265, label %253

253:                                              ; preds = %242
  %254 = load ptr, ptr @fileList, align 8, !tbaa !9
  %255 = getelementptr inbounds %struct.FileStr, ptr %254, i64 0
  %256 = getelementptr inbounds %struct.FileStr, ptr %255, i32 0, i32 1
  %257 = getelementptr inbounds [256 x i8], ptr %256, i64 0, i64 0
  %258 = load ptr, ptr %4, align 8, !tbaa !9
  %259 = load i32, ptr %9, align 4, !tbaa !5
  %260 = add nsw i32 %259, 1
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds ptr, ptr %258, i64 %261
  %263 = load ptr, ptr %262, align 8, !tbaa !9
  %264 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %257, ptr noundef @.str.3, ptr noundef %263) #9
  br label %265

265:                                              ; preds = %253, %242, %237
  br label %1034

266:                                              ; preds = %229
  %267 = load ptr, ptr %4, align 8, !tbaa !9
  %268 = load i32, ptr %9, align 4, !tbaa !5
  %269 = sext i32 %268 to i64
  %270 = getelementptr inbounds ptr, ptr %267, i64 %269
  %271 = load ptr, ptr %270, align 8, !tbaa !9
  %272 = call i32 @strcmp(ptr noundef %271, ptr noundef @.str.11) #11
  %273 = icmp eq i32 %272, 0
  br i1 %273, label %274, label %306

274:                                              ; preds = %266
  %275 = load i32, ptr %9, align 4, !tbaa !5
  %276 = add nsw i32 %275, 1
  %277 = load i32, ptr %3, align 4, !tbaa !5
  %278 = icmp sge i32 %276, %277
  br i1 %278, label %302, label %279

279:                                              ; preds = %274
  %280 = load ptr, ptr %4, align 8, !tbaa !9
  %281 = load i32, ptr %9, align 4, !tbaa !5
  %282 = add nsw i32 %281, 1
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds ptr, ptr %280, i64 %283
  %285 = load ptr, ptr %284, align 8, !tbaa !9
  %286 = getelementptr inbounds i8, ptr %285, i64 0
  %287 = load i8, ptr %286, align 1, !tbaa !11
  %288 = sext i8 %287 to i32
  %289 = icmp eq i32 %288, 45
  br i1 %289, label %302, label %290

290:                                              ; preds = %279
  %291 = load ptr, ptr @fileList, align 8, !tbaa !9
  %292 = getelementptr inbounds %struct.FileStr, ptr %291, i64 1
  %293 = getelementptr inbounds %struct.FileStr, ptr %292, i32 0, i32 1
  %294 = getelementptr inbounds [256 x i8], ptr %293, i64 0, i64 0
  %295 = load ptr, ptr %4, align 8, !tbaa !9
  %296 = load i32, ptr %9, align 4, !tbaa !5
  %297 = add nsw i32 %296, 1
  %298 = sext i32 %297 to i64
  %299 = getelementptr inbounds ptr, ptr %295, i64 %298
  %300 = load ptr, ptr %299, align 8, !tbaa !9
  %301 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %294, ptr noundef @.str.3, ptr noundef %300) #9
  br label %302

302:                                              ; preds = %290, %279, %274
  %303 = load ptr, ptr @fileList, align 8, !tbaa !9
  %304 = getelementptr inbounds %struct.FileStr, ptr %303, i64 1
  %305 = getelementptr inbounds %struct.FileStr, ptr %304, i32 0, i32 0
  store i32 1, ptr %305, align 8, !tbaa !14
  br label %1033

306:                                              ; preds = %266
  %307 = load ptr, ptr %4, align 8, !tbaa !9
  %308 = load i32, ptr %9, align 4, !tbaa !5
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds ptr, ptr %307, i64 %309
  %311 = load ptr, ptr %310, align 8, !tbaa !9
  %312 = call i32 @strcmp(ptr noundef %311, ptr noundef @.str.12) #11
  %313 = icmp eq i32 %312, 0
  br i1 %313, label %314, label %346

314:                                              ; preds = %306
  %315 = load i32, ptr %9, align 4, !tbaa !5
  %316 = add nsw i32 %315, 1
  %317 = load i32, ptr %3, align 4, !tbaa !5
  %318 = icmp sge i32 %316, %317
  br i1 %318, label %342, label %319

319:                                              ; preds = %314
  %320 = load ptr, ptr %4, align 8, !tbaa !9
  %321 = load i32, ptr %9, align 4, !tbaa !5
  %322 = add nsw i32 %321, 1
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds ptr, ptr %320, i64 %323
  %325 = load ptr, ptr %324, align 8, !tbaa !9
  %326 = getelementptr inbounds i8, ptr %325, i64 0
  %327 = load i8, ptr %326, align 1, !tbaa !11
  %328 = sext i8 %327 to i32
  %329 = icmp eq i32 %328, 45
  br i1 %329, label %342, label %330

330:                                              ; preds = %319
  %331 = load ptr, ptr @fileList, align 8, !tbaa !9
  %332 = getelementptr inbounds %struct.FileStr, ptr %331, i64 2
  %333 = getelementptr inbounds %struct.FileStr, ptr %332, i32 0, i32 1
  %334 = getelementptr inbounds [256 x i8], ptr %333, i64 0, i64 0
  %335 = load ptr, ptr %4, align 8, !tbaa !9
  %336 = load i32, ptr %9, align 4, !tbaa !5
  %337 = add nsw i32 %336, 1
  %338 = sext i32 %337 to i64
  %339 = getelementptr inbounds ptr, ptr %335, i64 %338
  %340 = load ptr, ptr %339, align 8, !tbaa !9
  %341 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %334, ptr noundef @.str.3, ptr noundef %340) #9
  br label %342

342:                                              ; preds = %330, %319, %314
  %343 = load ptr, ptr @fileList, align 8, !tbaa !9
  %344 = getelementptr inbounds %struct.FileStr, ptr %343, i64 2
  %345 = getelementptr inbounds %struct.FileStr, ptr %344, i32 0, i32 0
  store i32 1, ptr %345, align 8, !tbaa !14
  br label %1032

346:                                              ; preds = %306
  %347 = load ptr, ptr %4, align 8, !tbaa !9
  %348 = load i32, ptr %9, align 4, !tbaa !5
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds ptr, ptr %347, i64 %349
  %351 = load ptr, ptr %350, align 8, !tbaa !9
  %352 = call i32 @strcmp(ptr noundef %351, ptr noundef @.str.13) #11
  %353 = icmp eq i32 %352, 0
  br i1 %353, label %354, label %386

354:                                              ; preds = %346
  %355 = load i32, ptr %9, align 4, !tbaa !5
  %356 = add nsw i32 %355, 1
  %357 = load i32, ptr %3, align 4, !tbaa !5
  %358 = icmp sge i32 %356, %357
  br i1 %358, label %382, label %359

359:                                              ; preds = %354
  %360 = load ptr, ptr %4, align 8, !tbaa !9
  %361 = load i32, ptr %9, align 4, !tbaa !5
  %362 = add nsw i32 %361, 1
  %363 = sext i32 %362 to i64
  %364 = getelementptr inbounds ptr, ptr %360, i64 %363
  %365 = load ptr, ptr %364, align 8, !tbaa !9
  %366 = getelementptr inbounds i8, ptr %365, i64 0
  %367 = load i8, ptr %366, align 1, !tbaa !11
  %368 = sext i8 %367 to i32
  %369 = icmp eq i32 %368, 45
  br i1 %369, label %382, label %370

370:                                              ; preds = %359
  %371 = load ptr, ptr @fileList, align 8, !tbaa !9
  %372 = getelementptr inbounds %struct.FileStr, ptr %371, i64 3
  %373 = getelementptr inbounds %struct.FileStr, ptr %372, i32 0, i32 1
  %374 = getelementptr inbounds [256 x i8], ptr %373, i64 0, i64 0
  %375 = load ptr, ptr %4, align 8, !tbaa !9
  %376 = load i32, ptr %9, align 4, !tbaa !5
  %377 = add nsw i32 %376, 1
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds ptr, ptr %375, i64 %378
  %380 = load ptr, ptr %379, align 8, !tbaa !9
  %381 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %374, ptr noundef @.str.3, ptr noundef %380) #9
  br label %382

382:                                              ; preds = %370, %359, %354
  %383 = load ptr, ptr @fileList, align 8, !tbaa !9
  %384 = getelementptr inbounds %struct.FileStr, ptr %383, i64 3
  %385 = getelementptr inbounds %struct.FileStr, ptr %384, i32 0, i32 0
  store i32 1, ptr %385, align 8, !tbaa !14
  br label %1031

386:                                              ; preds = %346
  %387 = load ptr, ptr %4, align 8, !tbaa !9
  %388 = load i32, ptr %9, align 4, !tbaa !5
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds ptr, ptr %387, i64 %389
  %391 = load ptr, ptr %390, align 8, !tbaa !9
  %392 = call i32 @strcmp(ptr noundef %391, ptr noundef @.str.14) #11
  %393 = icmp eq i32 %392, 0
  br i1 %393, label %394, label %423

394:                                              ; preds = %386
  %395 = load i32, ptr %9, align 4, !tbaa !5
  %396 = add nsw i32 %395, 1
  %397 = load i32, ptr %3, align 4, !tbaa !5
  %398 = icmp sge i32 %396, %397
  br i1 %398, label %422, label %399

399:                                              ; preds = %394
  %400 = load ptr, ptr %4, align 8, !tbaa !9
  %401 = load i32, ptr %9, align 4, !tbaa !5
  %402 = add nsw i32 %401, 1
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds ptr, ptr %400, i64 %403
  %405 = load ptr, ptr %404, align 8, !tbaa !9
  %406 = getelementptr inbounds i8, ptr %405, i64 0
  %407 = load i8, ptr %406, align 1, !tbaa !11
  %408 = sext i8 %407 to i32
  %409 = icmp eq i32 %408, 45
  br i1 %409, label %422, label %410

410:                                              ; preds = %399
  %411 = load ptr, ptr @fileList, align 8, !tbaa !9
  %412 = getelementptr inbounds %struct.FileStr, ptr %411, i64 4
  %413 = getelementptr inbounds %struct.FileStr, ptr %412, i32 0, i32 1
  %414 = getelementptr inbounds [256 x i8], ptr %413, i64 0, i64 0
  %415 = load ptr, ptr %4, align 8, !tbaa !9
  %416 = load i32, ptr %9, align 4, !tbaa !5
  %417 = add nsw i32 %416, 1
  %418 = sext i32 %417 to i64
  %419 = getelementptr inbounds ptr, ptr %415, i64 %418
  %420 = load ptr, ptr %419, align 8, !tbaa !9
  %421 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %414, ptr noundef @.str.3, ptr noundef %420) #9
  br label %422

422:                                              ; preds = %410, %399, %394
  br label %1030

423:                                              ; preds = %386
  %424 = load ptr, ptr %4, align 8, !tbaa !9
  %425 = load i32, ptr %9, align 4, !tbaa !5
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds ptr, ptr %424, i64 %426
  %428 = load ptr, ptr %427, align 8, !tbaa !9
  %429 = call i32 @strcmp(ptr noundef %428, ptr noundef @.str.15) #11
  %430 = icmp eq i32 %429, 0
  br i1 %430, label %431, label %463

431:                                              ; preds = %423
  %432 = load i32, ptr %9, align 4, !tbaa !5
  %433 = add nsw i32 %432, 1
  %434 = load i32, ptr %3, align 4, !tbaa !5
  %435 = icmp sge i32 %433, %434
  br i1 %435, label %459, label %436

436:                                              ; preds = %431
  %437 = load ptr, ptr %4, align 8, !tbaa !9
  %438 = load i32, ptr %9, align 4, !tbaa !5
  %439 = add nsw i32 %438, 1
  %440 = sext i32 %439 to i64
  %441 = getelementptr inbounds ptr, ptr %437, i64 %440
  %442 = load ptr, ptr %441, align 8, !tbaa !9
  %443 = getelementptr inbounds i8, ptr %442, i64 0
  %444 = load i8, ptr %443, align 1, !tbaa !11
  %445 = sext i8 %444 to i32
  %446 = icmp eq i32 %445, 45
  br i1 %446, label %459, label %447

447:                                              ; preds = %436
  %448 = load ptr, ptr @fileList, align 8, !tbaa !9
  %449 = getelementptr inbounds %struct.FileStr, ptr %448, i64 5
  %450 = getelementptr inbounds %struct.FileStr, ptr %449, i32 0, i32 1
  %451 = getelementptr inbounds [256 x i8], ptr %450, i64 0, i64 0
  %452 = load ptr, ptr %4, align 8, !tbaa !9
  %453 = load i32, ptr %9, align 4, !tbaa !5
  %454 = add nsw i32 %453, 1
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds ptr, ptr %452, i64 %455
  %457 = load ptr, ptr %456, align 8, !tbaa !9
  %458 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %451, ptr noundef @.str.3, ptr noundef %457) #9
  br label %459

459:                                              ; preds = %447, %436, %431
  %460 = load ptr, ptr @fileList, align 8, !tbaa !9
  %461 = getelementptr inbounds %struct.FileStr, ptr %460, i64 5
  %462 = getelementptr inbounds %struct.FileStr, ptr %461, i32 0, i32 0
  store i32 1, ptr %462, align 8, !tbaa !14
  br label %1029

463:                                              ; preds = %423
  %464 = load ptr, ptr %4, align 8, !tbaa !9
  %465 = load i32, ptr %9, align 4, !tbaa !5
  %466 = sext i32 %465 to i64
  %467 = getelementptr inbounds ptr, ptr %464, i64 %466
  %468 = load ptr, ptr %467, align 8, !tbaa !9
  %469 = call i32 @strcmp(ptr noundef %468, ptr noundef @.str.16) #11
  %470 = icmp eq i32 %469, 0
  br i1 %470, label %471, label %503

471:                                              ; preds = %463
  %472 = load i32, ptr %9, align 4, !tbaa !5
  %473 = add nsw i32 %472, 1
  %474 = load i32, ptr %3, align 4, !tbaa !5
  %475 = icmp sge i32 %473, %474
  br i1 %475, label %499, label %476

476:                                              ; preds = %471
  %477 = load ptr, ptr %4, align 8, !tbaa !9
  %478 = load i32, ptr %9, align 4, !tbaa !5
  %479 = add nsw i32 %478, 1
  %480 = sext i32 %479 to i64
  %481 = getelementptr inbounds ptr, ptr %477, i64 %480
  %482 = load ptr, ptr %481, align 8, !tbaa !9
  %483 = getelementptr inbounds i8, ptr %482, i64 0
  %484 = load i8, ptr %483, align 1, !tbaa !11
  %485 = sext i8 %484 to i32
  %486 = icmp eq i32 %485, 45
  br i1 %486, label %499, label %487

487:                                              ; preds = %476
  %488 = load ptr, ptr @fileList, align 8, !tbaa !9
  %489 = getelementptr inbounds %struct.FileStr, ptr %488, i64 6
  %490 = getelementptr inbounds %struct.FileStr, ptr %489, i32 0, i32 1
  %491 = getelementptr inbounds [256 x i8], ptr %490, i64 0, i64 0
  %492 = load ptr, ptr %4, align 8, !tbaa !9
  %493 = load i32, ptr %9, align 4, !tbaa !5
  %494 = add nsw i32 %493, 1
  %495 = sext i32 %494 to i64
  %496 = getelementptr inbounds ptr, ptr %492, i64 %495
  %497 = load ptr, ptr %496, align 8, !tbaa !9
  %498 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %491, ptr noundef @.str.3, ptr noundef %497) #9
  br label %499

499:                                              ; preds = %487, %476, %471
  %500 = load ptr, ptr @fileList, align 8, !tbaa !9
  %501 = getelementptr inbounds %struct.FileStr, ptr %500, i64 6
  %502 = getelementptr inbounds %struct.FileStr, ptr %501, i32 0, i32 0
  store i32 1, ptr %502, align 8, !tbaa !14
  br label %1028

503:                                              ; preds = %463
  %504 = load ptr, ptr %4, align 8, !tbaa !9
  %505 = load i32, ptr %9, align 4, !tbaa !5
  %506 = sext i32 %505 to i64
  %507 = getelementptr inbounds ptr, ptr %504, i64 %506
  %508 = load ptr, ptr %507, align 8, !tbaa !9
  %509 = call i32 @strcmp(ptr noundef %508, ptr noundef @.str.17) #11
  %510 = icmp eq i32 %509, 0
  br i1 %510, label %511, label %543

511:                                              ; preds = %503
  %512 = load i32, ptr %9, align 4, !tbaa !5
  %513 = add nsw i32 %512, 1
  %514 = load i32, ptr %3, align 4, !tbaa !5
  %515 = icmp sge i32 %513, %514
  br i1 %515, label %539, label %516

516:                                              ; preds = %511
  %517 = load ptr, ptr %4, align 8, !tbaa !9
  %518 = load i32, ptr %9, align 4, !tbaa !5
  %519 = add nsw i32 %518, 1
  %520 = sext i32 %519 to i64
  %521 = getelementptr inbounds ptr, ptr %517, i64 %520
  %522 = load ptr, ptr %521, align 8, !tbaa !9
  %523 = getelementptr inbounds i8, ptr %522, i64 0
  %524 = load i8, ptr %523, align 1, !tbaa !11
  %525 = sext i8 %524 to i32
  %526 = icmp eq i32 %525, 45
  br i1 %526, label %539, label %527

527:                                              ; preds = %516
  %528 = load ptr, ptr @fileList, align 8, !tbaa !9
  %529 = getelementptr inbounds %struct.FileStr, ptr %528, i64 7
  %530 = getelementptr inbounds %struct.FileStr, ptr %529, i32 0, i32 1
  %531 = getelementptr inbounds [256 x i8], ptr %530, i64 0, i64 0
  %532 = load ptr, ptr %4, align 8, !tbaa !9
  %533 = load i32, ptr %9, align 4, !tbaa !5
  %534 = add nsw i32 %533, 1
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds ptr, ptr %532, i64 %535
  %537 = load ptr, ptr %536, align 8, !tbaa !9
  %538 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %531, ptr noundef @.str.3, ptr noundef %537) #9
  br label %539

539:                                              ; preds = %527, %516, %511
  %540 = load ptr, ptr @fileList, align 8, !tbaa !9
  %541 = getelementptr inbounds %struct.FileStr, ptr %540, i64 6
  %542 = getelementptr inbounds %struct.FileStr, ptr %541, i32 0, i32 0
  store i32 1, ptr %542, align 8, !tbaa !14
  br label %1027

543:                                              ; preds = %503
  %544 = load ptr, ptr %4, align 8, !tbaa !9
  %545 = load i32, ptr %9, align 4, !tbaa !5
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds ptr, ptr %544, i64 %546
  %548 = load ptr, ptr %547, align 8, !tbaa !9
  %549 = call i32 @strcmp(ptr noundef %548, ptr noundef @.str.18) #11
  %550 = icmp eq i32 %549, 0
  br i1 %550, label %551, label %580

551:                                              ; preds = %543
  %552 = load i32, ptr %9, align 4, !tbaa !5
  %553 = add nsw i32 %552, 1
  %554 = load i32, ptr %3, align 4, !tbaa !5
  %555 = icmp sge i32 %553, %554
  br i1 %555, label %579, label %556

556:                                              ; preds = %551
  %557 = load ptr, ptr %4, align 8, !tbaa !9
  %558 = load i32, ptr %9, align 4, !tbaa !5
  %559 = add nsw i32 %558, 1
  %560 = sext i32 %559 to i64
  %561 = getelementptr inbounds ptr, ptr %557, i64 %560
  %562 = load ptr, ptr %561, align 8, !tbaa !9
  %563 = getelementptr inbounds i8, ptr %562, i64 0
  %564 = load i8, ptr %563, align 1, !tbaa !11
  %565 = sext i8 %564 to i32
  %566 = icmp eq i32 %565, 45
  br i1 %566, label %579, label %567

567:                                              ; preds = %556
  %568 = load ptr, ptr @fileList, align 8, !tbaa !9
  %569 = getelementptr inbounds %struct.FileStr, ptr %568, i64 8
  %570 = getelementptr inbounds %struct.FileStr, ptr %569, i32 0, i32 1
  %571 = getelementptr inbounds [256 x i8], ptr %570, i64 0, i64 0
  %572 = load ptr, ptr %4, align 8, !tbaa !9
  %573 = load i32, ptr %9, align 4, !tbaa !5
  %574 = add nsw i32 %573, 1
  %575 = sext i32 %574 to i64
  %576 = getelementptr inbounds ptr, ptr %572, i64 %575
  %577 = load ptr, ptr %576, align 8, !tbaa !9
  %578 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %571, ptr noundef @.str.3, ptr noundef %577) #9
  br label %579

579:                                              ; preds = %567, %556, %551
  br label %1026

580:                                              ; preds = %543
  %581 = load ptr, ptr %4, align 8, !tbaa !9
  %582 = load i32, ptr %9, align 4, !tbaa !5
  %583 = sext i32 %582 to i64
  %584 = getelementptr inbounds ptr, ptr %581, i64 %583
  %585 = load ptr, ptr %584, align 8, !tbaa !9
  %586 = call i32 @strcmp(ptr noundef %585, ptr noundef @.str.19) #11
  %587 = icmp eq i32 %586, 0
  br i1 %587, label %588, label %617

588:                                              ; preds = %580
  %589 = load i32, ptr %9, align 4, !tbaa !5
  %590 = add nsw i32 %589, 1
  %591 = load i32, ptr %3, align 4, !tbaa !5
  %592 = icmp sge i32 %590, %591
  br i1 %592, label %616, label %593

593:                                              ; preds = %588
  %594 = load ptr, ptr %4, align 8, !tbaa !9
  %595 = load i32, ptr %9, align 4, !tbaa !5
  %596 = add nsw i32 %595, 1
  %597 = sext i32 %596 to i64
  %598 = getelementptr inbounds ptr, ptr %594, i64 %597
  %599 = load ptr, ptr %598, align 8, !tbaa !9
  %600 = getelementptr inbounds i8, ptr %599, i64 0
  %601 = load i8, ptr %600, align 1, !tbaa !11
  %602 = sext i8 %601 to i32
  %603 = icmp eq i32 %602, 45
  br i1 %603, label %616, label %604

604:                                              ; preds = %593
  %605 = load ptr, ptr @fileList, align 8, !tbaa !9
  %606 = getelementptr inbounds %struct.FileStr, ptr %605, i64 9
  %607 = getelementptr inbounds %struct.FileStr, ptr %606, i32 0, i32 1
  %608 = getelementptr inbounds [256 x i8], ptr %607, i64 0, i64 0
  %609 = load ptr, ptr %4, align 8, !tbaa !9
  %610 = load i32, ptr %9, align 4, !tbaa !5
  %611 = add nsw i32 %610, 1
  %612 = sext i32 %611 to i64
  %613 = getelementptr inbounds ptr, ptr %609, i64 %612
  %614 = load ptr, ptr %613, align 8, !tbaa !9
  %615 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %608, ptr noundef @.str.3, ptr noundef %614) #9
  br label %616

616:                                              ; preds = %604, %593, %588
  br label %1025

617:                                              ; preds = %580
  %618 = load ptr, ptr %4, align 8, !tbaa !9
  %619 = load i32, ptr %9, align 4, !tbaa !5
  %620 = sext i32 %619 to i64
  %621 = getelementptr inbounds ptr, ptr %618, i64 %620
  %622 = load ptr, ptr %621, align 8, !tbaa !9
  %623 = call i32 @strcmp(ptr noundef %622, ptr noundef @.str.20) #11
  %624 = icmp eq i32 %623, 0
  br i1 %624, label %625, label %650

625:                                              ; preds = %617
  %626 = load i32, ptr %9, align 4, !tbaa !5
  %627 = add nsw i32 %626, 1
  %628 = load i32, ptr %3, align 4, !tbaa !5
  %629 = icmp sge i32 %627, %628
  br i1 %629, label %649, label %630

630:                                              ; preds = %625
  %631 = load ptr, ptr %4, align 8, !tbaa !9
  %632 = load i32, ptr %9, align 4, !tbaa !5
  %633 = add nsw i32 %632, 1
  %634 = sext i32 %633 to i64
  %635 = getelementptr inbounds ptr, ptr %631, i64 %634
  %636 = load ptr, ptr %635, align 8, !tbaa !9
  %637 = getelementptr inbounds i8, ptr %636, i64 0
  %638 = load i8, ptr %637, align 1, !tbaa !11
  %639 = sext i8 %638 to i32
  %640 = icmp eq i32 %639, 45
  br i1 %640, label %649, label %641

641:                                              ; preds = %630
  %642 = load ptr, ptr %4, align 8, !tbaa !9
  %643 = load i32, ptr %9, align 4, !tbaa !5
  %644 = add nsw i32 %643, 1
  %645 = sext i32 %644 to i64
  %646 = getelementptr inbounds ptr, ptr %642, i64 %645
  %647 = load ptr, ptr %646, align 8, !tbaa !9
  %648 = call double @atof(ptr noundef %647) #11
  store double %648, ptr getelementptr inbounds (%struct.DynamicWallStr, ptr @wallDyn, i32 0, i32 3), align 8, !tbaa !16
  br label %649

649:                                              ; preds = %641, %630, %625
  br label %1024

650:                                              ; preds = %617
  %651 = load ptr, ptr %4, align 8, !tbaa !9
  %652 = load i32, ptr %9, align 4, !tbaa !5
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds ptr, ptr %651, i64 %653
  %655 = load ptr, ptr %654, align 8, !tbaa !9
  %656 = call i32 @strcmp(ptr noundef %655, ptr noundef @.str.21) #11
  %657 = icmp eq i32 %656, 0
  br i1 %657, label %658, label %683

658:                                              ; preds = %650
  %659 = load i32, ptr %9, align 4, !tbaa !5
  %660 = add nsw i32 %659, 1
  %661 = load i32, ptr %3, align 4, !tbaa !5
  %662 = icmp sge i32 %660, %661
  br i1 %662, label %682, label %663

663:                                              ; preds = %658
  %664 = load ptr, ptr %4, align 8, !tbaa !9
  %665 = load i32, ptr %9, align 4, !tbaa !5
  %666 = add nsw i32 %665, 1
  %667 = sext i32 %666 to i64
  %668 = getelementptr inbounds ptr, ptr %664, i64 %667
  %669 = load ptr, ptr %668, align 8, !tbaa !9
  %670 = getelementptr inbounds i8, ptr %669, i64 0
  %671 = load i8, ptr %670, align 1, !tbaa !11
  %672 = sext i8 %671 to i32
  %673 = icmp eq i32 %672, 45
  br i1 %673, label %682, label %674

674:                                              ; preds = %663
  %675 = load ptr, ptr %4, align 8, !tbaa !9
  %676 = load i32, ptr %9, align 4, !tbaa !5
  %677 = add nsw i32 %676, 1
  %678 = sext i32 %677 to i64
  %679 = getelementptr inbounds ptr, ptr %675, i64 %678
  %680 = load ptr, ptr %679, align 8, !tbaa !9
  %681 = call double @atof(ptr noundef %680) #11
  store double %681, ptr getelementptr inbounds (%struct.DynamicWallStr, ptr @wallDyn, i32 0, i32 4), align 8, !tbaa !18
  br label %682

682:                                              ; preds = %674, %663, %658
  br label %1023

683:                                              ; preds = %650
  %684 = load ptr, ptr %4, align 8, !tbaa !9
  %685 = load i32, ptr %9, align 4, !tbaa !5
  %686 = sext i32 %685 to i64
  %687 = getelementptr inbounds ptr, ptr %684, i64 %686
  %688 = load ptr, ptr %687, align 8, !tbaa !9
  %689 = call i32 @strcmp(ptr noundef %688, ptr noundef @.str.22) #11
  %690 = icmp eq i32 %689, 0
  br i1 %690, label %691, label %692

691:                                              ; preds = %683
  store i32 1, ptr @preBond, align 8, !tbaa !19
  br label %1022

692:                                              ; preds = %683
  %693 = load ptr, ptr %4, align 8, !tbaa !9
  %694 = load i32, ptr %9, align 4, !tbaa !5
  %695 = sext i32 %694 to i64
  %696 = getelementptr inbounds ptr, ptr %693, i64 %695
  %697 = load ptr, ptr %696, align 8, !tbaa !9
  %698 = call i32 @strcmp(ptr noundef %697, ptr noundef @.str.23) #11
  %699 = icmp eq i32 %698, 0
  br i1 %699, label %700, label %701

700:                                              ; preds = %692
  store i32 1, ptr getelementptr inbounds ([9 x i32], ptr @chargeAA, i64 0, i64 1), align 4, !tbaa !5
  br label %1021

701:                                              ; preds = %692
  %702 = load ptr, ptr %4, align 8, !tbaa !9
  %703 = load i32, ptr %9, align 4, !tbaa !5
  %704 = sext i32 %703 to i64
  %705 = getelementptr inbounds ptr, ptr %702, i64 %704
  %706 = load ptr, ptr %705, align 8, !tbaa !9
  %707 = call i32 @strcmp(ptr noundef %706, ptr noundef @.str.24) #11
  %708 = icmp eq i32 %707, 0
  br i1 %708, label %709, label %710

709:                                              ; preds = %701
  store i32 1, ptr getelementptr inbounds ([9 x i32], ptr @chargeAA, i64 0, i64 2), align 8, !tbaa !5
  br label %1020

710:                                              ; preds = %701
  %711 = load ptr, ptr %4, align 8, !tbaa !9
  %712 = load i32, ptr %9, align 4, !tbaa !5
  %713 = sext i32 %712 to i64
  %714 = getelementptr inbounds ptr, ptr %711, i64 %713
  %715 = load ptr, ptr %714, align 8, !tbaa !9
  %716 = call i32 @strcmp(ptr noundef %715, ptr noundef @.str.25) #11
  %717 = icmp eq i32 %716, 0
  br i1 %717, label %718, label %719

718:                                              ; preds = %710
  store i32 1, ptr getelementptr inbounds ([9 x i32], ptr @chargeAA, i64 0, i64 3), align 4, !tbaa !5
  br label %1019

719:                                              ; preds = %710
  %720 = load ptr, ptr %4, align 8, !tbaa !9
  %721 = load i32, ptr %9, align 4, !tbaa !5
  %722 = sext i32 %721 to i64
  %723 = getelementptr inbounds ptr, ptr %720, i64 %722
  %724 = load ptr, ptr %723, align 8, !tbaa !9
  %725 = call i32 @strcmp(ptr noundef %724, ptr noundef @.str.26) #11
  %726 = icmp eq i32 %725, 0
  br i1 %726, label %727, label %728

727:                                              ; preds = %719
  store i32 1, ptr getelementptr inbounds ([9 x i32], ptr @chargeAA, i64 0, i64 4), align 16, !tbaa !5
  br label %1018

728:                                              ; preds = %719
  %729 = load ptr, ptr %4, align 8, !tbaa !9
  %730 = load i32, ptr %9, align 4, !tbaa !5
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds ptr, ptr %729, i64 %731
  %733 = load ptr, ptr %732, align 8, !tbaa !9
  %734 = call i32 @strcmp(ptr noundef %733, ptr noundef @.str.27) #11
  %735 = icmp eq i32 %734, 0
  br i1 %735, label %736, label %737

736:                                              ; preds = %728
  store i32 1, ptr getelementptr inbounds ([9 x i32], ptr @chargeAA, i64 0, i64 5), align 4, !tbaa !5
  br label %1017

737:                                              ; preds = %728
  %738 = load ptr, ptr %4, align 8, !tbaa !9
  %739 = load i32, ptr %9, align 4, !tbaa !5
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds ptr, ptr %738, i64 %740
  %742 = load ptr, ptr %741, align 8, !tbaa !9
  %743 = call i32 @strcmp(ptr noundef %742, ptr noundef @.str.28) #11
  %744 = icmp eq i32 %743, 0
  br i1 %744, label %745, label %746

745:                                              ; preds = %737
  store i32 1, ptr @chargeAA, align 16, !tbaa !5
  br label %1016

746:                                              ; preds = %737
  %747 = load ptr, ptr %4, align 8, !tbaa !9
  %748 = load i32, ptr %9, align 4, !tbaa !5
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds ptr, ptr %747, i64 %749
  %751 = load ptr, ptr %750, align 8, !tbaa !9
  %752 = call i32 @strcmp(ptr noundef %751, ptr noundef @.str.29) #11
  %753 = icmp eq i32 %752, 0
  br i1 %753, label %754, label %755

754:                                              ; preds = %746
  store i32 1, ptr getelementptr inbounds ([9 x i32], ptr @chargeAA, i64 0, i64 6), align 8, !tbaa !5
  br label %1015

755:                                              ; preds = %746
  %756 = load ptr, ptr %4, align 8, !tbaa !9
  %757 = load i32, ptr %9, align 4, !tbaa !5
  %758 = sext i32 %757 to i64
  %759 = getelementptr inbounds ptr, ptr %756, i64 %758
  %760 = load ptr, ptr %759, align 8, !tbaa !9
  %761 = call i32 @strcmp(ptr noundef %760, ptr noundef @.str.30) #11
  %762 = icmp eq i32 %761, 0
  br i1 %762, label %763, label %764

763:                                              ; preds = %755
  store i32 1, ptr getelementptr inbounds ([9 x i32], ptr @chargeAA, i64 0, i64 7), align 4, !tbaa !5
  br label %1014

764:                                              ; preds = %755
  %765 = load ptr, ptr %4, align 8, !tbaa !9
  %766 = load i32, ptr %9, align 4, !tbaa !5
  %767 = sext i32 %766 to i64
  %768 = getelementptr inbounds ptr, ptr %765, i64 %767
  %769 = load ptr, ptr %768, align 8, !tbaa !9
  %770 = call i32 @strcmp(ptr noundef %769, ptr noundef @.str.31) #11
  %771 = icmp eq i32 %770, 0
  br i1 %771, label %772, label %773

772:                                              ; preds = %764
  store i32 1, ptr getelementptr inbounds ([9 x i32], ptr @chargeAA, i64 0, i64 8), align 16, !tbaa !5
  br label %1013

773:                                              ; preds = %764
  %774 = load ptr, ptr %4, align 8, !tbaa !9
  %775 = load i32, ptr %9, align 4, !tbaa !5
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds ptr, ptr %774, i64 %776
  %778 = load ptr, ptr %777, align 8, !tbaa !9
  %779 = call i32 @strcmp(ptr noundef %778, ptr noundef @.str.32) #11
  %780 = icmp eq i32 %779, 0
  br i1 %780, label %781, label %782

781:                                              ; preds = %773
  store i32 0, ptr getelementptr inbounds (%struct.ChargeStr, ptr getelementptr inbounds (%struct.FlowStr, ptr @flow, i32 0, i32 3), i32 0, i32 1), align 4, !tbaa !21
  br label %1012

782:                                              ; preds = %773
  %783 = load ptr, ptr %4, align 8, !tbaa !9
  %784 = load i32, ptr %9, align 4, !tbaa !5
  %785 = sext i32 %784 to i64
  %786 = getelementptr inbounds ptr, ptr %783, i64 %785
  %787 = load ptr, ptr %786, align 8, !tbaa !9
  %788 = call i32 @strcmp(ptr noundef %787, ptr noundef @.str.33) #11
  %789 = icmp eq i32 %788, 0
  br i1 %789, label %790, label %946

790:                                              ; preds = %782
  store i32 1, ptr @REMDInfo, align 8, !tbaa !26
  %791 = load i32, ptr %9, align 4, !tbaa !5
  %792 = add nsw i32 %791, 1
  %793 = load i32, ptr %3, align 4, !tbaa !5
  %794 = icmp sge i32 %792, %793
  br i1 %794, label %806, label %795

795:                                              ; preds = %790
  %796 = load ptr, ptr %4, align 8, !tbaa !9
  %797 = load i32, ptr %9, align 4, !tbaa !5
  %798 = add nsw i32 %797, 1
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds ptr, ptr %796, i64 %799
  %801 = load ptr, ptr %800, align 8, !tbaa !9
  %802 = getelementptr inbounds i8, ptr %801, i64 0
  %803 = load i8, ptr %802, align 1, !tbaa !11
  %804 = sext i8 %803 to i32
  %805 = icmp eq i32 %804, 45
  br i1 %805, label %806, label %808

806:                                              ; preds = %795, %790
  %807 = call i32 (ptr, ...) @printf(ptr noundef @.str.34)
  br label %972

808:                                              ; preds = %795
  %809 = load ptr, ptr %4, align 8, !tbaa !9
  %810 = load i32, ptr %9, align 4, !tbaa !5
  %811 = add nsw i32 %810, 1
  %812 = sext i32 %811 to i64
  %813 = getelementptr inbounds ptr, ptr %809, i64 %812
  %814 = load ptr, ptr %813, align 8, !tbaa !9
  %815 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef getelementptr inbounds (%struct.REMDStr, ptr @REMDInfo, i32 0, i32 3), ptr noundef @.str.3, ptr noundef %814) #9
  br label %816

816:                                              ; preds = %808
  %817 = load i32, ptr %9, align 4, !tbaa !5
  %818 = add nsw i32 %817, 2
  %819 = load i32, ptr %3, align 4, !tbaa !5
  %820 = icmp sge i32 %818, %819
  br i1 %820, label %832, label %821

821:                                              ; preds = %816
  %822 = load ptr, ptr %4, align 8, !tbaa !9
  %823 = load i32, ptr %9, align 4, !tbaa !5
  %824 = add nsw i32 %823, 2
  %825 = sext i32 %824 to i64
  %826 = getelementptr inbounds ptr, ptr %822, i64 %825
  %827 = load ptr, ptr %826, align 8, !tbaa !9
  %828 = getelementptr inbounds i8, ptr %827, i64 0
  %829 = load i8, ptr %828, align 1, !tbaa !11
  %830 = sext i8 %829 to i32
  %831 = icmp eq i32 %830, 45
  br i1 %831, label %832, label %834

832:                                              ; preds = %821, %816
  %833 = call i32 (ptr, ...) @printf(ptr noundef @.str.35)
  br label %972

834:                                              ; preds = %821
  %835 = load ptr, ptr %4, align 8, !tbaa !9
  %836 = load i32, ptr %9, align 4, !tbaa !5
  %837 = add nsw i32 %836, 2
  %838 = sext i32 %837 to i64
  %839 = getelementptr inbounds ptr, ptr %835, i64 %838
  %840 = load ptr, ptr %839, align 8, !tbaa !9
  %841 = call i32 @atoi(ptr noundef %840) #11
  store i32 %841, ptr getelementptr inbounds (%struct.REMDStr, ptr @REMDInfo, i32 0, i32 1), align 4, !tbaa !29
  br label %842

842:                                              ; preds = %834
  %843 = load i32, ptr %9, align 4, !tbaa !5
  %844 = add nsw i32 %843, 3
  %845 = load i32, ptr %3, align 4, !tbaa !5
  %846 = icmp sge i32 %844, %845
  br i1 %846, label %858, label %847

847:                                              ; preds = %842
  %848 = load ptr, ptr %4, align 8, !tbaa !9
  %849 = load i32, ptr %9, align 4, !tbaa !5
  %850 = add nsw i32 %849, 3
  %851 = sext i32 %850 to i64
  %852 = getelementptr inbounds ptr, ptr %848, i64 %851
  %853 = load ptr, ptr %852, align 8, !tbaa !9
  %854 = getelementptr inbounds i8, ptr %853, i64 0
  %855 = load i8, ptr %854, align 1, !tbaa !11
  %856 = sext i8 %855 to i32
  %857 = icmp eq i32 %856, 45
  br i1 %857, label %858, label %860

858:                                              ; preds = %847, %842
  %859 = call i32 (ptr, ...) @printf(ptr noundef @.str.36)
  br label %972

860:                                              ; preds = %847
  %861 = load ptr, ptr %4, align 8, !tbaa !9
  %862 = load i32, ptr %9, align 4, !tbaa !5
  %863 = add nsw i32 %862, 3
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds ptr, ptr %861, i64 %864
  %866 = load ptr, ptr %865, align 8, !tbaa !9
  %867 = call double @atof(ptr noundef %866) #11
  store double %867, ptr getelementptr inbounds (%struct.REMDTempStr, ptr getelementptr inbounds (%struct.REMDStr, ptr @REMDInfo, i32 0, i32 5), i32 0, i32 1), align 8, !tbaa !30
  %868 = load double, ptr getelementptr inbounds (%struct.REMDTempStr, ptr getelementptr inbounds (%struct.REMDStr, ptr @REMDInfo, i32 0, i32 5), i32 0, i32 1), align 8, !tbaa !30
  store double %868, ptr @targetTemperature, align 8, !tbaa !12
  br label %869

869:                                              ; preds = %860
  %870 = load i32, ptr %9, align 4, !tbaa !5
  %871 = add nsw i32 %870, 4
  %872 = load i32, ptr %3, align 4, !tbaa !5
  %873 = icmp sge i32 %871, %872
  br i1 %873, label %885, label %874

874:                                              ; preds = %869
  %875 = load ptr, ptr %4, align 8, !tbaa !9
  %876 = load i32, ptr %9, align 4, !tbaa !5
  %877 = add nsw i32 %876, 4
  %878 = sext i32 %877 to i64
  %879 = getelementptr inbounds ptr, ptr %875, i64 %878
  %880 = load ptr, ptr %879, align 8, !tbaa !9
  %881 = getelementptr inbounds i8, ptr %880, i64 0
  %882 = load i8, ptr %881, align 1, !tbaa !11
  %883 = sext i8 %882 to i32
  %884 = icmp eq i32 %883, 45
  br i1 %884, label %885, label %887

885:                                              ; preds = %874, %869
  %886 = call i32 (ptr, ...) @printf(ptr noundef @.str.37)
  br label %972

887:                                              ; preds = %874
  %888 = load ptr, ptr %4, align 8, !tbaa !9
  %889 = load i32, ptr %9, align 4, !tbaa !5
  %890 = add nsw i32 %889, 4
  %891 = sext i32 %890 to i64
  %892 = getelementptr inbounds ptr, ptr %888, i64 %891
  %893 = load ptr, ptr %892, align 8, !tbaa !9
  %894 = call i32 @atoi(ptr noundef %893) #11
  store i32 %894, ptr getelementptr inbounds (%struct.REMDStr, ptr @REMDInfo, i32 0, i32 5), align 8, !tbaa !31
  br label %895

895:                                              ; preds = %887
  %896 = load i32, ptr %9, align 4, !tbaa !5
  %897 = add nsw i32 %896, 5
  %898 = load i32, ptr %3, align 4, !tbaa !5
  %899 = icmp sge i32 %897, %898
  br i1 %899, label %919, label %900

900:                                              ; preds = %895
  %901 = load ptr, ptr %4, align 8, !tbaa !9
  %902 = load i32, ptr %9, align 4, !tbaa !5
  %903 = add nsw i32 %902, 5
  %904 = sext i32 %903 to i64
  %905 = getelementptr inbounds ptr, ptr %901, i64 %904
  %906 = load ptr, ptr %905, align 8, !tbaa !9
  %907 = getelementptr inbounds i8, ptr %906, i64 0
  %908 = load i8, ptr %907, align 1, !tbaa !11
  %909 = sext i8 %908 to i32
  %910 = icmp eq i32 %909, 45
  br i1 %910, label %919, label %911

911:                                              ; preds = %900
  %912 = load ptr, ptr %4, align 8, !tbaa !9
  %913 = load i32, ptr %9, align 4, !tbaa !5
  %914 = add nsw i32 %913, 5
  %915 = sext i32 %914 to i64
  %916 = getelementptr inbounds ptr, ptr %912, i64 %915
  %917 = load ptr, ptr %916, align 8, !tbaa !9
  %918 = call i32 @atoi(ptr noundef %917) #11
  store i32 %918, ptr getelementptr inbounds (%struct.REMDStr, ptr @REMDInfo, i32 0, i32 2), align 8, !tbaa !32
  br label %919

919:                                              ; preds = %911, %900, %895
  %920 = load i32, ptr %9, align 4, !tbaa !5
  %921 = add nsw i32 %920, 6
  %922 = load i32, ptr %3, align 4, !tbaa !5
  %923 = icmp sge i32 %921, %922
  br i1 %923, label %945, label %924

924:                                              ; preds = %919
  %925 = load ptr, ptr %4, align 8, !tbaa !9
  %926 = load i32, ptr %9, align 4, !tbaa !5
  %927 = add nsw i32 %926, 6
  %928 = sext i32 %927 to i64
  %929 = getelementptr inbounds ptr, ptr %925, i64 %928
  %930 = load ptr, ptr %929, align 8, !tbaa !9
  %931 = getelementptr inbounds i8, ptr %930, i64 0
  %932 = load i8, ptr %931, align 1, !tbaa !11
  %933 = sext i8 %932 to i32
  %934 = icmp eq i32 %933, 45
  br i1 %934, label %945, label %935

935:                                              ; preds = %924
  %936 = load ptr, ptr %4, align 8, !tbaa !9
  %937 = load i32, ptr %9, align 4, !tbaa !5
  %938 = add nsw i32 %937, 6
  %939 = sext i32 %938 to i64
  %940 = getelementptr inbounds ptr, ptr %936, i64 %939
  %941 = load ptr, ptr %940, align 8, !tbaa !9
  %942 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef getelementptr inbounds (%struct.REMDStr, ptr @REMDInfo, i32 0, i32 4), ptr noundef @.str.3, ptr noundef %941) #9
  %943 = getelementptr inbounds [50 x i8], ptr %6, i64 0, i64 0
  %944 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %943, ptr noundef @.str.38, ptr noundef getelementptr inbounds (%struct.REMDStr, ptr @REMDInfo, i32 0, i32 4)) #9
  br label %945

945:                                              ; preds = %935, %924, %919
  br label %1011

946:                                              ; preds = %782
  %947 = load ptr, ptr %4, align 8, !tbaa !9
  %948 = load i32, ptr %9, align 4, !tbaa !5
  %949 = sext i32 %948 to i64
  %950 = getelementptr inbounds ptr, ptr %947, i64 %949
  %951 = load ptr, ptr %950, align 8, !tbaa !9
  %952 = call i32 @strcmp(ptr noundef %951, ptr noundef @.str.39) #11
  %953 = icmp eq i32 %952, 0
  br i1 %953, label %954, label %955

954:                                              ; preds = %946
  store i32 1, ptr @visual, align 4, !tbaa !5
  br label %1010

955:                                              ; preds = %946
  %956 = load ptr, ptr %4, align 8, !tbaa !9
  %957 = load i32, ptr %9, align 4, !tbaa !5
  %958 = sext i32 %957 to i64
  %959 = getelementptr inbounds ptr, ptr %956, i64 %958
  %960 = load ptr, ptr %959, align 8, !tbaa !9
  %961 = call i32 @strcmp(ptr noundef %960, ptr noundef @.str.40) #11
  %962 = icmp eq i32 %961, 0
  br i1 %962, label %971, label %963

963:                                              ; preds = %955
  %964 = load ptr, ptr %4, align 8, !tbaa !9
  %965 = load i32, ptr %9, align 4, !tbaa !5
  %966 = sext i32 %965 to i64
  %967 = getelementptr inbounds ptr, ptr %964, i64 %966
  %968 = load ptr, ptr %967, align 8, !tbaa !9
  %969 = call i32 @strcmp(ptr noundef %968, ptr noundef @.str.41) #11
  %970 = icmp eq i32 %969, 0
  br i1 %970, label %971, label %1009

971:                                              ; preds = %963, %955
  br label %972

972:                                              ; preds = %1096, %971, %885, %858, %832, %806, %83, %50
  %973 = call i32 (ptr, ...) @printf(ptr noundef @.str.42)
  %974 = call i32 (ptr, ...) @printf(ptr noundef @.str.43)
  %975 = call i32 (ptr, ...) @printf(ptr noundef @.str.44)
  %976 = call i32 (ptr, ...) @printf(ptr noundef @.str.45)
  %977 = call i32 (ptr, ...) @printf(ptr noundef @.str.46)
  %978 = call i32 (ptr, ...) @printf(ptr noundef @.str.47)
  %979 = call i32 (ptr, ...) @printf(ptr noundef @.str.48)
  %980 = call i32 (ptr, ...) @printf(ptr noundef @.str.49)
  %981 = call i32 (ptr, ...) @printf(ptr noundef @.str.50)
  %982 = call i32 (ptr, ...) @printf(ptr noundef @.str.51)
  %983 = call i32 (ptr, ...) @printf(ptr noundef @.str.52)
  %984 = call i32 (ptr, ...) @printf(ptr noundef @.str.53)
  %985 = call i32 (ptr, ...) @printf(ptr noundef @.str.54)
  %986 = call i32 (ptr, ...) @printf(ptr noundef @.str.55)
  %987 = call i32 (ptr, ...) @printf(ptr noundef @.str.56)
  %988 = call i32 (ptr, ...) @printf(ptr noundef @.str.57)
  %989 = call i32 (ptr, ...) @printf(ptr noundef @.str.58)
  %990 = call i32 (ptr, ...) @printf(ptr noundef @.str.59)
  %991 = call i32 (ptr, ...) @printf(ptr noundef @.str.60)
  %992 = call i32 (ptr, ...) @printf(ptr noundef @.str.61)
  %993 = call i32 (ptr, ...) @printf(ptr noundef @.str.62)
  %994 = call i32 (ptr, ...) @printf(ptr noundef @.str.63)
  %995 = call i32 (ptr, ...) @printf(ptr noundef @.str.64)
  %996 = call i32 (ptr, ...) @printf(ptr noundef @.str.65)
  %997 = call i32 (ptr, ...) @printf(ptr noundef @.str.66)
  %998 = call i32 (ptr, ...) @printf(ptr noundef @.str.67)
  %999 = call i32 (ptr, ...) @printf(ptr noundef @.str.68)
  %1000 = call i32 (ptr, ...) @printf(ptr noundef @.str.69)
  %1001 = call i32 (ptr, ...) @printf(ptr noundef @.str.70)
  %1002 = call i32 (ptr, ...) @printf(ptr noundef @.str.71)
  %1003 = call i32 (ptr, ...) @printf(ptr noundef @.str.72)
  %1004 = call i32 (ptr, ...) @printf(ptr noundef @.str.73)
  %1005 = call i32 (ptr, ...) @printf(ptr noundef @.str.74)
  %1006 = call i32 (ptr, ...) @printf(ptr noundef @.str.75)
  %1007 = call i32 (ptr, ...) @printf(ptr noundef @.str.76)
  %1008 = call i32 (ptr, ...) @printf(ptr noundef @.str.77)
  call void @exit(i32 noundef 0) #12
  unreachable

1009:                                             ; preds = %963
  br label %1010

1010:                                             ; preds = %1009, %954
  br label %1011

1011:                                             ; preds = %1010, %945
  br label %1012

1012:                                             ; preds = %1011, %781
  br label %1013

1013:                                             ; preds = %1012, %772
  br label %1014

1014:                                             ; preds = %1013, %763
  br label %1015

1015:                                             ; preds = %1014, %754
  br label %1016

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

1017:                                             ; preds = %1016, %736
  br label %1018

1018:                                             ; preds = %1017, %727
  br label %1019

1019:                                             ; preds = %1018, %718
  br label %1020

1020:                                             ; preds = %1019, %709
  br label %1021

1021:                                             ; preds = %1020, %700
  br label %1022

1022:                                             ; preds = %1021, %691
  br label %1023

1023:                                             ; preds = %1022, %682
  br label %1024

1024:                                             ; preds = %1023, %649
  br label %1025

1025:                                             ; preds = %1024, %616
  br label %1026

1026:                                             ; preds = %1025, %579
  br label %1027

1027:                                             ; preds = %1026, %539
  br label %1028

1028:                                             ; preds = %1027, %499
  br label %1029

1029:                                             ; preds = %1028, %459
  br label %1030

1030:                                             ; preds = %1029, %422
  br label %1031

1031:                                             ; preds = %1030, %382
  br label %1032

1032:                                             ; preds = %1031, %342
  br label %1033

1033:                                             ; preds = %1032, %302
  br label %1034

1034:                                             ; preds = %1033, %265
  br label %1035

1035:                                             ; preds = %1034, %228
  br label %1036

1036:                                             ; preds = %1035, %191
  br label %1037

1037:                                             ; preds = %1036, %136
  br label %1038

1038:                                             ; preds = %1037, %127
  br label %1039

1039:                                             ; preds = %1038, %93
  br label %1040

1040:                                             ; preds = %1039, %60
  br label %1041

1041:                                             ; preds = %1040, %18
  br label %1042

1042:                                             ; preds = %1041
  %1043 = load i32, ptr %9, align 4, !tbaa !5
  %1044 = add nsw i32 %1043, 1
  store i32 %1044, ptr %9, align 4, !tbaa !5
  br label %14, !llvm.loop !33

1045:                                             ; preds = %14
  br label %1046

1046:                                             ; preds = %1045, %2
  call void @ReadParameter()
  %1047 = call i32 @strncmp(ptr noundef @.str.78, ptr noundef @neworcontinue, i64 noundef 1) #11
  %1048 = icmp eq i32 %1047, 0
  br i1 %1048, label %1049, label %1081

1049:                                             ; preds = %1046
  %1050 = call i32 (ptr, ...) @printf(ptr noundef @.str.79)
  %1051 = call i32 (ptr, ...) @printf(ptr noundef @.str.80)
  %1052 = call i32 (ptr, ...) @printf(ptr noundef @.str.81)
  %1053 = call i32 (ptr, ...) @printf(ptr noundef @.str.82)
  %1054 = call i32 (ptr, ...) @printf(ptr noundef @.str.83)
  %1055 = call i32 (ptr, ...) @printf(ptr noundef @.str.84)
  %1056 = call i64 @time(ptr noundef null) #9
  %1057 = trunc i64 %1056 to i32
  store i32 %1057, ptr @seed, align 4, !tbaa !5
  %1058 = load i32, ptr @seed, align 4, !tbaa !5
  call void @srand(i32 noundef %1058) #9
  %1059 = getelementptr inbounds [50 x i8], ptr %7, i64 0, i64 0
  call void @ModifyCoordinateFile(ptr noundef %1059)
  call void @ReadCoordinate()
  call void @CreateCell()
  %1060 = call i32 (ptr, ...) @printf(ptr noundef @.str.85)
  call void @ReadModel()
  %1061 = call i32 (ptr, ...) @printf(ptr noundef @.str.86)
  %1062 = call i32 (ptr, ...) @printf(ptr noundef @.str.87)
  %1063 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1064 = call i32 @fflush(ptr noundef %1063)
  call void @CreatePotentialMatrix()
  call void @CalculateMass()
  call void @ReadHB()
  call void @InitializeCharge()
  %1065 = call i32 @strcmp(ptr noundef @wallExist, ptr noundef @.str.88) #11
  %1066 = icmp ne i32 %1065, 0
  br i1 %1066, label %1070, label %1067

1067:                                             ; preds = %1049
  %1068 = load i32, ptr @obstObj, align 8, !tbaa !35
  %1069 = icmp ne i32 %1068, 0
  br i1 %1069, label %1070, label %1071

1070:                                             ; preds = %1067, %1049
  call void @ReadWall()
  br label %1071

1071:                                             ; preds = %1070, %1067
  %1072 = load i32, ptr getelementptr inbounds (%struct.CGGovStr, ptr @CG, i32 0, i32 1), align 8, !tbaa !37
  %1073 = icmp ne i32 %1072, 0
  br i1 %1073, label %1074, label %1075

1074:                                             ; preds = %1071
  call void @InitializeCG()
  br label %1075

1075:                                             ; preds = %1074, %1071
  call void @CreateFlow()
  call void @InitializeOthers()
  %1076 = call i32 (ptr, ...) @printf(ptr noundef @.str.86)
  %1077 = call i32 (ptr, ...) @printf(ptr noundef @.str.89)
  %1078 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1079 = call i32 @fflush(ptr noundef %1078)
  call void @GenerateVelocity()
  %1080 = call i32 (ptr, ...) @printf(ptr noundef @.str.86)
  br label %1106

1081:                                             ; preds = %1046
  %1082 = call i32 @strncmp(ptr noundef @.str.90, ptr noundef @neworcontinue, i64 noundef 1) #11
  %1083 = icmp eq i32 %1082, 0
  br i1 %1083, label %1084, label %1105

1084:                                             ; preds = %1081
  %1085 = call i32 (ptr, ...) @printf(ptr noundef @.str.91)
  %1086 = call i32 (ptr, ...) @printf(ptr noundef @.str.92)
  %1087 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1088 = call i32 @fflush(ptr noundef %1087)
  %1089 = getelementptr inbounds [1024 x i8], ptr %8, i64 0, i64 0
  %1090 = getelementptr inbounds [50 x i8], ptr %6, i64 0, i64 0
  %1091 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %1089, ptr noundef @.str.93, ptr noundef @savedir, ptr noundef %1090) #9
  %1092 = getelementptr inbounds [1024 x i8], ptr %8, i64 0, i64 0
  %1093 = call noalias ptr @fopen(ptr noundef %1092, ptr noundef @.str.94)
  store ptr %1093, ptr %5, align 8, !tbaa !9
  %1094 = load ptr, ptr %5, align 8, !tbaa !9
  %1095 = icmp eq ptr %1094, null
  br i1 %1095, label %1096, label %1100

1096:                                             ; preds = %1084
  %1097 = getelementptr inbounds [50 x i8], ptr %6, i64 0, i64 0
  %1098 = call i32 (ptr, ...) @printf(ptr noundef @.str.95, ptr noundef %1097, ptr noundef @savedir)
  %1099 = call i32 (ptr, ...) @printf(ptr noundef @.str.96)
  br label %972

1100:                                             ; preds = %1084
  %1101 = load ptr, ptr %5, align 8, !tbaa !9
  call void @ReadBreakPoint(ptr noundef %1101)
  %1102 = load ptr, ptr %5, align 8, !tbaa !9
  %1103 = call i32 @fclose(ptr noundef %1102)
  %1104 = call i32 (ptr, ...) @printf(ptr noundef @.str.86)
  br label %1105

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

1106:                                             ; preds = %1105, %1075
  call void @llvm.lifetime.end.p0(i64 1024, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 50, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 50, ptr %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #9
  ret void
}

; 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 nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

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

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

declare ptr @opendir(ptr noundef) #5

declare i32 @printf(ptr noundef, ...) #5

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

; Function Attrs: inlinehint nounwind willreturn memory(read) uwtable
declare double @atof(ptr noundef nonnull) #7

; Function Attrs: inlinehint nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr noundef nonnull) #7

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

; Function Attrs: nounwind uwtable
declare dso_local void @ReadParameter() #0

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

; Function Attrs: nounwind
declare i64 @time(ptr noundef) #6

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

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

; Function Attrs: nounwind uwtable
declare dso_local void @ReadCoordinate() #0

; Function Attrs: nounwind uwtable
declare dso_local void @CreateCell() #0

; Function Attrs: nounwind uwtable
declare dso_local void @ReadModel() #0

declare i32 @fflush(ptr noundef) #5

; Function Attrs: nounwind uwtable
declare dso_local void @CreatePotentialMatrix() #0

; Function Attrs: nounwind uwtable
declare dso_local void @CalculateMass() #0

; Function Attrs: nounwind uwtable
declare dso_local void @ReadHB() #0

; Function Attrs: nounwind uwtable
declare dso_local void @InitializeCharge() #0

; Function Attrs: nounwind uwtable
declare dso_local void @ReadWall() #0

declare void @InitializeCG() #5

; Function Attrs: nounwind uwtable
declare dso_local void @CreateFlow() #0

; Function Attrs: nounwind uwtable
declare dso_local void @InitializeOthers() #0

; Function Attrs: nounwind uwtable
declare dso_local void @GenerateVelocity() #0

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

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

declare i32 @fclose(ptr noundef) #5

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"double", !7, i64 0}
!14 = !{!15, !6, i64 0}
!15 = !{!"FileStr", !6, i64 0, !7, i64 4, !10, i64 264}
!16 = !{!17, !13, i64 24}
!17 = !{!"DynamicWallStr", !7, i64 0, !6, i64 16, !6, i64 20, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !7, i64 56}
!18 = !{!17, !13, i64 32}
!19 = !{!20, !6, i64 0}
!20 = !{!"PreBondStr", !6, i64 0, !6, i64 4, !13, i64 8}
!21 = !{!22, !6, i64 92}
!22 = !{!"FlowStr", !6, i64 0, !23, i64 8, !24, i64 40, !25, i64 88}
!23 = !{!"ConstVStr", !7, i64 0}
!24 = !{!"ForceStr", !7, i64 0, !10, i64 32, !10, i64 40}
!25 = !{!"ChargeStr", !6, i64 0, !6, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!26 = !{!27, !6, i64 0}
!27 = !{!"REMDStr", !6, i64 0, !6, i64 4, !6, i64 8, !7, i64 12, !7, i64 62, !28, i64 112}
!28 = !{!"REMDTempStr", !6, i64 0, !13, i64 8}
!29 = !{!27, !6, i64 4}
!30 = !{!27, !13, i64 120}
!31 = !{!27, !6, i64 112}
!32 = !{!27, !6, i64 8}
!33 = distinct !{!33, !34}
!34 = !{!"llvm.loop.mustprogress"}
!35 = !{!36, !6, i64 0}
!36 = !{!"ObstructionStr", !6, i64 0, !6, i64 4, !10, i64 8, !10, i64 16, !10, i64 24}
!37 = !{!38, !6, i64 32}
!38 = !{!"CGGovStr", !7, i64 0, !6, i64 32, !6, i64 36, !10, i64 40, !10, i64 48}


; 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.DynamicWallStr = type { [16 x i8], i32, i32, double, double, double, double, [4 x double] }
%struct.PreBondStr = type { i32, i32, double }
%struct.FlowStr = type { i32, %struct.ConstVStr, %struct.ForceStr, %struct.ChargeStr }
%struct.ConstVStr = type { [4 x double] }
%struct.ForceStr = type { [4 x double], ptr, ptr }
%struct.ChargeStr = type { i32, i32, ptr, ptr, ptr, ptr }
%struct.REMDStr = type { i32, i32, i32, [50 x i8], [50 x i8], %struct.REMDTempStr }
%struct.REMDTempStr = type { i32, double }
%struct.ObstructionStr = type { i32, i32, ptr, ptr, ptr }
%struct.CGGovStr = type { [2 x [16 x i8]], i32, i32, ptr, ptr }

@__const.InputData.saveDataFileName = external hidden unnamed_addr constant [50 x i8], align 16
@__const.InputData.coordinateFileName = external hidden unnamed_addr constant [50 x i8], align 16
@fileList = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [3 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [71 x i8], align 1
@datadir = external global [1024 x i8], align 16
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [69 x i8], align 1
@savedir = external global [1024 x i8], align 16
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [5 x i8], align 1
@boxDimension = external local_unnamed_addr global [4 x double], align 16
@.str.8 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [5 x i8], align 1
@wallDyn = external local_unnamed_addr global %struct.DynamicWallStr, align 8
@.str.21 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@preBond = external local_unnamed_addr global %struct.PreBondStr, align 8
@.str.23 = external hidden unnamed_addr constant [5 x i8], align 1
@chargeAA = external local_unnamed_addr global [9 x i32], align 16
@.str.24 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [5 x i8], align 1
@flow = external local_unnamed_addr global %struct.FlowStr, align 8
@.str.33 = external hidden unnamed_addr constant [6 x i8], align 1
@REMDInfo = external global %struct.REMDStr, align 8
@.str.34 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [72 x i8], align 1
@targetTemperature = external local_unnamed_addr global double, align 8
@.str.37 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [8 x i8], align 1
@visual = external local_unnamed_addr global i32, align 4
@.str.40 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [4 x i8], align 1
@neworcontinue = external local_unnamed_addr global [20 x i8], align 16
@.str.79 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [2 x i8], align 1
@seed = external local_unnamed_addr global i32, align 4
@.str.85 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [33 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@wallExist = external global [20 x i8], align 16
@.str.88 = external hidden unnamed_addr constant [3 x i8], align 1
@obstObj = external local_unnamed_addr global %struct.ObstructionStr, align 8
@CG = external local_unnamed_addr global %struct.CGGovStr, align 8
@.str.89 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [55 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @InputData(i32 noundef %0, ptr nocapture noundef readonly %1) local_unnamed_addr #0 {
  %3 = alloca [50 x i8], align 16
  %4 = alloca [50 x i8], align 16
  %5 = alloca [1024 x i8], align 16
  call void @llvm.lifetime.start.p0(i64 50, ptr nonnull %3) #10
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(50) %3, ptr noundef nonnull align 16 dereferenceable(50) @__const.InputData.saveDataFileName, i64 50, i1 false)
  call void @llvm.lifetime.start.p0(i64 50, ptr nonnull %4) #10
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(50) %4, ptr noundef nonnull align 16 dereferenceable(50) @__const.InputData.coordinateFileName, i64 50, i1 false)
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %5) #10
  %6 = tail call noalias dereferenceable_or_null(4080) ptr @calloc(i64 noundef 15, i64 noundef 272) #11
  store ptr %6, ptr @fileList, align 8, !tbaa !5
  %7 = icmp sgt i32 %0, 1
  br i1 %7, label %.lr.ph.preheader, label %.loopexit

.lr.ph.preheader:                                 ; preds = %2
  %8 = zext nneg i32 %0 to i64
  %wide.trip.count = zext nneg i32 %0 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %431
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %431 ]
  %9 = getelementptr inbounds ptr, ptr %1, i64 %indvars.iv
  %10 = load ptr, ptr %9, align 8, !tbaa !5
  %11 = load i8, ptr %10, align 1, !tbaa !9
  %12 = icmp eq i8 %11, 45
  br i1 %12, label %13, label %431

13:                                               ; preds = %.lr.ph
  %14 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str) #12
  %15 = icmp eq i32 %14, 0
  br i1 %15, label %16, label %27

16:                                               ; preds = %13
  %17 = add nuw nsw i64 %indvars.iv, 1
  %.not269 = icmp ult i64 %17, %8
  br i1 %.not269, label %18, label %22

18:                                               ; preds = %16
  %19 = getelementptr inbounds ptr, ptr %1, i64 %17
  %20 = load ptr, ptr %19, align 8, !tbaa !5
  %21 = tail call ptr @opendir(ptr noundef %20)
  %.not270 = icmp eq ptr %21, null
  br i1 %.not270, label %22, label %24

22:                                               ; preds = %18, %16
  %23 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1, ptr noundef nonnull @.str.2, i32 noundef 68)
  br label %.loopexit271

24:                                               ; preds = %18
  %25 = load ptr, ptr %19, align 8, !tbaa !5
  %26 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) @datadir, ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef %25) #10
  br label %431

27:                                               ; preds = %13
  %28 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.4) #12
  %29 = icmp eq i32 %28, 0
  br i1 %29, label %30, label %41

30:                                               ; preds = %27
  %31 = add nuw nsw i64 %indvars.iv, 1
  %.not267 = icmp ult i64 %31, %8
  br i1 %.not267, label %32, label %36

32:                                               ; preds = %30
  %33 = getelementptr inbounds ptr, ptr %1, i64 %31
  %34 = load ptr, ptr %33, align 8, !tbaa !5
  %35 = tail call ptr @opendir(ptr noundef %34)
  %.not268 = icmp eq ptr %35, null
  br i1 %.not268, label %36, label %38

36:                                               ; preds = %32, %30
  %37 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.5)
  br label %.loopexit271

38:                                               ; preds = %32
  %39 = load ptr, ptr %33, align 8, !tbaa !5
  %40 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) @savedir, ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef %39) #10
  br label %431

41:                                               ; preds = %27
  %42 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.6) #12
  %43 = icmp eq i32 %42, 0
  br i1 %43, label %44, label %53

44:                                               ; preds = %41
  %45 = add nuw nsw i64 %indvars.iv, 1
  %.not266 = icmp ult i64 %45, %8
  br i1 %.not266, label %46, label %431

46:                                               ; preds = %44
  %47 = getelementptr inbounds ptr, ptr %1, i64 %45
  %48 = load ptr, ptr %47, align 8, !tbaa !5
  %49 = load i8, ptr %48, align 1, !tbaa !9
  %50 = icmp eq i8 %49, 45
  br i1 %50, label %431, label %51

51:                                               ; preds = %46
  %52 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %4, ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull %48) #10
  br label %431

53:                                               ; preds = %41
  %54 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.7) #12
  %55 = icmp eq i32 %54, 0
  br i1 %55, label %56, label %66

56:                                               ; preds = %53
  %57 = getelementptr inbounds i8, ptr %9, i64 8
  %58 = load ptr, ptr %57, align 8, !tbaa !5
  %59 = tail call double @atof(ptr noundef %58) #12
  store double %59, ptr getelementptr inbounds (i8, ptr @boxDimension, i64 8), align 8, !tbaa !10
  %60 = getelementptr inbounds i8, ptr %9, i64 16
  %61 = load ptr, ptr %60, align 8, !tbaa !5
  %62 = tail call double @atof(ptr noundef %61) #12
  store double %62, ptr getelementptr inbounds (i8, ptr @boxDimension, i64 16), align 16, !tbaa !10
  %63 = getelementptr inbounds i8, ptr %9, i64 24
  %64 = load ptr, ptr %63, align 8, !tbaa !5
  %65 = tail call double @atof(ptr noundef %64) #12
  store double %65, ptr getelementptr inbounds (i8, ptr @boxDimension, i64 24), align 8, !tbaa !10
  br label %431

66:                                               ; preds = %53
  %67 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.8) #12
  %68 = icmp eq i32 %67, 0
  br i1 %68, label %69, label %78

69:                                               ; preds = %66
  %70 = add nuw nsw i64 %indvars.iv, 1
  %.not265 = icmp ult i64 %70, %8
  br i1 %.not265, label %71, label %431

71:                                               ; preds = %69
  %72 = getelementptr inbounds ptr, ptr %1, i64 %70
  %73 = load ptr, ptr %72, align 8, !tbaa !5
  %74 = load i8, ptr %73, align 1, !tbaa !9
  %75 = icmp eq i8 %74, 45
  br i1 %75, label %431, label %76

76:                                               ; preds = %71
  %77 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull %73) #10
  br label %431

78:                                               ; preds = %66
  %79 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.9) #12
  %80 = icmp eq i32 %79, 0
  br i1 %80, label %81, label %92

81:                                               ; preds = %78
  %82 = add nuw nsw i64 %indvars.iv, 1
  %.not264 = icmp ult i64 %82, %8
  br i1 %.not264, label %83, label %431

83:                                               ; preds = %81
  %84 = getelementptr inbounds ptr, ptr %1, i64 %82
  %85 = load ptr, ptr %84, align 8, !tbaa !5
  %86 = load i8, ptr %85, align 1, !tbaa !9
  %87 = icmp eq i8 %86, 45
  br i1 %87, label %431, label %88

88:                                               ; preds = %83
  %89 = load ptr, ptr @fileList, align 8, !tbaa !5
  %90 = getelementptr inbounds i8, ptr %89, i64 3540
  %91 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull %85) #10
  br label %431

92:                                               ; preds = %78
  %93 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.10) #12
  %94 = icmp eq i32 %93, 0
  br i1 %94, label %95, label %106

95:                                               ; preds = %92
  %96 = add nuw nsw i64 %indvars.iv, 1
  %.not263 = icmp ult i64 %96, %8
  br i1 %.not263, label %97, label %431

97:                                               ; preds = %95
  %98 = getelementptr inbounds ptr, ptr %1, i64 %96
  %99 = load ptr, ptr %98, align 8, !tbaa !5
  %100 = load i8, ptr %99, align 1, !tbaa !9
  %101 = icmp eq i8 %100, 45
  br i1 %101, label %431, label %102

102:                                              ; preds = %97
  %103 = load ptr, ptr @fileList, align 8, !tbaa !5
  %104 = getelementptr inbounds i8, ptr %103, i64 4
  %105 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %104, ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull %99) #10
  br label %431

106:                                              ; preds = %92
  %107 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.11) #12
  %108 = icmp eq i32 %107, 0
  br i1 %108, label %109, label %123

109:                                              ; preds = %106
  %110 = add nuw nsw i64 %indvars.iv, 1
  %.not262 = icmp ult i64 %110, %8
  br i1 %.not262, label %111, label %120

111:                                              ; preds = %109
  %112 = getelementptr inbounds ptr, ptr %1, i64 %110
  %113 = load ptr, ptr %112, align 8, !tbaa !5
  %114 = load i8, ptr %113, align 1, !tbaa !9
  %115 = icmp eq i8 %114, 45
  br i1 %115, label %120, label %116

116:                                              ; preds = %111
  %117 = load ptr, ptr @fileList, align 8, !tbaa !5
  %118 = getelementptr inbounds i8, ptr %117, i64 276
  %119 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %118, ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull %113) #10
  br label %120

120:                                              ; preds = %116, %111, %109
  %121 = load ptr, ptr @fileList, align 8, !tbaa !5
  %122 = getelementptr inbounds i8, ptr %121, i64 272
  store i32 1, ptr %122, align 8, !tbaa !12
  br label %431

123:                                              ; preds = %106
  %124 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.12) #12
  %125 = icmp eq i32 %124, 0
  br i1 %125, label %126, label %140

126:                                              ; preds = %123
  %127 = add nuw nsw i64 %indvars.iv, 1
  %.not261 = icmp ult i64 %127, %8
  br i1 %.not261, label %128, label %137

128:                                              ; preds = %126
  %129 = getelementptr inbounds ptr, ptr %1, i64 %127
  %130 = load ptr, ptr %129, align 8, !tbaa !5
  %131 = load i8, ptr %130, align 1, !tbaa !9
  %132 = icmp eq i8 %131, 45
  br i1 %132, label %137, label %133

133:                                              ; preds = %128
  %134 = load ptr, ptr @fileList, align 8, !tbaa !5
  %135 = getelementptr inbounds i8, ptr %134, i64 548
  %136 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %135, ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull %130) #10
  br label %137

137:                                              ; preds = %133, %128, %126
  %138 = load ptr, ptr @fileList, align 8, !tbaa !5
  %139 = getelementptr inbounds i8, ptr %138, i64 544
  store i32 1, ptr %139, align 8, !tbaa !12
  br label %431

140:                                              ; preds = %123
  %141 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.13) #12
  %142 = icmp eq i32 %141, 0
  br i1 %142, label %143, label %157

143:                                              ; preds = %140
  %144 = add nuw nsw i64 %indvars.iv, 1
  %.not260 = icmp ult i64 %144, %8
  br i1 %.not260, label %145, label %154

145:                                              ; preds = %143
  %146 = getelementptr inbounds ptr, ptr %1, i64 %144
  %147 = load ptr, ptr %146, align 8, !tbaa !5
  %148 = load i8, ptr %147, align 1, !tbaa !9
  %149 = icmp eq i8 %148, 45
  br i1 %149, label %154, label %150

150:                                              ; preds = %145
  %151 = load ptr, ptr @fileList, align 8, !tbaa !5
  %152 = getelementptr inbounds i8, ptr %151, i64 820
  %153 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %152, ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull %147) #10
  br label %154

154:                                              ; preds = %150, %145, %143
  %155 = load ptr, ptr @fileList, align 8, !tbaa !5
  %156 = getelementptr inbounds i8, ptr %155, i64 816
  store i32 1, ptr %156, align 8, !tbaa !12
  br label %431

157:                                              ; preds = %140
  %158 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.14) #12
  %159 = icmp eq i32 %158, 0
  br i1 %159, label %160, label %171

160:                                              ; preds = %157
  %161 = add nuw nsw i64 %indvars.iv, 1
  %.not259 = icmp ult i64 %161, %8
  br i1 %.not259, label %162, label %431

162:                                              ; preds = %160
  %163 = getelementptr inbounds ptr, ptr %1, i64 %161
  %164 = load ptr, ptr %163, align 8, !tbaa !5
  %165 = load i8, ptr %164, align 1, !tbaa !9
  %166 = icmp eq i8 %165, 45
  br i1 %166, label %431, label %167

167:                                              ; preds = %162
  %168 = load ptr, ptr @fileList, align 8, !tbaa !5
  %169 = getelementptr inbounds i8, ptr %168, i64 1092
  %170 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %169, ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull %164) #10
  br label %431

171:                                              ; preds = %157
  %172 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.15) #12
  %173 = icmp eq i32 %172, 0
  br i1 %173, label %174, label %188

174:                                              ; preds = %171
  %175 = add nuw nsw i64 %indvars.iv, 1
  %.not258 = icmp ult i64 %175, %8
  br i1 %.not258, label %176, label %185

176:                                              ; preds = %174
  %177 = getelementptr inbounds ptr, ptr %1, i64 %175
  %178 = load ptr, ptr %177, align 8, !tbaa !5
  %179 = load i8, ptr %178, align 1, !tbaa !9
  %180 = icmp eq i8 %179, 45
  br i1 %180, label %185, label %181

181:                                              ; preds = %176
  %182 = load ptr, ptr @fileList, align 8, !tbaa !5
  %183 = getelementptr inbounds i8, ptr %182, i64 1364
  %184 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %183, ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull %178) #10
  br label %185

185:                                              ; preds = %181, %176, %174
  %186 = load ptr, ptr @fileList, align 8, !tbaa !5
  %187 = getelementptr inbounds i8, ptr %186, i64 1360
  store i32 1, ptr %187, align 8, !tbaa !12
  br label %431

188:                                              ; preds = %171
  %189 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.16) #12
  %190 = icmp eq i32 %189, 0
  br i1 %190, label %191, label %205

191:                                              ; preds = %188
  %192 = add nuw nsw i64 %indvars.iv, 1
  %.not257 = icmp ult i64 %192, %8
  br i1 %.not257, label %193, label %202

193:                                              ; preds = %191
  %194 = getelementptr inbounds ptr, ptr %1, i64 %192
  %195 = load ptr, ptr %194, align 8, !tbaa !5
  %196 = load i8, ptr %195, align 1, !tbaa !9
  %197 = icmp eq i8 %196, 45
  br i1 %197, label %202, label %198

198:                                              ; preds = %193
  %199 = load ptr, ptr @fileList, align 8, !tbaa !5
  %200 = getelementptr inbounds i8, ptr %199, i64 1636
  %201 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %200, ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull %195) #10
  br label %202

202:                                              ; preds = %198, %193, %191
  %203 = load ptr, ptr @fileList, align 8, !tbaa !5
  %204 = getelementptr inbounds i8, ptr %203, i64 1632
  store i32 1, ptr %204, align 8, !tbaa !12
  br label %431

205:                                              ; preds = %188
  %206 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.17) #12
  %207 = icmp eq i32 %206, 0
  br i1 %207, label %208, label %222

208:                                              ; preds = %205
  %209 = add nuw nsw i64 %indvars.iv, 1
  %.not256 = icmp ult i64 %209, %8
  br i1 %.not256, label %210, label %219

210:                                              ; preds = %208
  %211 = getelementptr inbounds ptr, ptr %1, i64 %209
  %212 = load ptr, ptr %211, align 8, !tbaa !5
  %213 = load i8, ptr %212, align 1, !tbaa !9
  %214 = icmp eq i8 %213, 45
  br i1 %214, label %219, label %215

215:                                              ; preds = %210
  %216 = load ptr, ptr @fileList, align 8, !tbaa !5
  %217 = getelementptr inbounds i8, ptr %216, i64 1908
  %218 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %217, ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull %212) #10
  br label %219

219:                                              ; preds = %215, %210, %208
  %220 = load ptr, ptr @fileList, align 8, !tbaa !5
  %221 = getelementptr inbounds i8, ptr %220, i64 1632
  store i32 1, ptr %221, align 8, !tbaa !12
  br label %431

222:                                              ; preds = %205
  %223 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.18) #12
  %224 = icmp eq i32 %223, 0
  br i1 %224, label %225, label %236

225:                                              ; preds = %222
  %226 = add nuw nsw i64 %indvars.iv, 1
  %.not255 = icmp ult i64 %226, %8
  br i1 %.not255, label %227, label %431

227:                                              ; preds = %225
  %228 = getelementptr inbounds ptr, ptr %1, i64 %226
  %229 = load ptr, ptr %228, align 8, !tbaa !5
  %230 = load i8, ptr %229, align 1, !tbaa !9
  %231 = icmp eq i8 %230, 45
  br i1 %231, label %431, label %232

232:                                              ; preds = %227
  %233 = load ptr, ptr @fileList, align 8, !tbaa !5
  %234 = getelementptr inbounds i8, ptr %233, i64 2180
  %235 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %234, ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull %229) #10
  br label %431

236:                                              ; preds = %222
  %237 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.19) #12
  %238 = icmp eq i32 %237, 0
  br i1 %238, label %239, label %250

239:                                              ; preds = %236
  %240 = add nuw nsw i64 %indvars.iv, 1
  %.not254 = icmp ult i64 %240, %8
  br i1 %.not254, label %241, label %431

241:                                              ; preds = %239
  %242 = getelementptr inbounds ptr, ptr %1, i64 %240
  %243 = load ptr, ptr %242, align 8, !tbaa !5
  %244 = load i8, ptr %243, align 1, !tbaa !9
  %245 = icmp eq i8 %244, 45
  br i1 %245, label %431, label %246

246:                                              ; preds = %241
  %247 = load ptr, ptr @fileList, align 8, !tbaa !5
  %248 = getelementptr inbounds i8, ptr %247, i64 2452
  %249 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %248, ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull %243) #10
  br label %431

250:                                              ; preds = %236
  %251 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.20) #12
  %252 = icmp eq i32 %251, 0
  br i1 %252, label %253, label %262

253:                                              ; preds = %250
  %254 = add nuw nsw i64 %indvars.iv, 1
  %.not253 = icmp ult i64 %254, %8
  br i1 %.not253, label %255, label %431

255:                                              ; preds = %253
  %256 = getelementptr inbounds ptr, ptr %1, i64 %254
  %257 = load ptr, ptr %256, align 8, !tbaa !5
  %258 = load i8, ptr %257, align 1, !tbaa !9
  %259 = icmp eq i8 %258, 45
  br i1 %259, label %431, label %260

260:                                              ; preds = %255
  %261 = tail call double @atof(ptr noundef %257) #12
  store double %261, ptr getelementptr inbounds (i8, ptr @wallDyn, i64 24), align 8, !tbaa !15
  br label %431

262:                                              ; preds = %250
  %263 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.21) #12
  %264 = icmp eq i32 %263, 0
  br i1 %264, label %265, label %274

265:                                              ; preds = %262
  %266 = add nuw nsw i64 %indvars.iv, 1
  %.not252 = icmp ult i64 %266, %8
  br i1 %.not252, label %267, label %431

267:                                              ; preds = %265
  %268 = getelementptr inbounds ptr, ptr %1, i64 %266
  %269 = load ptr, ptr %268, align 8, !tbaa !5
  %270 = load i8, ptr %269, align 1, !tbaa !9
  %271 = icmp eq i8 %270, 45
  br i1 %271, label %431, label %272

272:                                              ; preds = %267
  %273 = tail call double @atof(ptr noundef %269) #12
  store double %273, ptr getelementptr inbounds (i8, ptr @wallDyn, i64 32), align 8, !tbaa !17
  br label %431

274:                                              ; preds = %262
  %275 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.22) #12
  %276 = icmp eq i32 %275, 0
  br i1 %276, label %277, label %278

277:                                              ; preds = %274
  store i32 1, ptr @preBond, align 8, !tbaa !18
  br label %431

278:                                              ; preds = %274
  %279 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.23) #12
  %280 = icmp eq i32 %279, 0
  br i1 %280, label %281, label %282

281:                                              ; preds = %278
  store i32 1, ptr getelementptr inbounds (i8, ptr @chargeAA, i64 4), align 4, !tbaa !20
  br label %431

282:                                              ; preds = %278
  %283 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.24) #12
  %284 = icmp eq i32 %283, 0
  br i1 %284, label %285, label %286

285:                                              ; preds = %282
  store i32 1, ptr getelementptr inbounds (i8, ptr @chargeAA, i64 8), align 8, !tbaa !20
  br label %431

286:                                              ; preds = %282
  %287 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.25) #12
  %288 = icmp eq i32 %287, 0
  br i1 %288, label %289, label %290

289:                                              ; preds = %286
  store i32 1, ptr getelementptr inbounds (i8, ptr @chargeAA, i64 12), align 4, !tbaa !20
  br label %431

290:                                              ; preds = %286
  %291 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.26) #12
  %292 = icmp eq i32 %291, 0
  br i1 %292, label %293, label %294

293:                                              ; preds = %290
  store i32 1, ptr getelementptr inbounds (i8, ptr @chargeAA, i64 16), align 16, !tbaa !20
  br label %431

294:                                              ; preds = %290
  %295 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.27) #12
  %296 = icmp eq i32 %295, 0
  br i1 %296, label %297, label %298

297:                                              ; preds = %294
  store i32 1, ptr getelementptr inbounds (i8, ptr @chargeAA, i64 20), align 4, !tbaa !20
  br label %431

298:                                              ; preds = %294
  %299 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.28) #12
  %300 = icmp eq i32 %299, 0
  br i1 %300, label %301, label %302

301:                                              ; preds = %298
  store i32 1, ptr @chargeAA, align 16, !tbaa !20
  br label %431

302:                                              ; preds = %298
  %303 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.29) #12
  %304 = icmp eq i32 %303, 0
  br i1 %304, label %305, label %306

305:                                              ; preds = %302
  store i32 1, ptr getelementptr inbounds (i8, ptr @chargeAA, i64 24), align 8, !tbaa !20
  br label %431

306:                                              ; preds = %302
  %307 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.30) #12
  %308 = icmp eq i32 %307, 0
  br i1 %308, label %309, label %310

309:                                              ; preds = %306
  store i32 1, ptr getelementptr inbounds (i8, ptr @chargeAA, i64 28), align 4, !tbaa !20
  br label %431

310:                                              ; preds = %306
  %311 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.31) #12
  %312 = icmp eq i32 %311, 0
  br i1 %312, label %313, label %314

313:                                              ; preds = %310
  store i32 1, ptr getelementptr inbounds (i8, ptr @chargeAA, i64 32), align 16, !tbaa !20
  br label %431

314:                                              ; preds = %310
  %315 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.32) #12
  %316 = icmp eq i32 %315, 0
  br i1 %316, label %317, label %318

317:                                              ; preds = %314
  store i32 0, ptr getelementptr inbounds (i8, ptr @flow, i64 92), align 4, !tbaa !21
  br label %431

318:                                              ; preds = %314
  %319 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.33) #12
  %320 = icmp eq i32 %319, 0
  br i1 %320, label %321, label %385

321:                                              ; preds = %318
  store i32 1, ptr @REMDInfo, align 8, !tbaa !26
  %322 = add nuw nsw i64 %indvars.iv, 1
  %.not246 = icmp ult i64 %322, %8
  br i1 %.not246, label %323, label %328

323:                                              ; preds = %321
  %324 = getelementptr inbounds ptr, ptr %1, i64 %322
  %325 = load ptr, ptr %324, align 8, !tbaa !5
  %326 = load i8, ptr %325, align 1, !tbaa !9
  %327 = icmp eq i8 %326, 45
  br i1 %327, label %328, label %330

328:                                              ; preds = %323, %321
  %329 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.34)
  br label %.loopexit271

330:                                              ; preds = %323
  %331 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @REMDInfo, i64 12), ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull %325) #10
  %332 = add nuw nsw i64 %indvars.iv, 2
  %333 = trunc nuw i64 %332 to i32
  %.not247 = icmp slt i32 %333, %0
  br i1 %.not247, label %334, label %339

334:                                              ; preds = %330
  %335 = getelementptr inbounds ptr, ptr %1, i64 %332
  %336 = load ptr, ptr %335, align 8, !tbaa !5
  %337 = load i8, ptr %336, align 1, !tbaa !9
  %338 = icmp eq i8 %337, 45
  br i1 %338, label %339, label %341

339:                                              ; preds = %334, %330
  %340 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.35)
  br label %.loopexit271

341:                                              ; preds = %334
  %342 = tail call i32 @atoi(ptr nocapture noundef %336) #12
  store i32 %342, ptr getelementptr inbounds (i8, ptr @REMDInfo, i64 4), align 4, !tbaa !29
  %343 = add nuw nsw i64 %indvars.iv, 3
  %344 = trunc nuw i64 %343 to i32
  %.not248 = icmp slt i32 %344, %0
  br i1 %.not248, label %345, label %350

345:                                              ; preds = %341
  %346 = getelementptr inbounds ptr, ptr %1, i64 %343
  %347 = load ptr, ptr %346, align 8, !tbaa !5
  %348 = load i8, ptr %347, align 1, !tbaa !9
  %349 = icmp eq i8 %348, 45
  br i1 %349, label %350, label %352

350:                                              ; preds = %345, %341
  %351 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.36)
  br label %.loopexit271

352:                                              ; preds = %345
  %353 = tail call double @atof(ptr noundef %347) #12
  store double %353, ptr getelementptr inbounds (i8, ptr @REMDInfo, i64 120), align 8, !tbaa !30
  store double %353, ptr @targetTemperature, align 8, !tbaa !10
  %354 = add nuw nsw i64 %indvars.iv, 4
  %355 = trunc nuw i64 %354 to i32
  %.not249 = icmp slt i32 %355, %0
  br i1 %.not249, label %356, label %361

356:                                              ; preds = %352
  %357 = getelementptr inbounds ptr, ptr %1, i64 %354
  %358 = load ptr, ptr %357, align 8, !tbaa !5
  %359 = load i8, ptr %358, align 1, !tbaa !9
  %360 = icmp eq i8 %359, 45
  br i1 %360, label %361, label %363

361:                                              ; preds = %356, %352
  %362 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.37)
  br label %.loopexit271

363:                                              ; preds = %356
  %364 = tail call i32 @atoi(ptr nocapture noundef %358) #12
  store i32 %364, ptr getelementptr inbounds (i8, ptr @REMDInfo, i64 112), align 8, !tbaa !31
  %365 = add nuw nsw i64 %indvars.iv, 5
  %366 = trunc nuw i64 %365 to i32
  %.not250 = icmp slt i32 %366, %0
  br i1 %.not250, label %367, label %374

367:                                              ; preds = %363
  %368 = getelementptr inbounds ptr, ptr %1, i64 %365
  %369 = load ptr, ptr %368, align 8, !tbaa !5
  %370 = load i8, ptr %369, align 1, !tbaa !9
  %371 = icmp eq i8 %370, 45
  br i1 %371, label %374, label %372

372:                                              ; preds = %367
  %373 = tail call i32 @atoi(ptr nocapture noundef %369) #12
  store i32 %373, ptr getelementptr inbounds (i8, ptr @REMDInfo, i64 8), align 8, !tbaa !32
  br label %374

374:                                              ; preds = %372, %367, %363
  %375 = add nuw nsw i64 %indvars.iv, 6
  %376 = trunc nuw i64 %375 to i32
  %.not251 = icmp slt i32 %376, %0
  br i1 %.not251, label %377, label %431

377:                                              ; preds = %374
  %378 = getelementptr inbounds ptr, ptr %1, i64 %375
  %379 = load ptr, ptr %378, align 8, !tbaa !5
  %380 = load i8, ptr %379, align 1, !tbaa !9
  %381 = icmp eq i8 %380, 45
  br i1 %381, label %431, label %382

382:                                              ; preds = %377
  %383 = tail call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @REMDInfo, i64 62), ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull %379) #10
  %384 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.38, ptr noundef nonnull getelementptr inbounds (i8, ptr @REMDInfo, i64 62)) #10
  br label %431

385:                                              ; preds = %318
  %386 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.39) #12
  %387 = icmp eq i32 %386, 0
  br i1 %387, label %388, label %389

388:                                              ; preds = %385
  store i32 1, ptr @visual, align 4, !tbaa !20
  br label %431

389:                                              ; preds = %385
  %390 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.40) #12
  %391 = icmp eq i32 %390, 0
  br i1 %391, label %.loopexit271, label %392

392:                                              ; preds = %389
  %393 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %10, ptr noundef nonnull dereferenceable(1) @.str.41) #12
  %394 = icmp eq i32 %393, 0
  br i1 %394, label %.loopexit271, label %431

.loopexit271:                                     ; preds = %389, %392, %470, %361, %350, %339, %328, %36, %22
  %395 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.42)
  %396 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.43)
  %397 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.44)
  %398 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.45)
  %399 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.46)
  %400 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.47)
  %401 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.48)
  %402 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.49)
  %403 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.50)
  %404 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.51)
  %405 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.52)
  %406 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.53)
  %407 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.54)
  %408 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.55)
  %409 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.56)
  %410 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.57)
  %411 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.58)
  %412 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.59)
  %413 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.60)
  %414 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.61)
  %415 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.62)
  %416 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.63)
  %417 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.64)
  %418 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.65)
  %419 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.66)
  %420 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.67)
  %421 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.68)
  %422 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.69)
  %423 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.70)
  %424 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.71)
  %425 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.72)
  %426 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.73)
  %427 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.74)
  %428 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.75)
  %429 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.76)
  %430 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.77)
  call void @exit(i32 noundef 0) #13
  unreachable

431:                                              ; preds = %.lr.ph, %38, %56, %88, %83, %81, %120, %154, %185, %219, %246, %241, %239, %272, %267, %265, %281, %289, %297, %305, %313, %382, %377, %374, %392, %388, %317, %309, %301, %293, %285, %277, %253, %255, %260, %225, %227, %232, %202, %160, %162, %167, %137, %95, %97, %102, %69, %71, %76, %44, %46, %51, %24
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit, label %.lr.ph, !llvm.loop !33

.loopexit:                                        ; preds = %431, %2
  tail call void @ReadParameter()
  %lhsc = load i8, ptr @.str.78, align 1
  %rhsc = load i8, ptr @neworcontinue, align 16
  %432 = icmp eq i8 %lhsc, %rhsc
  br i1 %432, label %433, label %460

433:                                              ; preds = %.loopexit
  %434 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.79)
  %435 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.80)
  %436 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.81)
  %437 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.82)
  %438 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.83)
  %439 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.84)
  %440 = tail call i64 @time(ptr noundef null) #10
  %441 = trunc i64 %440 to i32
  store i32 %441, ptr @seed, align 4, !tbaa !20
  tail call void @srand(i32 noundef %441) #10
  call void @ModifyCoordinateFile(ptr noundef nonnull %4)
  call void @ReadCoordinate()
  call void @CreateCell()
  %442 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.85)
  call void @ReadModel()
  %443 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.86)
  %444 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.87)
  %445 = load ptr, ptr @stdout, align 8, !tbaa !5
  %446 = call i32 @fflush(ptr noundef %445)
  call void @CreatePotentialMatrix()
  call void @CalculateMass()
  call void @ReadHB()
  call void @InitializeCharge()
  %447 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) @wallExist, ptr noundef nonnull dereferenceable(1) @.str.88) #12
  %448 = icmp ne i32 %447, 0
  %449 = load i32, ptr @obstObj, align 8
  %450 = icmp ne i32 %449, 0
  %or.cond = select i1 %448, i1 true, i1 %450
  br i1 %or.cond, label %451, label %452

451:                                              ; preds = %433
  call void @ReadWall()
  br label %452

452:                                              ; preds = %433, %451
  %453 = load i32, ptr getelementptr inbounds (i8, ptr @CG, i64 32), align 8, !tbaa !35
  %.not = icmp eq i32 %453, 0
  br i1 %.not, label %455, label %454

454:                                              ; preds = %452
  call void @InitializeCG() #10
  br label %455

455:                                              ; preds = %454, %452
  call void @CreateFlow()
  call void @InitializeOthers()
  %456 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.86)
  %457 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.89)
  %458 = load ptr, ptr @stdout, align 8, !tbaa !5
  %459 = call i32 @fflush(ptr noundef %458)
  call void @GenerateVelocity()
  br label %.sink.split

460:                                              ; preds = %.loopexit
  %lhsc244 = load i8, ptr @.str.90, align 1
  %461 = icmp eq i8 %lhsc244, %rhsc
  br i1 %461, label %462, label %476

462:                                              ; preds = %460
  %463 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.91)
  %464 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.92)
  %465 = load ptr, ptr @stdout, align 8, !tbaa !5
  %466 = tail call i32 @fflush(ptr noundef %465)
  %467 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.93, ptr noundef nonnull @savedir, ptr noundef nonnull %3) #10
  %468 = call noalias ptr @fopen(ptr noundef nonnull %5, ptr noundef nonnull @.str.94)
  %469 = icmp eq ptr %468, null
  br i1 %469, label %470, label %473

470:                                              ; preds = %462
  %471 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.95, ptr noundef nonnull %3, ptr noundef nonnull @savedir)
  %472 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.96)
  br label %.loopexit271

473:                                              ; preds = %462
  call void @ReadBreakPoint(ptr noundef nonnull %468)
  %474 = call i32 @fclose(ptr noundef nonnull %468)
  br label %.sink.split

.sink.split:                                      ; preds = %455, %473
  %475 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.86)
  br label %476

476:                                              ; preds = %.sink.split, %460
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 50, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 50, ptr nonnull %3) #10
  ret void
}

; 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 nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

; 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 #3

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

; Function Attrs: nofree nounwind
declare noalias noundef ptr @opendir(ptr nocapture noundef readonly) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #5

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

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare double @atof(ptr nocapture noundef nonnull) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr nocapture noundef nonnull) local_unnamed_addr #6

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

; Function Attrs: nounwind uwtable
declare dso_local void @ReadParameter() local_unnamed_addr #0

; Function Attrs: nounwind
declare i64 @time(ptr noundef) local_unnamed_addr #8

; Function Attrs: nounwind
declare void @srand(i32 noundef) local_unnamed_addr #8

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

; Function Attrs: nounwind uwtable
declare dso_local void @ReadCoordinate() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local void @CreateCell() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local void @ReadModel() local_unnamed_addr #0

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

; Function Attrs: nounwind uwtable
declare dso_local void @CreatePotentialMatrix() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local void @CalculateMass() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local void @ReadHB() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local void @InitializeCharge() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local void @ReadWall() local_unnamed_addr #0

declare void @InitializeCG() local_unnamed_addr #9

; Function Attrs: nounwind uwtable
declare dso_local void @CreateFlow() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local void @InitializeOthers() local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local void @GenerateVelocity() local_unnamed_addr #0

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"double", !7, i64 0}
!12 = !{!13, !14, i64 0}
!13 = !{!"FileStr", !14, i64 0, !7, i64 4, !6, i64 264}
!14 = !{!"int", !7, i64 0}
!15 = !{!16, !11, i64 24}
!16 = !{!"DynamicWallStr", !7, i64 0, !14, i64 16, !14, i64 20, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !7, i64 56}
!17 = !{!16, !11, i64 32}
!18 = !{!19, !14, i64 0}
!19 = !{!"PreBondStr", !14, i64 0, !14, i64 4, !11, i64 8}
!20 = !{!14, !14, i64 0}
!21 = !{!22, !14, i64 92}
!22 = !{!"FlowStr", !14, i64 0, !23, i64 8, !24, i64 40, !25, i64 88}
!23 = !{!"ConstVStr", !7, i64 0}
!24 = !{!"ForceStr", !7, i64 0, !6, i64 32, !6, i64 40}
!25 = !{!"ChargeStr", !14, i64 0, !14, i64 4, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32}
!26 = !{!27, !14, i64 0}
!27 = !{!"REMDStr", !14, i64 0, !14, i64 4, !14, i64 8, !7, i64 12, !7, i64 62, !28, i64 112}
!28 = !{!"REMDTempStr", !14, i64 0, !11, i64 8}
!29 = !{!27, !14, i64 4}
!30 = !{!27, !11, i64 120}
!31 = !{!27, !14, i64 112}
!32 = !{!27, !14, i64 8}
!33 = distinct !{!33, !34}
!34 = !{!"llvm.loop.mustprogress"}
!35 = !{!36, !14, i64 32}
!36 = !{!"CGGovStr", !7, i64 0, !14, i64 32, !14, i64 36, !6, i64 40, !6, i64 48}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass