Reverse-engineering the RNG is way beyond my skills at least, and I'm guessing that a lot of people have tried without success (after all, the first RNG was indeed reverse-engineered I think?)
However, this particular problem is indeed theoretically solvable using the replay file, but the bad news is that it requires basicallly implementing the entire rulebook. You basically have information on all players, which skills they have, and where they move to at any given time (well it's not that simple, but in theory..)
I did have a go at actually re-creating the game turn-by-turn from the replay file (with simple red and blue dots on a grid), and had some success, but was ultimately stumped by so many implicit events and inconsistent messages. For instance, the replay never mentions such trivial things as "pick-up". It will tell you that a player number N moved from X to Y, and you will have had to track the ball movement yourself (which is a nightmare in and of itself, due to most kick-off calculations being implicit and not mentioned in the replay db), and then check if a player ever moves into a position where you have tracked the ball to be at this time. It will also not tell you if the pick-up was successful or not, but a number of these things can be derived from circumstancial evidence. Any dodges are also implicit, and the replay never states "the dice were rolled", but you can derive this from the game state and the rulebook with considerable effort. Suffice to say, they haven't made it easy.
I still do believe that it is possible to recreate the entire game from a combination of the replay file and the log file, for someone with enough skill, time and motivation. I think I ran out of all three at some point.