Old ESP I had from back in the days.
The code wasn't developed with scalability nor reusability in mind, so this isn't a great place to learn something. Nevertheless, it should work out of the box. If not, the unthinkable happened and you need to update the offsets.