public class com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement extends com.microsoft.sqlserver.jdbc.SQLServerStatement implements com.microsoft.sqlserver.jdbc.ISQLServerPreparedStatement
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement
  super_class: com.microsoft.sqlserver.jdbc.SQLServerStatement
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -6292257029445685221

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

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

  final int nBatchStatementDelimiter;
    descriptor: I
    flags: (0x0010) ACC_FINAL
    ConstantValue: 255

  private java.lang.String preparedTypeDefinitions;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  final java.lang.String userSQL;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

  final int[] userSQLParamPositions;
    descriptor: [I
    flags: (0x0010) ACC_FINAL

  private java.lang.String preparedSQL;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

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

  private com.microsoft.sqlserver.jdbc.SQLServerConnection$PreparedStatementHandle cachedPreparedStatementHandle;
    descriptor: Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$PreparedStatementHandle;
    flags: (0x0002) ACC_PRIVATE

  private com.microsoft.sqlserver.jdbc.SQLServerConnection$CityHash128Key sqlTextCacheKey;
    descriptor: Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$CityHash128Key;
    flags: (0x0002) ACC_PRIVATE

  private java.util.ArrayList<java.lang.String> parameterNames;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Ljava/lang/String;>;

  final boolean bReturnValueSyntax;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

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

  int outParamIndexAdjustment;
    descriptor: I
    flags: (0x0000) 

  java.util.ArrayList<com.microsoft.sqlserver.jdbc.Parameter[]> batchParamValues;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0000) 
    Signature: Ljava/util/ArrayList<[Lcom/microsoft/sqlserver/jdbc/Parameter;>;

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

  private com.microsoft.sqlserver.jdbc.SQLServerStatement internalStmt;
    descriptor: Lcom/microsoft/sqlserver/jdbc/SQLServerStatement;
    flags: (0x0002) ACC_PRIVATE

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

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

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

  private java.lang.String localUserSQL;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Vector<com.microsoft.sqlserver.jdbc.CryptoMetadata> cryptoMetaBatch;
    descriptor: Ljava/util/Vector;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Vector<Lcom/microsoft/sqlserver/jdbc/CryptoMetadata;>;

  private java.util.ArrayList<byte[]> enclaveCEKs;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<[B>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$com$microsoft$sqlserver$jdbc$JavaType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 49
            ldc Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.$assertionsDisabled:Z
         3: .line 58
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void setPreparedStatementHandle(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // int handle
         0: .line 113
            aload 0 /* this */
            iload 1 /* handle */
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.prepStmtHandle:I
         1: .line 114
            return
        end local 1 // int handle
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0    2     1  handle  I
    MethodParameters:
        Name  Flags
      handle  

  private boolean getUseBulkCopyForBatchInsert();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
         0: .line 130
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.checkClosed:()V
         1: .line 131
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.useBulkCopyForBatchInsert:Z
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  private void setUseBulkCopyForBatchInsert(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // boolean useBulkCopyForBatchInsert
         0: .line 144
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.checkClosed:()V
         1: .line 145
            aload 0 /* this */
            iload 1 /* useBulkCopyForBatchInsert */
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.useBulkCopyForBatchInsert:Z
         2: .line 146
            return
        end local 1 // boolean useBulkCopyForBatchInsert
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    3     0                       this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0    3     1  useBulkCopyForBatchInsert  Z
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                           Name  Flags
      useBulkCopyForBatchInsert  

  public int getPreparedStatementHandle();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
         0: .line 150
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.checkClosed:()V
         1: .line 151
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.prepStmtHandle:I
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  private boolean hasPreparedStatementHandle();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
         0: .line 160
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.prepStmtHandle:I
            ifle 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;

  private boolean resetPrepStmtHandle(boolean);
    descriptor: (Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // boolean discardCurrentCacheItem
         0: .line 167
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.cachedPreparedStatementHandle:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$PreparedStatementHandle;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 2 /* statementPoolingUsed */
        start local 2 // boolean statementPoolingUsed
         3: .line 169
            iload 2 /* statementPoolingUsed */
            ifeq 6
         4: .line 171
            iload 1 /* discardCurrentCacheItem */
            ifeq 6
         5: .line 172
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.cachedPreparedStatementHandle:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$PreparedStatementHandle;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection$PreparedStatementHandle.setIsExplicitlyDiscarded:()V
         6: .line 174
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.prepStmtHandle:I
         7: .line 175
            iload 2 /* statementPoolingUsed */
            ireturn
        end local 2 // boolean statementPoolingUsed
        end local 1 // boolean discardCurrentCacheItem
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    8     0                     this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0    8     1  discardCurrentCacheItem  Z
            3    8     2     statementPoolingUsed  Z
    MethodParameters:
                         Name  Flags
      discardCurrentCacheItem  

  java.lang.String getClassNameInternal();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
         0: .line 192
            ldc "SQLServerPreparedStatement"
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;

  void <init>(com.microsoft.sqlserver.jdbc.SQLServerConnection, java.lang.String, int, int, com.microsoft.sqlserver.jdbc.SQLServerStatementColumnEncryptionSetting);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/String;IILcom/microsoft/sqlserver/jdbc/SQLServerStatementColumnEncryptionSetting;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=6
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerConnection conn
        start local 2 // java.lang.String sql
        start local 3 // int nRSType
        start local 4 // int nRSConcur
        start local 5 // com.microsoft.sqlserver.jdbc.SQLServerStatementColumnEncryptionSetting stmtColEncSetting
         0: .line 213
            aload 0 /* this */
            aload 1 /* conn */
            iload 3 /* nRSType */
            iload 4 /* nRSConcur */
            aload 5 /* stmtColEncSetting */
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerStatement.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;IILcom/microsoft/sqlserver/jdbc/SQLServerStatementColumnEncryptionSetting;)V
         1: .line 59
            aload 0 /* this */
            sipush 255
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.nBatchStatementDelimiter:I
         2: .line 74
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.isExecutedAtLeastOnce:Z
         3: .line 92
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getUseFmtOnly:()Z
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.useFmtOnly:Z
         4: .line 107
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.prepStmtHandle:I
         5: .line 110
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.internalStmt:Lcom/microsoft/sqlserver/jdbc/SQLServerStatement;
         6: .line 179
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.expectPrepStmtHandle:Z
         7: .line 184
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.encryptionMetadataIsRetrieved:Z
         8: .line 188
            aload 0 /* this */
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.cryptoMetaBatch:Ljava/util/Vector;
         9: .line 215
            aload 2 /* sql */
            ifnonnull 13
        10: .line 216
            new java.text.MessageFormat
            dup
            ldc "R_NullValue"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 6 /* form */
        start local 6 // java.text.MessageFormat form
        11: .line 217
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Statement SQL"
            aastore
            astore 7 /* msgArgs1 */
        start local 7 // java.lang.Object[] msgArgs1
        12: .line 218
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            aload 6 /* form */
            aload 7 /* msgArgs1 */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aconst_null
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.lang.Object[] msgArgs1
        end local 6 // java.text.MessageFormat form
        13: .line 221
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement com.microsoft.sqlserver.jdbc.SQLServerConnection java.lang.String int int com.microsoft.sqlserver.jdbc.SQLServerStatementColumnEncryptionSetting
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.stmtPoolable:Z
        14: .line 224
            aload 0 /* this */
            new com.microsoft.sqlserver.jdbc.SQLServerConnection$CityHash128Key
            dup
            aload 2 /* sql */
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerConnection$CityHash128Key.<init>:(Ljava/lang/String;)V
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.sqlTextCacheKey:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$CityHash128Key;
        15: .line 227
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.sqlTextCacheKey:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$CityHash128Key;
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerConnection.getCachedParsedSQL:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$CityHash128Key;)Lcom/microsoft/sqlserver/jdbc/ParsedSQLCacheItem;
            astore 6 /* parsedSQL */
        start local 6 // com.microsoft.sqlserver.jdbc.ParsedSQLCacheItem parsedSQL
        16: .line 228
            aload 6 /* parsedSQL */
            ifnull 20
        17: .line 229
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            ifnull 21
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.isStatementPoolingEnabled:()Z
            ifeq 21
        18: .line 230
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.isExecutedAtLeastOnce:Z
        19: .line 232
            goto 21
        20: .line 233
      StackMap locals: com.microsoft.sqlserver.jdbc.ParsedSQLCacheItem
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.sqlTextCacheKey:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$CityHash128Key;
            aload 2 /* sql */
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerConnection.parseAndCacheSQL:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$CityHash128Key;Ljava/lang/String;)Lcom/microsoft/sqlserver/jdbc/ParsedSQLCacheItem;
            astore 6 /* parsedSQL */
        21: .line 237
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* parsedSQL */
            getfield com.microsoft.sqlserver.jdbc.ParsedSQLCacheItem.procedureName:Ljava/lang/String;
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.procedureName:Ljava/lang/String;
        22: .line 238
            aload 0 /* this */
            aload 6 /* parsedSQL */
            getfield com.microsoft.sqlserver.jdbc.ParsedSQLCacheItem.bReturnValueSyntax:Z
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.bReturnValueSyntax:Z
        23: .line 239
            aload 0 /* this */
            aload 6 /* parsedSQL */
            getfield com.microsoft.sqlserver.jdbc.ParsedSQLCacheItem.processedSQL:Ljava/lang/String;
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.userSQL:Ljava/lang/String;
        24: .line 240
            aload 0 /* this */
            aload 6 /* parsedSQL */
            getfield com.microsoft.sqlserver.jdbc.ParsedSQLCacheItem.parameterPositions:[I
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.userSQLParamPositions:[I
        25: .line 241
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.userSQLParamPositions:[I
            arraylength
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.initParams:(I)V
        26: .line 242
            aload 0 /* this */
            aload 1 /* conn */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getUseBulkCopyForBatchInsert:()Z
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.useBulkCopyForBatchInsert:Z
        27: .line 243
            return
        end local 6 // com.microsoft.sqlserver.jdbc.ParsedSQLCacheItem parsedSQL
        end local 5 // com.microsoft.sqlserver.jdbc.SQLServerStatementColumnEncryptionSetting stmtColEncSetting
        end local 4 // int nRSConcur
        end local 3 // int nRSType
        end local 2 // java.lang.String sql
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerConnection conn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   28     0               this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0   28     1               conn  Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            0   28     2                sql  Ljava/lang/String;
            0   28     3            nRSType  I
            0   28     4          nRSConcur  I
            0   28     5  stmtColEncSetting  Lcom/microsoft/sqlserver/jdbc/SQLServerStatementColumnEncryptionSetting;
           11   13     6               form  Ljava/text/MessageFormat;
           12   13     7           msgArgs1  [Ljava/lang/Object;
           16   28     6          parsedSQL  Lcom/microsoft/sqlserver/jdbc/ParsedSQLCacheItem;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                   Name  Flags
      conn               
      sql                
      nRSType            
      nRSConcur          
      stmtColEncSetting  

  private void closePreparedHandle();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=3, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
         0: .line 249
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.hasPreparedStatementHandle:()Z
            ifne 2
         1: .line 250
            return
         2: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.isSessionUnAvailable:()Z
            ifeq 8
         3: .line 256
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 30
         4: .line 257
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
         5: .line 258
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": Not closing PreparedHandle:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.prepStmtHandle:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "; connection is already closed."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 257
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         7: .line 259
            goto 30
         8: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.isExecutedAtLeastOnce:Z
         9: .line 261
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.prepStmtHandle:I
            istore 1 /* handleToClose */
        start local 1 // int handleToClose
        10: .line 264
            aload 0 /* this */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.resetPrepStmtHandle:(Z)Z
            ifeq 13
        11: .line 265
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.cachedPreparedStatementHandle:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$PreparedStatementHandle;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.returnCachedPreparedStatementHandle:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$PreparedStatementHandle;)V
        12: .line 266
            goto 29
        13: .line 269
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.isPreparedStatementUnprepareBatchingEnabled:()Z
            ifeq 18
        14: .line 270
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
        15: .line 271
            new com.microsoft.sqlserver.jdbc.SQLServerConnection$PreparedStatementHandle
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            aconst_null
            iload 1 /* handleToClose */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executedSqlDirectly:Z
            iconst_1
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerConnection$PreparedStatementHandle.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$CityHash128Key;IZZ)V
        16: .line 270
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.enqueueUnprepareStatementHandle:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection$PreparedStatementHandle;)V
        17: .line 272
            goto 29
        18: .line 274
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 20
        19: .line 275
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": Closing PreparedHandle:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* handleToClose */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        20: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$1PreparedHandleClose
            dup
            aload 0 /* this */
            iload 1 /* handleToClose */
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$1PreparedHandleClose.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;I)V
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeCommand:(Lcom/microsoft/sqlserver/jdbc/TDSCommand;)V
        21: .line 304
            goto 27
      StackMap locals:
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerException
        22: astore 2 /* e */
        start local 2 // com.microsoft.sqlserver.jdbc.SQLServerException e
        23: .line 305
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 27
        24: .line 306
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
        25: .line 307
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": Error (ignored) closing PreparedHandle:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* handleToClose */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e */
        26: .line 306
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 2 // com.microsoft.sqlserver.jdbc.SQLServerException e
        27: .line 310
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 29
        28: .line 311
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": Closed PreparedHandle:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* handleToClose */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        29: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.unprepareUnreferencedPreparedStatementHandles:(Z)V
        end local 1 // int handleToClose
        30: .line 317
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   31     0           this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
           10   30     1  handleToClose  I
           23   27     2              e  Lcom/microsoft/sqlserver/jdbc/SQLServerException;
      Exception table:
        from    to  target  type
          20    21      22  Class com.microsoft.sqlserver.jdbc.SQLServerException

  final void closeInternal();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
         0: .line 328
            aload 0 /* this */
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerStatement.closeInternal:()V
         1: .line 331
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.closePreparedHandle:()V
         2: .line 335
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.internalStmt:Lcom/microsoft/sqlserver/jdbc/SQLServerStatement;
            ifnull 13
         3: .line 336
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.internalStmt:Lcom/microsoft/sqlserver/jdbc/SQLServerStatement;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerStatement.close:()V
         4: .line 337
            goto 13
      StackMap locals:
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerException
         5: astore 1 /* e */
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerException e
         6: .line 338
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 9
         7: .line 339
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
         8: .line 340
            new java.lang.StringBuilder
            dup
            ldc "Ignored error closing internal statement: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerException.getErrorCode:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* e */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerException e
         9: .line 342
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.internalStmt:Lcom/microsoft/sqlserver/jdbc/SQLServerStatement;
            goto 14
        10: .line 341
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
        11: .line 342
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.internalStmt:Lcom/microsoft/sqlserver/jdbc/SQLServerStatement;
        12: .line 343
            aload 2
            athrow
        13: .line 342
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.internalStmt:Lcom/microsoft/sqlserver/jdbc/SQLServerStatement;
        14: .line 346
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.batchParamValues:Ljava/util/ArrayList;
        15: .line 347
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            6    9     1     e  Lcom/microsoft/sqlserver/jdbc/SQLServerException;
      Exception table:
        from    to  target  type
           2     4       5  Class com.microsoft.sqlserver.jdbc.SQLServerException
           2     9      10  any

  final void initParams(int);
    descriptor: (I)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // int nParams
         0: .line 356
            aload 0 /* this */
            iload 1 /* nParams */
            anewarray com.microsoft.sqlserver.jdbc.Parameter
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.inOutParam:[Lcom/microsoft/sqlserver/jdbc/Parameter;
         1: .line 357
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 358
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.inOutParam:[Lcom/microsoft/sqlserver/jdbc/Parameter;
            iload 2 /* i */
            new com.microsoft.sqlserver.jdbc.Parameter
            dup
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.stmtColumnEncriptionSetting:Lcom/microsoft/sqlserver/jdbc/SQLServerStatementColumnEncryptionSetting;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokestatic com.microsoft.sqlserver.jdbc.Util.shouldHonorAEForParameters:(Lcom/microsoft/sqlserver/jdbc/SQLServerStatementColumnEncryptionSetting;Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)Z
            invokespecial com.microsoft.sqlserver.jdbc.Parameter.<init>:(Z)V
            aastore
         4: .line 357
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            iload 1 /* nParams */
            if_icmplt 3
        end local 2 // int i
         6: .line 360
            return
        end local 1 // int nParams
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0    7     1  nParams  I
            2    6     2        i  I
    MethodParameters:
         Name  Flags
      nParams  

  public final void clearParameters();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
         0: .line 364
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getClassNameLogging:()Ljava/lang/String;
            ldc "clearParameters"
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 365
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.checkClosed:()V
         2: .line 366
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.encryptionMetadataIsRetrieved:Z
         3: .line 368
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.inOutParam:[Lcom/microsoft/sqlserver/jdbc/Parameter;
            ifnonnull 5
         4: .line 369
            return
         5: .line 370
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         6: goto 9
         7: .line 371
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.inOutParam:[Lcom/microsoft/sqlserver/jdbc/Parameter;
            iload 1 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.Parameter.clearInputValue:()V
         8: .line 370
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 1 /* i */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.inOutParam:[Lcom/microsoft/sqlserver/jdbc/Parameter;
            arraylength
            if_icmplt 7
        10: .line 373
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getClassNameLogging:()Ljava/lang/String;
            ldc "clearParameters"
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        11: .line 374
            return
        end local 1 // int i
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            6   12     1     i  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException

  private boolean buildPreparedStrings(com.microsoft.sqlserver.jdbc.Parameter[], boolean);
    descriptor: ([Lcom/microsoft/sqlserver/jdbc/Parameter;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // com.microsoft.sqlserver.jdbc.Parameter[] params
        start local 2 // boolean renewDefinition
         0: .line 381
            aload 0 /* this */
            aload 1 /* params */
            iload 2 /* renewDefinition */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.buildParamTypeDefinitions:([Lcom/microsoft/sqlserver/jdbc/Parameter;Z)Ljava/lang/String;
            astore 3 /* newTypeDefinitions */
        start local 3 // java.lang.String newTypeDefinitions
         1: .line 382
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedTypeDefinitions:Ljava/lang/String;
            ifnull 3
            aload 3 /* newTypeDefinitions */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedTypeDefinitions:Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 383
            iconst_0
            ireturn
         3: .line 385
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 3 /* newTypeDefinitions */
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedTypeDefinitions:Ljava/lang/String;
         4: .line 388
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.userSQL:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.userSQLParamPositions:[I
            aload 1 /* params */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.bReturnValueSyntax:Z
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.replaceParameterMarkers:(Ljava/lang/String;[I[Lcom/microsoft/sqlserver/jdbc/Parameter;Z)Ljava/lang/String;
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
         5: .line 389
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.bRequestedGeneratedKeys:Z
            ifeq 7
         6: .line 390
            aload 0 /* this */
            dup
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
            new java.lang.StringBuilder
            dup_x1
            swap
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " select SCOPE_IDENTITY() AS GENERATED_KEYS"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
         7: .line 392
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.lang.String newTypeDefinitions
        end local 2 // boolean renewDefinition
        end local 1 // com.microsoft.sqlserver.jdbc.Parameter[] params
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    8     0                this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0    8     1              params  [Lcom/microsoft/sqlserver/jdbc/Parameter;
            0    8     2     renewDefinition  Z
            1    8     3  newTypeDefinitions  Ljava/lang/String;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                 Name  Flags
      params           
      renewDefinition  

  private java.lang.String buildParamTypeDefinitions(com.microsoft.sqlserver.jdbc.Parameter[], boolean);
    descriptor: ([Lcom/microsoft/sqlserver/jdbc/Parameter;Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // com.microsoft.sqlserver.jdbc.Parameter[] params
        start local 2 // boolean renewDefinition
         0: .line 407
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         1: .line 408
            aload 1 /* params */
            arraylength
            istore 4 /* nCols */
        start local 4 // int nCols
         2: .line 409
            bipush 10
            newarray 5
            astore 5 /* cParamName */
        start local 5 // char[] cParamName
         3: .line 410
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.parameterNames:Ljava/util/ArrayList;
         4: .line 412
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         5: goto 26
         6: .line 413
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement com.microsoft.sqlserver.jdbc.Parameter[] int java.lang.StringBuilder int char[] int
      StackMap stack:
            iload 6 /* i */
            ifle 8
         7: .line 414
            aload 3 /* sb */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 416
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            aload 5 /* cParamName */
            iconst_0
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerConnection.makeParamName:(I[CI)I
            istore 7 /* l */
        start local 7 // int l
         9: .line 417
            iconst_0
            istore 8 /* j */
        start local 8 // int j
        10: goto 13
        11: .line 418
      StackMap locals: int int
      StackMap stack:
            aload 3 /* sb */
            aload 5 /* cParamName */
            iload 8 /* j */
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        12: .line 417
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        13: iload 8 /* j */
            iload 7 /* l */
            if_icmplt 11
        end local 8 // int j
        14: .line 419
            aload 3 /* sb */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        15: .line 421
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.parameterNames:Ljava/util/ArrayList;
            iload 6 /* i */
            new java.lang.String
            dup
            aload 5 /* cParamName */
            invokespecial java.lang.String.<init>:([C)V
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
        16: .line 423
            aload 1 /* params */
            iload 6 /* i */
            aaload
            iload 2 /* renewDefinition */
            putfield com.microsoft.sqlserver.jdbc.Parameter.renewDefinition:Z
        17: .line 424
            aload 1 /* params */
            iload 6 /* i */
            aaload
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.resultsReader:()Lcom/microsoft/sqlserver/jdbc/TDSReader;
            invokevirtual com.microsoft.sqlserver.jdbc.Parameter.getTypeDefinition:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Lcom/microsoft/sqlserver/jdbc/TDSReader;)Ljava/lang/String;
            astore 8 /* typeDefinition */
        start local 8 // java.lang.String typeDefinition
        18: .line 425
            aload 8 /* typeDefinition */
            ifnonnull 22
        19: .line 426
            new java.text.MessageFormat
            dup
            ldc "R_valueNotSetForParameter"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
            astore 9 /* form */
        start local 9 // java.text.MessageFormat form
        20: .line 427
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 6 /* i */
            iconst_1
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            astore 10 /* msgArgs */
        start local 10 // java.lang.Object[] msgArgs
        21: .line 428
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            aload 9 /* form */
            aload 10 /* msgArgs */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            aconst_null
            iconst_0
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
        end local 10 // java.lang.Object[] msgArgs
        end local 9 // java.text.MessageFormat form
        22: .line 431
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement com.microsoft.sqlserver.jdbc.Parameter[] int java.lang.StringBuilder int char[] int int java.lang.String
      StackMap stack:
            aload 3 /* sb */
            aload 8 /* typeDefinition */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 433
            aload 1 /* params */
            iload 6 /* i */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.Parameter.isOutput:()Z
            ifeq 25
        24: .line 434
            aload 3 /* sb */
            ldc " OUTPUT"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 8 // java.lang.String typeDefinition
        end local 7 // int l
        25: .line 412
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 6 /* i */
            iload 4 /* nCols */
            if_icmplt 6
        end local 6 // int i
        27: .line 436
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 5 // char[] cParamName
        end local 4 // int nCols
        end local 3 // java.lang.StringBuilder sb
        end local 2 // boolean renewDefinition
        end local 1 // com.microsoft.sqlserver.jdbc.Parameter[] params
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   28     0             this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0   28     1           params  [Lcom/microsoft/sqlserver/jdbc/Parameter;
            0   28     2  renewDefinition  Z
            1   28     3               sb  Ljava/lang/StringBuilder;
            2   28     4            nCols  I
            3   28     5       cParamName  [C
            5   27     6                i  I
            9   25     7                l  I
           10   14     8                j  I
           18   25     8   typeDefinition  Ljava/lang/String;
           20   22     9             form  Ljava/text/MessageFormat;
           21   22    10          msgArgs  [Ljava/lang/Object;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
                 Name  Flags
      params           
      renewDefinition  

  public java.sql.ResultSet executeQuery();
    descriptor: ()Ljava/sql/ResultSet;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
         0: .line 441
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getClassNameLogging:()Ljava/lang/String;
            ldc "executeQuery"
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 442
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 3
            invokestatic com.microsoft.sqlserver.jdbc.Util.isActivityTraceOn:()Z
            ifeq 3
         2: .line 443
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ActivityId: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic com.microsoft.sqlserver.jdbc.ActivityCorrelator.getNext:()Lcom/microsoft/sqlserver/jdbc/ActivityId;
            invokevirtual com.microsoft.sqlserver.jdbc.ActivityId.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         3: .line 445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.checkClosed:()V
         4: .line 446
            aload 0 /* this */
            new com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd
            dup
            aload 0 /* this */
            aload 0 /* this */
            iconst_1
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;I)V
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeStatement:(Lcom/microsoft/sqlserver/jdbc/TDSCommand;)V
         5: .line 447
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getClassNameLogging:()Ljava/lang/String;
            ldc "executeQuery"
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 448
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.resultSet:Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException, java.sql.SQLTimeoutException

  final java.sql.ResultSet executeQueryInternal();
    descriptor: ()Ljava/sql/ResultSet;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
         0: .line 459
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.checkClosed:()V
         1: .line 460
            aload 0 /* this */
            new com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd
            dup
            aload 0 /* this */
            aload 0 /* this */
            iconst_5
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;I)V
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeStatement:(Lcom/microsoft/sqlserver/jdbc/TDSCommand;)V
         2: .line 461
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.resultSet:Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException, java.sql.SQLTimeoutException

  public int executeUpdate();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
         0: .line 466
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getClassNameLogging:()Ljava/lang/String;
            ldc "executeUpdate"
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 467
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 3
            invokestatic com.microsoft.sqlserver.jdbc.Util.isActivityTraceOn:()Z
            ifeq 3
         2: .line 468
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ActivityId: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic com.microsoft.sqlserver.jdbc.ActivityCorrelator.getNext:()Lcom/microsoft/sqlserver/jdbc/ActivityId;
            invokevirtual com.microsoft.sqlserver.jdbc.ActivityId.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         3: .line 471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.checkClosed:()V
         4: .line 473
            aload 0 /* this */
            new com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd
            dup
            aload 0 /* this */
            aload 0 /* this */
            iconst_2
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;I)V
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeStatement:(Lcom/microsoft/sqlserver/jdbc/TDSCommand;)V
         5: .line 476
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.updateCount:J
            ldc -2147483648
            lcmp
            iflt 6
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.updateCount:J
            ldc 2147483647
            lcmp
            ifle 9
         6: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
         7: .line 478
            ldc "R_updateCountOutofRange"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            aconst_null
            iconst_1
         8: .line 477
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
         9: .line 480
      StackMap locals:
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getClassNameLogging:()Ljava/lang/String;
            ldc "executeUpdate"
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.updateCount:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
        10: .line 482
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.updateCount:J
            l2i
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException, java.sql.SQLTimeoutException

  public long executeLargeUpdate();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
         0: .line 488
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getClassNameLogging:()Ljava/lang/String;
            ldc "executeLargeUpdate"
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 489
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 3
            invokestatic com.microsoft.sqlserver.jdbc.Util.isActivityTraceOn:()Z
            ifeq 3
         2: .line 490
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ActivityId: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic com.microsoft.sqlserver.jdbc.ActivityCorrelator.getNext:()Lcom/microsoft/sqlserver/jdbc/ActivityId;
            invokevirtual com.microsoft.sqlserver.jdbc.ActivityId.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         3: .line 492
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.checkClosed:()V
         4: .line 493
            aload 0 /* this */
            new com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd
            dup
            aload 0 /* this */
            aload 0 /* this */
            iconst_2
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;I)V
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeStatement:(Lcom/microsoft/sqlserver/jdbc/TDSCommand;)V
         5: .line 494
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getClassNameLogging:()Ljava/lang/String;
            ldc "executeLargeUpdate"
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.updateCount:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 495
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.updateCount:J
            lreturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException, java.sql.SQLTimeoutException

  public boolean execute();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
         0: .line 500
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getClassNameLogging:()Ljava/lang/String;
            ldc "execute"
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 501
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 3
            invokestatic com.microsoft.sqlserver.jdbc.Util.isActivityTraceOn:()Z
            ifeq 3
         2: .line 502
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ActivityId: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic com.microsoft.sqlserver.jdbc.ActivityCorrelator.getNext:()Lcom/microsoft/sqlserver/jdbc/ActivityId;
            invokevirtual com.microsoft.sqlserver.jdbc.ActivityId.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         3: .line 504
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.checkClosed:()V
         4: .line 505
            aload 0 /* this */
            new com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd
            dup
            aload 0 /* this */
            aload 0 /* this */
            iconst_3
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;I)V
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeStatement:(Lcom/microsoft/sqlserver/jdbc/TDSCommand;)V
         5: .line 506
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getClassNameLogging:()Ljava/lang/String;
            ldc "execute"
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.resultSet:Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
            ifnull 6
            iconst_1
            goto 7
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement
      StackMap stack: java.util.logging.Logger java.lang.String java.lang.String
         6: iconst_0
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement
      StackMap stack: java.util.logging.Logger java.lang.String java.lang.String int
         7: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 507
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.resultSet:Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
            ifnull 9
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         9: iconst_0
            ireturn
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException, java.sql.SQLTimeoutException

  final void doExecutePreparedStatement(com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement$PrepStmtExecCmd;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd command
         0: .line 535
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.resetForReexecute:()V
         1: .line 547
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setMaxRowsAndMaxFieldSize:()V
         2: .line 549
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 4
            invokestatic com.microsoft.sqlserver.jdbc.Util.isActivityTraceOn:()Z
            ifeq 4
         3: .line 550
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.loggerExternal:Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ActivityId: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic com.microsoft.sqlserver.jdbc.ActivityCorrelator.getNext:()Lcom/microsoft/sqlserver/jdbc/ActivityId;
            invokevirtual com.microsoft.sqlserver.jdbc.ActivityId.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
         4: .line 553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedTypeDefinitions:Ljava/lang/String;
            ifnull 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 2 /* hasExistingTypeDefinitions */
        start local 2 // boolean hasExistingTypeDefinitions
         7: .line 554
            iconst_1
            istore 3 /* hasNewTypeDefinitions */
        start local 3 // boolean hasNewTypeDefinitions
         8: .line 555
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.encryptionMetadataIsRetrieved:Z
            ifne 10
         9: .line 556
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.inOutParam:[Lcom/microsoft/sqlserver/jdbc/Parameter;
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.buildPreparedStrings:([Lcom/microsoft/sqlserver/jdbc/Parameter;Z)Z
            istore 3 /* hasNewTypeDefinitions */
        10: .line 559
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.isAEv2:()Z
            ifeq 17
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.isInternalEncryptionQuery:Z
            ifne 17
        11: .line 560
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedTypeDefinitions:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.inOutParam:[Lcom/microsoft/sqlserver/jdbc/Parameter;
        12: .line 561
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.parameterNames:Ljava/util/ArrayList;
        13: .line 560
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.initEnclaveParameters:(Ljava/lang/String;Ljava/lang/String;[Lcom/microsoft/sqlserver/jdbc/Parameter;Ljava/util/ArrayList;)Ljava/util/ArrayList;
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.enclaveCEKs:Ljava/util/ArrayList;
        14: .line 562
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.encryptionMetadataIsRetrieved:Z
        15: .line 563
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setMaxRowsAndMaxFieldSize:()V
        16: .line 564
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.inOutParam:[Lcom/microsoft/sqlserver/jdbc/Parameter;
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.buildPreparedStrings:([Lcom/microsoft/sqlserver/jdbc/Parameter;Z)Z
            istore 3 /* hasNewTypeDefinitions */
        17: .line 567
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.stmtColumnEncriptionSetting:Lcom/microsoft/sqlserver/jdbc/SQLServerStatementColumnEncryptionSetting;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokestatic com.microsoft.sqlserver.jdbc.Util.shouldHonorAEForParameters:(Lcom/microsoft/sqlserver/jdbc/SQLServerStatementColumnEncryptionSetting;Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)Z
            ifeq 24
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.inOutParam:[Lcom/microsoft/sqlserver/jdbc/Parameter;
            arraylength
            ifle 24
        18: .line 568
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.isInternalEncryptionQuery:Z
            ifne 24
        19: .line 571
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.encryptionMetadataIsRetrieved:Z
            ifne 23
        20: .line 572
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.inOutParam:[Lcom/microsoft/sqlserver/jdbc/Parameter;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getParameterEncryptionMetadata:([Lcom/microsoft/sqlserver/jdbc/Parameter;)V
        21: .line 573
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.encryptionMetadataIsRetrieved:Z
        22: .line 577
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setMaxRowsAndMaxFieldSize:()V
        23: .line 582
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.inOutParam:[Lcom/microsoft/sqlserver/jdbc/Parameter;
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.buildPreparedStrings:([Lcom/microsoft/sqlserver/jdbc/Parameter;Z)Z
            istore 3 /* hasNewTypeDefinitions */
        24: .line 585
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* needsPrepare */
        start local 4 // boolean needsPrepare
        25: .line 587
            iconst_1
            istore 5 /* attempt */
        start local 5 // int attempt
        26: goto 42
        27: .line 590
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* hasNewTypeDefinitions */
            iconst_1
            iload 5 /* attempt */
            if_icmpge 28
            iconst_1
            goto 29
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd int int int int
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement int
        28: iconst_0
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd int int int int
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement int int
        29: invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.reuseCachedHandle:(ZZ)Z
            ifeq 31
        30: .line 591
            iconst_0
            istore 3 /* hasNewTypeDefinitions */
        31: .line 596
      StackMap locals:
      StackMap stack:
            aload 1 /* command */
            iconst_3
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.startRequest:(B)Lcom/microsoft/sqlserver/jdbc/TDSWriter;
            astore 6 /* tdsWriter */
        start local 6 // com.microsoft.sqlserver.jdbc.TDSWriter tdsWriter
        32: .line 598
            aload 0 /* this */
            aload 6 /* tdsWriter */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.inOutParam:[Lcom/microsoft/sqlserver/jdbc/Parameter;
            iload 3 /* hasNewTypeDefinitions */
            iload 2 /* hasExistingTypeDefinitions */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doPrepExec:(Lcom/microsoft/sqlserver/jdbc/TDSWriter;[Lcom/microsoft/sqlserver/jdbc/Parameter;ZZ)Z
            istore 4 /* needsPrepare */
        33: .line 600
            aload 0 /* this */
            aload 1 /* command */
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getIsResponseBufferingAdaptive:()Z
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.startResponse:(Z)Lcom/microsoft/sqlserver/jdbc/TDSReader;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.ensureExecuteResultsReader:(Lcom/microsoft/sqlserver/jdbc/TDSReader;)V
        34: .line 601
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.startResults:()V
        35: .line 602
            aload 0 /* this */
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getNextResult:(Z)Z
            pop
        end local 6 // com.microsoft.sqlserver.jdbc.TDSWriter tdsWriter
        36: .line 603
            goto 43
      StackMap locals:
      StackMap stack: java.sql.SQLException
        37: astore 6 /* e */
        start local 6 // java.sql.SQLException e
        38: .line 604
            aload 0 /* this */
            aload 6 /* e */
            iload 5 /* attempt */
            iload 4 /* needsPrepare */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.retryBasedOnFailedReuseOfCachedHandle:(Ljava/sql/SQLException;IZZ)Z
            ifeq 40
        39: .line 605
            goto 41
        40: .line 607
      StackMap locals: java.sql.SQLException
      StackMap stack:
            aload 6 /* e */
            athrow
        end local 6 // java.sql.SQLException e
        41: .line 587
      StackMap locals:
      StackMap stack:
            iinc 5 /* attempt */ 1
      StackMap locals:
      StackMap stack:
        42: iload 5 /* attempt */
            iconst_2
            if_icmple 27
        end local 5 // int attempt
        43: .line 612
      StackMap locals:
      StackMap stack:
            iconst_1
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeMethod:I
            if_icmpne 48
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.resultSet:Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
            ifnonnull 48
        44: .line 613
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
            ldc "R_noResultset"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
        45: .line 614
            aconst_null
            iconst_1
        46: .line 613
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
        47: .line 615
            goto 52
      StackMap locals:
      StackMap stack:
        48: iconst_2
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeMethod:I
            if_icmpne 52
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.resultSet:Lcom/microsoft/sqlserver/jdbc/SQLServerResultSet;
            ifnull 52
        49: .line 616
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            aload 0 /* this */
        50: .line 617
            ldc "R_resultsetGeneratedForUpdate"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
            aconst_null
            iconst_0
        51: .line 616
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
        52: .line 619
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean needsPrepare
        end local 3 // boolean hasNewTypeDefinitions
        end local 2 // boolean hasExistingTypeDefinitions
        end local 1 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd command
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   53     0                        this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0   53     1                     command  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement$PrepStmtExecCmd;
            7   53     2  hasExistingTypeDefinitions  Z
            8   53     3       hasNewTypeDefinitions  Z
           25   53     4                needsPrepare  Z
           26   43     5                     attempt  I
           32   36     6                   tdsWriter  Lcom/microsoft/sqlserver/jdbc/TDSWriter;
           38   41     6                           e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
          27    36      37  Class java.sql.SQLException
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
         Name  Flags
      command  

  private boolean retryBasedOnFailedReuseOfCachedHandle(java.sql.SQLException, int, boolean, boolean);
    descriptor: (Ljava/sql/SQLException;IZZ)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // java.sql.SQLException e
        start local 2 // int attempt
        start local 3 // boolean needsPrepare
        start local 4 // boolean isBatch
         0: .line 632
            iload 3 /* needsPrepare */
            ifeq 2
            iload 4 /* isBatch */
            ifne 2
         1: .line 633
            iconst_0
            ireturn
         2: .line 634
      StackMap locals:
      StackMap stack:
            iconst_1
            iload 2 /* attempt */
            if_icmpne 5
            sipush 586
            aload 1 /* e */
            invokevirtual java.sql.SQLException.getErrorCode:()I
            if_icmpeq 3
            sipush 8179
            aload 1 /* e */
            invokevirtual java.sql.SQLException.getErrorCode:()I
            if_icmpne 5
         3: .line 635
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.isStatementPoolingEnabled:()Z
            ifeq 5
         4: .line 634
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
        end local 4 // boolean isBatch
        end local 3 // boolean needsPrepare
        end local 2 // int attempt
        end local 1 // java.sql.SQLException e
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0    6     1             e  Ljava/sql/SQLException;
            0    6     2       attempt  I
            0    6     3  needsPrepare  Z
            0    6     4       isBatch  Z
    MethodParameters:
              Name  Flags
      e             
      attempt       
      needsPrepare  
      isBatch       

  boolean consumeExecOutParam(com.microsoft.sqlserver.jdbc.TDSReader);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/TDSReader;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // com.microsoft.sqlserver.jdbc.TDSReader tdsReader
         0: .line 677
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.expectPrepStmtHandle:Z
            ifne 1
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.expectCursorOutParams:Z
            ifeq 3
         1: .line 678
      StackMap locals:
      StackMap stack:
            aload 1 /* tdsReader */
            new com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$1PrepStmtExecOutParamHandler
            dup
            aload 0 /* this */
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$1PrepStmtExecOutParamHandler.<init>:(Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;)V
            invokestatic com.microsoft.sqlserver.jdbc.TDSParser.parse:(Lcom/microsoft/sqlserver/jdbc/TDSReader;Lcom/microsoft/sqlserver/jdbc/TDSTokenHandler;)V
         2: .line 679
            iconst_1
            ireturn
         3: .line 682
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // com.microsoft.sqlserver.jdbc.TDSReader tdsReader
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0    4     1  tdsReader  Lcom/microsoft/sqlserver/jdbc/TDSReader;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
           Name  Flags
      tdsReader  

  void sendParamsByRPC(com.microsoft.sqlserver.jdbc.TDSWriter, com.microsoft.sqlserver.jdbc.Parameter[]);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/TDSWriter;[Lcom/microsoft/sqlserver/jdbc/Parameter;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // com.microsoft.sqlserver.jdbc.TDSWriter tdsWriter
        start local 2 // com.microsoft.sqlserver.jdbc.Parameter[] params
         0: .line 690
            iconst_0
            istore 4 /* index */
        start local 4 // int index
         1: goto 9
         2: .line 691
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement com.microsoft.sqlserver.jdbc.TDSWriter com.microsoft.sqlserver.jdbc.Parameter[] top int
      StackMap stack:
            getstatic com.microsoft.sqlserver.jdbc.JDBCType.TVP:Lcom/microsoft/sqlserver/jdbc/JDBCType;
            aload 2 /* params */
            iload 4 /* index */
            aaload
            invokevirtual com.microsoft.sqlserver.jdbc.Parameter.getJdbcType:()Lcom/microsoft/sqlserver/jdbc/JDBCType;
            if_acmpne 7
         3: .line 692
            bipush 10
            newarray 5
            astore 3 /* cParamName */
        start local 3 // char[] cParamName
         4: .line 693
            iload 4 /* index */
            aload 3 /* cParamName */
            iconst_0
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerConnection.makeParamName:(I[CI)I
            istore 5 /* paramNameLen */
        start local 5 // int paramNameLen
         5: .line 694
            aload 1 /* tdsWriter */
            iload 5 /* paramNameLen */
            i2b
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeByte:(B)V
         6: .line 695
            aload 1 /* tdsWriter */
            new java.lang.String
            dup
            aload 3 /* cParamName */
            iconst_0
            iload 5 /* paramNameLen */
            invokespecial java.lang.String.<init>:([CII)V
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeString:(Ljava/lang/String;)V
        end local 5 // int paramNameLen
        end local 3 // char[] cParamName
         7: .line 697
      StackMap locals:
      StackMap stack:
            aload 2 /* params */
            iload 4 /* index */
            aaload
            aload 1 /* tdsWriter */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.Parameter.sendByRPC:(Lcom/microsoft/sqlserver/jdbc/TDSWriter;Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)V
         8: .line 690
            iinc 4 /* index */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* index */
            aload 2 /* params */
            arraylength
            if_icmplt 2
        end local 4 // int index
        10: .line 699
            return
        end local 2 // com.microsoft.sqlserver.jdbc.Parameter[] params
        end local 1 // com.microsoft.sqlserver.jdbc.TDSWriter tdsWriter
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0   11     1     tdsWriter  Lcom/microsoft/sqlserver/jdbc/TDSWriter;
            0   11     2        params  [Lcom/microsoft/sqlserver/jdbc/Parameter;
            4    7     3    cParamName  [C
            1   10     4         index  I
            5    7     5  paramNameLen  I
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
           Name  Flags
      tdsWriter  
      params     

  private void buildServerCursorPrepExecParams(com.microsoft.sqlserver.jdbc.TDSWriter);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/TDSWriter;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // com.microsoft.sqlserver.jdbc.TDSWriter tdsWriter
         0: .line 702
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getStatementLogger:()Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 4
         1: .line 703
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getStatementLogger:()Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": calling sp_cursorprepexec: PreparedHandle:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 704
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getPreparedStatementHandle:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", SQL:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 703
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
         4: .line 706
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.expectPrepStmtHandle:Z
         5: .line 707
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executedSqlDirectly:Z
         6: .line 708
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.expectCursorOutParams:Z
         7: .line 709
            aload 0 /* this */
            bipush 7
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.outParamIndexAdjustment:I
         8: .line 711
            aload 1 /* tdsWriter */
            iconst_m1
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeShort:(S)V
         9: .line 712
            aload 1 /* tdsWriter */
            iconst_5
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeShort:(S)V
        10: .line 713
            aload 1 /* tdsWriter */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeByte:(B)V
        11: .line 714
            aload 1 /* tdsWriter */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeByte:(B)V
        12: .line 715
            aload 1 /* tdsWriter */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.enclaveCEKs:Ljava/util/ArrayList;
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.sendEnclavePackage:(Ljava/lang/String;Ljava/util/ArrayList;)V
        13: .line 720
            aload 1 /* tdsWriter */
            aconst_null
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getPreparedStatementHandle:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCInt:(Ljava/lang/String;Ljava/lang/Integer;Z)V
        14: .line 721
            aload 0 /* this */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.resetPrepStmtHandle:(Z)Z
            pop
        15: .line 724
            aload 1 /* tdsWriter */
            aconst_null
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCInt:(Ljava/lang/String;Ljava/lang/Integer;Z)V
        16: .line 727
            aload 1 /* tdsWriter */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedTypeDefinitions:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifle 17
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedTypeDefinitions:Ljava/lang/String;
            goto 18
      StackMap locals:
      StackMap stack: com.microsoft.sqlserver.jdbc.TDSWriter
        17: aconst_null
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement com.microsoft.sqlserver.jdbc.TDSWriter
      StackMap stack: com.microsoft.sqlserver.jdbc.TDSWriter java.lang.String
        18: invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCStringUnicode:(Ljava/lang/String;)V
        19: .line 730
            aload 1 /* tdsWriter */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCStringUnicode:(Ljava/lang/String;)V
        20: .line 735
            aload 1 /* tdsWriter */
            aconst_null
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getResultSetScrollOpt:()I
        21: .line 736
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedTypeDefinitions:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifne 22
            sipush 4096
            goto 23
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement com.microsoft.sqlserver.jdbc.TDSWriter
      StackMap stack: com.microsoft.sqlserver.jdbc.TDSWriter null int
        22: iconst_0
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement com.microsoft.sqlserver.jdbc.TDSWriter
      StackMap stack: com.microsoft.sqlserver.jdbc.TDSWriter null int int
        23: iconst_m1
            ixor
            iand
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_0
        24: .line 735
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCInt:(Ljava/lang/String;Ljava/lang/Integer;Z)V
        25: .line 739
            aload 1 /* tdsWriter */
            aconst_null
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getResultSetCCOpt:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCInt:(Ljava/lang/String;Ljava/lang/Integer;Z)V
        26: .line 742
            aload 1 /* tdsWriter */
            aconst_null
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCInt:(Ljava/lang/String;Ljava/lang/Integer;Z)V
        27: .line 743
            return
        end local 1 // com.microsoft.sqlserver.jdbc.TDSWriter tdsWriter
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   28     0       this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0   28     1  tdsWriter  Lcom/microsoft/sqlserver/jdbc/TDSWriter;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
           Name  Flags
      tdsWriter  

  private void buildPrepExecParams(com.microsoft.sqlserver.jdbc.TDSWriter);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/TDSWriter;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // com.microsoft.sqlserver.jdbc.TDSWriter tdsWriter
         0: .line 746
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getStatementLogger:()Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 4
         1: .line 747
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getStatementLogger:()Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": calling sp_prepexec: PreparedHandle:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 748
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getPreparedStatementHandle:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", SQL:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 747
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
         4: .line 750
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.expectPrepStmtHandle:Z
         5: .line 751
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executedSqlDirectly:Z
         6: .line 752
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.expectCursorOutParams:Z
         7: .line 753
            aload 0 /* this */
            iconst_3
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.outParamIndexAdjustment:I
         8: .line 755
            aload 1 /* tdsWriter */
            iconst_m1
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeShort:(S)V
         9: .line 756
            aload 1 /* tdsWriter */
            bipush 13
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeShort:(S)V
        10: .line 757
            aload 1 /* tdsWriter */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeByte:(B)V
        11: .line 758
            aload 1 /* tdsWriter */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeByte:(B)V
        12: .line 759
            aload 1 /* tdsWriter */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.enclaveCEKs:Ljava/util/ArrayList;
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.sendEnclavePackage:(Ljava/lang/String;Ljava/util/ArrayList;)V
        13: .line 764
            aload 1 /* tdsWriter */
            aconst_null
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getPreparedStatementHandle:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCInt:(Ljava/lang/String;Ljava/lang/Integer;Z)V
        14: .line 765
            aload 0 /* this */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.resetPrepStmtHandle:(Z)Z
            pop
        15: .line 768
            aload 1 /* tdsWriter */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedTypeDefinitions:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifle 16
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedTypeDefinitions:Ljava/lang/String;
            goto 17
      StackMap locals:
      StackMap stack: com.microsoft.sqlserver.jdbc.TDSWriter
        16: aconst_null
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement com.microsoft.sqlserver.jdbc.TDSWriter
      StackMap stack: com.microsoft.sqlserver.jdbc.TDSWriter java.lang.String
        17: invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCStringUnicode:(Ljava/lang/String;)V
        18: .line 771
            aload 1 /* tdsWriter */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCStringUnicode:(Ljava/lang/String;)V
        19: .line 772
            return
        end local 1 // com.microsoft.sqlserver.jdbc.TDSWriter tdsWriter
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0   20     1  tdsWriter  Lcom/microsoft/sqlserver/jdbc/TDSWriter;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
           Name  Flags
      tdsWriter  

  private void buildExecSQLParams(com.microsoft.sqlserver.jdbc.TDSWriter);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/TDSWriter;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // com.microsoft.sqlserver.jdbc.TDSWriter tdsWriter
         0: .line 775
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getStatementLogger:()Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 2
         1: .line 776
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getStatementLogger:()Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": calling sp_executesql: SQL:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
         2: .line 778
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.expectPrepStmtHandle:Z
         3: .line 779
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executedSqlDirectly:Z
         4: .line 780
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.expectCursorOutParams:Z
         5: .line 781
            aload 0 /* this */
            iconst_2
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.outParamIndexAdjustment:I
         6: .line 783
            aload 1 /* tdsWriter */
            iconst_m1
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeShort:(S)V
         7: .line 784
            aload 1 /* tdsWriter */
            bipush 10
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeShort:(S)V
         8: .line 785
            aload 1 /* tdsWriter */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeByte:(B)V
         9: .line 786
            aload 1 /* tdsWriter */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeByte:(B)V
        10: .line 787
            aload 1 /* tdsWriter */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.enclaveCEKs:Ljava/util/ArrayList;
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.sendEnclavePackage:(Ljava/lang/String;Ljava/util/ArrayList;)V
        11: .line 790
            aload 0 /* this */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.resetPrepStmtHandle:(Z)Z
            pop
        12: .line 793
            aload 1 /* tdsWriter */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCStringUnicode:(Ljava/lang/String;)V
        13: .line 796
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedTypeDefinitions:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifle 15
        14: .line 797
            aload 1 /* tdsWriter */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedTypeDefinitions:Ljava/lang/String;
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCStringUnicode:(Ljava/lang/String;)V
        15: .line 798
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.microsoft.sqlserver.jdbc.TDSWriter tdsWriter
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0   16     1  tdsWriter  Lcom/microsoft/sqlserver/jdbc/TDSWriter;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
           Name  Flags
      tdsWriter  

  private void buildServerCursorExecParams(com.microsoft.sqlserver.jdbc.TDSWriter);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/TDSWriter;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // com.microsoft.sqlserver.jdbc.TDSWriter tdsWriter
         0: .line 801
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getStatementLogger:()Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 4
         1: .line 802
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getStatementLogger:()Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": calling sp_cursorexecute: PreparedHandle:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 803
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getPreparedStatementHandle:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", SQL:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 802
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
         4: .line 805
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.expectPrepStmtHandle:Z
         5: .line 806
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executedSqlDirectly:Z
         6: .line 807
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.expectCursorOutParams:Z
         7: .line 808
            aload 0 /* this */
            iconst_5
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.outParamIndexAdjustment:I
         8: .line 810
            aload 1 /* tdsWriter */
            iconst_m1
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeShort:(S)V
         9: .line 811
            aload 1 /* tdsWriter */
            iconst_4
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeShort:(S)V
        10: .line 812
            aload 1 /* tdsWriter */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeByte:(B)V
        11: .line 813
            aload 1 /* tdsWriter */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeByte:(B)V
        12: .line 814
            aload 1 /* tdsWriter */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.enclaveCEKs:Ljava/util/ArrayList;
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.sendEnclavePackage:(Ljava/lang/String;Ljava/util/ArrayList;)V
        13: .line 817
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.$assertionsDisabled:Z
            ifne 14
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.hasPreparedStatementHandle:()Z
            ifne 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 818
      StackMap locals:
      StackMap stack:
            aload 1 /* tdsWriter */
            aconst_null
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getPreparedStatementHandle:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCInt:(Ljava/lang/String;Ljava/lang/Integer;Z)V
        15: .line 821
            aload 1 /* tdsWriter */
            aconst_null
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCInt:(Ljava/lang/String;Ljava/lang/Integer;Z)V
        16: .line 824
            aload 1 /* tdsWriter */
            aconst_null
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getResultSetScrollOpt:()I
            sipush -4097
            iand
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCInt:(Ljava/lang/String;Ljava/lang/Integer;Z)V
        17: .line 827
            aload 1 /* tdsWriter */
            aconst_null
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getResultSetCCOpt:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCInt:(Ljava/lang/String;Ljava/lang/Integer;Z)V
        18: .line 830
            aload 1 /* tdsWriter */
            aconst_null
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_1
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCInt:(Ljava/lang/String;Ljava/lang/Integer;Z)V
        19: .line 831
            return
        end local 1 // com.microsoft.sqlserver.jdbc.TDSWriter tdsWriter
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Lcom/microsoft/sqlserver/jdbc/SQLServerPreparedStatement;
            0   20     1  tdsWriter  Lcom/microsoft/sqlserver/jdbc/TDSWriter;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
    MethodParameters:
           Name  Flags
      tdsWriter  

  private void buildExecParams(com.microsoft.sqlserver.jdbc.TDSWriter);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/TDSWriter;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
        start local 1 // com.microsoft.sqlserver.jdbc.TDSWriter tdsWriter
         0: .line 834
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getStatementLogger:()Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 4
         1: .line 835
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getStatementLogger:()Ljava/util/logging/Logger;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": calling sp_execute: PreparedHandle:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 836
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getPreparedStatementHandle:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", SQL:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 835
            invokevirtual java.util.logging.Logger.fine:(Ljava/lang/String;)V
         4: .line 838
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.expectPrepStmtHandle:Z
         5: .line 839
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executedSqlDirectly:Z
         6: .line 840
            aload 0 /* this */
            iconst_0
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.expectCursorOutParams:Z
         7: .line 841
            aload 0 /* this */
            iconst_1
            putfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.outParamIndexAdjustment:I
         8: .line 843
            aload 1 /* tdsWriter */
            iconst_m1
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeShort:(S)V
         9: .line 844
            aload 1 /* tdsWriter */
            bipush 12
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeShort:(S)V
        10: .line 845
            aload 1 /* tdsWriter */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeByte:(B)V
        11: .line 846
            aload 1 /* tdsWriter */
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeByte:(B)V
        12: .line 847
            aload 1 /* tdsWriter */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.preparedSQL:Ljava/lang/String;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.enclaveCEKs:Ljava/util/ArrayList;
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.sendEnclavePackage:(Ljava/lang/String;Ljava/util/ArrayList;)V
        13: .line 850
            getstatic com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.$assertionsDisabled:Z
            ifne 14
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.hasPreparedStatementHandle:()Z
            ifne 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 851
      StackMap locals:
      StackMap stack:
            aload 1 /* tdsWriter */
            aconst_null
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.getPreparedStatementHandle:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iconst_0
            invokevirtual com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCInt:(Ljava/lang/String;Ljava/lang/Integer;Z)V
        15: .line 852
            return
        end local 1 // com.microsoft.sqlserver.jdbc.TDSWriter tdsWriter
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this