HalpDpOfflineProcessorForReplace
INT64 __fastcall HalpDpOfflineProcessorForReplace(INT64 a1){
__int16 v1;
int v3;
unsigned __int8 CurrentIrql;
unsigned int v5;
_BYTE *v6;
INT64 v7;
INT64 result;
__int16 v9;
UINT64 v10;
v1 = v9;
_disable();
v3 = v1 & 0x200;
CurrentIrql = KeGetCurrentIrql();
v5 = *((_DWORD *)KeGetPcr() + 105);
v10 = __rdtsc();
KeSaveStateForHibernate((_KPROCESSOR_STATE *)(HalpHiberProcState + 1472i64 * v5));
if( *(_DWORD *)(a1 + 56) < *(_DWORD *)a1 )
{
KeSweepLocalCaches(v7, v6);
HalpInterruptOfflineProcessor((volatile INT32 *)(a1 + 56));
}
HalpDpPostReplaceInitialization((INT64 *)a1, &v10);
result = CurrentIrql;
__writecr8(CurrentIrql);
if( v3 )
_enable();
return result;
}Referenced by:
HalpDpReplaceTarget