SdbpMatchOsVersion
NTSTATUS __stdcall SdbpMatchOsVersion(_DB *pdb, UINT64 tiExe){
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 = tiExe;
LODWORD(v4) = 1;
memset(&VersionInformation[4], 0i64, 0x118u);
*(_DWORD *)VersionInformation = 284;
RtlGetVersion((_OSVERSIONINFOW *)VersionInformation);
v5 = (*(unsigned int *)&VersionInformation[12] | ((*(unsigned int *)&VersionInformation[8] | ((unsigned __int64)*(unsigned int *)&VersionInformation[4] << 16)) << 16)) << 16;
FirstTag = SdbFindFirstTag(pdb, v2, 0x501Du);
if( FirstTag )
{
QWORDTag = SdbReadQWORDTag(pdb, FirstTag, 0i64);
v4 = SdbpCheckVersion(QWORDTag, v5) != 0;
}
v7 = SdbFindFirstTag(pdb, v2, 0x501Fu);
if( v7 )
{
v11 = SdbReadQWORDTag(pdb, v7, 0i64);
LODWORD(v4) = v4 && SdbpCheckFromVersion(v11, v5);
}
v8 = SdbFindFirstTag(pdb, v2, 0x501Eu);
if( v8 )
{
v12 = SdbReadQWORDTag(pdb, v8, 0i64);
LODWORD(v4) = v4 && SdbpCheckUptoVersion(v12, v5);
}
return v4;
}Referenced by:
SdbpCheckForMatch