MI_PAGEFILE_WRITE
__int64 __fastcall MI_PAGEFILE_WRITE(__int64 a1, _QWORD *a2, char a3, int a4, int a5){
__int64 v6;
__int64 v7;
char v8;
__int64 result;
v6 = *(_QWORD *)(*(_QWORD *)(a1 + 144) + 248i64);
v7 = 120i64 * (((unsigned __int8)_InterlockedExchangeAdd((volatile signed __int32 *)(v6 + 7656), 1u) + 1) & 0x1F);
*(_DWORD *)(v7 + v6 + 7664) = a5;
v8 = *((_BYTE *)KeGetCurrentThread() + 195);
*(_BYTE *)(v7 + v6 + 7672) = a4 != 0;
*(_BYTE *)(v7 + v6 + 7670) = v8;
*(_BYTE *)(v7 + v6 + 7671) = a3;
*(_QWORD *)(v7 + v6 + 7680) = *a2;
*(_WORD *)(v7 + v6 + 7668) = *(_WORD *)v6;
*(_QWORD *)(v7 + v6 + 7688) = *(_QWORD *)(v6 + 7104);
*(_QWORD *)(v7 + v6 + 7696) = *(_QWORD *)(v6 + 7488);
*(_QWORD *)(v7 + v6 + 7704) = *(_QWORD *)(v6 + 7600);
*(_QWORD *)(v7 + v6 + 7712) = *(_QWORD *)(v6 + 7552);
result = *(_QWORD *)(v6 + 2752);
*(_QWORD *)(v7 + v6 + 7720) = result;
*(_OWORD *)(v7 + v6 + 7728) = *(_OWORD *)(a1 + 208);
*(_OWORD *)(v7 + v6 + 7744) = *(_OWORD *)(a1 + 224);
*(_OWORD *)(v7 + v6 + 7760) = *(_OWORD *)(a1 + 240);
*(_QWORD *)(v7 + v6 + 7776) = *(_QWORD *)(a1 + 256);
return result;
}Referenced by:
MiGatherPagefilePages
MiWriteComplete