final class com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor extends com.microsoft.sqlserver.jdbc.TDSTokenHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor
  super_class: com.microsoft.sqlserver.jdbc.TDSTokenHandler
{
  private final com.microsoft.sqlserver.jdbc.SSPIAuthentication auth;
    descriptor: Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  com.microsoft.sqlserver.jdbc.StreamLoginAck loginAckToken;
    descriptor: Lcom/microsoft/sqlserver/jdbc/StreamLoginAck;
    flags: (0x0000) 

  final com.microsoft.sqlserver.jdbc.SQLServerConnection this$0;
    descriptor: Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.microsoft.sqlserver.jdbc.SQLServerConnection, com.microsoft.sqlserver.jdbc.SSPIAuthentication);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor this
        start local 2 // com.microsoft.sqlserver.jdbc.SSPIAuthentication auth
         0: .line 4996
            aload 0 /* this */
            aload 1
            putfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
         1: .line 4997
            aload 0 /* this */
            ldc "logon"
            invokespecial com.microsoft.sqlserver.jdbc.TDSTokenHandler.<init>:(Ljava/lang/String;)V
         2: .line 4993
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.secBlobOut:[B
         3: .line 4998
            aload 0 /* this */
            aload 2 /* auth */
            putfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.auth:Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication;
         4: .line 4999
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.loginAckToken:Lcom/microsoft/sqlserver/jdbc/StreamLoginAck;
         5: .line 5000
            return
        end local 2 // com.microsoft.sqlserver.jdbc.SSPIAuthentication auth
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$1LogonProcessor;
            0    6     2  auth  Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication;
    MethodParameters:
        Name  Flags
      this$0  final
      auth    

  boolean onSSPI(com.microsoft.sqlserver.jdbc.TDSReader);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/TDSReader;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor this
        start local 1 // com.microsoft.sqlserver.jdbc.TDSReader tdsReader
         0: .line 5003
            new com.microsoft.sqlserver.jdbc.StreamSSPI
            dup
            invokespecial com.microsoft.sqlserver.jdbc.StreamSSPI.<init>:()V
            astore 2 /* ack */
        start local 2 // com.microsoft.sqlserver.jdbc.StreamSSPI ack
         1: .line 5004
            aload 2 /* ack */
            aload 1 /* tdsReader */
            invokevirtual com.microsoft.sqlserver.jdbc.StreamSSPI.setFromTDS:(Lcom/microsoft/sqlserver/jdbc/TDSReader;)V
         2: .line 5009
            iconst_1
            newarray 4
            astore 3 /* done */
        start local 3 // boolean[] done
         3: .line 5010
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.auth:Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication;
            aload 2 /* ack */
            getfield com.microsoft.sqlserver.jdbc.StreamSSPI.sspiBlob:[B
            aload 3 /* done */
            invokevirtual com.microsoft.sqlserver.jdbc.SSPIAuthentication.generateClientContext:([B[Z)[B
            putfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.secBlobOut:[B
         4: .line 5011
            iconst_1
            ireturn
        end local 3 // boolean[] done
        end local 2 // com.microsoft.sqlserver.jdbc.StreamSSPI ack
        end local 1 // com.microsoft.sqlserver.jdbc.TDSReader tdsReader
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$1LogonProcessor;
            0    5     1  tdsReader  Lcom/microsoft/sqlserver/jdbc/TDSReader;
            1    5     2        ack  Lcom/microsoft/sqlserver/jdbc/StreamSSPI;
            3    5     3       done  [Z
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
           Name  Flags
      tdsReader  

  boolean onLoginAck(com.microsoft.sqlserver.jdbc.TDSReader);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/TDSReader;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor this
        start local 1 // com.microsoft.sqlserver.jdbc.TDSReader tdsReader
         0: .line 5015
            aload 0 /* this */
            new com.microsoft.sqlserver.jdbc.StreamLoginAck
            dup
            invokespecial com.microsoft.sqlserver.jdbc.StreamLoginAck.<init>:()V
            putfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.loginAckToken:Lcom/microsoft/sqlserver/jdbc/StreamLoginAck;
         1: .line 5016
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.loginAckToken:Lcom/microsoft/sqlserver/jdbc/StreamLoginAck;
            aload 1 /* tdsReader */
            invokevirtual com.microsoft.sqlserver.jdbc.StreamLoginAck.setFromTDS:(Lcom/microsoft/sqlserver/jdbc/TDSReader;)V
         2: .line 5017
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.loginAckToken:Lcom/microsoft/sqlserver/jdbc/StreamLoginAck;
            getfield com.microsoft.sqlserver.jdbc.StreamLoginAck.sSQLServerVersion:Ljava/lang/String;
            putfield com.microsoft.sqlserver.jdbc.SQLServerConnection.sqlServerVersion:Ljava/lang/String;
         3: .line 5018
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.loginAckToken:Lcom/microsoft/sqlserver/jdbc/StreamLoginAck;
            getfield com.microsoft.sqlserver.jdbc.StreamLoginAck.tdsVersion:I
            putfield com.microsoft.sqlserver.jdbc.SQLServerConnection.tdsVersion:I
         4: .line 5019
            iconst_1
            ireturn
        end local 1 // com.microsoft.sqlserver.jdbc.TDSReader tdsReader
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$1LogonProcessor;
            0    5     1  tdsReader  Lcom/microsoft/sqlserver/jdbc/TDSReader;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
           Name  Flags
      tdsReader  

  final boolean complete(com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand, com.microsoft.sqlserver.jdbc.TDSReader);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$LogonCommand;Lcom/microsoft/sqlserver/jdbc/TDSReader;)Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand logonCommand
        start local 2 // com.microsoft.sqlserver.jdbc.TDSReader tdsReader
         0: .line 5024
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.loginAckToken:Lcom/microsoft/sqlserver/jdbc/StreamLoginAck;
            ifnull 2
         1: .line 5025
            iconst_1
            ireturn
         2: .line 5028
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.secBlobOut:[B
            ifnull 5
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.secBlobOut:[B
            arraylength
            ifeq 5
         3: .line 5031
            aload 1 /* logonCommand */
            bipush 17
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.startRequest:(B)Lcom/microsoft/sqlserver/jdbc/TDSWriter;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.secBlobOut:[B
            iconst_0
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.secBlobOut:[B
            arraylength
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeBytes:([BII)V
         4: .line 5032
            iconst_0
            ireturn
         5: .line 5041
      StackMap locals:
      StackMap stack:
            aload 1 /* logonCommand */
            bipush 17
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.startRequest:(B)Lcom/microsoft/sqlserver/jdbc/TDSWriter;
            pop
         6: .line 5042
            aload 1 /* logonCommand */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.onRequestComplete:()V
         7: .line 5043
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            getfield com.microsoft.sqlserver.jdbc.SQLServerConnection.tdsChannel:Lcom/microsoft/sqlserver/jdbc/TDSChannel;
            dup
            getfield com.microsoft.sqlserver.jdbc.TDSChannel.numMsgsSent:I
            iconst_1
            iadd
            putfield com.microsoft.sqlserver.jdbc.TDSChannel.numMsgsSent:I
         8: .line 5045
            aload 2 /* tdsReader */
            aload 0 /* this */
            invokestatic com.microsoft.sqlserver.jdbc.TDSParser.parse:(Lcom/microsoft/sqlserver/jdbc/TDSReader;Lcom/microsoft/sqlserver/jdbc/TDSTokenHandler;)V
         9: .line 5046
            iconst_1
            ireturn
        end local 2 // com.microsoft.sqlserver.jdbc.TDSReader tdsReader
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand logonCommand
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$1LogonProcessor;
            0   10     1  logonCommand  Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$LogonCommand;
            0   10     2     tdsReader  Lcom/microsoft/sqlserver/jdbc/TDSReader;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
              Name  Flags
      logonCommand  
      tdsReader     
}
SourceFile: "SQLServerConnection.java"
EnclosingMethod: com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$LogonCommand;Lcom/microsoft/sqlserver/jdbc/SSPIAuthentication;Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$FederatedAuthenticationFeatureExtensionData;)V
NestHost: com.microsoft.sqlserver.jdbc.SQLServerConnection
InnerClasses:
  final LogonProcessor = com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor
  FederatedAuthenticationFeatureExtensionData = com.microsoft.sqlserver.jdbc.SQLServerConnection$FederatedAuthenticationFeatureExtensionData of com.microsoft.sqlserver.jdbc.SQLServerConnection
  private final LogonCommand = com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand of com.microsoft.sqlserver.jdbc.SQLServerConnection