4b66 <run>
4b66:  0b12           push	index
4b68:  0a12           push	r10
4b6a:  0912           push	r9
4b6c:  0812           push	r8
4b6e:  0712           push	r7
; allocate 0x600 buffer on stack. Woah!
4b70:  3150 00fa      add	#0xfa00, sp

; r8 = create_hash_table (0x3, 0x5)
4b74:  3e40 0500      mov	#0x5, r14
4b78:  3f40 0300      mov	#0x3, r15
4b7c:  b012 7847      call	#0x4778 <create_hash_table>
4b80:  084f           mov	r15, r8 ; save result

; print out some shit
4b82:  3f40 384a      mov	#0x4a38, r15
4b86:  b012 504d      call	#0x4d50 <puts>
4b8a:  3f40 584a      mov	#0x4a58, r15
4b8e:  b012 504d      call	#0x4d50 <puts>
4b92:  3f40 954a      mov	#0x4a95, r15
4b96:  b012 504d      call	#0x4d50 <puts>

; zero out the stack buffer allocated above
4b9a:  0e43           clr	r14
4b9c:  3740 ff05      mov	#0x5ff, r7
4ba0:  053c           jmp	$+0xc <run+0x46>
; run+0x3c
4ba2:  0f41           mov	sp, r15
4ba4:  0f5e           add	r14, r15
4ba6:  cf43 0000      mov.b	#0x0, 0x0(r15)
4baa:  1e53           inc	r14
; run+0x46:
4bac:  079e           cmp	r14, r7
4bae:  f937           jge	$-0xc <run+0x3c>

; get 0x550 characters -> stack buffer
4bb0:  3e40 5005      mov	#0x550, r14
4bb4:  0f41           mov	sp, r15
4bb6:  b012 404d      call	#0x4d40 <getsn>
; run+0x54:
4bba:  0b41           mov	sp, index
4bbc:  923c           jmp	$+0x126 <run+0x17c>
; check for 'a'
__access_check:
4bbe:  7f90 6100      cmp.b	#0x61, r15
4bc2:  3a20           jnz	$+0x76 <run+0xd2> ; __access%20_check
4bc4:  0e4b           mov	index, r14
4bc6:  3e50 0700      add	#0x7, r14
4bca:  0b4e           mov	r14, index
4bcc:  073c           jmp	$+0x10 <run+0x76>
; run+0x68:
; check for ' '
4bce:  7f90 2000      cmp.b	#0x20, r15
4bd2:  0320           jnz	$+0x8 <run+0x74>
4bd4:  cb43 0000      mov.b	#0x0, 0x0(index)
4bd8:  043c           jmp	$+0xa <run+0x7c>
4bda:  1b53           inc	index
; run+0x76:
4bdc:  6f4b           mov.b	@index, r15
4bde:  4f93           tst.b	r15
4be0:  f623           jnz	$-0x12 <run+0x68>
; run+0x7c:
4be2:  1b53           inc	index
4be4:  0a43           clr	r10
4be6:  0b3c           jmp	$+0x18 <run+0x98>
; run+0x82:
; r13 =
4be8:  0d4a           mov	r10, r13
4bea:  0d5d           add	r13, r13
4bec:  0d5d           add	r13, r13
4bee:  0d5a           add	r10, r13
4bf0:  0d5d           add	r13, r13

4bf2:  6a4b           mov.b	@index, r10
4bf4:  8a11           sxt	r10
4bf6:  3a50 d0ff      add	#0xffd0, r10
4bfa:  0a5d           add	r13, r10
4bfc:  1b53           inc	index
; run+0x98:
4bfe:  6f4b           mov.b	@index, r15
4c00:  4f93           tst.b	r15
4c02:  0324           jz	$+0x8 <run+0xa4>
; check for ';'
4c04:  7f90 3b00      cmp.b	#0x3b, r15
4c08:  ef23           jnz	$-0x20 <run+0x82>
; run+0xa4:
4c0a:  0f48           mov	r8, r15
4c0c:  b012 cc49      call	#0x49cc <get_from_table>
4c10:  3f93           cmp	#-0x1, r15
4c12:  0320           jnz	$+0x8 <run+0xb4>
; No such box.
4c14:  3f40 964a      mov	#0x4a96, r15
4c18:  413c           jmp	$+0x84 <run+0x136>
4c1a:  0aef           xor	r15, r10
4c1c:  3af0 ff7f      and	#0x7fff, r10
4c20:  0820           jnz	$+0x12 <run+0xcc>
4c22:  0f9a           cmp	r10, r15
4c24:  0334           jge	$+0x8 <run+0xc6>
; Access granted
4c26:  3f40 a34a      mov	#0x4aa3, r15
4c2a:  383c           jmp	$+0x72 <run+0x136>
; Access granted, but account not activated.
4c2c:  3f40 b34a      mov	#0x4ab3, r15
4c30:  353c           jmp	$+0x6c <run+0x136>
; Aceess denied [sic]
4c32:  3f40 de4a      mov	#0x4ade, r15
4c36:  323c           jmp	$+0x66 <run+0x136>
; run+0xd2:
; check for 'n'
__n_check:
4c38:  7f90 6e00      cmp.b	#0x6e, r15
4c3c:  4020           jnz	$+0x82 <run+0x158>
4c3e:  094b           mov	index, r9
4c40:  2952           add	#0x4, r9
4c42:  0b49           mov	r9, index
4c44:  073c           jmp	$+0x10 <run+0xee>
; run+0xe0
; check for ' '
4c46:  7f90 2000      cmp.b	#0x20, r15
4c4a:  0320           jnz	$+0x8 <run+0xec>
4c4c:  cb43 0000      mov.b	#0x0, 0x0(index) ; if next char is space, skip it
4c50:  043c           jmp	$+0xa <run+0xf4>
; run+0xec
4c52:  1b53           inc	index
4c54:  6f4b           mov.b	@index, r15
4c56:  4f93           tst.b	r15
4c58:  f623           jnz	$-0x12 <run+0xe0>
4c5a:  1b53           inc	index
4c5c:  0a43           clr	r10
4c5e:  0b3c           jmp	$+0x18 <run+0x110>

_to_decimal: ; convert the ascii in r10 to decimal?
4c60:  0c4a           mov	r10, r12
4c62:  0c5c           add	r12, r12 ; x2
4c64:  0c5c           add	r12, r12 ; x4
4c66:  0c5a           add	r10, r12 ; x5
4c68:  0c5c           add	r12, r12 ; xA
4c6a:  6a4b           mov.b	@index, r10
4c6c:  8a11           sxt	r10
; Subtract 0x30
4c6e:  3a50 d0ff      add	#0xffd0, r10
4c72:  0a5c           add	r12, r10
4c74:  1b53           inc	index
; run+0x110
4c76:  6f4b           mov.b	@index, r15
4c78:  4f93           tst.b	r15
4c7a:  0324           jz	$+0x8 <run+0x11c>

; check for ';'
4c7c:  7f90 3b00      cmp.b	#0x3b, r15
4c80:  ef23           jnz	$-0x20 <run+0xfa>
4c82:  0a93           tst	r10
4c84:  0334           jge	$+0x8 <run+0x126>

; Can not have pin with high bit set
4c86:  3f40 ec4a      mov	#0x4aec, r15
4c8a:  083c           jmp	$+0x12 <run+0x136>

4c8c:  0e49           mov	r9, r14
4c8e:  0f48           mov	r8, r15
4c90:  b012 cc49      call	#0x49cc <get_from_table>
4c94:  3f93           cmp	#-0x1, r15
4c96:  0524           jz	$+0xc <run+0x13c>
; User already has an account
4c98:  3f40 124b      mov	#0x4b12, r15
4c9c:  b012 504d      call	#0x4d50 <puts>
4ca0:  1c3c           jmp	$+0x3a <run+0x174>

add_user_account:
4ca2:  0a12           push	r10
4ca4:  0912           push	r9
4ca6:  3012 2f4b      push	#0x4b2f
4caa:  b012 4844      call	#0x4448 <printf>
4cae:  3150 0600      add	#0x6, sp
4cb2:  0d4a           mov	r10, r13
4cb4:  0e49           mov	r9, r14
4cb6:  0f48           mov	r8, r15
4cb8:  b012 3248      call	#0x4832 <add_to_table>
4cbc:  0e3c           jmp	$+0x1e <run+0x174> ; NOT strings
; end of the function:
4cbe:  3f40 544b      mov	#0x4b54, r15
4cc2:  b012 504d      call	#0x4d50 <puts>
failure_case:
4cc6:  1f43           mov	#0x1, r15
4cc8:  3150 0006      add	#0x600, sp
run_end:
4ccc:  3741           pop	r7
4cce:  3841           pop	r8
4cd0:  3941           pop	r9
4cd2:  3a41           pop	r10
4cd4:  3b41           pop	index
4cd6:  3041           ret

; loop_end
4cd8:  1b53           inc	index
; check for ';'
4cda:  fb90 3b00 0000 cmp.b	#0x3b, 0x0(index)
4ce0:  fb27           jz	$-0x8 <run+0x172>
; end of the loop
; run+0x17c:
4ce2:  6f4b           mov.b	@index, r15
4ce4:  4f93           tst.b	r15
4ce6:  6b23           jnz	$-0x128 <run+0x58> ; 4bbe
; cleanup
4ce8:  0e43           clr	r14
4cea:  603f           jmp	$-0x13e <run+0x46>
