Yes, you can recreate the core of the results file using the raw results file. One option is to create a new empty experiment that will serve as the host for the restored results file and pass each line from raw_results to it, effectively simulating submissions.
for (let i = 0; i < lines.length; i++)
contentType: "text/html; charset=UTF-8",
I refreshed the Results section of my dummy experiment and I had my results file. The MD5 hashes were different, of course, as was the information in the comments, because I made the submissions myself, but other than that the lines looked ok. I just had one submission rejected, but I identified it as line #4 (starting with 0) and was able to add it back in manually: