user: 提供的汇编代码用C语言表示会是什么样子:

```asm
<rquicksort>:
  endbr64
  cmp    $0x1,%esi
  jle    L74
  push   %r15
  mov    %rdi,%r10
  mov    %esi,%r11d
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x78,%rsp
L444:
  mov    %r11d,%eax
  mov    %r10,%rsi
  xor    %edx,%edx
  sar    %eax
  cltq
  movsd  (%r10,%rax,8),%xmm1
  lea    -0x1(%r11),%eax
  movslq %eax,%rcx
L269:
  movsd  (%rsi),%xmm2
  lea    (%r10,%rcx,8),%rdi
  mov    %edx,0x18(%rsp)
  movsd  (%rdi),%xmm0
  comisd %xmm2,%xmm1
  ja     L410
  comisd %xmm1,%xmm0
  lea    -0x8(%r10,%rcx,8),%rcx
  jbe    L591
L15:
  mov    %rcx,%rdi
  movsd  (%rcx),%xmm0
  sub    $0x8,%rcx
  sub    $0x1,%eax
  comisd %xmm1,%xmm0
  ja     L15
L591:
  cmp    %edx,%eax
  jle    L701
  sub    $0x1,%eax
  movsd  %xmm0,(%rsi)
  movslq %eax,%rcx
  movsd  %xmm2,(%rdi)
L410:
  add    $0x1,%rdx
  add    $0x8,%rsi
  jmp    L269
L701:
  mov    0x18(%rsp),%eax
  mov    %rsi,0x28(%rsp)
  mov    %eax,0x4(%rsp)
  cmp    $0x1,%eax
  jle    L283
  mov    %r11d,0x4c(%rsp)
  mov    %eax,%ebx
L694:
  mov    %ebx,%eax
  mov    %r10,%rsi
  xor    %edx,%edx
  sar    %eax
  cltq
  movsd  (%r10,%rax,8),%xmm1
  lea    -0x1(%rbx),%eax
  movslq %eax,%rcx
L427:
  movsd  (%rsi),%xmm2
  lea    (%r10,%rcx,8),%rdi
  mov    %edx,0x1c(%rsp)
  movsd  (%rdi),%xmm0
  comisd %xmm2,%xmm1
  ja     L321
  comisd %xmm1,%xmm0
  lea    -0x8(%r10,%rcx,8),%rcx
  jbe    L280
L641:
  mov    %rcx,%rdi
  movsd  (%rcx),%xmm0
  sub    $0x8,%rcx
  sub    $0x1,%eax
  comisd %xmm1,%xmm0
  ja     L641
L280:
  cmp    %edx,%eax
  jle    L350
  sub    $0x1,%eax
  movsd  %xmm0,(%rsi)
  movslq %eax,%rcx
  movsd  %xmm2,(%rdi)
L321:
  add    $0x1,%rdx
  add    $0x8,%rsi
  jmp    L427
L152:
  mov    0x4c(%rsp),%r11d
L283:
  sub    0x18(%rsp),%r11d
  cmp    $0x1,%r11d
  jle    L505
  mov    0x28(%rsp),%r10
  jmp    L444
L505:
  add    $0x78,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L350:
  mov    0x1c(%rsp),%eax
  mov    %rsi,0x30(%rsp)
  mov    %eax,0x8(%rsp)
  cmp    $0x1,%eax
  jle    L110
L186:
  mov    0x8(%rsp),%edi
  mov    %r10,%rsi
  xor    %edx,%edx
  mov    %edi,%eax
  sar    %eax
  cltq
  movsd  (%r10,%rax,8),%xmm1
  lea    -0x1(%rdi),%eax
  movslq %eax,%rcx
L249:
  movsd  (%rsi),%xmm2
  lea    (%r10,%rcx,8),%rdi
  mov    %edx,0x20(%rsp)
  movsd  (%rdi),%xmm0
  comisd %xmm2,%xmm1
  ja     L590
  comisd %xmm1,%xmm0
  lea    -0x8(%r10,%rcx,8),%rcx
  jbe    L221
L96:
  mov    %rcx,%rdi
  movsd  (%rcx),%xmm0
  sub    $0x8,%rcx
  sub    $0x1,%eax
  comisd %xmm1,%xmm0
  ja     L96
L221:
  cmp    %edx,%eax
  jle    L658
  sub    $0x1,%eax
  movsd  %xmm0,(%rsi)
  movslq %eax,%rcx
  movsd  %xmm2,(%rdi)
L590:
  add    $0x1,%rdx
  add    $0x8,%rsi
  jmp    L249
L110:
  mov    0x1c(%rsp),%edi
  sub    %edi,0x4(%rsp)
  mov    0x4(%rsp),%eax
  cmp    $0x1,%eax
  jle    L152
  mov    0x30(%rsp),%r10
  mov    %eax,%ebx
  jmp    L694
L658:
  mov    0x20(%rsp),%eax
  mov    %rsi,0x38(%rsp)
  mov    %r10,%r11
  mov    %eax,0xc(%rsp)
  mov    %eax,%ebx
  cmp    $0x1,%eax
  jle    L417
L669:
  mov    %ebx,%eax
  mov    %r11,%rsi
  xor    %edx,%edx
  sar    %eax
  cltq
  movsd  (%r11,%rax,8),%xmm1
  lea    -0x1(%rbx),%eax
  movslq %eax,%rcx
L633:
  movsd  (%rsi),%xmm2
  lea    (%r11,%rcx,8),%rdi
  mov    %edx,0x24(%rsp)
  movsd  (%rdi),%xmm0
  comisd %xmm2,%xmm1
  ja     L540
  comisd %xmm1,%xmm0
  lea    -0x8(%r11,%rcx,8),%rcx
  jbe    L414
L396:
  mov    %rcx,%rdi
  movsd  (%rcx),%xmm0
  sub    $0x8,%rcx
  sub    $0x1,%eax
  comisd %xmm1,%xmm0
  ja     L396
L414:
  cmp    %edx,%eax
  jle    L479
  sub    $0x1,%eax
  movsd  %xmm0,(%rsi)
  movslq %eax,%rcx
  movsd  %xmm2,(%rdi)
L540:
  add    $0x1,%rdx
  add    $0x8,%rsi
  jmp    L633
L479:
  mov    0x24(%rsp),%eax
  mov    %rsi,0x40(%rsp)
  mov    %eax,0x10(%rsp)
  cmp    $0x1,%eax
  jle    L548
L442:
  mov    0x10(%rsp),%edi
  mov    %r11,%r10
  xor    %edx,%edx
  mov    %edi,%eax
  sar    %eax
  cltq
  movsd  (%r11,%rax,8),%xmm1
  lea    -0x1(%rdi),%eax
  movslq %eax,%rcx
L577:
  movsd  (%r10),%xmm2
  lea    (%r11,%rcx,8),%rsi
  mov    %edx,0x48(%rsp)
  movsd  (%rsi),%xmm0
  comisd %xmm2,%xmm1
  ja     L266
  comisd %xmm1,%xmm0
  lea    -0x8(%r11,%rcx,8),%rcx
  jbe    L205
L418:
  mov    %rcx,%rsi
  movsd  (%rcx),%xmm0
  sub    $0x8,%rcx
  sub    $0x1,%eax
  comisd %xmm1,%xmm0
  ja     L418
L205:
  cmp    %edx,%eax
  jle    L210
  sub    $0x1,%eax
  movsd  %xmm0,(%r10)
  movslq %eax,%rcx
  movsd  %xmm2,(%rsi)
L266:
  add    $0x1,%rdx
  add    $0x8,%r10
  jmp    L577
L210:
  mov    0x48(%rsp),%eax
  mov    %eax,0x14(%rsp)
  cmp    $0x1,%eax
  jle    L329
  mov    %r10,0x50(%rsp)
  mov    %eax,%ebx
L670:
  mov    %ebx,%eax
  xor    %ecx,%ecx
  sar    %eax
  cltq
  movsd  (%r11,%rax,8),%xmm1
  lea    -0x1(%rbx),%eax
  mov    %r11,%rbx
  movslq %eax,%rdx
L488:
  movsd  (%rbx),%xmm2
  lea    (%r11,%rdx,8),%rsi
  mov    %ecx,%r9d
  movsd  (%rsi),%xmm0
  comisd %xmm2,%xmm1
  ja     L172
  comisd %xmm1,%xmm0
  lea    -0x8(%r11,%rdx,8),%rdx
  jbe    L264
  nopw   0x0(%rax,%rax,1)
L631:
  mov    %rdx,%rsi
  movsd  (%rdx),%xmm0
  sub    $0x8,%rdx
  sub    $0x1,%eax
  comisd %xmm1,%xmm0
  ja     L631
L264:
  cmp    %ecx,%eax
  jle    L713
  sub    $0x1,%eax
  movsd  %xmm0,(%rbx)
  movslq %eax,%rdx
  movsd  %xmm2,(%rsi)
L172:
  add    $0x1,%rcx
  add    $0x8,%rbx
  jmp    L488
L713:
  mov    %r9d,%r10d
  cmp    $0x1,%r9d
  jle    L126
  mov    %r9d,0x58(%rsp)
  mov    %rbx,%r9
L47:
  mov    %r10d,%eax
  mov    %r11,%r15
  xor    %esi,%esi
  sar    %eax
  cltq
  movsd  (%r11,%rax,8),%xmm1
  lea    -0x1(%r10),%eax
  movslq %eax,%rdx
  xchg   %ax,%ax
L502:
  movsd  (%r15),%xmm2
  lea    (%r11,%rdx,8),%rcx
  mov    %esi,%r8d
  movsd  (%rcx),%xmm0
  comisd %xmm2,%xmm1
  ja     L703
  comisd %xmm1,%xmm0
  lea    -0x8(%r11,%rdx,8),%rdx
  jbe    L217
  nopl   0x0(%rax)
L231:
  mov    %rdx,%rcx
  movsd  (%rdx),%xmm0
  sub    $0x8,%rdx
  sub    $0x1,%eax
  comisd %xmm1,%xmm0
  ja     L231
L217:
  cmp    %esi,%eax
  jle    L95
  sub    $0x1,%eax
  movsd  %xmm0,(%r15)
  movslq %eax,%rdx
  movsd  %xmm2,(%rcx)
L703:
  add    $0x1,%rsi
  add    $0x8,%r15
  jmp    L502
L95:
  mov    %r8d,%ebp
  cmp    $0x1,%r8d
  jle    L308
  mov    %r15,%rcx
  mov    %r8d,%r13d
  mov    %r10d,%r14d
  mov    %r9,%r15
L349:
  mov    %ebp,%eax
  mov    %r11,%r12
  xor    %esi,%esi
  sar    %eax
  cltq
  movsd  (%r11,%rax,8),%xmm1
  lea    -0x1(%rbp),%eax
  movslq %eax,%rdx
  nopl   0x0(%rax)
L367:
  movsd  (%r12),%xmm2
  lea    (%r11,%rdx,8),%rdi
  mov    %esi,%r8d
  movsd  (%rdi),%xmm0
  comisd %xmm2,%xmm1
  ja     L282
  comisd %xmm1,%xmm0
  lea    -0x8(%r11,%rdx,8),%rdx
  jbe    L481
  nopw   0x0(%rax,%rax,1)
L292:
  mov    %rdx,%rdi
  movsd  (%rdx),%xmm0
  sub    $0x8,%rdx
  sub    $0x1,%eax
  comisd %xmm1,%xmm0
  ja     L292
L481:
  cmp    %esi,%eax
  jle    L364
  sub    $0x1,%eax
  movsd  %xmm0,(%r12)
  movslq %eax,%rdx
  movsd  %xmm2,(%rdi)
L282:
  add    $0x1,%rsi
  add    $0x8,%r12
  jmp    L367
L364:
  mov    %r8d,%r9d
  cmp    $0x1,%r8d
  jle    L192
L596:
  mov    %r9d,%eax
  lea    -0x1(%r9),%esi
  mov    %r11,%rbx
  sar    %eax
  movslq %esi,%rdi
  cltq
  movsd  (%r11,%rax,8),%xmm2
  xor    %eax,%eax
  nopl   0x0(%rax)
L59:
  movsd  (%rbx),%xmm0
  lea    (%r11,%rdi,8),%rdx
  mov    %eax,%r10d
  movsd  (%rdx),%xmm1
  comisd %xmm0,%xmm2
  ja     L204
  comisd %xmm2,%xmm1
  lea    -0x8(%r11,%rdi,8),%rdi
  jbe    L583
L196:
  mov    %rdi,%rdx
  movsd  (%rdi),%xmm1
  sub    $0x8,%rdi
  sub    $0x1,%esi
  comisd %xmm2,%xmm1
  ja     L196
L583:
  cmp    %eax,%esi
  jle    L1
  sub    $0x1,%esi
  movsd  %xmm1,(%rbx)
  movslq %esi,%rdi
  movsd  %xmm0,(%rdx)
L204:
  add    $0x1,%rax
  add    $0x8,%rbx
  jmp    L59
L192:
  sub    %r8d,%ebp
  cmp    $0x1,%ebp
  jle    L303
  mov    %r12,%r11
  jmp    L349
L1:
  mov    %r10d,%esi
  mov    %r11,%rdi
  mov    %r8d,0x6c(%rsp)
  mov    %r9d,0x68(%rsp)
  mov    %rcx,0x60(%rsp)
  mov    %r10d,0x5c(%rsp)
  call   <rquicksort>
  mov    0x5c(%rsp),%r10d
  mov    0x68(%rsp),%r9d
  mov    0x60(%rsp),%rcx
  mov    0x6c(%rsp),%r8d
  sub    %r10d,%r9d
  cmp    $0x1,%r9d
  jle    L192
  mov    %rbx,%r11
  jmp    L596
L303:
  mov    %r15,%r9
  mov    %r13d,%r8d
  mov    %r14d,%r10d
  mov    %rcx,%r15
L308:
  sub    %r8d,%r10d
  cmp    $0x1,%r10d
  jle    L342
  mov    %r15,%r11
  jmp    L47
L342:
  mov    %r9,%rbx
  mov    0x58(%rsp),%r9d
L126:
  sub    %r9d,0x14(%rsp)
  mov    0x14(%rsp),%eax
  cmp    $0x1,%eax
  jle    L299
  mov    %rbx,%r11
  mov    %eax,%ebx
  jmp    L670
L299:
  mov    0x50(%rsp),%r10
L329:
  mov    0x48(%rsp),%edi
  sub    %edi,0x10(%rsp)
  mov    0x10(%rsp),%eax
  cmp    $0x1,%eax
  jle    L548
  mov    %r10,%r11
  jmp    L442
L548:
  mov    0x24(%rsp),%ebx
  sub    %ebx,0xc(%rsp)
  mov    0xc(%rsp),%eax
  cmp    $0x1,%eax
  jle    L417
  mov    0x40(%rsp),%r11
  mov    %eax,%ebx
  jmp    L669
L417:
  mov    0x20(%rsp),%edi
  sub    %edi,0x8(%rsp)
  mov    0x8(%rsp),%eax
  cmp    $0x1,%eax
  jle    L110
  mov    0x38(%rsp),%r10
  jmp    L186
L74:
  ret
```

assistant: ```c
void rquicksort(double a[], const int n) {
  double p, t;
  int i, j;
  if (n < 2)
    return;
  p = a[n / 2];
  for (i = 0, j = n - 1;; i++, j--) {
    while (a[i] < p)
      i++;
    while (p < a[j])
      j--;
    if (i >= j)
      break;
    t = a[i];
    a[i] = a[j];
    a[j] = t;
  }
  rquicksort(a, i);
  rquicksort(a + i, n - i);
}
```