class sun.security.provider.NativePRNG$RandomIO
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.security.provider.NativePRNG$RandomIO
  super_class: java.lang.Object
{
  private static final long MAX_BUFFER_TIME;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  private static final int MAX_BUFFER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 65536

  private static final int MIN_BUFFER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private int bufferSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  java.io.File seedFile;
    descriptor: Ljava/io/File;
    flags: (0x0000) 

  private final java.io.InputStream seedIn;
    descriptor: Ljava/io/InputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.InputStream nextIn;
    descriptor: Ljava/io/InputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.io.OutputStream seedOut;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0002) ACC_PRIVATE

  private boolean seedOutInitialized;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private volatile sun.security.provider.SecureRandom mixRandom;
    descriptor: Lsun/security/provider/SecureRandom;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private byte[] nextBuffer;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private int buffered;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private long lastRead;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private int change_buffer;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private static final int REQ_LIMIT_INC;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1000

  private static final int REQ_LIMIT_DEC;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -100

  private final java.lang.Object LOCK_GET_BYTES;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object LOCK_GET_SEED;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object LOCK_SET_SEED;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private void <init>(java.io.File, java.io.File);
    descriptor: (Ljava/io/File;Ljava/io/File;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.provider.NativePRNG$RandomIO this
        start local 1 // java.io.File seedFile
        start local 2 // java.io.File nextFile
         0: .line 386
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 341
            aload 0 /* this */
            sipush 256
            putfield sun.security.provider.NativePRNG$RandomIO.bufferSize:I
         2: .line 368
            aload 0 /* this */
            iconst_0
            putfield sun.security.provider.NativePRNG$RandomIO.change_buffer:I
         3: .line 377
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.provider.NativePRNG$RandomIO.LOCK_GET_BYTES:Ljava/lang/Object;
         4: .line 380
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.provider.NativePRNG$RandomIO.LOCK_GET_SEED:Ljava/lang/Object;
         5: .line 383
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.security.provider.NativePRNG$RandomIO.LOCK_SET_SEED:Ljava/lang/Object;
         6: .line 387
            aload 0 /* this */
            aload 1 /* seedFile */
            putfield sun.security.provider.NativePRNG$RandomIO.seedFile:Ljava/io/File;
         7: .line 388
            aload 0 /* this */
            aload 1 /* seedFile */
            invokestatic sun.security.provider.FileInputStreamPool.getInputStream:(Ljava/io/File;)Ljava/io/InputStream;
            putfield sun.security.provider.NativePRNG$RandomIO.seedIn:Ljava/io/InputStream;
         8: .line 389
            aload 0 /* this */
            aload 2 /* nextFile */
            invokestatic sun.security.provider.FileInputStreamPool.getInputStream:(Ljava/io/File;)Ljava/io/InputStream;
            putfield sun.security.provider.NativePRNG$RandomIO.nextIn:Ljava/io/InputStream;
         9: .line 390
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.bufferSize:I
            newarray 8
            putfield sun.security.provider.NativePRNG$RandomIO.nextBuffer:[B
        10: .line 391
            return
        end local 2 // java.io.File nextFile
        end local 1 // java.io.File seedFile
        end local 0 // sun.security.provider.NativePRNG$RandomIO this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lsun/security/provider/NativePRNG$RandomIO;
            0   11     1  seedFile  Ljava/io/File;
            0   11     2  nextFile  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      seedFile  
      nextFile  

  private sun.security.provider.SecureRandom getMixRandom();
    descriptor: ()Lsun/security/provider/SecureRandom;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // sun.security.provider.NativePRNG$RandomIO this
         0: .line 396
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.mixRandom:Lsun/security/provider/SecureRandom;
            astore 1 /* r */
        start local 1 // sun.security.provider.SecureRandom r
         1: .line 397
            aload 1 /* r */
            ifnonnull 17
         2: .line 398
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.LOCK_GET_BYTES:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         3: .line 399
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.mixRandom:Lsun/security/provider/SecureRandom;
            astore 1 /* r */
         4: .line 400
            aload 1 /* r */
            ifnonnull 13
         5: .line 401
            new sun.security.provider.SecureRandom
            dup
            invokespecial sun.security.provider.SecureRandom.<init>:()V
            astore 1 /* r */
         6: .line 403
            bipush 20
            newarray 8
            astore 3 /* b */
        start local 3 // byte[] b
         7: .line 404
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.nextIn:Ljava/io/InputStream;
            aload 3 /* b */
            invokestatic sun.security.provider.NativePRNG$RandomIO.readFully:(Ljava/io/InputStream;[B)V
         8: .line 405
            aload 1 /* r */
            aload 3 /* b */
            invokevirtual sun.security.provider.SecureRandom.engineSetSeed:([B)V
        end local 3 // byte[] b
         9: .line 406
            goto 12
      StackMap locals: sun.security.provider.NativePRNG$RandomIO sun.security.provider.SecureRandom java.lang.Object
      StackMap stack: java.io.IOException
        10: astore 3 /* e */
        start local 3 // java.io.IOException e
        11: .line 407
            new java.security.ProviderException
            dup
            ldc "init failed"
            aload 3 /* e */
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException e
        12: .line 409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* r */
            putfield sun.security.provider.NativePRNG$RandomIO.mixRandom:Lsun/security/provider/SecureRandom;
        13: .line 398
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        14: goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 2
            monitorexit
        16: athrow
        17: .line 413
      StackMap locals:
      StackMap stack:
            aload 1 /* r */
            areturn
        end local 1 // sun.security.provider.SecureRandom r
        end local 0 // sun.security.provider.NativePRNG$RandomIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Lsun/security/provider/NativePRNG$RandomIO;
            1   18     1     r  Lsun/security/provider/SecureRandom;
            7    9     3     b  [B
           11   12     3     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6     9      10  Class java.io.IOException
           3    14      15  any
          15    16      15  any

  private static void readFully(java.io.InputStream, byte[]);
    descriptor: (Ljava/io/InputStream;[B)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.io.InputStream in
        start local 1 // byte[] data
         0: .line 421
            aload 1 /* data */
            arraylength
            istore 2 /* len */
        start local 2 // int len
         1: .line 422
            iconst_0
            istore 3 /* ofs */
        start local 3 // int ofs
         2: .line 423
            goto 8
         3: .line 424
      StackMap locals: int int
      StackMap stack:
            aload 0 /* in */
            aload 1 /* data */
            iload 3 /* ofs */
            iload 2 /* len */
            invokevirtual java.io.InputStream.read:([BII)I
            istore 4 /* k */
        start local 4 // int k
         4: .line 425
            iload 4 /* k */
            ifgt 6
         5: .line 426
            new java.io.EOFException
            dup
            ldc "File(s) closed?"
            invokespecial java.io.EOFException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 428
      StackMap locals: int
      StackMap stack:
            iload 3 /* ofs */
            iload 4 /* k */
            iadd
            istore 3 /* ofs */
         7: .line 429
            iload 2 /* len */
            iload 4 /* k */
            isub
            istore 2 /* len */
        end local 4 // int k
         8: .line 423
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            ifgt 3
         9: .line 431
            iload 2 /* len */
            ifle 11
        10: .line 432
            new java.io.IOException
            dup
            ldc "Could not read from file(s)"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 434
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int ofs
        end local 2 // int len
        end local 1 // byte[] data
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0    in  Ljava/io/InputStream;
            0   12     1  data  [B
            1   12     2   len  I
            2   12     3   ofs  I
            4    8     4     k  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    
      data  

  private byte[] implGenerateSeed(int);
    descriptor: (I)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.security.provider.NativePRNG$RandomIO this
        start local 1 // int numBytes
         0: .line 438
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.LOCK_GET_SEED:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 440
            iload 1 /* numBytes */
            newarray 8
            astore 3 /* b */
        start local 3 // byte[] b
         2: .line 441
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.seedIn:Ljava/io/InputStream;
            aload 3 /* b */
            invokestatic sun.security.provider.NativePRNG$RandomIO.readFully:(Ljava/io/InputStream;[B)V
         3: .line 442
            aload 3 /* b */
         4: aload 2
            monitorexit
         5: areturn
        end local 3 // byte[] b
         6: .line 443
      StackMap locals: sun.security.provider.NativePRNG$RandomIO int java.lang.Object
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
         7: .line 444
            new java.security.ProviderException
            dup
            ldc "generateSeed() failed"
            aload 3 /* e */
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException e
         8: .line 438
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         9: athrow
        end local 1 // int numBytes
        end local 0 // sun.security.provider.NativePRNG$RandomIO this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lsun/security/provider/NativePRNG$RandomIO;
            0   10     1  numBytes  I
            2    6     3         b  [B
            7    8     3         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     4       6  Class java.io.IOException
           1     5       8  any
           6     9       8  any
    MethodParameters:
          Name  Flags
      numBytes  

  private void implSetSeed(byte[]);
    descriptor: ([B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.security.provider.NativePRNG$RandomIO this
        start local 1 // byte[] seed
         0: .line 453
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.LOCK_SET_SEED:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 454
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.seedOutInitialized:Z
            ifne 6
         2: .line 455
            aload 0 /* this */
            iconst_1
            putfield sun.security.provider.NativePRNG$RandomIO.seedOutInitialized:Z
         3: .line 456
            aload 0 /* this */
         4: .line 457
            new sun.security.provider.NativePRNG$RandomIO$1
            dup
            aload 0 /* this */
            invokespecial sun.security.provider.NativePRNG$RandomIO$1.<init>:(Lsun/security/provider/NativePRNG$RandomIO;)V
         5: .line 456
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.io.OutputStream
            putfield sun.security.provider.NativePRNG$RandomIO.seedOut:Ljava/io/OutputStream;
         6: .line 468
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.seedOut:Ljava/io/OutputStream;
            ifnull 10
         7: .line 470
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.seedOut:Ljava/io/OutputStream;
            aload 1 /* seed */
            invokevirtual java.io.OutputStream.write:([B)V
         8: .line 471
            goto 10
      StackMap locals:
      StackMap stack: java.io.IOException
         9: pop
        10: .line 476
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.provider.NativePRNG$RandomIO.getMixRandom:()Lsun/security/provider/SecureRandom;
            aload 1 /* seed */
            invokevirtual sun.security.provider.SecureRandom.engineSetSeed:([B)V
        11: .line 453
            aload 2
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 2
            monitorexit
        14: athrow
        15: .line 478
      StackMap locals:
      StackMap stack:
            return
        end local 1 // byte[] seed
        end local 0 // sun.security.provider.NativePRNG$RandomIO this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lsun/security/provider/NativePRNG$RandomIO;
            0   16     1  seed  [B
      Exception table:
        from    to  target  type
           7     8       9  Class java.io.IOException
           1    12      13  any
          13    14      13  any
    MethodParameters:
      Name  Flags
      seed  

  private void ensureBufferValid();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // sun.security.provider.NativePRNG$RandomIO this
         0: .line 483
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 1 /* time */
        start local 1 // long time
         1: .line 484
            iconst_0
            istore 3 /* new_buffer_size */
        start local 3 // int new_buffer_size
         2: .line 487
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.buffered:I
            ifle 7
         3: .line 488
            lload 1 /* time */
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.lastRead:J
            lsub
            ldc 100
            lcmp
            ifge 5
         4: .line 489
            return
         5: .line 492
      StackMap locals: long int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.security.provider.NativePRNG$RandomIO.change_buffer:I
            iconst_1
            isub
            putfield sun.security.provider.NativePRNG$RandomIO.change_buffer:I
         6: .line 494
            goto 8
         7: .line 496
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield sun.security.provider.NativePRNG$RandomIO.change_buffer:I
            iconst_1
            iadd
            putfield sun.security.provider.NativePRNG$RandomIO.change_buffer:I
         8: .line 500
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.change_buffer:I
            sipush 1000
            if_icmple 11
         9: .line 501
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.nextBuffer:[B
            arraylength
            iconst_2
            imul
            istore 3 /* new_buffer_size */
        10: .line 502
            goto 13
      StackMap locals:
      StackMap stack:
        11: aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.change_buffer:I
            bipush -100
            if_icmpge 13
        12: .line 503
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.nextBuffer:[B
            arraylength
            iconst_2
            idiv
            istore 3 /* new_buffer_size */
        13: .line 507
      StackMap locals:
      StackMap stack:
            iload 3 /* new_buffer_size */
            ifle 27
        14: .line 508
            iload 3 /* new_buffer_size */
            ldc 65536
            if_icmpgt 22
        15: .line 509
            iload 3 /* new_buffer_size */
            bipush 32
            if_icmplt 22
        16: .line 510
            aload 0 /* this */
            iload 3 /* new_buffer_size */
            newarray 8
            putfield sun.security.provider.NativePRNG$RandomIO.nextBuffer:[B
        17: .line 511
            getstatic sun.security.provider.NativePRNG.debug:Lsun/security/util/Debug;
            ifnull 26
        18: .line 512
            getstatic sun.security.provider.NativePRNG.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "Buffer size changed to "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        19: .line 513
            iload 3 /* new_buffer_size */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 512
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        21: .line 515
            goto 26
        22: .line 516
      StackMap locals:
      StackMap stack:
            getstatic sun.security.provider.NativePRNG.debug:Lsun/security/util/Debug;
            ifnull 26
        23: .line 517
            getstatic sun.security.provider.NativePRNG.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "Buffer reached limit: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        24: .line 518
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.nextBuffer:[B
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        25: .line 517
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        26: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.provider.NativePRNG$RandomIO.change_buffer:I
        27: .line 525
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* time */
            putfield sun.security.provider.NativePRNG$RandomIO.lastRead:J
        28: .line 526
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.nextIn:Ljava/io/InputStream;
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.nextBuffer:[B
            invokestatic sun.security.provider.NativePRNG$RandomIO.readFully:(Ljava/io/InputStream;[B)V
        29: .line 527
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.nextBuffer:[B
            arraylength
            putfield sun.security.provider.NativePRNG$RandomIO.buffered:I
        30: .line 528
            return
        end local 3 // int new_buffer_size
        end local 1 // long time
        end local 0 // sun.security.provider.NativePRNG$RandomIO this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   31     0             this  Lsun/security/provider/NativePRNG$RandomIO;
            1   31     1             time  J
            2   31     3  new_buffer_size  I
    Exceptions:
      throws java.io.IOException

  private void implNextBytes(byte[]);
    descriptor: ([B)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // sun.security.provider.NativePRNG$RandomIO this
        start local 1 // byte[] data
         0: .line 535
            aload 0 /* this */
            invokevirtual sun.security.provider.NativePRNG$RandomIO.getMixRandom:()Lsun/security/provider/SecureRandom;
            aload 1 /* data */
            invokevirtual sun.security.provider.SecureRandom.engineNextBytes:([B)V
         1: .line 536
            aload 1 /* data */
            arraylength
            istore 2 /* data_len */
        start local 2 // int data_len
         2: .line 537
            iconst_0
            istore 3 /* ofs */
        start local 3 // int ofs
         3: .line 543
            goto 27
         4: .line 544
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.LOCK_GET_BYTES:Ljava/lang/Object;
            dup
            astore 8
            monitorenter
         5: .line 545
            aload 0 /* this */
            invokevirtual sun.security.provider.NativePRNG$RandomIO.ensureBufferValid:()V
         6: .line 546
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.nextBuffer:[B
            arraylength
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.buffered:I
            isub
            istore 5 /* buf_pos */
        start local 5 // int buf_pos
         7: .line 547
            iload 2 /* data_len */
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.buffered:I
            if_icmple 11
         8: .line 548
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.buffered:I
            istore 4 /* len */
        start local 4 // int len
         9: .line 549
            aload 0 /* this */
            iconst_0
            putfield sun.security.provider.NativePRNG$RandomIO.buffered:I
        10: .line 550
            goto 13
        end local 4 // int len
        11: .line 551
      StackMap locals: sun.security.provider.NativePRNG$RandomIO byte[] int int top int top top java.lang.Object
      StackMap stack:
            iload 2 /* data_len */
            istore 4 /* len */
        start local 4 // int len
        12: .line 552
            aload 0 /* this */
            dup
            getfield sun.security.provider.NativePRNG$RandomIO.buffered:I
            iload 4 /* len */
            isub
            putfield sun.security.provider.NativePRNG$RandomIO.buffered:I
        13: .line 554
      StackMap locals: sun.security.provider.NativePRNG$RandomIO byte[] int int int int top top java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.NativePRNG$RandomIO.nextBuffer:[B
            iload 5 /* buf_pos */
        14: .line 555
            iload 5 /* buf_pos */
            iload 4 /* len */
            iadd
        15: .line 554
            invokestatic java.util.Arrays.copyOfRange:([BII)[B
            astore 7 /* localBuffer */
        start local 7 // byte[] localBuffer
        16: .line 544
            aload 8
            monitorexit
        17: goto 20
        end local 7 // byte[] localBuffer
        end local 5 // int buf_pos
        end local 4 // int len
      StackMap locals: sun.security.provider.NativePRNG$RandomIO byte[] int int top top top top java.lang.Object
      StackMap stack: java.lang.Throwable
        18: aload 8
            monitorexit
        19: athrow
        start local 4 // int len
        start local 5 // int buf_pos
        start local 7 // byte[] localBuffer
        20: .line 557
      StackMap locals: sun.security.provider.NativePRNG$RandomIO byte[] int int int int top byte[]
      StackMap stack:
            iconst_0
            istore 6 /* localofs */
        start local 6 // int localofs
        21: .line 558
            goto 25
        22: .line 559
      StackMap locals: sun.security.provider.NativePRNG$RandomIO byte[] int int int int int byte[]
      StackMap stack:
            aload 1 /* data */
            iload 3 /* ofs */
            dup2
            baload
            aload 7 /* localBuffer */
            iload 6 /* localofs */
            baload
            ixor
            i2b
            bastore
        23: .line 560
            iinc 3 /* ofs */ 1
        24: .line 561
            iinc 6 /* localofs */ 1
        25: .line 558
      StackMap locals:
      StackMap stack:
            iload 4 /* len */
            iload 6 /* localofs */
            if_icmpgt 22
        26: .line 563
            iload 2 /* data_len */
            iload 4 /* len */
            isub
            istore 2 /* data_len */
        end local 7 // byte[] localBuffer
        end local 6 // int localofs
        end local 5 // int buf_pos
        end local 4 // int len
        27: .line 543
      StackMap locals: sun.security.provider.NativePRNG$RandomIO byte[] int int
      StackMap stack:
            iload 2 /* data_len */
            ifgt 4
        end local 3 // int ofs
        end local 2 // int data_len
        28: .line 565
            goto 31
      StackMap locals: sun.security.provider.NativePRNG$RandomIO byte[]
      StackMap stack: java.io.IOException
        29: astore 2 /* e */
        start local 2 // java.io.IOException e
        30: .line 566
            new java.security.ProviderException
            dup
            ldc "nextBytes() failed"
            aload 2 /* e */
            invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
        31: .line 568
      StackMap locals:
      StackMap stack:
            return
        end local 1 // byte[] data
        end local 0 // sun.security.provider.NativePRNG$RandomIO this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   32     0         this  Lsun/security/provider/NativePRNG$RandomIO;
            0   32     1         data  [B
            2   28     2     data_len  I
            3   28     3          ofs  I
            9   11     4          len  I
           12   18     4          len  I
           20   27     4          len  I
            7   18     5      buf_pos  I
           20   27     5      buf_pos  I
           21   27     6     localofs  I
           16   18     7  localBuffer  [B
           20   27     7  localBuffer  [B
           30   31     2            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           5    17      18  any
          18    19      18  any
           0    28      29  Class java.io.IOException
    MethodParameters:
      Name  Flags
      data  
}
SourceFile: "NativePRNG.java"
NestHost: sun.security.provider.NativePRNG
InnerClasses:
  private RandomIO = sun.security.provider.NativePRNG$RandomIO of sun.security.provider.NativePRNG
  sun.security.provider.NativePRNG$RandomIO$1