// Decompiled with JetBrains decompiler
// Type: .
// Assembly: Stub, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 7761CAE9-D290-48D9-A44C-5C95C5289DD6
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00000-msil\Trojan-Downloader.MSIL.VKont.a-1d4cb0f0a33db378f9e4ae1b0f91ee4baabf5f1a669646e1278e016241a1452a.exe

using \u0001;
using System;
using System.Collections;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;

namespace \u0001
{
  internal sealed class \u0003
  {
    [NonSerialized]
    internal static \u0001.\u0001 \u0001;
    private static string \u0001;
    private static string \u0002;
    private static byte[] \u0001;
    private static Hashtable \u0001;
    private static bool \u0001;
    private static int \u0001;

    public static string \u0002([In] int obj0)
    {
      obj0 -= \u0003.\u0001;
      if (\u0003.\u0001)
      {
        string str = (string) \u0003.\u0001[(object) obj0];
        if (str != null)
          return str;
      }
      int num1 = obj0;
      byte[] numArray1 = \u0003.\u0001;
      int index1 = num1;
      int index2 = index1 + 1;
      int num2 = (int) numArray1[index1];
      int count;
      if ((num2 & 128) == 0)
      {
        count = num2;
        if (count == 0)
          return string.Empty;
      }
      else if ((num2 & 64) == 0)
      {
        count = ((num2 & 63) << 8) + (int) \u0003.\u0001[index2++];
      }
      else
      {
        int num3 = (num2 & 31) << 24;
        byte[] numArray2 = \u0003.\u0001;
        int index3 = index2;
        int num4 = index3 + 1;
        int num5 = (int) numArray2[index3] << 16;
        int num6 = num3 + num5;
        byte[] numArray3 = \u0003.\u0001;
        int index4 = num4;
        int num7 = index4 + 1;
        int num8 = (int) numArray3[index4] << 8;
        int num9 = num6 + num8;
        byte[] numArray4 = \u0003.\u0001;
        int index5 = num7;
        index2 = index5 + 1;
        int num10 = (int) numArray4[index5];
        count = num9 + num10;
      }
      try
      {
        byte[] bytes = Convert.FromBase64String(Encoding.UTF8.GetString(\u0003.\u0001, index2, count));
        string str = string.Intern(Encoding.UTF8.GetString(bytes, 0, bytes.Length));
        if (\u0003.\u0001)
        {
          try
          {
            \u0003.\u0001.Add((object) obj0, (object) str);
          }
          catch
          {
          }
        }
        return str;
      }
      catch
      {
        return (string) null;
      }
    }

    static \u0003()
    {
      \u0002.\u0002();
      \u0003.\u0001 = "0";
      \u0003.\u0002 = "17";
      \u0003.\u0001 = (byte[]) null;
      \u0003.\u0001 = (Hashtable) null;
      \u0003.\u0001 = false;
      \u0003.\u0001 = 0;
      if (\u0003.\u0001 == "1")
      {
        \u0003.\u0001 = true;
        \u0003.\u0001 = new Hashtable();
      }
      \u0003.\u0001 = Convert.ToInt32(\u0003.\u0002);
      using (Stream manifestResourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("{7761cae9-d290-48d9-a44c-5c95c5289dd6}"))
      {
        int int32 = Convert.ToInt32(manifestResourceStream.Length);
        \u0003.\u0001 = new byte[int32];
        manifestResourceStream.Read(\u0003.\u0001, 0, int32);
        manifestResourceStream.Close();
      }
    }
  }
}
