SdbpCheckMatchingText

NTSTATUS __stdcall SdbpCheckMatchingText(
        INT64 *bMatched,
        VOID *hSDB,
        VOID *pdb,
        UINT64 tiParent,
        UINT64 tiMatchingText,
        VOID *Context,
        VOID *MatcherContext){
  NTSTATUS v7; 
  INT8 *v10; 
  UINT64 v11; 
  _DWORD *v12; 
  UINT64 dwTextToMatchLengthBytes; 
  UINT64 dwFileEncoding; 
  UINT64 dwMaxSize; 
  UINT64 v17; 
  INT64 bEntryMatched; 
  VOID *pContainsTextOut; 
  WCHAR *pwszFilePathOut; 
  UINT64 v21; 

  v7 = 0;
  LODWORD(v21) = 0x2000;
  *(_DWORD *)bMatched = 0;
  bEntryMatched = 0i64;
  pwszFilePathOut = 0i64;
  pContainsTextOut = 0i64;
  v17 = 0i64;
  if( !SdbpGetMatchingTextAttributes(
          pdb,
          (unsigned int)tiMatchingText,
          &pwszFilePathOut,
          &pContainsTextOut,
          (UINT64 *)((char *)&v17 + 4),
          &v17,
          &v21) )
  {
    v10 = (INT8 *)"Failed to read MATCHING_TEXT entry";
    v11 = 1945i64;
LABEL_3:
    AslLogCallPrintf(1ui64, (INT8 *)"SdbpCheckMatchingText", v11, v10);
    goto LABEL_7;
  }
  v12 = Context;
  LODWORD(dwMaxSize) = v21;
  LODWORD(dwTextToMatchLengthBytes) = HIDWORD(v17);
  LODWORD(dwFileEncoding) = v17;
  if( !SdbpCheckMatchingTextEntry(
          hSDB,
          (tagSEARCHDBCONTEXT *)Context,
          pwszFilePathOut,
          pContainsTextOut,
          dwTextToMatchLengthBytes,
          dwFileEncoding,
          dwMaxSize,
          (INT64 *)((char *)&bEntryMatched + 4),
          &bEntryMatched) )
  {
    v10 = "Failed to check MATCHING_TEXT entry";
    v11 = 1962i64;
    goto LABEL_3;
  }
  v7 = 1;
  v12[20] |= bEntryMatched;
  *(_DWORD *)bMatched = HIDWORD(bEntryMatched);
LABEL_7:
  if( pContainsTextOut )
    ExFreePoolWithTag(pContainsTextOut, 0x74705041u);
  return v7;
}

Referenced by:

No references.