Aboudek/ASM_TO_LLVM_V2
0
1; ModuleID = 'winfile/src/extr_wfdirsrc.c_DSRectItem.c'2source_filename = "winfile/src/extr_wfdirsrc.c_DSRectItem.c"3target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"4target triple = "x86_64-unknown-linux-gnu"5 6%struct.TYPE_3__ = type { i32 }7 8@MAXPATHLEN = dso_local global i32 0, align 49@hwndDragging = dso_local global i64 0, align 810@hwndStatus = dso_local global i64 0, align 811@SB_SETTEXT = dso_local global i32 0, align 412@SBT_NOBORDERS = dso_local global i32 0, align 413@szNULL = dso_local global i64 0, align 814@FS_GETDIRECTORY = dso_local global i32 0, align 415@SST_RESOURCE = dso_local global i32 0, align 416@SST_FORMAT = dso_local global i32 0, align 417@fShowSourceBitmaps = dso_local global i64 0, align 818@IDS_DRAG_COPYING = dso_local global i64 0, align 819@IDS_DRAG_MOVING = dso_local global i64 0, align 820@FALSE = dso_local global i64 0, align 821@LB_GETSEL = dso_local global i32 0, align 422@LB_GETTEXT = dso_local global i32 0, align 423@LB_ERR = dso_local global i64 0, align 824@ATTR_DIR = dso_local global i32 0, align 425@ATTR_PARENT = dso_local global i32 0, align 426@IDS_DRAG_EXECUTING = dso_local global i64 0, align 827@LB_GETITEMRECT = dso_local global i32 0, align 428@COLOR_WINDOW = dso_local global i32 0, align 429@COLOR_WINDOWFRAME = dso_local global i32 0, align 430@TRUE = dso_local global i64 0, align 831 32; Function Attrs: noinline nounwind optnone uwtable33define dso_local i64 @DSRectItem(i64 noundef %0, i32 noundef %1, i64 noundef %2, i64 noundef %3) #0 {34 %5 = alloca i64, align 835 %6 = alloca i64, align 836 %7 = alloca i32, align 437 %8 = alloca i64, align 838 %9 = alloca i64, align 839 %10 = alloca i32, align 440 %11 = alloca i32, align 441 %12 = alloca i32, align 442 %13 = alloca i64, align 843 %14 = alloca i32, align 444 %15 = alloca i32, align 445 %16 = alloca ptr, align 846 %17 = alloca ptr, align 847 %18 = alloca i64, align 848 %19 = alloca ptr, align 849 %20 = alloca ptr, align 850 %21 = alloca i32, align 451 store i64 %0, ptr %6, align 852 store i32 %1, ptr %7, align 453 store i64 %2, ptr %8, align 854 store i64 %3, ptr %9, align 855 %22 = load i32, ptr @MAXPATHLEN, align 456 %23 = zext i32 %22 to i6457 %24 = call ptr @llvm.stacksave()58 store ptr %24, ptr %17, align 859 %25 = alloca i32, i64 %23, align 1660 store i64 %23, ptr %18, align 861 store ptr null, ptr %19, align 862 %26 = load i32, ptr %7, align 463 %27 = icmp eq i32 %26, -164 br i1 %27, label %28, label %7165 6628: ; preds = %467 %29 = load i64, ptr %9, align 868 %30 = icmp ne i64 %29, 069 br i1 %30, label %35, label %3170 7131: ; preds = %2872 %32 = load i64, ptr @hwndDragging, align 873 %33 = load i64, ptr %6, align 874 %34 = icmp eq i64 %32, %3375 br i1 %34, label %35, label %4476 7735: ; preds = %31, %2878 %36 = load i64, ptr @hwndStatus, align 879 %37 = load i32, ptr @SB_SETTEXT, align 480 %38 = load i32, ptr @SBT_NOBORDERS, align 481 %39 = or i32 %38, 25582 %40 = load i64, ptr @szNULL, align 883 %41 = call i64 @SendMessage(i64 noundef %36, i32 noundef %37, i32 noundef %39, i64 noundef %40)84 %42 = load i64, ptr @hwndStatus, align 885 %43 = call i32 @UpdateWindow(i64 noundef %42)86 br label %6987 8844: ; preds = %3189 %45 = load i64, ptr %6, align 890 %46 = call i64 @GetParent(i64 noundef %45)91 %47 = load i32, ptr @FS_GETDIRECTORY, align 492 %48 = call i32 @COUNTOF(ptr noundef %25)93 %49 = ptrtoint ptr %25 to i6494 %50 = call i64 @SendMessage(i64 noundef %46, i32 noundef %47, i32 noundef %48, i64 noundef %49)95 %51 = call i32 @StripBackslash(ptr noundef %25)96 %52 = load i32, ptr @SBT_NOBORDERS, align 497 %53 = or i32 %52, 25598 %54 = load i32, ptr @SST_RESOURCE, align 499 %55 = load i32, ptr @SST_FORMAT, align 4100 %56 = or i32 %54, %55101 %57 = load i64, ptr @fShowSourceBitmaps, align 8102 %58 = icmp ne i64 %57, 0103 br i1 %58, label %59, label %61104 10559: ; preds = %44106 %60 = load i64, ptr @IDS_DRAG_COPYING, align 8107 br label %63108 10961: ; preds = %44110 %62 = load i64, ptr @IDS_DRAG_MOVING, align 8111 br label %63112 11363: ; preds = %61, %59114 %64 = phi i64 [ %60, %59 ], [ %62, %61 ]115 %65 = inttoptr i64 %64 to ptr116 %66 = call i32 @SetStatusText(i32 noundef %53, i32 noundef %56, ptr noundef %65, ptr noundef %25)117 %67 = load i64, ptr @hwndStatus, align 8118 %68 = call i32 @UpdateWindow(i64 noundef %67)119 br label %69120 12169: ; preds = %63, %35122 %70 = load i64, ptr @FALSE, align 8123 store i64 %70, ptr %5, align 8124 store i32 1, ptr %21, align 4125 br label %247126 12771: ; preds = %4128 %72 = load i64, ptr %6, align 8129 %73 = load i32, ptr @LB_GETSEL, align 4130 %74 = load i32, ptr %7, align 4131 %75 = call i64 @SendMessage(i64 noundef %72, i32 noundef %73, i32 noundef %74, i64 noundef 0)132 store i64 %75, ptr %13, align 8133 %76 = load i64, ptr %13, align 8134 %77 = icmp ne i64 %76, 0135 br i1 %77, label %78, label %93136 13778: ; preds = %71138 %79 = load i64, ptr @hwndDragging, align 8139 %80 = load i64, ptr %6, align 8140 %81 = icmp eq i64 %79, %80141 br i1 %81, label %82, label %93142 14382: ; preds = %78144 br label %83145 14683: ; preds = %125, %82147 %84 = load i64, ptr @hwndStatus, align 8148 %85 = load i32, ptr @SB_SETTEXT, align 4149 %86 = load i32, ptr @SBT_NOBORDERS, align 4150 %87 = or i32 %86, 255151 %88 = load i64, ptr @szNULL, align 8152 %89 = call i64 @SendMessage(i64 noundef %84, i32 noundef %85, i32 noundef %87, i64 noundef %88)153 %90 = load i64, ptr @hwndStatus, align 8154 %91 = call i32 @UpdateWindow(i64 noundef %90)155 %92 = load i64, ptr @FALSE, align 8156 store i64 %92, ptr %5, align 8157 store i32 1, ptr %21, align 4158 br label %247159 16093: ; preds = %78, %71161 %94 = load i64, ptr %6, align 8162 %95 = load i32, ptr @LB_GETTEXT, align 4163 %96 = load i32, ptr %7, align 4164 %97 = ptrtoint ptr %16 to i64165 %98 = call i64 @SendMessage(i64 noundef %94, i32 noundef %95, i32 noundef %96, i64 noundef %97)166 %99 = load i64, ptr @LB_ERR, align 8167 %100 = icmp eq i64 %98, %99168 br i1 %100, label %104, label %101169 170101: ; preds = %93171 %102 = load ptr, ptr %16, align 8172 %103 = icmp ne ptr %102, null173 br i1 %103, label %106, label %104174 175104: ; preds = %101, %93176 %105 = load i64, ptr @FALSE, align 8177 store i64 %105, ptr %5, align 8178 store i32 1, ptr %21, align 4179 br label %247180 181106: ; preds = %101182 %107 = load ptr, ptr %16, align 8183 %108 = getelementptr inbounds %struct.TYPE_3__, ptr %107, i32 0, i32 0184 %109 = load i32, ptr %108, align 4185 %110 = load i32, ptr @ATTR_DIR, align 4186 %111 = and i32 %109, %110187 %112 = icmp ne i32 %111, 0188 br i1 %112, label %152, label %113189 190113: ; preds = %106191 %114 = load ptr, ptr %16, align 8192 %115 = call ptr @MemGetFileName(ptr noundef %114)193 %116 = call ptr @IsProgramFile(ptr noundef %115)194 store ptr %116, ptr %19, align 8195 %117 = icmp ne ptr %116, null196 br i1 %117, label %152, label %118197 198118: ; preds = %113199 %119 = load i64, ptr @hwndDragging, align 8200 %120 = load i64, ptr %6, align 8201 %121 = icmp eq i64 %119, %120202 br i1 %121, label %125, label %122203 204122: ; preds = %118205 %123 = load i64, ptr %9, align 8206 %124 = icmp ne i64 %123, 0207 br i1 %124, label %125, label %126208 209125: ; preds = %122, %118210 br label %83211 212126: ; preds = %122213 %127 = load i64, ptr %6, align 8214 %128 = call i64 @GetParent(i64 noundef %127)215 %129 = load i32, ptr @FS_GETDIRECTORY, align 4216 %130 = call i32 @COUNTOF(ptr noundef %25)217 %131 = ptrtoint ptr %25 to i64218 %132 = call i64 @SendMessage(i64 noundef %128, i32 noundef %129, i32 noundef %130, i64 noundef %131)219 %133 = call i32 @StripBackslash(ptr noundef %25)220 %134 = load i32, ptr @SBT_NOBORDERS, align 4221 %135 = or i32 %134, 255222 %136 = load i32, ptr @SST_FORMAT, align 4223 %137 = load i32, ptr @SST_RESOURCE, align 4224 %138 = or i32 %136, %137225 %139 = load i64, ptr @fShowSourceBitmaps, align 8226 %140 = icmp ne i64 %139, 0227 br i1 %140, label %141, label %143228 229141: ; preds = %126230 %142 = load i64, ptr @IDS_DRAG_COPYING, align 8231 br label %145232 233143: ; preds = %126234 %144 = load i64, ptr @IDS_DRAG_MOVING, align 8235 br label %145236 237145: ; preds = %143, %141238 %146 = phi i64 [ %142, %141 ], [ %144, %143 ]239 %147 = inttoptr i64 %146 to ptr240 %148 = call i32 @SetStatusText(i32 noundef %135, i32 noundef %138, ptr noundef %147, ptr noundef %25)241 %149 = load i64, ptr @hwndStatus, align 8242 %150 = call i32 @UpdateWindow(i64 noundef %149)243 %151 = load i64, ptr @FALSE, align 8244 store i64 %151, ptr %5, align 8245 store i32 1, ptr %21, align 4246 br label %247247 248152: ; preds = %113, %106249 %153 = load i64, ptr %9, align 8250 %154 = icmp ne i64 %153, 0251 br i1 %154, label %162, label %155252 253155: ; preds = %152254 %156 = load ptr, ptr %16, align 8255 %157 = getelementptr inbounds %struct.TYPE_3__, ptr %156, i32 0, i32 0256 %158 = load i32, ptr %157, align 4257 %159 = load i32, ptr @ATTR_PARENT, align 4258 %160 = and i32 %158, %159259 %161 = icmp ne i32 %160, 0260 br i1 %161, label %165, label %162261 262162: ; preds = %155, %152263 %163 = load ptr, ptr %16, align 8264 %164 = call ptr @MemGetFileName(ptr noundef %163)265 store ptr %164, ptr %20, align 8266 br label %174267 268165: ; preds = %155269 %166 = load i64, ptr %6, align 8270 %167 = call i64 @GetParent(i64 noundef %166)271 %168 = load i32, ptr @FS_GETDIRECTORY, align 4272 %169 = call i32 @COUNTOF(ptr noundef %25)273 %170 = ptrtoint ptr %25 to i64274 %171 = call i64 @SendMessage(i64 noundef %167, i32 noundef %168, i32 noundef %169, i64 noundef %170)275 %172 = call i32 @StripBackslash(ptr noundef %25)276 %173 = call i32 @StripFilespec(ptr noundef %25)277 store ptr %25, ptr %20, align 8278 br label %174279 280174: ; preds = %165, %162281 %175 = load i64, ptr %8, align 8282 %176 = icmp ne i64 %175, 0283 br i1 %176, label %177, label %203284 285177: ; preds = %174286 %178 = load i32, ptr @SBT_NOBORDERS, align 4287 %179 = or i32 %178, 255288 %180 = load i32, ptr @SST_FORMAT, align 4289 %181 = load i32, ptr @SST_RESOURCE, align 4290 %182 = or i32 %180, %181291 %183 = load ptr, ptr %19, align 8292 %184 = icmp ne ptr %183, null293 br i1 %184, label %185, label %187294 295185: ; preds = %177296 %186 = load i64, ptr @IDS_DRAG_EXECUTING, align 8297 br label %196298 299187: ; preds = %177300 %188 = load i64, ptr @fShowSourceBitmaps, align 8301 %189 = icmp ne i64 %188, 0302 br i1 %189, label %190, label %192303 304190: ; preds = %187305 %191 = load i64, ptr @IDS_DRAG_COPYING, align 8306 br label %194307 308192: ; preds = %187309 %193 = load i64, ptr @IDS_DRAG_MOVING, align 8310 br label %194311 312194: ; preds = %192, %190313 %195 = phi i64 [ %191, %190 ], [ %193, %192 ]314 br label %196315 316196: ; preds = %194, %185317 %197 = phi i64 [ %186, %185 ], [ %195, %194 ]318 %198 = inttoptr i64 %197 to ptr319 %199 = load ptr, ptr %20, align 8320 %200 = call i32 @SetStatusText(i32 noundef %179, i32 noundef %182, ptr noundef %198, ptr noundef %199)321 %201 = load i64, ptr @hwndStatus, align 8322 %202 = call i32 @UpdateWindow(i64 noundef %201)323 br label %203324 325203: ; preds = %196, %174326 %204 = load i64, ptr %6, align 8327 %205 = load i32, ptr @LB_GETITEMRECT, align 4328 %206 = load i32, ptr %7, align 4329 %207 = ptrtoint ptr %10 to i64330 %208 = call i64 @SendMessage(i64 noundef %204, i32 noundef %205, i32 noundef %206, i64 noundef %207)331 %209 = load i64, ptr %6, align 8332 %210 = call i32 @GetClientRect(i64 noundef %209, ptr noundef %11)333 %211 = call i32 @IntersectRect(ptr noundef %10, ptr noundef %10, ptr noundef %11)334 %212 = load i64, ptr %8, align 8335 %213 = icmp ne i64 %212, 0336 br i1 %213, label %214, label %239337 338214: ; preds = %203339 %215 = load i64, ptr %6, align 8340 %216 = call i32 @GetDC(i64 noundef %215)341 store i32 %216, ptr %12, align 4342 %217 = load i64, ptr %13, align 8343 %218 = icmp ne i64 %217, 0344 br i1 %218, label %219, label %222345 346219: ; preds = %214347 %220 = load i32, ptr @COLOR_WINDOW, align 4348 store i32 %220, ptr %14, align 4349 %221 = call i32 @InflateRect(ptr noundef %10, i32 noundef -1, i32 noundef -1)350 br label %224351 352222: ; preds = %214353 %223 = load i32, ptr @COLOR_WINDOWFRAME, align 4354 store i32 %223, ptr %14, align 4355 br label %224356 357224: ; preds = %222, %219358 %225 = load i32, ptr %14, align 4359 %226 = call i32 @GetSysColor(i32 noundef %225)360 %227 = call i32 @CreateSolidBrush(i32 noundef %226)361 store i32 %227, ptr %15, align 4362 %228 = icmp ne i32 %227, 0363 br i1 %228, label %229, label %235364 365229: ; preds = %224366 %230 = load i32, ptr %12, align 4367 %231 = load i32, ptr %15, align 4368 %232 = call i32 @FrameRect(i32 noundef %230, ptr noundef %10, i32 noundef %231)369 %233 = load i32, ptr %15, align 4370 %234 = call i32 @DeleteObject(i32 noundef %233)371 br label %235372 373235: ; preds = %229, %224374 %236 = load i64, ptr %6, align 8375 %237 = load i32, ptr %12, align 4376 %238 = call i32 @ReleaseDC(i64 noundef %236, i32 noundef %237)377 br label %245378 379239: ; preds = %203380 %240 = load i64, ptr %6, align 8381 %241 = load i64, ptr @FALSE, align 8382 %242 = call i32 @InvalidateRect(i64 noundef %240, ptr noundef %10, i64 noundef %241)383 %243 = load i64, ptr %6, align 8384 %244 = call i32 @UpdateWindow(i64 noundef %243)385 br label %245386 387245: ; preds = %239, %235388 %246 = load i64, ptr @TRUE, align 8389 store i64 %246, ptr %5, align 8390 store i32 1, ptr %21, align 4391 br label %247392 393247: ; preds = %245, %145, %104, %83, %69394 %248 = load ptr, ptr %17, align 8395 call void @llvm.stackrestore(ptr %248)396 %249 = load i64, ptr %5, align 8397 ret i64 %249398}399 400; Function Attrs: nocallback nofree nosync nounwind willreturn401declare ptr @llvm.stacksave() #1402 403declare i64 @SendMessage(i64 noundef, i32 noundef, i32 noundef, i64 noundef) #2404 405declare i32 @UpdateWindow(i64 noundef) #2406 407declare i64 @GetParent(i64 noundef) #2408 409declare i32 @COUNTOF(ptr noundef) #2410 411declare i32 @StripBackslash(ptr noundef) #2412 413declare i32 @SetStatusText(i32 noundef, i32 noundef, ptr noundef, ptr noundef) #2414 415declare ptr @IsProgramFile(ptr noundef) #2416 417declare ptr @MemGetFileName(ptr noundef) #2418 419declare i32 @StripFilespec(ptr noundef) #2420 421declare i32 @GetClientRect(i64 noundef, ptr noundef) #2422 423declare i32 @IntersectRect(ptr noundef, ptr noundef, ptr noundef) #2424 425declare i32 @GetDC(i64 noundef) #2426 427declare i32 @InflateRect(ptr noundef, i32 noundef, i32 noundef) #2428 429declare i32 @CreateSolidBrush(i32 noundef) #2430 431declare i32 @GetSysColor(i32 noundef) #2432 433declare i32 @FrameRect(i32 noundef, ptr noundef, i32 noundef) #2434 435declare i32 @DeleteObject(i32 noundef) #2436 437declare i32 @ReleaseDC(i64 noundef, i32 noundef) #2438 439declare i32 @InvalidateRect(i64 noundef, ptr noundef, i64 noundef) #2440 441; Function Attrs: nocallback nofree nosync nounwind willreturn442declare void @llvm.stackrestore(ptr) #1443 444attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }445attributes #1 = { nocallback nofree nosync nounwind willreturn }446attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }447 448!llvm.module.flags = !{!0, !1, !2, !3, !4}449!llvm.ident = !{!5}450 451!0 = !{i32 1, !"wchar_size", i32 4}452!1 = !{i32 7, !"PIC Level", i32 2}453!2 = !{i32 7, !"PIE Level", i32 2}454!3 = !{i32 7, !"uwtable", i32 2}455!4 = !{i32 7, !"frame-pointer", i32 2}456!5 = !{!"clang version 15.0.3"}457 