	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.section	__TEXT,__literal4,4byte_literals
	.p2align	2                               ## -- Begin function get_projection_matrix
LCPI0_0:
	.long	0x3f7c0000                      ## float 0.984375
LCPI0_1:
	.long	0xbc800000                      ## float -0.015625
LCPI0_2:
	.long	0x40000000                      ## float 2
LCPI0_3:
	.long	0xc0000000                      ## float -2
LCPI0_5:
	.long	0xbf800000                      ## float -1
LCPI0_7:
	.long	0x3f800000                      ## float 1
	.section	__TEXT,__literal16,16byte_literals
	.p2align	4
LCPI0_4:
	.long	0x80000000                      ## float -0
	.long	0x80000000                      ## float -0
	.long	0x80000000                      ## float -0
	.long	0x80000000                      ## float -0
	.section	__TEXT,__literal8,8byte_literals
	.p2align	2
LCPI0_6:
	.long	0x3f800000                      ## float 1
	.long	0x40000000                      ## float 2
	.section	__TEXT,__text,regular,pure_instructions
	.globl	_get_projection_matrix
	.p2align	4, 0x90
_get_projection_matrix:                 ## @get_projection_matrix
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	subq	$64, %rsp
	movq	24(%rdi), %rax
	movq	(%rax), %rax
	movq	_ARB_CLIP_CONTROL@GOTPCREL(%rip), %rcx
	movq	(%rcx), %rcx
	movl	(%rax,%rcx,4), %r8d
	testl	%r8d, %r8d
	je	LBB0_3
## %bb.1:
	xorl	%ecx, %ecx
LBB0_2:
	movss	LCPI0_1(%rip), %xmm0            ## xmm0 = mem[0],zero,zero,zero
	cmpq	$0, (%rdi)
	je	LBB0_19
LBB0_6:
	movss	16(%rsi), %xmm2                 ## xmm2 = mem[0],zero,zero,zero
	movss	20(%rsi), %xmm7                 ## xmm7 = mem[0],zero,zero,zero
	movss	LCPI0_2(%rip), %xmm1            ## xmm1 = mem[0],zero,zero,zero
	movaps	%xmm1, %xmm8
	testb	%cl, %cl
	jne	LBB0_8
## %bb.7:
	movss	LCPI0_3(%rip), %xmm8            ## xmm8 = mem[0],zero,zero,zero
LBB0_8:
	addss	%xmm2, %xmm2
	movss	28(%rsi), %xmm4                 ## xmm4 = mem[0],zero,zero,zero
	addss	%xmm7, %xmm7
	movaps	%xmm4, %xmm5
	jne	LBB0_10
## %bb.9:
	movaps	LCPI0_4(%rip), %xmm5            ## xmm5 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0]
	xorps	%xmm4, %xmm5
LBB0_10:
	movss	24(%rsi), %xmm6                 ## xmm6 = mem[0],zero,zero,zero
	movaps	%xmm0, %xmm3
	subss	%xmm2, %xmm3
	subss	%xmm7, %xmm0
	movq	32(%rsi), %rax
	cmpq	$0, (%rax)
	je	LBB0_11
## %bb.12:
	movq	_WINED3D_RS_ZENABLE@GOTPCREL(%rip), %rax
	movq	(%rax), %rcx
	shlq	$2, %rcx
	addq	(%rsi), %rcx
	jmp	LBB0_13
LBB0_3:
	cmpq	$0, 16(%rdi)
	setne	%cl
	movq	8(%rdi), %r9
	movq	_WINED3D_PIXEL_CENTER_INTEGER@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	testl	%eax, (%r9)
	je	LBB0_2
## %bb.4:
	movss	LCPI0_0(%rip), %xmm0            ## xmm0 = mem[0],zero,zero,zero
	cmpq	$0, (%rdi)
	jne	LBB0_6
LBB0_19:
	movss	LCPI0_5(%rip), %xmm1            ## xmm1 = mem[0],zero,zero,zero
	movaps	%xmm1, %xmm2
	testb	%cl, %cl
	jne	LBB0_21
## %bb.20:
	movss	LCPI0_7(%rip), %xmm2            ## xmm2 = mem[0],zero,zero,zero
LBB0_21:
	movaps	%xmm0, %xmm3
	jne	LBB0_23
## %bb.22:
	movaps	LCPI0_4(%rip), %xmm3            ## xmm3 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0]
	xorps	%xmm0, %xmm3
LBB0_23:
	xorl	%eax, %eax
	divss	24(%rsi), %xmm0
	divss	28(%rsi), %xmm3
	testl	%r8d, %r8d
	sete	%al
	leaq	LCPI0_6(%rip), %rcx
	movss	(%rcx,%rax,4), %xmm4            ## xmm4 = mem[0],zero,zero,zero
	je	LBB0_25
## %bb.24:
	xorps	%xmm1, %xmm1
LBB0_25:
	movl	$1065353216, -64(%rbp)          ## imm = 0x3F800000
	xorps	%xmm5, %xmm5
	movups	%xmm5, -60(%rbp)
	movss	%xmm2, -44(%rbp)
	movups	%xmm5, -40(%rbp)
	movss	%xmm4, -24(%rbp)
	movl	$0, -20(%rbp)
	movss	%xmm0, -16(%rbp)
	movss	%xmm3, -12(%rbp)
	movss	%xmm1, -8(%rbp)
	movl	$1065353216, -4(%rbp)           ## imm = 0x3F800000
	movq	_WINED3D_TS_PROJECTION@GOTPCREL(%rip), %rax
	movq	(%rax), %rax
	shlq	$2, %rax
	addq	8(%rsi), %rax
	leaq	-64(%rbp), %rsi
	movq	%rdx, %rdi
	movq	%rax, %rdx
	callq	_multiply_matrix
	jmp	LBB0_26
LBB0_11:
	movq	_WINED3D_ZB_FALSE@GOTPCREL(%rip), %rcx
LBB0_13:
	subss	%xmm6, %xmm3
	subss	%xmm4, %xmm0
	xorl	%esi, %esi
	xorps	%xmm7, %xmm7
	testl	%r8d, %r8d
	sete	%al
	je	LBB0_14
## %bb.15:
	xorps	%xmm2, %xmm2
	jmp	LBB0_16
LBB0_14:
	movss	LCPI0_5(%rip), %xmm2            ## xmm2 = mem[0],zero,zero,zero
LBB0_16:
	divss	%xmm6, %xmm1
	divss	%xmm6, %xmm3
	divss	%xmm4, %xmm8
	divss	%xmm5, %xmm0
	cmpl	$0, (%rcx)
	xorps	%xmm4, %xmm4
	je	LBB0_18
## %bb.17:
	movb	%al, %sil
	leaq	LCPI0_6(%rip), %rax
	movss	(%rax,%rsi,4), %xmm7            ## xmm7 = mem[0],zero,zero,zero
	movaps	%xmm2, %xmm4
LBB0_18:
	movss	%xmm1, (%rdx)
	xorps	%xmm1, %xmm1
	movups	%xmm1, 4(%rdx)
	movss	%xmm8, 20(%rdx)
	movups	%xmm1, 24(%rdx)
	movss	%xmm7, 40(%rdx)
	movl	$0, 44(%rdx)
	movss	%xmm3, 48(%rdx)
	movss	%xmm0, 52(%rdx)
	movss	%xmm4, 56(%rdx)
	movl	$1065353216, 60(%rdx)           ## imm = 0x3F800000
LBB0_26:
	addq	$64, %rsp
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_ARB_CLIP_CONTROL,8,3           ## @ARB_CLIP_CONTROL
	.comm	_WINED3D_PIXEL_CENTER_INTEGER,4,2 ## @WINED3D_PIXEL_CENTER_INTEGER
	.comm	_WINED3D_RS_ZENABLE,8,3         ## @WINED3D_RS_ZENABLE
	.comm	_WINED3D_ZB_FALSE,4,2           ## @WINED3D_ZB_FALSE
	.comm	_WINED3D_TS_PROJECTION,8,3      ## @WINED3D_TS_PROJECTION
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_get_projection_matrix          ; -- Begin function get_projection_matrix
	.p2align	2
_get_projection_matrix:                 ; @get_projection_matrix
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #80
	.cfi_def_cfa_offset 80
	stp	x29, x30, [sp, #64]             ; 16-byte Folded Spill
	add	x29, sp, #64
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	ldr	x8, [x0, #24]
	ldr	x8, [x8]
Lloh0:
	adrp	x9, _ARB_CLIP_CONTROL@GOTPAGE
Lloh1:
	ldr	x9, [x9, _ARB_CLIP_CONTROL@GOTPAGEOFF]
Lloh2:
	ldr	x9, [x9]
	ldr	w8, [x8, x9, lsl #2]
	cbz	w8, LBB0_3
; %bb.1:
	mov	w9, #0
LBB0_2:
	mov	w10, #-1132462080
	b	LBB0_5
LBB0_3:
	ldp	x10, x9, [x0, #8]
	cmp	x9, #0
	cset	w9, ne
	ldr	w10, [x10]
Lloh3:
	adrp	x11, _WINED3D_PIXEL_CENTER_INTEGER@GOTPAGE
Lloh4:
	ldr	x11, [x11, _WINED3D_PIXEL_CENTER_INTEGER@GOTPAGEOFF]
Lloh5:
	ldr	w11, [x11]
	tst	w11, w10
	b.eq	LBB0_2
; %bb.4:
	mov	w10, #1065091072
LBB0_5:
	fmov	s0, w10
	ldr	x10, [x0]
	cbz	x10, LBB0_8
; %bb.6:
	cmp	w9, #0
	fmov	s1, #-2.00000000
	fmov	s2, #2.00000000
	fcsel	s3, s2, s1, ne
	ldp	d4, d5, [x1, #16]
	fdiv	s1, s2, s5
	dup.2s	v0, v0[0]
	movi.2s	v6, #192, lsl #24
	fmla.2s	v0, v6, v4
	fsub.2s	v4, v0, v5
	mov	s6, v5[1]
	fdiv	s0, s3, s6
	fneg	s3, s6
	fcsel	s3, s6, s3, ne
	mov.s	v5[1], v3[0]
	fdiv.2s	v3, v4, v5
	ldr	x9, [x1, #32]
	ldr	x9, [x9]
	cbz	x9, LBB0_9
; %bb.7:
	ldr	x9, [x1]
Lloh6:
	adrp	x10, _WINED3D_RS_ZENABLE@GOTPAGE
Lloh7:
	ldr	x10, [x10, _WINED3D_RS_ZENABLE@GOTPAGEOFF]
Lloh8:
	ldr	x10, [x10]
	add	x9, x9, x10, lsl #2
	b	LBB0_10
LBB0_8:
	cmp	w9, #0
	fmov	s1, #1.00000000
	fmov	s2, #-1.00000000
	fcsel	s3, s2, s1, ne
	fneg	s4, s0
	fcsel	s4, s0, s4, ne
	cmp	w8, #0
	fmov	s5, #2.00000000
	fcsel	s1, s5, s1, eq
	movi	d5, #0000000000000000
	fcsel	s2, s2, s5, eq
	mov	w8, #1065353216
	str	w8, [sp]
	stur	xzr, [sp, #12]
	stur	xzr, [sp, #4]
	str	s3, [sp, #20]
	stp	xzr, xzr, [sp, #24]
	str	s1, [sp, #40]
	str	wzr, [sp, #44]
	ldr	d1, [x1, #24]
	mov.s	v0[1], v4[0]
	fdiv.2s	v0, v0, v1
	str	d0, [sp, #48]
	str	s2, [sp, #56]
	str	w8, [sp, #60]
	ldr	x8, [x1, #8]
Lloh9:
	adrp	x9, _WINED3D_TS_PROJECTION@GOTPAGE
Lloh10:
	ldr	x9, [x9, _WINED3D_TS_PROJECTION@GOTPAGEOFF]
Lloh11:
	ldr	x9, [x9]
	add	x8, x8, x9, lsl #2
	mov	x1, sp
	mov	x0, x2
	mov	x2, x8
	bl	_multiply_matrix
	b	LBB0_11
LBB0_9:
Lloh12:
	adrp	x9, _WINED3D_ZB_FALSE@GOTPAGE
Lloh13:
	ldr	x9, [x9, _WINED3D_ZB_FALSE@GOTPAGEOFF]
LBB0_10:
	ldr	w9, [x9]
	cmp	w8, #0
	fmov	s4, #1.00000000
	fcsel	s2, s2, s4, eq
	movi	d4, #0000000000000000
	str	s1, [x2]
	fmov	s1, #-1.00000000
	stur	xzr, [x2, #12]
	fcsel	s1, s1, s4, eq
	cmp	w9, #0
	stur	xzr, [x2, #4]
	fcsel	s2, s4, s2, eq
	fcsel	s1, s4, s1, eq
	str	s0, [x2, #20]
	stp	xzr, xzr, [x2, #24]
	str	s2, [x2, #40]
	str	wzr, [x2, #44]
	str	d3, [x2, #48]
	str	s1, [x2, #56]
	mov	w8, #1065353216
	str	w8, [x2, #60]
LBB0_11:
	ldp	x29, x30, [sp, #64]             ; 16-byte Folded Reload
	add	sp, sp, #80
	ret
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpLdrGotLdr	Lloh6, Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGot	Lloh12, Lloh13
	.cfi_endproc
                                        ; -- End function
	.comm	_ARB_CLIP_CONTROL,8,3           ; @ARB_CLIP_CONTROL
	.comm	_WINED3D_PIXEL_CENTER_INTEGER,4,2 ; @WINED3D_PIXEL_CENTER_INTEGER
	.comm	_WINED3D_RS_ZENABLE,8,3         ; @WINED3D_RS_ZENABLE
	.comm	_WINED3D_ZB_FALSE,4,2           ; @WINED3D_ZB_FALSE
	.comm	_WINED3D_TS_PROJECTION,8,3      ; @WINED3D_TS_PROJECTION
.subsections_via_symbols
