user: What would the C source look like for the assembly code provided here:

```asm
<csc_rwarp>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x1b8,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x1a8(%rsp)
  xor    %eax,%eax
  lea    0x1a8(%rsp),%rdx
  lea    0x20(%rsp),%rax
  nopl   (%rax)
L32:
  movq   $0x0,(%rax)
  add    $0x38,%rax
  movq   $0x0,-0x30(%rax)
  movq   $0x0,-0x28(%rax)
  movq   $0x0,-0x20(%rax)
  movq   $0x0,-0x18(%rax)
  movq   $0x0,-0x10(%rax)
  movq   $0x0,-0x8(%rax)
  cmp    %rdx,%rax
  jne    L32
  lea    0x58(%rsp),%r13
  mov    D159(%rip),%rax
  mov    $0xe,%ebp
  mov    $0xe,%r14d
  mov    %rax,0x28(%rsp)
  mov    D265(%rip),%rax
  mov    %rax,0x30(%rsp)
  mov    D44(%rip),%rax
  mov    %rax,0x38(%rsp)
  mov    D166(%rip),%rax
  mov    %rax,0x40(%rsp)
  mov    D153(%rip),%rax
  mov    %rax,0x48(%rsp)
  mov    D261(%rip),%rax
  mov    %rax,0x50(%rsp)
  mov    D256(%rip),%rax
  mov    %rax,0x58(%rsp)
  mov    D141(%rip),%rax
  mov    %rax,0x60(%rsp)
  mov    D116(%rip),%rax
  mov    %rax,0x68(%rsp)
  mov    D289(%rip),%rax
  mov    %rax,0x70(%rsp)
  mov    D11(%rip),%rax
  mov    %rax,0x78(%rsp)
  mov    D56(%rip),%rax
  mov    %rax,0x80(%rsp)
  mov    D255(%rip),%rax
  mov    %rax,0x90(%rsp)
  mov    D194(%rip),%rax
  mov    %rax,0x98(%rsp)
  mov    D273(%rip),%rax
  mov    %rax,0xa0(%rsp)
  mov    D270(%rip),%rax
  mov    %rax,0xa8(%rsp)
  mov    D232(%rip),%rax
  movsd  D231(%rip),%xmm2
  mov    %rax,0xb0(%rsp)
  mov    D19(%rip),%rax
  divsd  %xmm2,%xmm1
  mov    %rax,0xc8(%rsp)
  mov    D81(%rip),%rax
  mov    %rax,0xd0(%rsp)
  mov    D36(%rip),%rax
  mov    %rax,0xd8(%rsp)
  mov    D239(%rip),%rax
  mov    %rax,0xe0(%rsp)
  mov    D178(%rip),%rax
  mov    %rax,0x100(%rsp)
  mov    D104(%rip),%rax
  mov    %rax,0x108(%rsp)
  mov    D47(%rip),%rax
  mov    %rax,0x110(%rsp)
  mov    D162(%rip),%rax
  mov    %rax,0x138(%rsp)
  mov    D257(%rip),%rax
  mov    %rax,0x140(%rsp)
  mov    D226(%rip),%rax
  mov    %rax,0x170(%rsp)
  divsd  %xmm2,%xmm0
  movsd  %xmm1,0x18(%rsp)
  movsd  D240(%rip),%xmm1
  movsd  %xmm1,0x8(%rsp)
  pxor   %xmm1,%xmm1
  movsd  %xmm1,(%rsp)
  movsd  %xmm0,0x10(%rsp)
  nop
L37:
  mov    %r14d,%r12d
  mov    %r13,%r15
  xor    %ebx,%ebx
  sub    %ebp,%r12d
  jmp    L31
  nopl   (%rax)
L22:
  movsd  (%r15),%xmm6
  add    $0x38,%r15
  movsd  %xmm6,0x8(%rsp)
L31:
  movsd  0x10(%rsp),%xmm0
  mov    %ebx,%edi
  add    $0x2,%ebx
  call   <pow@plt>
  pxor   %xmm0,%xmm0
  mov    %r12d,%edi
  cvtsi2sd %eax,%xmm0
  mulsd  0x8(%rsp),%xmm0
  movsd  %xmm0,0x8(%rsp)
  movsd  0x18(%rsp),%xmm0
  call   <pow@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  0x8(%rsp),%xmm0
  addsd  (%rsp),%xmm0
  movsd  %xmm0,(%rsp)
  cmp    %ebp,%ebx
  jne    L22
  add    $0x8,%r13
  sub    $0x2,%ebp
  je     L34
  movsd  -0x38(%r13),%xmm7
  movsd  %xmm7,0x8(%rsp)
  jmp    L37
  nopw   0x0(%rax,%rax,1)
L34:
  movsd  0x10(%rsp),%xmm0
  mov    $0x2,%edi
  call   <pow@plt>
  pxor   %xmm0,%xmm0
  movsd  0x10(%rsp),%xmm2
  mov    %eax,%r8d
  mov    $0x1,%eax
  sub    %r8d,%eax
  cvtsi2sd %eax,%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  (%rsp),%xmm0
  addsd  %xmm2,%xmm0
  mov    0x1a8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L52
  add    $0x1b8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L52:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D159
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D265
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D44
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D166
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D153
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D261
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D256
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D141
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D116
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D289
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D11
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D56
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D255
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D194
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D273
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D270
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D232
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D231
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D19
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D81
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D36
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D239
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D178
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D104
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D47
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D162
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D257
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D226
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D240
type_guessed: byte[8]

tool: {"D159": [0x80,0x40,0x4e,0x35,0x06,0xdf,0x9c,0xbf]}

tool: D265: 0.2705816

tool: {"D44": [0xa6,0x26,0x66,0x62,0x5f,0x57,0xe3,0xbf]}

tool: D166: 0.93412077

tool: {"D153": [0x91,0xd3,0x3a,0x1e,0xf1,0x73,0xe4,0xbf]}

tool: D261: 0.14381585

tool: {"D256": [0x46,0xb4,0x3e,0x61,0x60,0x88,0xb3,0xbf]}

tool: {"D141": [0x52,0x41,0xea,0x1b,0x3d,0x23,0x8e,0xbf]}

tool: {"D116": [0xc5,0x7a,0xdd,0x01,0x22,0x2d,0xe2,0xbf]}

tool: D289: 1.50880086

tool: {"D11": [0x1c,0x21,0xa8,0xbf,0x03,0xa8,0xf6,0xbf]}

tool: D56: 0.52032238

tool: {"D255": [0x9a,0x4d,0xd3,0xa9,0x23,0x2e,0xcd,0xbf]}

tool: D194: 0.48051509

tool: D273: 0.30803317

tool: {"D270": [0x46,0xdf,0x51,0x21,0x26,0xfa,0xed,0xbf]}

tool: D232: 0.33887446

tool: D231: 45

tool: D19: 0.54852384

tool: {"D81": [0x1e,0x8b,0x8e,0x60,0xba,0xdb,0xfb,0xbf]}

tool: D36: 0.98938102

tool: D239: 0.08693841

tool: {"D178": [0xd6,0x3f,0xe3,0x1d,0x3b,0x23,0xe4,0xbf]}

tool: D104: 1.71547508

tool: {"D47": [0x8e,0xb3,0x86,0xde,0x24,0x9e,0xea,0xbf]}

tool: D162: 0.25795794

tool: {"D257": [0x71,0x32,0x37,0x00,0x97,0xf7,0xe0,0xbf]}

tool: D226: 0.02584375

tool: {"D240": [0x89,0x63,0xd9,0xa3,0xa2,0x77,0xd1,0xbf]}

assistant: ```c
double csc_rwarp(double x, double y) {
  double P[7][7];
  int i, j;
  double psum;
  double xx, yy;
  double rout;
  for (i = 0; i < 7; i++) {
    for (j = 0; j < 7; j++) {
      P[i][j] = 0.0;
    }
  }
  P[0][0] = -0.27292696;
  P[0][1] = -0.02819452;
  P[0][2] = 0.27058160;
  P[0][3] = -0.60441560;
  P[0][4] = 0.93412077;
  P[0][5] = -0.63915306;
  P[0][6] = 0.14381585;
  P[1][0] = -0.07629969;
  P[1][1] = -0.01471565;
  P[1][2] = -0.56800938;
  P[1][3] = 1.50880086;
  P[1][4] = -1.41601920;
  P[1][5] = 0.52032238;
  P[2][0] = -0.22797056;
  P[2][1] = 0.48051509;
  P[2][2] = 0.30803317;
  P[2][3] = -0.93678576;
  P[2][4] = 0.33887446;
  P[3][0] = 0.54852384;
  P[3][1] = -1.74114454;
  P[3][2] = 0.98938102;
  P[3][3] = 0.08693841;
  P[4][0] = -0.62930065;
  P[4][1] = 1.71547508;
  P[4][2] = -0.83180469;
  P[5][0] = 0.25795794;
  P[5][1] = -0.53022337;
  P[6][0] = 0.02584375;
  xx = x / 45.0;
  yy = y / 45.0;
  psum = 0.0;
  for (j = 0; j < 7; j++) {
    for (i = 0; i < (7 - j); i++) {
      psum = psum + (P[i][j] * pow(xx, 2 * i) * pow(yy, 2 * j));
    }
  }
  rout = xx + (xx * (1 - pow(xx, 2)) * psum);
  return (rout);
}
```