Aboudek/ASM_TO_LLVM_V2
0
1; ModuleID = 'winfile/src/extr_treectl.c_RectTreeItem.c'2source_filename = "winfile/src/extr_treectl.c_RectTreeItem.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_14__ = type { i64, i64 }7%struct.TYPE_13__ = type { i64 }8%struct.TYPE_15__ = type { i32 }9 10@MAXPATHLEN = dso_local global i32 0, align 411@hwndStatus = dso_local global i64 0, align 812@SB_SETTEXT = dso_local global i32 0, align 413@SBT_NOBORDERS = dso_local global i32 0, align 414@szNULL = dso_local global i64 0, align 815@FALSE = dso_local global i64 0, align 816@LB_GETSEL = dso_local global i32 0, align 417@hwndDragging = dso_local global i64 0, align 818@LB_GETTEXT = dso_local global i32 0, align 419@LB_ERR = dso_local global i64 0, align 820@LB_GETITEMRECT = dso_local global i32 0, align 421@dyBorder = dso_local global i32 0, align 422@dxText = dso_local global i32 0, align 423@dxFolder = dso_local global i64 0, align 824@dyBorderx2 = dso_local global i32 0, align 425@SST_FORMAT = dso_local global i32 0, align 426@SST_RESOURCE = dso_local global i32 0, align 427@fShowSourceBitmaps = dso_local global i64 0, align 828@IDS_DRAG_COPYING = dso_local global i64 0, align 829@IDS_DRAG_MOVING = dso_local global i64 0, align 830@COLOR_WINDOW = dso_local global i32 0, align 431@COLOR_WINDOWFRAME = dso_local global i32 0, align 432@TRUE = dso_local global i64 0, align 833 34; Function Attrs: noinline nounwind optnone uwtable35define dso_local i64 @RectTreeItem(i64 noundef %0, i32 noundef %1, i64 noundef %2) #0 {36 %4 = alloca i64, align 837 %5 = alloca i64, align 838 %6 = alloca i32, align 439 %7 = alloca i64, align 840 %8 = alloca i32, align 441 %9 = alloca i32, align 442 %10 = alloca %struct.TYPE_14__, align 843 %11 = alloca %struct.TYPE_14__, align 844 %12 = alloca i64, align 845 %13 = alloca i32, align 446 %14 = alloca ptr, align 847 %15 = alloca i32, align 448 %16 = alloca ptr, align 849 %17 = alloca i64, align 850 %18 = alloca %struct.TYPE_13__, align 851 %19 = alloca i32, align 452 store i64 %0, ptr %5, align 853 store i32 %1, ptr %6, align 454 store i64 %2, ptr %7, align 855 %20 = load i32, ptr @MAXPATHLEN, align 456 %21 = zext i32 %20 to i6457 %22 = call ptr @llvm.stacksave()58 store ptr %22, ptr %16, align 859 %23 = alloca i32, i64 %21, align 1660 store i64 %21, ptr %17, align 861 %24 = load i32, ptr %6, align 462 %25 = icmp eq i32 %24, -163 br i1 %25, label %26, label %3764 6526: ; preds = %366 br label %2767 6827: ; preds = %57, %48, %2669 %28 = load i64, ptr @hwndStatus, align 870 %29 = load i32, ptr @SB_SETTEXT, align 471 %30 = load i32, ptr @SBT_NOBORDERS, align 472 %31 = or i32 %30, 25573 %32 = load i64, ptr @szNULL, align 874 %33 = call i64 @SendMessage(i64 noundef %28, i32 noundef %29, i32 noundef %31, i64 noundef %32)75 %34 = load i64, ptr @hwndStatus, align 876 %35 = call i32 @UpdateWindow(i64 noundef %34)77 %36 = load i64, ptr @FALSE, align 878 store i64 %36, ptr %4, align 879 store i32 1, ptr %19, align 480 br label %16381 8237: ; preds = %383 %38 = load i64, ptr %5, align 884 %39 = load i32, ptr @LB_GETSEL, align 485 %40 = load i32, ptr %6, align 486 %41 = call i64 @SendMessage(i64 noundef %38, i32 noundef %39, i32 noundef %40, i64 noundef 0)87 store i64 %41, ptr %12, align 888 %42 = load i64, ptr %12, align 889 %43 = icmp ne i64 %42, 090 br i1 %43, label %44, label %4991 9244: ; preds = %3793 %45 = load i64, ptr @hwndDragging, align 894 %46 = load i64, ptr %5, align 895 %47 = icmp eq i64 %45, %4696 br i1 %47, label %48, label %4997 9848: ; preds = %4499 br label %27100 10149: ; preds = %44, %37102 %50 = load i64, ptr %5, align 8103 %51 = load i32, ptr @LB_GETTEXT, align 4104 %52 = load i32, ptr %6, align 4105 %53 = ptrtoint ptr %14 to i64106 %54 = call i64 @SendMessage(i64 noundef %50, i32 noundef %51, i32 noundef %52, i64 noundef %53)107 %55 = load i64, ptr @LB_ERR, align 8108 %56 = icmp eq i64 %54, %55109 br i1 %56, label %57, label %58110 11157: ; preds = %49112 br label %27113 11458: ; preds = %49115 %59 = load i64, ptr %5, align 8116 %60 = load i32, ptr @LB_GETITEMRECT, align 4117 %61 = load i32, ptr %6, align 4118 %62 = ptrtoint ptr %10 to i64119 %63 = call i64 @SendMessage(i64 noundef %59, i32 noundef %60, i32 noundef %61, i64 noundef %62)120 %64 = load i64, ptr %5, align 8121 %65 = call i32 @GetDC(i64 noundef %64)122 store i32 %65, ptr %9, align 4123 %66 = load ptr, ptr %14, align 8124 %67 = call i64 @GetRealExtent(ptr noundef %66, ptr noundef null, ptr noundef %23, ptr noundef %8)125 %68 = getelementptr inbounds %struct.TYPE_13__, ptr %18, i32 0, i32 0126 store i64 %67, ptr %68, align 8127 %69 = load i32, ptr @dyBorder, align 4128 %70 = sext i32 %69 to i64129 %71 = getelementptr inbounds %struct.TYPE_13__, ptr %18, i32 0, i32 0130 %72 = load i64, ptr %71, align 8131 %73 = add nsw i64 %72, %70132 store i64 %73, ptr %71, align 8133 %74 = load i64, ptr %5, align 8134 %75 = call i32 @GetClientRect(i64 noundef %74, ptr noundef %11)135 %76 = load ptr, ptr %14, align 8136 %77 = getelementptr inbounds %struct.TYPE_15__, ptr %76, i32 0, i32 0137 %78 = load i32, ptr %77, align 4138 %79 = load i32, ptr @dxText, align 4139 %80 = mul nsw i32 %78, %79140 %81 = mul nsw i32 %80, 2141 %82 = sext i32 %81 to i64142 %83 = getelementptr inbounds %struct.TYPE_14__, ptr %10, i32 0, i32 1143 %84 = load i64, ptr %83, align 8144 %85 = getelementptr inbounds %struct.TYPE_14__, ptr %11, i32 0, i32 1145 %86 = load i64, ptr %85, align 8146 %87 = getelementptr inbounds %struct.TYPE_14__, ptr %11, i32 0, i32 0147 %88 = load i64, ptr %87, align 8148 %89 = sub nsw i64 %86, %88149 %90 = sub nsw i64 %84, %89150 %91 = sub nsw i64 %82, %90151 %92 = getelementptr inbounds %struct.TYPE_14__, ptr %10, i32 0, i32 0152 store i64 %91, ptr %92, align 8153 %93 = getelementptr inbounds %struct.TYPE_14__, ptr %10, i32 0, i32 0154 %94 = load i64, ptr %93, align 8155 %95 = load i64, ptr @dxFolder, align 8156 %96 = add nsw i64 %94, %95157 %97 = getelementptr inbounds %struct.TYPE_13__, ptr %18, i32 0, i32 0158 %98 = load i64, ptr %97, align 8159 %99 = add nsw i64 %96, %98160 %100 = load i32, ptr @dyBorderx2, align 4161 %101 = mul nsw i32 4, %100162 %102 = sext i32 %101 to i64163 %103 = add nsw i64 %99, %102164 %104 = getelementptr inbounds %struct.TYPE_14__, ptr %10, i32 0, i32 1165 store i64 %103, ptr %104, align 8166 %105 = call i32 @IntersectRect(ptr noundef %10, ptr noundef %10, ptr noundef %11)167 %106 = load i64, ptr %7, align 8168 %107 = icmp ne i64 %106, 0169 br i1 %107, label %108, label %152170 171108: ; preds = %58172 %109 = load ptr, ptr %14, align 8173 %110 = call i32 @GetTreePath(ptr noundef %109, ptr noundef %23)174 %111 = call i32 @StripBackslash(ptr noundef %23)175 %112 = load i32, ptr @SBT_NOBORDERS, align 4176 %113 = or i32 %112, 255177 %114 = load i32, ptr @SST_FORMAT, align 4178 %115 = load i32, ptr @SST_RESOURCE, align 4179 %116 = or i32 %114, %115180 %117 = load i64, ptr @fShowSourceBitmaps, align 8181 %118 = icmp ne i64 %117, 0182 br i1 %118, label %119, label %121183 184119: ; preds = %108185 %120 = load i64, ptr @IDS_DRAG_COPYING, align 8186 br label %123187 188121: ; preds = %108189 %122 = load i64, ptr @IDS_DRAG_MOVING, align 8190 br label %123191 192123: ; preds = %121, %119193 %124 = phi i64 [ %120, %119 ], [ %122, %121 ]194 %125 = trunc i64 %124 to i32195 %126 = call i32 @SetStatusText(i32 noundef %113, i32 noundef %116, i32 noundef %125, ptr noundef %23)196 %127 = load i64, ptr @hwndStatus, align 8197 %128 = call i32 @UpdateWindow(i64 noundef %127)198 %129 = load i64, ptr %12, align 8199 %130 = icmp ne i64 %129, 0200 br i1 %130, label %131, label %138201 202131: ; preds = %123203 %132 = load i32, ptr @COLOR_WINDOW, align 4204 store i32 %132, ptr %13, align 4205 %133 = load i32, ptr @dyBorder, align 4206 %134 = sub nsw i32 0, %133207 %135 = load i32, ptr @dyBorder, align 4208 %136 = sub nsw i32 0, %135209 %137 = call i32 @InflateRect(ptr noundef %10, i32 noundef %134, i32 noundef %136)210 br label %140211 212138: ; preds = %123213 %139 = load i32, ptr @COLOR_WINDOWFRAME, align 4214 store i32 %139, ptr %13, align 4215 br label %140216 217140: ; preds = %138, %131218 %141 = load i32, ptr %13, align 4219 %142 = call i32 @GetSysColor(i32 noundef %141)220 %143 = call i32 @CreateSolidBrush(i32 noundef %142)221 store i32 %143, ptr %15, align 4222 %144 = icmp ne i32 %143, 0223 br i1 %144, label %145, label %151224 225145: ; preds = %140226 %146 = load i32, ptr %9, align 4227 %147 = load i32, ptr %15, align 4228 %148 = call i32 @FrameRect(i32 noundef %146, ptr noundef %10, i32 noundef %147)229 %149 = load i32, ptr %15, align 4230 %150 = call i32 @DeleteObject(i32 noundef %149)231 br label %151232 233151: ; preds = %145, %140234 br label %158235 236152: ; preds = %58237 %153 = load i64, ptr %5, align 8238 %154 = load i64, ptr @TRUE, align 8239 %155 = call i32 @InvalidateRect(i64 noundef %153, ptr noundef %10, i64 noundef %154)240 %156 = load i64, ptr %5, align 8241 %157 = call i32 @UpdateWindow(i64 noundef %156)242 br label %158243 244158: ; preds = %152, %151245 %159 = load i64, ptr %5, align 8246 %160 = load i32, ptr %9, align 4247 %161 = call i32 @ReleaseDC(i64 noundef %159, i32 noundef %160)248 %162 = load i64, ptr @TRUE, align 8249 store i64 %162, ptr %4, align 8250 store i32 1, ptr %19, align 4251 br label %163252 253163: ; preds = %158, %27254 %164 = load ptr, ptr %16, align 8255 call void @llvm.stackrestore(ptr %164)256 %165 = load i64, ptr %4, align 8257 ret i64 %165258}259 260; Function Attrs: nocallback nofree nosync nounwind willreturn261declare ptr @llvm.stacksave() #1262 263declare i64 @SendMessage(i64 noundef, i32 noundef, i32 noundef, i64 noundef) #2264 265declare i32 @UpdateWindow(i64 noundef) #2266 267declare i32 @GetDC(i64 noundef) #2268 269declare i64 @GetRealExtent(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2270 271declare i32 @GetClientRect(i64 noundef, ptr noundef) #2272 273declare i32 @IntersectRect(ptr noundef, ptr noundef, ptr noundef) #2274 275declare i32 @GetTreePath(ptr noundef, ptr noundef) #2276 277declare i32 @StripBackslash(ptr noundef) #2278 279declare i32 @SetStatusText(i32 noundef, i32 noundef, i32 noundef, ptr noundef) #2280 281declare i32 @InflateRect(ptr noundef, i32 noundef, i32 noundef) #2282 283declare i32 @CreateSolidBrush(i32 noundef) #2284 285declare i32 @GetSysColor(i32 noundef) #2286 287declare i32 @FrameRect(i32 noundef, ptr noundef, i32 noundef) #2288 289declare i32 @DeleteObject(i32 noundef) #2290 291declare i32 @InvalidateRect(i64 noundef, ptr noundef, i64 noundef) #2292 293declare i32 @ReleaseDC(i64 noundef, i32 noundef) #2294 295; Function Attrs: nocallback nofree nosync nounwind willreturn296declare void @llvm.stackrestore(ptr) #1297 298attributes #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" }299attributes #1 = { nocallback nofree nosync nounwind willreturn }300attributes #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" }301 302!llvm.module.flags = !{!0, !1, !2, !3, !4}303!llvm.ident = !{!5}304 305!0 = !{i32 1, !"wchar_size", i32 4}306!1 = !{i32 7, !"PIC Level", i32 2}307!2 = !{i32 7, !"PIE Level", i32 2}308!3 = !{i32 7, !"uwtable", i32 2}309!4 = !{i32 7, !"frame-pointer", i32 2}310!5 = !{!"clang version 15.0.3"}311 