KiPrepareFlushParameters
VOID __fastcall KiPrepareFlushParameters(INT64 a1, UINT64 *a2, CHAR *a3){
CHAR v3;
int v4;
int v5;
if( (_BYTE)KiKvaShadow )
{
if( !(_DWORD)a1 || (v4 = a1 - 1) != 0 && v4 == 1 )
{
v3 = 0;
LABEL_4:
*a2 = 0i64;
*a3 = v3;
return;
}
LABEL_6:
v3 = 1;
goto LABEL_4;
}
if( !(_DWORD)a1 )
goto LABEL_6;
v5 = a1 - 1;
if( v5 )
{
if( v5 != 1 )
goto LABEL_6;
*a2 = 0i64;
}
else
{
*a2 = *(_QWORD *)(*((_QWORD *)KeGetCurrentThread() + 23) + 40i64) & 0xFFFFFFFFFFFFF000ui64;
}
*a3 = 0;
}Referenced by:
KeFlushMultipleRangeCurrentTb
KeFlushMultipleRangeTb
KeFlushSingleCurrentTb
KeFlushTb