CmpLightWeightCommitSetUserFlagsUoW

VOID __stdcall CmpLightWeightCommitSetUserFlagsUoW(_CM_KCB_UOW *UoW, _LARGE_INTEGER *CommitTime){
  _CM_KEY_CONTROL_BLOCK *KeyControlBlock; 
  _HHIVE *KeyHive; 
  __int64 v6; 
  unsigned int v7; 
  int v8; 
  int v9; 

  v8 = -1;
  v9 = 0;
  KeyControlBlock = UoW->KeyControlBlock;
  KeyHive = KeyControlBlock->KeyHash.KeyHive;
  v6 = (__int64)KeyHive->GetCellRoutine(KeyHive, KeyControlBlock->KeyHash.KeyCell, (_HV_GET_CELL_CONTEXT *)&v8);
  v7 = *(_DWORD *)(v6 + 52) ^ (*(_DWORD *)(v6 + 52) ^ (UoW->VolatileKeyCell << 16)) & 0xF0000;
  *(_DWORD *)(v6 + 52) = v7;
  UoW->KeyControlBlock->_bf_b8 ^= (UoW->KeyControlBlock->_bf_b8 ^ HIWORD(v7)) & 0xF;
  *(_LARGE_INTEGER *)(v6 + 4) = *CommitTime;
  ++UoW->KeyControlBlock->SequenceNumber;
  KeyHive->ReleaseCellRoutine(KeyHive, (_HV_GET_CELL_CONTEXT *)&v8);
}

Referenced by:

CmpProcessLightWeightUOW