; LLVM IR from freakout42/macrocalc :: mc/src (db2rdb)

; 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.DBF = type { [1024 x i8], [1024 x i8], ptr, ptr, i32, i32, i8, i8, i8, i8, i8, i8, i8, i32, i32, i8, ptr, ptr, %struct.DBFPROLOG }
%struct.DBFPROLOG = type { i8, i8, i8, i8, i32, i16, i16, i16, i8, i8, [12 x i8], i8, [3 x i8] }
%struct.file = type { ptr, i16, i32, ptr, i32, ptr, i64, ptr }
%struct.tm = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, ptr }
%struct.FIELD_RECORD = type { [11 x i8], i8, i32, i8, i8, [14 x i8] }

@opts = external dso_local global [42 x i8], align 16
@optarg = external global ptr, align 8
@.str = external hidden unnamed_addr constant [39 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [10 x i8], align 1
@optind = external global i32, align 4
@.str.2 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [1 x i8], align 1
@stdin = external global ptr, align 8
@.str.14 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [42 x i8], align 1
@stdout = external global ptr, align 8
@.str.21 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [19 x i8], align 1
@stderr = external global ptr, align 8
@.str.30 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [12 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i8, align 1
  %10 = alloca i8, align 1
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i8, align 1
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca ptr, align 8
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i64, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #8
  store i32 0, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  store i32 0, ptr %16, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  store i32 0, ptr %17, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  store ptr null, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  store ptr null, ptr %19, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #8
  store i8 9, ptr %20, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  store i32 0, ptr %21, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  store i32 0, ptr %22, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  store i32 0, ptr %23, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  store i32 0, ptr %24, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  store i32 0, ptr %25, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  store i32 0, ptr %26, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  store i32 0, ptr %27, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  store i32 0, ptr %28, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  store i32 0, ptr %29, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  store i32 0, ptr %30, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  store i32 1, ptr %31, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  store i32 1, ptr %32, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  store i32 0, ptr %33, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  store i32 0, ptr %34, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  store i32 0, ptr %35, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  store i32 0, ptr %36, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  store i32 0, ptr %37, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  store i32 0, ptr %38, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  store i32 0, ptr %39, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  store i32 0, ptr %40, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  store i32 1, ptr %41, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  store i32 0, ptr %42, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  store i32 0, ptr %43, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  store i32 0, ptr %44, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  store i32 9, ptr %45, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #8
  store i32 2, ptr %46, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  store i32 9, ptr %47, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  store i32 2, ptr %48, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  store ptr null, ptr %49, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #8
  store i32 0, ptr %50, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  store i32 0, ptr %51, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #8
  store i32 0, ptr %52, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  br label %56

56:                                               ; preds = %117, %2
  %57 = load i32, ptr %4, align 4, !tbaa !5
  %58 = load ptr, ptr %5, align 8, !tbaa !9
  %59 = call i32 @getopt(i32 noundef %57, ptr noundef %58, ptr noundef @opts) #8
  store i32 %59, ptr %15, align 4, !tbaa !5
  %60 = icmp ne i32 %59, -1
  br i1 %60, label %61, label %118

61:                                               ; preds = %56
  %62 = load i32, ptr %15, align 4, !tbaa !5
  switch i32 %62, label %116 [
    i32 43, label %63
    i32 78, label %64
    i32 70, label %66
    i32 120, label %68
    i32 97, label %69
    i32 65, label %75
    i32 66, label %76
    i32 48, label %77
    i32 117, label %78
    i32 108, label %79
    i32 99, label %80
    i32 98, label %81
    i32 100, label %82
    i32 101, label %83
    i32 102, label %84
    i32 109, label %87
    i32 103, label %89
    i32 104, label %90
    i32 105, label %91
    i32 106, label %92
    i32 107, label %93
    i32 75, label %94
    i32 111, label %95
    i32 112, label %96
    i32 121, label %97
    i32 113, label %98
    i32 122, label %99
    i32 114, label %100
    i32 115, label %101
    i32 116, label %113
    i32 118, label %114
    i32 63, label %115
  ]

63:                                               ; preds = %61
  store i32 1, ptr %22, align 4, !tbaa !5
  br label %117

64:                                               ; preds = %61
  %65 = load ptr, ptr @optarg, align 8, !tbaa !9
  call void @dblen(ptr noundef %65, ptr noundef %45, ptr noundef %46)
  br label %117

66:                                               ; preds = %61
  %67 = load ptr, ptr @optarg, align 8, !tbaa !9
  call void @dblen(ptr noundef %67, ptr noundef %47, ptr noundef %48)
  br label %117

68:                                               ; preds = %61
  store i32 1, ptr %17, align 4, !tbaa !5
  br label %69

69:                                               ; preds = %68, %61
  %70 = load i32, ptr %16, align 4, !tbaa !5
  %71 = icmp ne i32 %70, 0
  br i1 %71, label %72, label %73

72:                                               ; preds = %69
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 1, ptr noundef @.str)
  br label %73

73:                                               ; preds = %72, %69
  store i32 1, ptr %16, align 4, !tbaa !5
  %74 = load ptr, ptr @optarg, align 8, !tbaa !9
  store ptr %74, ptr %18, align 8, !tbaa !9
  br label %117

75:                                               ; preds = %61
  store i32 1, ptr %23, align 4, !tbaa !5
  br label %117

76:                                               ; preds = %61
  store i32 1, ptr %24, align 4, !tbaa !5
  br label %117

77:                                               ; preds = %61
  store i32 1, ptr %21, align 4, !tbaa !5
  br label %117

78:                                               ; preds = %61
  store i32 1, ptr %43, align 4, !tbaa !5
  br label %117

79:                                               ; preds = %61
  store i32 2, ptr %43, align 4, !tbaa !5
  br label %117

80:                                               ; preds = %61
  store i32 3, ptr %43, align 4, !tbaa !5
  br label %117

81:                                               ; preds = %61
  store i32 1, ptr %26, align 4, !tbaa !5
  br label %117

82:                                               ; preds = %61
  store i32 1, ptr %25, align 4, !tbaa !5
  br label %117

83:                                               ; preds = %61
  store i32 1, ptr %27, align 4, !tbaa !5
  br label %117

84:                                               ; preds = %61
  %85 = load ptr, ptr @optarg, align 8, !tbaa !9
  %86 = load i8, ptr %85, align 1, !tbaa !11
  store i8 %86, ptr %20, align 1, !tbaa !11
  br label %117

87:                                               ; preds = %61
  %88 = load ptr, ptr @optarg, align 8, !tbaa !9
  store ptr %88, ptr %19, align 8, !tbaa !9
  br label %117

89:                                               ; preds = %61
  store i32 1, ptr %30, align 4, !tbaa !5
  br label %117

90:                                               ; preds = %61
  store i32 0, ptr %31, align 4, !tbaa !5
  br label %117

91:                                               ; preds = %61
  store i32 0, ptr %32, align 4, !tbaa !5
  br label %117

92:                                               ; preds = %61
  store i32 1, ptr %28, align 4, !tbaa !5
  br label %117

93:                                               ; preds = %61
  store i32 1, ptr %33, align 4, !tbaa !5
  br label %117

94:                                               ; preds = %61
  store i32 1, ptr %34, align 4, !tbaa !5
  br label %117

95:                                               ; preds = %61
  store i32 1, ptr %42, align 4, !tbaa !5
  br label %117

96:                                               ; preds = %61
  store i32 1, ptr %39, align 4, !tbaa !5
  br label %117

97:                                               ; preds = %61
  store i32 1, ptr %40, align 4, !tbaa !5
  br label %117

98:                                               ; preds = %61
  store i32 1, ptr %37, align 4, !tbaa !5
  br label %117

99:                                               ; preds = %61
  store i32 1, ptr %38, align 4, !tbaa !5
  store i32 1, ptr %42, align 4, !tbaa !5
  br label %117

100:                                              ; preds = %61
  store i32 1, ptr %36, align 4, !tbaa !5
  store i32 1, ptr %43, align 4, !tbaa !5
  br label %117

101:                                              ; preds = %61
  store i32 1, ptr %35, align 4, !tbaa !5
  %102 = load ptr, ptr @optarg, align 8, !tbaa !9
  %103 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %102, ptr noundef @.str.1, ptr noundef %50, ptr noundef %51, ptr noundef %52) #8
  %104 = icmp ne i32 %103, 3
  br i1 %104, label %105, label %106

105:                                              ; preds = %101
  call void @usage()
  br label %106

106:                                              ; preds = %105, %101
  %107 = load i32, ptr %50, align 4, !tbaa !5
  %108 = icmp sle i32 %107, 50
  br i1 %108, label %109, label %112

109:                                              ; preds = %106
  %110 = load i32, ptr %50, align 4, !tbaa !5
  %111 = add nsw i32 %110, 100
  store i32 %111, ptr %50, align 4, !tbaa !5
  br label %112

112:                                              ; preds = %109, %106
  br label %117

113:                                              ; preds = %61
  store i32 0, ptr %41, align 4, !tbaa !5
  br label %117

114:                                              ; preds = %61
  store i32 1, ptr %44, align 4, !tbaa !5
  br label %117

115:                                              ; preds = %61
  br label %116

116:                                              ; preds = %115, %61
  call void @usage()
  br label %117

117:                                              ; preds = %116, %114, %113, %112, %100, %99, %98, %97, %96, %95, %94, %93, %92, %91, %90, %89, %87, %84, %83, %82, %81, %80, %79, %78, %77, %76, %75, %73, %66, %64, %63
  br label %56, !llvm.loop !12

118:                                              ; preds = %56
  br label %119

119:                                              ; preds = %133, %118
  %120 = load i32, ptr @optind, align 4, !tbaa !5
  %121 = load i32, ptr %4, align 4, !tbaa !5
  %122 = icmp slt i32 %120, %121
  br i1 %122, label %123, label %136

123:                                              ; preds = %119
  %124 = load ptr, ptr %49, align 8, !tbaa !9
  %125 = icmp ne ptr %124, null
  br i1 %125, label %126, label %127

126:                                              ; preds = %123
  call void @usage()
  br label %127

127:                                              ; preds = %126, %123
  %128 = load ptr, ptr %5, align 8, !tbaa !9
  %129 = load i32, ptr @optind, align 4, !tbaa !5
  %130 = sext i32 %129 to i64
  %131 = getelementptr inbounds ptr, ptr %128, i64 %130
  %132 = load ptr, ptr %131, align 8, !tbaa !9
  store ptr %132, ptr %49, align 8, !tbaa !9
  br label %133

133:                                              ; preds = %127
  %134 = load i32, ptr @optind, align 4, !tbaa !5
  %135 = add nsw i32 %134, 1
  store i32 %135, ptr @optind, align 4, !tbaa !5
  br label %119, !llvm.loop !14

136:                                              ; preds = %119
  %137 = call noalias ptr @malloc(i64 noundef 2144) #9
  store ptr %137, ptr %11, align 8, !tbaa !9
  %138 = load ptr, ptr %11, align 8, !tbaa !9
  %139 = icmp eq ptr %138, null
  br i1 %139, label %140, label %141

140:                                              ; preds = %136
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 8, ptr noundef @.str.2)
  br label %141

141:                                              ; preds = %140, %136
  %142 = call noalias ptr @malloc(i64 noundef 2144) #9
  store ptr %142, ptr %12, align 8, !tbaa !9
  %143 = load ptr, ptr %12, align 8, !tbaa !9
  %144 = icmp eq ptr %143, null
  br i1 %144, label %145, label %146

145:                                              ; preds = %141
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 8, ptr noundef @.str.2)
  br label %146

146:                                              ; preds = %145, %141
  %147 = load i32, ptr %36, align 4, !tbaa !5
  %148 = icmp ne i32 %147, 0
  br i1 %148, label %149, label %481

149:                                              ; preds = %146
  %150 = load i32, ptr %26, align 4, !tbaa !5
  %151 = icmp ne i32 %150, 0
  br i1 %151, label %152, label %153

152:                                              ; preds = %149
  call void (ptr, ...) @lib_mesg(ptr noundef @.str.3)
  br label %153

153:                                              ; preds = %152, %149
  %154 = load i32, ptr %25, align 4, !tbaa !5
  %155 = icmp ne i32 %154, 0
  br i1 %155, label %156, label %157

156:                                              ; preds = %153
  call void (ptr, ...) @lib_mesg(ptr noundef @.str.4)
  br label %157

157:                                              ; preds = %156, %153
  %158 = load i32, ptr %27, align 4, !tbaa !5
  %159 = icmp ne i32 %158, 0
  br i1 %159, label %160, label %161

160:                                              ; preds = %157
  call void (ptr, ...) @lib_mesg(ptr noundef @.str.5)
  br label %161

161:                                              ; preds = %160, %157
  %162 = load i32, ptr %28, align 4, !tbaa !5
  %163 = icmp ne i32 %162, 0
  br i1 %163, label %164, label %165

164:                                              ; preds = %161
  call void (ptr, ...) @lib_mesg(ptr noundef @.str.6)
  br label %165

165:                                              ; preds = %164, %161
  %166 = load i32, ptr %37, align 4, !tbaa !5
  %167 = icmp ne i32 %166, 0
  br i1 %167, label %168, label %169

168:                                              ; preds = %165
  call void (ptr, ...) @lib_mesg(ptr noundef @.str.7)
  br label %169

169:                                              ; preds = %168, %165
  %170 = load i32, ptr %38, align 4, !tbaa !5
  %171 = icmp ne i32 %170, 0
  br i1 %171, label %172, label %173

172:                                              ; preds = %169
  call void (ptr, ...) @lib_mesg(ptr noundef @.str.8)
  br label %173

173:                                              ; preds = %172, %169
  %174 = load i32, ptr %39, align 4, !tbaa !5
  %175 = icmp ne i32 %174, 0
  br i1 %175, label %176, label %177

176:                                              ; preds = %173
  call void (ptr, ...) @lib_mesg(ptr noundef @.str.9)
  br label %177

177:                                              ; preds = %176, %173
  %178 = load i32, ptr %40, align 4, !tbaa !5
  %179 = icmp ne i32 %178, 0
  br i1 %179, label %180, label %181

180:                                              ; preds = %177
  call void (ptr, ...) @lib_mesg(ptr noundef @.str.10)
  br label %181

181:                                              ; preds = %180, %177
  %182 = load i32, ptr %23, align 4, !tbaa !5
  %183 = icmp ne i32 %182, 0
  br i1 %183, label %187, label %184

184:                                              ; preds = %181
  %185 = load i32, ptr %24, align 4, !tbaa !5
  %186 = icmp ne i32 %185, 0
  br i1 %186, label %187, label %188

187:                                              ; preds = %184, %181
  call void (ptr, ...) @lib_mesg(ptr noundef @.str.11)
  br label %188

188:                                              ; preds = %187, %184
  %189 = load ptr, ptr %49, align 8, !tbaa !9
  %190 = icmp ne ptr %189, null
  br i1 %190, label %191, label %203

191:                                              ; preds = %188
  %192 = load ptr, ptr %49, align 8, !tbaa !9
  %193 = call i32 @strcmp(ptr noundef %192, ptr noundef @.str.12) #10
  %194 = icmp ne i32 %193, 0
  br i1 %194, label %195, label %203

195:                                              ; preds = %191
  %196 = load ptr, ptr %12, align 8, !tbaa !9
  %197 = getelementptr inbounds %struct.DBF, ptr %196, i32 0, i32 0
  %198 = getelementptr inbounds [1024 x i8], ptr %197, i64 0, i64 0
  %199 = load ptr, ptr %49, align 8, !tbaa !9
  %200 = call ptr @strcpy(ptr noundef %198, ptr noundef %199) #8
  %201 = load ptr, ptr %12, align 8, !tbaa !9
  %202 = getelementptr inbounds %struct.DBF, ptr %201, i32 0, i32 2
  store ptr null, ptr %202, align 8, !tbaa !15
  br label %211

203:                                              ; preds = %191, %188
  %204 = load ptr, ptr %12, align 8, !tbaa !9
  %205 = getelementptr inbounds %struct.DBF, ptr %204, i32 0, i32 0
  %206 = getelementptr inbounds [1024 x i8], ptr %205, i64 0, i64 0
  %207 = call ptr @strcpy(ptr noundef %206, ptr noundef @.str.13) #8
  %208 = load ptr, ptr @stdin, align 8, !tbaa !9
  %209 = load ptr, ptr %12, align 8, !tbaa !9
  %210 = getelementptr inbounds %struct.DBF, ptr %209, i32 0, i32 2
  store ptr %208, ptr %210, align 8, !tbaa !15
  br label %211

211:                                              ; preds = %203, %195
  %212 = load i32, ptr %35, align 4, !tbaa !5
  %213 = icmp ne i32 %212, 0
  br i1 %213, label %214, label %230

214:                                              ; preds = %211
  %215 = load i32, ptr %50, align 4, !tbaa !5
  %216 = trunc i32 %215 to i8
  %217 = load ptr, ptr %12, align 8, !tbaa !9
  %218 = getelementptr inbounds %struct.DBF, ptr %217, i32 0, i32 18
  %219 = getelementptr inbounds %struct.DBFPROLOG, ptr %218, i32 0, i32 1
  store i8 %216, ptr %219, align 1, !tbaa !19
  %220 = load i32, ptr %51, align 4, !tbaa !5
  %221 = trunc i32 %220 to i8
  %222 = load ptr, ptr %12, align 8, !tbaa !9
  %223 = getelementptr inbounds %struct.DBF, ptr %222, i32 0, i32 18
  %224 = getelementptr inbounds %struct.DBFPROLOG, ptr %223, i32 0, i32 2
  store i8 %221, ptr %224, align 2, !tbaa !20
  %225 = load i32, ptr %52, align 4, !tbaa !5
  %226 = trunc i32 %225 to i8
  %227 = load ptr, ptr %12, align 8, !tbaa !9
  %228 = getelementptr inbounds %struct.DBF, ptr %227, i32 0, i32 18
  %229 = getelementptr inbounds %struct.DBFPROLOG, ptr %228, i32 0, i32 3
  store i8 %226, ptr %229, align 1, !tbaa !21
  br label %269

230:                                              ; preds = %211
  %231 = load ptr, ptr %49, align 8, !tbaa !9
  %232 = icmp eq ptr %231, null
  br i1 %232, label %233, label %236

233:                                              ; preds = %230
  %234 = call i64 @time(ptr noundef %53) #8
  %235 = call ptr @localtime(ptr noundef %53) #8
  store ptr %235, ptr %54, align 8, !tbaa !9
  br label %246

236:                                              ; preds = %230
  %237 = load ptr, ptr %49, align 8, !tbaa !9
  %238 = call ptr @lib_stat(ptr noundef %237)
  store ptr %238, ptr %55, align 8, !tbaa !9
  %239 = icmp eq ptr %238, null
  br i1 %239, label %240, label %242

240:                                              ; preds = %236
  %241 = load ptr, ptr %49, align 8, !tbaa !9
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 2, ptr noundef @.str.14, ptr noundef %241)
  br label %242

242:                                              ; preds = %240, %236
  %243 = load ptr, ptr %55, align 8, !tbaa !9
  %244 = getelementptr inbounds %struct.file, ptr %243, i32 0, i32 7
  %245 = load ptr, ptr %244, align 8, !tbaa !22
  store ptr %245, ptr %54, align 8, !tbaa !9
  br label %246

246:                                              ; preds = %242, %233
  %247 = load ptr, ptr %54, align 8, !tbaa !9
  %248 = getelementptr inbounds %struct.tm, ptr %247, i32 0, i32 5
  %249 = load i32, ptr %248, align 4, !tbaa !25
  %250 = trunc i32 %249 to i8
  %251 = load ptr, ptr %12, align 8, !tbaa !9
  %252 = getelementptr inbounds %struct.DBF, ptr %251, i32 0, i32 18
  %253 = getelementptr inbounds %struct.DBFPROLOG, ptr %252, i32 0, i32 1
  store i8 %250, ptr %253, align 1, !tbaa !19
  %254 = load ptr, ptr %54, align 8, !tbaa !9
  %255 = getelementptr inbounds %struct.tm, ptr %254, i32 0, i32 4
  %256 = load i32, ptr %255, align 8, !tbaa !27
  %257 = add nsw i32 %256, 1
  %258 = trunc i32 %257 to i8
  %259 = load ptr, ptr %12, align 8, !tbaa !9
  %260 = getelementptr inbounds %struct.DBF, ptr %259, i32 0, i32 18
  %261 = getelementptr inbounds %struct.DBFPROLOG, ptr %260, i32 0, i32 2
  store i8 %258, ptr %261, align 2, !tbaa !20
  %262 = load ptr, ptr %54, align 8, !tbaa !9
  %263 = getelementptr inbounds %struct.tm, ptr %262, i32 0, i32 3
  %264 = load i32, ptr %263, align 4, !tbaa !28
  %265 = trunc i32 %264 to i8
  %266 = load ptr, ptr %12, align 8, !tbaa !9
  %267 = getelementptr inbounds %struct.DBF, ptr %266, i32 0, i32 18
  %268 = getelementptr inbounds %struct.DBFPROLOG, ptr %267, i32 0, i32 3
  store i8 %265, ptr %268, align 1, !tbaa !21
  br label %269

269:                                              ; preds = %246, %214
  %270 = load i32, ptr %29, align 4, !tbaa !5
  %271 = icmp ne i32 %270, 0
  %272 = zext i1 %271 to i64
  %273 = select i1 %271, i32 1, i32 0
  %274 = load ptr, ptr %12, align 8, !tbaa !9
  %275 = getelementptr inbounds %struct.DBF, ptr %274, i32 0, i32 5
  store i32 %273, ptr %275, align 4, !tbaa !29
  %276 = load i8, ptr %20, align 1, !tbaa !11
  %277 = load ptr, ptr %12, align 8, !tbaa !9
  %278 = getelementptr inbounds %struct.DBF, ptr %277, i32 0, i32 6
  store i8 %276, ptr %278, align 8, !tbaa !30
  %279 = load i32, ptr %31, align 4, !tbaa !5
  %280 = trunc i32 %279 to i8
  %281 = load ptr, ptr %12, align 8, !tbaa !9
  %282 = getelementptr inbounds %struct.DBF, ptr %281, i32 0, i32 7
  store i8 %280, ptr %282, align 1, !tbaa !31
  %283 = load i32, ptr %41, align 4, !tbaa !5
  %284 = trunc i32 %283 to i8
  %285 = load ptr, ptr %12, align 8, !tbaa !9
  %286 = getelementptr inbounds %struct.DBF, ptr %285, i32 0, i32 10
  store i8 %284, ptr %286, align 4, !tbaa !32
  %287 = load i32, ptr %42, align 4, !tbaa !5
  %288 = load ptr, ptr %12, align 8, !tbaa !9
  %289 = getelementptr inbounds %struct.DBF, ptr %288, i32 0, i32 13
  store i32 %287, ptr %289, align 8, !tbaa !33
  %290 = load i32, ptr %43, align 4, !tbaa !5
  %291 = load ptr, ptr %12, align 8, !tbaa !9
  %292 = getelementptr inbounds %struct.DBF, ptr %291, i32 0, i32 14
  store i32 %290, ptr %292, align 4, !tbaa !34
  %293 = load ptr, ptr %12, align 8, !tbaa !9
  %294 = call i32 @rdb_open(ptr noundef %293)
  store i32 %294, ptr %6, align 4, !tbaa !5
  %295 = load i32, ptr %6, align 4, !tbaa !5
  switch i32 %295, label %304 [
    i32 8, label %296
    i32 3, label %298
    i32 2, label %300
    i32 11, label %302
  ]

296:                                              ; preds = %269
  %297 = load i32, ptr %6, align 4, !tbaa !5
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %297, ptr noundef @.str.15)
  br label %298

298:                                              ; preds = %296, %269
  %299 = load i32, ptr %6, align 4, !tbaa !5
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %299, ptr noundef @.str.16)
  br label %300

300:                                              ; preds = %298, %269
  %301 = load i32, ptr %6, align 4, !tbaa !5
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %301, ptr noundef @.str.17)
  br label %302

302:                                              ; preds = %300, %269
  %303 = load i32, ptr %6, align 4, !tbaa !5
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %303, ptr noundef @.str.18)
  br label %304

304:                                              ; preds = %302, %269
  %305 = load i32, ptr %33, align 4, !tbaa !5
  %306 = icmp ne i32 %305, 0
  br i1 %306, label %307, label %309

307:                                              ; preds = %304
  %308 = load ptr, ptr %12, align 8, !tbaa !9
  call void @dbf_from(ptr noundef %308, i32 noundef 0)
  call void @exit(i32 noundef 0) #11
  unreachable

309:                                              ; preds = %304
  %310 = load i32, ptr %34, align 4, !tbaa !5
  %311 = icmp ne i32 %310, 0
  br i1 %311, label %312, label %314

312:                                              ; preds = %309
  %313 = load ptr, ptr %12, align 8, !tbaa !9
  call void @dbf_from(ptr noundef %313, i32 noundef 1)
  call void @exit(i32 noundef 0) #11
  unreachable

314:                                              ; preds = %309
  %315 = load i32, ptr %16, align 4, !tbaa !5
  %316 = icmp ne i32 %315, 0
  br i1 %316, label %317, label %396

317:                                              ; preds = %314
  %318 = load ptr, ptr %11, align 8, !tbaa !9
  %319 = getelementptr inbounds %struct.DBF, ptr %318, i32 0, i32 0
  %320 = getelementptr inbounds [1024 x i8], ptr %319, i64 0, i64 0
  %321 = load ptr, ptr %18, align 8, !tbaa !9
  %322 = call ptr @strcpy(ptr noundef %320, ptr noundef %321) #8
  %323 = load ptr, ptr %11, align 8, !tbaa !9
  %324 = getelementptr inbounds %struct.DBF, ptr %323, i32 0, i32 2
  store ptr null, ptr %324, align 8, !tbaa !15
  %325 = load ptr, ptr %11, align 8, !tbaa !9
  %326 = call i32 @dbf_open(ptr noundef %325)
  store i32 %326, ptr %6, align 4, !tbaa !5
  %327 = load i32, ptr %6, align 4, !tbaa !5
  switch i32 %327, label %336 [
    i32 8, label %328
    i32 2, label %330
    i32 11, label %333
  ]

328:                                              ; preds = %317
  %329 = load i32, ptr %6, align 4, !tbaa !5
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %329, ptr noundef @.str.15)
  br label %330

330:                                              ; preds = %328, %317
  %331 = load i32, ptr %6, align 4, !tbaa !5
  %332 = load ptr, ptr %18, align 8, !tbaa !9
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %331, ptr noundef @.str.19, ptr noundef %332)
  br label %333

333:                                              ; preds = %330, %317
  %334 = load i32, ptr %6, align 4, !tbaa !5
  %335 = load ptr, ptr %18, align 8, !tbaa !9
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %334, ptr noundef @.str.20, ptr noundef %335)
  br label %336

336:                                              ; preds = %333, %317
  %337 = load i32, ptr %17, align 4, !tbaa !5
  %338 = icmp ne i32 %337, 0
  br i1 %338, label %339, label %354

339:                                              ; preds = %336
  %340 = load ptr, ptr %11, align 8, !tbaa !9
  %341 = getelementptr inbounds %struct.DBF, ptr %340, i32 0, i32 2
  %342 = load ptr, ptr %341, align 8, !tbaa !15
  %343 = call i32 @fclose(ptr noundef %342)
  %344 = load ptr, ptr %12, align 8, !tbaa !9
  %345 = getelementptr inbounds %struct.DBF, ptr %344, i32 0, i32 18
  %346 = getelementptr inbounds %struct.DBFPROLOG, ptr %345, i32 0, i32 4
  %347 = load i32, ptr %346, align 4, !tbaa !35
  %348 = load ptr, ptr %11, align 8, !tbaa !9
  %349 = getelementptr inbounds %struct.DBF, ptr %348, i32 0, i32 18
  %350 = getelementptr inbounds %struct.DBFPROLOG, ptr %349, i32 0, i32 4
  store i32 %347, ptr %350, align 4, !tbaa !35
  %351 = load ptr, ptr @stdout, align 8, !tbaa !9
  %352 = load ptr, ptr %11, align 8, !tbaa !9
  %353 = getelementptr inbounds %struct.DBF, ptr %352, i32 0, i32 2
  store ptr %351, ptr %353, align 8, !tbaa !15
  br label %368

354:                                              ; preds = %336
  %355 = load ptr, ptr %11, align 8, !tbaa !9
  %356 = getelementptr inbounds %struct.DBF, ptr %355, i32 0, i32 18
  %357 = getelementptr inbounds %struct.DBFPROLOG, ptr %356, i32 0, i32 4
  %358 = load i32, ptr %357, align 4, !tbaa !35
  store i32 %358, ptr %7, align 4, !tbaa !5
  %359 = load ptr, ptr %12, align 8, !tbaa !9
  %360 = getelementptr inbounds %struct.DBF, ptr %359, i32 0, i32 18
  %361 = getelementptr inbounds %struct.DBFPROLOG, ptr %360, i32 0, i32 4
  %362 = load i32, ptr %361, align 4, !tbaa !35
  %363 = load ptr, ptr %11, align 8, !tbaa !9
  %364 = getelementptr inbounds %struct.DBF, ptr %363, i32 0, i32 18
  %365 = getelementptr inbounds %struct.DBFPROLOG, ptr %364, i32 0, i32 4
  %366 = load i32, ptr %365, align 4, !tbaa !35
  %367 = add i32 %366, %362
  store i32 %367, ptr %365, align 4, !tbaa !35
  br label %368

368:                                              ; preds = %354, %339
  %369 = load ptr, ptr %11, align 8, !tbaa !9
  %370 = getelementptr inbounds %struct.DBF, ptr %369, i32 0, i32 2
  %371 = load ptr, ptr %370, align 8, !tbaa !15
  %372 = call i32 @fseek(ptr noundef %371, i64 noundef 0, i32 noundef 0)
  %373 = icmp ne i32 %372, 0
  br i1 %373, label %378, label %374

374:                                              ; preds = %368
  %375 = load ptr, ptr %11, align 8, !tbaa !9
  %376 = call i32 @dbf_crea(ptr noundef %375)
  %377 = icmp ne i32 %376, 0
  br i1 %377, label %378, label %379

378:                                              ; preds = %374, %368
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 4, ptr noundef @.str.21)
  br label %379

379:                                              ; preds = %378, %374
  %380 = load i32, ptr %17, align 4, !tbaa !5
  %381 = icmp ne i32 %380, 0
  br i1 %381, label %395, label %382

382:                                              ; preds = %379
  %383 = load ptr, ptr %11, align 8, !tbaa !9
  %384 = getelementptr inbounds %struct.DBF, ptr %383, i32 0, i32 2
  %385 = load ptr, ptr %384, align 8, !tbaa !15
  %386 = load i32, ptr %7, align 4, !tbaa !5
  %387 = load ptr, ptr %11, align 8, !tbaa !9
  %388 = getelementptr inbounds %struct.DBF, ptr %387, i32 0, i32 18
  %389 = getelementptr inbounds %struct.DBFPROLOG, ptr %388, i32 0, i32 6
  %390 = load i16, ptr %389, align 2, !tbaa !36
  %391 = zext i16 %390 to i32
  %392 = mul nsw i32 %386, %391
  %393 = sext i32 %392 to i64
  %394 = call i32 @fseek(ptr noundef %385, i64 noundef %393, i32 noundef 1)
  br label %395

395:                                              ; preds = %382, %379
  br label %402

396:                                              ; preds = %314
  %397 = load ptr, ptr %11, align 8, !tbaa !9
  %398 = load ptr, ptr %12, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %397, ptr align 8 %398, i64 2144, i1 false), !tbaa.struct !37
  %399 = load ptr, ptr @stdout, align 8, !tbaa !9
  %400 = load ptr, ptr %11, align 8, !tbaa !9
  %401 = getelementptr inbounds %struct.DBF, ptr %400, i32 0, i32 2
  store ptr %399, ptr %401, align 8, !tbaa !15
  br label %402

402:                                              ; preds = %396, %395
  %403 = load i32, ptr %16, align 4, !tbaa !5
  %404 = icmp ne i32 %403, 0
  br i1 %404, label %420, label %405

405:                                              ; preds = %402
  %406 = load i32, ptr %22, align 4, !tbaa !5
  %407 = icmp ne i32 %406, 0
  br i1 %407, label %414, label %408

408:                                              ; preds = %405
  %409 = load ptr, ptr %11, align 8, !tbaa !9
  %410 = getelementptr inbounds %struct.DBF, ptr %409, i32 0, i32 18
  %411 = getelementptr inbounds %struct.DBFPROLOG, ptr %410, i32 0, i32 5
  %412 = load i16, ptr %411, align 8, !tbaa !39
  %413 = add i16 %412, 1
  store i16 %413, ptr %411, align 8, !tbaa !39
  br label %414

414:                                              ; preds = %408, %405
  %415 = load ptr, ptr %11, align 8, !tbaa !9
  %416 = call i32 @dbf_crea(ptr noundef %415)
  %417 = icmp ne i32 %416, 0
  br i1 %417, label %418, label %419

418:                                              ; preds = %414
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 4, ptr noundef @.str.21)
  br label %419

419:                                              ; preds = %418, %414
  br label %480

420:                                              ; preds = %402
  store i8 1, ptr %10, align 1, !tbaa !11
  %421 = load ptr, ptr %12, align 8, !tbaa !9
  %422 = getelementptr inbounds %struct.DBF, ptr %421, i32 0, i32 16
  %423 = load ptr, ptr %422, align 8, !tbaa !40
  store ptr %423, ptr %14, align 8, !tbaa !9
  br label %424

424:                                              ; preds = %474, %420
  %425 = load i8, ptr %10, align 1, !tbaa !11
  %426 = zext i8 %425 to i32
  %427 = load ptr, ptr %12, align 8, !tbaa !9
  %428 = getelementptr inbounds %struct.DBF, ptr %427, i32 0, i32 15
  %429 = load i8, ptr %428, align 8, !tbaa !41
  %430 = zext i8 %429 to i32
  %431 = icmp sle i32 %426, %430
  br i1 %431, label %432, label %479

432:                                              ; preds = %424
  store i8 1, ptr %9, align 1, !tbaa !11
  %433 = load ptr, ptr %11, align 8, !tbaa !9
  %434 = getelementptr inbounds %struct.DBF, ptr %433, i32 0, i32 16
  %435 = load ptr, ptr %434, align 8, !tbaa !40
  store ptr %435, ptr %13, align 8, !tbaa !9
  br label %436

436:                                              ; preds = %457, %432
  %437 = load i8, ptr %9, align 1, !tbaa !11
  %438 = zext i8 %437 to i32
  %439 = load ptr, ptr %11, align 8, !tbaa !9
  %440 = getelementptr inbounds %struct.DBF, ptr %439, i32 0, i32 15
  %441 = load i8, ptr %440, align 8, !tbaa !41
  %442 = zext i8 %441 to i32
  %443 = icmp sle i32 %438, %442
  br i1 %443, label %444, label %462

444:                                              ; preds = %436
  %445 = load ptr, ptr %14, align 8, !tbaa !9
  %446 = getelementptr inbounds %struct.FIELD_RECORD, ptr %445, i32 0, i32 0
  %447 = getelementptr inbounds [11 x i8], ptr %446, i64 0, i64 0
  %448 = load ptr, ptr %13, align 8, !tbaa !9
  %449 = getelementptr inbounds %struct.FIELD_RECORD, ptr %448, i32 0, i32 0
  %450 = getelementptr inbounds [11 x i8], ptr %449, i64 0, i64 0
  %451 = call i32 @strncmp(ptr noundef %447, ptr noundef %450, i64 noundef 11) #10
  %452 = icmp ne i32 %451, 0
  br i1 %452, label %456, label %453

453:                                              ; preds = %444
  %454 = load ptr, ptr %14, align 8, !tbaa !9
  %455 = load ptr, ptr %13, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %454, ptr align 4 %455, i64 32, i1 false)
  br label %462

456:                                              ; preds = %444
  br label %457

457:                                              ; preds = %456
  %458 = load i8, ptr %9, align 1, !tbaa !11
  %459 = add i8 %458, 1
  store i8 %459, ptr %9, align 1, !tbaa !11
  %460 = load ptr, ptr %13, align 8, !tbaa !9
  %461 = getelementptr inbounds %struct.FIELD_RECORD, ptr %460, i32 1
  store ptr %461, ptr %13, align 8, !tbaa !9
  br label %436, !llvm.loop !42

462:                                              ; preds = %453, %436
  %463 = load i8, ptr %9, align 1, !tbaa !11
  %464 = zext i8 %463 to i32
  %465 = load ptr, ptr %11, align 8, !tbaa !9
  %466 = getelementptr inbounds %struct.DBF, ptr %465, i32 0, i32 15
  %467 = load i8, ptr %466, align 8, !tbaa !41
  %468 = zext i8 %467 to i32
  %469 = icmp sgt i32 %464, %468
  br i1 %469, label %470, label %473

470:                                              ; preds = %462
  %471 = load ptr, ptr %14, align 8, !tbaa !9
  %472 = getelementptr inbounds %struct.FIELD_RECORD, ptr %471, i32 0, i32 1
  store i8 88, ptr %472, align 1, !tbaa !43
  br label %473

473:                                              ; preds = %470, %462
  br label %474

474:                                              ; preds = %473
  %475 = load i8, ptr %10, align 1, !tbaa !11
  %476 = add i8 %475, 1
  store i8 %476, ptr %10, align 1, !tbaa !11
  %477 = load ptr, ptr %14, align 8, !tbaa !9
  %478 = getelementptr inbounds %struct.FIELD_RECORD, ptr %477, i32 1
  store ptr %478, ptr %14, align 8, !tbaa !9
  br label %424, !llvm.loop !45

479:                                              ; preds = %424
  br label %480

480:                                              ; preds = %479, %419
  br label %549

481:                                              ; preds = %146
  %482 = load i32, ptr %16, align 4, !tbaa !5
  %483 = icmp ne i32 %482, 0
  br i1 %483, label %484, label %485

484:                                              ; preds = %481
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 1, ptr noundef @.str.22)
  br label %485

485:                                              ; preds = %484, %481
  %486 = load i32, ptr %22, align 4, !tbaa !5
  %487 = icmp ne i32 %486, 0
  br i1 %487, label %488, label %489

488:                                              ; preds = %485
  call void (ptr, ...) @lib_mesg(ptr noundef @.str.23)
  br label %489

489:                                              ; preds = %488, %485
  %490 = load i32, ptr %35, align 4, !tbaa !5
  %491 = icmp ne i32 %490, 0
  br i1 %491, label %492, label %493

492:                                              ; preds = %489
  call void (ptr, ...) @lib_mesg(ptr noundef @.str.24)
  br label %493

493:                                              ; preds = %492, %489
  %494 = load i32, ptr %21, align 4, !tbaa !5
  %495 = icmp ne i32 %494, 0
  br i1 %495, label %496, label %497

496:                                              ; preds = %493
  call void (ptr, ...) @lib_mesg(ptr noundef @.str.25)
  br label %497

497:                                              ; preds = %496, %493
  %498 = load ptr, ptr %49, align 8, !tbaa !9
  %499 = icmp ne ptr %498, null
  br i1 %499, label %500, label %512

500:                                              ; preds = %497
  %501 = load ptr, ptr %49, align 8, !tbaa !9
  %502 = call i32 @strcmp(ptr noundef %501, ptr noundef @.str.12) #10
  %503 = icmp ne i32 %502, 0
  br i1 %503, label %504, label %512

504:                                              ; preds = %500
  %505 = load ptr, ptr %11, align 8, !tbaa !9
  %506 = getelementptr inbounds %struct.DBF, ptr %505, i32 0, i32 0
  %507 = getelementptr inbounds [1024 x i8], ptr %506, i64 0, i64 0
  %508 = load ptr, ptr %49, align 8, !tbaa !9
  %509 = call ptr @strcpy(ptr noundef %507, ptr noundef %508) #8
  %510 = load ptr, ptr %11, align 8, !tbaa !9
  %511 = getelementptr inbounds %struct.DBF, ptr %510, i32 0, i32 2
  store ptr null, ptr %511, align 8, !tbaa !15
  br label %520

512:                                              ; preds = %500, %497
  %513 = load ptr, ptr %11, align 8, !tbaa !9
  %514 = getelementptr inbounds %struct.DBF, ptr %513, i32 0, i32 0
  %515 = getelementptr inbounds [1024 x i8], ptr %514, i64 0, i64 0
  %516 = call ptr @strcpy(ptr noundef %515, ptr noundef @.str.13) #8
  %517 = load ptr, ptr @stdin, align 8, !tbaa !9
  %518 = load ptr, ptr %11, align 8, !tbaa !9
  %519 = getelementptr inbounds %struct.DBF, ptr %518, i32 0, i32 2
  store ptr %517, ptr %519, align 8, !tbaa !15
  br label %520

520:                                              ; preds = %512, %504
  %521 = load ptr, ptr %11, align 8, !tbaa !9
  %522 = call i32 @dbf_open(ptr noundef %521)
  store i32 %522, ptr %6, align 4, !tbaa !5
  %523 = load i32, ptr %6, align 4, !tbaa !5
  switch i32 %523, label %530 [
    i32 8, label %524
    i32 2, label %526
    i32 11, label %528
  ]

524:                                              ; preds = %520
  %525 = load i32, ptr %6, align 4, !tbaa !5
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %525, ptr noundef @.str.15)
  br label %526

526:                                              ; preds = %524, %520
  %527 = load i32, ptr %6, align 4, !tbaa !5
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %527, ptr noundef @.str.17)
  br label %528

528:                                              ; preds = %526, %520
  %529 = load i32, ptr %6, align 4, !tbaa !5
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %529, ptr noundef @.str.26)
  br label %530

530:                                              ; preds = %528, %520
  %531 = load i32, ptr %33, align 4, !tbaa !5
  %532 = icmp ne i32 %531, 0
  br i1 %532, label %533, label %535

533:                                              ; preds = %530
  %534 = load ptr, ptr %11, align 8, !tbaa !9
  call void @dbf_from(ptr noundef %534, i32 noundef 0)
  call void @exit(i32 noundef 0) #11
  unreachable

535:                                              ; preds = %530
  %536 = load i32, ptr %34, align 4, !tbaa !5
  %537 = icmp ne i32 %536, 0
  br i1 %537, label %538, label %540

538:                                              ; preds = %535
  %539 = load ptr, ptr %11, align 8, !tbaa !9
  call void @dbf_from(ptr noundef %539, i32 noundef 1)
  call void @exit(i32 noundef 0) #11
  unreachable

540:                                              ; preds = %535
  %541 = load ptr, ptr %12, align 8, !tbaa !9
  %542 = load ptr, ptr %11, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %541, ptr align 8 %542, i64 2144, i1 false), !tbaa.struct !37
  %543 = load i32, ptr %42, align 4, !tbaa !5
  %544 = load ptr, ptr %11, align 8, !tbaa !9
  %545 = getelementptr inbounds %struct.DBF, ptr %544, i32 0, i32 13
  store i32 %543, ptr %545, align 8, !tbaa !33
  %546 = load i32, ptr %43, align 4, !tbaa !5
  %547 = load ptr, ptr %11, align 8, !tbaa !9
  %548 = getelementptr inbounds %struct.DBF, ptr %547, i32 0, i32 14
  store i32 %546, ptr %548, align 4, !tbaa !34
  br label %549

549:                                              ; preds = %540, %480
  %550 = load i32, ptr %44, align 4, !tbaa !5
  %551 = icmp ne i32 %550, 0
  br i1 %551, label %552, label %554

552:                                              ; preds = %549
  %553 = load ptr, ptr %11, align 8, !tbaa !9
  call void @dbf_info(ptr noundef %553)
  br label %554

554:                                              ; preds = %552, %549
  store i8 1, ptr %9, align 1, !tbaa !11
  %555 = load ptr, ptr %11, align 8, !tbaa !9
  %556 = getelementptr inbounds %struct.DBF, ptr %555, i32 0, i32 16
  %557 = load ptr, ptr %556, align 8, !tbaa !40
  store ptr %557, ptr %13, align 8, !tbaa !9
  br label %558

558:                                              ; preds = %578, %554
  %559 = load i8, ptr %9, align 1, !tbaa !11
  %560 = zext i8 %559 to i32
  %561 = load ptr, ptr %11, align 8, !tbaa !9
  %562 = getelementptr inbounds %struct.DBF, ptr %561, i32 0, i32 15
  %563 = load i8, ptr %562, align 8, !tbaa !41
  %564 = zext i8 %563 to i32
  %565 = icmp sle i32 %560, %564
  br i1 %565, label %566, label %583

566:                                              ; preds = %558
  %567 = load ptr, ptr %13, align 8, !tbaa !9
  %568 = getelementptr inbounds %struct.FIELD_RECORD, ptr %567, i32 0, i32 1
  %569 = load i8, ptr %568, align 1, !tbaa !43
  %570 = zext i8 %569 to i32
  switch i32 %570, label %576 [
    i32 68, label %571
    i32 78, label %571
    i32 70, label %571
    i32 76, label %571
    i32 67, label %571
    i32 77, label %572
  ]

571:                                              ; preds = %566, %566, %566, %566, %566
  br label %577

572:                                              ; preds = %566
  %573 = load ptr, ptr %13, align 8, !tbaa !9
  %574 = getelementptr inbounds %struct.FIELD_RECORD, ptr %573, i32 0, i32 0
  %575 = getelementptr inbounds [11 x i8], ptr %574, i64 0, i64 0
  call void (ptr, ...) @lib_mesg(ptr noundef @.str.27, ptr noundef %575)
  br label %577

576:                                              ; preds = %566
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 12, ptr noundef @.str.28)
  br label %577

577:                                              ; preds = %576, %572, %571
  br label %578

578:                                              ; preds = %577
  %579 = load i8, ptr %9, align 1, !tbaa !11
  %580 = add i8 %579, 1
  store i8 %580, ptr %9, align 1, !tbaa !11
  %581 = load ptr, ptr %13, align 8, !tbaa !9
  %582 = getelementptr inbounds %struct.FIELD_RECORD, ptr %581, i32 1
  store ptr %582, ptr %13, align 8, !tbaa !9
  br label %558, !llvm.loop !46

583:                                              ; preds = %558
  store i32 0, ptr %7, align 4, !tbaa !5
  %584 = load i32, ptr %32, align 4, !tbaa !5
  %585 = icmp ne i32 %584, 0
  br i1 %585, label %586, label %885

586:                                              ; preds = %583
  %587 = load i8, ptr %20, align 1, !tbaa !11
  %588 = load ptr, ptr %12, align 8, !tbaa !9
  %589 = getelementptr inbounds %struct.DBF, ptr %588, i32 0, i32 6
  store i8 %587, ptr %589, align 8, !tbaa !30
  %590 = load i32, ptr %31, align 4, !tbaa !5
  %591 = trunc i32 %590 to i8
  %592 = load ptr, ptr %12, align 8, !tbaa !9
  %593 = getelementptr inbounds %struct.DBF, ptr %592, i32 0, i32 7
  store i8 %591, ptr %593, align 1, !tbaa !31
  %594 = load i32, ptr %30, align 4, !tbaa !5
  %595 = trunc i32 %594 to i8
  %596 = load ptr, ptr %12, align 8, !tbaa !9
  %597 = getelementptr inbounds %struct.DBF, ptr %596, i32 0, i32 8
  store i8 %595, ptr %597, align 2, !tbaa !47
  %598 = load i32, ptr %25, align 4, !tbaa !5
  %599 = trunc i32 %598 to i8
  %600 = load ptr, ptr %12, align 8, !tbaa !9
  %601 = getelementptr inbounds %struct.DBF, ptr %600, i32 0, i32 9
  store i8 %599, ptr %601, align 1, !tbaa !48
  %602 = load i32, ptr %41, align 4, !tbaa !5
  %603 = trunc i32 %602 to i8
  %604 = load ptr, ptr %12, align 8, !tbaa !9
  %605 = getelementptr inbounds %struct.DBF, ptr %604, i32 0, i32 10
  store i8 %603, ptr %605, align 4, !tbaa !32
  %606 = load i32, ptr %26, align 4, !tbaa !5
  %607 = trunc i32 %606 to i8
  %608 = load ptr, ptr %12, align 8, !tbaa !9
  %609 = getelementptr inbounds %struct.DBF, ptr %608, i32 0, i32 11
  store i8 %607, ptr %609, align 1, !tbaa !49
  %610 = load i32, ptr %42, align 4, !tbaa !5
  %611 = load ptr, ptr %12, align 8, !tbaa !9
  %612 = getelementptr inbounds %struct.DBF, ptr %611, i32 0, i32 13
  store i32 %610, ptr %612, align 8, !tbaa !33
  %613 = load i32, ptr %43, align 4, !tbaa !5
  %614 = load ptr, ptr %12, align 8, !tbaa !9
  %615 = getelementptr inbounds %struct.DBF, ptr %614, i32 0, i32 14
  store i32 %613, ptr %615, align 4, !tbaa !34
  %616 = load i32, ptr %36, align 4, !tbaa !5
  %617 = icmp ne i32 %616, 0
  br i1 %617, label %618, label %643

618:                                              ; preds = %586
  %619 = load i32, ptr %21, align 4, !tbaa !5
  %620 = trunc i32 %619 to i8
  %621 = load ptr, ptr %11, align 8, !tbaa !9
  %622 = getelementptr inbounds %struct.DBF, ptr %621, i32 0, i32 12
  store i8 %620, ptr %622, align 2, !tbaa !50
  %623 = load ptr, ptr %11, align 8, !tbaa !9
  %624 = getelementptr inbounds %struct.DBF, ptr %623, i32 0, i32 4
  store i32 1, ptr %624, align 8, !tbaa !51
  br label %625

625:                                              ; preds = %637, %618
  %626 = load ptr, ptr %12, align 8, !tbaa !9
  %627 = call i32 @rdb_read(ptr noundef %626)
  %628 = icmp ne i32 %627, -1
  br i1 %628, label %629, label %642

629:                                              ; preds = %625
  %630 = load ptr, ptr %11, align 8, !tbaa !9
  %631 = load ptr, ptr %12, align 8, !tbaa !9
  %632 = call i32 @rdb_2dbf(ptr noundef %630, ptr noundef %631)
  %633 = load ptr, ptr %11, align 8, !tbaa !9
  %634 = call i32 @dbf_writ(ptr noundef %633)
  %635 = load i32, ptr %7, align 4, !tbaa !5
  %636 = add nsw i32 %635, 1
  store i32 %636, ptr %7, align 4, !tbaa !5
  br label %637

637:                                              ; preds = %629
  %638 = load ptr, ptr %11, align 8, !tbaa !9
  %639 = getelementptr inbounds %struct.DBF, ptr %638, i32 0, i32 4
  %640 = load i32, ptr %639, align 8, !tbaa !51
  %641 = add i32 %640, 1
  store i32 %641, ptr %639, align 8, !tbaa !51
  br label %625, !llvm.loop !52

642:                                              ; preds = %625
  br label %884

643:                                              ; preds = %586
  %644 = load i32, ptr %37, align 4, !tbaa !5
  %645 = icmp ne i32 %644, 0
  br i1 %645, label %655, label %646

646:                                              ; preds = %643
  %647 = load i32, ptr %38, align 4, !tbaa !5
  %648 = icmp ne i32 %647, 0
  br i1 %648, label %655, label %649

649:                                              ; preds = %646
  %650 = load i32, ptr %39, align 4, !tbaa !5
  %651 = icmp ne i32 %650, 0
  br i1 %651, label %655, label %652

652:                                              ; preds = %649
  %653 = load i32, ptr %40, align 4, !tbaa !5
  %654 = icmp ne i32 %653, 0
  br i1 %654, label %655, label %751

655:                                              ; preds = %652, %649, %646, %643
  %656 = load ptr, ptr @stdout, align 8, !tbaa !9
  %657 = load ptr, ptr %12, align 8, !tbaa !9
  %658 = getelementptr inbounds %struct.DBF, ptr %657, i32 0, i32 3
  store ptr %656, ptr %658, align 8, !tbaa !53
  %659 = load ptr, ptr %12, align 8, !tbaa !9
  %660 = getelementptr inbounds %struct.DBF, ptr %659, i32 0, i32 1
  %661 = getelementptr inbounds [1024 x i8], ptr %660, i64 0, i64 0
  %662 = load ptr, ptr %19, align 8, !tbaa !9
  %663 = icmp eq ptr %662, null
  br i1 %663, label %664, label %665

664:                                              ; preds = %655
  br label %667

665:                                              ; preds = %655
  %666 = load ptr, ptr %19, align 8, !tbaa !9
  br label %667

667:                                              ; preds = %665, %664
  %668 = phi ptr [ @.str.13, %664 ], [ %666, %665 ]
  %669 = call ptr @strcpy(ptr noundef %661, ptr noundef %668) #8
  %670 = load i32, ptr %37, align 4, !tbaa !5
  %671 = icmp ne i32 %670, 0
  br i1 %671, label %672, label %675

672:                                              ; preds = %667
  %673 = load ptr, ptr %12, align 8, !tbaa !9
  %674 = call i32 @sql_crea(ptr noundef %673)
  br label %675

675:                                              ; preds = %672, %667
  %676 = load i32, ptr %38, align 4, !tbaa !5
  %677 = icmp ne i32 %676, 0
  br i1 %677, label %678, label %681

678:                                              ; preds = %675
  %679 = load ptr, ptr %12, align 8, !tbaa !9
  %680 = call i32 @sql_crep(ptr noundef %679)
  br label %681

681:                                              ; preds = %678, %675
  %682 = load i32, ptr %39, align 4, !tbaa !5
  %683 = icmp ne i32 %682, 0
  br i1 %683, label %684, label %687

684:                                              ; preds = %681
  %685 = load ptr, ptr %12, align 8, !tbaa !9
  %686 = call i32 @sql_crep(ptr noundef %685)
  br label %687

687:                                              ; preds = %684, %681
  %688 = load i32, ptr %40, align 4, !tbaa !5
  %689 = icmp ne i32 %688, 0
  br i1 %689, label %690, label %693

690:                                              ; preds = %687
  %691 = load ptr, ptr %12, align 8, !tbaa !9
  %692 = call i32 @yml_crea(ptr noundef %691)
  br label %693

693:                                              ; preds = %690, %687
  store i32 1, ptr %8, align 4, !tbaa !5
  br label %694

694:                                              ; preds = %747, %693
  %695 = load i32, ptr %8, align 4, !tbaa !5
  %696 = load ptr, ptr %11, align 8, !tbaa !9
  %697 = getelementptr inbounds %struct.DBF, ptr %696, i32 0, i32 18
  %698 = getelementptr inbounds %struct.DBFPROLOG, ptr %697, i32 0, i32 4
  %699 = load i32, ptr %698, align 4, !tbaa !35
  %700 = icmp ule i32 %695, %699
  br i1 %700, label %701, label %750

701:                                              ; preds = %694
  %702 = load ptr, ptr %11, align 8, !tbaa !9
  %703 = call i32 @dbf_read(ptr noundef %702)
  %704 = icmp ne i32 %703, 0
  br i1 %704, label %705, label %706

705:                                              ; preds = %701
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 105, ptr noundef @.str.29)
  br label %706

706:                                              ; preds = %705, %701
  %707 = load ptr, ptr %11, align 8, !tbaa !9
  %708 = getelementptr inbounds %struct.DBF, ptr %707, i32 0, i32 17
  %709 = load ptr, ptr %708, align 8, !tbaa !54
  %710 = load i8, ptr %709, align 1, !tbaa !11
  %711 = sext i8 %710 to i32
  %712 = icmp eq i32 %711, 42
  br i1 %712, label %713, label %717

713:                                              ; preds = %706
  %714 = load i32, ptr %27, align 4, !tbaa !5
  %715 = icmp ne i32 %714, 0
  br i1 %715, label %717, label %716

716:                                              ; preds = %713
  br label %747

717:                                              ; preds = %713, %706
  %718 = load ptr, ptr %12, align 8, !tbaa !9
  %719 = load ptr, ptr %11, align 8, !tbaa !9
  %720 = call i32 @dbf_2rdb(ptr noundef %718, ptr noundef %719)
  %721 = load i32, ptr %37, align 4, !tbaa !5
  %722 = icmp ne i32 %721, 0
  br i1 %722, label %723, label %726

723:                                              ; preds = %717
  %724 = load ptr, ptr %12, align 8, !tbaa !9
  %725 = call i32 @sql_writ(ptr noundef %724)
  br label %726

726:                                              ; preds = %723, %717
  %727 = load i32, ptr %38, align 4, !tbaa !5
  %728 = icmp ne i32 %727, 0
  br i1 %728, label %729, label %732

729:                                              ; preds = %726
  %730 = load ptr, ptr %12, align 8, !tbaa !9
  %731 = call i32 @sql_wrio(ptr noundef %730)
  br label %732

732:                                              ; preds = %729, %726
  %733 = load i32, ptr %39, align 4, !tbaa !5
  %734 = icmp ne i32 %733, 0
  br i1 %734, label %735, label %738

735:                                              ; preds = %732
  %736 = load ptr, ptr %12, align 8, !tbaa !9
  %737 = call i32 @sql_wrip(ptr noundef %736)
  br label %738

738:                                              ; preds = %735, %732
  %739 = load i32, ptr %40, align 4, !tbaa !5
  %740 = icmp ne i32 %739, 0
  br i1 %740, label %741, label %744

741:                                              ; preds = %738
  %742 = load ptr, ptr %12, align 8, !tbaa !9
  %743 = call i32 @yml_writ(ptr noundef %742)
  br label %744

744:                                              ; preds = %741, %738
  %745 = load i32, ptr %7, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr %7, align 4, !tbaa !5
  br label %747

747:                                              ; preds = %744, %716
  %748 = load i32, ptr %8, align 4, !tbaa !5
  %749 = add nsw i32 %748, 1
  store i32 %749, ptr %8, align 4, !tbaa !5
  br label %694, !llvm.loop !55

750:                                              ; preds = %694
  br label %883

751:                                              ; preds = %652
  %752 = load i32, ptr %24, align 4, !tbaa !5
  %753 = icmp ne i32 %752, 0
  br i1 %753, label %754, label %832

754:                                              ; preds = %751
  %755 = load ptr, ptr %11, align 8, !tbaa !9
  %756 = getelementptr inbounds %struct.DBF, ptr %755, i32 0, i32 14
  %757 = load i32, ptr %756, align 4, !tbaa !34
  %758 = icmp eq i32 %757, 3
  br i1 %758, label %759, label %769

759:                                              ; preds = %754
  %760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %761 = load ptr, ptr %19, align 8, !tbaa !9
  %762 = icmp eq ptr %761, null
  br i1 %762, label %763, label %764

763:                                              ; preds = %759
  br label %766

764:                                              ; preds = %759
  %765 = load ptr, ptr %19, align 8, !tbaa !9
  br label %766

766:                                              ; preds = %764, %763
  %767 = phi ptr [ @.str.31, %763 ], [ %765, %764 ]
  %768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %760, ptr noundef @.str.30, ptr noundef %767) #8
  br label %769

769:                                              ; preds = %766, %754
  %770 = load ptr, ptr @stdout, align 8, !tbaa !9
  %771 = load ptr, ptr %12, align 8, !tbaa !9
  %772 = getelementptr inbounds %struct.DBF, ptr %771, i32 0, i32 2
  store ptr %770, ptr %772, align 8, !tbaa !15
  %773 = load ptr, ptr %12, align 8, !tbaa !9
  %774 = call i32 @dbf_crea(ptr noundef %773)
  store i32 %774, ptr %15, align 4, !tbaa !5
  %775 = icmp ne i32 %774, 0
  br i1 %775, label %776, label %778

776:                                              ; preds = %769
  %777 = load i32, ptr %15, align 4, !tbaa !5
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 4, ptr noundef @.str.32, i32 noundef %777)
  br label %778

778:                                              ; preds = %776, %769
  %779 = load ptr, ptr %11, align 8, !tbaa !9
  %780 = getelementptr inbounds %struct.DBF, ptr %779, i32 0, i32 17
  %781 = load ptr, ptr %780, align 8, !tbaa !54
  %782 = load ptr, ptr %12, align 8, !tbaa !9
  %783 = getelementptr inbounds %struct.DBF, ptr %782, i32 0, i32 17
  store ptr %781, ptr %783, align 8, !tbaa !54
  store i32 1, ptr %8, align 4, !tbaa !5
  br label %784

784:                                              ; preds = %818, %778
  %785 = load i32, ptr %8, align 4, !tbaa !5
  %786 = load ptr, ptr %11, align 8, !tbaa !9
  %787 = getelementptr inbounds %struct.DBF, ptr %786, i32 0, i32 18
  %788 = getelementptr inbounds %struct.DBFPROLOG, ptr %787, i32 0, i32 4
  %789 = load i32, ptr %788, align 4, !tbaa !35
  %790 = icmp ule i32 %785, %789
  br i1 %790, label %791, label %821

791:                                              ; preds = %784
  %792 = load ptr, ptr %11, align 8, !tbaa !9
  %793 = call i32 @dbf_read(ptr noundef %792)
  %794 = icmp ne i32 %793, 0
  br i1 %794, label %795, label %796

795:                                              ; preds = %791
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 105, ptr noundef @.str.29)
  br label %796

796:                                              ; preds = %795, %791
  %797 = load ptr, ptr %11, align 8, !tbaa !9
  %798 = getelementptr inbounds %struct.DBF, ptr %797, i32 0, i32 17
  %799 = load ptr, ptr %798, align 8, !tbaa !54
  %800 = load i8, ptr %799, align 1, !tbaa !11
  %801 = sext i8 %800 to i32
  %802 = icmp eq i32 %801, 42
  br i1 %802, label %803, label %807

803:                                              ; preds = %796
  %804 = load i32, ptr %27, align 4, !tbaa !5
  %805 = icmp ne i32 %804, 0
  br i1 %805, label %807, label %806

806:                                              ; preds = %803
  br label %818

807:                                              ; preds = %803, %796
  %808 = load ptr, ptr %11, align 8, !tbaa !9
  %809 = call i32 @dbf_afix(ptr noundef %808)
  store i32 %809, ptr %15, align 4, !tbaa !5
  %810 = load ptr, ptr %12, align 8, !tbaa !9
  %811 = call i32 @dbf_writ(ptr noundef %810)
  %812 = load i32, ptr %15, align 4, !tbaa !5
  %813 = icmp ne i32 %812, 0
  br i1 %813, label %814, label %817

814:                                              ; preds = %807
  %815 = load i32, ptr %7, align 4, !tbaa !5
  %816 = add nsw i32 %815, 1
  store i32 %816, ptr %7, align 4, !tbaa !5
  br label %817

817:                                              ; preds = %814, %807
  br label %818

818:                                              ; preds = %817, %806
  %819 = load i32, ptr %8, align 4, !tbaa !5
  %820 = add nsw i32 %819, 1
  store i32 %820, ptr %8, align 4, !tbaa !5
  br label %784, !llvm.loop !56

821:                                              ; preds = %784
  %822 = load ptr, ptr %12, align 8, !tbaa !9
  %823 = call i32 @dbf_clos(ptr noundef %822)
  %824 = load ptr, ptr %11, align 8, !tbaa !9
  %825 = getelementptr inbounds %struct.DBF, ptr %824, i32 0, i32 14
  %826 = load i32, ptr %825, align 4, !tbaa !34
  %827 = icmp eq i32 %826, 3
  br i1 %827, label %828, label %831

828:                                              ; preds = %821
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %829, ptr noundef @.str.33) #8
  br label %831

831:                                              ; preds = %828, %821
  br label %882

832:                                              ; preds = %751
  %833 = load ptr, ptr @stdout, align 8, !tbaa !9
  %834 = load ptr, ptr %12, align 8, !tbaa !9
  %835 = getelementptr inbounds %struct.DBF, ptr %834, i32 0, i32 3
  store ptr %833, ptr %835, align 8, !tbaa !53
  %836 = load ptr, ptr %12, align 8, !tbaa !9
  %837 = load i32, ptr %28, align 4, !tbaa !5
  %838 = call i32 @rdb_crea(ptr noundef %836, i32 noundef %837)
  store i32 1, ptr %8, align 4, !tbaa !5
  br label %839

839:                                              ; preds = %878, %832
  %840 = load i32, ptr %8, align 4, !tbaa !5
  %841 = load ptr, ptr %11, align 8, !tbaa !9
  %842 = getelementptr inbounds %struct.DBF, ptr %841, i32 0, i32 18
  %843 = getelementptr inbounds %struct.DBFPROLOG, ptr %842, i32 0, i32 4
  %844 = load i32, ptr %843, align 4, !tbaa !35
  %845 = icmp ule i32 %840, %844
  br i1 %845, label %846, label %881

846:                                              ; preds = %839
  %847 = load ptr, ptr %11, align 8, !tbaa !9
  %848 = call i32 @dbf_read(ptr noundef %847)
  %849 = icmp ne i32 %848, 0
  br i1 %849, label %850, label %851

850:                                              ; preds = %846
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 105, ptr noundef @.str.29)
  br label %851

851:                                              ; preds = %850, %846
  %852 = load ptr, ptr %11, align 8, !tbaa !9
  %853 = getelementptr inbounds %struct.DBF, ptr %852, i32 0, i32 17
  %854 = load ptr, ptr %853, align 8, !tbaa !54
  %855 = load i8, ptr %854, align 1, !tbaa !11
  %856 = sext i8 %855 to i32
  %857 = icmp eq i32 %856, 42
  br i1 %857, label %858, label %862

858:                                              ; preds = %851
  %859 = load i32, ptr %27, align 4, !tbaa !5
  %860 = icmp ne i32 %859, 0
  br i1 %860, label %862, label %861

861:                                              ; preds = %858
  br label %878

862:                                              ; preds = %858, %851
  %863 = load ptr, ptr %12, align 8, !tbaa !9
  %864 = load ptr, ptr %11, align 8, !tbaa !9
  %865 = call i32 @dbf_2rdb(ptr noundef %863, ptr noundef %864)
  store i32 %865, ptr %15, align 4, !tbaa !5
  %866 = load i32, ptr %23, align 4, !tbaa !5
  %867 = icmp ne i32 %866, 0
  br i1 %867, label %868, label %871

868:                                              ; preds = %862
  %869 = load i32, ptr %15, align 4, !tbaa !5
  %870 = icmp ne i32 %869, 0
  br i1 %870, label %871, label %877

871:                                              ; preds = %868, %862
  %872 = load ptr, ptr %12, align 8, !tbaa !9
  %873 = load i32, ptr %28, align 4, !tbaa !5
  %874 = call i32 @rdb_writ(ptr noundef %872, i32 noundef %873)
  %875 = load i32, ptr %7, align 4, !tbaa !5
  %876 = add nsw i32 %875, 1
  store i32 %876, ptr %7, align 4, !tbaa !5
  br label %877

877:                                              ; preds = %871, %868
  br label %878

878:                                              ; preds = %877, %861
  %879 = load i32, ptr %8, align 4, !tbaa !5
  %880 = add nsw i32 %879, 1
  store i32 %880, ptr %8, align 4, !tbaa !5
  br label %839, !llvm.loop !57

881:                                              ; preds = %839
  br label %882

882:                                              ; preds = %881, %831
  br label %883

883:                                              ; preds = %882, %750
  br label %884

884:                                              ; preds = %883, %642
  br label %885

885:                                              ; preds = %884, %583
  %886 = load ptr, ptr %12, align 8, !tbaa !9
  %887 = call i32 @rdb_clos(ptr noundef %886)
  %888 = load i32, ptr %36, align 4, !tbaa !5
  %889 = icmp ne i32 %888, 0
  br i1 %889, label %890, label %893

890:                                              ; preds = %885
  %891 = load ptr, ptr %11, align 8, !tbaa !9
  %892 = call i32 @dbf_clos(ptr noundef %891)
  br label %893

893:                                              ; preds = %890, %885
  %894 = load i32, ptr %23, align 4, !tbaa !5
  %895 = icmp ne i32 %894, 0
  br i1 %895, label %899, label %896

896:                                              ; preds = %893
  %897 = load i32, ptr %24, align 4, !tbaa !5
  %898 = icmp ne i32 %897, 0
  br label %899

899:                                              ; preds = %896, %893
  %900 = phi i1 [ true, %893 ], [ %898, %896 ]
  %901 = xor i1 %900, true
  %902 = zext i1 %901 to i32
  %903 = load i32, ptr %7, align 4, !tbaa !5
  %904 = icmp ne i32 %903, 0
  %905 = zext i1 %904 to i32
  %906 = xor i32 %902, %905
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  ret i32 %906
}

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

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

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

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

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

declare void @usage() #3

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #4

declare void @lib_mesg(ptr noundef, ...) #3

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

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

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

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

declare ptr @lib_stat(ptr noundef) #3

declare i32 @rdb_open(ptr noundef) #3

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

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

declare i32 @dbf_open(ptr noundef) #3

declare i32 @fclose(ptr noundef) #3

declare i32 @fseek(ptr noundef, i64 noundef, i32 noundef) #3

declare i32 @dbf_crea(ptr noundef) #3

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

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

declare void @dbf_info(ptr noundef) #3

declare i32 @rdb_read(ptr noundef) #3

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

declare i32 @dbf_writ(ptr noundef) #3

declare i32 @sql_crea(ptr noundef) #3

declare i32 @sql_crep(ptr noundef) #3

declare i32 @yml_crea(ptr noundef) #3

declare i32 @dbf_read(ptr noundef) #3

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

declare i32 @sql_writ(ptr noundef) #3

declare i32 @sql_wrio(ptr noundef) #3

declare i32 @sql_wrip(ptr noundef) #3

declare i32 @yml_writ(ptr noundef) #3

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

declare i32 @dbf_afix(ptr noundef) #3

declare i32 @dbf_clos(ptr noundef) #3

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

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

declare i32 @rdb_clos(ptr noundef) #3

; 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 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind allocsize(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 #5 = { 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 #6 = { 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 #7 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { nounwind }
attributes #9 = { nounwind allocsize(0) }
attributes #10 = { nounwind willreturn memory(read) }
attributes #11 = { 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 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = !{!16, !10, i64 2048}
!16 = !{!"DBF", !7, i64 0, !7, i64 1024, !10, i64 2048, !10, i64 2056, !6, i64 2064, !6, i64 2068, !7, i64 2072, !7, i64 2073, !7, i64 2074, !7, i64 2075, !7, i64 2076, !7, i64 2077, !7, i64 2078, !6, i64 2080, !6, i64 2084, !7, i64 2088, !10, i64 2096, !10, i64 2104, !17, i64 2112}
!17 = !{!"DBFPROLOG", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3, !6, i64 4, !18, i64 8, !18, i64 10, !18, i64 12, !7, i64 14, !7, i64 15, !7, i64 16, !7, i64 28, !7, i64 29}
!18 = !{!"short", !7, i64 0}
!19 = !{!16, !7, i64 2113}
!20 = !{!16, !7, i64 2114}
!21 = !{!16, !7, i64 2115}
!22 = !{!23, !10, i64 48}
!23 = !{!"file", !10, i64 0, !18, i64 8, !6, i64 12, !10, i64 16, !6, i64 24, !10, i64 32, !24, i64 40, !10, i64 48}
!24 = !{!"long", !7, i64 0}
!25 = !{!26, !6, i64 20}
!26 = !{!"tm", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !24, i64 40, !10, i64 48}
!27 = !{!26, !6, i64 16}
!28 = !{!26, !6, i64 12}
!29 = !{!16, !6, i64 2068}
!30 = !{!16, !7, i64 2072}
!31 = !{!16, !7, i64 2073}
!32 = !{!16, !7, i64 2076}
!33 = !{!16, !6, i64 2080}
!34 = !{!16, !6, i64 2084}
!35 = !{!16, !6, i64 2116}
!36 = !{!16, !18, i64 2122}
!37 = !{i64 0, i64 1024, !11, i64 1024, i64 1024, !11, i64 2048, i64 8, !9, i64 2056, i64 8, !9, i64 2064, i64 4, !5, i64 2068, i64 4, !5, i64 2072, i64 1, !11, i64 2073, i64 1, !11, i64 2074, i64 1, !11, i64 2075, i64 1, !11, i64 2076, i64 1, !11, i64 2077, i64 1, !11, i64 2078, i64 1, !11, i64 2080, i64 4, !5, i64 2084, i64 4, !5, i64 2088, i64 1, !11, i64 2096, i64 8, !9, i64 2104, i64 8, !9, i64 2112, i64 1, !11, i64 2113, i64 1, !11, i64 2114, i64 1, !11, i64 2115, i64 1, !11, i64 2116, i64 4, !5, i64 2120, i64 2, !38, i64 2122, i64 2, !38, i64 2124, i64 2, !38, i64 2126, i64 1, !11, i64 2127, i64 1, !11, i64 2128, i64 12, !11, i64 2140, i64 1, !11, i64 2141, i64 3, !11}
!38 = !{!18, !18, i64 0}
!39 = !{!16, !18, i64 2120}
!40 = !{!16, !10, i64 2096}
!41 = !{!16, !7, i64 2088}
!42 = distinct !{!42, !13}
!43 = !{!44, !7, i64 11}
!44 = !{!"FIELD_RECORD", !7, i64 0, !7, i64 11, !6, i64 12, !7, i64 16, !7, i64 17, !7, i64 18}
!45 = distinct !{!45, !13}
!46 = distinct !{!46, !13}
!47 = !{!16, !7, i64 2074}
!48 = !{!16, !7, i64 2075}
!49 = !{!16, !7, i64 2077}
!50 = !{!16, !7, i64 2078}
!51 = !{!16, !6, i64 2064}
!52 = distinct !{!52, !13}
!53 = !{!16, !10, i64 2056}
!54 = !{!16, !10, i64 2104}
!55 = distinct !{!55, !13}
!56 = distinct !{!56, !13}
!57 = distinct !{!57, !13}


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

@opts = external dso_local global [42 x i8], align 16
@optarg = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [39 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [10 x i8], align 1
@optind = external local_unnamed_addr global i32, align 4
@.str.2 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [1 x i8], align 1
@stdin = external local_unnamed_addr global ptr, align 8
@.str.14 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [42 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.21 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [19 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.30 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [12 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local range(i32 0, 2) i32 @main(i32 noundef %0, ptr noundef %1) local_unnamed_addr #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #10
  store i32 9, ptr %3, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #10
  store i32 2, ptr %4, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #10
  store i32 9, ptr %5, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #10
  store i32 2, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #10
  store i32 0, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #10
  store i32 0, ptr %8, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #10
  store i32 0, ptr %9, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #10
  br label %11

11:                                               ; preds = %.backedge, %2
  %.0321 = phi i32 [ 0, %2 ], [ %.0321.be, %.backedge ]
  %.0318 = phi i32 [ 0, %2 ], [ %.0318.be, %.backedge ]
  %.0316 = phi ptr [ null, %2 ], [ %.0316.be, %.backedge ]
  %.0314 = phi ptr [ null, %2 ], [ %.0314.be, %.backedge ]
  %.0312 = phi i8 [ 9, %2 ], [ %.0312.be, %.backedge ]
  %.0310 = phi i32 [ 0, %2 ], [ %.0310.be, %.backedge ]
  %.0308 = phi i32 [ 0, %2 ], [ %.0308.be, %.backedge ]
  %.0306 = phi i32 [ 0, %2 ], [ %.0306.be, %.backedge ]
  %.0304 = phi i32 [ 0, %2 ], [ %.0304.be, %.backedge ]
  %.0302 = phi i32 [ 0, %2 ], [ %.0302.be, %.backedge ]
  %.0300 = phi i32 [ 0, %2 ], [ %.0300.be, %.backedge ]
  %.0298 = phi i32 [ 0, %2 ], [ %.0298.be, %.backedge ]
  %.0296 = phi i32 [ 0, %2 ], [ %.0296.be, %.backedge ]
  %.0292 = phi i8 [ 0, %2 ], [ %.0292.be, %.backedge ]
  %.0290 = phi i32 [ 1, %2 ], [ %.0290.be, %.backedge ]
  %.0288 = phi i32 [ 1, %2 ], [ %.0288.be, %.backedge ]
  %.0286 = phi i32 [ 0, %2 ], [ %.0286.be, %.backedge ]
  %.0284 = phi i32 [ 0, %2 ], [ %.0284.be, %.backedge ]
  %.0282 = phi i32 [ 0, %2 ], [ %.0282.be, %.backedge ]
  %.0280 = phi i32 [ 0, %2 ], [ %.0280.be, %.backedge ]
  %.0278 = phi i32 [ 0, %2 ], [ %.0278.be, %.backedge ]
  %.0276 = phi i32 [ 0, %2 ], [ %.0276.be, %.backedge ]
  %.0274 = phi i32 [ 0, %2 ], [ %.0274.be, %.backedge ]
  %.0272 = phi i32 [ 0, %2 ], [ %.0272.be, %.backedge ]
  %.0270 = phi i32 [ 1, %2 ], [ %.0270.be, %.backedge ]
  %.0268 = phi i32 [ 0, %2 ], [ %.0268.be, %.backedge ]
  %.0266 = phi i32 [ 0, %2 ], [ %.0266.be, %.backedge ]
  %.0265 = phi i32 [ 0, %2 ], [ %.0265.be, %.backedge ]
  %12 = call i32 @getopt(i32 noundef %0, ptr noundef %1, ptr noundef nonnull @opts) #10
  switch i32 %12, label %61 [
    i32 -1, label %.preheader
    i32 43, label %.backedge
    i32 78, label %15
    i32 70, label %17
    i32 120, label %19
    i32 97, label %20
    i32 65, label %24
    i32 66, label %25
    i32 48, label %26
    i32 117, label %27
    i32 108, label %28
    i32 99, label %29
    i32 98, label %30
    i32 100, label %31
    i32 101, label %32
    i32 102, label %33
    i32 109, label %36
    i32 103, label %38
    i32 104, label %39
    i32 105, label %40
    i32 106, label %41
    i32 107, label %42
    i32 75, label %43
    i32 111, label %44
    i32 112, label %45
    i32 121, label %46
    i32 113, label %47
    i32 122, label %48
    i32 114, label %49
    i32 115, label %50
    i32 116, label %59
    i32 118, label %60
  ]

.backedge:                                        ; preds = %11, %54, %57, %61, %60, %59, %49, %48, %47, %46, %45, %44, %43, %42, %41, %40, %39, %38, %36, %33, %32, %31, %30, %29, %28, %27, %26, %25, %24, %22, %17, %15
  %.0321.be = phi i32 [ %.0321, %61 ], [ %.0321, %60 ], [ %.0321, %59 ], [ %.0321, %57 ], [ %.0321, %54 ], [ %.0321, %49 ], [ %.0321, %48 ], [ %.0321, %47 ], [ %.0321, %46 ], [ %.0321, %45 ], [ %.0321, %44 ], [ %.0321, %43 ], [ %.0321, %42 ], [ %.0321, %41 ], [ %.0321, %40 ], [ %.0321, %39 ], [ %.0321, %38 ], [ %.0321, %36 ], [ %.0321, %33 ], [ %.0321, %32 ], [ %.0321, %31 ], [ %.0321, %30 ], [ %.0321, %29 ], [ %.0321, %28 ], [ %.0321, %27 ], [ %.0321, %26 ], [ %.0321, %25 ], [ %.0321, %24 ], [ 1, %22 ], [ %.0321, %17 ], [ %.0321, %15 ], [ %.0321, %11 ]
  %.0318.be = phi i32 [ %.0318, %61 ], [ %.0318, %60 ], [ %.0318, %59 ], [ %.0318, %57 ], [ %.0318, %54 ], [ %.0318, %49 ], [ %.0318, %48 ], [ %.0318, %47 ], [ %.0318, %46 ], [ %.0318, %45 ], [ %.0318, %44 ], [ %.0318, %43 ], [ %.0318, %42 ], [ %.0318, %41 ], [ %.0318, %40 ], [ %.0318, %39 ], [ %.0318, %38 ], [ %.0318, %36 ], [ %.0318, %33 ], [ %.0318, %32 ], [ %.0318, %31 ], [ %.0318, %30 ], [ %.0318, %29 ], [ %.0318, %28 ], [ %.0318, %27 ], [ %.0318, %26 ], [ %.0318, %25 ], [ %.0318, %24 ], [ %.1319, %22 ], [ %.0318, %17 ], [ %.0318, %15 ], [ %.0318, %11 ]
  %.0316.be = phi ptr [ %.0316, %61 ], [ %.0316, %60 ], [ %.0316, %59 ], [ %.0316, %57 ], [ %.0316, %54 ], [ %.0316, %49 ], [ %.0316, %48 ], [ %.0316, %47 ], [ %.0316, %46 ], [ %.0316, %45 ], [ %.0316, %44 ], [ %.0316, %43 ], [ %.0316, %42 ], [ %.0316, %41 ], [ %.0316, %40 ], [ %.0316, %39 ], [ %.0316, %38 ], [ %.0316, %36 ], [ %.0316, %33 ], [ %.0316, %32 ], [ %.0316, %31 ], [ %.0316, %30 ], [ %.0316, %29 ], [ %.0316, %28 ], [ %.0316, %27 ], [ %.0316, %26 ], [ %.0316, %25 ], [ %.0316, %24 ], [ %23, %22 ], [ %.0316, %17 ], [ %.0316, %15 ], [ %.0316, %11 ]
  %.0314.be = phi ptr [ %.0314, %61 ], [ %.0314, %60 ], [ %.0314, %59 ], [ %.0314, %57 ], [ %.0314, %54 ], [ %.0314, %49 ], [ %.0314, %48 ], [ %.0314, %47 ], [ %.0314, %46 ], [ %.0314, %45 ], [ %.0314, %44 ], [ %.0314, %43 ], [ %.0314, %42 ], [ %.0314, %41 ], [ %.0314, %40 ], [ %.0314, %39 ], [ %.0314, %38 ], [ %37, %36 ], [ %.0314, %33 ], [ %.0314, %32 ], [ %.0314, %31 ], [ %.0314, %30 ], [ %.0314, %29 ], [ %.0314, %28 ], [ %.0314, %27 ], [ %.0314, %26 ], [ %.0314, %25 ], [ %.0314, %24 ], [ %.0314, %22 ], [ %.0314, %17 ], [ %.0314, %15 ], [ %.0314, %11 ]
  %.0312.be = phi i8 [ %.0312, %61 ], [ %.0312, %60 ], [ %.0312, %59 ], [ %.0312, %57 ], [ %.0312, %54 ], [ %.0312, %49 ], [ %.0312, %48 ], [ %.0312, %47 ], [ %.0312, %46 ], [ %.0312, %45 ], [ %.0312, %44 ], [ %.0312, %43 ], [ %.0312, %42 ], [ %.0312, %41 ], [ %.0312, %40 ], [ %.0312, %39 ], [ %.0312, %38 ], [ %.0312, %36 ], [ %35, %33 ], [ %.0312, %32 ], [ %.0312, %31 ], [ %.0312, %30 ], [ %.0312, %29 ], [ %.0312, %28 ], [ %.0312, %27 ], [ %.0312, %26 ], [ %.0312, %25 ], [ %.0312, %24 ], [ %.0312, %22 ], [ %.0312, %17 ], [ %.0312, %15 ], [ %.0312, %11 ]
  %.0310.be = phi i32 [ %.0310, %61 ], [ %.0310, %60 ], [ %.0310, %59 ], [ %.0310, %57 ], [ %.0310, %54 ], [ %.0310, %49 ], [ %.0310, %48 ], [ %.0310, %47 ], [ %.0310, %46 ], [ %.0310, %45 ], [ %.0310, %44 ], [ %.0310, %43 ], [ %.0310, %42 ], [ %.0310, %41 ], [ %.0310, %40 ], [ %.0310, %39 ], [ %.0310, %38 ], [ %.0310, %36 ], [ %.0310, %33 ], [ %.0310, %32 ], [ %.0310, %31 ], [ %.0310, %30 ], [ %.0310, %29 ], [ %.0310, %28 ], [ %.0310, %27 ], [ 1, %26 ], [ %.0310, %25 ], [ %.0310, %24 ], [ %.0310, %22 ], [ %.0310, %17 ], [ %.0310, %15 ], [ %.0310, %11 ]
  %.0308.be = phi i32 [ %.0308, %61 ], [ %.0308, %60 ], [ %.0308, %59 ], [ %.0308, %57 ], [ %.0308, %54 ], [ %.0308, %49 ], [ %.0308, %48 ], [ %.0308, %47 ], [ %.0308, %46 ], [ %.0308, %45 ], [ %.0308, %44 ], [ %.0308, %43 ], [ %.0308, %42 ], [ %.0308, %41 ], [ %.0308, %40 ], [ %.0308, %39 ], [ %.0308, %38 ], [ %.0308, %36 ], [ %.0308, %33 ], [ %.0308, %32 ], [ %.0308, %31 ], [ %.0308, %30 ], [ %.0308, %29 ], [ %.0308, %28 ], [ %.0308, %27 ], [ %.0308, %26 ], [ %.0308, %25 ], [ %.0308, %24 ], [ %.0308, %22 ], [ %.0308, %17 ], [ %.0308, %15 ], [ 1, %11 ]
  %.0306.be = phi i32 [ %.0306, %61 ], [ %.0306, %60 ], [ %.0306, %59 ], [ %.0306, %57 ], [ %.0306, %54 ], [ %.0306, %49 ], [ %.0306, %48 ], [ %.0306, %47 ], [ %.0306, %46 ], [ %.0306, %45 ], [ %.0306, %44 ], [ %.0306, %43 ], [ %.0306, %42 ], [ %.0306, %41 ], [ %.0306, %40 ], [ %.0306, %39 ], [ %.0306, %38 ], [ %.0306, %36 ], [ %.0306, %33 ], [ %.0306, %32 ], [ %.0306, %31 ], [ %.0306, %30 ], [ %.0306, %29 ], [ %.0306, %28 ], [ %.0306, %27 ], [ %.0306, %26 ], [ %.0306, %25 ], [ 1, %24 ], [ %.0306, %22 ], [ %.0306, %17 ], [ %.0306, %15 ], [ %.0306, %11 ]
  %.0304.be = phi i32 [ %.0304, %61 ], [ %.0304, %60 ], [ %.0304, %59 ], [ %.0304, %57 ], [ %.0304, %54 ], [ %.0304, %49 ], [ %.0304, %48 ], [ %.0304, %47 ], [ %.0304, %46 ], [ %.0304, %45 ], [ %.0304, %44 ], [ %.0304, %43 ], [ %.0304, %42 ], [ %.0304, %41 ], [ %.0304, %40 ], [ %.0304, %39 ], [ %.0304, %38 ], [ %.0304, %36 ], [ %.0304, %33 ], [ %.0304, %32 ], [ %.0304, %31 ], [ %.0304, %30 ], [ %.0304, %29 ], [ %.0304, %28 ], [ %.0304, %27 ], [ %.0304, %26 ], [ 1, %25 ], [ %.0304, %24 ], [ %.0304, %22 ], [ %.0304, %17 ], [ %.0304, %15 ], [ %.0304, %11 ]
  %.0302.be = phi i32 [ %.0302, %61 ], [ %.0302, %60 ], [ %.0302, %59 ], [ %.0302, %57 ], [ %.0302, %54 ], [ %.0302, %49 ], [ %.0302, %48 ], [ %.0302, %47 ], [ %.0302, %46 ], [ %.0302, %45 ], [ %.0302, %44 ], [ %.0302, %43 ], [ %.0302, %42 ], [ %.0302, %41 ], [ %.0302, %40 ], [ %.0302, %39 ], [ %.0302, %38 ], [ %.0302, %36 ], [ %.0302, %33 ], [ %.0302, %32 ], [ 1, %31 ], [ %.0302, %30 ], [ %.0302, %29 ], [ %.0302, %28 ], [ %.0302, %27 ], [ %.0302, %26 ], [ %.0302, %25 ], [ %.0302, %24 ], [ %.0302, %22 ], [ %.0302, %17 ], [ %.0302, %15 ], [ %.0302, %11 ]
  %.0300.be = phi i32 [ %.0300, %61 ], [ %.0300, %60 ], [ %.0300, %59 ], [ %.0300, %57 ], [ %.0300, %54 ], [ %.0300, %49 ], [ %.0300, %48 ], [ %.0300, %47 ], [ %.0300, %46 ], [ %.0300, %45 ], [ %.0300, %44 ], [ %.0300, %43 ], [ %.0300, %42 ], [ %.0300, %41 ], [ %.0300, %40 ], [ %.0300, %39 ], [ %.0300, %38 ], [ %.0300, %36 ], [ %.0300, %33 ], [ %.0300, %32 ], [ %.0300, %31 ], [ 1, %30 ], [ %.0300, %29 ], [ %.0300, %28 ], [ %.0300, %27 ], [ %.0300, %26 ], [ %.0300, %25 ], [ %.0300, %24 ], [ %.0300, %22 ], [ %.0300, %17 ], [ %.0300, %15 ], [ %.0300, %11 ]
  %.0298.be = phi i32 [ %.0298, %61 ], [ %.0298, %60 ], [ %.0298, %59 ], [ %.0298, %57 ], [ %.0298, %54 ], [ %.0298, %49 ], [ %.0298, %48 ], [ %.0298, %47 ], [ %.0298, %46 ], [ %.0298, %45 ], [ %.0298, %44 ], [ %.0298, %43 ], [ %.0298, %42 ], [ %.0298, %41 ], [ %.0298, %40 ], [ %.0298, %39 ], [ %.0298, %38 ], [ %.0298, %36 ], [ %.0298, %33 ], [ 1, %32 ], [ %.0298, %31 ], [ %.0298, %30 ], [ %.0298, %29 ], [ %.0298, %28 ], [ %.0298, %27 ], [ %.0298, %26 ], [ %.0298, %25 ], [ %.0298, %24 ], [ %.0298, %22 ], [ %.0298, %17 ], [ %.0298, %15 ], [ %.0298, %11 ]
  %.0296.be = phi i32 [ %.0296, %61 ], [ %.0296, %60 ], [ %.0296, %59 ], [ %.0296, %57 ], [ %.0296, %54 ], [ %.0296, %49 ], [ %.0296, %48 ], [ %.0296, %47 ], [ %.0296, %46 ], [ %.0296, %45 ], [ %.0296, %44 ], [ %.0296, %43 ], [ %.0296, %42 ], [ 1, %41 ], [ %.0296, %40 ], [ %.0296, %39 ], [ %.0296, %38 ], [ %.0296, %36 ], [ %.0296, %33 ], [ %.0296, %32 ], [ %.0296, %31 ], [ %.0296, %30 ], [ %.0296, %29 ], [ %.0296, %28 ], [ %.0296, %27 ], [ %.0296, %26 ], [ %.0296, %25 ], [ %.0296, %24 ], [ %.0296, %22 ], [ %.0296, %17 ], [ %.0296, %15 ], [ %.0296, %11 ]
  %.0292.be = phi i8 [ %.0292, %61 ], [ %.0292, %60 ], [ %.0292, %59 ], [ %.0292, %57 ], [ %.0292, %54 ], [ %.0292, %49 ], [ %.0292, %48 ], [ %.0292, %47 ], [ %.0292, %46 ], [ %.0292, %45 ], [ %.0292, %44 ], [ %.0292, %43 ], [ %.0292, %42 ], [ %.0292, %41 ], [ %.0292, %40 ], [ %.0292, %39 ], [ 1, %38 ], [ %.0292, %36 ], [ %.0292, %33 ], [ %.0292, %32 ], [ %.0292, %31 ], [ %.0292, %30 ], [ %.0292, %29 ], [ %.0292, %28 ], [ %.0292, %27 ], [ %.0292, %26 ], [ %.0292, %25 ], [ %.0292, %24 ], [ %.0292, %22 ], [ %.0292, %17 ], [ %.0292, %15 ], [ %.0292, %11 ]
  %.0290.be = phi i32 [ %.0290, %61 ], [ %.0290, %60 ], [ %.0290, %59 ], [ %.0290, %57 ], [ %.0290, %54 ], [ %.0290, %49 ], [ %.0290, %48 ], [ %.0290, %47 ], [ %.0290, %46 ], [ %.0290, %45 ], [ %.0290, %44 ], [ %.0290, %43 ], [ %.0290, %42 ], [ %.0290, %41 ], [ %.0290, %40 ], [ 0, %39 ], [ %.0290, %38 ], [ %.0290, %36 ], [ %.0290, %33 ], [ %.0290, %32 ], [ %.0290, %31 ], [ %.0290, %30 ], [ %.0290, %29 ], [ %.0290, %28 ], [ %.0290, %27 ], [ %.0290, %26 ], [ %.0290, %25 ], [ %.0290, %24 ], [ %.0290, %22 ], [ %.0290, %17 ], [ %.0290, %15 ], [ %.0290, %11 ]
  %.0288.be = phi i32 [ %.0288, %61 ], [ %.0288, %60 ], [ %.0288, %59 ], [ %.0288, %57 ], [ %.0288, %54 ], [ %.0288, %49 ], [ %.0288, %48 ], [ %.0288, %47 ], [ %.0288, %46 ], [ %.0288, %45 ], [ %.0288, %44 ], [ %.0288, %43 ], [ %.0288, %42 ], [ %.0288, %41 ], [ 0, %40 ], [ %.0288, %39 ], [ %.0288, %38 ], [ %.0288, %36 ], [ %.0288, %33 ], [ %.0288, %32 ], [ %.0288, %31 ], [ %.0288, %30 ], [ %.0288, %29 ], [ %.0288, %28 ], [ %.0288, %27 ], [ %.0288, %26 ], [ %.0288, %25 ], [ %.0288, %24 ], [ %.0288, %22 ], [ %.0288, %17 ], [ %.0288, %15 ], [ %.0288, %11 ]
  %.0286.be = phi i32 [ %.0286, %61 ], [ %.0286, %60 ], [ %.0286, %59 ], [ %.0286, %57 ], [ %.0286, %54 ], [ %.0286, %49 ], [ %.0286, %48 ], [ %.0286, %47 ], [ %.0286, %46 ], [ %.0286, %45 ], [ %.0286, %44 ], [ %.0286, %43 ], [ 1, %42 ], [ %.0286, %41 ], [ %.0286, %40 ], [ %.0286, %39 ], [ %.0286, %38 ], [ %.0286, %36 ], [ %.0286, %33 ], [ %.0286, %32 ], [ %.0286, %31 ], [ %.0286, %30 ], [ %.0286, %29 ], [ %.0286, %28 ], [ %.0286, %27 ], [ %.0286, %26 ], [ %.0286, %25 ], [ %.0286, %24 ], [ %.0286, %22 ], [ %.0286, %17 ], [ %.0286, %15 ], [ %.0286, %11 ]
  %.0284.be = phi i32 [ %.0284, %61 ], [ %.0284, %60 ], [ %.0284, %59 ], [ %.0284, %57 ], [ %.0284, %54 ], [ %.0284, %49 ], [ %.0284, %48 ], [ %.0284, %47 ], [ %.0284, %46 ], [ %.0284, %45 ], [ %.0284, %44 ], [ 1, %43 ], [ %.0284, %42 ], [ %.0284, %41 ], [ %.0284, %40 ], [ %.0284, %39 ], [ %.0284, %38 ], [ %.0284, %36 ], [ %.0284, %33 ], [ %.0284, %32 ], [ %.0284, %31 ], [ %.0284, %30 ], [ %.0284, %29 ], [ %.0284, %28 ], [ %.0284, %27 ], [ %.0284, %26 ], [ %.0284, %25 ], [ %.0284, %24 ], [ %.0284, %22 ], [ %.0284, %17 ], [ %.0284, %15 ], [ %.0284, %11 ]
  %.0282.be = phi i32 [ %.0282, %61 ], [ %.0282, %60 ], [ %.0282, %59 ], [ 1, %57 ], [ 1, %54 ], [ %.0282, %49 ], [ %.0282, %48 ], [ %.0282, %47 ], [ %.0282, %46 ], [ %.0282, %45 ], [ %.0282, %44 ], [ %.0282, %43 ], [ %.0282, %42 ], [ %.0282, %41 ], [ %.0282, %40 ], [ %.0282, %39 ], [ %.0282, %38 ], [ %.0282, %36 ], [ %.0282, %33 ], [ %.0282, %32 ], [ %.0282, %31 ], [ %.0282, %30 ], [ %.0282, %29 ], [ %.0282, %28 ], [ %.0282, %27 ], [ %.0282, %26 ], [ %.0282, %25 ], [ %.0282, %24 ], [ %.0282, %22 ], [ %.0282, %17 ], [ %.0282, %15 ], [ %.0282, %11 ]
  %.0280.be = phi i32 [ %.0280, %61 ], [ %.0280, %60 ], [ %.0280, %59 ], [ %.0280, %57 ], [ %.0280, %54 ], [ 1, %49 ], [ %.0280, %48 ], [ %.0280, %47 ], [ %.0280, %46 ], [ %.0280, %45 ], [ %.0280, %44 ], [ %.0280, %43 ], [ %.0280, %42 ], [ %.0280, %41 ], [ %.0280, %40 ], [ %.0280, %39 ], [ %.0280, %38 ], [ %.0280, %36 ], [ %.0280, %33 ], [ %.0280, %32 ], [ %.0280, %31 ], [ %.0280, %30 ], [ %.0280, %29 ], [ %.0280, %28 ], [ %.0280, %27 ], [ %.0280, %26 ], [ %.0280, %25 ], [ %.0280, %24 ], [ %.0280, %22 ], [ %.0280, %17 ], [ %.0280, %15 ], [ %.0280, %11 ]
  %.0278.be = phi i32 [ %.0278, %61 ], [ %.0278, %60 ], [ %.0278, %59 ], [ %.0278, %57 ], [ %.0278, %54 ], [ %.0278, %49 ], [ %.0278, %48 ], [ 1, %47 ], [ %.0278, %46 ], [ %.0278, %45 ], [ %.0278, %44 ], [ %.0278, %43 ], [ %.0278, %42 ], [ %.0278, %41 ], [ %.0278, %40 ], [ %.0278, %39 ], [ %.0278, %38 ], [ %.0278, %36 ], [ %.0278, %33 ], [ %.0278, %32 ], [ %.0278, %31 ], [ %.0278, %30 ], [ %.0278, %29 ], [ %.0278, %28 ], [ %.0278, %27 ], [ %.0278, %26 ], [ %.0278, %25 ], [ %.0278, %24 ], [ %.0278, %22 ], [ %.0278, %17 ], [ %.0278, %15 ], [ %.0278, %11 ]
  %.0276.be = phi i32 [ %.0276, %61 ], [ %.0276, %60 ], [ %.0276, %59 ], [ %.0276, %57 ], [ %.0276, %54 ], [ %.0276, %49 ], [ 1, %48 ], [ %.0276, %47 ], [ %.0276, %46 ], [ %.0276, %45 ], [ %.0276, %44 ], [ %.0276, %43 ], [ %.0276, %42 ], [ %.0276, %41 ], [ %.0276, %40 ], [ %.0276, %39 ], [ %.0276, %38 ], [ %.0276, %36 ], [ %.0276, %33 ], [ %.0276, %32 ], [ %.0276, %31 ], [ %.0276, %30 ], [ %.0276, %29 ], [ %.0276, %28 ], [ %.0276, %27 ], [ %.0276, %26 ], [ %.0276, %25 ], [ %.0276, %24 ], [ %.0276, %22 ], [ %.0276, %17 ], [ %.0276, %15 ], [ %.0276, %11 ]
  %.0274.be = phi i32 [ %.0274, %61 ], [ %.0274, %60 ], [ %.0274, %59 ], [ %.0274, %57 ], [ %.0274, %54 ], [ %.0274, %49 ], [ %.0274, %48 ], [ %.0274, %47 ], [ %.0274, %46 ], [ 1, %45 ], [ %.0274, %44 ], [ %.0274, %43 ], [ %.0274, %42 ], [ %.0274, %41 ], [ %.0274, %40 ], [ %.0274, %39 ], [ %.0274, %38 ], [ %.0274, %36 ], [ %.0274, %33 ], [ %.0274, %32 ], [ %.0274, %31 ], [ %.0274, %30 ], [ %.0274, %29 ], [ %.0274, %28 ], [ %.0274, %27 ], [ %.0274, %26 ], [ %.0274, %25 ], [ %.0274, %24 ], [ %.0274, %22 ], [ %.0274, %17 ], [ %.0274, %15 ], [ %.0274, %11 ]
  %.0272.be = phi i32 [ %.0272, %61 ], [ %.0272, %60 ], [ %.0272, %59 ], [ %.0272, %57 ], [ %.0272, %54 ], [ %.0272, %49 ], [ %.0272, %48 ], [ %.0272, %47 ], [ 1, %46 ], [ %.0272, %45 ], [ %.0272, %44 ], [ %.0272, %43 ], [ %.0272, %42 ], [ %.0272, %41 ], [ %.0272, %40 ], [ %.0272, %39 ], [ %.0272, %38 ], [ %.0272, %36 ], [ %.0272, %33 ], [ %.0272, %32 ], [ %.0272, %31 ], [ %.0272, %30 ], [ %.0272, %29 ], [ %.0272, %28 ], [ %.0272, %27 ], [ %.0272, %26 ], [ %.0272, %25 ], [ %.0272, %24 ], [ %.0272, %22 ], [ %.0272, %17 ], [ %.0272, %15 ], [ %.0272, %11 ]
  %.0270.be = phi i32 [ %.0270, %61 ], [ %.0270, %60 ], [ 0, %59 ], [ %.0270, %57 ], [ %.0270, %54 ], [ %.0270, %49 ], [ %.0270, %48 ], [ %.0270, %47 ], [ %.0270, %46 ], [ %.0270, %45 ], [ %.0270, %44 ], [ %.0270, %43 ], [ %.0270, %42 ], [ %.0270, %41 ], [ %.0270, %40 ], [ %.0270, %39 ], [ %.0270, %38 ], [ %.0270, %36 ], [ %.0270, %33 ], [ %.0270, %32 ], [ %.0270, %31 ], [ %.0270, %30 ], [ %.0270, %29 ], [ %.0270, %28 ], [ %.0270, %27 ], [ %.0270, %26 ], [ %.0270, %25 ], [ %.0270, %24 ], [ %.0270, %22 ], [ %.0270, %17 ], [ %.0270, %15 ], [ %.0270, %11 ]
  %.0268.be = phi i32 [ %.0268, %61 ], [ %.0268, %60 ], [ %.0268, %59 ], [ %.0268, %57 ], [ %.0268, %54 ], [ %.0268, %49 ], [ 1, %48 ], [ %.0268, %47 ], [ %.0268, %46 ], [ %.0268, %45 ], [ 1, %44 ], [ %.0268, %43 ], [ %.0268, %42 ], [ %.0268, %41 ], [ %.0268, %40 ], [ %.0268, %39 ], [ %.0268, %38 ], [ %.0268, %36 ], [ %.0268, %33 ], [ %.0268, %32 ], [ %.0268, %31 ], [ %.0268, %30 ], [ %.0268, %29 ], [ %.0268, %28 ], [ %.0268, %27 ], [ %.0268, %26 ], [ %.0268, %25 ], [ %.0268, %24 ], [ %.0268, %22 ], [ %.0268, %17 ], [ %.0268, %15 ], [ %.0268, %11 ]
  %.0266.be = phi i32 [ %.0266, %61 ], [ %.0266, %60 ], [ %.0266, %59 ], [ %.0266, %57 ], [ %.0266, %54 ], [ 1, %49 ], [ %.0266, %48 ], [ %.0266, %47 ], [ %.0266, %46 ], [ %.0266, %45 ], [ %.0266, %44 ], [ %.0266, %43 ], [ %.0266, %42 ], [ %.0266, %41 ], [ %.0266, %40 ], [ %.0266, %39 ], [ %.0266, %38 ], [ %.0266, %36 ], [ %.0266, %33 ], [ %.0266, %32 ], [ %.0266, %31 ], [ %.0266, %30 ], [ 3, %29 ], [ 2, %28 ], [ 1, %27 ], [ %.0266, %26 ], [ %.0266, %25 ], [ %.0266, %24 ], [ %.0266, %22 ], [ %.0266, %17 ], [ %.0266, %15 ], [ %.0266, %11 ]
  %.0265.be = phi i32 [ %.0265, %61 ], [ 1, %60 ], [ %.0265, %59 ], [ %.0265, %57 ], [ %.0265, %54 ], [ %.0265, %49 ], [ %.0265, %48 ], [ %.0265, %47 ], [ %.0265, %46 ], [ %.0265, %45 ], [ %.0265, %44 ], [ %.0265, %43 ], [ %.0265, %42 ], [ %.0265, %41 ], [ %.0265, %40 ], [ %.0265, %39 ], [ %.0265, %38 ], [ %.0265, %36 ], [ %.0265, %33 ], [ %.0265, %32 ], [ %.0265, %31 ], [ %.0265, %30 ], [ %.0265, %29 ], [ %.0265, %28 ], [ %.0265, %27 ], [ %.0265, %26 ], [ %.0265, %25 ], [ %.0265, %24 ], [ %.0265, %22 ], [ %.0265, %17 ], [ %.0265, %15 ], [ %.0265, %11 ]
  br label %11, !llvm.loop !9

.preheader:                                       ; preds = %11
  %13 = load i32, ptr @optind, align 4, !tbaa !5
  %14 = icmp slt i32 %13, %0
  br i1 %14, label %.lr.ph, label %._crit_edge

15:                                               ; preds = %11
  %16 = load ptr, ptr @optarg, align 8, !tbaa !11
  call void @dblen(ptr noundef %16, ptr noundef nonnull %3, ptr noundef nonnull %4)
  br label %.backedge

17:                                               ; preds = %11
  %18 = load ptr, ptr @optarg, align 8, !tbaa !11
  call void @dblen(ptr noundef %18, ptr noundef nonnull %5, ptr noundef nonnull %6)
  br label %.backedge

19:                                               ; preds = %11
  br label %20

20:                                               ; preds = %11, %19
  %.1319 = phi i32 [ 1, %19 ], [ %.0318, %11 ]
  %.not387 = icmp eq i32 %.0321, 0
  br i1 %.not387, label %22, label %21

21:                                               ; preds = %20
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 1, ptr noundef nonnull @.str) #10
  br label %22

22:                                               ; preds = %21, %20
  %23 = load ptr, ptr @optarg, align 8, !tbaa !11
  br label %.backedge

24:                                               ; preds = %11
  br label %.backedge

25:                                               ; preds = %11
  br label %.backedge

26:                                               ; preds = %11
  br label %.backedge

27:                                               ; preds = %11
  br label %.backedge

28:                                               ; preds = %11
  br label %.backedge

29:                                               ; preds = %11
  br label %.backedge

30:                                               ; preds = %11
  br label %.backedge

31:                                               ; preds = %11
  br label %.backedge

32:                                               ; preds = %11
  br label %.backedge

33:                                               ; preds = %11
  %34 = load ptr, ptr @optarg, align 8, !tbaa !11
  %35 = load i8, ptr %34, align 1, !tbaa !13
  br label %.backedge

36:                                               ; preds = %11
  %37 = load ptr, ptr @optarg, align 8, !tbaa !11
  br label %.backedge

38:                                               ; preds = %11
  br label %.backedge

39:                                               ; preds = %11
  br label %.backedge

40:                                               ; preds = %11
  br label %.backedge

41:                                               ; preds = %11
  br label %.backedge

42:                                               ; preds = %11
  br label %.backedge

43:                                               ; preds = %11
  br label %.backedge

44:                                               ; preds = %11
  br label %.backedge

45:                                               ; preds = %11
  br label %.backedge

46:                                               ; preds = %11
  br label %.backedge

47:                                               ; preds = %11
  br label %.backedge

48:                                               ; preds = %11
  br label %.backedge

49:                                               ; preds = %11
  br label %.backedge

50:                                               ; preds = %11
  %51 = load ptr, ptr @optarg, align 8, !tbaa !11
  %52 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %51, ptr noundef nonnull @.str.1, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull %9) #10
  %.not386 = icmp eq i32 %52, 3
  br i1 %.not386, label %54, label %53

53:                                               ; preds = %50
  call void @usage() #10
  br label %54

54:                                               ; preds = %53, %50
  %55 = load i32, ptr %7, align 4, !tbaa !5
  %56 = icmp slt i32 %55, 51
  br i1 %56, label %57, label %.backedge

57:                                               ; preds = %54
  %58 = add nsw i32 %55, 100
  store i32 %58, ptr %7, align 4, !tbaa !5
  br label %.backedge

59:                                               ; preds = %11
  br label %.backedge

60:                                               ; preds = %11
  br label %.backedge

61:                                               ; preds = %11
  call void @usage() #10
  br label %.backedge

.lr.ph:                                           ; preds = %.preheader, %64
  %62 = phi i32 [ %69, %64 ], [ %13, %.preheader ]
  %.0264399 = phi ptr [ %68, %64 ], [ null, %.preheader ]
  %.not385 = icmp eq ptr %.0264399, null
  br i1 %.not385, label %64, label %63

63:                                               ; preds = %.lr.ph
  call void @usage() #10
  %.pre = load i32, ptr @optind, align 4, !tbaa !5
  br label %64

64:                                               ; preds = %63, %.lr.ph
  %65 = phi i32 [ %.pre, %63 ], [ %62, %.lr.ph ]
  %66 = sext i32 %65 to i64
  %67 = getelementptr inbounds ptr, ptr %1, i64 %66
  %68 = load ptr, ptr %67, align 8, !tbaa !11
  %69 = add nsw i32 %65, 1
  store i32 %69, ptr @optind, align 4, !tbaa !5
  %70 = icmp slt i32 %69, %0
  br i1 %70, label %.lr.ph, label %._crit_edge, !llvm.loop !14

._crit_edge:                                      ; preds = %64, %.preheader
  %.0264.lcssa = phi ptr [ null, %.preheader ], [ %68, %64 ]
  %71 = call noalias dereferenceable_or_null(2144) ptr @malloc(i64 noundef 2144) #11
  %72 = icmp eq ptr %71, null
  br i1 %72, label %73, label %74

73:                                               ; preds = %._crit_edge
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 8, ptr noundef nonnull @.str.2) #10
  br label %74

74:                                               ; preds = %73, %._crit_edge
  %75 = call noalias dereferenceable_or_null(2144) ptr @malloc(i64 noundef 2144) #11
  %76 = icmp eq ptr %75, null
  br i1 %76, label %77, label %78

77:                                               ; preds = %74
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 8, ptr noundef nonnull @.str.2) #10
  br label %78

78:                                               ; preds = %77, %74
  %.not338 = icmp eq i32 %.0280, 0
  br i1 %.not338, label %226, label %79

79:                                               ; preds = %78
  %.not347 = icmp eq i32 %.0300, 0
  br i1 %.not347, label %81, label %80

80:                                               ; preds = %79
  call void (ptr, ...) @lib_mesg(ptr noundef nonnull @.str.3) #10
  br label %81

81:                                               ; preds = %80, %79
  %.not348 = icmp eq i32 %.0302, 0
  br i1 %.not348, label %83, label %82

82:                                               ; preds = %81
  call void (ptr, ...) @lib_mesg(ptr noundef nonnull @.str.4) #10
  br label %83

83:                                               ; preds = %82, %81
  %.not349 = icmp eq i32 %.0298, 0
  br i1 %.not349, label %85, label %84

84:                                               ; preds = %83
  call void (ptr, ...) @lib_mesg(ptr noundef nonnull @.str.5) #10
  br label %85

85:                                               ; preds = %84, %83
  %.not350 = icmp eq i32 %.0296, 0
  br i1 %.not350, label %87, label %86

86:                                               ; preds = %85
  call void (ptr, ...) @lib_mesg(ptr noundef nonnull @.str.6) #10
  br label %87

87:                                               ; preds = %86, %85
  %.not351 = icmp eq i32 %.0278, 0
  br i1 %.not351, label %89, label %88

88:                                               ; preds = %87
  call void (ptr, ...) @lib_mesg(ptr noundef nonnull @.str.7) #10
  br label %89

89:                                               ; preds = %88, %87
  %.not352 = icmp eq i32 %.0276, 0
  br i1 %.not352, label %91, label %90

90:                                               ; preds = %89
  call void (ptr, ...) @lib_mesg(ptr noundef nonnull @.str.8) #10
  br label %91

91:                                               ; preds = %90, %89
  %.not353 = icmp eq i32 %.0274, 0
  br i1 %.not353, label %93, label %92

92:                                               ; preds = %91
  call void (ptr, ...) @lib_mesg(ptr noundef nonnull @.str.9) #10
  br label %93

93:                                               ; preds = %92, %91
  %.not354 = icmp eq i32 %.0272, 0
  br i1 %.not354, label %95, label %94

94:                                               ; preds = %93
  call void (ptr, ...) @lib_mesg(ptr noundef nonnull @.str.10) #10
  br label %95

95:                                               ; preds = %94, %93
  %96 = icmp ne i32 %.0306, 0
  %97 = icmp ne i32 %.0304, 0
  %or.cond = select i1 %96, i1 true, i1 %97
  br i1 %or.cond, label %98, label %99

98:                                               ; preds = %95
  call void (ptr, ...) @lib_mesg(ptr noundef nonnull @.str.11) #10
  br label %99

99:                                               ; preds = %95, %98
  %.not355 = icmp eq ptr %.0264.lcssa, null
  br i1 %.not355, label %102, label %100

100:                                              ; preds = %99
  %101 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.0264.lcssa, ptr noundef nonnull dereferenceable(1) @.str.12) #12
  %.not356 = icmp eq i32 %101, 0
  br i1 %.not356, label %102, label %.thread

102:                                              ; preds = %99, %100
  %103 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %75, ptr noundef nonnull dereferenceable(1) @.str.13) #10
  %104 = load ptr, ptr @stdin, align 8, !tbaa !11
  %105 = getelementptr inbounds i8, ptr %75, i64 2048
  store ptr %104, ptr %105, align 8, !tbaa !15
  %.not357 = icmp eq i32 %.0282, 0
  br i1 %.not357, label %115, label %108

.thread:                                          ; preds = %100
  %106 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %75, ptr noundef nonnull dereferenceable(1) %.0264.lcssa) #10
  %107 = getelementptr inbounds i8, ptr %75, i64 2048
  store ptr null, ptr %107, align 8, !tbaa !15
  %.not357388 = icmp eq i32 %.0282, 0
  br i1 %.not357388, label %.thread389, label %108

108:                                              ; preds = %.thread, %102
  %109 = load i32, ptr %7, align 4, !tbaa !5
  %110 = trunc i32 %109 to i8
  %111 = getelementptr inbounds i8, ptr %75, i64 2113
  store i8 %110, ptr %111, align 1, !tbaa !19
  %112 = load i32, ptr %8, align 4, !tbaa !5
  %113 = trunc i32 %112 to i8
  %114 = getelementptr inbounds i8, ptr %75, i64 2114
  store i8 %113, ptr %114, align 2, !tbaa !20
  br label %136

115:                                              ; preds = %102
  br i1 %.not355, label %116, label %.thread389

116:                                              ; preds = %115
  %117 = call i64 @time(ptr noundef nonnull %10) #10
  %118 = call ptr @localtime(ptr noundef nonnull %10) #10
  br label %125

.thread389:                                       ; preds = %.thread, %115
  %119 = call ptr @lib_stat(ptr noundef nonnull %.0264.lcssa) #10
  %120 = icmp eq ptr %119, null
  br i1 %120, label %121, label %122

121:                                              ; preds = %.thread389
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 2, ptr noundef nonnull @.str.14, ptr noundef nonnull %.0264.lcssa) #10
  br label %122

122:                                              ; preds = %121, %.thread389
  %123 = getelementptr inbounds i8, ptr %119, i64 48
  %124 = load ptr, ptr %123, align 8, !tbaa !21
  br label %125

125:                                              ; preds = %122, %116
  %.0 = phi ptr [ %118, %116 ], [ %124, %122 ]
  %126 = getelementptr inbounds i8, ptr %.0, i64 20
  %127 = load i32, ptr %126, align 4, !tbaa !24
  %128 = trunc i32 %127 to i8
  %129 = getelementptr inbounds i8, ptr %75, i64 2113
  store i8 %128, ptr %129, align 1, !tbaa !19
  %130 = getelementptr inbounds i8, ptr %.0, i64 16
  %131 = load i32, ptr %130, align 8, !tbaa !26
  %132 = trunc i32 %131 to i8
  %133 = add i8 %132, 1
  %134 = getelementptr inbounds i8, ptr %75, i64 2114
  store i8 %133, ptr %134, align 2, !tbaa !20
  %135 = getelementptr inbounds i8, ptr %.0, i64 12
  br label %136

136:                                              ; preds = %125, %108
  %.sink461.in = phi ptr [ %135, %125 ], [ %9, %108 ]
  %.sink461 = load i32, ptr %.sink461.in, align 4, !tbaa !5
  %137 = trunc i32 %.sink461 to i8
  %138 = getelementptr inbounds i8, ptr %75, i64 2115
  store i8 %137, ptr %138, align 1, !tbaa !27
  %139 = getelementptr inbounds i8, ptr %75, i64 2068
  store i32 0, ptr %139, align 4, !tbaa !28
  %140 = getelementptr inbounds i8, ptr %75, i64 2072
  store i8 %.0312, ptr %140, align 8, !tbaa !29
  %141 = trunc nuw nsw i32 %.0290 to i8
  %142 = getelementptr inbounds i8, ptr %75, i64 2073
  store i8 %141, ptr %142, align 1, !tbaa !30
  %143 = trunc nuw nsw i32 %.0270 to i8
  %144 = getelementptr inbounds i8, ptr %75, i64 2076
  store i8 %143, ptr %144, align 4, !tbaa !31
  %145 = getelementptr inbounds i8, ptr %75, i64 2080
  store i32 %.0268, ptr %145, align 8, !tbaa !32
  %146 = getelementptr inbounds i8, ptr %75, i64 2084
  store i32 %.0266, ptr %146, align 4, !tbaa !33
  %147 = call i32 @rdb_open(ptr noundef nonnull %75) #10
  switch i32 %147, label %152 [
    i32 8, label %148
    i32 3, label %149
    i32 2, label %150
    i32 11, label %151
  ]

148:                                              ; preds = %136
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 8, ptr noundef nonnull @.str.15) #10
  br label %149

149:                                              ; preds = %148, %136
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %147, ptr noundef nonnull @.str.16) #10
  br label %150

150:                                              ; preds = %149, %136
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %147, ptr noundef nonnull @.str.17) #10
  br label %151

151:                                              ; preds = %150, %136
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %147, ptr noundef nonnull @.str.18) #10
  br label %152

152:                                              ; preds = %151, %136
  %.not358 = icmp eq i32 %.0286, 0
  br i1 %.not358, label %154, label %153

153:                                              ; preds = %152
  call void @dbf_from(ptr noundef nonnull %75, i32 noundef 0) #10
  call void @exit(i32 noundef 0) #13
  unreachable

154:                                              ; preds = %152
  %.not359 = icmp eq i32 %.0284, 0
  br i1 %.not359, label %156, label %155

155:                                              ; preds = %154
  call void @dbf_from(ptr noundef nonnull %75, i32 noundef 1) #10
  call void @exit(i32 noundef 0) #13
  unreachable

156:                                              ; preds = %154
  %.not360 = icmp eq i32 %.0321, 0
  br i1 %.not360, label %192, label %157

157:                                              ; preds = %156
  %158 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %71, ptr noundef nonnull dereferenceable(1) %.0316) #10
  %159 = getelementptr inbounds i8, ptr %71, i64 2048
  store ptr null, ptr %159, align 8, !tbaa !15
  %160 = call i32 @dbf_open(ptr noundef %71) #10
  switch i32 %160, label %164 [
    i32 8, label %161
    i32 2, label %162
    i32 11, label %163
  ]

161:                                              ; preds = %157
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 8, ptr noundef nonnull @.str.15) #10
  br label %162

162:                                              ; preds = %161, %157
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %160, ptr noundef nonnull @.str.19, ptr noundef %.0316) #10
  br label %163

163:                                              ; preds = %162, %157
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %160, ptr noundef nonnull @.str.20, ptr noundef %.0316) #10
  br label %164

164:                                              ; preds = %163, %157
  %.not361 = icmp eq i32 %.0318, 0
  %165 = getelementptr inbounds i8, ptr %75, i64 2116
  br i1 %.not361, label %172, label %166

166:                                              ; preds = %164
  %167 = load ptr, ptr %159, align 8, !tbaa !15
  %168 = call i32 @fclose(ptr noundef %167)
  %169 = load i32, ptr %165, align 4, !tbaa !34
  %170 = getelementptr inbounds i8, ptr %71, i64 2116
  store i32 %169, ptr %170, align 4, !tbaa !34
  %171 = load ptr, ptr @stdout, align 8, !tbaa !11
  store ptr %171, ptr %159, align 8, !tbaa !15
  br label %177

172:                                              ; preds = %164
  %173 = getelementptr inbounds i8, ptr %71, i64 2116
  %174 = load i32, ptr %173, align 4, !tbaa !34
  %175 = load i32, ptr %165, align 4, !tbaa !34
  %176 = add i32 %175, %174
  store i32 %176, ptr %173, align 4, !tbaa !34
  %.pre446 = load ptr, ptr %159, align 8, !tbaa !15
  br label %177

177:                                              ; preds = %172, %166
  %178 = phi ptr [ %171, %166 ], [ %.pre446, %172 ]
  %.0294 = phi i32 [ 0, %166 ], [ %174, %172 ]
  %179 = call i32 @fseek(ptr noundef %178, i64 noundef 0, i32 noundef 0)
  %.not362 = icmp eq i32 %179, 0
  br i1 %.not362, label %180, label %182

180:                                              ; preds = %177
  %181 = call i32 @dbf_crea(ptr noundef nonnull %71) #10
  %.not363 = icmp eq i32 %181, 0
  br i1 %.not363, label %183, label %182

182:                                              ; preds = %180, %177
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 4, ptr noundef nonnull @.str.21) #10
  br label %183

183:                                              ; preds = %182, %180
  br i1 %.not361, label %184, label %202

184:                                              ; preds = %183
  %185 = load ptr, ptr %159, align 8, !tbaa !15
  %186 = getelementptr inbounds i8, ptr %71, i64 2122
  %187 = load i16, ptr %186, align 2, !tbaa !35
  %188 = zext i16 %187 to i32
  %189 = mul nsw i32 %.0294, %188
  %190 = sext i32 %189 to i64
  %191 = call i32 @fseek(ptr noundef %185, i64 noundef %190, i32 noundef 1)
  br label %202

192:                                              ; preds = %156
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(2144) %71, ptr noundef nonnull align 8 dereferenceable(2144) %75, i64 2144, i1 false), !tbaa.struct !36
  %193 = load ptr, ptr @stdout, align 8, !tbaa !11
  %194 = getelementptr inbounds i8, ptr %71, i64 2048
  store ptr %193, ptr %194, align 8, !tbaa !15
  %.not364 = icmp eq i32 %.0308, 0
  br i1 %.not364, label %195, label %199

195:                                              ; preds = %192
  %196 = getelementptr inbounds i8, ptr %71, i64 2120
  %197 = load i16, ptr %196, align 8, !tbaa !38
  %198 = add i16 %197, 1
  store i16 %198, ptr %196, align 8, !tbaa !38
  br label %199

199:                                              ; preds = %195, %192
  %200 = call i32 @dbf_crea(ptr noundef nonnull %71) #10
  %.not365 = icmp eq i32 %200, 0
  br i1 %.not365, label %.loopexit394, label %201

201:                                              ; preds = %199
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 4, ptr noundef nonnull @.str.21) #10
  br label %.loopexit394

202:                                              ; preds = %183, %184
  %203 = getelementptr inbounds i8, ptr %75, i64 2088
  %204 = load i8, ptr %203, align 8, !tbaa !39
  %.not366406 = icmp eq i8 %204, 0
  br i1 %.not366406, label %.loopexit394, label %.lr.ph410

.lr.ph410:                                        ; preds = %202
  %205 = getelementptr inbounds i8, ptr %75, i64 2096
  %206 = load ptr, ptr %205, align 8, !tbaa !40
  %207 = getelementptr inbounds i8, ptr %71, i64 2096
  %208 = getelementptr inbounds i8, ptr %71, i64 2088
  %.pre447 = load i8, ptr %208, align 8, !tbaa !39
  br label %209

209:                                              ; preds = %.lr.ph410, %221
  %210 = phi i8 [ %.pre447, %.lr.ph410 ], [ %222, %221 ]
  %.0323408 = phi ptr [ %206, %.lr.ph410 ], [ %224, %221 ]
  %.0331407 = phi i8 [ 1, %.lr.ph410 ], [ %223, %221 ]
  %.not383400 = icmp eq i8 %210, 0
  br i1 %.not383400, label %.loopexit393.thread, label %.lr.ph404.preheader

.lr.ph404.preheader:                              ; preds = %209
  %211 = load ptr, ptr %207, align 8, !tbaa !40
  br label %.lr.ph404

.lr.ph404:                                        ; preds = %.lr.ph404.preheader, %214
  %.0324402 = phi ptr [ %216, %214 ], [ %211, %.lr.ph404.preheader ]
  %.0329401 = phi i8 [ %215, %214 ], [ 1, %.lr.ph404.preheader ]
  %212 = call i32 @strncmp(ptr noundef nonnull dereferenceable(1) %.0323408, ptr noundef nonnull dereferenceable(1) %.0324402, i64 noundef 11) #12
  %.not384 = icmp eq i32 %212, 0
  br i1 %.not384, label %213, label %214

213:                                              ; preds = %.lr.ph404
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(32) %.0323408, ptr noundef nonnull align 4 dereferenceable(32) %.0324402, i64 32, i1 false)
  %.pre448 = load i8, ptr %208, align 8, !tbaa !39
  br label %.loopexit393

214:                                              ; preds = %.lr.ph404
  %215 = add i8 %.0329401, 1
  %216 = getelementptr inbounds i8, ptr %.0324402, i64 32
  %.not383 = icmp ugt i8 %215, %210
  br i1 %.not383, label %.loopexit393, label %.lr.ph404, !llvm.loop !41

.loopexit393:                                     ; preds = %214, %213
  %217 = phi i8 [ %.pre448, %213 ], [ %210, %214 ]
  %.0329398 = phi i8 [ %.0329401, %213 ], [ %215, %214 ]
  %218 = icmp ugt i8 %.0329398, %217
  br i1 %218, label %.loopexit393.thread, label %221

.loopexit393.thread:                              ; preds = %209, %.loopexit393
  %219 = phi i8 [ %217, %.loopexit393 ], [ 0, %209 ]
  %220 = getelementptr inbounds i8, ptr %.0323408, i64 11
  store i8 88, ptr %220, align 1, !tbaa !42
  br label %221

221:                                              ; preds = %.loopexit393, %.loopexit393.thread
  %222 = phi i8 [ %217, %.loopexit393 ], [ %219, %.loopexit393.thread ]
  %223 = add i8 %.0331407, 1
  %224 = getelementptr inbounds i8, ptr %.0323408, i64 32
  %225 = load i8, ptr %203, align 8, !tbaa !39
  %.not366 = icmp ugt i8 %223, %225
  br i1 %.not366, label %.loopexit394, label %209, !llvm.loop !44

226:                                              ; preds = %78
  %.not339 = icmp eq i32 %.0321, 0
  br i1 %.not339, label %228, label %227

227:                                              ; preds = %226
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 1, ptr noundef nonnull @.str.22) #10
  br label %228

228:                                              ; preds = %227, %226
  %.not340 = icmp eq i32 %.0308, 0
  br i1 %.not340, label %230, label %229

229:                                              ; preds = %228
  call void (ptr, ...) @lib_mesg(ptr noundef nonnull @.str.23) #10
  br label %230

230:                                              ; preds = %229, %228
  %.not341 = icmp eq i32 %.0282, 0
  br i1 %.not341, label %232, label %231

231:                                              ; preds = %230
  call void (ptr, ...) @lib_mesg(ptr noundef nonnull @.str.24) #10
  br label %232

232:                                              ; preds = %231, %230
  %.not342 = icmp eq i32 %.0310, 0
  br i1 %.not342, label %234, label %233

233:                                              ; preds = %232
  call void (ptr, ...) @lib_mesg(ptr noundef nonnull @.str.25) #10
  br label %234

234:                                              ; preds = %233, %232
  %.not343 = icmp eq ptr %.0264.lcssa, null
  br i1 %.not343, label %239, label %235

235:                                              ; preds = %234
  %236 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.0264.lcssa, ptr noundef nonnull dereferenceable(1) @.str.12) #12
  %.not344 = icmp eq i32 %236, 0
  br i1 %.not344, label %239, label %237

237:                                              ; preds = %235
  %238 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %71, ptr noundef nonnull dereferenceable(1) %.0264.lcssa) #10
  br label %242

239:                                              ; preds = %235, %234
  %240 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %71, ptr noundef nonnull dereferenceable(1) @.str.13) #10
  %241 = load ptr, ptr @stdin, align 8, !tbaa !11
  br label %242

242:                                              ; preds = %239, %237
  %.sink = phi ptr [ %241, %239 ], [ null, %237 ]
  %243 = getelementptr inbounds i8, ptr %71, i64 2048
  store ptr %.sink, ptr %243, align 8, !tbaa !15
  %244 = call i32 @dbf_open(ptr noundef nonnull %71) #10
  switch i32 %244, label %248 [
    i32 8, label %245
    i32 2, label %246
    i32 11, label %247
  ]

245:                                              ; preds = %242
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 8, ptr noundef nonnull @.str.15) #10
  br label %246

246:                                              ; preds = %245, %242
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %244, ptr noundef nonnull @.str.17) #10
  br label %247

247:                                              ; preds = %246, %242
  call void (i32, ptr, ...) @lib_fatl(i32 noundef %244, ptr noundef nonnull @.str.26) #10
  br label %248

248:                                              ; preds = %247, %242
  %.not345 = icmp eq i32 %.0286, 0
  br i1 %.not345, label %250, label %249

249:                                              ; preds = %248
  call void @dbf_from(ptr noundef nonnull %71, i32 noundef 0) #10
  call void @exit(i32 noundef 0) #13
  unreachable

250:                                              ; preds = %248
  %.not346 = icmp eq i32 %.0284, 0
  br i1 %.not346, label %252, label %251

251:                                              ; preds = %250
  call void @dbf_from(ptr noundef nonnull %71, i32 noundef 1) #10
  call void @exit(i32 noundef 0) #13
  unreachable

252:                                              ; preds = %250
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(2144) %75, ptr noundef nonnull align 8 dereferenceable(2144) %71, i64 2144, i1 false), !tbaa.struct !36
  %253 = getelementptr inbounds i8, ptr %71, i64 2080
  store i32 %.0268, ptr %253, align 8, !tbaa !32
  %254 = getelementptr inbounds i8, ptr %71, i64 2084
  store i32 %.0266, ptr %254, align 4, !tbaa !33
  br label %.loopexit394

.loopexit394:                                     ; preds = %221, %202, %201, %199, %252
  %.not367 = icmp eq i32 %.0265, 0
  br i1 %.not367, label %256, label %255

255:                                              ; preds = %.loopexit394
  call void @dbf_info(ptr noundef nonnull %71) #10
  br label %256

256:                                              ; preds = %255, %.loopexit394
  %257 = getelementptr inbounds i8, ptr %71, i64 2088
  %258 = load i8, ptr %257, align 8, !tbaa !39
  %.not368411 = icmp eq i8 %258, 0
  br i1 %.not368411, label %._crit_edge416, label %.lr.ph415.preheader

.lr.ph415.preheader:                              ; preds = %256
  %259 = getelementptr inbounds i8, ptr %71, i64 2096
  %260 = load ptr, ptr %259, align 8, !tbaa !40
  br label %.lr.ph415

.lr.ph415:                                        ; preds = %.lr.ph415.preheader, %265
  %.1325413 = phi ptr [ %267, %265 ], [ %260, %.lr.ph415.preheader ]
  %.1330412 = phi i8 [ %266, %265 ], [ 1, %.lr.ph415.preheader ]
  %261 = getelementptr inbounds i8, ptr %.1325413, i64 11
  %262 = load i8, ptr %261, align 1, !tbaa !42
  switch i8 %262, label %264 [
    i8 68, label %265
    i8 78, label %265
    i8 70, label %265
    i8 76, label %265
    i8 67, label %265
    i8 77, label %263
  ]

263:                                              ; preds = %.lr.ph415
  call void (ptr, ...) @lib_mesg(ptr noundef nonnull @.str.27, ptr noundef nonnull %.1325413) #10
  br label %265

264:                                              ; preds = %.lr.ph415
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 12, ptr noundef nonnull @.str.28) #10
  br label %265

265:                                              ; preds = %263, %264, %.lr.ph415, %.lr.ph415, %.lr.ph415, %.lr.ph415, %.lr.ph415
  %266 = add i8 %.1330412, 1
  %267 = getelementptr inbounds i8, ptr %.1325413, i64 32
  %268 = load i8, ptr %257, align 8, !tbaa !39
  %.not368 = icmp ugt i8 %266, %268
  br i1 %.not368, label %._crit_edge416, label %.lr.ph415, !llvm.loop !45

._crit_edge416:                                   ; preds = %265, %256
  %.not369 = icmp eq i32 %.0288, 0
  br i1 %.not369, label %.loopexit, label %269

269:                                              ; preds = %._crit_edge416
  %270 = getelementptr inbounds i8, ptr %75, i64 2072
  store i8 %.0312, ptr %270, align 8, !tbaa !29
  %271 = trunc nuw nsw i32 %.0290 to i8
  %272 = getelementptr inbounds i8, ptr %75, i64 2073
  store i8 %271, ptr %272, align 1, !tbaa !30
  %273 = getelementptr inbounds i8, ptr %75, i64 2074
  store i8 %.0292, ptr %273, align 2, !tbaa !46
  %274 = trunc nuw nsw i32 %.0302 to i8
  %275 = getelementptr inbounds i8, ptr %75, i64 2075
  store i8 %274, ptr %275, align 1, !tbaa !47
  %276 = trunc nuw nsw i32 %.0270 to i8
  %277 = getelementptr inbounds i8, ptr %75, i64 2076
  store i8 %276, ptr %277, align 4, !tbaa !31
  %278 = trunc nuw nsw i32 %.0300 to i8
  %279 = getelementptr inbounds i8, ptr %75, i64 2077
  store i8 %278, ptr %279, align 1, !tbaa !48
  %280 = getelementptr inbounds i8, ptr %75, i64 2080
  store i32 %.0268, ptr %280, align 8, !tbaa !32
  %281 = getelementptr inbounds i8, ptr %75, i64 2084
  store i32 %.0266, ptr %281, align 4, !tbaa !33
  br i1 %.not338, label %293, label %282

282:                                              ; preds = %269
  %283 = trunc nuw nsw i32 %.0310 to i8
  %284 = getelementptr inbounds i8, ptr %71, i64 2078
  store i8 %283, ptr %284, align 2, !tbaa !49
  %285 = getelementptr inbounds i8, ptr %71, i64 2064
  store i32 1, ptr %285, align 8, !tbaa !50
  %286 = call i32 @rdb_read(ptr noundef nonnull %75) #10
  %.not379417 = icmp eq i32 %286, -1
  br i1 %.not379417, label %.loopexit.thread452, label %.lr.ph420

.loopexit.thread452:                              ; preds = %282
  %287 = call i32 @rdb_clos(ptr noundef nonnull %75) #10
  br label %415

.lr.ph420:                                        ; preds = %282, %.lr.ph420
  %288 = call i32 @rdb_2dbf(ptr noundef nonnull %71, ptr noundef %75) #10
  %289 = call i32 @dbf_writ(ptr noundef nonnull %71) #10
  %290 = load i32, ptr %285, align 8, !tbaa !50
  %291 = add i32 %290, 1
  store i32 %291, ptr %285, align 8, !tbaa !50
  %292 = call i32 @rdb_read(ptr noundef %75) #10
  %.not379 = icmp eq i32 %292, -1
  br i1 %.not379, label %.loopexit, label %.lr.ph420, !llvm.loop !51

293:                                              ; preds = %269
  %294 = icmp ne i32 %.0278, 0
  %295 = icmp ne i32 %.0276, 0
  %or.cond3 = select i1 %294, i1 true, i1 %295
  %296 = icmp ne i32 %.0274, 0
  %or.cond5 = select i1 %or.cond3, i1 true, i1 %296
  %297 = icmp ne i32 %.0272, 0
  %or.cond7 = select i1 %or.cond5, i1 true, i1 %297
  br i1 %or.cond7, label %298, label %346

298:                                              ; preds = %293
  %299 = load ptr, ptr @stdout, align 8, !tbaa !11
  %300 = getelementptr inbounds i8, ptr %75, i64 2056
  store ptr %299, ptr %300, align 8, !tbaa !52
  %301 = getelementptr inbounds i8, ptr %75, i64 1024
  %302 = icmp eq ptr %.0314, null
  %303 = select i1 %302, ptr @.str.13, ptr %.0314
  %304 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %301, ptr noundef nonnull dereferenceable(1) %303) #10
  br i1 %294, label %305, label %307

305:                                              ; preds = %298
  %306 = call i32 @sql_crea(ptr noundef nonnull %75) #10
  br label %307

307:                                              ; preds = %305, %298
  br i1 %295, label %308, label %310

308:                                              ; preds = %307
  %309 = call i32 @sql_crep(ptr noundef nonnull %75) #10
  br label %310

310:                                              ; preds = %308, %307
  br i1 %296, label %311, label %313

311:                                              ; preds = %310
  %312 = call i32 @sql_crep(ptr noundef nonnull %75) #10
  br label %313

313:                                              ; preds = %311, %310
  br i1 %297, label %314, label %316

314:                                              ; preds = %313
  %315 = call i32 @yml_crea(ptr noundef nonnull %75) #10
  br label %316

316:                                              ; preds = %314, %313
  %317 = getelementptr inbounds i8, ptr %71, i64 2116
  %318 = load i32, ptr %317, align 4, !tbaa !34
  %.not377435 = icmp eq i32 %318, 0
  br i1 %.not377435, label %.loopexit.thread, label %.lr.ph439

.lr.ph439:                                        ; preds = %316
  %319 = getelementptr inbounds i8, ptr %71, i64 2104
  %320 = icmp ne i32 %.0298, 0
  br label %321

321:                                              ; preds = %.lr.ph439, %343
  %.2437 = phi i32 [ 0, %.lr.ph439 ], [ %.3, %343 ]
  %.0326436 = phi i32 [ 1, %.lr.ph439 ], [ %344, %343 ]
  %322 = call i32 @dbf_read(ptr noundef nonnull %71) #10
  %.not378 = icmp eq i32 %322, 0
  br i1 %.not378, label %324, label %323

323:                                              ; preds = %321
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 105, ptr noundef nonnull @.str.29) #10
  br label %324

324:                                              ; preds = %323, %321
  %325 = load ptr, ptr %319, align 8, !tbaa !53
  %326 = load i8, ptr %325, align 1, !tbaa !13
  %327 = icmp ne i8 %326, 42
  %or.cond9 = select i1 %327, i1 true, i1 %320
  br i1 %or.cond9, label %328, label %343

328:                                              ; preds = %324
  %329 = call i32 @dbf_2rdb(ptr noundef %75, ptr noundef nonnull %71) #10
  br i1 %294, label %330, label %332

330:                                              ; preds = %328
  %331 = call i32 @sql_writ(ptr noundef %75) #10
  br label %332

332:                                              ; preds = %330, %328
  br i1 %295, label %333, label %335

333:                                              ; preds = %332
  %334 = call i32 @sql_wrio(ptr noundef %75) #10
  br label %335

335:                                              ; preds = %333, %332
  br i1 %296, label %336, label %338

336:                                              ; preds = %335
  %337 = call i32 @sql_wrip(ptr noundef %75) #10
  br label %338

338:                                              ; preds = %336, %335
  br i1 %297, label %339, label %341

339:                                              ; preds = %338
  %340 = call i32 @yml_writ(ptr noundef %75) #10
  br label %341

341:                                              ; preds = %339, %338
  %342 = add nsw i32 %.2437, 1
  br label %343

343:                                              ; preds = %324, %341
  %.3 = phi i32 [ %342, %341 ], [ %.2437, %324 ]
  %344 = add nuw nsw i32 %.0326436, 1
  %345 = load i32, ptr %317, align 4, !tbaa !34
  %.not377.not = icmp ult i32 %.0326436, %345
  br i1 %.not377.not, label %321, label %.loopexit, !llvm.loop !54

346:                                              ; preds = %293
  %.not370 = icmp eq i32 %.0304, 0
  br i1 %.not370, label %388, label %347

347:                                              ; preds = %346
  %348 = getelementptr inbounds i8, ptr %71, i64 2084
  %349 = load i32, ptr %348, align 4, !tbaa !33
  %350 = icmp eq i32 %349, 3
  br i1 %350, label %351, label %356

351:                                              ; preds = %347
  %352 = load ptr, ptr @stderr, align 8, !tbaa !11
  %353 = icmp eq ptr %.0314, null
  %354 = select i1 %353, ptr @.str.31, ptr %.0314
  %355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %352, ptr noundef nonnull @.str.30, ptr noundef nonnull %354) #14
  br label %356

356:                                              ; preds = %351, %347
  %357 = load ptr, ptr @stdout, align 8, !tbaa !11
  %358 = getelementptr inbounds i8, ptr %75, i64 2048
  store ptr %357, ptr %358, align 8, !tbaa !15
  %359 = call i32 @dbf_crea(ptr noundef nonnull %75) #10
  %.not373 = icmp eq i32 %359, 0
  br i1 %.not373, label %361, label %360

360:                                              ; preds = %356
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 4, ptr noundef nonnull @.str.32, i32 noundef %359) #10
  br label %361

361:                                              ; preds = %360, %356
  %362 = getelementptr inbounds i8, ptr %71, i64 2104
  %363 = load ptr, ptr %362, align 8, !tbaa !53
  %364 = getelementptr inbounds i8, ptr %75, i64 2104
  store ptr %363, ptr %364, align 8, !tbaa !53
  %365 = getelementptr inbounds i8, ptr %71, i64 2116
  %366 = load i32, ptr %365, align 4, !tbaa !34
  %.not374422 = icmp eq i32 %366, 0
  br i1 %.not374422, label %._crit_edge427, label %.lr.ph426

.lr.ph426:                                        ; preds = %361
  %367 = icmp ne i32 %.0298, 0
  br label %368

368:                                              ; preds = %.lr.ph426, %379
  %.4424 = phi i32 [ 0, %.lr.ph426 ], [ %.5, %379 ]
  %.1327423 = phi i32 [ 1, %.lr.ph426 ], [ %380, %379 ]
  %369 = call i32 @dbf_read(ptr noundef nonnull %71) #10
  %.not375 = icmp eq i32 %369, 0
  br i1 %.not375, label %371, label %370

370:                                              ; preds = %368
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 105, ptr noundef nonnull @.str.29) #10
  br label %371

371:                                              ; preds = %370, %368
  %372 = load ptr, ptr %362, align 8, !tbaa !53
  %373 = load i8, ptr %372, align 1, !tbaa !13
  %374 = icmp ne i8 %373, 42
  %or.cond11 = select i1 %374, i1 true, i1 %367
  br i1 %or.cond11, label %375, label %379

375:                                              ; preds = %371
  %376 = call i32 @dbf_afix(ptr noundef nonnull %71) #10
  %377 = call i32 @dbf_writ(ptr noundef %75) #10
  %.not376 = icmp ne i32 %376, 0
  %378 = zext i1 %.not376 to i32
  %spec.select = add nsw i32 %.4424, %378
  br label %379

379:                                              ; preds = %375, %371
  %.5 = phi i32 [ %.4424, %371 ], [ %spec.select, %375 ]
  %380 = add nuw nsw i32 %.1327423, 1
  %381 = load i32, ptr %365, align 4, !tbaa !34
  %.not374.not = icmp ult i32 %.1327423, %381
  br i1 %.not374.not, label %368, label %._crit_edge427, !llvm.loop !55

._crit_edge427:                                   ; preds = %379, %361
  %.4.lcssa = phi i32 [ 0, %361 ], [ %.5, %379 ]
  %382 = call i32 @dbf_clos(ptr noundef %75) #10
  %383 = load i32, ptr %348, align 4, !tbaa !33
  %384 = icmp eq i32 %383, 3
  br i1 %384, label %385, label %.loopexit

385:                                              ; preds = %._crit_edge427
  %386 = load ptr, ptr @stderr, align 8, !tbaa !11
  %387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %386, ptr noundef nonnull @.str.33) #14
  br label %.loopexit

388:                                              ; preds = %346
  %389 = load ptr, ptr @stdout, align 8, !tbaa !11
  %390 = getelementptr inbounds i8, ptr %75, i64 2056
  store ptr %389, ptr %390, align 8, !tbaa !52
  %391 = call i32 @rdb_crea(ptr noundef nonnull %75, i32 noundef %.0296) #10
  %392 = getelementptr inbounds i8, ptr %71, i64 2116
  %393 = load i32, ptr %392, align 4, !tbaa !34
  %.not371429 = icmp eq i32 %393, 0
  br i1 %.not371429, label %.loopexit.thread, label %.lr.ph433

.lr.ph433:                                        ; preds = %388
  %394 = getelementptr inbounds i8, ptr %71, i64 2104
  %395 = icmp ne i32 %.0298, 0
  %396 = icmp eq i32 %.0306, 0
  br label %397

397:                                              ; preds = %.lr.ph433, %410
  %.6431 = phi i32 [ 0, %.lr.ph433 ], [ %.7, %410 ]
  %.2328430 = phi i32 [ 1, %.lr.ph433 ], [ %411, %410 ]
  %398 = call i32 @dbf_read(ptr noundef nonnull %71) #10
  %.not372 = icmp eq i32 %398, 0
  br i1 %.not372, label %400, label %399

399:                                              ; preds = %397
  call void (i32, ptr, ...) @lib_fatl(i32 noundef 105, ptr noundef nonnull @.str.29) #10
  br label %400

400:                                              ; preds = %399, %397
  %401 = load ptr, ptr %394, align 8, !tbaa !53
  %402 = load i8, ptr %401, align 1, !tbaa !13
  %403 = icmp ne i8 %402, 42
  %or.cond13 = select i1 %403, i1 true, i1 %395
  br i1 %or.cond13, label %404, label %410

404:                                              ; preds = %400
  %405 = call i32 @dbf_2rdb(ptr noundef %75, ptr noundef nonnull %71) #10
  %406 = icmp ne i32 %405, 0
  %or.cond15 = select i1 %396, i1 true, i1 %406
  br i1 %or.cond15, label %407, label %410

407:                                              ; preds = %404
  %408 = call i32 @rdb_writ(ptr noundef %75, i32 noundef %.0296) #10
  %409 = add nsw i32 %.6431, 1
  br label %410

410:                                              ; preds = %407, %404, %400
  %.7 = phi i32 [ %409, %407 ], [ %.6431, %404 ], [ %.6431, %400 ]
  %411 = add nuw nsw i32 %.2328430, 1
  %412 = load i32, ptr %392, align 4, !tbaa !34
  %.not371.not = icmp ult i32 %.2328430, %412
  br i1 %.not371.not, label %397, label %.loopexit, !llvm.loop !56

.loopexit.thread:                                 ; preds = %388, %316
  %413 = call i32 @rdb_clos(ptr noundef nonnull %75) #10
  br label %417

.loopexit:                                        ; preds = %.lr.ph420, %410, %343, %385, %._crit_edge427, %._crit_edge416
  %.8 = phi i32 [ %.4.lcssa, %385 ], [ %.4.lcssa, %._crit_edge427 ], [ 0, %._crit_edge416 ], [ %.3, %343 ], [ %.7, %410 ], [ 1, %.lr.ph420 ]
  %414 = call i32 @rdb_clos(ptr noundef %75) #10
  br i1 %.not338, label %417, label %415

415:                                              ; preds = %.loopexit.thread452, %.loopexit
  %.8454 = phi i32 [ 0, %.loopexit.thread452 ], [ %.8, %.loopexit ]
  %416 = call i32 @dbf_clos(ptr noundef nonnull %71) #10
  br label %417

417:                                              ; preds = %.loopexit.thread, %415, %.loopexit
  %.8451 = phi i32 [ 0, %.loopexit.thread ], [ %.8454, %415 ], [ %.8, %.loopexit ]
  %418 = icmp eq i32 %.0306, 0
  %419 = icmp eq i32 %.0304, 0
  %.not382 = select i1 %418, i1 %419, i1 false
  %420 = icmp ne i32 %.8451, 0
  %421 = xor i1 %.not382, %420
  %422 = zext i1 %421 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #10
  ret i32 %422
}

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

; Function Attrs: nounwind
declare i32 @getopt(i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

declare void @usage() local_unnamed_addr #3

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #5

declare void @lib_mesg(ptr 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 #6

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

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

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

declare ptr @lib_stat(ptr noundef) local_unnamed_addr #3

declare i32 @rdb_open(ptr noundef) local_unnamed_addr #3

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

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

declare i32 @dbf_open(ptr noundef) local_unnamed_addr #3

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

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

declare i32 @dbf_crea(ptr noundef) local_unnamed_addr #3

; 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) #9

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

declare void @dbf_info(ptr noundef) local_unnamed_addr #3

declare i32 @rdb_read(ptr noundef) local_unnamed_addr #3

declare i32 @rdb_2dbf(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @dbf_writ(ptr noundef) local_unnamed_addr #3

declare i32 @sql_crea(ptr noundef) local_unnamed_addr #3

declare i32 @sql_crep(ptr noundef) local_unnamed_addr #3

declare i32 @yml_crea(ptr noundef) local_unnamed_addr #3

declare i32 @dbf_read(ptr noundef) local_unnamed_addr #3

declare i32 @dbf_2rdb(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @sql_writ(ptr noundef) local_unnamed_addr #3

declare i32 @sql_wrio(ptr noundef) local_unnamed_addr #3

declare i32 @sql_wrip(ptr noundef) local_unnamed_addr #3

declare i32 @yml_writ(ptr noundef) local_unnamed_addr #3

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

declare i32 @dbf_afix(ptr noundef) local_unnamed_addr #3

declare i32 @dbf_clos(ptr noundef) local_unnamed_addr #3

declare i32 @rdb_crea(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @rdb_writ(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @rdb_clos(ptr noundef) local_unnamed_addr #3

; 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 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) 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 #6 = { 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 #7 = { mustprogress nofree nounwind willreturn memory(argmem: readwrite) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { nounwind }
attributes #11 = { nounwind allocsize(0) }
attributes #12 = { nounwind willreturn memory(read) }
attributes #13 = { noreturn nounwind }
attributes #14 = { cold 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 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}
!11 = !{!12, !12, i64 0}
!12 = !{!"any pointer", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = distinct !{!14, !10}
!15 = !{!16, !12, i64 2048}
!16 = !{!"DBF", !7, i64 0, !7, i64 1024, !12, i64 2048, !12, i64 2056, !6, i64 2064, !6, i64 2068, !7, i64 2072, !7, i64 2073, !7, i64 2074, !7, i64 2075, !7, i64 2076, !7, i64 2077, !7, i64 2078, !6, i64 2080, !6, i64 2084, !7, i64 2088, !12, i64 2096, !12, i64 2104, !17, i64 2112}
!17 = !{!"DBFPROLOG", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3, !6, i64 4, !18, i64 8, !18, i64 10, !18, i64 12, !7, i64 14, !7, i64 15, !7, i64 16, !7, i64 28, !7, i64 29}
!18 = !{!"short", !7, i64 0}
!19 = !{!16, !7, i64 2113}
!20 = !{!16, !7, i64 2114}
!21 = !{!22, !12, i64 48}
!22 = !{!"file", !12, i64 0, !18, i64 8, !6, i64 12, !12, i64 16, !6, i64 24, !12, i64 32, !23, i64 40, !12, i64 48}
!23 = !{!"long", !7, i64 0}
!24 = !{!25, !6, i64 20}
!25 = !{!"tm", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !6, i64 24, !6, i64 28, !6, i64 32, !23, i64 40, !12, i64 48}
!26 = !{!25, !6, i64 16}
!27 = !{!16, !7, i64 2115}
!28 = !{!16, !6, i64 2068}
!29 = !{!16, !7, i64 2072}
!30 = !{!16, !7, i64 2073}
!31 = !{!16, !7, i64 2076}
!32 = !{!16, !6, i64 2080}
!33 = !{!16, !6, i64 2084}
!34 = !{!16, !6, i64 2116}
!35 = !{!16, !18, i64 2122}
!36 = !{i64 0, i64 1024, !13, i64 1024, i64 1024, !13, i64 2048, i64 8, !11, i64 2056, i64 8, !11, i64 2064, i64 4, !5, i64 2068, i64 4, !5, i64 2072, i64 1, !13, i64 2073, i64 1, !13, i64 2074, i64 1, !13, i64 2075, i64 1, !13, i64 2076, i64 1, !13, i64 2077, i64 1, !13, i64 2078, i64 1, !13, i64 2080, i64 4, !5, i64 2084, i64 4, !5, i64 2088, i64 1, !13, i64 2096, i64 8, !11, i64 2104, i64 8, !11, i64 2112, i64 1, !13, i64 2113, i64 1, !13, i64 2114, i64 1, !13, i64 2115, i64 1, !13, i64 2116, i64 4, !5, i64 2120, i64 2, !37, i64 2122, i64 2, !37, i64 2124, i64 2, !37, i64 2126, i64 1, !13, i64 2127, i64 1, !13, i64 2128, i64 12, !13, i64 2140, i64 1, !13, i64 2141, i64 3, !13}
!37 = !{!18, !18, i64 0}
!38 = !{!16, !18, i64 2120}
!39 = !{!16, !7, i64 2088}
!40 = !{!16, !12, i64 2096}
!41 = distinct !{!41, !10}
!42 = !{!43, !7, i64 11}
!43 = !{!"FIELD_RECORD", !7, i64 0, !7, i64 11, !6, i64 12, !7, i64 16, !7, i64 17, !7, i64 18}
!44 = distinct !{!44, !10}
!45 = distinct !{!45, !10}
!46 = !{!16, !7, i64 2074}
!47 = !{!16, !7, i64 2075}
!48 = !{!16, !7, i64 2077}
!49 = !{!16, !7, i64 2078}
!50 = !{!16, !6, i64 2064}
!51 = distinct !{!51, !10}
!52 = !{!16, !12, i64 2056}
!53 = !{!16, !12, i64 2104}
!54 = distinct !{!54, !10}
!55 = distinct !{!55, !10}
!56 = distinct !{!56, !10}


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