CmpAddValueKeyTombstone

UINT64 __stdcall CmpAddValueKeyTombstone(_HHIVE *Hive, _UNICODE_STRING *ValueName, HSTORAGE_TYPE StorageType){
  UINT16 v5; 
  HSTORAGE_TYPE v6; 
  unsigned int v7; 
  _WORD *v9; 
  unsigned __int16 v10; 
  VOID *CellAddress; 
  _HV_GET_CELL_CONTEXT CellAddressContext; 
  CellAddressContext = (_HV_GET_CELL_CONTEXT)0xFFFFFFFFi64;
  CellAddress = 0i64;
  v5 = CmpNameSize(ValueName);
  v7 = HvAllocateCell(Hive, (unsigned int)v5 + 20, v6, &CellAddress, &CellAddressContext);
  if( v7 == -1 )
    return 0xFFFFFFFFi64;
  v9 = CellAddress;
  memset((INT64)CellAddress, 0i64);
  *v9 = 27510;
  v9[8] = 2;
  *((_DWORD *)v9 + 1) = 0;
  *((_DWORD *)v9 + 2) = -1;
  *((_DWORD *)v9 + 3) = 0;
  v10 = CmpCopyName(v9 + 10, ValueName);
  v9[1] = v10;
  if( v10 < ValueName->Length )
    v9[8] |= 1u;
  Hive->ReleaseCellRoutine(Hive, &CellAddressContext);
  return v7;
}

Referenced by:

CmpSetValueKeyTombstone