PiDrvDbFindSystemFilePathToken

CHAR *__fastcall PiDrvDbFindSystemFilePathToken(__m128i *rcx0, UINT16 *a2){
  CHAR *v2; 
  _WORD *v5; 
  __int16 v6; 
  CHAR *UnicodeSubstring; 
  CHAR *v8; 
  __int64 v9; 
  wint_t v10; 
  wint_t v11; 
  _WORD *v12; 
  __int16 v13; 
  __m128i a1; 
  v2 = 0i64;
  a1 = *rcx0;
  v5 = (_WORD *)_mm_srli_si128(a1, 8).m128i_u64[0];
  a1.m128i_i64[1] = (__int64)v5;
  if( *v5 )
  {
    v6 = a1.m128i_i16[0];
    do
    {
      UnicodeSubstring = RtlFindUnicodeSubstring((UINT16 *)&a1, a2, 1);
      v8 = UnicodeSubstring;
      if( !UnicodeSubstring )
        return v2;
      v9 = *a2 >> 1;
      if( (unsigned __int64)UnicodeSubstring > rcx0->m128i_i64[1] )
      {
        v10 = *((_WORD *)UnicodeSubstring - 1);
        v11 = **((_WORD **)a2 + 1);
        if( v11 == 92 )
        {
          if( (unsigned int)iswalnum(v10) || v10 == 92 )
            goto LABEL_17;
        }
        else if( (unsigned int)iswalpha(v11) && (unsigned int)iswalnum(v10) )
        {
          goto LABEL_17;
        }
      }
      if( v6 == *a2 && !*(_WORD *)&v8[2 * v9] )
        return v8;
      v12 = (_WORD *)*((_QWORD *)a2 + 1);
      v13 = v12[(unsigned int)(v9 - 1)];
      if( v13 == 92 || *(_WORD *)&v8[2 * v9] == 92 || v13 == 37 && *v12 == 37 )
        return v8;
LABEL_17:
      v6 -= *a2;
      v5 += v9;
      a1.m128i_i64[1] = (__int64)v5;
      a1.m128i_i16[0] = v6;
    }
    while( *v5 );
  }
  return v2;
}

Referenced by:

PiDrvDbResolveSystemFilePath