memcpy(ints, hashes, (2 * cnt - count) * HASH_SIZE);
for (i = 2 * cnt - count, j = 2 * cnt - count; j < cnt; i += 2, ++j) {
cn_fast_hash(hashes[i], 64, ints + j * HASH_SIZE);
}
Isn't there a buffer overrun? i is going over of size of hashes[].
For example - count=53, cnt=32. At j=26, i=52 buffer overrun.