	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ## -- Begin function __si_completetransfer
LCPI0_0:
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	1                               ## 0x1
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
	.byte	0                               ## 0x0
LCPI0_1:
	.quad	-9223372034707292160            ## 0x8000000080000000
	.quad	-9223372034707292160            ## 0x8000000080000000
LCPI0_2:
	.quad	2                               ## 0x2
	.quad	2                               ## 0x2
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	4, 0x90
___si_completetransfer:                 ## @__si_completetransfer
	.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	%r12
	pushq	%rbx
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	__siReg@GOTPCREL(%rip), %r15
	movq	(%r15), %rax
	movslq	56(%rax), %r12
	xorl	%eax, %eax
	callq	___si_cleartcinterrupt
	movq	_sicntrl@GOTPCREL(%rip), %r14
	cmpl	$-1, (%r14)
	je	LBB0_27
## %bb.1:
	xorl	%eax, %eax
	callq	_gettime
	movq	_xferTime@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	movslq	(%r14), %r8
	movq	%rax, (%rcx,%r8,8)
	movl	4(%r14), %r11d
	leal	3(%r11), %eax
	testl	%r11d, %r11d
	movl	%r11d, %edx
	cmovsl	%eax, %edx
	movq	8(%r14), %rcx
	sarl	$2, %edx
	movslq	%edx, %r10
	cmpl	$7, %eax
	jb	LBB0_12
## %bb.2:
	movq	(%r15), %rdx
	cmpq	$2, %r10
	movl	$1, %ebx
	cmovaeq	%r10, %rbx
	cmpq	$4, %rbx
	jae	LBB0_5
## %bb.3:
	xorl	%edi, %edi
	jmp	LBB0_4
LBB0_5:
	movq	%rbx, %rdi
	andq	$-4, %rdi
	leaq	-4(%rdi), %rax
	movq	%rax, %r9
	shrq	$2, %r9
	incq	%r9
	testq	%rax, %rax
	je	LBB0_6
## %bb.7:
	movq	%r9, %rax
	andq	$-2, %rax
	xorl	%esi, %esi
	.p2align	4, 0x90
LBB0_8:                                 ## =>This Inner Loop Header: Depth=1
	pmovsxdq	128(%rdx,%rsi,4), %xmm0
	pmovsxdq	136(%rdx,%rsi,4), %xmm1
	movdqu	%xmm0, (%rcx,%rsi,8)
	movdqu	%xmm1, 16(%rcx,%rsi,8)
	pmovsxdq	144(%rdx,%rsi,4), %xmm0
	pmovsxdq	152(%rdx,%rsi,4), %xmm1
	movdqu	%xmm0, 32(%rcx,%rsi,8)
	movdqu	%xmm1, 48(%rcx,%rsi,8)
	addq	$8, %rsi
	addq	$-2, %rax
	jne	LBB0_8
## %bb.9:
	testb	$1, %r9b
	jne	LBB0_10
	jmp	LBB0_11
LBB0_6:
	xorl	%esi, %esi
	testb	$1, %r9b
	je	LBB0_11
LBB0_10:
	pmovsxdq	128(%rdx,%rsi,4), %xmm0
	pmovsxdq	136(%rdx,%rsi,4), %xmm1
	movdqu	%xmm0, (%rcx,%rsi,8)
	movdqu	%xmm1, 16(%rcx,%rsi,8)
	jmp	LBB0_11
LBB0_4:
	movslq	128(%rdx,%rdi,4), %rax
	movq	%rax, (%rcx,%rdi,8)
	incq	%rdi
LBB0_11:
	cmpq	%rdi, %rbx
	jne	LBB0_4
LBB0_12:
	movq	(%r15), %r9
	andq	$3, %r11
	je	LBB0_19
## %bb.13:
	movslq	128(%r9,%r10,4), %r15
	leal	1(%r11), %edi
	andl	$-2, %edi
	decq	%r11
	movq	%r11, %xmm0
	pshufd	$68, %xmm0, %xmm0               ## xmm0 = xmm0[0,1,0,1]
	shlq	$5, %r10
	leaq	(%r10,%rcx), %rsi
	addq	$8, %rsi
	movdqa	LCPI0_0(%rip), %xmm1            ## xmm1 = [0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0]
	movl	$24, %eax
	xorl	%ebx, %ebx
	movdqa	LCPI0_1(%rip), %xmm2            ## xmm2 = [9223372039002259456,9223372039002259456]
	pxor	%xmm2, %xmm0
	pcmpeqd	%xmm3, %xmm3
	movdqa	LCPI0_2(%rip), %xmm4            ## xmm4 = [2,2]
	jmp	LBB0_14
	.p2align	4, 0x90
LBB0_18:                                ##   in Loop: Header=BB0_14 Depth=1
	addq	$2, %rbx
	paddq	%xmm4, %xmm1
	addq	$-16, %rax
	cmpq	%rbx, %rdi
	je	LBB0_19
LBB0_14:                                ## =>This Inner Loop Header: Depth=1
	movdqa	%xmm1, %xmm5
	pxor	%xmm2, %xmm5
	movdqa	%xmm5, %xmm6
	pcmpgtd	%xmm0, %xmm6
	pcmpeqd	%xmm0, %xmm5
	pshufd	$245, %xmm5, %xmm7              ## xmm7 = xmm5[1,1,3,3]
	pand	%xmm6, %xmm7
	pshufd	$245, %xmm6, %xmm5              ## xmm5 = xmm6[1,1,3,3]
	por	%xmm7, %xmm5
	movd	%xmm5, %ecx
	notl	%ecx
	testb	$1, %cl
	je	LBB0_16
## %bb.15:                              ##   in Loop: Header=BB0_14 Depth=1
	movq	%r15, %rdx
	movl	%eax, %ecx
	shrq	%cl, %rdx
	movzbl	%dl, %ecx
	movq	%rcx, -8(%rsi,%rbx,8)
LBB0_16:                                ##   in Loop: Header=BB0_14 Depth=1
	pxor	%xmm3, %xmm5
	pextrb	$8, %xmm5, %ecx
	testb	$1, %cl
	je	LBB0_18
## %bb.17:                              ##   in Loop: Header=BB0_14 Depth=1
	leal	-8(%rax), %ecx
	movq	%r15, %rdx
                                        ## kill: def $cl killed $cl killed $ecx
	shrq	%cl, %rdx
	movzbl	%dl, %ecx
	movq	%rcx, (%rsi,%rbx,8)
	jmp	LBB0_18
LBB0_19:
	movq	_SICOMCSR_COMERR@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, 52(%r9)
	je	LBB0_25
## %bb.20:
	leal	(,%r8,8), %eax
	movb	$24, %cl
	subb	%al, %cl
	shrq	%cl, %r12
	andl	$15, %r12d
	movq	_SISR_NORESPONSE@GOTPCREL(%rip), %rax
	testl	%r12d, (%rax)
	je	LBB0_23
## %bb.21:
	movq	_si_type@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	movq	_SI_ERR_BUSY@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	testl	%ecx, (%rax,%r8,4)
	jne	LBB0_23
## %bb.22:
	movq	_SI_ERROR_NO_RESPONSE@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	movl	%ecx, (%rax,%r8,4)
LBB0_23:
	testq	%r12, %r12
	jne	LBB0_26
## %bb.24:
	movq	_SISR_COLLISION@GOTPCREL(%rip), %rax
	movq	(%rax), %r12
	jmp	LBB0_26
LBB0_25:
	xorl	%r12d, %r12d
	xorl	%eax, %eax
	callq	_gettime
	movq	_typeTime@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	movslq	(%r14), %rdx
	movq	%rax, (%rcx,%rdx,8)
LBB0_26:
	movl	$-1, (%r14)
LBB0_27:
	movq	%r12, %rax
	popq	%rbx
	popq	%r12
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	__siReg,8,3                     ## @_siReg
	.comm	_sicntrl,16,3                   ## @sicntrl
	.comm	_xferTime,8,3                   ## @xferTime
	.comm	_SICOMCSR_COMERR,4,2            ## @SICOMCSR_COMERR
	.comm	_SISR_NORESPONSE,8,3            ## @SISR_NORESPONSE
	.comm	_si_type,8,3                    ## @si_type
	.comm	_SI_ERR_BUSY,4,2                ## @SI_ERR_BUSY
	.comm	_SI_ERROR_NO_RESPONSE,4,2       ## @SI_ERROR_NO_RESPONSE
	.comm	_SISR_COLLISION,8,3             ## @SISR_COLLISION
	.comm	_typeTime,8,3                   ## @typeTime
	.no_dead_strip	___si_completetransfer
.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 __si_completetransfer
lCPI0_0:
	.quad	0                               ; 0x0
	.quad	1                               ; 0x1
	.section	__TEXT,__text,regular,pure_instructions
	.p2align	2
___si_completetransfer:                 ; @__si_completetransfer
	.cfi_startproc
; %bb.0:
	stp	x22, x21, [sp, #-48]!           ; 16-byte Folded Spill
	.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
	.cfi_offset w21, -40
	.cfi_offset w22, -48
Lloh0:
	adrp	x21, __siReg@GOTPAGE
Lloh1:
	ldr	x21, [x21, __siReg@GOTPAGEOFF]
	ldr	x8, [x21]
	ldrsw	x19, [x8, #56]
	bl	___si_cleartcinterrupt
Lloh2:
	adrp	x20, _sicntrl@GOTPAGE
Lloh3:
	ldr	x20, [x20, _sicntrl@GOTPAGEOFF]
	ldr	w8, [x20]
	cmn	w8, #1
	b.eq	LBB0_23
; %bb.1:
	bl	_gettime
Lloh4:
	adrp	x8, _xferTime@GOTPAGE
Lloh5:
	ldr	x8, [x8, _xferTime@GOTPAGEOFF]
Lloh6:
	ldr	x9, [x8]
	ldp	w8, w10, [x20]
                                        ; kill: def $w8 killed $w8 def $x8
	sxtw	x8, w8
	str	x0, [x9, x8, lsl #3]
	ldr	x9, [x20, #8]
	add	w12, w10, #3
	cmp	w10, #0
	csel	w11, w12, w10, lt
	sbfx	x11, x11, #2, #30
	cmp	w12, #7
	b.lo	LBB0_9
; %bb.2:
	ldr	x12, [x21]
	cmp	x11, #1
	csinc	x13, x11, xzr, hi
	cmp	x13, #8
	b.hs	LBB0_4
; %bb.3:
	mov	x14, #0
	b	LBB0_7
LBB0_4:
	and	x14, x13, #0xfffffffffffffff8
	add	x15, x12, #152
	add	x16, x9, #32
	mov	x17, x14
LBB0_5:                                 ; =>This Inner Loop Header: Depth=1
	ldp	d0, d1, [x15, #-24]
	ldp	d2, d3, [x15, #-8]
	sshll.2d	v0, v0, #0
	sshll.2d	v1, v1, #0
	sshll.2d	v2, v2, #0
	sshll.2d	v3, v3, #0
	stp	q0, q1, [x16, #-32]
	stp	q2, q3, [x16], #64
	add	x15, x15, #32
	subs	x17, x17, #8
	b.ne	LBB0_5
; %bb.6:
	cmp	x13, x14
	b.eq	LBB0_9
LBB0_7:
	sub	x13, x13, x14
	add	x15, x9, x14, lsl #3
	add	x12, x12, x14, lsl #2
	add	x12, x12, #128
LBB0_8:                                 ; =>This Inner Loop Header: Depth=1
	ldrsw	x14, [x12], #4
	str	x14, [x15], #8
	subs	x13, x13, #1
	b.ne	LBB0_8
LBB0_9:
	ldr	x12, [x21]
	and	x13, x10, #0x3
	cbz	w13, LBB0_16
; %bb.10:
	lsl	x14, x11, #2
	add	x10, x14, x12
	ldrsw	x10, [x10, #128]
	add	w11, w13, #1
	and	x11, x11, #0x6
	sub	x13, x13, #1
	dup.2d	v0, x13
Lloh7:
	adrp	x13, lCPI0_0@PAGE
Lloh8:
	ldr	q1, [x13, lCPI0_0@PAGEOFF]
	dup.2d	v2, x14
	mov	w13, #24
	mov	w14, #2
	dup.2d	v3, x14
	b	LBB0_12
LBB0_11:                                ;   in Loop: Header=BB0_12 Depth=1
	add.2d	v1, v1, v3
	sub	x13, x13, #16
	subs	x11, x11, #2
	b.eq	LBB0_16
LBB0_12:                                ; =>This Inner Loop Header: Depth=1
	cmhs.2d	v4, v0, v1
	xtn.2s	v5, v4
	add.2d	v4, v1, v2
	fmov	w14, s5
	tbz	w14, #0, LBB0_14
; %bb.13:                               ;   in Loop: Header=BB0_12 Depth=1
	lsr	x14, x10, x13
	and	x14, x14, #0xff
	fmov	x15, d4
	str	x14, [x9, x15, lsl #3]
LBB0_14:                                ;   in Loop: Header=BB0_12 Depth=1
	mov.s	w14, v5[1]
	tbz	w14, #0, LBB0_11
; %bb.15:                               ;   in Loop: Header=BB0_12 Depth=1
	sub	x14, x13, #8
	lsr	x14, x10, x14
	and	x14, x14, #0xff
	mov.d	x15, v4[1]
	str	x14, [x9, x15, lsl #3]
	b	LBB0_11
LBB0_16:
	ldr	w9, [x12, #52]
Lloh9:
	adrp	x10, _SICOMCSR_COMERR@GOTPAGE
Lloh10:
	ldr	x10, [x10, _SICOMCSR_COMERR@GOTPAGEOFF]
Lloh11:
	ldr	w10, [x10]
	tst	w10, w9
	b.eq	LBB0_21
; %bb.17:
	mov	w9, #24
	sub	w9, w9, w8, lsl #3
	lsr	x9, x19, x9
	and	x9, x9, #0xf
Lloh12:
	adrp	x10, _SISR_NORESPONSE@GOTPAGE
Lloh13:
	ldr	x10, [x10, _SISR_NORESPONSE@GOTPAGEOFF]
Lloh14:
	ldr	x10, [x10]
	tst	x10, x9
	b.eq	LBB0_20
; %bb.18:
Lloh15:
	adrp	x10, _si_type@GOTPAGE
Lloh16:
	ldr	x10, [x10, _si_type@GOTPAGEOFF]
Lloh17:
	ldr	x10, [x10]
	ldr	w11, [x10, x8, lsl #2]
Lloh18:
	adrp	x12, _SI_ERR_BUSY@GOTPAGE
Lloh19:
	ldr	x12, [x12, _SI_ERR_BUSY@GOTPAGEOFF]
Lloh20:
	ldr	w12, [x12]
	tst	w12, w11
	b.ne	LBB0_20
; %bb.19:
Lloh21:
	adrp	x11, _SI_ERROR_NO_RESPONSE@GOTPAGE
Lloh22:
	ldr	x11, [x11, _SI_ERROR_NO_RESPONSE@GOTPAGEOFF]
Lloh23:
	ldr	w11, [x11]
	str	w11, [x10, x8, lsl #2]
LBB0_20:
Lloh24:
	adrp	x8, _SISR_COLLISION@GOTPAGE
Lloh25:
	ldr	x8, [x8, _SISR_COLLISION@GOTPAGEOFF]
Lloh26:
	ldr	x8, [x8]
	cmp	x9, #0
	csel	x19, x8, x9, eq
	b	LBB0_22
LBB0_21:
	bl	_gettime
	mov	x19, #0
Lloh27:
	adrp	x8, _typeTime@GOTPAGE
Lloh28:
	ldr	x8, [x8, _typeTime@GOTPAGEOFF]
Lloh29:
	ldr	x8, [x8]
	ldrsw	x9, [x20]
	str	x0, [x8, x9, lsl #3]
LBB0_22:
	mov	w8, #-1
	str	w8, [x20]
LBB0_23:
	mov	x0, x19
	ldp	x29, x30, [sp, #32]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp], #48             ; 16-byte Folded Reload
	ret
	.loh AdrpLdrGot	Lloh2, Lloh3
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpLdrGotLdr	Lloh4, Lloh5, Lloh6
	.loh AdrpLdr	Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh18, Lloh19, Lloh20
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh21, Lloh22, Lloh23
	.loh AdrpLdrGotLdr	Lloh24, Lloh25, Lloh26
	.loh AdrpLdrGotLdr	Lloh27, Lloh28, Lloh29
	.cfi_endproc
                                        ; -- End function
	.comm	__siReg,8,3                     ; @_siReg
	.comm	_sicntrl,16,3                   ; @sicntrl
	.comm	_xferTime,8,3                   ; @xferTime
	.comm	_SICOMCSR_COMERR,4,2            ; @SICOMCSR_COMERR
	.comm	_SISR_NORESPONSE,8,3            ; @SISR_NORESPONSE
	.comm	_si_type,8,3                    ; @si_type
	.comm	_SI_ERR_BUSY,4,2                ; @SI_ERR_BUSY
	.comm	_SI_ERROR_NO_RESPONSE,4,2       ; @SI_ERROR_NO_RESPONSE
	.comm	_SISR_COLLISION,8,3             ; @SISR_COLLISION
	.comm	_typeTime,8,3                   ; @typeTime
	.no_dead_strip	___si_completetransfer
.subsections_via_symbols
