Jacek Caban (@jacek) commented about dlls/wininet/http.c:
req->read_pos += read; }
if(read < size && req->hCacheFile) {
DWORD cache_pos, err;
while(read < size) {
There is no reason for the loop here, reading from regular file will return all available data anyway.