	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function sun8i_ui_scaler_base
_sun8i_ui_scaler_base:                  ## @sun8i_ui_scaler_base
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	movq	(%rdi), %rax
	cmpq	$0, 8(%rax)
	movq	_DE3_VI_SCALER_UNIT_BASE@GOTPCREL(%rip), %rcx
	cmoveq	_DE2_VI_SCALER_UNIT_BASE@GOTPCREL(%rip), %rcx
	movq	_DE3_VI_SCALER_UNIT_SIZE@GOTPCREL(%rip), %rdx
	cmoveq	_DE2_VI_SCALER_UNIT_SIZE@GOTPCREL(%rip), %rdx
	movq	_DE3_UI_SCALER_UNIT_SIZE@GOTPCREL(%rip), %rdi
	cmoveq	_DE2_UI_SCALER_UNIT_SIZE@GOTPCREL(%rip), %rdi
	movl	(%rax), %eax
	subl	%eax, %esi
	imull	(%rdx), %eax
	movslq	%eax, %rdx
	addq	(%rcx), %rdx
	imull	(%rdi), %esi
	movslq	%esi, %rax
	addq	%rdx, %rax
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_DE3_VI_SCALER_UNIT_BASE,8,3    ## @DE3_VI_SCALER_UNIT_BASE
	.comm	_DE3_VI_SCALER_UNIT_SIZE,4,2    ## @DE3_VI_SCALER_UNIT_SIZE
	.comm	_DE3_UI_SCALER_UNIT_SIZE,4,2    ## @DE3_UI_SCALER_UNIT_SIZE
	.comm	_DE2_VI_SCALER_UNIT_BASE,8,3    ## @DE2_VI_SCALER_UNIT_BASE
	.comm	_DE2_VI_SCALER_UNIT_SIZE,4,2    ## @DE2_VI_SCALER_UNIT_SIZE
	.comm	_DE2_UI_SCALER_UNIT_SIZE,4,2    ## @DE2_UI_SCALER_UNIT_SIZE
	.no_dead_strip	_sun8i_ui_scaler_base
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function sun8i_ui_scaler_base
_sun8i_ui_scaler_base:                  ; @sun8i_ui_scaler_base
	.cfi_startproc
; %bb.0:
	ldr	x8, [x0]
	ldr	w9, [x8]
Lloh0:
	adrp	x10, _DE2_VI_SCALER_UNIT_BASE@GOTPAGE
Lloh1:
	ldr	x10, [x10, _DE2_VI_SCALER_UNIT_BASE@GOTPAGEOFF]
	ldr	x8, [x8, #8]
Lloh2:
	adrp	x11, _DE3_VI_SCALER_UNIT_BASE@GOTPAGE
Lloh3:
	ldr	x11, [x11, _DE3_VI_SCALER_UNIT_BASE@GOTPAGEOFF]
	cmp	x8, #0
	csel	x8, x10, x11, eq
	ldr	x8, [x8]
Lloh4:
	adrp	x10, _DE2_VI_SCALER_UNIT_SIZE@GOTPAGE
Lloh5:
	ldr	x10, [x10, _DE2_VI_SCALER_UNIT_SIZE@GOTPAGEOFF]
Lloh6:
	adrp	x11, _DE3_VI_SCALER_UNIT_SIZE@GOTPAGE
Lloh7:
	ldr	x11, [x11, _DE3_VI_SCALER_UNIT_SIZE@GOTPAGEOFF]
	csel	x10, x10, x11, eq
	ldr	w10, [x10]
	mul	w10, w10, w9
	add	x8, x8, w10, sxtw
Lloh8:
	adrp	x10, _DE2_UI_SCALER_UNIT_SIZE@GOTPAGE
Lloh9:
	ldr	x10, [x10, _DE2_UI_SCALER_UNIT_SIZE@GOTPAGEOFF]
Lloh10:
	adrp	x11, _DE3_UI_SCALER_UNIT_SIZE@GOTPAGE
Lloh11:
	ldr	x11, [x11, _DE3_UI_SCALER_UNIT_SIZE@GOTPAGEOFF]
	csel	x10, x10, x11, eq
	ldr	w10, [x10]
	sub	w9, w1, w9
	mul	w9, w10, w9
	add	x0, x8, w9, sxtw
	ret
	.loh AdrpLdrGot	Lloh10, Lloh11
	.loh AdrpLdrGot	Lloh8, Lloh9
	.loh AdrpLdrGot	Lloh6, Lloh7
	.loh AdrpLdrGot	Lloh4, Lloh5
	.loh AdrpLdrGot	Lloh2, Lloh3
	.loh AdrpLdrGot	Lloh0, Lloh1
	.cfi_endproc
                                        ; -- End function
	.comm	_DE3_VI_SCALER_UNIT_BASE,8,3    ; @DE3_VI_SCALER_UNIT_BASE
	.comm	_DE3_VI_SCALER_UNIT_SIZE,4,2    ; @DE3_VI_SCALER_UNIT_SIZE
	.comm	_DE3_UI_SCALER_UNIT_SIZE,4,2    ; @DE3_UI_SCALER_UNIT_SIZE
	.comm	_DE2_VI_SCALER_UNIT_BASE,8,3    ; @DE2_VI_SCALER_UNIT_BASE
	.comm	_DE2_VI_SCALER_UNIT_SIZE,4,2    ; @DE2_VI_SCALER_UNIT_SIZE
	.comm	_DE2_UI_SCALER_UNIT_SIZE,4,2    ; @DE2_UI_SCALER_UNIT_SIZE
	.no_dead_strip	_sun8i_ui_scaler_base
.subsections_via_symbols
