	.file	"extr_utils.c_compute_texture_matrix.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.8,"aMS",@progbits,1
	.align 8
.LC2:
	.string	"Invalid texture transform flags: WINED3D_TTFF_COUNT1 | WINED3D_TTFF_PROJECTED.\n"
	.align 8
.LC3:
	.string	"Unexpected fixed function texture coord input\n"
	.text
	.p2align 4
	.type	compute_texture_matrix, @function
compute_texture_matrix:
.LFB0:
	.cfi_startproc
	endbr64
	push	r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	push	r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	push	r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	push	rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	push	rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	sub	rsp, 64
	.cfi_def_cfa_offset 112
	cmp	DWORD PTR WINED3D_TTFF_DISABLE[rip], edx
	mov	rbx, QWORD PTR 112[rsp]
	mov	rbp, QWORD PTR 120[rsp]
	je	.L2
	mov	eax, DWORD PTR WINED3D_TTFF_COUNT1[rip]
	cmp	eax, edx
	je	.L2
	test	r8, r8
	jne	.L2
	mov	edi, DWORD PTR WINED3D_TTFF_PROJECTED[rip]
	or	eax, edi
	cmp	eax, edx
	je	.L20
	movss	xmm7, DWORD PTR [rsi]
	movss	xmm11, DWORD PTR 4[rsi]
	movss	xmm4, DWORD PTR 8[rsi]
	movss	xmm6, DWORD PTR 12[rsi]
	movss	xmm2, DWORD PTR 16[rsi]
	movss	xmm9, DWORD PTR 20[rsi]
	movss	xmm3, DWORD PTR 24[rsi]
	movss	xmm1, DWORD PTR 28[rsi]
	movss	xmm10, DWORD PTR 32[rsi]
	movss	xmm5, DWORD PTR 36[rsi]
	movss	xmm8, DWORD PTR 40[rsi]
	movss	xmm0, DWORD PTR 44[rsi]
	mov	r14d, DWORD PTR 48[rsi]
	mov	r12d, DWORD PTR 52[rsi]
	mov	r13d, DWORD PTR 56[rsi]
	test	edi, edx
	je	.L6
	test	rbx, rbx
	jne	.L7
	not	edi
	and	edx, edi
	cmp	edx, 128
	je	.L11
	cmp	edx, 129
	jne	.L7
	movaps	xmm3, xmm1
	pxor	xmm1, xmm1
	movaps	xmm2, xmm9
	movaps	xmm4, xmm6
	movaps	xmm7, xmm11
	movaps	xmm9, xmm1
	movaps	xmm6, xmm1
	movaps	xmm11, xmm1
.L7:
	mov	DWORD PTR 48[rbp], r14d
	mov	DWORD PTR 52[rbp], r12d
	mov	DWORD PTR 56[rbp], r13d
	movss	DWORD PTR 0[rbp], xmm7
	movss	DWORD PTR 4[rbp], xmm11
	movss	DWORD PTR 8[rbp], xmm4
	movss	DWORD PTR 12[rbp], xmm6
	movss	DWORD PTR 16[rbp], xmm2
	movss	DWORD PTR 20[rbp], xmm9
	movss	DWORD PTR 24[rbp], xmm3
	movss	DWORD PTR 28[rbp], xmm1
	movss	DWORD PTR 32[rbp], xmm10
	movss	DWORD PTR 36[rbp], xmm5
	movss	DWORD PTR 40[rbp], xmm8
	movss	DWORD PTR 44[rbp], xmm0
	add	rsp, 64
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	pop	rbx
	.cfi_def_cfa_offset 40
	pop	rbp
	.cfi_def_cfa_offset 32
	pop	r12
	.cfi_def_cfa_offset 24
	pop	r13
	.cfi_def_cfa_offset 16
	pop	r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L2:
	.cfi_restore_state
	add	rsp, 64
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	mov	rdi, rbp
	pop	rbx
	.cfi_def_cfa_offset 40
	pop	rbp
	.cfi_def_cfa_offset 32
	pop	r12
	.cfi_def_cfa_offset 24
	pop	r13
	.cfi_def_cfa_offset 16
	pop	r14
	.cfi_def_cfa_offset 8
	jmp	get_identity_matrix@PLT
	.p2align 4,,10
	.p2align 3
.L6:
	.cfi_restore_state
	test	rcx, rcx
	jne	.L8
	cmp	r9d, 132
	je	.L12
	ja	.L9
	cmp	r9d, 130
	je	.L8
	cmp	r9d, 131
	jne	.L10
	movaps	xmm0, xmm5
	movaps	xmm1, xmm6
	movaps	xmm3, xmm4
	mov	r12d, r13d
.L8:
	test	rbx, rbx
	jne	.L7
	mov	eax, DWORD PTR WINED3D_TTFF_PROJECTED[rip]
	not	eax
	and	edx, eax
	cmp	edx, 129
	je	.L21
	pxor	xmm2, xmm2
	movss	xmm3, DWORD PTR .LC0[rip]
	movaps	xmm4, xmm2
	movaps	xmm7, xmm2
	jmp	.L7
	.p2align 4,,10
	.p2align 3
.L9:
	sub	r9d, 133
	cmp	r9d, 1
	jbe	.L8
.L10:
	lea	rdi, .LC3[rip]
	mov	DWORD PTR 60[rsp], edx
	movss	DWORD PTR 56[rsp], xmm0
	movss	DWORD PTR 52[rsp], xmm8
	movss	DWORD PTR 48[rsp], xmm5
	movss	DWORD PTR 44[rsp], xmm10
	movss	DWORD PTR 40[rsp], xmm1
	movss	DWORD PTR 36[rsp], xmm3
	movss	DWORD PTR 32[rsp], xmm9
	movss	DWORD PTR 28[rsp], xmm2
	movss	DWORD PTR 24[rsp], xmm6
	movss	DWORD PTR 20[rsp], xmm4
	movss	DWORD PTR 16[rsp], xmm11
	movss	DWORD PTR 12[rsp], xmm7
	call	FIXME@PLT
	movss	xmm7, DWORD PTR 12[rsp]
	mov	edx, DWORD PTR 60[rsp]
	movss	xmm11, DWORD PTR 16[rsp]
	movss	xmm4, DWORD PTR 20[rsp]
	movss	xmm6, DWORD PTR 24[rsp]
	movss	xmm2, DWORD PTR 28[rsp]
	movss	xmm9, DWORD PTR 32[rsp]
	movss	xmm3, DWORD PTR 36[rsp]
	movss	xmm1, DWORD PTR 40[rsp]
	movss	xmm10, DWORD PTR 44[rsp]
	movss	xmm5, DWORD PTR 48[rsp]
	movss	xmm8, DWORD PTR 52[rsp]
	movss	xmm0, DWORD PTR 56[rsp]
	jmp	.L8
	.p2align 4,,10
	.p2align 3
.L20:
	add	rsp, 64
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	lea	rdi, .LC2[rip]
	pop	rbx
	.cfi_def_cfa_offset 40
	pop	rbp
	.cfi_def_cfa_offset 32
	pop	r12
	.cfi_def_cfa_offset 24
	pop	r13
	.cfi_def_cfa_offset 16
	pop	r14
	.cfi_def_cfa_offset 8
	jmp	ERR@PLT
	.p2align 4,,10
	.p2align 3
.L21:
	.cfi_restore_state
	pxor	xmm0, xmm0
	movss	xmm3, DWORD PTR .LC0[rip]
	movaps	xmm8, xmm0
	movaps	xmm5, xmm0
	movaps	xmm10, xmm0
	movaps	xmm2, xmm0
	movaps	xmm4, xmm0
	movaps	xmm7, xmm0
	jmp	.L7
	.p2align 4,,10
	.p2align 3
.L11:
	movaps	xmm3, xmm0
	pxor	xmm0, xmm0
	movaps	xmm2, xmm8
	movaps	xmm4, xmm5
	movaps	xmm7, xmm10
	movaps	xmm8, xmm0
	movaps	xmm5, xmm0
	movaps	xmm10, xmm0
	jmp	.L7
	.p2align 4,,10
	.p2align 3
.L12:
	movaps	xmm0, xmm8
	movaps	xmm1, xmm9
	movaps	xmm3, xmm2
	mov	r12d, r14d
	jmp	.L8
	.cfi_endproc
.LFE0:
	.size	compute_texture_matrix, .-compute_texture_matrix
	.comm	WINED3D_TTFF_PROJECTED,4,4
	.comm	WINED3D_TTFF_DISABLE,4,4
	.comm	WINED3D_TTFF_COUNT1,4,4
	.section	.rodata.cst4,"aM",@progbits,4
	.align 4
.LC0:
	.long	1065353216
	.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_utils.c_compute_texture_matrix.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"Invalid texture transform flags: WINED3D_TTFF_COUNT"
	.ascii	"1 | WINED3D_TTFF_PROJECTED.\012\000"
	.align	2
.LC1:
	.ascii	"Unexpected fixed function texture coord input\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	compute_texture_matrix, %function
compute_texture_matrix:
	@ args = 16, pretend = 0, frame = 40
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	ldr	r0, .L18
	sub	sp, sp, #44
	ldr	r0, [r0]
	mov	ip, r3
	cmp	r0, r2
	add	r0, sp, #84
	ldr	lr, [sp, #80]
	ldm	r0, {r0, r3, r4}
	beq	.L2
	subs	lr, lr, #0
	movne	lr, #1
	ldr	r5, .L18+4
	ldr	r5, [r5]
	cmp	r5, r2
	orreq	lr, lr, #1
	cmp	lr, #0
	bne	.L2
	ldr	lr, .L18+8
	ldr	lr, [lr]
	orr	r5, r5, lr
	cmp	r5, r2
	beq	.L16
	ldr	r5, [r1]	@ float
	ldr	r6, [r1, #16]	@ float
	ldr	fp, [r1, #40]	@ float
	ldr	r9, [r1, #32]	@ float
	str	r5, [sp, #4]	@ float
	str	r6, [sp]	@ float
	ldr	r5, [r1, #4]	@ float
	ldr	r6, [r1, #20]	@ float
	str	fp, [sp, #12]	@ float
	ldr	fp, [r1, #48]
	tst	lr, r2
	ldr	r8, [r1, #8]	@ float
	ldr	r10, [r1, #12]	@ float
	ldr	r7, [r1, #24]	@ float
	str	r5, [sp, #16]	@ float
	str	r6, [sp, #8]	@ float
	ldr	r5, [r1, #44]	@ float
	ldr	r6, [r1, #28]	@ float
	str	r9, [sp, #20]	@ float
	str	fp, [sp, #24]
	ldr	r9, [r1, #36]	@ float
	ldr	fp, [r1, #52]
	ldr	r1, [r1, #56]
	beq	.L5
	cmp	r3, #0
	bne	.L6
	bic	r2, r2, lr
	cmp	r2, #128
	beq	.L12
	cmp	r2, #129
	bne	.L6
	mov	r7, r6
	mov	r6, #0
	mov	r8, r10
	mov	r10, r6
	ldr	r2, [sp, #8]	@ float
	ldr	r3, [sp, #16]	@ float
	str	r2, [sp]	@ float
	str	r3, [sp, #4]	@ float
	str	r6, [sp, #8]	@ float
	str	r6, [sp, #16]	@ float
.L6:
	ldr	r3, [sp, #4]	@ float
	str	r8, [r4, #8]	@ float
	str	r3, [r4]	@ float
	ldr	r3, [sp, #16]	@ float
	str	r10, [r4, #12]	@ float
	str	r3, [r4, #4]	@ float
	ldr	r3, [sp]	@ float
	str	r7, [r4, #24]	@ float
	str	r3, [r4, #16]	@ float
	ldr	r3, [sp, #8]	@ float
	str	r6, [r4, #28]	@ float
	str	r3, [r4, #20]	@ float
	ldr	r3, [sp, #20]	@ float
	str	r9, [r4, #36]	@ float
	str	r3, [r4, #32]	@ float
	ldr	r3, [sp, #12]	@ float
	str	r5, [r4, #44]	@ float
	str	r3, [r4, #40]	@ float
	ldr	r3, [sp, #24]
	str	fp, [r4, #52]
	str	r3, [r4, #48]
	str	r1, [r4, #56]
	add	sp, sp, #44
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2:
	mov	r0, r4
	add	sp, sp, #44
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	b	get_identity_matrix
.L5:
	cmp	ip, #0
	bne	.L7
	sub	r0, r0, #130
	cmp	r0, #4
	ldrls	pc, [pc, r0, asl #2]
	b	.L8
.L9:
	.word	.L7
	.word	.L11
	.word	.L10
	.word	.L7
	.word	.L7
.L11:
	mov	fp, r1
	mov	r5, r9
	mov	r6, r10
	mov	r7, r8
.L7:
	cmp	r3, #0
	bne	.L6
	ldr	r3, .L18+8
	ldr	r3, [r3]
	bic	r2, r2, r3
	cmp	r2, #129
	beq	.L17
	mov	r3, #0
	mov	r7, #1065353216
	mov	r8, r3
	str	r3, [sp]	@ float
	str	r3, [sp, #4]	@ float
	b	.L6
.L16:
	ldr	r0, .L18+12
	add	sp, sp, #44
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	b	ERR
.L10:
	ldr	fp, [sp, #24]
	ldr	r5, [sp, #12]	@ float
	ldr	r6, [sp, #8]	@ float
	ldr	r7, [sp]	@ float
	b	.L7
.L17:
	mov	r5, #0
	mov	r7, #1065353216
	mov	r9, r5
	mov	r8, r5
	str	r5, [sp, #12]	@ float
	str	r5, [sp, #20]	@ float
	str	r5, [sp]	@ float
	str	r5, [sp, #4]	@ float
	b	.L6
.L12:
	mov	r7, r5
	mov	r5, #0
	ldr	r3, [sp, #12]	@ float
	mov	r8, r9
	str	r3, [sp]	@ float
	ldr	r3, [sp, #20]	@ float
	mov	r9, r5
	str	r3, [sp, #4]	@ float
	str	r5, [sp, #12]	@ float
	str	r5, [sp, #20]	@ float
	b	.L6
.L8:
	ldr	r0, .L18+16
	str	r3, [sp, #36]
	str	r2, [sp, #32]
	str	r1, [sp, #28]
	bl	FIXME
	add	r1, sp, #28
	ldm	r1, {r1, r2, r3}
	b	.L7
.L19:
	.align	2
.L18:
	.word	WINED3D_TTFF_DISABLE
	.word	WINED3D_TTFF_COUNT1
	.word	WINED3D_TTFF_PROJECTED
	.word	.LC0
	.word	.LC1
	.size	compute_texture_matrix, .-compute_texture_matrix
	.comm	WINED3D_TTFF_PROJECTED,4,4
	.comm	WINED3D_TTFF_DISABLE,4,4
	.comm	WINED3D_TTFF_COUNT1,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
