var cop var start var count var tmp eoe exit eob exit top: mov tmp, eip mov tmp, [tmp] and tmp, ffff cmp tmp, ffe0 je exit cmp tmp, e860 je finaljump and tmp, ff cmp tmp, 60 jne notrash mov cop, esp mov start, eip sti l: cmp cop, esp je endtrash log eip log "trashing" sti jmp l endtrash: mov count, eip sub count, start fill start, count, 90 jmp top notrash: log eip log "stepping" sti jmp top finaljump: log eip log "final" mov tmp, eip asm tmp, "mov eax, ds:[edi+eax*4]" add tmp, 3 asm tmp, "jmp eax" exit: ret