HvlDeleteProcessor
void __fastcall HvlDeleteProcessor(__int64 a1, SIZE_T a2, MEMORY_CACHING_TYPE a3){
void *v4;
VOID *v5;
void *v6;
__int64 v7;
v7 = 0i64;
v4 = *(void **)(a1 + 33672);
if( v4 )
{
if( (struct _KPRCB *)a1 == KeGetCurrentPrcb() )
{
HvlpGetRegister64(589843, &v7);
HvlpSetRegister64(589843, v7 & 0xFFFFFFFFFFFFFFFEui64);
v4 = *(void **)(a1 + 33672);
}
if( (HvlpFlags & 2) != 0 )
MmUnmapIoSpace(v4, 1ui64);
else
HvlpFreeOverlayPages(v4);
*(_QWORD *)(a1 + 33672) = 0i64;
}
v5 = *(VOID **)(a1 + 33976);
if( v5 )
HvlpFreeOverlayPages(v5);
v6 = *(void **)(a1 + 33664);
if( v6 )
MmFreeIndependentPages(v6, 0x5000ui64);
}Referenced by:
KeStartAllProcessors
KiStartDynamicProcessor