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

```asm
<quickSort>:
  endbr64
  push   %r15
  mov    %rdi,%r9
  mov    %edx,%ecx
  push   %r14
  mov    %esi,%r14d
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x48,%rsp
  mov    %edx,0x38(%rsp)
L448:
  mov    %r14d,%edx
  mov    %ecx,%esi
  add    %ecx,%edx
  mov    %r14d,%ecx
  mov    %edx,%eax
  shr    $0x1f,%eax
  add    %edx,%eax
  sar    %eax
  cltq
  mov    (%r9,%rax,4),%edx
L730:
  cmp    %esi,%ecx
  jg     L620
L219:
  movslq %ecx,%rax
  movslq %esi,%rbx
  shl    $0x2,%rax
  lea    (%r9,%rbx,4),%r11
  lea    (%r9,%rax,1),%r8
  mov    (%r11),%edi
  lea    0x4(%r9,%rax,1),%rax
  mov    (%r8),%r10d
  cmp    %edx,%r10d
  jge    L529
  nopl   (%rax)
L963:
  mov    %rax,%r8
  mov    (%rax),%r10d
  lea    0x4(%rax),%rax
  add    $0x1,%ecx
  cmp    %edx,%r10d
  jl     L963
  cmp    %edi,%edx
  jge    L497
L450:
  lea    -0x4(%r9,%rbx,4),%rax
  nopl   0x0(%rax,%rax,1)
L156:
  mov    %rax,%r11
  mov    (%rax),%edi
  sub    $0x4,%rax
  sub    $0x1,%esi
  cmp    %edx,%edi
  jg     L156
L497:
  cmp    %ecx,%esi
  jl     L730
  mov    %edi,(%r8)
  add    $0x1,%ecx
  sub    $0x1,%esi
  mov    %r10d,(%r11)
L691:
  cmp    %esi,%ecx
  jle    L219
L620:
  mov    %ecx,0x10(%rsp)
  mov    %esi,0x18(%rsp)
  cmp    %r14d,%esi
  jg     L444
L720:
  mov    0x38(%rsp),%ebx
  cmp    %ebx,0x10(%rsp)
  jge    L40
  mov    0x10(%rsp),%r14d
  mov    %ebx,%ecx
  jmp    L448
L529:
  cmp    %edi,%edx
  jl     L450
  mov    %edi,(%r8)
  add    $0x1,%ecx
  sub    $0x1,%esi
  mov    %r10d,(%r11)
  jmp    L691
L557:
  mov    %ecx,0x1c(%rsp)
  mov    %esi,0x20(%rsp)
  cmp    %ecx,%r14d
  jl     L609
L791:
  mov    0x20(%rsp),%ebx
  cmp    %ebx,0x18(%rsp)
  jle    L720
  mov    %ebx,%r14d
L444:
  mov    0x18(%rsp),%ebx
  mov    %r14d,%esi
  mov    %ebx,%edx
  mov    %ebx,%ecx
  add    %r14d,%edx
  mov    %edx,%eax
  shr    $0x1f,%eax
  add    %edx,%eax
  sar    %eax
  cltq
  mov    (%r9,%rax,4),%edx
L682:
  cmp    %ecx,%esi
  jg     L557
  movslq %esi,%rax
  movslq %ecx,%rbx
  shl    $0x2,%rax
  lea    (%r9,%rbx,4),%r11
  lea    (%r9,%rax,1),%r8
  mov    (%r11),%edi
  lea    0x4(%r9,%rax,1),%rax
  mov    (%r8),%r10d
  cmp    %r10d,%edx
  jle    L488
  xchg   %ax,%ax
L242:
  mov    %rax,%r8
  mov    (%rax),%r10d
  lea    0x4(%rax),%rax
  add    $0x1,%esi
  cmp    %r10d,%edx
  jg     L242
  cmp    %edi,%edx
  jge    L392
L342:
  lea    -0x4(%r9,%rbx,4),%rax
  nopl   0x0(%rax,%rax,1)
L818:
  mov    %rax,%r11
  mov    (%rax),%edi
  sub    $0x4,%rax
  sub    $0x1,%ecx
  cmp    %edi,%edx
  jl     L818
L392:
  cmp    %esi,%ecx
  jl     L682
  mov    %edi,(%r8)
  add    $0x1,%esi
  sub    $0x1,%ecx
  mov    %r10d,(%r11)
  jmp    L682
L488:
  cmp    %edi,%edx
  jl     L342
  mov    %edi,(%r8)
  add    $0x1,%esi
  sub    $0x1,%ecx
  mov    %r10d,(%r11)
  jmp    L682
L981:
  mov    %ecx,0x24(%rsp)
  mov    %esi,0x28(%rsp)
  cmp    %ecx,%r14d
  jl     L461
L279:
  mov    0x28(%rsp),%ebx
  cmp    %ebx,0x1c(%rsp)
  jle    L791
  mov    %ebx,%r14d
L609:
  mov    0x1c(%rsp),%ebx
  mov    %r14d,%esi
  mov    %ebx,%edx
  mov    %ebx,%ecx
  add    %r14d,%edx
  mov    %edx,%eax
  shr    $0x1f,%eax
  add    %edx,%eax
  sar    %eax
  cltq
  mov    (%r9,%rax,4),%edx
  nopl   0x0(%rax,%rax,1)
L714:
  cmp    %ecx,%esi
  jg     L981
  movslq %esi,%rax
  movslq %ecx,%rbx
  shl    $0x2,%rax
  lea    (%r9,%rbx,4),%r11
  lea    (%r9,%rax,1),%r8
  mov    (%r11),%edi
  lea    0x4(%r9,%rax,1),%rax
  mov    (%r8),%r10d
  cmp    %r10d,%edx
  jle    L729
  xchg   %ax,%ax
L499:
  mov    %rax,%r8
  mov    (%rax),%r10d
  lea    0x4(%rax),%rax
  add    $0x1,%esi
  cmp    %r10d,%edx
  jg     L499
  cmp    %edi,%edx
  jge    L509
L24:
  lea    -0x4(%r9,%rbx,4),%rax
  nopl   0x0(%rax,%rax,1)
L272:
  mov    %rax,%r11
  mov    (%rax),%edi
  sub    $0x4,%rax
  sub    $0x1,%ecx
  cmp    %edi,%edx
  jl     L272
L509:
  cmp    %esi,%ecx
  jl     L714
  mov    %edi,(%r8)
  add    $0x1,%esi
  sub    $0x1,%ecx
  mov    %r10d,(%r11)
  jmp    L714
L729:
  cmp    %edi,%edx
  jl     L24
  mov    %edi,(%r8)
  add    $0x1,%esi
  sub    $0x1,%ecx
  mov    %r10d,(%r11)
  jmp    L714
L633:
  mov    %edx,0x2c(%rsp)
  mov    %ecx,0x30(%rsp)
  cmp    %edx,%r14d
  jl     L909
L592:
  mov    0x30(%rsp),%ebx
  cmp    %ebx,0x24(%rsp)
  jle    L279
  mov    %ebx,%r14d
L461:
  mov    0x24(%rsp),%ebx
  mov    %r14d,%ecx
  mov    %ebx,%edx
  add    %r14d,%edx
  mov    %edx,%eax
  shr    $0x1f,%eax
  add    %edx,%eax
  mov    %ebx,%edx
  sar    %eax
  cltq
  mov    (%r9,%rax,4),%esi
  nopl   0x0(%rax,%rax,1)
L157:
  cmp    %edx,%ecx
  jg     L633
  movslq %ecx,%rax
  movslq %edx,%rbx
  shl    $0x2,%rax
  lea    (%r9,%rbx,4),%r11
  lea    (%r9,%rax,1),%rdi
  mov    (%r11),%r10d
  lea    0x4(%r9,%rax,1),%rax
  mov    (%rdi),%r8d
  cmp    %r8d,%esi
  jle    L523
  xchg   %ax,%ax
L276:
  mov    %rax,%rdi
  mov    (%rax),%r8d
  lea    0x4(%rax),%rax
  add    $0x1,%ecx
  cmp    %r8d,%esi
  jg     L276
  cmp    %r10d,%esi
  jge    L291
L943:
  lea    -0x4(%r9,%rbx,4),%rax
  nopl   0x0(%rax)
L966:
  mov    %rax,%r11
  mov    (%rax),%r10d
  sub    $0x4,%rax
  sub    $0x1,%edx
  cmp    %r10d,%esi
  jl     L966
L291:
  cmp    %ecx,%edx
  jl     L157
  mov    %r10d,(%rdi)
  add    $0x1,%ecx
  sub    $0x1,%edx
  mov    %r8d,(%r11)
  jmp    L157
L523:
  cmp    %r10d,%esi
  jl     L943
  mov    %r10d,(%rdi)
  add    $0x1,%ecx
  sub    $0x1,%edx
  mov    %r8d,(%r11)
  jmp    L157
L909:
  mov    %r9,%r11
L885:
  mov    0x2c(%rsp),%ebx
  mov    %r14d,%esi
  mov    %ebx,%edx
  mov    %ebx,%ecx
  add    %r14d,%edx
  mov    %edx,%eax
  shr    $0x1f,%eax
  add    %edx,%eax
  sar    %eax
  cltq
  mov    (%r11,%rax,4),%edx
L779:
  cmp    %ecx,%esi
  jg     L484
  movslq %esi,%rax
  movslq %ecx,%rbx
  shl    $0x2,%rax
  lea    (%r11,%rbx,4),%r10
  lea    (%r11,%rax,1),%r9
  mov    (%r10),%edi
  lea    0x4(%r11,%rax,1),%rax
  mov    (%r9),%r8d
  cmp    %r8d,%edx
  jle    L491
  nopl   0x0(%rax)
L311:
  mov    %rax,%r9
  mov    (%rax),%r8d
  lea    0x4(%rax),%rax
  add    $0x1,%esi
  cmp    %r8d,%edx
  jg     L311
  cmp    %edi,%edx
  jge    L453
L995:
  lea    -0x4(%r11,%rbx,4),%rax
  nopl   0x0(%rax,%rax,1)
L248:
  mov    %rax,%r10
  mov    (%rax),%edi
  sub    $0x4,%rax
  sub    $0x1,%ecx
  cmp    %edi,%edx
  jl     L248
L453:
  cmp    %ecx,%esi
  jle    L159
L484:
  mov    %ecx,0x14(%rsp)
  mov    %esi,0x34(%rsp)
  cmp    %ecx,%r14d
  jl     L830
L289:
  mov    0x34(%rsp),%ebx
  cmp    %ebx,0x2c(%rsp)
  jle    L123
  mov    %ebx,%r14d
  jmp    L885
L601:
  cmp    %r15d,%r14d
  jl     L191
L687:
  cmp    %r10d,0x14(%rsp)
  jle    L289
  mov    %r10d,%r14d
L830:
  mov    0x14(%rsp),%r15d
  mov    %r14d,%r10d
  mov    %r15d,%edx
  add    %r14d,%edx
  mov    %edx,%eax
  shr    $0x1f,%eax
  add    %edx,%eax
  sar    %eax
  cltq
  mov    (%r11,%rax,4),%edx
  nopl   0x0(%rax,%rax,1)
L698:
  cmp    %r15d,%r10d
  jg     L601
  movslq %r10d,%rax
  movslq %r15d,%r9
  shl    $0x2,%rax
  lea    (%r11,%r9,4),%r8
  lea    (%r11,%rax,1),%rdi
  mov    (%r8),%ecx
  lea    0x4(%r11,%rax,1),%rax
  mov    (%rdi),%esi
  cmp    %edx,%esi
  jge    L411
  nopl   (%rax)
L117:
  mov    %rax,%rdi
  mov    (%rax),%esi
  lea    0x4(%rax),%rax
  add    $0x1,%r10d
  cmp    %esi,%edx
  jg     L117
  cmp    %ecx,%edx
  jge    L49
L427:
  lea    -0x4(%r11,%r9,4),%rax
  nopw   0x0(%rax,%rax,1)
L170:
  mov    %rax,%r8
  mov    (%rax),%ecx
  sub    $0x4,%rax
  sub    $0x1,%r15d
  cmp    %ecx,%edx
  jl     L170
L49:
  cmp    %r10d,%r15d
  jl     L698
  mov    %ecx,(%rdi)
  add    $0x1,%r10d
  sub    $0x1,%r15d
  mov    %esi,(%r8)
  jmp    L698
L411:
  cmp    %ecx,%edx
  jl     L427
  mov    %ecx,(%rdi)
  add    $0x1,%r10d
  sub    $0x1,%r15d
  mov    %esi,(%r8)
  jmp    L698
L491:
  cmp    %edi,%edx
  jl     L995
L159:
  mov    %edi,(%r9)
  add    $0x1,%esi
  sub    $0x1,%ecx
  mov    %r8d,(%r10)
  jmp    L779
L191:
  mov    %r10d,0x3c(%rsp)
  mov    %r15d,0xc(%rsp)
  mov    %r11,%r15
L808:
  mov    0xc(%rsp),%r13d
  mov    %r14d,%r10d
  lea    0x0(%r13,%r14,1),%edx
  mov    %edx,%eax
  shr    $0x1f,%eax
  add    %edx,%eax
  sar    %eax
  cltq
  mov    (%r15,%rax,4),%edx
  nopw   0x0(%rax,%rax,1)
L826:
  cmp    %r13d,%r14d
  jg     L209
L162:
  movslq %r14d,%rax
  movslq %r13d,%r9
  shl    $0x2,%rax
  lea    (%r15,%r9,4),%r8
  lea    (%r15,%rax,1),%rdi
  mov    (%r8),%ecx
  lea    0x4(%r15,%rax,1),%rax
  mov    (%rdi),%esi
  cmp    %edx,%esi
  jge    L685
  nopl   (%rax)
L14:
  mov    %rax,%rdi
  mov    (%rax),%esi
  lea    0x4(%rax),%rax
  add    $0x1,%r14d
  cmp    %esi,%edx
  jg     L14
  cmp    %ecx,%edx
  jge    L312
L31:
  lea    -0x4(%r15,%r9,4),%rax
  nopw   0x0(%rax,%rax,1)
L492:
  mov    %rax,%r8
  mov    (%rax),%ecx
  sub    $0x4,%rax
  sub    $0x1,%r13d
  cmp    %ecx,%edx
  jl     L492
L312:
  cmp    %r14d,%r13d
  jl     L826
  mov    %ecx,(%rdi)
  add    $0x1,%r14d
  sub    $0x1,%r13d
  mov    %esi,(%r8)
L911:
  cmp    %r13d,%r14d
  jle    L162
L209:
  cmp    %r13d,%r10d
  jl     L761
L628:
  cmp    %r14d,0xc(%rsp)
  jg     L808
  mov    0x3c(%rsp),%r10d
  mov    %r15,%r11
  jmp    L687
L685:
  cmp    %ecx,%edx
  jl     L31
  mov    %ecx,(%rdi)
  add    $0x1,%r14d
  sub    $0x1,%r13d
  mov    %esi,(%r8)
  jmp    L911
L955:
  cmp    %ebp,%r10d
  jl     L719
L251:
  cmp    %r12d,%r13d
  jle    L628
  mov    %r12d,%r10d
L761:
  lea    0x0(%r13,%r10,1),%edx
  mov    %r13d,%ebp
  mov    %r10d,%r12d
  mov    %edx,%eax
  shr    $0x1f,%eax
  add    %edx,%eax
  sar    %eax
  cltq
  mov    (%r15,%rax,4),%edx
  nopl   0x0(%rax,%rax,1)
L56:
  cmp    %ebp,%r12d
  jg     L955
  movslq %r12d,%rax
  movslq %ebp,%r9
  shl    $0x2,%rax
  lea    (%r15,%r9,4),%r8
  lea    (%r15,%rax,1),%rdi
  mov    (%r8),%ecx
  lea    0x4(%r15,%rax,1),%rax
  mov    (%rdi),%esi
  cmp    %edx,%esi
  jge    L1023
  nopl   (%rax)
L29:
  mov    %rax,%rdi
  mov    (%rax),%esi
  lea    0x4(%rax),%rax
  add    $0x1,%r12d
  cmp    %esi,%edx
  jg     L29
  cmp    %ecx,%edx
  jge    L513
L104:
  lea    -0x4(%r15,%r9,4),%rax
  nopw   0x0(%rax,%rax,1)
L745:
  mov    %rax,%r8
  mov    (%rax),%ecx
  sub    $0x4,%rax
  sub    $0x1,%ebp
  cmp    %ecx,%edx
  jl     L745
L513:
  cmp    %r12d,%ebp
  jl     L56
  mov    %ecx,(%rdi)
  add    $0x1,%r12d
  sub    $0x1,%ebp
  mov    %esi,(%r8)
  jmp    L56
L1023:
  cmp    %ecx,%edx
  jl     L104
  mov    %ecx,(%rdi)
  add    $0x1,%r12d
  sub    $0x1,%ebp
  mov    %esi,(%r8)
  jmp    L56
L987:
  cmp    %edx,%r10d
  jl     L285
L201:
  cmp    %ebx,%ebp
  jle    L251
  mov    %ebx,%r10d
L719:
  lea    0x0(%rbp,%r10,1),%edx
  mov    %r10d,%ebx
  mov    %edx,%eax
  shr    $0x1f,%eax
  add    %edx,%eax
  mov    %ebp,%edx
  sar    %eax
  cltq
  mov    (%r15,%rax,4),%edi
  nopw   0x0(%rax,%rax,1)
L799:
  cmp    %edx,%ebx
  jg     L987
  movslq %ebx,%rax
  movslq %edx,%r11
  shl    $0x2,%rax
  lea    (%r15,%r11,4),%r9
  lea    (%r15,%rax,1),%rsi
  mov    (%r9),%r8d
  lea    0x4(%r15,%rax,1),%rax
  mov    (%rsi),%ecx
  cmp    %edi,%ecx
  jge    L895
  nopl   0x0(%rax)
L836:
  mov    %rax,%rsi
  mov    (%rax),%ecx
  lea    0x4(%rax),%rax
  add    $0x1,%ebx
  cmp    %ecx,%edi
  jg     L836
  cmp    %r8d,%edi
  jge    L834
L322:
  lea    -0x4(%r15,%r11,4),%rax
  nopw   0x0(%rax,%rax,1)
L543:
  mov    %rax,%r9
  mov    (%rax),%r8d
  sub    $0x4,%rax
  sub    $0x1,%edx
  cmp    %r8d,%edi
  jl     L543
L834:
  cmp    %ebx,%edx
  jl     L799
  mov    %r8d,(%rsi)
  add    $0x1,%ebx
  sub    $0x1,%edx
  mov    %ecx,(%r9)
  jmp    L799
  nopl   0x0(%rax)
L895:
  cmp    %r8d,%edi
  jl     L322
  mov    %r8d,(%rsi)
  add    $0x1,%ebx
  sub    $0x1,%edx
  mov    %ecx,(%r9)
  jmp    L799
L123:
  mov    %r11,%r9
  jmp    L592
L40:
  add    $0x48,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L285:
  mov    %r10d,%esi
  mov    %r15,%rdi
  call   <quickSort>
  jmp    L201
```

assistant: ```c
void quickSort(int arr[], int left, int right) {
  int i = left, j = right;
  int tmp;
  int pivot = arr[(left + right) / 2];
  while (i <= j) {
    while (arr[i] < pivot)
      i++;
    while (arr[j] > pivot)
      j--;
    if (i <= j) {
      tmp = arr[i];
      arr[i] = arr[j];
      arr[j] = tmp;
      i++;
      j--;
    }
  }
  if (left < j)
    quickSort(arr, left, j);
  if (i < right)
    quickSort(arr, i, right);
}
```