The while loop moves 512 bytes from bytesReceived and skips over some values that presumably are the ones filtered out. But leaves gaps in the fingerTemplate array?
256 bytes like
1 move bytesReceived[ 9 ] to fingerTemplate[ 10 ]
...
256 move bytesReceived[ 264 ] to fingerTemplate[ 265 ]
and 256 more like
257 move bytesReceived[ 276 ] to fingerTemplate[ 277 ]
...
512 move bytesReceived[ 531 ] to fingerTemplate[ 532 ]
As far as I can tell.
Some real genius coding there, too:
while (index < uindx) ++index;
LOL!
The for loop print out 512 values of the fingerTemplate array starting at 0.
This looks to be an overly complicated way to accomplish some task, but that is what it does.
a7