	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function vmbus_bus_init
_vmbus_bus_init:                        ## @vmbus_bus_init
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r14
	pushq	%rbx
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	xorl	%eax, %eax
	callq	_hv_init
	testl	%eax, %eax
	je	LBB0_2
## %bb.1:
	movl	%eax, %ebx
	leaq	L_.str(%rip), %rdi
	movl	%eax, %esi
	xorl	%eax, %eax
	callq	_pr_err
	jmp	LBB0_16
LBB0_2:
	movq	_hv_bus@GOTPCREL(%rip), %rdi
	callq	_bus_register
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_16
## %bb.3:
	movq	_vmbus_isr@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_hv_setup_vmbus_irq
	xorl	%eax, %eax
	callq	_hv_synic_alloc
	movl	%eax, %ebx
	testl	%eax, %eax
	jne	LBB0_15
## %bb.4:
	movq	_VMBUS_MESSAGE_SINT@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_hv_stimer_alloc
	testl	%eax, %eax
	js	LBB0_5
## %bb.6:
	movq	_CPUHP_AP_ONLINE_DYN@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	movq	_hv_synic_init@GOTPCREL(%rip), %rax
	movl	(%rax), %edx
	movq	_hv_synic_cleanup@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	leaq	L_.str.1(%rip), %rsi
	callq	_cpuhp_setup_state
	movl	%eax, %ebx
	testl	%eax, %eax
	js	LBB0_14
## %bb.7:
	movq	_hyperv_cpuhp_online@GOTPCREL(%rip), %r14
	movl	%ebx, (%r14)
	xorl	%eax, %eax
	callq	_vmbus_connect
	testl	%eax, %eax
	je	LBB0_8
## %bb.13:
	movl	%eax, %ebx
	movl	(%r14), %edi
	callq	_cpuhp_remove_state
LBB0_14:
	xorl	%eax, %eax
	callq	_hv_stimer_free
	jmp	LBB0_15
LBB0_5:
	movl	%eax, %ebx
LBB0_15:
	xorl	%eax, %eax
	callq	_hv_synic_free
	xorl	%eax, %eax
	callq	_hv_remove_vmbus_irq
	movq	_hv_bus@GOTPCREL(%rip), %rdi
	callq	_bus_unregister
	movq	_hv_panic_page@GOTPCREL(%rip), %rax
	movq	(%rax), %rdi
	callq	_free_page
	movq	_hv_ctl_table_hdr@GOTPCREL(%rip), %r14
	movq	(%r14), %rdi
	callq	_unregister_sysctl_table
	movq	$0, (%r14)
LBB0_16:
	movl	%ebx, %eax
	popq	%rbx
	popq	%r14
	popq	%rbp
	retq
LBB0_8:
	movq	_ms_hyperv@GOTPCREL(%rip), %rax
	movq	_HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	testl	%ecx, (%rax)
	je	LBB0_12
## %bb.9:
	movq	_hv_root_table@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_register_sysctl_table
	movq	_hv_ctl_table_hdr@GOTPCREL(%rip), %rcx
	movq	%rax, (%rcx)
	testq	%rax, %rax
	jne	LBB0_11
## %bb.10:
	leaq	L_.str.2(%rip), %rdi
	xorl	%eax, %eax
	callq	_pr_err
LBB0_11:
	callq	_hv_get_crash_ctl
	movq	_hyperv_die_block@GOTPCREL(%rip), %rdi
	callq	_register_die_notifier
	movq	_panic_notifier_list@GOTPCREL(%rip), %rdi
	movq	_hyperv_panic_block@GOTPCREL(%rip), %rsi
	callq	_atomic_notifier_chain_register
LBB0_12:
	xorl	%ebx, %ebx
	xorl	%eax, %eax
	callq	_vmbus_request_offers
	jmp	LBB0_16
	.cfi_endproc
                                        ## -- End function
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"Unable to initialize the hypervisor - 0x%x\n"

	.comm	_hv_bus,4,2                     ## @hv_bus
	.comm	_vmbus_isr,4,2                  ## @vmbus_isr
	.comm	_VMBUS_MESSAGE_SINT,4,2         ## @VMBUS_MESSAGE_SINT
	.comm	_CPUHP_AP_ONLINE_DYN,4,2        ## @CPUHP_AP_ONLINE_DYN
L_.str.1:                               ## @.str.1
	.asciz	"hyperv/vmbus:online"

	.comm	_hv_synic_init,4,2              ## @hv_synic_init
	.comm	_hv_synic_cleanup,4,2           ## @hv_synic_cleanup
	.comm	_hyperv_cpuhp_online,4,2        ## @hyperv_cpuhp_online
	.comm	_ms_hyperv,4,2                  ## @ms_hyperv
	.comm	_HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE,4,2 ## @HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE
	.comm	_hv_root_table,4,2              ## @hv_root_table
	.comm	_hv_ctl_table_hdr,8,3           ## @hv_ctl_table_hdr
L_.str.2:                               ## @.str.2
	.asciz	"Hyper-V: sysctl table register error"

	.comm	_HV_CRASH_CTL_CRASH_NOTIFY_MSG,4,2 ## @HV_CRASH_CTL_CRASH_NOTIFY_MSG
	.comm	_GFP_KERNEL,4,2                 ## @GFP_KERNEL
	.comm	_hv_panic_page,8,3              ## @hv_panic_page
	.comm	_hv_kmsg_dumper,4,2             ## @hv_kmsg_dumper
	.comm	_hyperv_die_block,4,2           ## @hyperv_die_block
	.comm	_panic_notifier_list,4,2        ## @panic_notifier_list
	.comm	_hyperv_panic_block,4,2         ## @hyperv_panic_block
	.no_dead_strip	_vmbus_bus_init
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function vmbus_bus_init
_vmbus_bus_init:                        ; @vmbus_bus_init
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #48
	.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
	bl	_hv_init
	cbz	w0, LBB0_2
; %bb.1:
	mov	x19, x0
	str	x19, [sp]
Lloh0:
	adrp	x0, l_.str@PAGE
Lloh1:
	add	x0, x0, l_.str@PAGEOFF
	bl	_pr_err
	b	LBB0_11
LBB0_2:
Lloh2:
	adrp	x0, _hv_bus@GOTPAGE
Lloh3:
	ldr	x0, [x0, _hv_bus@GOTPAGEOFF]
	bl	_bus_register
	mov	x19, x0
	cbnz	w0, LBB0_11
; %bb.3:
Lloh4:
	adrp	x8, _vmbus_isr@GOTPAGE
Lloh5:
	ldr	x8, [x8, _vmbus_isr@GOTPAGEOFF]
Lloh6:
	ldr	w0, [x8]
	bl	_hv_setup_vmbus_irq
	bl	_hv_synic_alloc
	mov	x19, x0
	cbnz	w0, LBB0_10
; %bb.4:
Lloh7:
	adrp	x8, _VMBUS_MESSAGE_SINT@GOTPAGE
Lloh8:
	ldr	x8, [x8, _VMBUS_MESSAGE_SINT@GOTPAGEOFF]
Lloh9:
	ldr	w0, [x8]
	bl	_hv_stimer_alloc
	tbnz	w0, #31, LBB0_9
; %bb.5:
Lloh10:
	adrp	x8, _CPUHP_AP_ONLINE_DYN@GOTPAGE
Lloh11:
	ldr	x8, [x8, _CPUHP_AP_ONLINE_DYN@GOTPAGEOFF]
Lloh12:
	ldr	w0, [x8]
Lloh13:
	adrp	x8, _hv_synic_init@GOTPAGE
Lloh14:
	ldr	x8, [x8, _hv_synic_init@GOTPAGEOFF]
Lloh15:
	ldr	w2, [x8]
Lloh16:
	adrp	x8, _hv_synic_cleanup@GOTPAGE
Lloh17:
	ldr	x8, [x8, _hv_synic_cleanup@GOTPAGEOFF]
Lloh18:
	ldr	w3, [x8]
Lloh19:
	adrp	x1, l_.str.1@PAGE
Lloh20:
	add	x1, x1, l_.str.1@PAGEOFF
	bl	_cpuhp_setup_state
	mov	x19, x0
	tbnz	w0, #31, LBB0_8
; %bb.6:
Lloh21:
	adrp	x20, _hyperv_cpuhp_online@GOTPAGE
Lloh22:
	ldr	x20, [x20, _hyperv_cpuhp_online@GOTPAGEOFF]
	str	w19, [x20]
	bl	_vmbus_connect
	cbz	w0, LBB0_12
; %bb.7:
	mov	x19, x0
	ldr	w0, [x20]
	bl	_cpuhp_remove_state
LBB0_8:
	bl	_hv_stimer_free
	b	LBB0_10
LBB0_9:
	mov	x19, x0
LBB0_10:
	bl	_hv_synic_free
	bl	_hv_remove_vmbus_irq
Lloh23:
	adrp	x0, _hv_bus@GOTPAGE
Lloh24:
	ldr	x0, [x0, _hv_bus@GOTPAGEOFF]
	bl	_bus_unregister
Lloh25:
	adrp	x8, _hv_panic_page@GOTPAGE
Lloh26:
	ldr	x8, [x8, _hv_panic_page@GOTPAGEOFF]
Lloh27:
	ldr	x0, [x8]
	bl	_free_page
Lloh28:
	adrp	x20, _hv_ctl_table_hdr@GOTPAGE
Lloh29:
	ldr	x20, [x20, _hv_ctl_table_hdr@GOTPAGEOFF]
	ldr	x0, [x20]
	bl	_unregister_sysctl_table
	str	xzr, [x20]
LBB0_11:
	mov	x0, x19
	ldp	x29, x30, [sp, #32]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #16]             ; 16-byte Folded Reload
	add	sp, sp, #48
	ret
LBB0_12:
Lloh30:
	adrp	x8, _ms_hyperv@GOTPAGE
Lloh31:
	ldr	x8, [x8, _ms_hyperv@GOTPAGEOFF]
Lloh32:
	ldr	w8, [x8]
Lloh33:
	adrp	x9, _HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE@GOTPAGE
Lloh34:
	ldr	x9, [x9, _HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE@GOTPAGEOFF]
Lloh35:
	ldr	w9, [x9]
	tst	w9, w8
	b.eq	LBB0_16
; %bb.13:
Lloh36:
	adrp	x8, _hv_root_table@GOTPAGE
Lloh37:
	ldr	x8, [x8, _hv_root_table@GOTPAGEOFF]
Lloh38:
	ldr	w0, [x8]
	bl	_register_sysctl_table
Lloh39:
	adrp	x8, _hv_ctl_table_hdr@GOTPAGE
Lloh40:
	ldr	x8, [x8, _hv_ctl_table_hdr@GOTPAGEOFF]
Lloh41:
	str	x0, [x8]
	cbnz	x0, LBB0_15
; %bb.14:
Lloh42:
	adrp	x0, l_.str.2@PAGE
Lloh43:
	add	x0, x0, l_.str.2@PAGEOFF
	bl	_pr_err
LBB0_15:
	bl	_hv_get_crash_ctl
Lloh44:
	adrp	x0, _hyperv_die_block@GOTPAGE
Lloh45:
	ldr	x0, [x0, _hyperv_die_block@GOTPAGEOFF]
	bl	_register_die_notifier
Lloh46:
	adrp	x0, _panic_notifier_list@GOTPAGE
Lloh47:
	ldr	x0, [x0, _panic_notifier_list@GOTPAGEOFF]
Lloh48:
	adrp	x1, _hyperv_panic_block@GOTPAGE
Lloh49:
	ldr	x1, [x1, _hyperv_panic_block@GOTPAGEOFF]
	bl	_atomic_notifier_chain_register
LBB0_16:
	bl	_vmbus_request_offers
	mov	w19, #0
	b	LBB0_11
	.loh AdrpAdd	Lloh0, Lloh1
	.loh AdrpLdrGot	Lloh2, Lloh3
	.loh AdrpLdrGotLdr	Lloh4, Lloh5, Lloh6
	.loh AdrpLdrGotLdr	Lloh7, Lloh8, Lloh9
	.loh AdrpAdd	Lloh19, Lloh20
	.loh AdrpLdrGotLdr	Lloh16, Lloh17, Lloh18
	.loh AdrpLdrGotLdr	Lloh13, Lloh14, Lloh15
	.loh AdrpLdrGotLdr	Lloh10, Lloh11, Lloh12
	.loh AdrpLdrGot	Lloh21, Lloh22
	.loh AdrpLdrGot	Lloh28, Lloh29
	.loh AdrpLdrGotLdr	Lloh25, Lloh26, Lloh27
	.loh AdrpLdrGot	Lloh23, Lloh24
	.loh AdrpLdrGotLdr	Lloh33, Lloh34, Lloh35
	.loh AdrpLdrGotLdr	Lloh30, Lloh31, Lloh32
	.loh AdrpLdrGotStr	Lloh39, Lloh40, Lloh41
	.loh AdrpLdrGotLdr	Lloh36, Lloh37, Lloh38
	.loh AdrpAdd	Lloh42, Lloh43
	.loh AdrpLdrGot	Lloh48, Lloh49
	.loh AdrpLdrGot	Lloh46, Lloh47
	.loh AdrpLdrGot	Lloh44, Lloh45
	.cfi_endproc
                                        ; -- End function
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"Unable to initialize the hypervisor - 0x%x\n"

	.comm	_hv_bus,4,2                     ; @hv_bus
	.comm	_vmbus_isr,4,2                  ; @vmbus_isr
	.comm	_VMBUS_MESSAGE_SINT,4,2         ; @VMBUS_MESSAGE_SINT
	.comm	_CPUHP_AP_ONLINE_DYN,4,2        ; @CPUHP_AP_ONLINE_DYN
l_.str.1:                               ; @.str.1
	.asciz	"hyperv/vmbus:online"

	.comm	_hv_synic_init,4,2              ; @hv_synic_init
	.comm	_hv_synic_cleanup,4,2           ; @hv_synic_cleanup
	.comm	_hyperv_cpuhp_online,4,2        ; @hyperv_cpuhp_online
	.comm	_ms_hyperv,4,2                  ; @ms_hyperv
	.comm	_HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE,4,2 ; @HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE
	.comm	_hv_root_table,4,2              ; @hv_root_table
	.comm	_hv_ctl_table_hdr,8,3           ; @hv_ctl_table_hdr
l_.str.2:                               ; @.str.2
	.asciz	"Hyper-V: sysctl table register error"

	.comm	_HV_CRASH_CTL_CRASH_NOTIFY_MSG,4,2 ; @HV_CRASH_CTL_CRASH_NOTIFY_MSG
	.comm	_GFP_KERNEL,4,2                 ; @GFP_KERNEL
	.comm	_hv_panic_page,8,3              ; @hv_panic_page
	.comm	_hv_kmsg_dumper,4,2             ; @hv_kmsg_dumper
	.comm	_hyperv_die_block,4,2           ; @hyperv_die_block
	.comm	_panic_notifier_list,4,2        ; @panic_notifier_list
	.comm	_hyperv_panic_block,4,2         ; @hyperv_panic_block
	.no_dead_strip	_vmbus_bus_init
.subsections_via_symbols
