RtlRaiseException
INT8 __fastcall RtlRaiseException(
INT64 a1,
INT64 a2,
INT64 a3,
INT64 a4,
INT64 a5,
INT64 a6,
INT64 a7,
INT64 a8,
INT64 a9,
INT64 a10,
INT64 a11,
INT64 a12,
INT64 a13,
INT64 a14,
INT64 a15,
INT64 a16,
INT64 a17,
INT64 a18,
INT64 a19,
INT64 a20,
INT64 a21,
INT64 a22,
INT64 a23,
UINT64 a24){
unsigned __int64 v25;
signed __int64 v26;
void *v27;
void *v28;
NTSTATUS v29;
INT8 result;
INT64 v31;
UINT64 ImageBase[3];
LODWORD(v31) = 0;
memset(ImageBase, 0, sizeof(ImageBase));
RtlGetExtendedContextLength2(0x10000Bui64, &v31, 0i64);
v25 = (unsigned int)v31 + 15i64;
if( v25 <= (unsigned int)v31 )
v25 = 0xFFFFFFFFFFFFFF0i64;
v26 = v25 & 0xFFFFFFFFFFFFFFF0ui64;
v27 = alloca(v26);
v28 = alloca(v26);
v29 = RtlInitializeExtendedContext2((__int64)&v31, 1048587, &v31, 0i64);
RtlpCaptureContext2();
if( !RtlLookupFunctionEntry(a24, ImageBase, 0i64) )
LABEL_6:
RtlRaiseStatus(v29);
RtlVirtualUnwind(0i64, ImageBase[0], a24);
*(_QWORD *)(a1 + 16) = a24;
result = RtlDispatchException((_EXCEPTION_RECORD *)a1, (_CONTEXT *)&v31);
if( !result )
{
v29 = ZwRaiseException((_EXCEPTION_RECORD *)a1, (_CONTEXT *)&v31, 0);
goto LABEL_6;
}
return result;
}Referenced by:
RaiseException
RtlpAllocateHeapRaiseException