KiFlushCurrentTbOnly

VOID __fastcall KiFlushCurrentTbOnly(INT64 a1){
  int v1; 
  unsigned __int64 v2; 
  unsigned __int64 v3; 
  unsigned __int64 v4; 
  if( (_BYTE)KiKvaShadow )
  {
    if( !(_DWORD)a1 )
      goto LABEL_8;
    v1 = a1 - 1;
    if( v1 )
    {
      if( v1 == 1 )
        goto LABEL_8;
    }
  }
  else if( (_DWORD)a1 && (int)a1 <= 2 )
  {
    goto LABEL_8;
  }
  if( KiFlushPcid )
  {
    v2 = __readcr3();
    __writecr3(v2);
    if( !*(_BYTE *)(*((_QWORD *)KeGetCurrentThread() + 23) + 912i64) )
      KiSetUserTbFlushPending();
  }
  else
  {
    v4 = __readcr4();
    if( (v4 & 0x20080) == 0 )
    {
LABEL_8:
      v3 = __readcr3();
      __writecr3(v3);
      return;
    }
    __writecr4(v4 ^ 0x80);
    __writecr4(v4);
  }
}

Referenced by:

KeFlushCurrentTbOnly
KeFlushTb