	BITS	32
	pusha
	; xor	eax, eax
	xchg	eax,ebp			; eax = 0
	mov	ebx,[esp + 0x24]	; ebx = argv[0]
;	mov	ecx,eax			; ecx = 0 (O_RDONLY)
	mov	al,0x5			; eax = 5 (__NR_open)
	int	0x80			; open(argv[0], O_RDONLY)
	push	dword 0x0		; offset for mmap	
	push	eax			; handle
	inc	ecx			; ecx = 1
	push	ecx			; MAP_SHARED
	push	byte 4			; PROT_EXEC
	push	ecx			; length = 1, but at least onr page
					; will be mmaped
	dec	ecx			; ecx = 0
	push	ecx			; start (NULL)
	mov	ebx,esp
	mov	al,0x5a
	int	0x80			; mmap ...
	jmp	eax
	