	.file	"extr_video_console.c_gc_putc_normal.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	gc_putc_normal, @function
gc_putc_normal:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	push	rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	mov	ebx, edi
	sub	rsp, 8
	.cfi_def_cfa_offset 32
	cmp	dil, 27
	ja	.L2
	cmp	dil, 6
	jbe	.L1
	sub	ebx, 7
	cmp	bl, 20
	ja	.L1
	lea	rdx, .L5[rip]
	movzx	ebx, bl
	movsx	rax, DWORD PTR [rdx+rbx*4]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L5:
	.long	.L1-.L5
	.long	.L12-.L5
	.long	.L11-.L5
	.long	.L10-.L5
	.long	.L10-.L5
	.long	.L10-.L5
	.long	.L9-.L5
	.long	.L8-.L5
	.long	.L7-.L5
	.long	.L1-.L5
	.long	.L1-.L5
	.long	.L1-.L5
	.long	.L1-.L5
	.long	.L1-.L5
	.long	.L1-.L5
	.long	.L1-.L5
	.long	.L1-.L5
	.long	.L1-.L5
	.long	.L1-.L5
	.long	.L1-.L5
	.long	.L4-.L5
	.text
.L4:
	mov	eax, DWORD PTR ESesc[rip]
	mov	DWORD PTR gc_vt100state[rip], eax
.L30:
	mov	DWORD PTR gc_hanging_cursor[rip], 0
.L1:
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	pop	rbx
	.cfi_def_cfa_offset 16
	pop	rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2:
	.cfi_restore_state
	cmp	dil, 127
	jne	.L13
.L12:
	mov	ecx, DWORD PTR gc_hanging_cursor[rip]
	test	ecx, ecx
	jne	.L30
	mov	eax, DWORD PTR gc_x[rip]
	test	eax, eax
	jle	.L1
.L17:
	sub	eax, 1
	mov	DWORD PTR gc_x[rip], eax
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L13:
	cmp	dil, 31
	jbe	.L1
	mov	eax, DWORD PTR gc_hanging_cursor[rip]
	mov	ebp, edi
	mov	esi, DWORD PTR gc_y[rip]
	mov	edi, DWORD PTR gc_x[rip]
	test	eax, eax
	je	.L21
	mov	DWORD PTR gc_x[rip], 0
	mov	edx, DWORD PTR gc_scrreg_bottom[rip]
	lea	eax, -1[rdx]
	cmp	eax, esi
	jle	.L32
	add	esi, 1
	xor	edi, edi
	mov	DWORD PTR gc_y[rip], esi
.L23:
	mov	DWORD PTR gc_hanging_cursor[rip], 0
.L21:
	lea	eax, -96[rbx]
	mov	ecx, DWORD PTR gc_attr[rip]
	cmp	al, 31
	ja	.L24
	mov	rdx, QWORD PTR gc_charset_select[rip]
	mov	rax, QWORD PTR gc_charset[rip]
	movzx	ebp, BYTE PTR [rax+rdx*4]
	add	ebp, ebx
.L24:
	movzx	edx, bpl
	call	gc_paint_char@PLT
	mov	eax, DWORD PTR vinfo[rip]
	mov	edx, DWORD PTR gc_x[rip]
	sub	eax, 1
	cmp	eax, edx
	je	.L33
	add	edx, 1
	mov	DWORD PTR gc_x[rip], edx
	jmp	.L1
.L11:
	mov	edx, DWORD PTR gc_buffer_tab_stops[rip]
	test	edx, edx
	jne	.L16
.L18:
	mov	eax, DWORD PTR vinfo[rip]
	cmp	eax, DWORD PTR gc_x[rip]
	jg	.L1
	jmp	.L17
.L10:
	mov	edx, DWORD PTR gc_scrreg_bottom[rip]
	mov	eax, DWORD PTR gc_y[rip]
	lea	ecx, -1[rdx]
	cmp	ecx, eax
	jle	.L34
	add	eax, 1
	mov	DWORD PTR gc_y[rip], eax
	jmp	.L1
.L9:
	mov	DWORD PTR gc_x[rip], 0
	mov	DWORD PTR gc_hanging_cursor[rip], 0
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	pop	rbx
	.cfi_def_cfa_offset 16
	pop	rbp
	.cfi_def_cfa_offset 8
	ret
.L8:
	.cfi_restore_state
	mov	QWORD PTR gc_charset_select[rip], 1
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	pop	rbx
	.cfi_def_cfa_offset 16
	pop	rbp
	.cfi_def_cfa_offset 8
	ret
.L7:
	.cfi_restore_state
	mov	QWORD PTR gc_charset_select[rip], 0
	add	rsp, 8
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	pop	rbx
	.cfi_def_cfa_offset 16
	pop	rbp
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L35:
	.cfi_restore_state
	add	edi, 1
	mov	DWORD PTR gc_x[rip], edi
	call	gc_is_tab_stop@PLT
	test	eax, eax
	jne	.L18
.L16:
	mov	eax, DWORD PTR vinfo[rip]
	mov	edi, DWORD PTR gc_x[rip]
	cmp	eax, edi
	jg	.L35
	jmp	.L17
	.p2align 4,,10
	.p2align 3
.L33:
	mov	eax, DWORD PTR gc_wrap_mode[rip]
	mov	DWORD PTR gc_hanging_cursor[rip], eax
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L34:
	mov	esi, DWORD PTR gc_scrreg_top[rip]
	mov	edi, 1
	call	gc_scroll_up@PLT
	mov	eax, DWORD PTR gc_scrreg_bottom[rip]
	sub	eax, 1
	mov	DWORD PTR gc_y[rip], eax
	jmp	.L1
.L32:
	mov	esi, DWORD PTR gc_scrreg_top[rip]
	mov	edi, 1
	call	gc_scroll_up@PLT
	mov	eax, DWORD PTR gc_scrreg_bottom[rip]
	mov	edi, DWORD PTR gc_x[rip]
	lea	esi, -1[rax]
	mov	DWORD PTR gc_y[rip], esi
	jmp	.L23
	.cfi_endproc
.LFE0:
	.size	gc_putc_normal, .-gc_putc_normal
	.comm	vinfo,4,4
	.comm	gc_y,4,4
	.comm	gc_x,4,4
	.comm	gc_wrap_mode,4,4
	.comm	gc_vt100state,4,4
	.comm	gc_scrreg_top,4,4
	.comm	gc_scrreg_bottom,4,4
	.comm	gc_hanging_cursor,4,4
	.comm	gc_charset_select,8,8
	.comm	gc_charset,8,8
	.comm	gc_buffer_tab_stops,4,4
	.comm	gc_attr,4,4
	.comm	ESesc,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_video_console.c_gc_putc_normal.c"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	gc_putc_normal, %function
gc_putc_normal:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	cmp	r0, #27
	push	{r4, r5, r6, r7, r8, lr}
	mov	r4, r0
	bhi	.L2
	cmp	r0, #6
	popls	{r4, r5, r6, r7, r8, pc}
	sub	r4, r0, #7
	cmp	r4, #20
	ldrls	pc, [pc, r4, asl #2]
	b	.L1
.L5:
	.word	.L1
	.word	.L12
	.word	.L11
	.word	.L10
	.word	.L10
	.word	.L10
	.word	.L9
	.word	.L8
	.word	.L7
	.word	.L1
	.word	.L1
	.word	.L1
	.word	.L1
	.word	.L1
	.word	.L1
	.word	.L1
	.word	.L1
	.word	.L1
	.word	.L1
	.word	.L1
	.word	.L4
.L1:
	pop	{r4, r5, r6, r7, r8, pc}
.L2:
	cmp	r0, #127
	bne	.L13
.L12:
	ldr	r3, .L34
	ldr	r2, [r3]
	cmp	r2, #0
	beq	.L14
	mov	r2, #0
	str	r2, [r3]
	pop	{r4, r5, r6, r7, r8, pc}
.L13:
	cmp	r0, #31
	popls	{r4, r5, r6, r7, r8, pc}
	ldr	r6, .L34
	ldr	r7, .L34+4
	ldr	r3, [r6]
	ldr	r1, [r7]
	cmp	r3, #0
	bne	.L20
	ldr	r5, .L34+8
	ldr	r0, [r5]
.L21:
	sub	r3, r4, #96
	cmp	r3, #31
	bhi	.L24
	ldr	r2, .L34+12
	ldr	r3, .L34+16
	ldr	r2, [r2]
	ldr	r3, [r3]
	ldr	r3, [r3, r2, lsl #2]
	add	r4, r4, r3
	and	r4, r4, #255
.L24:
	ldr	r3, .L34+20
	mov	r2, r4
	ldr	r3, [r3]
	bl	gc_paint_char
	ldr	r3, .L34+24
	ldr	r2, [r5]
	ldr	r3, [r3]
	sub	r3, r3, #1
	cmp	r3, r2
	addne	r2, r2, #1
	strne	r2, [r5]
	ldreq	r3, .L34+28
	ldreq	r3, [r3]
	streq	r3, [r6]
	pop	{r4, r5, r6, r7, r8, pc}
.L4:
	mov	r2, #0
	ldr	r3, .L34+32
	ldr	r1, .L34+36
	ldr	r0, [r3]
	ldr	r3, .L34
	str	r0, [r1]
	str	r2, [r3]
	pop	{r4, r5, r6, r7, r8, pc}
.L11:
	ldr	r3, .L34+40
	ldr	r5, .L34+8
	ldr	r3, [r3]
	ldr	r4, .L34+24
	cmp	r3, #0
	bne	.L16
.L18:
	ldr	r2, [r4]
	ldr	r3, [r5]
	cmp	r2, r3
	popgt	{r4, r5, r6, r7, r8, pc}
.L17:
	sub	r2, r2, #1
	str	r2, [r5]
	pop	{r4, r5, r6, r7, r8, pc}
.L10:
	ldr	r5, .L34+44
	ldr	r4, .L34+4
	ldr	r2, [r5]
	ldr	r3, [r4]
	sub	r1, r2, #1
	cmp	r1, r3
	ble	.L31
	add	r3, r3, #1
	str	r3, [r4]
	pop	{r4, r5, r6, r7, r8, pc}
.L9:
	mov	r3, #0
	ldr	r1, .L34+8
	ldr	r2, .L34
	str	r3, [r1]
	str	r3, [r2]
	pop	{r4, r5, r6, r7, r8, pc}
.L8:
	mov	r2, #1
	ldr	r3, .L34+12
	str	r2, [r3]
	pop	{r4, r5, r6, r7, r8, pc}
.L7:
	mov	r2, #0
	ldr	r3, .L34+12
	str	r2, [r3]
	pop	{r4, r5, r6, r7, r8, pc}
.L32:
	str	r0, [r5]
	bl	gc_is_tab_stop
	cmp	r0, #0
	bne	.L18
.L16:
	ldr	r3, [r5]
	ldr	r2, [r4]
	add	r0, r3, #1
	cmp	r2, r3
	bgt	.L32
	b	.L17
.L14:
	ldr	r2, .L34+8
	ldr	r3, [r2]
	cmp	r3, #0
	subgt	r3, r3, #1
	strgt	r3, [r2]
	pop	{r4, r5, r6, r7, r8, pc}
.L20:
	mov	r0, #0
	ldr	r8, .L34+44
	ldr	r5, .L34+8
	ldr	r2, [r8]
	str	r0, [r5]
	sub	r3, r2, #1
	cmp	r3, r1
	addgt	r1, r1, #1
	strgt	r1, [r7]
	ble	.L33
.L23:
	mov	r3, #0
	str	r3, [r6]
	b	.L21
.L31:
	ldr	r3, .L34+48
	mov	r0, #1
	ldr	r1, [r3]
	bl	gc_scroll_up
	ldr	r3, [r5]
	sub	r3, r3, #1
	str	r3, [r4]
	pop	{r4, r5, r6, r7, r8, pc}
.L33:
	ldr	r3, .L34+48
	mov	r0, #1
	ldr	r1, [r3]
	bl	gc_scroll_up
	ldr	r1, [r8]
	ldr	r0, [r5]
	sub	r1, r1, #1
	str	r1, [r7]
	b	.L23
.L35:
	.align	2
.L34:
	.word	gc_hanging_cursor
	.word	gc_y
	.word	gc_x
	.word	gc_charset_select
	.word	gc_charset
	.word	gc_attr
	.word	vinfo
	.word	gc_wrap_mode
	.word	ESesc
	.word	gc_vt100state
	.word	gc_buffer_tab_stops
	.word	gc_scrreg_bottom
	.word	gc_scrreg_top
	.size	gc_putc_normal, .-gc_putc_normal
	.comm	vinfo,4,4
	.comm	gc_y,4,4
	.comm	gc_x,4,4
	.comm	gc_wrap_mode,4,4
	.comm	gc_vt100state,4,4
	.comm	gc_scrreg_top,4,4
	.comm	gc_scrreg_bottom,4,4
	.comm	gc_hanging_cursor,4,4
	.comm	gc_charset_select,4,4
	.comm	gc_charset,4,4
	.comm	gc_buffer_tab_stops,4,4
	.comm	gc_attr,4,4
	.comm	ESesc,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
