	.file	"959237.c"
	.intel_syntax noprefix
	.text
	.section	.rodata
	.align 32
	.type	a, @object
	.size	a, 54
a:
	.string	"1"
	.zero	7
	.string	"1"
	.string	"2"
	.zero	5
	.zero	9
	.string	"12"
	.string	"3"
	.zero	4
	.string	"123"
	.string	"4"
	.zero	3
	.zero	9
	.globl	v0
	.bss
	.align 4
	.type	v0, @object
	.size	v0, 4
v0:
	.zero	4
	.globl	v1
	.data
	.align 4
	.type	v1, @object
	.size	v1, 4
v1:
	.long	1
	.globl	v2
	.align 4
	.type	v2, @object
	.size	v2, 4
v2:
	.long	2
	.globl	v3
	.align 4
	.type	v3, @object
	.size	v3, 4
v3:
	.long	3
	.globl	v4
	.align 4
	.type	v4, @object
	.size	v4, 4
v4:
	.long	4
	.globl	v5
	.align 4
	.type	v5, @object
	.size	v5, 4
v5:
	.long	5
	.globl	v6
	.align 4
	.type	v6, @object
	.size	v6, 4
v6:
	.long	6
	.globl	v7
	.align 4
	.type	v7, @object
	.size	v7, 4
v7:
	.long	7
	.section	.rodata
.LC0:
	.string	"strlen (a[i0][i0]) == 1"
.LC1:
	.string	"assertion on line %i: %s\n"
.LC2:
	.string	"strlen (a[i0][i1]) == 1"
.LC3:
	.string	"strlen (a[i1][i0]) == 2"
.LC4:
	.string	"strlen (a[i1][i1]) == 3"
.LC5:
	.string	"strlen (&a[i0][i0][i0]) == 1"
.LC6:
	.string	"strlen (&a[i0][i1][i0]) == 1"
.LC7:
	.string	"strlen (&a[i0][i1][i1]) == 0"
.LC8:
	.string	"strlen (&a[i0][i1][i2]) == 1"
.LC9:
	.string	"strlen (&a[i0][i1][i3]) == 0"
.LC10:
	.string	"strlen (&a[i1][i0][i0]) == 2"
.LC11:
	.string	"strlen (&a[i1][i1][i0]) == 3"
.LC12:
	.string	"strlen (&a[i1][i1][i1]) == 2"
.LC13:
	.string	"strlen (&a[i1][i1][i2]) == 1"
.LC14:
	.string	"strlen (&a[i1][i1][i3]) == 0"
.LC15:
	.string	"strlen (&a[i1][i1][i4]) == 1"
.LC16:
	.string	"strlen (&a[i1][i1][i5]) == 0"
.LC17:
	.string	"strlen (&a[i1][i1][i6]) == 0"
.LC18:
	.string	"strlen (&a[i1][i1][i7]) == 0"
	.align 8
.LC19:
	.string	"strlen (&a[i0][i0][i0] + i1) == 0"
	.align 8
.LC20:
	.string	"strlen (&a[i0][i1][i0] + i1) == 0"
	.align 8
.LC21:
	.string	"strlen (&a[i0][i1][i0] + i7) == 0"
	.align 8
.LC22:
	.string	"strlen (&a[i1][i0][i0] + i1) == 1"
	.align 8
.LC23:
	.string	"strlen (&a[i1][i1][i0] + i1) == 2"
	.align 8
.LC24:
	.string	"strlen (&a[i1][i1][i0] + i2) == 1"
	.align 8
.LC25:
	.string	"strlen (&a[i1][i1][i0] + i3) == 0"
	.align 8
.LC26:
	.string	"strlen (&a[i1][i1][i0] + i4) == 1"
	.align 8
.LC27:
	.string	"strlen (&a[i1][i1][i0] + i5) == 0"
	.align 8
.LC28:
	.string	"strlen (&a[i1][i1][i0] + i6) == 0"
	.align 8
.LC29:
	.string	"strlen (&a[i1][i1][i0] + i7) == 0"
	.align 8
.LC30:
	.string	"strlen (&a[i0][i0][i0] + v1) == 0"
	.align 8
.LC31:
	.string	"strlen (&a[i0][i0][i0] + v2) == 0"
	.align 8
.LC32:
	.string	"strlen (&a[i0][i0][i0] + v7) == 0"
	.align 8
.LC33:
	.string	"strlen (&a[i0][i1][i0] + v1) == 0"
	.align 8
.LC34:
	.string	"strlen (&a[i0][i1][i0] + v2) == 1"
	.align 8
.LC35:
	.string	"strlen (&a[i0][i1][i0] + v3) == 0"
	.align 8
.LC36:
	.string	"strlen (&a[i1][i0][i0] + v1) == 1"
	.align 8
.LC37:
	.string	"strlen (&a[i1][i1][i0] + v1) == 2"
	.align 8
.LC38:
	.string	"strlen (&a[i1][i1][i0] + v2) == 1"
	.align 8
.LC39:
	.string	"strlen (&a[i1][i1][i0] + v3) == 0"
	.align 8
.LC40:
	.string	"strlen (&a[i1][i1][i0] + v4) == 1"
	.align 8
.LC41:
	.string	"strlen (&a[i1][i1][i0] + v5) == 0"
	.align 8
.LC42:
	.string	"strlen (&a[i1][i1][i0] + v6) == 0"
	.align 8
.LC43:
	.string	"strlen (&a[i1][i1][i0] + v7) == 0"
	.text
	.globl	test_array_ref
	.type	test_array_ref, @function
test_array_ref:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -32[rbp], 0
	mov	eax, DWORD PTR -32[rbp]
	add	eax, 1
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	add	eax, 1
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	add	eax, 1
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	add	eax, 1
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, 1
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 1
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	add	eax, 1
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L2
	lea	rdx, .LC0[rip]
	mov	esi, 62
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L2:
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	mov	rdx, rax
	sal	rdx, 3
	add	rdx, rax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	add	rax, rax
	add	rax, rcx
	lea	rcx, 0[0+rax*8]
	add	rax, rcx
	add	rdx, rax
	lea	rax, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L3
	lea	rdx, .LC2[rip]
	mov	esi, 63
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L3:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	mov	rdx, rax
	sal	rdx, 3
	add	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	add	rax, rax
	add	rax, rcx
	lea	rcx, 0[0+rax*8]
	add	rax, rcx
	add	rdx, rax
	lea	rax, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 2
	je	.L4
	lea	rdx, .LC3[rip]
	mov	esi, 65
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L4:
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 3
	je	.L5
	lea	rdx, .LC4[rip]
	mov	esi, 66
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L5:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	add	rax, rdx
	lea	rdx, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L6
	lea	rdx, .LC5[rip]
	mov	esi, 68
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L6:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	lea	rdx, 0[0+rax*8]
	add	rax, rdx
	mov	edx, DWORD PTR -28[rbp]
	movsx	rcx, edx
	mov	rdx, rcx
	sal	rdx, 3
	add	rdx, rcx
	add	rax, rdx
	lea	rdx, [rsi+rax]
	lea	rax, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L7
	lea	rdx, .LC6[rip]
	mov	esi, 69
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L7:
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	mov	edx, DWORD PTR -32[rbp]
	movsx	rcx, edx
	mov	rdx, rax
	sal	rdx, 2
	add	rdx, rax
	lea	rax, [rdx+rdx]
	mov	rdx, rax
	mov	rax, rcx
	add	rax, rax
	add	rax, rcx
	lea	rcx, 0[0+rax*8]
	add	rax, rcx
	add	rdx, rax
	lea	rax, a[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L8
	lea	rdx, .LC7[rip]
	mov	esi, 70
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L8:
	mov	eax, DWORD PTR -24[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	lea	rdx, 0[0+rax*8]
	add	rax, rdx
	mov	edx, DWORD PTR -28[rbp]
	movsx	rcx, edx
	mov	rdx, rcx
	sal	rdx, 3
	add	rdx, rcx
	add	rax, rdx
	lea	rdx, [rsi+rax]
	lea	rax, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L9
	lea	rdx, .LC8[rip]
	mov	esi, 71
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L9:
	mov	eax, DWORD PTR -20[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rcx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	lea	rdx, 0[0+rax*8]
	add	rax, rdx
	mov	rdx, rcx
	sal	rdx, 3
	add	rdx, rcx
	add	rax, rdx
	lea	rdx, [rax+rsi]
	lea	rax, a[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L10
	lea	rdx, .LC9[rip]
	mov	esi, 72
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L10:
	mov	eax, DWORD PTR -20[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rcx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	lea	rdx, 0[0+rax*8]
	add	rax, rdx
	mov	rdx, rcx
	sal	rdx, 3
	add	rdx, rcx
	add	rax, rdx
	lea	rdx, [rax+rsi]
	lea	rax, a[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L11
	lea	rdx, .LC9[rip]
	mov	esi, 73
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L11:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	mov	rdx, rax
	sal	rdx, 2
	add	rdx, rax
	lea	rax, [rdx+rdx]
	mov	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	add	rax, rax
	add	rax, rcx
	lea	rcx, 0[0+rax*8]
	add	rax, rcx
	add	rdx, rax
	lea	rax, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 2
	je	.L12
	lea	rdx, .LC10[rip]
	mov	esi, 75
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L12:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 3
	je	.L13
	lea	rdx, .LC11[rip]
	mov	esi, 76
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L13:
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	add	rax, rdx
	lea	rdx, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 2
	je	.L14
	lea	rdx, .LC12[rip]
	mov	esi, 77
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L14:
	mov	eax, DWORD PTR -24[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L15
	lea	rdx, .LC13[rip]
	mov	esi, 78
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L15:
	mov	eax, DWORD PTR -20[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rax+rcx]
	lea	rax, a[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L16
	lea	rdx, .LC14[rip]
	mov	esi, 79
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L16:
	mov	eax, DWORD PTR -16[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L17
	lea	rdx, .LC15[rip]
	mov	esi, 80
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L17:
	mov	eax, DWORD PTR -12[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rax+rcx]
	lea	rax, a[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L18
	lea	rdx, .LC16[rip]
	mov	esi, 81
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L18:
	mov	eax, DWORD PTR -8[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rax+rcx]
	lea	rax, a[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L19
	lea	rdx, .LC17[rip]
	mov	esi, 82
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L19:
	mov	eax, DWORD PTR -4[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rax+rcx]
	lea	rax, a[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L20
	lea	rdx, .LC18[rip]
	mov	esi, 83
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L20:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	add	rax, rdx
	lea	rdx, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L21
	lea	rdx, .LC19[rip]
	mov	esi, 85
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L21:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	lea	rdx, 0[0+rax*8]
	add	rax, rdx
	mov	edx, DWORD PTR -28[rbp]
	movsx	rcx, edx
	mov	rdx, rcx
	sal	rdx, 3
	add	rdx, rcx
	add	rax, rdx
	lea	rdx, [rsi+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L22
	lea	rdx, .LC20[rip]
	mov	esi, 86
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L22:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	lea	rdx, 0[0+rax*8]
	add	rax, rdx
	mov	edx, DWORD PTR -28[rbp]
	movsx	rcx, edx
	mov	rdx, rcx
	sal	rdx, 3
	add	rdx, rcx
	add	rax, rdx
	lea	rdx, [rsi+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L23
	lea	rdx, .LC21[rip]
	mov	esi, 87
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L23:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	mov	rdx, rax
	sal	rdx, 2
	add	rdx, rax
	lea	rax, [rdx+rdx]
	mov	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	add	rax, rax
	add	rax, rcx
	lea	rcx, 0[0+rax*8]
	add	rax, rcx
	add	rdx, rax
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L24
	lea	rdx, .LC22[rip]
	mov	esi, 89
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L24:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 2
	je	.L25
	lea	rdx, .LC23[rip]
	mov	esi, 90
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L25:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L26
	lea	rdx, .LC24[rip]
	mov	esi, 91
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L26:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L27
	lea	rdx, .LC25[rip]
	mov	esi, 92
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L27:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L28
	lea	rdx, .LC26[rip]
	mov	esi, 93
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L28:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L29
	lea	rdx, .LC27[rip]
	mov	esi, 94
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L29:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L30
	lea	rdx, .LC28[rip]
	mov	esi, 95
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L30:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L31
	lea	rdx, .LC29[rip]
	mov	esi, 96
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L31:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L32
	lea	rdx, .LC0[rip]
	mov	esi, 99
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L32:
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	mov	rdx, rax
	sal	rdx, 3
	add	rdx, rax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	add	rax, rax
	add	rax, rcx
	lea	rcx, 0[0+rax*8]
	add	rax, rcx
	add	rdx, rax
	lea	rax, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L33
	lea	rdx, .LC2[rip]
	mov	esi, 100
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L33:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	mov	rdx, rax
	sal	rdx, 3
	add	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	add	rax, rax
	add	rax, rcx
	lea	rcx, 0[0+rax*8]
	add	rax, rcx
	add	rdx, rax
	lea	rax, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 2
	je	.L34
	lea	rdx, .LC3[rip]
	mov	esi, 102
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L34:
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 3
	je	.L35
	lea	rdx, .LC4[rip]
	mov	esi, 103
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L35:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	add	rax, rdx
	lea	rdx, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L36
	lea	rdx, .LC5[rip]
	mov	esi, 105
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L36:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	lea	rdx, 0[0+rax*8]
	add	rax, rdx
	mov	edx, DWORD PTR -28[rbp]
	movsx	rcx, edx
	mov	rdx, rcx
	sal	rdx, 3
	add	rdx, rcx
	add	rax, rdx
	lea	rdx, [rsi+rax]
	lea	rax, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L37
	lea	rdx, .LC6[rip]
	mov	esi, 106
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L37:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	mov	rdx, rax
	sal	rdx, 2
	add	rdx, rax
	lea	rax, [rdx+rdx]
	mov	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	add	rax, rax
	add	rax, rcx
	lea	rcx, 0[0+rax*8]
	add	rax, rcx
	add	rdx, rax
	lea	rax, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 2
	je	.L38
	lea	rdx, .LC10[rip]
	mov	esi, 108
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L38:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 3
	je	.L39
	lea	rdx, .LC11[rip]
	mov	esi, 109
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L39:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	add	rax, rdx
	lea	rdx, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR v1[rip]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L40
	lea	rdx, .LC30[rip]
	mov	esi, 111
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L40:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	add	rax, rdx
	lea	rdx, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR v2[rip]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L41
	lea	rdx, .LC31[rip]
	mov	esi, 112
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L41:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	add	rax, rdx
	lea	rdx, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR v7[rip]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L42
	lea	rdx, .LC32[rip]
	mov	esi, 113
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L42:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	lea	rdx, 0[0+rax*8]
	add	rax, rdx
	mov	edx, DWORD PTR -28[rbp]
	movsx	rcx, edx
	mov	rdx, rcx
	sal	rdx, 3
	add	rdx, rcx
	add	rax, rdx
	lea	rdx, [rsi+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR v1[rip]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L43
	lea	rdx, .LC33[rip]
	mov	esi, 115
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L43:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	lea	rdx, 0[0+rax*8]
	add	rax, rdx
	mov	edx, DWORD PTR -28[rbp]
	movsx	rcx, edx
	mov	rdx, rcx
	sal	rdx, 3
	add	rdx, rcx
	add	rax, rdx
	lea	rdx, [rsi+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR v2[rip]
	cdqe
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L44
	lea	rdx, .LC34[rip]
	mov	esi, 116
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L44:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -32[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	lea	rdx, 0[0+rax*8]
	add	rax, rdx
	mov	edx, DWORD PTR -28[rbp]
	movsx	rcx, edx
	mov	rdx, rcx
	sal	rdx, 3
	add	rdx, rcx
	add	rax, rdx
	lea	rdx, [rsi+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR v3[rip]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L45
	lea	rdx, .LC35[rip]
	mov	esi, 117
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L45:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	mov	rdx, rax
	sal	rdx, 2
	add	rdx, rax
	lea	rax, [rdx+rdx]
	mov	rdx, rax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	add	rax, rax
	add	rax, rcx
	lea	rcx, 0[0+rax*8]
	add	rax, rcx
	add	rdx, rax
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR v1[rip]
	cdqe
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L46
	lea	rdx, .LC36[rip]
	mov	esi, 119
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L46:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR v1[rip]
	cdqe
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 2
	je	.L47
	lea	rdx, .LC37[rip]
	mov	esi, 120
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L47:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR v2[rip]
	cdqe
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L48
	lea	rdx, .LC38[rip]
	mov	esi, 121
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L48:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR v3[rip]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L49
	lea	rdx, .LC39[rip]
	mov	esi, 122
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L49:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR v4[rip]
	cdqe
	add	rax, rdx
	mov	rdi, rax
	call	strlen@PLT
	cmp	rax, 1
	je	.L50
	lea	rdx, .LC40[rip]
	mov	esi, 123
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L50:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR v5[rip]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L51
	lea	rdx, .LC41[rip]
	mov	esi, 124
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L51:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR v6[rip]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L52
	lea	rdx, .LC42[rip]
	mov	esi, 125
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L52:
	mov	eax, DWORD PTR -32[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 2
	lea	rdx, [rcx+rax]
	lea	rax, a[rip]
	add	rdx, rax
	mov	eax, DWORD PTR v7[rip]
	cdqe
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L54
	lea	rdx, .LC43[rip]
	mov	esi, 126
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
	call	abort@PLT
.L54:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	test_array_ref, .-test_array_ref
	.globl	main
	.type	main, @function
main:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	test_array_ref
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.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	"959237.c"
	.text
	.section	.rodata
	.align	2
	.type	a, %object
	.size	a, 54
a:
	.ascii	"1\000"
	.space	7
	.ascii	"1\0002\000"
	.space	5
	.space	9
	.ascii	"12\0003\000"
	.space	4
	.ascii	"123\0004\000"
	.space	3
	.space	9
	.global	v0
	.bss
	.align	2
	.type	v0, %object
	.size	v0, 4
v0:
	.space	4
	.global	v1
	.data
	.align	2
	.type	v1, %object
	.size	v1, 4
v1:
	.word	1
	.global	v2
	.align	2
	.type	v2, %object
	.size	v2, 4
v2:
	.word	2
	.global	v3
	.align	2
	.type	v3, %object
	.size	v3, 4
v3:
	.word	3
	.global	v4
	.align	2
	.type	v4, %object
	.size	v4, 4
v4:
	.word	4
	.global	v5
	.align	2
	.type	v5, %object
	.size	v5, 4
v5:
	.word	5
	.global	v6
	.align	2
	.type	v6, %object
	.size	v6, 4
v6:
	.word	6
	.global	v7
	.align	2
	.type	v7, %object
	.size	v7, 4
v7:
	.word	7
	.section	.rodata
	.align	2
.LC0:
	.ascii	"strlen (a[i0][i0]) == 1\000"
	.align	2
.LC1:
	.ascii	"assertion on line %i: %s\012\000"
	.align	2
.LC2:
	.ascii	"strlen (a[i0][i1]) == 1\000"
	.align	2
.LC3:
	.ascii	"strlen (a[i1][i0]) == 2\000"
	.align	2
.LC4:
	.ascii	"strlen (a[i1][i1]) == 3\000"
	.align	2
.LC5:
	.ascii	"strlen (&a[i0][i0][i0]) == 1\000"
	.align	2
.LC6:
	.ascii	"strlen (&a[i0][i1][i0]) == 1\000"
	.align	2
.LC7:
	.ascii	"strlen (&a[i0][i1][i1]) == 0\000"
	.align	2
.LC8:
	.ascii	"strlen (&a[i0][i1][i2]) == 1\000"
	.align	2
.LC9:
	.ascii	"strlen (&a[i0][i1][i3]) == 0\000"
	.align	2
.LC10:
	.ascii	"strlen (&a[i1][i0][i0]) == 2\000"
	.align	2
.LC11:
	.ascii	"strlen (&a[i1][i1][i0]) == 3\000"
	.align	2
.LC12:
	.ascii	"strlen (&a[i1][i1][i1]) == 2\000"
	.align	2
.LC13:
	.ascii	"strlen (&a[i1][i1][i2]) == 1\000"
	.align	2
.LC14:
	.ascii	"strlen (&a[i1][i1][i3]) == 0\000"
	.align	2
.LC15:
	.ascii	"strlen (&a[i1][i1][i4]) == 1\000"
	.align	2
.LC16:
	.ascii	"strlen (&a[i1][i1][i5]) == 0\000"
	.align	2
.LC17:
	.ascii	"strlen (&a[i1][i1][i6]) == 0\000"
	.align	2
.LC18:
	.ascii	"strlen (&a[i1][i1][i7]) == 0\000"
	.align	2
.LC19:
	.ascii	"strlen (&a[i0][i0][i0] + i1) == 0\000"
	.align	2
.LC20:
	.ascii	"strlen (&a[i0][i1][i0] + i1) == 0\000"
	.align	2
.LC21:
	.ascii	"strlen (&a[i0][i1][i0] + i7) == 0\000"
	.align	2
.LC22:
	.ascii	"strlen (&a[i1][i0][i0] + i1) == 1\000"
	.align	2
.LC23:
	.ascii	"strlen (&a[i1][i1][i0] + i1) == 2\000"
	.align	2
.LC24:
	.ascii	"strlen (&a[i1][i1][i0] + i2) == 1\000"
	.align	2
.LC25:
	.ascii	"strlen (&a[i1][i1][i0] + i3) == 0\000"
	.align	2
.LC26:
	.ascii	"strlen (&a[i1][i1][i0] + i4) == 1\000"
	.align	2
.LC27:
	.ascii	"strlen (&a[i1][i1][i0] + i5) == 0\000"
	.align	2
.LC28:
	.ascii	"strlen (&a[i1][i1][i0] + i6) == 0\000"
	.align	2
.LC29:
	.ascii	"strlen (&a[i1][i1][i0] + i7) == 0\000"
	.align	2
.LC30:
	.ascii	"strlen (&a[i0][i0][i0] + v1) == 0\000"
	.align	2
.LC31:
	.ascii	"strlen (&a[i0][i0][i0] + v2) == 0\000"
	.align	2
.LC32:
	.ascii	"strlen (&a[i0][i0][i0] + v7) == 0\000"
	.align	2
.LC33:
	.ascii	"strlen (&a[i0][i1][i0] + v1) == 0\000"
	.align	2
.LC34:
	.ascii	"strlen (&a[i0][i1][i0] + v2) == 1\000"
	.align	2
.LC35:
	.ascii	"strlen (&a[i0][i1][i0] + v3) == 0\000"
	.align	2
.LC36:
	.ascii	"strlen (&a[i1][i0][i0] + v1) == 1\000"
	.align	2
.LC37:
	.ascii	"strlen (&a[i1][i1][i0] + v1) == 2\000"
	.align	2
.LC38:
	.ascii	"strlen (&a[i1][i1][i0] + v2) == 1\000"
	.align	2
.LC39:
	.ascii	"strlen (&a[i1][i1][i0] + v3) == 0\000"
	.align	2
.LC40:
	.ascii	"strlen (&a[i1][i1][i0] + v4) == 1\000"
	.align	2
.LC41:
	.ascii	"strlen (&a[i1][i1][i0] + v5) == 0\000"
	.align	2
.LC42:
	.ascii	"strlen (&a[i1][i1][i0] + v6) == 0\000"
	.align	2
.LC43:
	.ascii	"strlen (&a[i1][i1][i0] + v7) == 0\000"
	.text
	.align	2
	.global	test_array_ref
	.syntax unified
	.arm
	.fpu softvfp
	.type	test_array_ref, %function
test_array_ref:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L2
	ldr	r2, .L55+4
	mov	r1, #62
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L2:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	lsl	r2, r2, #3
	add	r2, r2, r3
	ldr	r1, [fp, #-36]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r3, r2, r3
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L3
	ldr	r2, .L55+12
	mov	r1, #63
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L3:
	ldr	r3, [fp, #-36]
	mov	r2, r3
	lsl	r2, r2, #3
	add	r2, r2, r3
	ldr	r1, [fp, #-32]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r3, r2, r3
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #2
	beq	.L4
	ldr	r2, .L55+16
	mov	r1, #65
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L4:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #3
	beq	.L5
	ldr	r2, .L55+20
	mov	r1, #66
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L5:
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L6
	ldr	r2, .L55+24
	mov	r1, #68
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L6:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	lsl	r2, r2, #3
	add	r2, r2, r3
	ldr	r1, [fp, #-36]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r2, r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L7
	ldr	r2, .L55+28
	mov	r1, #69
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L7:
	ldr	r0, .L55
	ldr	r3, [fp, #-32]
	ldr	r1, [fp, #-36]
	mov	r2, r3
	lsl	r2, r2, #2
	add	r2, r2, r3
	lsl	r3, r2, #1
	mov	r2, r3
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r3, r2, r3
	add	r3, r0, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L8
	ldr	r2, .L55+32
	mov	r1, #70
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L8:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	lsl	r2, r2, #3
	add	r2, r2, r3
	ldr	r1, [fp, #-36]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r2, r2, r3
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L9
	ldr	r2, .L55+36
	mov	r1, #71
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L9:
	ldr	r0, .L55
	ldr	r3, [fp, #-32]
	ldr	r1, [fp, #-36]
	mov	r2, r3
	lsl	r2, r2, #3
	add	r2, r2, r3
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r3, r2, r3
	add	r2, r0, r3
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L10
	ldr	r2, .L55+40
	mov	r1, #72
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L10:
	ldr	r0, .L55
	ldr	r3, [fp, #-32]
	ldr	r1, [fp, #-36]
	mov	r2, r3
	lsl	r2, r2, #3
	add	r2, r2, r3
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r3, r2, r3
	add	r2, r0, r3
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L11
	ldr	r2, .L55+40
	mov	r1, #73
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L11:
	ldr	r3, [fp, #-36]
	mov	r2, r3
	lsl	r2, r2, #2
	add	r2, r2, r3
	lsl	r3, r2, #1
	mov	r2, r3
	ldr	r1, [fp, #-32]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r3, r2, r3
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #2
	beq	.L12
	ldr	r2, .L55+44
	mov	r1, #75
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L12:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #3
	beq	.L13
	ldr	r2, .L55+48
	mov	r1, #76
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L13:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #2
	beq	.L14
	ldr	r2, .L55+52
	mov	r1, #77
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L14:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-28]
	add	r3, r3, r2
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L15
	ldr	r2, .L55+56
	mov	r1, #78
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L15:
	ldr	r1, .L55
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r2, r1, r3
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L16
	ldr	r2, .L55+60
	mov	r1, #79
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L16:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-20]
	add	r3, r3, r2
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L17
	ldr	r2, .L55+64
	mov	r1, #80
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L17:
	ldr	r1, .L55
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r2, r1, r3
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L18
	ldr	r2, .L55+68
	mov	r1, #81
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L18:
	ldr	r1, .L55
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r2, r1, r3
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L19
	ldr	r2, .L55+72
	mov	r1, #82
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L19:
	ldr	r1, .L55
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r2, r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L20
	ldr	r2, .L55+76
	mov	r1, #83
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L20:
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	ldr	r2, .L55
	add	r2, r3, r2
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L21
	ldr	r2, .L55+80
	mov	r1, #85
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L21:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	lsl	r2, r2, #3
	add	r2, r2, r3
	ldr	r1, [fp, #-36]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r2, r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, .L55
	add	r2, r3, r2
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L22
	ldr	r2, .L55+84
	mov	r1, #86
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L22:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	lsl	r2, r2, #3
	add	r2, r2, r3
	ldr	r1, [fp, #-36]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r2, r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, .L55
	add	r2, r3, r2
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L23
	ldr	r2, .L55+88
	mov	r1, #87
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L23:
	ldr	r3, [fp, #-36]
	mov	r2, r3
	lsl	r2, r2, #2
	add	r2, r2, r3
	lsl	r3, r2, #1
	mov	r2, r3
	ldr	r1, [fp, #-32]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r3, r2, r3
	ldr	r2, .L55
	add	r2, r3, r2
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L24
	ldr	r2, .L55+92
	mov	r1, #89
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L24:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55
	add	r2, r3, r2
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #2
	beq	.L25
	ldr	r2, .L55+96
	mov	r1, #90
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L25:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55
	add	r2, r3, r2
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L26
	ldr	r2, .L55+100
	mov	r1, #91
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L26:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55
	add	r2, r3, r2
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L27
	ldr	r2, .L55+104
	mov	r1, #92
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L27:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55
	add	r2, r3, r2
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L28
	ldr	r2, .L55+108
	mov	r1, #93
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L28:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55
	add	r2, r3, r2
	ldr	r3, [fp, #-16]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L29
	ldr	r2, .L55+112
	mov	r1, #94
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L29:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55
	add	r2, r3, r2
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L30
	ldr	r2, .L55+116
	mov	r1, #95
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L30:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55
	add	r2, r3, r2
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L31
	ldr	r2, .L55+120
	mov	r1, #96
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L31:
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L32
	ldr	r2, .L55+4
	mov	r1, #99
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L32:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	lsl	r2, r2, #3
	add	r2, r2, r3
	ldr	r1, [fp, #-36]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r3, r2, r3
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L33
	ldr	r2, .L55+12
	mov	r1, #100
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L33:
	ldr	r3, [fp, #-36]
	mov	r2, r3
	lsl	r2, r2, #3
	add	r2, r2, r3
	ldr	r1, [fp, #-32]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r3, r2, r3
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #2
	beq	.L34
	ldr	r2, .L55+16
	mov	r1, #102
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L34:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #3
	beq	.L35
	ldr	r2, .L55+20
	mov	r1, #103
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L35:
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L36
	ldr	r2, .L55+24
	mov	r1, #105
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L36:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	lsl	r2, r2, #3
	add	r2, r2, r3
	ldr	r1, [fp, #-36]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r2, r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L37
	ldr	r2, .L55+28
	mov	r1, #106
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L37:
	ldr	r3, [fp, #-36]
	mov	r2, r3
	lsl	r2, r2, #2
	add	r2, r2, r3
	lsl	r3, r2, #1
	mov	r2, r3
	ldr	r1, [fp, #-32]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r3, r2, r3
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #2
	beq	.L38
	ldr	r2, .L55+44
	mov	r1, #108
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L38:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #3
	beq	.L39
	ldr	r2, .L55+48
	mov	r1, #109
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L39:
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	ldr	r2, .L55
	add	r3, r3, r2
	ldr	r2, .L55+124
	ldr	r2, [r2]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L40
	ldr	r2, .L55+128
	mov	r1, #111
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L40:
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	ldr	r2, .L55
	add	r3, r3, r2
	ldr	r2, .L55+132
	ldr	r2, [r2]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L41
	ldr	r2, .L55+136
	mov	r1, #112
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L41:
	ldr	r2, [fp, #-36]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	ldr	r2, .L55
	add	r3, r3, r2
	ldr	r2, .L55+204
	ldr	r2, [r2]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L42
	ldr	r2, .L55+140
	mov	r1, #113
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L42:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	lsl	r2, r2, #3
	add	r2, r2, r3
	ldr	r1, [fp, #-36]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r2, r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, .L55
	add	r3, r3, r2
	ldr	r2, .L55+124
	ldr	r2, [r2]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L43
	ldr	r2, .L55+144
	mov	r1, #115
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L43:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	lsl	r2, r2, #3
	add	r2, r2, r3
	ldr	r1, [fp, #-36]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r2, r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, .L55
	add	r3, r3, r2
	ldr	r2, .L55+132
	ldr	r2, [r2]
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L44
	ldr	r2, .L55+148
	mov	r1, #116
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L44:
	ldr	r3, [fp, #-32]
	mov	r2, r3
	lsl	r2, r2, #3
	add	r2, r2, r3
	ldr	r1, [fp, #-36]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r2, r2, r3
	ldr	r3, [fp, #-36]
	add	r3, r2, r3
	ldr	r2, .L55
	add	r3, r3, r2
	ldr	r2, .L55+152
	ldr	r2, [r2]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L45
	ldr	r2, .L55+156
	mov	r1, #117
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L45:
	ldr	r3, [fp, #-36]
	mov	r2, r3
	lsl	r2, r2, #2
	add	r2, r2, r3
	lsl	r3, r2, #1
	mov	r2, r3
	ldr	r1, [fp, #-32]
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r1, r3, #3
	add	r3, r3, r1
	add	r3, r2, r3
	ldr	r2, .L55
	add	r3, r3, r2
	ldr	r2, .L55+124
	ldr	r2, [r2]
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L46
	ldr	r2, .L55+160
	mov	r1, #119
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L46:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55
	add	r3, r3, r2
	ldr	r2, .L55+124
	ldr	r2, [r2]
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #2
	beq	.L47
	ldr	r2, .L55+164
	mov	r1, #120
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L47:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55
	add	r3, r3, r2
	ldr	r2, .L55+132
	ldr	r2, [r2]
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L48
	ldr	r2, .L55+168
	mov	r1, #121
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L48:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55
	add	r3, r3, r2
	ldr	r2, .L55+152
	ldr	r2, [r2]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L49
	ldr	r2, .L55+172
	mov	r1, #122
	ldr	r0, .L55+8
	bl	printf
	bl	abort
.L56:
	.align	2
.L55:
	.word	a
	.word	.LC0
	.word	.LC1
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	.LC15
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.word	.LC20
	.word	.LC21
	.word	.LC22
	.word	.LC23
	.word	.LC24
	.word	.LC25
	.word	.LC26
	.word	.LC27
	.word	.LC28
	.word	.LC29
	.word	v1
	.word	.LC30
	.word	v2
	.word	.LC31
	.word	.LC32
	.word	.LC33
	.word	.LC34
	.word	v3
	.word	.LC35
	.word	.LC36
	.word	.LC37
	.word	.LC38
	.word	.LC39
	.word	v4
	.word	.LC40
	.word	v5
	.word	.LC41
	.word	v6
	.word	.LC42
	.word	a
	.word	v7
	.word	.LC43
	.word	.LC1
.L49:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55+200
	add	r3, r3, r2
	ldr	r2, .L55+176
	ldr	r2, [r2]
	add	r3, r3, r2
	mov	r0, r3
	bl	strlen
	mov	r3, r0
	cmp	r3, #1
	beq	.L50
	ldr	r2, .L55+180
	mov	r1, #123
	ldr	r0, .L55+212
	bl	printf
	bl	abort
.L50:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55+200
	add	r3, r3, r2
	ldr	r2, .L55+184
	ldr	r2, [r2]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L51
	ldr	r2, .L55+188
	mov	r1, #124
	ldr	r0, .L55+212
	bl	printf
	bl	abort
.L51:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55+200
	add	r3, r3, r2
	ldr	r2, .L55+192
	ldr	r2, [r2]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L52
	ldr	r2, .L55+196
	mov	r1, #125
	ldr	r0, .L55+212
	bl	printf
	bl	abort
.L52:
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, [fp, #-36]
	add	r3, r3, r2
	ldr	r2, .L55+200
	add	r3, r3, r2
	ldr	r2, .L55+204
	ldr	r2, [r2]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L54
	ldr	r2, .L55+208
	mov	r1, #126
	ldr	r0, .L55+212
	bl	printf
	bl	abort
.L54:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	test_array_ref, .-test_array_ref
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	test_array_ref
	mov	r3, #0
	mov	r0, r3
	pop	{fp, pc}
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
