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