After download, gets the content of the file.
Small files can be read all at once by calling this function with an offset of 0 and cubDataToRead equal to the size of the file.
Larger files can be read in chunks to reduce memory usage (since both sides of the IPC client and the game itself must allocate
enough memory for each chunk). Once the last byte is read, the file is implicitly closed and further calls to UGCRead will fail
unless UGCDownload is called again.
For especially large files (anything over 100MB) it is a requirement that the file is read in chunks.