New algo to ensure write operations are done in pieces of a multiple of 512 byte
For safer code: changed all GetFileSize() calls to GetFileSizeEx() and SetFilePointer() to SetFilePointerEx() to avoid usage of LARGE_INTEGER.LowPart/HighPart combinations. (still 32bit safe) [UNSTABLE]