// Decompiled with JetBrains decompiler
// Type: .
// Assembly: Idm, Version=6.5.8.1, Culture=neutral, PublicKeyToken=null
// MVID: 8A2CC06E-B699-4A98-98EE-08831FC9C995
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00001-msil\Backdoor.Win32.DarkKomet.gwon-35b4a84324681a1000c14cf114b6f94ada34eb6c6ca38b9a4584b31e742aece3.exe

using \u001C\u0004;
using \u007F\u0004;
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;

namespace \u001C\u0004
{
  internal class \u009B
  {
    [DebuggerNonUserCode]
    public \u009B()
    {
      try
      {
      }
      catch (Exception ex)
      {
        \u0089\u0004.\u0018\u0005(ex, (object) this);
        throw;
      }
    }

    public static string \u0090\u0003([In] string obj0, [In] string obj1)
    {
      try
      {
        return \u0003\u0004.\u0093\u0005().GetString(\u009B.\u0090\u0003(\u0003\u0004.\u0093\u0005().GetBytes(obj0), \u0004\u0004.\u007E\u0092\u0005((object) Encoding.Default, obj1)));
      }
      catch (Exception ex)
      {
        string str1;
        string str2 = str1;
        string str3 = obj0;
        string str4 = obj1;
        \u0089\u0004.\u001A\u0005(ex, (object) str2, (object) str3, (object) str4);
        throw;
      }
    }

    public static byte[] \u0090\u0003([In] byte[] obj0, [In] byte[] obj1)
    {
      int num1;
      int num2;
      try
      {
        num1 = checked (obj0.Length * 2 + obj1.Length);
        while (true)
        {
          int num3 = num1;
          num2 = 0;
          int num4 = num2;
          if (num3 >= num4)
          {
            obj0[num1 % obj0.Length] = checked ((byte) unchecked (checked (((int) obj0[unchecked (num1 % obj0.Length)] ^ (int) obj1[unchecked (num1 % obj1.Length)]) - (int) obj0[unchecked (checked (num1 + 1) % obj0.Length)] + 256) % 256));
            checked { num1 += -1; }
          }
          else
            break;
        }
        return obj0;
      }
      catch (Exception ex)
      {
        byte[] numArray1;
        byte[] numArray2 = numArray1;
        // ISSUE: variable of a boxed type
        __Boxed<int> local1 = (ValueType) num1;
        // ISSUE: variable of a boxed type
        __Boxed<int> local2 = (ValueType) num2;
        byte[] numArray3 = obj0;
        byte[] numArray4 = obj1;
        \u0089\u0004.\u001C\u0005(ex, (object) numArray2, (object) local1, (object) local2, (object) numArray3, (object) numArray4);
        throw;
      }
    }
  }
}
