HalpAcpiGetCachedTable

LIST_ENTRY **__stdcall HalpAcpiGetCachedTable(UINT64 Signature, UINT8 *OemId, UINT8 *OemTableId){
  const INT8 *v3; 
  __int64 v4; 
  int v7; 
  LIST_ENTRY **v8; 
  va_list v10; 
  v4 = HalpAcpiTableCacheList;
  v7 = Signature;
  v8 = 0i64;
  while( (__int64 *)v4 != &HalpAcpiTableCacheList )
  {
    if( *(_DWORD *)(v4 + 24) == v7
      && (!OemId || !(unsigned int)strncmp((INT8 *)OemId, v4 + 34, 6ui64, v3, v10))
      && (!OemTableId || !(unsigned int)strncmp((INT8 *)OemTableId, v4 + 40, 8ui64, v3, v10)) )
    {
      return(LIST_ENTRY **)(v4 + 24);
    }
    v4 = *(_QWORD *)v4;
  }
  return v8;
}

Referenced by:

HalpAcpiGetRsdt
HalpAcpiGetTableWork
HalpAcpiTableCacheInit