// File: /workspace/github_c_makefile_star2_O1/halcy[P]quasi_crystals_bot/Vector/Matrix.c
// Function: mat4x3affinemul
mat4x3_t mat4x3affinemul(mat4x3_t a,mat4x3_t b)
{
	return mat4x3(a.m[0]*b.m[0]+a.m[3]*b.m[1]+a.m[6]*b.m[2],
	              a.m[0]*b.m[3]+a.m[3]*b.m[4]+a.m[6]*b.m[5],
	              a.m[0]*b.m[6]+a.m[3]*b.m[7]+a.m[6]*b.m[8],
	              a.m[0]*b.m[9]+a.m[3]*b.m[10]+a.m[6]*b.m[11]+a.m[9],

	              a.m[1]*b.m[0]+a.m[4]*b.m[1]+a.m[7]*b.m[2],
	              a.m[1]*b.m[3]+a.m[4]*b.m[4]+a.m[7]*b.m[5],
	              a.m[1]*b.m[6]+a.m[4]*b.m[7]+a.m[7]*b.m[8],
	              a.m[1]*b.m[9]+a.m[4]*b.m[10]+a.m[7]*b.m[11]+a.m[10],

	              a.m[2]*b.m[0]+a.m[5]*b.m[1]+a.m[8]*b.m[2],
	              a.m[2]*b.m[3]+a.m[5]*b.m[4]+a.m[8]*b.m[5],
	              a.m[2]*b.m[6]+a.m[5]*b.m[7]+a.m[8]*b.m[8],
	              a.m[2]*b.m[9]+a.m[5]*b.m[10]+a.m[8]*b.m[11]+a.m[11]);
}

// Assembly:
movss 0x38(%rsp), %xmm1
movss 0x8(%rsp), %xmm0
movaps %xmm1, %xmm2
movaps %xmm1, %xmm7
movss 0x3c(%rsp), %xmm1
mulss %xmm0, %xmm2
movss 0x14(%rsp), %xmm4
movaps %xmm1, %xmm3
movaps %xmm1, %xmm14
movss %xmm1, -0x40(%rsp)
mulss %xmm4, %xmm3
movaps %xmm4, %xmm8
movss 0x40(%rsp), %xmm4
movss %xmm4, -0x20(%rsp)
movss 0x44(%rsp), %xmm5
movss %xmm5, -0x44(%rsp)
movss 0x48(%rsp), %xmm10
movss %xmm10, -0x4(%rsp)
mulss %xmm0, %xmm5
mulss %xmm8, %xmm10
movss 0x50(%rsp), %xmm1
movss 0x54(%rsp), %xmm9
movss %xmm9, -0x18(%rsp)
movaps %xmm1, %xmm6
movaps %xmm1, %xmm12
movaps %xmm9, %xmm1
mulss %xmm0, %xmm6
mulss %xmm8, %xmm1
movss 0x20(%rsp), %xmm15
movaps %xmm4, %xmm9
addss %xmm2, %xmm3
mulss %xmm15, %xmm9
addss %xmm5, %xmm10
movss 0x4c(%rsp), %xmm5
movss %xmm5, -0xc(%rsp)
addss %xmm6, %xmm1
movss 0x58(%rsp), %xmm2
movss %xmm2, -0x8(%rsp)
movaps %xmm2, %xmm4
mulss %xmm15, %xmm5
movaps %xmm5, %xmm13
mulss %xmm15, %xmm4
movaps %xmm4, %xmm6
movss 0x5c(%rsp), %xmm4
movss %xmm4, -0x34(%rsp)
movss 0x60(%rsp), %xmm2
movss %xmm2, -0x28(%rsp)
mulss %xmm4, %xmm0
movaps %xmm8, %xmm4
mulss %xmm2, %xmm4
movss 0xc(%rsp), %xmm8
movss 0x18(%rsp), %xmm11
movaps %xmm8, %xmm2
movaps %xmm11, %xmm5
mulss %xmm7, %xmm2
mulss %xmm14, %xmm5
movq %rdi, %rax
addss %xmm3, %xmm9
movss %xmm9, -0x1c(%rsp)
addss %xmm10, %xmm13
movss %xmm13, -0x14(%rsp)
addss %xmm1, %xmm6
movss %xmm6, -0x10(%rsp)
addss %xmm0, %xmm4
movss %xmm4, -0x24(%rsp)
addss %xmm2, %xmm5
movss %xmm5, -0x2c(%rsp)
movaps %xmm8, %xmm1
movss -0x44(%rsp), %xmm0
mulss %xmm0, %xmm1
movss %xmm1, -0x30(%rsp)
movaps %xmm8, %xmm10
mulss %xmm12, %xmm10
movss 0x10(%rsp), %xmm5
movss -0x34(%rsp), %xmm1
mulss %xmm1, %xmm8
mulss %xmm5, %xmm7
movss %xmm7, -0x38(%rsp)
mulss %xmm5, %xmm0
movss %xmm0, -0x44(%rsp)
movss 0x24(%rsp), %xmm3
mulss %xmm5, %xmm12
movss %xmm12, -0x3c(%rsp)
movaps %xmm3, %xmm7
mulss %xmm1, %xmm5
movss -0x20(%rsp), %xmm12
mulss %xmm12, %xmm7
movaps %xmm11, %xmm14
movaps %xmm11, %xmm6
movss -0x4(%rsp), %xmm9
mulss %xmm9, %xmm14
movss -0x18(%rsp), %xmm13
mulss %xmm13, %xmm6
movss -0x28(%rsp), %xmm4
mulss %xmm4, %xmm11
movss 0x1c(%rsp), %xmm2
movss -0x40(%rsp), %xmm0
mulss %xmm2, %xmm0
mulss %xmm2, %xmm9
mulss %xmm2, %xmm13
mulss %xmm4, %xmm2
addss -0x2c(%rsp), %xmm7
addss -0x30(%rsp), %xmm14
addss %xmm10, %xmm6
addss %xmm8, %xmm11
addss -0x38(%rsp), %xmm0
movss %xmm0, -0x40(%rsp)
addss -0x44(%rsp), %xmm9
addss -0x3c(%rsp), %xmm13
addss %xmm5, %xmm2
movss 0x64(%rsp), %xmm5
movss 0x28(%rsp), %xmm1
mulss %xmm5, %xmm15
mulss %xmm1, %xmm12
movaps %xmm3, %xmm8
movaps %xmm3, %xmm10
movss -0xc(%rsp), %xmm4
mulss %xmm4, %xmm8
movss -0x8(%rsp), %xmm0
mulss %xmm0, %xmm10
mulss %xmm5, %xmm3
mulss %xmm1, %xmm4
mulss %xmm1, %xmm0
mulss %xmm5, %xmm1
addss -0x24(%rsp), %xmm15
addss -0x40(%rsp), %xmm12
addss %xmm14, %xmm8
addss %xmm6, %xmm10
addss %xmm11, %xmm3
addss %xmm9, %xmm4
addss %xmm13, %xmm0
addss %xmm2, %xmm1
movss -0x1c(%rsp), %xmm2
movss %xmm2, (%rdi)
movss %xmm7, 0x4(%rdi)
movss %xmm12, 0x8(%rdi)
addss 0x2c(%rsp), %xmm15
addss 0x30(%rsp), %xmm3
addss 0x34(%rsp), %xmm1
movss -0x14(%rsp), %xmm2
movss %xmm2, 0xc(%rdi)
movss %xmm8, 0x10(%rdi)
movss %xmm4, 0x14(%rdi)
movss -0x10(%rsp), %xmm2
movss %xmm2, 0x18(%rdi)
movss %xmm10, 0x1c(%rdi)
movss %xmm0, 0x20(%rdi)
movss %xmm15, 0x24(%rdi)
movss %xmm3, 0x28(%rdi)
movss %xmm1, 0x2c(%rdi)
retq