My code now produces this:
inital hash: ffffffffffffffffffffffff01234567aaaaaaaaffffffffffffffffffffffff
last 20 bytes: 01234567aaaaaaaaffffffffffffffffffffffff
flipped last 20: 0xffffffffffffffffffffffffaaaaaaaa67452301
masked last 20: 0xaaaaaaaa67450000
index: 0x89abcdef
masked index: 0x4def
(edited)