HalpPCIPerformConfigAccess

VOID **__fastcall HalpPCIPerformConfigAccess(INT64 a1, INT64 a2, INT64 a3, UINT64 a4, INT64 a5){
  VOID **result; 
  int v6; 
  unsigned int i; 
  void *retaddr; 
  result = &retaddr;
  v6 = a5;
  for( i = a4; v6; v6 -= (int)result )
  {
    result = (VOID **)(*(__int64(__fastcall **)(INT64, INT64, _QWORD))(a1
                                                                      + 8i64
                                                                      * *((unsigned __int8 *)PCIDeref
                                                                        + 4 * (i & 3)
                                                                        + (v6 & 3))))(
                        a2,
                        a3,
                        i);
    i += (unsigned int)result;
    a3 += (unsigned int)result;
  }
  return result;
}

Referenced by:

HalpPciAccessIoConfigSpace
HalpPciAccessMmConfigSpace