HalpBlkIdleLoop
VOID __stdcall __noreturn HalpBlkIdleLoop(){
_EXCEPTION_REGISTRATION_RECORD *i;
__int64 v1;
for( i = KeGetPcr()->NtTib.ExceptionList; ; _InterlockedIncrement64((volatile signed __int64 *)&i[8].Handler + v1) )
{
v1 = ((unsigned __int64)i[141].Next >> 52) & 0xF & -(__int64)((((unsigned __int64)i[141].Next >> 52) & 0xF) < 4);
if( !(_DWORD)v1 )
break;
if( (_DWORD)v1 == 1 )
HalpBlkIdlePortReadHalt((UINT16)i[141].Next);
if( (_DWORD)v1 == 2 )
HalpBlkIdlePortRead((UINT16)i[141].Next);
else
HalpBlkIdleMonitorMWait(&i[160], 0i64, LODWORD(i[141].Next));
}
HalpBlkIdleHalt();
}Referenced by:
HalpBlkProcessorStartup