x64 - Visual C++ compiler calling convention for x64
VC++ compiler is trying to utilize the 16 registers in x64 CPU which is 8bytes capacity. Due to this reason, first 4 parameters will be placed in registers but they should fit to 1, 2, 4, 8 bytes, if not it must be called by reference
For the details, please find the following link.
https://msdn.microsoft.com/en-us/library/ms235286.aspx