For fun, I extended the version of this in my prototype gist to work on 32-bit also, based on the behavior from 3.3, still with support for 8.0 omitted.
https://gist.github.com/jeremyd2019/aa167df0a0ae422fa6ebaea5b60c80c9/revisions#diff-1080b9098565759481130b81915e7a975f8243b7472c97c43a63500f0f432e93