user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<csc_rwarp>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x1c8,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x1b8(%rsp)
  xor    %eax,%eax
  lea    0x30(%rsp),%rax
  mov    %rax,0x28(%rsp)
  lea    0x1b8(%rsp),%rdx
L11:
  movq   $0x0,(%rax)
  movq   $0x0,0x8(%rax)
  movq   $0x0,0x10(%rax)
  movq   $0x0,0x18(%rax)
  movq   $0x0,0x20(%rax)
  movq   $0x0,0x28(%rax)
  movq   $0x0,0x30(%rax)
  add    $0x38,%rax
  cmp    %rdx,%rax
  jne    L11
  mov    D160(%rip),%rax
  mov    %rax,0x30(%rsp)
  mov    D10(%rip),%rax
  mov    %rax,0x38(%rsp)
  mov    D261(%rip),%rax
  mov    %rax,0x40(%rsp)
  mov    D168(%rip),%rax
  mov    %rax,0x48(%rsp)
  mov    D87(%rip),%rax
  mov    %rax,0x50(%rsp)
  mov    D117(%rip),%rax
  mov    %rax,0x58(%rsp)
  mov    D105(%rip),%rax
  mov    %rax,0x60(%rsp)
  mov    D112(%rip),%rax
  mov    %rax,0x68(%rsp)
  mov    D68(%rip),%rax
  mov    %rax,0x70(%rsp)
  mov    D146(%rip),%rax
  mov    %rax,0x78(%rsp)
  mov    D149(%rip),%rax
  mov    %rax,0x80(%rsp)
  mov    D2(%rip),%rax
  mov    %rax,0x88(%rsp)
  mov    D184(%rip),%rax
  mov    %rax,0x90(%rsp)
  mov    D191(%rip),%rax
  mov    %rax,0xa0(%rsp)
  mov    D267(%rip),%rax
  mov    %rax,0xa8(%rsp)
  mov    D240(%rip),%rax
  mov    %rax,0xb0(%rsp)
  mov    D255(%rip),%rax
  mov    %rax,0xb8(%rsp)
  mov    D102(%rip),%rax
  mov    %rax,0xc0(%rsp)
  mov    D142(%rip),%rax
  mov    %rax,0xd8(%rsp)
  mov    D23(%rip),%rax
  mov    %rax,0xe0(%rsp)
  mov    D178(%rip),%rax
  mov    %rax,0xe8(%rsp)
  mov    D181(%rip),%rax
  mov    %rax,0xf0(%rsp)
  mov    D47(%rip),%rax
  mov    %rax,0x110(%rsp)
  mov    D16(%rip),%rax
  mov    %rax,0x118(%rsp)
  mov    D202(%rip),%rax
  mov    %rax,0x120(%rsp)
  mov    D1(%rip),%rax
  mov    %rax,0x148(%rsp)
  mov    D124(%rip),%rax
  mov    %rax,0x150(%rsp)
  mov    D270(%rip),%rax
  mov    %rax,0x180(%rsp)
  movsd  D136(%rip),%xmm2
  divsd  %xmm2,%xmm0
  movsd  %xmm0,0x18(%rsp)
  divsd  %xmm2,%xmm1
  movsd  %xmm1,0x20(%rsp)
  mov    $0xe,%r13d
  mov    $0x0,%r15d
  pxor   %xmm6,%xmm6
  movsd  %xmm6,0x8(%rsp)
  jmp    L18
L31:
  mov    $0xe,%r14d
  sub    %r13d,%r14d
  mov    0x28(%rsp),%rax
  lea    (%rax,%r15,8),%r12
  mov    $0x0,%ebx
L3:
  mov    (%r12),%rbp
  mov    %ebx,%edi
  movsd  0x18(%rsp),%xmm0
  call   <pow@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movq   %rbp,%xmm3
  mulsd  %xmm0,%xmm3
  movsd  %xmm3,0x10(%rsp)
  mov    %r14d,%edi
  movsd  0x20(%rsp),%xmm0
  call   <pow@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  0x10(%rsp),%xmm0
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,0x8(%rsp)
  add    $0x38,%r12
  add    $0x2,%ebx
  cmp    %ebx,%r13d
  jne    L3
L52:
  add    $0x1,%r15
  sub    $0x2,%r13d
  je     L13
L18:
  mov    $0x7,%eax
  sub    %r15d,%eax
  test   %eax,%eax
  jg     L31
  jmp    L52
L13:
  mov    $0x2,%edi
  movsd  0x18(%rsp),%xmm0
  call   <pow@plt>
  mov    %eax,%edx
  mov    $0x1,%eax
  sub    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  0x18(%rsp),%xmm5
  mulsd  %xmm5,%xmm0
  mulsd  0x8(%rsp),%xmm0
  addsd  %xmm5,%xmm0
  mov    0x1b8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L42
  add    $0x1c8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L42:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: data_tag: D160
type: byte[8]
name: unpack_data
arguments: data_tag: D10
type: byte[8]
name: unpack_data
arguments: data_tag: D261
type: f64
name: unpack_data
arguments: data_tag: D168
type: byte[8]
name: unpack_data
arguments: data_tag: D87
type: f64
name: unpack_data
arguments: data_tag: D117
type: byte[8]
name: unpack_data
arguments: data_tag: D105
type: f64
name: unpack_data
arguments: data_tag: D112
type: byte[8]
name: unpack_data
arguments: data_tag: D68
type: byte[8]
name: unpack_data
arguments: data_tag: D146
type: byte[8]
name: unpack_data
arguments: data_tag: D149
type: f64
name: unpack_data
arguments: data_tag: D2
type: byte[8]
name: unpack_data
arguments: data_tag: D184
type: f64
name: unpack_data
arguments: data_tag: D191
type: byte[8]
name: unpack_data
arguments: data_tag: D267
type: f64
name: unpack_data
arguments: data_tag: D240
type: f64
name: unpack_data
arguments: data_tag: D255
type: byte[8]
name: unpack_data
arguments: data_tag: D102
type: f64
name: unpack_data
arguments: data_tag: D142
type: f64
name: unpack_data
arguments: data_tag: D23
type: byte[8]
name: unpack_data
arguments: data_tag: D178
type: f64
name: unpack_data
arguments: data_tag: D181
type: f64
name: unpack_data
arguments: data_tag: D47
type: byte[8]
name: unpack_data
arguments: data_tag: D16
type: f64
name: unpack_data
arguments: data_tag: D202
type: byte[8]
name: unpack_data
arguments: data_tag: D1
type: f64
name: unpack_data
arguments: data_tag: D124
type: byte[8]
name: unpack_data
arguments: data_tag: D270
type: f64
name: unpack_data
arguments: data_tag: D136
type: f64

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

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

tool: D261: 0.2705816

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

tool: D87: 0.93412077

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

tool: D105: 0.14381585

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

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

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

tool: D149: 1.50880086

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

tool: D184: 0.52032238

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

tool: D267: 0.48051509

tool: D240: 0.30803317

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

tool: D102: 0.33887446

tool: D142: 0.54852384

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

tool: D178: 0.98938102

tool: D181: 0.08693841

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

tool: D16: 1.71547508

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

tool: D1: 0.25795794

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

tool: D270: 0.02584375

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