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