user: 下面的汇编指令对应的C源代码是什么:

```asm
<radbg>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x68,%rsp
  mov    %edi,%r15d
  mov    %esi,%r14d
  mov    %esi,0x1c(%rsp)
  mov    %edx,%r12d
  mov    %ecx,0x4c(%rsp)
  mov    %r8,%rbx
  mov    %r9,%rbp
  pxor   %xmm0,%xmm0
  cvtsi2ss %esi,%xmm0
  movss  D2(%rip),%xmm1
  divss  %xmm0,%xmm1
  movd   %xmm1,%r13d
  movaps %xmm1,%xmm0
  call   <cos@plt>
  movss  %xmm0,0x28(%rsp)
  movd   %r13d,%xmm0
  call   <sin@plt>
  movaps %xmm0,%xmm3
  lea    -0x1(%r15),%edx
  mov    %edx,%eax
  shr    $0x1f,%eax
  add    %edx,%eax
  sar    %eax
  mov    %eax,0x54(%rsp)
  lea    0x1(%r14),%edx
  mov    %edx,%eax
  shr    $0x1f,%eax
  add    %edx,%eax
  sar    %eax
  mov    %eax,0x18(%rsp)
  cmp    %r12d,%r15d
  jge    L11
  test   %r15d,%r15d
  jle    L336
  mov    %rbx,%r10
  mov    %rbp,%r9
  imul   %r15d,%r14d
  movslq %r14d,%rsi
  shl    $0x2,%rsi
  movslq %r15d,%rdi
  shl    $0x2,%rdi
  mov    $0x0,%r8d
  jmp    L418
L11:
  test   %r12d,%r12d
  jle    L336
  mov    0x1c(%rsp),%r11d
  imul   %r15d,%r11d
  mov    $0x0,%r10d
  mov    $0x0,%r9d
  mov    $0x0,%r8d
  lea    -0x1(%r15),%edi
  jmp    L918
L61:
  movslq %r9d,%rax
  lea    (%rbx,%rax,4),%rsi
  movslq %r10d,%rax
  lea    0x0(%rbp,%rax,4),%rcx
  mov    $0x0,%eax
L765:
  movss  (%rsi,%rax,4),%xmm0
  movss  %xmm0,(%rcx,%rax,4)
  mov    %rax,%rdx
  add    $0x1,%rax
  cmp    %rdi,%rdx
  jne    L765
L509:
  add    $0x1,%r8d
  add    %r11d,%r9d
  add    %r15d,%r10d
  cmp    %r8d,%r12d
  je     L336
L918:
  test   %r15d,%r15d
  jg     L61
  jmp    L509
L103:
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rcx)
  add    $0x1,%eax
  add    %rsi,%rdx
  add    %rdi,%rcx
  cmp    %eax,%r12d
  jne    L103
L332:
  add    $0x1,%r8d
  add    $0x4,%r10
  add    $0x4,%r9
  cmp    %r8d,%r15d
  je     L336
L418:
  mov    %r9,%rcx
  mov    %r10,%rdx
  mov    $0x0,%eax
  test   %r12d,%r12d
  jg     L103
  jmp    L332
L336:
  mov    0x1c(%rsp),%esi
  cmp    $0x2,%esi
  jle    L344
  lea    -0x1(%rsi),%edi
  imul   %r12d,%edi
  mov    %r12d,%r10d
  imul   %r15d,%r10d
  mov    %r10d,(%rsp)
  lea    (%r15,%r15,1),%r11d
  mov    %r11d,0x8(%rsp)
  movslq %r15d,%rax
  lea    0x0(,%rax,4),%r13
  mov    %esi,%eax
  imul   %r15d,%eax
  cltq
  lea    0x0(,%rax,4),%r14
  mov    %r12d,%r9d
  mov    $0x1,%r8d
  jmp    L426
L220:
  add    $0x1,%r8d
  add    %r12d,%r9d
  sub    %r12d,%edi
  add    (%rsp),%r10d
  add    0x8(%rsp),%r11d
  cmp    %r8d,0x18(%rsp)
  jle    L576
L426:
  test   %r12d,%r12d
  jle    L220
  movslq %r10d,%rax
  lea    0x0(%rbp,%rax,4),%rdx
  movslq %r11d,%rax
  lea    (%rbx,%rax,4),%rax
  mov    %edi,%esi
  imul   %r15d,%esi
  movslq %esi,%rsi
  mov    %r9d,%ecx
  imul   %r15d,%ecx
  movslq %ecx,%rcx
  sub    %rcx,%rsi
  mov    $0x0,%ecx
L117:
  movss  -0x4(%rax),%xmm0
  addss  %xmm0,%xmm0
  movss  %xmm0,(%rdx)
  movss  (%rax),%xmm0
  addss  %xmm0,%xmm0
  movss  %xmm0,(%rdx,%rsi,4)
  add    $0x1,%ecx
  add    %r13,%rdx
  add    %r14,%rax
  cmp    %ecx,%r12d
  jne    L117
  jmp    L220
L344:
  cmp    $0x1,%r15d
  jne    L74
  cmpl   $0x2,0x1c(%rsp)
  jle    L365
  jmp    L116
L823:
  mov    0x1c(%rsp),%edi
  cmp    $0x2,%edi
  jle    L4
  lea    (%r15,%r15,1),%ecx
  mov    %ecx,0x30(%rsp)
  mov    %r15d,%esi
  imul   %r12d,%esi
  mov    %esi,0x38(%rsp)
  lea    (%r12,%r12,1),%eax
  neg    %eax
  imul   %r15d,%eax
  mov    %eax,0x40(%rsp)
  lea    -0x2(%rdi),%eax
  imul   %esi,%eax
  mov    %eax,%r14d
  imul   %r15d,%edi
  mov    %edi,(%rsp)
  lea    -0x3(%r15),%eax
  shr    %eax
  mov    %eax,%eax
  add    %rax,%rax
  mov    %rax,0x8(%rsp)
  mov    %esi,0x48(%rsp)
  mov    %ecx,0x2c(%rsp)
  movl   $0x1,0x20(%rsp)
  movslq %r15d,%rax
  sub    $0x3,%rax
  mov    %rax,0x10(%rsp)
  lea    0x8(%rbp),%r13
  jmp    L338
L367:
  lea    (%r9,%r14,1),%esi
  movslq %r8d,%rax
  lea    (%rbx,%rax,4),%rcx
  mov    %r8d,%eax
  sub    %r15d,%eax
  cltq
  add    0x10(%rsp),%rax
  lea    (%rbx,%rax,4),%rdx
  movslq %r9d,%r10
  lea    0x0(%rbp,%r10,4),%rax
  mov    0x8(%rsp),%rdi
  add    %r10,%rdi
  lea    0x0(%r13,%rdi,4),%rdi
  movslq %esi,%rsi
  sub    %r10,%rsi
L239:
  movss  0x4(%rcx),%xmm0
  addss  (%rdx),%xmm0
  movss  %xmm0,0x4(%rax)
  movss  0x4(%rcx),%xmm0
  subss  (%rdx),%xmm0
  movss  %xmm0,0x4(%rax,%rsi,4)
  movss  0x8(%rcx),%xmm0
  subss  0x4(%rdx),%xmm0
  movss  %xmm0,0x8(%rax)
  movss  0x8(%rcx),%xmm0
  addss  0x4(%rdx),%xmm0
  movss  %xmm0,0x8(%rax,%rsi,4)
  add    $0x8,%rcx
  sub    $0x8,%rdx
  add    $0x8,%rax
  cmp    %rdi,%rax
  jne    L239
L596:
  add    $0x1,%r11d
  add    (%rsp),%r8d
  add    %r15d,%r9d
  cmp    %r11d,%r12d
  je     L482
L277:
  cmp    $0x2,%r15d
  jg     L367
  jmp    L596
L482:
  addl   $0x1,0x20(%rsp)
  mov    0x20(%rsp),%eax
  mov    0x30(%rsp),%esi
  add    %esi,0x2c(%rsp)
  mov    0x38(%rsp),%esi
  add    %esi,0x48(%rsp)
  add    0x40(%rsp),%r14d
  cmp    %eax,0x18(%rsp)
  jle    L116
L338:
  mov    0x48(%rsp),%r9d
  mov    0x2c(%rsp),%r8d
  mov    $0x0,%r11d
  test   %r12d,%r12d
  jg     L277
  jmp    L482
L949:
  movss  (%rax),%xmm0
  addss  (%rax,%rdx,4),%xmm0
  movss  %xmm0,(%rax)
  add    $0x4,%rax
  cmp    %rcx,%rax
  jne    L949
L0:
  add    $0x1,%esi
  add    %r8d,%edi
  cmp    %esi,%r9d
  jle    L406
L947:
  mov    %rbp,%rax
  movslq %edi,%rdx
  test   %r8d,%r8d
  jg     L949
  jmp    L0
L406:
  mov    %r12d,%r10d
  imul   %r15d,%r10d
  mov    0x50(%rsp),%edi
  imul   %r10d,%edi
  movslq %r15d,%rsi
  shl    $0x2,%rsi
  mov    %r10d,%r9d
  mov    $0x1,%r8d
  mov    0x18(%rsp),%ecx
L735:
  test   %r12d,%r12d
  jle    L969
  movslq %r9d,%rdx
  shl    $0x2,%rdx
  movslq %edi,%rax
  shl    $0x2,%rax
  mov    $0x0,%r11d
L764:
  movss  (%rbx,%rdx,1),%xmm0
  subss  (%rbx,%rax,1),%xmm0
  movss  %xmm0,0x0(%rbp,%rdx,1)
  movss  (%rbx,%rdx,1),%xmm0
  addss  (%rbx,%rax,1),%xmm0
  movss  %xmm0,0x0(%rbp,%rax,1)
  add    $0x1,%r11d
  add    %rsi,%rdx
  add    %rsi,%rax
  cmp    %r11d,%r12d
  jne    L764
L969:
  add    $0x1,%r8d
  add    %r10d,%r9d
  sub    %r10d,%edi
  cmp    %r8d,%ecx
  jg     L735
  cmp    $0x1,%r15d
  je     L365
  cmp    %r12d,0x54(%rsp)
  jl     L34
  mov    0x1c(%rsp),%esi
  cmp    $0x2,%esi
  jle    L4
  mov    %r15d,%edi
  imul   %r12d,%edi
  mov    %edi,0x10(%rsp)
  lea    (%r12,%r12,1),%eax
  neg    %eax
  imul   %r15d,%eax
  mov    %eax,0x20(%rsp)
  lea    -0x2(%rsi),%eax
  imul   %edi,%eax
  mov    %eax,%r13d
  lea    -0x3(%r15),%eax
  shr    %eax
  mov    %eax,%eax
  lea    (%rax,%rax,1),%r14
  mov    %edi,0x8(%rsp)
  mov    $0x1,%eax
  lea    0x8(%rbp),%r11
  mov    %rbp,(%rsp)
  mov    %eax,%ebp
  jmp    L129
L34:
  cmpl   $0x2,0x1c(%rsp)
  jle    L4
  mov    %r12d,%r14d
  imul   %r15d,%r14d
  mov    %r14d,(%rsp)
  mov    0x1c(%rsp),%eax
  lea    -0x1(%rax),%r11d
  imul   %r14d,%r11d
  movslq %r15d,%rsi
  shl    $0x2,%rsi
  mov    $0x1,%r13d
  lea    -0x3(%r15),%r10d
  and    $0xfffffffe,%r10d
  add    $0x3,%r10d
  jmp    L182
L531:
  movslq %r8d,%r9
  lea    0x0(,%r9,4),%rax
  lea    (%rbx,%rax,1),%rcx
  lea    (%r8,%r13,1),%esi
  movslq %esi,%rsi
  lea    (%rbx,%rsi,4),%rdx
  add    (%rsp),%rax
  lea    (%r9,%r14,1),%rdi
  lea    (%r11,%rdi,4),%rdi
  sub    %r9,%rsi
L88:
  movss  0x4(%rcx),%xmm0
  subss  0x8(%rdx),%xmm0
  movss  %xmm0,0x4(%rax)
  movss  0x4(%rcx),%xmm0
  addss  0x8(%rdx),%xmm0
  movss  %xmm0,0x4(%rax,%rsi,4)
  movss  0x8(%rcx),%xmm0
  addss  0x4(%rdx),%xmm0
  movss  %xmm0,0x8(%rax)
  movss  0x8(%rcx),%xmm0
  subss  0x4(%rdx),%xmm0
  movss  %xmm0,0x8(%rax,%rsi,4)
  add    $0x8,%rcx
  add    $0x8,%rdx
  add    $0x8,%rax
  cmp    %rdi,%rax
  jne    L88
L166:
  add    $0x1,%r10d
  add    %r15d,%r8d
  cmp    %r10d,%r12d
  je     L667
L337:
  cmp    $0x2,%r15d
  jg     L531
  jmp    L166
L667:
  add    $0x1,%ebp
  mov    0x10(%rsp),%edi
  add    %edi,0x8(%rsp)
  add    0x20(%rsp),%r13d
  cmp    %ebp,0x18(%rsp)
  jle    L140
L129:
  mov    0x8(%rsp),%r8d
  mov    $0x0,%r10d
  test   %r12d,%r12d
  jg     L337
  jmp    L667
L140:
  mov    (%rsp),%rbp
L202:
  cmpl   $0x0,0x4c(%rsp)
  jle    L729
L957:
  mov    0x4c(%rsp),%edx
  mov    $0x0,%eax
L1:
  movss  0x0(%rbp,%rax,4),%xmm0
  movss  %xmm0,(%rbx,%rax,4)
  add    $0x1,%rax
  cmp    %rdx,%rax
  jne    L1
L413:
  cmpl   $0x1,0x1c(%rsp)
  jle    L365
L729:
  mov    %r12d,%ecx
  imul   %r15d,%ecx
  mov    %ecx,(%rsp)
  movslq %r15d,%rdi
  shl    $0x2,%rdi
  mov    $0x1,%r11d
  mov    0x1c(%rsp),%esi
  jmp    L987
L589:
  movss  -0x4(%rbx,%rax,1),%xmm0
  subss  (%rbx,%rdx,1),%xmm0
  movss  %xmm0,-0x4(%rbp,%rax,1)
  movss  -0x4(%rbx,%rax,1),%xmm0
  addss  (%rbx,%rdx,1),%xmm0
  movss  %xmm0,-0x4(%rbp,%rdx,1)
  movss  (%rbx,%rax,1),%xmm0
  addss  -0x4(%rbx,%rdx,1),%xmm0
  movss  %xmm0,0x0(%rbp,%rax,1)
  movss  (%rbx,%rax,1),%xmm0
  subss  -0x4(%rbx,%rdx,1),%xmm0
  movss  %xmm0,0x0(%rbp,%rdx,1)
  add    $0x1,%ecx
  add    %rsi,%rax
  add    %rsi,%rdx
  cmp    %ecx,%r12d
  jne    L589
L952:
  add    $0x8,%rdi
  add    $0x2,%r8d
  cmp    %r10d,%r8d
  je     L126
L719:
  lea    (%rdi,%r9,1),%rdx
  mov    %rdi,%rax
  mov    $0x0,%ecx
  test   %r12d,%r12d
  jg     L589
  jmp    L952
L126:
  add    $0x1,%r13d
  mov    (%rsp),%eax
  add    %eax,%r14d
  sub    %eax,%r11d
  cmp    %r13d,0x18(%rsp)
  jle    L202
L182:
  cmp    $0x2,%r15d
  jle    L126
  movslq %r14d,%rax
  lea    0x8(,%rax,4),%rdi
  movslq %r11d,%r9
  sub    %rax,%r9
  shl    $0x2,%r9
  mov    $0x1,%r8d
  jmp    L719
L4:
  cmpl   $0x0,0x4c(%rsp)
  jg     L957
  jmp    L413
L624:
  movss  0x0(%rbp,%rax,1),%xmm0
  movss  %xmm0,(%rbx,%rax,1)
  add    $0x1,%edx
  add    %rdi,%rax
  cmp    %edx,%r12d
  jne    L624
L648:
  lea    0x1(%r11),%eax
  add    (%rsp),%ecx
  cmp    %eax,%esi
  je     L121
  mov    %eax,%r11d
L987:
  movslq %ecx,%rax
  shl    $0x2,%rax
  mov    $0x0,%edx
  test   %r12d,%r12d
  jg     L624
  jmp    L648
L139:
  mov    %eax,%r11d
L444:
  cmp    $0x2,%r15d
  jle    L523
  movslq %r13d,%rax
  mov    0xa0(%rsp),%rsi
  lea    0x4(%rsi,%rax,4),%rdx
  movslq %r14d,%rax
  lea    0x8(,%rax,4),%r8
  mov    $0x1,%r9d
L283:
  test   %r12d,%r12d
  jle    L975
  lea    0x0(%rbp,%r8,1),%rax
  lea    (%rbx,%r8,1),%rcx
  mov    $0x0,%esi
L119:
  movss  (%rdx),%xmm0
  mulss  -0x4(%rax),%xmm0
  movss  0x4(%rdx),%xmm1
  mulss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x4(%rcx)
  movss  (%rdx),%xmm0
  mulss  (%rax),%xmm0
  movss  0x4(%rdx),%xmm1
  mulss  -0x4(%rax),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rcx)
  add    $0x1,%esi
  add    %rdi,%rax
  add    %rdi,%rcx
  cmp    %esi,%r12d
  jne    L119
L975:
  add    $0x8,%rdx
  add    $0x2,%r9d
  add    $0x8,%r8
  cmp    %r9d,%r10d
  jne    L283
L523:
  lea    0x1(%r11),%eax
  add    %r15d,%r13d
  add    (%rsp),%r14d
  cmp    %r11d,0x8(%rsp)
  jne    L139
L365:
  add    $0x68,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L262:
  mov    (%rsp),%r14d
  mov    $0xffffffff,%r13d
  mov    $0x1,%eax
  lea    -0x3(%r15),%r10d
  and    $0xfffffffe,%r10d
  add    $0x3,%r10d
  mov    %r11d,0x8(%rsp)
  mov    %eax,%r11d
  jmp    L444
L907:
  movslq %r8d,%rdx
  lea    0x0(,%rdx,4),%rcx
  lea    0x0(%rbp,%rcx,1),%rax
  add    %rbx,%rcx
  add    %r14,%rdx
  lea    (%r10,%rdx,4),%rsi
  mov    %r9,%rdx
L432:
  movss  0x4(%rdx),%xmm0
  mulss  0x4(%rax),%xmm0
  movss  0x8(%rdx),%xmm1
  mulss  0x8(%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,0x4(%rcx)
  movss  0x4(%rdx),%xmm0
  mulss  0x8(%rax),%xmm0
  movss  0x8(%rdx),%xmm1
  mulss  0x4(%rax),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,0x8(%rcx)
  add    $0x8,%rdx
  add    $0x8,%rax
  add    $0x8,%rcx
  cmp    %rax,%rsi
  jne    L432
L717:
  add    $0x1,%edi
  add    %r15d,%r8d
  cmp    %edi,%r12d
  je     L396
L381:
  cmp    $0x2,%r15d
  jg     L907
  jmp    L717
L396:
  add    $0x1,%r11d
  add    (%rsp),%r13d
  add    0x8(%rsp),%r9
  cmp    %r11d,0x1c(%rsp)
  je     L365
L685:
  mov    %r13d,%r8d
  mov    $0x0,%edi
  test   %r12d,%r12d
  jg     L381
  jmp    L396
L121:
  cmp    %r12d,0x54(%rsp)
  jle    L262
  mov    %r12d,%r13d
  imul   %r15d,%r13d
  mov    %r13d,(%rsp)
  movslq %r15d,%rdx
  lea    0x0(,%rdx,4),%rax
  mov    %rax,0x8(%rsp)
  mov    %r15d,%eax
  neg    %eax
  cltq
  add    %rdx,%rax
  mov    0xa0(%rsp),%rdi
  lea    (%rdi,%rax,4),%r9
  lea    -0x3(%r15),%eax
  shr    %eax
  mov    %eax,%eax
  lea    (%rax,%rax,1),%r14
  mov    $0x1,%r11d
  lea    0x8(%rbp),%r10
  jmp    L685
L576:
  cmp    $0x1,%r15d
  je     L116
L74:
  cmp    %r12d,0x54(%rsp)
  jge    L823
  cmpl   $0x2,0x1c(%rsp)
  jle    L4
  lea    (%r15,%r15,1),%ecx
  mov    %ecx,0x50(%rsp)
  mov    %r12d,%edi
  imul   %r15d,%edi
  mov    %edi,0x38(%rsp)
  mov    0x1c(%rsp),%esi
  lea    -0x1(%rsi),%eax
  imul   %edi,%eax
  mov    %eax,0x8(%rsp)
  imul   %r15d,%esi
  movslq %esi,%r8
  shl    $0x2,%r8
  movslq %r15d,%rax
  mov    %rax,0x40(%rsp)
  lea    0x0(,%rax,4),%r9
  mov    %edi,0x2c(%rsp)
  mov    %r15d,0x20(%rsp)
  mov    %ecx,0x10(%rsp)
  movl   $0x1,(%rsp)
  lea    -0x3(%r15),%eax
  and    $0xfffffffe,%eax
  add    $0x3,%eax
  mov    %r15d,0x48(%rsp)
  mov    %rbp,0x30(%rsp)
  mov    %eax,%r15d
L207:
  cmpl   $0x2,0x48(%rsp)
  jle    L568
  movslq 0x10(%rsp),%rcx
  lea    0x8(%rbx,%rcx,4),%r11
  movslq 0x8(%rsp),%rdx
  mov    0x30(%rsp),%rax
  lea    0x8(%rax,%rdx,4),%r10
  movslq 0x20(%rsp),%rax
  add    %rcx,%rax
  add    0x40(%rsp),%rax
  lea    (%rbx,%rax,2),%r14
  add    %r14,%r14
  movslq 0x2c(%rsp),%r13
  sub    %rdx,%r13
  shl    $0x2,%r13
  mov    $0x1,%ebp
L370:
  test   %r12d,%r12d
  jle    L551
  mov    %r14,%rdx
  sub    %r11,%rdx
  lea    (%r10,%r13,1),%rsi
  mov    %r10,%rcx
  mov    %r11,%rax
  mov    $0x0,%edi
L859:
  movss  -0x4(%rax),%xmm0
  addss  -0x4(%rdx),%xmm0
  movss  %xmm0,-0x4(%rsi)
  movss  -0x4(%rax),%xmm0
  subss  -0x4(%rdx),%xmm0
  movss  %xmm0,-0x4(%rcx)
  movss  (%rax),%xmm0
  subss  (%rdx),%xmm0
  movss  %xmm0,(%rsi)
  movss  (%rax),%xmm0
  addss  (%rdx),%xmm0
  movss  %xmm0,(%rcx)
  add    $0x1,%edi
  add    %r8,%rax
  add    %r8,%rdx
  add    %r9,%rsi
  add    %r9,%rcx
  cmp    %edi,%r12d
  jne    L859
L551:
  add    $0x8,%r11
  add    $0x8,%r10
  add    $0x2,%ebp
  cmp    %r15d,%ebp
  jne    L370
L568:
  addl   $0x1,(%rsp)
  mov    (%rsp),%eax
  mov    0x50(%rsp),%esi
  add    %esi,0x10(%rsp)
  mov    0x38(%rsp),%ecx
  sub    %ecx,0x8(%rsp)
  add    %esi,0x20(%rsp)
  add    %ecx,0x2c(%rsp)
  cmp    %eax,0x18(%rsp)
  jg     L207
  mov    0x48(%rsp),%r15d
  mov    0x30(%rsp),%rbp
L116:
  mov    0x1c(%rsp),%ecx
  lea    -0x1(%rcx),%eax
  mov    %eax,0x50(%rsp)
  mov    0x4c(%rsp),%r8d
  mov    %r8d,%edi
  imul   %eax,%edi
  mov    %edi,%esi
  mov    %edi,0x10(%rsp)
  movslq %r8d,%rax
  lea    0x0(%rbp,%rax,4),%r14
  movslq %esi,%rax
  lea    0x0(%rbp,%rax,4),%r13
  lea    (%r8,%r8,1),%eax
  mov    %eax,0x2c(%rsp)
  lea    -0x2(%rcx),%eax
  imul   %r8d,%eax
  mov    %eax,0x48(%rsp)
  mov    %r8d,0x8(%rsp)
  movss  D11(%rip),%xmm5
  pxor   %xmm4,%xmm4
  movl   $0x1,(%rsp)
  mov    %r8d,%eax
  mov    %rax,0x30(%rsp)
  lea    -0x1(%r8),%eax
  mov    %rax,0x38(%rsp)
  lea    0x4(%rbx),%rax
  mov    %rax,0x40(%rsp)
  mov    %r15d,0x58(%rsp)
  mov    %r12d,0x5c(%rsp)
  mov    %rbx,0x20(%rsp)
  mov    0x18(%rsp),%r12d
L443:
  movaps %xmm5,%xmm0
  movss  0x28(%rsp),%xmm7
  mulss  %xmm7,%xmm5
  movaps %xmm3,%xmm1
  mulss  %xmm4,%xmm1
  subss  %xmm1,%xmm5
  mulss  %xmm7,%xmm4
  mulss  %xmm3,%xmm0
  addss  %xmm0,%xmm4
  test   %r8d,%r8d
  jle    L912
  movslq 0x8(%rsp),%rax
  mov    0x20(%rsp),%rdi
  lea    (%rdi,%rax,4),%rcx
  movslq 0x10(%rsp),%rax
  lea    (%rdi,%rax,4),%rdx
  mov    $0x0,%eax
  mov    0x30(%rsp),%rsi
L827:
  movaps %xmm5,%xmm0
  mulss  (%r14,%rax,4),%xmm0
  addss  0x0(%rbp,%rax,4),%xmm0
  movss  %xmm0,(%rcx,%rax,4)
  movaps %xmm4,%xmm0
  mulss  0x0(%r13,%rax,4),%xmm0
  movss  %xmm0,(%rdx,%rax,4)
  add    $0x1,%rax
  cmp    %rsi,%rax
  jne    L827
L912:
  cmpl   $0x4,0x1c(%rsp)
  jle    L914
  movslq 0x8(%rsp),%rax
  mov    0x20(%rsp),%rbx
  lea    (%rbx,%rax,4),%r15
  mov    0x38(%rsp),%rbx
  lea    (%rbx,%rax,1),%rdx
  mov    0x40(%rsp),%rdi
  lea    (%rdi,%rdx,4),%rdi
  mov    0x48(%rsp),%r11d
  mov    0x2c(%rsp),%r10d
  movaps %xmm5,%xmm2
  movaps %xmm4,%xmm1
  mov    $0x2,%r9d
  movslq 0x10(%rsp),%rcx
  sub    %rax,%rcx
L559:
  movaps %xmm2,%xmm0
  mulss  %xmm5,%xmm2
  movaps %xmm4,%xmm6
  mulss  %xmm1,%xmm6
  subss  %xmm6,%xmm2
  mulss  %xmm5,%xmm1
  mulss  %xmm4,%xmm0
  addss  %xmm0,%xmm1
  test   %r8d,%r8d
  jle    L256
  movslq %r11d,%rbx
  lea    0x0(%rbp,%rbx,4),%rdx
  mov    %r15,%rax
  movslq %r10d,%rsi
  sub    %rbx,%rsi
L834:
  movaps %xmm2,%xmm0
  mulss  (%rdx,%rsi,4),%xmm0
  addss  (%rax),%xmm0
  movss  %xmm0,(%rax)
  movaps %xmm1,%xmm0
  mulss  (%rdx),%xmm0
  addss  (%rax,%rcx,4),%xmm0
  movss  %xmm0,(%rax,%rcx,4)
  add    $0x4,%rax
  add    $0x4,%rdx
  cmp    %rdi,%rax
  jne    L834
L256:
  add    $0x1,%r9d
  add    %r8d,%r10d
  sub    %r8d,%r11d
  cmp    %r9d,%r12d
  jg     L559
L914:
  addl   $0x1,(%rsp)
  mov    (%rsp),%eax
  add    %r8d,0x8(%rsp)
  sub    %r8d,0x10(%rsp)
  cmp    %eax,%r12d
  jg     L443
  mov    0x58(%rsp),%r15d
  mov    0x5c(%rsp),%r12d
  mov    0x20(%rsp),%rbx
  mov    0x4c(%rsp),%r8d
  lea    -0x1(%r8),%eax
  lea    0x4(%rbp,%rax,4),%rcx
  mov    %r8d,%edi
  mov    $0x1,%esi
  mov    0x18(%rsp),%r9d
  jmp    L947
```

tool_calls: name: read_data
arguments: data_label: D2
type: f32
name: read_data
arguments: data_label: D11
type: byte[4]

tool: D2: 6.28318530717959

tool: {"D11": [0x00,0x00,0x80,0x3f]}

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