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

```asm
<plot_star>:
  endbr64
  push   %r15
  mov    %rdi,%rax
  lea    D189(%rip),%r10
  lea    D85(%rip),%rdi
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  movsd  %xmm0,-0x10(%rsp)
  test   %esi,%esi
  jle    L102
  mov    %rdx,%rcx
  lea    -0x1(%rsi),%r11d
  movapd %xmm1,%xmm4
  movslq %esi,%r8
  lea    (%rcx,%r8,8),%rbp
  lea    (%r8,%r8,2),%rdx
  movq   %xmm1,%r9
  lea    (%r10,%r8,4),%rbx
  lea    0x5f(%rax),%r8
  movapd %xmm2,%xmm1
  shl    $0x3,%rdx
  sub    %rdi,%r8
  addsd  %xmm2,%xmm1
  unpcklpd %xmm4,%xmm4
  cmp    $0xbe,%r8
  seta   %r8b
  cmp    $0x2,%r11d
  seta   %r11b
  movsd  %xmm1,-0x18(%rsp)
  and    %r11d,%r8d
  lea    (%rdi,%rdx,1),%r11
  cmp    %r11,%rcx
  setae  %r11b
  cmp    %rdi,%rbp
  setbe  %r12b
  or     %r12d,%r11d
  and    %r11d,%r8d
  cmp    %r10,%rbp
  setbe  %r11b
  cmp    %rbx,%rcx
  setae  %bpl
  or     %ebp,%r11d
  test   %r11b,%r8b
  je     L52
  add    %rax,%rdx
  cmp    %r10,%rdx
  setbe  %dl
  cmp    %rbx,%rax
  setae  %r8b
  or     %r8b,%dl
  je     L52
  mov    %esi,%ebp
  movapd %xmm1,%xmm13
  movapd %xmm2,%xmm14
  mov    %rax,%r8
  shr    $0x2,%ebp
  unpcklpd %xmm14,%xmm14
  unpcklpd %xmm13,%xmm13
  mov    %rdi,%rdx
  sub    $0x1,%ebp
  mov    %rcx,%r11
  mov    %r10,%rbx
  movapd D97(%rip),%xmm3
  shl    $0x5,%rbp
  movdqa D50(%rip),%xmm12
  movdqa D209(%rip),%xmm1
  movapd D192(%rip),%xmm11
  lea    0x20(%rcx,%rbp,1),%rbp
  movapd D115(%rip),%xmm10
  movapd D104(%rip),%xmm9
  nop
L84:
  movupd 0x10(%r8),%xmm8
  movupd 0x20(%r8),%xmm7
  add    $0x20,%r11
  add    $0x60,%r8
  movupd -0x30(%r8),%xmm6
  movupd -0x20(%r8),%xmm5
  add    $0x60,%rdx
  add    $0x10,%rbx
  movupd -0x10(%r8),%xmm0
  movupd -0x60(%r8),%xmm15
  mulpd  %xmm4,%xmm8
  mulpd  %xmm4,%xmm7
  mulpd  %xmm4,%xmm6
  mulpd  %xmm4,%xmm5
  mulpd  %xmm4,%xmm0
  mulpd  %xmm4,%xmm15
  addpd  %xmm3,%xmm8
  addpd  %xmm3,%xmm7
  addpd  %xmm3,%xmm6
  addpd  %xmm3,%xmm5
  movaps %xmm8,-0x50(%rdx)
  movapd %xmm14,%xmm8
  addpd  %xmm3,%xmm0
  movaps %xmm7,-0x40(%rdx)
  addpd  %xmm3,%xmm15
  movaps %xmm6,-0x30(%rdx)
  movaps %xmm5,-0x20(%rdx)
  movapd %xmm14,%xmm5
  movaps %xmm0,-0x10(%rdx)
  movapd %xmm13,%xmm0
  movaps %xmm15,-0x60(%rdx)
  movupd -0x20(%r11),%xmm7
  movupd -0x10(%r11),%xmm6
  movapd %xmm13,%xmm15
  cmpltpd %xmm7,%xmm8
  cmpltpd %xmm6,%xmm5
  cmpltpd %xmm7,%xmm0
  cmpltpd %xmm6,%xmm15
  pand   %xmm12,%xmm5
  pand   %xmm12,%xmm8
  shufps $0x88,%xmm5,%xmm8
  movdqa %xmm1,%xmm5
  shufps $0x88,%xmm15,%xmm0
  pand   %xmm0,%xmm5
  pandn  %xmm8,%xmm0
  movapd %xmm11,%xmm8
  por    %xmm0,%xmm5
  cmpltpd %xmm6,%xmm8
  movapd %xmm11,%xmm0
  cmpltpd %xmm7,%xmm0
  shufps $0x88,%xmm8,%xmm0
  movdqa D113(%rip),%xmm8
  pand   %xmm0,%xmm8
  pandn  %xmm5,%xmm0
  movdqa %xmm0,%xmm5
  movapd %xmm10,%xmm0
  por    %xmm8,%xmm5
  cmpltpd %xmm7,%xmm0
  movapd %xmm10,%xmm8
  cmpltpd %xmm6,%xmm8
  shufps $0x88,%xmm8,%xmm0
  movdqa D15(%rip),%xmm8
  pand   %xmm0,%xmm8
  pandn  %xmm5,%xmm0
  movdqa %xmm0,%xmm5
  movapd %xmm9,%xmm0
  cmpltpd %xmm7,%xmm0
  movapd %xmm9,%xmm7
  por    %xmm8,%xmm5
  cmpltpd %xmm6,%xmm7
  movdqa D175(%rip),%xmm6
  shufps $0x88,%xmm7,%xmm0
  pand   %xmm0,%xmm6
  pandn  %xmm5,%xmm0
  por    %xmm6,%xmm0
  movaps %xmm0,-0x10(%rbx)
  cmp    %rbp,%r11
  jne    L84
  mov    %esi,%edx
  and    $0xfffffffc,%edx
  test   $0x3,%sil
  je     L102
  mov    %edx,%r8d
  movslq %edx,%rbx
  movq   %r9,%xmm9
  movsd  D97(%rip),%xmm7
  lea    (%r8,%r8,2),%r11
  lea    (%rbx,%rbx,2),%rbp
  movsd  -0x18(%rsp),%xmm11
  mov    $0xe,%r14d
  shl    $0x3,%r11
  shl    $0x3,%rbp
  lea    0x0(,%r8,8),%r13
  movsd  D192(%rip),%xmm6
  lea    (%rax,%r11,1),%r12
  mov    $0xd,%r9d
  movsd  D115(%rip),%xmm5
  movsd  D104(%rip),%xmm1
  movupd (%r12),%xmm0
  mov    $0xb,%r15d
  mulpd  %xmm4,%xmm0
  addpd  %xmm3,%xmm0
  movups %xmm0,(%rdi,%rbp,1)
  movsd  0x10(%r12),%xmm0
  mov    $0xc,%r12d
  mulsd  %xmm9,%xmm0
  addsd  %xmm7,%xmm0
  movsd  %xmm0,0x10(%rdi,%rbp,1)
  movsd  (%rcx,%r8,8),%xmm0
  xor    %r8d,%r8d
  mov    $0xa,%ebp
  comisd %xmm2,%xmm0
  cmova  %r14d,%r8d
  ucomisd %xmm11,%xmm0
  cmova  %r9d,%r8d
  ucomisd %xmm6,%xmm0
  cmova  %r12d,%r8d
  ucomisd %xmm5,%xmm0
  cmova  %r15d,%r8d
  ucomisd %xmm1,%xmm0
  cmova  %ebp,%r8d
  mov    %r8d,(%r10,%rbx,4)
  lea    0x1(%rdx),%r8d
  cmp    %r8d,%esi
  jle    L102
  lea    0x18(%rax,%r11,1),%r14
  movslq %r8d,%r8
  movupd (%r14),%xmm0
  lea    (%r8,%r8,2),%rbx
  shl    $0x3,%rbx
  mulpd  %xmm4,%xmm0
  addpd  %xmm3,%xmm0
  movups %xmm0,(%rdi,%rbx,1)
  movsd  0x10(%r14),%xmm0
  mov    $0xe,%r14d
  mulsd  %xmm9,%xmm0
  addsd  %xmm7,%xmm0
  movsd  %xmm0,0x10(%rdi,%rbx,1)
  movsd  0x8(%rcx,%r13,1),%xmm0
  xor    %ebx,%ebx
  comisd %xmm2,%xmm0
  cmova  %r14d,%ebx
  ucomisd %xmm11,%xmm0
  cmova  %r9d,%ebx
  ucomisd %xmm6,%xmm0
  cmova  %r12d,%ebx
  ucomisd %xmm5,%xmm0
  cmova  %r15d,%ebx
  ucomisd %xmm1,%xmm0
  cmova  %ebp,%ebx
  add    $0x2,%edx
  mov    %ebx,(%r10,%r8,4)
  cmp    %edx,%esi
  jle    L102
  lea    0x30(%rax,%r11,1),%r8
  movslq %edx,%rdx
  movupd (%r8),%xmm0
  lea    (%rdx,%rdx,2),%rax
  shl    $0x3,%rax
  mulpd  %xmm4,%xmm0
  addpd  %xmm3,%xmm0
  movups %xmm0,(%rdi,%rax,1)
  movsd  0x10(%r8),%xmm0
  mulsd  %xmm9,%xmm0
  addsd  %xmm7,%xmm0
  movsd  %xmm0,0x10(%rdi,%rax,1)
  movsd  0x10(%rcx,%r13,1),%xmm0
  xor    %eax,%eax
  comisd %xmm2,%xmm0
  cmova  %r14d,%eax
  ucomisd %xmm11,%xmm0
  cmova  %r9d,%eax
  ucomisd %xmm6,%xmm0
  cmova  %r12d,%eax
  ucomisd %xmm5,%xmm0
  cmova  %r15d,%eax
  ucomisd %xmm1,%xmm0
  cmova  %ebp,%eax
  mov    %eax,(%r10,%rdx,4)
L102:
  movsd  -0x10(%rsp),%xmm0
  mov    %r10,%rdx
  pop    %rbx
  mov    $0x1,%eax
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1050 <plot_particle2D@plt>
L52:
  movsd  D97(%rip),%xmm7
  movsd  D192(%rip),%xmm6
  lea    D85(%rip),%r11
  mov    %esi,%r15d
  movsd  D115(%rip),%xmm5
  xor    %r8d,%r8d
  mov    $0xe,%r14d
  xor    %r13d,%r13d
  mov    $0xd,%r12d
  mov    $0xc,%ebp
  mov    $0xb,%ebx
  movsd  D104(%rip),%xmm1
  movapd D97(%rip),%xmm3
L75:
  movupd (%rax),%xmm0
  mov    %r13d,%edx
  mulpd  %xmm4,%xmm0
  addpd  %xmm3,%xmm0
  movups %xmm0,(%r11)
  movq   %r9,%xmm0
  mulsd  0x10(%rax),%xmm0
  addsd  %xmm7,%xmm0
  movsd  %xmm0,0x10(%r11)
  movsd  (%rcx,%r8,8),%xmm0
  comisd %xmm2,%xmm0
  cmova  %r14d,%edx
  ucomisd -0x18(%rsp),%xmm0
  cmova  %r12d,%edx
  ucomisd %xmm6,%xmm0
  cmova  %ebp,%edx
  ucomisd %xmm5,%xmm0
  cmova  %ebx,%edx
  comisd %xmm1,%xmm0
  ja     L22
  mov    %edx,(%r10,%r8,4)
  add    $0x1,%r8
  add    $0x18,%rax
  add    $0x18,%r11
  cmp    %r15,%r8
  jne    L75
  jmp    L102
L22:
  movl   $0xa,(%r10,%r8,4)
  add    $0x1,%r8
  add    $0x18,%rax
  add    $0x18,%r11
  cmp    %r8,%r15
  jne    L75
  jmp    L102
```

tool_calls: name: unpack_data
arguments: tag: D97
type: f64[2]
name: unpack_data
arguments: tag: D50
type: byte[16]
name: unpack_data
arguments: tag: D209
type: byte[16]
name: unpack_data
arguments: tag: D192
type: f64[2]
name: unpack_data
arguments: tag: D115
type: f64[2]
name: unpack_data
arguments: tag: D104
type: f64[2]
name: unpack_data
arguments: tag: D113
type: byte[16]
name: unpack_data
arguments: tag: D15
type: byte[16]
name: unpack_data
arguments: tag: D175
type: byte[16]

tool: {"D97": [0.5,0.5]}

tool: {"D50": [0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D209": [0x0d,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x0d,0x00,0x00,0x00]}

tool: {"D192": [0.1,0.1]}

tool: {"D115": [0.2,0.2]}

tool: {"D104": [0.3,0.3]}

tool: {"D113": [0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x00,0x00]}

tool: {"D15": [0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x0b,0x00,0x00,0x00]}

tool: {"D175": [0x0a,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x0a,0x00,0x00,0x00]}

assistant: ```c
void plot_star(x, n, time, ratio, m, initm) double (*x)[(3)];
int n;
double time;
double ratio;
double *m, initm;
{
  static double anix[(10000)][(3)], maxx, button;
  static int tmpc[(10000)];
  int i, d;
  for (i = 0; i < n; i++) {
    for (d = 0; d < (3); d++)
      anix[i][d] = x[i][d] * ratio + 0.5;
    tmpc[i] = 0;
    if (m[i] > initm)
      tmpc[i] = 14;
    if (m[i] > 2 * initm)
      tmpc[i] = 13;
    if (m[i] > 0.1)
      tmpc[i] = 12;
    if (m[i] > 0.2)
      tmpc[i] = 11;
    if (m[i] > 0.3)
      tmpc[i] = 10;
  }
  plot_particle2D(anix, n, tmpc, time);
}
```