HalpBlkApicRead

UINT64 __stdcall HalpBlkApicRead(INT64 a1){
  _EXCEPTION_REGISTRATION_RECORD *ExceptionList; 

  ExceptionList = KeGetPcr()->NtTib.ExceptionList;
  if( BYTE1(ExceptionList[2].Handler) || LOBYTE(ExceptionList[2].Handler) )
    return __readmsr(((int)a1 >> 4) + 2048);
  else
    return *(unsigned int *)((char *)&KeGetPcr()->NtTib.ExceptionList[2].Next->Next + (int)a1);
}

Referenced by:

HalpBlkApicInitializeLocalUnit