user: 下面的汇编指令对应的C源代码是什么：

```asm
<post_process>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x160,%rsp
  mov    %rdi,-0x108(%rbp)
  mov    %rsi,-0x110(%rbp)
  movsd  %xmm0,-0x118(%rbp)
  mov    %rdx,-0x120(%rbp)
  movsd  %xmm1,-0x128(%rbp)
  movsd  %xmm2,-0x130(%rbp)
  mov    %ecx,-0x134(%rbp)
  movsd  %xmm3,-0x140(%rbp)
  movsd  %xmm4,-0x148(%rbp)
  mov    %r8,-0x150(%rbp)
  mov    %r9,-0x158(%rbp)
  mov    0x10(%rbp),%rax
  mov    %rax,-0x160(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x0,-0xf4(%rbp)
  jmp    L14
L16:
  mov    -0xf4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x120(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x150(%rbp),%rax
  mov    (%rax),%eax
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  divsd  %xmm1,%xmm0
  mov    -0xf4(%rbp),%eax
  cltq
  movsd  %xmm0,-0xb0(%rbp,%rax,8)
  mov    -0xf4(%rbp),%eax
  cltq
  movsd  -0xb0(%rbp,%rax,8),%xmm1
  movsd  -0x148(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  mov    -0xf4(%rbp),%eax
  cltq
  movsd  %xmm0,-0x60(%rbp,%rax,8)
  addl   $0x1,-0xf4(%rbp)
L14:
  cmpl   $0x9,-0xf4(%rbp)
  jle    L16
  mov    -0x128(%rbp),%rsi
  lea    -0xd8(%rbp),%r8
  lea    -0xf0(%rbp),%rdi
  lea    -0xe8(%rbp),%rcx
  lea    -0xe0(%rbp),%rdx
  lea    -0xb0(%rbp),%rax
  movq   %rsi,%xmm0
  mov    %r8,%r9
  mov    %rdi,%r8
  mov    %rax,%rsi
  mov    $0xa,%edi
  call   <stats@plt>
  mov    -0x130(%rbp),%rsi
  lea    -0xb8(%rbp),%r8
  lea    -0xc8(%rbp),%rdi
  lea    -0xd0(%rbp),%rcx
  lea    -0xc0(%rbp),%rdx
  lea    -0x60(%rbp),%rax
  movq   %rsi,%xmm0
  mov    %r8,%r9
  mov    %rdi,%r8
  mov    %rax,%rsi
  mov    $0xa,%edi
  call   <stats@plt>
  movsd  -0xd8(%rbp),%xmm3
  movsd  -0xf0(%rbp),%xmm2
  movsd  -0xe8(%rbp),%xmm1
  movsd  -0xe0(%rbp),%xmm0
  mov    -0x150(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x140(%rbp),%rdx
  mov    -0x108(%rbp),%rax
  movapd %xmm3,%xmm4
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  mov    %ecx,%esi
  movq   %rdx,%xmm0
  mov    %rax,%rdi
  call   <saveData@plt>
  movsd  -0xb8(%rbp),%xmm3
  movsd  -0xc8(%rbp),%xmm2
  movsd  -0xd0(%rbp),%xmm1
  movsd  -0xc0(%rbp),%xmm0
  mov    -0x150(%rbp),%rax
  mov    (%rax),%ecx
  mov    -0x140(%rbp),%rdx
  mov    -0x110(%rbp),%rax
  movapd %xmm3,%xmm4
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  mov    %ecx,%esi
  movq   %rdx,%xmm0
  mov    %rax,%rdi
  call   <saveData@plt>
  mov    -0x158(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  -0xd0(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jbe    L29
  movsd  -0xd0(%rbp),%xmm0
  mov    -0x158(%rbp),%rax
  movsd  %xmm0,(%rax)
  mov    -0x160(%rbp),%rax
  mov    -0x134(%rbp),%edx
  mov    %edx,(%rax)
L29:
  mov    -0xf0(%rbp),%rax
  mov    -0x150(%rbp),%rdx
  movsd  -0x118(%rbp),%xmm1
  movsd  -0x128(%rbp),%xmm0
  mov    %rdx,%rdi
  movapd %xmm1,%xmm2
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <setLoopIters@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L25
  call   <__stack_chk_fail@plt>
L25:
  leave
  ret
```

assistant: ```c
int post_process(FILE *fp, FILE *fp2, double threshold_hi, double *tElapsed, double tScale, double wScale, unsigned int size, double sizeBytes, double work, int *NLOOP, double *localMax, unsigned int *localSize) {
  int i;
  double tMin, tMax, tAvg, tDev, wMax, wMin, wAvg, wDev;
  double tMsg[10], wMsg[10];
  for (i = 0; i < 10; i++) {
    tMsg[i] = tElapsed[i] / ((double)(*NLOOP));
    wMsg[i] = work / tMsg[i];
  }
  stats(10, tMsg, &tAvg, &tMax, &tMin, &tDev, tScale);
  stats(10, wMsg, &wAvg, &wMax, &wMin, &wDev, wScale);
  saveData(fp, sizeBytes, *NLOOP, tAvg, tMax, tMin, tDev);
  saveData(fp2, sizeBytes, *NLOOP, wAvg, wMax, wMin, wDev);
  if (wMax > *localMax) {
    *localMax = wMax;
    *localSize = size;
  }
  setLoopIters(tMin, tScale, threshold_hi, NLOOP);
  return 0;
}
```