public class com.sun.security.auth.module.NTLoginModule implements javax.security.auth.spi.LoginModule
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.security.auth.module.NTLoginModule
  super_class: java.lang.Object
{
  private com.sun.security.auth.module.NTSystem ntSystem;
    descriptor: Lcom/sun/security/auth/module/NTSystem;
    flags: (0x0002) ACC_PRIVATE

  private javax.security.auth.Subject subject;
    descriptor: Ljavax/security/auth/Subject;
    flags: (0x0002) ACC_PRIVATE

  private javax.security.auth.callback.CallbackHandler callbackHandler;
    descriptor: Ljavax/security/auth/callback/CallbackHandler;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.String, ?> sharedState;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;*>;

  private java.util.Map<java.lang.String, ?> options;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;*>;

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

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

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

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

  private com.sun.security.auth.NTUserPrincipal userPrincipal;
    descriptor: Lcom/sun/security/auth/NTUserPrincipal;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.security.auth.NTSidUserPrincipal userSID;
    descriptor: Lcom/sun/security/auth/NTSidUserPrincipal;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.security.auth.NTDomainPrincipal userDomain;
    descriptor: Lcom/sun/security/auth/NTDomainPrincipal;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.security.auth.NTSidDomainPrincipal domainSID;
    descriptor: Lcom/sun/security/auth/NTSidDomainPrincipal;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.security.auth.NTSidPrimaryGroupPrincipal primaryGroup;
    descriptor: Lcom/sun/security/auth/NTSidPrimaryGroupPrincipal;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.security.auth.NTSidGroupPrincipal[] groups;
    descriptor: [Lcom/sun/security/auth/NTSidGroupPrincipal;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.security.auth.NTNumericCredential iToken;
    descriptor: Lcom/sun/security/auth/NTNumericCredential;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.security.auth.module.NTLoginModule this
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 71
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.NTLoginModule.debug:Z
         2: .line 72
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.NTLoginModule.debugNative:Z
         3: .line 75
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.NTLoginModule.succeeded:Z
         4: .line 76
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.NTLoginModule.commitSucceeded:Z
         5: .line 60
            return
        end local 0 // com.sun.security.auth.module.NTLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/security/auth/module/NTLoginModule;

  public void initialize(javax.security.auth.Subject, javax.security.auth.callback.CallbackHandler, java.util.Map<java.lang.String, ?>, java.util.Map<java.lang.String, ?>);
    descriptor: (Ljavax/security/auth/Subject;Ljavax/security/auth/callback/CallbackHandler;Ljava/util/Map;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.sun.security.auth.module.NTLoginModule this
        start local 1 // javax.security.auth.Subject subject
        start local 2 // javax.security.auth.callback.CallbackHandler callbackHandler
        start local 3 // java.util.Map sharedState
        start local 4 // java.util.Map options
         0: .line 108
            aload 0 /* this */
            aload 1 /* subject */
            putfield com.sun.security.auth.module.NTLoginModule.subject:Ljavax/security/auth/Subject;
         1: .line 109
            aload 0 /* this */
            aload 2 /* callbackHandler */
            putfield com.sun.security.auth.module.NTLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
         2: .line 110
            aload 0 /* this */
            aload 3 /* sharedState */
            putfield com.sun.security.auth.module.NTLoginModule.sharedState:Ljava/util/Map;
         3: .line 111
            aload 0 /* this */
            aload 4 /* options */
            putfield com.sun.security.auth.module.NTLoginModule.options:Ljava/util/Map;
         4: .line 114
            aload 0 /* this */
            ldc "true"
            aload 4 /* options */
            ldc "debug"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            putfield com.sun.security.auth.module.NTLoginModule.debug:Z
         5: .line 115
            aload 0 /* this */
            ldc "true"
            aload 4 /* options */
            ldc "debugNative"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            putfield com.sun.security.auth.module.NTLoginModule.debugNative:Z
         6: .line 117
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.debugNative:Z
            ifeq 8
         7: .line 118
            aload 0 /* this */
            iconst_1
            putfield com.sun.security.auth.module.NTLoginModule.debug:Z
         8: .line 120
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.util.Map options
        end local 3 // java.util.Map sharedState
        end local 2 // javax.security.auth.callback.CallbackHandler callbackHandler
        end local 1 // javax.security.auth.Subject subject
        end local 0 // com.sun.security.auth.module.NTLoginModule this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lcom/sun/security/auth/module/NTLoginModule;
            0    9     1          subject  Ljavax/security/auth/Subject;
            0    9     2  callbackHandler  Ljavax/security/auth/callback/CallbackHandler;
            0    9     3      sharedState  Ljava/util/Map<Ljava/lang/String;*>;
            0    9     4          options  Ljava/util/Map<Ljava/lang/String;*>;
    Signature: (Ljavax/security/auth/Subject;Ljavax/security/auth/callback/CallbackHandler;Ljava/util/Map<Ljava/lang/String;*>;Ljava/util/Map<Ljava/lang/String;*>;)V
    MethodParameters:
                 Name  Flags
      subject          
      callbackHandler  
      sharedState      
      options          

  public boolean login();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // com.sun.security.auth.module.NTLoginModule this
         0: .line 135
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.NTLoginModule.succeeded:Z
         1: .line 138
            aload 0 /* this */
            new com.sun.security.auth.module.NTSystem
            dup
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.debugNative:Z
            invokespecial com.sun.security.auth.module.NTSystem.<init>:(Z)V
            putfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
         2: .line 139
            goto 11
      StackMap locals:
      StackMap stack: java.lang.UnsatisfiedLinkError
         3: pop
         4: .line 140
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.debug:Z
            ifeq 6
         5: .line 141
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "\t\t[NTLoginModule] Failed in NT login"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 144
      StackMap locals:
      StackMap stack:
            new javax.security.auth.login.FailedLoginException
            dup
         7: .line 145
            new java.lang.StringBuilder
            dup
            ldc "Failed in attempt to import the underlying NT system identity information on "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 147
            ldc "os.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 145
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 144
            invokespecial javax.security.auth.login.FailedLoginException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getName:()Ljava/lang/String;
            ifnonnull 15
        12: .line 151
            new javax.security.auth.login.FailedLoginException
            dup
        13: .line 152
            ldc "Failed in attempt to import the underlying NT system identity information"
        14: .line 151
            invokespecial javax.security.auth.login.FailedLoginException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.sun.security.auth.NTUserPrincipal
            dup
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getName:()Ljava/lang/String;
            invokespecial com.sun.security.auth.NTUserPrincipal.<init>:(Ljava/lang/String;)V
            putfield com.sun.security.auth.module.NTLoginModule.userPrincipal:Lcom/sun/security/auth/NTUserPrincipal;
        16: .line 156
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.debug:Z
            ifeq 21
        17: .line 157
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "\t\t[NTLoginModule] succeeded importing info: "
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        18: .line 159
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\t\t\tuser name = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        19: .line 160
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userPrincipal:Lcom/sun/security/auth/NTUserPrincipal;
            invokevirtual com.sun.security.auth.NTUserPrincipal.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 159
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        21: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getUserSID:()Ljava/lang/String;
            ifnull 27
        22: .line 164
            aload 0 /* this */
            new com.sun.security.auth.NTSidUserPrincipal
            dup
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getUserSID:()Ljava/lang/String;
            invokespecial com.sun.security.auth.NTSidUserPrincipal.<init>:(Ljava/lang/String;)V
            putfield com.sun.security.auth.module.NTLoginModule.userSID:Lcom/sun/security/auth/NTSidUserPrincipal;
        23: .line 165
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.debug:Z
            ifeq 27
        24: .line 166
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\t\t\tuser SID = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        25: .line 167
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userSID:Lcom/sun/security/auth/NTSidUserPrincipal;
            invokevirtual com.sun.security.auth.NTSidUserPrincipal.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 166
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        27: .line 170
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getDomain:()Ljava/lang/String;
            ifnull 33
        28: .line 171
            aload 0 /* this */
            new com.sun.security.auth.NTDomainPrincipal
            dup
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getDomain:()Ljava/lang/String;
            invokespecial com.sun.security.auth.NTDomainPrincipal.<init>:(Ljava/lang/String;)V
            putfield com.sun.security.auth.module.NTLoginModule.userDomain:Lcom/sun/security/auth/NTDomainPrincipal;
        29: .line 172
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.debug:Z
            ifeq 33
        30: .line 173
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\t\t\tuser domain = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        31: .line 174
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userDomain:Lcom/sun/security/auth/NTDomainPrincipal;
            invokevirtual com.sun.security.auth.NTDomainPrincipal.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        32: .line 173
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        33: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getDomainSID:()Ljava/lang/String;
            ifnull 41
        34: .line 178
            aload 0 /* this */
        35: .line 179
            new com.sun.security.auth.NTSidDomainPrincipal
            dup
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getDomainSID:()Ljava/lang/String;
            invokespecial com.sun.security.auth.NTSidDomainPrincipal.<init>:(Ljava/lang/String;)V
        36: .line 178
            putfield com.sun.security.auth.module.NTLoginModule.domainSID:Lcom/sun/security/auth/NTSidDomainPrincipal;
        37: .line 180
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.debug:Z
            ifeq 41
        38: .line 181
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\t\t\tuser domain SID = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        39: .line 182
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.domainSID:Lcom/sun/security/auth/NTSidDomainPrincipal;
            invokevirtual com.sun.security.auth.NTSidDomainPrincipal.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        40: .line 181
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        41: .line 185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getPrimaryGroupID:()Ljava/lang/String;
            ifnull 49
        42: .line 186
            aload 0 /* this */
        43: .line 187
            new com.sun.security.auth.NTSidPrimaryGroupPrincipal
            dup
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getPrimaryGroupID:()Ljava/lang/String;
            invokespecial com.sun.security.auth.NTSidPrimaryGroupPrincipal.<init>:(Ljava/lang/String;)V
        44: .line 186
            putfield com.sun.security.auth.module.NTLoginModule.primaryGroup:Lcom/sun/security/auth/NTSidPrimaryGroupPrincipal;
        45: .line 188
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.debug:Z
            ifeq 49
        46: .line 189
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\t\t\tuser primary group = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        47: .line 190
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.primaryGroup:Lcom/sun/security/auth/NTSidPrimaryGroupPrincipal;
            invokevirtual com.sun.security.auth.NTSidPrimaryGroupPrincipal.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        48: .line 189
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        49: .line 193
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getGroupIDs:()[Ljava/lang/String;
            ifnull 62
        50: .line 194
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getGroupIDs:()[Ljava/lang/String;
            arraylength
            ifle 62
        51: .line 196
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getGroupIDs:()[Ljava/lang/String;
            astore 1 /* groupSIDs */
        start local 1 // java.lang.String[] groupSIDs
        52: .line 197
            aload 0 /* this */
            aload 1 /* groupSIDs */
            arraylength
            anewarray com.sun.security.auth.NTSidGroupPrincipal
            putfield com.sun.security.auth.module.NTLoginModule.groups:[Lcom/sun/security/auth/NTSidGroupPrincipal;
        53: .line 198
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        54: goto 61
        55: .line 199
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.groups:[Lcom/sun/security/auth/NTSidGroupPrincipal;
            iload 2 /* i */
            new com.sun.security.auth.NTSidGroupPrincipal
            dup
            aload 1 /* groupSIDs */
            iload 2 /* i */
            aaload
            invokespecial com.sun.security.auth.NTSidGroupPrincipal.<init>:(Ljava/lang/String;)V
            aastore
        56: .line 200
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.debug:Z
            ifeq 60
        57: .line 201
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\t\t\tuser group = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        58: .line 202
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.groups:[Lcom/sun/security/auth/NTSidGroupPrincipal;
            iload 2 /* i */
            aaload
            invokevirtual com.sun.security.auth.NTSidGroupPrincipal.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        59: .line 201
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        60: .line 198
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        61: iload 2 /* i */
            aload 1 /* groupSIDs */
            arraylength
            if_icmplt 55
        end local 2 // int i
        end local 1 // java.lang.String[] groupSIDs
        62: .line 206
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getImpersonationToken:()J
            lconst_0
            lcmp
            ifeq 68
        63: .line 207
            aload 0 /* this */
            new com.sun.security.auth.NTNumericCredential
            dup
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getImpersonationToken:()J
            invokespecial com.sun.security.auth.NTNumericCredential.<init>:(J)V
            putfield com.sun.security.auth.module.NTLoginModule.iToken:Lcom/sun/security/auth/NTNumericCredential;
        64: .line 208
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.debug:Z
            ifeq 68
        65: .line 209
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "\t\t\timpersonation token = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        66: .line 210
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
            invokevirtual com.sun.security.auth.module.NTSystem.getImpersonationToken:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        67: .line 209
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        68: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.security.auth.module.NTLoginModule.succeeded:Z
        69: .line 215
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.succeeded:Z
            ireturn
        end local 0 // com.sun.security.auth.module.NTLoginModule this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   70     0       this  Lcom/sun/security/auth/module/NTLoginModule;
           52   62     1  groupSIDs  [Ljava/lang/String;
           54   62     2          i  I
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.UnsatisfiedLinkError
    Exceptions:
      throws javax.security.auth.login.LoginException

  public boolean commit();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.sun.security.auth.module.NTLoginModule this
         0: .line 239
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.succeeded:Z
            ifne 4
         1: .line 240
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.debug:Z
            ifeq 3
         2: .line 241
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "\t\t[NTLoginModule]: did not add any Principals to Subject because own authentication failed."
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 245
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.isReadOnly:()Z
            ifeq 6
         5: .line 248
            new javax.security.auth.login.LoginException
            dup
            ldc "Subject is ReadOnly"
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
            astore 1 /* principals */
        start local 1 // java.util.Set principals
         7: .line 253
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userPrincipal:Lcom/sun/security/auth/NTUserPrincipal;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 254
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userPrincipal:Lcom/sun/security/auth/NTUserPrincipal;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 256
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userSID:Lcom/sun/security/auth/NTSidUserPrincipal;
            ifnull 11
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userSID:Lcom/sun/security/auth/NTSidUserPrincipal;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 11
        10: .line 257
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userSID:Lcom/sun/security/auth/NTSidUserPrincipal;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        11: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userDomain:Lcom/sun/security/auth/NTDomainPrincipal;
            ifnull 13
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userDomain:Lcom/sun/security/auth/NTDomainPrincipal;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 13
        12: .line 261
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userDomain:Lcom/sun/security/auth/NTDomainPrincipal;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.domainSID:Lcom/sun/security/auth/NTSidDomainPrincipal;
            ifnull 15
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.domainSID:Lcom/sun/security/auth/NTSidDomainPrincipal;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 15
        14: .line 264
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.domainSID:Lcom/sun/security/auth/NTSidDomainPrincipal;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        15: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.primaryGroup:Lcom/sun/security/auth/NTSidPrimaryGroupPrincipal;
            ifnull 17
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.primaryGroup:Lcom/sun/security/auth/NTSidPrimaryGroupPrincipal;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 17
        16: .line 268
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.primaryGroup:Lcom/sun/security/auth/NTSidPrimaryGroupPrincipal;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        17: .line 270
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        18: goto 22
        19: .line 271
      StackMap locals: int
      StackMap stack:
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.groups:[Lcom/sun/security/auth/NTSidGroupPrincipal;
            iload 2 /* i */
            aaload
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 21
        20: .line 272
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.groups:[Lcom/sun/security/auth/NTSidGroupPrincipal;
            iload 2 /* i */
            aaload
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        21: .line 270
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.groups:[Lcom/sun/security/auth/NTSidGroupPrincipal;
            ifnull 23
            iload 2 /* i */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.groups:[Lcom/sun/security/auth/NTSidGroupPrincipal;
            arraylength
            if_icmplt 19
        end local 2 // int i
        23: .line 276
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPublicCredentials:()Ljava/util/Set;
            astore 2 /* pubCreds */
        start local 2 // java.util.Set pubCreds
        24: .line 277
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.iToken:Lcom/sun/security/auth/NTNumericCredential;
            ifnull 26
            aload 2 /* pubCreds */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.iToken:Lcom/sun/security/auth/NTNumericCredential;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 26
        25: .line 278
            aload 2 /* pubCreds */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.iToken:Lcom/sun/security/auth/NTNumericCredential;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        26: .line 280
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.security.auth.module.NTLoginModule.commitSucceeded:Z
        27: .line 281
            iconst_1
            ireturn
        end local 2 // java.util.Set pubCreds
        end local 1 // java.util.Set principals
        end local 0 // com.sun.security.auth.module.NTLoginModule this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   28     0        this  Lcom/sun/security/auth/module/NTLoginModule;
            7   28     1  principals  Ljava/util/Set<Ljava/security/Principal;>;
           18   23     2           i  I
           24   28     2    pubCreds  Ljava/util/Set<Ljava/lang/Object;>;
    Exceptions:
      throws javax.security.auth.login.LoginException

  public boolean abort();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.security.auth.module.NTLoginModule this
         0: .line 302
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.debug:Z
            ifeq 2
         1: .line 303
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "\t\t[NTLoginModule]: aborted authentication attempt"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.succeeded:Z
            ifne 4
         3: .line 308
            iconst_0
            ireturn
         4: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.succeeded:Z
            ifeq 15
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.commitSucceeded:Z
            ifne 15
         5: .line 310
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
         6: .line 311
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.userPrincipal:Lcom/sun/security/auth/NTUserPrincipal;
         7: .line 312
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.userSID:Lcom/sun/security/auth/NTSidUserPrincipal;
         8: .line 313
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.userDomain:Lcom/sun/security/auth/NTDomainPrincipal;
         9: .line 314
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.domainSID:Lcom/sun/security/auth/NTSidDomainPrincipal;
        10: .line 315
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.primaryGroup:Lcom/sun/security/auth/NTSidPrimaryGroupPrincipal;
        11: .line 316
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.groups:[Lcom/sun/security/auth/NTSidGroupPrincipal;
        12: .line 317
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.iToken:Lcom/sun/security/auth/NTNumericCredential;
        13: .line 318
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.NTLoginModule.succeeded:Z
        14: .line 319
            goto 16
        15: .line 322
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.NTLoginModule.logout:()Z
            pop
        16: .line 324
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.succeeded:Z
            ireturn
        end local 0 // com.sun.security.auth.module.NTLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lcom/sun/security/auth/module/NTLoginModule;
    Exceptions:
      throws javax.security.auth.login.LoginException

  public boolean logout();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.sun.security.auth.module.NTLoginModule this
         0: .line 343
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.isReadOnly:()Z
            ifeq 2
         1: .line 344
            new javax.security.auth.login.LoginException
            dup
            ldc "Subject is ReadOnly"
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 346
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
            astore 1 /* principals */
        start local 1 // java.util.Set principals
         3: .line 347
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userPrincipal:Lcom/sun/security/auth/NTUserPrincipal;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 348
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userPrincipal:Lcom/sun/security/auth/NTUserPrincipal;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         5: .line 350
      StackMap locals: java.util.Set
      StackMap stack:
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userSID:Lcom/sun/security/auth/NTSidUserPrincipal;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 351
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userSID:Lcom/sun/security/auth/NTSidUserPrincipal;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         7: .line 353
      StackMap locals:
      StackMap stack:
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userDomain:Lcom/sun/security/auth/NTDomainPrincipal;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 354
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.userDomain:Lcom/sun/security/auth/NTDomainPrincipal;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         9: .line 356
      StackMap locals:
      StackMap stack:
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.domainSID:Lcom/sun/security/auth/NTSidDomainPrincipal;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 357
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.domainSID:Lcom/sun/security/auth/NTSidDomainPrincipal;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        11: .line 359
      StackMap locals:
      StackMap stack:
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.primaryGroup:Lcom/sun/security/auth/NTSidPrimaryGroupPrincipal;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 360
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.primaryGroup:Lcom/sun/security/auth/NTSidPrimaryGroupPrincipal;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        13: .line 362
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        14: goto 18
        15: .line 363
      StackMap locals: int
      StackMap stack:
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.groups:[Lcom/sun/security/auth/NTSidGroupPrincipal;
            iload 2 /* i */
            aaload
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 364
            aload 1 /* principals */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.groups:[Lcom/sun/security/auth/NTSidGroupPrincipal;
            iload 2 /* i */
            aaload
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        17: .line 362
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.groups:[Lcom/sun/security/auth/NTSidGroupPrincipal;
            ifnull 19
            iload 2 /* i */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.groups:[Lcom/sun/security/auth/NTSidGroupPrincipal;
            arraylength
            if_icmplt 15
        end local 2 // int i
        19: .line 368
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPublicCredentials:()Ljava/util/Set;
            astore 2 /* pubCreds */
        start local 2 // java.util.Set pubCreds
        20: .line 369
            aload 2 /* pubCreds */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.iToken:Lcom/sun/security/auth/NTNumericCredential;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 22
        21: .line 370
            aload 2 /* pubCreds */
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.iToken:Lcom/sun/security/auth/NTNumericCredential;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        22: .line 373
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.NTLoginModule.succeeded:Z
        23: .line 374
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.NTLoginModule.commitSucceeded:Z
        24: .line 375
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.userPrincipal:Lcom/sun/security/auth/NTUserPrincipal;
        25: .line 376
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.userDomain:Lcom/sun/security/auth/NTDomainPrincipal;
        26: .line 377
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.userSID:Lcom/sun/security/auth/NTSidUserPrincipal;
        27: .line 378
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.domainSID:Lcom/sun/security/auth/NTSidDomainPrincipal;
        28: .line 379
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.groups:[Lcom/sun/security/auth/NTSidGroupPrincipal;
        29: .line 380
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.primaryGroup:Lcom/sun/security/auth/NTSidPrimaryGroupPrincipal;
        30: .line 381
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.iToken:Lcom/sun/security/auth/NTNumericCredential;
        31: .line 382
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.NTLoginModule.ntSystem:Lcom/sun/security/auth/module/NTSystem;
        32: .line 384
            aload 0 /* this */
            getfield com.sun.security.auth.module.NTLoginModule.debug:Z
            ifeq 34
        33: .line 385
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "\t\t[NTLoginModule] completed logout processing"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        34: .line 388
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // java.util.Set pubCreds
        end local 1 // java.util.Set principals
        end local 0 // com.sun.security.auth.module.NTLoginModule this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   35     0        this  Lcom/sun/security/auth/module/NTLoginModule;
            3   35     1  principals  Ljava/util/Set<Ljava/security/Principal;>;
           14   19     2           i  I
           20   35     2    pubCreds  Ljava/util/Set<Ljava/lang/Object;>;
    Exceptions:
      throws javax.security.auth.login.LoginException
}
SourceFile: "NTLoginModule.java"