
                    login:
; calling convention
455e:  0b12           push	r11
; print message
4560:  3150 f0ff      add	#0xfff0, sp
4564:  3f40 7044      mov	#0x4470 "Enter the password to continue.", r15
4568:  b012 6046      call	#0x4660 <puts>
456c:  3f40 9044      mov	#0x4490 "Remember: passwords are between 8 and 16 characters.", r15
4570:  b012 6046      call	#0x4660 <puts>
4574:  3f40 c544      mov	#0x44c5 "Due to some users abusing our login system, we have", r15
4578:  b012 6046      call	#0x4660 <puts>
457c:  3f40 f944      mov	#0x44f9 "restricted passwords to only alphanumeric characters.", r15
4580:  b012 6046      call	#0x4660 <puts>
; Move 0x200 B from stdin to 0x2400
4584:  3e40 0002      mov	#0x200, r14
4588:  3f40 0024      mov	#0x2400, r15
458c:  b012 5046      call	#0x4650 <getsn>
; set up registers
4590:  5f42 0024      mov.b	&0x2400, r15
4594:  0e43           clr	r14
4596:  7c40 0900      mov.b	#0x9, r12
459a:  7d40 1900      mov.b	#0x19, r13
; jump into loop
459e:  073c           jmp	$+0x10 <login+0x50>
; Get a character
45a0:  0b41           mov	sp, r11
45a2:  0b5e           add	r14, r11
45a4:  cb4f 0000      mov.b	r15, 0x0(r11)
; move the character to
45a8:  5f4e 0024      mov.b	0x2400(r14), r15
45ac:  1e53           inc	r14
                    login_0x50:
45ae:  4b4f           mov.b	r15, r11
45b0:  7b50 d0ff      add.b	#0xffd0, r11
45b4:  4c9b           cmp.b	r11, r12
45b6:  f42f           jc	$-0x16 <login+0x42>
45b8:  7b50 efff      add.b	#0xffef, r11
45bc:  4d9b           cmp.b	r11, r13
45be:  f02f           jc	$-0x1e <login+0x42>
45c0:  7b50 e0ff      add.b	#0xffe0, r11
45c4:  4d9b           cmp.b	r11, r13
45c6:  ec2f           jc	$-0x26 <login+0x42>

; Delete the byte at the unalignment position
45c8:  c143 0000      mov.b	#0x0, 0x0(sp)

; Reset the temporary buffer to all 0
45cc:  3d40 0002      mov	#0x200, r13
45d0:  0e43           clr	r14
45d2:  3f40 0024      mov	#0x2400, r15
45d6:  b012 8c46      call	#0x468c <memset>
45da:  0f41           mov	sp, r15
45dc:  b012 4644      call	#0x4446 <conditional_unlock_door>
45e0:  0f93           tst	r15
45e2:  0324           jz	$+0x8 <login+0x8c>
45e4:  3f40 2f45      mov	#0x452f "Access granted.", r15
45e8:  023c           jmp	$+0x6 <login+0x90>
45ea:  3f40 3f45      mov	#0x453f "That password is not correct.", r15
45ee:  b012 6046      call	#0x4660 <puts>
45f2:  3150 1000      add	#0x10, sp
; calling convention
45f6:  3b41           pop	r11
45f8:  3041           ret