SmIoRequestComplete

void __fastcall SmIoRequestComplete(__int64 a1, _DWORD *a2, __int64 a3, __int64 a4){
  unsigned __int64 v4; 
  _MMMOD_WRITER_MDL_ENTRY *v5; 
  int v6; 
  _MI_PARTITION *Partition; 
  _MMPFN *v8; 
  unsigned __int64 v9; 

  if( (*a2 & 7) != 0 )
  {
    if( (*a2 & 7) == 2 )
      *(_QWORD *)(a4 + 8) = (unsigned __int16)*(_QWORD *)(a4 + 8);
  }
  else
  {
    *(_QWORD *)(a4 + 8) &= 1ui64;
  }
  if( a3 < 0 )
  {
    KeSetEvent((PRKEVENT)a3, 1, 0);
  }
  else
  {
    v4 = a3 | 0x8000000000000000ui64;
    v5 = *(_MMMOD_WRITER_MDL_ENTRY **)((a3 | 0x8000000000000000ui64) + 0x38);
    v6 = *(_DWORD *)((a3 | 0x8000000000000000ui64) + 0x10);
    Partition = v5->Partition;
    if( v6 < 0 )
    {
      MiStoreLogWriteCompleteFailure((unsigned int)v6);
      v8 = &MmGetPfnDb()[*(_QWORD *)(v4 + 112)];
      v9 = MiLockPageInline(v8);
      *((_BYTE *)&v8->u3 + 2) |= 0x10u;
      _InterlockedAnd64(&v8->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
      __writecr8(v9);
      Partition->Store.ModifiedWriteDisableCount = 32;
      v5 = *(_MMMOD_WRITER_MDL_ENTRY **)(v4 + 56);
    }
    MiStoreModifiedWriteDereference(v5);
    MiStoreFreeWriteSupport((_MI_STORE_WRITE_SUPPORT *)v4, &Irp);
  }
}

Referenced by:

SMKM_STORE_MGR::SmCompressCtxProcessReadyQueue
SMKM_STORE_MGR::SmIoCtxWorkItemComplete