mirror of
https://git.soft.fish/val/MicroCorruption.git
synced 2024-11-23 01:05:58 +00:00
64 lines
2.4 KiB
NASM
64 lines
2.4 KiB
NASM
|
|
||
|
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
|