HalpAcpiCacheOverrideTables

VOID **__fastcall HalpAcpiCacheOverrideTables(INT64 a1, INT64 a2, UINT64 a3, UINT64 *a4, UINT64 a5){
  VOID **result; 
  unsigned int v6; 
  unsigned int v8; 
  __int64 v10; 
  unsigned int v11; 
  void *retaddr; 

  result = &retaddr;
  v6 = a5;
  v8 = a3;
  while( v6 >= 0x24 )
  {
    v10 = *((unsigned int *)a4 + 1);
    v11 = (v10 + 31) & 0xFFFFFFF8;
    if( v8 < v11 || v6 < (unsigned int)v10 )
      break;
    *(_QWORD *)(a2 + 16) = 0i64;
    memmove((VOID *)(a2 + 24), a4, v10);
    HalpAcpiCacheTable((_LOADER_PARAMETER_BLOCK *)a1, (VOID *)(a2 + 24));
    result = (VOID **)v11;
    v8 -= v11;
    a2 += v11;
    v6 -= v10;
    a4 = (UINT64 *)((char *)a4 + v10);
  }
  return result;
}

Referenced by:

HalpAcpiTableCacheInit