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

```asm
<radfg>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xb0,%rsp
  mov    %edi,-0x94(%rbp)
  mov    %esi,-0x98(%rbp)
  mov    %edx,-0x9c(%rbp)
  mov    %ecx,-0xa0(%rbp)
  mov    %r8,-0xa8(%rbp)
  mov    %r9,-0xb0(%rbp)
  movsd  D19(%rip),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sdl -0x98(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0x38(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x30(%rbp)
  mov    -0x38(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x28(%rbp)
  mov    -0x98(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,-0x70(%rbp)
  mov    -0x94(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,-0x6c(%rbp)
  cmpl   $0x1,-0x94(%rbp)
  je     L687
  movl   $0x0,-0x78(%rbp)
  jmp    L310
L661:
  mov    -0x78(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rax,%rdx
  mov    -0x78(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    0x20(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x78(%rbp)
L310:
  mov    -0x78(%rbp),%eax
  cmp    -0xa0(%rbp),%eax
  jl     L661
  movl   $0x1,-0x84(%rbp)
  jmp    L103
L229:
  movl   $0x0,-0x80(%rbp)
  jmp    L13
L371:
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rax,%rdx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%ecx
  mov    -0x80(%rbp),%eax
  add    %ecx,%eax
  imul   -0x94(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    0x18(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x80(%rbp)
L13:
  mov    -0x80(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L371
  addl   $0x1,-0x84(%rbp)
L103:
  mov    -0x84(%rbp),%eax
  cmp    -0x98(%rbp),%eax
  jl     L229
  mov    -0x6c(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jg     L747
  mov    -0x94(%rbp),%eax
  neg    %eax
  mov    %eax,-0x74(%rbp)
  movl   $0x1,-0x84(%rbp)
  jmp    L364
L498:
  mov    -0x94(%rbp),%eax
  add    %eax,-0x74(%rbp)
  mov    -0x74(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0x8c(%rbp)
  movl   $0x2,-0x88(%rbp)
  jmp    L238
L239:
  addl   $0x2,-0x8c(%rbp)
  movl   $0x0,-0x80(%rbp)
  jmp    L64
L481:
  mov    -0x8c(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x8c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8c(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x8c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x80(%rbp)
L64:
  mov    -0x80(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L481
  addl   $0x2,-0x88(%rbp)
L238:
  mov    -0x88(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L239
  addl   $0x1,-0x84(%rbp)
L364:
  mov    -0x84(%rbp),%eax
  cmp    -0x98(%rbp),%eax
  jl     L498
  jmp    L526
L747:
  mov    -0x94(%rbp),%eax
  neg    %eax
  mov    %eax,-0x74(%rbp)
  movl   $0x1,-0x84(%rbp)
  jmp    L659
L176:
  mov    -0x94(%rbp),%eax
  add    %eax,-0x74(%rbp)
  movl   $0x0,-0x80(%rbp)
  jmp    L439
L240:
  mov    -0x74(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0x8c(%rbp)
  movl   $0x2,-0x88(%rbp)
  jmp    L409
L47:
  addl   $0x2,-0x8c(%rbp)
  mov    -0x8c(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x8c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8c(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x8c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x2,-0x88(%rbp)
L409:
  mov    -0x88(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L47
  addl   $0x1,-0x80(%rbp)
L439:
  mov    -0x80(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L240
  addl   $0x1,-0x84(%rbp)
L659:
  mov    -0x84(%rbp),%eax
  cmp    -0x98(%rbp),%eax
  jl     L176
L526:
  mov    -0x6c(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L138
  movl   $0x1,-0x84(%rbp)
  jmp    L503
L517:
  mov    -0x98(%rbp),%eax
  sub    -0x84(%rbp),%eax
  mov    %eax,-0x68(%rbp)
  movl   $0x0,-0x80(%rbp)
  jmp    L15
L781:
  movl   $0x2,-0x88(%rbp)
  jmp    L826
L330:
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x2,-0x88(%rbp)
L826:
  mov    -0x88(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L330
  addl   $0x1,-0x80(%rbp)
L15:
  mov    -0x80(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L781
  addl   $0x1,-0x84(%rbp)
L503:
  mov    -0x84(%rbp),%eax
  cmp    -0x70(%rbp),%eax
  jl     L517
  jmp    L261
L138:
  movl   $0x1,-0x84(%rbp)
  jmp    L420
L78:
  mov    -0x98(%rbp),%eax
  sub    -0x84(%rbp),%eax
  mov    %eax,-0x68(%rbp)
  movl   $0x2,-0x88(%rbp)
  jmp    L625
L406:
  movl   $0x0,-0x80(%rbp)
  jmp    L284
L48:
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x80(%rbp)
L284:
  mov    -0x80(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L48
  addl   $0x2,-0x88(%rbp)
L625:
  mov    -0x88(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L406
  addl   $0x1,-0x84(%rbp)
L420:
  mov    -0x84(%rbp),%eax
  cmp    -0x70(%rbp),%eax
  jl     L78
  jmp    L261
L687:
  movl   $0x0,-0x78(%rbp)
  jmp    L642
L592:
  mov    -0x78(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x78(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    0x10(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x78(%rbp)
L642:
  mov    -0x78(%rbp),%eax
  cmp    -0xa0(%rbp),%eax
  jl     L592
L261:
  movl   $0x1,-0x84(%rbp)
  jmp    L117
L73:
  mov    -0x98(%rbp),%eax
  sub    -0x84(%rbp),%eax
  mov    %eax,-0x68(%rbp)
  movl   $0x0,-0x80(%rbp)
  jmp    L436
L57:
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x80(%rbp)
L436:
  mov    -0x80(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L57
  addl   $0x1,-0x84(%rbp)
L117:
  mov    -0x84(%rbp),%eax
  cmp    -0x70(%rbp),%eax
  jl     L73
  movsd  D14(%rip),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movl   $0x1,-0x7c(%rbp)
  jmp    L292
L501:
  mov    -0x98(%rbp),%eax
  sub    -0x7c(%rbp),%eax
  mov    %eax,-0x5c(%rbp)
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x48(%rbp),%xmm0
  movsd  -0x28(%rbp),%xmm1
  mulsd  -0x58(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x30(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x58(%rbp),%xmm1
  movsd  -0x28(%rbp),%xmm0
  mulsd  -0x48(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movl   $0x0,-0x78(%rbp)
  jmp    L836
L713:
  mov    -0x78(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x78(%rbp),%edx
  mov    -0xa0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x48(%rbp),%xmm0
  mov    -0x7c(%rbp),%eax
  imul   -0xa0(%rbp),%eax
  mov    %eax,%edx
  mov    -0x78(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x98(%rbp),%eax
  sub    $0x1,%eax
  imul   -0xa0(%rbp),%eax
  mov    %eax,%edx
  mov    -0x78(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x5c(%rbp),%eax
  imul   -0xa0(%rbp),%eax
  mov    %eax,%edx
  mov    -0x78(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x78(%rbp)
L836:
  mov    -0x78(%rbp),%eax
  cmp    -0xa0(%rbp),%eax
  jl     L713
  movsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movl   $0x2,-0x84(%rbp)
  jmp    L465
L621:
  mov    -0x98(%rbp),%eax
  sub    -0x84(%rbp),%eax
  mov    %eax,-0x68(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  movsd  -0x10(%rbp),%xmm1
  mulsd  -0x50(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x18(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x50(%rbp),%xmm1
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movl   $0x0,-0x78(%rbp)
  jmp    L589
L783:
  mov    -0x7c(%rbp),%eax
  imul   -0xa0(%rbp),%eax
  mov    %eax,%edx
  mov    -0x78(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x84(%rbp),%eax
  imul   -0xa0(%rbp),%eax
  mov    %eax,%edx
  mov    -0x78(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  mov    -0x7c(%rbp),%eax
  imul   -0xa0(%rbp),%eax
  mov    %eax,%edx
  mov    -0x78(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x5c(%rbp),%eax
  imul   -0xa0(%rbp),%eax
  mov    %eax,%edx
  mov    -0x78(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x68(%rbp),%eax
  imul   -0xa0(%rbp),%eax
  mov    %eax,%edx
  mov    -0x78(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x50(%rbp),%xmm0
  mov    -0x5c(%rbp),%eax
  imul   -0xa0(%rbp),%eax
  mov    %eax,%edx
  mov    -0x78(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x78(%rbp)
L589:
  mov    -0x78(%rbp),%eax
  cmp    -0xa0(%rbp),%eax
  jl     L783
  addl   $0x1,-0x84(%rbp)
L465:
  mov    -0x84(%rbp),%eax
  cmp    -0x70(%rbp),%eax
  jl     L621
  addl   $0x1,-0x7c(%rbp)
L292:
  mov    -0x7c(%rbp),%eax
  cmp    -0x70(%rbp),%eax
  jl     L501
  movl   $0x1,-0x84(%rbp)
  jmp    L38
L210:
  movl   $0x0,-0x78(%rbp)
  jmp    L301
L743:
  mov    -0x78(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x84(%rbp),%eax
  imul   -0xa0(%rbp),%eax
  mov    %eax,%edx
  mov    -0x78(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x78(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x78(%rbp)
L301:
  mov    -0x78(%rbp),%eax
  cmp    -0xa0(%rbp),%eax
  jl     L743
  addl   $0x1,-0x84(%rbp)
L38:
  mov    -0x84(%rbp),%eax
  cmp    -0x70(%rbp),%eax
  jl     L210
  mov    -0x94(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L118
  movl   $0x0,-0x80(%rbp)
  jmp    L32
L578:
  movl   $0x0,-0x88(%rbp)
  jmp    L367
L822:
  mov    -0x80(%rbp),%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x80(%rbp),%eax
  imul   -0x98(%rbp),%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%ecx
  mov    -0x88(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0xa8(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x88(%rbp)
L367:
  mov    -0x88(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L822
  addl   $0x1,-0x80(%rbp)
L32:
  mov    -0x80(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L578
  jmp    L207
L118:
  movl   $0x0,-0x88(%rbp)
  jmp    L486
L212:
  movl   $0x0,-0x80(%rbp)
  jmp    L637
L737:
  mov    -0x80(%rbp),%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x80(%rbp),%eax
  imul   -0x98(%rbp),%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%ecx
  mov    -0x88(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0xa8(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x80(%rbp)
L637:
  mov    -0x80(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L737
  addl   $0x1,-0x88(%rbp)
L486:
  mov    -0x88(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L212
L207:
  movl   $0x1,-0x84(%rbp)
  jmp    L569
L456:
  mov    -0x98(%rbp),%eax
  sub    -0x84(%rbp),%eax
  mov    %eax,-0x68(%rbp)
  mov    -0x84(%rbp),%eax
  add    %eax,%eax
  mov    %eax,-0x64(%rbp)
  movl   $0x0,-0x80(%rbp)
  jmp    L540
L719:
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x94(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x64(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x80(%rbp),%eax
  imul   -0x98(%rbp),%eax
  add    %esi,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0xa8(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x80(%rbp),%eax
  imul   -0x98(%rbp),%eax
  mov    %eax,%ecx
  mov    -0x64(%rbp),%eax
  add    %ecx,%eax
  imul   -0x94(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0xa8(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x80(%rbp)
L540:
  mov    -0x80(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L719
  addl   $0x1,-0x84(%rbp)
L569:
  mov    -0x84(%rbp),%eax
  cmp    -0x70(%rbp),%eax
  jl     L456
  cmpl   $0x1,-0x94(%rbp)
  je     L69
  mov    -0x6c(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L226
  movl   $0x1,-0x84(%rbp)
  jmp    L716
L564:
  mov    -0x98(%rbp),%eax
  sub    -0x84(%rbp),%eax
  mov    %eax,-0x68(%rbp)
  mov    -0x84(%rbp),%eax
  add    %eax,%eax
  mov    %eax,-0x64(%rbp)
  movl   $0x0,-0x80(%rbp)
  jmp    L438
L203:
  movl   $0x2,-0x88(%rbp)
  jmp    L85
L280:
  mov    -0x94(%rbp),%eax
  sub    -0x88(%rbp),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x80(%rbp),%eax
  imul   -0x98(%rbp),%eax
  mov    %eax,%edx
  mov    -0x64(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x60(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x64(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x80(%rbp),%eax
  imul   -0x98(%rbp),%eax
  add    %ecx,%eax
  imul   -0x94(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x80(%rbp),%eax
  imul   -0x98(%rbp),%eax
  mov    %eax,%edx
  mov    -0x64(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x64(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x80(%rbp),%eax
  imul   -0x98(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x60(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x2,-0x88(%rbp)
L85:
  mov    -0x88(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L280
  addl   $0x1,-0x80(%rbp)
L438:
  mov    -0x80(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L203
  addl   $0x1,-0x84(%rbp)
L716:
  mov    -0x84(%rbp),%eax
  cmp    -0x70(%rbp),%eax
  jl     L564
  jmp    L688
L226:
  movl   $0x1,-0x84(%rbp)
  jmp    L829
L595:
  mov    -0x98(%rbp),%eax
  sub    -0x84(%rbp),%eax
  mov    %eax,-0x68(%rbp)
  mov    -0x84(%rbp),%eax
  add    %eax,%eax
  mov    %eax,-0x64(%rbp)
  movl   $0x2,-0x88(%rbp)
  jmp    L185
L812:
  mov    -0x94(%rbp),%eax
  sub    -0x88(%rbp),%eax
  mov    %eax,-0x60(%rbp)
  movl   $0x0,-0x80(%rbp)
  jmp    L574
L335:
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x80(%rbp),%eax
  imul   -0x98(%rbp),%eax
  mov    %eax,%edx
  mov    -0x64(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x88(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x60(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x64(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x80(%rbp),%eax
  imul   -0x98(%rbp),%eax
  add    %ecx,%eax
  imul   -0x94(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x80(%rbp),%eax
  imul   -0x98(%rbp),%eax
  mov    %eax,%edx
  mov    -0x64(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x68(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x84(%rbp),%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x64(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x80(%rbp),%eax
  imul   -0x98(%rbp),%eax
  add    %edx,%eax
  imul   -0x94(%rbp),%eax
  mov    %eax,%edx
  mov    -0x60(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x80(%rbp)
L574:
  mov    -0x80(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L335
  addl   $0x2,-0x88(%rbp)
L185:
  mov    -0x88(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L812
  addl   $0x1,-0x84(%rbp)
L829:
  mov    -0x84(%rbp),%eax
  cmp    -0x70(%rbp),%eax
  jl     L595
  jmp    L688
L69:
  nop
L688:
  leave
  ret
```

tool_calls: name: unpack_data
arguments: label: D19
type_infered: f64
name: unpack_data
arguments: label: D14
type_infered: byte[8]

tool: D19: 6.28318530717959

tool: {"D14": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x3f]}

assistant: ```c
void radfg(int ido, int ip, int l1, int idl1, double cc[], double c1[], double c2[], double ch[], double ch2[], const double wa[]) {
  static const double twopi = 6.28318530717959;
  int idij, ipph, i, j, k, l, j2, ic, jc, lc, ik, is, nbd;
  double dc2, ai1, ai2, ar1, ar2, ds2, dcp, arg, dsp, ar1h, ar2h;
  arg = twopi / ip;
  dcp = cos(arg);
  dsp = sin(arg);
  ipph = (ip + 1) / 2;
  nbd = (ido - 1) / 2;
  if (ido != 1) {
    for (ik = 0; ik < idl1; ik++)
      ch2[ik] = c2[ik];
    for (j = 1; j < ip; j++)
      for (k = 0; k < l1; k++)
        ch[(k + j * l1) * ido] = c1[(k + j * l1) * ido];
    if (nbd <= l1) {
      is = -ido;
      for (j = 1; j < ip; j++) {
        is += ido;
        idij = is - 1;
        for (i = 2; i < ido; i += 2) {
          idij += 2;
          for (k = 0; k < l1; k++) {
            ch[i - 1 + (k + j * l1) * ido] = wa[idij - 1] * c1[i - 1 + (k + j * l1) * ido] + wa[idij] * c1[i + (k + j * l1) * ido];
            ch[i + (k + j * l1) * ido] = wa[idij - 1] * c1[i + (k + j * l1) * ido] - wa[idij] * c1[i - 1 + (k + j * l1) * ido];
          }
        }
      }
    } else {
      is = -ido;
      for (j = 1; j < ip; j++) {
        is += ido;
        for (k = 0; k < l1; k++) {
          idij = is - 1;
          for (i = 2; i < ido; i += 2) {
            idij += 2;
            ch[i - 1 + (k + j * l1) * ido] = wa[idij - 1] * c1[i - 1 + (k + j * l1) * ido] + wa[idij] * c1[i + (k + j * l1) * ido];
            ch[i + (k + j * l1) * ido] = wa[idij - 1] * c1[i + (k + j * l1) * ido] - wa[idij] * c1[i - 1 + (k + j * l1) * ido];
          }
        }
      }
    }
    if (nbd >= l1) {
      for (j = 1; j < ipph; j++) {
        jc = ip - j;
        for (k = 0; k < l1; k++) {
          for (i = 2; i < ido; i += 2) {
            c1[i - 1 + (k + j * l1) * ido] = ch[i - 1 + (k + j * l1) * ido] + ch[i - 1 + (k + jc * l1) * ido];
            c1[i - 1 + (k + jc * l1) * ido] = ch[i + (k + j * l1) * ido] - ch[i + (k + jc * l1) * ido];
            c1[i + (k + j * l1) * ido] = ch[i + (k + j * l1) * ido] + ch[i + (k + jc * l1) * ido];
            c1[i + (k + jc * l1) * ido] = ch[i - 1 + (k + jc * l1) * ido] - ch[i - 1 + (k + j * l1) * ido];
          }
        }
      }
    } else {
      for (j = 1; j < ipph; j++) {
        jc = ip - j;
        for (i = 2; i < ido; i += 2) {
          for (k = 0; k < l1; k++) {
            c1[i - 1 + (k + j * l1) * ido] = ch[i - 1 + (k + j * l1) * ido] + ch[i - 1 + (k + jc * l1) * ido];
            c1[i - 1 + (k + jc * l1) * ido] = ch[i + (k + j * l1) * ido] - ch[i + (k + jc * l1) * ido];
            c1[i + (k + j * l1) * ido] = ch[i + (k + j * l1) * ido] + ch[i + (k + jc * l1) * ido];
            c1[i + (k + jc * l1) * ido] = ch[i - 1 + (k + jc * l1) * ido] - ch[i - 1 + (k + j * l1) * ido];
          }
        }
      }
    }
  } else {
    for (ik = 0; ik < idl1; ik++)
      c2[ik] = ch2[ik];
  }
  for (j = 1; j < ipph; j++) {
    jc = ip - j;
    for (k = 0; k < l1; k++) {
      c1[(k + j * l1) * ido] = ch[(k + j * l1) * ido] + ch[(k + jc * l1) * ido];
      c1[(k + jc * l1) * ido] = ch[(k + jc * l1) * ido] - ch[(k + j * l1) * ido];
    }
  }
  ar1 = 1;
  ai1 = 0;
  for (l = 1; l < ipph; l++) {
    lc = ip - l;
    ar1h = dcp * ar1 - dsp * ai1;
    ai1 = dcp * ai1 + dsp * ar1;
    ar1 = ar1h;
    for (ik = 0; ik < idl1; ik++) {
      ch2[ik + l * idl1] = c2[ik] + ar1 * c2[ik + idl1];
      ch2[ik + lc * idl1] = ai1 * c2[ik + (ip - 1) * idl1];
    }
    dc2 = ar1;
    ds2 = ai1;
    ar2 = ar1;
    ai2 = ai1;
    for (j = 2; j < ipph; j++) {
      jc = ip - j;
      ar2h = dc2 * ar2 - ds2 * ai2;
      ai2 = dc2 * ai2 + ds2 * ar2;
      ar2 = ar2h;
      for (ik = 0; ik < idl1; ik++) {
        ch2[ik + l * idl1] += ar2 * c2[ik + j * idl1];
        ch2[ik + lc * idl1] += ai2 * c2[ik + jc * idl1];
      }
    }
  }
  for (j = 1; j < ipph; j++)
    for (ik = 0; ik < idl1; ik++)
      ch2[ik] += c2[ik + j * idl1];
  if (ido >= l1) {
    for (k = 0; k < l1; k++) {
      for (i = 0; i < ido; i++) {
        cc[i + k * ip * ido] = ch[i + k * ido];
      }
    }
  } else {
    for (i = 0; i < ido; i++) {
      for (k = 0; k < l1; k++) {
        cc[i + k * ip * ido] = ch[i + k * ido];
      }
    }
  }
  for (j = 1; j < ipph; j++) {
    jc = ip - j;
    j2 = 2 * j;
    for (k = 0; k < l1; k++) {
      cc[ido - 1 + (j2 - 1 + k * ip) * ido] = ch[(k + j * l1) * ido];
      cc[(j2 + k * ip) * ido] = ch[(k + jc * l1) * ido];
    }
  }
  if (ido == 1)
    return;
  if (nbd >= l1) {
    for (j = 1; j < ipph; j++) {
      jc = ip - j;
      j2 = 2 * j;
      for (k = 0; k < l1; k++) {
        for (i = 2; i < ido; i += 2) {
          ic = ido - i;
          cc[i - 1 + (j2 + k * ip) * ido] = ch[i - 1 + (k + j * l1) * ido] + ch[i - 1 + (k + jc * l1) * ido];
          cc[ic - 1 + (j2 - 1 + k * ip) * ido] = ch[i - 1 + (k + j * l1) * ido] - ch[i - 1 + (k + jc * l1) * ido];
          cc[i + (j2 + k * ip) * ido] = ch[i + (k + j * l1) * ido] + ch[i + (k + jc * l1) * ido];
          cc[ic + (j2 - 1 + k * ip) * ido] = ch[i + (k + jc * l1) * ido] - ch[i + (k + j * l1) * ido];
        }
      }
    }
  } else {
    for (j = 1; j < ipph; j++) {
      jc = ip - j;
      j2 = 2 * j;
      for (i = 2; i < ido; i += 2) {
        ic = ido - i;
        for (k = 0; k < l1; k++) {
          cc[i - 1 + (j2 + k * ip) * ido] = ch[i - 1 + (k + j * l1) * ido] + ch[i - 1 + (k + jc * l1) * ido];
          cc[ic - 1 + (j2 - 1 + k * ip) * ido] = ch[i - 1 + (k + j * l1) * ido] - ch[i - 1 + (k + jc * l1) * ido];
          cc[i + (j2 + k * ip) * ido] = ch[i + (k + j * l1) * ido] + ch[i + (k + jc * l1) * ido];
          cc[ic + (j2 - 1 + k * ip) * ido] = ch[i + (k + jc * l1) * ido] - ch[i + (k + j * l1) * ido];
        }
      }
    }
  }
}
```