	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function DmaCopy
_DmaCopy:                               ## @DmaCopy
	.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
	pushq	%rax
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movl	%edi, %r12d
	movq	_Pico@GOTPCREL(%rip), %r14
	movq	(%r14), %rbx
	movq	8(%r14), %rax
	movq	32(%r14), %r13
	movzbl	15(%rax), %r15d
	movq	_EL_VDPDMA@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movl	%eax, -44(%rbp)                 ## 4-byte Spill
	xorl	%eax, %eax
	callq	_SekCyclesDone
	leaq	L_.str(%rip), %rsi
	movl	-44(%rbp), %edi                 ## 4-byte Reload
	movl	%r12d, %edx
	movl	%eax, %ecx
	callq	_elprintf
	addl	%r12d, 24(%r14)
	orb	$2, 16(%r14)
	movq	8(%r14), %rax
	movzwl	21(%rax), %edx
	leal	(%rdx,%r12), %eax
	movl	$65536, %ecx                    ## imm = 0x10000
	movl	$65536, %r11d                   ## imm = 0x10000
	subl	%edx, %r11d
	cmpl	$65537, %eax                    ## imm = 0x10001
	cmovll	%r12d, %r11d
	testl	%r11d, %r11d
	je	LBB0_20
## %bb.1:
	cmpl	$65536, %eax                    ## imm = 0x10000
	cmovll	%eax, %ecx
	leaq	(%rdx,%r13), %rax
	movl	%edx, %r10d
	notl	%r10d
	addl	%ecx, %r10d
	cmpl	$31, %r10d
	jb	LBB0_12
## %bb.2:
	cmpb	$1, %r15b
	jne	LBB0_12
## %bb.3:
	leaq	(%rbx,%r13), %rcx
	subq	%r13, %rcx
	subq	%rdx, %rcx
	cmpq	$32, %rcx
	jb	LBB0_12
## %bb.4:
	incq	%r10
	movq	%r10, %r8
	andq	$-32, %r8
	leaq	-32(%r8), %rcx
	movq	%rcx, %r9
	shrq	$5, %r9
	incq	%r9
	testq	%rcx, %rcx
	je	LBB0_5
## %bb.6:
	movq	%r9, %rdi
	andq	$-2, %rdi
	leaq	(%rdx,%r13), %rsi
	addq	$48, %rsi
	movq	%r15, %r14
	shlq	$5, %r14
	leaq	(%rbx,%r13), %rcx
	addq	$16, %rcx
	movq	%r15, %r12
	shlq	$6, %r12
	xorl	%edx, %edx
	.p2align	4, 0x90
LBB0_7:                                 ## =>This Inner Loop Header: Depth=1
	movups	-48(%rsi,%rdx), %xmm0
	movups	-32(%rsi,%rdx), %xmm1
	movups	%xmm0, -16(%rcx)
	movups	%xmm1, (%rcx)
	movups	-16(%rsi,%rdx), %xmm0
	movups	(%rsi,%rdx), %xmm1
	movups	%xmm0, -16(%rcx,%r14)
	movups	%xmm1, (%rcx,%r14)
	addq	$64, %rdx
	addq	%r12, %rcx
	addq	$-2, %rdi
	jne	LBB0_7
	jmp	LBB0_8
LBB0_5:
	xorl	%edx, %edx
LBB0_8:
	movq	%r8, %rcx
	imulq	%r15, %rcx
	testb	$1, %r9b
	je	LBB0_10
## %bb.9:
	movq	%rdx, %rsi
	imulq	%r15, %rsi
	addq	%rbx, %rsi
	movups	(%rax,%rdx), %xmm0
	movups	16(%rax,%rdx), %xmm1
	movups	%xmm0, (%r13,%rsi)
	movups	%xmm1, 16(%r13,%rsi)
LBB0_10:
	addq	%rcx, %rbx
	cmpq	%r8, %r10
	movq	_Pico@GOTPCREL(%rip), %r14
	je	LBB0_20
## %bb.11:
	subl	%r8d, %r11d
	addq	%r8, %rax
LBB0_12:
	leal	-1(%r11), %edi
	testb	$3, %r11b
	je	LBB0_16
## %bb.13:
	movl	%r11d, %esi
	andl	$3, %esi
	xorl	%ecx, %ecx
	.p2align	4, 0x90
LBB0_14:                                ## =>This Inner Loop Header: Depth=1
	movzbl	(%rax,%rcx), %edx
	movb	%dl, (%r13,%rbx)
	addq	%r15, %rbx
	incq	%rcx
	cmpl	%ecx, %esi
	jne	LBB0_14
## %bb.15:
	subl	%ecx, %r11d
	addq	%rcx, %rax
LBB0_16:
	cmpl	$3, %edi
	jb	LBB0_20
## %bb.17:
	movl	%r11d, %r8d
	addq	%rbx, %r13
	leaq	(,%r15,4), %rdx
	negq	%rbx
	leaq	(%r15,%r15,2), %rsi
	xorl	%edi, %edi
	.p2align	4, 0x90
LBB0_18:                                ## =>This Inner Loop Header: Depth=1
	movzbl	(%rax,%rdi), %ecx
	movb	%cl, (%r13)
	movzbl	1(%rax,%rdi), %ecx
	movb	%cl, (%r13,%r15)
	movzbl	2(%rax,%rdi), %ecx
	movb	%cl, (%r13,%r15,2)
	movzbl	3(%rax,%rdi), %ecx
	movb	%cl, (%r13,%rsi)
	addq	$4, %rdi
	addq	%rdx, %r13
	subq	%rdx, %rbx
	cmpl	%edi, %r8d
	jne	LBB0_18
## %bb.19:
	negq	%rbx
LBB0_20:
	movq	%rbx, (%r14)
	movq	_PDRAW_DIRTY_SPRITES@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	movq	_rendstatus@GOTPCREL(%rip), %rcx
	orl	%eax, (%rcx)
	addq	$8, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_Pico,40,3                      ## @Pico
	.comm	_EL_VDPDMA,4,2                  ## @EL_VDPDMA
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"DmaCopy len %i [%i]"

	.comm	_PDRAW_DIRTY_SPRITES,4,2        ## @PDRAW_DIRTY_SPRITES
	.comm	_rendstatus,4,2                 ## @rendstatus
	.no_dead_strip	_DmaCopy
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function DmaCopy
_DmaCopy:                               ; @DmaCopy
	.cfi_startproc
; %bb.0:
	stp	x24, x23, [sp, #-64]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 64
	stp	x22, x21, [sp, #16]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #32]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #48]             ; 16-byte Folded Spill
	add	x29, sp, #48
	.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
	mov	x19, x0
Lloh0:
	adrp	x21, _Pico@GOTPAGE
Lloh1:
	ldr	x21, [x21, _Pico@GOTPAGEOFF]
	ldr	x23, [x21, #32]
	ldp	x22, x8, [x21]
	ldrb	w24, [x8, #15]
Lloh2:
	adrp	x8, _EL_VDPDMA@GOTPAGE
Lloh3:
	ldr	x8, [x8, _EL_VDPDMA@GOTPAGEOFF]
Lloh4:
	ldr	w20, [x8]
	bl	_SekCyclesDone
	mov	x3, x0
Lloh5:
	adrp	x1, l_.str@PAGE
Lloh6:
	add	x1, x1, l_.str@PAGEOFF
	mov	x0, x20
	mov	x2, x19
	bl	_elprintf
	ldr	w8, [x21, #24]
	add	w8, w8, w19
	str	w8, [x21, #24]
	ldr	w8, [x21, #16]
	orr	w8, w8, #0x2
	str	w8, [x21, #16]
	ldr	x8, [x21, #8]
	ldurh	w10, [x8, #21]
	add	w11, w10, w19
	mov	w12, #65536
	sub	w8, w12, w10
	cmp	w11, #16, lsl #12               ; =65536
	csel	w8, w8, w19, gt
	cbz	w8, LBB0_7
; %bb.1:
	add	x9, x23, x10
	cmp	w11, #16, lsl #12               ; =65536
	csel	w11, w11, w12, lt
	mvn	w12, w10
	add	w11, w11, w12
	cmp	w11, #63
	ccmp	w24, #1, #0, hs
	b.ne	LBB0_6
; %bb.2:
	add	x13, x22, x23
	sub	x12, x13, x9
	cmp	x12, #64
	b.lo	LBB0_6
; %bb.3:
	add	x11, x11, #1
	and	x12, x11, #0x1ffffffc0
	sub	w8, w8, w12
	add	x9, x9, x12
	madd	x22, x12, x24, x22
	add	x13, x13, #32
	lsl	x14, x24, #6
	add	x10, x10, x23
	add	x10, x10, #32
	mov	x15, x12
LBB0_4:                                 ; =>This Inner Loop Header: Depth=1
	ldp	q0, q1, [x10, #-32]
	ldp	q2, q3, [x10], #64
	stp	q0, q1, [x13, #-32]
	stp	q2, q3, [x13]
	add	x13, x13, x14
	subs	x15, x15, #64
	b.ne	LBB0_4
; %bb.5:
	cmp	x11, x12
	b.eq	LBB0_7
LBB0_6:                                 ; =>This Inner Loop Header: Depth=1
	ldrb	w10, [x9], #1
	strb	w10, [x23, x22]
	add	x22, x22, x24
	subs	w8, w8, #1
	b.ne	LBB0_6
LBB0_7:
	str	x22, [x21]
Lloh7:
	adrp	x8, _PDRAW_DIRTY_SPRITES@GOTPAGE
Lloh8:
	ldr	x8, [x8, _PDRAW_DIRTY_SPRITES@GOTPAGEOFF]
Lloh9:
	ldr	w8, [x8]
Lloh10:
	adrp	x9, _rendstatus@GOTPAGE
Lloh11:
	ldr	x9, [x9, _rendstatus@GOTPAGEOFF]
	ldr	w10, [x9]
	orr	w8, w10, w8
	str	w8, [x9]
	ldp	x29, x30, [sp, #48]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #32]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #16]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp], #64             ; 16-byte Folded Reload
	ret
	.loh AdrpAdd	Lloh5, Lloh6
	.loh AdrpLdrGotLdr	Lloh2, Lloh3, Lloh4
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpLdrGot	Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh7, Lloh8, Lloh9
	.cfi_endproc
                                        ; -- End function
	.comm	_Pico,40,3                      ; @Pico
	.comm	_EL_VDPDMA,4,2                  ; @EL_VDPDMA
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"DmaCopy len %i [%i]"

	.comm	_PDRAW_DIRTY_SPRITES,4,2        ; @PDRAW_DIRTY_SPRITES
	.comm	_rendstatus,4,2                 ; @rendstatus
	.no_dead_strip	_DmaCopy
.subsections_via_symbols
