// 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 \u0003;
using \u007F\u0004;
using SmartAssembly.SmartExceptionsCore;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace \u007F\u0004
{
  internal class \u0089\u0004
  {
    public static void \u0017\u0005([In] Exception obj0) => \u0089\u0004.\u0081\u0005(obj0, new object[0]);

    public static void \u0018\u0005([In] Exception obj0, [In] object obj1)
    {
      do
      {
        if (true)
          goto label_4;
label_2:
        continue;
label_4:
        Exception exception = obj0;
        object[] objArray1 = new object[1];
        object[] objArray2;
        if (true)
          objArray2 = objArray1;
        objArray2[0] = obj1;
        object[] objArray3 = objArray2;
        \u0089\u0004.\u0081\u0005(exception, objArray3);
        goto label_2;
      }
      while (false);
    }

    public static void \u0019\u0005([In] Exception obj0, [In] object obj1, [In] object obj2)
    {
      Exception exception = obj0;
      object[] objArray1 = new object[2];
      object[] objArray2;
      if (true)
        objArray2 = objArray1;
      objArray2[0] = obj1;
      objArray2[1] = obj2;
      object[] objArray3 = objArray2;
      \u0089\u0004.\u0081\u0005(exception, objArray3);
    }

    public static void \u001A\u0005([In] Exception obj0, [In] object obj1, [In] object obj2, [In] object obj3)
    {
      if (true)
        goto label_4;
label_2:
      if (true)
        return;
label_4:
      Exception exception = obj0;
      object[] objArray1 = new object[3];
      object[] objArray2;
      if (true)
        objArray2 = objArray1;
      objArray2[0] = obj1;
      objArray2[1] = obj2;
      objArray2[2] = obj3;
      object[] objArray3 = objArray2;
      \u0089\u0004.\u0081\u0005(exception, objArray3);
      goto label_2;
    }

    public static void \u001B\u0005(
      [In] Exception obj0,
      [In] object obj1,
      [In] object obj2,
      [In] object obj3,
      [In] object obj4)
    {
      Exception exception = obj0;
      object[] objArray1 = new object[4];
      object[] objArray2;
      if (true)
        objArray2 = objArray1;
      objArray2[0] = obj1;
      objArray2[1] = obj2;
      objArray2[2] = obj3;
      objArray2[3] = obj4;
      object[] objArray3 = objArray2;
      \u0089\u0004.\u0081\u0005(exception, objArray3);
    }

    public static void \u001C\u0005(
      [In] Exception obj0,
      [In] object obj1,
      [In] object obj2,
      [In] object obj3,
      [In] object obj4,
      [In] object obj5)
    {
      Exception exception = obj0;
      object[] objArray1 = new object[5];
      object[] objArray2;
      if (true)
        objArray2 = objArray1;
      objArray2[0] = obj1;
      objArray2[1] = obj2;
      objArray2[2] = obj3;
      objArray2[3] = obj4;
      objArray2[4] = obj5;
      object[] objArray3 = objArray2;
      \u0089\u0004.\u0081\u0005(exception, objArray3);
    }

    public static void \u001D\u0005(
      [In] Exception obj0,
      [In] object obj1,
      [In] object obj2,
      [In] object obj3,
      [In] object obj4,
      [In] object obj5,
      [In] object obj6)
    {
      Exception exception = obj0;
      object[] objArray1 = new object[6];
      object[] objArray2;
      if (true)
        objArray2 = objArray1;
      objArray2[0] = obj1;
      objArray2[1] = obj2;
      objArray2[2] = obj3;
      objArray2[3] = obj4;
      objArray2[4] = obj5;
      objArray2[5] = obj6;
      object[] objArray3 = objArray2;
      \u0089\u0004.\u0081\u0005(exception, objArray3);
    }

    public static void \u001E\u0005(
      [In] Exception obj0,
      [In] object obj1,
      [In] object obj2,
      [In] object obj3,
      [In] object obj4,
      [In] object obj5,
      [In] object obj6,
      [In] object obj7)
    {
      int num;
      for (int index = 0; index == 0; index = num)
      {
        num = 0;
        if (num == 0)
        {
          if (num == 0 && false)
            return;
          break;
        }
      }
      Exception exception = obj0;
      object[] objArray1 = new object[7];
      object[] objArray2;
      if (true)
        objArray2 = objArray1;
      objArray2[0] = obj1;
      objArray2[1] = obj2;
      objArray2[2] = obj3;
      objArray2[3] = obj4;
      objArray2[4] = obj5;
      objArray2[5] = obj6;
      objArray2[6] = obj7;
      object[] objArray3 = objArray2;
      \u0089\u0004.\u0081\u0005(exception, objArray3);
    }

    public static void \u001F\u0005(
      [In] Exception obj0,
      [In] object obj1,
      [In] object obj2,
      [In] object obj3,
      [In] object obj4,
      [In] object obj5,
      [In] object obj6,
      [In] object obj7,
      [In] object obj8)
    {
      Exception exception = obj0;
      object[] objArray1 = new object[8];
      object[] objArray2;
      if (true)
        objArray2 = objArray1;
      objArray2[0] = obj1;
      objArray2[1] = obj2;
      objArray2[2] = obj3;
      objArray2[3] = obj4;
      objArray2[4] = obj5;
      objArray2[5] = obj6;
      objArray2[6] = obj7;
      objArray2[7] = obj8;
      object[] objArray3 = objArray2;
      \u0089\u0004.\u0081\u0005(exception, objArray3);
    }

    public static void \u007F\u0005(
      [In] Exception obj0,
      [In] object obj1,
      [In] object obj2,
      [In] object obj3,
      [In] object obj4,
      [In] object obj5,
      [In] object obj6,
      [In] object obj7,
      [In] object obj8,
      [In] object obj9)
    {
      Exception exception = obj0;
      object[] objArray1 = new object[9];
      object[] objArray2;
      if (true)
        objArray2 = objArray1;
      objArray2[0] = obj1;
      objArray2[1] = obj2;
      objArray2[2] = obj3;
      objArray2[3] = obj4;
      objArray2[4] = obj5;
      objArray2[5] = obj6;
      objArray2[6] = obj7;
      objArray2[7] = obj8;
      objArray2[8] = obj9;
      object[] objArray3 = objArray2;
      \u0089\u0004.\u0081\u0005(exception, objArray3);
    }

    public static void \u0080\u0005(
      [In] Exception obj0,
      [In] object obj1,
      [In] object obj2,
      [In] object obj3,
      [In] object obj4,
      [In] object obj5,
      [In] object obj6,
      [In] object obj7,
      [In] object obj8,
      [In] object obj9,
      [In] object obj10)
    {
      Exception exception = obj0;
      object[] objArray1 = new object[10];
      object[] objArray2;
      if (true)
        objArray2 = objArray1;
      objArray2[0] = obj1;
      objArray2[1] = obj2;
      objArray2[2] = obj3;
      objArray2[3] = obj4;
      objArray2[4] = obj5;
      objArray2[5] = obj6;
      objArray2[6] = obj7;
      objArray2[7] = obj8;
      objArray2[8] = obj9;
      objArray2[9] = obj10;
      object[] objArray3 = objArray2;
      \u0089\u0004.\u0081\u0005(exception, objArray3);
    }

    public static void \u0081\u0005([In] Exception obj0, [In] object[] obj1)
    {
      if (true)
        goto label_31;
label_1:
      if (true)
        goto label_32;
label_2:
      int num1;
      if (true)
        num1 = 0;
      StackTrace stackTrace1 = new StackTrace(obj0);
      if (true)
        goto label_34;
label_3:
      try
      {
        if (obj0.StackTrace != null)
        {
          string str1 = \u0082\u0002.\u007E\u0089\u0002((object) obj0);
          char[] chArray1 = new char[2];
          if (true)
            goto label_17;
label_5:
          char[] chArray2;
          chArray2[0] = '\r';
          chArray2[1] = '\n';
          char[] chArray3 = chArray2;
          string[] strArray1 = str1.Split(chArray3);
          if (true)
            goto label_18;
label_6:
          string[] strArray2;
          string[] strArray3 = strArray2;
          int num2 = 0;
label_7:
          int index = num2;
          while (true)
          {
            int num3 = index;
            int num4 = strArray3.Length;
            while (true)
            {
              int num5 = num4;
              if (num3 < num5)
              {
                string str2 = strArray3[index];
                int num6 = \u0084\u0002.\u007E\u000E\u0002((object) str2);
                if (false)
                {
                  num2 = num6;
                  goto label_7;
                }
                else
                {
                  int num7 = 0;
                  if (num7 == 0)
                  {
                    if (num6 > num7)
                      ++num1;
                    int num8 = index;
                    num4 = 1;
                    num3 = num8;
                    break;
                  }
                  num4 = num7;
                  num3 = num6;
                }
              }
              else
                goto label_21;
            }
            index = num3 + num4;
          }
label_18:
          strArray2 = strArray1;
          goto label_6;
label_17:
          chArray2 = chArray1;
          goto label_5;
        }
      }
      catch
      {
        if (true)
          num1 = -1;
      }
label_21:
      StackTrace stackTrace2;
      int num9;
      int num10;
      try
      {
        int num11 = \u0084\u0002.\u007E\u0099\u0004((object) stackTrace2);
        int num12 = 0;
        StackFrame stackFrame;
        if (num12 == 0)
        {
          if (num11 > num12)
          {
            stackFrame = \u008D\u0003.\u007E\u009A\u0004((object) stackTrace2, \u0084\u0002.\u007E\u0099\u0004((object) stackTrace2) - 1);
            int num13 = \u0084\u0002.\u007E\u0088\u0003((object) \u008F\u0003.\u007E\u009C\u0004((object) stackFrame));
            num12 = 16777215;
            num11 = num13;
          }
          else
            goto label_26;
        }
        num9 = (num11 & num12) - 1;
        num10 = \u0084\u0002.\u007E\u009D\u0004((object) stackFrame);
      }
      catch
      {
      }
label_26:
      try
      {
        SmartStackFrame smartStackFrame = new SmartStackFrame(num9, obj1, num10, num1);
        LinkedList<object> linkedList;
        if (!\u0083\u0002.\u007E\u001A\u0004((object) \u0002\u0003.\u007E\u0087\u0002((object) obj0), (object) \u0002.\u0002\u0002(1396)))
        {
          linkedList = new LinkedList<object>();
          \u008B\u0003.\u007E\u0019\u0004((object) \u0002\u0003.\u007E\u0087\u0002((object) obj0), (object) \u0002.\u0002\u0002(1396), (object) linkedList);
        }
        else
          linkedList = (LinkedList<object>) \u008A\u0003.\u007E\u0018\u0004((object) \u0002\u0003.\u007E\u0087\u0002((object) obj0), (object) \u0002.\u0002\u0002(1396));
        linkedList.AddLast((object) smartStackFrame);
        return;
      }
      catch
      {
        return;
      }
label_34:
      stackTrace2 = stackTrace1;
      goto label_3;
label_32:
      num10 = -1;
      goto label_2;
label_31:
      num9 = -1;
      goto label_1;
    }
  }
}
