A for loop within a for loop that is split
How about this; you get the pull quote index by dividing the loop index by 4 (will always return an int) and then you modulo that index against the length of your quotes array:

{% if loop.index % 4 == 0 and not loop.last %}
      {% set entry = pullQuotes[(loop.index / 4) % (pullQuotes | length) - 1] %}
      &lt;li class="w-full flex justify-center mb-12"&gt;
        &lt;div&gt;
          {{ svg('@icons/quote.svg', class="w-20 h-20  text-lime-500 flex-shrink-0 fill-current") }}
        &lt;/div&gt;
        &lt;blockquote class="pl-3 py-3 max-w-xl text-20 text-semibold text-lime-500 italic"&gt;
          {{ entry }}
        &lt;/blockquote&gt;
      &lt;/li&gt;
{% endif %}