clone.s raw

   1  .text
   2  .global __clone
   3  .hidden __clone
   4  .type   __clone,@function
   5  __clone:
   6  	push %ebp
   7  	mov %esp,%ebp
   8  	push %ebx
   9  	push %esi
  10  	push %edi
  11  
  12  	xor %eax,%eax
  13  	push $0x51
  14  	mov %gs,%ax
  15  	push $0xfffff
  16  	shr $3,%eax
  17  	push 28(%ebp)
  18  	push %eax
  19  	mov $120,%al
  20  
  21  	mov 12(%ebp),%ecx
  22  	mov 16(%ebp),%ebx
  23  	and $-16,%ecx
  24  	sub $16,%ecx
  25  	mov 20(%ebp),%edi
  26  	mov %edi,(%ecx)
  27  	mov 24(%ebp),%edx
  28  	mov %esp,%esi
  29  	mov 32(%ebp),%edi
  30  	mov 8(%ebp),%ebp
  31  	int $128
  32  	test %eax,%eax
  33  	jnz 1f
  34  
  35  	mov %ebp,%eax
  36  	xor %ebp,%ebp
  37  	call *%eax
  38  	mov %eax,%ebx
  39  	xor %eax,%eax
  40  	inc %eax
  41  	int $128
  42  	hlt
  43  
  44  1:	add $16,%esp
  45  	pop %edi
  46  	pop %esi
  47  	pop %ebx
  48  	pop %ebp
  49  	ret
  50