	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function si_update_dte_from_pl2
_si_update_dte_from_pl2:                ## @si_update_dte_from_pl2
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%rbx
	.cfi_offset %rbx, -24
	movl	4(%rdi), %eax
	testl	%eax, %eax
	je	LBB0_14
## %bb.1:
	cmpl	(%rdi), %eax
	jle	LBB0_2
LBB0_14:
	leaq	L_.str(%rip), %rdi
	popq	%rbx
	popq	%rbp
	jmp	_DRM_ERROR                      ## TAILCALL
LBB0_2:
	movl	(%rsi), %r8d
	movl	4(%rsi), %ecx
	movl	8(%rsi), %edx
	movl	$3, 12(%rsi)
	testl	%r8d, %r8d
	jle	LBB0_3
## %bb.4:
	movslq	%edx, %rdx
	imulq	$-274877907, %rdx, %r10         ## imm = 0xEF9DB22D
	movq	%r10, %rdx
	shrq	$63, %rdx
	shrq	$38, %r10
	addl	%edx, %r10d
	addl	%ecx, %r10d
	shll	$14, %r10d
	imull	$100, %eax, %r9d
	movq	16(%rsi), %rdi
	cmpl	$1, %r8d
	jne	LBB0_6
## %bb.5:
	xorl	%ecx, %ecx
	jmp	LBB0_8
LBB0_3:
	movq	16(%rsi), %rdi
	jmp	LBB0_10
LBB0_6:
	movl	%r8d, %r11d
	andl	$-2, %r11d
	xorl	%ecx, %ecx
	leaq	l___const.si_update_dte_from_pl2.t_split(%rip), %rbx
	.p2align	4, 0x90
LBB0_7:                                 ## =>This Inner Loop Header: Depth=1
	movl	(%rbx,%rcx,4), %eax
	imull	%r10d, %eax
	cltd
	idivl	%r9d
	movl	%eax, (%rdi,%rcx,4)
	movl	4(%rbx,%rcx,4), %eax
	imull	%r10d, %eax
	cltd
	idivl	%r9d
	movl	%eax, 4(%rdi,%rcx,4)
	addq	$2, %rcx
	cmpq	%rcx, %r11
	jne	LBB0_7
LBB0_8:
	testb	$1, %r8b
	je	LBB0_10
## %bb.9:
	leaq	l___const.si_update_dte_from_pl2.t_split(%rip), %rax
	imull	(%rax,%rcx,4), %r10d
	movl	%r10d, %eax
	cltd
	idivl	%r9d
	movl	%eax, (%rdi,%rcx,4)
LBB0_10:
	movl	16(%rdi), %ecx
	addl	%ecx, %ecx
	movq	24(%rsi), %rax
	movl	%ecx, 4(%rax)
	movq	_SMC_SISLANDS_DTE_MAX_TEMPERATURE_DEPENDENT_ARRAY_SIZE@GOTPCREL(%rip), %rcx
	cmpl	$3, (%rcx)
	jl	LBB0_13
## %bb.11:
	movl	$2, %edx
	.p2align	4, 0x90
LBB0_12:                                ## =>This Inner Loop Header: Depth=1
	movl	16(%rdi), %esi
	movl	%esi, (%rax,%rdx,4)
	incq	%rdx
	movslq	(%rcx), %rsi
	cmpq	%rsi, %rdx
	jl	LBB0_12
LBB0_13:
	popq	%rbx
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.section	__TEXT,__const
	.p2align	4                               ## @__const.si_update_dte_from_pl2.t_split
l___const.si_update_dte_from_pl2.t_split:
	.long	10                              ## 0xa
	.long	15                              ## 0xf
	.long	20                              ## 0x14
	.long	25                              ## 0x19
	.long	30                              ## 0x1e

	.comm	_SMC_SISLANDS_DTE_MAX_TEMPERATURE_DEPENDENT_ARRAY_SIZE,4,2 ## @SMC_SISLANDS_DTE_MAX_TEMPERATURE_DEPENDENT_ARRAY_SIZE
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"Invalid PL2! DTE will not be updated.\n"

	.no_dead_strip	_si_update_dte_from_pl2
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function si_update_dte_from_pl2
_si_update_dte_from_pl2:                ; @si_update_dte_from_pl2
	.cfi_startproc
; %bb.0:
	ldr	w8, [x0, #4]
	cbz	w8, LBB0_2
; %bb.1:
	ldr	w9, [x0]
	cmp	w8, w9
	b.le	LBB0_3
LBB0_2:
Lloh0:
	adrp	x0, l_.str@PAGE
Lloh1:
	add	x0, x0, l_.str@PAGEOFF
	b	_DRM_ERROR
LBB0_3:
	ldp	w9, w10, [x1]
	ldr	w11, [x1, #8]
	mov	w12, #3
	str	w12, [x1, #12]
	cmp	w9, #0
	b.le	LBB0_6
; %bb.4:
	mov	w12, #45613
	movk	w12, #61341, lsl #16
	smull	x11, w11, w12
	lsr	x12, x11, #63
	lsr	x11, x11, #38
	add	w11, w11, w12
	add	w10, w11, w10
	lsl	w10, w10, #14
	mov	w11, #100
	mul	w11, w8, w11
	ldr	x8, [x1, #16]
Lloh2:
	adrp	x12, l___const.si_update_dte_from_pl2.t_split@PAGE
Lloh3:
	add	x12, x12, l___const.si_update_dte_from_pl2.t_split@PAGEOFF
	cmp	w9, #4
	b.hs	LBB0_7
; %bb.5:
	mov	x13, #0
	b	LBB0_10
LBB0_6:
	ldr	x8, [x1, #16]
	b	LBB0_11
LBB0_7:
	mov	x14, #0
	and	x13, x9, #0xfffffffc
	lsl	x15, x9, #2
	and	x15, x15, #0x3fffffff0
LBB0_8:                                 ; =>This Inner Loop Header: Depth=1
	add	x16, x12, x14
	ldp	w17, w0, [x16]
	ldp	w2, w16, [x16, #8]
	mul	w17, w10, w17
	mul	w0, w10, w0
	mul	w2, w10, w2
	mul	w16, w10, w16
	sdiv	w17, w17, w11
	sdiv	w0, w0, w11
	sdiv	w2, w2, w11
	add	x3, x8, x14
	stp	w17, w0, [x3]
	sdiv	w16, w16, w11
	stp	w2, w16, [x3, #8]
	add	x14, x14, #16
	cmp	x15, x14
	b.ne	LBB0_8
; %bb.9:
	cmp	x13, x9
	b.eq	LBB0_11
LBB0_10:                                ; =>This Inner Loop Header: Depth=1
	lsl	x14, x13, #2
	ldr	w15, [x12, x14]
	mul	w15, w10, w15
	sdiv	w15, w15, w11
	str	w15, [x8, x14]
	add	x13, x13, #1
	cmp	x9, x13
	b.ne	LBB0_10
LBB0_11:
	ldr	w9, [x8, #16]
	lsl	w10, w9, #1
	ldr	x9, [x1, #24]
	str	w10, [x9, #4]
Lloh4:
	adrp	x10, _SMC_SISLANDS_DTE_MAX_TEMPERATURE_DEPENDENT_ARRAY_SIZE@GOTPAGE
Lloh5:
	ldr	x10, [x10, _SMC_SISLANDS_DTE_MAX_TEMPERATURE_DEPENDENT_ARRAY_SIZE@GOTPAGEOFF]
	ldr	w11, [x10]
	cmp	w11, #3
	b.lt	LBB0_14
; %bb.12:
	mov	w11, #2
LBB0_13:                                ; =>This Inner Loop Header: Depth=1
	ldr	w12, [x8, #16]
	str	w12, [x9, x11, lsl #2]
	add	x11, x11, #1
	ldrsw	x12, [x10]
	cmp	x11, x12
	b.lt	LBB0_13
LBB0_14:
	ret
	.loh AdrpAdd	Lloh0, Lloh1
	.loh AdrpAdd	Lloh2, Lloh3
	.loh AdrpLdrGot	Lloh4, Lloh5
	.cfi_endproc
                                        ; -- End function
	.section	__TEXT,__const
	.p2align	2                               ; @__const.si_update_dte_from_pl2.t_split
l___const.si_update_dte_from_pl2.t_split:
	.long	10                              ; 0xa
	.long	15                              ; 0xf
	.long	20                              ; 0x14
	.long	25                              ; 0x19
	.long	30                              ; 0x1e

	.comm	_SMC_SISLANDS_DTE_MAX_TEMPERATURE_DEPENDENT_ARRAY_SIZE,4,2 ; @SMC_SISLANDS_DTE_MAX_TEMPERATURE_DEPENDENT_ARRAY_SIZE
	.section	__TEXT,__cstring,cstring_literals
l_.str:                                 ; @.str
	.asciz	"Invalid PL2! DTE will not be updated.\n"

	.no_dead_strip	_si_update_dte_from_pl2
.subsections_via_symbols
