SdbpMatchOsVersion

BOOL __fastcall SdbpMatchOsVersion(INT64 a1, UINT64 a2){
  unsigned int v2; 
  _BOOL8 v4; 
  UINT64 v5; 
  unsigned int FirstTag; 
  unsigned int v7; 
  unsigned int v8; 
  INT64 QWORDTag; 
  INT64 v11; 
  INT64 v12; 
  char VersionInformation[284]; 
  v2 = a2;
  LODWORD(v4) = 1;
  memset((INT64)&VersionInformation[4], 0i64);
  *(_DWORD *)VersionInformation = 284;
  RtlGetVersion((POSVERSIONINFOW)VersionInformation);
  v5 = (*(unsigned int *)&VersionInformation[12] | ((*(unsigned int *)&VersionInformation[8] | ((unsigned __int64)*(unsigned int *)&VersionInformation[4] << 16)) << 16)) << 16;
  FirstTag = SdbFindFirstTag(a1, v2, 20509);
  if( FirstTag )
  {
    QWORDTag = SdbReadQWORDTag(a1, FirstTag, 0i64);
    v4 = SdbpCheckVersion(QWORDTag, v5) != 0;
  }
  v7 = SdbFindFirstTag(a1, v2, 20511);
  if( v7 )
  {
    v11 = SdbReadQWORDTag(a1, v7, 0i64);
    LODWORD(v4) = v4 && SdbpCheckFromVersion(v11, v5);
  }
  v8 = SdbFindFirstTag(a1, v2, 20510);
  if( v8 )
  {
    v12 = SdbReadQWORDTag(a1, v8, 0i64);
    LODWORD(v4) = v4 && (unsigned int)SdbpCheckUptoVersion(v12, v5);
  }
  return v4;
}

Referenced by:

SdbpCheckForMatch