SdbpCheckForMatch

__int64 __fastcall SdbpCheckForMatch(__int64 a1, __int64 a2, unsigned int a3, __int64 a4, _DWORD *a5, int *a6){
  unsigned int v9; 
  int v11; 
  int v12; 
  _DWORD *v14; 
  unsigned int FirstTag; 
  int v16; 
  unsigned int v17; 
  v9 = 0;
  v17 = 0;
  v11 = 0;
  v12 = 1;
  if( (unsigned int)SdbFindFirstTag(a2, a3, 4109) )
    v11 = 1;
  if( SdbpMatchOsVersion(a2, a3) )
  {
    if( (unsigned int)SdbpMatchList((int *)&v17, a1, a2, a3, a4, 0, v16)
      && (v9 = v17) != 0
      && (unsigned int)SdbpGetExeEntryFlags(a2, a3, a6) )
    {
      v14 = a5;
      if( a5 )
      {
        FirstTag = SdbFindFirstTag(a2, a3, 12289);
        if( FirstTag )
          *v14 = (unsigned __int16)SdbReadWORDTag(a2, FirstTag, 2u);
        else
          *v14 = 2;
      }
    }
    else
    {
      v9 = 0;
    }
  }
  if( !*(_DWORD *)(a4 + 80) || v11 )
    v12 = 0;
  *(_DWORD *)(a4 + 80) = v12;
  return v9;
}

Referenced by:

SdbpCheckExe
SdbpCheckKObject