Ended up with exactly as many instructions as that page said: 24.  But I mostly just massaged what MSVC generated (although it used an extra temporary reg, which I guess might pipeline better but my version reads easier, and I'm not sure if MSVC was just being silly since the temps were pretty far apart...)

-[Unknown]