	.file	"extr_pixmap.c_fz_copy_pixmap_rect.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.globl	fz_copy_pixmap_rect
	.type	fz_copy_pixmap_rect, @function
fz_copy_pixmap_rect:
.LFB0:
	.cfi_startproc
	endbr64
	push	r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	mov	r15, rsi
	push	r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	mov	r14, rdi
	push	r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	mov	r13, rdx
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	mov	r12, rcx
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	mov	rbp, r8
	push	rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	sub	rsp, 72
	.cfi_def_cfa_offset 128
	mov	QWORD PTR 8[rsp], r9
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR 56[rsp], rax
	xor	eax, eax
	call	fz_pixmap_bbox@PLT
	mov	rsi, rbp
	mov	rdi, r12
	mov	edx, eax
	call	fz_intersect_irect@PLT
	mov	rsi, r13
	mov	rdi, r14
	mov	rbx, rdx
	mov	rbp, rax
	call	fz_pixmap_bbox@PLT
	mov	rdi, rbp
	mov	rsi, rbx
	mov	edx, eax
	call	fz_intersect_irect@PLT
	mov	rcx, rax
	mov	rbp, rax
	mov	rbx, rdx
	sar	rdx, 32
	sar	rcx, 32
	sub	ebx, edx
	sub	ebp, ecx
	test	ebp, ebp
	jle	.L1
	test	ebx, ebx
	jle	.L1
	mov	edi, DWORD PTR 0[r13]
	mov	eax, DWORD PTR 20[r13]
	mov	r8d, edx
	mov	esi, ecx
	sub	r8d, DWORD PTR 16[r13]
	sub	esi, DWORD PTR 24[r13]
	imul	r8d, edi
	imul	esi, eax
	lea	r12d, [r8+rsi]
	add	r12, QWORD PTR 8[r13]
	cmp	eax, DWORD PTR 20[r15]
	jne	.L5
	mov	esi, DWORD PTR [r15]
	sub	edx, DWORD PTR 16[r15]
	imul	ebp, eax
	movsx	r14, edi
	sub	ecx, DWORD PTR 24[r15]
	imul	edx, esi
	imul	ecx, eax
	lea	r13d, [rdx+rcx]
	add	r13, QWORD PTR 8[r15]
	movsx	r15, esi
	.p2align 4,,10
	.p2align 3
.L6:
	mov	rsi, r12
	mov	rdi, r13
	mov	edx, ebp
	add	r12, r14
	call	memcpy@PLT
	add	r13, r15
	sub	ebx, 1
	jne	.L6
.L1:
	mov	rax, QWORD PTR 56[rsp]
	xor	rax, QWORD PTR fs:40
	jne	.L12
	add	rsp, 72
	.cfi_remember_state
	.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
	ret
	.p2align 4,,10
	.p2align 3
.L5:
	.cfi_restore_state
	movdqu	xmm0, XMMWORD PTR 0[r13]
	mov	rax, QWORD PTR 32[r13]
	mov	rsi, r15
	mov	rdi, r14
	movdqu	xmm1, XMMWORD PTR 16[r13]
	mov	r9d, DWORD PTR fz_default_color_params[rip]
	mov	QWORD PTR 48[rsp], rax
	movaps	XMMWORD PTR 32[rsp], xmm1
	movaps	XMMWORD PTR 16[rsp], xmm0
	mov	DWORD PTR 40[rsp], ecx
	xor	ecx, ecx
	mov	DWORD PTR 32[rsp], edx
	lea	rdx, 16[rsp]
	sub	rsp, 8
	.cfi_def_cfa_offset 136
	mov	DWORD PTR 52[rsp], ebp
	mov	DWORD PTR 56[rsp], ebx
	mov	QWORD PTR 32[rsp], r12
	push	0
	.cfi_def_cfa_offset 144
	mov	r8, QWORD PTR 24[rsp]
	call	fz_convert_pixmap_samples@PLT
	pop	rax
	.cfi_def_cfa_offset 136
	pop	rdx
	.cfi_def_cfa_offset 128
	jmp	.L1
.L12:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE0:
	.size	fz_copy_pixmap_rect, .-fz_copy_pixmap_rect
	.comm	fz_default_color_params,4,4
	.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_pixmap.c_fz_copy_pixmap_rect.c"
	.text
	.section	.rodata.cst4,"aM",%progbits,4
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	fz_copy_pixmap_rect
	.syntax unified
	.arm
	.fpu softvfp
	.type	fz_copy_pixmap_rect, %function
fz_copy_pixmap_rect:
	@ args = 24, pretend = 8, frame = 56
	@ frame_needed = 0, uses_anonymous_args = 0
	sub	sp, sp, #8
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	sub	sp, sp, #76
	str	r3, [sp, #116]
	ldr	r3, .L12
	mov	r6, r2
	ldr	r3, [r3]
	str	r3, [sp, #68]
	mov	r3,#0
	ldr	r3, [sp, #132]
	mov	r9, r0
	mov	r7, r1
	str	r3, [sp, #20]
	bl	fz_pixmap_bbox
	ldr	r3, [sp, #128]
	add	r4, sp, #116
	str	r0, [sp, #4]
	str	r3, [sp]
	ldm	r4, {r1, r2, r3}
	mov	r0, r4
	bl	fz_intersect_irect
	mov	r1, r6
	mov	r0, r9
	bl	fz_pixmap_bbox
	ldm	r4, {r1, r2, r3}
	ldr	ip, [sp, #128]
	add	r5, sp, #24
	str	r0, [sp, #4]
	str	ip, [sp]
	mov	r0, r5
	bl	fz_intersect_irect
	ldm	r5, {r0, r1, r2, r3}
	stm	r4, {r0, r1, r2, r3}
	ldr	lr, [sp, #120]
	ldr	ip, [sp, #116]
	ldr	r10, [sp, #128]
	ldr	r4, [sp, #124]
	sub	ip, ip, lr
	sub	r4, r4, r10
	cmp	r4, #0
	cmpgt	ip, #0
	movle	fp, #1
	movgt	fp, #0
	ble	.L1
	ldr	r3, [r6, #16]
	ldr	r2, [r6, #12]
	sub	r3, lr, r3
	mul	r3, r2, r3
	ldr	r5, [r6, #8]
	ldr	r8, [r6]
	sub	r5, r10, r5
	mla	r3, r8, r5, r3
	ldr	r1, [r7, #12]
	ldr	r5, [r6, #4]
	cmp	r2, r1
	add	r5, r5, r3
	bne	.L4
	ldr	r3, [r7, #16]
	mul	r9, ip, r2
	sub	lr, lr, r3
	mul	lr, r2, lr
	ldr	r2, [r7, #8]
	ldr	r6, [r7]
	sub	r10, r10, r2
	mla	r2, r6, r10, lr
	ldr	r10, [r7, #4]
	add	r10, r10, r2
.L5:
	mov	r1, r5
	mov	r0, r10
	mov	r2, r9
	bl	memcpy
	subs	r4, r4, #1
	add	r5, r5, r8
	add	r10, r10, r6
	bne	.L5
.L1:
	ldr	r3, .L12
	ldr	r2, [r3]
	ldr	r3, [sp, #68]
	eors	r2, r3, r2
	mov	r3, #0
	bne	.L11
	add	sp, sp, #76
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	sp, sp, #8
	bx	lr
.L4:
	add	r8, sp, #40
	ldmia	r6!, {r0, r1, r2, r3}
	stmia	r8!, {r0, r1, r2, r3}
	ldm	r6, {r0, r1, r2}
	ldr	r3, .L12+4
	str	fp, [sp, #8]
	ldr	r6, [r3]
	ldr	r3, [sp, #20]
	str	r10, [sp, #48]
	str	r3, [sp]
	stm	r8, {r0, r1, r2}
	mov	r3, fp
	mov	r1, r7
	mov	r0, r9
	str	r6, [sp, #4]
	add	r2, sp, #40
	str	r5, [sp, #44]
	str	lr, [sp, #56]
	str	ip, [sp, #60]
	str	r4, [sp, #64]
	bl	fz_convert_pixmap_samples
	b	.L1
.L11:
	bl	__stack_chk_fail
.L13:
	.align	2
.L12:
	.word	.LC0
	.word	fz_default_color_params
	.size	fz_copy_pixmap_rect, .-fz_copy_pixmap_rect
	.comm	fz_default_color_params,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
