CmpCheckKeyAccess

INT64 __fastcall CmpCheckKeyAccess(_HHIVE *Hive, UINT64 NodeCell, CHAR PreviousMode, UINT64 DesiredAccess){
  unsigned int v4; 
  _CELL_DATA *v7; 
  unsigned int Security; 
  int v10; 
  int v11; 

  v10 = -1;
  v4 = DesiredAccess;
  v11 = 0;
  if( !Hive || (unsigned int)(NodeCell - 1) > 0xFFFFFFFD )
    return 3221225852i64;
  v7 = Hive->GetCellRoutine(Hive, NodeCell, &v10);
  if( !v7 )
    return 3221225626i64;
  Security = v7->u.KeyNode.Security;
  Hive->ReleaseCellRoutine(Hive, (_HV_GET_CELL_CONTEXT *)&v10);
  return CmpCheckSecurityCellAccess(Hive, Security, PreviousMode, v4);
}

Referenced by:

CmRestoreKey
CmpDoAccessCheckOnSubtree