mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-21 10:56:10 +00:00
f2ac1ece55
add
1400 lines
78 KiB
C#
1400 lines
78 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: <Module>
|
|
// Assembly: infocard, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
|
|
// MVID: ADE0A079-11DB-4A46-8BDE-D2A592CA8DEA
|
|
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00000-msil\Virus.Win32.Expiro.w-67b630ead60119692b9abbdfd8717c96904ef041127c2cae033c86b718eaa61e.exe
|
|
|
|
using \u003CCppImplementationDetails\u003E;
|
|
using \u003CCrtImplementationDetails\u003E;
|
|
using Microsoft.InfoCards;
|
|
using System;
|
|
using System.Diagnostics;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Runtime.ConstrainedExecution;
|
|
using System.Runtime.InteropServices;
|
|
using System.Security;
|
|
using System.Security.Permissions;
|
|
using System.ServiceProcess;
|
|
using System.Threading;
|
|
|
|
internal class \u003CModule\u003E
|
|
{
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY07\u0024\u0024CBG \u003FA0x7907e524\u002Eunnamed\u002Dglobal\u002D0;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY00\u0024\u0024CBD \u003FA0x7907e524\u002Eunnamed\u002Dglobal\u002D1;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY00\u0024\u0024CBG \u003FA0x7907e524\u002Eunnamed\u002Dglobal\u002D2;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY0CE\u0040\u0024\u0024CBD \u003F\u003F_C\u0040_0CE\u0040EGKBOGOO\u0040Microsoft\u003F2InfoCards\u003F2mcppwrapper\u003F4\u0040;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY0CE\u0040\u0024\u0024CBG \u003F\u003F_C\u0040_1EI\u0040FAPBOFLF\u0040\u003F\u0024AAX\u003F\u0024AAp\u003F\u0024AAq\u003F\u0024AA1\u003F\u0024AA2\u003F\u0024AAL\u003F\u0024AAe\u003F\u0024AAn\u003F\u0024AAg\u003F\u0024AAt\u003F\u0024AAh\u003F\u0024AA\u003F5\u003F\u0024AA\u003F\u0024DN\u003F\u0024AA\u003F\u0024DN\u003F\u0024AA\u003F5\u003F\u0024AAX\u003F\u0024AAp\u003F\u0024AA1\u003F\u0024AAB\u003F\u0024AAy\u003F\u0024AAt\u003F\u0024AAe\u003F\u0024AAA\u003F\u0024AAr\u003F\u0024AAr\u003F\u0024AAa\u003F\u0024AAy\u003F\u0024AA\u003F9\u003F\u0024AA\u003F\u0024DO\u003F\u0024AAL\u003F\u0024AAe\u003F\u0024AAn\u0040;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY0CE\u0040\u0024\u0024CBG \u003F\u003F_C\u0040_1EI\u0040BNBJOFNC\u0040\u003F\u0024AAX\u003F\u0024AAp\u003F\u0024AAq\u003F\u0024AA1\u003F\u0024AA2\u003F\u0024AAL\u003F\u0024AAe\u003F\u0024AAn\u003F\u0024AAg\u003F\u0024AAt\u003F\u0024AAh\u003F\u0024AA\u003F5\u003F\u0024AA\u003F\u0024DN\u003F\u0024AA\u003F\u0024DN\u003F\u0024AA\u003F5\u003F\u0024AAX\u003F\u0024AAp\u003F\u0024AA2\u003F\u0024AAB\u003F\u0024AAy\u003F\u0024AAt\u003F\u0024AAe\u003F\u0024AAA\u003F\u0024AAr\u003F\u0024AAr\u003F\u0024AAa\u003F\u0024AAy\u003F\u0024AA\u003F9\u003F\u0024AA\u003F\u0024DO\u003F\u0024AAL\u003F\u0024AAe\u003F\u0024AAn\u0040;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY0CE\u0040\u0024\u0024CBG \u003F\u003F_C\u0040_1EI\u0040PPLFHHPC\u0040\u003F\u0024AAX\u003F\u0024AAp\u003F\u0024AAq\u003F\u0024AA1\u003F\u0024AA2\u003F\u0024AAL\u003F\u0024AAe\u003F\u0024AAn\u003F\u0024AAg\u003F\u0024AAt\u003F\u0024AAh\u003F\u0024AA\u003F5\u003F\u0024AA\u003F\u0024DN\u003F\u0024AA\u003F\u0024DN\u003F\u0024AA\u003F5\u003F\u0024AAX\u003F\u0024AAq\u003F\u0024AA1\u003F\u0024AAB\u003F\u0024AAy\u003F\u0024AAt\u003F\u0024AAe\u003F\u0024AAA\u003F\u0024AAr\u003F\u0024AAr\u003F\u0024AAa\u003F\u0024AAy\u003F\u0024AA\u003F9\u003F\u0024AA\u003F\u0024DO\u003F\u0024AAL\u003F\u0024AAe\u003F\u0024AAn\u0040;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY0CE\u0040\u0024\u0024CBG \u003F\u003F_C\u0040_1EI\u0040LCFNHHJF\u0040\u003F\u0024AAX\u003F\u0024AAp\u003F\u0024AAq\u003F\u0024AA1\u003F\u0024AA2\u003F\u0024AAL\u003F\u0024AAe\u003F\u0024AAn\u003F\u0024AAg\u003F\u0024AAt\u003F\u0024AAh\u003F\u0024AA\u003F5\u003F\u0024AA\u003F\u0024DN\u003F\u0024AA\u003F\u0024DN\u003F\u0024AA\u003F5\u003F\u0024AAX\u003F\u0024AAq\u003F\u0024AA2\u003F\u0024AAB\u003F\u0024AAy\u003F\u0024AAt\u003F\u0024AAe\u003F\u0024AAA\u003F\u0024AAr\u003F\u0024AAr\u003F\u0024AAa\u003F\u0024AAy\u003F\u0024AA\u003F9\u003F\u0024AA\u003F\u0024DO\u003F\u0024AAL\u003F\u0024AAe\u003F\u0024AAn\u0040;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY0CB\u0040\u0024\u0024CBG \u003F\u003F_C\u0040_1EC\u0040PNPIPOFH\u0040\u003F\u0024AAX\u003F\u0024AAp\u003F\u0024AAq\u003F\u0024AAL\u003F\u0024AAe\u003F\u0024AAn\u003F\u0024AAg\u003F\u0024AAt\u003F\u0024AAh\u003F\u0024AA\u003F5\u003F\u0024AA\u003F\u0024DN\u003F\u0024AA\u003F\u0024DN\u003F\u0024AA\u003F5\u003F\u0024AAX\u003F\u0024AAp\u003F\u0024AAB\u003F\u0024AAy\u003F\u0024AAt\u003F\u0024AAe\u003F\u0024AAA\u003F\u0024AAr\u003F\u0024AAr\u003F\u0024AAa\u003F\u0024AAy\u003F\u0024AA\u003F9\u003F\u0024AA\u003F\u0024DO\u003F\u0024AAL\u003F\u0024AAe\u003F\u0024AAn\u003F\u0024AAg\u003F\u0024AAt\u003F\u0024AAh\u0040;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY0CB\u0040\u0024\u0024CBG \u003F\u003F_C\u0040_1EC\u0040HAHAADLF\u0040\u003F\u0024AAX\u003F\u0024AAp\u003F\u0024AAq\u003F\u0024AAL\u003F\u0024AAe\u003F\u0024AAn\u003F\u0024AAg\u003F\u0024AAt\u003F\u0024AAh\u003F\u0024AA\u003F5\u003F\u0024AA\u003F\u0024DN\u003F\u0024AA\u003F\u0024DN\u003F\u0024AA\u003F5\u003F\u0024AAX\u003F\u0024AAq\u003F\u0024AAB\u003F\u0024AAy\u003F\u0024AAt\u003F\u0024AAe\u003F\u0024AAA\u003F\u0024AAr\u003F\u0024AAr\u003F\u0024AAa\u003F\u0024AAy\u003F\u0024AA\u003F9\u003F\u0024AA\u003F\u0024DO\u003F\u0024AAL\u003F\u0024AAe\u003F\u0024AAn\u003F\u0024AAg\u003F\u0024AAt\u003F\u0024AAh\u0040;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY0BC\u0040\u0024\u0024CBG \u003F\u003F_C\u0040_1CE\u0040MDDMNBFC\u0040\u003F\u0024AA0\u003F\u0024AA\u003F5\u003F\u0024AA\u003F\u0024CB\u003F\u0024AA\u003F\u0024DN\u003F\u0024AA\u003F5\u003F\u0024AAc\u003F\u0024AAb\u003F\u0024AAC\u003F\u0024AAr\u003F\u0024AAy\u003F\u0024AAp\u003F\u0024AAt\u003F\u0024AAo\u003F\u0024AAB\u003F\u0024AAl\u003F\u0024AAo\u003F\u0024AAb\u003F\u0024AA\u003F\u0024AA\u0040;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY0BC\u0040\u0024\u0024CBG \u003F\u003F_C\u0040_1CE\u0040EMPLJBMF\u0040\u003F\u0024AA0\u003F\u0024AA\u003F5\u003F\u0024AA\u003F\u0024DN\u003F\u0024AA\u003F\u0024DN\u003F\u0024AA\u003F5\u003F\u0024AAc\u003F\u0024AAb\u003F\u0024AAC\u003F\u0024AAr\u003F\u0024AAy\u003F\u0024AAp\u003F\u0024AAt\u003F\u0024AAo\u003F\u0024AAB\u003F\u0024AAl\u003F\u0024AAo\u003F\u0024AAb\u003F\u0024AA\u003F\u0024AA\u0040;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY0P\u0040\u0024\u0024CBG \u003F\u003F_C\u0040_1BO\u0040IGNPGJKB\u0040\u003F\u0024AAh\u003F\u0024AAE\u003F\u0024AAl\u003F\u0024AAe\u003F\u0024AAv\u003F\u0024AAa\u003F\u0024AAt\u003F\u0024AAe\u003F\u0024AAd\u003F\u0024AAT\u003F\u0024AAo\u003F\u0024AAk\u003F\u0024AAe\u003F\u0024AAn\u003F\u0024AA\u003F\u0024AA\u0040;
|
|
internal static unsafe ushort* g_lrpcProtocolSequence;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY00Q6MPBXXZ \u003FA0xaf140350\u002E__xc_mp_z;
|
|
[FixedAddressValueType]
|
|
internal static int \u003FUninitialized\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2HA;
|
|
internal static __FnPtr<void ()> \u003FA0xaf140350\u002E\u003FUninitialized\u0024initializer\u0024\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2P6MXXZA;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY00Q6MPBXXZ \u003FA0xaf140350\u002E__xi_vt_a;
|
|
[FixedAddressValueType]
|
|
internal static Progress.State \u003FInitializedPerAppDomain\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A;
|
|
internal static __FnPtr<void ()> \u003FA0xaf140350\u002E\u003FInitializedPerAppDomain\u0024initializer\u0024\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2P6MXXZA;
|
|
[FixedAddressValueType]
|
|
internal static bool \u003FIsDefaultDomain\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2_NA;
|
|
internal static __FnPtr<void ()> \u003FA0xaf140350\u002E\u003FIsDefaultDomain\u0024initializer\u0024\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2P6MXXZA;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY00Q6MPBXXZ \u003FA0xaf140350\u002E__xc_ma_a;
|
|
[FixedAddressValueType]
|
|
internal static Progress.State \u003FInitializedNative\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A;
|
|
internal static __FnPtr<void ()> \u003FA0xaf140350\u002E\u003FInitializedNative\u0024initializer\u0024\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2P6MXXZA;
|
|
[FixedAddressValueType]
|
|
internal static int \u003FInitialized\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2HA;
|
|
internal static __FnPtr<void ()> \u003FA0xaf140350\u002E\u003FInitialized\u0024initializer\u0024\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2P6MXXZA;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY00Q6MPBXXZ \u003FA0xaf140350\u002E__xc_ma_z;
|
|
[FixedAddressValueType]
|
|
internal static Progress.State \u003FInitializedVtables\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A;
|
|
internal static __FnPtr<void ()> \u003FA0xaf140350\u002E\u003FInitializedVtables\u0024initializer\u0024\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2P6MXXZA;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY00Q6MPBXXZ \u003FA0xaf140350\u002E__xi_vt_z;
|
|
[FixedAddressValueType]
|
|
internal static Progress.State \u003FInitializedPerProcess\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A;
|
|
internal static __FnPtr<void ()> \u003FA0xaf140350\u002E\u003FInitializedPerProcess\u0024initializer\u0024\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2P6MXXZA;
|
|
internal static bool \u003FInitializedPerProcess\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA;
|
|
internal static bool \u003FEntered\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA;
|
|
internal static bool \u003FInitializedNative\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA;
|
|
internal static int \u003FCount\u0040AllDomains\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402HA;
|
|
internal static uint \u003FProcessAttach\u0040NativeDll\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400IB;
|
|
internal static uint \u003FThreadAttach\u0040NativeDll\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400IB;
|
|
internal static TriBool.State \u003FhasNative\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400W4State\u0040TriBool\u00402\u0040A;
|
|
internal static uint \u003FProcessDetach\u0040NativeDll\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400IB;
|
|
internal static uint \u003FThreadDetach\u0040NativeDll\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400IB;
|
|
internal static uint \u003FProcessVerifier\u0040NativeDll\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400IB;
|
|
internal static TriBool.State \u003FhasPerProcess\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400W4State\u0040TriBool\u00402\u0040A;
|
|
internal static bool \u003FInitializedNativeFromCCTOR\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA;
|
|
internal static \u0024ArrayType\u0024\u0024\u0024BY00Q6MPBXXZ \u003FA0xaf140350\u002E__xc_mp_a;
|
|
public static unsafe int** __unep\u0040\u003FDoNothing\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024FCGJPAX\u0040Z;
|
|
public static unsafe int** __unep\u0040\u003F_UninitializeDefaultDomain\u0040LanguageSupport\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024FCGJPAX\u0040Z;
|
|
[FixedAddressValueType]
|
|
internal static uint __exit_list_size_app_domain;
|
|
[FixedAddressValueType]
|
|
internal static unsafe __FnPtr<void ()>* __onexitbegin_app_domain;
|
|
internal static uint \u003FA0x9b698f77\u002E__exit_list_size;
|
|
[FixedAddressValueType]
|
|
internal static unsafe __FnPtr<void ()>* __onexitend_app_domain;
|
|
internal static unsafe __FnPtr<void ()>* \u003FA0x9b698f77\u002E__onexitbegin_m;
|
|
internal static unsafe __FnPtr<void ()>* \u003FA0x9b698f77\u002E__onexitend_m;
|
|
[FixedAddressValueType]
|
|
internal static unsafe void* \u003F_lock\u0040AtExitLock\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q0PAXA;
|
|
[FixedAddressValueType]
|
|
internal static int \u003F_ref_count\u0040AtExitLock\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q0HA;
|
|
public static \u0024ArrayType\u0024\u0024\u0024BY0A\u0040P6AXXZ __xc_z;
|
|
public static volatile uint __native_vcclrit_reason;
|
|
public static \u0024ArrayType\u0024\u0024\u0024BY0A\u0040P6AXXZ __xc_a;
|
|
public static \u0024ArrayType\u0024\u0024\u0024BY0A\u0040P6AHXZ __xi_a;
|
|
public static volatile __enative_startup_state __native_startup_state;
|
|
public static \u0024ArrayType\u0024\u0024\u0024BY0A\u0040P6AHXZ __xi_z;
|
|
public static unsafe void* __native_startup_lock;
|
|
public static volatile uint __native_dllmain_reason;
|
|
|
|
internal static unsafe int wmain()
|
|
{
|
|
\u003CModule\u003E.HeapSetInformation((void*) 0, (_HEAP_INFORMATION_CLASS) 1, (void*) 0, 0U);
|
|
ServiceBase.Run((ServiceBase) new InfoCardService());
|
|
return 0;
|
|
}
|
|
|
|
internal static unsafe void* RtlSecureZeroMemory(void* ptr, uint cnt)
|
|
{
|
|
sbyte* numPtr = (sbyte*) ptr;
|
|
if (cnt != 0U)
|
|
{
|
|
do
|
|
{
|
|
*numPtr = (sbyte) 0;
|
|
++numPtr;
|
|
--cnt;
|
|
}
|
|
while (cnt != 0U);
|
|
}
|
|
return ptr;
|
|
}
|
|
|
|
internal static unsafe void PropVariantInit(tagPROPVARIANT* pvar)
|
|
{
|
|
// ISSUE: initblk instruction
|
|
__memset((IntPtr) pvar, 0, 16);
|
|
}
|
|
|
|
[return: MarshalAs(UnmanagedType.U1)]
|
|
internal static bool \u003CCrtImplementationDetails\u003E\u002ENativeDll\u002EIsInDllMain() => \u003CModule\u003E.__native_dllmain_reason != uint.MaxValue;
|
|
|
|
[return: MarshalAs(UnmanagedType.U1)]
|
|
internal static bool \u003CCrtImplementationDetails\u003E\u002ENativeDll\u002EIsInProcessAttach() => \u003CModule\u003E.__native_dllmain_reason == 1U;
|
|
|
|
[return: MarshalAs(UnmanagedType.U1)]
|
|
internal static bool \u003CCrtImplementationDetails\u003E\u002ENativeDll\u002EIsInProcessDetach() => \u003CModule\u003E.__native_dllmain_reason == 0U;
|
|
|
|
[return: MarshalAs(UnmanagedType.U1)]
|
|
internal static bool \u003CCrtImplementationDetails\u003E\u002ENativeDll\u002EIsInVcclrit() => \u003CModule\u003E.__native_vcclrit_reason != uint.MaxValue;
|
|
|
|
[return: MarshalAs(UnmanagedType.U1)]
|
|
internal static bool \u003CCrtImplementationDetails\u003E\u002ENativeDll\u002EIsSafeForManagedCode() => (\u003CModule\u003E.__native_dllmain_reason != uint.MaxValue ? 1 : 0) == 0 || (\u003CModule\u003E.__native_vcclrit_reason != uint.MaxValue ? 1 : 0) != 0 || \u003CModule\u003E.__native_dllmain_reason != 1U && \u003CModule\u003E.__native_dllmain_reason != 0U;
|
|
|
|
internal static unsafe int \u003CCrtImplementationDetails\u003E\u002EDefaultDomain\u002EDoNothing(
|
|
void* cookie)
|
|
{
|
|
GC.KeepAlive((object) int.MaxValue);
|
|
return 0;
|
|
}
|
|
|
|
[return: MarshalAs(UnmanagedType.U1)]
|
|
internal static unsafe bool \u003CCrtImplementationDetails\u003E\u002EDefaultDomain\u002EHasPerProcess()
|
|
{
|
|
if (\u003CModule\u003E.\u003FhasPerProcess\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400W4State\u0040TriBool\u00402\u0040A != (TriBool.State) 2)
|
|
return \u003CModule\u003E.\u003FhasPerProcess\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400W4State\u0040TriBool\u00402\u0040A == (TriBool.State) -1;
|
|
void** voidPtr = (void**) &\u003CModule\u003E.\u003FA0xaf140350\u002E__xc_mp_a;
|
|
if (ref \u003CModule\u003E.\u003FA0xaf140350\u002E__xc_mp_a < ref \u003CModule\u003E.\u003FA0xaf140350\u002E__xc_mp_z)
|
|
{
|
|
while (*(int*) voidPtr == 0)
|
|
{
|
|
voidPtr += 4;
|
|
if ((IntPtr) voidPtr >= ref \u003CModule\u003E.\u003FA0xaf140350\u002E__xc_mp_z)
|
|
goto label_5;
|
|
}
|
|
\u003CModule\u003E.\u003FhasPerProcess\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400W4State\u0040TriBool\u00402\u0040A = (TriBool.State) -1;
|
|
return true;
|
|
}
|
|
label_5:
|
|
\u003CModule\u003E.\u003FhasPerProcess\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400W4State\u0040TriBool\u00402\u0040A = (TriBool.State) 0;
|
|
return false;
|
|
}
|
|
|
|
[return: MarshalAs(UnmanagedType.U1)]
|
|
internal static unsafe bool \u003CCrtImplementationDetails\u003E\u002EDefaultDomain\u002EHasNative()
|
|
{
|
|
if (\u003CModule\u003E.\u003FhasNative\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400W4State\u0040TriBool\u00402\u0040A != (TriBool.State) 2)
|
|
return \u003CModule\u003E.\u003FhasNative\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400W4State\u0040TriBool\u00402\u0040A == (TriBool.State) -1;
|
|
void** voidPtr1 = (void**) &\u003CModule\u003E.__xi_a;
|
|
if (ref \u003CModule\u003E.__xi_a < ref \u003CModule\u003E.__xi_z)
|
|
{
|
|
while (*(int*) voidPtr1 == 0)
|
|
{
|
|
voidPtr1 += 4;
|
|
if ((IntPtr) voidPtr1 >= ref \u003CModule\u003E.__xi_z)
|
|
goto label_5;
|
|
}
|
|
\u003CModule\u003E.\u003FhasNative\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400W4State\u0040TriBool\u00402\u0040A = (TriBool.State) -1;
|
|
return true;
|
|
}
|
|
label_5:
|
|
void** voidPtr2 = (void**) &\u003CModule\u003E.__xc_a;
|
|
if (ref \u003CModule\u003E.__xc_a < ref \u003CModule\u003E.__xc_z)
|
|
{
|
|
while (*(int*) voidPtr2 == 0)
|
|
{
|
|
voidPtr2 += 4;
|
|
if ((IntPtr) voidPtr2 >= ref \u003CModule\u003E.__xc_z)
|
|
goto label_9;
|
|
}
|
|
\u003CModule\u003E.\u003FhasNative\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400W4State\u0040TriBool\u00402\u0040A = (TriBool.State) -1;
|
|
return true;
|
|
}
|
|
label_9:
|
|
\u003CModule\u003E.\u003FhasNative\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00400W4State\u0040TriBool\u00402\u0040A = (TriBool.State) 0;
|
|
return false;
|
|
}
|
|
|
|
[return: MarshalAs(UnmanagedType.U1)]
|
|
internal static bool \u003CCrtImplementationDetails\u003E\u002EDefaultDomain\u002ENeedsInitialization() => \u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EDefaultDomain\u002EHasPerProcess() && !\u003CModule\u003E.\u003FInitializedPerProcess\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA || \u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EDefaultDomain\u002EHasNative() && !\u003CModule\u003E.\u003FInitializedNative\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA && \u003CModule\u003E.__native_startup_state == (__enative_startup_state) 0;
|
|
|
|
[return: MarshalAs(UnmanagedType.U1)]
|
|
internal static bool \u003CCrtImplementationDetails\u003E\u002EDefaultDomain\u002ENeedsUninitialization() => \u003CModule\u003E.\u003FEntered\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA;
|
|
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002EDefaultDomain\u002EInitialize() => \u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EDoCallBackInDefaultDomain((__FnPtr<int (void*)>) (IntPtr) \u003CModule\u003E.__unep\u0040\u003FDoNothing\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024FCGJPAX\u0040Z, (void*) 0);
|
|
|
|
internal static void \u003FA0xaf140350\u002E\u003F\u003F__E\u003FInitialized\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2HA\u0040\u0040YMXXZ() => \u003CModule\u003E.\u003FInitialized\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2HA = 0;
|
|
|
|
internal static void \u003FA0xaf140350\u002E\u003F\u003F__E\u003FUninitialized\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2HA\u0040\u0040YMXXZ() => \u003CModule\u003E.\u003FUninitialized\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2HA = 0;
|
|
|
|
internal static void \u003FA0xaf140350\u002E\u003F\u003F__E\u003FIsDefaultDomain\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2_NA\u0040\u0040YMXXZ() => \u003CModule\u003E.\u003FIsDefaultDomain\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2_NA = false;
|
|
|
|
internal static void \u003FA0xaf140350\u002E\u003F\u003F__E\u003FInitializedVtables\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A\u0040\u0040YMXXZ() => \u003CModule\u003E.\u003FInitializedVtables\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A = (Progress.State) 0;
|
|
|
|
internal static void \u003FA0xaf140350\u002E\u003F\u003F__E\u003FInitializedNative\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A\u0040\u0040YMXXZ() => \u003CModule\u003E.\u003FInitializedNative\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A = (Progress.State) 0;
|
|
|
|
internal static void \u003FA0xaf140350\u002E\u003F\u003F__E\u003FInitializedPerProcess\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A\u0040\u0040YMXXZ() => \u003CModule\u003E.\u003FInitializedPerProcess\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A = (Progress.State) 0;
|
|
|
|
internal static void \u003FA0xaf140350\u002E\u003F\u003F__E\u003FInitializedPerAppDomain\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A\u0040\u0040YMXXZ() => \u003CModule\u003E.\u003FInitializedPerAppDomain\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A = (Progress.State) 0;
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EInitializeVtables(
|
|
[In] LanguageSupport* obj0)
|
|
{
|
|
\u003CModule\u003E.gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u003D((gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E*) obj0, "The C++ module failed to load during vtable initialization.\n");
|
|
\u003CModule\u003E.\u003FInitializedVtables\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A = (Progress.State) 1;
|
|
\u003CModule\u003E._initterm_m((__FnPtr<void* ()>*) &\u003CModule\u003E.\u003FA0xaf140350\u002E__xi_vt_a, (__FnPtr<void* ()>*) &\u003CModule\u003E.\u003FA0xaf140350\u002E__xi_vt_z);
|
|
\u003CModule\u003E.\u003FInitializedVtables\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A = (Progress.State) 2;
|
|
}
|
|
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EInitializeDefaultAppDomain(
|
|
[In] LanguageSupport* obj0)
|
|
{
|
|
\u003CModule\u003E.gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u003D((gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E*) obj0, "The C++ module failed to load while attempting to initialize the default appdomain.\n");
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EDefaultDomain\u002EInitialize();
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EInitializeNative(
|
|
[In] LanguageSupport* obj0)
|
|
{
|
|
\u003CModule\u003E.gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u003D((gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E*) obj0, "The C++ module failed to load during native initialization.\n");
|
|
\u003CModule\u003E.__security_init_cookie();
|
|
\u003CModule\u003E.\u003FInitializedNative\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA = true;
|
|
if (!\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ENativeDll\u002EIsSafeForManagedCode())
|
|
\u003CModule\u003E._amsg_exit(33);
|
|
switch (\u003CModule\u003E.__native_startup_state)
|
|
{
|
|
case (__enative_startup_state) 0:
|
|
\u003CModule\u003E.\u003FInitializedNative\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A = (Progress.State) 1;
|
|
\u003CModule\u003E.__native_startup_state = (__enative_startup_state) 1;
|
|
if (\u003CModule\u003E._initterm_e((__FnPtr<int ()>*) &\u003CModule\u003E.__xi_a, (__FnPtr<int ()>*) &\u003CModule\u003E.__xi_z) != 0)
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EThrowModuleLoadException(\u003CModule\u003E.gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u002EP\u0024AAVString\u0040System\u0040\u0040((gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E*) obj0));
|
|
\u003CModule\u003E._initterm((__FnPtr<void ()>*) &\u003CModule\u003E.__xc_a, (__FnPtr<void ()>*) &\u003CModule\u003E.__xc_z);
|
|
\u003CModule\u003E.__native_startup_state = (__enative_startup_state) 2;
|
|
\u003CModule\u003E.\u003FInitializedNativeFromCCTOR\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA = true;
|
|
\u003CModule\u003E.\u003FInitializedNative\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A = (Progress.State) 2;
|
|
break;
|
|
case (__enative_startup_state) 1:
|
|
\u003CModule\u003E._amsg_exit(33);
|
|
break;
|
|
}
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EInitializePerProcess(
|
|
[In] LanguageSupport* obj0)
|
|
{
|
|
\u003CModule\u003E.gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u003D((gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E*) obj0, "The C++ module failed to load during process initialization.\n");
|
|
\u003CModule\u003E.\u003FInitializedPerProcess\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A = (Progress.State) 1;
|
|
\u003CModule\u003E._initatexit_m();
|
|
\u003CModule\u003E._initterm_m((__FnPtr<void* ()>*) &\u003CModule\u003E.\u003FA0xaf140350\u002E__xc_mp_a, (__FnPtr<void* ()>*) &\u003CModule\u003E.\u003FA0xaf140350\u002E__xc_mp_z);
|
|
\u003CModule\u003E.\u003FInitializedPerProcess\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A = (Progress.State) 2;
|
|
\u003CModule\u003E.\u003FInitializedPerProcess\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA = true;
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EInitializePerAppDomain(
|
|
[In] LanguageSupport* obj0)
|
|
{
|
|
\u003CModule\u003E.gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u003D((gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E*) obj0, "The C++ module failed to load during appdomain initialization.\n");
|
|
\u003CModule\u003E.\u003FInitializedPerAppDomain\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A = (Progress.State) 1;
|
|
\u003CModule\u003E._initatexit_app_domain();
|
|
\u003CModule\u003E._initterm_m((__FnPtr<void* ()>*) &\u003CModule\u003E.\u003FA0xaf140350\u002E__xc_ma_a, (__FnPtr<void* ()>*) &\u003CModule\u003E.\u003FA0xaf140350\u002E__xc_ma_z);
|
|
\u003CModule\u003E.\u003FInitializedPerAppDomain\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2W4State\u0040Progress\u00402\u0040A = (Progress.State) 2;
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EInitializeUninitializer(
|
|
[In] LanguageSupport* obj0)
|
|
{
|
|
\u003CModule\u003E.gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u003D((gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E*) obj0, "The C++ module failed to load during registration for the unload events.\n");
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ERegisterModuleUninitializer(new EventHandler(\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EDomainUnload));
|
|
}
|
|
|
|
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
|
|
[DebuggerStepThrough]
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002E_Initialize(
|
|
[In] LanguageSupport* obj0)
|
|
{
|
|
\u003CModule\u003E.\u003FIsDefaultDomain\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2_NA = AppDomain.CurrentDomain.IsDefaultAppDomain();
|
|
if (\u003CModule\u003E.\u003FIsDefaultDomain\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2_NA)
|
|
\u003CModule\u003E.\u003FEntered\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA = true;
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EDoDllLanguageSupportValidation();
|
|
void* fiberPtrId = \u003CModule\u003E._getFiberPtrId();
|
|
int num1 = 0;
|
|
int num2 = 0;
|
|
RuntimeHelpers.PrepareConstrainedRegions();
|
|
try
|
|
{
|
|
while (num2 == 0)
|
|
{
|
|
try
|
|
{
|
|
}
|
|
finally
|
|
{
|
|
IntPtr comparand = (IntPtr) 0;
|
|
IntPtr num3 = (IntPtr) fiberPtrId;
|
|
// ISSUE: cast to a reference type
|
|
void* voidPtr = (void*) Interlocked.CompareExchange((IntPtr&) ref \u003CModule\u003E.__native_startup_lock, num3, comparand);
|
|
if ((IntPtr) voidPtr == IntPtr.Zero)
|
|
num2 = 1;
|
|
else if (voidPtr == fiberPtrId)
|
|
{
|
|
num1 = 1;
|
|
num2 = 1;
|
|
}
|
|
}
|
|
if (num2 == 0)
|
|
\u003CModule\u003E.Sleep(1000U);
|
|
}
|
|
if (!\u003CModule\u003E.\u003FIsDefaultDomain\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2_NA)
|
|
{
|
|
if (\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EDefaultDomain\u002ENeedsInitialization())
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EInitializeDefaultAppDomain(obj0);
|
|
}
|
|
}
|
|
finally
|
|
{
|
|
if (num1 == 0)
|
|
{
|
|
IntPtr num4 = (IntPtr) 0;
|
|
// ISSUE: cast to a reference type
|
|
Interlocked.Exchange((IntPtr&) ref \u003CModule\u003E.__native_startup_lock, num4);
|
|
}
|
|
}
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EInitializeVtables(obj0);
|
|
if (\u003CModule\u003E.\u003FIsDefaultDomain\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2_NA)
|
|
{
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EInitializeNative(obj0);
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EInitializePerProcess(obj0);
|
|
}
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EInitializePerAppDomain(obj0);
|
|
\u003CModule\u003E.\u003FInitialized\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2HA = 1;
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EInitializeUninitializer(obj0);
|
|
}
|
|
|
|
internal static void \u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EUninitializeAppDomain() => \u003CModule\u003E._app_exit_callback();
|
|
|
|
internal static unsafe int \u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002E_UninitializeDefaultDomain(
|
|
void* cookie)
|
|
{
|
|
\u003CModule\u003E._exit_callback();
|
|
\u003CModule\u003E.\u003FInitializedPerProcess\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA = false;
|
|
if (\u003CModule\u003E.\u003FInitializedNativeFromCCTOR\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA)
|
|
{
|
|
\u003CModule\u003E._cexit();
|
|
\u003CModule\u003E.__native_startup_state = (__enative_startup_state) 0;
|
|
\u003CModule\u003E.\u003FInitializedNativeFromCCTOR\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA = false;
|
|
}
|
|
\u003CModule\u003E.\u003FInitializedNative\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA = false;
|
|
return 0;
|
|
}
|
|
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EUninitializeDefaultDomain()
|
|
{
|
|
if (!\u003CModule\u003E.\u003FEntered\u0040DefaultDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402_NA)
|
|
return;
|
|
if (AppDomain.CurrentDomain.IsDefaultAppDomain())
|
|
{
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002E_UninitializeDefaultDomain((void*) 0);
|
|
}
|
|
else
|
|
{
|
|
// ISSUE: cast to a function pointer type
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EDoCallBackInDefaultDomain((__FnPtr<int (void*)>) (IntPtr) \u003CModule\u003E.__unep\u0040\u003F_UninitializeDefaultDomain\u0040LanguageSupport\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024FCGJPAX\u0040Z, (void*) 0);
|
|
}
|
|
}
|
|
|
|
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
|
|
[PrePrepareMethod]
|
|
internal static void \u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EDomainUnload(
|
|
object source,
|
|
EventArgs arguments)
|
|
{
|
|
if (\u003CModule\u003E.\u003FInitialized\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2HA == 0 || Interlocked.Exchange(ref \u003CModule\u003E.\u003FUninitialized\u0040CurrentDomain\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q2HA, 1) != 0)
|
|
return;
|
|
int num = Interlocked.Decrement(ref \u003CModule\u003E.\u003FCount\u0040AllDomains\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402HA) == 0 ? 1 : 0;
|
|
\u003CModule\u003E._app_exit_callback();
|
|
if ((byte) num == (byte) 0)
|
|
return;
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EUninitializeDefaultDomain();
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002ECleanup(
|
|
[In] LanguageSupport* obj0,
|
|
Exception innerException)
|
|
{
|
|
try
|
|
{
|
|
bool flag = Interlocked.Decrement(ref \u003CModule\u003E.\u003FCount\u0040AllDomains\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402HA) == 0;
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EUninitializeAppDomain();
|
|
if (!flag)
|
|
return;
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EUninitializeDefaultDomain();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EThrowNestedModuleLoadException(innerException, ex);
|
|
}
|
|
catch
|
|
{
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EThrowNestedModuleLoadException(innerException, (Exception) null);
|
|
}
|
|
}
|
|
|
|
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
|
|
[DebuggerStepThrough]
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EInitialize(
|
|
[In] LanguageSupport* obj0)
|
|
{
|
|
bool flag = false;
|
|
RuntimeHelpers.PrepareConstrainedRegions();
|
|
try
|
|
{
|
|
\u003CModule\u003E.gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u003D((gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E*) obj0, "The C++ module failed to load.\n");
|
|
RuntimeHelpers.PrepareConstrainedRegions();
|
|
try
|
|
{
|
|
}
|
|
finally
|
|
{
|
|
Interlocked.Increment(ref \u003CModule\u003E.\u003FCount\u0040AllDomains\u0040\u003CCrtImplementationDetails\u003E\u0040\u00402HA);
|
|
flag = true;
|
|
}
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002E_Initialize(obj0);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
if (flag)
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002ECleanup(obj0, ex);
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EThrowModuleLoadException(\u003CModule\u003E.gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u002EP\u0024AAVString\u0040System\u0040\u0040((gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E*) obj0), ex);
|
|
}
|
|
catch
|
|
{
|
|
if (flag)
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002ECleanup(obj0, (Exception) null);
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EThrowModuleLoadException(\u003CModule\u003E.gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u002EP\u0024AAVString\u0040System\u0040\u0040((gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E*) obj0), (Exception) null);
|
|
}
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
static unsafe \u003CModule\u003E()
|
|
{
|
|
LanguageSupport languageSupport;
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002E\u007Bctor\u007D(&languageSupport);
|
|
// ISSUE: fault handler
|
|
try
|
|
{
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002EInitialize(&languageSupport);
|
|
}
|
|
__fault
|
|
{
|
|
// ISSUE: method pointer
|
|
// ISSUE: cast to a function pointer type
|
|
\u003CModule\u003E.___CxxCallUnwindDtor((__FnPtr<void (void*)>) __methodptr(\u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002E\u007Bdtor\u007D), (void*) &languageSupport);
|
|
}
|
|
\u003CModule\u003E.gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u007Bdtor\u007D((gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E*) &languageSupport);
|
|
}
|
|
|
|
internal static unsafe LanguageSupport* \u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002E\u007Bctor\u007D(
|
|
[In] LanguageSupport* obj0)
|
|
{
|
|
\u003CModule\u003E.gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u007Bctor\u007D((gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E*) obj0);
|
|
return obj0;
|
|
}
|
|
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002ELanguageSupport\u002E\u007Bdtor\u007D(
|
|
[In] LanguageSupport* obj0)
|
|
{
|
|
\u003CModule\u003E.gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u007Bdtor\u007D((gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E*) obj0);
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E* gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u007Bctor\u007D(
|
|
[In] gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E* obj0)
|
|
{
|
|
IntPtr num = (IntPtr) GCHandle.Alloc((object) null);
|
|
*(int*) obj0 = (int) num.ToPointer();
|
|
return obj0;
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe void gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u007Bdtor\u007D(
|
|
[In] gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E* obj0)
|
|
{
|
|
((GCHandle) new IntPtr((void*) *(int*) obj0)).Free();
|
|
*(int*) obj0 = 0;
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E* gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u003D(
|
|
[In] gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E* obj0,
|
|
string t)
|
|
{
|
|
((GCHandle) new IntPtr((void*) *(int*) obj0)).Target = (object) t;
|
|
return obj0;
|
|
}
|
|
|
|
internal static unsafe string gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E\u002E\u002EP\u0024AAVString\u0040System\u0040\u0040(
|
|
[In] gcroot\u003CSystem\u003A\u003AString\u0020\u005E\u003E* obj0)
|
|
{
|
|
return (string) ((GCHandle) new IntPtr((void*) *(int*) obj0)).Target;
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe ValueType \u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_handle() => (IntPtr) \u003CModule\u003E.\u003F_lock\u0040AtExitLock\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q0PAXA != IntPtr.Zero ? (ValueType) GCHandle.FromIntPtr(new IntPtr(\u003CModule\u003E.\u003F_lock\u0040AtExitLock\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q0PAXA)) : (ValueType) null;
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_lock_Construct(
|
|
object value)
|
|
{
|
|
\u003CModule\u003E.\u003F_lock\u0040AtExitLock\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q0PAXA = (void*) 0;
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_lock_Set(value);
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_lock_Set(
|
|
object value)
|
|
{
|
|
ValueType valueType = \u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_handle();
|
|
if (valueType == null)
|
|
\u003CModule\u003E.\u003F_lock\u0040AtExitLock\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q0PAXA = GCHandle.ToIntPtr(GCHandle.Alloc(value)).ToPointer();
|
|
else
|
|
((GCHandle) valueType).Target = value;
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static object \u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_lock_Get()
|
|
{
|
|
ValueType valueType = \u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_handle();
|
|
return valueType != null ? ((GCHandle) valueType).Target : (object) null;
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_lock_Destruct()
|
|
{
|
|
ValueType valueType = \u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_handle();
|
|
if (valueType == null)
|
|
return;
|
|
((GCHandle) valueType).Free();
|
|
\u003CModule\u003E.\u003F_lock\u0040AtExitLock\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q0PAXA = (void*) 0;
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
[return: MarshalAs(UnmanagedType.U1)]
|
|
internal static bool \u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002EIsInitialized() => \u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_lock_Get() != null;
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe void \u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002EAddRef()
|
|
{
|
|
if (!\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002EIsInitialized())
|
|
{
|
|
object obj = new object();
|
|
\u003CModule\u003E.\u003F_lock\u0040AtExitLock\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q0PAXA = (void*) 0;
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_lock_Set(obj);
|
|
\u003CModule\u003E.\u003F_ref_count\u0040AtExitLock\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q0HA = 0;
|
|
}
|
|
++\u003CModule\u003E.\u003F_ref_count\u0040AtExitLock\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q0HA;
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static void \u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002ERemoveRef()
|
|
{
|
|
--\u003CModule\u003E.\u003F_ref_count\u0040AtExitLock\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q0HA;
|
|
if (\u003CModule\u003E.\u003F_ref_count\u0040AtExitLock\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q0HA != 0)
|
|
return;
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_lock_Destruct();
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static void \u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002EEnter() => Monitor.Enter(\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_lock_Get());
|
|
|
|
[DebuggerStepThrough]
|
|
internal static void \u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002EExit() => Monitor.Exit(\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_lock_Get());
|
|
|
|
[DebuggerStepThrough]
|
|
[return: MarshalAs(UnmanagedType.U1)]
|
|
internal static bool \u003FA0x9b698f77\u002E__global_lock()
|
|
{
|
|
bool flag = false;
|
|
if (\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002EIsInitialized())
|
|
{
|
|
Monitor.Enter(\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_lock_Get());
|
|
flag = true;
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
[return: MarshalAs(UnmanagedType.U1)]
|
|
internal static bool \u003FA0x9b698f77\u002E__global_unlock()
|
|
{
|
|
bool flag = false;
|
|
if (\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002EIsInitialized())
|
|
{
|
|
Monitor.Exit(\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_lock_Get());
|
|
flag = true;
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
[return: MarshalAs(UnmanagedType.U1)]
|
|
internal static bool \u003FA0x9b698f77\u002E__alloc_global_lock()
|
|
{
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002EAddRef();
|
|
return \u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002EIsInitialized();
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static void \u003FA0x9b698f77\u002E__dealloc_global_lock()
|
|
{
|
|
--\u003CModule\u003E.\u003F_ref_count\u0040AtExitLock\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q0HA;
|
|
if (\u003CModule\u003E.\u003F_ref_count\u0040AtExitLock\u0040\u003CCrtImplementationDetails\u003E\u0040\u0040\u0024\u0024Q0HA != 0)
|
|
return;
|
|
\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EAtExitLock\u002E_lock_Destruct();
|
|
}
|
|
|
|
internal static unsafe int _atexit_helper(
|
|
__FnPtr<void ()> func,
|
|
uint* __pexit_list_size,
|
|
__FnPtr<void ()>** __ponexitend,
|
|
__FnPtr<void ()>** __ponexitbegin)
|
|
{
|
|
// ISSUE: cast to a function pointer type
|
|
__FnPtr<void ()> local1 = (__FnPtr<void ()>) 0;
|
|
if (func == null)
|
|
return -1;
|
|
int num1;
|
|
if (\u003CModule\u003E.\u003FA0x9b698f77\u002E__global_lock())
|
|
{
|
|
try
|
|
{
|
|
if (*__pexit_list_size - 1U < (uint) (*(int*) __ponexitend - *(int*) __ponexitbegin) >> 2)
|
|
{
|
|
try
|
|
{
|
|
uint num2 = *__pexit_list_size * 4U;
|
|
uint num3 = num2 >= 2048U ? 2048U : num2;
|
|
IntPtr cb = new IntPtr((int) num2 + (int) num3);
|
|
IntPtr num4 = Marshal.ReAllocHGlobal(new IntPtr((void*) *(int*) __ponexitbegin), cb);
|
|
__FnPtr<void ()>** local2 = __ponexitend;
|
|
IntPtr num5 = *(int*) local2 + ((IntPtr) num4.ToPointer() - *(int*) __ponexitbegin);
|
|
*(int*) local2 = (int) num5;
|
|
*(int*) __ponexitbegin = (int) num4.ToPointer();
|
|
uint num6 = *__pexit_list_size;
|
|
uint num7 = 512U >= num6 ? num6 : 512U;
|
|
*__pexit_list_size = num6 + num7;
|
|
}
|
|
catch (OutOfMemoryException ex)
|
|
{
|
|
IntPtr cb = new IntPtr((int) *__pexit_list_size * 4 + 8);
|
|
IntPtr num8 = Marshal.ReAllocHGlobal(new IntPtr((void*) *(int*) __ponexitbegin), cb);
|
|
__FnPtr<void ()>** local3 = __ponexitend;
|
|
IntPtr num9 = *(int*) local3 + ((IntPtr) num8.ToPointer() - *(int*) __ponexitbegin);
|
|
*(int*) local3 = (int) num9;
|
|
*(int*) __ponexitbegin = (int) num8.ToPointer();
|
|
uint* numPtr = __pexit_list_size;
|
|
int num10 = (int) *numPtr + 4;
|
|
*numPtr = (uint) num10;
|
|
}
|
|
}
|
|
*(int*) *(int*) __ponexitend = (int) func;
|
|
__FnPtr<void ()>** local4 = __ponexitend;
|
|
int num11 = *(int*) local4 + 4;
|
|
*(int*) local4 = num11;
|
|
local1 = func;
|
|
}
|
|
catch (OutOfMemoryException ex)
|
|
{
|
|
}
|
|
finally
|
|
{
|
|
\u003CModule\u003E.\u003FA0x9b698f77\u002E__global_unlock();
|
|
}
|
|
if (local1 != null)
|
|
{
|
|
num1 = 0;
|
|
goto label_12;
|
|
}
|
|
}
|
|
num1 = -1;
|
|
label_12:
|
|
return num1;
|
|
}
|
|
|
|
internal static unsafe void _exit_callback()
|
|
{
|
|
if (\u003CModule\u003E.\u003FA0x9b698f77\u002E__exit_list_size == 0U)
|
|
return;
|
|
__FnPtr<void ()>* local1 = (__FnPtr<void ()>*) \u003CModule\u003E._decode_pointer((void*) \u003CModule\u003E.\u003FA0x9b698f77\u002E__onexitbegin_m);
|
|
__FnPtr<void ()>* local2 = (__FnPtr<void ()>*) \u003CModule\u003E._decode_pointer((void*) \u003CModule\u003E.\u003FA0x9b698f77\u002E__onexitend_m);
|
|
if ((IntPtr) local1 != new IntPtr(-1) && (IntPtr) local1 != IntPtr.Zero && (IntPtr) local2 != IntPtr.Zero)
|
|
{
|
|
while (true)
|
|
{
|
|
do
|
|
{
|
|
local2 -= 4;
|
|
if (local2 < local1)
|
|
goto label_5;
|
|
}
|
|
while ((IntPtr) *(int*) local2 == (IntPtr) \u003CModule\u003E._encoded_null());
|
|
void* voidPtr = \u003CModule\u003E._decode_pointer((void*) *(int*) local2);
|
|
*(int*) local2 = (int) \u003CModule\u003E._encoded_null();
|
|
// ISSUE: cast to a function pointer type
|
|
// ISSUE: function pointer call
|
|
__calli((__FnPtr<void ()>) (IntPtr) voidPtr)();
|
|
local1 = (__FnPtr<void ()>*) \u003CModule\u003E._decode_pointer((void*) \u003CModule\u003E.\u003FA0x9b698f77\u002E__onexitbegin_m);
|
|
local2 = (__FnPtr<void ()>*) \u003CModule\u003E._decode_pointer((void*) \u003CModule\u003E.\u003FA0x9b698f77\u002E__onexitend_m);
|
|
}
|
|
label_5:
|
|
Marshal.FreeHGlobal(new IntPtr((void*) local1));
|
|
}
|
|
\u003CModule\u003E.\u003FA0x9b698f77\u002E__dealloc_global_lock();
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe int _initatexit_m()
|
|
{
|
|
if (!\u003CModule\u003E.\u003FA0x9b698f77\u002E__alloc_global_lock())
|
|
return 0;
|
|
\u003CModule\u003E.\u003FA0x9b698f77\u002E__onexitbegin_m = (__FnPtr<void ()>*) \u003CModule\u003E._encode_pointer(Marshal.AllocHGlobal(128).ToPointer());
|
|
\u003CModule\u003E.\u003FA0x9b698f77\u002E__onexitend_m = \u003CModule\u003E.\u003FA0x9b698f77\u002E__onexitbegin_m;
|
|
\u003CModule\u003E.\u003FA0x9b698f77\u002E__exit_list_size = 32U;
|
|
return 1;
|
|
}
|
|
|
|
internal static __FnPtr<int ()> _onexit_m(__FnPtr<int ()> _Function) => \u003CModule\u003E._atexit_m((__FnPtr<void ()>) _Function) != -1 ? _Function : (__FnPtr<int ()>) 0;
|
|
|
|
internal static unsafe int _atexit_m(__FnPtr<void ()> func)
|
|
{
|
|
__FnPtr<void ()>* local1 = (__FnPtr<void ()>*) \u003CModule\u003E._decode_pointer((void*) \u003CModule\u003E.\u003FA0x9b698f77\u002E__onexitbegin_m);
|
|
__FnPtr<void ()>* local2 = (__FnPtr<void ()>*) \u003CModule\u003E._decode_pointer((void*) \u003CModule\u003E.\u003FA0x9b698f77\u002E__onexitend_m);
|
|
// ISSUE: cast to a function pointer type
|
|
int num = \u003CModule\u003E._atexit_helper((__FnPtr<void ()>) (IntPtr) \u003CModule\u003E._encode_pointer((void*) func), &\u003CModule\u003E.\u003FA0x9b698f77\u002E__exit_list_size, &local2, &local1);
|
|
\u003CModule\u003E.\u003FA0x9b698f77\u002E__onexitbegin_m = (__FnPtr<void ()>*) \u003CModule\u003E._encode_pointer((void*) local1);
|
|
\u003CModule\u003E.\u003FA0x9b698f77\u002E__onexitend_m = (__FnPtr<void ()>*) \u003CModule\u003E._encode_pointer((void*) local2);
|
|
return num;
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe int _initatexit_app_domain()
|
|
{
|
|
if (\u003CModule\u003E.\u003FA0x9b698f77\u002E__alloc_global_lock())
|
|
{
|
|
\u003CModule\u003E.__onexitbegin_app_domain = (__FnPtr<void ()>*) \u003CModule\u003E._encode_pointer(Marshal.AllocHGlobal(128).ToPointer());
|
|
\u003CModule\u003E.__onexitend_app_domain = \u003CModule\u003E.__onexitbegin_app_domain;
|
|
\u003CModule\u003E.__exit_list_size_app_domain = 32U;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
internal static unsafe void _app_exit_callback()
|
|
{
|
|
if (\u003CModule\u003E.__exit_list_size_app_domain == 0U)
|
|
return;
|
|
__FnPtr<void ()>* local1 = (__FnPtr<void ()>*) \u003CModule\u003E._decode_pointer((void*) \u003CModule\u003E.__onexitbegin_app_domain);
|
|
__FnPtr<void ()>* local2 = (__FnPtr<void ()>*) \u003CModule\u003E._decode_pointer((void*) \u003CModule\u003E.__onexitend_app_domain);
|
|
try
|
|
{
|
|
if ((IntPtr) local1 == new IntPtr(-1) || (IntPtr) local1 == IntPtr.Zero || (IntPtr) local2 == IntPtr.Zero)
|
|
return;
|
|
while (true)
|
|
{
|
|
do
|
|
{
|
|
local2 -= 4;
|
|
}
|
|
while (local2 >= local1 && (IntPtr) *(int*) local2 == (IntPtr) \u003CModule\u003E._encoded_null());
|
|
if (local2 >= local1)
|
|
{
|
|
// ISSUE: cast to a function pointer type
|
|
__FnPtr<void ()> local3 = (__FnPtr<void ()>) (IntPtr) \u003CModule\u003E._decode_pointer((void*) *(int*) local2);
|
|
*(int*) local2 = (int) \u003CModule\u003E._encoded_null();
|
|
// ISSUE: function pointer call
|
|
__calli(local3)();
|
|
local1 = (__FnPtr<void ()>*) \u003CModule\u003E._decode_pointer((void*) \u003CModule\u003E.__onexitbegin_app_domain);
|
|
local2 = (__FnPtr<void ()>*) \u003CModule\u003E._decode_pointer((void*) \u003CModule\u003E.__onexitend_app_domain);
|
|
}
|
|
else
|
|
break;
|
|
}
|
|
}
|
|
finally
|
|
{
|
|
Marshal.FreeHGlobal(new IntPtr((void*) local1));
|
|
\u003CModule\u003E.\u003FA0x9b698f77\u002E__dealloc_global_lock();
|
|
}
|
|
}
|
|
|
|
internal static __FnPtr<int ()> _onexit_m_appdomain(__FnPtr<int ()> _Function) => \u003CModule\u003E._atexit_m_appdomain((__FnPtr<void ()>) _Function) != -1 ? _Function : (__FnPtr<int ()>) 0;
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe int _atexit_m_appdomain(__FnPtr<void ()> func)
|
|
{
|
|
__FnPtr<void ()>* local1 = (__FnPtr<void ()>*) \u003CModule\u003E._decode_pointer((void*) \u003CModule\u003E.__onexitbegin_app_domain);
|
|
__FnPtr<void ()>* local2 = (__FnPtr<void ()>*) \u003CModule\u003E._decode_pointer((void*) \u003CModule\u003E.__onexitend_app_domain);
|
|
// ISSUE: cast to a function pointer type
|
|
int num = \u003CModule\u003E._atexit_helper((__FnPtr<void ()>) (IntPtr) \u003CModule\u003E._encode_pointer((void*) func), &\u003CModule\u003E.__exit_list_size_app_domain, &local2, &local1);
|
|
\u003CModule\u003E.__onexitbegin_app_domain = (__FnPtr<void ()>*) \u003CModule\u003E._encode_pointer((void*) local1);
|
|
\u003CModule\u003E.__onexitend_app_domain = (__FnPtr<void ()>*) \u003CModule\u003E._encode_pointer((void*) local2);
|
|
return num;
|
|
}
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
|
|
[DllImport("MSVCR80.dll", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern unsafe void* _encode_pointer(void* _param0);
|
|
|
|
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("MSVCR80.dll", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern unsafe void* _decode_pointer(void* _param0);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
|
|
[DllImport("MSVCR80.dll", CallingConvention = CallingConvention.Cdecl)]
|
|
public static extern unsafe void* _encoded_null();
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe int _initterm_e(__FnPtr<int ()>* pfbegin, __FnPtr<int ()>* pfend)
|
|
{
|
|
int num1 = 0;
|
|
if (pfbegin < pfend)
|
|
{
|
|
while (num1 == 0)
|
|
{
|
|
uint num2 = (uint) *(int*) pfbegin;
|
|
if (num2 != 0U)
|
|
{
|
|
// ISSUE: cast to a function pointer type
|
|
// ISSUE: function pointer call
|
|
num1 = __calli((__FnPtr<int ()>) (int) num2)();
|
|
}
|
|
pfbegin += 4;
|
|
if (pfbegin >= pfend)
|
|
break;
|
|
}
|
|
}
|
|
return num1;
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe void _initterm(__FnPtr<void ()>* pfbegin, __FnPtr<void ()>* pfend)
|
|
{
|
|
if (pfbegin >= pfend)
|
|
return;
|
|
do
|
|
{
|
|
uint num = (uint) *(int*) pfbegin;
|
|
if (num != 0U)
|
|
{
|
|
// ISSUE: cast to a function pointer type
|
|
// ISSUE: function pointer call
|
|
__calli((__FnPtr<void ()>) (int) num)();
|
|
}
|
|
pfbegin += 4;
|
|
}
|
|
while (pfbegin < pfend);
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static ModuleHandle \u003CCrtImplementationDetails\u003E\u002EThisModule\u002EHandle() => typeof (ThisModule).Module.ModuleHandle;
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe void _initterm_m(__FnPtr<void* ()>* pfbegin, __FnPtr<void* ()>* pfend)
|
|
{
|
|
if (pfbegin >= pfend)
|
|
return;
|
|
do
|
|
{
|
|
uint methodToken = (uint) *(int*) pfbegin;
|
|
if (methodToken != 0U)
|
|
{
|
|
// ISSUE: cast to a function pointer type
|
|
// ISSUE: function pointer call
|
|
void* voidPtr = __calli(\u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EThisModule\u002EResolveMethod\u003Cvoid\u0020const\u0020\u002A\u0020__clrcall\u0028void\u0029\u003E((__FnPtr<void* ()>) (int) methodToken))();
|
|
}
|
|
pfbegin += 4;
|
|
}
|
|
while (pfbegin < pfend);
|
|
}
|
|
|
|
[DebuggerStepThrough]
|
|
internal static unsafe __FnPtr<void* ()> \u003CCrtImplementationDetails\u003E\u002EThisModule\u002EResolveMethod\u003Cvoid\u0020const\u0020\u002A\u0020__clrcall\u0028void\u0029\u003E(
|
|
__FnPtr<void* ()> methodToken)
|
|
{
|
|
// ISSUE: cast to a function pointer type
|
|
return (__FnPtr<void* ()>) (IntPtr) \u003CModule\u003E.\u003CCrtImplementationDetails\u003E\u002EThisModule\u002EHandle().ResolveMethodHandle((int) methodToken).GetFunctionPointer().ToPointer();
|
|
}
|
|
|
|
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
|
|
[SecurityPermission(SecurityAction.Assert, UnmanagedCode = true)]
|
|
internal static unsafe void ___CxxCallUnwindDtor(__FnPtr<void (void*)> pDtor, void* pThis)
|
|
{
|
|
try
|
|
{
|
|
void* voidPtr = pThis;
|
|
// ISSUE: function pointer call
|
|
__calli(pDtor)(voidPtr);
|
|
}
|
|
catch (Exception ex) when (\u003CModule\u003E.__FrameUnwindFilter((_EXCEPTION_POINTERS*) Marshal.GetExceptionPointers()) != 0)
|
|
{
|
|
}
|
|
}
|
|
|
|
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
|
|
[SecurityPermission(SecurityAction.Assert, UnmanagedCode = true)]
|
|
internal static unsafe void ___CxxCallUnwindDelDtor(__FnPtr<void (void*)> pDtor, void* pThis)
|
|
{
|
|
try
|
|
{
|
|
void* voidPtr = pThis;
|
|
// ISSUE: function pointer call
|
|
__calli(pDtor)(voidPtr);
|
|
}
|
|
catch (Exception ex) when (\u003CModule\u003E.__FrameUnwindFilter((_EXCEPTION_POINTERS*) Marshal.GetExceptionPointers()) != 0)
|
|
{
|
|
}
|
|
}
|
|
|
|
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
|
|
[SecurityPermission(SecurityAction.Assert, UnmanagedCode = true)]
|
|
internal static unsafe void ___CxxCallUnwindVecDtor(
|
|
__FnPtr<void (void*, uint, int, __FnPtr<void (void*)>)> pVecDtor,
|
|
void* ptr,
|
|
uint size,
|
|
int count,
|
|
__FnPtr<void (void*)> pDtor)
|
|
{
|
|
try
|
|
{
|
|
void* voidPtr = ptr;
|
|
int num1 = (int) size;
|
|
int num2 = count;
|
|
__FnPtr<void (void*)> local = pDtor;
|
|
// ISSUE: cast to a function pointer type
|
|
// ISSUE: function pointer call
|
|
__calli(pVecDtor)((__FnPtr<void (void*)>) (IntPtr) voidPtr, num1, (uint) num2, (void*) local);
|
|
}
|
|
catch (Exception ex) when (\u003CModule\u003E.__FrameUnwindFilter((_EXCEPTION_POINTERS*) Marshal.GetExceptionPointers()) != 0)
|
|
{
|
|
}
|
|
}
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern uint _wmainCRTStartup();
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int HeapSetInformation(
|
|
[In] void* obj0,
|
|
[In] _HEAP_INFORMATION_CLASS obj1,
|
|
[In] void* obj2,
|
|
[In] uint obj3);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int GetVolumeInformationW(
|
|
[In] ushort* obj0,
|
|
[In] ushort* obj1,
|
|
[In] uint obj2,
|
|
[In] uint* obj3,
|
|
[In] uint* obj4,
|
|
[In] uint* obj5,
|
|
[In] ushort* obj6,
|
|
[In] uint obj7);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int CreateWellKnownSid(
|
|
[In] WELL_KNOWN_SID_TYPE obj0,
|
|
[In] void* obj1,
|
|
[In] void* obj2,
|
|
[In] uint* obj3);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe void* LocalFree([In] void* obj0);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int InfoCardKeyGenX931(
|
|
[In] uint obj0,
|
|
[In] byte* obj1,
|
|
[In] byte* obj2,
|
|
[In] byte* obj3,
|
|
[In] byte* obj4,
|
|
[In] uint obj5,
|
|
[In] byte* obj6,
|
|
[In] byte* obj7,
|
|
[In] uint obj8,
|
|
[In] byte** obj9,
|
|
[In] uint* obj10,
|
|
[In] X931_restart_t* obj11);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int CloseHandle([In] void* obj0);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int ConvertSidToStringSidW([In] void* obj0, [In] ushort** obj1);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe uint CreateProcessAsTrustedUser(
|
|
[In] ushort* obj0,
|
|
[In] ushort* obj1,
|
|
[In] uint obj2,
|
|
[In] ushort* obj3,
|
|
[In] ushort* obj4,
|
|
[In] uint obj5,
|
|
[In] void** obj6,
|
|
[In] void** obj7,
|
|
[In] uint* obj8,
|
|
[In] void* obj9,
|
|
[In] void** obj10);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int CheckTokenMembership([In] void* obj0, [In] void* obj1, [In] int* obj2);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern int RpcRevertToSelf();
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe uint CreateProcessAsUserHelper(
|
|
[In] ushort* obj0,
|
|
[In] ushort* obj1,
|
|
[In] uint obj2,
|
|
[In] ushort* obj3,
|
|
[In] ushort* obj4,
|
|
[In] void** obj5,
|
|
[In] uint* obj6);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int RpcBindingSetAuthInfoW(
|
|
[In] void* obj0,
|
|
[In] ushort* obj1,
|
|
[In] uint obj2,
|
|
[In] uint obj3,
|
|
[In] void* obj4,
|
|
[In] uint obj5);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern int RevertToSelf();
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe uint SetEntriesInAclW(
|
|
[In] uint obj0,
|
|
[In] _EXPLICIT_ACCESS_W* obj1,
|
|
[In] _ACL* obj2,
|
|
[In] _ACL** obj3);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe uint SetSecurityInfo(
|
|
[In] void* obj0,
|
|
[In] _SE_OBJECT_TYPE obj1,
|
|
[In] uint obj2,
|
|
[In] void* obj3,
|
|
[In] void* obj4,
|
|
[In] _ACL* obj5,
|
|
[In] _ACL* obj6);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe void* LocalAlloc([In] uint obj0, [In] uint obj1);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe uint InfoCardStartRpcServer([In] ushort* obj0, [In] _RPCCALLBACKS* obj1);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int RpcCryptoCloseContext([In] void* obj0, [In] ushort* obj1);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe uint CreateJobObjectHelper([In] void** obj0, [In] void* obj1);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe uint VerifyTrust([In] ushort* obj0);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int SHGetFolderPathW(
|
|
[In] HWND__* obj0,
|
|
[In] int obj1,
|
|
[In] void* obj2,
|
|
[In] uint obj3,
|
|
[In] ushort* obj4);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern uint GetLastError();
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int DuplicateTokenEx(
|
|
[In] void* obj0,
|
|
[In] uint obj1,
|
|
[In] _SECURITY_ATTRIBUTES* obj2,
|
|
[In] _SECURITY_IMPERSONATION_LEVEL obj3,
|
|
[In] _TOKEN_TYPE obj4,
|
|
[In] void** obj5);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe uint GetSecurityInfo(
|
|
[In] void* obj0,
|
|
[In] _SE_OBJECT_TYPE obj1,
|
|
[In] uint obj2,
|
|
[In] void** obj3,
|
|
[In] void** obj4,
|
|
[In] _ACL** obj5,
|
|
[In] _ACL** obj6,
|
|
[In] void** obj7);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int RpcStringFreeW([In] ushort** obj0);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe uint CreateAndWaitForFileOpenDialog(
|
|
[In] ushort* obj0,
|
|
[In] void* obj1,
|
|
[In] uint obj2,
|
|
[In] ushort* obj3,
|
|
[In] ushort* obj4);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern uint AdjustPrivileges([MarshalAs(UnmanagedType.U1)] bool _param0);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int SetHighAssuranceFlags([In] _CERT_CHAIN_CONTEXT* obj0, [In] uint* obj1);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int RpcBindingFree([In] void** obj0);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int GetVersionExW([In] _OSVERSIONINFOW* obj0);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int ConvertStringSidToSidW([In] ushort* obj0, [In] void** obj1);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int RpcImpersonateClient([In] void* obj0);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int SetTokenInformation(
|
|
[In] void* obj0,
|
|
[In] _TOKEN_INFORMATION_CLASS obj1,
|
|
[In] void* obj2,
|
|
[In] uint obj3);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int LsaGetLogonSessionData(
|
|
[In] _LUID* obj0,
|
|
[In] _SECURITY_LOGON_SESSION_DATA** obj1);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int LsaFreeReturnBuffer([In] void* obj0);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe void* OpenProcess([In] uint obj0, [In] int obj1, [In] uint obj2);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int DnsNameCompare_W([In] ushort* obj0, [In] ushort* obj1);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int EqualSid([In] void* obj0, [In] void* obj1);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe void AssertInternal(
|
|
[MarshalAs(UnmanagedType.U1)] bool _param0,
|
|
[In] ushort* obj1,
|
|
[In] sbyte* obj2,
|
|
[In] int obj3,
|
|
[MarshalAs(UnmanagedType.U1)] bool _param4);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int GetTokenInformation(
|
|
[In] void* obj0,
|
|
[In] _TOKEN_INFORMATION_CLASS obj1,
|
|
[In] void* obj2,
|
|
[In] uint obj3,
|
|
[In] uint* obj4);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.Cdecl, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int _wcsnicmp([In] ushort* obj0, [In] ushort* obj1, [In] uint obj2);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe void MIDL_user_free([In] void* obj0);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe void* GetCurrentProcess();
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern uint InfoCardStopRpcServer();
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe void InfoCardKeyGenZeroAndFree([In] byte* obj0, [In] uint obj1);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int RpcCryptoDispatchRequest(
|
|
[In] void* obj0,
|
|
[In] ushort* obj1,
|
|
[In] _RPC_REQUEST* obj2,
|
|
[In] _RPC_RESPONSE** obj3);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe _CRYPT_OID_INFO* CryptFindOIDInfo(
|
|
[In] uint obj0,
|
|
[In] void* obj1,
|
|
[In] uint obj2);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int RpcStringBindingComposeW(
|
|
[In] ushort* obj0,
|
|
[In] ushort* obj1,
|
|
[In] ushort* obj2,
|
|
[In] ushort* obj3,
|
|
[In] ushort* obj4,
|
|
[In] ushort** obj5);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int OpenProcessToken([In] void* obj0, [In] uint obj1, [In] void** obj2);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int RpcBindingFromStringBindingW([In] ushort* obj0, [In] void** obj1);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe void* _getFiberPtrId();
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.Cdecl, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern void _amsg_exit([In] int obj0);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern void __security_init_cookie();
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern void Sleep([In] uint obj0);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.Cdecl, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern void \u003CCrtImplementationDetails\u003E\u002EThrowModuleLoadException(
|
|
[In] string obj0,
|
|
[In] Exception obj1);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.Cdecl, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern void \u003CCrtImplementationDetails\u003E\u002EThrowModuleLoadException(
|
|
[In] string obj0);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.Cdecl, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern void \u003CCrtImplementationDetails\u003E\u002EDoDllLanguageSupportValidation();
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.Cdecl, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern void \u003CCrtImplementationDetails\u003E\u002EThrowNestedModuleLoadException(
|
|
[In] Exception obj0,
|
|
[In] Exception obj1);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.Cdecl, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern void \u003CCrtImplementationDetails\u003E\u002ERegisterModuleUninitializer(
|
|
[In] EventHandler obj0);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.Cdecl, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe void \u003CCrtImplementationDetails\u003E\u002EDoCallBackInDefaultDomain(
|
|
[In] __FnPtr<int (void*)> obj0,
|
|
[In] void* obj1);
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.Cdecl, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern void _cexit();
|
|
|
|
[SuppressUnmanagedCodeSecurity]
|
|
[DllImport("", EntryPoint = "", CallingConvention = CallingConvention.Cdecl, SetLastError = true)]
|
|
[MethodImpl(MethodImplOptions.Unmanaged, MethodCodeType = MethodCodeType.Native)]
|
|
public static extern unsafe int __FrameUnwindFilter([In] _EXCEPTION_POINTERS* obj0);
|
|
}
|