	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function suspend
_suspend:                               ## @suspend
	.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	%rbx
	pushq	%rax
	.cfi_offset %rbx, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	_PMSG_SUSPEND@GOTPCREL(%rip), %rbx
	movl	(%rbx), %edi
	callq	_dpm_suspend_start
	movl	(%rbx), %edi
	callq	_dpm_suspend_noirq
	xorl	%r15d, %r15d
	xorl	%eax, %eax
	callq	_local_irq_disable
	movl	(%rbx), %edi
	callq	_sysdev_suspend
	xorl	%eax, %eax
	callq	_local_irq_enable
	xorl	%eax, %eax
	callq	_save_processor_state
	movq	_APM_STATE_SUSPEND@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	callq	_set_system_power_state
	movl	%eax, %r14d
	movq	_ignore_normal_resume@GOTPCREL(%rip), %rax
	movl	$1, (%rax)
	xorl	%eax, %eax
	callq	_restore_processor_state
	xorl	%eax, %eax
	callq	_local_irq_disable
	xorl	%eax, %eax
	callq	_reinit_timer
	movq	_APM_NO_ERROR@GOTPCREL(%rip), %rax
	cmpl	(%rax), %r14d
	movq	_APM_SUCCESS@GOTPCREL(%rip), %rbx
	movl	(%rbx), %eax
	cmovel	%eax, %r14d
	cmpl	%eax, %r14d
	je	LBB0_2
## %bb.1:
	leaq	L_.str(%rip), %rdi
	movl	%r14d, %esi
	callq	_apm_error
	movl	(%rbx), %eax
LBB0_2:
	movq	_EIO@GOTPCREL(%rip), %rcx
	xorl	%ebx, %ebx
	subl	(%rcx), %ebx
	cmpl	%eax, %r14d
	cmovel	%r15d, %ebx
	xorl	%eax, %eax
	callq	_sysdev_resume
	xorl	%eax, %eax
	callq	_local_irq_enable
	movq	_PMSG_RESUME@GOTPCREL(%rip), %r14
	movl	(%r14), %edi
	callq	_dpm_resume_noirq
	movl	(%r14), %edi
	callq	_dpm_resume_end
	movq	_APM_NORMAL_RESUME@GOTPCREL(%rip), %rax
	movl	(%rax), %edi
	xorl	%esi, %esi
	callq	_queue_event
	movq	_user_list_lock@GOTPCREL(%rip), %rdi
	callq	_spin_lock
	movq	_user_list@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	testq	%rax, %rax
	je	LBB0_5
	.p2align	4, 0x90
LBB0_3:                                 ## =>This Inner Loop Header: Depth=1
	movq	$0, 8(%rax)
	movl	%ebx, (%rax)
	movq	16(%rax), %rax
	testq	%rax, %rax
	jne	LBB0_3
LBB0_5:
	movq	_user_list_lock@GOTPCREL(%rip), %rdi
	callq	_spin_unlock
	movq	_apm_suspend_waitqueue@GOTPCREL(%rip), %rdi
	callq	_wake_up_interruptible
	movl	%ebx, %eax
	addq	$8, %rsp
	popq	%rbx
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_PMSG_SUSPEND,4,2               ## @PMSG_SUSPEND
	.comm	_APM_STATE_SUSPEND,4,2          ## @APM_STATE_SUSPEND
	.comm	_ignore_normal_resume,4,2       ## @ignore_normal_resume
	.comm	_APM_NO_ERROR,4,2               ## @APM_NO_ERROR
	.comm	_APM_SUCCESS,4,2                ## @APM_SUCCESS
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"suspend"

	.comm	_EIO,4,2                        ## @EIO
	.comm	_PMSG_RESUME,4,2                ## @PMSG_RESUME
	.comm	_APM_NORMAL_RESUME,4,2          ## @APM_NORMAL_RESUME
	.comm	_user_list_lock,4,2             ## @user_list_lock
	.comm	_user_list,8,3                  ## @user_list
	.comm	_apm_suspend_waitqueue,4,2      ## @apm_suspend_waitqueue
	.no_dead_strip	_suspend
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function suspend
_suspend:                               ; @suspend
	.cfi_startproc
; %bb.0:
	stp	x20, x19, [sp, #-32]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 32
	stp	x29, x30, [sp, #16]             ; 16-byte Folded Spill
	add	x29, sp, #16
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
Lloh0:
	adrp	x19, _PMSG_SUSPEND@GOTPAGE
Lloh1:
	ldr	x19, [x19, _PMSG_SUSPEND@GOTPAGEOFF]
	ldr	w0, [x19]
	bl	_dpm_suspend_start
	ldr	w0, [x19]
	bl	_dpm_suspend_noirq
	bl	_local_irq_disable
	ldr	w0, [x19]
	bl	_sysdev_suspend
	bl	_local_irq_enable
	bl	_save_processor_state
Lloh2:
	adrp	x8, _APM_STATE_SUSPEND@GOTPAGE
Lloh3:
	ldr	x8, [x8, _APM_STATE_SUSPEND@GOTPAGEOFF]
Lloh4:
	ldr	w0, [x8]
	bl	_set_system_power_state
	mov	x19, x0
Lloh5:
	adrp	x8, _ignore_normal_resume@GOTPAGE
Lloh6:
	ldr	x8, [x8, _ignore_normal_resume@GOTPAGEOFF]
	mov	w9, #1
Lloh7:
	str	w9, [x8]
	bl	_restore_processor_state
	bl	_local_irq_disable
	bl	_reinit_timer
Lloh8:
	adrp	x8, _APM_NO_ERROR@GOTPAGE
Lloh9:
	ldr	x8, [x8, _APM_NO_ERROR@GOTPAGEOFF]
Lloh10:
	ldr	w9, [x8]
Lloh11:
	adrp	x20, _APM_SUCCESS@GOTPAGE
Lloh12:
	ldr	x20, [x20, _APM_SUCCESS@GOTPAGEOFF]
	ldr	w8, [x20]
	cmp	w19, w9
	csel	w19, w8, w19, eq
	cmp	w19, w8
	b.eq	LBB0_2
; %bb.1:
Lloh13:
	adrp	x0, l_.str@PAGE
Lloh14:
	add	x0, x0, l_.str@PAGEOFF
	mov	x1, x19
	bl	_apm_error
	ldr	w8, [x20]
LBB0_2:
Lloh15:
	adrp	x9, _EIO@GOTPAGE
Lloh16:
	ldr	x9, [x9, _EIO@GOTPAGEOFF]
Lloh17:
	ldr	w9, [x9]
	cmp	w19, w8
	csneg	w19, wzr, w9, eq
	bl	_sysdev_resume
	bl	_local_irq_enable
Lloh18:
	adrp	x20, _PMSG_RESUME@GOTPAGE
Lloh19:
	ldr	x20, [x20, _PMSG_RESUME@GOTPAGEOFF]
	ldr	w0, [x20]
	bl	_dpm_resume_noirq
	ldr	w0, [x20]
	bl	_dpm_resume_end
Lloh20:
	adrp	x8, _APM_NORMAL_RESUME@GOTPAGE
Lloh21:
	ldr	x8, [x8, _APM_NORMAL_RESUME@GOTPAGEOFF]
Lloh22:
	ldr	w0, [x8]
	mov	x1, #0
	bl	_queue_event
Lloh23:
	adrp	x0, _user_list_lock@GOTPAGE
Lloh24:
	ldr	x0, [x0, _user_list_lock@GOTPAGEOFF]
	bl	_spin_lock
Lloh25:
	adrp	x8, _user_list@GOTPAGE
Lloh26:
	ldr	x8, [x8, _user_list@GOTPAGEOFF]
Lloh27:
	ldr	x8, [x8]
	cbz	x8, LBB0_4
LBB0_3:                                 ; =>This Inner Loop Header: Depth=1
	str	xzr, [x8, #8]
	str	w19, [x8]
	ldr	x8, [x8, #16]
	cbnz	x8, LBB0_3
LBB0_4:
Lloh28:
	adrp	x0, _user_list_lock@GOTPAGE
Lloh29:
	ldr	x0, [x0, _user_list_lock@GOTPAGEOFF]
	bl	_spin_unlock
Lloh30:
	adrp	x0, _apm_suspend_waitqueue@GOTPAGE
Lloh31:
	ldr	x0, [x0, _apm_suspend_waitqueue@GOTPAGEOFF]
	bl	_wake_up_interruptible
	mov	x0, x19
	ldp	x29, x30, [sp, #16]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp], #32             ; 16-byte Folded Reload
	ret
	.loh AdrpLdrGot	Lloh11, Lloh12
	.loh AdrpLdrGotLdr	Lloh8, Lloh9, Lloh10
	.loh AdrpLdrGotStr	Lloh5, Lloh6, Lloh7
	.loh AdrpLdrGotLdr	Lloh2, Lloh3, Lloh4
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpAdd	Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh25, Lloh26, Lloh27
	.loh AdrpLdrGot	Lloh23, Lloh24
	.loh AdrpLdrGotLdr	Lloh20, Lloh21, Lloh22
	.loh AdrpLdrGot	Lloh18, Lloh19
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGot	Lloh30, Lloh31
	.loh AdrpLdrGot	Lloh28, Lloh29
	.cfi_endproc
                                        ; -- End function
	.comm	_PMSG_SUSPEND,4,2               ; @PMSG_SUSPEND
	.comm	_APM_STATE_SUSPEND,4,2          ; @APM_STATE_SUSPEND
	.comm	_ignore_normal_resume,4,2       ; @ignore_normal_resume
	.comm	_APM_NO_ERROR,4,2               ; @APM_NO_ERROR
	.comm	_APM_SUCCESS,4,2                ; @APM_SUCCESS
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"suspend"

	.comm	_EIO,4,2                        ; @EIO
	.comm	_PMSG_RESUME,4,2                ; @PMSG_RESUME
	.comm	_APM_NORMAL_RESUME,4,2          ; @APM_NORMAL_RESUME
	.comm	_user_list_lock,4,2             ; @user_list_lock
	.comm	_user_list,8,3                  ; @user_list
	.comm	_apm_suspend_waitqueue,4,2      ; @apm_suspend_waitqueue
	.no_dead_strip	_suspend
.subsections_via_symbols
