+_READE:
+ incl r10
+ calls $0,_unsync #push back char if present
+ subl2 $bufsze,sp #allocate space for name
+ pushl sp #ptr to buffer
+ pushal rden #format string
+ pushl FBUF(r7) #FILE ptr
+ calls $3,_fscanf #read name
+ cmpl r0,$1 #check for valid input
+ bneq entfd
+ locc $0,$bufsze,(sp) #find size of input
+ subl3 r0,$bufsze+1,r6 #r6 has length of input
+ addl3 (r10),ap,r5 #r5 points to candidate data
+ cvtwl (r5)+,r4 #r4 has number of candidates
+ movaw 2(r5)[r4],r1 #r1 has addr of candidate name list
+l3006:
+ subw3 (r5)+,(r5),r0 #r0 has candidate length
+ cmpw r0,r6 #check for correct length
+ bneq l3007
+ cmpc3 r0,(r1),(sp) #check for actual match
+ beql l3008
+l3007:
+ addl2 r0,r1 #update ptr to next candidate
+ sobgtr r4,l3006
+entfd:
+ addl2 $bufsze,sp #deallocate buffer
+ addl2 $4,r10
+ movw $ENUMNTFD,_perrno
+ jbr error
+l3008:
+ addl2 $bufsze,sp #deallocate buffer
+ addl3 (r10)+,ap,r0 #r0 has number of cases
+ subw3 r4,(r0),-(sp) #push internal value
+ jmp (r8)