public final class org.jruby.ext.ffi.ArrayMemoryIO extends org.jruby.ext.ffi.MemoryIO
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.jruby.ext.ffi.ArrayMemoryIO
  super_class: org.jruby.ext.ffi.MemoryIO
{
  protected static final org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO IO;
    descriptor: Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  protected static final int LONG_SIZE;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  protected static final int ADDRESS_SIZE;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  protected final org.jruby.Ruby runtime;
    descriptor: Lorg/jruby/Ruby;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final byte[] buffer;
    descriptor: [B
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final int offset;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final int length;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 10
            invokestatic org.jruby.ext.ffi.ArrayMemoryIO.getArrayIO:()Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            putstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
         1: .line 11
            invokestatic org.jruby.ext.ffi.Platform.getPlatform:()Lorg/jruby/ext/ffi/Platform;
            invokevirtual org.jruby.ext.ffi.Platform.longSize:()I
            putstatic org.jruby.ext.ffi.ArrayMemoryIO.LONG_SIZE:I
         2: .line 12
            invokestatic org.jruby.ext.ffi.Platform.getPlatform:()Lorg/jruby/ext/ffi/Platform;
            invokevirtual org.jruby.ext.ffi.Platform.addressSize:()I
            putstatic org.jruby.ext.ffi.ArrayMemoryIO.ADDRESS_SIZE:I
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.jruby.Ruby, byte[], int, int);
    descriptor: (Lorg/jruby/Ruby;[BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // byte[] buffer
        start local 3 // int offset
        start local 4 // int length
         0: .line 19
            aload 0 /* this */
            iconst_0
            lconst_0
            invokespecial org.jruby.ext.ffi.MemoryIO.<init>:(ZJ)V
         1: .line 20
            aload 0 /* this */
            aload 1 /* runtime */
            putfield org.jruby.ext.ffi.ArrayMemoryIO.runtime:Lorg/jruby/Ruby;
         2: .line 21
            aload 0 /* this */
            aload 2 /* buffer */
            putfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
         3: .line 22
            aload 0 /* this */
            iload 3 /* offset */
            putfield org.jruby.ext.ffi.ArrayMemoryIO.offset:I
         4: .line 23
            aload 0 /* this */
            iload 4 /* length */
            putfield org.jruby.ext.ffi.ArrayMemoryIO.length:I
         5: .line 24
            return
        end local 4 // int length
        end local 3 // int offset
        end local 2 // byte[] buffer
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    6     1  runtime  Lorg/jruby/Ruby;
            0    6     2   buffer  [B
            0    6     3   offset  I
            0    6     4   length  I
    MethodParameters:
         Name  Flags
      runtime  
      buffer   
      offset   
      length   

  public void <init>(org.jruby.Ruby, int);
    descriptor: (Lorg/jruby/Ruby;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // int size
         0: .line 27
            aload 0 /* this */
            aload 1 /* runtime */
            iload 2 /* size */
            newarray 8
            iconst_0
            iload 2 /* size */
            invokespecial org.jruby.ext.ffi.ArrayMemoryIO.<init>:(Lorg/jruby/Ruby;[BII)V
         1: .line 28
            return
        end local 2 // int size
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    2     1  runtime  Lorg/jruby/Ruby;
            0    2     2     size  I
    MethodParameters:
         Name  Flags
      runtime  
      size     

  private final void checkBounds(long, long);
    descriptor: (JJ)V
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long off
        start local 3 // long len
         0: .line 31
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.arrayLength:()I
            i2l
            lload 1 /* off */
            lload 3 /* len */
            invokestatic org.jruby.ext.ffi.Util.checkBounds:(Lorg/jruby/Ruby;JJJ)V
         1: .line 32
            return
        end local 3 // long len
        end local 1 // long off
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    2     1   off  J
            0    2     3   len  J
    MethodParameters:
      Name  Flags
      off   
      len   

  public final byte[] array();
    descriptor: ()[B
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
         0: .line 36
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            areturn
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/ffi/ArrayMemoryIO;

  public final int arrayOffset();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
         0: .line 40
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.offset:I
            ireturn
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/ffi/ArrayMemoryIO;

  public final int arrayLength();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
         0: .line 44
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.length:I
            ireturn
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/ffi/ArrayMemoryIO;

  private static final org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO getArrayIO();
    descriptor: ()Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=0, args_size=0
         0: .line 48
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 5
         1: .line 49
            invokestatic org.jruby.ext.ffi.Platform.getPlatform:()Lorg/jruby/ext/ffi/Platform;
            invokevirtual org.jruby.ext.ffi.Platform.addressSize:()I
            bipush 64
            if_icmpne 3
         2: .line 50
            invokestatic org.jruby.ext.ffi.ArrayMemoryIO.newBE64ArrayIO:()Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            goto 4
      StackMap locals:
      StackMap stack:
         3: invokestatic org.jruby.ext.ffi.ArrayMemoryIO.newBE32ArrayIO:()Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
         4: .line 49
      StackMap locals:
      StackMap stack: org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO
            areturn
         5: .line 52
      StackMap locals:
      StackMap stack:
            invokestatic org.jruby.ext.ffi.Platform.getPlatform:()Lorg/jruby/ext/ffi/Platform;
            invokevirtual org.jruby.ext.ffi.Platform.addressSize:()I
            bipush 64
            if_icmpne 7
         6: .line 53
            invokestatic org.jruby.ext.ffi.ArrayMemoryIO.newLE64ArrayIO:()Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            goto 8
      StackMap locals:
      StackMap stack:
         7: invokestatic org.jruby.ext.ffi.ArrayMemoryIO.newLE32ArrayIO:()Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
         8: .line 52
      StackMap locals:
      StackMap stack: org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static final org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO newBE64ArrayIO();
    descriptor: ()Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=0, args_size=0
         0: .line 57
            new org.jruby.ext.ffi.ArrayMemoryIO$BE64ArrayIO
            dup
            invokespecial org.jruby.ext.ffi.ArrayMemoryIO$BE64ArrayIO.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static final org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO newBE32ArrayIO();
    descriptor: ()Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=0, args_size=0
         0: .line 60
            new org.jruby.ext.ffi.ArrayMemoryIO$BE32ArrayIO
            dup
            invokespecial org.jruby.ext.ffi.ArrayMemoryIO$BE32ArrayIO.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static final org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO newLE64ArrayIO();
    descriptor: ()Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=0, args_size=0
         0: .line 63
            new org.jruby.ext.ffi.ArrayMemoryIO$LE64ArrayIO
            dup
            invokespecial org.jruby.ext.ffi.ArrayMemoryIO$LE64ArrayIO.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static final org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO newLE32ArrayIO();
    descriptor: ()Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=0, args_size=0
         0: .line 66
            new org.jruby.ext.ffi.ArrayMemoryIO$LE32ArrayIO
            dup
            invokespecial org.jruby.ext.ffi.ArrayMemoryIO$LE32ArrayIO.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected final int index(long);
    descriptor: (J)I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long off
         0: .line 69
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.offset:I
            lload 1 /* off */
            l2i
            iadd
            ireturn
        end local 1 // long off
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    1     1   off  J
    MethodParameters:
      Name  Flags
      off   

  public final java.nio.ByteOrder order();
    descriptor: ()Ljava/nio/ByteOrder;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
         0: .line 73
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            areturn
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/ffi/ArrayMemoryIO;

  public org.jruby.ext.ffi.ArrayMemoryIO slice(long);
    descriptor: (J)Lorg/jruby/ext/ffi/ArrayMemoryIO;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
         0: .line 77
            aload 0 /* this */
            lload 1 /* offset */
            lconst_0
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 78
            lload 1 /* offset */
            lconst_0
            lcmp
            ifne 2
            aload 0 /* this */
            goto 3
      StackMap locals:
      StackMap stack:
         2: new org.jruby.ext.ffi.ArrayMemoryIO
            dup
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.array:()[B
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.arrayOffset:()I
            lload 1 /* offset */
            l2i
            iadd
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.arrayLength:()I
            lload 1 /* offset */
            l2i
            isub
            invokespecial org.jruby.ext.ffi.ArrayMemoryIO.<init>:(Lorg/jruby/Ruby;[BII)V
      StackMap locals:
      StackMap stack: org.jruby.ext.ffi.ArrayMemoryIO
         3: areturn
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    4     1  offset  J
    MethodParameters:
        Name  Flags
      offset  

  public org.jruby.ext.ffi.ArrayMemoryIO slice(long, long);
    descriptor: (JJ)Lorg/jruby/ext/ffi/ArrayMemoryIO;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // long size
         0: .line 82
            aload 0 /* this */
            lload 1 /* offset */
            lload 3 /* size */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 84
            lload 1 /* offset */
            lconst_0
            lcmp
            ifne 3
            lload 3 /* size */
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.length:I
            i2l
            lcmp
            ifne 3
         2: .line 85
            aload 0 /* this */
            goto 4
         3: .line 86
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.ffi.ArrayMemoryIO
            dup
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.array:()[B
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.arrayOffset:()I
            lload 1 /* offset */
            l2i
            iadd
            lload 3 /* size */
            l2i
            invokespecial org.jruby.ext.ffi.ArrayMemoryIO.<init>:(Lorg/jruby/Ruby;[BII)V
         4: .line 84
      StackMap locals:
      StackMap stack: org.jruby.ext.ffi.ArrayMemoryIO
            areturn
        end local 3 // long size
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    5     1  offset  J
            0    5     3    size  J
    MethodParameters:
        Name  Flags
      offset  
      size    

  public org.jruby.ext.ffi.ArrayMemoryIO dup();
    descriptor: ()Lorg/jruby/ext/ffi/ArrayMemoryIO;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
         0: .line 90
            new org.jruby.ext.ffi.ArrayMemoryIO
            dup
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.length:I
            invokespecial org.jruby.ext.ffi.ArrayMemoryIO.<init>:(Lorg/jruby/Ruby;I)V
            astore 1 /* tmp */
        start local 1 // org.jruby.ext.ffi.ArrayMemoryIO tmp
         1: .line 91
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.array:()[B
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.arrayOffset:()I
            aload 1 /* tmp */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.array:()[B
            aload 1 /* tmp */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.arrayOffset:()I
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.length:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 93
            aload 1 /* tmp */
            areturn
        end local 1 // org.jruby.ext.ffi.ArrayMemoryIO tmp
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            1    3     1   tmp  Lorg/jruby/ext/ffi/ArrayMemoryIO;

  public java.nio.ByteBuffer asByteBuffer();
    descriptor: ()Ljava/nio/ByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
         0: .line 99
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.offset:I
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.length:I
            invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            areturn
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/ffi/ArrayMemoryIO;

  public final org.jruby.ext.ffi.MemoryIO getMemoryIO(long);
    descriptor: (J)Lorg/jruby/ext/ffi/MemoryIO;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
         0: .line 103
            aload 0 /* this */
            lload 1 /* offset */
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.ADDRESS_SIZE:I
            iconst_3
            ishr
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 104
            invokestatic org.jruby.ext.ffi.Factory.getInstance:()Lorg/jruby/ext/ffi/Factory;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.getAddress:(J)J
            invokevirtual org.jruby.ext.ffi.Factory.wrapDirectMemory:(Lorg/jruby/Ruby;J)Lorg/jruby/ext/ffi/MemoryIO;
            areturn
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    2     1  offset  J
    MethodParameters:
        Name  Flags
      offset  

  public final void putMemoryIO(long, org.jruby.ext.ffi.MemoryIO);
    descriptor: (JLorg/jruby/ext/ffi/MemoryIO;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // org.jruby.ext.ffi.MemoryIO value
         0: .line 108
            aload 0 /* this */
            lload 1 /* offset */
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.ADDRESS_SIZE:I
            iconst_3
            ishr
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 109
            aload 0 /* this */
            lload 1 /* offset */
            aload 3 /* value */
            invokevirtual org.jruby.ext.ffi.MemoryIO.address:()J
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.putAddress:(JJ)V
         2: .line 110
            return
        end local 3 // org.jruby.ext.ffi.MemoryIO value
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    3     1  offset  J
            0    3     3   value  Lorg/jruby/ext/ffi/MemoryIO;
    MethodParameters:
        Name  Flags
      offset  
      value   

  public final byte getByte(long);
    descriptor: (J)B
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
         0: .line 112
            aload 0 /* this */
            lload 1 /* offset */
            lconst_1
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 113
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            baload
            sipush 255
            iand
            i2b
            ireturn
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    2     1  offset  J
    MethodParameters:
        Name  Flags
      offset  

  public final short getShort(long);
    descriptor: (J)S
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
         0: .line 117
            aload 0 /* this */
            lload 1 /* offset */
            ldc 2
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 118
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.getInt16:([BI)S
            ireturn
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    2     1  offset  J
    MethodParameters:
        Name  Flags
      offset  

  public final int getInt(long);
    descriptor: (J)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
         0: .line 122
            aload 0 /* this */
            lload 1 /* offset */
            ldc 4
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 123
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.getInt32:([BI)I
            ireturn
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    2     1  offset  J
    MethodParameters:
        Name  Flags
      offset  

  public final long getLong(long);
    descriptor: (J)J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
         0: .line 127
            aload 0 /* this */
            lload 1 /* offset */
            ldc 8
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 128
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.getInt64:([BI)J
            lreturn
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    2     1  offset  J
    MethodParameters:
        Name  Flags
      offset  

  public final long getNativeLong(long);
    descriptor: (J)J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
         0: .line 132
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.LONG_SIZE:I
            bipush 32
            if_icmpne 1
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.getInt:(J)I
            i2l
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.getLong:(J)J
      StackMap locals:
      StackMap stack: long
         2: lreturn
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    3     1  offset  J
    MethodParameters:
        Name  Flags
      offset  

  public final float getFloat(long);
    descriptor: (J)F
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
         0: .line 136
            aload 0 /* this */
            lload 1 /* offset */
            ldc 4
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 137
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.getFloat32:([BI)F
            freturn
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    2     1  offset  J
    MethodParameters:
        Name  Flags
      offset  

  public final double getDouble(long);
    descriptor: (J)D
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
         0: .line 141
            aload 0 /* this */
            lload 1 /* offset */
            ldc 8
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 142
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.getFloat64:([BI)D
            dreturn
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    2     1  offset  J
    MethodParameters:
        Name  Flags
      offset  

  public final long getAddress(long);
    descriptor: (J)J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
         0: .line 146
            aload 0 /* this */
            lload 1 /* offset */
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.ADDRESS_SIZE:I
            iconst_3
            ishr
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 147
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.getAddress:([BI)J
            lreturn
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    2     1  offset  J
    MethodParameters:
        Name  Flags
      offset  

  public final void putByte(long, byte);
    descriptor: (JB)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // byte value
         0: .line 151
            aload 0 /* this */
            lload 1 /* offset */
            lconst_1
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 152
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            iload 3 /* value */
            bastore
         2: .line 153
            return
        end local 3 // byte value
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    3     1  offset  J
            0    3     3   value  B
    MethodParameters:
        Name  Flags
      offset  
      value   

  public final void putShort(long, short);
    descriptor: (JS)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // short value
         0: .line 156
            aload 0 /* this */
            lload 1 /* offset */
            ldc 2
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 157
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            iload 3 /* value */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.putInt16:([BII)V
         2: .line 158
            return
        end local 3 // short value
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    3     1  offset  J
            0    3     3   value  S
    MethodParameters:
        Name  Flags
      offset  
      value   

  public final void putInt(long, int);
    descriptor: (JI)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // int value
         0: .line 161
            aload 0 /* this */
            lload 1 /* offset */
            ldc 4
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 162
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            iload 3 /* value */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.putInt32:([BII)V
         2: .line 163
            return
        end local 3 // int value
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    3     1  offset  J
            0    3     3   value  I
    MethodParameters:
        Name  Flags
      offset  
      value   

  public final void putLong(long, long);
    descriptor: (JJ)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // long value
         0: .line 166
            aload 0 /* this */
            lload 1 /* offset */
            ldc 8
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 167
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            lload 3 /* value */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.putInt64:([BIJ)V
         2: .line 168
            return
        end local 3 // long value
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    3     1  offset  J
            0    3     3   value  J
    MethodParameters:
        Name  Flags
      offset  
      value   

  public final void putNativeLong(long, long);
    descriptor: (JJ)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // long value
         0: .line 171
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.LONG_SIZE:I
            bipush 32
            if_icmpne 3
         1: .line 172
            aload 0 /* this */
            lload 1 /* offset */
            lload 3 /* value */
            l2i
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.putInt:(JI)V
         2: .line 173
            goto 4
         3: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* offset */
            lload 3 /* value */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.putLong:(JJ)V
         4: .line 176
      StackMap locals:
      StackMap stack:
            return
        end local 3 // long value
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    5     1  offset  J
            0    5     3   value  J
    MethodParameters:
        Name  Flags
      offset  
      value   

  public final void putFloat(long, float);
    descriptor: (JF)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // float value
         0: .line 179
            aload 0 /* this */
            lload 1 /* offset */
            ldc 4
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 180
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            fload 3 /* value */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.putFloat32:([BIF)V
         2: .line 181
            return
        end local 3 // float value
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    3     1  offset  J
            0    3     3   value  F
    MethodParameters:
        Name  Flags
      offset  
      value   

  public final void putDouble(long, double);
    descriptor: (JD)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // double value
         0: .line 184
            aload 0 /* this */
            lload 1 /* offset */
            ldc 8
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 185
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            dload 3 /* value */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.putFloat64:([BID)V
         2: .line 186
            return
        end local 3 // double value
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    3     1  offset  J
            0    3     3   value  D
    MethodParameters:
        Name  Flags
      offset  
      value   

  public final void putAddress(long, long);
    descriptor: (JJ)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // long value
         0: .line 189
            aload 0 /* this */
            lload 1 /* offset */
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.ADDRESS_SIZE:I
            iconst_3
            ishr
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 190
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            lload 3 /* value */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.putAddress:([BIJ)V
         2: .line 191
            return
        end local 3 // long value
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    3     1  offset  J
            0    3     3   value  J
    MethodParameters:
        Name  Flags
      offset  
      value   

  public final void get(long, byte[], int, int);
    descriptor: (J[BII)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // byte[] dst
        start local 4 // int off
        start local 5 // int len
         0: .line 193
            aload 0 /* this */
            lload 1 /* offset */
            iload 5 /* len */
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 194
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            aload 3 /* dst */
            iload 4 /* off */
            iload 5 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 195
            return
        end local 5 // int len
        end local 4 // int off
        end local 3 // byte[] dst
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    3     1  offset  J
            0    3     3     dst  [B
            0    3     4     off  I
            0    3     5     len  I
    MethodParameters:
        Name  Flags
      offset  
      dst     
      off     
      len     

  public final void put(long, byte[], int, int);
    descriptor: (J[BII)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // byte[] src
        start local 4 // int off
        start local 5 // int len
         0: .line 198
            aload 0 /* this */
            lload 1 /* offset */
            iload 5 /* len */
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 199
            aload 3 /* src */
            iload 4 /* off */
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            iload 5 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 200
            return
        end local 5 // int len
        end local 4 // int off
        end local 3 // byte[] src
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    3     1  offset  J
            0    3     3     src  [B
            0    3     4     off  I
            0    3     5     len  I
    MethodParameters:
        Name  Flags
      offset  
      src     
      off     
      len     

  public final void get(long, short[], int, int);
    descriptor: (J[SII)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // short[] dst
        start local 4 // int off
        start local 5 // int len
         0: .line 203
            aload 0 /* this */
            lload 1 /* offset */
            iload 5 /* len */
            iconst_1
            ishl
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 204
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            istore 6 /* begin */
        start local 6 // int begin
         2: .line 205
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: goto 6
         4: .line 206
      StackMap locals: int int
      StackMap stack:
            aload 3 /* dst */
            iload 4 /* off */
            iload 7 /* i */
            iadd
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            iload 6 /* begin */
            iload 7 /* i */
            iconst_1
            ishl
            iadd
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.getInt16:([BI)S
            sastore
         5: .line 205
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 7 /* i */
            iload 5 /* len */
            if_icmplt 4
        end local 7 // int i
         7: .line 208
            return
        end local 6 // int begin
        end local 5 // int len
        end local 4 // int off
        end local 3 // short[] dst
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    8     1  offset  J
            0    8     3     dst  [S
            0    8     4     off  I
            0    8     5     len  I
            2    8     6   begin  I
            3    7     7       i  I
    MethodParameters:
        Name  Flags
      offset  
      dst     
      off     
      len     

  public final void put(long, short[], int, int);
    descriptor: (J[SII)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // short[] src
        start local 4 // int off
        start local 5 // int len
         0: .line 211
            aload 0 /* this */
            lload 1 /* offset */
            iload 5 /* len */
            iconst_1
            ishl
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 212
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            istore 6 /* begin */
        start local 6 // int begin
         2: .line 213
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: goto 6
         4: .line 214
      StackMap locals: int int
      StackMap stack:
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            iload 6 /* begin */
            iload 7 /* i */
            iconst_1
            ishl
            iadd
            aload 3 /* src */
            iload 4 /* off */
            iload 7 /* i */
            iadd
            saload
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.putInt16:([BII)V
         5: .line 213
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 7 /* i */
            iload 5 /* len */
            if_icmplt 4
        end local 7 // int i
         7: .line 216
            return
        end local 6 // int begin
        end local 5 // int len
        end local 4 // int off
        end local 3 // short[] src
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    8     1  offset  J
            0    8     3     src  [S
            0    8     4     off  I
            0    8     5     len  I
            2    8     6   begin  I
            3    7     7       i  I
    MethodParameters:
        Name  Flags
      offset  
      src     
      off     
      len     

  public final void get(long, int[], int, int);
    descriptor: (J[III)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // int[] dst
        start local 4 // int off
        start local 5 // int len
         0: .line 219
            aload 0 /* this */
            lload 1 /* offset */
            iload 5 /* len */
            iconst_2
            ishl
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 220
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            istore 6 /* begin */
        start local 6 // int begin
         2: .line 221
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: goto 6
         4: .line 222
      StackMap locals: int int
      StackMap stack:
            aload 3 /* dst */
            iload 4 /* off */
            iload 7 /* i */
            iadd
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            iload 6 /* begin */
            iload 7 /* i */
            iconst_2
            ishl
            iadd
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.getInt32:([BI)I
            iastore
         5: .line 221
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 7 /* i */
            iload 5 /* len */
            if_icmplt 4
        end local 7 // int i
         7: .line 224
            return
        end local 6 // int begin
        end local 5 // int len
        end local 4 // int off
        end local 3 // int[] dst
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    8     1  offset  J
            0    8     3     dst  [I
            0    8     4     off  I
            0    8     5     len  I
            2    8     6   begin  I
            3    7     7       i  I
    MethodParameters:
        Name  Flags
      offset  
      dst     
      off     
      len     

  public final void put(long, int[], int, int);
    descriptor: (J[III)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // int[] src
        start local 4 // int off
        start local 5 // int len
         0: .line 227
            aload 0 /* this */
            lload 1 /* offset */
            iload 5 /* len */
            iconst_2
            ishl
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 228
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            istore 6 /* begin */
        start local 6 // int begin
         2: .line 229
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: goto 6
         4: .line 230
      StackMap locals: int int
      StackMap stack:
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            iload 6 /* begin */
            iload 7 /* i */
            iconst_2
            ishl
            iadd
            aload 3 /* src */
            iload 4 /* off */
            iload 7 /* i */
            iadd
            iaload
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.putInt32:([BII)V
         5: .line 229
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 7 /* i */
            iload 5 /* len */
            if_icmplt 4
        end local 7 // int i
         7: .line 232
            return
        end local 6 // int begin
        end local 5 // int len
        end local 4 // int off
        end local 3 // int[] src
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    8     1  offset  J
            0    8     3     src  [I
            0    8     4     off  I
            0    8     5     len  I
            2    8     6   begin  I
            3    7     7       i  I
    MethodParameters:
        Name  Flags
      offset  
      src     
      off     
      len     

  public final void get(long, long[], int, int);
    descriptor: (J[JII)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // long[] dst
        start local 4 // int off
        start local 5 // int len
         0: .line 235
            aload 0 /* this */
            lload 1 /* offset */
            iload 5 /* len */
            iconst_3
            ishl
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 236
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            istore 6 /* begin */
        start local 6 // int begin
         2: .line 237
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: goto 6
         4: .line 238
      StackMap locals: int int
      StackMap stack:
            aload 3 /* dst */
            iload 4 /* off */
            iload 7 /* i */
            iadd
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            iload 6 /* begin */
            iload 7 /* i */
            iconst_3
            ishl
            iadd
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.getInt64:([BI)J
            lastore
         5: .line 237
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 7 /* i */
            iload 5 /* len */
            if_icmplt 4
        end local 7 // int i
         7: .line 240
            return
        end local 6 // int begin
        end local 5 // int len
        end local 4 // int off
        end local 3 // long[] dst
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    8     1  offset  J
            0    8     3     dst  [J
            0    8     4     off  I
            0    8     5     len  I
            2    8     6   begin  I
            3    7     7       i  I
    MethodParameters:
        Name  Flags
      offset  
      dst     
      off     
      len     

  public final void put(long, long[], int, int);
    descriptor: (J[JII)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // long[] src
        start local 4 // int off
        start local 5 // int len
         0: .line 243
            aload 0 /* this */
            lload 1 /* offset */
            iload 5 /* len */
            iconst_3
            ishl
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 244
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            istore 6 /* begin */
        start local 6 // int begin
         2: .line 245
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: goto 6
         4: .line 246
      StackMap locals: int int
      StackMap stack:
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            iload 6 /* begin */
            iload 7 /* i */
            iconst_3
            ishl
            iadd
            aload 3 /* src */
            iload 4 /* off */
            iload 7 /* i */
            iadd
            laload
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.putInt64:([BIJ)V
         5: .line 245
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 7 /* i */
            iload 5 /* len */
            if_icmplt 4
        end local 7 // int i
         7: .line 248
            return
        end local 6 // int begin
        end local 5 // int len
        end local 4 // int off
        end local 3 // long[] src
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    8     1  offset  J
            0    8     3     src  [J
            0    8     4     off  I
            0    8     5     len  I
            2    8     6   begin  I
            3    7     7       i  I
    MethodParameters:
        Name  Flags
      offset  
      src     
      off     
      len     

  public final void get(long, float[], int, int);
    descriptor: (J[FII)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // float[] dst
        start local 4 // int off
        start local 5 // int len
         0: .line 251
            aload 0 /* this */
            lload 1 /* offset */
            iload 5 /* len */
            iconst_2
            ishl
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 252
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            istore 6 /* begin */
        start local 6 // int begin
         2: .line 253
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: goto 6
         4: .line 254
      StackMap locals: int int
      StackMap stack:
            aload 3 /* dst */
            iload 4 /* off */
            iload 7 /* i */
            iadd
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            iload 6 /* begin */
            iload 7 /* i */
            iconst_2
            ishl
            iadd
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.getFloat32:([BI)F
            fastore
         5: .line 253
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 7 /* i */
            iload 5 /* len */
            if_icmplt 4
        end local 7 // int i
         7: .line 256
            return
        end local 6 // int begin
        end local 5 // int len
        end local 4 // int off
        end local 3 // float[] dst
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    8     1  offset  J
            0    8     3     dst  [F
            0    8     4     off  I
            0    8     5     len  I
            2    8     6   begin  I
            3    7     7       i  I
    MethodParameters:
        Name  Flags
      offset  
      dst     
      off     
      len     

  public final void put(long, float[], int, int);
    descriptor: (J[FII)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // float[] src
        start local 4 // int off
        start local 5 // int len
         0: .line 259
            aload 0 /* this */
            lload 1 /* offset */
            iload 5 /* len */
            iconst_2
            ishl
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 260
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            istore 6 /* begin */
        start local 6 // int begin
         2: .line 261
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: goto 6
         4: .line 262
      StackMap locals: int int
      StackMap stack:
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            iload 6 /* begin */
            iload 7 /* i */
            iconst_2
            ishl
            iadd
            aload 3 /* src */
            iload 4 /* off */
            iload 7 /* i */
            iadd
            faload
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.putFloat32:([BIF)V
         5: .line 261
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 7 /* i */
            iload 5 /* len */
            if_icmplt 4
        end local 7 // int i
         7: .line 264
            return
        end local 6 // int begin
        end local 5 // int len
        end local 4 // int off
        end local 3 // float[] src
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    8     1  offset  J
            0    8     3     src  [F
            0    8     4     off  I
            0    8     5     len  I
            2    8     6   begin  I
            3    7     7       i  I
    MethodParameters:
        Name  Flags
      offset  
      src     
      off     
      len     

  public final void get(long, double[], int, int);
    descriptor: (J[DII)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // double[] dst
        start local 4 // int off
        start local 5 // int len
         0: .line 267
            aload 0 /* this */
            lload 1 /* offset */
            iload 5 /* len */
            iconst_3
            ishl
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 268
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            istore 6 /* begin */
        start local 6 // int begin
         2: .line 269
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: goto 6
         4: .line 270
      StackMap locals: int int
      StackMap stack:
            aload 3 /* dst */
            iload 4 /* off */
            iload 7 /* i */
            iadd
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            iload 6 /* begin */
            iload 7 /* i */
            iconst_3
            ishl
            iadd
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.getFloat64:([BI)D
            dastore
         5: .line 269
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 7 /* i */
            iload 5 /* len */
            if_icmplt 4
        end local 7 // int i
         7: .line 272
            return
        end local 6 // int begin
        end local 5 // int len
        end local 4 // int off
        end local 3 // double[] dst
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    8     1  offset  J
            0    8     3     dst  [D
            0    8     4     off  I
            0    8     5     len  I
            2    8     6   begin  I
            3    7     7       i  I
    MethodParameters:
        Name  Flags
      offset  
      dst     
      off     
      len     

  public final void put(long, double[], int, int);
    descriptor: (J[DII)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // double[] src
        start local 4 // int off
        start local 5 // int len
         0: .line 275
            aload 0 /* this */
            lload 1 /* offset */
            iload 5 /* len */
            iconst_3
            ishl
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 276
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            istore 6 /* begin */
        start local 6 // int begin
         2: .line 277
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         3: goto 6
         4: .line 278
      StackMap locals: int int
      StackMap stack:
            getstatic org.jruby.ext.ffi.ArrayMemoryIO.IO:Lorg/jruby/ext/ffi/ArrayMemoryIO$ArrayIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            iload 6 /* begin */
            iload 7 /* i */
            iconst_3
            ishl
            iadd
            aload 3 /* src */
            iload 4 /* off */
            iload 7 /* i */
            iadd
            daload
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO.putFloat64:([BID)V
         5: .line 277
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 7 /* i */
            iload 5 /* len */
            if_icmplt 4
        end local 7 // int i
         7: .line 280
            return
        end local 6 // int begin
        end local 5 // int len
        end local 4 // int off
        end local 3 // double[] src
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    8     1  offset  J
            0    8     3     src  [D
            0    8     4     off  I
            0    8     5     len  I
            2    8     6   begin  I
            3    7     7       i  I
    MethodParameters:
        Name  Flags
      offset  
      src     
      off     
      len     

  public final int indexOf(long, byte);
    descriptor: (JB)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // byte value
         0: .line 283
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            istore 4 /* off */
        start local 4 // int off
         1: .line 284
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         2: goto 6
         3: .line 285
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            iload 4 /* off */
            iload 5 /* i */
            iadd
            baload
            iload 3 /* value */
            if_icmpne 5
         4: .line 286
            iload 5 /* i */
            ireturn
         5: .line 284
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 5 /* i */
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.length:I
            if_icmplt 3
        end local 5 // int i
         7: .line 289
            iconst_m1
            ireturn
        end local 4 // int off
        end local 3 // byte value
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    8     1  offset  J
            0    8     3   value  B
            1    8     4     off  I
            2    7     5       i  I
    MethodParameters:
        Name  Flags
      offset  
      value   

  public final int indexOf(long, byte, int);
    descriptor: (JBI)I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // byte value
        start local 4 // int maxlen
         0: .line 293
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            istore 5 /* off */
        start local 5 // int off
         1: .line 294
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         2: goto 6
         3: .line 295
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            iload 5 /* off */
            iload 6 /* i */
            iadd
            baload
            iload 3 /* value */
            if_icmpne 5
         4: .line 296
            iload 6 /* i */
            ireturn
         5: .line 294
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 6 /* i */
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.length:I
            iload 4 /* maxlen */
            invokestatic java.lang.Math.min:(II)I
            if_icmplt 3
        end local 6 // int i
         7: .line 299
            iconst_m1
            ireturn
        end local 5 // int off
        end local 4 // int maxlen
        end local 3 // byte value
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    8     1  offset  J
            0    8     3   value  B
            0    8     4  maxlen  I
            1    8     5     off  I
            2    7     6       i  I
    MethodParameters:
        Name  Flags
      offset  
      value   
      maxlen  

  public final void setMemory(long, long, byte);
    descriptor: (JJB)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // long size
        start local 5 // byte value
         0: .line 303
            aload 0 /* this */
            lload 1 /* offset */
            lload 3 /* size */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 304
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            lload 3 /* size */
            l2i
            iload 5 /* value */
            invokestatic java.util.Arrays.fill:([BIIB)V
         2: .line 305
            return
        end local 5 // byte value
        end local 3 // long size
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    3     1  offset  J
            0    3     3    size  J
            0    3     5   value  B
    MethodParameters:
        Name  Flags
      offset  
      size    
      value   

  public final byte[] getZeroTerminatedByteArray(long);
    descriptor: (J)[B
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
         0: .line 308
            aload 0 /* this */
            lload 1 /* offset */
            lconst_1
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 309
            aload 0 /* this */
            lload 1 /* offset */
            iconst_0
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.indexOf:(JB)I
            istore 3 /* len */
        start local 3 // int len
         2: .line 310
            iload 3 /* len */
            iconst_m1
            if_icmpeq 3
            iload 3 /* len */
            goto 4
      StackMap locals: int
      StackMap stack:
         3: aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.length:I
            lload 1 /* offset */
            l2i
            isub
      StackMap locals:
      StackMap stack: int
         4: newarray 8
            astore 4 /* bytes */
        start local 4 // byte[] bytes
         5: .line 311
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            aload 4 /* bytes */
            iconst_0
            aload 4 /* bytes */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 312
            aload 4 /* bytes */
            areturn
        end local 4 // byte[] bytes
        end local 3 // int len
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    7     1  offset  J
            2    7     3     len  I
            5    7     4   bytes  [B
    MethodParameters:
        Name  Flags
      offset  

  public final byte[] getZeroTerminatedByteArray(long, int);
    descriptor: (JI)[B
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // int maxlen
         0: .line 316
            aload 0 /* this */
            lload 1 /* offset */
            lconst_1
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 317
            aload 0 /* this */
            lload 1 /* offset */
            iconst_0
            iload 3 /* maxlen */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.indexOf:(JBI)I
            istore 4 /* len */
        start local 4 // int len
         2: .line 318
            iload 4 /* len */
            iconst_m1
            if_icmpeq 3
            iload 4 /* len */
            goto 4
      StackMap locals: int
      StackMap stack:
         3: aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.length:I
            lload 1 /* offset */
            l2i
            isub
            iload 3 /* maxlen */
            invokestatic java.lang.Math.min:(II)I
      StackMap locals:
      StackMap stack: int
         4: newarray 8
            astore 5 /* bytes */
        start local 5 // byte[] bytes
         5: .line 319
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            aload 5 /* bytes */
            iconst_0
            aload 5 /* bytes */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 320
            aload 5 /* bytes */
            areturn
        end local 5 // byte[] bytes
        end local 4 // int len
        end local 3 // int maxlen
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    7     1  offset  J
            0    7     3  maxlen  I
            2    7     4     len  I
            5    7     5   bytes  [B
    MethodParameters:
        Name  Flags
      offset  
      maxlen  

  public void putZeroTerminatedByteArray(long, byte[], int, int);
    descriptor: (J[BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
        start local 1 // long offset
        start local 3 // byte[] bytes
        start local 4 // int off
        start local 5 // int len
         0: .line 325
            aload 0 /* this */
            lload 1 /* offset */
            iload 5 /* len */
            iconst_1
            iadd
            i2l
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.checkBounds:(JJ)V
         1: .line 326
            aload 3 /* bytes */
            iload 4 /* off */
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            lload 1 /* offset */
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.index:(J)I
            iload 5 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 327
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            iload 5 /* len */
            iconst_0
            bastore
         3: .line 328
            return
        end local 5 // int len
        end local 4 // int off
        end local 3 // byte[] bytes
        end local 1 // long offset
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/jruby/ext/ffi/ArrayMemoryIO;
            0    4     1  offset  J
            0    4     3   bytes  [B
            0    4     4     off  I
            0    4     5     len  I
    MethodParameters:
        Name  Flags
      offset  
      bytes   
      off     
      len     

  public final void clear();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
         0: .line 332
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.buffer:[B
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.offset:I
            aload 0 /* this */
            getfield org.jruby.ext.ffi.ArrayMemoryIO.length:I
            iconst_0
            invokestatic java.util.Arrays.fill:([BIIB)V
         1: .line 333
            return
        end local 0 // org.jruby.ext.ffi.ArrayMemoryIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ext/ffi/ArrayMemoryIO;

  public org.jruby.ext.ffi.MemoryIO slice(long, long);
    descriptor: (JJ)Lorg/jruby/ext/ffi/MemoryIO;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=3
         0: .line 1
            aload 0
            lload 1
            lload 3
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.slice:(JJ)Lorg/jruby/ext/ffi/ArrayMemoryIO;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.jruby.ext.ffi.MemoryIO slice(long);
    descriptor: (J)Lorg/jruby/ext/ffi/MemoryIO;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
         0: .line 1
            aload 0
            lload 1
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.slice:(J)Lorg/jruby/ext/ffi/ArrayMemoryIO;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.jruby.ext.ffi.MemoryIO dup();
    descriptor: ()Lorg/jruby/ext/ffi/MemoryIO;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.dup:()Lorg/jruby/ext/ffi/ArrayMemoryIO;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object array();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.jruby.ext.ffi.ArrayMemoryIO.array:()[B
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "ArrayMemoryIO.java"
NestMembers:
  org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO  org.jruby.ext.ffi.ArrayMemoryIO$BE32ArrayIO  org.jruby.ext.ffi.ArrayMemoryIO$BE64ArrayIO  org.jruby.ext.ffi.ArrayMemoryIO$BigEndianArrayIO  org.jruby.ext.ffi.ArrayMemoryIO$LE32ArrayIO  org.jruby.ext.ffi.ArrayMemoryIO$LE64ArrayIO  org.jruby.ext.ffi.ArrayMemoryIO$LittleEndianArrayIO
InnerClasses:
  protected abstract ArrayIO = org.jruby.ext.ffi.ArrayMemoryIO$ArrayIO of org.jruby.ext.ffi.ArrayMemoryIO
  private final BE32ArrayIO = org.jruby.ext.ffi.ArrayMemoryIO$BE32ArrayIO of org.jruby.ext.ffi.ArrayMemoryIO
  private final BE64ArrayIO = org.jruby.ext.ffi.ArrayMemoryIO$BE64ArrayIO of org.jruby.ext.ffi.ArrayMemoryIO
  private abstract BigEndianArrayIO = org.jruby.ext.ffi.ArrayMemoryIO$BigEndianArrayIO of org.jruby.ext.ffi.ArrayMemoryIO
  private final LE32ArrayIO = org.jruby.ext.ffi.ArrayMemoryIO$LE32ArrayIO of org.jruby.ext.ffi.ArrayMemoryIO
  private final LE64ArrayIO = org.jruby.ext.ffi.ArrayMemoryIO$LE64ArrayIO of org.jruby.ext.ffi.ArrayMemoryIO
  private abstract LittleEndianArrayIO = org.jruby.ext.ffi.ArrayMemoryIO$LittleEndianArrayIO of org.jruby.ext.ffi.ArrayMemoryIO