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

```asm
<hashing1>:
  endbr64
  push   %rbx
  mov    %rdi,%rbx
  call   <strlen@plt>
  test   %eax,%eax
  jle    L98
  mov    %eax,%ecx
  lea    -0x1(%rax),%eax
  cmp    $0xe,%eax
  jbe    L96
  mov    %ecx,%edx
  pxor   %xmm1,%xmm1
  pxor   %xmm6,%xmm6
  mov    %rbx,%rax
  shr    $0x4,%edx
  pxor   %xmm4,%xmm4
  sub    $0x1,%edx
  shl    $0x4,%rdx
  lea    0x10(%rbx,%rdx,1),%rdx
  nopl   0x0(%rax,%rax,1)
L162:
  movdqu (%rax),%xmm0
  movdqa %xmm6,%xmm3
  add    $0x10,%rax
  pcmpgtb %xmm0,%xmm3
  movdqa %xmm0,%xmm2
  punpcklbw %xmm3,%xmm2
  punpckhbw %xmm3,%xmm0
  movdqa %xmm4,%xmm3
  pcmpgtw %xmm2,%xmm3
  movdqa %xmm2,%xmm5
  punpcklwd %xmm3,%xmm5
  punpckhwd %xmm3,%xmm2
  movdqa %xmm0,%xmm3
  paddd  %xmm5,%xmm1
  paddd  %xmm2,%xmm1
  movdqa %xmm4,%xmm2
  pcmpgtw %xmm0,%xmm2
  punpcklwd %xmm2,%xmm3
  punpckhwd %xmm2,%xmm0
  paddd  %xmm3,%xmm1
  paddd  %xmm0,%xmm1
  cmp    %rdx,%rax
  jne    L162
  movdqa %xmm1,%xmm0
  mov    %ecx,%eax
  psrldq $0x8,%xmm0
  and    $0xfffffff0,%eax
  paddd  %xmm0,%xmm1
  movdqa %xmm1,%xmm0
  psrldq $0x4,%xmm0
  paddd  %xmm0,%xmm1
  movd   %xmm1,%edx
  test   $0xf,%cl
  je     L84
L132:
  movslq %eax,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x1(%rax),%esi
  cmp    %esi,%ecx
  jle    L84
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x2(%rax),%esi
  cmp    %esi,%ecx
  jle    L84
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x3(%rax),%esi
  cmp    %esi,%ecx
  jle    L84
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x4(%rax),%esi
  cmp    %esi,%ecx
  jle    L84
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x5(%rax),%esi
  cmp    %esi,%ecx
  jle    L84
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x6(%rax),%esi
  cmp    %esi,%ecx
  jle    L84
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x7(%rax),%esi
  cmp    %esi,%ecx
  jle    L84
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x8(%rax),%esi
  cmp    %esi,%ecx
  jle    L84
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x9(%rax),%esi
  cmp    %esi,%ecx
  jle    L84
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0xa(%rax),%esi
  cmp    %esi,%ecx
  jle    L84
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0xb(%rax),%esi
  cmp    %esi,%ecx
  jle    L84
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0xc(%rax),%esi
  cmp    %esi,%ecx
  jle    L84
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0xd(%rax),%esi
  cmp    %esi,%ecx
  jle    L84
  movslq %esi,%rsi
  add    $0xe,%eax
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  cmp    %eax,%ecx
  jle    L84
  cltq
  movsbl (%rbx,%rax,1),%eax
  add    %eax,%edx
L84:
  movslq %edx,%rax
  mov    %edx,%ecx
  pop    %rbx
  imul   $0x575a2ad3,%rax,%rax
  sar    $0x1f,%ecx
  sar    $0x2a,%rax
  sub    %ecx,%eax
  imul   $0xbb9,%eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  ret
  xchg   %ax,%ax
L98:
  xor    %eax,%eax
  pop    %rbx
  ret
L96:
  xor    %eax,%eax
  xor    %edx,%edx
  jmp    L132
```

assistant: ```c
int hashing1(char str[]) {
  int nr = 0, i, len = strlen(str);
  for (i = 0; i < len; i++)
    nr = nr + str[i];
  return nr % 3001;
}
```