	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function yealink_cmd
_yealink_cmd:                           ## @yealink_cmd
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r14
	pushq	%rbx
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	movq	%rsi, %rbx
	movq	_USB_PKT_LEN@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$2, %eax
	jl	LBB0_1
## %bb.2:
	decl	%eax
	cmpl	$4, %eax
	jae	LBB0_4
## %bb.3:
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	jmp	LBB0_12
LBB0_1:
	xorl	%edx, %edx
	jmp	LBB0_13
LBB0_4:
	movl	%eax, %ecx
	andl	$-4, %ecx
	leaq	-4(%rcx), %rsi
	movq	%rsi, %rdx
	shrq	$2, %rdx
	incq	%rdx
	movl	%edx, %r8d
	andl	$3, %r8d
	cmpq	$12, %rsi
	jae	LBB0_6
## %bb.5:
	pxor	%xmm0, %xmm0
	xorl	%esi, %esi
	pxor	%xmm1, %xmm1
	jmp	LBB0_8
LBB0_6:
	andq	$-4, %rdx
	pxor	%xmm0, %xmm0
	xorl	%esi, %esi
	pxor	%xmm1, %xmm1
	.p2align	4, 0x90
LBB0_7:                                 ## =>This Inner Loop Header: Depth=1
	movdqu	(%rbx,%rsi,8), %xmm2
	movdqu	16(%rbx,%rsi,8), %xmm3
	movdqu	32(%rbx,%rsi,8), %xmm4
	paddq	%xmm2, %xmm4
	movdqu	48(%rbx,%rsi,8), %xmm2
	paddq	%xmm3, %xmm2
	movdqu	64(%rbx,%rsi,8), %xmm3
	movdqu	80(%rbx,%rsi,8), %xmm5
	movdqu	96(%rbx,%rsi,8), %xmm6
	paddq	%xmm3, %xmm6
	paddq	%xmm4, %xmm6
	psubq	%xmm6, %xmm0
	movdqu	112(%rbx,%rsi,8), %xmm3
	paddq	%xmm5, %xmm3
	paddq	%xmm2, %xmm3
	psubq	%xmm3, %xmm1
	addq	$16, %rsi
	addq	$-4, %rdx
	jne	LBB0_7
LBB0_8:
	testq	%r8, %r8
	je	LBB0_11
## %bb.9:
	leaq	(%rbx,%rsi,8), %rdx
	addq	$16, %rdx
	shlq	$5, %r8
	xorl	%esi, %esi
	.p2align	4, 0x90
LBB0_10:                                ## =>This Inner Loop Header: Depth=1
	movdqu	-16(%rdx,%rsi), %xmm2
	psubq	%xmm2, %xmm0
	movdqu	(%rdx,%rsi), %xmm2
	psubq	%xmm2, %xmm1
	addq	$32, %rsi
	cmpq	%rsi, %r8
	jne	LBB0_10
LBB0_11:
	paddq	%xmm1, %xmm0
	pshufd	$238, %xmm0, %xmm1              ## xmm1 = xmm0[2,3,2,3]
	paddq	%xmm0, %xmm1
	movq	%xmm1, %rdx
	cmpq	%rax, %rcx
	je	LBB0_13
	.p2align	4, 0x90
LBB0_12:                                ## =>This Inner Loop Header: Depth=1
	subq	(%rbx,%rcx,8), %rdx
	incq	%rcx
	cmpq	%rcx, %rax
	jne	LBB0_12
LBB0_13:
	movq	%rdx, (%rbx)
	movl	(%rdi), %r14d
	movl	%r14d, %edi
	xorl	%esi, %esi
	callq	_usb_sndctrlpipe
	movq	_USB_REQ_SET_CONFIGURATION@GOTPCREL(%rip), %rcx
	movl	(%rcx), %edx
	movq	_USB_TYPE_CLASS@GOTPCREL(%rip), %rsi
	movq	_USB_RECIP_INTERFACE@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	orl	(%rsi), %ecx
	movq	_USB_DIR_OUT@GOTPCREL(%rip), %rsi
	orl	(%rsi), %ecx
	movq	_USB_CTRL_SET_TIMEOUT@GOTPCREL(%rip), %rsi
	movl	(%rsi), %r10d
	subq	$8, %rsp
	movl	%r14d, %edi
	movl	%eax, %esi
	movl	$512, %r8d                      ## imm = 0x200
	movl	$3, %r9d
	pushq	%r10
	pushq	$8
	pushq	%rbx
	callq	_usb_control_msg
	addq	$32, %rsp
	popq	%rbx
	popq	%r14
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_USB_PKT_LEN,4,2                ## @USB_PKT_LEN
	.comm	_USB_REQ_SET_CONFIGURATION,4,2  ## @USB_REQ_SET_CONFIGURATION
	.comm	_USB_TYPE_CLASS,4,2             ## @USB_TYPE_CLASS
	.comm	_USB_RECIP_INTERFACE,4,2        ## @USB_RECIP_INTERFACE
	.comm	_USB_DIR_OUT,4,2                ## @USB_DIR_OUT
	.comm	_USB_CTRL_SET_TIMEOUT,4,2       ## @USB_CTRL_SET_TIMEOUT
	.no_dead_strip	_yealink_cmd
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function yealink_cmd
_yealink_cmd:                           ; @yealink_cmd
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #48
	.cfi_def_cfa_offset 48
	stp	x20, x19, [sp, #16]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #32]             ; 16-byte Folded Spill
	add	x29, sp, #32
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	mov	x19, x1
Lloh0:
	adrp	x8, _USB_PKT_LEN@GOTPAGE
Lloh1:
	ldr	x8, [x8, _USB_PKT_LEN@GOTPAGEOFF]
Lloh2:
	ldr	w8, [x8]
	cmp	w8, #2
	b.lt	LBB0_3
; %bb.1:
	sub	w8, w8, #1
	cmp	w8, #8
	b.hs	LBB0_4
; %bb.2:
	mov	x9, #0
	mov	x10, #0
	b	LBB0_7
LBB0_3:
	mov	x10, #0
	b	LBB0_9
LBB0_4:
	and	x9, x8, #0xfffffff8
	add	x10, x19, #32
	movi.2d	v0, #0000000000000000
	mov	x11, x9
	movi.2d	v1, #0000000000000000
	movi.2d	v2, #0000000000000000
	movi.2d	v3, #0000000000000000
LBB0_5:                                 ; =>This Inner Loop Header: Depth=1
	ldp	q4, q5, [x10, #-32]
	ldp	q6, q7, [x10], #64
	sub.2d	v0, v0, v4
	sub.2d	v1, v1, v5
	sub.2d	v2, v2, v6
	sub.2d	v3, v3, v7
	subs	x11, x11, #8
	b.ne	LBB0_5
; %bb.6:
	add.2d	v0, v1, v0
	add.2d	v0, v2, v0
	add.2d	v0, v3, v0
	addp.2d	d0, v0
	fmov	x10, d0
	cmp	x9, x8
	b.eq	LBB0_9
LBB0_7:
	add	x11, x19, x9, lsl #3
	sub	x8, x8, x9
LBB0_8:                                 ; =>This Inner Loop Header: Depth=1
	ldr	x9, [x11], #8
	sub	x10, x10, x9
	subs	x8, x8, #1
	b.ne	LBB0_8
LBB0_9:
	str	x10, [x19]
	ldr	w20, [x0]
	mov	x0, x20
	mov	w1, #0
	bl	_usb_sndctrlpipe
	mov	x1, x0
Lloh3:
	adrp	x8, _USB_REQ_SET_CONFIGURATION@GOTPAGE
Lloh4:
	ldr	x8, [x8, _USB_REQ_SET_CONFIGURATION@GOTPAGEOFF]
Lloh5:
	ldr	w2, [x8]
Lloh6:
	adrp	x8, _USB_TYPE_CLASS@GOTPAGE
Lloh7:
	ldr	x8, [x8, _USB_TYPE_CLASS@GOTPAGEOFF]
Lloh8:
	ldr	w8, [x8]
Lloh9:
	adrp	x9, _USB_RECIP_INTERFACE@GOTPAGE
Lloh10:
	ldr	x9, [x9, _USB_RECIP_INTERFACE@GOTPAGEOFF]
Lloh11:
	ldr	w9, [x9]
Lloh12:
	adrp	x10, _USB_DIR_OUT@GOTPAGE
Lloh13:
	ldr	x10, [x10, _USB_DIR_OUT@GOTPAGEOFF]
	orr	w8, w9, w8
Lloh14:
	ldr	w9, [x10]
	orr	w3, w8, w9
Lloh15:
	adrp	x8, _USB_CTRL_SET_TIMEOUT@GOTPAGE
Lloh16:
	ldr	x8, [x8, _USB_CTRL_SET_TIMEOUT@GOTPAGEOFF]
Lloh17:
	ldr	w8, [x8]
	str	w8, [sp]
	mov	x0, x20
	mov	w4, #512
	mov	w5, #3
	mov	x6, x19
	mov	w7, #8
	bl	_usb_control_msg
	ldp	x29, x30, [sp, #32]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #48
	ret
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh6, Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.cfi_endproc
                                        ; -- End function
	.comm	_USB_PKT_LEN,4,2                ; @USB_PKT_LEN
	.comm	_USB_REQ_SET_CONFIGURATION,4,2  ; @USB_REQ_SET_CONFIGURATION
	.comm	_USB_TYPE_CLASS,4,2             ; @USB_TYPE_CLASS
	.comm	_USB_RECIP_INTERFACE,4,2        ; @USB_RECIP_INTERFACE
	.comm	_USB_DIR_OUT,4,2                ; @USB_DIR_OUT
	.comm	_USB_CTRL_SET_TIMEOUT,4,2       ; @USB_CTRL_SET_TIMEOUT
	.no_dead_strip	_yealink_cmd
.subsections_via_symbols
