	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_BN_rshift                      ## -- Begin function BN_rshift
	.p2align	4, 0x90
_BN_rshift:                             ## @BN_rshift
	.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	$24, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movl	%edx, %eax
	movq	%rsi, %rbx
	movq	%rdi, %r14
	movq	_BN_BITS2@GOTPCREL(%rip), %rcx
	movl	(%rcx), %r13d
	cltd
	idivl	%r13d
	movl	(%rsi), %r11d
	movl	%r11d, %esi
	subl	%eax, %esi
	jl	LBB0_2
## %bb.1:
	testl	%r11d, %r11d
	je	LBB0_2
## %bb.3:
	movl	%eax, %r12d
	movl	%edx, %r15d
	cmpq	%rbx, %r14
	je	LBB0_7
## %bb.4:
	movl	16(%rbx), %eax
	movl	%eax, 16(%r14)
	incl	%esi
	movq	%r14, %rdi
	callq	_bn_wexpand
	testq	%rax, %rax
	je	LBB0_5
## %bb.6:
	movl	(%rbx), %r11d
LBB0_7:
	movq	8(%rbx), %rax
	movslq	%r12d, %r10
	leaq	(%rax,%r10,4), %r9
	movq	8(%r14), %rcx
	movl	%r11d, %r8d
	subl	%r12d, %r8d
	movl	%r8d, (%r14)
	testl	%r15d, %r15d
	je	LBB0_8
## %bb.22:
	movl	(%r9), %ebx
	cmpl	$2, %r8d
	jl	LBB0_23
## %bb.24:
	subl	%r15d, %r13d
	addl	$-2, %r8d
	movl	$1, %edx
	cmpl	$7, %r8d
	jae	LBB0_26
## %bb.25:
	movq	%rcx, %rsi
	jmp	LBB0_32
LBB0_2:
	movq	%r14, %rdi
	callq	_BN_zero
	jmp	LBB0_39
LBB0_8:
	testl	%r8d, %r8d
	js	LBB0_38
## %bb.9:
	xorl	%esi, %esi
	movl	%r8d, %edx
	incl	%edx
	setne	%sil
	subl	%esi, %r8d
	incl	%r8d
	cmpl	$7, %r8d
	jb	LBB0_20
## %bb.10:
	leaq	(%rax,%r10,4), %rsi
	movq	%rcx, %rdi
	subq	%rsi, %rdi
	cmpq	$32, %rdi
	jb	LBB0_20
## %bb.11:
	incq	%r8
	movq	%r8, %r11
	andq	$-8, %r11
	leaq	-8(%r11), %rsi
	movq	%rsi, %rdi
	shrq	$3, %rdi
	incq	%rdi
	movl	%edi, %r15d
	andl	$3, %r15d
	cmpq	$24, %rsi
	jae	LBB0_13
## %bb.12:
	xorl	%esi, %esi
	jmp	LBB0_15
LBB0_23:
	movq	%rcx, %rsi
	jmp	LBB0_37
LBB0_5:
	xorl	%eax, %eax
	jmp	LBB0_40
LBB0_26:
	leaq	(%rcx,%r8,4), %rsi
	addq	$4, %rsi
	leaq	4(%rax,%r10,4), %rdx
	movq	%rdx, -56(%rbp)                 ## 8-byte Spill
	leaq	(%r10,%r8), %rdx
	leaq	8(%rax,%rdx,4), %rdx
	movq	%rdx, -64(%rbp)                 ## 8-byte Spill
	movq	_BN_MASK2@GOTPCREL(%rip), %rdx
	leaq	4(%rdx), %rdi
	cmpq	%rdi, %rcx
	setb	-41(%rbp)                       ## 1-byte Folded Spill
	cmpq	%rdx, %rsi
	seta	%dil
	cmpq	-64(%rbp), %rcx                 ## 8-byte Folded Reload
	setb	%dl
	cmpq	%rsi, -56(%rbp)                 ## 8-byte Folded Reload
	setb	%sil
	testb	%dil, -41(%rbp)                 ## 1-byte Folded Reload
	jne	LBB0_27
## %bb.28:
	andb	%sil, %dl
	jne	LBB0_27
## %bb.29:
	incq	%r8
	movq	%r8, %rdi
	andq	$-8, %rdi
	leaq	(%r9,%rdi,4), %r9
	leaq	(%rcx,%rdi,4), %rsi
	leal	1(%rdi), %edx
	movl	%edx, -56(%rbp)                 ## 4-byte Spill
	movd	%ebx, %xmm0
	pshufd	$0, %xmm0, %xmm0                ## xmm0 = xmm0[0,0,0,0]
	movd	%r15d, %xmm2
	movd	%r13d, %xmm3
	movq	_BN_MASK2@GOTPCREL(%rip), %rdx
	movd	(%rdx), %xmm1                   ## xmm1 = mem[0],zero,zero,zero
	pshufd	$0, %xmm1, %xmm1                ## xmm1 = xmm1[0,0,0,0]
	leaq	(%rax,%r10,4), %rbx
	addq	$20, %rbx
	xorl	%edx, %edx
	pmovzxdq	%xmm2, %xmm2                    ## xmm2 = xmm2[0],zero,xmm2[1],zero
	pmovzxdq	%xmm3, %xmm3                    ## xmm3 = xmm3[0],zero,xmm3[1],zero
	.p2align	4, 0x90
LBB0_30:                                ## =>This Inner Loop Header: Depth=1
	movdqu	-16(%rbx,%rdx,4), %xmm4
	movdqa	%xmm4, %xmm5
	palignr	$12, %xmm0, %xmm5               ## xmm5 = xmm0[12,13,14,15],xmm5[0,1,2,3,4,5,6,7,8,9,10,11]
	movdqu	(%rbx,%rdx,4), %xmm0
	movdqa	%xmm0, %xmm6
	palignr	$12, %xmm4, %xmm6               ## xmm6 = xmm4[12,13,14,15],xmm6[0,1,2,3,4,5,6,7,8,9,10,11]
	psrad	%xmm2, %xmm5
	psrad	%xmm2, %xmm6
	pslld	%xmm3, %xmm4
	pand	%xmm1, %xmm5
	por	%xmm5, %xmm4
	movdqa	%xmm0, %xmm5
	pslld	%xmm3, %xmm5
	pand	%xmm1, %xmm6
	por	%xmm6, %xmm5
	pand	%xmm1, %xmm4
	pand	%xmm1, %xmm5
	movdqu	%xmm4, (%rcx,%rdx,4)
	movdqu	%xmm5, 16(%rcx,%rdx,4)
	addq	$8, %rdx
	cmpq	%rdx, %rdi
	jne	LBB0_30
## %bb.31:
	pextrd	$3, %xmm0, %ebx
	cmpq	%rdi, %r8
	movl	-56(%rbp), %edx                 ## 4-byte Reload
	jne	LBB0_32
	jmp	LBB0_37
LBB0_27:
	movq	%rcx, %rsi
	movl	$1, %edx
LBB0_32:
	movl	%r12d, %ecx
	notl	%ecx
	addl	%r11d, %ecx
	movl	%edx, %edi
	notl	%edi
	addl	%r11d, %edi
	testb	$1, %cl
	je	LBB0_34
## %bb.33:
	movl	%r15d, %ecx
	sarl	%cl, %ebx
	movq	_BN_MASK2@GOTPCREL(%rip), %rcx
	movl	(%rcx), %eax
	andl	%eax, %ebx
	movl	4(%r9), %r8d
	addq	$4, %r9
	movl	%edx, %r10d
	movl	%r8d, %edx
	movl	%r13d, %ecx
	shll	%cl, %edx
	orl	%ebx, %edx
	andl	%eax, %edx
	movl	%edx, (%rsi)
	movl	%r10d, %edx
	addq	$4, %rsi
	incl	%edx
	movl	%r8d, %ebx
LBB0_34:
	cmpl	%r12d, %edi
	je	LBB0_37
## %bb.35:
	subl	%edx, %r11d
	subl	%r12d, %r11d
	xorl	%edi, %edi
	movq	_BN_MASK2@GOTPCREL(%rip), %r8
	.p2align	4, 0x90
LBB0_36:                                ## =>This Inner Loop Header: Depth=1
	movl	%r15d, %ecx
	sarl	%cl, %ebx
	movl	4(%r9,%rdi,4), %eax
	movl	%eax, %edx
	movl	%r13d, %ecx
	shll	%cl, %edx
	movl	(%r8), %ecx
	andl	%ecx, %ebx
	orl	%ebx, %edx
	andl	%ecx, %edx
	movl	%edx, (%rsi)
	movl	%r15d, %ecx
	sarl	%cl, %eax
	movl	8(%r9,%rdi,4), %ebx
	movl	%ebx, %edx
	movl	%r13d, %ecx
	shll	%cl, %edx
	movl	(%r8), %ecx
	andl	%ecx, %eax
	orl	%eax, %edx
	andl	%ecx, %edx
	movl	%edx, 4(%rsi)
	addq	$8, %rsi
	addq	$2, %rdi
	cmpl	%edi, %r11d
	jne	LBB0_36
LBB0_37:
	movl	%r15d, %ecx
	sarl	%cl, %ebx
	movq	_BN_MASK2@GOTPCREL(%rip), %rax
	andl	(%rax), %ebx
	movl	%ebx, (%rsi)
	addq	$4, %rsi
	movq	%rsi, %rcx
	jmp	LBB0_38
LBB0_13:
	andq	$-4, %rdi
	leaq	(%rax,%r10,4), %rbx
	addq	$112, %rbx
	xorl	%esi, %esi
	.p2align	4, 0x90
LBB0_14:                                ## =>This Inner Loop Header: Depth=1
	movups	-112(%rbx,%rsi,4), %xmm0
	movups	-96(%rbx,%rsi,4), %xmm1
	movups	%xmm0, (%rcx,%rsi,4)
	movups	%xmm1, 16(%rcx,%rsi,4)
	movups	-80(%rbx,%rsi,4), %xmm0
	movups	-64(%rbx,%rsi,4), %xmm1
	movups	%xmm0, 32(%rcx,%rsi,4)
	movups	%xmm1, 48(%rcx,%rsi,4)
	movups	-48(%rbx,%rsi,4), %xmm0
	movups	-32(%rbx,%rsi,4), %xmm1
	movups	%xmm0, 64(%rcx,%rsi,4)
	movups	%xmm1, 80(%rcx,%rsi,4)
	movdqu	-16(%rbx,%rsi,4), %xmm0
	movdqu	(%rbx,%rsi,4), %xmm1
	movdqu	%xmm0, 96(%rcx,%rsi,4)
	movdqu	%xmm1, 112(%rcx,%rsi,4)
	addq	$32, %rsi
	addq	$-4, %rdi
	jne	LBB0_14
LBB0_15:
	testq	%r15, %r15
	je	LBB0_18
## %bb.16:
	leaq	(%rcx,%rsi,4), %rdi
	addq	$16, %rdi
	addq	%rsi, %r10
	leaq	(%rax,%r10,4), %rsi
	addq	$16, %rsi
	shlq	$5, %r15
	xorl	%ebx, %ebx
	.p2align	4, 0x90
LBB0_17:                                ## =>This Inner Loop Header: Depth=1
	movdqu	-16(%rsi,%rbx), %xmm0
	movdqu	(%rsi,%rbx), %xmm1
	movdqu	%xmm0, -16(%rdi,%rbx)
	movdqu	%xmm1, (%rdi,%rbx)
	addq	$32, %rbx
	cmpq	%rbx, %r15
	jne	LBB0_17
LBB0_18:
	leaq	(%rcx,%r11,4), %rcx
	cmpq	%r11, %r8
	je	LBB0_38
## %bb.19:
	leaq	(%r9,%r11,4), %r9
	subl	%r11d, %edx
LBB0_20:
	incl	%edx
	.p2align	4, 0x90
LBB0_21:                                ## =>This Inner Loop Header: Depth=1
	movl	(%r9), %esi
	addq	$4, %r9
	movl	%esi, (%rcx)
	addq	$4, %rcx
	decl	%edx
	cmpl	$1, %edx
	ja	LBB0_21
LBB0_38:
	movl	$0, (%rcx)
	movq	%r14, %rdi
	callq	_bn_fix_top
LBB0_39:
	movl	$1, %eax
LBB0_40:
	addq	$24, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_BN_BITS2,4,2                   ## @BN_BITS2
	.comm	_BN_MASK2,4,2                   ## @BN_MASK2
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_BN_rshift                      ; -- Begin function BN_rshift
	.p2align	2
_BN_rshift:                             ; @BN_rshift
	.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	x8, _BN_BITS2@GOTPAGE
Lloh1:
	ldr	x8, [x8, _BN_BITS2@GOTPAGEOFF]
Lloh2:
	ldr	w23, [x8]
	sdiv	w22, w2, w23
	ldr	w12, [x1]
	subs	w8, w12, w22
	ccmp	w12, #0, #4, ge
	b.ne	LBB0_2
; %bb.1:
	mov	x0, x19
	bl	_BN_zero
	b	LBB0_22
LBB0_2:
	mov	x21, x2
	mov	x20, x1
	cmp	x19, x1
	b.eq	LBB0_5
; %bb.3:
	ldr	w9, [x20, #16]
	str	w9, [x19, #16]
	add	w1, w8, #1
	mov	x0, x19
	bl	_bn_wexpand
	cbz	x0, LBB0_23
; %bb.4:
	ldr	w12, [x20]
LBB0_5:
	msub	w9, w22, w23, w21
	ldr	x1, [x20, #8]
	sxtw	x2, w22
	add	x8, x1, w22, sxtw #2
	ldr	x14, [x19, #8]
	sub	w10, w12, w22
	str	w10, [x19]
	cbz	w9, LBB0_11
; %bb.6:
	ldr	w15, [x8]
Lloh3:
	adrp	x11, _BN_MASK2@GOTPAGE
Lloh4:
	ldr	x11, [x11, _BN_MASK2@GOTPAGEOFF]
	subs	w10, w10, #2
	b.lt	LBB0_19
; %bb.7:
	sub	w13, w23, w9
	cmp	w10, #15
	b.hs	LBB0_24
; %bb.8:
	mov	w16, #1
LBB0_9:
	add	x8, x8, #4
	add	w10, w16, w22
	sub	w12, w10, w12
	mov	x10, x14
LBB0_10:                                ; =>This Inner Loop Header: Depth=1
	asr	w14, w15, w9
	ldr	w16, [x11]
	and	w14, w16, w14
	ldr	w15, [x8], #4
	lsl	w17, w15, w13
	orr	w14, w17, w14
	and	w14, w14, w16
	str	w14, [x10], #4
	adds	w12, w12, #1
	b.lo	LBB0_10
	b	LBB0_20
LBB0_11:
	tbnz	w10, #31, LBB0_29
; %bb.12:
	adds	w9, w10, #1
	cset	w11, ne
	sub	w10, w10, w11
	add	w10, w10, #1
	cmp	w10, #15
	b.lo	LBB0_17
; %bb.13:
	add	x13, x1, x2, lsl #2
	sub	x11, x14, x13
	cmp	x11, #64
	b.lo	LBB0_17
; %bb.14:
	add	x11, x10, #1
	and	x12, x11, #0x1fffffff0
	lsl	x10, x12, #2
	add	x8, x8, x10
	add	x10, x14, x10
	sub	w9, w9, w12
	add	x13, x13, #32
	add	x14, x14, #32
	mov	x15, x12
LBB0_15:                                ; =>This Inner Loop Header: Depth=1
	ldp	q0, q1, [x13, #-32]
	ldp	q2, q3, [x13], #64
	stp	q0, q1, [x14, #-32]
	stp	q2, q3, [x14], #64
	subs	x15, x15, #16
	b.ne	LBB0_15
; %bb.16:
	mov	x14, x10
	cmp	x11, x12
	b.eq	LBB0_21
LBB0_17:
	add	w9, w9, #1
	mov	x10, x14
LBB0_18:                                ; =>This Inner Loop Header: Depth=1
	ldr	w11, [x8], #4
	str	w11, [x10], #4
	sub	w9, w9, #1
	cmp	w9, #1
	b.hi	LBB0_18
	b	LBB0_21
LBB0_19:
	mov	x10, x14
LBB0_20:
	asr	w8, w15, w9
	ldr	w9, [x11]
	and	w8, w9, w8
	str	w8, [x10], #4
LBB0_21:
	str	wzr, [x10]
	mov	x0, x19
	bl	_bn_fix_top
LBB0_22:
	mov	w0, #1
LBB0_23:
	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
LBB0_24:
	add	x16, x14, w10, uxtw #2
	add	x16, x16, #4
	add	x17, x1, x2, lsl #2
	add	x17, x17, #4
	add	x0, x2, x10
	add	x0, x1, x0, lsl #2
	add	x0, x0, #8
	add	x3, x11, #4
	cmp	x14, x0
	ccmp	x17, x16, #2, lo
	cset	w17, lo
	cmp	x16, x11
	ccmp	x14, x3, #2, hi
	mov	w16, #1
	b.lo	LBB0_9
; %bb.25:
	tbnz	w17, #0, LBB0_9
; %bb.26:
	add	x17, x10, #1
	and	x0, x17, #0x1fffffff0
	lsl	x10, x0, #2
	add	x8, x8, x10
	add	x10, x14, x10
	dup.4s	v2, w15
	dup.4s	v3, w9
	dup.4s	v0, w13
	ld1r.4s	{ v1 }, [x11]
	orr	w16, w0, #0x1
	add	x14, x14, #32
	add	x15, x1, x2, lsl #2
	add	x15, x15, #36
	neg.4s	v3, v3
	mov	x1, x0
LBB0_27:                                ; =>This Inner Loop Header: Depth=1
	ldp	q4, q5, [x15, #-32]
	ext.16b	v6, v2, v4, #12
	ldp	q7, q2, [x15], #64
	ext.16b	v16, v4, v5, #12
	ext.16b	v17, v5, v7, #12
	ext.16b	v18, v7, v2, #12
	sshl.4s	v6, v6, v3
	sshl.4s	v16, v16, v3
	sshl.4s	v17, v17, v3
	sshl.4s	v18, v18, v3
	and.16b	v6, v1, v6
	and.16b	v16, v1, v16
	and.16b	v17, v1, v17
	and.16b	v18, v1, v18
	ushl.4s	v4, v4, v0
	ushl.4s	v5, v5, v0
	ushl.4s	v7, v7, v0
	ushl.4s	v19, v2, v0
	orr.16b	v4, v4, v6
	orr.16b	v5, v5, v16
	orr.16b	v6, v7, v17
	orr.16b	v7, v19, v18
	and.16b	v4, v4, v1
	and.16b	v5, v5, v1
	and.16b	v6, v6, v1
	stp	q4, q5, [x14, #-32]
	and.16b	v4, v7, v1
	stp	q6, q4, [x14], #64
	subs	x1, x1, #16
	b.ne	LBB0_27
; %bb.28:
	mov.s	w15, v2[3]
	mov	x14, x10
	cmp	x17, x0
	b.ne	LBB0_9
	b	LBB0_20
LBB0_29:
	mov	x10, x14
	b	LBB0_21
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGot	Lloh3, Lloh4
	.cfi_endproc
                                        ; -- End function
	.comm	_BN_BITS2,4,2                   ; @BN_BITS2
	.comm	_BN_MASK2,4,2                   ; @BN_MASK2
.subsections_via_symbols
