// File: /workspace/github_cpp_makefile_star2_O3/Pyboon[P]sage/./Eigen/src/Core/products/GeneralMatrixMatrix.h
// Function: void Eigen::internal::generic_product_impl<Eigen::Block<Eigen::Block<Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0>>, -1, -1, false>, -1, -1, false>, Eigen::Block<Eigen::Block<Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0>>, -1, -1, false>, -1, -1, false>, Eigen::DenseShape, Eigen::DenseShape, 8>::subTo<Eigen::Block<Eigen::Block<Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0>>, -1, -1, false>, -1, -1, false>>(Eigen::Block<Eigen::Block<Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0>>, -1, -1, false>, -1, -1, false>&, Eigen::Block<Eigen::Block<Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0>>, -1, -1, false>, -1, -1, false> const&, Eigen::Block<Eigen::Block<Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1, 0, -1, -1>, 0, Eigen::Stride<0, 0>>, -1, -1, false>, -1, -1, false> const&)
static void subTo(Dst& dst, const Lhs& lhs, const Rhs& rhs)
  {
    if((rhs.rows()+dst.rows()+dst.cols())<20 && rhs.rows()>0)
      lazyproduct::subTo(dst, lhs, rhs);
    else
      scaleAndAddTo(dst, lhs, rhs, Scalar(-1));
  }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x248, %rsp            # imm = 0x248
movq %rdi, %rbx
movq 0x8(%rdx), %rax
testq %rax, %rax
jle 0x17c7b
addq 0x8(%rbx), %rax
addq 0x10(%rbx), %rax
cmpq $0x13, %rax
jg 0x17c7b
leaq 0x148(%rsp), %r14
movq %r14, %rdi
callq 0x18302
movq 0x10(%r14), %rax
movq %rax, 0x20(%rsp)
movups (%r14), %xmm0
movaps %xmm0, 0x10(%rsp)
movups 0x18(%r14), %xmm0
movups %xmm0, 0x28(%rsp)
movq 0x28(%r14), %rax
movq %rax, 0x38(%rsp)
movups 0x30(%r14), %xmm0
movaps %xmm0, 0x40(%rsp)
movq 0x40(%r14), %rax
movq %rax, 0x50(%rsp)
movups 0x50(%r14), %xmm0
movaps %xmm0, 0x60(%rsp)
movq 0x60(%r14), %rax
movq %rax, 0x70(%rsp)
movq 0x78(%r14), %rax
movq %rax, 0x88(%rsp)
movups 0x68(%r14), %xmm0
movups %xmm0, 0x78(%rsp)
movq 0x90(%r14), %rax
movq %rax, 0xa0(%rsp)
movups 0x80(%r14), %xmm0
movaps %xmm0, 0x90(%rsp)
movups 0x98(%r14), %xmm0
movups %xmm0, 0xa8(%rsp)
movq 0xa8(%r14), %rax
movq %rax, 0xb8(%rsp)
movups 0xb0(%r14), %xmm0
movaps %xmm0, 0xc0(%rsp)
movq 0xc0(%r14), %rax
movq %rax, 0xd0(%rsp)
movups 0xd0(%r14), %xmm0
movaps %xmm0, 0xe0(%rsp)
movq 0xe0(%r14), %rax
movq %rax, 0xf0(%rsp)
movq 0xf8(%r14), %rax
movq %rax, 0x108(%rsp)
movupd 0xe8(%r14), %xmm0
movupd %xmm0, 0xf8(%rsp)
movq 0x10(%rsp), %rax
movq 0x88(%rsp), %rsi
movq %rax, 0x8(%rsp)
movq %rax, 0x110(%rsp)
movq %rsi, 0x120(%rsp)
movq 0x90(%rsp), %rdx
movq %rdx, 0x128(%rsp)
movq 0x108(%rsp), %rax
movq %rax, (%rsp)
movq %rax, 0x138(%rsp)
movq 0x10(%r14), %r8
movq %r8, 0x140(%rsp)
movq 0x8(%rbx), %rax
cmpq 0x8(%r14), %rax
jne 0x17d76
movq 0x10(%rbx), %rcx
cmpq 0x1d8(%rsp), %rcx
jne 0x17d76
movq (%rbx), %rbp
movq 0x78(%rbx), %r13
testb $0xf, %bpl
je 0x17ca6
testq %rcx, %rcx
jle 0x17c94
shlq $0x4, %r13
xorl %r14d, %r14d
leaq 0x10(%rsp), %r15
movq %r13, (%rsp)
testq %rax, %rax
jle 0x17c6e
movq %rbp, %r13
xorl %r12d, %r12d
movq %r15, %rdi
movq %r12, %rsi
movq %r14, %rdx
callq 0x17f26
movupd (%r13), %xmm2
unpcklpd %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0]
subpd %xmm0, %xmm2
movupd %xmm2, (%r13)
incq %r12
movq 0x8(%rbx), %rax
addq $0x10, %r13
cmpq %rax, %r12
jl 0x17c34
movq 0x10(%rbx), %rcx
movq (%rsp), %r13
incq %r14
addq %r13, %rbp
cmpq %rcx, %r14
jl 0x17c29
jmp 0x17c94
movsd 0x579d(%rip), %xmm0     # 0x1d420
leaq 0x10(%rsp), %rcx
movapd %xmm0, (%rcx)
movq %rbx, %rdi
callq 0x17d96
addq $0x248, %rsp            # imm = 0x248
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testq %rcx, %rcx
jle 0x17c94
movq %rax, %r10
sarq $0x3f, %r10
andq %rax, %r10
shlq $0x4, (%rsp)
shlq $0x4, %rsi
xorl %r11d, %r11d
movsd 0x5747(%rip), %xmm0     # 0x1d410
xorl %ebx, %ebx
cmpq %rax, %rbx
jge 0x17d5e
movq %r11, %r14
imulq %r13, %r14
shlq $0x4, %r14
addq %rbp, %r14
movq %rbx, %r15
shlq $0x4, %r15
addq 0x8(%rsp), %r15
xorpd %xmm1, %xmm1
testq %r8, %r8
jle 0x17d3b
movq %r15, %r12
movq %rdx, %rdi
movq %r8, %r9
movupd (%rdi), %xmm2
movupd (%r12), %xmm3
movapd %xmm3, %xmm4
unpcklpd %xmm3, %xmm4            # xmm4 = xmm4[0],xmm3[0]
mulpd %xmm2, %xmm4
unpckhpd %xmm3, %xmm3            # xmm3 = xmm3[1,1]
shufpd $0x1, %xmm2, %xmm2      # xmm2 = xmm2[1,0]
mulpd %xmm3, %xmm2
xorpd %xmm0, %xmm2
addpd %xmm4, %xmm2
addpd %xmm2, %xmm1
addq $0x10, %rdi
addq %rsi, %r12
decq %r9
jne 0x17d00
movq %rbx, %rdi
shlq $0x4, %rdi
movupd (%r14,%rdi), %xmm2
subpd %xmm1, %xmm2
movupd %xmm2, (%r14,%rdi)
incq %rbx
addq $0x10, %r15
cmpq %rax, %rbx
jne 0x17cee
incq %r11
addq (%rsp), %rdx
movq %r10, %rbx
cmpq %rcx, %r11
jne 0x17ccb
jmp 0x17c94
leaq 0x6522(%rip), %rdi      # 0x1e29f
leaq 0x479f(%rip), %rsi      # 0x1c523
leaq 0xe46d(%rip), %rcx      # 0x261f8
movl $0x2c6, %edx            # imm = 0x2C6
callq 0x31b0
nop