// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/q_shared.c
// Function: R_ConcatTransforms
void R_ConcatTransforms (float in1[3][4], float in2[3][4], float out[3][4])
{
	out[0][0] = in1[0][0] * in2[0][0] + in1[0][1] * in2[1][0] +
				in1[0][2] * in2[2][0];
	out[0][1] = in1[0][0] * in2[0][1] + in1[0][1] * in2[1][1] +
				in1[0][2] * in2[2][1];
	out[0][2] = in1[0][0] * in2[0][2] + in1[0][1] * in2[1][2] +
				in1[0][2] * in2[2][2];
	out[0][3] = in1[0][0] * in2[0][3] + in1[0][1] * in2[1][3] +
				in1[0][2] * in2[2][3] + in1[0][3];
	out[1][0] = in1[1][0] * in2[0][0] + in1[1][1] * in2[1][0] +
				in1[1][2] * in2[2][0];
	out[1][1] = in1[1][0] * in2[0][1] + in1[1][1] * in2[1][1] +
				in1[1][2] * in2[2][1];
	out[1][2] = in1[1][0] * in2[0][2] + in1[1][1] * in2[1][2] +
				in1[1][2] * in2[2][2];
	out[1][3] = in1[1][0] * in2[0][3] + in1[1][1] * in2[1][3] +
				in1[1][2] * in2[2][3] + in1[1][3];
	out[2][0] = in1[2][0] * in2[0][0] + in1[2][1] * in2[1][0] +
				in1[2][2] * in2[2][0];
	out[2][1] = in1[2][0] * in2[0][1] + in1[2][1] * in2[1][1] +
				in1[2][2] * in2[2][1];
	out[2][2] = in1[2][0] * in2[0][2] + in1[2][1] * in2[1][2] +
				in1[2][2] * in2[2][2];
	out[2][3] = in1[2][0] * in2[0][3] + in1[2][1] * in2[1][3] +
				in1[2][2] * in2[2][3] + in1[2][3];
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movss (%rax), %xmm1
movq -0x10(%rbp), %rax
movss (%rax), %xmm2
movq -0x8(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x10(%rax), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x10(%rbp), %rax
movss 0x20(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, (%rax)
movq -0x8(%rbp), %rax
movss (%rax), %xmm1
movq -0x10(%rbp), %rax
movss 0x4(%rax), %xmm2
movq -0x8(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x14(%rax), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x10(%rbp), %rax
movss 0x24(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0x4(%rax)
movq -0x8(%rbp), %rax
movss (%rax), %xmm1
movq -0x10(%rbp), %rax
movss 0x8(%rax), %xmm2
movq -0x8(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x18(%rax), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x10(%rbp), %rax
movss 0x28(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0x8(%rax)
movq -0x8(%rbp), %rax
movss (%rax), %xmm1
movq -0x10(%rbp), %rax
movss 0xc(%rax), %xmm2
movq -0x8(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x1c(%rax), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x10(%rbp), %rax
movss 0x2c(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x8(%rbp), %rax
addss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0xc(%rax)
movq -0x8(%rbp), %rax
movss 0x10(%rax), %xmm1
movq -0x10(%rbp), %rax
movss (%rax), %xmm2
movq -0x8(%rbp), %rax
movss 0x14(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x10(%rax), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x8(%rbp), %rax
movss 0x18(%rax), %xmm0
movq -0x10(%rbp), %rax
movss 0x20(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0x10(%rax)
movq -0x8(%rbp), %rax
movss 0x10(%rax), %xmm1
movq -0x10(%rbp), %rax
movss 0x4(%rax), %xmm2
movq -0x8(%rbp), %rax
movss 0x14(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x14(%rax), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x8(%rbp), %rax
movss 0x18(%rax), %xmm0
movq -0x10(%rbp), %rax
movss 0x24(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0x14(%rax)
movq -0x8(%rbp), %rax
movss 0x10(%rax), %xmm1
movq -0x10(%rbp), %rax
movss 0x8(%rax), %xmm2
movq -0x8(%rbp), %rax
movss 0x14(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x18(%rax), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x8(%rbp), %rax
movss 0x18(%rax), %xmm0
movq -0x10(%rbp), %rax
movss 0x28(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0x18(%rax)
movq -0x8(%rbp), %rax
movss 0x10(%rax), %xmm1
movq -0x10(%rbp), %rax
movss 0xc(%rax), %xmm2
movq -0x8(%rbp), %rax
movss 0x14(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x1c(%rax), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x8(%rbp), %rax
movss 0x18(%rax), %xmm0
movq -0x10(%rbp), %rax
movss 0x2c(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x8(%rbp), %rax
addss 0x1c(%rax), %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0x1c(%rax)
movq -0x8(%rbp), %rax
movss 0x20(%rax), %xmm1
movq -0x10(%rbp), %rax
movss (%rax), %xmm2
movq -0x8(%rbp), %rax
movss 0x24(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x10(%rax), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x8(%rbp), %rax
movss 0x28(%rax), %xmm0
movq -0x10(%rbp), %rax
movss 0x20(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0x20(%rax)
movq -0x8(%rbp), %rax
movss 0x20(%rax), %xmm1
movq -0x10(%rbp), %rax
movss 0x4(%rax), %xmm2
movq -0x8(%rbp), %rax
movss 0x24(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x14(%rax), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x8(%rbp), %rax
movss 0x28(%rax), %xmm0
movq -0x10(%rbp), %rax
movss 0x24(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0x24(%rax)
movq -0x8(%rbp), %rax
movss 0x20(%rax), %xmm1
movq -0x10(%rbp), %rax
movss 0x8(%rax), %xmm2
movq -0x8(%rbp), %rax
movss 0x24(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x18(%rax), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x8(%rbp), %rax
movss 0x28(%rax), %xmm0
movq -0x10(%rbp), %rax
movss 0x28(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0x28(%rax)
movq -0x8(%rbp), %rax
movss 0x20(%rax), %xmm1
movq -0x10(%rbp), %rax
movss 0xc(%rax), %xmm2
movq -0x8(%rbp), %rax
movss 0x24(%rax), %xmm0
movq -0x10(%rbp), %rax
mulss 0x1c(%rax), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movq -0x8(%rbp), %rax
movss 0x28(%rax), %xmm0
movq -0x10(%rbp), %rax
movss 0x2c(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq -0x8(%rbp), %rax
addss 0x2c(%rax), %xmm0
movq -0x18(%rbp), %rax
movss %xmm0, 0x2c(%rax)
popq %rbp
retq
nopl (%rax)