try to use asm for dispatch