KiEnumerateNmiSxCallback
__int64 __fastcall KiEnumerateNmiSxCallback(PVOID **a1, unsigned __int8 *a2, _QWORD *a3){
unsigned __int8 CurrentIrql;
PVOID *v5;
PVOID *v6;
PVOID *v7;
__int64 result;
unsigned __int64 v9;
CurrentIrql = KeGetCurrentIrql();
v5 = *a1;
v6 = &KiNmiCallbackListHead;
if( *a1 == &KiNmiCallbackListHead )
goto LABEL_9;
if( v5 )
goto LABEL_6;
if( CurrentIrql < 2u )
{
CurrentIrql = KeGetCurrentIrql();
__writecr8(2ui64);
}
*a2 = CurrentIrql;
v5 = (PVOID *)KiNmiCallbackListHead;
if( KiNmiCallbackListHead )
{
LABEL_6:
*a3 = v5[1];
v7 = (PVOID *)*v5;
result = 1i64;
if( v7 )
v6 = v7;
*a1 = v6;
}
else
{
LABEL_9:
v9 = *a2;
if( (unsigned __int8)v9 < 2u )
__writecr8(v9);
return 0i64;
}
return result;
}Referenced by:
KeIsNmiCallbackRegistered
KiEnumerateCallback