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