	.file	"415866.c"
	.intel_syntax noprefix
	.text
	.globl	vm
	.bss
	.align 32
	.type	vm, @object
	.size	vm, 62048
vm:
	.zero	62048
	.text
	.globl	vm_forward
	.type	vm_forward, @function
vm_forward:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR vm[rip+61016]
	lea	rcx, 1[rax]
	movabs	rdx, 5037190915060954895
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 13
	mov	rdx, rcx
	sar	rdx, 63
	sub	rax, rdx
	imul	rdx, rax, 30000
	mov	rax, rcx
	sub	rax, rdx
	mov	QWORD PTR vm[rip+61016], rax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	vm_forward, .-vm_forward
	.globl	vm_backward
	.type	vm_backward, @function
vm_backward:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR vm[rip+61016]
	lea	rcx, 29999[rax]
	movabs	rdx, 5037190915060954895
	mov	rax, rcx
	imul	rdx
	mov	rax, rdx
	sar	rax, 13
	mov	rdx, rcx
	sar	rdx, 63
	sub	rax, rdx
	imul	rdx, rax, 30000
	mov	rax, rcx
	sub	rax, rdx
	mov	QWORD PTR vm[rip+61016], rax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	vm_backward, .-vm_backward
	.globl	vm_increment
	.type	vm_increment, @function
vm_increment:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR vm[rip+61016]
	lea	rdx, vm[rip+31016]
	movzx	edx, BYTE PTR [rax+rdx]
	add	edx, 1
	mov	ecx, edx
	lea	rdx, vm[rip+31016]
	mov	BYTE PTR [rax+rdx], cl
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	vm_increment, .-vm_increment
	.globl	vm_decrement
	.type	vm_decrement, @function
vm_decrement:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR vm[rip+61016]
	lea	rdx, vm[rip+31016]
	movzx	edx, BYTE PTR [rax+rdx]
	sub	edx, 1
	mov	ecx, edx
	lea	rdx, vm[rip+31016]
	mov	BYTE PTR [rax+rdx], cl
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	vm_decrement, .-vm_decrement
	.globl	vm_input
	.type	vm_input, @function
vm_input:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	getchar@PLT
	mov	edx, eax
	mov	rax, QWORD PTR vm[rip+61016]
	mov	ecx, edx
	lea	rdx, vm[rip+31016]
	mov	BYTE PTR [rax+rdx], cl
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	vm_input, .-vm_input
	.globl	vm_output
	.type	vm_output, @function
vm_output:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR vm[rip+61016]
	lea	rdx, vm[rip+31016]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	mov	edi, eax
	call	putchar@PLT
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	vm_output, .-vm_output
	.globl	vm_while_entry
	.type	vm_while_entry, @function
vm_while_entry:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR vm[rip+61016]
	lea	rdx, vm[rip+31016]
	movzx	eax, BYTE PTR [rax+rdx]
	test	al, al
	je	.L8
	mov	rax, QWORD PTR vm[rip+30000]
	lea	edx, -1[rax]
	mov	rax, QWORD PTR vm[rip+31008]
	mov	ecx, edx
	lea	rdx, vm[rip+30008]
	mov	BYTE PTR [rax+rdx], cl
	mov	rax, QWORD PTR vm[rip+31008]
	add	rax, 1
	mov	QWORD PTR vm[rip+31008], rax
	jmp	.L14
.L8:
	mov	DWORD PTR -4[rbp], 1
	mov	rax, QWORD PTR vm[rip+30000]
	add	rax, 1
	mov	QWORD PTR vm[rip+30000], rax
	jmp	.L10
.L13:
	mov	rax, QWORD PTR vm[rip+30000]
	lea	rdx, vm[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 91
	jne	.L11
	add	DWORD PTR -4[rbp], 1
	jmp	.L12
.L11:
	mov	rax, QWORD PTR vm[rip+30000]
	lea	rdx, vm[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	cmp	al, 93
	jne	.L12
	sub	DWORD PTR -4[rbp], 1
.L12:
	mov	rax, QWORD PTR vm[rip+30000]
	add	rax, 1
	mov	QWORD PTR vm[rip+30000], rax
.L10:
	mov	rax, QWORD PTR vm[rip+30000]
	lea	rdx, vm[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	test	al, al
	je	.L14
	cmp	DWORD PTR -4[rbp], 0
	jne	.L13
.L14:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	vm_while_entry, .-vm_while_entry
	.globl	vm_while_exit
	.type	vm_while_exit, @function
vm_while_exit:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	rax, QWORD PTR vm[rip+61016]
	lea	rdx, vm[rip+31016]
	movzx	eax, BYTE PTR [rax+rdx]
	test	al, al
	je	.L17
	mov	rax, QWORD PTR vm[rip+31008]
	sub	rax, 1
	mov	QWORD PTR vm[rip+31008], rax
	mov	rax, QWORD PTR vm[rip+31008]
	lea	rdx, vm[rip+30008]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	rax, al
	mov	QWORD PTR vm[rip+30000], rax
.L17:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	vm_while_exit, .-vm_while_exit
	.section	.rodata
.LC0:
	.string	"><+-.,[]"
	.text
	.globl	vm_setup
	.type	vm_setup, @function
vm_setup:
.LFB14:
	.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	edx, 62048
	mov	esi, 0
	lea	rdi, vm[rip]
	call	memset@PLT
	lea	rax, vm_forward[rip]
	mov	QWORD PTR vm[rip+61520], rax
	lea	rax, vm_backward[rip]
	mov	QWORD PTR vm[rip+61504], rax
	lea	rax, vm_increment[rip]
	mov	QWORD PTR vm[rip+61368], rax
	lea	rax, vm_decrement[rip]
	mov	QWORD PTR vm[rip+61384], rax
	lea	rax, vm_output[rip]
	mov	QWORD PTR vm[rip+61392], rax
	lea	rax, vm_input[rip]
	mov	QWORD PTR vm[rip+61376], rax
	lea	rax, vm_while_entry[rip]
	mov	QWORD PTR vm[rip+61752], rax
	lea	rax, vm_while_exit[rip]
	mov	QWORD PTR vm[rip+61768], rax
	mov	DWORD PTR -8[rbp], 0
	jmp	.L19
.L20:
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	lea	rdi, .LC0[rip]
	call	strchr@PLT
	test	rax, rax
	je	.L19
	mov	eax, DWORD PTR -4[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, vm[rip]
	mov	BYTE PTR [rax+rdx], cl
	add	DWORD PTR -8[rbp], 1
.L19:
	call	getchar@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], -1
	jne	.L20
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	vm_setup, .-vm_setup
	.globl	vm_run
	.type	vm_run, @function
vm_run:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	jmp	.L22
.L23:
	mov	rax, QWORD PTR vm[rip+30000]
	lea	rdx, vm[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movsx	eax, al
	cdqe
	add	rax, 7628
	lea	rdx, 0[0+rax*8]
	lea	rax, vm[rip]
	mov	rax, QWORD PTR [rdx+rax]
	call	rax
	mov	rax, QWORD PTR vm[rip+30000]
	add	rax, 1
	mov	QWORD PTR vm[rip+30000], rax
.L22:
	mov	rax, QWORD PTR vm[rip+30000]
	lea	rdx, vm[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	test	al, al
	jne	.L23
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	vm_run, .-vm_run
	.section	.rodata
.LC1:
	.string	"r"
	.text
	.globl	main
	.type	main, @function
main:
.LFB16:
	.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	DWORD PTR -4[rbp], edi
	mov	QWORD PTR -16[rbp], rsi
	cmp	DWORD PTR -4[rbp], 1
	jle	.L25
	mov	rdx, QWORD PTR stdin[rip]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC1[rip]
	mov	rdi, rax
	call	freopen@PLT
.L25:
	mov	eax, 0
	call	vm_setup
	mov	eax, 0
	call	vm_run
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.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	"415866.c"
	.text
	.comm	vm,61524,4
	.align	2
	.global	vm_forward
	.syntax unified
	.arm
	.fpu softvfp
	.type	vm_forward, %function
vm_forward:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L2
	add	r3, r3, #57344
	ldr	r3, [r3, #3664]
	add	r1, r3, #1
	ldr	r3, .L2+4
	smull	r2, r3, r1, r3
	asr	r2, r3, #13
	asr	r3, r1, #31
	sub	r2, r2, r3
	mov	r3, r2
	lsl	r3, r3, #5
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #4
	sub	r2, r2, r3
	lsl	r3, r2, #4
	mov	r2, r3
	sub	r2, r1, r2
	ldr	r3, .L2
	add	r3, r3, #57344
	str	r2, [r3, #3664]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L3:
	.align	2
.L2:
	.word	vm
	.word	1172812403
	.size	vm_forward, .-vm_forward
	.align	2
	.global	vm_backward
	.syntax unified
	.arm
	.fpu softvfp
	.type	vm_backward, %function
vm_backward:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L5
	add	r3, r3, #57344
	ldr	r3, [r3, #3664]
	add	r2, r3, #29952
	add	r2, r2, #47
	ldr	r3, .L5+4
	smull	r1, r3, r2, r3
	asr	r1, r3, #13
	asr	r3, r2, #31
	sub	r1, r1, r3
	mov	r3, r1
	lsl	r3, r3, #5
	sub	r3, r3, r1
	lsl	r3, r3, #2
	add	r3, r3, r1
	lsl	r1, r3, #4
	sub	r1, r1, r3
	lsl	r3, r1, #4
	mov	r1, r3
	sub	r1, r2, r1
	ldr	r3, .L5
	add	r3, r3, #57344
	str	r1, [r3, #3664]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L6:
	.align	2
.L5:
	.word	vm
	.word	1172812403
	.size	vm_backward, .-vm_backward
	.align	2
	.global	vm_increment
	.syntax unified
	.arm
	.fpu softvfp
	.type	vm_increment, %function
vm_increment:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L8
	add	r3, r3, #57344
	ldr	r2, [r3, #3664]
	ldr	r3, .L8
	add	r3, r3, r2
	add	r3, r3, #30976
	add	r3, r3, #32
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r1, r3, #255
	ldr	r3, .L8
	add	r3, r3, r2
	add	r3, r3, #30976
	add	r3, r3, #32
	mov	r2, r1
	strb	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L9:
	.align	2
.L8:
	.word	vm
	.size	vm_increment, .-vm_increment
	.align	2
	.global	vm_decrement
	.syntax unified
	.arm
	.fpu softvfp
	.type	vm_decrement, %function
vm_decrement:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L11
	add	r3, r3, #57344
	ldr	r2, [r3, #3664]
	ldr	r3, .L11
	add	r3, r3, r2
	add	r3, r3, #30976
	add	r3, r3, #32
	ldrb	r3, [r3]	@ zero_extendqisi2
	sub	r3, r3, #1
	and	r1, r3, #255
	ldr	r3, .L11
	add	r3, r3, r2
	add	r3, r3, #30976
	add	r3, r3, #32
	mov	r2, r1
	strb	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L12:
	.align	2
.L11:
	.word	vm
	.size	vm_decrement, .-vm_decrement
	.align	2
	.global	vm_input
	.syntax unified
	.arm
	.fpu softvfp
	.type	vm_input, %function
vm_input:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	getchar
	mov	r2, r0
	ldr	r3, .L14
	add	r3, r3, #57344
	ldr	r3, [r3, #3664]
	and	r1, r2, #255
	ldr	r2, .L14
	add	r3, r2, r3
	add	r3, r3, #30976
	add	r3, r3, #32
	mov	r2, r1
	strb	r2, [r3]
	nop
	pop	{fp, pc}
.L15:
	.align	2
.L14:
	.word	vm
	.size	vm_input, .-vm_input
	.align	2
	.global	vm_output
	.syntax unified
	.arm
	.fpu softvfp
	.type	vm_output, %function
vm_output:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L17
	add	r3, r3, #57344
	ldr	r3, [r3, #3664]
	ldr	r2, .L17
	add	r3, r2, r3
	add	r3, r3, #30976
	add	r3, r3, #32
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	bl	putchar
	nop
	pop	{fp, pc}
.L18:
	.align	2
.L17:
	.word	vm
	.size	vm_output, .-vm_output
	.align	2
	.global	vm_while_entry
	.syntax unified
	.arm
	.fpu softvfp
	.type	vm_while_entry, %function
vm_while_entry:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	ldr	r3, .L27
	add	r3, r3, #57344
	ldr	r3, [r3, #3664]
	ldr	r2, .L27
	add	r3, r2, r3
	add	r3, r3, #30976
	add	r3, r3, #32
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L20
	ldr	r3, .L27
	add	r3, r3, #28672
	ldr	r3, [r3, #1328]
	and	r2, r3, #255
	ldr	r3, .L27
	add	r3, r3, #28672
	ldr	r3, [r3, #2332]
	sub	r2, r2, #1
	and	r1, r2, #255
	ldr	r2, .L27
	add	r3, r2, r3
	add	r3, r3, #29952
	add	r3, r3, #52
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, .L27
	add	r3, r3, #28672
	ldr	r3, [r3, #2332]
	add	r3, r3, #1
	ldr	r2, .L27
	add	r2, r2, #28672
	str	r3, [r2, #2332]
	b	.L26
.L20:
	mov	r3, #1
	str	r3, [fp, #-8]
	ldr	r3, .L27
	add	r3, r3, #28672
	ldr	r3, [r3, #1328]
	add	r3, r3, #1
	ldr	r2, .L27
	add	r2, r2, #28672
	str	r3, [r2, #1328]
	b	.L22
.L25:
	ldr	r3, .L27
	add	r3, r3, #28672
	ldr	r3, [r3, #1328]
	ldr	r2, .L27
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #91
	bne	.L23
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	b	.L24
.L23:
	ldr	r3, .L27
	add	r3, r3, #28672
	ldr	r3, [r3, #1328]
	ldr	r2, .L27
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #93
	bne	.L24
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	str	r3, [fp, #-8]
.L24:
	ldr	r3, .L27
	add	r3, r3, #28672
	ldr	r3, [r3, #1328]
	add	r3, r3, #1
	ldr	r2, .L27
	add	r2, r2, #28672
	str	r3, [r2, #1328]
.L22:
	ldr	r3, .L27
	add	r3, r3, #28672
	ldr	r3, [r3, #1328]
	ldr	r2, .L27
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L26
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L25
.L26:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L28:
	.align	2
.L27:
	.word	vm
	.size	vm_while_entry, .-vm_while_entry
	.align	2
	.global	vm_while_exit
	.syntax unified
	.arm
	.fpu softvfp
	.type	vm_while_exit, %function
vm_while_exit:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L32
	add	r3, r3, #57344
	ldr	r3, [r3, #3664]
	ldr	r2, .L32
	add	r3, r2, r3
	add	r3, r3, #30976
	add	r3, r3, #32
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L31
	ldr	r3, .L32
	add	r3, r3, #28672
	ldr	r3, [r3, #2332]
	sub	r3, r3, #1
	ldr	r2, .L32
	add	r2, r2, #28672
	str	r3, [r2, #2332]
	ldr	r3, .L32
	add	r3, r3, #28672
	ldr	r3, [r3, #2332]
	ldr	r2, .L32
	add	r3, r2, r3
	add	r3, r3, #29952
	add	r3, r3, #52
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L32
	add	r3, r3, #28672
	str	r2, [r3, #1328]
.L31:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L33:
	.align	2
.L32:
	.word	vm
	.size	vm_while_exit, .-vm_while_exit
	.section	.rodata
	.align	2
.LC0:
	.ascii	"><+-.,[]\000"
	.text
	.align	2
	.global	vm_setup
	.syntax unified
	.arm
	.fpu softvfp
	.type	vm_setup, %function
vm_setup:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r2, .L37
	mov	r1, #0
	ldr	r0, .L37+4
	bl	memset
	ldr	r3, .L37+4
	add	r3, r3, #57344
	mov	r2, r3
	ldr	r3, .L37+8
	str	r3, [r2, #3916]
	ldr	r3, .L37+4
	add	r3, r3, #57344
	mov	r2, r3
	ldr	r3, .L37+12
	str	r3, [r2, #3908]
	ldr	r3, .L37+4
	add	r3, r3, #57344
	mov	r2, r3
	ldr	r3, .L37+16
	str	r3, [r2, #3840]
	ldr	r3, .L37+4
	add	r3, r3, #57344
	mov	r2, r3
	ldr	r3, .L37+20
	str	r3, [r2, #3848]
	ldr	r3, .L37+4
	add	r3, r3, #57344
	mov	r2, r3
	ldr	r3, .L37+24
	str	r3, [r2, #3852]
	ldr	r3, .L37+4
	add	r3, r3, #57344
	mov	r2, r3
	ldr	r3, .L37+28
	str	r3, [r2, #3844]
	ldr	r3, .L37+4
	add	r3, r3, #57344
	mov	r2, r3
	ldr	r3, .L37+32
	str	r3, [r2, #4032]
	ldr	r3, .L37+4
	add	r3, r3, #57344
	mov	r2, r3
	ldr	r3, .L37+36
	str	r3, [r2, #4040]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L35
.L36:
	ldr	r1, [fp, #-8]
	ldr	r0, .L37+40
	bl	strchr
	mov	r3, r0
	cmp	r3, #0
	beq	.L35
	ldr	r3, [fp, #-8]
	and	r1, r3, #255
	ldr	r2, .L37+4
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L35:
	bl	getchar
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	bne	.L36
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L38:
	.align	2
.L37:
	.word	61524
	.word	vm
	.word	vm_forward
	.word	vm_backward
	.word	vm_increment
	.word	vm_decrement
	.word	vm_output
	.word	vm_input
	.word	vm_while_entry
	.word	vm_while_exit
	.word	.LC0
	.size	vm_setup, .-vm_setup
	.align	2
	.global	vm_run
	.syntax unified
	.arm
	.fpu softvfp
	.type	vm_run, %function
vm_run:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	b	.L40
.L41:
	ldr	r3, .L42
	add	r3, r3, #28672
	ldr	r3, [r3, #1328]
	ldr	r2, .L42
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	ldr	r2, .L42
	add	r3, r3, #15232
	add	r3, r3, #20
	lsl	r3, r3, #2
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	blx	r3
	ldr	r3, .L42
	add	r3, r3, #28672
	ldr	r3, [r3, #1328]
	add	r3, r3, #1
	ldr	r2, .L42
	add	r2, r2, #28672
	str	r3, [r2, #1328]
.L40:
	ldr	r3, .L42
	add	r3, r3, #28672
	ldr	r3, [r3, #1328]
	ldr	r2, .L42
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L41
	nop
	nop
	pop	{fp, pc}
.L43:
	.align	2
.L42:
	.word	vm
	.size	vm_run, .-vm_run
	.section	.rodata
	.align	2
.LC1:
	.ascii	"r\000"
	.text
	.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
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	ble	.L45
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r2, .L47
	ldr	r2, [r2]
	ldr	r1, .L47+4
	mov	r0, r3
	bl	freopen
.L45:
	bl	vm_setup
	bl	vm_run
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L48:
	.align	2
.L47:
	.word	stdin
	.word	.LC1
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
