user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<hashing1>:
  endbr64
  push   %rbx
  mov    %rdi,%rbx
  call   <strlen@plt>
  test   %eax,%eax
  jle    L32
  mov    %eax,%ecx
  lea    -0x1(%rax),%eax
  cmp    $0xe,%eax
  jbe    L120
  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)
L43:
  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    L43
  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     L5
L103:
  movslq %eax,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x1(%rax),%esi
  cmp    %esi,%ecx
  jle    L5
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x2(%rax),%esi
  cmp    %esi,%ecx
  jle    L5
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x3(%rax),%esi
  cmp    %esi,%ecx
  jle    L5
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x4(%rax),%esi
  cmp    %esi,%ecx
  jle    L5
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x5(%rax),%esi
  cmp    %esi,%ecx
  jle    L5
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x6(%rax),%esi
  cmp    %esi,%ecx
  jle    L5
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x7(%rax),%esi
  cmp    %esi,%ecx
  jle    L5
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x8(%rax),%esi
  cmp    %esi,%ecx
  jle    L5
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0x9(%rax),%esi
  cmp    %esi,%ecx
  jle    L5
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0xa(%rax),%esi
  cmp    %esi,%ecx
  jle    L5
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0xb(%rax),%esi
  cmp    %esi,%ecx
  jle    L5
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0xc(%rax),%esi
  cmp    %esi,%ecx
  jle    L5
  movslq %esi,%rsi
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  lea    0xd(%rax),%esi
  cmp    %esi,%ecx
  jle    L5
  movslq %esi,%rsi
  add    $0xe,%eax
  movsbl (%rbx,%rsi,1),%esi
  add    %esi,%edx
  cmp    %eax,%ecx
  jle    L5
  cltq
  movsbl (%rbx,%rax,1),%eax
  add    %eax,%edx
L5:
  movslq %edx,%rax
  mov    %edx,%ecx
  pop    %rbx
  imul   $0x288df0cb,%rax,%rax
  sar    $0x1f,%ecx
  sar    $0x24,%rax
  sub    %ecx,%eax
  imul   $0x65,%eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  ret
  nopl   0x0(%rax,%rax,1)
L32:
  xor    %eax,%eax
  pop    %rbx
  ret
L120:
  xor    %eax,%eax
  xor    %edx,%edx
  jmp    L103
```

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 % 101;
}
```