ASM interpreter. 

Second try