CmpInitializeKeyNameString

VOID __fastcall CmpInitializeKeyNameString(_CM_KEY_NODE *Cell, _UNICODE_STRING *KeyName, _WCHAR *NameBuffer){
  unsigned __int16 NameLength; 
  unsigned __int16 v5; 
  __int64 v6; 
  __int64 v7; 

  NameLength = Cell->NameLength;
  if( (Cell->Flags & 0x20) != 0 )
  {
    v5 = 2 * NameLength;
    KeyName->Length = v5;
    if( v5 > 0x200u )
      CmSiBugCheck((PVOID)0x31, 0i64, Cell, (PVOID)v5);
    CmpCopyCompressedName(NameBuffer, 0x200ui64, Cell->Name, Cell->NameLength);
    *(_QWORD *)(v6 + 8) = v7;
    *(_WORD *)(v6 + 2) = 512;
  }
  else
  {
    KeyName->Length = NameLength;
    KeyName->Buffer = Cell->Name;
    KeyName->MaximumLength = *((_WORD *)Cell + 26);
  }
}

Referenced by:

CmpCopySyncTree2
CmpSyncSubKeysAfterDelete