	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_c_delbefore                    ## -- Begin function c_delbefore
	.p2align	4, 0x90
_c_delbefore:                           ## @c_delbefore
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	_Cursor@GOTPCREL(%rip), %r8
	movl	(%r8), %eax
	movq	_InputBuf@GOTPCREL(%rip), %rcx
	movl	%eax, %r9d
	subl	(%rcx), %r9d
	cmpl	%edi, %r9d
	cmovgel	%edi, %r9d
	testl	%r9d, %r9d
	jle	LBB0_35
## %bb.1:
	movq	_VImode@GOTPCREL(%rip), %rcx
	cmpq	$0, (%rcx)
	je	LBB0_17
## %bb.2:
	movq	_UndoBuf@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rdi
	movq	_TCSHOP_INSERT@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	movq	_UndoAction@GOTPCREL(%rip), %rdx
	movl	%ecx, (%rdx)
	movq	_UndoSize@GOTPCREL(%rip), %rcx
	movl	%r9d, (%rcx)
	subl	%r9d, %eax
	movq	_UndoPtr@GOTPCREL(%rip), %rcx
	movl	%eax, (%rcx)
	movslq	%eax, %rcx
	movq	_LastChar@GOTPCREL(%rip), %rax
	movq	(%rax), %r15
	movl	%r9d, %r14d
	cmpq	%rcx, %r15
	jb	LBB0_30
## %bb.3:
	leaq	4(%rcx), %rdx
	leaq	1(%r15), %rax
	cmpq	%rax, %rdx
	movq	%rax, %r12
	cmovaq	%rdx, %r12
	movq	%rcx, %rsi
	notq	%rsi
	addq	%rsi, %r12
	cmpq	$28, %r12
	jb	LBB0_16
## %bb.4:
	cmpq	%rax, %rdx
	cmovaq	%rdx, %rax
	addq	%rsi, %rax
	shrq	$2, %rax
	leaq	(%rdi,%rax,4), %rdx
	addq	$4, %rdx
	leaq	(%rcx,%rax,4), %r11
	addq	$4, %r11
	leaq	(%rcx,%r14,4), %rbx
	addq	%r14, %rax
	leaq	(%rcx,%rax,4), %rsi
	addq	$4, %rsi
	cmpq	%r11, %rdi
	setb	%r13b
	cmpq	%rdx, %rcx
	setb	%r8b
	cmpq	%rsi, %rdi
	setb	%al
	cmpq	%rdx, %rbx
	setb	%r10b
	cmpq	%rsi, %rcx
	setb	%dl
	cmpq	%r11, %rbx
	setb	%sil
	testb	%r8b, %r13b
	jne	LBB0_5
## %bb.6:
	andb	%r10b, %al
	movq	_Cursor@GOTPCREL(%rip), %r8
	jne	LBB0_16
## %bb.7:
	andb	%sil, %dl
	jne	LBB0_16
## %bb.8:
	shrq	$2, %r12
	incq	%r12
	movq	%r12, %r10
	andq	$-8, %r10
	leaq	-8(%r10), %rax
	movq	%rax, %r11
	shrq	$3, %r11
	incq	%r11
	testq	%rax, %rax
	je	LBB0_9
## %bb.10:
	movabsq	$4611686018427387900, %rdx      ## imm = 0x3FFFFFFFFFFFFFFC
	orq	$2, %rdx
	andq	%r11, %rdx
	leaq	48(%rcx), %rsi
	leaq	(%rcx,%r14,4), %rax
	addq	$48, %rax
	xorl	%ebx, %ebx
	.p2align	4, 0x90
LBB0_11:                                ## =>This Inner Loop Header: Depth=1
	movups	-48(%rsi,%rbx,4), %xmm0
	movups	-32(%rsi,%rbx,4), %xmm1
	movups	%xmm0, (%rdi,%rbx,4)
	movups	%xmm1, 16(%rdi,%rbx,4)
	movups	-48(%rax,%rbx,4), %xmm0
	movups	-32(%rax,%rbx,4), %xmm1
	movups	%xmm0, -48(%rsi,%rbx,4)
	movups	%xmm1, -32(%rsi,%rbx,4)
	movups	-16(%rsi,%rbx,4), %xmm0
	movups	(%rsi,%rbx,4), %xmm1
	movups	%xmm0, 32(%rdi,%rbx,4)
	movups	%xmm1, 48(%rdi,%rbx,4)
	movups	-16(%rax,%rbx,4), %xmm0
	movups	(%rax,%rbx,4), %xmm1
	movups	%xmm0, -16(%rsi,%rbx,4)
	movups	%xmm1, (%rsi,%rbx,4)
	addq	$16, %rbx
	addq	$-2, %rdx
	jne	LBB0_11
	jmp	LBB0_12
LBB0_17:
	subl	%r9d, %eax
	movslq	%eax, %rcx
	movl	%r9d, %r14d
	movq	_LastChar@GOTPCREL(%rip), %rax
	movq	(%rax), %r15
	leaq	(%rcx,%r14,4), %rdi
	cmpq	%r15, %rdi
	ja	LBB0_30
## %bb.18:
	leaq	(,%r14,4), %r12
	leaq	(%rcx,%r14,4), %rax
	addq	$4, %rax
	leaq	1(%r15), %rdx
	cmpq	%rdx, %rax
	cmovaq	%rax, %rdx
	movq	%rcx, %r10
	notq	%r10
	addq	%rdx, %r10
	subq	%r12, %r10
	cmpq	$28, %r10
	jb	LBB0_29
## %bb.19:
	movq	%r12, %rax
	negq	%rax
	cmpq	$32, %rax
	jb	LBB0_29
## %bb.20:
	shrq	$2, %r10
	incq	%r10
	movq	%r10, %r11
	andq	$-8, %r11
	leaq	-8(%r11), %rax
	movq	%rax, %rbx
	shrq	$3, %rbx
	incq	%rbx
	movl	%ebx, %esi
	andl	$3, %esi
	cmpq	$24, %rax
	jae	LBB0_22
## %bb.21:
	xorl	%edx, %edx
	jmp	LBB0_24
LBB0_22:
	andq	$-4, %rbx
	leaq	(%rcx,%r14,4), %rax
	addq	$112, %rax
	xorl	%edx, %edx
	.p2align	4, 0x90
LBB0_23:                                ## =>This Inner Loop Header: Depth=1
	movups	-112(%rax,%rdx,4), %xmm0
	movups	-96(%rax,%rdx,4), %xmm1
	movups	%xmm0, (%rcx,%rdx,4)
	movups	%xmm1, 16(%rcx,%rdx,4)
	movups	-80(%rax,%rdx,4), %xmm0
	movups	-64(%rax,%rdx,4), %xmm1
	movups	%xmm0, 32(%rcx,%rdx,4)
	movups	%xmm1, 48(%rcx,%rdx,4)
	movups	-48(%rax,%rdx,4), %xmm0
	movups	-32(%rax,%rdx,4), %xmm1
	movups	%xmm0, 64(%rcx,%rdx,4)
	movups	%xmm1, 80(%rcx,%rdx,4)
	movups	-16(%rax,%rdx,4), %xmm0
	movups	(%rax,%rdx,4), %xmm1
	movups	%xmm0, 96(%rcx,%rdx,4)
	movups	%xmm1, 112(%rcx,%rdx,4)
	addq	$32, %rdx
	addq	$-4, %rbx
	jne	LBB0_23
LBB0_24:
	testq	%rsi, %rsi
	je	LBB0_27
## %bb.25:
	leaq	(%rcx,%rdx,4), %rax
	addq	$16, %rax
	.p2align	4, 0x90
LBB0_26:                                ## =>This Inner Loop Header: Depth=1
	movups	-16(%rax,%r12), %xmm0
	movups	(%rax,%r12), %xmm1
	movups	%xmm0, -16(%rax)
	movups	%xmm1, (%rax)
	addq	$32, %rax
	decq	%rsi
	jne	LBB0_26
LBB0_27:
	cmpq	%r11, %r10
	je	LBB0_30
## %bb.28:
	leaq	(%rdi,%r11,4), %rdi
	leaq	(%rcx,%r11,4), %rcx
	.p2align	4, 0x90
LBB0_29:                                ## =>This Inner Loop Header: Depth=1
	movl	(%rdi), %eax
	movl	%eax, (%rcx)
	leaq	(%rcx,%r14,4), %rdi
	addq	$4, %rdi
	leaq	(%rcx,%r12), %rax
	addq	$4, %rax
	addq	$4, %rcx
	cmpq	%r15, %rax
	jbe	LBB0_29
	jmp	LBB0_30
LBB0_9:
	xorl	%ebx, %ebx
LBB0_12:
	testb	$1, %r11b
	je	LBB0_14
## %bb.13:
	leaq	(%rcx,%rbx,4), %rax
	movups	(%rcx,%rbx,4), %xmm0
	movups	16(%rcx,%rbx,4), %xmm1
	movups	%xmm0, (%rdi,%rbx,4)
	movups	%xmm1, 16(%rdi,%rbx,4)
	movups	(%rax,%r14,4), %xmm0
	movups	16(%rax,%r14,4), %xmm1
	movups	%xmm0, (%rcx,%rbx,4)
	movups	%xmm1, 16(%rcx,%rbx,4)
LBB0_14:
	cmpq	%r10, %r12
	je	LBB0_30
## %bb.15:
	leaq	(%rdi,%r10,4), %rdi
	leaq	(%rcx,%r10,4), %rcx
	jmp	LBB0_16
LBB0_5:
	movq	_Cursor@GOTPCREL(%rip), %r8
	.p2align	4, 0x90
LBB0_16:                                ## =>This Inner Loop Header: Depth=1
	movl	(%rcx), %eax
	movl	%eax, (%rdi)
	addq	$4, %rdi
	movl	(%rcx,%r14,4), %eax
	movl	%eax, (%rcx)
	addq	$4, %rcx
	cmpq	%r15, %rcx
	jbe	LBB0_16
LBB0_30:
	shlq	$2, %r14
	subq	%r14, %r15
	movq	_LastChar@GOTPCREL(%rip), %rax
	movq	%r15, (%rax)
	movl	(%r8), %esi
	movl	%esi, %edx
	subl	%r9d, %edx
	movl	%edx, (%r8)
	movq	_Mark@GOTPCREL(%rip), %rdi
	movl	(%rdi), %ecx
	testl	%ecx, %ecx
	setne	%al
	cmpl	%edx, %ecx
	setg	%bl
	andb	%al, %bl
	cmpb	$1, %bl
	jne	LBB0_32
## %bb.31:
	cmpl	%esi, %ecx
	jle	LBB0_34
LBB0_32:
	testb	%bl, %bl
	je	LBB0_35
## %bb.33:
	subl	%r9d, %ecx
	movl	%ecx, %edx
LBB0_34:
	movl	%edx, (%rdi)
LBB0_35:
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_Cursor,4,2                     ## @Cursor
	.comm	_InputBuf,4,2                   ## @InputBuf
	.comm	_VImode,8,3                     ## @VImode
	.comm	_UndoBuf,8,3                    ## @UndoBuf
	.comm	_TCSHOP_INSERT,4,2              ## @TCSHOP_INSERT
	.comm	_UndoAction,4,2                 ## @UndoAction
	.comm	_UndoSize,4,2                   ## @UndoSize
	.comm	_UndoPtr,4,2                    ## @UndoPtr
	.comm	_LastChar,8,3                   ## @LastChar
	.comm	_Mark,4,2                       ## @Mark
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_c_delbefore                    ; -- Begin function c_delbefore
	.p2align	2
_c_delbefore:                           ; @c_delbefore
	.cfi_startproc
; %bb.0:
Lloh0:
	adrp	x9, _Cursor@GOTPAGE
Lloh1:
	ldr	x9, [x9, _Cursor@GOTPAGEOFF]
Lloh2:
	adrp	x8, _InputBuf@GOTPAGE
Lloh3:
	ldr	x8, [x8, _InputBuf@GOTPAGEOFF]
	ldr	w11, [x9]
Lloh4:
	ldr	w8, [x8]
	sub	w8, w11, w8
	cmp	w8, w0
	csel	w8, w8, w0, lt
	cmp	w8, #1
	b.lt	LBB0_22
; %bb.1:
Lloh5:
	adrp	x10, _VImode@GOTPAGE
Lloh6:
	ldr	x10, [x10, _VImode@GOTPAGEOFF]
Lloh7:
	ldr	x12, [x10]
Lloh8:
	adrp	x10, _LastChar@GOTPAGE
Lloh9:
	ldr	x10, [x10, _LastChar@GOTPAGEOFF]
	cbz	x12, LBB0_11
; %bb.2:
Lloh10:
	adrp	x12, _UndoBuf@GOTPAGE
Lloh11:
	ldr	x12, [x12, _UndoBuf@GOTPAGEOFF]
Lloh12:
	ldr	x13, [x12]
Lloh13:
	adrp	x12, _TCSHOP_INSERT@GOTPAGE
Lloh14:
	ldr	x12, [x12, _TCSHOP_INSERT@GOTPAGEOFF]
Lloh15:
	adrp	x14, _UndoAction@GOTPAGE
Lloh16:
	ldr	x14, [x14, _UndoAction@GOTPAGEOFF]
Lloh17:
	ldr	w12, [x12]
Lloh18:
	str	w12, [x14]
Lloh19:
	adrp	x12, _UndoSize@GOTPAGE
Lloh20:
	ldr	x12, [x12, _UndoSize@GOTPAGEOFF]
Lloh21:
	str	w8, [x12]
	sub	w11, w11, w8
Lloh22:
	adrp	x12, _UndoPtr@GOTPAGE
Lloh23:
	ldr	x12, [x12, _UndoPtr@GOTPAGEOFF]
Lloh24:
	str	w11, [x12]
	sxtw	x12, w11
	ldr	x11, [x10]
	cmp	x11, x12
	b.lo	LBB0_18
; %bb.3:
	add	x15, x12, #4
	add	x16, x11, #1
	cmp	x15, x16
	csinc	x14, x15, x11, hi
	mvn	x17, x12
	add	x14, x14, x17
	cmp	x14, #60
	b.lo	LBB0_10
; %bb.4:
	cmp	x15, x16
	csinc	x15, x15, x11, hi
	add	x15, x15, x17
	lsr	x15, x15, #2
	lsl	x16, x15, #2
	add	x16, x16, #4
	add	x17, x12, x16
	add	x0, x12, x8, lsl #2
	add	x15, x15, x8
	add	x15, x12, x15, lsl #2
	add	x15, x15, #4
	cmp	x13, x15
	add	x1, x13, x16
	ccmp	x0, x1, #2, lo
	cset	w16, lo
	cmp	x12, x15
	ccmp	x0, x17, #2, lo
	cset	w15, lo
	cmp	x12, x1
	ccmp	x13, x17, #2, lo
	b.lo	LBB0_10
; %bb.5:
	tbnz	w16, #0, LBB0_10
; %bb.6:
	tbnz	w15, #0, LBB0_10
; %bb.7:
	lsr	x14, x14, #2
	add	x14, x14, #1
	mov	x16, x12
	and	x15, x14, #0x7ffffffffffffff0
	lsl	x0, x15, #2
	add	x17, x13, x0
	add	x12, x12, x0
	add	x13, x13, #32
	lsl	x0, x8, #2
	mov	x1, x15
LBB0_8:                                 ; =>This Inner Loop Header: Depth=1
	ldp	q0, q1, [x16]
	ldp	q2, q3, [x16, #32]
	stp	q0, q1, [x13, #-32]
	stp	q2, q3, [x13], #64
	add	x2, x16, x0
	ldp	q0, q1, [x2]
	ldp	q2, q3, [x2, #32]
	stp	q0, q1, [x16]
	stp	q2, q3, [x16, #32]
	add	x16, x16, #64
	subs	x1, x1, #16
	b.ne	LBB0_8
; %bb.9:
	mov	x13, x17
	cmp	x14, x15
	b.eq	LBB0_18
LBB0_10:                                ; =>This Inner Loop Header: Depth=1
	ldr	w14, [x12]
	str	w14, [x13], #4
	ldr	w14, [x12, x8, lsl #2]
	str	w14, [x12], #4
	cmp	x12, x11
	b.ls	LBB0_10
	b	LBB0_18
LBB0_11:
	sub	w11, w11, w8
	sxtw	x15, w11
	ldr	x11, [x10]
	add	x12, x15, w8, uxtw #2
	cmp	x12, x11
	b.hi	LBB0_18
; %bb.12:
	mov	x14, x15
	lsl	x13, x8, #2
	add	x16, x13, x15
	add	x16, x16, #4
	add	x17, x11, #1
	cmp	x16, x17
	csinc	x16, x16, x11, hi
	mvn	x17, x15
	add	x16, x16, x17
	sub	x16, x16, x13
	cmp	x16, #60
	b.lo	LBB0_17
; %bb.13:
	neg	x17, x13
	cmp	x17, #64
	b.lo	LBB0_17
; %bb.14:
	lsr	x14, x16, #2
	add	x16, x14, #1
	and	x17, x16, #0x7ffffffffffffff0
	lsl	x14, x17, #2
	add	x12, x12, x14
	add	x14, x15, x14
	add	x15, x15, #32
	mov	x0, x17
LBB0_15:                                ; =>This Inner Loop Header: Depth=1
	add	x1, x15, x13
	ldp	q0, q1, [x1, #-32]
	ldp	q2, q3, [x1]
	stp	q0, q1, [x15, #-32]
	stp	q2, q3, [x15], #64
	subs	x0, x0, #16
	b.ne	LBB0_15
; %bb.16:
	cmp	x16, x17
	b.eq	LBB0_18
LBB0_17:                                ; =>This Inner Loop Header: Depth=1
	ldr	w12, [x12]
	str	w12, [x14], #4
	add	x12, x14, x8, lsl #2
	add	x15, x14, x13
	cmp	x15, x11
	b.ls	LBB0_17
LBB0_18:
	sub	x11, x11, x8, lsl #2
	str	x11, [x10]
	ldr	w13, [x9]
	sub	w10, w13, w8
	str	w10, [x9]
Lloh25:
	adrp	x9, _Mark@GOTPAGE
Lloh26:
	ldr	x9, [x9, _Mark@GOTPAGEOFF]
	ldr	w11, [x9]
	cmp	w11, #0
	ccmp	w11, w10, #4, ne
	cset	w12, gt
	cmp	w12, #1
	ccmp	w11, w13, #0, eq
	b.le	LBB0_21
; %bb.19:
	cbz	w12, LBB0_22
; %bb.20:
	sub	w10, w11, w8
LBB0_21:
	str	w10, [x9]
LBB0_22:
	ret
	.loh AdrpLdrGotLdr	Lloh2, Lloh3, Lloh4
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpLdrGot	Lloh8, Lloh9
	.loh AdrpLdrGotLdr	Lloh5, Lloh6, Lloh7
	.loh AdrpLdrGotStr	Lloh22, Lloh23, Lloh24
	.loh AdrpLdrGotStr	Lloh19, Lloh20, Lloh21
	.loh AdrpLdrGotStr	Lloh15, Lloh16, Lloh18
	.loh AdrpLdrGotLdr	Lloh13, Lloh14, Lloh17
	.loh AdrpLdrGotLdr	Lloh10, Lloh11, Lloh12
	.loh AdrpLdrGot	Lloh25, Lloh26
	.cfi_endproc
                                        ; -- End function
	.comm	_Cursor,4,2                     ; @Cursor
	.comm	_InputBuf,4,2                   ; @InputBuf
	.comm	_VImode,8,3                     ; @VImode
	.comm	_UndoBuf,8,3                    ; @UndoBuf
	.comm	_TCSHOP_INSERT,4,2              ; @TCSHOP_INSERT
	.comm	_UndoAction,4,2                 ; @UndoAction
	.comm	_UndoSize,4,2                   ; @UndoSize
	.comm	_UndoPtr,4,2                    ; @UndoPtr
	.comm	_LastChar,8,3                   ; @LastChar
	.comm	_Mark,4,2                       ; @Mark
.subsections_via_symbols
