RtlStringCchCopyExW

INT64 __stdcall RtlStringCchCopyExW(
        WCHAR *pszDest,
        UINT64 cchDest,
        WCHAR *pszSrc,
        WCHAR **ppszDestEnd,
        UINT64 *pcchRemaining,
        UINT64 dwFlags){
  int v9; 
  wchar_t *v10; 
  UINT64 v11; 
  WCHAR *v12; 
  NTSTATUS v13; 
  size_t v14; 
  UINT64 v16; 
  STRSAFE_LPWSTR ppszDestEnda; 
  size_t pcchNewDestLength; 
  v9 = 0;
  if( (dwFlags & 0x100) != 0 )
  {
    if( !pszDest && cchDest || cchDest > 0x7FFFFFFF )
      v9 = -1073741811;
  }
  else if( cchDest - 1 > 0x7FFFFFFE )
  {
    v9 = -1073741811;
  }
  if( v9 < 0 )
  {
    if( cchDest )
      *pszDest = 0;
  }
  else
  {
    ppszDestEnda = pszDest;
    v10 = pszDest;
    pcchNewDestLength = cchDest;
    v11 = cchDest;
    if( (dwFlags & 0x100) != 0 )
    {
      v12 = (WCHAR *)&::ppszDestEnd;
      if( pszSrc )
        v12 = pszSrc;
      pszSrc = v12;
    }
    v9 = 0;
    if( (dwFlags & 0xFFFFE000) != 0 )
    {
      v9 = -1073741811;
      if( cchDest )
        *pszDest = 0;
    }
    else if( cchDest )
    {
      pcchNewDestLength = 0i64;
      v13 = RtlStringCopyWorkerW(pszDest, cchDest, &pcchNewDestLength, pszSrc, v16);
      v14 = pcchNewDestLength;
      v9 = v13;
      v11 = cchDest - pcchNewDestLength;
      pcchNewDestLength = cchDest - pcchNewDestLength;
      v10 = &pszDest[v14];
      ppszDestEnda = v10;
      if( v13 >= 0 )
      {
        if( (dwFlags & 0x200) != 0 && v11 > 1 && 2 * v11 > 2 )
          memset((INT64)(v10 + 1), (unsigned __int8)dwFlags);
        goto LABEL_13;
      }
    }
    else
    {
      if( !*pszSrc )
      {
LABEL_13:
        if( ppszDestEnd )
          *ppszDestEnd = v10;
        if( pcchRemaining )
          *pcchRemaining = v11;
        return(unsigned int)v9;
      }
      v9 = pszDest != 0i64 ? -2147483643 : -1073741811;
    }
    if( (dwFlags & 0x1C00) != 0 && cchDest )
    {
      StringExHandleOtherFlagsW(
        pszDest,
        2 * cchDest,
        (WCHAR **)pszSrc,
        (UINT64 *)&ppszDestEnda,
        (UINT64)&pcchNewDestLength);
      v10 = ppszDestEnda;
      v11 = pcchNewDestLength;
    }
    if( (int)(v9 + 0x80000000) < 0 || v9 == -2147483643 )
      goto LABEL_13;
  }
  return(unsigned int)v9;
}

Referenced by:

CmClassSubkeyCallback
CmDeviceClassesSubkeyCallback
CmDevicePanelEnumSubkeyCallback
CmEnumSubkeyCallback
CmGetDeviceChildren
CmGetDeviceInterfaceName
CmGetDeviceInterfaceReferenceString
CmGetDeviceInterfaceSubkeyPath
CmGetDeviceParent
CmGetMatchingDeviceListForSubkey
CmGetMatchingFilteredDeviceInterfaceListWorker
CmIsDeviceSafeRemovalRequired
DrvDbBuildDeviceIdDriverInfMatch
DrvDbDeleteObjectSubKey
DrvDbGetDeviceIdDriverInfMatches
DrvDbGetDriverDatabaseList
DrvDbGetDriverPackageMappedProperty
DrvDbGetObjectSubKeyCallback
IopGetDeviceInterfaces
PiCMCreateDevice
PiCMGenerateDeviceInstance
PiDevCfgQueryPolicyStringList
PiDmGetObjectListCallback
PiPnpRtlGetFilteredDeviceList
PnpGetDeviceDependencyList
PnpGetGenericStorePropertyLocales
PnpObjectListCallback
RegRtlCreateTreeTransacted
RegRtlDeletePathInternal