	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_timingsafe_bcmp                ## -- Begin function timingsafe_bcmp
	.p2align	4, 0x90
_timingsafe_bcmp:                       ## @timingsafe_bcmp
	.cfi_startproc
## %bb.0:
	testq	%rdx, %rdx
	je	LBB0_1
## %bb.2:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	xorl	%r9d, %r9d
	cmpq	$8, %rdx
	jb	LBB0_11
## %bb.3:
	movq	%rdx, %r8
	andq	$-8, %r8
	leaq	-8(%r8), %rax
	movq	%rax, %r9
	shrq	$3, %r9
	incq	%r9
	testq	%rax, %rax
	je	LBB0_4
## %bb.5:
	movq	%r9, %r10
	andq	$-2, %r10
	pxor	%xmm0, %xmm0
	xorl	%eax, %eax
	pxor	%xmm1, %xmm1
	.p2align	4, 0x90
LBB0_6:                                 ## =>This Inner Loop Header: Depth=1
	movl	(%rsi,%rax), %r11d
	movl	4(%rsi,%rax), %ecx
	xorl	(%rdi,%rax), %r11d
	xorl	4(%rdi,%rax), %ecx
	movd	%r11d, %xmm2
	movd	%ecx, %xmm3
	pmovzxbd	%xmm2, %xmm2                    ## xmm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero
	por	%xmm0, %xmm2
	pmovzxbd	%xmm3, %xmm3                    ## xmm3 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero,xmm3[2],zero,zero,zero,xmm3[3],zero,zero,zero
	por	%xmm1, %xmm3
	movl	8(%rsi,%rax), %r11d
	movl	12(%rsi,%rax), %ecx
	xorl	8(%rdi,%rax), %r11d
	xorl	12(%rdi,%rax), %ecx
	movd	%r11d, %xmm0
	movd	%ecx, %xmm1
	pmovzxbd	%xmm0, %xmm0                    ## xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero
	por	%xmm2, %xmm0
	pmovzxbd	%xmm1, %xmm1                    ## xmm1 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero,xmm1[2],zero,zero,zero,xmm1[3],zero,zero,zero
	por	%xmm3, %xmm1
	addq	$16, %rax
	addq	$-2, %r10
	jne	LBB0_6
## %bb.7:
	testb	$1, %r9b
	je	LBB0_9
LBB0_8:
	movl	(%rsi,%rax), %ecx
	movl	4(%rsi,%rax), %r9d
	xorl	(%rdi,%rax), %ecx
	movd	%ecx, %xmm2
	xorl	4(%rdi,%rax), %r9d
	movd	%r9d, %xmm3
	pmovzxbd	%xmm2, %xmm2                    ## xmm2 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero,xmm2[2],zero,zero,zero,xmm2[3],zero,zero,zero
	por	%xmm2, %xmm0
	pmovzxbd	%xmm3, %xmm2                    ## xmm2 = xmm3[0],zero,zero,zero,xmm3[1],zero,zero,zero,xmm3[2],zero,zero,zero,xmm3[3],zero,zero,zero
	por	%xmm2, %xmm1
LBB0_9:
	por	%xmm1, %xmm0
	pshufd	$238, %xmm0, %xmm1              ## xmm1 = xmm0[2,3,2,3]
	por	%xmm0, %xmm1
	pshufd	$85, %xmm1, %xmm0               ## xmm0 = xmm1[1,1,1,1]
	por	%xmm1, %xmm0
	movd	%xmm0, %r9d
	cmpq	%rdx, %r8
	je	LBB0_13
## %bb.10:
	andl	$7, %edx
	addq	%r8, %rsi
	addq	%r8, %rdi
LBB0_11:
	xorl	%eax, %eax
	.p2align	4, 0x90
LBB0_12:                                ## =>This Inner Loop Header: Depth=1
	movzbl	(%rsi,%rax), %ecx
	xorb	(%rdi,%rax), %cl
	movzbl	%cl, %ecx
	orl	%ecx, %r9d
	incq	%rax
	cmpq	%rax, %rdx
	jne	LBB0_12
LBB0_13:
	xorl	%eax, %eax
	testl	%r9d, %r9d
	setne	%al
	popq	%rbp
	retq
LBB0_1:
	xorl	%eax, %eax
	retq
LBB0_4:
	pxor	%xmm0, %xmm0
	xorl	%eax, %eax
	pxor	%xmm1, %xmm1
	testb	$1, %r9b
	jne	LBB0_8
	jmp	LBB0_9
	.cfi_endproc
                                        ## -- End function
.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 timingsafe_bcmp
lCPI0_0:
	.byte	0                               ; 0x0
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	1                               ; 0x1
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	2                               ; 0x2
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	3                               ; 0x3
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
lCPI0_1:
	.byte	4                               ; 0x4
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	5                               ; 0x5
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	6                               ; 0x6
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	7                               ; 0x7
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
lCPI0_2:
	.byte	8                               ; 0x8
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	9                               ; 0x9
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	10                              ; 0xa
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	11                              ; 0xb
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
lCPI0_3:
	.byte	12                              ; 0xc
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	13                              ; 0xd
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	14                              ; 0xe
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	15                              ; 0xf
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.byte	255                             ; 0xff
	.section	__TEXT,__text,regular,pure_instructions
	.globl	_timingsafe_bcmp
	.p2align	2
_timingsafe_bcmp:                       ; @timingsafe_bcmp
	.cfi_startproc
; %bb.0:
	cbz	x2, LBB0_3
; %bb.1:
	stp	d9, d8, [sp, #-16]!             ; 16-byte Folded Spill
	.cfi_def_cfa_offset 16
	.cfi_offset b8, -8
	.cfi_offset b9, -16
	.cfi_remember_state
	cmp	x2, #8
	b.hs	LBB0_4
; %bb.2:
	mov	w14, #0
	mov	x11, x1
	mov	x12, x0
	mov	x13, x2
	b	LBB0_14
LBB0_3:
	.cfi_def_cfa wsp, 0
	.cfi_same_value b8
	.cfi_same_value b9
	mov	w0, #0
	ret
LBB0_4:
	.cfi_restore_state
	adrp	x8, lCPI0_0@PAGE
	adrp	x9, lCPI0_1@PAGE
	cmp	x2, #64
	b.hs	LBB0_6
; %bb.5:
	mov	w14, #0
	mov	x10, #0
	b	LBB0_10
LBB0_6:
	movi.2d	v0, #0000000000000000
	and	x10, x2, #0xffffffffffffffc0
	movi.2d	v2, #0000000000000000
	add	x11, x0, #32
	movi.2d	v1, #0000000000000000
	add	x12, x1, #32
	movi.2d	v3, #0000000000000000
	ldr	q18, [x8, lCPI0_0@PAGEOFF]
	ldr	q19, [x9, lCPI0_1@PAGEOFF]
Lloh0:
	adrp	x13, lCPI0_2@PAGE
Lloh1:
	ldr	q23, [x13, lCPI0_2@PAGEOFF]
	movi.2d	v6, #0000000000000000
	movi.2d	v22, #0000000000000000
	movi.2d	v7, #0000000000000000
	movi.2d	v24, #0000000000000000
	movi.2d	v16, #0000000000000000
Lloh2:
	adrp	x13, lCPI0_3@PAGE
Lloh3:
	ldr	q27, [x13, lCPI0_3@PAGEOFF]
	movi.2d	v4, #0000000000000000
	mov	x13, x10
	movi.2d	v25, #0000000000000000
	movi.2d	v20, #0000000000000000
	movi.2d	v5, #0000000000000000
	movi.2d	v21, #0000000000000000
	movi.2d	v17, #0000000000000000
	movi.2d	v26, #0000000000000000
LBB0_7:                                 ; =>This Inner Loop Header: Depth=1
	ldp	q28, q29, [x11, #-32]
	ldp	q30, q31, [x12, #-32]
	eor.16b	v28, v30, v28
	eor.16b	v29, v31, v29
	ldp	q30, q31, [x11], #64
	ldp	q8, q9, [x12], #64
	eor.16b	v30, v8, v30
	eor.16b	v31, v9, v31
	tbl.16b	v8, { v28 }, v27
	orr.16b	v3, v3, v8
	tbl.16b	v8, { v28 }, v23
	orr.16b	v1, v1, v8
	tbl.16b	v8, { v28 }, v19
	orr.16b	v2, v2, v8
	tbl.16b	v28, { v28 }, v18
	orr.16b	v0, v0, v28
	tbl.16b	v28, { v29 }, v27
	orr.16b	v24, v24, v28
	tbl.16b	v28, { v29 }, v23
	orr.16b	v7, v7, v28
	tbl.16b	v28, { v29 }, v19
	orr.16b	v22, v22, v28
	tbl.16b	v28, { v29 }, v18
	orr.16b	v6, v6, v28
	tbl.16b	v28, { v30 }, v27
	orr.16b	v20, v20, v28
	tbl.16b	v28, { v30 }, v23
	orr.16b	v25, v25, v28
	tbl.16b	v28, { v30 }, v19
	orr.16b	v4, v4, v28
	tbl.16b	v28, { v30 }, v18
	orr.16b	v16, v16, v28
	tbl.16b	v28, { v31 }, v27
	orr.16b	v26, v26, v28
	tbl.16b	v28, { v31 }, v23
	orr.16b	v17, v17, v28
	tbl.16b	v28, { v31 }, v19
	orr.16b	v21, v21, v28
	tbl.16b	v28, { v31 }, v18
	orr.16b	v5, v5, v28
	subs	x13, x13, #64
	b.ne	LBB0_7
; %bb.8:
	orr.16b	v2, v22, v2
	orr.16b	v3, v24, v3
	orr.16b	v0, v6, v0
	orr.16b	v1, v7, v1
	orr.16b	v1, v25, v1
	orr.16b	v0, v16, v0
	orr.16b	v3, v20, v3
	orr.16b	v2, v4, v2
	orr.16b	v2, v21, v2
	orr.16b	v3, v26, v3
	orr.16b	v0, v5, v0
	orr.16b	v1, v17, v1
	orr.16b	v0, v0, v1
	orr.16b	v1, v2, v3
	orr.16b	v0, v0, v1
	ext.16b	v1, v0, v0, #8
	orr.8b	v0, v0, v1
	mov.s	w11, v0[1]
	fmov	w12, s0
	orr	w14, w12, w11
	cmp	x10, x2
	b.eq	LBB0_15
; %bb.9:
	tst	x2, #0x38
	b.eq	LBB0_13
LBB0_10:
	and	x15, x2, #0xfffffffffffffff8
	add	x11, x1, x15
	add	x12, x0, x15
	and	x13, x2, #0x7
	movi.2d	v0, #0000000000000000
	mov.s	v0[0], w14
	movi.2d	v1, #0000000000000000
	add	x14, x0, x10
	add	x16, x1, x10
	sub	x10, x10, x15
	ldr	q2, [x8, lCPI0_0@PAGEOFF]
	ldr	q3, [x9, lCPI0_1@PAGEOFF]
LBB0_11:                                ; =>This Inner Loop Header: Depth=1
	ldr	d4, [x14], #8
	ldr	d5, [x16], #8
	eor.8b	v4, v5, v4
	tbl.16b	v5, { v4 }, v2
	tbl.16b	v4, { v4 }, v3
	orr.16b	v1, v1, v4
	orr.16b	v0, v0, v5
	adds	x10, x10, #8
	b.ne	LBB0_11
; %bb.12:
	orr.16b	v0, v0, v1
	ext.16b	v1, v0, v0, #8
	orr.8b	v0, v0, v1
	mov.s	w8, v0[1]
	fmov	w9, s0
	orr	w14, w9, w8
	cmp	x15, x2
	b.ne	LBB0_14
	b	LBB0_15
LBB0_13:
	and	x13, x2, #0x3f
	add	x12, x0, x10
	add	x11, x1, x10
LBB0_14:                                ; =>This Inner Loop Header: Depth=1
	ldrb	w8, [x12], #1
	ldrb	w9, [x11], #1
	eor	w8, w9, w8
	orr	w14, w14, w8
	subs	x13, x13, #1
	b.ne	LBB0_14
LBB0_15:
	cmp	w14, #0
	cset	w0, ne
	ldp	d9, d8, [sp], #16               ; 16-byte Folded Reload
	ret
	.loh AdrpLdr	Lloh2, Lloh3
	.loh AdrpAdrp	Lloh0, Lloh2
	.loh AdrpLdr	Lloh0, Lloh1
	.cfi_endproc
                                        ; -- End function
.subsections_via_symbols
