| .globl main |
| .text |
| .align 16 |
| .type main,@function |
| main: |
| pushl %ebp |
| pushl %ebx |
| pushl %esi |
| pushl %edi |
| movl %esp,%ebp |
| subl $24,%esp |
| movl $0,-24(%ebp) |
| movl $0,next |
| jmp .LC3 |
| .LC2: |
| leal -24(%ebp),%edi |
| pushl %edi |
| leal -20(%ebp),%edi |
| pushl %edi |
| call lookup |
| addl $8,%esp |
| incl (,%eax) |
| .LC3: |
| leal -20(%ebp),%edi |
| pushl %edi |
| call getword |
| addl $4,%esp |
| cmpl $0,%eax |
| jne .LC2 |
| pushl -24(%ebp) |
| call tprint |
| addl $4,%esp |
| mov $0,%eax |
| .LC1: |
| movl %ebp,%esp |
| popl %edi |
| popl %esi |
| popl %ebx |
| popl %ebp |
| ret |
| .Lf5: |
| .size main,.Lf5-main |
| .globl err |
| .align 16 |
| .type err,@function |
| err: |
| pushl %ebp |
| pushl %ebx |
| pushl %esi |
| pushl %edi |
| movl %esp,%ebp |
| pushl 20(%ebp) |
| pushl $.LC7 |
| call printf |
| addl $8,%esp |
| pushl $1 |
| call exit |
| addl $4,%esp |
| mov $0,%eax |
| .LC6: |
| movl %ebp,%esp |
| popl %edi |
| popl %esi |
| popl %ebx |
| popl %ebp |
| ret |
| .Lf8: |
| .size err,.Lf8-err |
| .globl getword |
| .align 16 |
| .type getword,@function |
| getword: |
| pushl %ebp |
| pushl %ebx |
| pushl %esi |
| pushl %edi |
| movl %esp,%ebp |
| subl $8,%esp |
| .LC10: |
| .LC11: |
| call getchar |
| movl %eax,%edi |
| movl %edi,-4(%ebp) |
| cmpl $-1,%edi |
| je .LC13 |
| pushl -4(%ebp) |
| call isletter |
| addl $4,%esp |
| cmpl $0,%eax |
| je .LC10 |
| .LC13: |
| movl 20(%ebp),%edi |
| movl %edi,-8(%ebp) |
| jmp .LC17 |
| .LC14: |
| movl -8(%ebp),%edi |
| leal 1(%edi),%esi |
| movl %esi,-8(%ebp) |
| movl -4(%ebp),%esi |
| movl %esi,%ebx |
| movb %bl,(,%edi) |
| .LC15: |
| call getchar |
| movl %eax,-4(%ebp) |
| .LC17: |
| pushl -4(%ebp) |
| call isletter |
| addl $4,%esp |
| movl %eax,-4(%ebp) |
| cmpl $0,%eax |
| jne .LC14 |
| movl -8(%ebp),%edi |
| movb $0,(,%edi) |
| movl -8(%ebp),%edi |
| movl 20(%ebp),%esi |
| cmpl %esi,%edi |
| jbe .LC18 |
| mov $1,%eax |
| jmp .LC9 |
| .LC18: |
| mov $0,%eax |
| .LC9: |
| movl %ebp,%esp |
| popl %edi |
| popl %esi |
| popl %ebx |
| popl %ebp |
| ret |
| .Lf20: |
| .size getword,.Lf20-getword |
| .globl isletter |
| .align 16 |
| .type isletter,@function |
| isletter: |
| pushl %ebp |
| pushl %ebx |
| pushl %esi |
| pushl %edi |
| movl %esp,%ebp |
| movl 20(%ebp),%edi |
| cmpl $65,%edi |
| jl .LC22 |
| cmpl $90,%edi |
| jg .LC22 |
| addl $32,20(%ebp) |
| .LC22: |
| movl 20(%ebp),%edi |
| cmpl $97,%edi |
| jl .LC24 |
| cmpl $122,%edi |
| jg .LC24 |
| movl 20(%ebp),%eax |
| jmp .LC21 |
| .LC24: |
| mov $0,%eax |
| .LC21: |
| movl %ebp,%esp |
| popl %edi |
| popl %esi |
| popl %ebx |
| popl %ebp |
| ret |
| .Lf26: |
| .size isletter,.Lf26-isletter |
| .globl lookup |
| .align 16 |
| .type lookup,@function |
| lookup: |
| pushl %ebp |
| pushl %ebx |
| pushl %esi |
| pushl %edi |
| movl %esp,%ebp |
| subl $4,%esp |
| movl 24(%ebp),%edi |
| movl (,%edi),%edi |
| cmpl $0,%edi |
| je .LC28 |
| movl 24(%ebp),%edi |
| movl (,%edi),%edi |
| pushl 12(%edi) |
| pushl 20(%ebp) |
| call strcmp |
| addl $8,%esp |
| movl %eax,-4(%ebp) |
| cmpl $0,-4(%ebp) |
| jge .LC30 |
| movl 24(%ebp),%edi |
| movl (,%edi),%edi |
| leal 4(%edi),%edi |
| pushl %edi |
| pushl 20(%ebp) |
| call lookup |
| addl $8,%esp |
| movl %eax,%edi |
| jmp .LC27 |
| .LC30: |
| cmpl $0,-4(%ebp) |
| jle .LC32 |
| movl 24(%ebp),%edi |
| movl (,%edi),%edi |
| leal 8(%edi),%edi |
| pushl %edi |
| pushl 20(%ebp) |
| call lookup |
| addl $8,%esp |
| movl %eax,%edi |
| jmp .LC27 |
| .LC32: |
| movl 24(%ebp),%edi |
| movl (,%edi),%eax |
| jmp .LC27 |
| .LC28: |
| cmpl $2000,next |
| jl .LC34 |
| pushl $.LC36 |
| call err |
| addl $4,%esp |
| .LC34: |
| movl next,%edi |
| sall $4,%edi |
| movl $0,words(%edi) |
| movl next,%edi |
| sall $4,%edi |
| movl $0,words+8(%edi) |
| movl $0,words+4(%edi) |
| pushl 20(%ebp) |
| call strlen |
| addl $4,%esp |
| leal 1(%eax),%edi |
| pushl %edi |
| call malloc |
| addl $4,%esp |
| movl next,%esi |
| sall $4,%esi |
| movl %eax,words+12(%esi) |
| movl next,%edi |
| sall $4,%edi |
| movl words+12(%edi),%edi |
| cmpl $0,%edi |
| jne .LC40 |
| pushl $.LC43 |
| call err |
| addl $4,%esp |
| .LC40: |
| pushl 20(%ebp) |
| movl next,%edi |
| sall $4,%edi |
| pushl words+12(%edi) |
| call strcpy |
| addl $8,%esp |
| movl next,%edi |
| leal 1(%edi),%esi |
| movl %esi,next |
| sall $4,%edi |
| leal words(%edi),%edi |
| movl 24(%ebp),%esi |
| movl %edi,(,%esi) |
| movl %edi,%eax |
| .LC27: |
| movl %ebp,%esp |
| popl %edi |
| popl %esi |
| popl %ebx |
| popl %ebp |
| ret |
| .Lf45: |
| .size lookup,.Lf45-lookup |
| .globl tprint |
| .align 16 |
| .type tprint,@function |
| tprint: |
| pushl %ebp |
| pushl %ebx |
| pushl %esi |
| pushl %edi |
| movl %esp,%ebp |
| movl 20(%ebp),%edi |
| cmpl $0,%edi |
| je .LC47 |
| movl 20(%ebp),%edi |
| pushl 4(%edi) |
| call tprint |
| addl $4,%esp |
| movl 20(%ebp),%edi |
| pushl 12(%edi) |
| pushl (,%edi) |
| pushl $.LC49 |
| call printf |
| addl $12,%esp |
| movl 20(%ebp),%edi |
| pushl 8(%edi) |
| call tprint |
| addl $4,%esp |
| .LC47: |
| mov $0,%eax |
| .LC46: |
| movl %ebp,%esp |
| popl %edi |
| popl %esi |
| popl %ebx |
| popl %ebp |
| ret |
| .Lf50: |
| .size tprint,.Lf50-tprint |
| .globl strcmp |
| .align 16 |
| .type strcmp,@function |
| strcmp: |
| pushl %ebp |
| pushl %ebx |
| pushl %esi |
| pushl %edi |
| movl %esp,%ebp |
| jmp .LC53 |
| .LC52: |
| movl 20(%ebp),%edi |
| leal 1(%edi),%esi |
| movl %esi,20(%ebp) |
| movsbl (,%edi),%edi |
| cmpl $0,%edi |
| jne .LC55 |
| mov $0,%eax |
| jmp .LC51 |
| .LC55: |
| incl 24(%ebp) |
| .LC53: |
| movl 20(%ebp),%edi |
| movsbl (,%edi),%edi |
| movl 24(%ebp),%esi |
| movsbl (,%esi),%esi |
| cmpl %esi,%edi |
| je .LC52 |
| movl 20(%ebp),%edi |
| movsbl (,%edi),%edi |
| cmpl $0,%edi |
| jne .LC57 |
| mov $-1,%eax |
| jmp .LC51 |
| .LC57: |
| movl 24(%ebp),%edi |
| movsbl (,%edi),%edi |
| cmpl $0,%edi |
| jne .LC59 |
| mov $1,%eax |
| jmp .LC51 |
| .LC59: |
| movl 20(%ebp),%edi |
| movsbl (,%edi),%edi |
| movl 24(%ebp),%esi |
| movsbl (,%esi),%esi |
| movl %edi,%eax |
| subl %esi,%eax |
| .LC51: |
| movl %ebp,%esp |
| popl %edi |
| popl %esi |
| popl %ebx |
| popl %ebp |
| ret |
| .Lf61: |
| .size strcmp,.Lf61-strcmp |
| .bss |
| .globl next |
| .align 4 |
| .type next,@object |
| .size next,4 |
| .comm next,4 |
| .globl words |
| .align 4 |
| .type words,@object |
| .size words,32000 |
| .comm words,32000 |
| .data |
| .align 1 |
| .LC49: |
| .byte 37 |
| .byte 100 |
| .byte 9 |
| .byte 37 |
| .byte 115 |
| .byte 10 |
| .byte 0 |
| .align 1 |
| .LC43: |
| .byte 111 |
| .byte 117 |
| .byte 116 |
| .byte 32 |
| .byte 111 |
| .byte 102 |
| .byte 32 |
| .byte 119 |
| .byte 111 |
| .byte 114 |
| .byte 100 |
| .byte 32 |
| .byte 115 |
| .byte 116 |
| .byte 111 |
| .byte 114 |
| .byte 97 |
| .byte 103 |
| .byte 101 |
| .byte 0 |
| .align 1 |
| .LC36: |
| .byte 111 |
| .byte 117 |
| .byte 116 |
| .byte 32 |
| .byte 111 |
| .byte 102 |
| .byte 32 |
| .byte 110 |
| .byte 111 |
| .byte 100 |
| .byte 101 |
| .byte 32 |
| .byte 115 |
| .byte 116 |
| .byte 111 |
| .byte 114 |
| .byte 97 |
| .byte 103 |
| .byte 101 |
| .byte 0 |
| .align 1 |
| .LC7: |
| .byte 63 |
| .byte 32 |
| .byte 37 |
| .byte 115 |
| .byte 10 |
| .byte 0 |
| .text |
| .ident "LCC: 4.2" |