| .text | |
| .global __clone | |
| .type __clone,@function | |
| __clone: | |
| push %ebp | |
| mov %esp,%ebp | |
| push %ebx | |
| push %esi | |
| push %edi | |
| xor %eax,%eax | |
| push $0x51 | |
| mov %gs,%ax | |
| push $0xfffff | |
| shr $3,%eax | |
| push 28(%ebp) | |
| push %eax | |
| mov $120,%al | |
| mov 12(%ebp),%ecx | |
| mov 16(%ebp),%ebx | |
| and $-16,%ecx | |
| sub $16,%ecx | |
| mov 20(%ebp),%edi | |
| mov %edi,(%ecx) | |
| mov 24(%ebp),%edx | |
| mov %esp,%esi | |
| mov 32(%ebp),%edi | |
| mov 8(%ebp),%ebp | |
| int $128 | |
| test %eax,%eax | |
| jnz 1f | |
| mov %ebp,%eax | |
| xor %ebp,%ebp | |
| call *%eax | |
| mov %eax,%ebx | |
| xor %eax,%eax | |
| inc %eax | |
| int $128 | |
| hlt | |
| 1: add $16,%esp | |
| pop %edi | |
| pop %esi | |
| pop %ebx | |
| pop %ebp | |
| ret |