package Ġorg . run est ar . classic de ob Ċ Ċ import Ġorg . object web . asm . Op codes Ċ import Ġorg . object web . asm . tree . Class Node Ċ import Ġorg . object web . asm . tree . L dc Insn Node Ċ Ċ object ĠMask Sh ifts Ġ: ĠTransformer . Single () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġtransform ( klass : ĠClass Node ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( m Ġin Ġklass . methods ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloop @ Ġfor Ġ( insn Ġin Ġm . instructions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( insn Ġ! is ĠL dc Insn Node ) Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc st Ġ= Ġinsn . cst Ġas ? ĠInt Ġ?: Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnext Ġ= Ġinsn . next ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġload Mask ed Ġ= Ġwhen Ġ( next . opcode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOp codes . IS HL , ĠOp codes . IS HR , ĠOp codes . IUS HR Ġ-> Ġload Int ( cst Ġand Ġ 0 x 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOp codes . L SH L , ĠOp codes . L SH R , ĠOp codes . L US HR Ġ-> Ġload Int ( cst Ġand Ġ 0 x 3 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġcontinue @ loop ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm . instructions . set ( insn , Ġload Mask ed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }