HalpAcpiIsCachedTableCompromised
BOOL __stdcall HalpAcpiIsCachedTableCompromised(
_LOADER_PARAMETER_BLOCK *LoaderBlock,
UINT8 *OemId,
UINT8 *OemTableId,
DESCRIPTION_HEADER *CachedTable){
const char *v4;
unsigned int *TableFromBios;
bool v7;
unsigned int *v8;
void *Buf2;
v4 = "SLIC";
LODWORD(TableFromBios) = 0;
v7 = 1;
do
{
if( (_DWORD)OemId == *(_DWORD *)v4 )
break;
LODWORD(TableFromBios) = (_DWORD)TableFromBios + 1;
v4 += 4;
}
while( !(_DWORD)TableFromBios );
if( (_DWORD)TableFromBios == 1 )
{
v7 = 0;
}
else
{
TableFromBios = (unsigned int *)HalpAcpiGetTableFromBios(
LoaderBlock,
OemId,
OemTableId,
(LARGE_INTEGER *)CachedTable);
v8 = TableFromBios;
if( TableFromBios )
{
v7 = memcmp(TableFromBios, Buf2, TableFromBios[1]) != 0;
if( LoaderBlock )
HalpUnmapVirtualAddress(v8, ((unsigned __int64)((unsigned __int16)v8 & 0xFFF) + 4095) >> 12, 0);
else
MmUnmapIoSpace(v8, 0i64);
}
}
LOBYTE(TableFromBios) = v7;
return(int)TableFromBios;
}Referenced by:
HalpAcpiGetTableWork