RtlStringCopyWorkerW_2

NTSTATUS __stdcall RtlStringCopyWorkerW_2(
        NTSTRSAFE_PWSTR pszDest,
        size_t cchDest,
        size_t *pcchNewDestLength,
        STRSAFE_PCNZWCH pszSrc,
        size_t cchToCopy){
  NTSTRSAFE_PWSTR v5; 
  __int64 v6; 
  signed __int64 v7; 
  wchar_t v8; 
  NTSTRSAFE_PWSTR v9; 
  NTSTATUS result; 

  v5 = pszDest;
  if( *(_QWORD *)&cchDest )
  {
    v6 = *(_QWORD *)&cchToCopy;
    v7 = (char *)pszSrc - (char *)pszDest;
    do
    {
      if( !v6 )
        break;
      v8 = *(NTSTRSAFE_PWSTR)((char *)v5 + v7);
      if( !v8 )
        break;
      *v5 = v8;
      --v6;
      ++v5;
      --*(_QWORD *)&cchDest;
    }
    while( *(_QWORD *)&cchDest );
  }
  v9 = v5 - 1;
  result = *(_QWORD *)&cchDest == 0i64 ? 0x80000005 : 0;
  if( *(_QWORD *)&cchDest )
    v9 = v5;
  *v9 = 0;
  return result;
}

Referenced by:

RtlStringCbCopyNW
RtlStringCchCopyNW