PiSwFindSwDevice

INT64 __fastcall PiSwFindSwDevice(WCHAR *pszSrc){
  INT64 v2; 
  WCHAR *v4; 
  INT64 *v5; 
  INT64 *Buffer; 
  INT64 result[26]; 
  wchar_t pszDest[5]; 
  __int16 Str[195]; 
  memset((INT64)result, 0i64);
  Buffer = result;
  v2 = 0i64;
  if( !wcsnicmp(pszSrc, L"SWD\\", 4ui64) && RtlStringCbCopyW(pszDest, 0x190ui64, pszSrc) >= 0 )
  {
    result[1] = (INT64)pszDest;
    v4 = wcschr((WCHAR *)Str, 0x5Cu);
    if( v4 )
    {
      *v4 = 0;
      result[2] = (INT64)(v4 + 1);
      LODWORD(v5) = RtlLookupElementGenericTableAvl(&PiSwDeviceInstanceTable, &Buffer);
      if( v5 )
        return *v5;
    }
  }
  return v2;
}

Referenced by:

PiSwIrpCleanup
PiSwProcessParentRemoveIrp