implement X86_64 asm for overflow safe mul