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