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

```asm
<set_rndc_stats>:
  endbr64
  mov    %rdx,%rdi
  mov    (%rcx),%rax
  mov    (%rdx),%rdx
  pxor   %xmm0,%xmm0
  cmp    %rax,%rdx
  ja     L49
  sub    %rdx,%rax
  movslq %r8d,%r9
  xor    %edx,%edx
  div    %r9
  test   %rax,%rax
  js     L177
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
L49:
  mov    0x8(%rcx),%rax
  mov    0x8(%rdi),%rdx
  movsd  %xmm0,(%rsi)
  pxor   %xmm0,%xmm0
  cmp    %rdx,%rax
  jb     L41
  sub    %rdx,%rax
  movslq %r8d,%r9
  xor    %edx,%edx
  div    %r9
  test   %rax,%rax
  js     L126
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
L41:
  mov    0x10(%rcx),%rax
  mov    0x10(%rdi),%rdx
  movsd  %xmm0,0x8(%rsi)
  pxor   %xmm0,%xmm0
  cmp    %rdx,%rax
  jb     L188
  sub    %rdx,%rax
  movslq %r8d,%r9
  xor    %edx,%edx
  div    %r9
  test   %rax,%rax
  js     L117
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
L188:
  mov    0x18(%rcx),%rax
  mov    0x18(%rdi),%rdx
  movsd  %xmm0,0x10(%rsi)
  pxor   %xmm0,%xmm0
  cmp    %rdx,%rax
  jb     L96
  sub    %rdx,%rax
  movslq %r8d,%r9
  xor    %edx,%edx
  div    %r9
  test   %rax,%rax
  js     L148
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
L96:
  mov    0x20(%rcx),%rax
  mov    0x20(%rdi),%rdx
  movsd  %xmm0,0x18(%rsi)
  pxor   %xmm0,%xmm0
  cmp    %rdx,%rax
  jb     L150
  sub    %rdx,%rax
  movslq %r8d,%r9
  xor    %edx,%edx
  div    %r9
  test   %rax,%rax
  js     L101
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
L150:
  mov    0x28(%rcx),%rax
  mov    0x28(%rdi),%rdx
  movsd  %xmm0,0x20(%rsi)
  pxor   %xmm0,%xmm0
  cmp    %rdx,%rax
  jb     L164
  sub    %rdx,%rax
  movslq %r8d,%r8
  xor    %edx,%edx
  div    %r8
  test   %rax,%rax
  js     L50
  pxor   %xmm0,%xmm0
  cvtsi2sd %rax,%xmm0
L164:
  mov    0x30(%rcx),%rax
  test   %rax,%rax
  js     L187
L156:
  pxor   %xmm1,%xmm1
  cvtsi2sd %rax,%xmm1
  unpcklpd %xmm1,%xmm0
  movups %xmm0,0x28(%rsi)
  ret
L126:
  mov    %rax,%rdx
  and    $0x1,%eax
  pxor   %xmm0,%xmm0
  shr    %rdx
  or     %rax,%rdx
  cvtsi2sd %rdx,%xmm0
  addsd  %xmm0,%xmm0
  jmp    L41
  xchg   %ax,%ax
L177:
  mov    %rax,%rdx
  and    $0x1,%eax
  pxor   %xmm0,%xmm0
  shr    %rdx
  or     %rax,%rdx
  cvtsi2sd %rdx,%xmm0
  addsd  %xmm0,%xmm0
  jmp    L49
  xchg   %ax,%ax
L148:
  mov    %rax,%rdx
  and    $0x1,%eax
  pxor   %xmm0,%xmm0
  shr    %rdx
  or     %rax,%rdx
  cvtsi2sd %rdx,%xmm0
  addsd  %xmm0,%xmm0
  jmp    L96
  xchg   %ax,%ax
L117:
  mov    %rax,%rdx
  and    $0x1,%eax
  pxor   %xmm0,%xmm0
  shr    %rdx
  or     %rax,%rdx
  cvtsi2sd %rdx,%xmm0
  addsd  %xmm0,%xmm0
  jmp    L188
  xchg   %ax,%ax
L50:
  mov    %rax,%rdx
  and    $0x1,%eax
  pxor   %xmm0,%xmm0
  shr    %rdx
  or     %rax,%rdx
  mov    0x30(%rcx),%rax
  cvtsi2sd %rdx,%xmm0
  addsd  %xmm0,%xmm0
  test   %rax,%rax
  jns    L156
L187:
  mov    %rax,%rdx
  and    $0x1,%eax
  pxor   %xmm1,%xmm1
  shr    %rdx
  or     %rax,%rdx
  cvtsi2sd %rdx,%xmm1
  addsd  %xmm1,%xmm1
  unpcklpd %xmm1,%xmm0
  movups %xmm0,0x28(%rsi)
  ret
  nopl   0x0(%rax,%rax,1)
L101:
  mov    %rax,%rdx
  and    $0x1,%eax
  pxor   %xmm0,%xmm0
  shr    %rdx
  or     %rax,%rdx
  cvtsi2sd %rdx,%xmm0
  addsd  %xmm0,%xmm0
  jmp    L150
```

assistant: ```c
void set_rndc_stats(struct module *mod, double st_array[], unsigned long long pre_array[], unsigned long long cur_array[], int inter) {
  int i;
  for (i = 0; i < 6; i++) {
    if (cur_array[i] >= pre_array[i])
      st_array[i] = (cur_array[i] - pre_array[i]) / inter;
    else
      st_array[i] = 0;
  }
  st_array[6] = cur_array[i];
}
```