// Decompiled with JetBrains decompiler
// Type: ___codefort.
// Assembly: syncui, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 78CA5C80-4468-4951-96CD-AAE77DEC3305
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00001-msil\Trojan.MSIL.Crypt.hixz-2c5e5faaed4f224f916102058544604c85e25aea75846857f578c0af84bc5c75.exe

using System;
using System.Globalization;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;

namespace ___codefort
{
  internal static class \u0012\u0017
  {
    internal static Module \u0003\u0002\u0008 = Assembly.GetExecutingAssembly().ManifestModule;

    internal static void \u0003\u0002\u0007([In] int obj0)
    {
      int metadataToken1 = obj0 + 33554432;
      Type type = \u0012\u0017.\u0003\u0002\u0008.ResolveType(metadataToken1);
      foreach (FieldInfo field in type.GetFields())
      {
        string name = field.Name;
        StringBuilder stringBuilder = new StringBuilder();
        for (int index = 0; index < name.Length; ++index)
          stringBuilder.Append((char) ((uint) (byte) name[index] + 47U));
        int num1 = int.Parse(stringBuilder.ToString(), NumberStyles.HexNumber);
        int num2 = num1 & 16777215;
        int num3 = num1 >> 24;
        int metadataToken2 = 167772160 + num2;
        MethodInfo methodInfo = (MethodInfo) \u0012\u0017.\u0003\u0002\u0008.ResolveMethod(metadataToken2);
        field.SetValue((object) null, (object) \u0012\u0017.\u0003\u0001\u000A(type, methodInfo, num3));
      }
    }

    private static MulticastDelegate \u0003\u0001\u000A(
      [In] Type obj0,
      [In] MethodInfo obj1,
      [In] int obj2)
    {
      return (MulticastDelegate) Delegate.CreateDelegate(obj0, obj1);
    }
  }
}
