filter realization help
[Converted to an answer]

This looks like a decimating filter (probably part of an FIR); note the line cof +=item; - this is modifying the pointer so it is now pointing at a different location (dependent on the value of item which appears to be the decimation factor). item appears to be the decimation interval in bytes.

So multiplying by cof[0] is not multiplying by the same value each time through the loop. 

The item /=4; changes byte interval addresses to word interval addresses as this looks like it is a 32 bit machine and the division by 4 is why I believe the item interval is in bytes. It would actually be far more portable if the code used the sizeof() operator but that is a minor nit.

In addition, there would need to be a check that item %4 == 0; somewhere