	.file	"multiply.c"
	.intel_syntax noprefix
	.text
	.p2align 4,,15
	.globl	VMULF
	.def	VMULF;	.scl	2;	.type	32;	.endef
	.seh_proc	VMULF
VMULF:
	sub	rsp, 24
	.seh_stackalloc	24
	movaps	XMMWORD PTR [rsp], xmm6
	.seh_savexmm	xmm6, 0
	.seh_endprologue
	mov	rax, QWORD PTR .refptr.VACC[rip]
	pcmpeqd	xmm4, xmm4
	psllw	xmm4, 15
	movdqa	xmm5, XMMWORD PTR [rcx]
	movdqa	xmm2, XMMWORD PTR [rdx]
	movdqa	xmm3, xmm5
	movdqa	xmm1, xmm5
	pmullw	xmm3, xmm2
	pmulhw	xmm1, xmm2
	pcmpeqw	xmm2, xmm4
	movdqa	xmm0, xmm3
	paddw	xmm3, xmm3
	movdqa	xmm6, xmm3
	paddw	xmm1, xmm1
	psrlw	xmm0, 15
	pxor	xmm3, xmm4
	psrlw	xmm6, 15
	paddw	xmm0, xmm1
	movaps	XMMWORD PTR 32[rax], xmm3
	paddw	xmm0, xmm6
	pcmpeqw	xmm4, xmm5
	movdqa	xmm1, xmm0
	movaps	XMMWORD PTR 16[rax], xmm0
	psraw	xmm1, 15
	pand	xmm2, xmm4
	pxor	xmm1, xmm2
	movaps	XMMWORD PTR [rax], xmm1
	movaps	xmm6, XMMWORD PTR [rsp]
	paddw	xmm0, xmm2
	add	rsp, 24
	ret
	.seh_endproc
	.p2align 4,,15
	.globl	VMULU
	.def	VMULU;	.scl	2;	.type	32;	.endef
	.seh_proc	VMULU
VMULU:
	sub	rsp, 24
	.seh_stackalloc	24
	movaps	XMMWORD PTR [rsp], xmm6
	.seh_savexmm	xmm6, 0
	.seh_endprologue
	mov	rax, QWORD PTR .refptr.VACC[rip]
	pcmpeqd	xmm4, xmm4
	psllw	xmm4, 15
	movdqa	xmm5, XMMWORD PTR [rcx]
	movdqa	xmm0, XMMWORD PTR [rdx]
	movdqa	xmm3, xmm5
	movdqa	xmm2, xmm5
	pmullw	xmm3, xmm0
	pmulhw	xmm2, xmm0
	pcmpeqw	xmm0, xmm4
	movdqa	xmm1, xmm3
	paddw	xmm3, xmm3
	movdqa	xmm6, xmm3
	paddw	xmm2, xmm2
	psrlw	xmm1, 15
	pxor	xmm3, xmm4
	psrlw	xmm6, 15
	paddw	xmm1, xmm2
	movaps	XMMWORD PTR 32[rax], xmm3
	paddw	xmm1, xmm6
	pcmpeqw	xmm4, xmm5
	movdqa	xmm2, xmm1
	movaps	XMMWORD PTR 16[rax], xmm1
	psraw	xmm2, 15
	pand	xmm0, xmm4
	pxor	xmm0, xmm2
	movaps	XMMWORD PTR [rax], xmm0
	movaps	xmm6, XMMWORD PTR [rsp]
	por	xmm1, xmm2
	pandn	xmm0, xmm1
	add	rsp, 24
	ret
	.seh_endproc
	.p2align 4,,15
	.globl	VMUDL
	.def	VMUDL;	.scl	2;	.type	32;	.endef
	.seh_proc	VMUDL
VMUDL:
	.seh_endprologue
	mov	rax, QWORD PTR .refptr.VACC[rip]
	pxor	xmm1, xmm1
	movdqa	xmm0, XMMWORD PTR [rdx]
	pmulhuw	xmm0, XMMWORD PTR [rcx]
	movaps	XMMWORD PTR 32[rax], xmm0
	movaps	XMMWORD PTR 16[rax], xmm1
	movaps	XMMWORD PTR [rax], xmm1
	ret
	.seh_endproc
	.p2align 4,,15
	.globl	VMUDM
	.def	VMUDM;	.scl	2;	.type	32;	.endef
	.seh_proc	VMUDM
VMUDM:
	.seh_endprologue
	mov	rax, QWORD PTR .refptr.VACC[rip]
	movdqa	xmm1, XMMWORD PTR [rcx]
	movdqa	xmm2, XMMWORD PTR [rdx]
	movdqa	xmm0, xmm1
	movdqa	xmm3, xmm1
	pmulhuw	xmm0, xmm2
	pmullw	xmm1, xmm2
	psraw	xmm3, 15
	pand	xmm3, xmm2
	psubw	xmm0, xmm3
	movaps	XMMWORD PTR 32[rax], xmm1
	movdqa	xmm1, xmm0
	psraw	xmm1, 15
	movaps	XMMWORD PTR 16[rax], xmm0
	movaps	XMMWORD PTR [rax], xmm1
	ret
	.seh_endproc
	.p2align 4,,15
	.globl	VMUDN
	.def	VMUDN;	.scl	2;	.type	32;	.endef
	.seh_proc	VMUDN
VMUDN:
	.seh_endprologue
	mov	rax, QWORD PTR .refptr.VACC[rip]
	movdqa	xmm2, XMMWORD PTR [rcx]
	movdqa	xmm3, XMMWORD PTR [rdx]
	movdqa	xmm1, xmm2
	movdqa	xmm0, xmm2
	pmulhuw	xmm1, xmm3
	pmullw	xmm0, xmm3
	psraw	xmm3, 15
	pand	xmm2, xmm3
	psubw	xmm1, xmm2
	movaps	XMMWORD PTR 16[rax], xmm1
	psraw	xmm1, 15
	movaps	XMMWORD PTR 32[rax], xmm0
	movaps	XMMWORD PTR [rax], xmm1
	ret
	.seh_endproc
	.p2align 4,,15
	.globl	VMUDH
	.def	VMUDH;	.scl	2;	.type	32;	.endef
	.seh_proc	VMUDH
VMUDH:
	.seh_endprologue
	mov	rax, QWORD PTR .refptr.VACC[rip]
	movdqa	xmm2, XMMWORD PTR [rdx]
	movdqa	xmm0, XMMWORD PTR [rcx]
	movdqa	xmm1, xmm0
	pmullw	xmm0, xmm2
	pmulhw	xmm1, xmm2
	pxor	xmm2, xmm2
	movaps	XMMWORD PTR 32[rax], xmm2
	movdqa	xmm2, xmm0
	movaps	XMMWORD PTR 16[rax], xmm0
	punpckhwd	xmm2, xmm1
	punpcklwd	xmm0, xmm1
	movaps	XMMWORD PTR [rax], xmm1
	packssdw	xmm0, xmm2
	ret
	.seh_endproc
	.p2align 4,,15
	.globl	VMACF
	.def	VMACF;	.scl	2;	.type	32;	.endef
	.seh_proc	VMACF
VMACF:
	sub	rsp, 24
	.seh_stackalloc	24
	movaps	XMMWORD PTR [rsp], xmm6
	.seh_savexmm	xmm6, 0
	.seh_endprologue
	mov	rax, QWORD PTR .refptr.VACC[rip]
	pcmpeqd	xmm3, xmm3
	psllw	xmm3, 15
	movdqa	xmm2, XMMWORD PTR [rdx]
	movdqa	xmm0, XMMWORD PTR [rcx]
	movdqa	xmm6, XMMWORD PTR 16[rax]
	movdqa	xmm1, xmm0
	pmullw	xmm0, xmm2
	movdqa	xmm4, XMMWORD PTR [rax]
	pmulhw	xmm1, xmm2
	movdqa	xmm2, xmm0
	paddw	xmm0, xmm0
	movdqa	xmm5, xmm1
	psrlw	xmm2, 15
	paddw	xmm1, xmm1
	por	xmm1, xmm2
	movdqa	xmm2, XMMWORD PTR 32[rax]
	paddw	xmm6, xmm1
	pxor	xmm1, xmm3
	psrlw	xmm5, 15
	paddw	xmm2, xmm0
	pxor	xmm0, xmm3
	movaps	XMMWORD PTR 32[rax], xmm2
	pxor	xmm2, xmm3
	pcmpgtw	xmm0, xmm2
	movdqa	xmm2, xmm6
	pxor	xmm3, xmm6
	pcmpgtw	xmm1, xmm3
	pxor	xmm3, xmm3
	psubw	xmm2, xmm0
	pcmpeqw	xmm3, xmm2
	movaps	XMMWORD PTR 16[rax], xmm2
	pand	xmm0, xmm3
	por	xmm1, xmm0
	movdqa	xmm0, xmm4
	psubw	xmm0, xmm1
	movdqa	xmm1, xmm2
	psubw	xmm0, xmm5
	movaps	XMMWORD PTR [rax], xmm0
	movaps	xmm6, XMMWORD PTR [rsp]
	punpckhwd	xmm1, xmm0
	punpcklwd	xmm2, xmm0
	movdqa	xmm0, xmm2
	packssdw	xmm0, xmm1
	add	rsp, 24
	ret
	.seh_endproc
	.p2align 4,,15
	.globl	VMACU
	.def	VMACU;	.scl	2;	.type	32;	.endef
	.seh_proc	VMACU
VMACU:
	sub	rsp, 24
	.seh_stackalloc	24
	movaps	XMMWORD PTR [rsp], xmm6
	.seh_savexmm	xmm6, 0
	.seh_endprologue
	mov	rax, QWORD PTR .refptr.VACC[rip]
	pcmpeqd	xmm6, xmm6
	psllw	xmm6, 15
	movdqa	xmm2, XMMWORD PTR [rdx]
	movdqa	xmm0, XMMWORD PTR [rcx]
	movdqa	xmm5, XMMWORD PTR 32[rax]
	movdqa	xmm1, xmm0
	pmullw	xmm0, xmm2
	movdqa	xmm3, XMMWORD PTR 16[rax]
	pmulhw	xmm1, xmm2
	movdqa	xmm2, xmm0
	paddw	xmm0, xmm0
	paddw	xmm5, xmm0
	movdqa	xmm4, xmm1
	pxor	xmm0, xmm6
	paddw	xmm1, xmm1
	movaps	XMMWORD PTR 32[rax], xmm5
	psrlw	xmm2, 15
	pxor	xmm5, xmm6
	pcmpgtw	xmm0, xmm5
	por	xmm1, xmm2
	paddw	xmm3, xmm1
	pxor	xmm1, xmm6
	movdqa	xmm5, xmm3
	pxor	xmm3, xmm6
	pcmpgtw	xmm1, xmm3
	pxor	xmm3, xmm3
	movdqa	xmm2, XMMWORD PTR [rax]
	psrlw	xmm4, 15
	psubw	xmm5, xmm0
	pcmpeqw	xmm3, xmm5
	movaps	XMMWORD PTR 16[rax], xmm5
	pand	xmm0, xmm3
	por	xmm1, xmm0
	movdqa	xmm0, xmm2
	movdqa	xmm2, xmm5
	psubw	xmm0, xmm1
	movdqa	xmm1, xmm5
	psubw	xmm0, xmm4
	movaps	XMMWORD PTR [rax], xmm0
	punpckhwd	xmm2, xmm0
	punpcklwd	xmm1, xmm0
	packssdw	xmm1, xmm2
	movdqa	xmm0, xmm1
	movaps	xmm6, XMMWORD PTR [rsp]
	psraw	xmm0, 15
	pandn	xmm0, xmm1
	pcmpgtw	xmm1, xmm5
	por	xmm0, xmm1
	add	rsp, 24
	ret
	.seh_endproc
	.p2align 4,,15
	.globl	VMADL
	.def	VMADL;	.scl	2;	.type	32;	.endef
	.seh_proc	VMADL
VMADL:
	.seh_endprologue
	mov	rax, QWORD PTR .refptr.VACC[rip]
	movdqa	xmm0, XMMWORD PTR [rdx]
	movdqa	xmm2, XMMWORD PTR 32[rax]
	movdqa	xmm4, xmm0
	pcmpeqd	xmm0, xmm0
	pmulhuw	xmm4, XMMWORD PTR [rcx]
	psllw	xmm0, 15
	movdqa	xmm1, XMMWORD PTR 16[rax]
	paddw	xmm2, xmm4
	movdqa	xmm5, xmm0
	pxor	xmm0, xmm4
	movdqa	xmm3, XMMWORD PTR [rax]
	pxor	xmm5, xmm2
	pcmpgtw	xmm0, xmm5
	pxor	xmm4, xmm4
	movaps	XMMWORD PTR 32[rax], xmm2
	movdqa	xmm5, xmm3
	psubw	xmm1, xmm0
	pcmpeqw	xmm4, xmm1
	movdqa	xmm3, xmm1
	movaps	XMMWORD PTR 16[rax], xmm1
	pand	xmm0, xmm4
	psubw	xmm5, xmm0
	movdqa	xmm0, xmm5
	punpckhwd	xmm3, xmm5
	movaps	XMMWORD PTR [rax], xmm5
	movdqa	xmm5, xmm1
	punpcklwd	xmm5, xmm0
	movdqa	xmm0, xmm5
	packssdw	xmm0, xmm3
	pcmpeqw	xmm1, xmm0
	pcmpeqd	xmm3, xmm3
	pxor	xmm2, xmm0
	pxor	xmm3, xmm1
	psllw	xmm3, 15
	pand	xmm1, xmm2
	pxor	xmm0, xmm3
	pxor	xmm0, xmm1
	ret
	.seh_endproc
	.p2align 4,,15
	.globl	VMADM
	.def	VMADM;	.scl	2;	.type	32;	.endef
	.seh_proc	VMADM
VMADM:
	sub	rsp, 24
	.seh_stackalloc	24
	movaps	XMMWORD PTR [rsp], xmm6
	.seh_savexmm	xmm6, 0
	.seh_endprologue
	mov	rax, QWORD PTR .refptr.VACC[rip]
	pcmpeqd	xmm2, xmm2
	psllw	xmm2, 15
	movdqa	xmm0, XMMWORD PTR [rcx]
	movdqa	xmm4, XMMWORD PTR [rdx]
	movdqa	xmm3, xmm0
	movdqa	xmm6, XMMWORD PTR 32[rax]
	movdqa	xmm1, xmm0
	movdqa	xmm5, xmm0
	pmullw	xmm3, xmm4
	movdqa	xmm0, XMMWORD PTR 16[rax]
	pmulhuw	xmm1, xmm4
	psraw	xmm5, 15
	paddw	xmm6, xmm3
	pxor	xmm3, xmm2
	pand	xmm4, xmm5
	movaps	XMMWORD PTR 32[rax], xmm6
	pxor	xmm6, xmm2
	pcmpgtw	xmm3, xmm6
	psubw	xmm1, xmm4
	psubw	xmm1, xmm3
	paddw	xmm0, xmm1
	movdqa	xmm3, xmm1
	pxor	xmm1, xmm2
	pxor	xmm2, xmm0
	pcmpgtw	xmm1, xmm2
	movaps	XMMWORD PTR 16[rax], xmm0
	movdqa	xmm2, xmm0
	psraw	xmm3, 15
	paddw	xmm3, XMMWORD PTR [rax]
	psubw	xmm3, xmm1
	movaps	XMMWORD PTR [rax], xmm3
	movaps	xmm6, XMMWORD PTR [rsp]
	punpckhwd	xmm2, xmm3
	punpcklwd	xmm0, xmm3
	packssdw	xmm0, xmm2
	add	rsp, 24
	ret
	.seh_endproc
	.p2align 4,,15
	.globl	VMADN
	.def	VMADN;	.scl	2;	.type	32;	.endef
	.seh_proc	VMADN
VMADN:
	sub	rsp, 24
	.seh_stackalloc	24
	movaps	XMMWORD PTR [rsp], xmm6
	.seh_savexmm	xmm6, 0
	.seh_endprologue
	mov	rax, QWORD PTR .refptr.VACC[rip]
	pcmpeqd	xmm2, xmm2
	psllw	xmm2, 15
	movdqa	xmm5, XMMWORD PTR [rcx]
	movdqa	xmm0, XMMWORD PTR [rdx]
	movdqa	xmm3, xmm5
	movdqa	xmm4, xmm5
	movdqa	xmm1, XMMWORD PTR 16[rax]
	pmullw	xmm3, xmm0
	movdqa	xmm6, xmm0
	pmulhuw	xmm4, xmm0
	movdqa	xmm0, XMMWORD PTR 32[rax]
	psraw	xmm6, 15
	paddw	xmm0, xmm3
	pand	xmm5, xmm6
	pxor	xmm3, xmm2
	psubw	xmm4, xmm5
	movdqa	xmm5, xmm2
	movaps	XMMWORD PTR 32[rax], xmm0
	pxor	xmm5, xmm0
	pcmpgtw	xmm3, xmm5
	movdqa	xmm5, xmm2
	psubw	xmm4, xmm3
	paddw	xmm1, xmm4
	movdqa	xmm3, xmm4
	pxor	xmm2, xmm4
	pxor	xmm5, xmm1
	pcmpgtw	xmm2, xmm5
	movdqa	xmm6, xmm1
	movaps	XMMWORD PTR 16[rax], xmm1
	psraw	xmm3, 15
	paddw	xmm3, XMMWORD PTR [rax]
	psubw	xmm3, xmm2
	movdqa	xmm2, xmm3
	movaps	XMMWORD PTR [rax], xmm3
	movdqa	xmm3, xmm1
	punpckhwd	xmm3, xmm2
	punpcklwd	xmm6, xmm2
	movdqa	xmm2, xmm6
	movaps	xmm6, XMMWORD PTR [rsp]
	packssdw	xmm2, xmm3
	pcmpeqw	xmm1, xmm2
	pxor	xmm0, xmm2
	pcmpeqd	xmm3, xmm3
	pxor	xmm3, xmm1
	pand	xmm1, xmm0
	psllw	xmm3, 15
	movdqa	xmm0, xmm2
	pxor	xmm0, xmm3
	pxor	xmm0, xmm1
	add	rsp, 24
	ret
	.seh_endproc
	.p2align 4,,15
	.globl	VMADH
	.def	VMADH;	.scl	2;	.type	32;	.endef
	.seh_proc	VMADH
VMADH:
	.seh_endprologue
	mov	rax, QWORD PTR .refptr.VACC[rip]
	movdqa	xmm3, XMMWORD PTR [rdx]
	movdqa	xmm0, XMMWORD PTR [rcx]
	movdqa	xmm2, XMMWORD PTR 16[rax]
	movdqa	xmm1, xmm0
	pmullw	xmm0, xmm3
	pmulhw	xmm1, xmm3
	pcmpeqd	xmm3, xmm3
	paddw	xmm1, XMMWORD PTR [rax]
	psllw	xmm3, 15
	paddw	xmm0, xmm2
	pxor	xmm2, xmm3
	pxor	xmm3, xmm0
	pcmpgtw	xmm2, xmm3
	movaps	XMMWORD PTR 16[rax], xmm0
	psubw	xmm1, xmm2
	movdqa	xmm2, xmm0
	punpckhwd	xmm2, xmm1
	punpcklwd	xmm0, xmm1
	movaps	XMMWORD PTR [rax], xmm1
	packssdw	xmm0, xmm2
	ret
	.seh_endproc
	.ident	"GCC: (Rev1, Built by MSYS2 project) 7.3.0"
	.section	.rdata$.refptr.VACC, "dr"
	.globl	.refptr.VACC
	.linkonce	discard
.refptr.VACC:
	.quad	VACC
