// File: /workspace/github_c_makefile_star2_O0/halcy[P]quasi_crystals_bot/Vector/MatrixDouble.c
// Function: dmat4x4affinemul
dmat4x4_t dmat4x4affinemul(dmat4x4_t a,dmat4x4_t b)
{
	return dmat4x4(a.m[0]*b.m[0]+a.m[4]*b.m[1]+a.m[8]*b.m[2],
	              a.m[0]*b.m[4]+a.m[4]*b.m[5]+a.m[8]*b.m[6],
	              a.m[0]*b.m[8]+a.m[4]*b.m[9]+a.m[8]*b.m[10],
	              a.m[0]*b.m[12]+a.m[4]*b.m[13]+a.m[8]*b.m[14]+a.m[12],

	              a.m[1]*b.m[0]+a.m[5]*b.m[1]+a.m[9]*b.m[2],
	              a.m[1]*b.m[4]+a.m[5]*b.m[5]+a.m[9]*b.m[6],
	              a.m[1]*b.m[8]+a.m[5]*b.m[9]+a.m[9]*b.m[10],
	              a.m[1]*b.m[12]+a.m[5]*b.m[13]+a.m[9]*b.m[14]+a.m[13],

	              a.m[2]*b.m[0]+a.m[6]*b.m[1]+a.m[10]*b.m[2],
	              a.m[2]*b.m[4]+a.m[6]*b.m[5]+a.m[10]*b.m[6],
	              a.m[2]*b.m[8]+a.m[6]*b.m[9]+a.m[10]*b.m[10],
	              a.m[2]*b.m[12]+a.m[6]*b.m[13]+a.m[10]*b.m[14]+a.m[14],

	              0,0,0,1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
leaq -0x50(%rsp), %rsp
movq %rdi, %rax
movq %rax, -0x8(%rbp)
leaq 0x90(%rbp), %rcx
leaq 0x10(%rbp), %rax
movsd (%rax), %xmm0
mulsd (%rcx), %xmm0
movsd 0x20(%rax), %xmm1
mulsd 0x8(%rcx), %xmm1
addsd %xmm1, %xmm0
movsd 0x40(%rax), %xmm1
mulsd 0x10(%rcx), %xmm1
addsd %xmm1, %xmm0
movsd (%rax), %xmm1
mulsd 0x20(%rcx), %xmm1
movsd 0x20(%rax), %xmm2
mulsd 0x28(%rcx), %xmm2
addsd %xmm2, %xmm1
movsd 0x40(%rax), %xmm2
mulsd 0x30(%rcx), %xmm2
addsd %xmm2, %xmm1
movsd (%rax), %xmm2
mulsd 0x40(%rcx), %xmm2
movsd 0x20(%rax), %xmm3
mulsd 0x48(%rcx), %xmm3
addsd %xmm3, %xmm2
movsd 0x40(%rax), %xmm3
mulsd 0x50(%rcx), %xmm3
addsd %xmm3, %xmm2
movsd (%rax), %xmm3
mulsd 0x60(%rcx), %xmm3
movsd 0x20(%rax), %xmm4
mulsd 0x68(%rcx), %xmm4
addsd %xmm4, %xmm3
movsd 0x40(%rax), %xmm4
mulsd 0x70(%rcx), %xmm4
addsd %xmm4, %xmm3
addsd 0x60(%rax), %xmm3
movsd 0x8(%rax), %xmm4
mulsd (%rcx), %xmm4
movsd 0x28(%rax), %xmm5
mulsd 0x8(%rcx), %xmm5
addsd %xmm5, %xmm4
movsd 0x48(%rax), %xmm5
mulsd 0x10(%rcx), %xmm5
addsd %xmm5, %xmm4
movsd 0x8(%rax), %xmm5
mulsd 0x20(%rcx), %xmm5
movsd 0x28(%rax), %xmm6
mulsd 0x28(%rcx), %xmm6
addsd %xmm6, %xmm5
movsd 0x48(%rax), %xmm6
mulsd 0x30(%rcx), %xmm6
addsd %xmm6, %xmm5
movsd 0x8(%rax), %xmm6
mulsd 0x40(%rcx), %xmm6
movsd 0x28(%rax), %xmm7
mulsd 0x48(%rcx), %xmm7
addsd %xmm7, %xmm6
movsd 0x48(%rax), %xmm7
mulsd 0x50(%rcx), %xmm7
addsd %xmm7, %xmm6
movsd 0x8(%rax), %xmm7
mulsd 0x60(%rcx), %xmm7
movsd 0x28(%rax), %xmm8
mulsd 0x68(%rcx), %xmm8
addsd %xmm8, %xmm7
movsd 0x48(%rax), %xmm8
mulsd 0x70(%rcx), %xmm8
addsd %xmm8, %xmm7
addsd 0x68(%rax), %xmm7
movsd 0x10(%rax), %xmm13
mulsd (%rcx), %xmm13
movsd 0x30(%rax), %xmm8
mulsd 0x8(%rcx), %xmm8
addsd %xmm8, %xmm13
movsd 0x50(%rax), %xmm8
mulsd 0x10(%rcx), %xmm8
addsd %xmm8, %xmm13
movsd 0x10(%rax), %xmm12
mulsd 0x20(%rcx), %xmm12
movsd 0x30(%rax), %xmm8
mulsd 0x28(%rcx), %xmm8
addsd %xmm8, %xmm12
movsd 0x50(%rax), %xmm8
mulsd 0x30(%rcx), %xmm8
addsd %xmm8, %xmm12
movsd 0x10(%rax), %xmm11
mulsd 0x40(%rcx), %xmm11
movsd 0x30(%rax), %xmm8
mulsd 0x48(%rcx), %xmm8
addsd %xmm8, %xmm11
movsd 0x50(%rax), %xmm8
mulsd 0x50(%rcx), %xmm8
addsd %xmm8, %xmm11
movsd 0x10(%rax), %xmm10
mulsd 0x60(%rcx), %xmm10
movsd 0x30(%rax), %xmm8
mulsd 0x68(%rcx), %xmm8
addsd %xmm8, %xmm10
movsd 0x50(%rax), %xmm8
mulsd 0x70(%rcx), %xmm8
addsd %xmm8, %xmm10
addsd 0x70(%rax), %xmm10
xorps %xmm9, %xmm9
movsd 0x57b1(%rip), %xmm8     # 0x17510
movsd %xmm13, (%rsp)
movsd %xmm12, 0x8(%rsp)
movsd %xmm11, 0x10(%rsp)
movsd %xmm10, 0x18(%rsp)
movsd %xmm9, 0x20(%rsp)
movsd %xmm9, 0x28(%rsp)
movsd %xmm9, 0x30(%rsp)
movsd %xmm8, 0x38(%rsp)
callq 0x11db0
movq -0x8(%rbp), %rax
leaq 0x50(%rsp), %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)