ExpParseArcPathName
NTSTATUS __stdcall ExpParseArcPathName(
WCHAR *ArcName,
WCHAR **ppDeviceName,
WCHAR **ppPathName,
UINT64 *pDeviceNameCount,
UINT8 *pSignatureFormat){
WCHAR *v5;
UINT8 v6;
char v9;
unsigned int v10;
wchar_t *v11;
WCHAR *v12;
__int64 v13;
WCHAR v14;
WCHAR *v15;
WCHAR v16;
wchar_t Dst[12];
v5 = 0i64;
v6 = 0;
v9 = 1;
if( !ArcName )
return -1073741811;
wcscpy_s(Dst, 0xBui64, (PWCHAR)L"signature(");
v10 = 0;
v11 = Dst;
while( towlower(*(wchar_t *)((char *)v11 + (char *)ArcName - (char *)Dst)) == *v11 )
{
++v10;
++v11;
if( v10 >= 0xA )
goto LABEL_7;
}
v9 = 0;
LABEL_7:
v12 = ArcName + 10;
LODWORD(v13) = 0;
if( v9 != 1 )
v12 = ArcName;
v14 = *v12;
if( *v12 )
{
v15 = v12;
while( v14 != 92 )
{
if( v9 == 1 && v14 == 41 )
{
v6 = 1;
v16 = v12[(unsigned int)(v13 + 1)];
v9 = 0;
if( v16 != 92 )
{
if( v16 )
return -1073741811;
}
}
v13 = (unsigned int)(v13 + 1);
v15 = &v12[v13];
v14 = *v15;
if( !*v15 )
goto LABEL_19;
}
v5 = v15;
}
LABEL_19:
if( v9 == 1 || !(_DWORD)v13 )
return -1073741811;
*ppDeviceName = v12;
*ppPathName = v5;
*(_DWORD *)pDeviceNameCount = v13;
*pSignatureFormat = v6;
return 0;
}Referenced by:
ExpTranslateArcPath