HalpAuditAcpiTables
VOID __stdcall HalpAuditAcpiTables(_LOADER_PARAMETER_BLOCK *LoaderBlock){
int v1;
_DWORD *v2;
int SlicAddresses;
unsigned int v4;
unsigned int i;
void *v6;
PVOID P;
if( (*(_DWORD *)&LoaderBlock->FirmwareInformation & 1) == 0 )
{
P = 0i64;
v1 = HalpAuditEnumerateRsdts((__int64)LoaderBlock, &P);
v2 = P;
SlicAddresses = v1;
if( v1 >= 0 )
{
SlicAddresses = 0;
v4 = 0;
if( *((_DWORD *)P + 1) )
{
do
{
SlicAddresses = HalpAuditQuerySlicAddresses((_LARGE_INTEGER *)&v2[8 * v4 + 2]);
if( SlicAddresses < 0 )
break;
++v4;
}
while( v4 < v2[1] );
}
if( SlicAddresses >= 0 )
HalpAuditSlicTables((__int64)v2);
}
HalpAuditStatus = SlicAddresses;
if( v2 )
{
for( i = 0; i < v2[1]; ++i )
{
v6 = *(void **)&v2[8 * i + 8];
if( v6 )
ExFreePoolWithTag(v6, 0);
}
ExFreePoolWithTag(v2, 0);
}
}
}Referenced by:
HalpAcpiInitSystem