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