You are doing hashes over hashes, even if you cut the hashes to 4bytes you are going to hash them again.
you have to skip that second hashing and you'll get a more decent performance. since you are alreading dealing with hashes.
Check my implementation: https://github.com/daedalus/bloomHIBP https://github.com/daedalus/fastBloomFilter
With a 512MB bloom filter I can get 0 FP.