CmpAddValueKeyTombstone

INT64 __fastcall CmpAddValueKeyTombstone(UINT64 a1, _UNICODE_STRING *a2){
  unsigned int v4; 
  _HSTORAGE_TYPE v5; 
  unsigned int v6; 
  size_t v8; 
  _WORD *v9; 
  unsigned __int16 v10; 
  VOID *CellAddress; 
  _HV_GET_CELL_CONTEXT CellAddressContext; 

  CellAddressContext = (_HV_GET_CELL_CONTEXT)0xFFFFFFFFi64;
  CellAddress = 0i64;
  v4 = CmpNameSize(a2) + 20;
  v6 = HvAllocateCell(a1, v4, v5, &CellAddress, &CellAddressContext);
  if( v6 == -1 )
    return 0xFFFFFFFFi64;
  v8 = v4;
  v9 = CellAddress;
  memset(CellAddress, 0i64, v8);
  *v9 = 27510;
  v9[8] = 2;
  *((_DWORD *)v9 + 1) = 0;
  *((_DWORD *)v9 + 2) = -1;
  *((_DWORD *)v9 + 3) = 0;
  v10 = CmpCopyName(v9 + 10, a2);
  v9[1] = v10;
  if( v10 < a2->Length )
    v9[8] |= 1u;
  (*(void(__fastcall **)(UINT64, _HV_GET_CELL_CONTEXT *))(a1 + 16))(a1, &CellAddressContext);
  return v6;
}

Referenced by:

CmpSetValueKeyTombstone