user: Please show me the C implementation that matches the assembly code listed below:

```asm
<csc_rwarp>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x1e0,%rsp
  movsd  %xmm0,-0x1c8(%rbp)
  movsd  %xmm1,-0x1d0(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x0,-0x1b8(%rbp)
  jmp    L58
L77:
  movl   $0x0,-0x1b4(%rbp)
  jmp    L11
L89:
  mov    -0x1b4(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x1b8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x190(%rbp,%rax,8)
  addl   $0x1,-0x1b4(%rbp)
L11:
  cmpl   $0x6,-0x1b4(%rbp)
  jle    L89
  addl   $0x1,-0x1b8(%rbp)
L58:
  cmpl   $0x6,-0x1b8(%rbp)
  jle    L77
  movsd  D179(%rip),%xmm0
  movsd  %xmm0,-0x190(%rbp)
  movsd  D134(%rip),%xmm0
  movsd  %xmm0,-0x188(%rbp)
  movsd  D189(%rip),%xmm0
  movsd  %xmm0,-0x180(%rbp)
  movsd  D131(%rip),%xmm0
  movsd  %xmm0,-0x178(%rbp)
  movsd  D120(%rip),%xmm0
  movsd  %xmm0,-0x170(%rbp)
  movsd  D81(%rip),%xmm0
  movsd  %xmm0,-0x168(%rbp)
  movsd  D1(%rip),%xmm0
  movsd  %xmm0,-0x160(%rbp)
  movsd  D17(%rip),%xmm0
  movsd  %xmm0,-0x158(%rbp)
  movsd  D152(%rip),%xmm0
  movsd  %xmm0,-0x150(%rbp)
  movsd  D214(%rip),%xmm0
  movsd  %xmm0,-0x148(%rbp)
  movsd  D182(%rip),%xmm0
  movsd  %xmm0,-0x140(%rbp)
  movsd  D54(%rip),%xmm0
  movsd  %xmm0,-0x138(%rbp)
  movsd  D88(%rip),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  D217(%rip),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movsd  D23(%rip),%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  D259(%rip),%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  D275(%rip),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  D283(%rip),%xmm0
  movsd  %xmm0,-0x100(%rbp)
  movsd  D29(%rip),%xmm0
  movsd  %xmm0,-0xe8(%rbp)
  movsd  D163(%rip),%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  movsd  D286(%rip),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  D200(%rip),%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  movsd  D44(%rip),%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  D202(%rip),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  D171(%rip),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  D183(%rip),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  D239(%rip),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  D227(%rip),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x1c8(%rbp),%xmm0
  movsd  D209(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1a8(%rbp)
  movsd  -0x1d0(%rbp),%xmm0
  movsd  D209(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1a0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x1b0(%rbp)
  movl   $0x0,-0x1b4(%rbp)
  jmp    L47
L9:
  movl   $0x0,-0x1b8(%rbp)
  jmp    L10
L57:
  mov    -0x1b4(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x1b8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  movsd  -0x190(%rbp,%rax,8),%xmm3
  movsd  %xmm3,-0x1d8(%rbp)
  mov    -0x1b8(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1a8(%rbp),%rax
  mov    %edx,%edi
  movq   %rax,%xmm0
  call   <pow@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  -0x1d8(%rbp),%xmm0
  movsd  %xmm0,-0x1d8(%rbp)
  mov    -0x1b4(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x1a0(%rbp),%rax
  mov    %edx,%edi
  movq   %rax,%xmm0
  call   <pow@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  -0x1d8(%rbp),%xmm0
  movsd  -0x1b0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1b0(%rbp)
  addl   $0x1,-0x1b8(%rbp)
L10:
  mov    $0x7,%eax
  sub    -0x1b4(%rbp),%eax
  cmp    %eax,-0x1b8(%rbp)
  jl     L57
  addl   $0x1,-0x1b4(%rbp)
L47:
  cmpl   $0x6,-0x1b4(%rbp)
  jle    L9
  mov    -0x1a8(%rbp),%rax
  mov    $0x2,%edi
  movq   %rax,%xmm0
  call   <pow@plt>
  mov    $0x1,%edx
  sub    %eax,%edx
  pxor   %xmm0,%xmm0
  cvtsi2sd %edx,%xmm0
  mulsd  -0x1a8(%rbp),%xmm0
  mulsd  -0x1b0(%rbp),%xmm0
  movsd  -0x1a8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x198(%rbp)
  movsd  -0x198(%rbp),%xmm0
  movq   %xmm0,%rax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L28
  call   <__stack_chk_fail@plt>
L28:
  movq   %rax,%xmm0
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: tag: D179
data_type: byte[8]
name: retrieve_data
arguments: tag: D134
data_type: byte[8]
name: retrieve_data
arguments: tag: D189
data_type: f64
name: retrieve_data
arguments: tag: D131
data_type: byte[8]
name: retrieve_data
arguments: tag: D120
data_type: f64
name: retrieve_data
arguments: tag: D81
data_type: byte[8]
name: retrieve_data
arguments: tag: D1
data_type: f64
name: retrieve_data
arguments: tag: D17
data_type: byte[8]
name: retrieve_data
arguments: tag: D152
data_type: byte[8]
name: retrieve_data
arguments: tag: D214
data_type: byte[8]
name: retrieve_data
arguments: tag: D182
data_type: f64
name: retrieve_data
arguments: tag: D54
data_type: byte[8]
name: retrieve_data
arguments: tag: D88
data_type: f64
name: retrieve_data
arguments: tag: D217
data_type: byte[8]
name: retrieve_data
arguments: tag: D23
data_type: f64
name: retrieve_data
arguments: tag: D259
data_type: f64
name: retrieve_data
arguments: tag: D275
data_type: byte[8]
name: retrieve_data
arguments: tag: D283
data_type: f64
name: retrieve_data
arguments: tag: D29
data_type: f64
name: retrieve_data
arguments: tag: D163
data_type: byte[8]
name: retrieve_data
arguments: tag: D286
data_type: f64
name: retrieve_data
arguments: tag: D200
data_type: f64
name: retrieve_data
arguments: tag: D44
data_type: byte[8]
name: retrieve_data
arguments: tag: D202
data_type: f64
name: retrieve_data
arguments: tag: D171
data_type: byte[8]
name: retrieve_data
arguments: tag: D183
data_type: f64
name: retrieve_data
arguments: tag: D239
data_type: byte[8]
name: retrieve_data
arguments: tag: D227
data_type: f64
name: retrieve_data
arguments: tag: D209
data_type: f64

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

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

tool: D189: 0.2705816

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

tool: D120: 0.93412077

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

tool: D1: 0.14381585

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

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

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

tool: D182: 1.50880086

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

tool: D88: 0.52032238

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

tool: D23: 0.48051509

tool: D259: 0.30803317

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

tool: D283: 0.33887446

tool: D29: 0.54852384

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

tool: D286: 0.98938102

tool: D200: 0.08693841

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

tool: D202: 1.71547508

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

tool: D183: 0.25795794

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

tool: D227: 0.02584375

tool: D209: 45

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);
}
```