HalpPciIsAddressWithinMcfg

CHAR __fastcall HalpPciIsAddressWithinMcfg(UINT64 a1, _WORD *a2, _BYTE *a3, _DWORD *a4){
  int v4; 
  __int64 i; 
  __int64 v7; 
  CHAR result; 
  __int64 v9; 
  v4 = 0;
  if( !HalpPciMcfgTableCount )
    return 0;
  for( i = HalpPciMcfgTable + 44; ; i += 16i64 )
  {
    v7 = *(_QWORD *)i;
    if( a1 >= *(_QWORD *)i
      && a1 < v7
            + (unsigned __int64)((*(unsigned __int8 *)(i + 11) - (unsigned int)*(unsigned __int8 *)(i + 10) + 1) << 20) )
    {
      break;
    }
    if( ++v4 >= (unsigned int)HalpPciMcfgTableCount )
      return 0;
  }
  v9 = a1 - v7;
  *a2 = *(_WORD *)(i + 8);
  result = 1;
  *a3 = v9 >> 20;
  *a4 = (v9 >> 15) & 0x1F | (32 * ((v9 >> 12) & 7));
  return result;
}

Referenced by:

HalpPciHandleSecureAccess