	.file	"extr_base.c_nouveau_vm_unmap_at.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.globl	nouveau_vm_unmap_at
	.type	nouveau_vm_unmap_at, @function
nouveau_vm_unmap_at:
.LFB0:
	.cfi_startproc
	endbr64
	push	r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	push	r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	push	r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	push	rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	sub	rsp, 40
	.cfi_def_cfa_offset 96
	mov	r14, QWORD PTR 8[rdi]
	mov	rax, QWORD PTR [rdi]
	mov	rbx, QWORD PTR 16[r14]
	mov	rcx, QWORD PTR [rax]
	cmp	QWORD PTR [rbx], rcx
	mov	QWORD PTR 16[rsp], rbx
	lea	edi, -12[rcx]
	setne	r8b
	sar	esi, 12
	add	esi, DWORD PTR 8[rax]
	mov	eax, DWORD PTR 8[rbx]
	mov	ebx, 1
	sar	edx, cl
	mov	r12d, esi
	mov	ecx, eax
	mov	ebp, ebx
	sub	eax, edi
	mov	r13d, edx
	sal	ebp, cl
	sar	r12d, cl
	mov	ecx, edi
	sub	r12d, DWORD PTR [r14]
	sub	ebp, 1
	mov	DWORD PTR 12[rsp], r12d
	and	ebp, esi
	sar	ebp, cl
	mov	ecx, eax
	movzx	eax, r8b
	sal	rax, 3
	sal	ebx, cl
	mov	QWORD PTR 24[rsp], rax
	test	edx, edx
	jne	.L5
	jmp	.L6
	.p2align 4,,10
	.p2align 3
.L16:
	mov	rax, QWORD PTR 16[rsp]
	mov	edx, ebx
	mov	esi, ebp
	mov	rdi, r12
	sub	edx, ebp
	mov	ebp, ebx
	sub	r13d, edx
	call	[QWORD PTR 24[rax]]
	mov	edi, 1
	call	unlikely@PLT
	test	rax, rax
	jne	.L7
.L4:
	test	r13d, r13d
	je	.L6
.L5:
	movsx	rax, DWORD PTR 12[rsp]
	mov	rdx, QWORD PTR 8[r14]
	xor	r15d, r15d
	mov	rcx, QWORD PTR 24[rsp]
	mov	rax, QWORD PTR [rdx+rax*8]
	mov	r12, QWORD PTR [rax+rcx]
	lea	eax, 0[r13+rbp]
	cmp	ebx, eax
	setle	r15b
	mov	edi, r15d
	call	unlikely@PLT
	test	rax, rax
	jne	.L16
	mov	rax, QWORD PTR 16[rsp]
	mov	rdi, r12
	mov	edx, r13d
	mov	esi, ebp
	call	[QWORD PTR 24[rax]]
	mov	edi, r15d
	call	unlikely@PLT
	test	rax, rax
	je	.L6
	xor	r13d, r13d
.L7:
	add	DWORD PTR 12[rsp], 1
	xor	ebp, ebp
	jmp	.L4
	.p2align 4,,10
	.p2align 3
.L6:
	mov	rax, QWORD PTR 16[rsp]
	mov	rdi, r14
	mov	rax, QWORD PTR 16[rax]
	add	rsp, 40
	.cfi_def_cfa_offset 56
	pop	rbx
	.cfi_def_cfa_offset 48
	pop	rbp
	.cfi_def_cfa_offset 40
	pop	r12
	.cfi_def_cfa_offset 32
	pop	r13
	.cfi_def_cfa_offset 24
	pop	r14
	.cfi_def_cfa_offset 16
	pop	r15
	.cfi_def_cfa_offset 8
	jmp	rax
	.cfi_endproc
.LFE0:
	.size	nouveau_vm_unmap_at, .-nouveau_vm_unmap_at
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_base.c_nouveau_vm_unmap_at.c"
	.text
	.align	2
	.global	nouveau_vm_unmap_at
	.syntax unified
	.arm
	.fpu softvfp
	.type	nouveau_vm_unmap_at, %function
nouveau_vm_unmap_at:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	ldm	r0, {r3, r10}
	mov	lr, #1
	ldr	fp, [r10, #8]
	ldr	r8, [r3, #4]
	ldr	r7, [fp, #4]
	ldr	r3, [r3]
	ldr	r9, [fp]
	lsl	ip, lr, r7
	add	r0, r8, r1, asr #12
	sub	r1, ip, #1
	subs	ip, r9, r3
	movne	ip, #1
	ldr	r8, [r10]
	asrs	r6, r2, r3
	and	r1, r1, r0
	sub	r3, r3, #12
	sub	r2, r7, r3
	sub	sp, sp, #12
	asr	r9, r1, r3
	lslne	r3, ip, #2
	rsb	r8, r8, r0, asr r7
	strne	r3, [sp]
	lsl	r7, lr, r2
	bne	.L5
	b	.L6
.L13:
	mov	r1, r9
	ldr	r3, [fp, #12]
	mov	r0, r4
	sub	r6, r6, r2
	blx	r3
	mov	r0, #1
	bl	unlikely
	cmp	r0, #0
	moveq	r9, r7
	bne	.L12
.L4:
	cmp	r6, #0
	beq	.L6
.L5:
	add	r5, r6, r9
	cmp	r7, r5
	movgt	r5, #0
	movle	r5, #1
	ldr	r3, [r10, #4]
	ldr	r2, [sp]
	ldr	r3, [r3, r8, lsl #2]
	mov	r0, r5
	ldr	r4, [r3, r2]
	bl	unlikely
	subs	r3, r0, #0
	sub	r2, r7, r9
	bne	.L13
	mov	r2, r6
	mov	r1, r9
	mov	r0, r4
	ldr	r4, [fp, #12]
	str	r3, [sp, #4]
	blx	r4
	mov	r0, r5
	bl	unlikely
	cmp	r0, #0
	ldr	r3, [sp, #4]
	beq	.L6
.L7:
	mov	r6, r3
	mov	r9, #0
	add	r8, r8, #1
	b	.L4
.L6:
	mov	r0, r10
	ldr	r3, [fp, #8]
	add	sp, sp, #12
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	bx	r3
.L12:
	mov	r3, r6
	b	.L7
	.size	nouveau_vm_unmap_at, .-nouveau_vm_unmap_at
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
