added more generic function asm