	.file	"extr_engine.c_step.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	step, @function
step:
.LFB0:
	.cfi_startproc
	endbr64
	push	r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	push	r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	mov	r14, rdx
	push	r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	mov	r13, rdi
	xor	edi, edi
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	mov	r12d, r9d
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	push	rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	mov	rbx, rsi
	sub	rsp, 24
	.cfi_def_cfa_offset 80
	mov	DWORD PTR 12[rsp], ecx
	mov	DWORD PTR 8[rsp], r8d
	call	INIT@PLT
	cmp	rbx, r14
	je	.L2
	lea	rbp, .L5[rip]
	.p2align 4,,10
	.p2align 3
.L25:
	mov	rax, QWORD PTR 0[r13]
	mov	r15d, DWORD PTR [rax+rbx*4]
	mov	edi, r15d
	call	OP@PLT
	add	eax, -128
	cmp	eax, 19
	ja	.L3
	movsx	rax, DWORD PTR 0[rbp+rax*4]
	add	rax, rbp
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L5:
	.long	.L7-.L5
	.long	.L18-.L5
	.long	.L7-.L5
	.long	.L7-.L5
	.long	.L7-.L5
	.long	.L17-.L5
	.long	.L7-.L5
	.long	.L16-.L5
	.long	.L15-.L5
	.long	.L7-.L5
	.long	.L14-.L5
	.long	.L13-.L5
	.long	.L12-.L5
	.long	.L11-.L5
	.long	.L10-.L5
	.long	.L9-.L5
	.long	.L8-.L5
	.long	.L7-.L5
	.long	.L6-.L5
	.long	.L4-.L5
	.text
	.p2align 4,,10
	.p2align 3
.L7:
	mov	edx, 1
	mov	esi, r12d
	mov	edi, r12d
	call	FWD@PLT
.L19:
	add	rbx, 1
	xor	edi, edi
	call	INC@PLT
	cmp	r14, rbx
	jne	.L25
.L2:
	add	rsp, 24
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	mov	eax, r12d
	pop	rbx
	.cfi_def_cfa_offset 48
	pop	rbp
	.cfi_def_cfa_offset 40
	pop	r12
	.cfi_def_cfa_offset 32
	pop	r13
	.cfi_def_cfa_offset 24
	pop	r14
	.cfi_def_cfa_offset 16
	pop	r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L6:
	.cfi_restore_state
	mov	rax, QWORD PTR 8[r13]
	mov	edi, r15d
	mov	QWORD PTR [rsp], rax
	call	OPND@PLT
	mov	edi, DWORD PTR 8[rsp]
	mov	r15d, eax
	call	NONCHAR@PLT
	test	eax, eax
	jne	.L19
	mov	rcx, QWORD PTR [rsp]
	movsx	rax, r15d
	mov	esi, DWORD PTR 8[rsp]
	lea	rdi, [rcx+rax*4]
	call	CHIN@PLT
	test	eax, eax
	je	.L19
	jmp	.L42
	.p2align 4,,10
	.p2align 3
.L8:
	mov	eax, DWORD PTR 8[rsp]
	cmp	DWORD PTR BOL[rip], eax
	je	.L42
.L46:
	cmp	DWORD PTR BOLEOL[rip], eax
	jne	.L19
.L42:
	mov	esi, DWORD PTR 12[rsp]
	mov	edx, 1
	mov	edi, r12d
	call	FWD@PLT
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L9:
	mov	eax, DWORD PTR 8[rsp]
	cmp	DWORD PTR BOW[rip], eax
	jne	.L19
	jmp	.L42
	.p2align 4,,10
	.p2align 3
.L10:
	mov	edi, DWORD PTR 8[rsp]
	call	NONCHAR@PLT
	mov	edi, 1
	test	eax, eax
	jne	.L48
.L20:
	call	assert@PLT
	mov	edi, r15d
	call	OPND@PLT
	cmp	eax, DWORD PTR 8[rsp]
	jne	.L19
	jmp	.L42
	.p2align 4,,10
	.p2align 3
.L11:
	mov	edx, 1
	mov	esi, r12d
	mov	edi, r12d
	call	FWD@PLT
.L44:
	mov	rdx, QWORD PTR 0[r13]
	mov	edi, r15d
	mov	QWORD PTR [rsp], rdx
	call	OPND@PLT
	mov	rdx, QWORD PTR [rsp]
	cdqe
	add	rax, rbx
	mov	edi, DWORD PTR [rdx+rax*4]
	call	OP@PLT
	xor	edi, edi
	cmp	eax, 135
	sete	dil
	call	assert@PLT
.L43:
	mov	edi, r15d
	call	OPND@PLT
	mov	esi, r12d
	mov	edi, r12d
	mov	edx, eax
	call	FWD@PLT
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L12:
	lea	rax, -1[r14]
	xor	edi, edi
	cmp	rax, rbx
	sete	dil
	call	assert@PLT
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L13:
	mov	eax, DWORD PTR 8[rsp]
	cmp	DWORD PTR EOL[rip], eax
	jne	.L46
	jmp	.L42
	.p2align 4,,10
	.p2align 3
.L14:
	mov	eax, DWORD PTR 8[rsp]
	cmp	DWORD PTR EOW[rip], eax
	jne	.L19
	jmp	.L42
	.p2align 4,,10
	.p2align 3
.L15:
	xor	edi, edi
	mov	esi, edi
	mov	edi, r12d
	call	ISSTATEIN@PLT
	test	eax, eax
	je	.L19
	mov	QWORD PTR [rsp], 1
	jmp	.L23
	.p2align 4,,10
	.p2align 3
.L24:
	mov	edi, r15d
	call	OP@PLT
	xor	edi, edi
	cmp	eax, 135
	sete	dil
	call	assert@PLT
	mov	edi, r15d
	call	OPND@PLT
	cdqe
	add	QWORD PTR [rsp], rax
.L23:
	mov	rax, QWORD PTR [rsp]
	lea	rdx, [rax+rbx]
	mov	rax, QWORD PTR 0[r13]
	mov	r15d, DWORD PTR [rax+rdx*4]
	mov	edi, r15d
	call	OP@PLT
	cmp	eax, 130
	jne	.L24
	mov	edx, DWORD PTR [rsp]
	mov	esi, r12d
	mov	edi, r12d
	add	edx, 1
	call	FWD@PLT
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L16:
	mov	edx, 1
	mov	esi, r12d
	mov	edi, r12d
	call	FWD@PLT
	mov	rdx, QWORD PTR 0[r13]
	mov	edi, r15d
	mov	QWORD PTR [rsp], rdx
	call	OPND@PLT
	mov	rdx, QWORD PTR [rsp]
	cdqe
	add	rax, rbx
	mov	edi, DWORD PTR [rdx+rax*4]
	call	OP@PLT
	cmp	eax, 130
	je	.L19
	jmp	.L44
	.p2align 4,,10
	.p2align 3
.L17:
	mov	edx, 1
	mov	esi, r12d
	mov	edi, r12d
	call	FWD@PLT
	jmp	.L43
	.p2align 4,,10
	.p2align 3
.L18:
	mov	edx, 1
	mov	esi, r12d
	mov	edi, r12d
	call	FWD@PLT
	mov	edi, r15d
	call	OPND@PLT
	mov	edi, r12d
	mov	esi, eax
	call	ISSETBACK@PLT
	mov	edi, r15d
	mov	DWORD PTR [rsp], eax
	call	OPND@PLT
	mov	esi, r12d
	mov	edi, r12d
	mov	edx, eax
	call	BACK@PLT
	mov	ecx, DWORD PTR [rsp]
	test	ecx, ecx
	jne	.L19
	mov	edi, r15d
	call	OPND@PLT
	mov	edi, r12d
	mov	esi, eax
	call	ISSETBACK@PLT
	test	eax, eax
	je	.L19
	mov	edi, r15d
	call	OPND@PLT
	xor	edi, edi
	add	eax, 1
	cdqe
	sub	rbx, rax
	mov	rsi, rbx
	call	INIT@PLT
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L4:
	mov	edi, DWORD PTR 8[rsp]
	call	NONCHAR@PLT
	test	eax, eax
	jne	.L19
	jmp	.L42
.L3:
	mov	edi, DWORD PTR nope[rip]
	call	assert@PLT
	jmp	.L19
	.p2align 4,,10
	.p2align 3
.L48:
	mov	edi, r15d
	call	OPND@PLT
	xor	edi, edi
	cmp	eax, DWORD PTR 8[rsp]
	setne	dil
	jmp	.L20
	.cfi_endproc
.LFE0:
	.size	step, .-step
	.comm	nope,4,4
	.comm	EOW,4,4
	.comm	EOL,4,4
	.comm	BOW,4,4
	.comm	BOLEOL,4,4
	.comm	BOL,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.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, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_engine.c_step.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	step, %function
step:
	@ args = 8, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
	mov	r7, r2
	mov	r4, r1
	mov	r6, r0
	mov	r0, #0
	mov	r9, r3
	ldr	r8, [sp, #40]
	ldr	r5, [sp, #44]
	bl	INIT
	cmp	r4, r7
	beq	.L2
.L25:
	ldr	r3, [r6]
	ldr	r10, [r3, r4, lsl #2]
	mov	r0, r10
	bl	OP
	sub	r0, r0, #128
	cmp	r0, #19
	ldrls	pc, [pc, r0, asl #2]
	b	.L3
.L5:
	.word	.L7
	.word	.L18
	.word	.L7
	.word	.L7
	.word	.L7
	.word	.L17
	.word	.L7
	.word	.L16
	.word	.L15
	.word	.L7
	.word	.L14
	.word	.L13
	.word	.L12
	.word	.L11
	.word	.L10
	.word	.L9
	.word	.L8
	.word	.L7
	.word	.L6
	.word	.L4
.L7:
	mov	r2, #1
	mov	r1, r5
	mov	r0, r5
	bl	FWD
.L19:
	mov	r0, #0
	add	r4, r4, #1
	bl	INC
	cmp	r7, r4
	bne	.L25
.L2:
	mov	r0, r5
	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L4:
	mov	r0, r8
	bl	NONCHAR
	cmp	r0, #0
	bne	.L19
	b	.L41
.L6:
	mov	r0, r10
	ldr	fp, [r6, #4]
	bl	OPND
	mov	r10, r0
	mov	r0, r8
	bl	NONCHAR
	cmp	r0, #0
	bne	.L19
	mov	r1, r8
	add	r0, fp, r10, lsl #2
	bl	CHIN
	cmp	r0, #0
	beq	.L19
	b	.L41
.L8:
	ldr	r3, .L48
	ldr	r3, [r3]
	cmp	r3, r8
	beq	.L41
.L45:
	ldr	r3, .L48+4
	ldr	r3, [r3]
	cmp	r3, r8
	bne	.L19
.L41:
	mov	r2, #1
	mov	r1, r9
	mov	r0, r5
	bl	FWD
	b	.L19
.L9:
	ldr	r3, .L48+8
	ldr	r3, [r3]
	cmp	r3, r8
	bne	.L19
	b	.L41
.L10:
	mov	r0, r8
	bl	NONCHAR
	cmp	r0, #0
	moveq	r0, #1
	bne	.L47
.L20:
	bl	assert
	mov	r0, r10
	bl	OPND
	cmp	r0, r8
	bne	.L19
	b	.L41
.L11:
	mov	r2, #1
	mov	r1, r5
	mov	r0, r5
	bl	FWD
.L43:
	mov	r0, r10
	ldr	fp, [r6]
	bl	OPND
	add	r0, r0, r4
	ldr	r0, [fp, r0, lsl #2]
	bl	OP
	sub	r0, r0, #135
	clz	r0, r0
	lsr	r0, r0, #5
	bl	assert
.L42:
	mov	r0, r10
	bl	OPND
	mov	r1, r5
	mov	r2, r0
	mov	r0, r5
	bl	FWD
	b	.L19
.L12:
	sub	r0, r7, #1
	sub	r0, r0, r4
	clz	r0, r0
	lsr	r0, r0, #5
	bl	assert
	b	.L19
.L13:
	ldr	r3, .L48+12
	ldr	r3, [r3]
	cmp	r3, r8
	bne	.L45
	b	.L41
.L14:
	ldr	r3, .L48+16
	ldr	r3, [r3]
	cmp	r3, r8
	bne	.L19
	b	.L41
.L15:
	mov	r1, #0
	mov	r0, r5
	bl	ISSTATEIN
	cmp	r0, #0
	beq	.L19
	mov	fp, #1
	b	.L23
.L24:
	mov	r0, r10
	bl	OP
	sub	r0, r0, #135
	clz	r0, r0
	lsr	r0, r0, #5
	bl	assert
	mov	r0, r10
	bl	OPND
	add	fp, fp, r0
.L23:
	ldr	r3, [r6]
	add	r2, fp, r4
	ldr	r10, [r3, r2, lsl #2]
	mov	r0, r10
	bl	OP
	cmp	r0, #130
	bne	.L24
	mov	r1, r5
	mov	r0, r5
	add	r2, fp, #1
	bl	FWD
	b	.L19
.L16:
	mov	r2, #1
	mov	r1, r5
	mov	r0, r5
	bl	FWD
	mov	r0, r10
	ldr	fp, [r6]
	bl	OPND
	add	r0, r0, r4
	ldr	r0, [fp, r0, lsl #2]
	bl	OP
	cmp	r0, #130
	beq	.L19
	b	.L43
.L17:
	mov	r2, #1
	mov	r1, r5
	mov	r0, r5
	bl	FWD
	b	.L42
.L18:
	mov	r2, #1
	mov	r1, r5
	mov	r0, r5
	bl	FWD
	mov	r0, r10
	bl	OPND
	mov	r1, r0
	mov	r0, r5
	bl	ISSETBACK
	mov	fp, r0
	mov	r0, r10
	bl	OPND
	mov	r1, r5
	mov	r2, r0
	mov	r0, r5
	bl	BACK
	cmp	fp, #0
	bne	.L19
	mov	r0, r10
	bl	OPND
	mov	r1, r0
	mov	r0, r5
	bl	ISSETBACK
	cmp	r0, #0
	beq	.L19
	mov	r0, r10
	bl	OPND
	add	r3, r0, #1
	sub	r4, r4, r3
	mov	r1, r4
	mov	r0, #0
	bl	INIT
	b	.L19
.L47:
	mov	r0, r10
	bl	OPND
	subs	r0, r0, r8
	movne	r0, #1
	b	.L20
.L3:
	ldr	r3, .L48+20
	ldr	r0, [r3]
	bl	assert
	b	.L19
.L49:
	.align	2
.L48:
	.word	BOL
	.word	BOLEOL
	.word	BOW
	.word	EOL
	.word	EOW
	.word	nope
	.size	step, .-step
	.comm	nope,4,4
	.comm	EOW,4,4
	.comm	EOL,4,4
	.comm	BOW,4,4
	.comm	BOLEOL,4,4
	.comm	BOL,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
