// Decompiled with JetBrains decompiler
// Type: .
// Assembly: !, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 0FE674E5-1D2B-4709-A920-1E9AF1978A98
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00000-msil\Backdoor.Win32.Poison.huvw-629a8704767e5bffb35022e9cfd91032277f1b6838a887590e0c114d3260f500.exe

using \u0001\u0002;
using System;

namespace \u0001\u0002
{
  internal class \u0001\u0018
  {
    public static readonly uint[] \u0002 = new uint[256];
    private uint \u0001\u001F = uint.MaxValue;

    static \u0001\u0018()
    {
      for (uint index1 = 0; index1 < 256U; ++index1)
      {
        uint num = index1;
        for (int index2 = 0; index2 < 8; ++index2)
        {
          if (((int) num & 1) != 0)
            num = num >> 1 ^ 3988292384U;
          else
            num >>= 1;
        }
        \u0001\u0018.\u0002[(IntPtr) index1] = num;
      }
    }

    public void \u0001\u001B() => this.\u0001\u001F = uint.MaxValue;

    public void \u0001\u001C(byte b) => this.\u0001\u001F = \u0001\u0018.\u0002[(int) (byte) this.\u0001\u001F ^ (int) b] ^ this.\u0001\u001F >> 8;

    public void \u0001\u001D(byte[] data, uint offset, uint size)
    {
      for (uint index = 0; index < size; ++index)
        this.\u0001\u001F = \u0001\u0018.\u0002[(int) (byte) this.\u0001\u001F ^ (int) data[(IntPtr) (offset + index)]] ^ this.\u0001\u001F >> 8;
    }

    public uint \u0001\u001A() => this.\u0001\u001F ^ uint.MaxValue;

    private static uint \u0001\u0019(byte[] data, uint offset, uint size)
    {
      \u0001\u0018 obj = new \u0001\u0018();
      obj.\u0001\u001D(data, offset, size);
      return obj.\u0001\u001A();
    }

    private static bool \u0001\u001E(uint digest, byte[] data, uint offset, uint size) => (int) \u0001\u0018.\u0001\u0019(data, offset, size) == (int) digest;
  }
}
