Move zip4 to before inserting bounds checking.

Previously the variables for bounds checking were at the end of every loop
iteration. Now they get set at the top of the loop and after. However, some
code to free certain iterators was in zip4 and this was getting inserted before
the final bounds check resulting in trying to check hasMore of an iterator that
has already been freed.