public class org.jruby.RubyMarshal
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.RubyMarshal
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyMarshal this
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.jruby.RubyMarshal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyMarshal;

  public static org.jruby.RubyModule createMarshalModule(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/RubyModule;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 63
            aload 0 /* runtime */
            ldc "Marshal"
            invokevirtual org.jruby.Ruby.defineModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 1 /* module */
        start local 1 // org.jruby.RubyModule module
         1: .line 64
            aload 0 /* runtime */
            aload 1 /* module */
            invokevirtual org.jruby.Ruby.setMarshal:(Lorg/jruby/RubyModule;)V
         2: .line 66
            aload 1 /* module */
            ldc Lorg/jruby/RubyMarshal;
            invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
         3: .line 67
            aload 1 /* module */
            ldc "MAJOR_VERSION"
            aload 0 /* runtime */
            iconst_4
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
         4: .line 68
            aload 1 /* module */
            ldc "MINOR_VERSION"
            aload 0 /* runtime */
            bipush 8
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
         5: .line 70
            aload 1 /* module */
            areturn
        end local 1 // org.jruby.RubyModule module
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0  runtime  Lorg/jruby/Ruby;
            1    6     1   module  Lorg/jruby/RubyModule;
    MethodParameters:
         Name  Flags
      runtime  

  public static org.jruby.runtime.builtin.IRubyObject dump(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block unusedBlock
         0: .line 75
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 77
            aload 2 /* args */
            iconst_0
            aaload
            astore 5 /* objectToDump */
        start local 5 // org.jruby.runtime.builtin.IRubyObject objectToDump
         2: .line 78
            aconst_null
            astore 6 /* io */
        start local 6 // org.jruby.runtime.builtin.IRubyObject io
         3: .line 79
            iconst_m1
            istore 7 /* depthLimit */
        start local 7 // int depthLimit
         4: .line 81
            aload 2 /* args */
            arraylength
            iconst_2
            if_icmplt 15
         5: .line 82
            aload 2 /* args */
            iconst_1
            aaload
            astore 8 /* arg1 */
        start local 8 // org.jruby.runtime.builtin.IRubyObject arg1
         6: .line 83
            aload 0 /* context */
            invokestatic org.jruby.RubyMarshal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$MarshalSites;
            getfield org.jruby.runtime.JavaSites$MarshalSites.respond_to_write:Lorg/jruby/runtime/callsite/RespondToCallSite;
            aload 0 /* context */
            aload 8 /* arg1 */
            aload 8 /* arg1 */
            invokevirtual org.jruby.runtime.callsite.RespondToCallSite.respondsTo:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifeq 9
         7: .line 84
            aload 8 /* arg1 */
            astore 6 /* io */
         8: .line 85
            goto 13
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
         9: aload 8 /* arg1 */
            instanceof org.jruby.RubyFixnum
            ifeq 12
        10: .line 86
            aload 8 /* arg1 */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            l2i
            istore 7 /* depthLimit */
        11: .line 87
            goto 13
        12: .line 88
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            ldc "Instance of IO needed"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        13: .line 90
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            arraylength
            iconst_3
            if_icmpne 15
        14: .line 91
            aload 2 /* args */
            iconst_2
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
            l2i
            istore 7 /* depthLimit */
        end local 8 // org.jruby.runtime.builtin.IRubyObject arg1
        15: .line 96
      StackMap locals:
      StackMap stack:
            aload 6 /* io */
            ifnull 19
        16: .line 97
            aload 4 /* runtime */
            aload 5 /* objectToDump */
            aload 0 /* context */
            aload 6 /* io */
            invokestatic org.jruby.RubyMarshal.outputStream:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/io/OutputStream;
            iload 7 /* depthLimit */
            invokestatic org.jruby.RubyMarshal.dumpToStream:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/io/OutputStream;I)Z
            pop
        17: .line 98
            aload 6 /* io */
        18: areturn
        19: .line 101
      StackMap locals:
      StackMap stack:
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 8 /* stringOutput */
        start local 8 // java.io.ByteArrayOutputStream stringOutput
        20: .line 102
            aload 4 /* runtime */
            aload 5 /* objectToDump */
            aload 8 /* stringOutput */
            iload 7 /* depthLimit */
            invokestatic org.jruby.RubyMarshal.dumpToStream:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/io/OutputStream;I)Z
            istore 9 /* taint */
        start local 9 // boolean taint
        21: .line 103
            aload 4 /* runtime */
            new org.jruby.util.ByteList
            dup
            aload 8 /* stringOutput */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            iconst_0
            invokespecial org.jruby.util.ByteList.<init>:([BZ)V
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            astore 10 /* result */
        start local 10 // org.jruby.RubyString result
        22: .line 105
            iload 9 /* taint */
            ifeq 23
            aload 10 /* result */
            iconst_1
            invokevirtual org.jruby.RubyString.setTaint:(Z)V
        23: .line 107
      StackMap locals: java.io.ByteArrayOutputStream int org.jruby.RubyString
      StackMap stack:
            aload 10 /* result */
        24: areturn
        end local 10 // org.jruby.RubyString result
        end local 9 // boolean taint
        end local 8 // java.io.ByteArrayOutputStream stringOutput
        25: .line 108
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int
      StackMap stack: java.io.IOException
            astore 8 /* ioe */
        start local 8 // java.io.IOException ioe
        26: .line 109
            aload 4 /* runtime */
            aload 8 /* ioe */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 8 // java.io.IOException ioe
        end local 7 // int depthLimit
        end local 6 // org.jruby.runtime.builtin.IRubyObject io
        end local 5 // org.jruby.runtime.builtin.IRubyObject objectToDump
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.Block unusedBlock
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   27     0       context  Lorg/jruby/runtime/ThreadContext;
            0   27     1          recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   27     2          args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   27     3   unusedBlock  Lorg/jruby/runtime/Block;
            1   27     4       runtime  Lorg/jruby/Ruby;
            2   27     5  objectToDump  Lorg/jruby/runtime/builtin/IRubyObject;
            3   27     6            io  Lorg/jruby/runtime/builtin/IRubyObject;
            4   27     7    depthLimit  I
            6   15     8          arg1  Lorg/jruby/runtime/builtin/IRubyObject;
           20   25     8  stringOutput  Ljava/io/ByteArrayOutputStream;
           21   25     9         taint  Z
           22   25    10        result  Lorg/jruby/RubyString;
           26   27     8           ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          15    18      25  Class java.io.IOException
          19    24      25  Class java.io.IOException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, optional = 2, module = true, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
             Name  Flags
      context      
      recv         
      args         
      unusedBlock  

  public static org.jruby.runtime.builtin.IRubyObject dump(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 2 // org.jruby.runtime.Block unusedBlock
         0: .line 115
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 0 /* recv */
            aload 1 /* args */
            aload 2 /* unusedBlock */
            invokestatic org.jruby.RubyMarshal.dump:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block unusedBlock
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     1         args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  unusedBlock  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
             Name  Flags
      recv         
      args         
      unusedBlock  

  public static org.jruby.runtime.builtin.IRubyObject load(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block unusedBlock
         0: .line 120
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 121
            aload 2 /* args */
            iconst_0
            aaload
            astore 5 /* in */
        start local 5 // org.jruby.runtime.builtin.IRubyObject in
         2: .line 122
            aload 2 /* args */
            arraylength
            iconst_2
            if_icmpne 3
            aload 2 /* args */
            iconst_1
            aaload
            goto 4
      StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
         3: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         4: astore 6 /* proc */
        start local 6 // org.jruby.runtime.builtin.IRubyObject proc
         5: .line 124
            aload 5 /* in */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.checkStringType:()Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* str */
        start local 7 // org.jruby.runtime.builtin.IRubyObject str
         6: .line 127
            aload 7 /* str */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 11
         7: .line 128
            aload 5 /* in */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTaint:()Z
            istore 9 /* tainted */
        start local 9 // boolean tainted
         8: .line 129
            aload 7 /* str */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 10 /* bytes */
        start local 10 // org.jruby.util.ByteList bytes
         9: .line 130
            new java.io.ByteArrayInputStream
            dup
            aload 10 /* bytes */
            invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
            aload 10 /* bytes */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 10 /* bytes */
            invokevirtual org.jruby.util.ByteList.length:()I
            invokespecial java.io.ByteArrayInputStream.<init>:([BII)V
            astore 8 /* rawInput */
        end local 10 // org.jruby.util.ByteList bytes
        start local 8 // java.io.InputStream rawInput
        10: .line 131
            goto 17
        end local 9 // boolean tainted
        end local 8 // java.io.InputStream rawInput
      StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        11: aload 0 /* context */
            invokestatic org.jruby.RubyMarshal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$MarshalSites;
            getfield org.jruby.runtime.JavaSites$MarshalSites.respond_to_getc:Lorg/jruby/runtime/callsite/RespondToCallSite;
            aload 0 /* context */
            aload 5 /* in */
            aload 5 /* in */
            invokevirtual org.jruby.runtime.callsite.RespondToCallSite.respondsTo:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifeq 16
        12: .line 132
            aload 0 /* context */
            invokestatic org.jruby.RubyMarshal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$MarshalSites;
            getfield org.jruby.runtime.JavaSites$MarshalSites.respond_to_read:Lorg/jruby/runtime/callsite/RespondToCallSite;
            aload 0 /* context */
            aload 5 /* in */
            aload 5 /* in */
            invokevirtual org.jruby.runtime.callsite.RespondToCallSite.respondsTo:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifeq 16
        13: .line 133
            iconst_1
            istore 9 /* tainted */
        start local 9 // boolean tainted
        14: .line 134
            aload 0 /* context */
            aload 5 /* in */
            invokestatic org.jruby.RubyMarshal.inputStream:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/io/InputStream;
            astore 8 /* rawInput */
        start local 8 // java.io.InputStream rawInput
        15: .line 135
            goto 17
        end local 9 // boolean tainted
        end local 8 // java.io.InputStream rawInput
        16: .line 136
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            ldc "instance of IO needed"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        start local 8 // java.io.InputStream rawInput
        start local 9 // boolean tainted
        17: .line 139
      StackMap locals: java.io.InputStream int
      StackMap stack:
            new org.jruby.runtime.marshal.UnmarshalStream
            dup
            aload 4 /* runtime */
            aload 8 /* rawInput */
            aload 6 /* proc */
            iload 9 /* tainted */
            invokespecial org.jruby.runtime.marshal.UnmarshalStream.<init>:(Lorg/jruby/Ruby;Ljava/io/InputStream;Lorg/jruby/runtime/builtin/IRubyObject;Z)V
            invokevirtual org.jruby.runtime.marshal.UnmarshalStream.unmarshalObject:()Lorg/jruby/runtime/builtin/IRubyObject;
        18: areturn
        end local 9 // boolean tainted
        end local 8 // java.io.InputStream rawInput
        19: .line 140
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack: java.io.EOFException
            pop
        20: .line 141
            aload 7 /* str */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 21
            aload 4 /* runtime */
            ldc "marshal data too short"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        21: .line 143
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.newEOFError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        22: .line 144
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 8 /* ioe */
        start local 8 // java.io.IOException ioe
        23: .line 145
            aload 4 /* runtime */
            aload 8 /* ioe */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 8 // java.io.IOException ioe
        end local 7 // org.jruby.runtime.builtin.IRubyObject str
        end local 6 // org.jruby.runtime.builtin.IRubyObject proc
        end local 5 // org.jruby.runtime.builtin.IRubyObject in
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.Block unusedBlock
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0      context  Lorg/jruby/runtime/ThreadContext;
            0   24     1         recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   24     2         args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   24     3  unusedBlock  Lorg/jruby/runtime/Block;
            1   24     4      runtime  Lorg/jruby/Ruby;
            2   24     5           in  Lorg/jruby/runtime/builtin/IRubyObject;
            5   24     6         proc  Lorg/jruby/runtime/builtin/IRubyObject;
            6   24     7          str  Lorg/jruby/runtime/builtin/IRubyObject;
           10   11     8     rawInput  Ljava/io/InputStream;
           15   16     8     rawInput  Ljava/io/InputStream;
           17   19     8     rawInput  Ljava/io/InputStream;
            8   11     9      tainted  Z
           14   16     9      tainted  Z
           17   19     9      tainted  Z
            9   10    10        bytes  Lorg/jruby/util/ByteList;
           23   24     8          ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6    18      19  Class java.io.EOFException
           6    18      22  Class java.io.IOException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"load", "restore"}, required = 1, optional = 1, module = true, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
             Name  Flags
      context      
      recv         
      args         
      unusedBlock  

  private static java.io.InputStream inputStream(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/io/InputStream;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject in
         0: .line 150
            aload 0 /* context */
            aload 1 /* in */
            invokestatic org.jruby.RubyMarshal.setBinmodeIfPossible:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)V
         1: .line 151
            new org.jruby.util.IOInputStream
            dup
            aload 1 /* in */
            iconst_0
            invokespecial org.jruby.util.IOInputStream.<init>:(Lorg/jruby/runtime/builtin/IRubyObject;Z)V
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject in
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Lorg/jruby/runtime/ThreadContext;
            0    2     1       in  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      in       

  private static java.io.OutputStream outputStream(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/io/OutputStream;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject out
         0: .line 155
            aload 0 /* context */
            aload 1 /* out */
            invokestatic org.jruby.RubyMarshal.setBinmodeIfPossible:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)V
         1: .line 156
            new org.jruby.util.IOOutputStream
            dup
            aload 1 /* out */
            iconst_1
            iconst_0
            invokespecial org.jruby.util.IOOutputStream.<init>:(Lorg/jruby/runtime/builtin/IRubyObject;ZZ)V
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject out
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Lorg/jruby/runtime/ThreadContext;
            0    2     1      out  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      out      

  private static boolean dumpToStream(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, java.io.OutputStream, int);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/io/OutputStream;I)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject object
        start local 2 // java.io.OutputStream rawOutput
        start local 3 // int depthLimit
         0: .line 161
            new org.jruby.runtime.marshal.MarshalStream
            dup
            aload 0 /* runtime */
            aload 2 /* rawOutput */
            iload 3 /* depthLimit */
            invokespecial org.jruby.runtime.marshal.MarshalStream.<init>:(Lorg/jruby/Ruby;Ljava/io/OutputStream;I)V
            astore 4 /* output */
        start local 4 // org.jruby.runtime.marshal.MarshalStream output
         1: .line 162
            aload 4 /* output */
            aload 1 /* object */
            invokevirtual org.jruby.runtime.marshal.MarshalStream.dumpObject:(Lorg/jruby/runtime/builtin/IRubyObject;)V
         2: .line 163
            aload 4 /* output */
            invokevirtual org.jruby.runtime.marshal.MarshalStream.isTainted:()Z
            ireturn
        end local 4 // org.jruby.runtime.marshal.MarshalStream output
        end local 3 // int depthLimit
        end local 2 // java.io.OutputStream rawOutput
        end local 1 // org.jruby.runtime.builtin.IRubyObject object
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0     runtime  Lorg/jruby/Ruby;
            0    3     1      object  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     2   rawOutput  Ljava/io/OutputStream;
            0    3     3  depthLimit  I
            1    3     4      output  Lorg/jruby/runtime/marshal/MarshalStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      runtime     
      object      
      rawOutput   
      depthLimit  

  private static void setBinmodeIfPossible(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject io
         0: .line 167
            aload 0 /* context */
            invokestatic org.jruby.RubyMarshal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$MarshalSites;
            getfield org.jruby.runtime.JavaSites$MarshalSites.respond_to_binmode:Lorg/jruby/runtime/callsite/RespondToCallSite;
            aload 0 /* context */
            aload 1 /* io */
            aload 1 /* io */
            invokevirtual org.jruby.runtime.callsite.RespondToCallSite.respondsTo:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifeq 2
         1: .line 168
            aload 0 /* context */
            invokestatic org.jruby.RubyMarshal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$MarshalSites;
            getfield org.jruby.runtime.JavaSites$MarshalSites.binmode:Lorg/jruby/runtime/callsite/CachingCallSite;
            aload 0 /* context */
            aload 1 /* io */
            aload 1 /* io */
            invokevirtual org.jruby.runtime.callsite.CachingCallSite.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         2: .line 170
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.jruby.runtime.builtin.IRubyObject io
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  context  Lorg/jruby/runtime/ThreadContext;
            0    3     1       io  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      io       

  public static org.jruby.runtime.builtin.IRubyObject undumpable(org.jruby.runtime.ThreadContext, org.jruby.RubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyObject self
         0: .line 176
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "can't dump "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* self */
            invokevirtual org.jruby.RubyObject.type:()Lorg/jruby/RubyClass;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 1 // org.jruby.RubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     self  Lorg/jruby/RubyObject;
    MethodParameters:
         Name  Flags
      context  
      self     

  private static org.jruby.runtime.JavaSites$MarshalSites sites(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$MarshalSites;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.runtime.ThreadContext context
         0: .line 180
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.sites:Lorg/jruby/runtime/JavaSites;
            getfield org.jruby.runtime.JavaSites.Marshal:Lorg/jruby/runtime/JavaSites$MarshalSites;
            areturn
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  
}
SourceFile: "RubyMarshal.java"
InnerClasses:
  public MarshalSites = org.jruby.runtime.JavaSites$MarshalSites of org.jruby.runtime.JavaSites
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyModule(name = {"Marshal"})