.data .globl x .align 4 .type x,@object .size x,16 x: .long 1 .long 2 .long 3 .long 4 .globl main .text .align 16 .type main,@function main: pushl %ebp pushl %ebx pushl %esi pushl %edi movl %esp,%ebp subl $8,%esp pushl $.LC2 call print addl $4,%esp pushl $.LC4 pushl $.LC3 call print addl $8,%esp pushl $10 pushl $3 pushl $.LC5 call print addl $12,%esp pushl $10 pushl $4 pushl $.LC8 pushl $.LC7 pushl $.LC6 call print addl $20,%esp pushl $10 fldl .LC10 subl $8,%esp fstpl (%esp) pushl $.LC8 pushl $.LC7 pushl $.LC9 call print addl $24,%esp leal x,%edi movl %edi,-8(%ebp) movl %edi,%esi movl %esi,-4(%ebp) subl $16,%esp movl %esp,%edi movl $16,%ecx rep movsb movl -8(%ebp),%edi movl %edi,%esi subl $16,%esp movl %esp,%edi movl $16,%ecx rep movsb movl -8(%ebp),%edi movl %edi,%esi subl $16,%esp movl %esp,%edi movl $16,%ecx rep movsb movl -8(%ebp),%edi movl %edi,%esi subl $16,%esp movl %esp,%edi movl $16,%ecx rep movsb movl -8(%ebp),%edi movl %edi,%esi subl $16,%esp movl %esp,%edi movl $16,%ecx rep movsb movl -8(%ebp),%edi movl %edi,%esi subl $16,%esp movl %esp,%edi movl $16,%ecx rep movsb pushl $.LC11 call print addl $100,%esp mov $0,%eax .LC1: movl %ebp,%esp popl %edi popl %esi popl %ebx popl %ebp ret .Lf12: .size main,.Lf12-main .globl print .align 16 .type print,@function print: pushl %ebp pushl %ebx pushl %esi pushl %edi movl %esp,%ebp subl $28,%esp leal 24(%ebp),%edi movl %edi,-4(%ebp) jmp .LC19 .LC16: movl 20(%ebp),%edi movsbl (,%edi),%edi cmpl $37,%edi jne .LC20 movl 20(%ebp),%edi leal 1(%edi),%edi movl %edi,20(%ebp) movsbl (,%edi),%edi movl %edi,-8(%ebp) movl -8(%ebp),%edi cmpl $115,%edi je .LC36 cmpl $115,%edi jg .LC41 .LC40: movl -8(%ebp),%edi cmpl $98,%edi jl .LC22 cmpl $102,%edi jg .LC22 jmp *.LC42-392(,%edi,4) .data .align 4 .LC42: .long .LC25 .long .LC30 .long .LC32 .long .LC22 .long .LC38 .text .LC41: cmpl $119,-8(%ebp) je .LC34 jmp .LC22 .LC25: movl -4(%ebp),%edi leal 16(%edi),%edi movl %edi,-28(%ebp) movl %edi,-4(%ebp) leal -24(%ebp),%edi movl -28(%ebp),%esi leal -16(%esi),%esi movl $16,%ecx rep movsb pushl -12(%ebp) pushl -16(%ebp) pushl -20(%ebp) pushl -24(%ebp) pushl $.LC26 call printf addl $20,%esp jmp .LC21 .LC30: movl -4(%ebp),%edi leal 4(%edi),%edi movl %edi,-4(%ebp) movsbl -4(%edi),%edi pushl %edi pushl $.LC31 call printf addl $8,%esp jmp .LC21 .LC32: movl -4(%ebp),%edi leal 4(%edi),%edi movl %edi,-4(%ebp) pushl -4(%edi) pushl $.LC33 call printf addl $8,%esp jmp .LC21 .LC34: movl -4(%ebp),%edi leal 4(%edi),%edi movl %edi,-4(%ebp) movswl -4(%edi),%edi pushl %edi pushl $.LC35 call printf addl $8,%esp jmp .LC21 .LC36: movl -4(%ebp),%edi leal 4(%edi),%edi movl %edi,-4(%ebp) pushl -4(%edi) pushl $.LC37 call printf addl $8,%esp jmp .LC21 .LC38: movl -4(%ebp),%edi leal 8(%edi),%edi movl %edi,-4(%ebp) fldl -8(%edi) subl $8,%esp fstpl (%esp) pushl $.LC39 call printf addl $12,%esp jmp .LC21 .LC22: movl 20(%ebp),%edi movsbl (,%edi),%edi pushl %edi pushl $.LC31 call printf addl $8,%esp jmp .LC21 .LC20: movl 20(%ebp),%edi movsbl (,%edi),%edi pushl %edi pushl $.LC31 call printf addl $8,%esp .LC21: .LC17: incl 20(%ebp) .LC19: movl 20(%ebp),%edi movsbl (,%edi),%edi cmpl $0,%edi jne .LC16 mov $0,%eax .LC13: movl %ebp,%esp popl %edi popl %esi popl %ebx popl %ebp ret .Lf44: .size print,.Lf44-print .bss .align 4 .type __va_arg_tmp,@object .size __va_arg_tmp,4 .lcomm __va_arg_tmp,4 .data .align 1 .LC39: .byte 37 .byte 102 .byte 0 .align 1 .LC37: .byte 37 .byte 115 .byte 0 .align 1 .LC35: .byte 37 .byte 120 .byte 0 .align 1 .LC33: .byte 37 .byte 100 .byte 0 .align 1 .LC31: .byte 37 .byte 99 .byte 0 .align 1 .LC26: .byte 123 .byte 37 .byte 100 .byte 32 .byte 37 .byte 100 .byte 32 .byte 37 .byte 100 .byte 32 .byte 37 .byte 100 .byte 125 .byte 0 .align 1 .LC11: .byte 37 .byte 98 .byte 32 .byte 37 .byte 98 .byte 32 .byte 37 .byte 98 .byte 32 .byte 37 .byte 98 .byte 32 .byte 37 .byte 98 .byte 32 .byte 37 .byte 98 .byte 10 .byte 0 .align 4 .LC10: .long 0 .long 1075052544 .align 1 .LC9: .byte 37 .byte 115 .byte 37 .byte 115 .byte 32 .byte 37 .byte 102 .byte 37 .byte 99 .byte 0 .align 1 .LC8: .byte 115 .byte 116 .byte 0 .align 1 .LC7: .byte 116 .byte 101 .byte 0 .align 1 .LC6: .byte 37 .byte 115 .byte 37 .byte 115 .byte 32 .byte 37 .byte 119 .byte 37 .byte 99 .byte 0 .align 1 .LC5: .byte 116 .byte 101 .byte 115 .byte 116 .byte 32 .byte 37 .byte 100 .byte 37 .byte 99 .byte 0 .align 1 .LC4: .byte 50 .byte 0 .align 1 .LC3: .byte 116 .byte 101 .byte 115 .byte 116 .byte 32 .byte 37 .byte 115 .byte 10 .byte 0 .align 1 .LC2: .byte 116 .byte 101 .byte 115 .byte 116 .byte 32 .byte 49 .byte 10 .byte 0 .text .ident "LCC: 4.1"