section .text
global _start
_start:
push 0xc0ffee ; Push value 0xc0ffee onto the stack
push 0xdecaff ; Push value 0xdecaff onto the stack
mov [esp+4], eax ; Move the value of eax to the location [esp + 4]
mov ebx, esp ; Move the current value of esp into ebx
mov ecx, 2 ; Move the value 2 into ecx
mov edx, 3 ; Move the value 3 into edx
lea esi, [edx + ecx*2 + 1] ; Load the effective address into esi
je exit
exit:
mov eax, 01h ; exit()
xor ebx, ebx ; errno
int 80h
c2VjdGlvbiAudGV4dAoKZ2xvYmFsIF9zdGFydAoKX3N0YXJ0OgogICAgcHVzaCAweGMwZmZlZSAgICAgICAgICAgICAgICA7IFB1c2ggdmFsdWUgMHhjMGZmZWUgb250byB0aGUgc3RhY2sKICAgIHB1c2ggMHhkZWNhZmYgICAgICAgICAgICAgICAgOyBQdXNoIHZhbHVlIDB4ZGVjYWZmIG9udG8gdGhlIHN0YWNrCiAgICBtb3YgW2VzcCs0XSwgZWF4ICAgICAgICAgICAgIDsgTW92ZSB0aGUgdmFsdWUgb2YgZWF4IHRvIHRoZSBsb2NhdGlvbiBbZXNwICsgNF0KICAgIG1vdiBlYngsIGVzcCAgICAgICAgICAgICAgICAgOyBNb3ZlIHRoZSBjdXJyZW50IHZhbHVlIG9mIGVzcCBpbnRvIGVieAogICAgCiAgICBtb3YgZWN4LCAyICAgICAgICAgICAgICAgICAgIDsgTW92ZSB0aGUgdmFsdWUgMiBpbnRvIGVjeAogICAgbW92IGVkeCwgMyAgICAgICAgICAgICAgICAgICA7IE1vdmUgdGhlIHZhbHVlIDMgaW50byBlZHgKICAgIGxlYSBlc2ksIFtlZHggKyBlY3gqMiArIDFdICAgOyBMb2FkIHRoZSBlZmZlY3RpdmUgYWRkcmVzcyBpbnRvIGVzaQoJamUJCWV4aXQKCmV4aXQ6Cgltb3YJCWVheCwgMDFoCQk7IGV4aXQoKQoJeG9yCQllYngsIGVieAkJOyBlcnJubwoJaW50CQk4MGgK