	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function cp2112_xfer
_cp2112_xfer:                           ## @cp2112_xfer
	.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
	subq	$312, %rsp                      ## imm = 0x138
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movl	%r9d, %r15d
	movl	%r8d, %r14d
	movl	%edx, %r8d
	movl	%esi, %r12d
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	%rax, -48(%rbp)
	movq	(%rdi), %rax
	movq	%rax, -336(%rbp)                ## 8-byte Spill
	movq	(%rax), %rbx
	movq	_I2C_SMBUS_WRITE@GOTPCREL(%rip), %rax
	movl	%ecx, -308(%rbp)                ## 4-byte Spill
	cmpb	%cl, (%rax)
	leaq	L_.str.1(%rip), %rax
	leaq	L_.str.2(%rip), %rdx
	cmoveq	%rax, %rdx
	movl	%r9d, (%rsp)
	leaq	L_.str(%rip), %rsi
	xorl	%r13d, %r13d
	movq	%rbx, %rdi
	movl	%r12d, %ecx
	movl	%r14d, %r9d
	xorl	%eax, %eax
	callq	_hid_dbg
	leal	-128(%r15), %eax
	cmpl	$6, %eax
	ja	LBB0_4
## %bb.1:
	movq	16(%rbp), %rcx
	leaq	LJTI0_0(%rip), %rdx
	movslq	(%rdx,%rax,4), %rax
	addq	%rdx, %rax
	jmpq	*%rax
LBB0_2:
	movl	(%rcx), %edi
	callq	_cpu_to_le16
	movl	%eax, -316(%rbp)
	movq	_I2C_SMBUS_READ@GOTPCREL(%rip), %rax
	movl	-308(%rbp), %ecx                ## 4-byte Reload
	cmpb	%cl, (%rax)
	jne	LBB0_18
## %bb.3:
	leaq	-304(%rbp), %rdi
	movl	$2, %r15d
	movl	$2, %edx
	movl	%r12d, %esi
	xorl	%r12d, %r12d
	movl	%r14d, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	_cp2112_write_read_req
	movq	%rax, %r13
	movb	$-128, %al
	testq	%r13, %r13
	jns	LBB0_24
	jmp	LBB0_46
LBB0_4:
	leaq	L_.str.3(%rip), %rsi
	movq	%rbx, %rdi
	movl	%r15d, %edx
	xorl	%eax, %eax
	callq	_hid_warn
	movq	_EOPNOTSUPP@GOTPCREL(%rip), %rax
	subl	(%rax), %r13d
	jmp	LBB0_46
LBB0_5:
	movq	_I2C_SMBUS_READ@GOTPCREL(%rip), %rax
	movl	-308(%rbp), %edx                ## 4-byte Reload
	cmpb	%dl, (%rax)
	jne	LBB0_15
## %bb.6:
	movq	(%rcx), %rax
	movq	(%rax), %r15
	leaq	-304(%rbp), %rdi
	movl	%r12d, %esi
	xorl	%r12d, %r12d
	movq	%r15, %rdx
	movl	%r14d, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	_cp2112_write_read_req
	movq	%rax, %r13
	movb	$-126, %al
	testq	%r13, %r13
	jns	LBB0_24
	jmp	LBB0_46
LBB0_7:
	movq	_I2C_SMBUS_READ@GOTPCREL(%rip), %rax
	movl	-308(%rbp), %edx                ## 4-byte Reload
	cmpb	%dl, (%rax)
	jne	LBB0_16
## %bb.8:
	leaq	-304(%rbp), %rdi
	movl	$1, %r15d
	movl	$1, %edx
	movl	%r12d, %esi
	xorl	%r12d, %r12d
	movl	%r14d, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	_cp2112_write_read_req
	movq	%rax, %r13
	movb	$-125, %al
	testq	%r13, %r13
	jns	LBB0_24
	jmp	LBB0_46
LBB0_9:
	movq	_I2C_SMBUS_READ@GOTPCREL(%rip), %rax
	movl	-308(%rbp), %ecx                ## 4-byte Reload
	cmpb	%cl, (%rax)
	jne	LBB0_17
## %bb.10:
	leaq	-304(%rbp), %rdi
	movl	$1, %r15d
	movl	$1, %edx
	movl	%r12d, %esi
	callq	_cp2112_read_req
	movq	%rax, %r13
	movb	$-124, %al
	jmp	LBB0_20
LBB0_11:
	movq	_I2C_SMBUS_READ@GOTPCREL(%rip), %rax
	movb	(%rax), %al
	movl	%eax, -308(%rbp)                ## 4-byte Spill
	movl	(%rcx), %edi
	callq	_cpu_to_le16
	movl	%eax, -316(%rbp)
	leaq	-304(%rbp), %rdi
	movl	$2, %r15d
	leaq	-316(%rbp), %r8
	movl	$2, %edx
	movl	%r12d, %esi
	movl	%r14d, %ecx
	movl	$2, %r9d
	callq	_cp2112_write_read_req
	movq	%rax, %r13
	jmp	LBB0_19
LBB0_12:
	movq	_I2C_SMBUS_READ@GOTPCREL(%rip), %rax
	movb	(%rax), %al
	movl	%eax, -308(%rbp)                ## 4-byte Spill
	movq	_I2C_SMBUS_BLOCK_MAX@GOTPCREL(%rip), %rax
	movq	(%rax), %rdx
	movq	(%rcx), %r8
	movl	(%r8), %r9d
	incl	%r9d
	leaq	-304(%rbp), %rdi
	movl	%r12d, %esi
	movl	%r14d, %ecx
	callq	_cp2112_write_read_req
	jmp	LBB0_22
LBB0_13:
	movq	_I2C_SMBUS_READ@GOTPCREL(%rip), %rax
	movl	-308(%rbp), %edx                ## 4-byte Reload
	cmpb	%dl, (%rax)
	jne	LBB0_21
## %bb.14:
	movq	_I2C_SMBUS_BLOCK_MAX@GOTPCREL(%rip), %rax
	movq	(%rax), %rdx
	xorl	%r15d, %r15d
	leaq	-304(%rbp), %rdi
	movl	%r12d, %esi
	movl	%r14d, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	_cp2112_write_read_req
	movq	%rax, %r13
	movb	$-122, %al
	movb	$1, %r12b
	testq	%r13, %r13
	jns	LBB0_24
	jmp	LBB0_46
LBB0_15:
	movq	(%rcx), %rcx
	movl	(%rcx), %r8d
	addq	$8, %rcx
	leaq	-304(%rbp), %rdi
	movl	%r12d, %esi
	movl	%r14d, %edx
	callq	_cp2112_write_req
	movq	%rax, %r13
	movb	$-126, %al
	xorl	%r12d, %r12d
	jmp	LBB0_23
LBB0_16:
	leaq	-304(%rbp), %rdi
	movl	%r12d, %esi
	movl	%r14d, %edx
	movl	$1, %r8d
	callq	_cp2112_write_req
	movq	%rax, %r13
	movl	$1, %r15d
	movb	$-125, %al
	jmp	LBB0_20
LBB0_17:
	leaq	-304(%rbp), %rdi
	movl	%r12d, %esi
	xorl	%r12d, %r12d
	movl	%r14d, %edx
	xorl	%ecx, %ecx
	xorl	%r8d, %r8d
	callq	_cp2112_write_req
	movq	%rax, %r13
	movl	$1, %r15d
	movb	$-124, %al
	testq	%r13, %r13
	jns	LBB0_24
	jmp	LBB0_46
LBB0_18:
	leaq	-304(%rbp), %rdi
	leaq	-316(%rbp), %rcx
	movl	%r12d, %esi
	movl	%r14d, %edx
	movl	$2, %r8d
	callq	_cp2112_write_req
	movq	%rax, %r13
	movl	$2, %r15d
LBB0_19:
	movb	$-128, %al
LBB0_20:
	xorl	%r12d, %r12d
	testq	%r13, %r13
	jns	LBB0_24
	jmp	LBB0_46
LBB0_21:
	movq	(%rcx), %rcx
	movl	(%rcx), %r8d
	incl	%r8d
	leaq	-304(%rbp), %rdi
	movl	%r12d, %esi
	movl	%r14d, %edx
	callq	_cp2112_write_req
LBB0_22:
	movq	%rax, %r13
	movb	$-122, %al
	movb	$1, %r12b
LBB0_23:
	xorl	%r15d, %r15d
	testq	%r13, %r13
	js	LBB0_46
LBB0_24:
	movb	%al, -309(%rbp)                 ## 1-byte Spill
	movq	%r15, %r14
	movq	_PM_HINT_FULLON@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%rbx, %rdi
	callq	_hid_hw_power
	movq	%rbx, %r15
	testl	%eax, %eax
	js	LBB0_30
## %bb.25:
	movq	%r12, -344(%rbp)                ## 8-byte Spill
	movq	_HID_OUTPUT_REPORT@GOTPCREL(%rip), %r12
	movl	(%r12), %ecx
	leaq	-304(%rbp), %rsi
	movq	%r15, %rdi
	movl	%r13d, %edx
	callq	_cp2112_hid_output
	testl	%eax, %eax
	js	LBB0_31
## %bb.26:
	movq	_XFER_STATUS_RETRIES@GOTPCREL(%rip), %r13
	cmpl	$0, (%r13)
	je	LBB0_41
## %bb.27:
	movq	%r15, -328(%rbp)                ## 8-byte Spill
	xorl	%ebx, %ebx
	movq	_EBUSY@GOTPCREL(%rip), %r15
	.p2align	4, 0x90
LBB0_28:                                ## =>This Inner Loop Header: Depth=1
	movq	-336(%rbp), %rdi                ## 8-byte Reload
	callq	_cp2112_xfer_status
	movl	(%r15), %ecx
	addl	%eax, %ecx
	jne	LBB0_32
## %bb.29:                              ##   in Loop: Header=BB0_28 Depth=1
	incl	%ebx
	movl	(%r13), %ecx
	cmpl	%ecx, %ebx
	jb	LBB0_28
	jmp	LBB0_34
LBB0_30:
	movl	%eax, %ebx
	leaq	L_.str.4(%rip), %rsi
	movq	%r15, %rdi
	movl	%eax, %edx
	callq	_hid_err
	movl	%ebx, %r13d
	jmp	LBB0_46
LBB0_31:
	movl	%eax, %r13d
	leaq	L_.str.5(%rip), %rsi
	movq	%r15, %rdi
	movl	%eax, %edx
	xorl	%eax, %eax
	callq	_hid_warn
	jmp	LBB0_45
LBB0_32:
	testl	%eax, %eax
	js	LBB0_48
## %bb.33:
	movl	(%r13), %ecx
LBB0_34:
	cmpl	%ebx, %ecx
	movq	-328(%rbp), %r15                ## 8-byte Reload
	jbe	LBB0_41
## %bb.35:
	xorl	%r13d, %r13d
	movl	-308(%rbp), %ecx                ## 4-byte Reload
	movq	_I2C_SMBUS_WRITE@GOTPCREL(%rip), %rdx
	cmpb	%cl, (%rdx)
	je	LBB0_45
## %bb.36:
	cltq
	cmpb	$0, -344(%rbp)                  ## 1-byte Folded Reload
	cmovneq	%rax, %r14
	leaq	-304(%rbp), %rsi
	movq	-336(%rbp), %rdi                ## 8-byte Reload
	movq	%r14, %rdx
	callq	_cp2112_read
	testl	%eax, %eax
	js	LBB0_49
## %bb.37:
	movl	%eax, %ecx
	cmpq	%rcx, %r14
	jne	LBB0_50
## %bb.38:
	movb	-309(%rbp), %al                 ## 1-byte Reload
	addb	$-128, %al
	cmpb	$6, %al
	ja	LBB0_45
## %bb.39:
	movzbl	%al, %eax
	leaq	LJTI0_1(%rip), %rcx
	movslq	(%rcx,%rax,4), %rax
	addq	%rcx, %rax
	jmpq	*%rax
LBB0_40:
	movl	-304(%rbp), %eax
	jmp	LBB0_52
LBB0_41:
	leaq	L_.str.6(%rip), %rsi
	xorl	%r13d, %r13d
	movq	%r15, %rdi
	xorl	%eax, %eax
	callq	_hid_warn
	movq	_CP2112_CANCEL_TRANSFER@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, -304(%rbp)
	movl	$1, -300(%rbp)
	movl	(%r12), %ecx
	leaq	-304(%rbp), %rsi
	movq	%r15, %rdi
	movl	$2, %edx
	callq	_cp2112_hid_output
	testl	%eax, %eax
	jns	LBB0_43
## %bb.42:
	leaq	L_.str.7(%rip), %rsi
	movq	%r15, %rdi
	movl	%eax, %edx
	xorl	%eax, %eax
	callq	_hid_warn
LBB0_43:
	movq	_ETIMEDOUT@GOTPCREL(%rip), %rax
LBB0_44:
	subl	(%rax), %r13d
LBB0_45:
	movq	_PM_HINT_NORMAL@GOTPCREL(%rip), %rax
	movl	(%rax), %esi
	movq	%r15, %rdi
	callq	_hid_hw_power
	leaq	L_.str.9(%rip), %rsi
	movq	%r15, %rdi
	movl	%r13d, %edx
	xorl	%eax, %eax
	callq	_hid_dbg
LBB0_46:
	movq	___stack_chk_guard@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	cmpq	-48(%rbp), %rax
	jne	LBB0_58
## %bb.47:
	movl	%r13d, %eax
	addq	$312, %rsp                      ## imm = 0x138
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_48:
	movl	%eax, %r13d
	movq	-328(%rbp), %r15                ## 8-byte Reload
	jmp	LBB0_45
LBB0_49:
	movl	%eax, %r13d
	jmp	LBB0_45
LBB0_50:
	leaq	L_.str.8(%rip), %rsi
	xorl	%r13d, %r13d
	movq	%r15, %rdi
	movl	%eax, %edx
	movq	%r14, %rcx
	xorl	%eax, %eax
	callq	_hid_warn
	movq	_EIO@GOTPCREL(%rip), %rax
	jmp	LBB0_44
LBB0_51:
	leaq	-304(%rbp), %rdi
	callq	_le16_to_cpup
LBB0_52:
	movq	16(%rbp), %rcx
	movl	%eax, (%rcx)
	jmp	LBB0_45
LBB0_53:
	movq	16(%rbp), %rax
	movq	(%rax), %rdi
	addq	$8, %rdi
	jmp	LBB0_57
LBB0_54:
	movq	_I2C_SMBUS_BLOCK_MAX@GOTPCREL(%rip), %rax
	cmpq	(%rax), %r14
	jbe	LBB0_56
## %bb.55:
	movq	_EPROTO@GOTPCREL(%rip), %rax
	xorl	%r13d, %r13d
	jmp	LBB0_44
LBB0_56:
	movq	16(%rbp), %rax
	movq	(%rax), %rdi
LBB0_57:
	leaq	-304(%rbp), %rsi
	movq	%r14, %rdx
	callq	_memcpy
	jmp	LBB0_45
LBB0_58:
	callq	___stack_chk_fail
	.cfi_endproc
	.p2align	2, 0x90
	.data_region jt32
.set L0_0_set_2, LBB0_2-LJTI0_0
.set L0_0_set_11, LBB0_11-LJTI0_0
.set L0_0_set_5, LBB0_5-LJTI0_0
.set L0_0_set_7, LBB0_7-LJTI0_0
.set L0_0_set_9, LBB0_9-LJTI0_0
.set L0_0_set_12, LBB0_12-LJTI0_0
.set L0_0_set_13, LBB0_13-LJTI0_0
LJTI0_0:
	.long	L0_0_set_2
	.long	L0_0_set_11
	.long	L0_0_set_5
	.long	L0_0_set_7
	.long	L0_0_set_9
	.long	L0_0_set_12
	.long	L0_0_set_13
.set L0_1_set_51, LBB0_51-LJTI0_1
.set L0_1_set_45, LBB0_45-LJTI0_1
.set L0_1_set_53, LBB0_53-LJTI0_1
.set L0_1_set_40, LBB0_40-LJTI0_1
.set L0_1_set_54, LBB0_54-LJTI0_1
LJTI0_1:
	.long	L0_1_set_51
	.long	L0_1_set_45
	.long	L0_1_set_53
	.long	L0_1_set_40
	.long	L0_1_set_40
	.long	L0_1_set_45
	.long	L0_1_set_54
	.end_data_region
                                        ## -- End function
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"%s addr 0x%x flags 0x%x cmd 0x%x size %d\n"

	.comm	_I2C_SMBUS_WRITE,1,0            ## @I2C_SMBUS_WRITE
L_.str.1:                               ## @.str.1
	.asciz	"write"

L_.str.2:                               ## @.str.2
	.asciz	"read"

	.comm	_I2C_SMBUS_READ,1,0             ## @I2C_SMBUS_READ
	.comm	_I2C_SMBUS_BLOCK_MAX,8,3        ## @I2C_SMBUS_BLOCK_MAX
L_.str.3:                               ## @.str.3
	.asciz	"Unsupported transaction %d\n"

	.comm	_EOPNOTSUPP,4,2                 ## @EOPNOTSUPP
	.comm	_PM_HINT_FULLON,4,2             ## @PM_HINT_FULLON
L_.str.4:                               ## @.str.4
	.asciz	"power management error: %d\n"

	.comm	_HID_OUTPUT_REPORT,4,2          ## @HID_OUTPUT_REPORT
L_.str.5:                               ## @.str.5
	.asciz	"Error starting transaction: %d\n"

	.comm	_XFER_STATUS_RETRIES,4,2        ## @XFER_STATUS_RETRIES
	.comm	_EBUSY,4,2                      ## @EBUSY
L_.str.6:                               ## @.str.6
	.asciz	"Transfer timed out, cancelling.\n"

	.comm	_CP2112_CANCEL_TRANSFER,4,2     ## @CP2112_CANCEL_TRANSFER
L_.str.7:                               ## @.str.7
	.asciz	"Error cancelling transaction: %d\n"

	.comm	_ETIMEDOUT,4,2                  ## @ETIMEDOUT
L_.str.8:                               ## @.str.8
	.asciz	"short read: %d < %zd\n"

	.comm	_EIO,4,2                        ## @EIO
	.comm	_EPROTO,4,2                     ## @EPROTO
	.comm	_PM_HINT_NORMAL,4,2             ## @PM_HINT_NORMAL
L_.str.9:                               ## @.str.9
	.asciz	"transfer finished: %d\n"

	.no_dead_strip	_cp2112_xfer
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function cp2112_xfer
_cp2112_xfer:                           ; @cp2112_xfer
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #432
	.cfi_def_cfa_offset 432
	stp	x28, x27, [sp, #336]            ; 16-byte Folded Spill
	stp	x26, x25, [sp, #352]            ; 16-byte Folded Spill
	stp	x24, x23, [sp, #368]            ; 16-byte Folded Spill
	stp	x22, x21, [sp, #384]            ; 16-byte Folded Spill
	stp	x20, x19, [sp, #400]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #416]            ; 16-byte Folded Spill
	add	x29, sp, #416
	.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
	.cfi_offset w23, -56
	.cfi_offset w24, -64
	.cfi_offset w25, -72
	.cfi_offset w26, -80
	.cfi_offset w27, -88
	.cfi_offset w28, -96
	mov	x20, x6
	mov	x22, x5
	mov	x23, x4
	mov	x24, x1
Lloh0:
	adrp	x8, ___stack_chk_guard@GOTPAGE
Lloh1:
	ldr	x8, [x8, ___stack_chk_guard@GOTPAGEOFF]
Lloh2:
	ldr	x8, [x8]
	stur	x8, [x29, #-96]
	and	w25, w3, #0xff
	ldr	x21, [x0]
	ldr	x19, [x21]
Lloh3:
	adrp	x8, _I2C_SMBUS_WRITE@GOTPAGE
Lloh4:
	ldr	x8, [x8, _I2C_SMBUS_WRITE@GOTPAGEOFF]
	ldrb	w8, [x8]
Lloh5:
	adrp	x9, l_.str.2@PAGE
Lloh6:
	add	x9, x9, l_.str.2@PAGEOFF
Lloh7:
	adrp	x10, l_.str.1@PAGE
Lloh8:
	add	x10, x10, l_.str.1@PAGEOFF
	cmp	w8, w25
	csel	x8, x10, x9, eq
	stp	x23, x22, [sp, #24]
	mov	w9, w2
	stp	x24, x9, [sp, #8]
	str	x8, [sp]
Lloh9:
	adrp	x1, l_.str@PAGE
Lloh10:
	add	x1, x1, l_.str@PAGEOFF
	mov	x0, x19
	bl	_hid_dbg
	sub	w8, w22, #128
	cmp	w8, #6
	b.hi	LBB0_4
; %bb.1:
Lloh11:
	adrp	x9, lJTI0_0@PAGE
Lloh12:
	add	x9, x9, lJTI0_0@PAGEOFF
	adr	x10, LBB0_2
	ldrb	w11, [x9, x8]
	add	x10, x10, x11, lsl #2
	br	x10
LBB0_2:
	ldr	w0, [x20]
	bl	_cpu_to_le16
	str	w0, [sp, #60]
Lloh13:
	adrp	x8, _I2C_SMBUS_READ@GOTPAGE
Lloh14:
	ldr	x8, [x8, _I2C_SMBUS_READ@GOTPAGEOFF]
	ldrb	w8, [x8]
	mov	w22, #2
	add	x0, sp, #64
	cmp	w8, w25
	b.ne	LBB0_21
; %bb.3:
	mov	x1, x24
	mov	w2, #2
	mov	x3, x23
	mov	x4, #0
	mov	w5, #0
	b	LBB0_12
LBB0_4:
                                        ; kill: def $w22 killed $w22 killed $x22 def $x22
	str	x22, [sp]
Lloh15:
	adrp	x1, l_.str.3@PAGE
Lloh16:
	add	x1, x1, l_.str.3@PAGEOFF
	mov	x0, x19
	bl	_hid_warn
Lloh17:
	adrp	x8, _EOPNOTSUPP@GOTPAGE
Lloh18:
	ldr	x8, [x8, _EOPNOTSUPP@GOTPAGEOFF]
Lloh19:
	ldr	w8, [x8]
	neg	w24, w8
	b	LBB0_44
LBB0_5:
Lloh20:
	adrp	x8, _I2C_SMBUS_READ@GOTPAGE
Lloh21:
	ldr	x8, [x8, _I2C_SMBUS_READ@GOTPAGEOFF]
	ldrb	w8, [x8]
	cmp	w8, w25
	b.ne	LBB0_17
; %bb.6:
	ldr	x8, [x20]
	ldr	x22, [x8]
	add	x0, sp, #64
	mov	x1, x24
	mov	x2, x22
	mov	x3, x23
	mov	x4, #0
	mov	w5, #0
	bl	_cp2112_write_read_req
	mov	x23, x0
	mov	w28, #0
	mov	w27, #2
	tbz	x23, #63, LBB0_23
	b	LBB0_43
LBB0_7:
Lloh22:
	adrp	x8, _I2C_SMBUS_READ@GOTPAGE
Lloh23:
	ldr	x8, [x8, _I2C_SMBUS_READ@GOTPAGEOFF]
	ldrb	w8, [x8]
	mov	w22, #1
	add	x0, sp, #64
	mov	x1, x24
	cmp	w8, w25
	b.ne	LBB0_18
; %bb.8:
	mov	w2, #1
	mov	x3, x23
	mov	x4, #0
	mov	w5, #0
	bl	_cp2112_write_read_req
	b	LBB0_19
LBB0_9:
Lloh24:
	adrp	x8, _I2C_SMBUS_READ@GOTPAGE
Lloh25:
	ldr	x8, [x8, _I2C_SMBUS_READ@GOTPAGEOFF]
	ldrb	w8, [x8]
	cmp	w8, w25
	b.ne	LBB0_20
; %bb.10:
	mov	w22, #1
	add	x0, sp, #64
	mov	x1, x24
	mov	w2, #1
	bl	_cp2112_read_req
	mov	x23, x0
	mov	w28, #0
	mov	w27, #4
	tbz	x23, #63, LBB0_23
	b	LBB0_43
LBB0_11:
Lloh26:
	adrp	x8, _I2C_SMBUS_READ@GOTPAGE
Lloh27:
	ldr	x8, [x8, _I2C_SMBUS_READ@GOTPAGEOFF]
	ldrb	w25, [x8]
	ldr	w0, [x20]
	bl	_cpu_to_le16
	str	w0, [sp, #60]
	mov	w22, #2
	add	x0, sp, #64
	add	x4, sp, #60
	mov	x1, x24
	mov	w2, #2
	mov	x3, x23
	mov	w5, #2
LBB0_12:
	bl	_cp2112_write_read_req
	b	LBB0_22
LBB0_13:
Lloh28:
	adrp	x8, _I2C_SMBUS_READ@GOTPAGE
Lloh29:
	ldr	x8, [x8, _I2C_SMBUS_READ@GOTPAGEOFF]
	ldrb	w25, [x8]
Lloh30:
	adrp	x8, _I2C_SMBUS_BLOCK_MAX@GOTPAGE
Lloh31:
	ldr	x8, [x8, _I2C_SMBUS_BLOCK_MAX@GOTPAGEOFF]
Lloh32:
	ldr	x2, [x8]
	ldr	x4, [x20]
	ldr	w8, [x4]
	add	w5, w8, #1
	add	x0, sp, #64
	mov	x1, x24
	mov	x3, x23
	b	LBB0_16
LBB0_14:
Lloh33:
	adrp	x8, _I2C_SMBUS_READ@GOTPAGE
Lloh34:
	ldr	x8, [x8, _I2C_SMBUS_READ@GOTPAGEOFF]
	ldrb	w8, [x8]
	cmp	w8, w25
	b.ne	LBB0_41
; %bb.15:
Lloh35:
	adrp	x8, _I2C_SMBUS_BLOCK_MAX@GOTPAGE
Lloh36:
	ldr	x8, [x8, _I2C_SMBUS_BLOCK_MAX@GOTPAGEOFF]
Lloh37:
	ldr	x2, [x8]
	add	x0, sp, #64
	mov	x1, x24
	mov	x3, x23
	mov	x4, #0
	mov	w5, #0
LBB0_16:
	bl	_cp2112_write_read_req
	b	LBB0_42
LBB0_17:
	ldr	x3, [x20]
	ldr	w4, [x3], #8
	add	x0, sp, #64
	mov	x1, x24
	mov	x2, x23
	bl	_cp2112_write_req
	mov	x23, x0
	mov	w28, #0
	mov	x22, #0
	mov	w27, #2
	tbz	x23, #63, LBB0_23
	b	LBB0_43
LBB0_18:
	mov	x2, x23
	mov	x3, x20
	mov	w4, #1
	bl	_cp2112_write_req
LBB0_19:
	mov	x23, x0
	mov	w28, #0
	mov	w27, #3
	tbz	x23, #63, LBB0_23
	b	LBB0_43
LBB0_20:
	add	x0, sp, #64
	mov	x1, x24
	mov	x2, x23
	mov	x3, #0
	mov	w4, #0
	bl	_cp2112_write_req
	mov	x23, x0
	mov	w28, #0
	mov	w27, #4
	mov	w22, #1
	tbz	x23, #63, LBB0_23
	b	LBB0_43
LBB0_21:
	add	x3, sp, #60
	mov	x1, x24
	mov	x2, x23
	mov	w4, #2
	bl	_cp2112_write_req
LBB0_22:
	mov	x23, x0
	mov	w28, #0
	mov	w27, #0
	tbnz	x23, #63, LBB0_43
LBB0_23:
Lloh38:
	adrp	x8, _PM_HINT_FULLON@GOTPAGE
Lloh39:
	ldr	x8, [x8, _PM_HINT_FULLON@GOTPAGEOFF]
Lloh40:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_hid_hw_power
	tbnz	w0, #31, LBB0_32
; %bb.24:
Lloh41:
	adrp	x26, _HID_OUTPUT_REPORT@GOTPAGE
Lloh42:
	ldr	x26, [x26, _HID_OUTPUT_REPORT@GOTPAGEOFF]
	ldr	w3, [x26]
	add	x1, sp, #64
	mov	x0, x19
	mov	x2, x23
	bl	_cp2112_hid_output
	tbnz	w0, #31, LBB0_33
; %bb.25:
	str	w27, [sp, #56]                  ; 4-byte Folded Spill
	str	x20, [sp, #48]                  ; 8-byte Folded Spill
Lloh43:
	adrp	x20, _XFER_STATUS_RETRIES@GOTPAGE
Lloh44:
	ldr	x20, [x20, _XFER_STATUS_RETRIES@GOTPAGEOFF]
	ldr	w8, [x20]
	cbz	w8, LBB0_36
; %bb.26:
	mov	x27, x22
	mov	w23, #0
Lloh45:
	adrp	x22, _EBUSY@GOTPAGE
Lloh46:
	ldr	x22, [x22, _EBUSY@GOTPAGEOFF]
LBB0_27:                                ; =>This Inner Loop Header: Depth=1
	mov	x0, x21
	bl	_cp2112_xfer_status
	mov	x24, x0
	ldr	w8, [x22]
	cmn	w0, w8
	b.ne	LBB0_34
; %bb.28:                               ;   in Loop: Header=BB0_27 Depth=1
	add	w23, w23, #1
	ldr	w8, [x20]
	cmp	w23, w8
	b.lo	LBB0_27
; %bb.29:
	cmp	w8, w23
	b.ls	LBB0_36
LBB0_30:
Lloh47:
	adrp	x8, _I2C_SMBUS_WRITE@GOTPAGE
Lloh48:
	ldr	x8, [x8, _I2C_SMBUS_WRITE@GOTPAGEOFF]
	ldrb	w8, [x8]
	cmp	w8, w25
	b.ne	LBB0_46
LBB0_31:
	mov	w24, #0
	b	LBB0_40
LBB0_32:
	mov	x24, x0
Lloh49:
	adrp	x1, l_.str.4@PAGE
Lloh50:
	add	x1, x1, l_.str.4@PAGEOFF
	mov	x0, x19
	mov	x2, x24
	bl	_hid_err
	b	LBB0_44
LBB0_33:
	mov	x24, x0
	str	x24, [sp]
Lloh51:
	adrp	x1, l_.str.5@PAGE
Lloh52:
	add	x1, x1, l_.str.5@PAGEOFF
	mov	x0, x19
	bl	_hid_warn
                                        ; kill: def $w24 killed $w24 killed $x24 def $x24
	b	LBB0_40
LBB0_34:
	tbnz	w24, #31, LBB0_40
; %bb.35:
	ldr	w8, [x20]
	cmp	w8, w23
	b.hi	LBB0_30
LBB0_36:
Lloh53:
	adrp	x1, l_.str.6@PAGE
Lloh54:
	add	x1, x1, l_.str.6@PAGEOFF
	mov	x0, x19
	bl	_hid_warn
Lloh55:
	adrp	x8, _CP2112_CANCEL_TRANSFER@GOTPAGE
Lloh56:
	ldr	x8, [x8, _CP2112_CANCEL_TRANSFER@GOTPAGEOFF]
Lloh57:
	ldr	w8, [x8]
	mov	w9, #1
	stp	w8, w9, [sp, #64]
	ldr	w3, [x26]
	add	x1, sp, #64
	mov	x0, x19
	mov	w2, #2
	bl	_cp2112_hid_output
                                        ; kill: def $w0 killed $w0 def $x0
	tbz	w0, #31, LBB0_38
; %bb.37:
	str	x0, [sp]
Lloh58:
	adrp	x1, l_.str.7@PAGE
Lloh59:
	add	x1, x1, l_.str.7@PAGEOFF
	mov	x0, x19
	bl	_hid_warn
LBB0_38:
Lloh60:
	adrp	x8, _ETIMEDOUT@GOTPAGE
Lloh61:
	ldr	x8, [x8, _ETIMEDOUT@GOTPAGEOFF]
LBB0_39:
	ldr	w8, [x8]
	neg	w24, w8
LBB0_40:
Lloh62:
	adrp	x8, _PM_HINT_NORMAL@GOTPAGE
Lloh63:
	ldr	x8, [x8, _PM_HINT_NORMAL@GOTPAGEOFF]
Lloh64:
	ldr	w1, [x8]
	mov	x0, x19
	bl	_hid_hw_power
	str	x24, [sp]
Lloh65:
	adrp	x1, l_.str.9@PAGE
Lloh66:
	add	x1, x1, l_.str.9@PAGEOFF
	mov	x0, x19
	bl	_hid_dbg
	b	LBB0_44
LBB0_41:
	ldr	x3, [x20]
	ldr	w8, [x3]
	add	w4, w8, #1
	add	x0, sp, #64
	mov	x1, x24
	mov	x2, x23
	bl	_cp2112_write_req
LBB0_42:
	mov	x23, x0
	mov	x22, #0
	mov	w27, #6
	mov	w28, #1
	tbz	x23, #63, LBB0_23
LBB0_43:
	mov	x24, x23
LBB0_44:
	ldur	x8, [x29, #-96]
Lloh67:
	adrp	x9, ___stack_chk_guard@GOTPAGE
Lloh68:
	ldr	x9, [x9, ___stack_chk_guard@GOTPAGEOFF]
Lloh69:
	ldr	x9, [x9]
	cmp	x9, x8
	b.ne	LBB0_58
; %bb.45:
	mov	x0, x24
	ldp	x29, x30, [sp, #416]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #400]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #384]            ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #368]            ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #352]            ; 16-byte Folded Reload
	ldp	x28, x27, [sp, #336]            ; 16-byte Folded Reload
	add	sp, sp, #432
	ret
LBB0_46:
                                        ; kill: def $w24 killed $w24 killed $x24 def $x24
	sxtw	x8, w24
	cmp	w28, #0
	csel	x22, x8, x27, ne
	add	x1, sp, #64
	mov	x0, x21
	mov	x2, x22
	bl	_cp2112_read
	mov	x24, x0
	tbnz	w0, #31, LBB0_40
; %bb.47:
	cmp	x22, w24, uxtw
	b.ne	LBB0_51
; %bb.48:
	mov	w24, #0
	ldr	w8, [sp, #56]                   ; 4-byte Folded Reload
	cmp	w8, #7
	b.eq	LBB0_40
; %bb.49:
	mov	w8, w8
Lloh70:
	adrp	x9, lJTI0_1@PAGE
Lloh71:
	add	x9, x9, lJTI0_1@PAGEOFF
	adr	x10, LBB0_40
	ldrb	w11, [x9, x8]
	add	x10, x10, x11, lsl #2
	br	x10
LBB0_50:
	mov	w24, #0
	ldr	w8, [sp, #64]
	ldr	x9, [sp, #48]                   ; 8-byte Folded Reload
	str	w8, [x9]
	b	LBB0_40
LBB0_51:
                                        ; kill: def $w24 killed $w24 killed $x24 def $x24
	stp	x24, x22, [sp]
Lloh72:
	adrp	x1, l_.str.8@PAGE
Lloh73:
	add	x1, x1, l_.str.8@PAGEOFF
	mov	x0, x19
	bl	_hid_warn
Lloh74:
	adrp	x8, _EIO@GOTPAGE
Lloh75:
	ldr	x8, [x8, _EIO@GOTPAGEOFF]
	b	LBB0_39
LBB0_52:
	add	x0, sp, #64
	bl	_le16_to_cpup
	mov	w24, #0
	ldr	x8, [sp, #48]                   ; 8-byte Folded Reload
	str	w0, [x8]
	b	LBB0_40
LBB0_53:
	ldr	x8, [sp, #48]                   ; 8-byte Folded Reload
	ldr	x8, [x8]
	add	x0, x8, #8
	b	LBB0_57
LBB0_54:
Lloh76:
	adrp	x8, _I2C_SMBUS_BLOCK_MAX@GOTPAGE
Lloh77:
	ldr	x8, [x8, _I2C_SMBUS_BLOCK_MAX@GOTPAGEOFF]
Lloh78:
	ldr	x8, [x8]
	cmp	x22, x8
	b.ls	LBB0_56
; %bb.55:
Lloh79:
	adrp	x8, _EPROTO@GOTPAGE
Lloh80:
	ldr	x8, [x8, _EPROTO@GOTPAGEOFF]
	b	LBB0_39
LBB0_56:
	ldr	x8, [sp, #48]                   ; 8-byte Folded Reload
	ldr	x0, [x8]
LBB0_57:
	add	x1, sp, #64
	mov	x2, x22
	bl	_memcpy
	b	LBB0_31
LBB0_58:
	bl	___stack_chk_fail
	.loh AdrpAdd	Lloh9, Lloh10
	.loh AdrpAdd	Lloh7, Lloh8
	.loh AdrpAdd	Lloh5, Lloh6
	.loh AdrpLdrGot	Lloh3, Lloh4
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpAdd	Lloh11, Lloh12
	.loh AdrpLdrGot	Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh17, Lloh18, Lloh19
	.loh AdrpAdd	Lloh15, Lloh16
	.loh AdrpLdrGot	Lloh20, Lloh21
	.loh AdrpLdrGot	Lloh22, Lloh23
	.loh AdrpLdrGot	Lloh24, Lloh25
	.loh AdrpLdrGot	Lloh26, Lloh27
	.loh AdrpLdrGotLdr	Lloh30, Lloh31, Lloh32
	.loh AdrpLdrGot	Lloh28, Lloh29
	.loh AdrpLdrGot	Lloh33, Lloh34
	.loh AdrpLdrGotLdr	Lloh35, Lloh36, Lloh37
	.loh AdrpLdrGotLdr	Lloh38, Lloh39, Lloh40
	.loh AdrpLdrGot	Lloh41, Lloh42
	.loh AdrpLdrGot	Lloh43, Lloh44
	.loh AdrpLdrGot	Lloh45, Lloh46
	.loh AdrpLdrGot	Lloh47, Lloh48
	.loh AdrpAdd	Lloh49, Lloh50
	.loh AdrpAdd	Lloh51, Lloh52
	.loh AdrpLdrGotLdr	Lloh55, Lloh56, Lloh57
	.loh AdrpAdd	Lloh53, Lloh54
	.loh AdrpAdd	Lloh58, Lloh59
	.loh AdrpLdrGot	Lloh60, Lloh61
	.loh AdrpAdd	Lloh65, Lloh66
	.loh AdrpLdrGotLdr	Lloh62, Lloh63, Lloh64
	.loh AdrpLdrGotLdr	Lloh67, Lloh68, Lloh69
	.loh AdrpAdd	Lloh70, Lloh71
	.loh AdrpLdrGot	Lloh74, Lloh75
	.loh AdrpAdd	Lloh72, Lloh73
	.loh AdrpLdrGotLdr	Lloh76, Lloh77, Lloh78
	.loh AdrpLdrGot	Lloh79, Lloh80
	.cfi_endproc
	.section	__TEXT,__const
lJTI0_0:
	.byte	(LBB0_2-LBB0_2)>>2
	.byte	(LBB0_11-LBB0_2)>>2
	.byte	(LBB0_5-LBB0_2)>>2
	.byte	(LBB0_7-LBB0_2)>>2
	.byte	(LBB0_9-LBB0_2)>>2
	.byte	(LBB0_13-LBB0_2)>>2
	.byte	(LBB0_14-LBB0_2)>>2
lJTI0_1:
	.byte	(LBB0_52-LBB0_40)>>2
	.byte	(LBB0_40-LBB0_40)>>2
	.byte	(LBB0_53-LBB0_40)>>2
	.byte	(LBB0_50-LBB0_40)>>2
	.byte	(LBB0_50-LBB0_40)>>2
	.byte	(LBB0_40-LBB0_40)>>2
	.byte	(LBB0_54-LBB0_40)>>2
                                        ; -- End function
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"%s addr 0x%x flags 0x%x cmd 0x%x size %d\n"

	.comm	_I2C_SMBUS_WRITE,1,0            ; @I2C_SMBUS_WRITE
l_.str.1:                               ; @.str.1
	.asciz	"write"

l_.str.2:                               ; @.str.2
	.asciz	"read"

	.comm	_I2C_SMBUS_READ,1,0             ; @I2C_SMBUS_READ
	.comm	_I2C_SMBUS_BLOCK_MAX,8,3        ; @I2C_SMBUS_BLOCK_MAX
l_.str.3:                               ; @.str.3
	.asciz	"Unsupported transaction %d\n"

	.comm	_EOPNOTSUPP,4,2                 ; @EOPNOTSUPP
	.comm	_PM_HINT_FULLON,4,2             ; @PM_HINT_FULLON
l_.str.4:                               ; @.str.4
	.asciz	"power management error: %d\n"

	.comm	_HID_OUTPUT_REPORT,4,2          ; @HID_OUTPUT_REPORT
l_.str.5:                               ; @.str.5
	.asciz	"Error starting transaction: %d\n"

	.comm	_XFER_STATUS_RETRIES,4,2        ; @XFER_STATUS_RETRIES
	.comm	_EBUSY,4,2                      ; @EBUSY
l_.str.6:                               ; @.str.6
	.asciz	"Transfer timed out, cancelling.\n"

	.comm	_CP2112_CANCEL_TRANSFER,4,2     ; @CP2112_CANCEL_TRANSFER
l_.str.7:                               ; @.str.7
	.asciz	"Error cancelling transaction: %d\n"

	.comm	_ETIMEDOUT,4,2                  ; @ETIMEDOUT
l_.str.8:                               ; @.str.8
	.asciz	"short read: %d < %zd\n"

	.comm	_EIO,4,2                        ; @EIO
	.comm	_EPROTO,4,2                     ; @EPROTO
	.comm	_PM_HINT_NORMAL,4,2             ; @PM_HINT_NORMAL
l_.str.9:                               ; @.str.9
	.asciz	"transfer finished: %d\n"

	.no_dead_strip	_cp2112_xfer
.subsections_via_symbols
