HalpAuditEnumerateRsdts

__int64 __fastcall HalpAuditEnumerateRsdts(__int64 a1, PVOID *a2){
  __int64 v3; 
  int RsdtArrayTable; 
  unsigned int v6; 
  int v7; 
  PVOID P; 
  _LARGE_INTEGER v9; 

  v7 = HIDWORD(a1);
  v9.QuadPart = 0i64;
  v6 = 0;
  P = 0i64;
  RsdtArrayTable = HalpAuditAllocateRsdtArrayTable((int **)&P);
  if( RsdtArrayTable >= 0 )
  {
    if( (int)HalpAuditGetExtendedBiosDataArea(v3, &v9, &v6) < 0
      || (RsdtArrayTable = HalpAuditEnumerateRsdtsInRange(v9, v6, 1, (int **)&P), RsdtArrayTable >= 0) )
    {
      RsdtArrayTable = HalpAuditEnumerateRsdtsInRange((_LARGE_INTEGER)917504i64, 0x20000u, 0, (int **)&P);
    }
  }
  if( RsdtArrayTable < 0 )
  {
    if( P )
      ExFreePoolWithTag(P, 0);
  }
  else
  {
    *a2 = P;
  }
  return(unsigned int)RsdtArrayTable;
}

Referenced by:

HalpAuditAcpiTables