public abstract class sun.security.provider.AbstractDrbg
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: sun.security.provider.AbstractDrbg
  super_class: java.lang.Object
{
  protected static final sun.security.util.Debug debug;
    descriptor: Lsun/security/util/Debug;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

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

  protected volatile int reseedCounter;
    descriptor: I
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

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

  protected java.lang.String mechName;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected int highestSupportedSecurityStrength;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected boolean supportPredictionResistance;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean supportReseeding;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected int minLength;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int maxLength;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int maxPersonalizationStringLength;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int maxAdditionalInputLength;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int maxNumberOfBytesPerRequest;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int reseedInterval;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String algorithm;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected int securityStrength;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int requestedInstantiationSecurityStrength;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected byte[] personalizationString;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

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

  protected boolean usedf;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected byte[] nonce;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

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

  protected java.lang.String requestedAlgorithm;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  private sun.security.provider.EntropySource es;
    descriptor: Lsun/security/provider/EntropySource;
    flags: (0x0002) ACC_PRIVATE

  private static final sun.security.provider.EntropySource defaultES;
    descriptor: Lsun/security/provider/EntropySource;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 70
            ldc "securerandom"
            ldc "drbg"
         1: .line 69
            invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;Ljava/lang/String;)Lsun/security/util/Debug;
            putstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
         2: .line 522
            invokedynamic getEntropy()Lsun/security/provider/EntropySource;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (IIIZ)[B
                  sun/security/provider/AbstractDrbg.lambda$0(IIIZ)[B (6)
                  (IIIZ)[B
         3: .line 521
            putstatic sun.security.provider.AbstractDrbg.defaultES:Lsun/security/provider/EntropySource;
         4: .line 526
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected abstract void chooseAlgorithmAndStrength();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract void initEngine();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract void instantiateAlgorithm(byte[]);
    descriptor: ([B)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      ei    

  protected abstract void generateAlgorithm(byte[], byte[]);
    descriptor: ([B[B)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
                 Name  Flags
      result           
      additionalInput  

  protected void reseedAlgorithm(byte[], byte[]);
    descriptor: ([B[B)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.provider.AbstractDrbg this
        start local 1 // byte[] ei
        start local 2 // byte[] additionalInput
         0: .line 328
            new java.lang.UnsupportedOperationException
            dup
            ldc "No reseed function"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // byte[] additionalInput
        end local 1 // byte[] ei
        end local 0 // sun.security.provider.AbstractDrbg this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lsun/security/provider/AbstractDrbg;
            0    1     1               ei  [B
            0    1     2  additionalInput  [B
    MethodParameters:
                 Name  Flags
      ei               
      additionalInput  

  protected final void engineNextBytes(byte[]);
    descriptor: ([B)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.security.provider.AbstractDrbg this
        start local 1 // byte[] result
         0: .line 334
            aload 0 /* this */
            aload 1 /* result */
         1: .line 335
            iconst_m1
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
            aconst_null
         2: .line 334
            invokestatic java.security.DrbgParameters.nextBytes:(IZ[B)Ljava/security/DrbgParameters$NextBytes;
            invokevirtual sun.security.provider.AbstractDrbg.engineNextBytes:([BLjava/security/SecureRandomParameters;)V
         3: .line 336
            return
        end local 1 // byte[] result
        end local 0 // sun.security.provider.AbstractDrbg this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lsun/security/provider/AbstractDrbg;
            0    4     1  result  [B
    MethodParameters:
        Name  Flags
      result  

  protected final void engineNextBytes(byte[], java.security.SecureRandomParameters);
    descriptor: ([BLjava/security/SecureRandomParameters;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // sun.security.provider.AbstractDrbg this
        start local 1 // byte[] result
        start local 2 // java.security.SecureRandomParameters params
         0: .line 341
            aload 1 /* result */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 343
            getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
            ifnull 3
         2: .line 344
            getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
            aload 0 /* this */
            ldc "nextBytes"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/Object;Ljava/lang/String;)V
         3: .line 346
      StackMap locals:
      StackMap stack:
            aload 2 /* params */
            instanceof java.security.DrbgParameters$NextBytes
            ifeq 31
         4: .line 350
            aload 2 /* params */
            checkcast java.security.DrbgParameters$NextBytes
            astore 3 /* dp */
        start local 3 // java.security.DrbgParameters$NextBytes dp
         5: .line 353
            aload 1 /* result */
            arraylength
            pop
         6: .line 360
            aload 3 /* dp */
            invokevirtual java.security.DrbgParameters$NextBytes.getStrength:()I
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.securityStrength:I
            if_icmple 10
         7: .line 361
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "strength too high: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 362
            aload 3 /* dp */
            invokevirtual java.security.DrbgParameters$NextBytes.getStrength:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 361
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 366
      StackMap locals: java.security.DrbgParameters$NextBytes
      StackMap stack:
            aload 3 /* dp */
            invokevirtual java.security.DrbgParameters$NextBytes.getAdditionalInput:()[B
            astore 4 /* ai */
        start local 4 // byte[] ai
        11: .line 367
            aload 4 /* ai */
            ifnull 15
            aload 4 /* ai */
            arraylength
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.maxAdditionalInputLength:I
            if_icmple 15
        12: .line 368
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "ai too long: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 369
            aload 4 /* ai */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 368
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 373
      StackMap locals: byte[]
      StackMap stack:
            aload 3 /* dp */
            invokevirtual java.security.DrbgParameters$NextBytes.getPredictionResistance:()Z
            istore 5 /* pr */
        start local 5 // boolean pr
        16: .line 374
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
            ifne 18
            iload 5 /* pr */
            ifeq 18
        17: .line 375
            new java.lang.IllegalArgumentException
            dup
            ldc "pr not available"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 378
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.provider.AbstractDrbg.instantiateIfNecessary:([B)V
        19: .line 382
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.reseedCounter:I
            iflt 20
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.reseedCounter:I
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.reseedInterval:I
            if_icmpgt 20
            iload 5 /* pr */
            ifeq 29
        20: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 6
            monitorenter
        21: .line 384
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.reseedCounter:I
            iflt 23
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.reseedCounter:I
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.reseedInterval:I
            if_icmpgt 23
        22: .line 385
            iload 5 /* pr */
            ifeq 25
        23: .line 386
      StackMap locals: sun.security.provider.AbstractDrbg
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            iload 5 /* pr */
            invokevirtual sun.security.provider.AbstractDrbg.getEntropyInput:(Z)[B
            aload 4 /* ai */
            invokevirtual sun.security.provider.AbstractDrbg.reseedAlgorithm:([B[B)V
        24: .line 387
            aconst_null
            astore 4 /* ai */
        25: .line 383
      StackMap locals:
      StackMap stack:
            aload 6
            monitorexit
        26: goto 29
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: aload 6
            monitorexit
        28: athrow
        29: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* result */
            aload 4 /* ai */
            invokevirtual sun.security.provider.AbstractDrbg.generateAlgorithm:([B[B)V
        end local 5 // boolean pr
        end local 4 // byte[] ai
        end local 3 // java.security.DrbgParameters$NextBytes dp
        30: .line 397
            goto 34
        31: .line 398
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unknown params type:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        32: .line 399
            aload 2 /* params */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        33: .line 398
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        34: .line 401
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.security.SecureRandomParameters params
        end local 1 // byte[] result
        end local 0 // sun.security.provider.AbstractDrbg this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   35     0    this  Lsun/security/provider/AbstractDrbg;
            0   35     1  result  [B
            0   35     2  params  Ljava/security/SecureRandomParameters;
            5   30     3      dp  Ljava/security/DrbgParameters$NextBytes;
           11   30     4      ai  [B
           16   30     5      pr  Z
      Exception table:
        from    to  target  type
          21    26      27  any
          27    28      27  any
    MethodParameters:
        Name  Flags
      result  
      params  

  public final void engineReseed(java.security.SecureRandomParameters);
    descriptor: (Ljava/security/SecureRandomParameters;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.security.provider.AbstractDrbg this
        start local 1 // java.security.SecureRandomParameters params
         0: .line 404
            getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
            ifnull 2
         1: .line 405
            getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
            aload 0 /* this */
            ldc "reseed with params"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 407
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.supportReseeding:Z
            ifne 4
         3: .line 408
            new java.lang.UnsupportedOperationException
            dup
            ldc "Reseed not supported"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 410
      StackMap locals:
      StackMap stack:
            aload 1 /* params */
            ifnonnull 6
         5: .line 411
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
            aconst_null
            invokestatic java.security.DrbgParameters.reseed:(Z[B)Ljava/security/DrbgParameters$Reseed;
            astore 1 /* params */
         6: .line 413
      StackMap locals:
      StackMap stack:
            aload 1 /* params */
            instanceof java.security.DrbgParameters$Reseed
            ifeq 19
         7: .line 414
            aload 1 /* params */
            checkcast java.security.DrbgParameters$Reseed
            astore 2 /* dp */
        start local 2 // java.security.DrbgParameters$Reseed dp
         8: .line 419
            aload 2 /* dp */
            invokevirtual java.security.DrbgParameters$Reseed.getPredictionResistance:()Z
            istore 3 /* pr */
        start local 3 // boolean pr
         9: .line 420
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
            ifne 11
            iload 3 /* pr */
            ifeq 11
        10: .line 421
            new java.lang.IllegalArgumentException
            dup
            ldc "pr not available"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 425
      StackMap locals: java.security.DrbgParameters$Reseed int
      StackMap stack:
            aload 2 /* dp */
            invokevirtual java.security.DrbgParameters$Reseed.getAdditionalInput:()[B
            astore 4 /* ai */
        start local 4 // byte[] ai
        12: .line 426
            aload 4 /* ai */
            ifnull 16
            aload 4 /* ai */
            arraylength
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.maxAdditionalInputLength:I
            if_icmple 16
        13: .line 427
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "ai too long: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 428
            aload 4 /* ai */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 427
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 430
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.provider.AbstractDrbg.instantiateIfNecessary:([B)V
        17: .line 435
            aload 0 /* this */
            aload 0 /* this */
            iload 3 /* pr */
            invokevirtual sun.security.provider.AbstractDrbg.getEntropyInput:(Z)[B
            aload 4 /* ai */
            invokevirtual sun.security.provider.AbstractDrbg.reseedAlgorithm:([B[B)V
        end local 4 // byte[] ai
        end local 3 // boolean pr
        end local 2 // java.security.DrbgParameters$Reseed dp
        18: .line 438
            goto 22
        19: .line 439
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unknown params type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        20: .line 440
            aload 1 /* params */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 439
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 442
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.security.SecureRandomParameters params
        end local 0 // sun.security.provider.AbstractDrbg this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   23     0    this  Lsun/security/provider/AbstractDrbg;
            0   23     1  params  Ljava/security/SecureRandomParameters;
            8   18     2      dp  Ljava/security/DrbgParameters$Reseed;
            9   18     3      pr  Z
           12   18     4      ai  [B
    MethodParameters:
        Name  Flags
      params  

  public final byte[] engineGenerateSeed(int);
    descriptor: (I)[B
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // sun.security.provider.AbstractDrbg this
        start local 1 // int numBytes
         0: .line 455
            iload 1 /* numBytes */
            newarray 8
            astore 2 /* b */
        start local 2 // byte[] b
         1: .line 456
            aload 2 /* b */
            invokestatic sun.security.provider.SeedGenerator.generateSeed:([B)V
         2: .line 457
            aload 2 /* b */
            areturn
        end local 2 // byte[] b
        end local 1 // int numBytes
        end local 0 // sun.security.provider.AbstractDrbg this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lsun/security/provider/AbstractDrbg;
            0    3     1  numBytes  I
            1    3     2         b  [B
    MethodParameters:
          Name  Flags
      numBytes  

  public final synchronized void engineSetSeed(byte[]);
    descriptor: ([B)V
    flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.provider.AbstractDrbg this
        start local 1 // byte[] input
         0: .line 469
            getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
            ifnull 2
         1: .line 470
            getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
            aload 0 /* this */
            ldc "setSeed"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 472
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            arraylength
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.minLength:I
            if_icmpge 5
         3: .line 473
            aload 1 /* input */
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.minLength:I
            invokestatic java.util.Arrays.copyOf:([BI)[B
            astore 1 /* input */
         4: .line 474
            goto 7
      StackMap locals:
      StackMap stack:
         5: aload 1 /* input */
            arraylength
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.maxLength:I
            if_icmple 7
         6: .line 475
            aload 1 /* input */
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.maxLength:I
            invokestatic java.util.Arrays.copyOf:([BI)[B
            astore 1 /* input */
         7: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.instantiated:Z
            ifne 10
         8: .line 478
            aload 0 /* this */
            aload 1 /* input */
            invokevirtual sun.security.provider.AbstractDrbg.instantiateIfNecessary:([B)V
         9: .line 479
            goto 11
        10: .line 480
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* input */
            aconst_null
            invokevirtual sun.security.provider.AbstractDrbg.reseedAlgorithm:([B[B)V
        11: .line 482
      StackMap locals:
      StackMap stack:
            return
        end local 1 // byte[] input
        end local 0 // sun.security.provider.AbstractDrbg this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lsun/security/provider/AbstractDrbg;
            0   12     1  input  [B
    MethodParameters:
       Name  Flags
      input  

  private byte[] getEntropyInput(boolean);
    descriptor: (Z)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // sun.security.provider.AbstractDrbg this
        start local 1 // boolean isPr
         0: .line 494
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.minLength:I
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.minLength:I
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.maxLength:I
            iload 1 /* isPr */
            invokevirtual sun.security.provider.AbstractDrbg.getEntropyInput:(IIIZ)[B
            areturn
        end local 1 // boolean isPr
        end local 0 // sun.security.provider.AbstractDrbg this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/provider/AbstractDrbg;
            0    1     1  isPr  Z
    MethodParameters:
      Name  Flags
      isPr  

  private byte[] getEntropyInput(int, int, int, boolean);
    descriptor: (IIIZ)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // sun.security.provider.AbstractDrbg this
        start local 1 // int minEntropy
        start local 2 // int minLength
        start local 3 // int maxLength
        start local 4 // boolean pr
         0: .line 499
            getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
            ifnull 4
         1: .line 500
            getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "getEntropy("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* minEntropy */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* minLength */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         2: .line 501
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* maxLength */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* pr */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 500
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/Object;Ljava/lang/String;)V
         4: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.es:Lsun/security/provider/EntropySource;
            astore 5 /* esNow */
        start local 5 // sun.security.provider.EntropySource esNow
         5: .line 504
            aload 5 /* esNow */
            ifnonnull 9
         6: .line 505
            iload 4 /* pr */
            ifeq 7
            getstatic sun.security.provider.AbstractDrbg$SeederHolder.prseeder:Lsun/security/provider/EntropySource;
            goto 8
      StackMap locals: sun.security.provider.EntropySource
      StackMap stack:
         7: getstatic sun.security.provider.AbstractDrbg$SeederHolder.seeder:Lsun/security/provider/EntropySource;
      StackMap locals:
      StackMap stack: sun.security.provider.EntropySource
         8: astore 5 /* esNow */
         9: .line 507
      StackMap locals:
      StackMap stack:
            aload 5 /* esNow */
            iload 1 /* minEntropy */
            iload 2 /* minLength */
            iload 3 /* maxLength */
            iload 4 /* pr */
            invokeinterface sun.security.provider.EntropySource.getEntropy:(IIIZ)[B
            areturn
        end local 5 // sun.security.provider.EntropySource esNow
        end local 4 // boolean pr
        end local 3 // int maxLength
        end local 2 // int minLength
        end local 1 // int minEntropy
        end local 0 // sun.security.provider.AbstractDrbg this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lsun/security/provider/AbstractDrbg;
            0   10     1  minEntropy  I
            0   10     2   minLength  I
            0   10     3   maxLength  I
            0   10     4          pr  Z
            5   10     5       esNow  Lsun/security/provider/EntropySource;
    MethodParameters:
            Name  Flags
      minEntropy  
      minLength   
      maxLength   
      pr          

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.provider.AbstractDrbg this
         0: .line 570
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 74
            aload 0 /* this */
            iconst_0
            putfield sun.security.provider.AbstractDrbg.instantiated:Z
         2: .line 83
            aload 0 /* this */
            iconst_0
            putfield sun.security.provider.AbstractDrbg.reseedCounter:I
         3: .line 100
            aload 0 /* this */
            ldc "DRBG"
            putfield sun.security.provider.AbstractDrbg.mechName:Ljava/lang/String;
         4: .line 107
            aload 0 /* this */
            sipush 256
            putfield sun.security.provider.AbstractDrbg.highestSupportedSecurityStrength:I
         5: .line 113
            aload 0 /* this */
            iconst_1
            putfield sun.security.provider.AbstractDrbg.supportPredictionResistance:Z
         6: .line 119
            aload 0 /* this */
            iconst_1
            putfield sun.security.provider.AbstractDrbg.supportReseeding:Z
         7: .line 141
            aload 0 /* this */
            ldc 2147483647
            putfield sun.security.provider.AbstractDrbg.maxLength:I
         8: .line 148
            aload 0 /* this */
            ldc 2147483647
            putfield sun.security.provider.AbstractDrbg.maxPersonalizationStringLength:I
         9: .line 155
            aload 0 /* this */
            ldc 2147483647
            putfield sun.security.provider.AbstractDrbg.maxAdditionalInputLength:I
        10: .line 162
            aload 0 /* this */
            ldc 2147483647
            putfield sun.security.provider.AbstractDrbg.maxNumberOfBytesPerRequest:I
        11: .line 169
            aload 0 /* this */
            ldc 2147483647
            putfield sun.security.provider.AbstractDrbg.reseedInterval:I
        12: .line 193
            aload 0 /* this */
            iconst_m1
            putfield sun.security.provider.AbstractDrbg.requestedInstantiationSecurityStrength:I
        13: .line 572
            return
        end local 0 // sun.security.provider.AbstractDrbg this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lsun/security/provider/AbstractDrbg;

  protected void <init>(java.security.SecureRandomParameters);
    descriptor: (Ljava/security/SecureRandomParameters;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.provider.AbstractDrbg this
        start local 1 // java.security.SecureRandomParameters params
         0: .line 586
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 74
            aload 0 /* this */
            iconst_0
            putfield sun.security.provider.AbstractDrbg.instantiated:Z
         2: .line 83
            aload 0 /* this */
            iconst_0
            putfield sun.security.provider.AbstractDrbg.reseedCounter:I
         3: .line 100
            aload 0 /* this */
            ldc "DRBG"
            putfield sun.security.provider.AbstractDrbg.mechName:Ljava/lang/String;
         4: .line 107
            aload 0 /* this */
            sipush 256
            putfield sun.security.provider.AbstractDrbg.highestSupportedSecurityStrength:I
         5: .line 113
            aload 0 /* this */
            iconst_1
            putfield sun.security.provider.AbstractDrbg.supportPredictionResistance:Z
         6: .line 119
            aload 0 /* this */
            iconst_1
            putfield sun.security.provider.AbstractDrbg.supportReseeding:Z
         7: .line 141
            aload 0 /* this */
            ldc 2147483647
            putfield sun.security.provider.AbstractDrbg.maxLength:I
         8: .line 148
            aload 0 /* this */
            ldc 2147483647
            putfield sun.security.provider.AbstractDrbg.maxPersonalizationStringLength:I
         9: .line 155
            aload 0 /* this */
            ldc 2147483647
            putfield sun.security.provider.AbstractDrbg.maxAdditionalInputLength:I
        10: .line 162
            aload 0 /* this */
            ldc 2147483647
            putfield sun.security.provider.AbstractDrbg.maxNumberOfBytesPerRequest:I
        11: .line 169
            aload 0 /* this */
            ldc 2147483647
            putfield sun.security.provider.AbstractDrbg.reseedInterval:I
        12: .line 193
            aload 0 /* this */
            iconst_m1
            putfield sun.security.provider.AbstractDrbg.requestedInstantiationSecurityStrength:I
        13: .line 588
            return
        end local 1 // java.security.SecureRandomParameters params
        end local 0 // sun.security.provider.AbstractDrbg this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Lsun/security/provider/AbstractDrbg;
            0   14     1  params  Ljava/security/SecureRandomParameters;
    MethodParameters:
        Name  Flags
      params  

  protected java.security.SecureRandomParameters engineGetParameters();
    descriptor: ()Ljava/security/SecureRandomParameters;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.provider.AbstractDrbg this
         0: .line 599
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.securityStrength:I
         1: .line 600
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
            ifeq 2
            getstatic java.security.DrbgParameters$Capability.PR_AND_RESEED:Ljava/security/DrbgParameters$Capability;
            goto 4
         2: .line 601
      StackMap locals:
      StackMap stack: int
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.supportReseeding:Z
            ifeq 3
            getstatic java.security.DrbgParameters$Capability.RESEED_ONLY:Ljava/security/DrbgParameters$Capability;
            goto 4
      StackMap locals:
      StackMap stack: int
         3: getstatic java.security.DrbgParameters$Capability.NONE:Ljava/security/DrbgParameters$Capability;
         4: .line 602
      StackMap locals: sun.security.provider.AbstractDrbg
      StackMap stack: int java.security.DrbgParameters$Capability
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.personalizationString:[B
         5: .line 598
            invokestatic java.security.DrbgParameters.instantiation:(ILjava/security/DrbgParameters$Capability;[B)Ljava/security/DrbgParameters$Instantiation;
            areturn
        end local 0 // sun.security.provider.AbstractDrbg this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/security/provider/AbstractDrbg;

  protected final void configure(java.security.SecureRandomParameters);
    descriptor: (Ljava/security/SecureRandomParameters;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // sun.security.provider.AbstractDrbg this
        start local 1 // java.security.SecureRandomParameters params
         0: .line 616
            getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
            ifnull 2
         1: .line 617
            getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "configure "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " with "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* params */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 619
      StackMap locals:
      StackMap stack:
            aload 1 /* params */
            ifnonnull 4
         3: .line 620
            iconst_m1
            getstatic java.security.DrbgParameters$Capability.RESEED_ONLY:Ljava/security/DrbgParameters$Capability;
            aconst_null
            invokestatic java.security.DrbgParameters.instantiation:(ILjava/security/DrbgParameters$Capability;[B)Ljava/security/DrbgParameters$Instantiation;
            astore 1 /* params */
         4: .line 622
      StackMap locals:
      StackMap stack:
            aload 1 /* params */
            instanceof sun.security.provider.MoreDrbgParameters
            ifeq 13
         5: .line 623
            aload 1 /* params */
            checkcast sun.security.provider.MoreDrbgParameters
            astore 2 /* m */
        start local 2 // sun.security.provider.MoreDrbgParameters m
         6: .line 624
            aload 0 /* this */
            aload 2 /* m */
            getfield sun.security.provider.MoreDrbgParameters.nonce:[B
            putfield sun.security.provider.AbstractDrbg.requestedNonce:[B
         7: .line 625
            aload 0 /* this */
            aload 2 /* m */
            getfield sun.security.provider.MoreDrbgParameters.es:Lsun/security/provider/EntropySource;
            putfield sun.security.provider.AbstractDrbg.es:Lsun/security/provider/EntropySource;
         8: .line 626
            aload 0 /* this */
            aload 2 /* m */
            getfield sun.security.provider.MoreDrbgParameters.algorithm:Ljava/lang/String;
            putfield sun.security.provider.AbstractDrbg.requestedAlgorithm:Ljava/lang/String;
         9: .line 627
            aload 0 /* this */
            aload 2 /* m */
            getfield sun.security.provider.MoreDrbgParameters.usedf:Z
            putfield sun.security.provider.AbstractDrbg.usedf:Z
        10: .line 628
            aload 2 /* m */
            getfield sun.security.provider.MoreDrbgParameters.strength:I
        11: .line 629
            aload 2 /* m */
            getfield sun.security.provider.MoreDrbgParameters.capability:Ljava/security/DrbgParameters$Capability;
            aload 2 /* m */
            getfield sun.security.provider.MoreDrbgParameters.personalizationString:[B
        12: .line 628
            invokestatic java.security.DrbgParameters.instantiation:(ILjava/security/DrbgParameters$Capability;[B)Ljava/security/DrbgParameters$Instantiation;
            astore 1 /* params */
        end local 2 // sun.security.provider.MoreDrbgParameters m
        13: .line 631
      StackMap locals:
      StackMap stack:
            aload 1 /* params */
            ifnull 41
        14: .line 632
            aload 1 /* params */
            instanceof java.security.DrbgParameters$Instantiation
            ifeq 38
        15: .line 634
            aload 1 /* params */
            checkcast java.security.DrbgParameters$Instantiation
        16: .line 633
            astore 2 /* inst */
        start local 2 // java.security.DrbgParameters$Instantiation inst
        17: .line 639
            aload 2 /* inst */
            invokevirtual java.security.DrbgParameters$Instantiation.getStrength:()I
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.highestSupportedSecurityStrength:I
            if_icmple 21
        18: .line 640
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "strength too big: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        19: .line 641
            aload 2 /* inst */
            invokevirtual java.security.DrbgParameters$Instantiation.getStrength:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 640
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 645
      StackMap locals: java.security.DrbgParameters$Instantiation
      StackMap stack:
            aload 2 /* inst */
            invokevirtual java.security.DrbgParameters$Instantiation.getCapability:()Ljava/security/DrbgParameters$Capability;
            invokevirtual java.security.DrbgParameters$Capability.supportsPredictionResistance:()Z
            ifeq 24
        22: .line 646
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.supportPredictionResistance:Z
            ifne 24
        23: .line 647
            new java.lang.IllegalArgumentException
            dup
            ldc "pr not supported"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 651
      StackMap locals:
      StackMap stack:
            aload 2 /* inst */
            invokevirtual java.security.DrbgParameters$Instantiation.getPersonalizationString:()[B
            astore 3 /* ps */
        start local 3 // byte[] ps
        25: .line 652
            aload 3 /* ps */
            ifnull 29
            aload 3 /* ps */
            arraylength
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.maxPersonalizationStringLength:I
            if_icmple 29
        26: .line 653
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "ps too long: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        27: .line 654
            aload 3 /* ps */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        28: .line 653
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 657
      StackMap locals: byte[]
      StackMap stack:
            aload 2 /* inst */
            invokevirtual java.security.DrbgParameters$Instantiation.getCapability:()Ljava/security/DrbgParameters$Capability;
            invokevirtual java.security.DrbgParameters$Capability.supportsReseeding:()Z
            ifeq 32
        30: .line 658
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.supportReseeding:Z
            ifne 32
        31: .line 659
            new java.lang.IllegalArgumentException
            dup
            ldc "reseed not supported"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        32: .line 661
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* ps */
            putfield sun.security.provider.AbstractDrbg.personalizationString:[B
        33: .line 662
            aload 0 /* this */
        34: .line 663
            aload 2 /* inst */
            invokevirtual java.security.DrbgParameters$Instantiation.getCapability:()Ljava/security/DrbgParameters$Capability;
            invokevirtual java.security.DrbgParameters$Capability.supportsPredictionResistance:()Z
        35: .line 662
            putfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
        36: .line 664
            aload 0 /* this */
            aload 2 /* inst */
            invokevirtual java.security.DrbgParameters$Instantiation.getStrength:()I
            putfield sun.security.provider.AbstractDrbg.requestedInstantiationSecurityStrength:I
        end local 3 // byte[] ps
        end local 2 // java.security.DrbgParameters$Instantiation inst
        37: .line 665
            goto 41
        38: .line 666
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unknown params: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        39: .line 667
            aload 1 /* params */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        40: .line 666
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        41: .line 672
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.provider.AbstractDrbg.chooseAlgorithmAndStrength:()V
        42: .line 673
            aload 0 /* this */
            iconst_0
            putfield sun.security.provider.AbstractDrbg.instantiated:Z
        43: .line 677
            getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
            ifnull 45
        44: .line 678
            getstatic sun.security.provider.AbstractDrbg.debug:Lsun/security/util/Debug;
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "configured "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/Object;Ljava/lang/String;)V
        45: .line 680
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.security.SecureRandomParameters params
        end local 0 // sun.security.provider.AbstractDrbg this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   46     0    this  Lsun/security/provider/AbstractDrbg;
            0   46     1  params  Ljava/security/SecureRandomParameters;
            6   13     2       m  Lsun/security/provider/MoreDrbgParameters;
           17   37     2    inst  Ljava/security/DrbgParameters$Instantiation;
           25   37     3      ps  [B
    MethodParameters:
        Name  Flags
      params  

  private synchronized void instantiateIfNecessary(byte[]);
    descriptor: ([B)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.provider.AbstractDrbg this
        start local 1 // byte[] entropy
         0: .line 689
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.instantiated:Z
            ifne 10
         1: .line 695
            aload 1 /* entropy */
            ifnonnull 3
         2: .line 696
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
            invokevirtual sun.security.provider.AbstractDrbg.getEntropyInput:(Z)[B
            astore 1 /* entropy */
         3: .line 700
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.requestedNonce:[B
            ifnull 6
         4: .line 701
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.requestedNonce:[B
            putfield sun.security.provider.AbstractDrbg.nonce:[B
         5: .line 702
            goto 7
         6: .line 703
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic sun.security.provider.AbstractDrbg$NonceProvider.next:()[B
            putfield sun.security.provider.AbstractDrbg.nonce:[B
         7: .line 705
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.provider.AbstractDrbg.initEngine:()V
         8: .line 708
            aload 0 /* this */
            aload 1 /* entropy */
            invokevirtual sun.security.provider.AbstractDrbg.instantiateAlgorithm:([B)V
         9: .line 709
            aload 0 /* this */
            iconst_1
            putfield sun.security.provider.AbstractDrbg.instantiated:Z
        10: .line 713
      StackMap locals:
      StackMap stack:
            return
        end local 1 // byte[] entropy
        end local 0 // sun.security.provider.AbstractDrbg this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lsun/security/provider/AbstractDrbg;
            0   11     1  entropy  [B
    MethodParameters:
         Name  Flags
      entropy  

  protected static java.lang.String hex(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // byte[] in
         0: .line 739
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 740
            aload 0 /* in */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: byte[] java.lang.StringBuilder top int int byte[]
      StackMap stack:
         2: aload 5
            iload 3
            baload
            istore 2 /* b */
        start local 2 // byte b
         3: .line 741
            aload 1 /* sb */
            ldc "%02x"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 2 /* b */
            sipush 255
            iand
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 2 // byte b
         4: .line 740
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 743
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // byte[] in
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0    in  [B
            1    7     1    sb  Ljava/lang/StringBuilder;
            3    4     2     b  B
    MethodParameters:
      Name  Flags
      in    

  protected static int getStandardStrength(int);
    descriptor: (I)I
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // int input
         0: .line 754
            iload 0 /* input */
            bipush 112
            if_icmpgt 1
            bipush 112
            ireturn
         1: .line 755
      StackMap locals:
      StackMap stack:
            iload 0 /* input */
            sipush 128
            if_icmpgt 2
            sipush 128
            ireturn
         2: .line 756
      StackMap locals:
      StackMap stack:
            iload 0 /* input */
            sipush 192
            if_icmpgt 3
            sipush 192
            ireturn
         3: .line 757
      StackMap locals:
      StackMap stack:
            iload 0 /* input */
            sipush 256
            if_icmpgt 4
            sipush 256
            ireturn
         4: .line 758
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "input too big: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* input */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // int input
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  input  I
    MethodParameters:
       Name  Flags
      input  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.provider.AbstractDrbg this
         0: .line 763
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.mechName:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.algorithm:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 764
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.securityStrength:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 765
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.predictionResistanceFlag:Z
            ifeq 3
            ldc "pr_and_reseed"
            goto 5
         3: .line 766
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
            aload 0 /* this */
            getfield sun.security.provider.AbstractDrbg.supportReseeding:Z
            ifeq 4
            ldc "reseed_only"
            goto 5
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         4: ldc "none"
         5: .line 765
      StackMap locals: sun.security.provider.AbstractDrbg
      StackMap stack: java.lang.StringBuilder java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 763
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // sun.security.provider.AbstractDrbg this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/provider/AbstractDrbg;

  private static byte[] lambda$0(int, int, int, boolean);
    descriptor: (IIIZ)[B
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=5, args_size=4
        start local 0 // int minE
        start local 1 // int minLen
        start local 2 // int maxLen
        start local 3 // boolean pr
         0: .line 523
            iload 1 /* minLen */
            newarray 8
            astore 4 /* result */
        start local 4 // byte[] result
         1: .line 524
            aload 4 /* result */
            invokestatic sun.security.provider.SeedGenerator.generateSeed:([B)V
         2: .line 525
            aload 4 /* result */
            areturn
        end local 4 // byte[] result
        end local 3 // boolean pr
        end local 2 // int maxLen
        end local 1 // int minLen
        end local 0 // int minE
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    minE  I
            0    3     1  minLen  I
            0    3     2  maxLen  I
            0    3     3      pr  Z
            1    3     4  result  [B
}
SourceFile: "AbstractDrbg.java"
NestMembers:
  sun.security.provider.AbstractDrbg$NonceProvider  sun.security.provider.AbstractDrbg$SeederHolder
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Capability = java.security.DrbgParameters$Capability of java.security.DrbgParameters
  public final Instantiation = java.security.DrbgParameters$Instantiation of java.security.DrbgParameters
  public final NextBytes = java.security.DrbgParameters$NextBytes of java.security.DrbgParameters
  public final Reseed = java.security.DrbgParameters$Reseed of java.security.DrbgParameters
  private NonceProvider = sun.security.provider.AbstractDrbg$NonceProvider of sun.security.provider.AbstractDrbg
  private SeederHolder = sun.security.provider.AbstractDrbg$SeederHolder of sun.security.provider.AbstractDrbg