KiIpiSendRequestEx

INT64 __fastcall KiIpiSendRequestEx(CHAR a1){
  int v1; 
  unsigned __int16 *v2; 
  _OWORD *v3; 
  _OWORD *v4; 
  unsigned __int16 *v5; 
  int v6; 
  __int64 v7; 
  INT64 result; 
  int i; 
  __int64 v10; 
  __int64(__fastcall *v11)(__int64); 
  __int64 v12; 
  v4 = v3;
  v5 = v2;
  v6 = v1;
  v7 = a1;
  if( v1 )
  {
    if( (unsigned int)KeNumberProcessors_0 <= 1 )
    {
LABEL_3:
      result = (INT64)v11;
      if( v11 )
        return v11(v12);
      return result;
    }
  }
  else if( !(unsigned int)KiAffinityContainsProcessorsOtherThanSelf(a1, v2) )
  {
    goto LABEL_3;
  }
  KiIpiSendRequest(v7, v6, v5, v4, v10);
  if( v11 )
    v11(v12);
  result = *(unsigned int *)(v7 + 11648);
  for( i = 0; (_DWORD)result; result = *(unsigned int *)(v7 + 11648) )
  {
    ++i;
    _mm_pause();
  }
  return result;
}

Referenced by:

KeInvalidateAllCaches
KeInvalidateRangeAllCaches
KxFlushEntireTb
KxFlushNonGlobalTb