public class org.bouncycastle.crypto.digests.MD2Digest implements org.bouncycastle.crypto.ExtendedDigest, org.bouncycastle.util.Memoable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.crypto.digests.MD2Digest
  super_class: java.lang.Object
{
  private static final int DIGEST_LENGTH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

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

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

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

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

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

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

  private static final byte[] S;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 200
            sipush 256
            newarray 8
            dup
            iconst_0
         1: .line 201
            bipush 41
            bastore
            dup
            iconst_1
            bipush 46
            bastore
            dup
            iconst_2
            bipush 67
            bastore
            dup
            iconst_3
            bipush -55
            bastore
            dup
            iconst_4
            bipush -94
            bastore
            dup
            iconst_5
            bipush -40
            bastore
            dup
            bipush 6
            bipush 124
            bastore
            dup
            bipush 7
         2: .line 202
            iconst_1
            bastore
            dup
            bipush 8
            bipush 61
            bastore
            dup
            bipush 9
            bipush 54
            bastore
            dup
            bipush 10
            bipush 84
            bastore
            dup
            bipush 11
            bipush -95
            bastore
            dup
            bipush 12
            bipush -20
            bastore
            dup
            bipush 13
            bipush -16
            bastore
            dup
            bipush 14
         3: .line 203
            bipush 6
            bastore
            dup
            bipush 15
            bipush 19
            bastore
            dup
            bipush 16
            bipush 98
            bastore
            dup
            bipush 17
            bipush -89
            bastore
            dup
            bipush 18
            iconst_5
            bastore
            dup
            bipush 19
            bipush -13
            bastore
            dup
            bipush 20
            bipush -64
            bastore
            dup
            bipush 21
         4: .line 204
            bipush -57
            bastore
            dup
            bipush 22
            bipush 115
            bastore
            dup
            bipush 23
            bipush -116
            bastore
            dup
            bipush 24
            bipush -104
            bastore
            dup
            bipush 25
            bipush -109
            bastore
            dup
            bipush 26
            bipush 43
            bastore
            dup
            bipush 27
            bipush -39
            bastore
            dup
            bipush 28
         5: .line 205
            bipush -68
            bastore
            dup
            bipush 29
            bipush 76
            bastore
            dup
            bipush 30
            bipush -126
            bastore
            dup
            bipush 31
            bipush -54
            bastore
            dup
            bipush 32
            bipush 30
            bastore
            dup
            bipush 33
            bipush -101
            bastore
            dup
            bipush 34
            bipush 87
            bastore
            dup
            bipush 35
         6: .line 206
            bipush 60
            bastore
            dup
            bipush 36
            bipush -3
            bastore
            dup
            bipush 37
            bipush -44
            bastore
            dup
            bipush 38
            bipush -32
            bastore
            dup
            bipush 39
            bipush 22
            bastore
            dup
            bipush 40
            bipush 103
            bastore
            dup
            bipush 41
            bipush 66
            bastore
            dup
            bipush 42
         7: .line 207
            bipush 111
            bastore
            dup
            bipush 43
            bipush 24
            bastore
            dup
            bipush 44
            bipush -118
            bastore
            dup
            bipush 45
            bipush 23
            bastore
            dup
            bipush 46
            bipush -27
            bastore
            dup
            bipush 47
            bipush 18
            bastore
            dup
            bipush 48
            bipush -66
            bastore
            dup
            bipush 49
         8: .line 208
            bipush 78
            bastore
            dup
            bipush 50
            bipush -60
            bastore
            dup
            bipush 51
            bipush -42
            bastore
            dup
            bipush 52
            bipush -38
            bastore
            dup
            bipush 53
            bipush -98
            bastore
            dup
            bipush 54
            bipush -34
            bastore
            dup
            bipush 55
            bipush 73
            bastore
            dup
            bipush 56
         9: .line 209
            bipush -96
            bastore
            dup
            bipush 57
            bipush -5
            bastore
            dup
            bipush 58
            bipush -11
            bastore
            dup
            bipush 59
            bipush -114
            bastore
            dup
            bipush 60
            bipush -69
            bastore
            dup
            bipush 61
            bipush 47
            bastore
            dup
            bipush 62
            bipush -18
            bastore
            dup
            bipush 63
        10: .line 210
            bipush 122
            bastore
            dup
            bipush 64
            bipush -87
            bastore
            dup
            bipush 65
            bipush 104
            bastore
            dup
            bipush 66
            bipush 121
            bastore
            dup
            bipush 67
            bipush -111
            bastore
            dup
            bipush 68
            bipush 21
            bastore
            dup
            bipush 69
            bipush -78
            bastore
            dup
            bipush 70
        11: .line 211
            bipush 7
            bastore
            dup
            bipush 71
            bipush 63
            bastore
            dup
            bipush 72
            bipush -108
            bastore
            dup
            bipush 73
            bipush -62
            bastore
            dup
            bipush 74
            bipush 16
            bastore
            dup
            bipush 75
            bipush -119
            bastore
            dup
            bipush 76
            bipush 11
            bastore
            dup
            bipush 77
        12: .line 212
            bipush 34
            bastore
            dup
            bipush 78
            bipush 95
            bastore
            dup
            bipush 79
            bipush 33
            bastore
            dup
            bipush 80
            bipush -128
            bastore
            dup
            bipush 81
            bipush 127
            bastore
            dup
            bipush 82
            bipush 93
            bastore
            dup
            bipush 83
            bipush -102
            bastore
            dup
            bipush 84
        13: .line 213
            bipush 90
            bastore
            dup
            bipush 85
            bipush -112
            bastore
            dup
            bipush 86
            bipush 50
            bastore
            dup
            bipush 87
            bipush 39
            bastore
            dup
            bipush 88
            bipush 53
            bastore
            dup
            bipush 89
            bipush 62
            bastore
            dup
            bipush 90
            bipush -52
            bastore
            dup
            bipush 91
        14: .line 214
            bipush -25
            bastore
            dup
            bipush 92
            bipush -65
            bastore
            dup
            bipush 93
            bipush -9
            bastore
            dup
            bipush 94
            bipush -105
            bastore
            dup
            bipush 95
            iconst_3
            bastore
            dup
            bipush 96
            iconst_m1
            bastore
            dup
            bipush 97
            bipush 25
            bastore
            dup
            bipush 98
        15: .line 215
            bipush 48
            bastore
            dup
            bipush 99
            bipush -77
            bastore
            dup
            bipush 100
            bipush 72
            bastore
            dup
            bipush 101
            bipush -91
            bastore
            dup
            bipush 102
            bipush -75
            bastore
            dup
            bipush 103
            bipush -47
            bastore
            dup
            bipush 104
            bipush -41
            bastore
            dup
            bipush 105
        16: .line 216
            bipush 94
            bastore
            dup
            bipush 106
            bipush -110
            bastore
            dup
            bipush 107
            bipush 42
            bastore
            dup
            bipush 108
            bipush -84
            bastore
            dup
            bipush 109
            bipush 86
            bastore
            dup
            bipush 110
            bipush -86
            bastore
            dup
            bipush 111
            bipush -58
            bastore
            dup
            bipush 112
        17: .line 217
            bipush 79
            bastore
            dup
            bipush 113
            bipush -72
            bastore
            dup
            bipush 114
            bipush 56
            bastore
            dup
            bipush 115
            bipush -46
            bastore
            dup
            bipush 116
            bipush -106
            bastore
            dup
            bipush 117
            bipush -92
            bastore
            dup
            bipush 118
            bipush 125
            bastore
            dup
            bipush 119
        18: .line 218
            bipush -74
            bastore
            dup
            bipush 120
            bipush 118
            bastore
            dup
            bipush 121
            bipush -4
            bastore
            dup
            bipush 122
            bipush 107
            bastore
            dup
            bipush 123
            bipush -30
            bastore
            dup
            bipush 124
            bipush -100
            bastore
            dup
            bipush 125
            bipush 116
            bastore
            dup
            bipush 126
        19: .line 219
            iconst_4
            bastore
            dup
            bipush 127
            bipush -15
            bastore
            dup
            sipush 128
            bipush 69
            bastore
            dup
            sipush 129
            bipush -99
            bastore
            dup
            sipush 130
            bipush 112
            bastore
            dup
            sipush 131
            bipush 89
            bastore
            dup
            sipush 132
            bipush 100
            bastore
            dup
            sipush 133
        20: .line 220
            bipush 113
            bastore
            dup
            sipush 134
            bipush -121
            bastore
            dup
            sipush 135
            bipush 32
            bastore
            dup
            sipush 136
            bipush -122
            bastore
            dup
            sipush 137
            bipush 91
            bastore
            dup
            sipush 138
            bipush -49
            bastore
            dup
            sipush 139
            bipush 101
            bastore
            dup
            sipush 140
        21: .line 221
            bipush -26
            bastore
            dup
            sipush 141
            bipush 45
            bastore
            dup
            sipush 142
            bipush -88
            bastore
            dup
            sipush 143
            iconst_2
            bastore
            dup
            sipush 144
            bipush 27
            bastore
            dup
            sipush 145
            bipush 96
            bastore
            dup
            sipush 146
            bipush 37
            bastore
            dup
            sipush 147
        22: .line 222
            bipush -83
            bastore
            dup
            sipush 148
            bipush -82
            bastore
            dup
            sipush 149
            bipush -80
            bastore
            dup
            sipush 150
            bipush -71
            bastore
            dup
            sipush 151
            bipush -10
            bastore
            dup
            sipush 152
            bipush 28
            bastore
            dup
            sipush 153
            bipush 70
            bastore
            dup
            sipush 154
        23: .line 223
            bipush 97
            bastore
            dup
            sipush 155
            bipush 105
            bastore
            dup
            sipush 156
            bipush 52
            bastore
            dup
            sipush 157
            bipush 64
            bastore
            dup
            sipush 158
            bipush 126
            bastore
            dup
            sipush 159
            bipush 15
            bastore
            dup
            sipush 160
            bipush 85
            bastore
            dup
            sipush 161
        24: .line 224
            bipush 71
            bastore
            dup
            sipush 162
            bipush -93
            bastore
            dup
            sipush 163
            bipush 35
            bastore
            dup
            sipush 164
            bipush -35
            bastore
            dup
            sipush 165
            bipush 81
            bastore
            dup
            sipush 166
            bipush -81
            bastore
            dup
            sipush 167
            bipush 58
            bastore
            dup
            sipush 168
        25: .line 225
            bipush -61
            bastore
            dup
            sipush 169
            bipush 92
            bastore
            dup
            sipush 170
            bipush -7
            bastore
            dup
            sipush 171
            bipush -50
            bastore
            dup
            sipush 172
            bipush -70
            bastore
            dup
            sipush 173
            bipush -59
            bastore
            dup
            sipush 174
            bipush -22
            bastore
            dup
            sipush 175
        26: .line 226
            bipush 38
            bastore
            dup
            sipush 176
            bipush 44
            bastore
            dup
            sipush 177
            bipush 83
            bastore
            dup
            sipush 178
            bipush 13
            bastore
            dup
            sipush 179
            bipush 110
            bastore
            dup
            sipush 180
            bipush -123
            bastore
            dup
            sipush 181
            bipush 40
            bastore
            dup
            sipush 182
        27: .line 227
            bipush -124
            bastore
            dup
            sipush 183
            bipush 9
            bastore
            dup
            sipush 184
            bipush -45
            bastore
            dup
            sipush 185
            bipush -33
            bastore
            dup
            sipush 186
            bipush -51
            bastore
            dup
            sipush 187
            bipush -12
            bastore
            dup
            sipush 188
            bipush 65
            bastore
            dup
            sipush 189
        28: .line 228
            bipush -127
            bastore
            dup
            sipush 190
            bipush 77
            bastore
            dup
            sipush 191
            bipush 82
            bastore
            dup
            sipush 192
            bipush 106
            bastore
            dup
            sipush 193
            bipush -36
            bastore
            dup
            sipush 194
            bipush 55
            bastore
            dup
            sipush 195
            bipush -56
            bastore
            dup
            sipush 196
        29: .line 229
            bipush 108
            bastore
            dup
            sipush 197
            bipush -63
            bastore
            dup
            sipush 198
            bipush -85
            bastore
            dup
            sipush 199
            bipush -6
            bastore
            dup
            sipush 200
            bipush 36
            bastore
            dup
            sipush 201
            bipush -31
            bastore
            dup
            sipush 202
            bipush 123
            bastore
            dup
            sipush 203
        30: .line 230
            bipush 8
            bastore
            dup
            sipush 204
            bipush 12
            bastore
            dup
            sipush 205
            bipush -67
            bastore
            dup
            sipush 206
            bipush -79
            bastore
            dup
            sipush 207
            bipush 74
            bastore
            dup
            sipush 208
            bipush 120
            bastore
            dup
            sipush 209
            bipush -120
            bastore
            dup
            sipush 210
        31: .line 231
            bipush -107
            bastore
            dup
            sipush 211
            bipush -117
            bastore
            dup
            sipush 212
            bipush -29
            bastore
            dup
            sipush 213
            bipush 99
            bastore
            dup
            sipush 214
            bipush -24
            bastore
            dup
            sipush 215
            bipush 109
            bastore
            dup
            sipush 216
            bipush -23
            bastore
            dup
            sipush 217
        32: .line 232
            bipush -53
            bastore
            dup
            sipush 218
            bipush -43
            bastore
            dup
            sipush 219
            bipush -2
            bastore
            dup
            sipush 220
            bipush 59
            bastore
            dup
            sipush 222
            bipush 29
            bastore
            dup
            sipush 223
            bipush 57
            bastore
            dup
            sipush 224
        33: .line 233
            bipush -14
            bastore
            dup
            sipush 225
            bipush -17
            bastore
            dup
            sipush 226
            bipush -73
            bastore
            dup
            sipush 227
            bipush 14
            bastore
            dup
            sipush 228
            bipush 102
            bastore
            dup
            sipush 229
            bipush 88
            bastore
            dup
            sipush 230
            bipush -48
            bastore
            dup
            sipush 231
        34: .line 234
            bipush -28
            bastore
            dup
            sipush 232
            bipush -90
            bastore
            dup
            sipush 233
            bipush 119
            bastore
            dup
            sipush 234
            bipush 114
            bastore
            dup
            sipush 235
            bipush -8
            bastore
            dup
            sipush 236
            bipush -21
            bastore
            dup
            sipush 237
            bipush 117
            bastore
            dup
            sipush 238
        35: .line 235
            bipush 75
            bastore
            dup
            sipush 239
            bipush 10
            bastore
            dup
            sipush 240
            bipush 49
            bastore
            dup
            sipush 241
            bipush 68
            bastore
            dup
            sipush 242
            bipush 80
            bastore
            dup
            sipush 243
            bipush -76
            bastore
            dup
            sipush 244
            bipush -113
            bastore
            dup
            sipush 245
        36: .line 236
            bipush -19
            bastore
            dup
            sipush 246
            bipush 31
            bastore
            dup
            sipush 247
            bipush 26
            bastore
            dup
            sipush 248
            bipush -37
            bastore
            dup
            sipush 249
            bipush -103
            bastore
            dup
            sipush 250
            bipush -115
            bastore
            dup
            sipush 251
            bipush 51
            bastore
            dup
            sipush 252
        37: .line 237
            bipush -97
            bastore
            dup
            sipush 253
            bipush 17
            bastore
            dup
            sipush 254
            bipush -125
            bastore
            dup
            sipush 255
            bipush 20
            bastore
        38: .line 200
            putstatic org.bouncycastle.crypto.digests.MD2Digest.S:[B
        39: .line 238
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
         0: .line 25
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 16
            aload 0 /* this */
            bipush 48
            newarray 8
            putfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
         2: .line 19
            aload 0 /* this */
            bipush 16
            newarray 8
            putfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
         3: .line 22
            aload 0 /* this */
            bipush 16
            newarray 8
            putfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
         4: .line 27
            aload 0 /* this */
            invokevirtual org.bouncycastle.crypto.digests.MD2Digest.reset:()V
         5: .line 28
            return
        end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/bouncycastle/crypto/digests/MD2Digest;

  public void <init>(org.bouncycastle.crypto.digests.MD2Digest);
    descriptor: (Lorg/bouncycastle/crypto/digests/MD2Digest;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
        start local 1 // org.bouncycastle.crypto.digests.MD2Digest t
         0: .line 30
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 16
            aload 0 /* this */
            bipush 48
            newarray 8
            putfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
         2: .line 19
            aload 0 /* this */
            bipush 16
            newarray 8
            putfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
         3: .line 22
            aload 0 /* this */
            bipush 16
            newarray 8
            putfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
         4: .line 32
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual org.bouncycastle.crypto.digests.MD2Digest.copyIn:(Lorg/bouncycastle/crypto/digests/MD2Digest;)V
         5: .line 33
            return
        end local 1 // org.bouncycastle.crypto.digests.MD2Digest t
        end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/bouncycastle/crypto/digests/MD2Digest;
            0    6     1     t  Lorg/bouncycastle/crypto/digests/MD2Digest;
    MethodParameters:
      Name  Flags
      t     

  private void copyIn(org.bouncycastle.crypto.digests.MD2Digest);
    descriptor: (Lorg/bouncycastle/crypto/digests/MD2Digest;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
        start local 1 // org.bouncycastle.crypto.digests.MD2Digest t
         0: .line 37
            aload 1 /* t */
            getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
            iconst_0
            aload 1 /* t */
            getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         1: .line 38
            aload 0 /* this */
            aload 1 /* t */
            getfield org.bouncycastle.crypto.digests.MD2Digest.xOff:I
            putfield org.bouncycastle.crypto.digests.MD2Digest.xOff:I
         2: .line 39
            aload 1 /* t */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            iconst_0
            aload 1 /* t */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 40
            aload 0 /* this */
            aload 1 /* t */
            getfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
            putfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
         4: .line 41
            aload 1 /* t */
            getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
            iconst_0
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
            iconst_0
            aload 1 /* t */
            getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 42
            aload 0 /* this */
            aload 1 /* t */
            getfield org.bouncycastle.crypto.digests.MD2Digest.COff:I
            putfield org.bouncycastle.crypto.digests.MD2Digest.COff:I
         6: .line 43
            return
        end local 1 // org.bouncycastle.crypto.digests.MD2Digest t
        end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/bouncycastle/crypto/digests/MD2Digest;
            0    7     1     t  Lorg/bouncycastle/crypto/digests/MD2Digest;
    MethodParameters:
      Name  Flags
      t     

  public java.lang.String getAlgorithmName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
         0: .line 52
            ldc "MD2"
            areturn
        end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/crypto/digests/MD2Digest;

  public int getDigestSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
         0: .line 61
            bipush 16
            ireturn
        end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/crypto/digests/MD2Digest;

  public int doFinal(byte[], int);
    descriptor: ([BI)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
        start local 1 // byte[] out
        start local 2 // int outOff
         0: .line 73
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            arraylength
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
            isub
            i2b
            istore 3 /* paddingByte */
        start local 3 // byte paddingByte
         1: .line 74
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
            istore 4 /* i */
        start local 4 // int i
         2: goto 5
         3: .line 76
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            iload 4 /* i */
            iload 3 /* paddingByte */
            bastore
         4: .line 74
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 4 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            arraylength
            if_icmplt 3
        end local 4 // int i
         6: .line 79
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            invokevirtual org.bouncycastle.crypto.digests.MD2Digest.processCheckSum:([B)V
         7: .line 81
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            invokevirtual org.bouncycastle.crypto.digests.MD2Digest.processBlock:([B)V
         8: .line 83
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
            invokevirtual org.bouncycastle.crypto.digests.MD2Digest.processBlock:([B)V
         9: .line 85
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.xOff:I
            aload 1 /* out */
            iload 2 /* outOff */
            bipush 16
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 87
            aload 0 /* this */
            invokevirtual org.bouncycastle.crypto.digests.MD2Digest.reset:()V
        11: .line 89
            bipush 16
            ireturn
        end local 3 // byte paddingByte
        end local 2 // int outOff
        end local 1 // byte[] out
        end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lorg/bouncycastle/crypto/digests/MD2Digest;
            0   12     1          out  [B
            0   12     2       outOff  I
            1   12     3  paddingByte  B
            2    6     4            i  I
    MethodParameters:
        Name  Flags
      out     
      outOff  

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
         0: .line 96
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.crypto.digests.MD2Digest.xOff:I
         1: .line 97
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         2: goto 5
         3: .line 99
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
            iload 1 /* i */
            iconst_0
            bastore
         4: .line 97
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 1 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
            arraylength
            if_icmpne 3
        end local 1 // int i
         6: .line 101
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
         7: .line 102
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         8: goto 11
         9: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            iload 1 /* i */
            iconst_0
            bastore
        10: .line 102
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 1 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            arraylength
            if_icmpne 9
        end local 1 // int i
        12: .line 106
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.crypto.digests.MD2Digest.COff:I
        13: .line 107
            iconst_0
            istore 1 /* i */
        start local 1 // int i
        14: goto 17
        15: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
            iload 1 /* i */
            iconst_0
            bastore
        16: .line 107
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 1 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
            arraylength
            if_icmpne 15
        end local 1 // int i
        18: .line 111
            return
        end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lorg/bouncycastle/crypto/digests/MD2Digest;
            2    6     1     i  I
            8   12     1     i  I
           14   18     1     i  I

  public void update(byte);
    descriptor: (B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
        start local 1 // byte in
         0: .line 119
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            aload 0 /* this */
            dup
            getfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
            dup_x1
            iconst_1
            iadd
            putfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
            iload 1 /* in */
            bastore
         1: .line 121
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
            bipush 16
            if_icmpne 5
         2: .line 123
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            invokevirtual org.bouncycastle.crypto.digests.MD2Digest.processCheckSum:([B)V
         3: .line 124
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            invokevirtual org.bouncycastle.crypto.digests.MD2Digest.processBlock:([B)V
         4: .line 125
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
         5: .line 127
      StackMap locals:
      StackMap stack:
            return
        end local 1 // byte in
        end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/bouncycastle/crypto/digests/MD2Digest;
            0    6     1    in  B
    MethodParameters:
      Name  Flags
      in    

  public void update(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
        start local 1 // byte[] in
        start local 2 // int inOff
        start local 3 // int len
         0: .line 141
            goto 4
         1: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* in */
            iload 2 /* inOff */
            baload
            invokevirtual org.bouncycastle.crypto.digests.MD2Digest.update:(B)V
         2: .line 144
            iinc 2 /* inOff */ 1
         3: .line 145
            iinc 3 /* len */ -1
         4: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.mOff:I
            ifeq 11
            iload 3 /* len */
            ifgt 1
         5: .line 151
            goto 11
         6: .line 153
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            iload 2 /* inOff */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            iconst_0
            bipush 16
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 154
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            invokevirtual org.bouncycastle.crypto.digests.MD2Digest.processCheckSum:([B)V
         8: .line 155
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.M:[B
            invokevirtual org.bouncycastle.crypto.digests.MD2Digest.processBlock:([B)V
         9: .line 156
            iinc 3 /* len */ -16
        10: .line 157
            iinc 2 /* inOff */ 16
        11: .line 151
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            bipush 16
            if_icmpgt 6
        12: .line 163
            goto 16
        13: .line 165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* in */
            iload 2 /* inOff */
            baload
            invokevirtual org.bouncycastle.crypto.digests.MD2Digest.update:(B)V
        14: .line 166
            iinc 2 /* inOff */ 1
        15: .line 167
            iinc 3 /* len */ -1
        16: .line 163
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            ifgt 13
        17: .line 169
            return
        end local 3 // int len
        end local 2 // int inOff
        end local 1 // byte[] in
        end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Lorg/bouncycastle/crypto/digests/MD2Digest;
            0   18     1     in  [B
            0   18     2  inOff  I
            0   18     3    len  I
    MethodParameters:
       Name  Flags
      in     
      inOff  
      len    

  protected void processCheckSum(byte[]);
    descriptor: ([B)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
        start local 1 // byte[] m
         0: .line 172
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
            bipush 15
            baload
            istore 2 /* L */
        start local 2 // int L
         1: .line 173
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 6
         3: .line 175
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
            iload 3 /* i */
            dup2
            baload
            getstatic org.bouncycastle.crypto.digests.MD2Digest.S:[B
            aload 1 /* m */
            iload 3 /* i */
            baload
            iload 2 /* L */
            ixor
            sipush 255
            iand
            baload
            ixor
            i2b
            bastore
         4: .line 176
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.C:[B
            iload 3 /* i */
            baload
            istore 2 /* L */
         5: .line 173
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            bipush 16
            if_icmplt 3
        end local 3 // int i
         7: .line 178
            return
        end local 2 // int L
        end local 1 // byte[] m
        end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/bouncycastle/crypto/digests/MD2Digest;
            0    8     1     m  [B
            1    8     2     L  I
            2    7     3     i  I
    MethodParameters:
      Name  Flags
      m     

  protected void processBlock(byte[]);
    descriptor: ([B)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
        start local 1 // byte[] m
         0: .line 181
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 183
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
            iload 2 /* i */
            bipush 16
            iadd
            aload 1 /* m */
            iload 2 /* i */
            baload
            bastore
         3: .line 184
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
            iload 2 /* i */
            bipush 32
            iadd
            aload 1 /* m */
            iload 2 /* i */
            baload
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
            iload 2 /* i */
            baload
            ixor
            i2b
            bastore
         4: .line 181
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            bipush 16
            if_icmplt 2
        end local 2 // int i
         6: .line 187
            iconst_0
            istore 2 /* t */
        start local 2 // int t
         7: .line 189
            iconst_0
            istore 3 /* j */
        start local 3 // int j
         8: goto 17
         9: .line 191
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 4 /* k */
        start local 4 // int k
        10: goto 14
        11: .line 193
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.crypto.digests.MD2Digest.X:[B
            iload 4 /* k */
            dup2
            baload
            getstatic org.bouncycastle.crypto.digests.MD2Digest.S:[B
            iload 2 /* t */
            baload
            ixor
            i2b
            dup_x2
            bastore
            istore 2 /* t */
        12: .line 194
            iload 2 /* t */
            sipush 255
            iand
            istore 2 /* t */
        13: .line 191
            iinc 4 /* k */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* k */
            bipush 48
            if_icmplt 11
        end local 4 // int k
        15: .line 196
            iload 2 /* t */
            iload 3 /* j */
            iadd
            sipush 256
            irem
            istore 2 /* t */
        16: .line 189
            iinc 3 /* j */ 1
      StackMap locals:
      StackMap stack:
        17: iload 3 /* j */
            bipush 18
            if_icmplt 9
        end local 3 // int j
        18: .line 198
            return
        end local 2 // int t
        end local 1 // byte[] m
        end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lorg/bouncycastle/crypto/digests/MD2Digest;
            0   19     1     m  [B
            1    6     2     i  I
            7   19     2     t  I
            8   18     3     j  I
           10   15     4     k  I
    MethodParameters:
      Name  Flags
      m     

  public int getByteLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
         0: .line 242
            bipush 16
            ireturn
        end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/crypto/digests/MD2Digest;

  public org.bouncycastle.util.Memoable copy();
    descriptor: ()Lorg/bouncycastle/util/Memoable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
         0: .line 247
            new org.bouncycastle.crypto.digests.MD2Digest
            dup
            aload 0 /* this */
            invokespecial org.bouncycastle.crypto.digests.MD2Digest.<init>:(Lorg/bouncycastle/crypto/digests/MD2Digest;)V
            areturn
        end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/crypto/digests/MD2Digest;

  public void reset(org.bouncycastle.util.Memoable);
    descriptor: (Lorg/bouncycastle/util/Memoable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.bouncycastle.crypto.digests.MD2Digest this
        start local 1 // org.bouncycastle.util.Memoable other
         0: .line 252
            aload 1 /* other */
            checkcast org.bouncycastle.crypto.digests.MD2Digest
            astore 2 /* d */
        start local 2 // org.bouncycastle.crypto.digests.MD2Digest d
         1: .line 254
            aload 0 /* this */
            aload 2 /* d */
            invokevirtual org.bouncycastle.crypto.digests.MD2Digest.copyIn:(Lorg/bouncycastle/crypto/digests/MD2Digest;)V
         2: .line 255
            return
        end local 2 // org.bouncycastle.crypto.digests.MD2Digest d
        end local 1 // org.bouncycastle.util.Memoable other
        end local 0 // org.bouncycastle.crypto.digests.MD2Digest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/bouncycastle/crypto/digests/MD2Digest;
            0    3     1  other  Lorg/bouncycastle/util/Memoable;
            1    3     2      d  Lorg/bouncycastle/crypto/digests/MD2Digest;
    MethodParameters:
       Name  Flags
      other  
}
SourceFile: "MD2Digest.java"