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