BTW, I find it very odd that this uses an size_t[] array to pass a `size_t*` and the number of bits.
Also the compiler uses uint[] internally so on x64 this only works because of the 16-byte data section alignment.
Maybe this is the right moment to improve this.