public class org.h2.security.Fog implements org.h2.security.BlockCipher
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.security.Fog
  super_class: java.lang.Object
{
  private int key;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.security.Fog this
         0: .line 15
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.h2.security.Fog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/security/Fog;

  public void encrypt(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.h2.security.Fog this
        start local 1 // byte[] bytes
        start local 2 // int off
        start local 3 // int len
         0: .line 21
            iload 2 /* off */
            istore 4 /* i */
        start local 4 // int i
         1: goto 4
         2: .line 22
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bytes */
            aload 1 /* bytes */
            iload 4 /* i */
            invokevirtual org.h2.security.Fog.encryptBlock:([B[BI)V
         3: .line 21
            iinc 4 /* i */ 16
      StackMap locals:
      StackMap stack:
         4: iload 4 /* i */
            iload 2 /* off */
            iload 3 /* len */
            iadd
            if_icmplt 2
        end local 4 // int i
         5: .line 24
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] bytes
        end local 0 // org.h2.security.Fog this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/h2/security/Fog;
            0    6     1  bytes  [B
            0    6     2    off  I
            0    6     3    len  I
            1    5     4      i  I
    MethodParameters:
       Name  Flags
      bytes  
      off    
      len    

  public void decrypt(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.h2.security.Fog this
        start local 1 // byte[] bytes
        start local 2 // int off
        start local 3 // int len
         0: .line 28
            iload 2 /* off */
            istore 4 /* i */
        start local 4 // int i
         1: goto 4
         2: .line 29
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bytes */
            aload 1 /* bytes */
            iload 4 /* i */
            invokevirtual org.h2.security.Fog.decryptBlock:([B[BI)V
         3: .line 28
            iinc 4 /* i */ 16
      StackMap locals:
      StackMap stack:
         4: iload 4 /* i */
            iload 2 /* off */
            iload 3 /* len */
            iadd
            if_icmplt 2
        end local 4 // int i
         5: .line 31
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] bytes
        end local 0 // org.h2.security.Fog this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/h2/security/Fog;
            0    6     1  bytes  [B
            0    6     2    off  I
            0    6     3    len  I
            1    5     4      i  I
    MethodParameters:
       Name  Flags
      bytes  
      off    
      len    

  private void encryptBlock(byte[], byte[], int);
    descriptor: ([B[BI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=4
        start local 0 // org.h2.security.Fog this
        start local 1 // byte[] in
        start local 2 // byte[] out
        start local 3 // int off
         0: .line 34
            aload 1 /* in */
            iload 3 /* off */
            invokestatic org.h2.util.Bits.readInt:([BI)I
            istore 4 /* x0 */
        start local 4 // int x0
         1: .line 35
            aload 1 /* in */
            iload 3 /* off */
            iconst_4
            iadd
            invokestatic org.h2.util.Bits.readInt:([BI)I
            istore 5 /* x1 */
        start local 5 // int x1
         2: .line 36
            aload 1 /* in */
            iload 3 /* off */
            bipush 8
            iadd
            invokestatic org.h2.util.Bits.readInt:([BI)I
            istore 6 /* x2 */
        start local 6 // int x2
         3: .line 37
            aload 1 /* in */
            iload 3 /* off */
            bipush 12
            iadd
            invokestatic org.h2.util.Bits.readInt:([BI)I
            istore 7 /* x3 */
        start local 7 // int x3
         4: .line 38
            aload 0 /* this */
            getfield org.h2.security.Fog.key:I
            istore 8 /* k */
        start local 8 // int k
         5: .line 39
            iload 4 /* x0 */
            iload 8 /* k */
            ixor
            iload 5 /* x1 */
            invokestatic java.lang.Integer.rotateLeft:(II)I
            istore 4 /* x0 */
         6: .line 40
            iload 6 /* x2 */
            iload 8 /* k */
            ixor
            iload 5 /* x1 */
            invokestatic java.lang.Integer.rotateLeft:(II)I
            istore 6 /* x2 */
         7: .line 41
            iload 5 /* x1 */
            iload 8 /* k */
            ixor
            iload 4 /* x0 */
            invokestatic java.lang.Integer.rotateLeft:(II)I
            istore 5 /* x1 */
         8: .line 42
            iload 7 /* x3 */
            iload 8 /* k */
            ixor
            iload 4 /* x0 */
            invokestatic java.lang.Integer.rotateLeft:(II)I
            istore 7 /* x3 */
         9: .line 43
            aload 2 /* out */
            iload 3 /* off */
            iload 4 /* x0 */
            invokestatic org.h2.util.Bits.writeInt:([BII)V
        10: .line 44
            aload 2 /* out */
            iload 3 /* off */
            iconst_4
            iadd
            iload 5 /* x1 */
            invokestatic org.h2.util.Bits.writeInt:([BII)V
        11: .line 45
            aload 2 /* out */
            iload 3 /* off */
            bipush 8
            iadd
            iload 6 /* x2 */
            invokestatic org.h2.util.Bits.writeInt:([BII)V
        12: .line 46
            aload 2 /* out */
            iload 3 /* off */
            bipush 12
            iadd
            iload 7 /* x3 */
            invokestatic org.h2.util.Bits.writeInt:([BII)V
        13: .line 47
            return
        end local 8 // int k
        end local 7 // int x3
        end local 6 // int x2
        end local 5 // int x1
        end local 4 // int x0
        end local 3 // int off
        end local 2 // byte[] out
        end local 1 // byte[] in
        end local 0 // org.h2.security.Fog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/h2/security/Fog;
            0   14     1    in  [B
            0   14     2   out  [B
            0   14     3   off  I
            1   14     4    x0  I
            2   14     5    x1  I
            3   14     6    x2  I
            4   14     7    x3  I
            5   14     8     k  I
    MethodParameters:
      Name  Flags
      in    
      out   
      off   

  private void decryptBlock(byte[], byte[], int);
    descriptor: ([B[BI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=4
        start local 0 // org.h2.security.Fog this
        start local 1 // byte[] in
        start local 2 // byte[] out
        start local 3 // int off
         0: .line 50
            aload 1 /* in */
            iload 3 /* off */
            invokestatic org.h2.util.Bits.readInt:([BI)I
            istore 4 /* x0 */
        start local 4 // int x0
         1: .line 51
            aload 1 /* in */
            iload 3 /* off */
            iconst_4
            iadd
            invokestatic org.h2.util.Bits.readInt:([BI)I
            istore 5 /* x1 */
        start local 5 // int x1
         2: .line 52
            aload 1 /* in */
            iload 3 /* off */
            bipush 8
            iadd
            invokestatic org.h2.util.Bits.readInt:([BI)I
            istore 6 /* x2 */
        start local 6 // int x2
         3: .line 53
            aload 1 /* in */
            iload 3 /* off */
            bipush 12
            iadd
            invokestatic org.h2.util.Bits.readInt:([BI)I
            istore 7 /* x3 */
        start local 7 // int x3
         4: .line 54
            aload 0 /* this */
            getfield org.h2.security.Fog.key:I
            istore 8 /* k */
        start local 8 // int k
         5: .line 55
            iload 5 /* x1 */
            iload 4 /* x0 */
            invokestatic java.lang.Integer.rotateRight:(II)I
            iload 8 /* k */
            ixor
            istore 5 /* x1 */
         6: .line 56
            iload 7 /* x3 */
            iload 4 /* x0 */
            invokestatic java.lang.Integer.rotateRight:(II)I
            iload 8 /* k */
            ixor
            istore 7 /* x3 */
         7: .line 57
            iload 4 /* x0 */
            iload 5 /* x1 */
            invokestatic java.lang.Integer.rotateRight:(II)I
            iload 8 /* k */
            ixor
            istore 4 /* x0 */
         8: .line 58
            iload 6 /* x2 */
            iload 5 /* x1 */
            invokestatic java.lang.Integer.rotateRight:(II)I
            iload 8 /* k */
            ixor
            istore 6 /* x2 */
         9: .line 59
            aload 2 /* out */
            iload 3 /* off */
            iload 4 /* x0 */
            invokestatic org.h2.util.Bits.writeInt:([BII)V
        10: .line 60
            aload 2 /* out */
            iload 3 /* off */
            iconst_4
            iadd
            iload 5 /* x1 */
            invokestatic org.h2.util.Bits.writeInt:([BII)V
        11: .line 61
            aload 2 /* out */
            iload 3 /* off */
            bipush 8
            iadd
            iload 6 /* x2 */
            invokestatic org.h2.util.Bits.writeInt:([BII)V
        12: .line 62
            aload 2 /* out */
            iload 3 /* off */
            bipush 12
            iadd
            iload 7 /* x3 */
            invokestatic org.h2.util.Bits.writeInt:([BII)V
        13: .line 63
            return
        end local 8 // int k
        end local 7 // int x3
        end local 6 // int x2
        end local 5 // int x1
        end local 4 // int x0
        end local 3 // int off
        end local 2 // byte[] out
        end local 1 // byte[] in
        end local 0 // org.h2.security.Fog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/h2/security/Fog;
            0   14     1    in  [B
            0   14     2   out  [B
            0   14     3   off  I
            1   14     4    x0  I
            2   14     5    x1  I
            3   14     6    x2  I
            4   14     7    x3  I
            5   14     8     k  I
    MethodParameters:
      Name  Flags
      in    
      out   
      off   

  public int getKeyLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.security.Fog this
         0: .line 67
            bipush 16
            ireturn
        end local 0 // org.h2.security.Fog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/security/Fog;

  public void setKey(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.h2.security.Fog this
        start local 1 // byte[] key
         0: .line 72
            aload 0 /* this */
            aload 1 /* key */
            iconst_0
            invokestatic org.h2.util.Bits.readLong:([BI)J
            l2i
            putfield org.h2.security.Fog.key:I
         1: .line 73
            return
        end local 1 // byte[] key
        end local 0 // org.h2.security.Fog this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/security/Fog;
            0    2     1   key  [B
    MethodParameters:
      Name  Flags
      key   
}
SourceFile: "Fog.java"