	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function hidpp_ff_upload_effect
_hidpp_ff_upload_effect:                ## @hidpp_ff_upload_effect
	.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
	subq	$88, %rsp
	.cfi_offset %rbx, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	%rax, -32(%rbp)
	movq	(%rdi), %rax
	movq	(%rax), %r14
	movl	104(%rsi), %eax
	movzbl	%al, %ecx
	sarl	$8, %eax
	movl	%eax, -104(%rbp)
	movl	%ecx, -100(%rbp)
	movl	108(%rsi), %eax
	movzbl	%al, %ecx
	sarl	$8, %eax
	movl	%eax, -96(%rbp)
	movl	%ecx, -92(%rbp)
	movl	(%rsi), %edx
	leal	-130(%rdx), %eax
	cmpl	$9, %eax
	ja	LBB0_9
## %bb.1:
	movq	%rsi, %rbx
	leaq	LJTI0_0(%rip), %rcx
	movslq	(%rcx,%rax,4), %rsi
	addq	%rcx, %rsi
	jmpq	*%rsi
LBB0_8:
	movq	_HIDPP_FF_CONDITION_CMDS@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	movl	(%rcx,%rax,4), %ecx
	movl	%ecx, -108(%rbp)
	movq	16(%rbx), %rdi
	movl	(%rdi), %ecx
	sarl	$9, %ecx
	movl	%ecx, -88(%rbp)
	movl	(%rdi), %ecx
	shrl	%ecx
	movzbl	%cl, %ecx
	movl	%ecx, -84(%rbp)
	movl	4(%rdi), %ecx
	sarl	$8, %ecx
	movl	%ecx, -80(%rbp)
	movzbl	4(%rdi), %ecx
	movl	%ecx, -76(%rbp)
	movl	8(%rdi), %ecx
	sarl	$9, %ecx
	movl	%ecx, -72(%rbp)
	movl	8(%rdi), %ecx
	shrl	%ecx
	movzbl	%cl, %ecx
	movl	%ecx, -68(%rbp)
	movl	12(%rdi), %ecx
	sarl	$8, %ecx
	movl	%ecx, -64(%rbp)
	movzbl	12(%rdi), %ecx
	movl	%ecx, -60(%rbp)
	movl	16(%rdi), %ecx
	sarl	$8, %ecx
	movl	%ecx, -56(%rbp)
	movzbl	16(%rdi), %ecx
	movl	%ecx, -52(%rbp)
	movl	20(%rdi), %ecx
	sarl	$9, %ecx
	movl	%ecx, -48(%rbp)
	movl	20(%rdi), %ecx
	shrl	%ecx
	movzbl	%cl, %ecx
	movl	%ecx, -44(%rbp)
	movq	_HIDPP_FF_CONDITION_NAMES@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	movl	(%rcx,%rax,4), %esi
	movl	(%rdi), %ecx
	movl	4(%rdi), %edx
	movl	16(%rdi), %r8d
	movl	20(%rdi), %r9d
	leaq	L_.str.5(%rip), %rdi
	xorl	%eax, %eax
	callq	_dbg_hid
	movq	16(%rbx), %rax
	movl	8(%rax), %esi
	movl	12(%rax), %edx
	leaq	L_.str.6(%rip), %rdi
	xorl	%eax, %eax
	callq	_dbg_hid
	movl	$18, %r8d
LBB0_11:
	movl	8(%rbx), %esi
	movq	_HIDPP_FF_DOWNLOAD_EFFECT@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	leaq	-112(%rbp), %rcx
	movq	%r14, %rdi
	callq	_hidpp_ff_queue_work
	jmp	LBB0_12
LBB0_9:
	movq	(%r14), %rax
	movl	(%rax), %edi
	leaq	L_.str.7(%rip), %rsi
	jmp	LBB0_4
LBB0_2:
	movl	48(%rbx), %edx
	leal	-128(%rdx), %eax
	cmpl	$6, %eax
	jae	LBB0_3
## %bb.5:
	movl	$59, %ecx
	btl	%eax, %ecx
	jb	LBB0_6
LBB0_3:
	movq	(%r14), %rax
	movl	(%rax), %edi
	leaq	L_.str.2(%rip), %rsi
LBB0_4:
                                        ## kill: def $edx killed $edx killed $rdx
	callq	_hid_err
	movq	_EINVAL@GOTPCREL(%rip), %rcx
	xorl	%eax, %eax
	subl	(%rcx), %eax
LBB0_12:
	movq	___stack_chk_guard@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	cmpq	-32(%rbp), %rcx
	jne	LBB0_14
## %bb.13:
	addq	$88, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_7:
	movq	_HIDPP_FF_EFFECT_RAMP@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, -108(%rbp)
	movl	24(%rbx), %r15d
	imull	$360, 4(%rbx), %edi             ## imm = 0x168
	sarl	$16, %edi
	callq	_fixp_sin16
	imull	%r15d, %eax
	movl	%eax, %ecx
	shrl	$15, %ecx
	sarl	$23, %eax
	movl	%eax, -88(%rbp)
	movzbl	%cl, %eax
	movl	%eax, -84(%rbp)
	movl	28(%rbx), %r15d
	imull	$360, 4(%rbx), %edi             ## imm = 0x168
	sarl	$16, %edi
	callq	_fixp_sin16
	imull	%r15d, %eax
	movl	%eax, %r8d
	sarl	$15, %r8d
	sarl	$23, %eax
	movl	%eax, -80(%rbp)
	movzbl	%r8b, %eax
	movl	%eax, -76(%rbp)
	movl	32(%rbx), %eax
	sarl	$7, %eax
	movl	%eax, -72(%rbp)
	movl	36(%rbx), %eax
	movzbl	%al, %ecx
	sarl	$8, %eax
	movl	%eax, -68(%rbp)
	movl	%ecx, -64(%rbp)
	movl	40(%rbx), %eax
	sarl	$7, %eax
	movl	%eax, -60(%rbp)
	movl	44(%rbx), %eax
	movzbl	%al, %ecx
	sarl	$8, %eax
	movl	%eax, -56(%rbp)
	movl	%ecx, -52(%rbp)
	movl	4(%rbx), %ecx
	movl	24(%rbx), %esi
	movl	28(%rbx), %edx
	leaq	L_.str.4(%rip), %rdi
	xorl	%eax, %eax
	callq	_dbg_hid
	movl	32(%rbx), %esi
	movl	36(%rbx), %edx
	movl	40(%rbx), %ecx
	movl	44(%rbx), %r8d
	leaq	L_.str.1(%rip), %rdi
	xorl	%eax, %eax
	callq	_dbg_hid
	movl	$16, %r8d
	jmp	LBB0_11
LBB0_10:
	movl	84(%rbx), %r15d
	imull	$360, 4(%rbx), %edi             ## imm = 0x168
	sarl	$16, %edi
	callq	_fixp_sin16
	imull	%r15d, %eax
	movl	%eax, %ecx
	sarl	$15, %ecx
	movq	_HIDPP_FF_EFFECT_CONSTANT@GOTPCREL(%rip), %rdx
	movl	(%rdx), %edx
	movl	%edx, -108(%rbp)
	sarl	$23, %eax
	movl	%eax, -88(%rbp)
	movzbl	%cl, %eax
	movl	%eax, -84(%rbp)
	movl	88(%rbx), %eax
	sarl	$7, %eax
	movl	%eax, -80(%rbp)
	movl	92(%rbx), %eax
	movzbl	%al, %edx
	sarl	$8, %eax
	movl	%eax, -76(%rbp)
	movl	%edx, -72(%rbp)
	movl	96(%rbx), %eax
	sarl	$7, %eax
	movl	%eax, -68(%rbp)
	movl	100(%rbx), %eax
	movzbl	%al, %edx
	sarl	$8, %eax
	movl	%eax, -64(%rbp)
	movl	%edx, -60(%rbp)
	movl	4(%rbx), %edx
	movl	84(%rbx), %esi
	leaq	L_.str(%rip), %rdi
	xorl	%eax, %eax
	callq	_dbg_hid
	movl	88(%rbx), %esi
	movl	92(%rbx), %edx
	movl	96(%rbx), %ecx
	movl	100(%rbx), %r8d
	leaq	L_.str.1(%rip), %rdi
	xorl	%eax, %eax
	callq	_dbg_hid
	movl	$14, %r8d
	jmp	LBB0_11
LBB0_6:
	cltq
	leaq	l_switch.table.hidpp_ff_upload_effect(%rip), %rcx
	movq	(%rcx,%rax,8), %rax
	movl	(%rax), %eax
	movl	%eax, -108(%rbp)
	imull	$360, 4(%rbx), %edi             ## imm = 0x168
	sarl	$16, %edi
	callq	_fixp_sin16
	movl	52(%rbx), %esi
	movl	%esi, %eax
	sarl	$8, %eax
	movl	%eax, -88(%rbp)
	movzbl	%sil, %eax
	movl	%eax, -84(%rbp)
	movl	56(%rbx), %ecx
	movl	%ecx, %eax
	sarl	$8, %eax
	movl	%eax, -80(%rbp)
	movzbl	%cl, %eax
	movl	%eax, -76(%rbp)
	movl	60(%rbx), %r8d
	movl	%r8d, %eax
	sarl	$8, %eax
	movl	%eax, -72(%rbp)
	movzbl	%r8b, %eax
	movl	%eax, -68(%rbp)
	movl	64(%rbx), %r9d
	movl	%r9d, %eax
	sarl	$8, %eax
	movl	%eax, -64(%rbp)
	movzbl	%r9b, %eax
	movl	%eax, -60(%rbp)
	movl	68(%rbx), %eax
	sarl	$7, %eax
	movl	%eax, -56(%rbp)
	movl	72(%rbx), %eax
	movzbl	%al, %edx
	sarl	$8, %eax
	movl	%eax, -52(%rbp)
	movl	%edx, -48(%rbp)
	movl	76(%rbx), %eax
	sarl	$7, %eax
	movl	%eax, -44(%rbp)
	movl	80(%rbx), %eax
	movzbl	%al, %edx
	sarl	$8, %eax
	movl	%eax, -40(%rbp)
	movl	%edx, -36(%rbp)
	movl	4(%rbx), %edx
	leaq	L_.str.3(%rip), %rdi
	xorl	%eax, %eax
	callq	_dbg_hid
	movl	68(%rbx), %esi
	movl	72(%rbx), %edx
	movl	76(%rbx), %ecx
	movl	80(%rbx), %r8d
	leaq	L_.str.1(%rip), %rdi
	xorl	%eax, %eax
	callq	_dbg_hid
	movl	$20, %r8d
	jmp	LBB0_11
LBB0_14:
	callq	___stack_chk_fail
	.cfi_endproc
	.p2align	2, 0x90
	.data_region jt32
.set L0_0_set_8, LBB0_8-LJTI0_0
.set L0_0_set_9, LBB0_9-LJTI0_0
.set L0_0_set_7, LBB0_7-LJTI0_0
.set L0_0_set_2, LBB0_2-LJTI0_0
.set L0_0_set_10, LBB0_10-LJTI0_0
LJTI0_0:
	.long	L0_0_set_8
	.long	L0_0_set_9
	.long	L0_0_set_9
	.long	L0_0_set_9
	.long	L0_0_set_7
	.long	L0_0_set_2
	.long	L0_0_set_8
	.long	L0_0_set_8
	.long	L0_0_set_8
	.long	L0_0_set_10
	.end_data_region
                                        ## -- End function
	.comm	_HIDPP_FF_EFFECT_CONSTANT,4,2   ## @HIDPP_FF_EFFECT_CONSTANT
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"Uploading constant force level=%d in dir %d = %d\n"

L_.str.1:                               ## @.str.1
	.asciz	"          envelope attack=(%d, %d ms) fade=(%d, %d ms)\n"

	.comm	_HIDPP_FF_EFFECT_PERIODIC_SINE,4,2 ## @HIDPP_FF_EFFECT_PERIODIC_SINE
	.comm	_HIDPP_FF_EFFECT_PERIODIC_SQUARE,4,2 ## @HIDPP_FF_EFFECT_PERIODIC_SQUARE
	.comm	_HIDPP_FF_EFFECT_PERIODIC_SAWTOOTHUP,4,2 ## @HIDPP_FF_EFFECT_PERIODIC_SAWTOOTHUP
	.comm	_HIDPP_FF_EFFECT_PERIODIC_SAWTOOTHDOWN,4,2 ## @HIDPP_FF_EFFECT_PERIODIC_SAWTOOTHDOWN
	.comm	_HIDPP_FF_EFFECT_PERIODIC_TRIANGLE,4,2 ## @HIDPP_FF_EFFECT_PERIODIC_TRIANGLE
L_.str.2:                               ## @.str.2
	.asciz	"Unexpected periodic waveform type %i!\n"

	.comm	_EINVAL,4,2                     ## @EINVAL
L_.str.3:                               ## @.str.3
	.asciz	"Uploading periodic force mag=%d/dir=%d, offset=%d, period=%d ms, phase=%d\n"

	.comm	_HIDPP_FF_EFFECT_RAMP,4,2       ## @HIDPP_FF_EFFECT_RAMP
L_.str.4:                               ## @.str.4
	.asciz	"Uploading ramp force level=%d -> %d in dir %d = %d\n"

	.comm	_HIDPP_FF_CONDITION_CMDS,8,3    ## @HIDPP_FF_CONDITION_CMDS
L_.str.5:                               ## @.str.5
	.asciz	"Uploading %s force left coeff=%d, left sat=%d, right coeff=%d, right sat=%d\n"

	.comm	_HIDPP_FF_CONDITION_NAMES,8,3   ## @HIDPP_FF_CONDITION_NAMES
L_.str.6:                               ## @.str.6
	.asciz	"          deadband=%d, center=%d\n"

L_.str.7:                               ## @.str.7
	.asciz	"Unexpected force type %i!\n"

	.comm	_HIDPP_FF_DOWNLOAD_EFFECT,4,2   ## @HIDPP_FF_DOWNLOAD_EFFECT
	.no_dead_strip	_hidpp_ff_upload_effect
	.section	__DATA,__const
	.p2align	3                               ## @switch.table.hidpp_ff_upload_effect
l_switch.table.hidpp_ff_upload_effect:
	.quad	_HIDPP_FF_EFFECT_PERIODIC_TRIANGLE
	.quad	_HIDPP_FF_EFFECT_PERIODIC_SQUARE
	.quad	_HIDPP_FF_EFFECT_PERIODIC_SINE
	.quad	_HIDPP_FF_EFFECT_PERIODIC_SINE
	.quad	_HIDPP_FF_EFFECT_PERIODIC_SAWTOOTHUP
	.quad	_HIDPP_FF_EFFECT_PERIODIC_SAWTOOTHDOWN

.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ; -- Begin function hidpp_ff_upload_effect
lCPI0_0:
	.long	4294967289                      ; 0xfffffff9
	.long	4294967288                      ; 0xfffffff8
	.space	4
	.long	4294967289                      ; 0xfffffff9
lCPI0_1:
	.space	4
	.long	4294967288                      ; 0xfffffff8
	.space	4
	.long	4294967289                      ; 0xfffffff9
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	2
_hidpp_ff_upload_effect:                ; @hidpp_ff_upload_effect
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #160
	.cfi_def_cfa_offset 160
	stp	x22, x21, [sp, #112]            ; 16-byte Folded Spill
	stp	x20, x19, [sp, #128]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #144]            ; 16-byte Folded Spill
	add	x29, sp, #144
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	.cfi_offset w21, -40
	.cfi_offset w22, -48
Lloh0:
	adrp	x8, ___stack_chk_guard@GOTPAGE
Lloh1:
	ldr	x8, [x8, ___stack_chk_guard@GOTPAGEOFF]
Lloh2:
	ldr	x8, [x8]
	stur	x8, [x29, #-40]
	ldr	x8, [x0]
	ldr	x19, [x8]
	ldr	d0, [x1, #104]
	zip1.4s	v0, v0, v0
	sshr.4s	v1, v0, #8
	movi.2d	v2, #0x0000ff000000ff
	and.16b	v0, v0, v2
	rev64.4s	v1, v1
	trn2.4s	v0, v1, v0
	stur	q0, [sp, #32]
	ldr	w2, [x1]
	sub	w8, w2, #130
	cmp	w8, #9
	b.hi	LBB0_4
; %bb.1:
	mov	x20, x1
Lloh3:
	adrp	x9, lJTI0_0@PAGE
Lloh4:
	add	x9, x9, lJTI0_0@PAGEOFF
	adr	x10, LBB0_2
	ldrb	w11, [x9, x8]
	add	x10, x10, x11, lsl #2
	br	x10
LBB0_2:
Lloh5:
	adrp	x9, _HIDPP_FF_CONDITION_CMDS@GOTPAGE
Lloh6:
	ldr	x9, [x9, _HIDPP_FF_CONDITION_CMDS@GOTPAGEOFF]
Lloh7:
	ldr	x9, [x9]
	lsl	x8, x8, #2
	ldr	w9, [x9, x8]
	str	w9, [sp, #28]
	ldr	x9, [x20, #16]
	ldr	w10, [x9]
	asr	w10, w10, #9
	str	w10, [sp, #48]
	ldr	w10, [x9]
	ubfx	w10, w10, #1, #8
	str	w10, [sp, #52]
	ldr	w10, [x9, #4]
	asr	w10, w10, #8
	str	w10, [sp, #56]
	ldrb	w10, [x9, #4]
	str	w10, [sp, #60]
	ldr	w10, [x9, #8]
	asr	w10, w10, #9
	str	w10, [sp, #64]
	ldr	w10, [x9, #8]
	ubfx	w10, w10, #1, #8
	str	w10, [sp, #68]
	ldr	w10, [x9, #12]
	asr	w10, w10, #8
	str	w10, [sp, #72]
	ldrb	w10, [x9, #12]
	str	w10, [sp, #76]
	ldr	w10, [x9, #16]
	asr	w10, w10, #8
	str	w10, [sp, #80]
	ldrb	w10, [x9, #16]
	str	w10, [sp, #84]
	ldr	w10, [x9, #20]
	asr	w10, w10, #9
	str	w10, [sp, #88]
	ldr	w10, [x9, #20]
	ubfx	w10, w10, #1, #8
	str	w10, [sp, #92]
Lloh8:
	adrp	x10, _HIDPP_FF_CONDITION_NAMES@GOTPAGE
Lloh9:
	ldr	x10, [x10, _HIDPP_FF_CONDITION_NAMES@GOTPAGEOFF]
Lloh10:
	ldr	x10, [x10]
	ldr	w1, [x10, x8]
	ldp	w8, w2, [x9]
	ldp	w10, w9, [x9, #16]
	stp	x10, x9, [sp, #8]
	str	x8, [sp]
Lloh11:
	adrp	x0, l_.str.5@PAGE
Lloh12:
	add	x0, x0, l_.str.5@PAGEOFF
	bl	_dbg_hid
	ldr	x8, [x20, #16]
	ldp	w1, w2, [x8, #8]
Lloh13:
	adrp	x0, l_.str.6@PAGE
Lloh14:
	add	x0, x0, l_.str.6@PAGEOFF
	bl	_dbg_hid
	mov	w4, #18
LBB0_3:
	ldr	w1, [x20, #8]
Lloh15:
	adrp	x8, _HIDPP_FF_DOWNLOAD_EFFECT@GOTPAGE
Lloh16:
	ldr	x8, [x8, _HIDPP_FF_DOWNLOAD_EFFECT@GOTPAGEOFF]
Lloh17:
	ldr	w2, [x8]
	add	x3, sp, #24
	mov	x0, x19
	bl	_hidpp_ff_queue_work
	b	LBB0_9
LBB0_4:
	ldr	x8, [x19]
	ldr	w0, [x8]
Lloh18:
	adrp	x1, l_.str.7@PAGE
Lloh19:
	add	x1, x1, l_.str.7@PAGEOFF
	b	LBB0_8
LBB0_5:
	ldr	w2, [x20, #48]
	sub	w8, w2, #128
	cmp	w8, #6
	b.hs	LBB0_7
; %bb.6:
	mov	w9, #59
	lsr	w9, w9, w8
	tbnz	w9, #0, LBB0_13
LBB0_7:
	ldr	x8, [x19]
	ldr	w0, [x8]
Lloh20:
	adrp	x1, l_.str.2@PAGE
Lloh21:
	add	x1, x1, l_.str.2@PAGEOFF
LBB0_8:
	bl	_hid_err
Lloh22:
	adrp	x8, _EINVAL@GOTPAGE
Lloh23:
	ldr	x8, [x8, _EINVAL@GOTPAGEOFF]
Lloh24:
	ldr	w8, [x8]
	neg	w0, w8
LBB0_9:
	ldur	x8, [x29, #-40]
Lloh25:
	adrp	x9, ___stack_chk_guard@GOTPAGE
Lloh26:
	ldr	x9, [x9, ___stack_chk_guard@GOTPAGEOFF]
Lloh27:
	ldr	x9, [x9]
	cmp	x9, x8
	b.ne	LBB0_14
; %bb.10:
	ldp	x29, x30, [sp, #144]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #128]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #112]            ; 16-byte Folded Reload
	add	sp, sp, #160
	ret
LBB0_11:
Lloh28:
	adrp	x8, _HIDPP_FF_EFFECT_RAMP@GOTPAGE
Lloh29:
	ldr	x8, [x8, _HIDPP_FF_EFFECT_RAMP@GOTPAGEOFF]
Lloh30:
	ldr	w8, [x8]
	str	w8, [sp, #28]
	ldr	w21, [x20, #24]
	ldr	w8, [x20, #4]
	mov	w22, #360
	mul	w8, w8, w22
	asr	w0, w8, #16
	bl	_fixp_sin16
	mul	w8, w0, w21
	asr	w9, w8, #23
	ubfx	w8, w8, #15, #8
	stp	w9, w8, [sp, #48]
	ldr	w21, [x20, #28]
	ldr	w8, [x20, #4]
	mul	w8, w8, w22
	asr	w0, w8, #16
	bl	_fixp_sin16
	mul	w8, w0, w21
	asr	w9, w8, #15
	asr	w8, w8, #23
	and	w10, w9, #0xff
	stp	w8, w10, [sp, #56]
	ldr	d0, [x20, #32]
	add	x8, x20, #40
	mov.s	v0[2], v0[1]
	movi.2d	v1, #0x0000ff000000ff
	and.16b	v1, v0, v1
	ld1.s	{ v0 }[3], [x8]
Lloh31:
	adrp	x8, lCPI0_0@PAGE
Lloh32:
	ldr	q2, [x8, lCPI0_0@PAGEOFF]
	sshl.4s	v0, v0, v2
	mov.s	v0[2], v1[2]
	stur	q0, [sp, #64]
	ldr	w8, [x20, #44]
	asr	w10, w8, #8
	and	w8, w8, #0xff
	stp	w10, w8, [sp, #80]
	ldp	w1, w2, [x20, #24]
	ldr	w8, [x20, #4]
	stp	x8, x9, [sp]
Lloh33:
	adrp	x0, l_.str.4@PAGE
Lloh34:
	add	x0, x0, l_.str.4@PAGEOFF
	bl	_dbg_hid
	ldp	w1, w2, [x20, #32]
	ldp	w8, w9, [x20, #40]
	stp	x8, x9, [sp]
Lloh35:
	adrp	x0, l_.str.1@PAGE
Lloh36:
	add	x0, x0, l_.str.1@PAGEOFF
	bl	_dbg_hid
	mov	w4, #16
	b	LBB0_3
LBB0_12:
	ldr	w21, [x20, #84]
	ldr	w8, [x20, #4]
	mov	w9, #360
	mul	w8, w8, w9
	asr	w0, w8, #16
	bl	_fixp_sin16
	mul	w8, w0, w21
	asr	w9, w8, #15
Lloh37:
	adrp	x10, _HIDPP_FF_EFFECT_CONSTANT@GOTPAGE
Lloh38:
	ldr	x10, [x10, _HIDPP_FF_EFFECT_CONSTANT@GOTPAGEOFF]
Lloh39:
	ldr	w10, [x10]
	asr	w11, w8, #23
	str	w10, [sp, #28]
	and	w8, w9, #0xff
	stp	w11, w8, [sp, #48]
	ldr	d0, [x20, #88]
	add	x8, x20, #96
	mov.s	v0[2], v0[1]
	movi.2d	v1, #0x0000ff000000ff
	and.16b	v1, v0, v1
	ld1.s	{ v0 }[3], [x8]
Lloh40:
	adrp	x8, lCPI0_0@PAGE
Lloh41:
	ldr	q2, [x8, lCPI0_0@PAGEOFF]
	sshl.4s	v0, v0, v2
	mov.s	v0[2], v1[2]
	stur	q0, [sp, #56]
	ldr	w8, [x20, #100]
	asr	w10, w8, #8
	and	w8, w8, #0xff
	stp	w10, w8, [sp, #72]
	ldr	w1, [x20, #84]
	ldr	w2, [x20, #4]
	str	x9, [sp]
Lloh42:
	adrp	x0, l_.str@PAGE
Lloh43:
	add	x0, x0, l_.str@PAGEOFF
	bl	_dbg_hid
	ldp	w1, w2, [x20, #88]
	ldp	w8, w9, [x20, #96]
	stp	x8, x9, [sp]
Lloh44:
	adrp	x0, l_.str.1@PAGE
Lloh45:
	add	x0, x0, l_.str.1@PAGEOFF
	bl	_dbg_hid
	mov	w4, #14
	b	LBB0_3
LBB0_13:
Lloh46:
	adrp	x9, l_switch.table.hidpp_ff_upload_effect@PAGE
Lloh47:
	add	x9, x9, l_switch.table.hidpp_ff_upload_effect@PAGEOFF
	ldr	x8, [x9, w8, sxtw #3]
	ldr	w8, [x8]
	str	w8, [sp, #28]
	ldr	w8, [x20, #4]
	mov	w9, #360
	mul	w8, w8, w9
	asr	w0, w8, #16
	bl	_fixp_sin16
	ldur	d0, [x20, #52]
	fmov	w1, s0
	ldr	w8, [x20, #60]
	mov.s	w9, v0[1]
	mov.s	v0[2], v0[1]
	movi.2d	v1, #0x0000ff000000ff
	and.16b	v2, v0, v1
	mov.s	v0[3], w8
	sshr.4s	v0, v0, #8
	rev64.4s	v2, v2
	trn2.4s	v0, v2, v0
	stur	q0, [sp, #52]
	fmov	d0, x8
	ldp	d2, d3, [x20, #64]
	zip1.2s	v0, v0, v2
	mov.d	v0[1], v2[0]
	fmov	w10, s2
	and.16b	v1, v0, v1
Lloh48:
	adrp	x11, lCPI0_1@PAGE
Lloh49:
	ldr	q2, [x11, lCPI0_1@PAGEOFF]
	sshl.4s	v0, v0, v2
	asr	w11, w1, #8
	str	w11, [sp, #48]
	rev64.4s	v1, v1
	trn2.4s	v0, v1, v0
	stur	q0, [sp, #68]
	movi	d0, #0x0000ff000000ff
	and.8b	v0, v3, v0
	sshr.2s	v1, v3, #7
	fmov	w11, s3
	asr	w11, w11, #8
	str	w11, [sp, #84]
	mov.s	v0[1], v1[1]
	str	d0, [sp, #88]
	ldr	w11, [x20, #80]
	asr	w12, w11, #8
	and	w11, w11, #0xff
	stp	w12, w11, [sp, #96]
	ldr	w2, [x20, #4]
	stp	x8, x10, [sp, #8]
	str	x9, [sp]
Lloh50:
	adrp	x0, l_.str.3@PAGE
Lloh51:
	add	x0, x0, l_.str.3@PAGEOFF
	bl	_dbg_hid
	ldp	w1, w2, [x20, #68]
	ldp	w8, w9, [x20, #76]
	stp	x8, x9, [sp]
Lloh52:
	adrp	x0, l_.str.1@PAGE
Lloh53:
	add	x0, x0, l_.str.1@PAGEOFF
	bl	_dbg_hid
	mov	w4, #20
	b	LBB0_3
LBB0_14:
	bl	___stack_chk_fail
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpAdd	Lloh3, Lloh4
	.loh AdrpAdd	Lloh13, Lloh14
	.loh AdrpAdd	Lloh11, Lloh12
	.loh AdrpLdrGotLdr	Lloh8, Lloh9, Lloh10
	.loh AdrpLdrGotLdr	Lloh5, Lloh6, Lloh7
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpAdd	Lloh18, Lloh19
	.loh AdrpAdd	Lloh20, Lloh21
	.loh AdrpLdrGotLdr	Lloh22, Lloh23, Lloh24
	.loh AdrpLdrGotLdr	Lloh25, Lloh26, Lloh27
	.loh AdrpAdd	Lloh35, Lloh36
	.loh AdrpAdd	Lloh33, Lloh34
	.loh AdrpLdr	Lloh31, Lloh32
	.loh AdrpLdrGotLdr	Lloh28, Lloh29, Lloh30
	.loh AdrpAdd	Lloh44, Lloh45
	.loh AdrpAdd	Lloh42, Lloh43
	.loh AdrpLdr	Lloh40, Lloh41
	.loh AdrpLdrGotLdr	Lloh37, Lloh38, Lloh39
	.loh AdrpAdd	Lloh52, Lloh53
	.loh AdrpAdd	Lloh50, Lloh51
	.loh AdrpLdr	Lloh48, Lloh49
	.loh AdrpAdd	Lloh46, Lloh47
	.cfi_endproc
	.section	__TEXT,__const
lJTI0_0:
	.byte	(LBB0_2-LBB0_2)>>2
	.byte	(LBB0_4-LBB0_2)>>2
	.byte	(LBB0_4-LBB0_2)>>2
	.byte	(LBB0_4-LBB0_2)>>2
	.byte	(LBB0_11-LBB0_2)>>2
	.byte	(LBB0_5-LBB0_2)>>2
	.byte	(LBB0_2-LBB0_2)>>2
	.byte	(LBB0_2-LBB0_2)>>2
	.byte	(LBB0_2-LBB0_2)>>2
	.byte	(LBB0_12-LBB0_2)>>2
                                        ; -- End function
	.comm	_HIDPP_FF_EFFECT_CONSTANT,4,2   ; @HIDPP_FF_EFFECT_CONSTANT
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"Uploading constant force level=%d in dir %d = %d\n"

l_.str.1:                               ; @.str.1
	.asciz	"          envelope attack=(%d, %d ms) fade=(%d, %d ms)\n"

	.comm	_HIDPP_FF_EFFECT_PERIODIC_SINE,4,2 ; @HIDPP_FF_EFFECT_PERIODIC_SINE
	.comm	_HIDPP_FF_EFFECT_PERIODIC_SQUARE,4,2 ; @HIDPP_FF_EFFECT_PERIODIC_SQUARE
	.comm	_HIDPP_FF_EFFECT_PERIODIC_SAWTOOTHUP,4,2 ; @HIDPP_FF_EFFECT_PERIODIC_SAWTOOTHUP
	.comm	_HIDPP_FF_EFFECT_PERIODIC_SAWTOOTHDOWN,4,2 ; @HIDPP_FF_EFFECT_PERIODIC_SAWTOOTHDOWN
	.comm	_HIDPP_FF_EFFECT_PERIODIC_TRIANGLE,4,2 ; @HIDPP_FF_EFFECT_PERIODIC_TRIANGLE
l_.str.2:                               ; @.str.2
	.asciz	"Unexpected periodic waveform type %i!\n"

	.comm	_EINVAL,4,2                     ; @EINVAL
l_.str.3:                               ; @.str.3
	.asciz	"Uploading periodic force mag=%d/dir=%d, offset=%d, period=%d ms, phase=%d\n"

	.comm	_HIDPP_FF_EFFECT_RAMP,4,2       ; @HIDPP_FF_EFFECT_RAMP
l_.str.4:                               ; @.str.4
	.asciz	"Uploading ramp force level=%d -> %d in dir %d = %d\n"

	.comm	_HIDPP_FF_CONDITION_CMDS,8,3    ; @HIDPP_FF_CONDITION_CMDS
l_.str.5:                               ; @.str.5
	.asciz	"Uploading %s force left coeff=%d, left sat=%d, right coeff=%d, right sat=%d\n"

	.comm	_HIDPP_FF_CONDITION_NAMES,8,3   ; @HIDPP_FF_CONDITION_NAMES
l_.str.6:                               ; @.str.6
	.asciz	"          deadband=%d, center=%d\n"

l_.str.7:                               ; @.str.7
	.asciz	"Unexpected force type %i!\n"

	.comm	_HIDPP_FF_DOWNLOAD_EFFECT,4,2   ; @HIDPP_FF_DOWNLOAD_EFFECT
	.no_dead_strip	_hidpp_ff_upload_effect
	.section	__DATA,__const
	.p2align	3                               ; @switch.table.hidpp_ff_upload_effect
l_switch.table.hidpp_ff_upload_effect:
	.quad	_HIDPP_FF_EFFECT_PERIODIC_TRIANGLE
	.quad	_HIDPP_FF_EFFECT_PERIODIC_SQUARE
	.quad	_HIDPP_FF_EFFECT_PERIODIC_SINE
	.quad	_HIDPP_FF_EFFECT_PERIODIC_SINE
	.quad	_HIDPP_FF_EFFECT_PERIODIC_SAWTOOTHUP
	.quad	_HIDPP_FF_EFFECT_PERIODIC_SAWTOOTHDOWN

.subsections_via_symbols
