user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<kern_r8_bgl_n_b>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x1f0,%rsp
  mov    %rdi,-0x1c8(%rbp)
  mov    %rsi,-0x1d0(%rbp)
  mov    %rdx,-0x1d8(%rbp)
  mov    %rcx,-0x1e0(%rbp)
  mov    %r8,-0x1e8(%rbp)
  mov    %r9,-0x1f0(%rbp)
  movq   $0x0,-0x1c0(%rbp)
  jmp    L14
L32:
  mov    -0x1c0(%rbp),%rax
  imul   0x70(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    0x60(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <__lfpd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x1b0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x1a8(%rbp)
  mov    -0x1c0(%rbp),%rax
  imul   0x70(%rbp),%rax
  shl    $0x5,%rax
  mov    %rax,%rdx
  mov    0x60(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <__lfpd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x1a0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x198(%rbp)
  mov    -0x1c0(%rbp),%rax
  imul   0x70(%rbp),%rax
  shl    $0x6,%rax
  mov    %rax,%rdx
  mov    0x60(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <__lfpd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x190(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x188(%rbp)
  mov    -0x1c0(%rbp),%rax
  imul   0x70(%rbp),%rax
  lea    (%rax,%rax,1),%rdx
  mov    0x78(%rbp),%rax
  imul   0x70(%rbp),%rax
  add    %rax,%rax
  add    %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    0x60(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <__lfpd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x180(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x178(%rbp)
  mov    -0x1c0(%rbp),%rax
  imul   0x70(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    0x68(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <__lfpd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x170(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x168(%rbp)
  mov    -0x1c0(%rbp),%rax
  imul   0x70(%rbp),%rax
  shl    $0x5,%rax
  mov    %rax,%rdx
  mov    0x68(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <__lfpd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x160(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x158(%rbp)
  mov    -0x1c0(%rbp),%rax
  imul   0x70(%rbp),%rax
  mov    %rax,%rdx
  mov    0x78(%rbp),%rax
  imul   0x70(%rbp),%rax
  add    %rdx,%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    0x68(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <__lfpd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x150(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x148(%rbp)
  movq   $0x0,-0x1b8(%rbp)
  jmp    L18
L29:
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <__lfpd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x140(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x138(%rbp)
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    0x58(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <__lfpd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x130(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x128(%rbp)
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <__lfpd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    0x30(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <__lfpd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    0x50(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <__lfpd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x100(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xf8(%rbp)
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <__lfpd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0xf0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xe8(%rbp)
  mov    -0x190(%rbp),%rax
  movsd  -0x188(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__creal@plt>
  mov    %eax,%edx
  movsd  -0x140(%rbp),%xmm2
  movsd  -0x138(%rbp),%xmm0
  mov    -0x140(%rbp),%rax
  movsd  -0x138(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x140(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x138(%rbp)
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <__lfpd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  mov    -0x190(%rbp),%rax
  movsd  -0x188(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__creal@plt>
  mov    %eax,%edx
  movsd  -0x130(%rbp),%xmm2
  movsd  -0x128(%rbp),%xmm0
  mov    -0x130(%rbp),%rax
  movsd  -0x128(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x130(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x128(%rbp)
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <__lfpd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xc8(%rbp)
  mov    -0x190(%rbp),%rax
  movsd  -0x188(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__creal@plt>
  mov    %eax,%edx
  movsd  -0x120(%rbp),%xmm2
  movsd  -0x118(%rbp),%xmm0
  mov    -0x120(%rbp),%rax
  movsd  -0x118(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  mov    -0x1a0(%rbp),%rax
  movsd  -0x198(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__creal@plt>
  mov    %eax,%edx
  movsd  -0x110(%rbp),%xmm2
  movsd  -0x108(%rbp),%xmm0
  mov    -0x110(%rbp),%rax
  movsd  -0x108(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  mov    -0x160(%rbp),%rax
  movsd  -0x158(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__creal@plt>
  mov    %eax,%edx
  movsd  -0x100(%rbp),%xmm2
  movsd  -0xf8(%rbp),%xmm0
  mov    -0x100(%rbp),%rax
  movsd  -0xf8(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x100(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xf8(%rbp)
  mov    -0x190(%rbp),%rax
  movsd  -0x188(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x140(%rbp),%xmm2
  movsd  -0x138(%rbp),%xmm0
  mov    -0xf0(%rbp),%rax
  movsd  -0xe8(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnpma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  mov    -0x190(%rbp),%rax
  movsd  -0x188(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x140(%rbp),%xmm2
  movsd  -0x138(%rbp),%xmm0
  mov    -0xf0(%rbp),%rax
  movsd  -0xe8(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  mov    -0x190(%rbp),%rax
  movsd  -0x188(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x130(%rbp),%xmm2
  movsd  -0x128(%rbp),%xmm0
  mov    -0xe0(%rbp),%rax
  movsd  -0xd8(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnpma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  mov    -0x190(%rbp),%rax
  movsd  -0x188(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x130(%rbp),%xmm2
  movsd  -0x128(%rbp),%xmm0
  mov    -0xe0(%rbp),%rax
  movsd  -0xd8(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    -0x190(%rbp),%rax
  movsd  -0x188(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x120(%rbp),%xmm2
  movsd  -0x118(%rbp),%xmm0
  mov    -0xd0(%rbp),%rax
  movsd  -0xc8(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnpma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  mov    -0x190(%rbp),%rax
  movsd  -0x188(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x120(%rbp),%xmm2
  movsd  -0x118(%rbp),%xmm0
  mov    -0xd0(%rbp),%rax
  movsd  -0xc8(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x70(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  mov    -0x160(%rbp),%rax
  movsd  -0x158(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x100(%rbp),%xmm2
  movsd  -0xf8(%rbp),%xmm0
  mov    -0x110(%rbp),%rax
  movsd  -0x108(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x160(%rbp),%rax
  movsd  -0x158(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x100(%rbp),%xmm2
  movsd  -0xf8(%rbp),%xmm0
  mov    -0x110(%rbp),%rax
  movsd  -0x108(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcpnmsub@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x1b0(%rbp),%rax
  movsd  -0x1a8(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__creal@plt>
  mov    %eax,%edx
  movsd  -0xc0(%rbp),%xmm2
  movsd  -0xb8(%rbp),%xmm0
  mov    -0xc0(%rbp),%rax
  movsd  -0xb8(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0x170(%rbp),%rax
  movsd  -0x168(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__creal@plt>
  mov    %eax,%edx
  movsd  -0xa0(%rbp),%xmm2
  movsd  -0x98(%rbp),%xmm0
  mov    -0xa0(%rbp),%rax
  movsd  -0x98(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  mov    -0x180(%rbp),%rax
  movsd  -0x178(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__creal@plt>
  mov    %eax,%edx
  movsd  -0xb0(%rbp),%xmm2
  movsd  -0xa8(%rbp),%xmm0
  mov    -0xb0(%rbp),%rax
  movsd  -0xa8(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x150(%rbp),%rax
  movsd  -0x148(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__creal@plt>
  mov    %eax,%edx
  movsd  -0x90(%rbp),%xmm2
  movsd  -0x88(%rbp),%xmm0
  mov    -0x90(%rbp),%rax
  movsd  -0x88(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x1a0(%rbp),%rax
  movsd  -0x198(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x60(%rbp),%xmm2
  movsd  -0x58(%rbp),%xmm0
  mov    -0x80(%rbp),%rax
  movsd  -0x78(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnpma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xc8(%rbp)
  mov    -0x1a0(%rbp),%rax
  movsd  -0x198(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x60(%rbp),%xmm2
  movsd  -0x58(%rbp),%xmm0
  mov    -0x80(%rbp),%rax
  movsd  -0x78(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  mov    -0x170(%rbp),%rax
  movsd  -0x168(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x30(%rbp),%xmm2
  movsd  -0x28(%rbp),%xmm0
  mov    -0x40(%rbp),%rax
  movsd  -0x38(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0xf0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xe8(%rbp)
  mov    -0x170(%rbp),%rax
  movsd  -0x168(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x30(%rbp),%xmm2
  movsd  -0x28(%rbp),%xmm0
  mov    -0x40(%rbp),%rax
  movsd  -0x38(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcpnmsub@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  mov    -0x1a0(%rbp),%rax
  movsd  -0x198(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x50(%rbp),%xmm2
  movsd  -0x48(%rbp),%xmm0
  mov    -0x70(%rbp),%rax
  movsd  -0x68(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcsnmsub@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  mov    -0x1a0(%rbp),%rax
  movsd  -0x198(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x50(%rbp),%xmm2
  movsd  -0x48(%rbp),%xmm0
  mov    -0x70(%rbp),%rax
  movsd  -0x68(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcsmadd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x100(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xf8(%rbp)
  mov    -0x150(%rbp),%rax
  movsd  -0x148(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x10(%rbp),%xmm2
  movsd  -0x8(%rbp),%xmm0
  mov    -0x20(%rbp),%rax
  movsd  -0x18(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcpmadd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x140(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x138(%rbp)
  mov    -0x150(%rbp),%rax
  movsd  -0x148(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x10(%rbp),%xmm2
  movsd  -0x8(%rbp),%xmm0
  mov    -0x20(%rbp),%rax
  movsd  -0x18(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcpnmsub@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x130(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x128(%rbp)
  mov    -0x1b0(%rbp),%rax
  movsd  -0x1a8(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0xf0(%rbp),%xmm2
  movsd  -0xe8(%rbp),%xmm0
  mov    -0xd0(%rbp),%rax
  movsd  -0xc8(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnpma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  mov    -0x1b0(%rbp),%rax
  movsd  -0x1a8(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0xf0(%rbp),%xmm2
  movsd  -0xe8(%rbp),%xmm0
  mov    -0xd0(%rbp),%rax
  movsd  -0xc8(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0x180(%rbp),%rax
  movsd  -0x178(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x140(%rbp),%xmm2
  movsd  -0x138(%rbp),%xmm0
  mov    -0x120(%rbp),%rax
  movsd  -0x118(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnpma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x70(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  mov    -0x180(%rbp),%rax
  movsd  -0x178(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x140(%rbp),%xmm2
  movsd  -0x138(%rbp),%xmm0
  mov    -0x120(%rbp),%rax
  movsd  -0x118(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x1c8(%rbp),%rax
  add    %rax,%rdx
  mov    -0x80(%rbp),%rax
  movsd  -0x78(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    %rdx,%rdi
  mov    $0x2,%eax
  call   <__stfpd@plt>
  mov    -0x1b0(%rbp),%rax
  movsd  -0x1a8(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0xe0(%rbp),%xmm2
  movsd  -0xd8(%rbp),%xmm0
  mov    -0x110(%rbp),%rax
  movsd  -0x108(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcsnmsub@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x1e8(%rbp),%rax
  add    %rax,%rdx
  mov    -0x40(%rbp),%rax
  movsd  -0x38(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    %rdx,%rdi
  mov    $0x2,%eax
  call   <__stfpd@plt>
  mov    -0x1b0(%rbp),%rax
  movsd  -0x1a8(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0xe0(%rbp),%xmm2
  movsd  -0xd8(%rbp),%xmm0
  mov    -0x110(%rbp),%rax
  movsd  -0x108(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcsmadd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x1d0(%rbp),%rax
  add    %rax,%rdx
  mov    -0x70(%rbp),%rax
  movsd  -0x68(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    %rdx,%rdi
  mov    $0x2,%eax
  call   <__stfpd@plt>
  mov    -0x180(%rbp),%rax
  movsd  -0x178(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x130(%rbp),%xmm2
  movsd  -0x128(%rbp),%xmm0
  mov    -0x100(%rbp),%rax
  movsd  -0xf8(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcsnmsub@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x1f0(%rbp),%rax
  add    %rax,%rdx
  mov    -0x20(%rbp),%rax
  movsd  -0x18(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    %rdx,%rdi
  mov    $0x2,%eax
  call   <__stfpd@plt>
  mov    -0x180(%rbp),%rax
  movsd  -0x178(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <__cimag@plt>
  mov    %eax,%edx
  movsd  -0x130(%rbp),%xmm2
  movsd  -0x128(%rbp),%xmm0
  mov    -0x100(%rbp),%rax
  movsd  -0xf8(%rbp),%xmm1
  mov    %edx,%edi
  movapd %xmm0,%xmm3
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <__fxcsmadd@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x1d8(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%rax
  movsd  -0x58(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    %rdx,%rdi
  mov    $0x2,%eax
  call   <__stfpd@plt>
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    0x10(%rbp),%rax
  add    %rax,%rdx
  mov    -0x30(%rbp),%rax
  movsd  -0x28(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    %rdx,%rdi
  mov    $0x2,%eax
  call   <__stfpd@plt>
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    -0x1e0(%rbp),%rax
  add    %rax,%rdx
  mov    -0x50(%rbp),%rax
  movsd  -0x48(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    %rdx,%rdi
  mov    $0x2,%eax
  call   <__stfpd@plt>
  mov    -0x1b8(%rbp),%rax
  shl    $0x4,%rax
  mov    %rax,%rdx
  mov    0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x10(%rbp),%rax
  movsd  -0x8(%rbp),%xmm1
  movq   %rax,%xmm0
  mov    %rdx,%rdi
  mov    $0x2,%eax
  call   <__stfpd@plt>
  addq   $0x1,-0x1b8(%rbp)
L18:
  mov    -0x1b8(%rbp),%rax
  cmp    0x70(%rbp),%rax
  jl     L29
  mov    0x70(%rbp),%rax
  shl    $0x7,%rax
  add    %rax,0x20(%rbp)
  mov    0x70(%rbp),%rax
  shl    $0x7,%rax
  add    %rax,0x28(%rbp)
  mov    0x70(%rbp),%rax
  shl    $0x7,%rax
  add    %rax,0x30(%rbp)
  mov    0x70(%rbp),%rax
  shl    $0x7,%rax
  add    %rax,0x38(%rbp)
  mov    0x70(%rbp),%rax
  shl    $0x7,%rax
  add    %rax,0x40(%rbp)
  mov    0x70(%rbp),%rax
  shl    $0x7,%rax
  add    %rax,0x48(%rbp)
  mov    0x70(%rbp),%rax
  shl    $0x7,%rax
  add    %rax,0x50(%rbp)
  mov    0x70(%rbp),%rax
  shl    $0x7,%rax
  add    %rax,0x58(%rbp)
  mov    0x70(%rbp),%rax
  shl    $0x4,%rax
  add    %rax,-0x1c8(%rbp)
  mov    0x70(%rbp),%rax
  shl    $0x4,%rax
  add    %rax,-0x1d0(%rbp)
  mov    0x70(%rbp),%rax
  shl    $0x4,%rax
  add    %rax,-0x1d8(%rbp)
  mov    0x70(%rbp),%rax
  shl    $0x4,%rax
  add    %rax,-0x1e0(%rbp)
  mov    0x70(%rbp),%rax
  shl    $0x4,%rax
  add    %rax,-0x1e8(%rbp)
  mov    0x70(%rbp),%rax
  shl    $0x4,%rax
  add    %rax,-0x1f0(%rbp)
  mov    0x70(%rbp),%rax
  shl    $0x4,%rax
  add    %rax,0x10(%rbp)
  mov    0x70(%rbp),%rax
  shl    $0x4,%rax
  add    %rax,0x18(%rbp)
  addq   $0x1,-0x1c0(%rbp)
L14:
  mov    -0x1c0(%rbp),%rax
  cmp    0x78(%rbp),%rax
  jl     L32
  nop
  nop
  leave
  ret
```

assistant: ```c
void kern_r8_bgl_n_b(double *restrict o0, double *restrict o1, double *restrict o2, double *restrict o3, double *restrict o4, double *restrict o5, double *restrict o6, double *restrict o7, double *i0, double *i1, double *i2, double *i3, double *i4, double *i5, double *i6, double *i7, double *wn, double *wn2, long bsize, long blocks) {
  long i, j;
  for (i = 0; i < blocks; i++) {
    double _Complex w1, w2, w3, w4, w5, w6, w7;
    w1 = __lfpd(wn + i * bsize * 2);
    w2 = __lfpd(wn + i * bsize * 4);
    w4 = __lfpd(wn + i * bsize * 8);
    w5 = __lfpd(wn + i * bsize * 2 + 2 * blocks * bsize);
    w3 = __lfpd(wn2 + i * bsize * 2);
    w6 = __lfpd(wn2 + i * bsize * 4);
    w7 = __lfpd(wn2 + i * bsize * 2 + blocks * bsize * 2);
    for (j = 0; j < bsize; j++) {
      double _Complex p0, p1, p2, p3, p4, p5, p6, p7;
      double _Complex q0, q1, q2, q3, q4, q5, q6, q7;
      double _Complex s1, s3, s5, s7;
      p5 = __lfpd(i5 + 2 * j);
      p7 = __lfpd(i7 + 2 * j);
      p4 = __lfpd(i4 + 2 * j);
      p2 = __lfpd(i2 + 2 * j);
      p6 = __lfpd(i6 + 2 * j);
      p1 = __lfpd(i1 + 2 * j);
      p5 = __fxcxnsma(p5, p5, __creal(w4));
      p3 = __lfpd(i3 + 2 * j);
      p7 = __fxcxnsma(p7, p7, __creal(w4));
      p0 = __lfpd(i0 + 2 * j);
      p4 = __fxcxnsma(p4, p4, __creal(w4));
      p2 = __fxcxnsma(p2, p2, __creal(w2));
      p6 = __fxcxnsma(p6, p6, __creal(w6));
      s1 = __fxcxnpma(p1, p5, __cimag(w4));
      s5 = __fxcxnsma(p1, p5, __cimag(w4));
      s3 = __fxcxnpma(p3, p7, __cimag(w4));
      s7 = __fxcxnsma(p3, p7, __cimag(w4));
      q0 = __fxcxnpma(p0, p4, __cimag(w4));
      q4 = __fxcxnsma(p0, p4, __cimag(w4));
      q2 = __fxcpmadd(p2, p6, __cimag(w6));
      q6 = __fxcpnmsub(p2, p6, __cimag(w6));
      q1 = __fxcxnsma(s1, s1, __creal(w1));
      q3 = __fxcxnsma(s3, s3, __creal(w3));
      q5 = __fxcxnsma(s5, s5, __creal(w5));
      q7 = __fxcxnsma(s7, s7, __creal(w7));
      p0 = __fxcxnpma(q0, q2, __cimag(w2));
      p2 = __fxcxnsma(q0, q2, __cimag(w2));
      p1 = __fxcpmadd(q1, q3, __cimag(w3));
      p3 = __fxcpnmsub(q1, q3, __cimag(w3));
      p4 = __fxcsnmsub(q4, q6, __cimag(w2));
      p6 = __fxcsmadd(q4, q6, __cimag(w2));
      p5 = __fxcpmadd(q5, q7, __cimag(w7));
      p7 = __fxcpnmsub(q5, q7, __cimag(w7));
      q0 = __fxcxnpma(p0, p1, __cimag(w1));
      q1 = __fxcxnsma(p0, p1, __cimag(w1));
      q4 = __fxcxnpma(p4, p5, __cimag(w5));
      q5 = __fxcxnsma(p4, p5, __cimag(w5));
      __stfpd(o0 + 2 * j, q0);
      q2 = __fxcsnmsub(p2, p3, __cimag(w1));
      __stfpd(o4 + 2 * j, q1);
      q3 = __fxcsmadd(p2, p3, __cimag(w1));
      __stfpd(o1 + 2 * j, q4);
      q6 = __fxcsnmsub(p6, p7, __cimag(w5));
      __stfpd(o5 + 2 * j, q5);
      q7 = __fxcsmadd(p6, p7, __cimag(w5));
      __stfpd(o2 + 2 * j, q2);
      __stfpd(o6 + 2 * j, q3);
      __stfpd(o3 + 2 * j, q6);
      __stfpd(o7 + 2 * j, q7);
    }
    i0 += 16 * bsize;
    i1 += 16 * bsize;
    i2 += 16 * bsize;
    i3 += 16 * bsize;
    i4 += 16 * bsize;
    i5 += 16 * bsize;
    i6 += 16 * bsize;
    i7 += 16 * bsize;
    o0 += 2 * bsize;
    o1 += 2 * bsize;
    o2 += 2 * bsize;
    o3 += 2 * bsize;
    o4 += 2 * bsize;
    o5 += 2 * bsize;
    o6 += 2 * bsize;
    o7 += 2 * bsize;
  }
}
```