	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function touchpad_check_endpoint
_touchpad_check_endpoint:               ## @touchpad_check_endpoint
	.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	%rbx
	.cfi_offset %rbx, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	16(%rdi), %rax
	movq	(%rax), %r15
	movslq	%esi, %rsi
	movq	(%rdi), %r9
	movq	8(%rdi), %rax
	movq	(%rax), %r14
	shlq	$5, %rsi
	movq	(%r15,%rsi), %rdi
	movl	(%r9,%rdi,4), %eax
	movl	4(%r9,%rdi,4), %ecx
	subl	%ecx, %eax
	imull	$100, %eax, %eax
	cltd
	idivl	%ecx
	leaq	(%r14,%rsi), %rdx
	cmpl	$0, (%r14,%rsi)
	movq	_LEFT_END_POINT_DETECTION_LEVEL@GOTPCREL(%rip), %rbx
	movl	(%rbx), %ebx
	je	LBB0_4
## %bb.1:
	movb	$1, %r8b
	cmpl	%ebx, %eax
	jge	LBB0_7
## %bb.2:
	movq	_LEFT_RIGHT_END_POINT_DEAVTIVALION_LEVEL@GOTPCREL(%rip), %rax
	movl	4(%r14,%rsi), %edi
	addl	(%rax), %edi
	cmpl	%edi, %ecx
	jle	LBB0_7
## %bb.3:
	movl	$0, (%rdx)
	jmp	LBB0_5
LBB0_4:
	cmpl	%ebx, %eax
	jge	LBB0_6
LBB0_5:
	xorl	%r8d, %r8d
	jmp	LBB0_7
LBB0_6:
	movl	$1, (%rdx)
	movl	4(%r9,%rdi,4), %eax
	movl	%eax, 4(%r14,%rsi)
	movb	$1, %r8b
LBB0_7:
	movq	8(%r15,%rsi), %rdi
	movl	-4(%r9,%rdi,4), %ecx
	movl	(%r9,%rdi,4), %eax
	subl	%ecx, %eax
	imull	$100, %eax, %eax
	cltd
	idivl	%ecx
	leaq	(%r14,%rsi), %rdx
	addq	$8, %rdx
	cmpl	$0, 8(%r14,%rsi)
	movq	_RIGHT_END_POINT_DETECTION_LEVEL@GOTPCREL(%rip), %rbx
	movl	(%rbx), %ebx
	je	LBB0_11
## %bb.8:
	movb	$1, %r10b
	cmpl	%ebx, %eax
	jge	LBB0_14
## %bb.9:
	movq	_LEFT_RIGHT_END_POINT_DEAVTIVALION_LEVEL@GOTPCREL(%rip), %rax
	movl	12(%r14,%rsi), %edi
	addl	(%rax), %edi
	cmpl	%edi, %ecx
	jle	LBB0_14
## %bb.10:
	movl	$0, (%rdx)
	jmp	LBB0_12
LBB0_11:
	cmpl	%ebx, %eax
	jge	LBB0_13
LBB0_12:
	xorl	%r10d, %r10d
	jmp	LBB0_14
LBB0_13:
	movl	$1, (%rdx)
	movl	-4(%r9,%rdi,4), %eax
	movl	%eax, 12(%r14,%rsi)
	movb	$1, %r10b
LBB0_14:
	movq	16(%r15,%rsi), %rcx
	movl	(%r9,%rcx,4), %eax
	movl	4(%r9,%rcx,4), %edi
	subl	%edi, %eax
	imull	$100, %eax, %eax
	cltd
	idivl	%edi
	leaq	(%r14,%rsi), %rdx
	addq	$16, %rdx
	cmpl	$0, 16(%r14,%rsi)
	movq	_TOP_END_POINT_DETECTION_LEVEL@GOTPCREL(%rip), %rbx
	movl	(%rbx), %ebx
	je	LBB0_18
## %bb.15:
	cmpl	%ebx, %eax
	jge	LBB0_21
## %bb.16:
	movq	_TOP_BOTTOM_END_POINT_DEAVTIVALION_LEVEL@GOTPCREL(%rip), %rax
	movl	20(%r14,%rsi), %ecx
	addl	(%rax), %ecx
	cmpl	%ecx, %edi
	jle	LBB0_21
## %bb.17:
	movl	$0, (%rdx)
	movb	$1, %r11b
	jmp	LBB0_22
LBB0_18:
	movb	$1, %r11b
	cmpl	%ebx, %eax
	jl	LBB0_22
## %bb.19:
	movl	$1, (%rdx)
	movl	4(%r9,%rcx,4), %eax
	movl	%eax, 20(%r14,%rsi)
LBB0_21:
	xorl	%r11d, %r11d
LBB0_22:
	movq	24(%r15,%rsi), %rbx
	movl	-4(%r9,%rbx,4), %edi
	movl	(%r9,%rbx,4), %eax
	subl	%edi, %eax
	imull	$100, %eax, %eax
	cltd
	idivl	%edi
	movl	%eax, %ecx
	leaq	(%r14,%rsi), %r15
	addq	$24, %r15
	cmpl	$0, 24(%r14,%rsi)
	movq	_BOTTOM_END_POINT_DETECTION_LEVEL@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	je	LBB0_26
## %bb.23:
	movl	$1, %eax
	cmpl	%edx, %ecx
	jge	LBB0_28
## %bb.24:
	movq	_TOP_BOTTOM_END_POINT_DEAVTIVALION_LEVEL@GOTPCREL(%rip), %rcx
	movl	28(%r14,%rsi), %edx
	addl	(%rcx), %edx
	cmpl	%edx, %edi
	jle	LBB0_28
## %bb.25:
	movl	$0, (%r15)
	xorl	%eax, %eax
	jmp	LBB0_28
LBB0_26:
	xorl	%eax, %eax
	cmpl	%edx, %ecx
	jl	LBB0_28
## %bb.27:
	movl	$1, (%r15)
	movl	-4(%r9,%rbx,4), %eax
	movl	%eax, 28(%r14,%rsi)
	movl	$1, %eax
LBB0_28:
	testb	%r11b, %r11b
	movl	$1, %ecx
	cmovel	%ecx, %eax
	testb	%r10b, %r10b
	cmovnel	%ecx, %eax
	testb	%r8b, %r8b
	cmovnel	%ecx, %eax
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_LEFT_END_POINT_DETECTION_LEVEL,4,2 ## @LEFT_END_POINT_DETECTION_LEVEL
	.comm	_LEFT_RIGHT_END_POINT_DEAVTIVALION_LEVEL,4,2 ## @LEFT_RIGHT_END_POINT_DEAVTIVALION_LEVEL
	.comm	_RIGHT_END_POINT_DETECTION_LEVEL,4,2 ## @RIGHT_END_POINT_DETECTION_LEVEL
	.comm	_TOP_END_POINT_DETECTION_LEVEL,4,2 ## @TOP_END_POINT_DETECTION_LEVEL
	.comm	_TOP_BOTTOM_END_POINT_DEAVTIVALION_LEVEL,4,2 ## @TOP_BOTTOM_END_POINT_DEAVTIVALION_LEVEL
	.comm	_BOTTOM_END_POINT_DETECTION_LEVEL,4,2 ## @BOTTOM_END_POINT_DETECTION_LEVEL
	.no_dead_strip	_touchpad_check_endpoint
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function touchpad_check_endpoint
_touchpad_check_endpoint:               ; @touchpad_check_endpoint
	.cfi_startproc
; %bb.0:
                                        ; kill: def $w1 killed $w1 def $x1
	ldp	x9, x8, [x0, #8]
	ldr	x12, [x8]
	sxtw	x8, w1
	ldr	x10, [x0]
	ldr	x9, [x9]
	sbfiz	x13, x1, #5, #32
	ldr	x11, [x12, x13]
	ldr	w15, [x10, x11, lsl #2]
	add	x14, x11, #1
	ldr	w11, [x10, x14, lsl #2]
	sub	w15, w15, w11
	mov	w16, #100
	mul	w15, w15, w16
	sdiv	w15, w15, w11
	add	x13, x9, x13
	ldr	w17, [x13]
Lloh0:
	adrp	x16, _LEFT_END_POINT_DETECTION_LEVEL@GOTPAGE
Lloh1:
	ldr	x16, [x16, _LEFT_END_POINT_DETECTION_LEVEL@GOTPAGEOFF]
Lloh2:
	ldr	w16, [x16]
	cmp	w15, w16
	cbz	w17, LBB0_5
; %bb.1:
	b.ge	LBB0_4
; %bb.2:
Lloh3:
	adrp	x14, _LEFT_RIGHT_END_POINT_DEAVTIVALION_LEVEL@GOTPAGE
Lloh4:
	ldr	x14, [x14, _LEFT_RIGHT_END_POINT_DEAVTIVALION_LEVEL@GOTPAGEOFF]
Lloh5:
	ldr	w14, [x14]
	add	x15, x9, x8, lsl #5
	ldr	w15, [x15, #4]
	add	w14, w15, w14
	cmp	w11, w14
	b.le	LBB0_4
; %bb.3:
	mov	w11, #0
	str	wzr, [x13]
	b	LBB0_8
LBB0_4:
	mov	w11, #1
	b	LBB0_8
LBB0_5:
	b.ge	LBB0_7
; %bb.6:
	mov	w11, #0
	b	LBB0_8
LBB0_7:
	mov	w11, #1
	str	w11, [x13]
	ldr	w13, [x10, x14, lsl #2]
	add	x14, x9, x8, lsl #5
	str	w13, [x14, #4]
LBB0_8:
	lsl	x14, x8, #5
	add	x13, x12, x14
	ldr	x13, [x13, #8]
	ldr	w15, [x10, x13, lsl #2]
	sub	x16, x13, #1
	ldr	w13, [x10, x16, lsl #2]
	sub	w15, w15, w13
	mov	w17, #100
	mul	w15, w15, w17
	sdiv	w17, w15, w13
	add	x15, x9, x14
	ldr	w1, [x15, #8]!
Lloh6:
	adrp	x0, _RIGHT_END_POINT_DETECTION_LEVEL@GOTPAGE
Lloh7:
	ldr	x0, [x0, _RIGHT_END_POINT_DETECTION_LEVEL@GOTPAGEOFF]
Lloh8:
	ldr	w0, [x0]
	cmp	w17, w0
	cbz	w1, LBB0_13
; %bb.9:
	b.ge	LBB0_12
; %bb.10:
Lloh9:
	adrp	x16, _LEFT_RIGHT_END_POINT_DEAVTIVALION_LEVEL@GOTPAGE
Lloh10:
	ldr	x16, [x16, _LEFT_RIGHT_END_POINT_DEAVTIVALION_LEVEL@GOTPAGEOFF]
Lloh11:
	ldr	w16, [x16]
	add	x17, x9, x8, lsl #5
	ldr	w17, [x17, #12]
	add	w16, w17, w16
	cmp	w13, w16
	b.le	LBB0_12
; %bb.11:
	mov	w13, #0
	str	wzr, [x15]
	b	LBB0_16
LBB0_12:
	mov	w13, #1
	b	LBB0_16
LBB0_13:
	b.ge	LBB0_15
; %bb.14:
	mov	w13, #0
	b	LBB0_16
LBB0_15:
	mov	w13, #1
	str	w13, [x15]
	ldr	w15, [x10, x16, lsl #2]
	add	x16, x9, x8, lsl #5
	str	w15, [x16, #12]
LBB0_16:
	add	x15, x12, x14
	ldr	x15, [x15, #16]
	ldr	w16, [x10, x15, lsl #2]
	add	x17, x15, #1
	ldr	w15, [x10, x17, lsl #2]
	sub	w16, w16, w15
	mov	w0, #100
	mul	w16, w16, w0
	sdiv	w0, w16, w15
	add	x16, x9, x14
	ldr	w2, [x16, #16]!
Lloh12:
	adrp	x1, _TOP_END_POINT_DETECTION_LEVEL@GOTPAGE
Lloh13:
	ldr	x1, [x1, _TOP_END_POINT_DETECTION_LEVEL@GOTPAGEOFF]
Lloh14:
	ldr	w1, [x1]
	cbz	w2, LBB0_20
; %bb.17:
	cmp	w0, w1
	b.ge	LBB0_22
; %bb.18:
Lloh15:
	adrp	x17, _TOP_BOTTOM_END_POINT_DEAVTIVALION_LEVEL@GOTPAGE
Lloh16:
	ldr	x17, [x17, _TOP_BOTTOM_END_POINT_DEAVTIVALION_LEVEL@GOTPAGEOFF]
Lloh17:
	ldr	w17, [x17]
	add	x0, x9, x8, lsl #5
	ldr	w0, [x0, #20]
	add	w17, w0, w17
	cmp	w15, w17
	b.le	LBB0_22
; %bb.19:
	str	wzr, [x16]
	mov	w15, #1
	b	LBB0_23
LBB0_20:
	mov	w15, #1
	cmp	w0, w1
	b.lt	LBB0_23
; %bb.21:
	str	w15, [x16]
	ldr	w15, [x10, x17, lsl #2]
	add	x16, x9, x8, lsl #5
	str	w15, [x16, #20]
LBB0_22:
	mov	w15, #0
LBB0_23:
	add	x12, x12, x14
	ldr	x12, [x12, #24]
	ldr	w0, [x10, x12, lsl #2]
	sub	x17, x12, #1
	ldr	w16, [x10, x17, lsl #2]
	sub	w12, w0, w16
	mov	w0, #100
	mul	w12, w12, w0
	sdiv	w0, w12, w16
	add	x12, x9, x14
	ldr	w1, [x12, #24]!
Lloh18:
	adrp	x14, _BOTTOM_END_POINT_DETECTION_LEVEL@GOTPAGE
Lloh19:
	ldr	x14, [x14, _BOTTOM_END_POINT_DETECTION_LEVEL@GOTPAGEOFF]
Lloh20:
	ldr	w14, [x14]
	cmp	w0, w14
	cbz	w1, LBB0_28
; %bb.24:
	b.ge	LBB0_27
; %bb.25:
Lloh21:
	adrp	x10, _TOP_BOTTOM_END_POINT_DEAVTIVALION_LEVEL@GOTPAGE
Lloh22:
	ldr	x10, [x10, _TOP_BOTTOM_END_POINT_DEAVTIVALION_LEVEL@GOTPAGEOFF]
Lloh23:
	ldr	w10, [x10]
	add	x8, x9, x8, lsl #5
	ldr	w8, [x8, #28]
	add	w8, w8, w10
	cmp	w16, w8
	b.le	LBB0_27
; %bb.26:
	mov	w14, #0
	str	wzr, [x12]
	b	LBB0_31
LBB0_27:
	mov	w14, #1
	b	LBB0_31
LBB0_28:
	b.ge	LBB0_30
; %bb.29:
	mov	w14, #0
	b	LBB0_31
LBB0_30:
	mov	w14, #1
	str	w14, [x12]
	ldr	w10, [x10, x17, lsl #2]
	add	x8, x9, x8, lsl #5
	str	w10, [x8, #28]
LBB0_31:
	orr	w8, w11, w13
	cmp	w15, #0
	csinc	w9, w14, wzr, ne
	cmp	w8, #0
	csinc	w0, w9, wzr, eq
	ret
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpLdrGotLdr	Lloh6, Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh18, Lloh19, Lloh20
	.loh AdrpLdrGotLdr	Lloh21, Lloh22, Lloh23
	.cfi_endproc
                                        ; -- End function
	.comm	_LEFT_END_POINT_DETECTION_LEVEL,4,2 ; @LEFT_END_POINT_DETECTION_LEVEL
	.comm	_LEFT_RIGHT_END_POINT_DEAVTIVALION_LEVEL,4,2 ; @LEFT_RIGHT_END_POINT_DEAVTIVALION_LEVEL
	.comm	_RIGHT_END_POINT_DETECTION_LEVEL,4,2 ; @RIGHT_END_POINT_DETECTION_LEVEL
	.comm	_TOP_END_POINT_DETECTION_LEVEL,4,2 ; @TOP_END_POINT_DETECTION_LEVEL
	.comm	_TOP_BOTTOM_END_POINT_DEAVTIVALION_LEVEL,4,2 ; @TOP_BOTTOM_END_POINT_DEAVTIVALION_LEVEL
	.comm	_BOTTOM_END_POINT_DETECTION_LEVEL,4,2 ; @BOTTOM_END_POINT_DETECTION_LEVEL
	.no_dead_strip	_touchpad_check_endpoint
.subsections_via_symbols
