HRESULT __stdcall StringCbCopyNW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_PCNZWCH pszSrc, size_t cbToCopy){
size_t v4;
HRESULT v5;
size_t cchToCopy;
v4 = cbDest >> 1;
v5 = 0;
if( v4 - 1 > 0x7FFFFFFE )
v5 = -2147024809;
if( v5 >= 0 )
{
cchToCopy = cbToCopy >> 1;
if( cchToCopy <= 0x7FFFFFFE )
{
return StringCopyWorkerW_0(pszDest, v4, (size_t *)pszSrc, pszSrc, cchToCopy);
}
else
{
v5 = -2147024809;
*pszDest = 0;
}
}
return v5;
}