CmpReparseToVirtualPath

INT64 __fastcall CmpReparseToVirtualPath(
        _CM_KEY_CONTROL_BLOCK *kcb,
        _UNICODE_STRING *RemainingPath,
        _UNICODE_STRING *FullVirtualPath){
  struct _UNICODE_STRING *v3; 
  struct _UNICODE_STRING *v5; 
  INT64 result; 
  UINT8 v8; 
  WCHAR v9; 
  struct _UNICODE_STRING DestinationString; 
  DestinationString = 0i64;
  v5 = v3;
  RtlInitUnicodeString(&DestinationString, 0i64, (WCHAR)FullVirtualPath);
  if( (*((_DWORD *)kcb + 46) & 0x800000) != 0
    && (result = CmRealKCBToVirtualPath((INT64)kcb, 0i64, (INT64)FullVirtualPath, &DestinationString), (int)result >= 0) )
  {
    v8 = CmpVirtualPathPresent(&DestinationString);
    if( v8 )
    {
      *v5 = DestinationString;
      RtlInitUnicodeString(&DestinationString, 0i64, v9);
      v8 = 1;
    }
  }
  else
  {
    v8 = 0;
  }
  if( DestinationString.Buffer )
    RtlFreeAnsiString(&DestinationString);
  LOBYTE(result) = v8;
  return result;
}

Referenced by:

CmKeyBodyRemapToVirtual
CmKeyBodyRemapToVirtualForEnum
CmKeyBodyReplicateToVirtual
CmpVEExecuteCreateLogic