; LLVM IR from ihucos/plash :: main (main)

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

@stderr = external global ptr, align 8
@.str = external hidden unnamed_addr constant [44 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [39 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
  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
  %6 = load i32, ptr %4, align 4, !tbaa !5
  %7 = icmp sle i32 %6, 1
  br i1 %7, label %8, label %11

8:                                                ; preds = %2
  %9 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9, ptr noundef @.str) #5
  store i32 1, ptr %3, align 4
  br label %401

11:                                               ; preds = %2
  %12 = load ptr, ptr %5, align 8, !tbaa !9
  %13 = getelementptr inbounds ptr, ptr %12, i64 1
  %14 = load ptr, ptr %13, align 8, !tbaa !9
  %15 = call i32 @strcmp(ptr noundef %14, ptr noundef @.str.1) #6
  %16 = icmp eq i32 %15, 0
  br i1 %16, label %17, label %23

17:                                               ; preds = %11
  %18 = load i32, ptr %4, align 4, !tbaa !5
  %19 = sub nsw i32 %18, 1
  %20 = load ptr, ptr %5, align 8, !tbaa !9
  %21 = getelementptr inbounds ptr, ptr %20, i64 1
  %22 = call i32 @version_main(i32 noundef %19, ptr noundef %21)
  store i32 %22, ptr %3, align 4
  br label %401

23:                                               ; preds = %11
  %24 = load ptr, ptr %5, align 8, !tbaa !9
  %25 = getelementptr inbounds ptr, ptr %24, i64 1
  %26 = load ptr, ptr %25, align 8, !tbaa !9
  %27 = call i32 @strcmp(ptr noundef %26, ptr noundef @.str.2) #6
  %28 = icmp eq i32 %27, 0
  br i1 %28, label %29, label %35

29:                                               ; preds = %23
  %30 = load i32, ptr %4, align 4, !tbaa !5
  %31 = sub nsw i32 %30, 1
  %32 = load ptr, ptr %5, align 8, !tbaa !9
  %33 = getelementptr inbounds ptr, ptr %32, i64 1
  %34 = call i32 @cache_main(i32 noundef %31, ptr noundef %33)
  store i32 %34, ptr %3, align 4
  br label %401

35:                                               ; preds = %23
  %36 = load ptr, ptr %5, align 8, !tbaa !9
  %37 = getelementptr inbounds ptr, ptr %36, i64 1
  %38 = load ptr, ptr %37, align 8, !tbaa !9
  %39 = call i32 @strcmp(ptr noundef %38, ptr noundef @.str.3) #6
  %40 = icmp eq i32 %39, 0
  br i1 %40, label %41, label %47

41:                                               ; preds = %35
  %42 = load i32, ptr %4, align 4, !tbaa !5
  %43 = sub nsw i32 %42, 1
  %44 = load ptr, ptr %5, align 8, !tbaa !9
  %45 = getelementptr inbounds ptr, ptr %44, i64 1
  %46 = call i32 @clean_main(i32 noundef %43, ptr noundef %45)
  store i32 %46, ptr %3, align 4
  br label %401

47:                                               ; preds = %35
  %48 = load ptr, ptr %5, align 8, !tbaa !9
  %49 = getelementptr inbounds ptr, ptr %48, i64 1
  %50 = load ptr, ptr %49, align 8, !tbaa !9
  %51 = call i32 @strcmp(ptr noundef %50, ptr noundef @.str.4) #6
  %52 = icmp eq i32 %51, 0
  br i1 %52, label %53, label %59

53:                                               ; preds = %47
  %54 = load i32, ptr %4, align 4, !tbaa !5
  %55 = sub nsw i32 %54, 1
  %56 = load ptr, ptr %5, align 8, !tbaa !9
  %57 = getelementptr inbounds ptr, ptr %56, i64 1
  %58 = call i32 @build_main(i32 noundef %55, ptr noundef %57)
  store i32 %58, ptr %3, align 4
  br label %401

59:                                               ; preds = %47
  %60 = load ptr, ptr %5, align 8, !tbaa !9
  %61 = getelementptr inbounds ptr, ptr %60, i64 1
  %62 = load ptr, ptr %61, align 8, !tbaa !9
  %63 = call i32 @strcmp(ptr noundef %62, ptr noundef @.str.5) #6
  %64 = icmp eq i32 %63, 0
  br i1 %64, label %65, label %71

65:                                               ; preds = %59
  %66 = load i32, ptr %4, align 4, !tbaa !5
  %67 = sub nsw i32 %66, 1
  %68 = load ptr, ptr %5, align 8, !tbaa !9
  %69 = getelementptr inbounds ptr, ptr %68, i64 1
  %70 = call i32 @parent_main(i32 noundef %67, ptr noundef %69)
  store i32 %70, ptr %3, align 4
  br label %401

71:                                               ; preds = %59
  %72 = load ptr, ptr %5, align 8, !tbaa !9
  %73 = getelementptr inbounds ptr, ptr %72, i64 1
  %74 = load ptr, ptr %73, align 8, !tbaa !9
  %75 = call i32 @strcmp(ptr noundef %74, ptr noundef @.str.6) #6
  %76 = icmp eq i32 %75, 0
  br i1 %76, label %77, label %83

77:                                               ; preds = %71
  %78 = load i32, ptr %4, align 4, !tbaa !5
  %79 = sub nsw i32 %78, 1
  %80 = load ptr, ptr %5, align 8, !tbaa !9
  %81 = getelementptr inbounds ptr, ptr %80, i64 1
  %82 = call i32 @data_main(i32 noundef %79, ptr noundef %81)
  store i32 %82, ptr %3, align 4
  br label %401

83:                                               ; preds = %71
  %84 = load ptr, ptr %5, align 8, !tbaa !9
  %85 = getelementptr inbounds ptr, ptr %84, i64 1
  %86 = load ptr, ptr %85, align 8, !tbaa !9
  %87 = call i32 @strcmp(ptr noundef %86, ptr noundef @.str.7) #6
  %88 = icmp eq i32 %87, 0
  br i1 %88, label %89, label %95

89:                                               ; preds = %83
  %90 = load i32, ptr %4, align 4, !tbaa !5
  %91 = sub nsw i32 %90, 1
  %92 = load ptr, ptr %5, align 8, !tbaa !9
  %93 = getelementptr inbounds ptr, ptr %92, i64 1
  %94 = call i32 @help_main(i32 noundef %91, ptr noundef %93)
  store i32 %94, ptr %3, align 4
  br label %401

95:                                               ; preds = %83
  %96 = load ptr, ptr %5, align 8, !tbaa !9
  %97 = getelementptr inbounds ptr, ptr %96, i64 1
  %98 = load ptr, ptr %97, align 8, !tbaa !9
  %99 = call i32 @strcmp(ptr noundef %98, ptr noundef @.str.8) #6
  %100 = icmp eq i32 %99, 0
  br i1 %100, label %101, label %107

101:                                              ; preds = %95
  %102 = load i32, ptr %4, align 4, !tbaa !5
  %103 = sub nsw i32 %102, 1
  %104 = load ptr, ptr %5, align 8, !tbaa !9
  %105 = getelementptr inbounds ptr, ptr %104, i64 1
  %106 = call i32 @init_main(i32 noundef %103, ptr noundef %105)
  store i32 %106, ptr %3, align 4
  br label %401

107:                                              ; preds = %95
  %108 = load ptr, ptr %5, align 8, !tbaa !9
  %109 = getelementptr inbounds ptr, ptr %108, i64 1
  %110 = load ptr, ptr %109, align 8, !tbaa !9
  %111 = call i32 @strcmp(ptr noundef %110, ptr noundef @.str.9) #6
  %112 = icmp eq i32 %111, 0
  br i1 %112, label %113, label %119

113:                                              ; preds = %107
  %114 = load i32, ptr %4, align 4, !tbaa !5
  %115 = sub nsw i32 %114, 1
  %116 = load ptr, ptr %5, align 8, !tbaa !9
  %117 = getelementptr inbounds ptr, ptr %116, i64 1
  %118 = call i32 @map_main(i32 noundef %115, ptr noundef %117)
  store i32 %118, ptr %3, align 4
  br label %401

119:                                              ; preds = %107
  %120 = load ptr, ptr %5, align 8, !tbaa !9
  %121 = getelementptr inbounds ptr, ptr %120, i64 1
  %122 = load ptr, ptr %121, align 8, !tbaa !9
  %123 = call i32 @strcmp(ptr noundef %122, ptr noundef @.str.10) #6
  %124 = icmp eq i32 %123, 0
  br i1 %124, label %125, label %131

125:                                              ; preds = %119
  %126 = load i32, ptr %4, align 4, !tbaa !5
  %127 = sub nsw i32 %126, 1
  %128 = load ptr, ptr %5, align 8, !tbaa !9
  %129 = getelementptr inbounds ptr, ptr %128, i64 1
  %130 = call i32 @mkdtemp_main(i32 noundef %127, ptr noundef %129)
  store i32 %130, ptr %3, align 4
  br label %401

131:                                              ; preds = %119
  %132 = load ptr, ptr %5, align 8, !tbaa !9
  %133 = getelementptr inbounds ptr, ptr %132, i64 1
  %134 = load ptr, ptr %133, align 8, !tbaa !9
  %135 = call i32 @strcmp(ptr noundef %134, ptr noundef @.str.11) #6
  %136 = icmp eq i32 %135, 0
  br i1 %136, label %137, label %143

137:                                              ; preds = %131
  %138 = load i32, ptr %4, align 4, !tbaa !5
  %139 = sub nsw i32 %138, 1
  %140 = load ptr, ptr %5, align 8, !tbaa !9
  %141 = getelementptr inbounds ptr, ptr %140, i64 1
  %142 = call i32 @mount_main(i32 noundef %139, ptr noundef %141)
  store i32 %142, ptr %3, align 4
  br label %401

143:                                              ; preds = %131
  %144 = load ptr, ptr %5, align 8, !tbaa !9
  %145 = getelementptr inbounds ptr, ptr %144, i64 1
  %146 = load ptr, ptr %145, align 8, !tbaa !9
  %147 = call i32 @strcmp(ptr noundef %146, ptr noundef @.str.12) #6
  %148 = icmp eq i32 %147, 0
  br i1 %148, label %149, label %155

149:                                              ; preds = %143
  %150 = load i32, ptr %4, align 4, !tbaa !5
  %151 = sub nsw i32 %150, 1
  %152 = load ptr, ptr %5, align 8, !tbaa !9
  %153 = getelementptr inbounds ptr, ptr %152, i64 1
  %154 = call i32 @mounted_main(i32 noundef %151, ptr noundef %153)
  store i32 %154, ptr %3, align 4
  br label %401

155:                                              ; preds = %143
  %156 = load ptr, ptr %5, align 8, !tbaa !9
  %157 = getelementptr inbounds ptr, ptr %156, i64 1
  %158 = load ptr, ptr %157, align 8, !tbaa !9
  %159 = call i32 @strcmp(ptr noundef %158, ptr noundef @.str.13) #6
  %160 = icmp eq i32 %159, 0
  br i1 %160, label %161, label %167

161:                                              ; preds = %155
  %162 = load i32, ptr %4, align 4, !tbaa !5
  %163 = sub nsw i32 %162, 1
  %164 = load ptr, ptr %5, align 8, !tbaa !9
  %165 = getelementptr inbounds ptr, ptr %164, i64 1
  %166 = call i32 @nodepath_main(i32 noundef %163, ptr noundef %165)
  store i32 %166, ptr %3, align 4
  br label %401

167:                                              ; preds = %155
  %168 = load ptr, ptr %5, align 8, !tbaa !9
  %169 = getelementptr inbounds ptr, ptr %168, i64 1
  %170 = load ptr, ptr %169, align 8, !tbaa !9
  %171 = call i32 @strcmp(ptr noundef %170, ptr noundef @.str.14) #6
  %172 = icmp eq i32 %171, 0
  br i1 %172, label %173, label %179

173:                                              ; preds = %167
  %174 = load i32, ptr %4, align 4, !tbaa !5
  %175 = sub nsw i32 %174, 1
  %176 = load ptr, ptr %5, align 8, !tbaa !9
  %177 = getelementptr inbounds ptr, ptr %176, i64 1
  %178 = call i32 @recall_main(i32 noundef %175, ptr noundef %177)
  store i32 %178, ptr %3, align 4
  br label %401

179:                                              ; preds = %167
  %180 = load ptr, ptr %5, align 8, !tbaa !9
  %181 = getelementptr inbounds ptr, ptr %180, i64 1
  %182 = load ptr, ptr %181, align 8, !tbaa !9
  %183 = call i32 @strcmp(ptr noundef %182, ptr noundef @.str.15) #6
  %184 = icmp eq i32 %183, 0
  br i1 %184, label %185, label %191

185:                                              ; preds = %179
  %186 = load i32, ptr %4, align 4, !tbaa !5
  %187 = sub nsw i32 %186, 1
  %188 = load ptr, ptr %5, align 8, !tbaa !9
  %189 = getelementptr inbounds ptr, ptr %188, i64 1
  %190 = call i32 @pull_docker_main(i32 noundef %187, ptr noundef %189)
  store i32 %190, ptr %3, align 4
  br label %401

191:                                              ; preds = %179
  %192 = load ptr, ptr %5, align 8, !tbaa !9
  %193 = getelementptr inbounds ptr, ptr %192, i64 1
  %194 = load ptr, ptr %193, align 8, !tbaa !9
  %195 = call i32 @strcmp(ptr noundef %194, ptr noundef @.str.16) #6
  %196 = icmp eq i32 %195, 0
  br i1 %196, label %197, label %203

197:                                              ; preds = %191
  %198 = load i32, ptr %4, align 4, !tbaa !5
  %199 = sub nsw i32 %198, 1
  %200 = load ptr, ptr %5, align 8, !tbaa !9
  %201 = getelementptr inbounds ptr, ptr %200, i64 1
  %202 = call i32 @pull_lxc_main(i32 noundef %199, ptr noundef %201)
  store i32 %202, ptr %3, align 4
  br label %401

203:                                              ; preds = %191
  %204 = load ptr, ptr %5, align 8, !tbaa !9
  %205 = getelementptr inbounds ptr, ptr %204, i64 1
  %206 = load ptr, ptr %205, align 8, !tbaa !9
  %207 = call i32 @strcmp(ptr noundef %206, ptr noundef @.str.17) #6
  %208 = icmp eq i32 %207, 0
  br i1 %208, label %209, label %215

209:                                              ; preds = %203
  %210 = load i32, ptr %4, align 4, !tbaa !5
  %211 = sub nsw i32 %210, 1
  %212 = load ptr, ptr %5, align 8, !tbaa !9
  %213 = getelementptr inbounds ptr, ptr %212, i64 1
  %214 = call i32 @pull_tarfile_main(i32 noundef %211, ptr noundef %213)
  store i32 %214, ptr %3, align 4
  br label %401

215:                                              ; preds = %203
  %216 = load ptr, ptr %5, align 8, !tbaa !9
  %217 = getelementptr inbounds ptr, ptr %216, i64 1
  %218 = load ptr, ptr %217, align 8, !tbaa !9
  %219 = call i32 @strcmp(ptr noundef %218, ptr noundef @.str.18) #6
  %220 = icmp eq i32 %219, 0
  br i1 %220, label %221, label %227

221:                                              ; preds = %215
  %222 = load i32, ptr %4, align 4, !tbaa !5
  %223 = sub nsw i32 %222, 1
  %224 = load ptr, ptr %5, align 8, !tbaa !9
  %225 = getelementptr inbounds ptr, ptr %224, i64 1
  %226 = call i32 @pull_url_main(i32 noundef %223, ptr noundef %225)
  store i32 %226, ptr %3, align 4
  br label %401

227:                                              ; preds = %215
  %228 = load ptr, ptr %5, align 8, !tbaa !9
  %229 = getelementptr inbounds ptr, ptr %228, i64 1
  %230 = load ptr, ptr %229, align 8, !tbaa !9
  %231 = call i32 @strcmp(ptr noundef %230, ptr noundef @.str.19) #6
  %232 = icmp eq i32 %231, 0
  br i1 %232, label %233, label %239

233:                                              ; preds = %227
  %234 = load i32, ptr %4, align 4, !tbaa !5
  %235 = sub nsw i32 %234, 1
  %236 = load ptr, ptr %5, align 8, !tbaa !9
  %237 = getelementptr inbounds ptr, ptr %236, i64 1
  %238 = call i32 @purge_main(i32 noundef %235, ptr noundef %237)
  store i32 %238, ptr %3, align 4
  br label %401

239:                                              ; preds = %227
  %240 = load ptr, ptr %5, align 8, !tbaa !9
  %241 = getelementptr inbounds ptr, ptr %240, i64 1
  %242 = load ptr, ptr %241, align 8, !tbaa !9
  %243 = call i32 @strcmp(ptr noundef %242, ptr noundef @.str.20) #6
  %244 = icmp eq i32 %243, 0
  br i1 %244, label %245, label %251

245:                                              ; preds = %239
  %246 = load i32, ptr %4, align 4, !tbaa !5
  %247 = sub nsw i32 %246, 1
  %248 = load ptr, ptr %5, align 8, !tbaa !9
  %249 = getelementptr inbounds ptr, ptr %248, i64 1
  %250 = call i32 @push_dir_main(i32 noundef %247, ptr noundef %249)
  store i32 %250, ptr %3, align 4
  br label %401

251:                                              ; preds = %239
  %252 = load ptr, ptr %5, align 8, !tbaa !9
  %253 = getelementptr inbounds ptr, ptr %252, i64 1
  %254 = load ptr, ptr %253, align 8, !tbaa !9
  %255 = call i32 @strcmp(ptr noundef %254, ptr noundef @.str.21) #6
  %256 = icmp eq i32 %255, 0
  br i1 %256, label %257, label %263

257:                                              ; preds = %251
  %258 = load i32, ptr %4, align 4, !tbaa !5
  %259 = sub nsw i32 %258, 1
  %260 = load ptr, ptr %5, align 8, !tbaa !9
  %261 = getelementptr inbounds ptr, ptr %260, i64 1
  %262 = call i32 @push_tarfile_main(i32 noundef %259, ptr noundef %261)
  store i32 %262, ptr %3, align 4
  br label %401

263:                                              ; preds = %251
  %264 = load ptr, ptr %5, align 8, !tbaa !9
  %265 = getelementptr inbounds ptr, ptr %264, i64 1
  %266 = load ptr, ptr %265, align 8, !tbaa !9
  %267 = call i32 @strcmp(ptr noundef %266, ptr noundef @.str.22) #6
  %268 = icmp eq i32 %267, 0
  br i1 %268, label %269, label %275

269:                                              ; preds = %263
  %270 = load i32, ptr %4, align 4, !tbaa !5
  %271 = sub nsw i32 %270, 1
  %272 = load ptr, ptr %5, align 8, !tbaa !9
  %273 = getelementptr inbounds ptr, ptr %272, i64 1
  %274 = call i32 @rm_main(i32 noundef %271, ptr noundef %273)
  store i32 %274, ptr %3, align 4
  br label %401

275:                                              ; preds = %263
  %276 = load ptr, ptr %5, align 8, !tbaa !9
  %277 = getelementptr inbounds ptr, ptr %276, i64 1
  %278 = load ptr, ptr %277, align 8, !tbaa !9
  %279 = call i32 @strcmp(ptr noundef %278, ptr noundef @.str.23) #6
  %280 = icmp eq i32 %279, 0
  br i1 %280, label %281, label %287

281:                                              ; preds = %275
  %282 = load i32, ptr %4, align 4, !tbaa !5
  %283 = sub nsw i32 %282, 1
  %284 = load ptr, ptr %5, align 8, !tbaa !9
  %285 = getelementptr inbounds ptr, ptr %284, i64 1
  %286 = call i32 @run_main(i32 noundef %283, ptr noundef %285)
  store i32 %286, ptr %3, align 4
  br label %401

287:                                              ; preds = %275
  %288 = load ptr, ptr %5, align 8, !tbaa !9
  %289 = getelementptr inbounds ptr, ptr %288, i64 1
  %290 = load ptr, ptr %289, align 8, !tbaa !9
  %291 = call i32 @strcmp(ptr noundef %290, ptr noundef @.str.24) #6
  %292 = icmp eq i32 %291, 0
  br i1 %292, label %293, label %299

293:                                              ; preds = %287
  %294 = load i32, ptr %4, align 4, !tbaa !5
  %295 = sub nsw i32 %294, 1
  %296 = load ptr, ptr %5, align 8, !tbaa !9
  %297 = getelementptr inbounds ptr, ptr %296, i64 1
  %298 = call i32 @run_main(i32 noundef %295, ptr noundef %297)
  store i32 %298, ptr %3, align 4
  br label %401

299:                                              ; preds = %287
  %300 = load ptr, ptr %5, align 8, !tbaa !9
  %301 = getelementptr inbounds ptr, ptr %300, i64 1
  %302 = load ptr, ptr %301, align 8, !tbaa !9
  %303 = call i32 @strcmp(ptr noundef %302, ptr noundef @.str.25) #6
  %304 = icmp eq i32 %303, 0
  br i1 %304, label %305, label %311

305:                                              ; preds = %299
  %306 = load i32, ptr %4, align 4, !tbaa !5
  %307 = sub nsw i32 %306, 1
  %308 = load ptr, ptr %5, align 8, !tbaa !9
  %309 = getelementptr inbounds ptr, ptr %308, i64 1
  %310 = call i32 @chroot_main(i32 noundef %307, ptr noundef %309)
  store i32 %310, ptr %3, align 4
  br label %401

311:                                              ; preds = %299
  %312 = load ptr, ptr %5, align 8, !tbaa !9
  %313 = getelementptr inbounds ptr, ptr %312, i64 1
  %314 = load ptr, ptr %313, align 8, !tbaa !9
  %315 = call i32 @strcmp(ptr noundef %314, ptr noundef @.str.26) #6
  %316 = icmp eq i32 %315, 0
  br i1 %316, label %317, label %323

317:                                              ; preds = %311
  %318 = load i32, ptr %4, align 4, !tbaa !5
  %319 = sub nsw i32 %318, 1
  %320 = load ptr, ptr %5, align 8, !tbaa !9
  %321 = getelementptr inbounds ptr, ptr %320, i64 1
  %322 = call i32 @shrink_main(i32 noundef %319, ptr noundef %321)
  store i32 %322, ptr %3, align 4
  br label %401

323:                                              ; preds = %311
  %324 = load ptr, ptr %5, align 8, !tbaa !9
  %325 = getelementptr inbounds ptr, ptr %324, i64 1
  %326 = load ptr, ptr %325, align 8, !tbaa !9
  %327 = call i32 @strcmp(ptr noundef %326, ptr noundef @.str.27) #6
  %328 = icmp eq i32 %327, 0
  br i1 %328, label %329, label %335

329:                                              ; preds = %323
  %330 = load i32, ptr %4, align 4, !tbaa !5
  %331 = sub nsw i32 %330, 1
  %332 = load ptr, ptr %5, align 8, !tbaa !9
  %333 = getelementptr inbounds ptr, ptr %332, i64 1
  %334 = call i32 @stack_main(i32 noundef %331, ptr noundef %333)
  store i32 %334, ptr %3, align 4
  br label %401

335:                                              ; preds = %323
  %336 = load ptr, ptr %5, align 8, !tbaa !9
  %337 = getelementptr inbounds ptr, ptr %336, i64 1
  %338 = load ptr, ptr %337, align 8, !tbaa !9
  %339 = call i32 @strcmp(ptr noundef %338, ptr noundef @.str.28) #6
  %340 = icmp eq i32 %339, 0
  br i1 %340, label %341, label %347

341:                                              ; preds = %335
  %342 = load i32, ptr %4, align 4, !tbaa !5
  %343 = sub nsw i32 %342, 1
  %344 = load ptr, ptr %5, align 8, !tbaa !9
  %345 = getelementptr inbounds ptr, ptr %344, i64 1
  %346 = call i32 @sudo_main(i32 noundef %343, ptr noundef %345)
  store i32 %346, ptr %3, align 4
  br label %401

347:                                              ; preds = %335
  %348 = load ptr, ptr %5, align 8, !tbaa !9
  %349 = getelementptr inbounds ptr, ptr %348, i64 1
  %350 = load ptr, ptr %349, align 8, !tbaa !9
  %351 = call i32 @strcmp(ptr noundef %350, ptr noundef @.str.1) #6
  %352 = icmp eq i32 %351, 0
  br i1 %352, label %353, label %359

353:                                              ; preds = %347
  %354 = load i32, ptr %4, align 4, !tbaa !5
  %355 = sub nsw i32 %354, 1
  %356 = load ptr, ptr %5, align 8, !tbaa !9
  %357 = getelementptr inbounds ptr, ptr %356, i64 1
  %358 = call i32 @version_main(i32 noundef %355, ptr noundef %357)
  store i32 %358, ptr %3, align 4
  br label %401

359:                                              ; preds = %347
  %360 = load ptr, ptr %5, align 8, !tbaa !9
  %361 = getelementptr inbounds ptr, ptr %360, i64 1
  %362 = load ptr, ptr %361, align 8, !tbaa !9
  %363 = call i32 @strcmp(ptr noundef %362, ptr noundef @.str.29) #6
  %364 = icmp eq i32 %363, 0
  br i1 %364, label %365, label %371

365:                                              ; preds = %359
  %366 = load i32, ptr %4, align 4, !tbaa !5
  %367 = sub nsw i32 %366, 1
  %368 = load ptr, ptr %5, align 8, !tbaa !9
  %369 = getelementptr inbounds ptr, ptr %368, i64 1
  %370 = call i32 @check_main(i32 noundef %367, ptr noundef %369)
  store i32 %370, ptr %3, align 4
  br label %401

371:                                              ; preds = %359
  %372 = load ptr, ptr %5, align 8, !tbaa !9
  %373 = getelementptr inbounds ptr, ptr %372, i64 1
  %374 = load ptr, ptr %373, align 8, !tbaa !9
  %375 = call i32 @strcmp(ptr noundef %374, ptr noundef @.str.30) #6
  %376 = icmp eq i32 %375, 0
  br i1 %376, label %377, label %383

377:                                              ; preds = %371
  %378 = load i32, ptr %4, align 4, !tbaa !5
  %379 = sub nsw i32 %378, 1
  %380 = load ptr, ptr %5, align 8, !tbaa !9
  %381 = getelementptr inbounds ptr, ptr %380, i64 1
  %382 = call i32 @do_main(i32 noundef %379, ptr noundef %381)
  store i32 %382, ptr %3, align 4
  br label %401

383:                                              ; preds = %371
  %384 = load ptr, ptr %5, align 8, !tbaa !9
  %385 = getelementptr inbounds ptr, ptr %384, i64 1
  %386 = load ptr, ptr %385, align 8, !tbaa !9
  %387 = call i32 @strcmp(ptr noundef %386, ptr noundef @.str.31) #6
  %388 = icmp eq i32 %387, 0
  br i1 %388, label %389, label %395

389:                                              ; preds = %383
  %390 = load i32, ptr %4, align 4, !tbaa !5
  %391 = sub nsw i32 %390, 1
  %392 = load ptr, ptr %5, align 8, !tbaa !9
  %393 = getelementptr inbounds ptr, ptr %392, i64 1
  %394 = call i32 @id_main(i32 noundef %391, ptr noundef %393)
  store i32 %394, ptr %3, align 4
  br label %401

395:                                              ; preds = %383
  %396 = call ptr @__errno_location() #7
  store i32 0, ptr %396, align 4, !tbaa !5
  %397 = load ptr, ptr %5, align 8, !tbaa !9
  %398 = getelementptr inbounds ptr, ptr %397, i64 1
  %399 = load ptr, ptr %398, align 8, !tbaa !9
  %400 = call i32 (ptr, ...) @pl_fatal(ptr noundef @.str.32, ptr noundef %399)
  br label %401

401:                                              ; preds = %395, %389, %377, %365, %353, %341, %329, %317, %305, %293, %281, %269, %257, %245, %233, %221, %209, %197, %185, %173, %161, %149, %137, %125, %113, %101, %89, %77, %65, %53, %41, %29, %17, %8
  %402 = load i32, ptr %3, align 4
  ret i32 %402
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #4

declare i32 @pl_fatal(ptr noundef, ...) #3

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { 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 #2 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind }
attributes #6 = { nounwind willreturn memory(read) }
attributes #7 = { nounwind willreturn memory(none) }

!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}


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

@stderr = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [44 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [39 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) local_unnamed_addr #0 {
  %3 = icmp slt i32 %0, 2
  br i1 %3, label %4, label %7

4:                                                ; preds = %2
  %5 = load ptr, ptr @stderr, align 8, !tbaa !5
  %6 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str) #5
  br label %198

7:                                                ; preds = %2
  %8 = getelementptr inbounds i8, ptr %1, i64 8
  %9 = load ptr, ptr %8, align 8, !tbaa !5
  %10 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.1) #6
  %11 = icmp eq i32 %10, 0
  br i1 %11, label %12, label %15

12:                                               ; preds = %7
  %13 = add nsw i32 %0, -1
  %14 = tail call i32 @version_main(i32 noundef %13, ptr noundef nonnull %8) #7
  br label %198

15:                                               ; preds = %7
  %16 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.2) #6
  %17 = icmp eq i32 %16, 0
  br i1 %17, label %18, label %21

18:                                               ; preds = %15
  %19 = add nsw i32 %0, -1
  %20 = tail call i32 @cache_main(i32 noundef %19, ptr noundef nonnull %8) #7
  br label %198

21:                                               ; preds = %15
  %22 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.3) #6
  %23 = icmp eq i32 %22, 0
  br i1 %23, label %24, label %27

24:                                               ; preds = %21
  %25 = add nsw i32 %0, -1
  %26 = tail call i32 @clean_main(i32 noundef %25, ptr noundef nonnull %8) #7
  br label %198

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

30:                                               ; preds = %27
  %31 = add nsw i32 %0, -1
  %32 = tail call i32 @build_main(i32 noundef %31, ptr noundef nonnull %8) #7
  br label %198

33:                                               ; preds = %27
  %34 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.5) #6
  %35 = icmp eq i32 %34, 0
  br i1 %35, label %36, label %39

36:                                               ; preds = %33
  %37 = add nsw i32 %0, -1
  %38 = tail call i32 @parent_main(i32 noundef %37, ptr noundef nonnull %8) #7
  br label %198

39:                                               ; preds = %33
  %40 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.6) #6
  %41 = icmp eq i32 %40, 0
  br i1 %41, label %42, label %45

42:                                               ; preds = %39
  %43 = add nsw i32 %0, -1
  %44 = tail call i32 @data_main(i32 noundef %43, ptr noundef nonnull %8) #7
  br label %198

45:                                               ; preds = %39
  %46 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.7) #6
  %47 = icmp eq i32 %46, 0
  br i1 %47, label %48, label %51

48:                                               ; preds = %45
  %49 = add nsw i32 %0, -1
  %50 = tail call i32 @help_main(i32 noundef %49, ptr noundef nonnull %8) #7
  br label %198

51:                                               ; preds = %45
  %52 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.8) #6
  %53 = icmp eq i32 %52, 0
  br i1 %53, label %54, label %57

54:                                               ; preds = %51
  %55 = add nsw i32 %0, -1
  %56 = tail call i32 @init_main(i32 noundef %55, ptr noundef nonnull %8) #7
  br label %198

57:                                               ; preds = %51
  %58 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.9) #6
  %59 = icmp eq i32 %58, 0
  br i1 %59, label %60, label %63

60:                                               ; preds = %57
  %61 = add nsw i32 %0, -1
  %62 = tail call i32 @map_main(i32 noundef %61, ptr noundef nonnull %8) #7
  br label %198

63:                                               ; preds = %57
  %64 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.10) #6
  %65 = icmp eq i32 %64, 0
  br i1 %65, label %66, label %69

66:                                               ; preds = %63
  %67 = add nsw i32 %0, -1
  %68 = tail call i32 @mkdtemp_main(i32 noundef %67, ptr noundef nonnull %8) #7
  br label %198

69:                                               ; preds = %63
  %70 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.11) #6
  %71 = icmp eq i32 %70, 0
  br i1 %71, label %72, label %75

72:                                               ; preds = %69
  %73 = add nsw i32 %0, -1
  %74 = tail call i32 @mount_main(i32 noundef %73, ptr noundef nonnull %8) #7
  br label %198

75:                                               ; preds = %69
  %76 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.12) #6
  %77 = icmp eq i32 %76, 0
  br i1 %77, label %78, label %81

78:                                               ; preds = %75
  %79 = add nsw i32 %0, -1
  %80 = tail call i32 @mounted_main(i32 noundef %79, ptr noundef nonnull %8) #7
  br label %198

81:                                               ; preds = %75
  %82 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.13) #6
  %83 = icmp eq i32 %82, 0
  br i1 %83, label %84, label %87

84:                                               ; preds = %81
  %85 = add nsw i32 %0, -1
  %86 = tail call i32 @nodepath_main(i32 noundef %85, ptr noundef nonnull %8) #7
  br label %198

87:                                               ; preds = %81
  %88 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.14) #6
  %89 = icmp eq i32 %88, 0
  br i1 %89, label %90, label %93

90:                                               ; preds = %87
  %91 = add nsw i32 %0, -1
  %92 = tail call i32 @recall_main(i32 noundef %91, ptr noundef nonnull %8) #7
  br label %198

93:                                               ; preds = %87
  %94 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.15) #6
  %95 = icmp eq i32 %94, 0
  br i1 %95, label %96, label %99

96:                                               ; preds = %93
  %97 = add nsw i32 %0, -1
  %98 = tail call i32 @pull_docker_main(i32 noundef %97, ptr noundef nonnull %8) #7
  br label %198

99:                                               ; preds = %93
  %100 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.16) #6
  %101 = icmp eq i32 %100, 0
  br i1 %101, label %102, label %105

102:                                              ; preds = %99
  %103 = add nsw i32 %0, -1
  %104 = tail call i32 @pull_lxc_main(i32 noundef %103, ptr noundef nonnull %8) #7
  br label %198

105:                                              ; preds = %99
  %106 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.17) #6
  %107 = icmp eq i32 %106, 0
  br i1 %107, label %108, label %111

108:                                              ; preds = %105
  %109 = add nsw i32 %0, -1
  %110 = tail call i32 @pull_tarfile_main(i32 noundef %109, ptr noundef nonnull %8) #7
  br label %198

111:                                              ; preds = %105
  %112 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.18) #6
  %113 = icmp eq i32 %112, 0
  br i1 %113, label %114, label %117

114:                                              ; preds = %111
  %115 = add nsw i32 %0, -1
  %116 = tail call i32 @pull_url_main(i32 noundef %115, ptr noundef nonnull %8) #7
  br label %198

117:                                              ; preds = %111
  %118 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.19) #6
  %119 = icmp eq i32 %118, 0
  br i1 %119, label %120, label %123

120:                                              ; preds = %117
  %121 = add nsw i32 %0, -1
  %122 = tail call i32 @purge_main(i32 noundef %121, ptr noundef nonnull %8) #7
  br label %198

123:                                              ; preds = %117
  %124 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.20) #6
  %125 = icmp eq i32 %124, 0
  br i1 %125, label %126, label %129

126:                                              ; preds = %123
  %127 = add nsw i32 %0, -1
  %128 = tail call i32 @push_dir_main(i32 noundef %127, ptr noundef nonnull %8) #7
  br label %198

129:                                              ; preds = %123
  %130 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.21) #6
  %131 = icmp eq i32 %130, 0
  br i1 %131, label %132, label %135

132:                                              ; preds = %129
  %133 = add nsw i32 %0, -1
  %134 = tail call i32 @push_tarfile_main(i32 noundef %133, ptr noundef nonnull %8) #7
  br label %198

135:                                              ; preds = %129
  %136 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.22) #6
  %137 = icmp eq i32 %136, 0
  br i1 %137, label %138, label %141

138:                                              ; preds = %135
  %139 = add nsw i32 %0, -1
  %140 = tail call i32 @rm_main(i32 noundef %139, ptr noundef nonnull %8) #7
  br label %198

141:                                              ; preds = %135
  %142 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.23) #6
  %143 = icmp eq i32 %142, 0
  br i1 %143, label %144, label %147

144:                                              ; preds = %141
  %145 = add nsw i32 %0, -1
  %146 = tail call i32 @run_main(i32 noundef %145, ptr noundef nonnull %8) #7
  br label %198

147:                                              ; preds = %141
  %148 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.24) #6
  %149 = icmp eq i32 %148, 0
  br i1 %149, label %150, label %153

150:                                              ; preds = %147
  %151 = add nsw i32 %0, -1
  %152 = tail call i32 @run_main(i32 noundef %151, ptr noundef nonnull %8) #7
  br label %198

153:                                              ; preds = %147
  %154 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.25) #6
  %155 = icmp eq i32 %154, 0
  br i1 %155, label %156, label %159

156:                                              ; preds = %153
  %157 = add nsw i32 %0, -1
  %158 = tail call i32 @chroot_main(i32 noundef %157, ptr noundef nonnull %8) #7
  br label %198

159:                                              ; preds = %153
  %160 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.26) #6
  %161 = icmp eq i32 %160, 0
  br i1 %161, label %162, label %165

162:                                              ; preds = %159
  %163 = add nsw i32 %0, -1
  %164 = tail call i32 @shrink_main(i32 noundef %163, ptr noundef nonnull %8) #7
  br label %198

165:                                              ; preds = %159
  %166 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.27) #6
  %167 = icmp eq i32 %166, 0
  br i1 %167, label %168, label %171

168:                                              ; preds = %165
  %169 = add nsw i32 %0, -1
  %170 = tail call i32 @stack_main(i32 noundef %169, ptr noundef nonnull %8) #7
  br label %198

171:                                              ; preds = %165
  %172 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.28) #6
  %173 = icmp eq i32 %172, 0
  br i1 %173, label %174, label %177

174:                                              ; preds = %171
  %175 = add nsw i32 %0, -1
  %176 = tail call i32 @sudo_main(i32 noundef %175, ptr noundef nonnull %8) #7
  br label %198

177:                                              ; preds = %171
  %178 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.29) #6
  %179 = icmp eq i32 %178, 0
  br i1 %179, label %180, label %183

180:                                              ; preds = %177
  %181 = add nsw i32 %0, -1
  %182 = tail call i32 @check_main(i32 noundef %181, ptr noundef nonnull %8) #7
  br label %198

183:                                              ; preds = %177
  %184 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.30) #6
  %185 = icmp eq i32 %184, 0
  br i1 %185, label %186, label %189

186:                                              ; preds = %183
  %187 = add nsw i32 %0, -1
  %188 = tail call i32 @do_main(i32 noundef %187, ptr noundef nonnull %8) #7
  br label %198

189:                                              ; preds = %183
  %190 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %9, ptr noundef nonnull dereferenceable(1) @.str.31) #6
  %191 = icmp eq i32 %190, 0
  br i1 %191, label %192, label %195

192:                                              ; preds = %189
  %193 = add nsw i32 %0, -1
  %194 = tail call i32 @id_main(i32 noundef %193, ptr noundef nonnull %8) #7
  br label %198

195:                                              ; preds = %189
  %196 = tail call ptr @__errno_location() #8
  store i32 0, ptr %196, align 4, !tbaa !9
  %197 = tail call i32 (ptr, ...) @pl_fatal(ptr noundef nonnull @.str.32, ptr noundef %9) #7
  br label %198

198:                                              ; preds = %195, %192, %186, %180, %174, %168, %162, %156, %150, %144, %138, %132, %126, %120, %114, %108, %102, %96, %90, %84, %78, %72, %66, %60, %54, %48, %42, %36, %30, %24, %18, %12, %4
  %.0 = phi i32 [ 1, %4 ], [ %14, %12 ], [ %20, %18 ], [ %26, %24 ], [ %32, %30 ], [ %38, %36 ], [ %44, %42 ], [ %50, %48 ], [ %56, %54 ], [ %62, %60 ], [ %68, %66 ], [ %74, %72 ], [ %80, %78 ], [ %86, %84 ], [ %92, %90 ], [ %98, %96 ], [ %104, %102 ], [ %110, %108 ], [ %116, %114 ], [ %122, %120 ], [ %128, %126 ], [ %134, %132 ], [ %140, %138 ], [ %146, %144 ], [ %152, %150 ], [ %158, %156 ], [ %164, %162 ], [ %170, %168 ], [ %176, %174 ], [ %182, %180 ], [ %188, %186 ], [ %194, %192 ], [ 0, %195 ]
  ret i32 %.0
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #4

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { 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 #2 = { mustprogress nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { cold nounwind }
attributes #6 = { nounwind willreturn memory(read) }
attributes #7 = { nounwind }
attributes #8 = { nounwind willreturn memory(none) }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,SROAPass,SimplifyCFGPass,TailCallElimPass