	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function vmx_inject_nmi
_vmx_inject_nmi:                        ## @vmx_inject_nmi
	.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	%r12
	pushq	%rbx
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movl	%esi, %r14d
	movq	%rdi, %rbx
	movq	_VMCS_GUEST_INTERRUPTIBILITY@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_vmcs_read
	movq	_NMI_BLOCKING@GOTPCREL(%rip), %rcx
	xorl	%edi, %edi
	movslq	%eax, %rsi
	andl	(%rcx), %eax
	sete	%dil
	callq	_KASSERT
	movq	_VMCS_ENTRY_INTR_INFO@GOTPCREL(%rip), %r15
	movl	(%r15), %edi
	callq	_vmcs_read
	movq	_VMCS_INTR_VALID@GOTPCREL(%rip), %r12
	xorl	%edi, %edi
	movslq	%eax, %rsi
	andl	(%r12), %eax
	sete	%dil
	callq	_KASSERT
	movq	_IDT_NMI@GOTPCREL(%rip), %rax
	movq	_VMCS_INTR_T_NMI@GOTPCREL(%rip), %rcx
	movl	(%rcx), %esi
	orl	(%rax), %esi
	orl	(%r12), %esi
	movl	(%r15), %edi
	callq	_vmcs_write
	movl	(%rbx), %edi
	leaq	L_.str.2(%rip), %rdx
	movl	%r14d, %esi
	callq	_VCPU_CTR0
	movl	(%rbx), %edi
	movl	%r14d, %esi
	popq	%rbx
	popq	%r12
	popq	%r14
	popq	%r15
	popq	%rbp
	jmp	_vm_nmi_clear                   ## TAILCALL
	.cfi_endproc
                                        ## -- End function
	.comm	_VMCS_GUEST_INTERRUPTIBILITY,4,2 ## @VMCS_GUEST_INTERRUPTIBILITY
	.comm	_NMI_BLOCKING,4,2               ## @NMI_BLOCKING
	.comm	_VMCS_ENTRY_INTR_INFO,4,2       ## @VMCS_ENTRY_INTR_INFO
	.comm	_VMCS_INTR_VALID,4,2            ## @VMCS_INTR_VALID
	.comm	_IDT_NMI,4,2                    ## @IDT_NMI
	.comm	_VMCS_INTR_T_NMI,4,2            ## @VMCS_INTR_T_NMI
	.section	__TEXT,__cstring,cstring_literals
L_.str.2:                               ## @.str.2
	.asciz	"Injecting vNMI"

	.no_dead_strip	_vmx_inject_nmi
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function vmx_inject_nmi
_vmx_inject_nmi:                        ; @vmx_inject_nmi
	.cfi_startproc
; %bb.0:
	stp	x22, x21, [sp, #-48]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 48
	stp	x20, x19, [sp, #16]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #32]             ; 16-byte Folded Spill
	add	x29, sp, #32
	.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
	mov	x19, x1
	mov	x20, x0
Lloh0:
	adrp	x8, _VMCS_GUEST_INTERRUPTIBILITY@GOTPAGE
Lloh1:
	ldr	x8, [x8, _VMCS_GUEST_INTERRUPTIBILITY@GOTPAGEOFF]
Lloh2:
	ldr	w0, [x8]
	bl	_vmcs_read
                                        ; kill: def $w0 killed $w0 def $x0
Lloh3:
	adrp	x8, _NMI_BLOCKING@GOTPAGE
Lloh4:
	ldr	x8, [x8, _NMI_BLOCKING@GOTPAGEOFF]
Lloh5:
	ldr	w8, [x8]
	tst	w8, w0
	cset	w8, eq
	sxtw	x1, w0
	mov	x0, x8
	bl	_KASSERT
Lloh6:
	adrp	x21, _VMCS_ENTRY_INTR_INFO@GOTPAGE
Lloh7:
	ldr	x21, [x21, _VMCS_ENTRY_INTR_INFO@GOTPAGEOFF]
	ldr	w0, [x21]
	bl	_vmcs_read
                                        ; kill: def $w0 killed $w0 def $x0
Lloh8:
	adrp	x22, _VMCS_INTR_VALID@GOTPAGE
Lloh9:
	ldr	x22, [x22, _VMCS_INTR_VALID@GOTPAGEOFF]
	ldr	w8, [x22]
	tst	w8, w0
	cset	w8, eq
	sxtw	x1, w0
	mov	x0, x8
	bl	_KASSERT
Lloh10:
	adrp	x8, _IDT_NMI@GOTPAGE
Lloh11:
	ldr	x8, [x8, _IDT_NMI@GOTPAGEOFF]
Lloh12:
	adrp	x9, _VMCS_INTR_T_NMI@GOTPAGE
Lloh13:
	ldr	x9, [x9, _VMCS_INTR_T_NMI@GOTPAGEOFF]
Lloh14:
	ldr	w8, [x8]
Lloh15:
	ldr	w9, [x9]
	orr	w8, w9, w8
	ldr	w9, [x22]
	orr	w1, w8, w9
	ldr	w0, [x21]
	bl	_vmcs_write
	ldr	w0, [x20]
Lloh16:
	adrp	x2, l_.str.2@PAGE
Lloh17:
	add	x2, x2, l_.str.2@PAGEOFF
	mov	x1, x19
	bl	_VCPU_CTR0
	ldr	w0, [x20]
	mov	x1, x19
	ldp	x29, x30, [sp, #32]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp], #48             ; 16-byte Folded Reload
	b	_vm_nmi_clear
	.loh AdrpAdd	Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh15
	.loh AdrpLdrGotLdr	Lloh10, Lloh11, Lloh14
	.loh AdrpLdrGot	Lloh8, Lloh9
	.loh AdrpLdrGot	Lloh6, Lloh7
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.cfi_endproc
                                        ; -- End function
	.comm	_VMCS_GUEST_INTERRUPTIBILITY,4,2 ; @VMCS_GUEST_INTERRUPTIBILITY
	.comm	_NMI_BLOCKING,4,2               ; @NMI_BLOCKING
	.comm	_VMCS_ENTRY_INTR_INFO,4,2       ; @VMCS_ENTRY_INTR_INFO
	.comm	_VMCS_INTR_VALID,4,2            ; @VMCS_INTR_VALID
	.comm	_IDT_NMI,4,2                    ; @IDT_NMI
	.comm	_VMCS_INTR_T_NMI,4,2            ; @VMCS_INTR_T_NMI
	.section	__TEXT,__cstring,cstring_literals
l_.str.2:                               ; @.str.2
	.asciz	"Injecting vNMI"

	.no_dead_strip	_vmx_inject_nmi
.subsections_via_symbols
