user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<kern_r8_bgl_n_b>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x128,%rsp
  cmpq   $0x0,0x1c8(%rsp)
  mov    %rdi,0xa0(%rsp)
  mov    %rsi,0xa8(%rsp)
  mov    %rdx,0xb0(%rsp)
  mov    %rcx,0xb8(%rsp)
  mov    %r8,0xc0(%rsp)
  mov    %r9,0xc8(%rsp)
  jle    L20
  mov    0x1c0(%rsp),%rdx
  mov    0x1c8(%rsp),%rax
  movq   $0x0,0xe8(%rsp)
  imul   0x1c0(%rsp),%rax
  movq   $0x0,0xe0(%rsp)
  movq   $0x0,0xd0(%rsp)
  shl    $0x7,%rdx
  mov    %rdx,0xf0(%rsp)
  mov    0x1c0(%rsp),%rdx
  shl    $0x4,%rax
  shl    $0x4,%rdx
  mov    %rdx,0xf8(%rsp)
  mov    0x1c0(%rsp),%rdx
  shl    $0x6,%rdx
  mov    %rdx,0x100(%rsp)
  mov    0x1c0(%rsp),%rdx
  shl    $0x5,%rdx
  mov    %rdx,0x108(%rsp)
  mov    0x1b0(%rsp),%rdx
  add    %rax,%rdx
  add    0x1b8(%rsp),%rax
  mov    %rax,0x118(%rsp)
  mov    0x1b0(%rsp),%rax
  mov    %rdx,0x110(%rsp)
  mov    %rax,0xd8(%rsp)
L31:
  mov    0xe0(%rsp),%rbx
  mov    0x1b0(%rsp),%rdi
  xor    %eax,%eax
  add    %rbx,%rdi
  call   <__lfpd@plt>
  pxor   %xmm6,%xmm6
  mov    0xe8(%rsp),%r14
  mov    0x1b0(%rsp),%rdi
  cvtsi2sd %eax,%xmm6
  xor    %eax,%eax
  add    %r14,%rdi
  movsd  %xmm6,0x10(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm6,%xmm6
  mov    0xd8(%rsp),%rdi
  cvtsi2sd %eax,%xmm6
  xor    %eax,%eax
  movsd  %xmm6,0x18(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm6,%xmm6
  mov    0x110(%rsp),%rdi
  cvtsi2sd %eax,%xmm6
  xor    %eax,%eax
  add    %rbx,%rdi
  movsd  %xmm6,0x8(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm6,%xmm6
  mov    0x1b8(%rsp),%rdi
  cvtsi2sd %eax,%xmm6
  xor    %eax,%eax
  add    %rbx,%rdi
  movsd  %xmm6,0x20(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm6,%xmm6
  mov    0x1b8(%rsp),%rdi
  cvtsi2sd %eax,%xmm6
  xor    %eax,%eax
  add    %r14,%rdi
  movsd  %xmm6,0x28(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm6,%xmm6
  add    0x118(%rsp),%rbx
  cvtsi2sd %eax,%xmm6
  mov    %rbx,%rdi
  xor    %eax,%eax
  movsd  %xmm6,0x30(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm6,%xmm6
  cmpq   $0x0,0x1c0(%rsp)
  cvtsi2sd %eax,%xmm6
  movsd  %xmm6,0x38(%rsp)
  jle    L8
  xor    %ebx,%ebx
  xor    %ebp,%ebp
L4:
  mov    0x198(%rsp),%rdi
  xor    %eax,%eax
  add    %rbx,%rdi
  call   <__lfpd@plt>
  pxor   %xmm2,%xmm2
  mov    0x1a8(%rsp),%rdi
  cvtsi2sd %eax,%xmm2
  xor    %eax,%eax
  add    %rbx,%rdi
  movsd  %xmm2,0x40(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm4,%xmm4
  mov    0x190(%rsp),%rdi
  cvtsi2sd %eax,%xmm4
  xor    %eax,%eax
  add    %rbx,%rdi
  movsd  %xmm4,0x58(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm11,%xmm11
  mov    0x180(%rsp),%rdi
  cvtsi2sd %eax,%xmm11
  xor    %eax,%eax
  add    %rbx,%rdi
  movsd  %xmm11,0x68(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm9,%xmm9
  mov    0x1a0(%rsp),%rdi
  cvtsi2sd %eax,%xmm9
  xor    %eax,%eax
  add    %rbx,%rdi
  movsd  %xmm9,0x50(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm7,%xmm7
  mov    0x178(%rsp),%rdi
  cvtsi2sd %eax,%xmm7
  xor    %eax,%eax
  add    %rbx,%rdi
  movsd  %xmm7,0x48(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm5,%xmm5
  movsd  0x8(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm5
  mov    $0x2,%eax
  movsd  %xmm5,0x60(%rsp)
  call   <__creal@plt>
  movsd  0x40(%rsp),%xmm2
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm3
  mov    %eax,%edi
  mov    $0x4,%eax
  movapd %xmm2,%xmm0
  call   <__fxcxnsma@plt>
  pxor   %xmm8,%xmm8
  mov    0x188(%rsp),%rdi
  cvtsi2sd %eax,%xmm8
  xor    %eax,%eax
  add    %rbx,%rdi
  movsd  %xmm8,0x40(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm6,%xmm6
  movsd  0x8(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm6
  mov    $0x2,%eax
  movsd  %xmm6,0x78(%rsp)
  call   <__creal@plt>
  movsd  0x58(%rsp),%xmm4
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm3
  mov    %eax,%edi
  mov    $0x4,%eax
  movapd %xmm4,%xmm2
  movapd %xmm4,%xmm0
  call   <__fxcxnsma@plt>
  pxor   %xmm10,%xmm10
  mov    0x170(%rsp),%rdi
  cvtsi2sd %eax,%xmm10
  xor    %eax,%eax
  add    %rbx,%rdi
  movsd  %xmm10,0x58(%rsp)
  call   <__lfpd@plt>
  pxor   %xmm4,%xmm4
  movsd  0x8(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm4
  mov    $0x2,%eax
  movsd  %xmm4,0x88(%rsp)
  call   <__creal@plt>
  movsd  0x68(%rsp),%xmm11
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm11,%xmm2
  movapd %xmm11,%xmm0
  call   <__fxcxnsma@plt>
  pxor   %xmm11,%xmm11
  movsd  0x18(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm11
  mov    $0x2,%eax
  movsd  %xmm11,0x70(%rsp)
  call   <__creal@plt>
  movsd  0x50(%rsp),%xmm9
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm9,%xmm2
  movapd %xmm9,%xmm0
  call   <__fxcxnsma@plt>
  pxor   %xmm9,%xmm9
  movsd  0x30(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm9
  mov    $0x2,%eax
  movsd  %xmm9,0x68(%rsp)
  call   <__creal@plt>
  movsd  0x48(%rsp),%xmm7
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm7,%xmm2
  movapd %xmm7,%xmm0
  call   <__fxcxnsma@plt>
  pxor   %xmm12,%xmm12
  movsd  0x8(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm12
  mov    $0x2,%eax
  movsd  %xmm12,0x50(%rsp)
  call   <__cimag@plt>
  movsd  0x40(%rsp),%xmm8
  movsd  0x60(%rsp),%xmm5
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm8,%xmm2
  movapd %xmm5,%xmm0
  movsd  %xmm8,0x48(%rsp)
  movsd  %xmm5,0x40(%rsp)
  call   <__fxcxnpma@plt>
  pxor   %xmm7,%xmm7
  movsd  0x8(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm7
  mov    $0x2,%eax
  movsd  %xmm7,0x60(%rsp)
  call   <__cimag@plt>
  movsd  0x48(%rsp),%xmm8
  movsd  0x40(%rsp),%xmm5
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm8,%xmm2
  movapd %xmm5,%xmm0
  call   <__fxcxnsma@plt>
  pxor   %xmm5,%xmm5
  movsd  0x8(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm5
  mov    $0x2,%eax
  movsd  %xmm5,0x80(%rsp)
  call   <__cimag@plt>
  movsd  0x58(%rsp),%xmm10
  movsd  0x78(%rsp),%xmm6
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm10,%xmm2
  movapd %xmm6,%xmm0
  movsd  %xmm10,0x48(%rsp)
  movsd  %xmm6,0x40(%rsp)
  call   <__fxcxnpma@plt>
  pxor   %xmm8,%xmm8
  movsd  0x8(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm8
  mov    $0x2,%eax
  movsd  %xmm8,0x58(%rsp)
  call   <__cimag@plt>
  movsd  0x40(%rsp),%xmm6
  movsd  0x48(%rsp),%xmm10
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm6,%xmm0
  movapd %xmm10,%xmm2
  call   <__fxcxnsma@plt>
  pxor   %xmm10,%xmm10
  movsd  0x8(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm10
  mov    $0x2,%eax
  movsd  %xmm10,0x78(%rsp)
  call   <__cimag@plt>
  movsd  0x70(%rsp),%xmm11
  pxor   %xmm1,%xmm1
  movsd  0x88(%rsp),%xmm4
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm11,%xmm2
  movapd %xmm4,%xmm0
  movsd  %xmm11,0x48(%rsp)
  movsd  %xmm4,0x40(%rsp)
  call   <__fxcxnpma@plt>
  pxor   %xmm6,%xmm6
  movsd  0x8(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm6
  mov    $0x2,%eax
  movsd  %xmm6,0x70(%rsp)
  call   <__cimag@plt>
  movsd  0x48(%rsp),%xmm11
  movsd  0x40(%rsp),%xmm4
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm11,%xmm2
  movapd %xmm4,%xmm0
  call   <__fxcxnsma@plt>
  pxor   %xmm4,%xmm4
  movsd  0x30(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm4
  mov    $0x2,%eax
  movsd  %xmm4,0x98(%rsp)
  call   <__cimag@plt>
  movsd  0x68(%rsp),%xmm9
  movsd  0x50(%rsp),%xmm12
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm12,%xmm2
  movapd %xmm9,%xmm0
  movsd  %xmm9,0x48(%rsp)
  call   <__fxcpmadd@plt>
  pxor   %xmm11,%xmm11
  movsd  0x30(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm11
  mov    $0x2,%eax
  movsd  %xmm11,0x40(%rsp)
  call   <__cimag@plt>
  movsd  0x50(%rsp),%xmm12
  movsd  0x48(%rsp),%xmm9
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm12,%xmm2
  movapd %xmm9,%xmm0
  call   <__fxcpnmsub@plt>
  pxor   %xmm9,%xmm9
  movsd  0x10(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm9
  mov    $0x2,%eax
  movsd  %xmm9,0x90(%rsp)
  call   <__creal@plt>
  movsd  0x60(%rsp),%xmm7
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm7,%xmm2
  movapd %xmm7,%xmm0
  call   <__fxcxnsma@plt>
  pxor   %xmm7,%xmm7
  movsd  0x28(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm7
  mov    $0x2,%eax
  movsd  %xmm7,0x68(%rsp)
  call   <__creal@plt>
  movsd  0x58(%rsp),%xmm8
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm8,%xmm2
  movapd %xmm8,%xmm0
  call   <__fxcxnsma@plt>
  pxor   %xmm8,%xmm8
  movsd  0x20(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm8
  mov    $0x2,%eax
  movsd  %xmm8,0x60(%rsp)
  call   <__creal@plt>
  pxor   %xmm1,%xmm1
  movsd  0x80(%rsp),%xmm5
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm5,%xmm2
  movapd %xmm5,%xmm0
  call   <__fxcxnsma@plt>
  pxor   %xmm5,%xmm5
  movsd  0x38(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm5
  mov    $0x2,%eax
  movsd  %xmm5,0x58(%rsp)
  call   <__creal@plt>
  movsd  0x78(%rsp),%xmm10
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm10,%xmm2
  movapd %xmm10,%xmm0
  call   <__fxcxnsma@plt>
  pxor   %xmm12,%xmm12
  movsd  0x18(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm12
  mov    $0x2,%eax
  movsd  %xmm12,0x50(%rsp)
  call   <__cimag@plt>
  movsd  0x40(%rsp),%xmm11
  movsd  0x70(%rsp),%xmm6
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm11,%xmm2
  movapd %xmm6,%xmm0
  movsd  %xmm11,0x48(%rsp)
  movsd  %xmm6,0x40(%rsp)
  call   <__fxcxnpma@plt>
  pxor   %xmm10,%xmm10
  movsd  0x18(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm10
  mov    $0x2,%eax
  movsd  %xmm10,0x88(%rsp)
  call   <__cimag@plt>
  movsd  0x48(%rsp),%xmm11
  movsd  0x40(%rsp),%xmm6
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm11,%xmm2
  movapd %xmm6,%xmm0
  call   <__fxcxnsma@plt>
  pxor   %xmm6,%xmm6
  movsd  0x28(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm6
  mov    $0x2,%eax
  movsd  %xmm6,0x80(%rsp)
  call   <__cimag@plt>
  movsd  0x60(%rsp),%xmm8
  movsd  0x68(%rsp),%xmm7
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm8,%xmm2
  movapd %xmm7,%xmm0
  movsd  %xmm8,0x48(%rsp)
  movsd  %xmm7,0x40(%rsp)
  call   <__fxcpmadd@plt>
  pxor   %xmm11,%xmm11
  movsd  0x28(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm11
  mov    $0x2,%eax
  movsd  %xmm11,0x78(%rsp)
  call   <__cimag@plt>
  movsd  0x48(%rsp),%xmm8
  movsd  0x40(%rsp),%xmm7
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm8,%xmm2
  movapd %xmm7,%xmm0
  call   <__fxcpnmsub@plt>
  pxor   %xmm7,%xmm7
  movsd  0x18(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm7
  mov    $0x2,%eax
  movsd  %xmm7,0x70(%rsp)
  call   <__cimag@plt>
  pxor   %xmm1,%xmm1
  movsd  0x90(%rsp),%xmm9
  movsd  0x98(%rsp),%xmm4
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm9,%xmm2
  movapd %xmm4,%xmm0
  movsd  %xmm9,0x48(%rsp)
  movsd  %xmm4,0x40(%rsp)
  call   <__fxcsnmsub@plt>
  pxor   %xmm8,%xmm8
  movsd  0x18(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm8
  mov    $0x2,%eax
  movsd  %xmm8,0x68(%rsp)
  call   <__cimag@plt>
  movsd  0x48(%rsp),%xmm9
  movsd  0x40(%rsp),%xmm4
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm9,%xmm2
  movapd %xmm4,%xmm0
  call   <__fxcsmadd@plt>
  pxor   %xmm4,%xmm4
  movsd  0x38(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm4
  mov    $0x2,%eax
  movsd  %xmm4,0x60(%rsp)
  call   <__cimag@plt>
  movsd  0x50(%rsp),%xmm12
  movsd  0x58(%rsp),%xmm5
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm12,%xmm2
  movapd %xmm5,%xmm0
  movsd  %xmm12,0x48(%rsp)
  movsd  %xmm5,0x40(%rsp)
  call   <__fxcpmadd@plt>
  pxor   %xmm9,%xmm9
  movsd  0x38(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm9
  mov    $0x2,%eax
  movsd  %xmm9,0x58(%rsp)
  call   <__cimag@plt>
  movsd  0x48(%rsp),%xmm12
  movsd  0x40(%rsp),%xmm5
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm12,%xmm2
  movapd %xmm5,%xmm0
  call   <__fxcpnmsub@plt>
  pxor   %xmm5,%xmm5
  movsd  0x10(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm5
  mov    $0x2,%eax
  movsd  %xmm5,0x50(%rsp)
  call   <__cimag@plt>
  movsd  0x78(%rsp),%xmm11
  pxor   %xmm1,%xmm1
  movsd  0x88(%rsp),%xmm10
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm11,%xmm2
  movapd %xmm10,%xmm0
  movsd  %xmm11,0x48(%rsp)
  movsd  %xmm10,0x40(%rsp)
  call   <__fxcxnpma@plt>
  movsd  0x10(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r15d
  mov    $0x2,%eax
  call   <__cimag@plt>
  movsd  0x48(%rsp),%xmm11
  movsd  0x40(%rsp),%xmm10
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm11,%xmm2
  movapd %xmm10,%xmm0
  call   <__fxcxnsma@plt>
  movsd  0x20(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r14d
  mov    $0x2,%eax
  call   <__cimag@plt>
  movsd  0x58(%rsp),%xmm9
  movsd  0x68(%rsp),%xmm8
  pxor   %xmm1,%xmm1
  mov    %eax,%edi
  movapd %xmm1,%xmm3
  mov    $0x4,%eax
  movapd %xmm9,%xmm2
  movapd %xmm8,%xmm0
  movsd  %xmm9,0x48(%rsp)
  movsd  %xmm8,0x40(%rsp)
  call   <__fxcxnpma@plt>
  movsd  0x20(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    %eax,%r13d
  mov    $0x2,%eax
  call   <__cimag@plt>
  movsd  0x48(%rsp),%xmm9
  movsd  0x40(%rsp),%xmm8
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm3
  mov    %eax,%edi
  mov    $0x4,%eax
  movapd %xmm9,%xmm2
  movapd %xmm8,%xmm0
  call   <__fxcxnsma@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r15d,%xmm0
  mov    %eax,%r12d
  mov    0xa0(%rsp),%rax
  lea    (%rax,%rbx,1),%rdi
  mov    $0x2,%eax
  call   <__stfpd@plt>
  movsd  0x10(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    $0x2,%eax
  call   <__cimag@plt>
  movsd  0x70(%rsp),%xmm7
  pxor   %xmm1,%xmm1
  movsd  0x80(%rsp),%xmm6
  movapd %xmm1,%xmm3
  mov    %eax,%edi
  mov    $0x4,%eax
  movapd %xmm7,%xmm2
  movapd %xmm6,%xmm0
  movsd  %xmm7,0x48(%rsp)
  movsd  %xmm6,0x40(%rsp)
  call   <__fxcsnmsub@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r14d,%xmm0
  mov    %eax,%r15d
  mov    0xc0(%rsp),%rax
  lea    (%rax,%rbx,1),%rdi
  mov    $0x2,%eax
  call   <__stfpd@plt>
  movsd  0x10(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    $0x2,%eax
  call   <__cimag@plt>
  movsd  0x48(%rsp),%xmm7
  movsd  0x40(%rsp),%xmm6
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm3
  mov    %eax,%edi
  mov    $0x4,%eax
  movapd %xmm7,%xmm2
  movapd %xmm6,%xmm0
  call   <__fxcsmadd@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r13d,%xmm0
  mov    %eax,%r14d
  mov    0xa8(%rsp),%rax
  lea    (%rax,%rbx,1),%rdi
  mov    $0x2,%eax
  call   <__stfpd@plt>
  movsd  0x20(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    $0x2,%eax
  call   <__cimag@plt>
  movsd  0x50(%rsp),%xmm5
  movsd  0x60(%rsp),%xmm4
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm3
  mov    %eax,%edi
  mov    $0x4,%eax
  movapd %xmm5,%xmm2
  movapd %xmm4,%xmm0
  movsd  %xmm5,0x48(%rsp)
  movsd  %xmm4,0x40(%rsp)
  call   <__fxcsnmsub@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r12d,%xmm0
  mov    %eax,%r13d
  mov    0xc8(%rsp),%rax
  lea    (%rax,%rbx,1),%rdi
  mov    $0x2,%eax
  call   <__stfpd@plt>
  movsd  0x20(%rsp),%xmm0
  pxor   %xmm1,%xmm1
  mov    $0x2,%eax
  call   <__cimag@plt>
  movsd  0x48(%rsp),%xmm5
  movsd  0x40(%rsp),%xmm4
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm3
  mov    %eax,%edi
  mov    $0x4,%eax
  movapd %xmm4,%xmm0
  movapd %xmm5,%xmm2
  call   <__fxcsmadd@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %r15d,%xmm0
  mov    %eax,%r12d
  mov    0xb0(%rsp),%rax
  lea    (%rax,%rbx,1),%rdi
  mov    $0x2,%eax
  call   <__stfpd@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  mov    0x160(%rsp),%rdi
  cvtsi2sd %r14d,%xmm0
  mov    $0x2,%eax
  add    %rbx,%rdi
  call   <__stfpd@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  mov    0xb8(%rsp),%rax
  cvtsi2sd %r13d,%xmm0
  add    $0x1,%rbp
  lea    (%rax,%rbx,1),%rdi
  mov    $0x2,%eax
  call   <__stfpd@plt>
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  mov    0x168(%rsp),%rdi
  cvtsi2sd %r12d,%xmm0
  mov    $0x2,%eax
  add    %rbx,%rdi
  add    $0x10,%rbx
  call   <__stfpd@plt>
  cmp    %rbp,0x1c0(%rsp)
  jne    L4
L8:
  mov    0xf0(%rsp),%rax
  add    %rax,0x170(%rsp)
  add    %rax,0x178(%rsp)
  add    %rax,0x180(%rsp)
  add    %rax,0x188(%rsp)
  add    %rax,0x190(%rsp)
  add    %rax,0x198(%rsp)
  add    %rax,0x1a0(%rsp)
  add    %rax,0x1a8(%rsp)
  mov    0xf8(%rsp),%rax
  add    %rax,0xa0(%rsp)
  add    %rax,0xa8(%rsp)
  add    %rax,0xb0(%rsp)
  add    %rax,0xb8(%rsp)
  add    %rax,0xc0(%rsp)
  add    %rax,0xc8(%rsp)
  add    %rax,0x160(%rsp)
  add    %rax,0x168(%rsp)
  mov    0x100(%rsp),%rsi
  mov    0x108(%rsp),%rcx
  add    %rsi,0xd8(%rsp)
  addq   $0x1,0xd0(%rsp)
  mov    0xd0(%rsp),%rdx
  add    %rax,0xe0(%rsp)
  add    %rcx,0xe8(%rsp)
  cmp    %rdx,0x1c8(%rsp)
  jne    L31
L20:
  add    $0x128,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  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;
  }
}
```