KiPrepareFlushParameters

VOID __stdcall KiPrepareFlushParameters(_KTBFLUSH_TYPE FlushType, UINT64 *AddressSpace, UINT8 *Global){
  UINT8 v3; 
  __int32 v4; 
  __int32 v5; 

  if( KiKvaShadow )
  {
    if( FlushType == FlushKernel || (v4 = FlushType - 1) != 0 && v4 == 1 )
    {
      v3 = 0;
LABEL_4:
      *AddressSpace = 0i64;
      *Global = v3;
      return;
    }
LABEL_6:
    v3 = 1;
    goto LABEL_4;
  }
  if( FlushType == FlushKernel )
    goto LABEL_6;
  v5 = FlushType - 1;
  if( v5 )
  {
    if( v5 != 1 )
      goto LABEL_6;
    *AddressSpace = 0i64;
  }
  else
  {
    *AddressSpace = KeGetCurrentThread()->ApcState.Process->Pcb.DirectoryTableBase & 0xFFFFFFFFFFFFF000ui64;
  }
  *Global = 0;
}

Referenced by:

KeFlushMultipleRangeCurrentTb
KeFlushMultipleRangeTb
KeFlushSingleCurrentTb
KeFlushTb