I want to understand what this file does
LIST P=16F84, F=INHX8M
include "P16FXX.inc"
ORG 0x0000
GOTO Label_0001
NOP
NOP
NOP
RETFIE
Label_0001 BCF STATUS , RP0
BCF STATUS , RP1
CLRF PORTA
CLRF PORTB
BSF STATUS , RP0
MOVLW 0x06
MOVWF 0x1F
MOVLW 0x00
MOVWF TRISA
MOVLW 0xF0
MOVWF TRISB
MOVLW 0x00
MOVWF OPTION_REG
BCF STATUS , RP0
MOVLW 0x03
MOVWF 0x20
MOVLW 0x06
MOVWF 0x21
MOVLW 0x05
MOVWF 0x22
BCF 0x23 , 00
MOVLW 0x01
MOVWF 0x24
Label_0010 BCF 0x23 , 01
BCF PORTA , 02
BSF PORTA , 00
MOVF 0x20 , W
MOVWF PORTB
CALL Label_0002
MOVF PORTB , W
BTFSC PORTB , 04
GOTO Label_0003
MOVLW 0x01
CALL Label_0004
GOTO Label_0005
Label_0003 BTFSC PORTB , 05
GOTO Label_0006
MOVLW 0x04
CALL Label_0004
GOTO Label_0005
Label_0006 BTFSC PORTB , 06
GOTO Label_0007
MOVLW 0x07
CALL Label_0004
GOTO Label_0005
Label_0007 BTFSC PORTB , 07
GOTO Label_0005
MOVLW 0xF0
CALL Label_0004
Label_0005 BCF PORTA , 00
BSF PORTA , 01
MOVF 0x21 , W
MOVWF PORTB
CALL Label_0002
MOVF PORTB , W
BTFSC PORTB , 04
GOTO Label_0008
MOVLW 0x02
CALL Label_0004
GOTO Label_0009
Label_0008 BTFSC PORTB , 05
GOTO Label_000A
MOVLW 0x05
CALL Label_0004
GOTO Label_0009
Label_000A BTFSC PORTB , 06
GOTO Label_000B
MOVLW 0x08
CALL Label_0004
GOTO Label_0009
Label_000B BTFSC PORTB , 07
GOTO Label_0009
MOVLW 0x00
CALL Label_0004
Label_0009 BCF PORTA , 01
BSF PORTA , 02
MOVF 0x22 , W
MOVWF PORTB
CALL Label_0002
MOVF PORTB , W
BTFSC PORTB , 04
GOTO Label_000C
MOVLW 0x03
CALL Label_0004
GOTO Label_000D
Label_000C BTFSC PORTB , 05
GOTO Label_000E
MOVLW 0x06
CALL Label_0004
GOTO Label_000D
Label_000E BTFSC PORTB , 06
GOTO Label_000F
MOVLW 0x09
CALL Label_0004
GOTO Label_000D
Label_000F BTFSC PORTB , 07
GOTO Label_000D
MOVLW 0xFF
CALL Label_0004
Label_000D BCF PORTA , 02
BTFSS 0x23 , 01
BCF 0x23 , 00
GOTO Label_0010
Label_0004 BTFSC 0x23 , 00
GOTO Label_0011
MOVWF 0x26
BTFSC 0x26 , 07
GOTO Label_0012
BTFSS 0x24 , 00
GOTO Label_0013
MOVWF 0x20
BCF 0x24 , 00
BSF 0x24 , 01
GOTO Label_0011
Label_0013 BTFSS 0x24 , 01
GOTO Label_0014
MOVWF 0x21
BCF 0x24 , 01
BSF 0x24 , 02
GOTO Label_0011
Label_0014 BTFSS 0x24 , 02
GOTO Label_0015
MOVWF 0x22
BCF 0x24 , 02
BSF 0x24 , 00
GOTO Label_0011
Label_0015 BTFSS 0x24 , 03
GOTO Label_0011
GOTO Label_0011
Label_0012 NOP
Label_0011 BSF 0x23 , 00
BSF 0x23 , 01
RETURN
MOVLW 0x03
MOVWF 0x2F
Label_0016 DECFSZ 0x2F , f
GOTO Label_0016
RETURN
MOVLW 0x66
MOVWF 0x20
Label_0017 DECFSZ 0x20 , f
GOTO Label_0017
NOP
RETURN
Label_0002 MOVLW 0xFF
MOVWF 0x2E
Label_0019 MOVLW 0xFF
MOVWF 0x2F
Label_0018 DECFSZ 0x2F , f
GOTO Label_0018
DECFSZ 0x2E , f
GOTO Label_0019
RETURN