Currently there is a possible infinite loop when multiple swarm hashes are in the bytecode. I think the Problem is in evm.py#L373
Currently the line is:
offset = data[offset+1:].find(b'\xa1ebzzr0')
However, here find will return the offset in the string slice and not in the original data, so it is possible for the next offset to be smaller than the previous offset.
Currently there is a possible infinite loop when multiple swarm hashes are in the bytecode. I think the Problem is in evm.py#L373
Currently the line is:
However, here find will return the offset in the string slice and not in the original data, so it is possible for the next offset to be smaller than the previous offset.
Replacing that line with
seems to fix the problem.