public class sun.awt.windows.WCustomCursor extends sun.awt.CustomCursor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.awt.windows.WCustomCursor
  super_class: sun.awt.CustomCursor
{
  public void <init>(java.awt.Image, java.awt.Point, java.lang.String);
    descriptor: (Ljava/awt/Image;Ljava/awt/Point;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // sun.awt.windows.WCustomCursor this
        start local 1 // java.awt.Image cursor
        start local 2 // java.awt.Point hotSpot
        start local 3 // java.lang.String name
         0: .line 45
            aload 0 /* this */
            aload 1 /* cursor */
            aload 2 /* hotSpot */
            aload 3 /* name */
            invokespecial sun.awt.CustomCursor.<init>:(Ljava/awt/Image;Ljava/awt/Point;Ljava/lang/String;)V
         1: .line 46
            return
        end local 3 // java.lang.String name
        end local 2 // java.awt.Point hotSpot
        end local 1 // java.awt.Image cursor
        end local 0 // sun.awt.windows.WCustomCursor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lsun/awt/windows/WCustomCursor;
            0    2     1   cursor  Ljava/awt/Image;
            0    2     2  hotSpot  Ljava/awt/Point;
            0    2     3     name  Ljava/lang/String;
    Exceptions:
      throws java.lang.IndexOutOfBoundsException
    MethodParameters:
         Name  Flags
      cursor   
      hotSpot  
      name     

  protected void createNativeCursor(java.awt.Image, int[], int, int, int, int);
    descriptor: (Ljava/awt/Image;[IIIII)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=16, args_size=7
        start local 0 // sun.awt.windows.WCustomCursor this
        start local 1 // java.awt.Image im
        start local 2 // int[] pixels
        start local 3 // int w
        start local 4 // int h
        start local 5 // int xHotSpot
        start local 6 // int yHotSpot
         0: .line 50
            new java.awt.image.BufferedImage
            dup
            iload 3 /* w */
            iload 4 /* h */
         1: .line 51
            iconst_1
         2: .line 50
            invokespecial java.awt.image.BufferedImage.<init>:(III)V
            astore 7 /* bimage */
        start local 7 // java.awt.image.BufferedImage bimage
         3: .line 52
            aload 7 /* bimage */
            invokevirtual java.awt.image.BufferedImage.getGraphics:()Ljava/awt/Graphics;
            astore 8 /* g */
        start local 8 // java.awt.Graphics g
         4: .line 54
            aload 1 /* im */
            instanceof sun.awt.image.ToolkitImage
            ifeq 7
         5: .line 55
            aload 1 /* im */
            checkcast sun.awt.image.ToolkitImage
            invokevirtual sun.awt.image.ToolkitImage.getImageRep:()Lsun/awt/image/ImageRepresentation;
            astore 9 /* ir */
        start local 9 // sun.awt.image.ImageRepresentation ir
         6: .line 56
            aload 9 /* ir */
            bipush 32
            invokevirtual sun.awt.image.ImageRepresentation.reconstruct:(I)V
        end local 9 // sun.awt.image.ImageRepresentation ir
         7: .line 58
      StackMap locals: java.awt.image.BufferedImage java.awt.Graphics
      StackMap stack:
            aload 8 /* g */
            aload 1 /* im */
            iconst_0
            iconst_0
            iload 3 /* w */
            iload 4 /* h */
            aconst_null
            invokevirtual java.awt.Graphics.drawImage:(Ljava/awt/Image;IIIILjava/awt/image/ImageObserver;)Z
            pop
         8: .line 59
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 10
        10: .line 60
            aload 8 /* g */
            invokevirtual java.awt.Graphics.dispose:()V
        11: .line 61
            aload 10
            athrow
        12: .line 60
      StackMap locals:
      StackMap stack:
            aload 8 /* g */
            invokevirtual java.awt.Graphics.dispose:()V
        13: .line 62
            aload 7 /* bimage */
            invokevirtual java.awt.image.BufferedImage.getRaster:()Ljava/awt/image/WritableRaster;
            astore 9 /* raster */
        start local 9 // java.awt.image.Raster raster
        14: .line 63
            aload 9 /* raster */
            invokevirtual java.awt.image.Raster.getDataBuffer:()Ljava/awt/image/DataBuffer;
            astore 10 /* buffer */
        start local 10 // java.awt.image.DataBuffer buffer
        15: .line 65
            aload 10 /* buffer */
            checkcast java.awt.image.DataBufferInt
            invokevirtual java.awt.image.DataBufferInt.getData:()[I
            pop
        16: .line 67
            iload 3 /* w */
            iload 4 /* h */
            imul
            bipush 8
            idiv
            newarray 8
            astore 11 /* andMask */
        start local 11 // byte[] andMask
        17: .line 68
            aload 2 /* pixels */
            arraylength
            istore 12 /* npixels */
        start local 12 // int npixels
        18: .line 69
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        19: goto 25
        20: .line 70
      StackMap locals: sun.awt.windows.WCustomCursor java.awt.Image int[] int int int int java.awt.image.BufferedImage java.awt.Graphics java.awt.image.Raster java.awt.image.DataBuffer byte[] int int
      StackMap stack:
            iload 13 /* i */
            bipush 8
            idiv
            istore 14 /* ibyte */
        start local 14 // int ibyte
        21: .line 71
            iconst_1
            bipush 7
            iload 13 /* i */
            bipush 8
            irem
            isub
            ishl
            istore 15 /* omask */
        start local 15 // int omask
        22: .line 72
            aload 2 /* pixels */
            iload 13 /* i */
            iaload
            ldc -16777216
            iand
            ifne 24
        23: .line 74
            aload 11 /* andMask */
            iload 14 /* ibyte */
            dup2
            baload
            iload 15 /* omask */
            ior
            i2b
            bastore
        end local 15 // int omask
        end local 14 // int ibyte
        24: .line 69
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 13 /* i */
            iload 12 /* npixels */
            if_icmplt 20
        end local 13 // int i
        26: .line 79
            aload 9 /* raster */
            invokevirtual java.awt.image.Raster.getWidth:()I
            istore 13 /* ficW */
        start local 13 // int ficW
        27: .line 80
            aload 9 /* raster */
            instanceof sun.awt.image.IntegerComponentRaster
            ifeq 29
        28: .line 81
            aload 9 /* raster */
            checkcast sun.awt.image.IntegerComponentRaster
            invokevirtual sun.awt.image.IntegerComponentRaster.getScanlineStride:()I
            istore 13 /* ficW */
        29: .line 83
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        30: .line 84
            aload 7 /* bimage */
            invokevirtual java.awt.image.BufferedImage.getRaster:()Ljava/awt/image/WritableRaster;
            invokevirtual java.awt.image.WritableRaster.getDataBuffer:()Ljava/awt/image/DataBuffer;
            checkcast java.awt.image.DataBufferInt
            invokevirtual java.awt.image.DataBufferInt.getData:()[I
        31: .line 85
            aload 11 /* andMask */
            iload 13 /* ficW */
            aload 9 /* raster */
            invokevirtual java.awt.image.Raster.getWidth:()I
            aload 9 /* raster */
            invokevirtual java.awt.image.Raster.getHeight:()I
        32: .line 86
            iload 5 /* xHotSpot */
            iload 6 /* yHotSpot */
        33: .line 83
            invokevirtual sun.awt.windows.WCustomCursor.createCursorIndirect:([I[BIIIII)V
        end local 13 // int ficW
        34: .line 88
            return
        end local 12 // int npixels
        end local 11 // byte[] andMask
        end local 10 // java.awt.image.DataBuffer buffer
        end local 9 // java.awt.image.Raster raster
        end local 8 // java.awt.Graphics g
        end local 7 // java.awt.image.BufferedImage bimage
        end local 6 // int yHotSpot
        end local 5 // int xHotSpot
        end local 4 // int h
        end local 3 // int w
        end local 2 // int[] pixels
        end local 1 // java.awt.Image im
        end local 0 // sun.awt.windows.WCustomCursor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   35     0      this  Lsun/awt/windows/WCustomCursor;
            0   35     1        im  Ljava/awt/Image;
            0   35     2    pixels  [I
            0   35     3         w  I
            0   35     4         h  I
            0   35     5  xHotSpot  I
            0   35     6  yHotSpot  I
            3   35     7    bimage  Ljava/awt/image/BufferedImage;
            4   35     8         g  Ljava/awt/Graphics;
            6    7     9        ir  Lsun/awt/image/ImageRepresentation;
           14   35     9    raster  Ljava/awt/image/Raster;
           15   35    10    buffer  Ljava/awt/image/DataBuffer;
           17   35    11   andMask  [B
           18   35    12   npixels  I
           19   26    13         i  I
           21   24    14     ibyte  I
           22   24    15     omask  I
           27   34    13      ficW  I
      Exception table:
        from    to  target  type
           4     9       9  any
    MethodParameters:
          Name  Flags
      im        
      pixels    
      w         
      h         
      xHotSpot  
      yHotSpot  

  private native void createCursorIndirect(int[], byte[], int, int, int, int, int);
    descriptor: ([I[BIIIII)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
             Name  Flags
      rData        
      andMask      
      nScanStride  
      width        
      height       
      xHotSpot     
      yHotSpot     

  static native int getCursorWidth();
    descriptor: ()I
    flags: (0x0108) ACC_STATIC, ACC_NATIVE

  static native int getCursorHeight();
    descriptor: ()I
    flags: (0x0108) ACC_STATIC, ACC_NATIVE
}
SourceFile: "WCustomCursor.java"