	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_matrix_init                    ## -- Begin function matrix_init
	.p2align	4, 0x90
_matrix_init:                           ## @matrix_init
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	movq	_DDRB@GOTPCREL(%rip), %rax
	movl	$255, (%rax)
	movq	_PORTB@GOTPCREL(%rip), %rax
	movl	$255, (%rax)
	movq	_DDRA@GOTPCREL(%rip), %rax
	movq	_DDRC@GOTPCREL(%rip), %rcx
	andl	$-4473925, (%rcx)               ## imm = 0xFFBBBBBB
	movl	$0, (%rax)
	movq	_PIND7@GOTPCREL(%rip), %rax
	movb	(%rax), %cl
	movl	$1, %eax
	shll	%cl, %eax
	movl	$-2, %edx
	roll	%cl, %edx
	movq	_DDRD@GOTPCREL(%rip), %rcx
	andl	%edx, (%rcx)
	movq	_PORTA@GOTPCREL(%rip), %rcx
	movq	_PORTC@GOTPCREL(%rip), %rdx
	orb	$-4, (%rdx)
	movq	_PORTD@GOTPCREL(%rip), %rdx
	orl	%eax, (%rdx)
	movl	$255, (%rcx)
	movq	_MATRIX_ROWS@GOTPCREL(%rip), %rax
	movq	(%rax), %r8
	testq	%r8, %r8
	je	LBB0_15
## %bb.1:
	movq	_matrix@GOTPCREL(%rip), %rax
	movq	(%rax), %rcx
	movq	_matrix_debouncing@GOTPCREL(%rip), %rax
	movq	(%rax), %rdx
	xorl	%esi, %esi
	cmpq	$8, %r8
	jb	LBB0_11
## %bb.2:
	movq	%rdx, %rax
	subq	%rcx, %rax
	cmpq	$32, %rax
	jb	LBB0_11
## %bb.3:
	movq	%r8, %rsi
	andq	$-8, %rsi
	leaq	-8(%rsi), %rax
	movq	%rax, %rdi
	shrq	$3, %rdi
	incq	%rdi
	movl	%edi, %r9d
	andl	$3, %r9d
	cmpq	$24, %rax
	jae	LBB0_5
## %bb.4:
	xorl	%eax, %eax
	jmp	LBB0_7
LBB0_5:
	andq	$-4, %rdi
	xorl	%eax, %eax
	xorps	%xmm0, %xmm0
	.p2align	4, 0x90
LBB0_6:                                 ## =>This Inner Loop Header: Depth=1
	movups	%xmm0, (%rcx,%rax,4)
	movups	%xmm0, 16(%rcx,%rax,4)
	movups	%xmm0, (%rdx,%rax,4)
	movups	%xmm0, 16(%rdx,%rax,4)
	movups	%xmm0, 32(%rcx,%rax,4)
	movups	%xmm0, 48(%rcx,%rax,4)
	movups	%xmm0, 32(%rdx,%rax,4)
	movups	%xmm0, 48(%rdx,%rax,4)
	movups	%xmm0, 64(%rcx,%rax,4)
	movups	%xmm0, 80(%rcx,%rax,4)
	movups	%xmm0, 64(%rdx,%rax,4)
	movups	%xmm0, 80(%rdx,%rax,4)
	movups	%xmm0, 96(%rcx,%rax,4)
	movups	%xmm0, 112(%rcx,%rax,4)
	movups	%xmm0, 96(%rdx,%rax,4)
	movups	%xmm0, 112(%rdx,%rax,4)
	addq	$32, %rax
	addq	$-4, %rdi
	jne	LBB0_6
LBB0_7:
	testq	%r9, %r9
	je	LBB0_10
## %bb.8:
	leaq	(%rdx,%rax,4), %r10
	addq	$16, %r10
	leaq	(%rcx,%rax,4), %rax
	addq	$16, %rax
	shlq	$5, %r9
	xorl	%edi, %edi
	xorps	%xmm0, %xmm0
	.p2align	4, 0x90
LBB0_9:                                 ## =>This Inner Loop Header: Depth=1
	movups	%xmm0, -16(%rax,%rdi)
	movups	%xmm0, (%rax,%rdi)
	movups	%xmm0, -16(%r10,%rdi)
	movups	%xmm0, (%r10,%rdi)
	addq	$32, %rdi
	cmpq	%rdi, %r9
	jne	LBB0_9
LBB0_10:
	cmpq	%rsi, %r8
	je	LBB0_15
LBB0_11:
	movq	%rsi, %rax
	notq	%rax
	addq	%r8, %rax
	movq	%r8, %rdi
	andq	$3, %rdi
	je	LBB0_13
	.p2align	4, 0x90
LBB0_12:                                ## =>This Inner Loop Header: Depth=1
	movl	$0, (%rcx,%rsi,4)
	movl	$0, (%rdx,%rsi,4)
	incq	%rsi
	decq	%rdi
	jne	LBB0_12
LBB0_13:
	cmpq	$3, %rax
	jb	LBB0_15
	.p2align	4, 0x90
LBB0_14:                                ## =>This Inner Loop Header: Depth=1
	movl	$0, (%rcx,%rsi,4)
	movl	$0, (%rdx,%rsi,4)
	movl	$0, 4(%rcx,%rsi,4)
	movl	$0, 4(%rdx,%rsi,4)
	movl	$0, 8(%rcx,%rsi,4)
	movl	$0, 8(%rdx,%rsi,4)
	movl	$0, 12(%rcx,%rsi,4)
	movl	$0, 12(%rdx,%rsi,4)
	addq	$4, %rsi
	cmpq	%rsi, %r8
	jne	LBB0_14
LBB0_15:
	xorl	%eax, %eax
	popq	%rbp
	jmp	_matrix_init_kb                 ## TAILCALL
	.cfi_endproc
                                        ## -- End function
	.comm	_DDRB,4,2                       ## @DDRB
	.comm	_PORTB,4,2                      ## @PORTB
	.comm	_DDRA,4,2                       ## @DDRA
	.comm	_DDRC,4,2                       ## @DDRC
	.comm	_PIND7,4,2                      ## @PIND7
	.comm	_DDRD,4,2                       ## @DDRD
	.comm	_PORTA,4,2                      ## @PORTA
	.comm	_PORTC,4,2                      ## @PORTC
	.comm	_PORTD,4,2                      ## @PORTD
	.comm	_MATRIX_ROWS,8,3                ## @MATRIX_ROWS
	.comm	_matrix,8,3                     ## @matrix
	.comm	_matrix_debouncing,8,3          ## @matrix_debouncing
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_matrix_init                    ; -- Begin function matrix_init
	.p2align	2
_matrix_init:                           ; @matrix_init
	.cfi_startproc
; %bb.0:
Lloh0:
	adrp	x8, _DDRB@GOTPAGE
Lloh1:
	ldr	x8, [x8, _DDRB@GOTPAGEOFF]
	mov	w9, #255
Lloh2:
	str	w9, [x8]
Lloh3:
	adrp	x8, _PORTB@GOTPAGE
Lloh4:
	ldr	x8, [x8, _PORTB@GOTPAGEOFF]
Lloh5:
	str	w9, [x8]
Lloh6:
	adrp	x8, _DDRA@GOTPAGE
Lloh7:
	ldr	x8, [x8, _DDRA@GOTPAGEOFF]
Lloh8:
	str	wzr, [x8]
Lloh9:
	adrp	x8, _DDRC@GOTPAGE
Lloh10:
	ldr	x8, [x8, _DDRC@GOTPAGEOFF]
	ldr	w10, [x8]
	mov	w11, #48059
	movk	w11, #65467, lsl #16
	and	w10, w10, w11
	str	w10, [x8]
Lloh11:
	adrp	x8, _PIND7@GOTPAGE
Lloh12:
	ldr	x8, [x8, _PIND7@GOTPAGEOFF]
Lloh13:
	ldr	w8, [x8]
	mov	w10, #1
	lsl	w8, w10, w8
Lloh14:
	adrp	x10, _DDRD@GOTPAGE
Lloh15:
	ldr	x10, [x10, _DDRD@GOTPAGEOFF]
	ldr	w11, [x10]
	bic	w11, w11, w8
	str	w11, [x10]
Lloh16:
	adrp	x10, _PORTA@GOTPAGE
Lloh17:
	ldr	x10, [x10, _PORTA@GOTPAGEOFF]
Lloh18:
	adrp	x11, _PORTC@GOTPAGE
Lloh19:
	ldr	x11, [x11, _PORTC@GOTPAGEOFF]
Lloh20:
	str	w9, [x10]
	ldr	w9, [x11]
	orr	w9, w9, #0xfc
	str	w9, [x11]
Lloh21:
	adrp	x9, _PORTD@GOTPAGE
Lloh22:
	ldr	x9, [x9, _PORTD@GOTPAGEOFF]
	ldr	w10, [x9]
	orr	w8, w10, w8
	str	w8, [x9]
Lloh23:
	adrp	x8, _MATRIX_ROWS@GOTPAGE
Lloh24:
	ldr	x8, [x8, _MATRIX_ROWS@GOTPAGEOFF]
Lloh25:
	ldr	x8, [x8]
	cbz	x8, LBB0_8
; %bb.1:
	mov	x10, #0
Lloh26:
	adrp	x9, _matrix@GOTPAGE
Lloh27:
	ldr	x9, [x9, _matrix@GOTPAGEOFF]
Lloh28:
	ldr	x9, [x9]
Lloh29:
	adrp	x11, _matrix_debouncing@GOTPAGE
Lloh30:
	ldr	x11, [x11, _matrix_debouncing@GOTPAGEOFF]
Lloh31:
	ldr	x11, [x11]
	cmp	x8, #16
	b.lo	LBB0_6
; %bb.2:
	sub	x12, x11, x9
	cmp	x12, #64
	b.lo	LBB0_6
; %bb.3:
	and	x10, x8, #0xfffffffffffffff0
	add	x12, x9, #32
	add	x13, x11, #32
	movi.2d	v0, #0000000000000000
	mov	x14, x10
LBB0_4:                                 ; =>This Inner Loop Header: Depth=1
	stp	q0, q0, [x12, #-32]
	stp	q0, q0, [x12], #64
	stp	q0, q0, [x13, #-32]
	stp	q0, q0, [x13], #64
	subs	x14, x14, #16
	b.ne	LBB0_4
; %bb.5:
	cmp	x8, x10
	b.eq	LBB0_8
LBB0_6:
	sub	x8, x8, x10
	lsl	x12, x10, #2
	add	x10, x11, x12
	add	x9, x9, x12
LBB0_7:                                 ; =>This Inner Loop Header: Depth=1
	str	wzr, [x9], #4
	str	wzr, [x10], #4
	subs	x8, x8, #1
	b.ne	LBB0_7
LBB0_8:
	b	_matrix_init_kb
	.loh AdrpLdrGotLdr	Lloh23, Lloh24, Lloh25
	.loh AdrpLdrGot	Lloh21, Lloh22
	.loh AdrpLdrGot	Lloh18, Lloh19
	.loh AdrpLdrGotStr	Lloh16, Lloh17, Lloh20
	.loh AdrpLdrGot	Lloh14, Lloh15
	.loh AdrpLdrGotLdr	Lloh11, Lloh12, Lloh13
	.loh AdrpLdrGot	Lloh9, Lloh10
	.loh AdrpLdrGotStr	Lloh6, Lloh7, Lloh8
	.loh AdrpLdrGotStr	Lloh3, Lloh4, Lloh5
	.loh AdrpLdrGotStr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGotLdr	Lloh29, Lloh30, Lloh31
	.loh AdrpLdrGotLdr	Lloh26, Lloh27, Lloh28
	.cfi_endproc
                                        ; -- End function
	.comm	_DDRB,4,2                       ; @DDRB
	.comm	_PORTB,4,2                      ; @PORTB
	.comm	_DDRA,4,2                       ; @DDRA
	.comm	_DDRC,4,2                       ; @DDRC
	.comm	_PIND7,4,2                      ; @PIND7
	.comm	_DDRD,4,2                       ; @DDRD
	.comm	_PORTA,4,2                      ; @PORTA
	.comm	_PORTC,4,2                      ; @PORTC
	.comm	_PORTD,4,2                      ; @PORTD
	.comm	_MATRIX_ROWS,8,3                ; @MATRIX_ROWS
	.comm	_matrix,8,3                     ; @matrix
	.comm	_matrix_debouncing,8,3          ; @matrix_debouncing
.subsections_via_symbols
