	.file	"451217.c"
	.intel_syntax noprefix
	.text
	.globl	BUFFER_LENGTH
	.data
	.align 4
	.type	BUFFER_LENGTH, @object
	.size	BUFFER_LENGTH, 4
BUFFER_LENGTH:
	.long	4096
	.globl	NUMFILES
	.align 4
	.type	NUMFILES, @object
	.size	NUMFILES, 4
NUMFILES:
	.long	4
	.globl	filenames
	.align 32
	.type	filenames, @object
	.size	filenames, 80
filenames:
	.string	"javaprog.java"
	.zero	6
	.string	"tc1.java"
	.zero	11
	.string	"tc2.java"
	.zero	11
	.string	"tc3.java"
	.zero	11
	.globl	fileBUFFER
	.bss
	.align 32
	.type	fileBUFFER, @object
	.size	fileBUFFER, 4096
fileBUFFER:
	.zero	4096
	.globl	NUM_KEYWORDS
	.data
	.align 4
	.type	NUM_KEYWORDS, @object
	.size	NUM_KEYWORDS, 4
NUM_KEYWORDS:
	.long	48
	.globl	keywords
	.align 32
	.type	keywords, @object
	.size	keywords, 960
keywords:
	.string	"abstract"
	.zero	11
	.string	"boolean"
	.zero	12
	.string	"break"
	.zero	14
	.string	"byte"
	.zero	15
	.string	"case"
	.zero	15
	.string	"catch"
	.zero	14
	.string	"char"
	.zero	15
	.string	"class"
	.zero	14
	.string	"continue"
	.zero	11
	.string	"default"
	.zero	12
	.string	"do"
	.zero	17
	.string	"double"
	.zero	13
	.string	"else"
	.zero	15
	.string	"enum"
	.zero	15
	.string	"extends"
	.zero	12
	.string	"final"
	.zero	14
	.string	"finally"
	.zero	12
	.string	"float"
	.zero	14
	.string	"for"
	.zero	16
	.string	"if"
	.zero	17
	.string	"implements"
	.zero	9
	.string	"import"
	.zero	13
	.string	"instance of"
	.zero	8
	.string	"int"
	.zero	16
	.string	"interface"
	.zero	10
	.string	"long"
	.zero	15
	.string	"native"
	.zero	13
	.string	"new"
	.zero	16
	.string	"null"
	.zero	15
	.string	"package"
	.zero	12
	.string	"private"
	.zero	12
	.string	"protected"
	.zero	10
	.string	"public"
	.zero	13
	.string	"return"
	.zero	13
	.string	"short"
	.zero	14
	.string	"static"
	.zero	13
	.string	"strictfp"
	.zero	11
	.string	"super"
	.zero	14
	.string	"switch"
	.zero	13
	.string	"synchronized"
	.zero	7
	.string	"this"
	.zero	15
	.string	"throw"
	.zero	14
	.string	"throws"
	.zero	13
	.string	"transient"
	.zero	10
	.string	"try"
	.zero	16
	.string	"void"
	.zero	15
	.string	"volatile"
	.zero	11
	.string	"while"
	.zero	14
	.globl	row
	.align 4
	.type	row, @object
	.size	row, 4
row:
	.long	1
	.globl	col
	.bss
	.align 4
	.type	col, @object
	.size	col, 4
col:
	.zero	4
	.globl	BUFFER_INDEX
	.align 4
	.type	BUFFER_INDEX, @object
	.size	BUFFER_INDEX, 4
BUFFER_INDEX:
	.zero	4
	.section	.rodata
.LC0:
	.string	"\033[1;31m"
	.text
	.globl	red_color
	.type	red_color, @function
red_color:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC0[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	red_color, .-red_color
	.section	.rodata
.LC1:
	.string	"\033[1;32m"
	.text
	.globl	green_color
	.type	green_color, @function
green_color:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	green_color, .-green_color
	.section	.rodata
.LC2:
	.string	"\033[1;34m"
	.text
	.globl	blue_color
	.type	blue_color, @function
blue_color:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	blue_color, .-blue_color
	.section	.rodata
.LC3:
	.string	"\033[1;35m"
	.text
	.globl	magenta_color
	.type	magenta_color, @function
magenta_color:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC3[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	magenta_color, .-magenta_color
	.section	.rodata
.LC4:
	.string	"\033[1;33m"
	.text
	.globl	yellow_color
	.type	yellow_color, @function
yellow_color:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC4[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	yellow_color, .-yellow_color
	.section	.rodata
.LC5:
	.string	"\033[1;36m"
	.text
	.globl	cyan_color
	.type	cyan_color, @function
cyan_color:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC5[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	cyan_color, .-cyan_color
	.section	.rodata
.LC6:
	.string	"\033[0m"
	.text
	.globl	reset_color
	.type	reset_color, @function
reset_color:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	reset_color, .-reset_color
	.section	.rodata
.LC7:
	.string	"%d "
	.text
	.globl	identifier_or_integer_or_keyword
	.type	identifier_or_integer_or_keyword, @function
identifier_or_integer_or_keyword:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	QWORD PTR -104[rbp], rdi
	mov	eax, esi
	mov	BYTE PTR -108[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	mov	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -68[rbp]
	add	eax, 1
	mov	DWORD PTR -84[rbp], eax
	cmp	BYTE PTR -108[rbp], 47
	jle	.L9
	cmp	BYTE PTR -108[rbp], 57
	jg	.L9
	mov	eax, DWORD PTR col[rip]
	add	eax, 1
	mov	DWORD PTR col[rip], eax
.L17:
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	mov	BYTE PTR -85[rbp], al
	cmp	BYTE PTR -85[rbp], 47
	jle	.L10
	cmp	BYTE PTR -85[rbp], 57
	jle	.L11
.L10:
	cmp	BYTE PTR -85[rbp], 46
	je	.L11
	cmp	BYTE PTR -85[rbp], 101
	je	.L11
	cmp	BYTE PTR -85[rbp], 69
	je	.L11
	cmp	BYTE PTR -85[rbp], 43
	je	.L11
	cmp	BYTE PTR -85[rbp], 45
	jne	.L12
.L11:
	cmp	BYTE PTR -85[rbp], 43
	je	.L13
	cmp	BYTE PTR -85[rbp], 45
	jne	.L37
.L13:
	mov	eax, DWORD PTR -84[rbp]
	sub	eax, 1
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 69
	je	.L37
	mov	eax, DWORD PTR -84[rbp]
	sub	eax, 1
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 101
	je	.L37
	sub	DWORD PTR -84[rbp], 1
	jmp	.L15
.L12:
	sub	DWORD PTR -84[rbp], 1
	jmp	.L15
.L37:
	nop
	add	DWORD PTR -84[rbp], 1
	jmp	.L17
.L15:
	mov	eax, DWORD PTR -84[rbp]
	add	eax, 1
	mov	DWORD PTR BUFFER_INDEX[rip], eax
	mov	ecx, DWORD PTR row[rip]
	mov	edx, DWORD PTR col[rip]
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 4[rax], 25
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 8[rax], ecx
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -68[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -84[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L8
.L9:
	cmp	BYTE PTR -108[rbp], 64
	jle	.L19
	cmp	BYTE PTR -108[rbp], 90
	jle	.L28
.L19:
	cmp	BYTE PTR -108[rbp], 96
	jg	.L28
	cmp	BYTE PTR -108[rbp], 122
	jg	.L21
.L28:
	mov	eax, DWORD PTR col[rip]
	add	eax, 1
	mov	DWORD PTR col[rip], eax
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, -1
	jne	.L22
	mov	eax, DWORD PTR -84[rbp]
	mov	esi, eax
	lea	rdi, .LC7[rip]
	mov	eax, 0
	call	printf@PLT
	sub	DWORD PTR -84[rbp], 1
	jmp	.L23
.L22:
	mov	eax, DWORD PTR -84[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	mov	BYTE PTR -85[rbp], al
	cmp	BYTE PTR -85[rbp], 64
	jle	.L24
	cmp	BYTE PTR -85[rbp], 90
	jle	.L25
.L24:
	cmp	BYTE PTR -85[rbp], 96
	jle	.L26
	cmp	BYTE PTR -85[rbp], 122
	jle	.L25
.L26:
	cmp	BYTE PTR -85[rbp], 95
	je	.L25
	cmp	BYTE PTR -85[rbp], 36
	je	.L25
	cmp	BYTE PTR -85[rbp], 47
	jle	.L27
	cmp	BYTE PTR -85[rbp], 57
	jle	.L25
.L27:
	sub	DWORD PTR -84[rbp], 1
	jmp	.L23
.L25:
	add	DWORD PTR -84[rbp], 1
	jmp	.L28
.L23:
	mov	eax, DWORD PTR -84[rbp]
	add	eax, 1
	mov	DWORD PTR BUFFER_INDEX[rip], eax
	mov	DWORD PTR -80[rbp], 0
	mov	eax, DWORD PTR -68[rbp]
	mov	DWORD PTR -76[rbp], eax
	jmp	.L29
.L30:
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	edx, BYTE PTR [rax+rdx]
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	mov	BYTE PTR -32[rbp+rax], dl
	add	DWORD PTR -80[rbp], 1
	add	DWORD PTR -76[rbp], 1
.L29:
	mov	eax, DWORD PTR -76[rbp]
	cmp	eax, DWORD PTR -84[rbp]
	jle	.L30
	mov	eax, DWORD PTR -80[rbp]
	cdqe
	mov	BYTE PTR -32[rbp+rax], 0
	mov	DWORD PTR -72[rbp], 0
	jmp	.L31
.L34:
	mov	eax, DWORD PTR -72[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	lea	rdx, keywords[rip]
	add	rdx, rax
	lea	rax, -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L32
	mov	ecx, DWORD PTR row[rip]
	mov	edx, DWORD PTR col[rip]
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 4[rax], 26
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 8[rax], ecx
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -68[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -84[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L8
.L32:
	add	DWORD PTR -72[rbp], 1
.L31:
	mov	eax, DWORD PTR NUM_KEYWORDS[rip]
	cmp	DWORD PTR -72[rbp], eax
	jl	.L34
	mov	ecx, DWORD PTR row[rip]
	mov	edx, DWORD PTR col[rip]
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 4[rax], 27
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 8[rax], ecx
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -68[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -84[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L8
.L21:
	mov	ecx, DWORD PTR row[rip]
	mov	edx, DWORD PTR col[rip]
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 4[rax], 25
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 8[rax], ecx
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -68[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -84[rbp]
	mov	DWORD PTR 20[rax], edx
.L8:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L36
	call	__stack_chk_fail@PLT
.L36:
	mov	rax, QWORD PTR -104[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	identifier_or_integer_or_keyword, .-identifier_or_integer_or_keyword
	.globl	check_relational_logical_operator
	.type	check_relational_logical_operator, @function
check_relational_logical_operator:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -72[rbp], rdi
	mov	DWORD PTR -76[rbp], esi
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	add	eax, 1
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	mov	BYTE PTR -53[rbp], al
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	mov	DWORD PTR -52[rbp], eax
	cmp	DWORD PTR -76[rbp], 7
	jne	.L39
	cmp	BYTE PTR -53[rbp], 61
	jne	.L40
	add	DWORD PTR -52[rbp], 1
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	add	eax, 1
	mov	DWORD PTR BUFFER_INDEX[rip], eax
	mov	ecx, DWORD PTR row[rip]
	mov	edx, DWORD PTR col[rip]
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	lea	esi, -1[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 4[rax], 16
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 8[rax], ecx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 16[rax], esi
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L38
.L40:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 4[rax], 7
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L38
.L39:
	cmp	DWORD PTR -76[rbp], 13
	jne	.L42
	cmp	BYTE PTR -53[rbp], 61
	jne	.L43
	add	DWORD PTR -52[rbp], 1
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	add	eax, 1
	mov	DWORD PTR BUFFER_INDEX[rip], eax
	mov	ecx, DWORD PTR row[rip]
	mov	edx, DWORD PTR col[rip]
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	lea	esi, -1[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 4[rax], 14
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 8[rax], ecx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 16[rax], esi
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L38
.L43:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 4[rax], 13
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L38
.L42:
	cmp	DWORD PTR -76[rbp], 11
	jne	.L44
	cmp	BYTE PTR -53[rbp], 61
	jne	.L45
	add	DWORD PTR -52[rbp], 1
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	add	eax, 1
	mov	DWORD PTR BUFFER_INDEX[rip], eax
	mov	ecx, DWORD PTR row[rip]
	mov	edx, DWORD PTR col[rip]
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	lea	esi, -1[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 4[rax], 12
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 8[rax], ecx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 16[rax], esi
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L38
.L45:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 4[rax], 11
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L38
.L44:
	cmp	DWORD PTR -76[rbp], 9
	jne	.L46
	cmp	BYTE PTR -53[rbp], 38
	jne	.L47
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	add	eax, 1
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	add	eax, 1
	mov	DWORD PTR BUFFER_INDEX[rip], eax
	mov	ecx, DWORD PTR row[rip]
	mov	edx, DWORD PTR col[rip]
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 4[rax], 9
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 8[rax], ecx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L38
.L47:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 4[rax], 9
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L38
.L46:
	cmp	DWORD PTR -76[rbp], 10
	jne	.L49
	cmp	BYTE PTR -53[rbp], 124
	jne	.L50
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	add	eax, 1
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	add	eax, 1
	mov	DWORD PTR BUFFER_INDEX[rip], eax
	mov	ecx, DWORD PTR row[rip]
	mov	edx, DWORD PTR col[rip]
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 4[rax], 9
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 8[rax], ecx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -48[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -44[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L38
.L50:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 4[rax], 9
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L38
.L49:
	mov	ecx, DWORD PTR row[rip]
	mov	edx, DWORD PTR col[rip]
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	lea	esi, -1[rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 4[rax], 16
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 8[rax], ecx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR 16[rax], esi
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -52[rbp]
	mov	DWORD PTR 20[rax], edx
.L38:
	mov	rax, QWORD PTR -72[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	check_relational_logical_operator, .-check_relational_logical_operator
	.globl	check_divide_comments
	.type	check_divide_comments, @function
check_divide_comments:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -56[rbp], rdi
	mov	DWORD PTR -60[rbp], esi
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	add	eax, 1
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 42
	je	.L54
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	add	eax, 1
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 47
	jne	.L55
.L54:
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	add	eax, 1
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 47
	jne	.L56
	jmp	.L57
.L58:
	add	DWORD PTR -40[rbp], 1
.L57:
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 10
	jne	.L58
	mov	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR BUFFER_INDEX[rip], eax
	mov	ecx, DWORD PTR row[rip]
	mov	edx, DWORD PTR col[rip]
	mov	eax, DWORD PTR -40[rbp]
	lea	esi, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 4[rax], 29
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 8[rax], ecx
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 20[rax], esi
	jmp	.L53
.L56:
	add	DWORD PTR -40[rbp], 2
	jmp	.L60
.L62:
	add	DWORD PTR -40[rbp], 1
.L60:
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 42
	je	.L61
	mov	eax, DWORD PTR -40[rbp]
	add	eax, 1
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 47
	jne	.L62
.L61:
	mov	eax, DWORD PTR -40[rbp]
	add	eax, 1
	mov	DWORD PTR BUFFER_INDEX[rip], eax
	mov	ecx, DWORD PTR row[rip]
	mov	edx, DWORD PTR col[rip]
	mov	eax, DWORD PTR -40[rbp]
	lea	esi, -1[rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 4[rax], 30
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 8[rax], ecx
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 20[rax], esi
	jmp	.L53
.L55:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 4[rax], 3
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 20[rax], edx
.L53:
	mov	rax, QWORD PTR -56[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	check_divide_comments, .-check_divide_comments
	.globl	check_string_literal
	.type	check_string_literal, @function
check_string_literal:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -56[rbp], rdi
	mov	DWORD PTR -60[rbp], esi
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	add	eax, 1
	mov	DWORD PTR -40[rbp], eax
	jmp	.L65
.L66:
	add	DWORD PTR -40[rbp], 1
.L65:
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 34
	jne	.L66
	mov	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR BUFFER_INDEX[rip], eax
	mov	ecx, DWORD PTR row[rip]
	mov	edx, DWORD PTR col[rip]
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 4[rax], 28
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 8[rax], ecx
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR 12[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -36[rbp]
	mov	DWORD PTR 16[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -40[rbp]
	mov	DWORD PTR 20[rax], edx
	mov	rax, QWORD PTR -56[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	check_string_literal, .-check_string_literal
	.globl	tokenize
	.type	tokenize, @function
tokenize:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	eax, esi
	mov	BYTE PTR -44[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, DWORD PTR col[rip]
	add	eax, 1
	mov	DWORD PTR col[rip], eax
	cmp	BYTE PTR -44[rbp], 32
	je	.L69
	cmp	BYTE PTR -44[rbp], 9
	je	.L69
	cmp	BYTE PTR -44[rbp], 10
	jne	.L70
.L69:
	cmp	BYTE PTR -44[rbp], 10
	jne	.L71
	mov	eax, DWORD PTR row[rip]
	add	eax, 1
	mov	DWORD PTR row[rip], eax
	mov	DWORD PTR col[rip], 0
.L71:
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR [rax], 0
	mov	QWORD PTR 8[rax], 0
	mov	QWORD PTR 16[rax], 0
	jmp	.L68
.L70:
	movsx	eax, BYTE PTR -44[rbp]
	sub	eax, 33
	cmp	eax, 92
	ja	.L73
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L75[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L75[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L75:
	.long	.L93-.L75
	.long	.L92-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L91-.L75
	.long	.L90-.L75
	.long	.L73-.L75
	.long	.L89-.L75
	.long	.L88-.L75
	.long	.L87-.L75
	.long	.L86-.L75
	.long	.L73-.L75
	.long	.L85-.L75
	.long	.L73-.L75
	.long	.L84-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L83-.L75
	.long	.L82-.L75
	.long	.L81-.L75
	.long	.L80-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L79-.L75
	.long	.L73-.L75
	.long	.L78-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L73-.L75
	.long	.L77-.L75
	.long	.L76-.L75
	.long	.L74-.L75
	.text
.L77:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], 18
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L68
.L74:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], 21
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L68
.L89:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], 17
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L68
.L88:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], 20
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L68
.L79:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], 19
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L68
.L78:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], 22
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L68
.L81:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], 6
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L68
.L87:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L68
.L84:
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 3
	mov	rdi, rax
	call	check_divide_comments
	jmp	.L68
.L86:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], 2
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L68
.L91:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], 4
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L68
.L85:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], 5
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L68
.L83:
	mov	edi, DWORD PTR row[rip]
	mov	esi, DWORD PTR col[rip]
	mov	ecx, DWORD PTR BUFFER_INDEX[rip]
	mov	edx, DWORD PTR BUFFER_INDEX[rip]
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 4[rax], 23
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 8[rax], edi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 12[rax], esi
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 16[rax], ecx
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR 20[rax], edx
	jmp	.L68
.L93:
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 7
	mov	rdi, rax
	call	check_relational_logical_operator
	jmp	.L68
.L80:
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 13
	mov	rdi, rax
	call	check_relational_logical_operator
	jmp	.L68
.L82:
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 11
	mov	rdi, rax
	call	check_relational_logical_operator
	jmp	.L68
.L90:
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 9
	mov	rdi, rax
	call	check_relational_logical_operator
	jmp	.L68
.L76:
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 10
	mov	rdi, rax
	call	check_relational_logical_operator
	jmp	.L68
.L92:
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 28
	mov	rdi, rax
	call	check_string_literal
	jmp	.L68
.L73:
	movsx	edx, BYTE PTR -44[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	identifier_or_integer_or_keyword
.L68:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L95
	call	__stack_chk_fail@PLT
.L95:
	mov	rax, QWORD PTR -40[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	tokenize, .-tokenize
	.section	.rodata
.LC8:
	.string	"Number"
.LC9:
	.string	"Identifier"
.LC10:
	.string	"\t => %s at row %d and col %d\n"
.LC11:
	.string	"Keyword"
.LC12:
	.string	"Separator"
	.align 8
.LC13:
	.string	"%c \t => %s is at row %d and col %d\n"
.LC14:
	.string	"Assignment Operator"
.LC15:
	.string	"Binary arithmetic operator"
	.align 8
.LC16:
	.string	"Relational or logical operator"
	.align 8
.LC17:
	.string	"\t => %s is at row %d and col %d\n"
.LC18:
	.string	"Single line Comment"
.LC19:
	.string	"Multi line comment"
.LC20:
	.string	"String literal"
.LC21:
	.string	"Semicolon separator"
	.align 8
.LC22:
	.string	"--------------------------------------"
	.text
	.globl	analyse
	.type	analyse, @function
analyse:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR BUFFER_INDEX[rip], -1
	mov	DWORD PTR col[rip], 0
.L131:
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	add	eax, 1
	mov	DWORD PTR BUFFER_INDEX[rip], eax
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	edx, al
	lea	rax, -32[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	tokenize
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 25
	je	.L97
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 27
	jne	.L98
.L97:
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR -52[rbp], eax
	jmp	.L99
.L103:
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 9
	je	.L133
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 10
	je	.L133
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	mov	edi, eax
	call	putchar@PLT
	jmp	.L102
.L133:
	nop
.L102:
	add	DWORD PTR -52[rbp], 1
.L99:
	mov	eax, DWORD PTR -12[rbp]
	cmp	DWORD PTR -52[rbp], eax
	jle	.L103
	mov	ecx, DWORD PTR col[rip]
	mov	edx, DWORD PTR row[rip]
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 25
	jne	.L104
	lea	rax, .LC8[rip]
	jmp	.L105
.L104:
	lea	rax, .LC9[rip]
.L105:
	mov	rsi, rax
	lea	rdi, .LC10[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L106
.L98:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 26
	jne	.L107
	mov	eax, 0
	call	red_color
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR -48[rbp], eax
	jmp	.L108
.L112:
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 9
	je	.L134
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 10
	je	.L134
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	mov	edi, eax
	call	putchar@PLT
	jmp	.L111
.L134:
	nop
.L111:
	add	DWORD PTR -48[rbp], 1
.L108:
	mov	eax, DWORD PTR -12[rbp]
	cmp	DWORD PTR -48[rbp], eax
	jle	.L112
	mov	edx, DWORD PTR col[rip]
	mov	eax, DWORD PTR row[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC11[rip]
	lea	rdi, .LC10[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	reset_color
	jmp	.L106
.L107:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 17
	je	.L113
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 18
	je	.L113
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 19
	je	.L113
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 20
	je	.L113
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 21
	je	.L113
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 22
	je	.L113
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 23
	jne	.L114
.L113:
	mov	eax, 0
	call	green_color
	mov	esi, DWORD PTR col[rip]
	mov	edx, DWORD PTR row[rip]
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	cdqe
	lea	rcx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rcx]
	movsx	eax, al
	mov	r8d, esi
	mov	ecx, edx
	lea	rdx, .LC12[rip]
	mov	esi, eax
	lea	rdi, .LC13[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	reset_color
	jmp	.L106
.L114:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 6
	jne	.L115
	mov	eax, 0
	call	blue_color
	mov	esi, DWORD PTR col[rip]
	mov	edx, DWORD PTR row[rip]
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	cdqe
	lea	rcx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rcx]
	movsx	eax, al
	mov	r8d, esi
	mov	ecx, edx
	lea	rdx, .LC14[rip]
	mov	esi, eax
	lea	rdi, .LC13[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	reset_color
	jmp	.L106
.L115:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 1
	je	.L116
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 2
	je	.L116
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 3
	je	.L116
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 4
	je	.L116
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 5
	jne	.L117
.L116:
	mov	eax, 0
	call	blue_color
	mov	esi, DWORD PTR col[rip]
	mov	edx, DWORD PTR row[rip]
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	cdqe
	lea	rcx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rcx]
	movsx	eax, al
	mov	r8d, esi
	mov	ecx, edx
	lea	rdx, .LC15[rip]
	mov	esi, eax
	lea	rdi, .LC13[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	reset_color
	jmp	.L106
.L117:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 7
	je	.L118
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 16
	je	.L118
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 11
	je	.L118
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 12
	je	.L118
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 13
	je	.L118
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 14
	je	.L118
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 9
	je	.L118
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 10
	jne	.L119
.L118:
	mov	eax, 0
	call	magenta_color
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR -44[rbp], eax
	jmp	.L120
.L121:
	mov	eax, DWORD PTR -44[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	mov	edi, eax
	call	putchar@PLT
	add	DWORD PTR -44[rbp], 1
.L120:
	mov	eax, DWORD PTR -12[rbp]
	cmp	DWORD PTR -44[rbp], eax
	jle	.L121
	mov	edx, DWORD PTR col[rip]
	mov	eax, DWORD PTR row[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC16[rip]
	lea	rdi, .LC17[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	reset_color
	jmp	.L106
.L119:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 29
	je	.L122
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 30
	jne	.L123
.L122:
	mov	eax, 0
	call	yellow_color
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR -40[rbp], eax
	jmp	.L124
.L125:
	mov	eax, DWORD PTR -40[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	mov	edi, eax
	call	putchar@PLT
	add	DWORD PTR -40[rbp], 1
.L124:
	mov	eax, DWORD PTR -12[rbp]
	cmp	DWORD PTR -40[rbp], eax
	jle	.L125
	mov	ecx, DWORD PTR col[rip]
	mov	edx, DWORD PTR row[rip]
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 29
	jne	.L126
	lea	rax, .LC18[rip]
	jmp	.L127
.L126:
	lea	rax, .LC19[rip]
.L127:
	mov	rsi, rax
	lea	rdi, .LC17[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	reset_color
	jmp	.L106
.L123:
	mov	eax, DWORD PTR -28[rbp]
	cmp	eax, 28
	jne	.L106
	mov	eax, 0
	call	cyan_color
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR -36[rbp], eax
	jmp	.L128
.L129:
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	mov	edi, eax
	call	putchar@PLT
	add	DWORD PTR -36[rbp], 1
.L128:
	mov	eax, DWORD PTR -12[rbp]
	cmp	DWORD PTR -36[rbp], eax
	jle	.L129
	mov	edx, DWORD PTR col[rip]
	mov	eax, DWORD PTR row[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC20[rip]
	lea	rdi, .LC17[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	reset_color
.L106:
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 59
	jne	.L130
	mov	eax, 0
	call	green_color
	mov	esi, DWORD PTR col[rip]
	mov	edx, DWORD PTR row[rip]
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	cdqe
	lea	rcx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rcx]
	movsx	eax, al
	mov	r8d, esi
	mov	ecx, edx
	lea	rdx, .LC21[rip]
	mov	esi, eax
	lea	rdi, .LC13[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	reset_color
.L130:
	mov	eax, DWORD PTR BUFFER_INDEX[rip]
	add	eax, 1
	cdqe
	lea	rdx, fileBUFFER[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, -1
	jne	.L131
	mov	edi, 10
	call	putchar@PLT
	lea	rdi, .LC22[rip]
	call	puts@PLT
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L132
	call	__stack_chk_fail@PLT
.L132:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	analyse, .-analyse
	.section	.rodata
.LC23:
	.string	"\n\n"
.LC24:
	.string	"r"
.LC25:
	.string	"javaprog.java"
	.align 8
.LC26:
	.string	"javaprog.java NOT found in ./test_cases/\n Please provide it for custom test case.\nContinuing with other test cases"
	.align 8
.LC27:
	.string	"Test case file %s missing, have you removed it?\n"
.LC28:
	.string	"Lexical analysis of %s \n\n"
	.text
	.globl	readFile
	.type	readFile, @function
readFile:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	mov	QWORD PTR -88[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -64[rbp], 0
	jmp	.L136
.L137:
	mov	eax, DWORD PTR -64[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	mov	BYTE PTR [rax+rdx], 0
	add	DWORD PTR -64[rbp], 1
.L136:
	mov	eax, DWORD PTR BUFFER_LENGTH[rip]
	cmp	DWORD PTR -64[rbp], eax
	jl	.L137
	lea	rdi, .LC23[rip]
	call	puts@PLT
	movabs	rax, 7160569971514552110
	movabs	rdx, 203799491425
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -32[rbp], 0
	mov	DWORD PTR -24[rbp], 0
	mov	WORD PTR -20[rbp], 0
	mov	rdx, QWORD PTR -88[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	strcat@PLT
	lea	rax, -48[rbp]
	lea	rsi, .LC24[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	jne	.L138
	mov	rax, QWORD PTR -88[rbp]
	lea	rsi, .LC25[rip]
	mov	rdi, rax
	call	strcmp@PLT
	test	eax, eax
	jne	.L139
	lea	rdi, .LC26[rip]
	call	puts@PLT
	jmp	.L135
.L139:
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rax
	lea	rdi, .LC27[rip]
	mov	eax, 0
	call	printf@PLT
	jmp	.L135
.L138:
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rax
	lea	rdi, .LC28[rip]
	mov	eax, 0
	call	printf@PLT
	mov	DWORD PTR -60[rbp], 0
	jmp	.L142
.L143:
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rcx, fileBUFFER[rip]
	movzx	edx, BYTE PTR -65[rbp]
	mov	BYTE PTR [rax+rcx], dl
	add	DWORD PTR -60[rbp], 1
.L142:
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	fgetc@PLT
	mov	BYTE PTR -65[rbp], al
	cmp	BYTE PTR -65[rbp], -1
	jne	.L143
	mov	eax, DWORD PTR BUFFER_LENGTH[rip]
	cmp	DWORD PTR -60[rbp], eax
	jl	.L143
	mov	eax, DWORD PTR -60[rbp]
	cdqe
	lea	rdx, fileBUFFER[rip]
	mov	BYTE PTR [rax+rdx], -1
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	analyse
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	fclose@PLT
.L135:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L144
	call	__stack_chk_fail@PLT
.L144:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	readFile, .-readFile
	.section	.rodata
.LC29:
	.string	"COLOR CODES: "
.LC30:
	.string	"Number/Identifier\t"
.LC31:
	.string	"Keyword\t\t"
.LC32:
	.string	"Separator\t"
	.align 8
.LC33:
	.string	"Assignment/arithmetic Operator\t"
.LC34:
	.string	"Relational/Logical operator\t"
.LC35:
	.string	"Comment\t"
	.text
	.globl	print_color_codes
	.type	print_color_codes, @function
print_color_codes:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC29[rip]
	call	puts@PLT
	lea	rdi, .LC30[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	red_color
	lea	rdi, .LC31[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	reset_color
	mov	eax, 0
	call	green_color
	lea	rdi, .LC32[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	reset_color
	mov	eax, 0
	call	blue_color
	lea	rdi, .LC33[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	reset_color
	mov	eax, 0
	call	magenta_color
	lea	rdi, .LC34[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	reset_color
	mov	eax, 0
	call	yellow_color
	lea	rdi, .LC35[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, 0
	call	reset_color
	mov	edi, 10
	call	putchar@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	print_color_codes, .-print_color_codes
	.globl	main
	.type	main, @function
main:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, 0
	call	print_color_codes
	mov	DWORD PTR -4[rbp], 0
	jmp	.L147
.L148:
	mov	DWORD PTR row[rip], 1
	mov	DWORD PTR col[rip], 0
	mov	DWORD PTR BUFFER_INDEX[rip], 0
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 2
	lea	rdx, filenames[rip]
	add	rax, rdx
	mov	rdi, rax
	call	readFile
	add	DWORD PTR -4[rbp], 1
.L147:
	mov	eax, DWORD PTR NUMFILES[rip]
	cmp	DWORD PTR -4[rbp], eax
	jl	.L148
	mov	edi, 10
	call	putchar@PLT
	mov	eax, 0
	call	print_color_codes
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"451217.c"
	.text
	.global	BUFFER_LENGTH
	.data
	.align	2
	.type	BUFFER_LENGTH, %object
	.size	BUFFER_LENGTH, 4
BUFFER_LENGTH:
	.word	4096
	.global	NUMFILES
	.align	2
	.type	NUMFILES, %object
	.size	NUMFILES, 4
NUMFILES:
	.word	4
	.global	filenames
	.align	2
	.type	filenames, %object
	.size	filenames, 80
filenames:
	.ascii	"javaprog.java\000"
	.space	6
	.ascii	"tc1.java\000"
	.space	11
	.ascii	"tc2.java\000"
	.space	11
	.ascii	"tc3.java\000"
	.space	11
	.comm	fileBUFFER,4096,4
	.global	NUM_KEYWORDS
	.align	2
	.type	NUM_KEYWORDS, %object
	.size	NUM_KEYWORDS, 4
NUM_KEYWORDS:
	.word	48
	.global	keywords
	.align	2
	.type	keywords, %object
	.size	keywords, 960
keywords:
	.ascii	"abstract\000"
	.space	11
	.ascii	"boolean\000"
	.space	12
	.ascii	"break\000"
	.space	14
	.ascii	"byte\000"
	.space	15
	.ascii	"case\000"
	.space	15
	.ascii	"catch\000"
	.space	14
	.ascii	"char\000"
	.space	15
	.ascii	"class\000"
	.space	14
	.ascii	"continue\000"
	.space	11
	.ascii	"default\000"
	.space	12
	.ascii	"do\000"
	.space	17
	.ascii	"double\000"
	.space	13
	.ascii	"else\000"
	.space	15
	.ascii	"enum\000"
	.space	15
	.ascii	"extends\000"
	.space	12
	.ascii	"final\000"
	.space	14
	.ascii	"finally\000"
	.space	12
	.ascii	"float\000"
	.space	14
	.ascii	"for\000"
	.space	16
	.ascii	"if\000"
	.space	17
	.ascii	"implements\000"
	.space	9
	.ascii	"import\000"
	.space	13
	.ascii	"instance of\000"
	.space	8
	.ascii	"int\000"
	.space	16
	.ascii	"interface\000"
	.space	10
	.ascii	"long\000"
	.space	15
	.ascii	"native\000"
	.space	13
	.ascii	"new\000"
	.space	16
	.ascii	"null\000"
	.space	15
	.ascii	"package\000"
	.space	12
	.ascii	"private\000"
	.space	12
	.ascii	"protected\000"
	.space	10
	.ascii	"public\000"
	.space	13
	.ascii	"return\000"
	.space	13
	.ascii	"short\000"
	.space	14
	.ascii	"static\000"
	.space	13
	.ascii	"strictfp\000"
	.space	11
	.ascii	"super\000"
	.space	14
	.ascii	"switch\000"
	.space	13
	.ascii	"synchronized\000"
	.space	7
	.ascii	"this\000"
	.space	15
	.ascii	"throw\000"
	.space	14
	.ascii	"throws\000"
	.space	13
	.ascii	"transient\000"
	.space	10
	.ascii	"try\000"
	.space	16
	.ascii	"void\000"
	.space	15
	.ascii	"volatile\000"
	.space	11
	.ascii	"while\000"
	.space	14
	.global	row
	.align	2
	.type	row, %object
	.size	row, 4
row:
	.word	1
	.global	col
	.bss
	.align	2
	.type	col, %object
	.size	col, 4
col:
	.space	4
	.global	BUFFER_INDEX
	.align	2
	.type	BUFFER_INDEX, %object
	.size	BUFFER_INDEX, 4
BUFFER_INDEX:
	.space	4
	.section	.rodata
	.align	2
.LC0:
	.ascii	"\033[1;31m\000"
	.text
	.align	2
	.global	red_color
	.syntax unified
	.arm
	.fpu softvfp
	.type	red_color, %function
red_color:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L2
	bl	printf
	nop
	pop	{fp, pc}
.L3:
	.align	2
.L2:
	.word	.LC0
	.size	red_color, .-red_color
	.section	.rodata
	.align	2
.LC1:
	.ascii	"\033[1;32m\000"
	.text
	.align	2
	.global	green_color
	.syntax unified
	.arm
	.fpu softvfp
	.type	green_color, %function
green_color:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L5
	bl	printf
	nop
	pop	{fp, pc}
.L6:
	.align	2
.L5:
	.word	.LC1
	.size	green_color, .-green_color
	.section	.rodata
	.align	2
.LC2:
	.ascii	"\033[1;34m\000"
	.text
	.align	2
	.global	blue_color
	.syntax unified
	.arm
	.fpu softvfp
	.type	blue_color, %function
blue_color:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L8
	bl	printf
	nop
	pop	{fp, pc}
.L9:
	.align	2
.L8:
	.word	.LC2
	.size	blue_color, .-blue_color
	.section	.rodata
	.align	2
.LC3:
	.ascii	"\033[1;35m\000"
	.text
	.align	2
	.global	magenta_color
	.syntax unified
	.arm
	.fpu softvfp
	.type	magenta_color, %function
magenta_color:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L11
	bl	printf
	nop
	pop	{fp, pc}
.L12:
	.align	2
.L11:
	.word	.LC3
	.size	magenta_color, .-magenta_color
	.section	.rodata
	.align	2
.LC4:
	.ascii	"\033[1;33m\000"
	.text
	.align	2
	.global	yellow_color
	.syntax unified
	.arm
	.fpu softvfp
	.type	yellow_color, %function
yellow_color:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L14
	bl	printf
	nop
	pop	{fp, pc}
.L15:
	.align	2
.L14:
	.word	.LC4
	.size	yellow_color, .-yellow_color
	.section	.rodata
	.align	2
.LC5:
	.ascii	"\033[1;36m\000"
	.text
	.align	2
	.global	cyan_color
	.syntax unified
	.arm
	.fpu softvfp
	.type	cyan_color, %function
cyan_color:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L17
	bl	printf
	nop
	pop	{fp, pc}
.L18:
	.align	2
.L17:
	.word	.LC5
	.size	cyan_color, .-cyan_color
	.section	.rodata
	.align	2
.LC6:
	.ascii	"\033[0m\000"
	.text
	.align	2
	.global	reset_color
	.syntax unified
	.arm
	.fpu softvfp
	.type	reset_color, %function
reset_color:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L20
	bl	printf
	nop
	pop	{fp, pc}
.L21:
	.align	2
.L20:
	.word	.LC6
	.size	reset_color, .-reset_color
	.section	.rodata
	.align	2
.LC7:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	identifier_or_integer_or_keyword
	.syntax unified
	.arm
	.fpu softvfp
	.type	identifier_or_integer_or_keyword, %function
identifier_or_integer_or_keyword:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #80
	str	r0, [fp, #-80]
	mov	r3, r1
	strb	r3, [fp, #-81]
	ldr	r3, .L51
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L51+4
	ldr	r3, [r3]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	add	r3, r3, #1
	str	r3, [fp, #-72]
	ldrb	r3, [fp, #-81]	@ zero_extendqisi2
	cmp	r3, #47
	bls	.L23
	ldrb	r3, [fp, #-81]	@ zero_extendqisi2
	cmp	r3, #57
	bhi	.L23
	ldr	r3, .L51+8
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L51+8
	str	r3, [r2]
.L31:
	ldr	r2, .L51+12
	ldr	r3, [fp, #-72]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-73]
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #47
	bls	.L24
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #57
	bls	.L25
.L24:
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #46
	beq	.L25
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #101
	beq	.L25
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #69
	beq	.L25
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #43
	beq	.L25
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #45
	bne	.L26
.L25:
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #43
	beq	.L27
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #45
	bne	.L50
.L27:
	ldr	r3, [fp, #-72]
	sub	r3, r3, #1
	ldr	r2, .L51+12
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #69
	beq	.L50
	ldr	r3, [fp, #-72]
	sub	r3, r3, #1
	ldr	r2, .L51+12
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #101
	beq	.L50
	ldr	r3, [fp, #-72]
	sub	r3, r3, #1
	str	r3, [fp, #-72]
	b	.L29
.L26:
	ldr	r3, [fp, #-72]
	sub	r3, r3, #1
	str	r3, [fp, #-72]
	b	.L29
.L50:
	nop
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
	b	.L31
.L29:
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	ldr	r2, .L51+4
	str	r3, [r2]
	ldr	r3, .L51+16
	ldr	r1, [r3]
	ldr	r3, .L51+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-80]
	mov	r0, #1
	str	r0, [r3]
	ldr	r3, [fp, #-80]
	mov	r0, #25
	str	r0, [r3, #4]
	ldr	r3, [fp, #-80]
	str	r1, [r3, #8]
	ldr	r3, [fp, #-80]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-56]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-72]
	str	r2, [r3, #20]
	b	.L22
.L23:
	ldrb	r3, [fp, #-81]	@ zero_extendqisi2
	cmp	r3, #64
	bls	.L33
	ldrb	r3, [fp, #-81]	@ zero_extendqisi2
	cmp	r3, #90
	bls	.L41
.L33:
	ldrb	r3, [fp, #-81]	@ zero_extendqisi2
	cmp	r3, #96
	bhi	.L41
	ldrb	r3, [fp, #-81]	@ zero_extendqisi2
	cmp	r3, #122
	bhi	.L35
.L41:
	ldr	r3, .L51+8
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L51+8
	str	r3, [r2]
	ldr	r2, .L51+12
	ldr	r3, [fp, #-72]
	add	r3, r2, r3
	ldrb	r3, [r3]
	strb	r3, [fp, #-73]
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #64
	bls	.L36
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #90
	bls	.L37
.L36:
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #96
	bls	.L38
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #122
	bls	.L37
.L38:
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #95
	beq	.L37
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #36
	beq	.L37
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #47
	bls	.L39
	ldrb	r3, [fp, #-73]	@ zero_extendqisi2
	cmp	r3, #57
	bls	.L37
.L39:
	ldr	r3, [fp, #-72]
	sub	r3, r3, #1
	str	r3, [fp, #-72]
	nop
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	ldr	r2, .L51+4
	str	r3, [r2]
	mov	r3, #0
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-64]
	b	.L42
.L37:
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
	b	.L41
.L43:
	ldr	r2, .L51+12
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	ldrb	r1, [r3]	@ zero_extendqisi2
	sub	r2, fp, #28
	ldr	r3, [fp, #-68]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L42:
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	ble	.L43
	sub	r2, fp, #28
	ldr	r3, [fp, #-68]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-60]
	b	.L44
.L47:
	ldr	r2, [fp, #-60]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, .L51+20
	add	r2, r3, r2
	sub	r3, fp, #28
	mov	r1, r2
	mov	r0, r3
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L45
	ldr	r3, .L51+16
	ldr	r1, [r3]
	ldr	r3, .L51+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-80]
	mov	r0, #1
	str	r0, [r3]
	ldr	r3, [fp, #-80]
	mov	r0, #26
	str	r0, [r3, #4]
	ldr	r3, [fp, #-80]
	str	r1, [r3, #8]
	ldr	r3, [fp, #-80]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-56]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-72]
	str	r2, [r3, #20]
	b	.L22
.L45:
	ldr	r3, [fp, #-60]
	add	r3, r3, #1
	str	r3, [fp, #-60]
.L44:
	ldr	r3, .L51+24
	ldr	r3, [r3]
	ldr	r2, [fp, #-60]
	cmp	r2, r3
	blt	.L47
	ldr	r3, .L51+16
	ldr	r1, [r3]
	ldr	r3, .L51+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-80]
	mov	r0, #1
	str	r0, [r3]
	ldr	r3, [fp, #-80]
	mov	r0, #27
	str	r0, [r3, #4]
	ldr	r3, [fp, #-80]
	str	r1, [r3, #8]
	ldr	r3, [fp, #-80]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-56]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-72]
	str	r2, [r3, #20]
	b	.L22
.L35:
	ldr	r3, .L51+16
	ldr	r1, [r3]
	ldr	r3, .L51+8
	ldr	r2, [r3]
	ldr	r3, [fp, #-80]
	mov	r0, #1
	str	r0, [r3]
	ldr	r3, [fp, #-80]
	mov	r0, #25
	str	r0, [r3, #4]
	ldr	r3, [fp, #-80]
	str	r1, [r3, #8]
	ldr	r3, [fp, #-80]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-56]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-72]
	str	r2, [r3, #20]
.L22:
	ldr	r3, .L51
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L49
	bl	__stack_chk_fail
.L49:
	ldr	r0, [fp, #-80]
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L52:
	.align	2
.L51:
	.word	.LC7
	.word	BUFFER_INDEX
	.word	col
	.word	fileBUFFER
	.word	row
	.word	keywords
	.word	NUM_KEYWORDS
	.size	identifier_or_integer_or_keyword, .-identifier_or_integer_or_keyword
	.align	2
	.global	check_relational_logical_operator
	.syntax unified
	.arm
	.fpu softvfp
	.type	check_relational_logical_operator, %function
check_relational_logical_operator:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	ldr	r3, .L68
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L68+4
	ldrb	r3, [r2, r3]
	strb	r3, [fp, #-49]
	ldr	r3, .L68
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-60]
	cmp	r3, #7
	bne	.L54
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	cmp	r3, #61
	bne	.L55
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, .L68
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L68
	str	r3, [r2]
	ldr	r3, .L68+8
	ldr	r0, [r3]
	ldr	r3, .L68+12
	ldr	r1, [r3]
	ldr	r3, .L68
	ldr	r3, [r3]
	sub	r2, r3, #1
	ldr	r3, [fp, #-56]
	mov	ip, #1
	str	ip, [r3]
	ldr	r3, [fp, #-56]
	mov	ip, #16
	str	ip, [r3, #4]
	ldr	r3, [fp, #-56]
	str	r0, [r3, #8]
	ldr	r3, [fp, #-56]
	str	r1, [r3, #12]
	ldr	r3, [fp, #-56]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-48]
	str	r2, [r3, #20]
	b	.L53
.L55:
	ldr	r3, .L68+8
	ldr	ip, [r3]
	ldr	r3, .L68+12
	ldr	r0, [r3]
	ldr	r3, .L68
	ldr	r1, [r3]
	ldr	r3, .L68
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-56]
	mov	lr, #7
	str	lr, [r3, #4]
	ldr	r3, [fp, #-56]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-56]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-56]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-56]
	str	r2, [r3, #20]
	b	.L53
.L54:
	ldr	r3, [fp, #-60]
	cmp	r3, #13
	bne	.L57
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	cmp	r3, #61
	bne	.L58
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, .L68
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L68
	str	r3, [r2]
	ldr	r3, .L68+8
	ldr	r0, [r3]
	ldr	r3, .L68+12
	ldr	r1, [r3]
	ldr	r3, .L68
	ldr	r3, [r3]
	sub	r2, r3, #1
	ldr	r3, [fp, #-56]
	mov	ip, #1
	str	ip, [r3]
	ldr	r3, [fp, #-56]
	mov	ip, #14
	str	ip, [r3, #4]
	ldr	r3, [fp, #-56]
	str	r0, [r3, #8]
	ldr	r3, [fp, #-56]
	str	r1, [r3, #12]
	ldr	r3, [fp, #-56]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-48]
	str	r2, [r3, #20]
	b	.L53
.L58:
	ldr	r3, .L68+8
	ldr	ip, [r3]
	ldr	r3, .L68+12
	ldr	r0, [r3]
	ldr	r3, .L68
	ldr	r1, [r3]
	ldr	r3, .L68
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-56]
	mov	lr, #13
	str	lr, [r3, #4]
	ldr	r3, [fp, #-56]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-56]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-56]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-56]
	str	r2, [r3, #20]
	b	.L53
.L57:
	ldr	r3, [fp, #-60]
	cmp	r3, #11
	bne	.L59
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	cmp	r3, #61
	bne	.L60
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r3, .L68
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L68
	str	r3, [r2]
	ldr	r3, .L68+8
	ldr	r0, [r3]
	ldr	r3, .L68+12
	ldr	r1, [r3]
	ldr	r3, .L68
	ldr	r3, [r3]
	sub	r2, r3, #1
	ldr	r3, [fp, #-56]
	mov	ip, #1
	str	ip, [r3]
	ldr	r3, [fp, #-56]
	mov	ip, #12
	str	ip, [r3, #4]
	ldr	r3, [fp, #-56]
	str	r0, [r3, #8]
	ldr	r3, [fp, #-56]
	str	r1, [r3, #12]
	ldr	r3, [fp, #-56]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-48]
	str	r2, [r3, #20]
	b	.L53
.L60:
	ldr	r3, .L68+8
	ldr	ip, [r3]
	ldr	r3, .L68+12
	ldr	r0, [r3]
	ldr	r3, .L68
	ldr	r1, [r3]
	ldr	r3, .L68
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-56]
	mov	lr, #11
	str	lr, [r3, #4]
	ldr	r3, [fp, #-56]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-56]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-56]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-56]
	str	r2, [r3, #20]
	b	.L53
.L59:
	ldr	r3, [fp, #-60]
	cmp	r3, #9
	bne	.L61
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	cmp	r3, #38
	bne	.L62
	ldr	r3, .L68
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r3, .L68
	ldr	r3, [r3]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, .L68
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L68
	str	r3, [r2]
	ldr	r3, .L68+8
	ldr	r1, [r3]
	ldr	r3, .L68+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	mov	r0, #1
	str	r0, [r3]
	ldr	r3, [fp, #-56]
	mov	r0, #9
	str	r0, [r3, #4]
	ldr	r3, [fp, #-56]
	str	r1, [r3, #8]
	ldr	r3, [fp, #-56]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-32]
	str	r2, [r3, #20]
	b	.L53
.L62:
	ldr	r3, .L68+8
	ldr	ip, [r3]
	ldr	r3, .L68+12
	ldr	r0, [r3]
	ldr	r3, .L68
	ldr	r1, [r3]
	ldr	r3, .L68
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-56]
	mov	lr, #9
	str	lr, [r3, #4]
	ldr	r3, [fp, #-56]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-56]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-56]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-56]
	str	r2, [r3, #20]
	b	.L53
.L61:
	ldr	r3, [fp, #-60]
	cmp	r3, #10
	bne	.L64
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	cmp	r3, #124
	bne	.L65
	ldr	r3, .L68
	ldr	r3, [r3]
	str	r3, [fp, #-44]
	ldr	r3, .L68
	ldr	r3, [r3]
	add	r3, r3, #1
	str	r3, [fp, #-40]
	ldr	r3, .L68
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L68
	str	r3, [r2]
	ldr	r3, .L68+8
	ldr	r1, [r3]
	ldr	r3, .L68+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	mov	r0, #1
	str	r0, [r3]
	ldr	r3, [fp, #-56]
	mov	r0, #9
	str	r0, [r3, #4]
	ldr	r3, [fp, #-56]
	str	r1, [r3, #8]
	ldr	r3, [fp, #-56]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-44]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-40]
	str	r2, [r3, #20]
	b	.L53
.L65:
	ldr	r3, .L68+8
	ldr	ip, [r3]
	ldr	r3, .L68+12
	ldr	r0, [r3]
	ldr	r3, .L68
	ldr	r1, [r3]
	ldr	r3, .L68
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-56]
	mov	lr, #9
	str	lr, [r3, #4]
	ldr	r3, [fp, #-56]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-56]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-56]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-56]
	str	r2, [r3, #20]
	b	.L53
.L64:
	ldr	r3, .L68+8
	ldr	r0, [r3]
	ldr	r3, .L68+12
	ldr	r1, [r3]
	ldr	r3, .L68
	ldr	r3, [r3]
	sub	r2, r3, #1
	ldr	r3, [fp, #-56]
	mov	ip, #1
	str	ip, [r3]
	ldr	r3, [fp, #-56]
	mov	ip, #16
	str	ip, [r3, #4]
	ldr	r3, [fp, #-56]
	str	r0, [r3, #8]
	ldr	r3, [fp, #-56]
	str	r1, [r3, #12]
	ldr	r3, [fp, #-56]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-48]
	str	r2, [r3, #20]
.L53:
	ldr	r0, [fp, #-56]
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L69:
	.align	2
.L68:
	.word	BUFFER_INDEX
	.word	fileBUFFER
	.word	row
	.word	col
	.size	check_relational_logical_operator, .-check_relational_logical_operator
	.align	2
	.global	check_divide_comments
	.syntax unified
	.arm
	.fpu softvfp
	.type	check_divide_comments, %function
check_divide_comments:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, .L81
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L81+4
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #42
	beq	.L71
	ldr	r3, .L81
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L81+4
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #47
	bne	.L72
.L71:
	ldr	r3, .L81
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, .L81
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	ldr	r2, .L81+4
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #47
	bne	.L73
	b	.L74
.L75:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L74:
	ldr	r2, .L81+4
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L75
	ldr	r2, .L81
	ldr	r3, [fp, #-36]
	str	r3, [r2]
	ldr	r3, .L81+8
	ldr	r0, [r3]
	ldr	r3, .L81+12
	ldr	r1, [r3]
	ldr	r3, [fp, #-36]
	sub	r2, r3, #1
	ldr	r3, [fp, #-40]
	mov	ip, #1
	str	ip, [r3]
	ldr	r3, [fp, #-40]
	mov	ip, #29
	str	ip, [r3, #4]
	ldr	r3, [fp, #-40]
	str	r0, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #12]
	ldr	r3, [fp, #-40]
	ldr	r1, [fp, #-32]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
	b	.L70
.L73:
	ldr	r3, [fp, #-36]
	add	r3, r3, #2
	str	r3, [fp, #-36]
	b	.L77
.L79:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L77:
	ldr	r2, .L81+4
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #42
	beq	.L78
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	ldr	r2, .L81+4
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #47
	bne	.L79
.L78:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	ldr	r2, .L81
	str	r3, [r2]
	ldr	r3, .L81+8
	ldr	r0, [r3]
	ldr	r3, .L81+12
	ldr	r1, [r3]
	ldr	r3, [fp, #-36]
	sub	r2, r3, #1
	ldr	r3, [fp, #-40]
	mov	ip, #1
	str	ip, [r3]
	ldr	r3, [fp, #-40]
	mov	ip, #30
	str	ip, [r3, #4]
	ldr	r3, [fp, #-40]
	str	r0, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #12]
	ldr	r3, [fp, #-40]
	ldr	r1, [fp, #-32]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
	b	.L70
.L72:
	ldr	r3, .L81+8
	ldr	ip, [r3]
	ldr	r3, .L81+12
	ldr	r0, [r3]
	ldr	r3, .L81
	ldr	r1, [r3]
	ldr	r3, .L81
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #3
	str	lr, [r3, #4]
	ldr	r3, [fp, #-40]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
.L70:
	ldr	r0, [fp, #-40]
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L82:
	.align	2
.L81:
	.word	BUFFER_INDEX
	.word	fileBUFFER
	.word	row
	.word	col
	.size	check_divide_comments, .-check_divide_comments
	.align	2
	.global	check_string_literal
	.syntax unified
	.arm
	.fpu softvfp
	.type	check_string_literal, %function
check_string_literal:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #44
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, .L87
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, .L87
	ldr	r3, [r3]
	add	r3, r3, #1
	str	r3, [fp, #-36]
	b	.L84
.L85:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L84:
	ldr	r2, .L87+4
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #34
	bne	.L85
	ldr	r2, .L87
	ldr	r3, [fp, #-36]
	str	r3, [r2]
	ldr	r3, .L87+8
	ldr	r1, [r3]
	ldr	r3, .L87+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	mov	r0, #1
	str	r0, [r3]
	ldr	r3, [fp, #-40]
	mov	r0, #28
	str	r0, [r3, #4]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #12]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-32]
	str	r2, [r3, #16]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-36]
	str	r2, [r3, #20]
	ldr	r0, [fp, #-40]
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L88:
	.align	2
.L87:
	.word	BUFFER_INDEX
	.word	fileBUFFER
	.word	row
	.word	col
	.size	check_string_literal, .-check_string_literal
	.section	.rodata
	.align	2
.LC8:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	tokenize
	.syntax unified
	.arm
	.fpu softvfp
	.type	tokenize, %function
tokenize:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	mov	r3, r1
	strb	r3, [fp, #-41]
	ldr	r3, .L117
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L117+4
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L117+4
	str	r3, [r2]
	ldrb	r3, [fp, #-41]	@ zero_extendqisi2
	cmp	r3, #32
	beq	.L90
	ldrb	r3, [fp, #-41]	@ zero_extendqisi2
	cmp	r3, #9
	beq	.L90
	ldrb	r3, [fp, #-41]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L91
.L90:
	ldrb	r3, [fp, #-41]	@ zero_extendqisi2
	cmp	r3, #10
	bne	.L92
	ldr	r3, .L117+8
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L117+8
	str	r3, [r2]
	ldr	r3, .L117+4
	mov	r2, #0
	str	r2, [r3]
.L92:
	ldr	r3, [fp, #-40]
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2]
	str	r3, [r2, #4]
	str	r3, [r2, #8]
	str	r3, [r2, #12]
	str	r3, [r2, #16]
	str	r3, [r2, #20]
	b	.L89
.L91:
	ldrb	r3, [fp, #-41]	@ zero_extendqisi2
	sub	r3, r3, #33
	cmp	r3, #92
	ldrls	pc, [pc, r3, asl #2]
	b	.L94
.L96:
	.word	.L114
	.word	.L113
	.word	.L94
	.word	.L94
	.word	.L112
	.word	.L111
	.word	.L94
	.word	.L110
	.word	.L109
	.word	.L108
	.word	.L107
	.word	.L94
	.word	.L106
	.word	.L94
	.word	.L105
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L104
	.word	.L103
	.word	.L102
	.word	.L101
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L100
	.word	.L94
	.word	.L99
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L94
	.word	.L98
	.word	.L97
	.word	.L95
.L98:
	ldr	r3, .L117+8
	ldr	ip, [r3]
	ldr	r3, .L117+4
	ldr	r0, [r3]
	ldr	r3, .L117+12
	ldr	r1, [r3]
	ldr	r3, .L117+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #18
	str	lr, [r3, #4]
	ldr	r3, [fp, #-40]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
	b	.L89
.L95:
	ldr	r3, .L117+8
	ldr	ip, [r3]
	ldr	r3, .L117+4
	ldr	r0, [r3]
	ldr	r3, .L117+12
	ldr	r1, [r3]
	ldr	r3, .L117+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #21
	str	lr, [r3, #4]
	ldr	r3, [fp, #-40]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
	b	.L89
.L110:
	ldr	r3, .L117+8
	ldr	ip, [r3]
	ldr	r3, .L117+4
	ldr	r0, [r3]
	ldr	r3, .L117+12
	ldr	r1, [r3]
	ldr	r3, .L117+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #17
	str	lr, [r3, #4]
	ldr	r3, [fp, #-40]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
	b	.L89
.L109:
	ldr	r3, .L117+8
	ldr	ip, [r3]
	ldr	r3, .L117+4
	ldr	r0, [r3]
	ldr	r3, .L117+12
	ldr	r1, [r3]
	ldr	r3, .L117+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #20
	str	lr, [r3, #4]
	ldr	r3, [fp, #-40]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
	b	.L89
.L100:
	ldr	r3, .L117+8
	ldr	ip, [r3]
	ldr	r3, .L117+4
	ldr	r0, [r3]
	ldr	r3, .L117+12
	ldr	r1, [r3]
	ldr	r3, .L117+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #19
	str	lr, [r3, #4]
	ldr	r3, [fp, #-40]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
	b	.L89
.L99:
	ldr	r3, .L117+8
	ldr	ip, [r3]
	ldr	r3, .L117+4
	ldr	r0, [r3]
	ldr	r3, .L117+12
	ldr	r1, [r3]
	ldr	r3, .L117+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #22
	str	lr, [r3, #4]
	ldr	r3, [fp, #-40]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
	b	.L89
.L102:
	ldr	r3, .L117+8
	ldr	ip, [r3]
	ldr	r3, .L117+4
	ldr	r0, [r3]
	ldr	r3, .L117+12
	ldr	r1, [r3]
	ldr	r3, .L117+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #6
	str	lr, [r3, #4]
	ldr	r3, [fp, #-40]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
	b	.L89
.L108:
	ldr	r3, .L117+8
	ldr	ip, [r3]
	ldr	r3, .L117+4
	ldr	r0, [r3]
	ldr	r3, .L117+12
	ldr	r1, [r3]
	ldr	r3, .L117+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #1
	str	lr, [r3, #4]
	ldr	r3, [fp, #-40]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
	b	.L89
.L105:
	ldr	r3, [fp, #-40]
	mov	r1, #3
	mov	r0, r3
	bl	check_divide_comments
	b	.L89
.L107:
	ldr	r3, .L117+8
	ldr	ip, [r3]
	ldr	r3, .L117+4
	ldr	r0, [r3]
	ldr	r3, .L117+12
	ldr	r1, [r3]
	ldr	r3, .L117+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #2
	str	lr, [r3, #4]
	ldr	r3, [fp, #-40]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
	b	.L89
.L112:
	ldr	r3, .L117+8
	ldr	ip, [r3]
	ldr	r3, .L117+4
	ldr	r0, [r3]
	ldr	r3, .L117+12
	ldr	r1, [r3]
	ldr	r3, .L117+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #4
	str	lr, [r3, #4]
	ldr	r3, [fp, #-40]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
	b	.L89
.L106:
	ldr	r3, .L117+8
	ldr	ip, [r3]
	ldr	r3, .L117+4
	ldr	r0, [r3]
	ldr	r3, .L117+12
	ldr	r1, [r3]
	ldr	r3, .L117+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #5
	str	lr, [r3, #4]
	ldr	r3, [fp, #-40]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
	b	.L89
.L104:
	ldr	r3, .L117+8
	ldr	ip, [r3]
	ldr	r3, .L117+4
	ldr	r0, [r3]
	ldr	r3, .L117+12
	ldr	r1, [r3]
	ldr	r3, .L117+12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #1
	str	lr, [r3]
	ldr	r3, [fp, #-40]
	mov	lr, #23
	str	lr, [r3, #4]
	ldr	r3, [fp, #-40]
	str	ip, [r3, #8]
	ldr	r3, [fp, #-40]
	str	r0, [r3, #12]
	ldr	r3, [fp, #-40]
	str	r1, [r3, #16]
	ldr	r3, [fp, #-40]
	str	r2, [r3, #20]
	b	.L89
.L114:
	ldr	r3, [fp, #-40]
	mov	r1, #7
	mov	r0, r3
	bl	check_relational_logical_operator
	b	.L89
.L101:
	ldr	r3, [fp, #-40]
	mov	r1, #13
	mov	r0, r3
	bl	check_relational_logical_operator
	b	.L89
.L103:
	ldr	r3, [fp, #-40]
	mov	r1, #11
	mov	r0, r3
	bl	check_relational_logical_operator
	b	.L89
.L111:
	ldr	r3, [fp, #-40]
	mov	r1, #9
	mov	r0, r3
	bl	check_relational_logical_operator
	b	.L89
.L97:
	ldr	r3, [fp, #-40]
	mov	r1, #10
	mov	r0, r3
	bl	check_relational_logical_operator
	b	.L89
.L113:
	ldr	r3, [fp, #-40]
	mov	r1, #28
	mov	r0, r3
	bl	check_string_literal
	b	.L89
.L94:
	ldr	r3, [fp, #-40]
	ldrb	r2, [fp, #-41]	@ zero_extendqisi2
	mov	r1, r2
	mov	r0, r3
	bl	identifier_or_integer_or_keyword
.L89:
	ldr	r3, .L117
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L116
	bl	__stack_chk_fail
.L116:
	ldr	r0, [fp, #-40]
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L118:
	.align	2
.L117:
	.word	.LC8
	.word	col
	.word	row
	.word	BUFFER_INDEX
	.size	tokenize, .-tokenize
	.section	.rodata
	.align	2
.LC9:
	.ascii	"Number\000"
	.align	2
.LC10:
	.ascii	"Identifier\000"
	.align	2
.LC11:
	.ascii	"\011 => %s at row %d and col %d\012\000"
	.align	2
.LC12:
	.ascii	"Keyword\000"
	.align	2
.LC13:
	.ascii	"Separator\000"
	.align	2
.LC14:
	.ascii	"%c \011 => %s is at row %d and col %d\012\000"
	.align	2
.LC15:
	.ascii	"Assignment Operator\000"
	.align	2
.LC16:
	.ascii	"Binary arithmetic operator\000"
	.align	2
.LC17:
	.ascii	"Relational or logical operator\000"
	.align	2
.LC18:
	.ascii	"\011 => %s is at row %d and col %d\012\000"
	.align	2
.LC19:
	.ascii	"Single line Comment\000"
	.align	2
.LC20:
	.ascii	"Multi line comment\000"
	.align	2
.LC21:
	.ascii	"String literal\000"
	.align	2
.LC22:
	.ascii	"Semicolon separator\000"
	.align	2
.LC23:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	analyse
	.syntax unified
	.arm
	.fpu softvfp
	.type	analyse, %function
analyse:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-56]
	ldr	r3, .L158
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L158+4
	mvn	r2, #0
	str	r2, [r3]
	ldr	r3, .L158+8
	mov	r2, #0
	str	r2, [r3]
.L154:
	ldr	r3, .L158+4
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L158+4
	str	r3, [r2]
	ldr	r3, .L158+4
	ldr	r3, [r3]
	ldr	r2, .L158+12
	ldrb	r2, [r2, r3]	@ zero_extendqisi2
	sub	r3, fp, #32
	mov	r1, r2
	mov	r0, r3
	bl	tokenize
	ldr	r3, [fp, #-28]
	cmp	r3, #25
	beq	.L120
	ldr	r3, [fp, #-28]
	cmp	r3, #27
	bne	.L121
.L120:
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-52]
	b	.L122
.L126:
	ldr	r2, .L158+12
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #9
	beq	.L156
	ldr	r2, .L158+12
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L156
	ldr	r2, .L158+12
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
	b	.L125
.L156:
	nop
.L125:
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L122:
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	ble	.L126
	ldr	r3, [fp, #-28]
	cmp	r3, #25
	bne	.L127
	ldr	r1, .L158+16
	b	.L128
.L127:
	ldr	r1, .L158+20
.L128:
	ldr	r3, .L158+24
	ldr	r2, [r3]
	ldr	r3, .L158+8
	ldr	r3, [r3]
	ldr	r0, .L158+28
	bl	printf
	b	.L129
.L121:
	ldr	r3, [fp, #-28]
	cmp	r3, #26
	bne	.L130
	bl	red_color
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-48]
	b	.L131
.L135:
	ldr	r2, .L158+12
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #9
	beq	.L157
	ldr	r2, .L158+12
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L157
	ldr	r2, .L158+12
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
	b	.L134
.L157:
	nop
.L134:
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L131:
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	ble	.L135
	ldr	r3, .L158+24
	ldr	r2, [r3]
	ldr	r3, .L158+8
	ldr	r3, [r3]
	ldr	r1, .L158+32
	ldr	r0, .L158+28
	bl	printf
	bl	reset_color
	b	.L129
.L130:
	ldr	r3, [fp, #-28]
	cmp	r3, #17
	beq	.L136
	ldr	r3, [fp, #-28]
	cmp	r3, #18
	beq	.L136
	ldr	r3, [fp, #-28]
	cmp	r3, #19
	beq	.L136
	ldr	r3, [fp, #-28]
	cmp	r3, #20
	beq	.L136
	ldr	r3, [fp, #-28]
	cmp	r3, #21
	beq	.L136
	ldr	r3, [fp, #-28]
	cmp	r3, #22
	beq	.L136
	ldr	r3, [fp, #-28]
	cmp	r3, #23
	bne	.L137
.L136:
	bl	green_color
	ldr	r3, .L158+4
	ldr	r3, [r3]
	ldr	r2, .L158+12
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, .L158+24
	ldr	r2, [r3]
	ldr	r3, .L158+8
	ldr	r3, [r3]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, .L158+36
	ldr	r0, .L158+40
	bl	printf
	bl	reset_color
	b	.L129
.L137:
	ldr	r3, [fp, #-28]
	cmp	r3, #6
	bne	.L138
	bl	blue_color
	ldr	r3, .L158+4
	ldr	r3, [r3]
	ldr	r2, .L158+12
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, .L158+24
	ldr	r2, [r3]
	ldr	r3, .L158+8
	ldr	r3, [r3]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, .L158+44
	ldr	r0, .L158+40
	bl	printf
	bl	reset_color
	b	.L129
.L138:
	ldr	r3, [fp, #-28]
	cmp	r3, #1
	beq	.L139
	ldr	r3, [fp, #-28]
	cmp	r3, #2
	beq	.L139
	ldr	r3, [fp, #-28]
	cmp	r3, #3
	beq	.L139
	ldr	r3, [fp, #-28]
	cmp	r3, #4
	beq	.L139
	ldr	r3, [fp, #-28]
	cmp	r3, #5
	bne	.L140
.L139:
	bl	blue_color
	ldr	r3, .L158+4
	ldr	r3, [r3]
	ldr	r2, .L158+12
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, .L158+24
	ldr	r2, [r3]
	ldr	r3, .L158+8
	ldr	r3, [r3]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, .L158+48
	ldr	r0, .L158+40
	bl	printf
	bl	reset_color
	b	.L129
.L140:
	ldr	r3, [fp, #-28]
	cmp	r3, #7
	beq	.L141
	ldr	r3, [fp, #-28]
	cmp	r3, #16
	beq	.L141
	ldr	r3, [fp, #-28]
	cmp	r3, #11
	beq	.L141
	ldr	r3, [fp, #-28]
	cmp	r3, #12
	beq	.L141
	ldr	r3, [fp, #-28]
	cmp	r3, #13
	beq	.L141
	ldr	r3, [fp, #-28]
	cmp	r3, #14
	beq	.L141
	ldr	r3, [fp, #-28]
	cmp	r3, #9
	beq	.L141
	ldr	r3, [fp, #-28]
	cmp	r3, #10
	bne	.L142
.L141:
	bl	magenta_color
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-44]
	b	.L143
.L144:
	ldr	r2, .L158+12
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L143:
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	ble	.L144
	ldr	r3, .L158+24
	ldr	r2, [r3]
	ldr	r3, .L158+8
	ldr	r3, [r3]
	ldr	r1, .L158+52
	ldr	r0, .L158+56
	bl	printf
	bl	reset_color
	b	.L129
.L142:
	ldr	r3, [fp, #-28]
	cmp	r3, #29
	beq	.L145
	ldr	r3, [fp, #-28]
	cmp	r3, #30
	bne	.L146
.L145:
	bl	yellow_color
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-40]
	b	.L147
.L148:
	ldr	r2, .L158+12
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L147:
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	ble	.L148
	ldr	r3, [fp, #-28]
	cmp	r3, #29
	bne	.L149
	ldr	r1, .L158+60
	b	.L150
.L149:
	ldr	r1, .L158+64
.L150:
	ldr	r3, .L158+24
	ldr	r2, [r3]
	ldr	r3, .L158+8
	ldr	r3, [r3]
	ldr	r0, .L158+56
	bl	printf
	bl	reset_color
	b	.L129
.L146:
	ldr	r3, [fp, #-28]
	cmp	r3, #28
	bne	.L129
	bl	cyan_color
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-36]
	b	.L151
.L152:
	ldr	r2, .L158+12
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L151:
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-36]
	cmp	r2, r3
	ble	.L152
	ldr	r3, .L158+24
	ldr	r2, [r3]
	ldr	r3, .L158+8
	ldr	r3, [r3]
	ldr	r1, .L158+68
	ldr	r0, .L158+56
	bl	printf
	bl	reset_color
.L129:
	ldr	r3, .L158+4
	ldr	r3, [r3]
	ldr	r2, .L158+12
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #59
	bne	.L154
	bl	green_color
	ldr	r3, .L158+4
	ldr	r3, [r3]
	ldr	r2, .L158+12
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, .L158+24
	ldr	r2, [r3]
	ldr	r3, .L158+8
	ldr	r3, [r3]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, .L158+72
	ldr	r0, .L158+40
	bl	printf
	bl	reset_color
	b	.L154
.L159:
	.align	2
.L158:
	.word	.LC23
	.word	BUFFER_INDEX
	.word	col
	.word	fileBUFFER
	.word	.LC9
	.word	.LC10
	.word	row
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	.LC15
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.word	.LC20
	.word	.LC21
	.word	.LC22
	.size	analyse, .-analyse
	.section	.rodata
	.align	2
.LC24:
	.ascii	"\012\012\000"
	.align	2
.LC26:
	.ascii	"r\000"
	.align	2
.LC27:
	.ascii	"javaprog.java\000"
	.align	2
.LC28:
	.ascii	"javaprog.java NOT found in ./test_cases/\012 Please"
	.ascii	" provide it for custom test case.\012Continuing wit"
	.ascii	"h other test cases\000"
	.align	2
.LC29:
	.ascii	"Test case file %s missing, have you removed it?\012"
	.ascii	"\000"
	.align	2
.LC30:
	.ascii	"Lexical analysis of %s \012\012\000"
	.align	2
.LC25:
	.ascii	"./test_cases/\000"
	.space	16
	.align	2
.LC31:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	readFile
	.syntax unified
	.arm
	.fpu softvfp
	.type	readFile, %function
readFile:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-64]
	ldr	r3, .L171
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-52]
	b	.L161
.L162:
	ldr	r2, .L171+4
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L161:
	ldr	r3, .L171+8
	ldr	r3, [r3]
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	blt	.L162
	ldr	r0, .L171+12
	bl	puts
	ldr	r3, .L171+16
	sub	ip, fp, #40
	ldm	r3, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2}
	strh	r3, [ip]	@ movhi
	sub	r3, fp, #26
	mov	r2, #16
	mov	r1, #0
	mov	r0, r3
	bl	memset
	sub	r3, fp, #40
	ldr	r1, [fp, #-64]
	mov	r0, r3
	bl	strcat
	sub	r3, fp, #40
	ldr	r1, .L171+20
	mov	r0, r3
	bl	fopen
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	bne	.L163
	ldr	r1, .L171+24
	ldr	r0, [fp, #-64]
	bl	strcmp
	mov	r3, r0
	cmp	r3, #0
	bne	.L164
	ldr	r0, .L171+28
	bl	puts
	b	.L160
.L164:
	ldr	r1, [fp, #-64]
	ldr	r0, .L171+32
	bl	printf
	b	.L160
.L163:
	ldr	r1, [fp, #-64]
	ldr	r0, .L171+36
	bl	printf
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L167
.L170:
	ldr	r2, .L171+4
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	ldrb	r2, [fp, #-53]
	strb	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L167:
	ldr	r0, [fp, #-44]
	bl	fgetc
	mov	r3, r0
	strb	r3, [fp, #-53]
	b	.L170
.L160:
	ldr	r3, .L171
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L169
	bl	__stack_chk_fail
.L169:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L172:
	.align	2
.L171:
	.word	.LC31
	.word	fileBUFFER
	.word	BUFFER_LENGTH
	.word	.LC24
	.word	.LC25
	.word	.LC26
	.word	.LC27
	.word	.LC28
	.word	.LC29
	.word	.LC30
	.size	readFile, .-readFile
	.section	.rodata
	.align	2
.LC32:
	.ascii	"COLOR CODES: \000"
	.align	2
.LC33:
	.ascii	"Number/Identifier\011\000"
	.align	2
.LC34:
	.ascii	"Keyword\011\011\000"
	.align	2
.LC35:
	.ascii	"Separator\011\000"
	.align	2
.LC36:
	.ascii	"Assignment/arithmetic Operator\011\000"
	.align	2
.LC37:
	.ascii	"Relational/Logical operator\011\000"
	.align	2
.LC38:
	.ascii	"Comment\011\000"
	.text
	.align	2
	.global	print_color_codes
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_color_codes, %function
print_color_codes:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L174
	bl	puts
	ldr	r0, .L174+4
	bl	printf
	bl	red_color
	ldr	r0, .L174+8
	bl	printf
	bl	reset_color
	bl	green_color
	ldr	r0, .L174+12
	bl	printf
	bl	reset_color
	bl	blue_color
	ldr	r0, .L174+16
	bl	printf
	bl	reset_color
	bl	magenta_color
	ldr	r0, .L174+20
	bl	printf
	bl	reset_color
	bl	yellow_color
	ldr	r0, .L174+24
	bl	printf
	bl	reset_color
	mov	r0, #10
	bl	putchar
	nop
	pop	{fp, pc}
.L175:
	.align	2
.L174:
	.word	.LC32
	.word	.LC33
	.word	.LC34
	.word	.LC35
	.word	.LC36
	.word	.LC37
	.word	.LC38
	.size	print_color_codes, .-print_color_codes
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	print_color_codes
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L177
.L178:
	ldr	r3, .L180
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L180+4
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L180+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, .L180+12
	add	r3, r3, r2
	mov	r0, r3
	bl	readFile
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L177:
	ldr	r3, .L180+16
	ldr	r3, [r3]
	ldr	r2, [fp, #-8]
	cmp	r2, r3
	blt	.L178
	mov	r0, #10
	bl	putchar
	bl	print_color_codes
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L181:
	.align	2
.L180:
	.word	row
	.word	col
	.word	BUFFER_INDEX
	.word	filenames
	.word	NUMFILES
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
