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