	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4                               ## -- Begin function setup_xen_features
LCPI0_0:
	.long	1                               ## 0x1
	.long	1                               ## 0x1
	.long	1                               ## 0x1
	.long	1                               ## 0x1
	.section	__TEXT,__text,regular,pure_instructions
	.globl	_setup_xen_features
	.p2align	4, 0x90
_setup_xen_features:                    ## @setup_xen_features
	.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
	movq	_XENFEAT_NR_SUBMAPS@GOTPCREL(%rip), %r13
	cmpl	$0, (%r13)
	jle	LBB0_8
## %bb.1:
	xorl	%ebx, %ebx
	movq	_XENVER_get_features@GOTPCREL(%rip), %r15
	leaq	-48(%rbp), %r14
	movq	_xen_features@GOTPCREL(%rip), %r12
	jmp	LBB0_2
	.p2align	4, 0x90
LBB0_9:                                 ##   in Loop: Header=BB0_2 Depth=1
	movd	-44(%rbp), %xmm0                ## xmm0 = mem[0],zero,zero,zero
	pshufd	$0, %xmm0, %xmm1                ## xmm1 = xmm0[0,0,0,0]
	movdqa	%xmm1, %xmm2
	psrld	$3, %xmm2
	movdqa	%xmm1, %xmm3
	psrld	$1, %xmm3
	pblendw	$240, %xmm2, %xmm3              ## xmm3 = xmm3[0,1,2,3],xmm2[4,5,6,7]
	psrld	$2, %xmm1
	pblendw	$15, %xmm0, %xmm1               ## xmm1 = xmm0[0,1,2,3],xmm1[4,5,6,7]
	pblendw	$204, %xmm3, %xmm1              ## xmm1 = xmm1[0,1],xmm3[2,3],xmm1[4,5],xmm3[6,7]
	movdqa	LCPI0_0(%rip), %xmm4            ## xmm4 = [1,1,1,1]
	pand	%xmm4, %xmm1
	movdqu	%xmm1, (%rax,%rcx,4)
	shlq	$2, %rcx
	movd	-44(%rbp), %xmm0                ## xmm0 = mem[0],zero,zero,zero
	pshufd	$0, %xmm0, %xmm1                ## xmm1 = xmm0[0,0,0,0]
	movdqa	%xmm1, %xmm2
	psrld	$7, %xmm2
	movdqa	%xmm1, %xmm3
	psrld	$5, %xmm3
	pblendw	$240, %xmm2, %xmm3              ## xmm3 = xmm3[0,1,2,3],xmm2[4,5,6,7]
	psrld	$4, %xmm0
	psrld	$6, %xmm1
	pblendw	$15, %xmm0, %xmm1               ## xmm1 = xmm0[0,1,2,3],xmm1[4,5,6,7]
	pblendw	$204, %xmm3, %xmm1              ## xmm1 = xmm1[0,1],xmm3[2,3],xmm1[4,5],xmm3[6,7]
	pand	%xmm4, %xmm1
	movq	%rcx, %rdx
	orq	$16, %rdx
	movdqu	%xmm1, (%rax,%rdx)
	movd	-44(%rbp), %xmm0                ## xmm0 = mem[0],zero,zero,zero
	pshufd	$0, %xmm0, %xmm1                ## xmm1 = xmm0[0,0,0,0]
	movdqa	%xmm1, %xmm2
	psrld	$11, %xmm2
	movdqa	%xmm1, %xmm3
	psrld	$9, %xmm3
	pblendw	$240, %xmm2, %xmm3              ## xmm3 = xmm3[0,1,2,3],xmm2[4,5,6,7]
	psrld	$8, %xmm0
	psrld	$10, %xmm1
	pblendw	$15, %xmm0, %xmm1               ## xmm1 = xmm0[0,1,2,3],xmm1[4,5,6,7]
	pblendw	$204, %xmm3, %xmm1              ## xmm1 = xmm1[0,1],xmm3[2,3],xmm1[4,5],xmm3[6,7]
	pand	%xmm4, %xmm1
	movq	%rcx, %rdx
	orq	$32, %rdx
	movdqu	%xmm1, (%rax,%rdx)
	movd	-44(%rbp), %xmm0                ## xmm0 = mem[0],zero,zero,zero
	pshufd	$0, %xmm0, %xmm1                ## xmm1 = xmm0[0,0,0,0]
	movdqa	%xmm1, %xmm2
	psrld	$15, %xmm2
	movdqa	%xmm1, %xmm3
	psrld	$13, %xmm3
	pblendw	$240, %xmm2, %xmm3              ## xmm3 = xmm3[0,1,2,3],xmm2[4,5,6,7]
	psrld	$12, %xmm0
	psrld	$14, %xmm1
	pblendw	$15, %xmm0, %xmm1               ## xmm1 = xmm0[0,1,2,3],xmm1[4,5,6,7]
	pblendw	$204, %xmm3, %xmm1              ## xmm1 = xmm1[0,1],xmm3[2,3],xmm1[4,5],xmm3[6,7]
	pand	%xmm4, %xmm1
	movq	%rcx, %rdx
	orq	$48, %rdx
	movdqu	%xmm1, (%rax,%rdx)
	movd	-44(%rbp), %xmm0                ## xmm0 = mem[0],zero,zero,zero
	pshufd	$0, %xmm0, %xmm1                ## xmm1 = xmm0[0,0,0,0]
	movdqa	%xmm1, %xmm2
	psrld	$19, %xmm2
	movdqa	%xmm1, %xmm3
	psrld	$17, %xmm3
	pblendw	$240, %xmm2, %xmm3              ## xmm3 = xmm3[0,1,2,3],xmm2[4,5,6,7]
	psrld	$16, %xmm0
	psrld	$18, %xmm1
	pblendw	$15, %xmm0, %xmm1               ## xmm1 = xmm0[0,1,2,3],xmm1[4,5,6,7]
	pblendw	$204, %xmm3, %xmm1              ## xmm1 = xmm1[0,1],xmm3[2,3],xmm1[4,5],xmm3[6,7]
	pand	%xmm4, %xmm1
	movq	%rcx, %rdx
	orq	$64, %rdx
	movdqu	%xmm1, (%rax,%rdx)
	movd	-44(%rbp), %xmm0                ## xmm0 = mem[0],zero,zero,zero
	pshufd	$0, %xmm0, %xmm1                ## xmm1 = xmm0[0,0,0,0]
	movdqa	%xmm1, %xmm2
	psrld	$23, %xmm2
	movdqa	%xmm1, %xmm3
	psrld	$21, %xmm3
	pblendw	$240, %xmm2, %xmm3              ## xmm3 = xmm3[0,1,2,3],xmm2[4,5,6,7]
	psrld	$20, %xmm0
	psrld	$22, %xmm1
	pblendw	$15, %xmm0, %xmm1               ## xmm1 = xmm0[0,1,2,3],xmm1[4,5,6,7]
	pblendw	$204, %xmm3, %xmm1              ## xmm1 = xmm1[0,1],xmm3[2,3],xmm1[4,5],xmm3[6,7]
	pand	%xmm4, %xmm1
	movq	%rcx, %rdx
	orq	$80, %rdx
	movdqu	%xmm1, (%rax,%rdx)
	movd	-44(%rbp), %xmm0                ## xmm0 = mem[0],zero,zero,zero
	pshufd	$0, %xmm0, %xmm1                ## xmm1 = xmm0[0,0,0,0]
	movdqa	%xmm1, %xmm2
	psrld	$27, %xmm2
	movdqa	%xmm1, %xmm3
	psrld	$25, %xmm3
	pblendw	$240, %xmm2, %xmm3              ## xmm3 = xmm3[0,1,2,3],xmm2[4,5,6,7]
	psrld	$24, %xmm0
	psrld	$26, %xmm1
	pblendw	$15, %xmm0, %xmm1               ## xmm1 = xmm0[0,1,2,3],xmm1[4,5,6,7]
	pblendw	$204, %xmm3, %xmm1              ## xmm1 = xmm1[0,1],xmm3[2,3],xmm1[4,5],xmm3[6,7]
	pand	%xmm4, %xmm1
	movq	%rcx, %rdx
	orq	$96, %rdx
	movdqu	%xmm1, (%rax,%rdx)
	movd	-44(%rbp), %xmm0                ## xmm0 = mem[0],zero,zero,zero
	pshufd	$0, %xmm0, %xmm1                ## xmm1 = xmm0[0,0,0,0]
	movdqa	%xmm1, %xmm2
	psrld	$31, %xmm2
	movdqa	%xmm1, %xmm3
	psrld	$29, %xmm3
	pblendw	$240, %xmm2, %xmm3              ## xmm3 = xmm3[0,1,2,3],xmm2[4,5,6,7]
	psrld	$28, %xmm0
	psrld	$30, %xmm1
	pblendw	$15, %xmm0, %xmm1               ## xmm1 = xmm0[0,1,2,3],xmm1[4,5,6,7]
	pblendw	$204, %xmm3, %xmm1              ## xmm1 = xmm1[0,1],xmm3[2,3],xmm1[4,5],xmm3[6,7]
	pand	%xmm4, %xmm1
	orq	$112, %rcx
	movdqu	%xmm1, (%rax,%rcx)
LBB0_7:                                 ##   in Loop: Header=BB0_2 Depth=1
	incq	%rbx
	movslq	(%r13), %rax
	cmpq	%rax, %rbx
	jge	LBB0_8
LBB0_2:                                 ## =>This Loop Header: Depth=1
                                        ##     Child Loop BB0_6 Depth 2
	movl	%ebx, -48(%rbp)
	movl	(%r15), %edi
	movq	%r14, %rsi
	callq	_HYPERVISOR_xen_version
	testq	%rax, %rax
	js	LBB0_8
## %bb.3:                               ##   in Loop: Header=BB0_2 Depth=1
	movl	%ebx, %ecx
	shll	$5, %ecx
	movq	(%r12), %rax
	leaq	(%rax,%rcx,4), %rdx
	leaq	-40(%rbp), %rsi
	cmpq	%rsi, %rdx
	jae	LBB0_9
## %bb.4:                               ##   in Loop: Header=BB0_2 Depth=1
	leaq	(%rax,%rcx,4), %rdx
	addq	$128, %rdx
	leaq	-44(%rbp), %rsi
	cmpq	%rdx, %rsi
	jae	LBB0_9
## %bb.5:                               ##   in Loop: Header=BB0_2 Depth=1
	movl	%ebx, %ecx
	andl	$134217727, %ecx                ## imm = 0x7FFFFFF
	shlq	$5, %rcx
	leaq	(%rax,%rcx,4), %rax
	addq	$4, %rax
	xorl	%ecx, %ecx
	.p2align	4, 0x90
LBB0_6:                                 ##   Parent Loop BB0_2 Depth=1
                                        ## =>  This Inner Loop Header: Depth=2
	movl	-44(%rbp), %edx
	xorl	%esi, %esi
	btl	%ecx, %edx
	setb	%sil
	movl	%esi, -4(%rax,%rcx,4)
	movl	-44(%rbp), %edx
	leal	1(%rcx), %esi
	movzbl	%sil, %esi
	xorl	%edi, %edi
	btl	%esi, %edx
	setb	%dil
	movl	%edi, (%rax,%rcx,4)
	addq	$2, %rcx
	cmpq	$32, %rcx
	jne	LBB0_6
	jmp	LBB0_7
LBB0_8:
	addq	$8, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_XENFEAT_NR_SUBMAPS,4,2         ## @XENFEAT_NR_SUBMAPS
	.comm	_XENVER_get_features,4,2        ## @XENVER_get_features
	.comm	_xen_features,8,3               ## @xen_features
.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 setup_xen_features
lCPI0_0:
	.long	0                               ; 0x0
	.long	4294967295                      ; 0xffffffff
	.long	4294967294                      ; 0xfffffffe
	.long	4294967293                      ; 0xfffffffd
lCPI0_1:
	.long	4294967292                      ; 0xfffffffc
	.long	4294967291                      ; 0xfffffffb
	.long	4294967290                      ; 0xfffffffa
	.long	4294967289                      ; 0xfffffff9
lCPI0_2:
	.long	4294967288                      ; 0xfffffff8
	.long	4294967287                      ; 0xfffffff7
	.long	4294967286                      ; 0xfffffff6
	.long	4294967285                      ; 0xfffffff5
lCPI0_3:
	.long	4294967284                      ; 0xfffffff4
	.long	4294967283                      ; 0xfffffff3
	.long	4294967282                      ; 0xfffffff2
	.long	4294967281                      ; 0xfffffff1
lCPI0_4:
	.long	4294967280                      ; 0xfffffff0
	.long	4294967279                      ; 0xffffffef
	.long	4294967278                      ; 0xffffffee
	.long	4294967277                      ; 0xffffffed
lCPI0_5:
	.long	4294967276                      ; 0xffffffec
	.long	4294967275                      ; 0xffffffeb
	.long	4294967274                      ; 0xffffffea
	.long	4294967273                      ; 0xffffffe9
lCPI0_6:
	.long	4294967272                      ; 0xffffffe8
	.long	4294967271                      ; 0xffffffe7
	.long	4294967270                      ; 0xffffffe6
	.long	4294967269                      ; 0xffffffe5
lCPI0_7:
	.long	4294967268                      ; 0xffffffe4
	.long	4294967267                      ; 0xffffffe3
	.long	4294967266                      ; 0xffffffe2
	.long	4294967265                      ; 0xffffffe1
	.section	__TEXT,__text,regular,pure_instructions
	.globl	_setup_xen_features
	.p2align	2
_setup_xen_features:                    ; @setup_xen_features
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #224
	.cfi_def_cfa_offset 224
	stp	x26, x25, [sp, #144]            ; 16-byte Folded Spill
	stp	x24, x23, [sp, #160]            ; 16-byte Folded Spill
	stp	x22, x21, [sp, #176]            ; 16-byte Folded Spill
	stp	x20, x19, [sp, #192]            ; 16-byte Folded Spill
	stp	x29, x30, [sp, #208]            ; 16-byte Folded Spill
	add	x29, sp, #208
	.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
	.cfi_offset w25, -72
	.cfi_offset w26, -80
Lloh0:
	adrp	x19, _XENFEAT_NR_SUBMAPS@GOTPAGE
Lloh1:
	ldr	x19, [x19, _XENFEAT_NR_SUBMAPS@GOTPAGEOFF]
	ldr	w8, [x19]
	cmp	w8, #1
	b.lt	LBB0_8
; %bb.1:
	mov	x20, #0
	sub	x21, x29, #72
	orr	x22, x21, #0x4
	add	x23, x21, #8
Lloh2:
	adrp	x24, _XENVER_get_features@GOTPAGE
Lloh3:
	ldr	x24, [x24, _XENVER_get_features@GOTPAGEOFF]
Lloh4:
	adrp	x8, lCPI0_0@PAGE
Lloh5:
	ldr	q0, [x8, lCPI0_0@PAGEOFF]
	stur	q0, [x29, #-96]                 ; 16-byte Folded Spill
Lloh6:
	adrp	x8, lCPI0_1@PAGE
Lloh7:
	ldr	q0, [x8, lCPI0_1@PAGEOFF]
	str	q0, [sp, #96]                   ; 16-byte Folded Spill
Lloh8:
	adrp	x8, lCPI0_2@PAGE
Lloh9:
	ldr	q0, [x8, lCPI0_2@PAGEOFF]
	str	q0, [sp, #80]                   ; 16-byte Folded Spill
Lloh10:
	adrp	x8, lCPI0_3@PAGE
Lloh11:
	ldr	q0, [x8, lCPI0_3@PAGEOFF]
	str	q0, [sp, #64]                   ; 16-byte Folded Spill
Lloh12:
	adrp	x8, lCPI0_4@PAGE
Lloh13:
	ldr	q0, [x8, lCPI0_4@PAGEOFF]
	str	q0, [sp, #48]                   ; 16-byte Folded Spill
Lloh14:
	adrp	x8, lCPI0_5@PAGE
Lloh15:
	ldr	q0, [x8, lCPI0_5@PAGEOFF]
	str	q0, [sp, #32]                   ; 16-byte Folded Spill
	mov	w25, #80
Lloh16:
	adrp	x8, lCPI0_6@PAGE
Lloh17:
	ldr	q0, [x8, lCPI0_6@PAGEOFF]
	str	q0, [sp, #16]                   ; 16-byte Folded Spill
Lloh18:
	adrp	x8, lCPI0_7@PAGE
Lloh19:
	ldr	q0, [x8, lCPI0_7@PAGEOFF]
	str	q0, [sp]                        ; 16-byte Folded Spill
Lloh20:
	adrp	x26, _xen_features@GOTPAGE
Lloh21:
	ldr	x26, [x26, _xen_features@GOTPAGEOFF]
	b	LBB0_4
LBB0_2:                                 ;   in Loop: Header=BB0_4 Depth=1
	orr	x10, x21, #0x4
	ld1r.4s	{ v0 }, [x10]
	ldur	q1, [x29, #-96]                 ; 16-byte Folded Reload
	ushl.4s	v1, v0, v1
	movi.4s	v2, #1
	and.16b	v1, v1, v2
	lsl	x9, x9, #2
	str	q1, [x8, x9]
	ldr	q1, [sp, #96]                   ; 16-byte Folded Reload
	ushl.4s	v1, v0, v1
	and.16b	v1, v1, v2
	orr	x10, x9, #0x10
	str	q1, [x8, x10]
	ldr	q1, [sp, #80]                   ; 16-byte Folded Reload
	ushl.4s	v1, v0, v1
	and.16b	v1, v1, v2
	orr	x10, x9, #0x20
	str	q1, [x8, x10]
	ldr	q1, [sp, #64]                   ; 16-byte Folded Reload
	ushl.4s	v1, v0, v1
	and.16b	v1, v1, v2
	orr	x10, x9, #0x30
	str	q1, [x8, x10]
	ldr	q1, [sp, #48]                   ; 16-byte Folded Reload
	ushl.4s	v1, v0, v1
	and.16b	v1, v1, v2
	orr	x10, x9, #0x40
	str	q1, [x8, x10]
	ldr	q1, [sp, #32]                   ; 16-byte Folded Reload
	ushl.4s	v1, v0, v1
	and.16b	v1, v1, v2
	orr	x10, x9, x25
	str	q1, [x8, x10]
	ldr	q1, [sp, #16]                   ; 16-byte Folded Reload
	ushl.4s	v1, v0, v1
	and.16b	v1, v1, v2
	orr	x10, x9, #0x60
	str	q1, [x8, x10]
	ldr	q1, [sp]                        ; 16-byte Folded Reload
	ushl.4s	v0, v0, v1
	and.16b	v0, v0, v2
	orr	x9, x9, #0x70
	str	q0, [x8, x9]
LBB0_3:                                 ;   in Loop: Header=BB0_4 Depth=1
	add	x20, x20, #1
	ldrsw	x8, [x19]
	cmp	x20, x8
	b.ge	LBB0_8
LBB0_4:                                 ; =>This Loop Header: Depth=1
                                        ;     Child Loop BB0_7 Depth 2
	stur	w20, [x29, #-72]
	ldr	w0, [x24]
	sub	x1, x29, #72
	bl	_HYPERVISOR_xen_version
	tbnz	x0, #63, LBB0_8
; %bb.5:                                ;   in Loop: Header=BB0_4 Depth=1
	lsl	w9, w20, #5
	ldr	x8, [x26]
	add	x10, x8, w9, uxtw #2
	add	x11, x10, #128
	cmp	x10, x23
	ccmp	x22, x11, #2, lo
	b.hs	LBB0_2
; %bb.6:                                ;   in Loop: Header=BB0_4 Depth=1
	mov	x9, #0
	and	x10, x20, #0x7ffffff
	lsl	x10, x10, #5
	add	x8, x8, x10, lsl #2
LBB0_7:                                 ;   Parent Loop BB0_4 Depth=1
                                        ; =>  This Inner Loop Header: Depth=2
	ldur	w10, [x29, #-68]
	lsr	w10, w10, w9
	and	w10, w10, #0x1
	str	w10, [x8, x9, lsl #2]
	add	x9, x9, #1
	cmp	x9, #32
	b.ne	LBB0_7
	b	LBB0_3
LBB0_8:
	ldp	x29, x30, [sp, #208]            ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #192]            ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #176]            ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #160]            ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #144]            ; 16-byte Folded Reload
	add	sp, sp, #224
	ret
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpLdrGot	Lloh20, Lloh21
	.loh AdrpLdr	Lloh18, Lloh19
	.loh AdrpAdrp	Lloh16, Lloh18
	.loh AdrpLdr	Lloh16, Lloh17
	.loh AdrpAdrp	Lloh14, Lloh16
	.loh AdrpLdr	Lloh14, Lloh15
	.loh AdrpAdrp	Lloh12, Lloh14
	.loh AdrpLdr	Lloh12, Lloh13
	.loh AdrpAdrp	Lloh10, Lloh12
	.loh AdrpLdr	Lloh10, Lloh11
	.loh AdrpAdrp	Lloh8, Lloh10
	.loh AdrpLdr	Lloh8, Lloh9
	.loh AdrpAdrp	Lloh6, Lloh8
	.loh AdrpLdr	Lloh6, Lloh7
	.loh AdrpAdrp	Lloh4, Lloh6
	.loh AdrpLdr	Lloh4, Lloh5
	.loh AdrpLdrGot	Lloh2, Lloh3
	.cfi_endproc
                                        ; -- End function
	.comm	_XENFEAT_NR_SUBMAPS,4,2         ; @XENFEAT_NR_SUBMAPS
	.comm	_XENVER_get_features,4,2        ; @XENVER_get_features
	.comm	_xen_features,8,3               ; @xen_features
.subsections_via_symbols
