x64 size_t is 8 bytes, but unsigned is 4. 
Sure we can change it to either size_t or unsigned in every single case. But... changing them to size_t will force us to case the vars all the way to the function end.