MiOutSwapKernelStackPage
__int64 __fastcall MiOutSwapKernelStackPage(__int64 a1, INT64 a2, __int64 a3){
INT64 v3;
VOID *v7;
_MMSUPPORT_INSTANCE *AnyMultiplexedVm;
__int128 v9;
__int64 v10;
__int64 result;
INT64 a5[20];
v3 = *(_QWORD *)(a1 + 56);
if( !v3 )
return 3221225643i64;
if( *(_QWORD *)(v3 + 8) <= *(_QWORD *)(v3 + 16) || !*(_DWORD *)(a1 + 72) )
return 3221225993i64;
memset(a5, 0i64, 0x98u);
a5[0] = v3;
AnyMultiplexedVm = MiGetAnyMultiplexedVm(MiWorkingSetTypeKernelStacks, v7);
v9 = *(_OWORD *)(a1 + 64);
a5[2] = (INT64)AnyMultiplexedVm;
a5[3] = a2;
*(_OWORD *)&a5[5] = v9;
v10 = ((a3 << 25) - ((_QWORD)MmGetPteBase() << 25)) >> 16;
MiOutSwapWorkingSet(AnyMultiplexedVm, 0i64, v10, v10, (INT64)a5);
result = 0i64;
*(_OWORD *)(a1 + 64) = *(_OWORD *)&a5[5];
return result;
}Referenced by:
MiOutPageSingleKernelStack