public class org.jruby.RubyRandom extends org.jruby.RubyObject
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.RubyRandom
  super_class: org.jruby.RubyObject
{
  private static final int DEFAULT_SEED_CNT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static org.jruby.runtime.ObjectAllocator RANDOM_ALLOCATOR;
    descriptor: Lorg/jruby/runtime/ObjectAllocator;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private org.jruby.RubyRandom$RandomType random;
    descriptor: Lorg/jruby/RubyRandom$RandomType;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 241
            new org.jruby.RubyRandom$1
            dup
            invokespecial org.jruby.RubyRandom$1.<init>:()V
            putstatic org.jruby.RubyRandom.RANDOM_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
         1: .line 246
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int getIntBigIntegerBuffer(byte[], int);
    descriptor: ([BI)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // byte[] src
        start local 1 // int loc
         0: .line 180
            iconst_0
            istore 2 /* v */
        start local 2 // int v
         1: .line 181
            aload 0 /* src */
            arraylength
            iload 1 /* loc */
            iconst_4
            imul
            isub
            iconst_1
            isub
            istore 3 /* idx */
        start local 3 // int idx
         2: .line 182
            iload 3 /* idx */
            iflt 10
         3: .line 183
            iload 2 /* v */
            aload 0 /* src */
            iload 3 /* idx */
            iinc 3 /* idx */ -1
            baload
            sipush 255
            iand
            ior
            istore 2 /* v */
         4: .line 184
            iload 3 /* idx */
            iflt 10
         5: .line 185
            iload 2 /* v */
            aload 0 /* src */
            iload 3 /* idx */
            iinc 3 /* idx */ -1
            baload
            sipush 255
            iand
            bipush 8
            ishl
            ior
            istore 2 /* v */
         6: .line 186
            iload 3 /* idx */
            iflt 10
         7: .line 187
            iload 2 /* v */
            aload 0 /* src */
            iload 3 /* idx */
            iinc 3 /* idx */ -1
            baload
            sipush 255
            iand
            bipush 16
            ishl
            ior
            istore 2 /* v */
         8: .line 188
            iload 3 /* idx */
            iflt 10
         9: .line 189
            iload 2 /* v */
            aload 0 /* src */
            iload 3 /* idx */
            iinc 3 /* idx */ -1
            baload
            sipush 255
            iand
            bipush 24
            ishl
            ior
            istore 2 /* v */
        10: .line 194
      StackMap locals: int int
      StackMap stack:
            iload 2 /* v */
            ireturn
        end local 3 // int idx
        end local 2 // int v
        end local 1 // int loc
        end local 0 // byte[] src
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0   src  [B
            0   11     1   loc  I
            1   11     2     v  I
            2   11     3   idx  I
    MethodParameters:
      Name  Flags
      src   
      loc   

  static void setIntBigIntegerBuffer(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // byte[] dest
        start local 1 // int loc
        start local 2 // int value
         0: .line 198
            aload 0 /* dest */
            arraylength
            iload 1 /* loc */
            iconst_4
            imul
            isub
            iconst_1
            isub
            istore 3 /* idx */
        start local 3 // int idx
         1: .line 199
            iload 3 /* idx */
            iflt 9
         2: .line 200
            aload 0 /* dest */
            iload 3 /* idx */
            iinc 3 /* idx */ -1
            iload 2 /* value */
            sipush 255
            iand
            i2b
            bastore
         3: .line 201
            iload 3 /* idx */
            iflt 9
         4: .line 202
            aload 0 /* dest */
            iload 3 /* idx */
            iinc 3 /* idx */ -1
            iload 2 /* value */
            bipush 8
            ishr
            sipush 255
            iand
            i2b
            bastore
         5: .line 203
            iload 3 /* idx */
            iflt 9
         6: .line 204
            aload 0 /* dest */
            iload 3 /* idx */
            iinc 3 /* idx */ -1
            iload 2 /* value */
            bipush 16
            ishr
            sipush 255
            iand
            i2b
            bastore
         7: .line 205
            iload 3 /* idx */
            iflt 9
         8: .line 206
            aload 0 /* dest */
            iload 3 /* idx */
            iinc 3 /* idx */ -1
            iload 2 /* value */
            bipush 24
            ishr
            sipush 255
            iand
            i2b
            bastore
         9: .line 211
      StackMap locals: int
      StackMap stack:
            return
        end local 3 // int idx
        end local 2 // int value
        end local 1 // int loc
        end local 0 // byte[] dest
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   dest  [B
            0   10     1    loc  I
            0   10     2  value  I
            1   10     3    idx  I
    MethodParameters:
       Name  Flags
      dest   
      loc    
      value  

  public static java.math.BigInteger randomSeedBigInteger(java.util.Random);
    descriptor: (Ljava/util/Random;)Ljava/math/BigInteger;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.util.Random random
         0: .line 216
            bipush 16
            newarray 8
            astore 1 /* seed */
        start local 1 // byte[] seed
         1: .line 217
            aload 0 /* random */
            aload 1 /* seed */
            invokevirtual java.util.Random.nextBytes:([B)V
         2: .line 218
            new java.math.BigInteger
            dup
            aload 1 /* seed */
            invokespecial java.math.BigInteger.<init>:([B)V
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            areturn
        end local 1 // byte[] seed
        end local 0 // java.util.Random random
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  random  Ljava/util/Random;
            1    3     1    seed  [B
    MethodParameters:
        Name  Flags
      random  

  public static org.jruby.RubyBignum randomSeed(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/RubyBignum;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 223
            aload 0 /* runtime */
            aload 0 /* runtime */
            getfield org.jruby.Ruby.random:Ljava/util/Random;
            invokestatic org.jruby.RubyRandom.randomSeedBigInteger:(Ljava/util/Random;)Ljava/math/BigInteger;
            invokestatic org.jruby.RubyBignum.newBignum:(Lorg/jruby/Ruby;Ljava/math/BigInteger;)Lorg/jruby/RubyBignum;
            areturn
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  public static org.jruby.RubyClass createRandomClass(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/RubyClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 228
            aload 0 /* runtime */
         1: .line 229
            ldc "Random"
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
            getstatic org.jruby.RubyRandom.RANDOM_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
            invokevirtual org.jruby.Ruby.defineClass:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
         2: .line 228
            astore 1 /* randomClass */
        start local 1 // org.jruby.RubyClass randomClass
         3: .line 231
            aload 1 /* randomClass */
            ldc Lorg/jruby/RubyRandom;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         4: .line 233
            new org.jruby.RubyRandom
            dup
            aload 0 /* runtime */
            aload 1 /* randomClass */
            invokespecial org.jruby.RubyRandom.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
            astore 2 /* defaultRand */
        start local 2 // org.jruby.RubyRandom defaultRand
         5: .line 234
            aload 2 /* defaultRand */
            new org.jruby.RubyRandom$RandomType
            dup
            aload 0 /* runtime */
            invokestatic org.jruby.RubyRandom.randomSeed:(Lorg/jruby/Ruby;)Lorg/jruby/RubyBignum;
            invokespecial org.jruby.RubyRandom$RandomType.<init>:(Lorg/jruby/runtime/builtin/IRubyObject;)V
            putfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
         6: .line 235
            aload 1 /* randomClass */
            ldc "DEFAULT"
            aload 2 /* defaultRand */
            invokevirtual org.jruby.RubyClass.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         7: .line 236
            aload 0 /* runtime */
            aload 2 /* defaultRand */
            getfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
            invokevirtual org.jruby.Ruby.setDefaultRand:(Lorg/jruby/RubyRandom$RandomType;)V
         8: .line 238
            aload 1 /* randomClass */
            areturn
        end local 2 // org.jruby.RubyRandom defaultRand
        end local 1 // org.jruby.RubyClass randomClass
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0      runtime  Lorg/jruby/Ruby;
            3    9     1  randomClass  Lorg/jruby/RubyClass;
            5    9     2  defaultRand  Lorg/jruby/RubyRandom;
    MethodParameters:
         Name  Flags
      runtime  

  void <init>(org.jruby.Ruby, org.jruby.RubyClass);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyRandom this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass rubyClass
         0: .line 251
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* rubyClass */
            invokespecial org.jruby.RubyObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 248
            aload 0 /* this */
            aconst_null
            putfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
         2: .line 252
            return
        end local 2 // org.jruby.RubyClass rubyClass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyRandom this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/jruby/RubyRandom;
            0    3     1    runtime  Lorg/jruby/Ruby;
            0    3     2  rubyClass  Lorg/jruby/RubyClass;
    MethodParameters:
           Name  Flags
      runtime    
      rubyClass  

  public org.jruby.runtime.builtin.IRubyObject initialize(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.RubyRandom this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 256
            aload 0 /* this */
         1: new org.jruby.RubyRandom$RandomType
            dup
            aload 2 /* args */
            arraylength
            ifne 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.RubyRandom.randomSeed:(Lorg/jruby/Ruby;)Lorg/jruby/RubyBignum;
            goto 3
      StackMap locals: org.jruby.RubyRandom org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[]
      StackMap stack: org.jruby.RubyRandom new 1 new 1
         2: aload 2 /* args */
            iconst_0
            aaload
      StackMap locals: org.jruby.RubyRandom org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[]
      StackMap stack: org.jruby.RubyRandom new 1 new 1 org.jruby.runtime.builtin.IRubyObject
         3: invokespecial org.jruby.RubyRandom$RandomType.<init>:(Lorg/jruby/runtime/builtin/IRubyObject;)V
            putfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
         4: .line 257
            aload 0 /* this */
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyRandom this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/jruby/RubyRandom;
            0    5     1  context  Lorg/jruby/runtime/ThreadContext;
            0    5     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;, optional = 1)
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject seed(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.RubyRandom this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 262
            aload 0 /* this */
            getfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
            invokevirtual org.jruby.RubyRandom$RandomType.getSeed:()Lorg/jruby/RubyInteger;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyRandom this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyRandom;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject initialize_copy(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.jruby.RubyRandom this
        start local 1 // org.jruby.runtime.builtin.IRubyObject orig
         0: .line 268
            aload 1 /* orig */
            instanceof org.jruby.RubyRandom
            ifne 4
         1: .line 269
            aload 0 /* this */
            invokevirtual org.jruby.RubyRandom.getRuntime:()Lorg/jruby/Ruby;
         2: .line 270
            ldc "wrong argument type %s (expected %s)"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* orig */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual org.jruby.RubyRandom.getMetaClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.getName:()Ljava/lang/String;
            aastore
         3: .line 269
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.RubyRandom.checkFrozen:()V
         5: .line 274
            aload 0 /* this */
            new org.jruby.RubyRandom$RandomType
            dup
            aload 1 /* orig */
            checkcast org.jruby.RubyRandom
            getfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
            invokespecial org.jruby.RubyRandom$RandomType.<init>:(Lorg/jruby/RubyRandom$RandomType;)V
            putfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
         6: .line 275
            aload 0 /* this */
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject orig
        end local 0 // org.jruby.RubyRandom this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/jruby/RubyRandom;
            0    7     1  orig  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"initialize_copy"}, required = 1, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
      Name  Flags
      orig  

  public static org.jruby.runtime.builtin.IRubyObject rand(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        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
         0: .line 280
            aload 0 /* context */
            invokestatic org.jruby.RubyRandom.getDefaultRand:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyRandom$RandomType;
            astore 3 /* random */
        start local 3 // org.jruby.RubyRandom$RandomType random
         1: .line 281
            aload 2 /* args */
            arraylength
            ifne 2
            aload 0 /* context */
            aload 3 /* random */
            invokestatic org.jruby.RubyRandom.randFloat:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;)Lorg/jruby/RubyFloat;
            areturn
         2: .line 283
      StackMap locals: org.jruby.RubyRandom$RandomType
      StackMap stack:
            aload 0 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            aload 3 /* random */
            invokestatic org.jruby.RubyRandom.randomRand:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyRandom$RandomType;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.RubyRandom$RandomType random
        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    3     0  context  Lorg/jruby/runtime/ThreadContext;
            0    3     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    3     3   random  Lorg/jruby/RubyRandom$RandomType;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"rand"}, meta = true, optional = 1)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     

  public static org.jruby.runtime.builtin.IRubyObject randCommon19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        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
         0: .line 288
            aload 0 /* context */
            aload 2 /* args */
            invokestatic org.jruby.RubyRandom.randKernel:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        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    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     

  static org.jruby.runtime.builtin.IRubyObject randKernel(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 293
            aload 0 /* context */
            invokestatic org.jruby.RubyRandom.getDefaultRand:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyRandom$RandomType;
            astore 2 /* random */
        start local 2 // org.jruby.RubyRandom$RandomType random
         1: .line 294
            aload 1 /* args */
            arraylength
            ifne 3
         2: .line 295
            aload 0 /* context */
            aload 2 /* random */
            invokestatic org.jruby.RubyRandom.randFloat:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;)Lorg/jruby/RubyFloat;
            areturn
         3: .line 298
      StackMap locals: org.jruby.RubyRandom$RandomType
      StackMap stack:
            aload 1 /* args */
            iconst_0
            aaload
            astore 3 /* arg */
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg
         4: .line 299
            aload 3 /* arg */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 6
         5: .line 300
            aload 0 /* context */
            aload 2 /* random */
            invokestatic org.jruby.RubyRandom.randFloat:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;)Lorg/jruby/RubyFloat;
            areturn
         6: .line 303
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 3 /* arg */
            instanceof org.jruby.RubyRange
            ifeq 8
         7: .line 304
            aload 0 /* context */
            aload 3 /* arg */
            aload 2 /* random */
            invokestatic org.jruby.RubyRandom.randomRand:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyRandom$RandomType;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         8: .line 307
      StackMap locals:
      StackMap stack:
            aload 3 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            astore 4 /* max */
        start local 4 // org.jruby.RubyInteger max
         9: .line 308
            aload 4 /* max */
            invokevirtual org.jruby.RubyInteger.isZero:()Z
            ifeq 11
        10: .line 309
            aload 0 /* context */
            aload 2 /* random */
            invokestatic org.jruby.RubyRandom.randFloat:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;)Lorg/jruby/RubyFloat;
            areturn
        11: .line 311
      StackMap locals: org.jruby.RubyInteger
      StackMap stack:
            aload 0 /* context */
            aload 2 /* random */
            aload 4 /* max */
            iconst_0
            invokestatic org.jruby.RubyRandom.randInt:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;Lorg/jruby/RubyInteger;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* r */
        start local 5 // org.jruby.runtime.builtin.IRubyObject r
        12: .line 312
            aload 5 /* r */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 13
            aload 0 /* context */
            aload 2 /* random */
            invokestatic org.jruby.RubyRandom.randFloat:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;)Lorg/jruby/RubyFloat;
            goto 14
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
        13: aload 5 /* r */
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
        14: areturn
        end local 5 // org.jruby.runtime.builtin.IRubyObject r
        end local 4 // org.jruby.RubyInteger max
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg
        end local 2 // org.jruby.RubyRandom$RandomType random
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0  context  Lorg/jruby/runtime/ThreadContext;
            0   15     1     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   15     2   random  Lorg/jruby/RubyRandom$RandomType;
            4   15     3      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            9   15     4      max  Lorg/jruby/RubyInteger;
           12   15     5        r  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject randObj(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.RubyRandom this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 317
            aload 2 /* args */
            arraylength
            ifne 1
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.RubyRandom.rand:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            invokevirtual org.jruby.RubyRandom.rand:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         2: areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyRandom this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/RubyRandom;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            0    3     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject rand(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyRandom this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 322
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
            invokestatic org.jruby.RubyRandom.randFloat:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;)Lorg/jruby/RubyFloat;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyRandom this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyRandom;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"rand"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject rand(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyRandom this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 327
            aload 1 /* context */
            aload 2 /* arg */
            aload 0 /* this */
            getfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
            invokestatic org.jruby.RubyRandom.randomRand:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyRandom$RandomType;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyRandom this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyRandom;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"rand"})
    MethodParameters:
         Name  Flags
      context  
      arg      

  private static org.jruby.runtime.builtin.IRubyObject randInt(org.jruby.runtime.ThreadContext, org.jruby.RubyRandom$RandomType, org.jruby.RubyInteger, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;Lorg/jruby/RubyInteger;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyRandom$RandomType random
        start local 2 // org.jruby.RubyInteger vmax
        start local 3 // boolean restrictive
         0: .line 333
            aload 2 /* vmax */
            instanceof org.jruby.RubyFixnum
            ifeq 7
         1: .line 334
            aload 2 /* vmax */
            invokestatic org.jruby.RubyNumeric.fix2long:(Lorg/jruby/runtime/builtin/IRubyObject;)J
            lstore 4 /* max */
        start local 4 // long max
         2: .line 335
            lload 4 /* max */
            lconst_0
            lcmp
            ifne 3
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 336
      StackMap locals: long
      StackMap stack:
            lload 4 /* max */
            lconst_0
            lcmp
            ifge 6
         4: .line 337
            iload 3 /* restrictive */
            ifeq 5
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         5: .line 338
      StackMap locals:
      StackMap stack:
            lload 4 /* max */
            lneg
            lstore 4 /* max */
         6: .line 340
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* random */
            lload 4 /* max */
            lconst_1
            lsub
            invokestatic org.jruby.RubyRandom.randLimitedFixnum:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;J)Lorg/jruby/RubyInteger;
            areturn
        end local 4 // long max
         7: .line 342
      StackMap locals:
      StackMap stack:
            aload 2 /* vmax */
            invokevirtual org.jruby.RubyInteger.getBigIntegerValue:()Ljava/math/BigInteger;
            astore 4 /* big */
        start local 4 // java.math.BigInteger big
         8: .line 343
            aload 4 /* big */
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 344
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        10: .line 346
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 4 /* big */
            invokevirtual java.math.BigInteger.signum:()I
            ifge 13
        11: .line 347
            iload 3 /* restrictive */
            ifeq 12
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        12: .line 348
      StackMap locals:
      StackMap stack:
            aload 4 /* big */
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            astore 4 /* big */
        13: .line 350
      StackMap locals:
      StackMap stack:
            aload 4 /* big */
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 4 /* big */
        14: .line 351
            aload 0 /* context */
            aload 1 /* random */
            aload 4 /* big */
            invokestatic org.jruby.RubyRandom.randLimitedBignum:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;Ljava/math/BigInteger;)Lorg/jruby/RubyInteger;
            areturn
        end local 4 // java.math.BigInteger big
        end local 3 // boolean restrictive
        end local 2 // org.jruby.RubyInteger vmax
        end local 1 // org.jruby.RubyRandom$RandomType random
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0      context  Lorg/jruby/runtime/ThreadContext;
            0   15     1       random  Lorg/jruby/RubyRandom$RandomType;
            0   15     2         vmax  Lorg/jruby/RubyInteger;
            0   15     3  restrictive  Z
            2    7     4          max  J
            8   15     4          big  Ljava/math/BigInteger;
    MethodParameters:
             Name  Flags
      context      
      random       
      vmax         
      restrictive  

  public static org.jruby.RubyFloat randFloat(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyFloat;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.runtime.ThreadContext context
         0: .line 356
            aload 0 /* context */
            aload 0 /* context */
            invokestatic org.jruby.RubyRandom.getDefaultRand:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyRandom$RandomType;
            invokestatic org.jruby.RubyRandom.randFloat:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;)Lorg/jruby/RubyFloat;
            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  

  public static org.jruby.RubyFloat randFloat(org.jruby.runtime.ThreadContext, org.jruby.RubyRandom$RandomType);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;)Lorg/jruby/RubyFloat;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyRandom$RandomType random
         0: .line 360
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* random */
            invokevirtual org.jruby.RubyRandom$RandomType.genrandReal:()D
            invokevirtual org.jruby.Ruby.newFloat:(D)Lorg/jruby/RubyFloat;
            areturn
        end local 1 // org.jruby.RubyRandom$RandomType random
        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   random  Lorg/jruby/RubyRandom$RandomType;
    MethodParameters:
         Name  Flags
      context  
      random   

  public static org.jruby.RubyInteger randLimited(org.jruby.runtime.ThreadContext, long);
    descriptor: (Lorg/jruby/runtime/ThreadContext;J)Lorg/jruby/RubyInteger;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // long limit
         0: .line 364
            aload 0 /* context */
            aload 0 /* context */
            invokestatic org.jruby.RubyRandom.getDefaultRand:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyRandom$RandomType;
            lload 1 /* limit */
            invokestatic org.jruby.RubyRandom.randLimitedFixnum:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;J)Lorg/jruby/RubyInteger;
            areturn
        end local 1 // long limit
        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    limit  J
    MethodParameters:
         Name  Flags
      context  
      limit    

  private static org.jruby.RubyInteger randLimitedFixnum(org.jruby.runtime.ThreadContext, org.jruby.RubyRandom$RandomType, long);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;J)Lorg/jruby/RubyInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyRandom$RandomType random
        start local 2 // long limit
         0: .line 370
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* random */
            getfield org.jruby.RubyRandom$RandomType.impl:Lorg/jruby/util/Random;
            lload 2 /* limit */
            invokestatic org.jruby.RubyRandom.randLimitedFixnumInner:(Lorg/jruby/util/Random;J)J
            invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
            areturn
        end local 2 // long limit
        end local 1 // org.jruby.RubyRandom$RandomType random
        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   random  Lorg/jruby/RubyRandom$RandomType;
            0    1     2    limit  J
    MethodParameters:
         Name  Flags
      context  
      random   
      limit    

  public static long randLimitedFixnumInner(org.jruby.util.Random, long);
    descriptor: (Lorg/jruby/util/Random;J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // org.jruby.util.Random random
        start local 1 // long limit
         0: .line 375
            lload 1 /* limit */
            lconst_0
            lcmp
            ifne 3
         1: .line 376
            lconst_0
            lstore 3 /* val */
        start local 3 // long val
         2: .line 377
            goto 14
        end local 3 // long val
         3: .line 378
      StackMap locals:
      StackMap stack:
            lload 1 /* limit */
            invokestatic org.jruby.RubyRandom.makeMask:(J)J
            lstore 5 /* mask */
        start local 5 // long mask
         4: .line 381
      StackMap locals: org.jruby.util.Random long top top long
      StackMap stack:
            lconst_0
            lstore 3 /* val */
        start local 3 // long val
         5: .line 382
            iconst_1
            istore 7 /* i */
        start local 7 // int i
         6: goto 13
         7: .line 383
      StackMap locals: org.jruby.util.Random long long long int
      StackMap stack:
            lload 5 /* mask */
            iload 7 /* i */
            bipush 32
            imul
            lushr
            ldc 4294967295
            land
            lconst_0
            lcmp
            ifeq 10
         8: .line 384
            lload 3 /* val */
            aload 0 /* random */
            invokevirtual org.jruby.util.Random.genrandInt32:()I
            i2l
            ldc 4294967295
            land
            iload 7 /* i */
            bipush 32
            imul
            lshl
            lor
            lstore 3 /* val */
         9: .line 385
            lload 3 /* val */
            lload 5 /* mask */
            land
            lstore 3 /* val */
        10: .line 387
      StackMap locals:
      StackMap stack:
            lload 1 /* limit */
            lload 3 /* val */
            lcmp
            ifge 12
        11: .line 388
            goto 4
        12: .line 382
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ -1
      StackMap locals:
      StackMap stack:
        13: iload 7 /* i */
            ifge 7
        end local 7 // int i
        end local 5 // long mask
        14: .line 394
      StackMap locals:
      StackMap stack:
            lload 3 /* val */
            lreturn
        end local 3 // long val
        end local 1 // long limit
        end local 0 // org.jruby.util.Random random
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0  random  Lorg/jruby/util/Random;
            0   15     1   limit  J
            2    3     3     val  J
            5   15     3     val  J
            4   14     5    mask  J
            6   14     7       i  I
    MethodParameters:
        Name  Flags
      random  
      limit   

  public static org.jruby.RubyInteger randLimited(org.jruby.runtime.ThreadContext, java.math.BigInteger);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/math/BigInteger;)Lorg/jruby/RubyInteger;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // java.math.BigInteger limit
         0: .line 398
            aload 0 /* context */
            aload 0 /* context */
            invokestatic org.jruby.RubyRandom.getDefaultRand:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyRandom$RandomType;
            aload 1 /* limit */
            invokestatic org.jruby.RubyRandom.randLimitedBignum:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;Ljava/math/BigInteger;)Lorg/jruby/RubyInteger;
            areturn
        end local 1 // java.math.BigInteger limit
        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    limit  Ljava/math/BigInteger;
    MethodParameters:
         Name  Flags
      context  
      limit    

  private static org.jruby.RubyInteger randLimitedBignum(org.jruby.runtime.ThreadContext, org.jruby.RubyRandom$RandomType, java.math.BigInteger);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;Ljava/math/BigInteger;)Lorg/jruby/RubyInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=14, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyRandom$RandomType random
        start local 2 // java.math.BigInteger limit
         0: .line 403
            aload 2 /* limit */
            invokevirtual java.math.BigInteger.toByteArray:()[B
            astore 3 /* buf */
        start local 3 // byte[] buf
         1: .line 404
            aload 3 /* buf */
            arraylength
            newarray 8
            astore 4 /* bytes */
        start local 4 // byte[] bytes
         2: .line 405
            aload 3 /* buf */
            arraylength
            iconst_3
            iadd
            iconst_4
            idiv
            istore 5 /* len */
        start local 5 // int len
         3: .line 408
      StackMap locals: byte[] byte[] int
      StackMap stack:
            lconst_0
            lstore 6 /* mask */
        start local 6 // long mask
         4: .line 409
            iconst_1
            istore 8 /* boundary */
        start local 8 // boolean boundary
         5: .line 410
            iload 5 /* len */
            iconst_1
            isub
            istore 9 /* idx */
        start local 9 // int idx
         6: goto 22
         7: .line 411
      StackMap locals: long int int
      StackMap stack:
            aload 3 /* buf */
            iload 9 /* idx */
            invokestatic org.jruby.RubyRandom.getIntBigIntegerBuffer:([BI)I
            i2l
            ldc 4294967295
            land
            lstore 10 /* lim */
        start local 10 // long lim
         8: .line 412
            lload 6 /* mask */
            lconst_0
            lcmp
            ifeq 9
            ldc 4294967295
            goto 10
      StackMap locals: long
      StackMap stack:
         9: lload 10 /* lim */
            invokestatic org.jruby.RubyRandom.makeMask:(J)J
      StackMap locals:
      StackMap stack: long
        10: lstore 6 /* mask */
        11: .line 414
            lload 6 /* mask */
            lconst_0
            lcmp
            ifeq 19
        12: .line 415
            aload 1 /* random */
            invokevirtual org.jruby.RubyRandom$RandomType.genrandInt32:()I
            i2l
            ldc 4294967295
            land
            lload 6 /* mask */
            land
            lstore 12 /* rnd */
        start local 12 // long rnd
        13: .line 416
            iload 8 /* boundary */
            ifeq 20
        14: .line 417
            lload 10 /* lim */
            lload 12 /* rnd */
            lcmp
            ifge 16
        15: .line 418
            goto 3
        16: .line 420
      StackMap locals: long
      StackMap stack:
            lload 12 /* rnd */
            lload 10 /* lim */
            lcmp
            ifge 20
        17: .line 421
            iconst_0
            istore 8 /* boundary */
        18: .line 424
            goto 20
        end local 12 // long rnd
        19: .line 425
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 12 /* rnd */
        start local 12 // long rnd
        20: .line 427
      StackMap locals: long
      StackMap stack:
            aload 4 /* bytes */
            iload 9 /* idx */
            lload 12 /* rnd */
            l2i
            invokestatic org.jruby.RubyRandom.setIntBigIntegerBuffer:([BII)V
        end local 12 // long rnd
        end local 10 // long lim
        21: .line 410
            iinc 9 /* idx */ -1
      StackMap locals:
      StackMap stack:
        22: iload 9 /* idx */
            ifge 7
        end local 9 // int idx
        end local 8 // boolean boundary
        end local 6 // long mask
        23: .line 429
            aload 0 /* context */
        24: .line 431
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.math.BigInteger
            dup
            aload 4 /* bytes */
            invokespecial java.math.BigInteger.<init>:([B)V
            invokestatic org.jruby.RubyBignum.newBignum:(Lorg/jruby/Ruby;Ljava/math/BigInteger;)Lorg/jruby/RubyBignum;
            areturn
        end local 5 // int len
        end local 4 // byte[] bytes
        end local 3 // byte[] buf
        end local 2 // java.math.BigInteger limit
        end local 1 // org.jruby.RubyRandom$RandomType random
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   25     0   context  Lorg/jruby/runtime/ThreadContext;
            0   25     1    random  Lorg/jruby/RubyRandom$RandomType;
            0   25     2     limit  Ljava/math/BigInteger;
            1   25     3       buf  [B
            2   25     4     bytes  [B
            3   25     5       len  I
            4   23     6      mask  J
            5   23     8  boundary  Z
            6   23     9       idx  I
            8   21    10       lim  J
           13   19    12       rnd  J
           20   21    12       rnd  J
    MethodParameters:
         Name  Flags
      context  
      random   
      limit    

  private static long makeMask(long);
    descriptor: (J)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // long x
         0: .line 435
            lload 0 /* x */
            lload 0 /* x */
            iconst_1
            lushr
            lor
            lstore 0 /* x */
         1: .line 436
            lload 0 /* x */
            lload 0 /* x */
            iconst_2
            lushr
            lor
            lstore 0 /* x */
         2: .line 437
            lload 0 /* x */
            lload 0 /* x */
            iconst_4
            lushr
            lor
            lstore 0 /* x */
         3: .line 438
            lload 0 /* x */
            lload 0 /* x */
            bipush 8
            lushr
            lor
            lstore 0 /* x */
         4: .line 439
            lload 0 /* x */
            lload 0 /* x */
            bipush 16
            lushr
            lor
            lstore 0 /* x */
         5: .line 440
            lload 0 /* x */
            lload 0 /* x */
            bipush 32
            lushr
            lor
            lstore 0 /* x */
         6: .line 441
            lload 0 /* x */
            lreturn
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     x  J
    MethodParameters:
      Name  Flags
      x     

  private static org.jruby.RubyRandom$RandomType getDefaultRand(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyRandom$RandomType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.runtime.ThreadContext context
         0: .line 445
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            getfield org.jruby.Ruby.defaultRand:Lorg/jruby/RubyRandom$RandomType;
            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  

  private static org.jruby.runtime.builtin.IRubyObject randomRand(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyRandom$RandomType);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyRandom$RandomType;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=15, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject vmax
        start local 2 // org.jruby.RubyRandom$RandomType random
         0: .line 451
            aconst_null
            astore 4 /* range */
        start local 4 // org.jruby.RubyRandom$RangeLike range
         1: .line 452
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* nil */
        start local 5 // org.jruby.runtime.builtin.IRubyObject nil
         2: .line 453
            aload 1 /* vmax */
            aload 5 /* nil */
            if_acmpne 5
         3: .line 454
            aload 5 /* nil */
            astore 3 /* v */
        start local 3 // org.jruby.runtime.builtin.IRubyObject v
         4: .line 455
            goto 65
        end local 3 // org.jruby.runtime.builtin.IRubyObject v
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.RubyRandom$RandomType top org.jruby.RubyRandom$RangeLike org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
         5: aload 0 /* context */
            aload 1 /* vmax */
            invokestatic org.jruby.RubyRandom.checkMaxInt:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 3 /* v */
        start local 3 // org.jruby.runtime.builtin.IRubyObject v
         6: ifnull 9
         7: .line 456
            aload 0 /* context */
            aload 2 /* random */
            aload 3 /* v */
            checkcast org.jruby.RubyInteger
            iconst_1
            invokestatic org.jruby.RubyRandom.randInt:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;Lorg/jruby/RubyInteger;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* v */
         8: .line 457
            goto 65
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.RubyRandom$RandomType org.jruby.runtime.builtin.IRubyObject org.jruby.RubyRandom$RangeLike org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
         9: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* vmax */
            invokestatic org.jruby.util.TypeConverter.checkFloatType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 3 /* v */
            aload 5 /* nil */
            if_acmpeq 16
        10: .line 458
            aload 3 /* v */
            checkcast org.jruby.RubyFloat
            getfield org.jruby.RubyFloat.value:D
            dstore 6 /* max */
        start local 6 // double max
        11: .line 459
            dload 6 /* max */
            dconst_0
            dcmpl
            ifle 14
        12: .line 460
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            dload 6 /* max */
            aload 2 /* random */
            invokevirtual org.jruby.RubyRandom$RandomType.genrandReal:()D
            dmul
            invokevirtual org.jruby.Ruby.newFloat:(D)Lorg/jruby/RubyFloat;
            astore 3 /* v */
        13: .line 461
            goto 65
        14: .line 462
      StackMap locals: double
      StackMap stack:
            aload 5 /* nil */
            astore 3 /* v */
        end local 6 // double max
        15: .line 464
            goto 65
      StackMap locals:
      StackMap stack:
        16: aload 0 /* context */
            aload 1 /* vmax */
            invokestatic org.jruby.RubyRandom.rangeValues:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyRandom$RangeLike;
            dup
            astore 4 /* range */
            ifnull 63
        17: .line 465
            aload 0 /* context */
            aload 4 /* range */
            getfield org.jruby.RubyRandom$RangeLike.range:Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.RubyRandom.checkMaxInt:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 3 /* v */
            ifnull 38
        18: .line 466
            aload 3 /* v */
            instanceof org.jruby.RubyFixnum
            ifeq 27
        19: .line 467
            aload 3 /* v */
            checkcast org.jruby.RubyFixnum
            getfield org.jruby.RubyFixnum.value:J
            lstore 6 /* max */
        start local 6 // long max
        20: .line 468
            aload 4 /* range */
            getfield org.jruby.RubyRandom$RangeLike.excl:Z
            ifeq 22
        21: .line 469
            lload 6 /* max */
            lconst_1
            lsub
            lstore 6 /* max */
        22: .line 471
      StackMap locals: long
      StackMap stack:
            lload 6 /* max */
            lconst_0
            lcmp
            iflt 25
        23: .line 472
            aload 0 /* context */
            aload 2 /* random */
            lload 6 /* max */
            invokestatic org.jruby.RubyRandom.randLimitedFixnum:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;J)Lorg/jruby/RubyInteger;
            astore 3 /* v */
        24: .line 473
            goto 65
        25: .line 474
      StackMap locals:
      StackMap stack:
            aload 5 /* nil */
            astore 3 /* v */
        end local 6 // long max
        26: .line 476
            goto 65
      StackMap locals:
      StackMap stack:
        27: aload 3 /* v */
            instanceof org.jruby.RubyBignum
            ifeq 36
        28: .line 477
            aload 3 /* v */
            checkcast org.jruby.RubyBignum
            getfield org.jruby.RubyBignum.value:Ljava/math/BigInteger;
            astore 6 /* big */
        start local 6 // java.math.BigInteger big
        29: .line 478
            aload 6 /* big */
            invokevirtual java.math.BigInteger.signum:()I
            ifle 34
        30: .line 479
            aload 4 /* range */
            getfield org.jruby.RubyRandom$RangeLike.excl:Z
            ifeq 32
        31: .line 480
            aload 6 /* big */
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 6 /* big */
        32: .line 482
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 0 /* context */
            aload 2 /* random */
            aload 6 /* big */
            invokestatic org.jruby.RubyRandom.randLimitedBignum:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRandom$RandomType;Ljava/math/BigInteger;)Lorg/jruby/RubyInteger;
            astore 3 /* v */
        33: .line 483
            goto 65
        34: .line 484
      StackMap locals:
      StackMap stack:
            aload 5 /* nil */
            astore 3 /* v */
        end local 6 // java.math.BigInteger big
        35: .line 486
            goto 65
        36: .line 487
      StackMap locals:
      StackMap stack:
            aload 5 /* nil */
            astore 3 /* v */
        37: .line 489
            goto 65
      StackMap locals:
      StackMap stack:
        38: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 4 /* range */
            getfield org.jruby.RubyRandom$RangeLike.range:Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.util.TypeConverter.checkFloatType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 3 /* v */
            aload 5 /* nil */
            if_acmpeq 65
        39: .line 490
            iconst_1
            istore 6 /* scale */
        start local 6 // int scale
        40: .line 491
            aload 3 /* v */
            checkcast org.jruby.RubyFloat
            getfield org.jruby.RubyFloat.value:D
            dstore 7 /* max */
        start local 7 // double max
        41: .line 492
            ldc 0.5
            dstore 9 /* mid */
        start local 9 // double mid
        42: .line 494
            dload 7 /* max */
            invokestatic java.lang.Double.isInfinite:(D)Z
            ifeq 49
        43: .line 495
            aload 0 /* context */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 4 /* range */
            getfield org.jruby.RubyRandom$RangeLike.begin:Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.util.TypeConverter.toFloat:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyFloat;
            invokestatic org.jruby.RubyRandom.floatValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyFloat;)D
            ldc 2.0
            ddiv
            dstore 13 /* min */
        start local 13 // double min
        44: .line 496
            aload 0 /* context */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 4 /* range */
            getfield org.jruby.RubyRandom$RangeLike.end:Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.util.TypeConverter.toFloat:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyFloat;
            invokestatic org.jruby.RubyRandom.floatValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyFloat;)D
            ldc 2.0
            ddiv
            dstore 7 /* max */
        45: .line 497
            iconst_2
            istore 6 /* scale */
        46: .line 498
            dload 7 /* max */
            dload 13 /* min */
            dadd
            dstore 9 /* mid */
        47: .line 499
            dload 7 /* max */
            dload 13 /* min */
            dsub
            dstore 7 /* max */
        end local 13 // double min
        48: .line 500
            goto 50
        49: .line 501
      StackMap locals: int double double
      StackMap stack:
            aload 0 /* context */
            dload 7 /* max */
            invokestatic org.jruby.RubyRandom.checkFloatValue:(Lorg/jruby/runtime/ThreadContext;D)V
        50: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* v */
        51: .line 504
            dload 7 /* max */
            dconst_0
            dcmpl
            ifle 60
        52: .line 505
            aload 4 /* range */
            getfield org.jruby.RubyRandom$RangeLike.excl:Z
            ifeq 55
        53: .line 506
            aload 2 /* random */
            invokevirtual org.jruby.RubyRandom$RandomType.genrandReal:()D
            dstore 11 /* r */
        start local 11 // double r
        54: .line 507
            goto 56
        end local 11 // double r
        55: .line 508
      StackMap locals:
      StackMap stack:
            aload 2 /* random */
            invokevirtual org.jruby.RubyRandom$RandomType.genrandReal2:()D
            dstore 11 /* r */
        start local 11 // double r
        56: .line 510
      StackMap locals: double
      StackMap stack:
            iload 6 /* scale */
            iconst_1
            if_icmple 58
        57: .line 511
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            dload 11 /* r */
            ldc 0.5
            dsub
            dload 7 /* max */
            dmul
            iload 6 /* scale */
            i2d
            dmul
            dload 9 /* mid */
            dadd
            invokevirtual org.jruby.Ruby.newFloat:(D)Lorg/jruby/RubyFloat;
            areturn
        58: .line 513
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            dload 11 /* r */
            dload 7 /* max */
            dmul
            invokevirtual org.jruby.Ruby.newFloat:(D)Lorg/jruby/RubyFloat;
            astore 3 /* v */
        59: .line 514
            goto 65
        end local 11 // double r
      StackMap locals:
      StackMap stack:
        60: dload 7 /* max */
            dconst_0
            dcmpl
            ifne 65
            aload 4 /* range */
            getfield org.jruby.RubyRandom$RangeLike.excl:Z
            ifne 65
        61: .line 515
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            dconst_0
            invokevirtual org.jruby.Ruby.newFloat:(D)Lorg/jruby/RubyFloat;
            astore 3 /* v */
        end local 9 // double mid
        end local 7 // double max
        end local 6 // int scale
        62: .line 518
            goto 65
        63: .line 519
      StackMap locals:
      StackMap stack:
            aload 5 /* nil */
            astore 3 /* v */
        64: .line 520
            aload 1 /* vmax */
            invokestatic org.jruby.RubyNumeric.num2long:(Lorg/jruby/runtime/builtin/IRubyObject;)J
            pop2
        65: .line 522
      StackMap locals:
      StackMap stack:
            aload 3 /* v */
            aload 5 /* nil */
            if_acmpne 67
        66: .line 523
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "invalid argument - "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* vmax */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        67: .line 525
      StackMap locals:
      StackMap stack:
            aload 4 /* range */
            ifnonnull 68
            aload 3 /* v */
            areturn
        68: .line 526
      StackMap locals:
      StackMap stack:
            aload 4 /* range */
            getfield org.jruby.RubyRandom$RangeLike.begin:Lorg/jruby/runtime/builtin/IRubyObject;
            instanceof org.jruby.RubyFixnum
            ifeq 71
            aload 3 /* v */
            instanceof org.jruby.RubyFixnum
            ifeq 71
        69: .line 527
            aload 4 /* range */
            getfield org.jruby.RubyRandom$RangeLike.begin:Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            aload 3 /* v */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            ladd
            lstore 6 /* x */
        start local 6 // long x
        70: .line 528
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            lload 6 /* x */
            invokevirtual org.jruby.Ruby.newFixnum:(J)Lorg/jruby/RubyFixnum;
            areturn
        end local 6 // long x
        71: .line 530
      StackMap locals:
      StackMap stack:
            aload 3 /* v */
            instanceof org.jruby.RubyBignum
            ifeq 73
        72: .line 531
            aload 3 /* v */
            checkcast org.jruby.RubyBignum
            aload 0 /* context */
            aload 4 /* range */
            getfield org.jruby.RubyRandom$RangeLike.begin:Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyBignum.op_plus:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        73: .line 533
      StackMap locals:
      StackMap stack:
            aload 3 /* v */
            instanceof org.jruby.RubyFloat
            ifeq 76
        74: .line 534
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 4 /* range */
            getfield org.jruby.RubyRandom$RangeLike.begin:Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.util.TypeConverter.checkFloatType:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* f */
        start local 6 // org.jruby.runtime.builtin.IRubyObject f
        75: .line 535
            aload 6 /* f */
            aload 5 /* nil */
            if_acmpeq 76
            aload 3 /* v */
            checkcast org.jruby.RubyFloat
            aload 0 /* context */
            aload 6 /* f */
            invokevirtual org.jruby.RubyFloat.op_plus:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 6 // org.jruby.runtime.builtin.IRubyObject f
        76: .line 537
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 4 /* range */
            getfield org.jruby.RubyRandom$RangeLike.begin:Lorg/jruby/runtime/builtin/IRubyObject;
            ldc "+"
            aload 3 /* v */
            invokestatic org.jruby.runtime.Helpers.invoke:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // org.jruby.runtime.builtin.IRubyObject nil
        end local 4 // org.jruby.RubyRandom$RangeLike range
        end local 3 // org.jruby.runtime.builtin.IRubyObject v
        end local 2 // org.jruby.RubyRandom$RandomType random
        end local 1 // org.jruby.runtime.builtin.IRubyObject vmax
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   77     0  context  Lorg/jruby/runtime/ThreadContext;
            0   77     1     vmax  Lorg/jruby/runtime/builtin/IRubyObject;
            0   77     2   random  Lorg/jruby/RubyRandom$RandomType;
            4    5     3        v  Lorg/jruby/runtime/builtin/IRubyObject;
            6   77     3        v  Lorg/jruby/runtime/builtin/IRubyObject;
            1   77     4    range  Lorg/jruby/RubyRandom$RangeLike;
            2   77     5      nil  Lorg/jruby/runtime/builtin/IRubyObject;
           11   15     6      max  D
           20   26     6      max  J
           29   35     6      big  Ljava/math/BigInteger;
           40   62     6    scale  I
           41   62     7      max  D
           42   62     9      mid  D
           54   55    11        r  D
           56   60    11        r  D
           44   48    13      min  D
           70   71     6        x  J
           75   76     6        f  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      vmax     
      random   

  private static double floatValue(org.jruby.runtime.ThreadContext, org.jruby.RubyFloat);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyFloat;)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyFloat v
         0: .line 542
            aload 1 /* v */
            getfield org.jruby.RubyFloat.value:D
            dstore 2 /* x */
        start local 2 // double x
         1: .line 543
            aload 0 /* context */
            dload 2 /* x */
            invokestatic org.jruby.RubyRandom.checkFloatValue:(Lorg/jruby/runtime/ThreadContext;D)V
         2: .line 544
            dload 2 /* x */
            dreturn
        end local 2 // double x
        end local 1 // org.jruby.RubyFloat v
        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        v  Lorg/jruby/RubyFloat;
            1    3     2        x  D
    MethodParameters:
         Name  Flags
      context  
      v        

  private static void checkFloatValue(org.jruby.runtime.ThreadContext, double);
    descriptor: (Lorg/jruby/runtime/ThreadContext;D)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // double x
         0: .line 548
            dload 1 /* x */
            invokestatic java.lang.Double.isInfinite:(D)Z
            ifne 1
            dload 1 /* x */
            invokestatic java.lang.Double.isNaN:(D)Z
            ifeq 2
         1: .line 549
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "Numerical argument out of domain"
            invokevirtual org.jruby.Ruby.newErrnoEDOMError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 551
      StackMap locals:
      StackMap stack:
            return
        end local 1 // double x
        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        x  D
    MethodParameters:
         Name  Flags
      context  
      x        

  private static org.jruby.runtime.builtin.IRubyObject checkMaxInt(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject vmax
         0: .line 554
            aload 1 /* vmax */
            instanceof org.jruby.RubyFloat
            ifne 3
         1: .line 555
            aload 0 /* context */
            aload 1 /* vmax */
            invokestatic org.jruby.util.TypeConverter.checkIntegerType:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* v */
        start local 2 // org.jruby.runtime.builtin.IRubyObject v
         2: .line 556
            aload 2 /* v */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 3
            aload 2 /* v */
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject v
         3: .line 558
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject vmax
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Lorg/jruby/runtime/ThreadContext;
            0    4     1     vmax  Lorg/jruby/runtime/builtin/IRubyObject;
            2    3     2        v  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      vmax     

  private static org.jruby.RubyRandom$RangeLike rangeValues(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyRandom$RangeLike;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject range
         0: .line 569
            new org.jruby.RubyRandom$RangeLike
            dup
            invokespecial org.jruby.RubyRandom$RangeLike.<init>:()V
            astore 2 /* like */
        start local 2 // org.jruby.RubyRandom$RangeLike like
         1: .line 570
            aload 1 /* range */
            instanceof org.jruby.RubyRange
            ifeq 7
         2: .line 571
            aload 1 /* range */
            checkcast org.jruby.RubyRange
            astore 3 /* vrange */
        start local 3 // org.jruby.RubyRange vrange
         3: .line 572
            aload 2 /* like */
            aload 3 /* vrange */
            aload 0 /* context */
            invokevirtual org.jruby.RubyRange.first:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            putfield org.jruby.RubyRandom$RangeLike.begin:Lorg/jruby/runtime/builtin/IRubyObject;
         4: .line 573
            aload 2 /* like */
            aload 3 /* vrange */
            aload 0 /* context */
            invokevirtual org.jruby.RubyRange.last:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            putfield org.jruby.RubyRandom$RangeLike.end:Lorg/jruby/runtime/builtin/IRubyObject;
         5: .line 574
            aload 2 /* like */
            aload 3 /* vrange */
            invokevirtual org.jruby.RubyRange.isExcludeEnd:()Z
            putfield org.jruby.RubyRandom$RangeLike.excl:Z
        end local 3 // org.jruby.RubyRange vrange
         6: .line 575
            goto 13
         7: .line 576
      StackMap locals: org.jruby.RubyRandom$RangeLike
      StackMap stack:
            aload 1 /* range */
            ldc "begin"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.respondsTo:(Ljava/lang/String;)Z
            ifeq 9
            aload 1 /* range */
            ldc "end"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.respondsTo:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 577
            aload 1 /* range */
            ldc "exclude_end?"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.respondsTo:(Ljava/lang/String;)Z
            ifne 10
         9: .line 578
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        10: .line 580
      StackMap locals:
      StackMap stack:
            aload 2 /* like */
            aload 0 /* context */
            aload 1 /* range */
            ldc "begin"
            invokestatic org.jruby.runtime.Helpers.invoke:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            putfield org.jruby.RubyRandom$RangeLike.begin:Lorg/jruby/runtime/builtin/IRubyObject;
        11: .line 581
            aload 2 /* like */
            aload 0 /* context */
            aload 1 /* range */
            ldc "end"
            invokestatic org.jruby.runtime.Helpers.invoke:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            putfield org.jruby.RubyRandom$RangeLike.end:Lorg/jruby/runtime/builtin/IRubyObject;
        12: .line 582
            aload 2 /* like */
            aload 0 /* context */
            aload 1 /* range */
            ldc "exclude_end?"
            invokestatic org.jruby.runtime.Helpers.invoke:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            putfield org.jruby.RubyRandom$RangeLike.excl:Z
        13: .line 584
      StackMap locals:
      StackMap stack:
            aload 2 /* like */
            aload 0 /* context */
            aload 2 /* like */
            getfield org.jruby.RubyRandom$RangeLike.end:Lorg/jruby/runtime/builtin/IRubyObject;
            ldc "-"
            aload 2 /* like */
            getfield org.jruby.RubyRandom$RangeLike.begin:Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.runtime.Helpers.invoke:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            putfield org.jruby.RubyRandom$RangeLike.range:Lorg/jruby/runtime/builtin/IRubyObject;
        14: .line 585
            aload 2 /* like */
            areturn
        end local 2 // org.jruby.RubyRandom$RangeLike like
        end local 1 // org.jruby.runtime.builtin.IRubyObject range
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0  context  Lorg/jruby/runtime/ThreadContext;
            0   15     1    range  Lorg/jruby/runtime/builtin/IRubyObject;
            1   15     2     like  Lorg/jruby/RubyRandom$RangeLike;
            3    6     3   vrange  Lorg/jruby/RubyRange;
    MethodParameters:
         Name  Flags
      context  
      range    

  public static org.jruby.runtime.builtin.IRubyObject srand(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 590
            aload 0 /* context */
            aload 1 /* recv */
            invokestatic org.jruby.RubyRandom.srandCommon:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        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     recv  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static org.jruby.runtime.builtin.IRubyObject srand(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        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 seed
         0: .line 595
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* seed */
            invokestatic org.jruby.RubyRandom.srandCommon:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject seed
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        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     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2     seed  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      seed     

  public static org.jruby.runtime.builtin.IRubyObject srandCommon(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 600
            aload 0 /* context */
            aload 1 /* recv */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.RubyRandom.randomSeed:(Lorg/jruby/Ruby;)Lorg/jruby/RubyBignum;
            invokestatic org.jruby.RubyRandom.srandCommon:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        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     recv  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static org.jruby.runtime.builtin.IRubyObject srandCommon(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        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 newSeed
         0: .line 606
            aload 0 /* context */
            invokestatic org.jruby.RubyRandom.getDefaultRand:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyRandom$RandomType;
            astore 3 /* defaultRand */
        start local 3 // org.jruby.RubyRandom$RandomType defaultRand
         1: .line 607
            aload 3 /* defaultRand */
            invokevirtual org.jruby.RubyRandom$RandomType.getSeed:()Lorg/jruby/RubyInteger;
            astore 4 /* previousSeed */
        start local 4 // org.jruby.runtime.builtin.IRubyObject previousSeed
         2: .line 608
            new org.jruby.RubyRandom$RandomType
            dup
            aload 2 /* newSeed */
            invokespecial org.jruby.RubyRandom$RandomType.<init>:(Lorg/jruby/runtime/builtin/IRubyObject;)V
            astore 3 /* defaultRand */
         3: .line 609
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* defaultRand */
            invokevirtual org.jruby.Ruby.setDefaultRand:(Lorg/jruby/RubyRandom$RandomType;)V
         4: .line 610
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getRandomClass:()Lorg/jruby/RubyClass;
            ldc "DEFAULT"
            invokevirtual org.jruby.RubyClass.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyRandom
            aload 3 /* defaultRand */
            invokevirtual org.jruby.RubyRandom.setRandomType:(Lorg/jruby/RubyRandom$RandomType;)V
         5: .line 611
            aload 4 /* previousSeed */
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject previousSeed
        end local 3 // org.jruby.RubyRandom$RandomType defaultRand
        end local 2 // org.jruby.runtime.builtin.IRubyObject newSeed
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0       context  Lorg/jruby/runtime/ThreadContext;
            0    6     1          recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     2       newSeed  Lorg/jruby/runtime/builtin/IRubyObject;
            1    6     3   defaultRand  Lorg/jruby/RubyRandom$RandomType;
            2    6     4  previousSeed  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      recv     
      newSeed  

  public org.jruby.runtime.builtin.IRubyObject op_equal_19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyRandom this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject obj
         0: .line 616
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* obj */
            invokevirtual org.jruby.RubyRandom.op_equal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject obj
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyRandom this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyRandom;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      obj  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      obj      

  public org.jruby.runtime.builtin.IRubyObject op_equal(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyRandom this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject obj
         0: .line 623
            aload 0 /* this */
            invokevirtual org.jruby.RubyRandom.getType:()Lorg/jruby/RubyClass;
            aload 2 /* obj */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getType:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.equals:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 624
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
            areturn
         2: .line 626
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 0 /* this */
            getfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
            aload 2 /* obj */
            checkcast org.jruby.RubyRandom
            getfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
            invokevirtual org.jruby.RubyRandom$RandomType.equals:(Ljava/lang/Object;)Z
            invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/runtime/ThreadContext;Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject obj
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyRandom this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/RubyRandom;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            0    3     2      obj  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"=="}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      obj      

  public org.jruby.runtime.builtin.IRubyObject stateObj(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.RubyRandom this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 632
            aload 0 /* this */
            getfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
            invokevirtual org.jruby.RubyRandom$RandomType.getState:()Lorg/jruby/RubyBignum;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyRandom this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyRandom;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"state"}, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject leftObj(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.RubyRandom this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 638
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
            invokevirtual org.jruby.RubyRandom$RandomType.getLeft:()I
            i2l
            invokestatic org.jruby.RubyNumeric.int2fix:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyNumeric;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyRandom this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/RubyRandom;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"left"}, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
         Name  Flags
      context  

  public static org.jruby.runtime.builtin.IRubyObject state(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 644
            aload 0 /* context */
            invokestatic org.jruby.RubyRandom.getDefaultRand:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyRandom$RandomType;
            invokevirtual org.jruby.RubyRandom$RandomType.getState:()Lorg/jruby/RubyBignum;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        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     recv  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"state"}, meta = true, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static org.jruby.runtime.builtin.IRubyObject left(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 650
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* context */
            invokestatic org.jruby.RubyRandom.getDefaultRand:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyRandom$RandomType;
            invokevirtual org.jruby.RubyRandom$RandomType.getLeft:()I
            i2l
            invokestatic org.jruby.RubyNumeric.int2fix:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyNumeric;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        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     recv  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"left"}, meta = true, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
         Name  Flags
      context  
      recv     

  public org.jruby.runtime.builtin.IRubyObject marshal_dump(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.jruby.RubyRandom this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 656
            aload 0 /* this */
            getfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
            invokevirtual org.jruby.RubyRandom$RandomType.getState:()Lorg/jruby/RubyBignum;
            astore 2 /* state */
        start local 2 // org.jruby.RubyBignum state
         1: .line 657
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
            invokevirtual org.jruby.RubyRandom$RandomType.getLeft:()I
            i2l
            invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
            astore 3 /* left */
        start local 3 // org.jruby.RubyInteger left
         2: .line 658
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* state */
            aload 3 /* left */
            aload 0 /* this */
            getfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
            invokevirtual org.jruby.RubyRandom$RandomType.getSeed:()Lorg/jruby/RubyInteger;
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            astore 4 /* dump */
        start local 4 // org.jruby.RubyArray dump
         3: .line 659
            aload 0 /* this */
            invokevirtual org.jruby.RubyRandom.hasVariables:()Z
            ifeq 5
         4: .line 660
            aload 4 /* dump */
            aload 0 /* this */
            invokevirtual org.jruby.RubyArray.syncVariables:(Lorg/jruby/runtime/builtin/IRubyObject;)V
         5: .line 662
      StackMap locals: org.jruby.RubyBignum org.jruby.RubyInteger org.jruby.RubyArray
      StackMap stack:
            aload 4 /* dump */
            areturn
        end local 4 // org.jruby.RubyArray dump
        end local 3 // org.jruby.RubyInteger left
        end local 2 // org.jruby.RubyBignum state
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyRandom this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/RubyRandom;
            0    6     1  context  Lorg/jruby/runtime/ThreadContext;
            1    6     2    state  Lorg/jruby/RubyBignum;
            2    6     3     left  Lorg/jruby/RubyInteger;
            3    6     4     dump  Lorg/jruby/RubyArray;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"marshal_dump"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject marshal_load(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // org.jruby.RubyRandom this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 668
            aload 2 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToArray:()Lorg/jruby/RubyArray;
            astore 3 /* load */
        start local 3 // org.jruby.RubyArray load
         1: .line 669
            aload 3 /* load */
            invokevirtual org.jruby.RubyArray.size:()I
            iconst_3
            if_icmpeq 3
         2: .line 670
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "wrong dump data"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 672
      StackMap locals: org.jruby.RubyArray
      StackMap stack:
            aload 3 /* load */
            iconst_0
            invokevirtual org.jruby.RubyArray.eltInternal:(I)Lorg/jruby/runtime/builtin/IRubyObject;
            instanceof org.jruby.RubyBignum
            ifne 5
         4: .line 673
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* load */
            iconst_0
            invokevirtual org.jruby.RubyArray.eltInternal:(I)Lorg/jruby/runtime/builtin/IRubyObject;
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getBignum:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 675
      StackMap locals:
      StackMap stack:
            aload 3 /* load */
            iconst_0
            invokevirtual org.jruby.RubyArray.eltInternal:(I)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyBignum
            astore 4 /* state */
        start local 4 // org.jruby.RubyBignum state
         6: .line 676
            aload 3 /* load */
            iconst_1
            invokevirtual org.jruby.RubyArray.eltInternal:(I)Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 5 /* left */
        start local 5 // int left
         7: .line 677
            aload 3 /* load */
            iconst_2
            invokevirtual org.jruby.RubyArray.eltInternal:(I)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6 /* seed */
        start local 6 // org.jruby.runtime.builtin.IRubyObject seed
         8: .line 678
            aload 0 /* this */
            new org.jruby.RubyRandom$RandomType
            dup
            aload 6 /* seed */
            aload 4 /* state */
            iload 5 /* left */
            invokespecial org.jruby.RubyRandom$RandomType.<init>:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyBignum;I)V
            putfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
         9: .line 679
            aload 3 /* load */
            invokevirtual org.jruby.RubyArray.hasVariables:()Z
            ifeq 11
        10: .line 680
            aload 0 /* this */
            aload 3 /* load */
            invokevirtual org.jruby.RubyRandom.syncVariables:(Lorg/jruby/runtime/builtin/IRubyObject;)V
        11: .line 682
      StackMap locals: org.jruby.RubyBignum int org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 6 // org.jruby.runtime.builtin.IRubyObject seed
        end local 5 // int left
        end local 4 // org.jruby.RubyBignum state
        end local 3 // org.jruby.RubyArray load
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyRandom this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/jruby/RubyRandom;
            0   12     1  context  Lorg/jruby/runtime/ThreadContext;
            0   12     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            1   12     3     load  Lorg/jruby/RubyArray;
            6   12     4    state  Lorg/jruby/RubyBignum;
            7   12     5     left  I
            8   12     6     seed  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject bytes(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.jruby.RubyRandom this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 688
            aload 2 /* arg */
            invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 3 /* n */
        start local 3 // int n
         1: .line 689
            iload 3 /* n */
            newarray 8
            astore 4 /* bytes */
        start local 4 // byte[] bytes
         2: .line 690
            iconst_0
            istore 5 /* idx */
        start local 5 // int idx
         3: .line 691
            goto 12
         4: .line 692
      StackMap locals: int byte[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
            invokevirtual org.jruby.RubyRandom$RandomType.genrandInt32:()I
            istore 6 /* r */
        start local 6 // int r
         5: .line 693
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 10
         7: .line 694
      StackMap locals: int int
      StackMap stack:
            aload 4 /* bytes */
            iload 5 /* idx */
            iinc 5 /* idx */ 1
            iload 6 /* r */
            sipush 255
            iand
            i2b
            bastore
         8: .line 695
            iload 6 /* r */
            bipush 8
            iushr
            istore 6 /* r */
         9: .line 693
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 7 /* i */
            iconst_4
            if_icmplt 7
        end local 7 // int i
        end local 6 // int r
        11: .line 691
            iinc 3 /* n */ -4
      StackMap locals:
      StackMap stack:
        12: iload 3 /* n */
            iconst_4
            if_icmpge 4
        13: .line 698
            iload 3 /* n */
            ifle 21
        14: .line 699
            aload 0 /* this */
            getfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
            invokevirtual org.jruby.RubyRandom$RandomType.genrandInt32:()I
            istore 6 /* r */
        start local 6 // int r
        15: .line 700
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        16: goto 20
        17: .line 701
      StackMap locals: int int
      StackMap stack:
            aload 4 /* bytes */
            iload 5 /* idx */
            iinc 5 /* idx */ 1
            iload 6 /* r */
            sipush 255
            iand
            i2b
            bastore
        18: .line 702
            iload 6 /* r */
            bipush 8
            iushr
            istore 6 /* r */
        19: .line 700
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 7 /* i */
            iload 3 /* n */
            if_icmplt 17
        end local 7 // int i
        end local 6 // int r
        21: .line 705
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new org.jruby.util.ByteList
            dup
            aload 4 /* bytes */
            invokespecial org.jruby.util.ByteList.<init>:([B)V
            invokevirtual org.jruby.Ruby.newString:(Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            areturn
        end local 5 // int idx
        end local 4 // byte[] bytes
        end local 3 // int n
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.RubyRandom this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0     this  Lorg/jruby/RubyRandom;
            0   22     1  context  Lorg/jruby/runtime/ThreadContext;
            0   22     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            1   22     3        n  I
            2   22     4    bytes  [B
            3   22     5      idx  I
            5   11     6        r  I
            6   11     7        i  I
           15   21     6        r  I
           16   21     7        i  I
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"bytes"})
    MethodParameters:
         Name  Flags
      context  
      arg      

  private static org.jruby.RubyRandom$RandomType tryGetRandomType(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyRandom$RandomType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject obj
         0: .line 709
            aload 1 /* obj */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getRandomClass:()Lorg/jruby/RubyClass;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 1
            aload 0 /* context */
            invokestatic org.jruby.RubyRandom.getDefaultRand:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyRandom$RandomType;
            areturn
         1: .line 710
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof org.jruby.RubyRandom
            ifeq 2
            aload 1 /* obj */
            checkcast org.jruby.RubyRandom
            getfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
            areturn
         2: .line 711
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject obj
        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      obj  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      obj      

  public static long randomLongLimited(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, long);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=8, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject obj
        start local 2 // long limit
         0: .line 716
            aload 0 /* context */
            aload 1 /* obj */
            invokestatic org.jruby.RubyRandom.tryGetRandomType:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyRandom$RandomType;
            astore 4 /* rnd */
        start local 4 // org.jruby.RubyRandom$RandomType rnd
         1: .line 718
            aload 4 /* rnd */
            ifnonnull 7
         2: .line 719
            aload 0 /* context */
            aload 1 /* obj */
            ldc "rand"
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            lload 2 /* limit */
            lconst_1
            ladd
            invokevirtual org.jruby.Ruby.newFixnum:(J)Lorg/jruby/RubyFixnum;
            invokestatic org.jruby.runtime.Helpers.invokePublic:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            astore 5 /* v */
        start local 5 // org.jruby.RubyInteger v
         3: .line 720
            aload 5 /* v */
            invokestatic org.jruby.RubyNumeric.num2long:(Lorg/jruby/runtime/builtin/IRubyObject;)J
            lstore 6 /* r */
        start local 6 // long r
         4: .line 721
            lload 6 /* r */
            lconst_0
            lcmp
            ifge 5
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "random number too small "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 6 /* r */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newRangeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 722
      StackMap locals: org.jruby.RubyRandom$RandomType org.jruby.RubyInteger long
      StackMap stack:
            lload 6 /* r */
            lload 2 /* limit */
            lcmp
            ifle 6
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "random number too big "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 6 /* r */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newRangeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         6: .line 724
      StackMap locals:
      StackMap stack:
            lload 6 /* r */
            lreturn
        end local 6 // long r
        end local 5 // org.jruby.RubyInteger v
         7: .line 727
      StackMap locals:
      StackMap stack:
            aload 4 /* rnd */
            getfield org.jruby.RubyRandom$RandomType.impl:Lorg/jruby/util/Random;
            lload 2 /* limit */
            invokestatic org.jruby.RubyRandom.randLimitedFixnumInner:(Lorg/jruby/util/Random;J)J
            lreturn
        end local 4 // org.jruby.RubyRandom$RandomType rnd
        end local 2 // long limit
        end local 1 // org.jruby.runtime.builtin.IRubyObject obj
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0  context  Lorg/jruby/runtime/ThreadContext;
            0    8     1      obj  Lorg/jruby/runtime/builtin/IRubyObject;
            0    8     2    limit  J
            1    8     4      rnd  Lorg/jruby/RubyRandom$RandomType;
            3    7     5        v  Lorg/jruby/RubyInteger;
            4    7     6        r  J
    MethodParameters:
         Name  Flags
      context  
      obj      
      limit    

  public static double randomReal(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject obj
         0: .line 732
            aload 0 /* context */
            aload 1 /* obj */
            invokestatic org.jruby.RubyRandom.tryGetRandomType:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyRandom$RandomType;
            astore 2 /* random */
        start local 2 // org.jruby.RubyRandom$RandomType random
         1: .line 734
            aload 2 /* random */
            ifnull 2
            aload 2 /* random */
            invokevirtual org.jruby.RubyRandom$RandomType.genrandReal:()D
            dreturn
         2: .line 736
      StackMap locals: org.jruby.RubyRandom$RandomType
      StackMap stack:
            aload 0 /* context */
            aload 0 /* context */
            aload 1 /* obj */
            ldc "rand"
            invokestatic org.jruby.runtime.Helpers.invoke:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.RubyNumeric.num2dbl:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)D
            dstore 3 /* d */
        start local 3 // double d
         3: .line 738
            dload 3 /* d */
            dconst_0
            dcmpg
            iflt 4
            dload 3 /* d */
            dconst_1
            dcmpl
            iflt 5
      StackMap locals: double
      StackMap stack:
         4: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "random number too big: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            dload 3 /* d */
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newRangeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 740
      StackMap locals:
      StackMap stack:
            dload 3 /* d */
            dreturn
        end local 3 // double d
        end local 2 // org.jruby.RubyRandom$RandomType random
        end local 1 // org.jruby.runtime.builtin.IRubyObject obj
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0  context  Lorg/jruby/runtime/ThreadContext;
            0    6     1      obj  Lorg/jruby/runtime/builtin/IRubyObject;
            1    6     2   random  Lorg/jruby/RubyRandom$RandomType;
            3    6     3        d  D
    MethodParameters:
         Name  Flags
      context  
      obj      

  public static org.jruby.runtime.builtin.IRubyObject newSeed(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 745
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.RubyRandom.randomSeed:(Lorg/jruby/Ruby;)Lorg/jruby/RubyBignum;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        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     recv  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"new_seed"}, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static org.jruby.runtime.builtin.IRubyObject urandom(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=3
        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 num
         0: .line 750
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 751
            aload 2 /* num */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            istore 4 /* n */
        start local 4 // int n
         2: .line 753
            iload 4 /* n */
            ifge 3
            aload 3 /* runtime */
            ldc "negative string size (or size too big)"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 755
      StackMap locals: org.jruby.Ruby int
      StackMap stack:
            iload 4 /* n */
            ifne 4
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.newString:()Lorg/jruby/RubyString;
            areturn
         4: .line 757
      StackMap locals:
      StackMap stack:
            iload 4 /* n */
            newarray 8
            astore 5 /* seed */
        start local 5 // byte[] seed
         5: .line 758
            aload 3 /* runtime */
            getfield org.jruby.Ruby.random:Ljava/util/Random;
            aload 5 /* seed */
            invokevirtual java.util.Random.nextBytes:([B)V
         6: .line 760
            aload 3 /* runtime */
            aload 5 /* seed */
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
            areturn
        end local 5 // byte[] seed
        end local 4 // int n
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject num
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  context  Lorg/jruby/runtime/ThreadContext;
            0    7     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     2      num  Lorg/jruby/runtime/builtin/IRubyObject;
            1    7     3  runtime  Lorg/jruby/Ruby;
            2    7     4        n  I
            5    7     5     seed  [B
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"urandom"}, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      num      

  private void setRandomType(org.jruby.RubyRandom$RandomType);
    descriptor: (Lorg/jruby/RubyRandom$RandomType;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.RubyRandom this
        start local 1 // org.jruby.RubyRandom$RandomType random
         0: .line 764
            aload 0 /* this */
            aload 1 /* random */
            putfield org.jruby.RubyRandom.random:Lorg/jruby/RubyRandom$RandomType;
         1: .line 765
            return
        end local 1 // org.jruby.RubyRandom$RandomType random
        end local 0 // org.jruby.RubyRandom this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/jruby/RubyRandom;
            0    2     1  random  Lorg/jruby/RubyRandom$RandomType;
    MethodParameters:
        Name  Flags
      random  
}
SourceFile: "RubyRandom.java"
NestMembers:
  org.jruby.RubyRandom$1  org.jruby.RubyRandom$RandomType  org.jruby.RubyRandom$RangeLike
InnerClasses:
  org.jruby.RubyRandom$1
  public final RandomType = org.jruby.RubyRandom$RandomType of org.jruby.RubyRandom
  RangeLike = org.jruby.RubyRandom$RangeLike of org.jruby.RubyRandom
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyClass(name = {"Random"})