New opponent:
You must be registered to see the links
Thank you for the input. Since my last post, I've been experimenting with the vs4 files and eventually reached the same conclusion regarding the four-element XOR array. Since none of the elements exceed 15 (or F in hex), the entire key can be represented using just 2 bytes - meaning there are only 65,535 possible combinations to brute-force the XOR. For anyone wondering what's there it is a description of opponent with text for each stage. The same thing is available if you request a opponent on web version with
getbot.php
(although recent opponents miss this info..)
I was also able to correctly guess some metadata information about opponent around this section of the file including game stats like aggressive, flair, reinforce (again check
getbot.php
request), cash (did you know there are only two opponents that have different amount of cash than the rest?

), number of stages (known as count) and opp number.
Analyzing this was quite enjoyable, and it felt satisfying to figure things out just by reading the hex values.
You can't post links here unless you have 3 posts which I forgot about when I made that comment