.text
.globl _main
_main:.word 0x0
subl2 $80,sp
moval -24(fp),r1
movl $0,r2
movl r2,(r1)
moval _next,r1
movl $0,r2
movl r2,(r1)
moval L2,r1
jmp (r1)
L1:moval -20(fp),r1
movl r1,0(sp)
moval -24(fp),r1
movl r1,4(sp)
moval _lookup,r1
calls $0,(r1)
movl r0,r1
movl r1,r1
movl (r1),r2
movl $1,r3
addl3 r3,r2,r2
movl r2,(r1)
L2:moval -20(fp),r1
movl r1,0(sp)
moval _getword,r1
calls $0,(r1)
movl r0,r1
movl $0,r2
cmpl r1,r2; jneq L1
moval -24(fp),r1
movl (r1),r1
movl r1,0(sp)
moval _tprint,r1
calls $0,(r1)
movl r0,r1
movl $0,r1
movl r1,r0; ret
.globl _err
_err:.word 0x0
subl2 $56,sp
moval _4,r1
movl r1,0(sp)
moval 4(ap),r1
movl (r1),r1
movl r1,4(sp)
moval _printf,r1
calls $0,(r1)
movl r0,r1
movl $1,r1
movl r1,0(sp)
moval _exit,r1
calls $0,(r1)
movl r0,r1
ret
.globl _getword
_getword:.word 0x0
subl2 $60,sp
L5:L6:moval _getchar,r1
calls $0,(r1)
movl r0,r1
moval -4(fp),r2
movl r1,(r2)
movl $-1,r2
cmpl r1,r2; jeql L8
moval -4(fp),r1
movl (r1),r1
movl r1,0(sp)
moval _isletter,r1
calls $0,(r1)
movl r0,r1
movl $0,r2
cmpl r1,r2; jeql L5
L8:moval -8(fp),r1
moval 4(ap),r2
movl (r2),r2
movl r2,(r1)
moval L12,r1
jmp (r1)
L9:moval -8(fp),r1
movl (r1),r2
movl $1,r3
addl3 r3,r2,r3
movl r3,(r1)
moval -4(fp),r1
movl (r1),r1
cvtlb r1,r1
movb r1,(r2)
L10:moval _getchar,r1
calls $0,(r1)
movl r0,r1
moval -4(fp),r2
movl r1,(r2)
L12:moval -4(fp),r1
movl (r1),r2
movl r2,0(sp)
moval _isletter,r2
movl r1,-52(fp)
calls $0,(r2)
movl r0,r2
movl -52(fp),r1
movl r2,(r1)
movl $0,r1
cmpl r2,r1; jneq L9
moval -8(fp),r1
movl (r1),r1
movl $0,r2
movb r2,(r1)
moval -8(fp),r1
movl (r1),r1
movl r1,r1
moval 4(ap),r2
movl (r2),r2
movl r2,r2
cmpl r1,r2; jlequ L13
movl $1,r1
movl r1,r0; ret
L13:movl $0,r1
movl r1,r0; ret
.globl _isletter
_isletter:.word 0x0
subl2 $48,sp
moval 4(ap),r1
movl (r1),r1
movl $65,r2
cmpl r1,r2; jlss L15
movl $90,r2
cmpl r1,r2; jgtr L15
moval 4(ap),r1
movl (r1),r2
movl $32,r3
addl3 r3,r2,r2
movl r2,(r1)
L15:moval 4(ap),r1
movl (r1),r1
movl $97,r2
cmpl r1,r2; jlss L17
movl $122,r2
cmpl r1,r2; jgtr L17
moval 4(ap),r1
movl (r1),r1
movl r1,r0; ret
L17:movl $0,r1
movl r1,r0; ret
.globl _lookup
_lookup:.word 0x0
subl2 $60,sp
moval 8(ap),r1
movl (r1),r1
movl (r1),r1
movl r1,r1
movl $0,r2
cmpl r1,r2; jeqlu L19
moval 4(ap),r1
movl (r1),r1
movl r1,0(sp)
moval 8(ap),r1
movl (r1),r1
movl (r1),r1
movl $12,r2
addl3 r2,r1,r1
movl (r1),r1
movl r1,4(sp)
moval _strcmp,r1
calls $0,(r1)
movl r0,r1
moval -4(fp),r2
movl r1,(r2)
moval -4(fp),r1
movl (r1),r1
movl $0,r2
cmpl r1,r2; jgeq L21
moval 4(ap),r1
movl (r1),r1
movl r1,0(sp)
moval 8(ap),r1
movl (r1),r1
movl (r1),r1
movl $4,r2
addl3 r2,r1,r1
movl r1,4(sp)
moval _lookup,r1
calls $0,(r1)
movl r0,r1
movl r1,r1
movl r1,r1
movl r1,r0; ret
L21:moval -4(fp),r1
movl (r1),r1
movl $0,r2
cmpl r1,r2; jleq L23
moval 4(ap),r1
movl (r1),r1
movl r1,0(sp)
moval 8(ap),r1
movl (r1),r1
movl (r1),r1
movl $8,r2
addl3 r2,r1,r1
movl r1,4(sp)
moval _lookup,r1
calls $0,(r1)
movl r0,r1
movl r1,r1
movl r1,r1
movl r1,r0; ret
L23:moval 8(ap),r1
movl (r1),r1
movl (r1),r1
movl r1,r1
movl r1,r0; ret
L19:moval _next,r1
movl (r1),r1
movl $2000,r2
cmpl r1,r2; jlss L25
moval _27,r1
movl r1,0(sp)
moval _err,r1
calls $0,(r1)
movl r0,r1
L25:moval _next,r1
movl (r1),r1
movl $4,r2
ashl r2,r1,r1
moval _words,r2
addl3 r2,r1,r1
movl $0,r2
movl r2,(r1)
moval _next,r1
movl (r1),r1
movl $4,r2
ashl r2,r1,r1
moval _words+8,r2
addl3 r2,r1,r2
movl $0,r3
movl r3,(r2)
moval _words+4,r2
addl3 r2,r1,r1
movl r3,(r1)
moval 4(ap),r1
movl (r1),r1
movl r1,0(sp)
moval _strlen,r1
calls $0,(r1)
movl r0,r1
movl $1,r2
addl3 r2,r1,r1
movl r1,0(sp)
moval _malloc,r1
calls $0,(r1)
movl r0,r1
moval _next,r2
movl (r2),r2
movl $4,r3
ashl r3,r2,r2
moval _words+12,r3
addl3 r3,r2,r2
movl r1,r1
movl r1,(r2)
moval _next,r1
movl (r1),r1
movl $4,r2
ashl r2,r1,r1
moval _words+12,r2
addl3 r2,r1,r1
movl (r1),r1
movl r1,r1
movl $0,r2
cmpl r1,r2; jnequ L31
moval _34,r1
movl r1,0(sp)
moval _err,r1
calls $0,(r1)
movl r0,r1
L31:moval _next,r1
movl (r1),r1
movl $4,r2
ashl r2,r1,r1
moval _words+12,r2
addl3 r2,r1,r1
movl (r1),r1
movl r1,0(sp)
moval 4(ap),r1
movl (r1),r1
movl r1,4(sp)
moval _strcpy,r1
calls $0,(r1)
movl r0,r1
moval _next,r1
movl (r1),r2
movl $1,r3
addl3 r3,r2,r3
movl r3,(r1)
moval 8(ap),r1
movl (r1),r1
movl $4,r3
ashl r3,r2,r2
moval _words,r3
addl3 r3,r2,r2
movl r2,(r1)
movl r2,r1
movl r1,r0; ret
.globl _tprint
_tprint:.word 0x0
subl2 $60,sp
moval 4(ap),r1
movl (r1),r1
movl r1,r1
movl $0,r2
cmpl r1,r2; jeqlu L36
moval 4(ap),r1
movl (r1),r1
movl $4,r2
addl3 r2,r1,r1
movl (r1),r1
movl r1,0(sp)
moval _tprint,r1
calls $0,(r1)
movl r0,r1
moval _38,r1
movl r1,0(sp)
moval 4(ap),r1
movl (r1),r1
movl (r1),r2
movl r2,4(sp)
movl $12,r2
addl3 r2,r1,r1
movl (r1),r1
movl r1,8(sp)
moval _printf,r1
calls $0,(r1)
movl r0,r1
moval 4(ap),r1
movl (r1),r1
movl $8,r2
addl3 r2,r1,r1
movl (r1),r1
movl r1,0(sp)
moval _tprint,r1
calls $0,(r1)
movl r0,r1
L36:ret
.globl _strcmp
_strcmp:.word 0x0
subl2 $48,sp
moval L40,r1
jmp (r1)
L39:moval 4(ap),r1
movl (r1),r2
movl $1,r3
addl3 r3,r2,r3
movl r3,(r1)
movb (r2),r1
cvtbl r1,r1
movl $0,r2
cmpl r1,r2; jneq L42
movl $0,r1
movl r1,r0; ret
L42:moval 8(ap),r1
movl (r1),r2
movl $1,r3
addl3 r3,r2,r2
movl r2,(r1)
L40:moval 4(ap),r1
movl (r1),r1
movb (r1),r1
cvtbl r1,r1
moval 8(ap),r2
movl (r2),r2
movb (r2),r2
cvtbl r2,r2
cmpl r1,r2; jeql L39
moval 4(ap),r1
movl (r1),r1
movb (r1),r1
cvtbl r1,r1
movl $0,r2
cmpl r1,r2; jneq L44
movl $-1,r1
movl r1,r0; ret
L44:moval 8(ap),r1
movl (r1),r1
movb (r1),r1
cvtbl r1,r1
movl $0,r2
cmpl r1,r2; jneq L46
movl $1,r1
movl r1,r0; ret
L46:moval 4(ap),r1
movl (r1),r1
movb (r1),r1
cvtbl r1,r1
moval 8(ap),r2
movl (r2),r2
movb (r2),r2
cvtbl r2,r2
subl3 r2,r1,r1
movl r1,r0; ret
.data
.globl _next
.align 2; _next:.space 4
.globl _words
.align 2; _words:.space 32000
.text 1
_38:.byte 37
.byte 100
.byte 9
.byte 37
.byte 115
.byte 10
.byte 0
_34:.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
_27:.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
_4:.byte 63
.byte 32
.byte 37
.byte 115
.byte 10
.byte 0

