MI_WRITE_INVALID_PTE_TB_FLUSH_NEEDED

BOOL __fastcall MI_WRITE_INVALID_PTE_TB_FLUSH_NEEDED(volatile INT64 *a1, INT64 a2){
  volatile INT64 v3; 
  v3 = *a1;
  if( (MiFlags & 0x800) != 0 )
  {
    LOBYTE(v3) = 32;
  }
  else if( (MiFlags & 0x4000000) != 0 )
  {
    _mm_lfence();
  }
  if( (v3 & 0x20) != 0 )
  {
    *a1 = a2;
    return 1;
  }
  return(MI_INTERLOCKED_EXCHANGE_PTE(a1, a2) & 0x20) != 0;
}

Referenced by:

MiConvertPrivateToProto
MiTerminateWsle