// File: /workspace/github_c_makefile_star2_O0/halcy[P]quasi_crystals_bot/Vector/Matrix.c
// Function: mat4x4affinemul
mat4x4_t mat4x4affinemul(mat4x4_t a,mat4x4_t b)
{
	return mat4x4(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 0x50(%rbp), %rcx
leaq 0x10(%rbp), %rax
movss (%rax), %xmm0
mulss (%rcx), %xmm0
movss 0x10(%rax), %xmm1
mulss 0x4(%rcx), %xmm1
addss %xmm1, %xmm0
movss 0x20(%rax), %xmm1
mulss 0x8(%rcx), %xmm1
addss %xmm1, %xmm0
movss (%rax), %xmm1
mulss 0x10(%rcx), %xmm1
movss 0x10(%rax), %xmm2
mulss 0x14(%rcx), %xmm2
addss %xmm2, %xmm1
movss 0x20(%rax), %xmm2
mulss 0x18(%rcx), %xmm2
addss %xmm2, %xmm1
movss (%rax), %xmm2
mulss 0x20(%rcx), %xmm2
movss 0x10(%rax), %xmm3
mulss 0x24(%rcx), %xmm3
addss %xmm3, %xmm2
movss 0x20(%rax), %xmm3
mulss 0x28(%rcx), %xmm3
addss %xmm3, %xmm2
movss (%rax), %xmm3
mulss 0x30(%rcx), %xmm3
movss 0x10(%rax), %xmm4
mulss 0x34(%rcx), %xmm4
addss %xmm4, %xmm3
movss 0x20(%rax), %xmm4
mulss 0x38(%rcx), %xmm4
addss %xmm4, %xmm3
addss 0x30(%rax), %xmm3
movss 0x4(%rax), %xmm4
mulss (%rcx), %xmm4
movss 0x14(%rax), %xmm5
mulss 0x4(%rcx), %xmm5
addss %xmm5, %xmm4
movss 0x24(%rax), %xmm5
mulss 0x8(%rcx), %xmm5
addss %xmm5, %xmm4
movss 0x4(%rax), %xmm5
mulss 0x10(%rcx), %xmm5
movss 0x14(%rax), %xmm6
mulss 0x14(%rcx), %xmm6
addss %xmm6, %xmm5
movss 0x24(%rax), %xmm6
mulss 0x18(%rcx), %xmm6
addss %xmm6, %xmm5
movss 0x4(%rax), %xmm6
mulss 0x20(%rcx), %xmm6
movss 0x14(%rax), %xmm7
mulss 0x24(%rcx), %xmm7
addss %xmm7, %xmm6
movss 0x24(%rax), %xmm7
mulss 0x28(%rcx), %xmm7
addss %xmm7, %xmm6
movss 0x4(%rax), %xmm7
mulss 0x30(%rcx), %xmm7
movss 0x14(%rax), %xmm8
mulss 0x34(%rcx), %xmm8
addss %xmm8, %xmm7
movss 0x24(%rax), %xmm8
mulss 0x38(%rcx), %xmm8
addss %xmm8, %xmm7
addss 0x34(%rax), %xmm7
movss 0x8(%rax), %xmm13
mulss (%rcx), %xmm13
movss 0x18(%rax), %xmm8
mulss 0x4(%rcx), %xmm8
addss %xmm8, %xmm13
movss 0x28(%rax), %xmm8
mulss 0x8(%rcx), %xmm8
addss %xmm8, %xmm13
movss 0x8(%rax), %xmm12
mulss 0x10(%rcx), %xmm12
movss 0x18(%rax), %xmm8
mulss 0x14(%rcx), %xmm8
addss %xmm8, %xmm12
movss 0x28(%rax), %xmm8
mulss 0x18(%rcx), %xmm8
addss %xmm8, %xmm12
movss 0x8(%rax), %xmm11
mulss 0x20(%rcx), %xmm11
movss 0x18(%rax), %xmm8
mulss 0x24(%rcx), %xmm8
addss %xmm8, %xmm11
movss 0x28(%rax), %xmm8
mulss 0x28(%rcx), %xmm8
addss %xmm8, %xmm11
movss 0x8(%rax), %xmm10
mulss 0x30(%rcx), %xmm10
movss 0x18(%rax), %xmm8
mulss 0x34(%rcx), %xmm8
addss %xmm8, %xmm10
movss 0x28(%rax), %xmm8
mulss 0x38(%rcx), %xmm8
addss %xmm8, %xmm10
addss 0x38(%rax), %xmm10
xorps %xmm9, %xmm9
movss 0x8a18(%rip), %xmm8     # 0x17004
movss %xmm13, (%rsp)
movss %xmm12, 0x8(%rsp)
movss %xmm11, 0x10(%rsp)
movss %xmm10, 0x18(%rsp)
movss %xmm9, 0x20(%rsp)
movss %xmm9, 0x28(%rsp)
movss %xmm9, 0x30(%rsp)
movss %xmm8, 0x38(%rsp)
callq 0xe640
movq -0x8(%rbp), %rax
leaq 0x50(%rsp), %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)