HalpBlkApicWrite
EXCEPTION_REGISTRATION_RECORD *__fastcall HalpBlkApicWrite(INT64 a1, UINT64 a2){
__int64 v2;
EXCEPTION_REGISTRATION_RECORD *result;
v2 = *(_QWORD *)KeGetPcr();
if( *(_BYTE *)(v2 + 41) || *(_BYTE *)(v2 + 40) )
{
result = (EXCEPTION_REGISTRATION_RECORD *)(unsigned int)a2;
__writemsr(((int)a1 >> 4) + 2048, (unsigned int)a2);
}
else
{
result = *(EXCEPTION_REGISTRATION_RECORD **)(*(_QWORD *)KeGetPcr() + 32i64);
*(_DWORD *)((char *)&result->Next + (int)a1) = a2;
}
return result;
}Referenced by:
HalpBlkApicEndOfInterrupt
HalpBlkApicInitializeLocalUnit