user: Please show me the C implementation that matches the assembly code listed below:

```asm
<bgmul_7>:
  endbr64
  push   %r15
  xor    %eax,%eax
  push   %r14
  push   %r13
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  mov    %rdx,%rbp
  push   %rbx
  mov    %rsi,%rbx
  sub    $0xa8,%rsp
  call   <__lfpd@plt>
  pxor   %xmm5,%xmm5
  lea    0x10(%r12),%rdi
  cvtsi2sd %eax,%xmm5
  xor    %eax,%eax
  movsd  %xmm5,0x78(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm6,%xmm6
  lea    0x20(%r12),%rdi
  cvtsi2sd %eax,%xmm6
  xor    %eax,%eax
  movsd  %xmm6,(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm7,%xmm7
  lea    0x30(%r12),%rdi
  cvtsi2sd %eax,%xmm7
  xor    %eax,%eax
  movsd  %xmm7,0x8(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm5,%xmm5
  lea    0x50(%r12),%rdi
  cvtsi2sd %eax,%xmm5
  xor    %eax,%eax
  movsd  %xmm5,0x10(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm6,%xmm6
  lea    0x60(%r12),%rdi
  cvtsi2sd %eax,%xmm6
  xor    %eax,%eax
  movsd  %xmm6,0x48(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm7,%xmm7
  lea    0x70(%r12),%rdi
  cvtsi2sd %eax,%xmm7
  xor    %eax,%eax
  movsd  %xmm7,0x18(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm5,%xmm5
  lea    0x90(%r12),%rdi
  cvtsi2sd %eax,%xmm5
  xor    %eax,%eax
  movsd  %xmm5,0x20(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm6,%xmm6
  lea    0xa0(%r12),%rdi
  cvtsi2sd %eax,%xmm6
  xor    %eax,%eax
  movsd  %xmm6,0x80(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm7,%xmm7
  lea    0xb0(%r12),%rdi
  cvtsi2sd %eax,%xmm7
  xor    %eax,%eax
  movsd  %xmm7,0x28(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm5,%xmm5
  lea    0xe0(%r12),%rdi
  cvtsi2sd %eax,%xmm5
  xor    %eax,%eax
  movsd  %xmm5,0x30(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm6,%xmm6
  lea    0xf0(%r12),%rdi
  cvtsi2sd %eax,%xmm6
  xor    %eax,%eax
  movsd  %xmm6,0x50(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm7,%xmm7
  lea    0x120(%r12),%rdi
  cvtsi2sd %eax,%xmm7
  xor    %eax,%eax
  movsd  %xmm7,0x38(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm4,%xmm4
  lea    0x130(%r12),%rdi
  cvtsi2sd %eax,%xmm4
  xor    %eax,%eax
  movsd  %xmm4,0x88(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm5,%xmm5
  lea    0x170(%r12),%rdi
  cvtsi2sd %eax,%xmm5
  xor    %eax,%eax
  movsd  %xmm5,0x40(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm6,%xmm6
  lea    0x1b0(%r12),%rdi
  cvtsi2sd %eax,%xmm6
  xor    %eax,%eax
  movsd  %xmm6,0x58(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm7,%xmm7
  cvtsi2sd %eax,%xmm7
  lea    0x40(%rbx),%rax
  mov    %rax,0x98(%rsp)
  movsd  %xmm7,0x90(%rsp)
L4:
  mov    %rbx,%rdi
  xor    %eax,%eax
  call   <__lfpd@plt>
  pxor   %xmm4,%xmm4
  movsd  0x78(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm4
  mov    $0x2,%eax
  movq   %xmm4,%r13
  call   <__cimag@plt>
  movq   %r13,%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x2,%eax
  call   <__fxsmul@plt>
  movsd  (%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x74(%rsp)
  mov    $0x2,%eax
  call   <__creal@plt>
  movq   %r13,%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x2,%eax
  call   <__fxsmul@plt>
  movsd  (%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x70(%rsp)
  mov    $0x2,%eax
  call   <__cimag@plt>
  movq   %r13,%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x2,%eax
  call   <__fxsmul@plt>
  movsd  0x8(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x6c(%rsp)
  mov    $0x2,%eax
  call   <__creal@plt>
  movq   %r13,%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x2,%eax
  call   <__fxsmul@plt>
  movsd  0x8(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r12d
  mov    $0x2,%eax
  call   <__cimag@plt>
  movq   %r13,%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x2,%eax
  call   <__fxsmul@plt>
  movsd  0x10(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r15d
  mov    $0x2,%eax
  call   <__creal@plt>
  movq   %r13,%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x2,%eax
  call   <__fxsmul@plt>
  movsd  0x10(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r14d
  mov    $0x2,%eax
  call   <__cimag@plt>
  movq   %r13,%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x2,%eax
  call   <__fxsmul@plt>
  lea    0x40(%rbx),%rdi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <__lfpd@plt>
  pxor   %xmm2,%xmm2
  movsd  (%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm2
  mov    $0x2,%eax
  movsd  %xmm2,0x60(%rsp)
  call   <__creal@plt>
  mov    0x74(%rsp),%r8d
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %r8d,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x48(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x74(%rsp)
  mov    $0x2,%eax
  call   <__creal@plt>
  mov    0x70(%rsp),%esi
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %esi,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x48(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x70(%rsp)
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    0x6c(%rsp),%ecx
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %ecx,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x18(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x6c(%rsp)
  mov    $0x2,%eax
  call   <__creal@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r12d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x18(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r12d
  mov    $0x2,%eax
  call   <__cimag@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r15d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x20(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r15d
  mov    $0x2,%eax
  call   <__creal@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r14d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x20(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r14d
  mov    $0x2,%eax
  call   <__cimag@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  movsd  0x60(%rsp),%xmm2
  cvtsi2sd %r13d,%xmm0
  movapd %xmm1,%xmm3
  mov    %eax,%edi
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  lea    0x80(%rbx),%rdi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <__lfpd@plt>
  pxor   %xmm2,%xmm2
  movsd  (%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm2
  mov    $0x2,%eax
  movsd  %xmm2,0x60(%rsp)
  call   <__cimag@plt>
  mov    0x74(%rsp),%r8d
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %r8d,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x48(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x74(%rsp)
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    0x70(%rsp),%esi
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %esi,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  pxor   %xmm1,%xmm1
  movsd  0x80(%rsp),%xmm0
  mov    %eax,0x70(%rsp)
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    0x6c(%rsp),%ecx
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %ecx,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x28(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x6c(%rsp)
  mov    $0x2,%eax
  call   <__creal@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r12d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x28(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r12d
  mov    $0x2,%eax
  call   <__cimag@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r15d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x30(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r15d
  mov    $0x2,%eax
  call   <__creal@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r14d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x30(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r14d
  mov    $0x2,%eax
  call   <__cimag@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  movsd  0x60(%rsp),%xmm2
  cvtsi2sd %r13d,%xmm0
  movapd %xmm1,%xmm3
  mov    %eax,%edi
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  lea    0xc0(%rbx),%rdi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <__lfpd@plt>
  pxor   %xmm2,%xmm2
  movsd  0x8(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm2
  mov    $0x2,%eax
  movsd  %xmm2,0x60(%rsp)
  call   <__creal@plt>
  mov    0x74(%rsp),%r8d
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %r8d,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x18(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x74(%rsp)
  mov    $0x2,%eax
  call   <__creal@plt>
  mov    0x70(%rsp),%esi
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %esi,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x28(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x70(%rsp)
  mov    $0x2,%eax
  call   <__creal@plt>
  mov    0x6c(%rsp),%ecx
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %ecx,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x50(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x6c(%rsp)
  mov    $0x2,%eax
  call   <__creal@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r12d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x50(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r12d
  mov    $0x2,%eax
  call   <__cimag@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r15d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x38(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r15d
  mov    $0x2,%eax
  call   <__creal@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r14d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x38(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r14d
  mov    $0x2,%eax
  call   <__cimag@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  movsd  0x60(%rsp),%xmm2
  cvtsi2sd %r13d,%xmm0
  movapd %xmm1,%xmm3
  mov    %eax,%edi
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  lea    0x100(%rbx),%rdi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <__lfpd@plt>
  pxor   %xmm2,%xmm2
  movsd  0x8(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm2
  mov    $0x2,%eax
  movsd  %xmm2,0x60(%rsp)
  call   <__cimag@plt>
  mov    0x74(%rsp),%r8d
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %r8d,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x18(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x74(%rsp)
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    0x70(%rsp),%esi
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %esi,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x28(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x70(%rsp)
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    0x6c(%rsp),%ecx
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %ecx,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x50(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x6c(%rsp)
  mov    $0x2,%eax
  call   <__cimag@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r12d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  pxor   %xmm1,%xmm1
  movsd  0x88(%rsp),%xmm0
  mov    %eax,%r12d
  mov    $0x2,%eax
  call   <__cimag@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r15d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x40(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r15d
  mov    $0x2,%eax
  call   <__creal@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r14d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x40(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r14d
  mov    $0x2,%eax
  call   <__cimag@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  movsd  0x60(%rsp),%xmm2
  cvtsi2sd %r13d,%xmm0
  movapd %xmm1,%xmm3
  mov    %eax,%edi
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  lea    0x140(%rbx),%rdi
  mov    %eax,%r13d
  xor    %eax,%eax
  call   <__lfpd@plt>
  pxor   %xmm2,%xmm2
  movsd  0x10(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm2
  mov    $0x2,%eax
  movsd  %xmm2,0x60(%rsp)
  call   <__creal@plt>
  mov    0x74(%rsp),%r8d
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %r8d,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x20(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x74(%rsp)
  mov    $0x2,%eax
  call   <__creal@plt>
  mov    0x70(%rsp),%esi
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %esi,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x30(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x70(%rsp)
  mov    $0x2,%eax
  call   <__creal@plt>
  mov    0x6c(%rsp),%ecx
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %ecx,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x38(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x6c(%rsp)
  mov    $0x2,%eax
  call   <__creal@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r12d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x40(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r12d
  mov    $0x2,%eax
  call   <__creal@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r15d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x58(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r15d
  mov    $0x2,%eax
  call   <__creal@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r14d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x58(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r14d
  mov    $0x2,%eax
  call   <__cimag@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  movsd  0x60(%rsp),%xmm2
  cvtsi2sd %r13d,%xmm0
  movapd %xmm1,%xmm3
  mov    %eax,%edi
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  lea    0x180(%rbx),%rdi
  mov    %eax,%r13d
  xor    %eax,%eax
  add    $0x10,%rbx
  call   <__lfpd@plt>
  pxor   %xmm2,%xmm2
  movsd  0x10(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm2
  mov    $0x2,%eax
  movsd  %xmm2,0x60(%rsp)
  call   <__cimag@plt>
  mov    0x74(%rsp),%r8d
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %r8d,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x20(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x74(%rsp)
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    0x70(%rsp),%esi
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %esi,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x30(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x70(%rsp)
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    0x6c(%rsp),%ecx
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  mov    $0x4,%eax
  cvtsi2sd %ecx,%xmm0
  movapd %xmm1,%xmm3
  call   <__fxcpmadd@plt>
  movsd  0x38(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,0x6c(%rsp)
  mov    $0x2,%eax
  call   <__cimag@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r12d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x40(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r12d
  mov    $0x2,%eax
  call   <__cimag@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r15d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  movsd  0x58(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r15d
  mov    $0x2,%eax
  call   <__cimag@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r14d,%xmm0
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  pxor   %xmm1,%xmm1
  movsd  0x90(%rsp),%xmm0
  mov    %eax,%r14d
  mov    $0x2,%eax
  call   <__cimag@plt>
  pxor   %xmm0,%xmm0
  movsd  0x60(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  cvtsi2sd %r13d,%xmm0
  movapd %xmm1,%xmm3
  mov    %eax,%edi
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  pxor   %xmm0,%xmm0
  mov    %rbp,%rdi
  pxor   %xmm1,%xmm1
  mov    0x74(%rsp),%r8d
  mov    %eax,%r13d
  mov    $0x2,%eax
  cvtsi2sd %r8d,%xmm0
  call   <__stfpd@plt>
  mov    0x70(%rsp),%esi
  pxor   %xmm0,%xmm0
  lea    0x40(%rbp),%rdi
  pxor   %xmm1,%xmm1
  mov    $0x2,%eax
  cvtsi2sd %esi,%xmm0
  call   <__stfpd@plt>
  mov    0x6c(%rsp),%ecx
  pxor   %xmm0,%xmm0
  lea    0x80(%rbp),%rdi
  pxor   %xmm1,%xmm1
  mov    $0x2,%eax
  cvtsi2sd %ecx,%xmm0
  call   <__stfpd@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  lea    0xc0(%rbp),%rdi
  cvtsi2sd %r12d,%xmm0
  mov    $0x2,%eax
  call   <__stfpd@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  lea    0x100(%rbp),%rdi
  cvtsi2sd %r15d,%xmm0
  mov    $0x2,%eax
  call   <__stfpd@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  lea    0x140(%rbp),%rdi
  cvtsi2sd %r14d,%xmm0
  mov    $0x2,%eax
  call   <__stfpd@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  lea    0x180(%rbp),%rdi
  cvtsi2sd %r13d,%xmm0
  mov    $0x2,%eax
  add    $0x10,%rbp
  call   <__stfpd@plt>
  cmp    %rbx,0x98(%rsp)
  jne    L4
  add    $0xa8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

assistant: ```c
void bgmul_7(double (*restrict Ain)[8], double (*restrict Bin)[8], double (*restrict Cin)[8]) {
  double _Complex C1, C2, C3, C4, C5, C6, C7;
  double _Complex A1_01, A1_23, A1_45, A1_67;
  double _Complex A2_23, A2_45, A2_67;
  double _Complex A3_23, A3_45, A3_67;
  double _Complex A4_45, A4_67;
  double _Complex A5_45, A5_67;
  double _Complex A6_67;
  double _Complex A7_67;
  double _Complex Bkj;
  double(*restrict A)[8] = &Ain[-1];
  double(*restrict B)[8] = &Bin[-1];
  double(*restrict C)[8] = &Cin[-1];
  int j;
  A1_01 = __lfpd(&A[1][0]);
  A1_23 = __lfpd(&A[1][2]);
  A1_45 = __lfpd(&A[1][4]);
  A1_67 = __lfpd(&A[1][6]);
  A2_23 = __lfpd(&A[2][2]);
  A2_45 = __lfpd(&A[2][4]);
  A2_67 = __lfpd(&A[2][6]);
  A3_23 = __lfpd(&A[3][2]);
  A3_45 = __lfpd(&A[3][4]);
  A3_67 = __lfpd(&A[3][6]);
  A4_45 = __lfpd(&A[4][4]);
  A4_67 = __lfpd(&A[4][6]);
  A5_45 = __lfpd(&A[5][4]);
  A5_67 = __lfpd(&A[5][6]);
  A6_67 = __lfpd(&A[6][6]);
  A7_67 = __lfpd(&A[7][6]);
  for (j = 0; j < 7; j += 2) {
    Bkj = __lfpd(&B[1][j]);
    C1 = __fxsmul(Bkj, __cimag(A1_01));
    C2 = __fxsmul(Bkj, __creal(A1_23));
    C3 = __fxsmul(Bkj, __cimag(A1_23));
    C4 = __fxsmul(Bkj, __creal(A1_45));
    C5 = __fxsmul(Bkj, __cimag(A1_45));
    C6 = __fxsmul(Bkj, __creal(A1_67));
    C7 = __fxsmul(Bkj, __cimag(A1_67));
    Bkj = __lfpd(&B[2][j]);
    C1 = __fxcpmadd(C1, Bkj, __creal(A1_23));
    C2 = __fxcpmadd(C2, Bkj, __creal(A2_23));
    C3 = __fxcpmadd(C3, Bkj, __cimag(A2_23));
    C4 = __fxcpmadd(C4, Bkj, __creal(A2_45));
    C5 = __fxcpmadd(C5, Bkj, __cimag(A2_45));
    C6 = __fxcpmadd(C6, Bkj, __creal(A2_67));
    C7 = __fxcpmadd(C7, Bkj, __cimag(A2_67));
    Bkj = __lfpd(&B[3][j]);
    C1 = __fxcpmadd(C1, Bkj, __cimag(A1_23));
    C2 = __fxcpmadd(C2, Bkj, __cimag(A2_23));
    C3 = __fxcpmadd(C3, Bkj, __cimag(A3_23));
    C4 = __fxcpmadd(C4, Bkj, __creal(A3_45));
    C5 = __fxcpmadd(C5, Bkj, __cimag(A3_45));
    C6 = __fxcpmadd(C6, Bkj, __creal(A3_67));
    C7 = __fxcpmadd(C7, Bkj, __cimag(A3_67));
    Bkj = __lfpd(&B[4][j]);
    C1 = __fxcpmadd(C1, Bkj, __creal(A1_45));
    C2 = __fxcpmadd(C2, Bkj, __creal(A2_45));
    C3 = __fxcpmadd(C3, Bkj, __creal(A3_45));
    C4 = __fxcpmadd(C4, Bkj, __creal(A4_45));
    C5 = __fxcpmadd(C5, Bkj, __cimag(A4_45));
    C6 = __fxcpmadd(C6, Bkj, __creal(A4_67));
    C7 = __fxcpmadd(C7, Bkj, __cimag(A4_67));
    Bkj = __lfpd(&B[5][j]);
    C1 = __fxcpmadd(C1, Bkj, __cimag(A1_45));
    C2 = __fxcpmadd(C2, Bkj, __cimag(A2_45));
    C3 = __fxcpmadd(C3, Bkj, __cimag(A3_45));
    C4 = __fxcpmadd(C4, Bkj, __cimag(A4_45));
    C5 = __fxcpmadd(C5, Bkj, __cimag(A5_45));
    C6 = __fxcpmadd(C6, Bkj, __creal(A5_67));
    C7 = __fxcpmadd(C7, Bkj, __cimag(A5_67));
    Bkj = __lfpd(&B[6][j]);
    C1 = __fxcpmadd(C1, Bkj, __creal(A1_67));
    C2 = __fxcpmadd(C2, Bkj, __creal(A2_67));
    C3 = __fxcpmadd(C3, Bkj, __creal(A3_67));
    C4 = __fxcpmadd(C4, Bkj, __creal(A4_67));
    C5 = __fxcpmadd(C5, Bkj, __creal(A5_67));
    C6 = __fxcpmadd(C6, Bkj, __creal(A6_67));
    C7 = __fxcpmadd(C7, Bkj, __cimag(A6_67));
    Bkj = __lfpd(&B[7][j]);
    C1 = __fxcpmadd(C1, Bkj, __cimag(A1_67));
    C2 = __fxcpmadd(C2, Bkj, __cimag(A2_67));
    C3 = __fxcpmadd(C3, Bkj, __cimag(A3_67));
    C4 = __fxcpmadd(C4, Bkj, __cimag(A4_67));
    C5 = __fxcpmadd(C5, Bkj, __cimag(A5_67));
    C6 = __fxcpmadd(C6, Bkj, __cimag(A6_67));
    C7 = __fxcpmadd(C7, Bkj, __cimag(A7_67));
    __stfpd(&C[1][j], C1);
    __stfpd(&C[2][j], C2);
    __stfpd(&C[3][j], C3);
    __stfpd(&C[4][j], C4);
    __stfpd(&C[5][j], C5);
    __stfpd(&C[6][j], C6);
    __stfpd(&C[7][j], C7);
  }
}
```